From d94eccab99da355a1ad43494aec3c479b13b35dc Mon Sep 17 00:00:00 2001 From: SimoneN64 Date: Sat, 14 Sep 2024 16:23:58 +0200 Subject: [PATCH] Squashed 'external/parallel-rdp/parallel-rdp-standalone/' content from commit 3f59f61f2c git-subtree-dir: external/parallel-rdp/parallel-rdp-standalone git-subtree-split: 3f59f61f2c1c56424356003041df5e4a10612049 --- COMMIT | 1 + LICENSE | 20 + README.md | 265 + config.mk | 56 + parallel-rdp/command_ring.cpp | 135 + parallel-rdp/command_ring.hpp | 67 + parallel-rdp/luts.hpp | 1556 + parallel-rdp/rdp_common.hpp | 410 + parallel-rdp/rdp_data_structures.hpp | 392 + parallel-rdp/rdp_device.cpp | 1264 + parallel-rdp/rdp_device.hpp | 284 + parallel-rdp/rdp_dump_write.cpp | 151 + parallel-rdp/rdp_dump_write.hpp | 65 + parallel-rdp/rdp_renderer.cpp | 3584 ++ parallel-rdp/rdp_renderer.hpp | 420 + parallel-rdp/shaders/binning.h | 146 + parallel-rdp/shaders/blender.h | 145 + parallel-rdp/shaders/clamping.h | 78 + .../shaders/clear_indirect_buffer.comp | 33 + .../clear_super_sampled_write_mask.comp | 34 + parallel-rdp/shaders/clear_write_mask.comp | 42 + parallel-rdp/shaders/combiner.h | 284 + parallel-rdp/shaders/coverage.h | 81 + parallel-rdp/shaders/data_structures.h | 347 + .../shaders/data_structures_buffers.h | 134 + parallel-rdp/shaders/debug.h | 151 + parallel-rdp/shaders/depth_blend.comp | 149 + parallel-rdp/shaders/depth_test.h | 146 + parallel-rdp/shaders/dither.h | 70 + parallel-rdp/shaders/extract_vram.comp | 107 + parallel-rdp/shaders/fb_formats.h | 10 + parallel-rdp/shaders/fullscreen.vert | 32 + parallel-rdp/shaders/interpolation.h | 255 + parallel-rdp/shaders/load_attribute_setup.h | 31 + parallel-rdp/shaders/load_depth_blend_state.h | 41 + parallel-rdp/shaders/load_derived_setup.h | 50 + parallel-rdp/shaders/load_scissor_state.h | 32 + parallel-rdp/shaders/load_span_offsets.h | 31 + parallel-rdp/shaders/load_span_setup.h | 44 + .../shaders/load_static_raster_state.h | 42 + parallel-rdp/shaders/load_tile_info.h | 49 + parallel-rdp/shaders/load_triangle_setup.h | 46 + .../shaders/masked_rdram_resolve.comp | 70 + parallel-rdp/shaders/memory_interfacing.h | 572 + parallel-rdp/shaders/noise.h | 71 + parallel-rdp/shaders/perspective.h | 114 + parallel-rdp/shaders/rasterizer.comp | 191 + parallel-rdp/shaders/shading.h | 361 + parallel-rdp/shaders/slangmosh.hpp | 49792 ++++++++++++++++ parallel-rdp/shaders/slangmosh.json | 126 + parallel-rdp/shaders/small_types.h | 121 + parallel-rdp/shaders/span_setup.comp | 227 + parallel-rdp/shaders/store_span_setup.h | 43 + parallel-rdp/shaders/texture.h | 1005 + .../shaders/tile_binning_combined.comp | 270 + parallel-rdp/shaders/tmem_update.comp | 577 + parallel-rdp/shaders/ubershader.comp | 103 + .../shaders/update_upscaled_domain_post.comp | 119 + .../shaders/update_upscaled_domain_pre.comp | 185 + .../update_upscaled_domain_resolve.comp | 277 + parallel-rdp/shaders/vi_blend_fields.frag | 33 + parallel-rdp/shaders/vi_debug.h | 60 + parallel-rdp/shaders/vi_deinterlace.frag | 31 + parallel-rdp/shaders/vi_deinterlace.vert | 41 + parallel-rdp/shaders/vi_divot.frag | 93 + parallel-rdp/shaders/vi_fetch.frag | 164 + parallel-rdp/shaders/vi_scale.frag | 154 + parallel-rdp/shaders/vi_status.h | 48 + parallel-rdp/shaders/z_encode.h | 58 + parallel-rdp/video_interface.cpp | 1427 + parallel-rdp/video_interface.hpp | 240 + parallel-rdp/worker_thread.hpp | 127 + util/aligned_alloc.cpp | 83 + util/aligned_alloc.hpp | 68 + util/arena_allocator.cpp | 197 + util/arena_allocator.hpp | 336 + util/bitops.hpp | 173 + util/dynamic_array.hpp | 59 + util/enum_cast.hpp | 34 + util/environment.cpp | 96 + util/environment.hpp | 35 + util/hash.hpp | 105 + util/intrusive.hpp | 310 + util/intrusive_hash_map.hpp | 690 + util/intrusive_list.hpp | 197 + util/logging.cpp | 72 + util/logging.hpp | 96 + util/object_pool.hpp | 132 + util/read_write_lock.hpp | 149 + util/small_vector.hpp | 456 + util/stack_allocator.hpp | 62 + util/temporary_hashmap.hpp | 177 + util/thread_id.cpp | 45 + util/thread_id.hpp | 29 + util/thread_name.cpp | 59 + util/thread_name.hpp | 28 + util/timeline_trace_file.cpp | 185 + util/timeline_trace_file.hpp | 96 + util/timer.cpp | 131 + util/timer.hpp | 63 + volk/volk.c | 3009 + volk/volk.h | 1981 + .../vk_video/vulkan_video_codec_av1std.h | 392 + .../vulkan_video_codec_av1std_decode.h | 109 + .../vk_video/vulkan_video_codec_h264std.h | 312 + .../vulkan_video_codec_h264std_decode.h | 77 + .../vulkan_video_codec_h264std_encode.h | 147 + .../vk_video/vulkan_video_codec_h265std.h | 446 + .../vulkan_video_codec_h265std_decode.h | 67 + .../vulkan_video_codec_h265std_encode.h | 157 + .../vk_video/vulkan_video_codecs_common.h | 36 + vulkan-headers/include/vulkan/vk_icd.h | 244 + vulkan-headers/include/vulkan/vk_layer.h | 189 + vulkan-headers/include/vulkan/vk_platform.h | 84 + .../include/vulkan/vk_sdk_platform.h | 71 + vulkan-headers/include/vulkan/vulkan.h | 99 + .../include/vulkan/vulkan_android.h | 153 + vulkan-headers/include/vulkan/vulkan_beta.h | 216 + vulkan-headers/include/vulkan/vulkan_core.h | 19638 ++++++ .../include/vulkan/vulkan_directfb.h | 55 + .../include/vulkan/vulkan_fuchsia.h | 262 + vulkan-headers/include/vulkan/vulkan_ggp.h | 60 + vulkan-headers/include/vulkan/vulkan_ios.h | 48 + vulkan-headers/include/vulkan/vulkan_macos.h | 48 + vulkan-headers/include/vulkan/vulkan_metal.h | 195 + vulkan-headers/include/vulkan/vulkan_screen.h | 108 + vulkan-headers/include/vulkan/vulkan_vi.h | 48 + .../include/vulkan/vulkan_wayland.h | 55 + vulkan-headers/include/vulkan/vulkan_win32.h | 342 + vulkan-headers/include/vulkan/vulkan_xcb.h | 56 + vulkan-headers/include/vulkan/vulkan_xlib.h | 56 + .../include/vulkan/vulkan_xlib_xrandr.h | 46 + vulkan/buffer.cpp | 87 + vulkan/buffer.hpp | 162 + vulkan/buffer_pool.cpp | 138 + vulkan/buffer_pool.hpp | 96 + vulkan/command_buffer.cpp | 3360 ++ vulkan/command_buffer.hpp | 958 + vulkan/command_pool.cpp | 180 + vulkan/command_pool.hpp | 61 + vulkan/context.cpp | 1779 + vulkan/context.hpp | 402 + vulkan/cookie.cpp | 32 + vulkan/cookie.hpp | 61 + vulkan/descriptor_set.cpp | 521 + vulkan/descriptor_set.hpp | 192 + vulkan/device.cpp | 5241 ++ vulkan/device.hpp | 911 + vulkan/device_fossilize.cpp | 1036 + vulkan/device_fossilize.hpp | 70 + vulkan/event_manager.cpp | 72 + vulkan/event_manager.hpp | 47 + vulkan/fence.cpp | 124 + vulkan/fence.hpp | 81 + vulkan/fence_manager.cpp | 61 + vulkan/fence_manager.hpp | 45 + vulkan/format.hpp | 386 + vulkan/image.cpp | 244 + vulkan/image.hpp | 581 + vulkan/indirect_layout.cpp | 108 + vulkan/indirect_layout.hpp | 91 + vulkan/limits.hpp | 40 + vulkan/memory_allocator.cpp | 825 + vulkan/memory_allocator.hpp | 300 + vulkan/pipeline_event.cpp | 43 + vulkan/pipeline_event.hpp | 67 + vulkan/query_pool.cpp | 528 + vulkan/query_pool.hpp | 186 + vulkan/quirks.hpp | 51 + vulkan/render_pass.cpp | 1031 + vulkan/render_pass.hpp | 270 + vulkan/renderdoc_capture.cpp | 127 + vulkan/sampler.cpp | 154 + vulkan/sampler.hpp | 146 + vulkan/semaphore.cpp | 244 + vulkan/semaphore.hpp | 206 + vulkan/semaphore_manager.cpp | 68 + vulkan/semaphore_manager.hpp | 45 + vulkan/shader.cpp | 687 + vulkan/shader.hpp | 228 + vulkan/texture/texture_format.cpp | 518 + vulkan/texture/texture_format.hpp | 178 + vulkan/type_to_string.hpp | 113 + vulkan/vulkan_common.hpp | 111 + vulkan/vulkan_headers.hpp | 71 + vulkan/vulkan_prerotate.hpp | 169 + vulkan/wsi.cpp | 1766 + vulkan/wsi.hpp | 379 + 188 files changed, 126627 insertions(+) create mode 100644 COMMIT create mode 100644 LICENSE create mode 100644 README.md create mode 100644 config.mk create mode 100644 parallel-rdp/command_ring.cpp create mode 100644 parallel-rdp/command_ring.hpp create mode 100644 parallel-rdp/luts.hpp create mode 100644 parallel-rdp/rdp_common.hpp create mode 100644 parallel-rdp/rdp_data_structures.hpp create mode 100644 parallel-rdp/rdp_device.cpp create mode 100644 parallel-rdp/rdp_device.hpp create mode 100644 parallel-rdp/rdp_dump_write.cpp create mode 100644 parallel-rdp/rdp_dump_write.hpp create mode 100644 parallel-rdp/rdp_renderer.cpp create mode 100644 parallel-rdp/rdp_renderer.hpp create mode 100644 parallel-rdp/shaders/binning.h create mode 100644 parallel-rdp/shaders/blender.h create mode 100644 parallel-rdp/shaders/clamping.h create mode 100644 parallel-rdp/shaders/clear_indirect_buffer.comp create mode 100644 parallel-rdp/shaders/clear_super_sampled_write_mask.comp create mode 100644 parallel-rdp/shaders/clear_write_mask.comp create mode 100644 parallel-rdp/shaders/combiner.h create mode 100644 parallel-rdp/shaders/coverage.h create mode 100644 parallel-rdp/shaders/data_structures.h create mode 100644 parallel-rdp/shaders/data_structures_buffers.h create mode 100644 parallel-rdp/shaders/debug.h create mode 100644 parallel-rdp/shaders/depth_blend.comp create mode 100644 parallel-rdp/shaders/depth_test.h create mode 100644 parallel-rdp/shaders/dither.h create mode 100644 parallel-rdp/shaders/extract_vram.comp create mode 100644 parallel-rdp/shaders/fb_formats.h create mode 100644 parallel-rdp/shaders/fullscreen.vert create mode 100644 parallel-rdp/shaders/interpolation.h create mode 100644 parallel-rdp/shaders/load_attribute_setup.h create mode 100644 parallel-rdp/shaders/load_depth_blend_state.h create mode 100644 parallel-rdp/shaders/load_derived_setup.h create mode 100644 parallel-rdp/shaders/load_scissor_state.h create mode 100644 parallel-rdp/shaders/load_span_offsets.h create mode 100644 parallel-rdp/shaders/load_span_setup.h create mode 100644 parallel-rdp/shaders/load_static_raster_state.h create mode 100644 parallel-rdp/shaders/load_tile_info.h create mode 100644 parallel-rdp/shaders/load_triangle_setup.h create mode 100644 parallel-rdp/shaders/masked_rdram_resolve.comp create mode 100644 parallel-rdp/shaders/memory_interfacing.h create mode 100644 parallel-rdp/shaders/noise.h create mode 100644 parallel-rdp/shaders/perspective.h create mode 100644 parallel-rdp/shaders/rasterizer.comp create mode 100644 parallel-rdp/shaders/shading.h create mode 100644 parallel-rdp/shaders/slangmosh.hpp create mode 100644 parallel-rdp/shaders/slangmosh.json create mode 100644 parallel-rdp/shaders/small_types.h create mode 100644 parallel-rdp/shaders/span_setup.comp create mode 100644 parallel-rdp/shaders/store_span_setup.h create mode 100644 parallel-rdp/shaders/texture.h create mode 100644 parallel-rdp/shaders/tile_binning_combined.comp create mode 100644 parallel-rdp/shaders/tmem_update.comp create mode 100644 parallel-rdp/shaders/ubershader.comp create mode 100644 parallel-rdp/shaders/update_upscaled_domain_post.comp create mode 100644 parallel-rdp/shaders/update_upscaled_domain_pre.comp create mode 100644 parallel-rdp/shaders/update_upscaled_domain_resolve.comp create mode 100644 parallel-rdp/shaders/vi_blend_fields.frag create mode 100644 parallel-rdp/shaders/vi_debug.h create mode 100644 parallel-rdp/shaders/vi_deinterlace.frag create mode 100644 parallel-rdp/shaders/vi_deinterlace.vert create mode 100644 parallel-rdp/shaders/vi_divot.frag create mode 100644 parallel-rdp/shaders/vi_fetch.frag create mode 100644 parallel-rdp/shaders/vi_scale.frag create mode 100644 parallel-rdp/shaders/vi_status.h create mode 100644 parallel-rdp/shaders/z_encode.h create mode 100644 parallel-rdp/video_interface.cpp create mode 100644 parallel-rdp/video_interface.hpp create mode 100644 parallel-rdp/worker_thread.hpp create mode 100644 util/aligned_alloc.cpp create mode 100644 util/aligned_alloc.hpp create mode 100644 util/arena_allocator.cpp create mode 100644 util/arena_allocator.hpp create mode 100644 util/bitops.hpp create mode 100644 util/dynamic_array.hpp create mode 100644 util/enum_cast.hpp create mode 100644 util/environment.cpp create mode 100644 util/environment.hpp create mode 100644 util/hash.hpp create mode 100644 util/intrusive.hpp create mode 100644 util/intrusive_hash_map.hpp create mode 100644 util/intrusive_list.hpp create mode 100644 util/logging.cpp create mode 100644 util/logging.hpp create mode 100644 util/object_pool.hpp create mode 100644 util/read_write_lock.hpp create mode 100644 util/small_vector.hpp create mode 100644 util/stack_allocator.hpp create mode 100644 util/temporary_hashmap.hpp create mode 100644 util/thread_id.cpp create mode 100644 util/thread_id.hpp create mode 100644 util/thread_name.cpp create mode 100644 util/thread_name.hpp create mode 100644 util/timeline_trace_file.cpp create mode 100644 util/timeline_trace_file.hpp create mode 100644 util/timer.cpp create mode 100644 util/timer.hpp create mode 100644 volk/volk.c create mode 100644 volk/volk.h create mode 100644 vulkan-headers/include/vk_video/vulkan_video_codec_av1std.h create mode 100644 vulkan-headers/include/vk_video/vulkan_video_codec_av1std_decode.h create mode 100644 vulkan-headers/include/vk_video/vulkan_video_codec_h264std.h create mode 100644 vulkan-headers/include/vk_video/vulkan_video_codec_h264std_decode.h create mode 100644 vulkan-headers/include/vk_video/vulkan_video_codec_h264std_encode.h create mode 100644 vulkan-headers/include/vk_video/vulkan_video_codec_h265std.h create mode 100644 vulkan-headers/include/vk_video/vulkan_video_codec_h265std_decode.h create mode 100644 vulkan-headers/include/vk_video/vulkan_video_codec_h265std_encode.h create mode 100644 vulkan-headers/include/vk_video/vulkan_video_codecs_common.h create mode 100644 vulkan-headers/include/vulkan/vk_icd.h create mode 100644 vulkan-headers/include/vulkan/vk_layer.h create mode 100644 vulkan-headers/include/vulkan/vk_platform.h create mode 100644 vulkan-headers/include/vulkan/vk_sdk_platform.h create mode 100644 vulkan-headers/include/vulkan/vulkan.h create mode 100644 vulkan-headers/include/vulkan/vulkan_android.h create mode 100644 vulkan-headers/include/vulkan/vulkan_beta.h create mode 100644 vulkan-headers/include/vulkan/vulkan_core.h create mode 100644 vulkan-headers/include/vulkan/vulkan_directfb.h create mode 100644 vulkan-headers/include/vulkan/vulkan_fuchsia.h create mode 100644 vulkan-headers/include/vulkan/vulkan_ggp.h create mode 100644 vulkan-headers/include/vulkan/vulkan_ios.h create mode 100644 vulkan-headers/include/vulkan/vulkan_macos.h create mode 100644 vulkan-headers/include/vulkan/vulkan_metal.h create mode 100644 vulkan-headers/include/vulkan/vulkan_screen.h create mode 100644 vulkan-headers/include/vulkan/vulkan_vi.h create mode 100644 vulkan-headers/include/vulkan/vulkan_wayland.h create mode 100644 vulkan-headers/include/vulkan/vulkan_win32.h create mode 100644 vulkan-headers/include/vulkan/vulkan_xcb.h create mode 100644 vulkan-headers/include/vulkan/vulkan_xlib.h create mode 100644 vulkan-headers/include/vulkan/vulkan_xlib_xrandr.h create mode 100644 vulkan/buffer.cpp create mode 100644 vulkan/buffer.hpp create mode 100644 vulkan/buffer_pool.cpp create mode 100644 vulkan/buffer_pool.hpp create mode 100644 vulkan/command_buffer.cpp create mode 100644 vulkan/command_buffer.hpp create mode 100644 vulkan/command_pool.cpp create mode 100644 vulkan/command_pool.hpp create mode 100644 vulkan/context.cpp create mode 100644 vulkan/context.hpp create mode 100644 vulkan/cookie.cpp create mode 100644 vulkan/cookie.hpp create mode 100644 vulkan/descriptor_set.cpp create mode 100644 vulkan/descriptor_set.hpp create mode 100644 vulkan/device.cpp create mode 100644 vulkan/device.hpp create mode 100644 vulkan/device_fossilize.cpp create mode 100644 vulkan/device_fossilize.hpp create mode 100644 vulkan/event_manager.cpp create mode 100644 vulkan/event_manager.hpp create mode 100644 vulkan/fence.cpp create mode 100644 vulkan/fence.hpp create mode 100644 vulkan/fence_manager.cpp create mode 100644 vulkan/fence_manager.hpp create mode 100644 vulkan/format.hpp create mode 100644 vulkan/image.cpp create mode 100644 vulkan/image.hpp create mode 100644 vulkan/indirect_layout.cpp create mode 100644 vulkan/indirect_layout.hpp create mode 100644 vulkan/limits.hpp create mode 100644 vulkan/memory_allocator.cpp create mode 100644 vulkan/memory_allocator.hpp create mode 100644 vulkan/pipeline_event.cpp create mode 100644 vulkan/pipeline_event.hpp create mode 100644 vulkan/query_pool.cpp create mode 100644 vulkan/query_pool.hpp create mode 100644 vulkan/quirks.hpp create mode 100644 vulkan/render_pass.cpp create mode 100644 vulkan/render_pass.hpp create mode 100644 vulkan/renderdoc_capture.cpp create mode 100644 vulkan/sampler.cpp create mode 100644 vulkan/sampler.hpp create mode 100644 vulkan/semaphore.cpp create mode 100644 vulkan/semaphore.hpp create mode 100644 vulkan/semaphore_manager.cpp create mode 100644 vulkan/semaphore_manager.hpp create mode 100644 vulkan/shader.cpp create mode 100644 vulkan/shader.hpp create mode 100644 vulkan/texture/texture_format.cpp create mode 100644 vulkan/texture/texture_format.hpp create mode 100644 vulkan/type_to_string.hpp create mode 100644 vulkan/vulkan_common.hpp create mode 100644 vulkan/vulkan_headers.hpp create mode 100644 vulkan/vulkan_prerotate.hpp create mode 100644 vulkan/wsi.cpp create mode 100644 vulkan/wsi.hpp diff --git a/COMMIT b/COMMIT new file mode 100644 index 00000000..aaa32033 --- /dev/null +++ b/COMMIT @@ -0,0 +1 @@ +fe5becd13638873db90d46e7ba7d48255971f82a diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..c92e9009 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2020 Themaister + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 00000000..f153657a --- /dev/null +++ b/README.md @@ -0,0 +1,265 @@ +# paraLLEl-RDP + +This project is a revival and complete rewrite of the old, defunct paraLLEl-RDP project. + +The goal is to implement the Nintendo 64 RDP graphics chip as accurately as possible using Vulkan compute. +The implementation aims to be bitexact with the +[Angrylion-Plus](https://github.com/ata4/angrylion-rdp-plus) reference renderer where possible. + +## Disclaimer + +While paraLLEl-RDP uses [Angrylion-Plus](https://github.com/ata4/angrylion-rdp-plus) +as an implementation reference, it is not a port, and not a derived codebase of said project. +It is written from scratch by studying [Angrylion-Plus](https://github.com/ata4/angrylion-rdp-plus) +and trying to understand what is going on. +The test suite uses [Angrylion-Plus](https://github.com/ata4/angrylion-rdp-plus) as a reference +to validate implementation and cross-checking behavior. + +## Use cases + +- **Much** faster LLE RDP emulation of N64 compared to a CPU implementation + as parallel graphics workloads are offloaded to the GPU. + Emulation performance is now completely bound by CPU and LLE RSP performance. + Early benchmarking results suggest 2000 - 5000 VI/s being achieved on mid-range desktop GPUs based on timestamp data. + There is no way the CPU emulation can keep up with that, but that means this should + scale down to fairly gimped GPUs as well, assuming the driver requirements are met. +- A backend renderer for standalone engines which aim to efficiently reproduce faithful N64 graphics. +- Hopefully, an easier to understand implementation than the reference renderer. +- An esoteric use case of advanced Vulkan compute programming. + +## Missing features + +The implementation is quite complete, and compatibility is very high in the limited amount of content I've tested. +However, not every single feature is supported at this moment. +Ticking the last boxes depends mostly on real content making use of said features. + +- Color combiner chroma keying +- Various "bugs" / questionable behavior that seems meaningless to emulate +- Certain extreme edge cases in TMEM upload. The implementation has tests for many "crazy" edge cases though. +- ... possibly other obscure features + +The VI is essentially complete. A fancy deinterlacer might be useful to add since we have plenty of GPU cycles to spare in the graphics queue. +The VI filtering is always turned on if game requests it, but features can selectively be turned off for the pixel purists. + +## Environment variables for development / testing + +### `RDP_DEBUG` / `RDP_DEBUG_X` / `RDP_DEBUG_Y` + +Supports printf in shaders, which is extremely useful to drill down difficult bugs. +Only printfs from certain pixels can be filtered through to avoid spam. + +### `VI_DEBUG` / `VI_DEBUG_X` / `VI_DEBUG_Y` + +Same as `RDP_DEBUG` but for the VI. + +### `PARALLEL_RDP_MEASURE_SYNC_TIME` + +Measures time stalled in `CommandProcessor::wait_for_timeline`. Useful to measure +CPU overhead in hard-synced emulator integrations. + +### `PARALLEL_RDP_SMALL_TYPES=0` + +Force-disables 8/16-bit arithmetic support. Useful when suspecting driver bugs. + +### `PARALLEL_RDP_UBERSHADER=1` + +Forces the use of ubershaders. Can be extremely slow depending on the shader compiler. + +### `PARALLEL_RDP_FORCE_SYNC_SHADER=1` + +Disabled async pipeline optimization, and blocks for every shader compiler. +Only use if the ubershader crashes, since this adds the dreaded shader compilation stalls. + +### `PARALLEL_RDP_BENCH=1` + +Measures RDP rendering time spent on GPU using Vulkan timestamps. +At end of a run, reports average time spent per render pass, +and how many render passes are flushed per frame. + +### `PARALLEL_RDP_SUBGROUP=0` + +Force-disables use of Vulkan subgroup operations, +which are used to optimize the tile binning algorithm. + +### `PARALLEL_RDP_ALLOW_EXTERNAL_HOST=0` + +Disables use of `VK_EXT_external_memory_host`. For testing. + +## Vulkan driver requirements + +paraLLEl-RDP requires up-to-date Vulkan implementations. A lot of the great improvements over the previous implementation +comes from the idea that we can implement N64's UMA by simply importing RDRAM directly as an SSBO and perform 8 and 16-bit +data access over the bus. With the tile based architecture in paraLLEl-RDP, this works very well and actual +PCI-e traffic is massively reduced. The bandwidth for doing this is also trivial. On iGPU systems, this also works really well, since +it's all the same memory anyways. + +Thus, the requirements are as follows. All of these features are widely supported, or will soon be in drivers. +paraLLEl-RDP does not aim for compatibility with ancient hardware and drivers. +Just use the reference renderer for that. This is enthusiast software for a niche audience. + +- Vulkan 1.1 +- VK_KHR_8bit_storage / VK_KHR_16bit_storage +- Optionally VK_KHR_shader_float16_int8 which enables small integer arithmetic +- Optionally subgroup support with VK_EXT_subgroup_size_control +- For integration in emulators, VK_EXT_external_memory_host is currently required (may be relaxed later at some performance cost) + +### Tested drivers + +paraLLEl-RDP has been tested on Linux and Windows on all desktop vendors. + +- Intel Mesa (20.0.6) - Passes conformance +- Intel Windows - Passes conformance (**CAVEAT**. Intel Windows requires 64 KiB alignment for host memory import, make sure to add some padding around RDRAM in an emulator to make this work well.) +- AMD RADV LLVM (20.0.6) - Passes conformance +- AMD RADV ACO - Passes conformance with bleeding edge drivers and `PARALLEL_RDP_SMALL_TYPES=0`. +- Linux AMDGPU-PRO - Passes conformance, with caveat that 8/16-bit arithmetic does not work correctly for some tests. + paraLLEl-RDP automatically disables small integer arithmetic for proprietary AMD driver. +- AMD Windows - Passes conformance with same caveat and workaround as AMDGPU-PRO. +- NVIDIA Linux - Passes conformance (**MAJOR CAVEAT**, NVIDIA Linux does not support VK_EXT_external_memory_host as of 2020-05-12.) +- NVIDIA Windows - Passes conformance + +## Implementation strategy + +This project uses Vulkan compute shaders to implement a fully programmable rasterization pipeline. +The overall rendering architecture is reused from [RetroWarp](https://github.com/Themaister/RetroWarp) +with some further refinements. + +The lower level Vulkan backend comes from [Granite](https://github.com/Themaister/Granite). + +### Asynchronous pipeline optimization + +Toggleable paths in RDP state is expressed as specialization constants. The rendering thread will +detect new state combinations and kick off building pipelines which only specify exact state needed to render. +This is a massive performance optimization. + +The same shaders are used for an "ubershader" fallback when pipelines are not ready. +In this case, specialization constants are simply not used. +The same SPIR-V modules are reused to great effect using this Vulkan feature. + +### Tile-based rendering + +See [RetroWarp](https://github.com/Themaister/RetroWarp) for more details. + +### GPU-driven TMEM management + +TMEM management is fully GPU-driven, but this is a very complicated implementation. +Certain combinations of formats are not supported, but such cases would produce +meaningless results, and it is unclear that applications can make meaningful use of these "weird" uploads. + +### Synchronization + +Synchronizing the GPU and CPU emulation is one of the hot button issues of N64 emulation. +The integration code is designed around a timeline of synchronization points which can be waited on by the CPU +when appropriate. For accurate emulation, an OpSyncFull is generally followed by a full wait, +but most games can be more relaxed and only synchronize with the CPU N frames later. +Implementation of this behavior is outside the scope of paraLLEl-RDP, and is left up to the integration code. + +### Asynchronous compute + +GPUs with a dedicated compute queue is recommended for optimal performance since +RDP shading work can happen on the compute queue, and won't be blocked by graphics workloads happening +in the graphics queue, which will typically be VI scanout and frontend applying shaders on top. + +## Project structure + +This project implements several submodules which are quite useful. + +### rdp-replayer + +This app replays RDP dump files, which are produced by running content through an RDP dumper. +An implementation can be found in e.g. parallel-N64. The file format is very simple and essentially +contains a record of RDRAM changes and RDP command streams. +This dump is replayed and a live comparison between the reference renderer can be compared to paraLLEl-RDP +with visual output. The UI is extremely crude, and is not user-friendly, but good enough for my use. + +### rdp-conformance + +I made a somewhat comprehensive test suite for the RDP, with a custom higher level RDP command stream generator. +There are roughly ~150 fuzz tests which exercise many aspects of the RDP. +In order to pass the test, paraLLEl-RDP must produce bit-exact results compared to Angrylion, +so the test condition is as stringent as possible. + +#### A note on bitexactness + +There are a few cases where bit-exactness is a meaningless term, such as the noise feature of the RDP. +It is not particularly meaningful to exactly reproduce noise, since it is by its very nature unpredictable. +For that reason, this repo references a fork of the reference renderer which implements deterministic "undefined behavior" +where appropriate. The exact formulation of the noise generator is not very interesting as long as +correct entropy and output range is reproduced. + +##### Intentional differences from reference renderer + +Certain effects invoke "undefined behavior" in the RDP and requires cycle accuracy to resolve bit-accurately with real RDP. +Reference renderer attempts to emulate these effects, but to reproduce this behavior breaks any form of multi-threading. +To be able to validate dumps in a sensible way with buggy content, I modified the reference slightly to make certain +"undefined behavior" deterministic. This doesn't meaningfully change the rendered output in the cases I've seen in the wild. +Some of these effects would be possible to emulate, +but at the cost of lots of added complexity and it wouldn't be quite correct anyways given the cycle accuracy issue. + +- CombinedColor/Alpha in first cycle is cleared to zero. Some games read this in first cycle, + and reference renderer will read whatever was generated last pixel. + This causes issues in some cases, where cycle accuracy would have caused the feedback to converge to zero over time. +- Reading LODFrac in 1 cycle mode. This is currently ignored. The results generated seem non-sensical. Never seen this in the wild. +- Using TexLOD in copy mode. This is currently ignored. The results generated seem non-sensical. Never seen this in the wild. +- Reading MemoryColor in first blender cycle in 2-cycle mode. Reference seems to wait until the second cycle before updating this value, + despite memory coverage being updated right away. The sensible thing to do is to allow reading memory color in first cycle. +- Alpha testing in 2-cycle mode reads combined alpha from next pixel in reference. + Just doing alpha testing in first cycle on current pixel is good enough. + If this is correct hardware behavior, I consider this a hardware bug. +- Reading Texel1 in cycle 1 of 2-cycle mode reads the Texel0 from next pixel. + In the few cases I've seen this, the rendered output is slightly buggy, but it's hardly visible in motion. + The workaround is just to read Texel0 from current pixel which still renders fine. + +### vi-conformance + +This is a conformance suite, except for the video interface (VI) unit. + +### rdp-validate-dump + +This tool replays an RDP dump headless and compares outputs between reference renderer and paraLLEl-RDP. +To pass, bitexact output must be generated. + +## Build + +Checkout submodules. This pulls in Angrylion-Plus as well as Granite. + +``` +git submodule update --init --recursive +``` + +Standard CMake build. + +``` +mkdir build +cd build +cmake .. +cmake --build . --parallel (--config Release on MSVC) +``` + +### Run test suite + +You can run rdp-conformance and vi-conformance with ctest to verify if your driver is behaving correctly. + +``` +ctest (-C Release on MSVC) +``` + +### Embedding shaders in a C++ header + +If embedding paraLLEl-RDP in an emulator project, it is helpful to pre-compile and bake SPIR-V shaders in a C++ header. +Build slangmosh from Granite, and then run: + +``` +slangmosh parallel-rdp/shaders/slangmosh.json --output slangmosh.hpp --vk11 --strip -O --namespace RDP +``` + +### Generating a standalone code base for emulator integration + +Run the `generate_standalone_codebase.sh $OUTDIR` script with an output directory `$OUTDIR/` as argument to generate a standalone code base which can be built without any special build system support. +Include `$OUTDIR/config.mk` if building with Make to make your life easier. +Note that `slangmosh` must be in your path for this script to run. It executes the command above to build `slangmosh.hpp`. + +## License + +paraLLEl-RDP is licensed under the permissive license MIT. See included LICENSE file. +This implementation builds heavily on the knowledge (but not code) gained from studying the reference implementation, +thus it felt fair to release it under a permissive license, so my work could be reused more easily. diff --git a/config.mk b/config.mk new file mode 100644 index 00000000..6b8349b8 --- /dev/null +++ b/config.mk @@ -0,0 +1,56 @@ +# For use in standalone implementations. + +PARALLEL_RDP_CFLAGS := +PARALLEL_RDP_CXXFLAGS := + +PARALLEL_RDP_SOURCES_CXX := \ + $(wildcard $(PARALLEL_RDP_IMPLEMENTATION)/parallel-rdp/*.cpp) \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/buffer.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/buffer_pool.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/command_buffer.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/command_pool.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/context.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/cookie.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/descriptor_set.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/device.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/event_manager.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/fence.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/fence_manager.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/image.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/indirect_layout.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/memory_allocator.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/pipeline_event.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/query_pool.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/render_pass.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/sampler.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/semaphore.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/semaphore_manager.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/shader.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/vulkan/texture/texture_format.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/util/arena_allocator.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/util/logging.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/util/thread_id.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/util/aligned_alloc.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/util/timer.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/util/timeline_trace_file.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/util/environment.cpp \ + $(PARALLEL_RDP_IMPLEMENTATION)/util/thread_name.cpp + +PARALLEL_RDP_SOURCES_C := \ + $(PARALLEL_RDP_IMPLEMENTATION)/volk/volk.c + +PARALLEL_RDP_INCLUDE_DIRS := \ + -I$(PARALLEL_RDP_IMPLEMENTATION)/parallel-rdp \ + -I$(PARALLEL_RDP_IMPLEMENTATION)/volk \ + -I$(PARALLEL_RDP_IMPLEMENTATION)/vulkan \ + -I$(PARALLEL_RDP_IMPLEMENTATION)/vulkan-headers/include \ + -I$(PARALLEL_RDP_IMPLEMENTATION)/util + +PARALLEL_RDP_LDFLAGS := -pthread +ifeq (,$(findstring win,$(platform))) + PARALLEL_RDP_LDFLAGS += -ldl +else + PARALLEL_RDP_CFLAGS += -DVK_USE_PLATFORM_WIN32_KHR + PARALLEL_RDP_LDFLAGS += -lwinmm +endif + diff --git a/parallel-rdp/command_ring.cpp b/parallel-rdp/command_ring.cpp new file mode 100644 index 00000000..5220cbc3 --- /dev/null +++ b/parallel-rdp/command_ring.cpp @@ -0,0 +1,135 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include "command_ring.hpp" +#include "rdp_device.hpp" +#include "thread_id.hpp" +#include + +namespace RDP +{ +void CommandRing::init( +#ifdef PARALLEL_RDP_SHADER_DIR + Granite::Global::GlobalManagersHandle global_handles_, +#endif + CommandProcessor *processor_, unsigned count) +{ + assert((count & (count - 1)) == 0); + teardown_thread(); + processor = processor_; + ring.resize(count); + write_count = 0; + read_count = 0; +#ifdef PARALLEL_RDP_SHADER_DIR + global_handles = std::move(global_handles_); +#endif + thr = std::thread(&CommandRing::thread_loop, this); +} + +void CommandRing::teardown_thread() +{ + if (thr.joinable()) + { + enqueue_command(0, nullptr); + thr.join(); + } +} + +CommandRing::~CommandRing() +{ + teardown_thread(); +} + +void CommandRing::drain() +{ + std::unique_lock holder{lock}; + cond.wait(holder, [this]() { + return write_count == completed_count; + }); +} + +void CommandRing::enqueue_command(unsigned num_words, const uint32_t *words) +{ + std::unique_lock holder{lock}; + cond.wait(holder, [this, num_words]() { + return write_count + num_words + 1 <= read_count + ring.size(); + }); + + size_t mask = ring.size() - 1; + ring[write_count++ & mask] = num_words; + for (unsigned i = 0; i < num_words; i++) + ring[write_count++ & mask] = words[i]; + + cond.notify_one(); +} + +void CommandRing::thread_loop() +{ + Util::register_thread_index(0); + +#ifdef PARALLEL_RDP_SHADER_DIR + // Here to let the RDP play nice with full Granite. + // When we move to standalone Granite, we won't need to interact with global subsystems like this. + Granite::Global::set_thread_context(*global_handles); + global_handles.reset(); +#endif + + std::vector tmp_buffer; + tmp_buffer.reserve(64); + size_t mask = ring.size() - 1; + + for (;;) + { + bool is_idle = false; + { + std::unique_lock holder{lock}; + if (cond.wait_for(holder, std::chrono::microseconds(500), [this]() { return write_count > read_count; })) + { + uint32_t num_words = ring[read_count++ & mask]; + tmp_buffer.resize(num_words); + for (uint32_t i = 0; i < num_words; i++) + tmp_buffer[i] = ring[read_count++ & mask]; + } + else + { + // If we don't receive commands at a steady pace, + // notify rendering thread that we should probably kick some work. + tmp_buffer.resize(1); + tmp_buffer[0] = uint32_t(Op::MetaIdle) << 24; + is_idle = true; + } + } + + if (tmp_buffer.empty()) + break; + + processor->enqueue_command_direct(tmp_buffer.size(), tmp_buffer.data()); + if (!is_idle) + { + std::lock_guard holder{lock}; + completed_count = read_count; + cond.notify_one(); + } + } +} +} diff --git a/parallel-rdp/command_ring.hpp b/parallel-rdp/command_ring.hpp new file mode 100644 index 00000000..c74c43d0 --- /dev/null +++ b/parallel-rdp/command_ring.hpp @@ -0,0 +1,67 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include +#include + +#ifdef PARALLEL_RDP_SHADER_DIR +#include "global_managers.hpp" +#endif + +namespace RDP +{ +class CommandProcessor; +class CommandRing +{ +public: + void init( +#ifdef PARALLEL_RDP_SHADER_DIR + Granite::Global::GlobalManagersHandle global_handles, +#endif + CommandProcessor *processor, unsigned count); + ~CommandRing(); + void drain(); + + void enqueue_command(unsigned num_words, const uint32_t *words); + +private: + CommandProcessor *processor = nullptr; + std::thread thr; + std::mutex lock; + std::condition_variable cond; + + std::vector ring; + uint64_t write_count = 0; + uint64_t read_count = 0; + uint64_t completed_count = 0; + + void thread_loop(); + void teardown_thread(); +#ifdef PARALLEL_RDP_SHADER_DIR + Granite::Global::GlobalManagersHandle global_handles; +#endif +}; +} diff --git a/parallel-rdp/luts.hpp b/parallel-rdp/luts.hpp new file mode 100644 index 00000000..f5709698 --- /dev/null +++ b/parallel-rdp/luts.hpp @@ -0,0 +1,1556 @@ +#pragma once + +#include + +namespace RDP +{ +static const uint8_t blender_lut[0x8000] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, + 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, + 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, + 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 70, 70, 71, 71, 72, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, + 80, 80, 81, 81, 82, 82, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95, + 96, 96, 97, 97, 98, 98, 99, 99, 100, 100, 101, 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, + 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, + 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, 133, 133, 134, 134, 135, 135, 136, 136, 137, 137, 138, 138, 139, 139, 140, 140, 141, 141, 142, 142, 143, 143, + 144, 144, 145, 145, 146, 146, 147, 147, 148, 148, 149, 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, 154, 155, 155, 156, 156, 157, 157, 158, 158, 159, 159, + 160, 160, 161, 161, 162, 162, 163, 163, 164, 164, 165, 165, 166, 166, 167, 167, 168, 168, 169, 169, 170, 170, 171, 171, 172, 172, 173, 173, 174, 174, 175, 175, + 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 181, 182, 182, 183, 183, 184, 184, 185, 185, 186, 186, 187, 187, 188, 188, 189, 189, 190, 190, 191, 191, + 192, 192, 193, 193, 194, 194, 195, 195, 196, 196, 197, 197, 198, 198, 199, 199, 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, 205, 205, 206, 206, 207, 207, + 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 215, 215, 216, 216, 217, 217, 218, 218, 219, 219, 220, 220, 221, 221, 222, 222, 223, 223, + 224, 224, 225, 225, 226, 226, 227, 227, 228, 228, 229, 229, 230, 230, 231, 231, 232, 232, 233, 233, 234, 234, 235, 235, 236, 236, 237, 237, 238, 238, 239, 239, + 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255, 255, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, + 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, + 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, + 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, + 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, + 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 70, 70, 71, 71, 72, 72, 73, 73, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79, + 80, 80, 81, 81, 82, 82, 83, 83, 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 93, 93, 94, 94, 95, 95, + 96, 96, 97, 97, 98, 98, 99, 99, 100, 100, 101, 101, 102, 102, 103, 103, 104, 104, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, + 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 123, 124, 124, 125, 125, 126, 126, 127, 127, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, + 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, 43, 44, 44, 45, 45, 46, 46, 47, 47, + 48, 48, 49, 49, 50, 50, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 56, 56, 57, 57, 58, 58, 59, 59, 60, 60, 61, 61, 62, 62, 63, 63, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 2, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, + 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, + 32, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 35, 36, 36, 36, 37, 37, 37, 38, 38, 38, 39, 39, 39, 40, 40, 40, 41, 41, 41, 42, 42, + 42, 43, 43, 43, 44, 44, 44, 45, 45, 45, 46, 46, 46, 47, 47, 47, 48, 48, 48, 49, 49, 49, 50, 50, 50, 51, 51, 51, 52, 52, 52, 53, + 53, 53, 54, 54, 54, 55, 55, 55, 56, 56, 56, 57, 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, + 64, 64, 64, 65, 65, 65, 66, 66, 66, 67, 67, 67, 68, 68, 68, 69, 69, 69, 70, 70, 70, 71, 71, 71, 72, 72, 72, 73, 73, 73, 74, 74, + 74, 75, 75, 75, 76, 76, 76, 77, 77, 77, 78, 78, 78, 79, 79, 79, 80, 80, 80, 81, 81, 81, 82, 82, 82, 83, 83, 83, 84, 84, 84, 85, + 85, 85, 86, 86, 86, 87, 87, 87, 88, 88, 88, 89, 89, 89, 90, 90, 90, 91, 91, 91, 92, 92, 92, 93, 93, 93, 94, 94, 94, 95, 95, 95, + 96, 96, 96, 97, 97, 97, 98, 98, 98, 99, 99, 99, 100, 100, 100, 101, 101, 101, 102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, + 106, 107, 107, 107, 108, 108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 112, 113, 113, 113, 114, 114, 114, 115, 115, 115, 116, 116, 116, 117, + 117, 117, 118, 118, 118, 119, 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124, 124, 125, 125, 125, 126, 126, 126, 127, 127, 127, + 128, 128, 128, 129, 129, 129, 130, 130, 130, 131, 131, 131, 132, 132, 132, 133, 133, 133, 134, 134, 134, 135, 135, 135, 136, 136, 136, 137, 137, 137, 138, 138, + 138, 139, 139, 139, 140, 140, 140, 141, 141, 141, 142, 142, 142, 143, 143, 143, 144, 144, 144, 145, 145, 145, 146, 146, 146, 147, 147, 147, 148, 148, 148, 149, + 149, 149, 150, 150, 150, 151, 151, 151, 152, 152, 152, 153, 153, 153, 154, 154, 154, 155, 155, 155, 156, 156, 156, 157, 157, 157, 158, 158, 158, 159, 159, 159, + 160, 160, 160, 161, 161, 161, 162, 162, 162, 163, 163, 163, 164, 164, 164, 165, 165, 165, 166, 166, 166, 167, 167, 167, 168, 168, 168, 169, 169, 169, 170, 170, + 170, 171, 171, 171, 172, 172, 172, 173, 173, 173, 174, 174, 174, 175, 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, 178, 179, 179, 179, 180, 180, 180, 181, + 181, 181, 182, 182, 182, 183, 183, 183, 184, 184, 184, 185, 185, 185, 186, 186, 186, 187, 187, 187, 188, 188, 188, 189, 189, 189, 190, 190, 190, 191, 191, 191, + 192, 192, 192, 193, 193, 193, 194, 194, 194, 195, 195, 195, 196, 196, 196, 197, 197, 197, 198, 198, 198, 199, 199, 199, 200, 200, 200, 201, 201, 201, 202, 202, + 202, 203, 203, 203, 204, 204, 204, 205, 205, 205, 206, 206, 206, 207, 207, 207, 208, 208, 208, 209, 209, 209, 210, 210, 210, 211, 211, 211, 212, 212, 212, 213, + 213, 213, 214, 214, 214, 215, 215, 215, 216, 216, 216, 217, 217, 217, 218, 218, 218, 219, 219, 219, 220, 220, 220, 221, 221, 221, 222, 222, 222, 223, 223, 223, + 224, 224, 224, 225, 225, 225, 226, 226, 226, 227, 227, 227, 228, 228, 228, 229, 229, 229, 230, 230, 230, 231, 231, 231, 232, 232, 232, 233, 233, 233, 234, 234, + 234, 235, 235, 235, 236, 236, 236, 237, 237, 237, 238, 238, 238, 239, 239, 239, 240, 240, 240, 241, 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, + 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, 254, 255, 255, 255, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, + 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, + 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, + 32, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 35, 36, 36, 36, 37, 37, 37, 38, 38, 38, 39, 39, 39, 40, 40, 40, 41, 41, 41, 42, 42, + 42, 43, 43, 43, 44, 44, 44, 45, 45, 45, 46, 46, 46, 47, 47, 47, 48, 48, 48, 49, 49, 49, 50, 50, 50, 51, 51, 51, 52, 52, 52, 53, + 53, 53, 54, 54, 54, 55, 55, 55, 56, 56, 56, 57, 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, + 64, 64, 64, 65, 65, 65, 66, 66, 66, 67, 67, 67, 68, 68, 68, 69, 69, 69, 70, 70, 70, 71, 71, 71, 72, 72, 72, 73, 73, 73, 74, 74, + 74, 75, 75, 75, 76, 76, 76, 77, 77, 77, 78, 78, 78, 79, 79, 79, 80, 80, 80, 81, 81, 81, 82, 82, 82, 83, 83, 83, 84, 84, 84, 85, + 85, 85, 86, 86, 86, 87, 87, 87, 88, 88, 88, 89, 89, 89, 90, 90, 90, 91, 91, 91, 92, 92, 92, 93, 93, 93, 94, 94, 94, 95, 95, 95, + 96, 96, 96, 97, 97, 97, 98, 98, 98, 99, 99, 99, 100, 100, 100, 101, 101, 101, 102, 102, 102, 103, 103, 103, 104, 104, 104, 105, 105, 105, 106, 106, + 106, 107, 107, 107, 108, 108, 108, 109, 109, 109, 110, 110, 110, 111, 111, 111, 112, 112, 112, 113, 113, 113, 114, 114, 114, 115, 115, 115, 116, 116, 116, 117, + 117, 117, 118, 118, 118, 119, 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, 122, 123, 123, 123, 124, 124, 124, 125, 125, 125, 126, 126, 126, 127, 127, 127, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, + 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, + 32, 32, 32, 33, 33, 33, 34, 34, 34, 35, 35, 35, 36, 36, 36, 37, 37, 37, 38, 38, 38, 39, 39, 39, 40, 40, 40, 41, 41, 41, 42, 42, + 42, 43, 43, 43, 44, 44, 44, 45, 45, 45, 46, 46, 46, 47, 47, 47, 48, 48, 48, 49, 49, 49, 50, 50, 50, 51, 51, 51, 52, 52, 52, 53, + 53, 53, 54, 54, 54, 55, 55, 55, 56, 56, 56, 57, 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 21, + 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 29, 29, 29, 30, 30, 30, 31, 31, 31, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, + 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, + 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, + 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, + 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, + 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, + 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, + 56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63, + 64, 64, 64, 64, 65, 65, 65, 65, 66, 66, 66, 66, 67, 67, 67, 67, 68, 68, 68, 68, 69, 69, 69, 69, 70, 70, 70, 70, 71, 71, 71, 71, + 72, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 75, 75, 75, 75, 76, 76, 76, 76, 77, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, + 80, 80, 80, 80, 81, 81, 81, 81, 82, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 85, 85, 85, 85, 86, 86, 86, 86, 87, 87, 87, 87, + 88, 88, 88, 88, 89, 89, 89, 89, 90, 90, 90, 90, 91, 91, 91, 91, 92, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 95, + 96, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 101, 102, 102, 102, 102, 103, 103, 103, 103, + 104, 104, 104, 104, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 111, 111, 111, 111, + 112, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, + 120, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 125, 126, 126, 126, 126, 127, 127, 127, 127, + 128, 128, 128, 128, 129, 129, 129, 129, 130, 130, 130, 130, 131, 131, 131, 131, 132, 132, 132, 132, 133, 133, 133, 133, 134, 134, 134, 134, 135, 135, 135, 135, + 136, 136, 136, 136, 137, 137, 137, 137, 138, 138, 138, 138, 139, 139, 139, 139, 140, 140, 140, 140, 141, 141, 141, 141, 142, 142, 142, 142, 143, 143, 143, 143, + 144, 144, 144, 144, 145, 145, 145, 145, 146, 146, 146, 146, 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, 149, 149, 150, 150, 150, 150, 151, 151, 151, 151, + 152, 152, 152, 152, 153, 153, 153, 153, 154, 154, 154, 154, 155, 155, 155, 155, 156, 156, 156, 156, 157, 157, 157, 157, 158, 158, 158, 158, 159, 159, 159, 159, + 160, 160, 160, 160, 161, 161, 161, 161, 162, 162, 162, 162, 163, 163, 163, 163, 164, 164, 164, 164, 165, 165, 165, 165, 166, 166, 166, 166, 167, 167, 167, 167, + 168, 168, 168, 168, 169, 169, 169, 169, 170, 170, 170, 170, 171, 171, 171, 171, 172, 172, 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, 175, 175, 175, 175, + 176, 176, 176, 176, 177, 177, 177, 177, 178, 178, 178, 178, 179, 179, 179, 179, 180, 180, 180, 180, 181, 181, 181, 181, 182, 182, 182, 182, 183, 183, 183, 183, + 184, 184, 184, 184, 185, 185, 185, 185, 186, 186, 186, 186, 187, 187, 187, 187, 188, 188, 188, 188, 189, 189, 189, 189, 190, 190, 190, 190, 191, 191, 191, 191, + 192, 192, 192, 192, 193, 193, 193, 193, 194, 194, 194, 194, 195, 195, 195, 195, 196, 196, 196, 196, 197, 197, 197, 197, 198, 198, 198, 198, 199, 199, 199, 199, + 200, 200, 200, 200, 201, 201, 201, 201, 202, 202, 202, 202, 203, 203, 203, 203, 204, 204, 204, 204, 205, 205, 205, 205, 206, 206, 206, 206, 207, 207, 207, 207, + 208, 208, 208, 208, 209, 209, 209, 209, 210, 210, 210, 210, 211, 211, 211, 211, 212, 212, 212, 212, 213, 213, 213, 213, 214, 214, 214, 214, 215, 215, 215, 215, + 216, 216, 216, 216, 217, 217, 217, 217, 218, 218, 218, 218, 219, 219, 219, 219, 220, 220, 220, 220, 221, 221, 221, 221, 222, 222, 222, 222, 223, 223, 223, 223, + 224, 224, 224, 224, 225, 225, 225, 225, 226, 226, 226, 226, 227, 227, 227, 227, 228, 228, 228, 228, 229, 229, 229, 229, 230, 230, 230, 230, 231, 231, 231, 231, + 232, 232, 232, 232, 233, 233, 233, 233, 234, 234, 234, 234, 235, 235, 235, 235, 236, 236, 236, 236, 237, 237, 237, 237, 238, 238, 238, 238, 239, 239, 239, 239, + 240, 240, 240, 240, 241, 241, 241, 241, 242, 242, 242, 242, 243, 243, 243, 243, 244, 244, 244, 244, 245, 245, 245, 245, 246, 246, 246, 246, 247, 247, 247, 247, + 248, 248, 248, 248, 249, 249, 249, 249, 250, 250, 250, 250, 251, 251, 251, 251, 252, 252, 252, 252, 253, 253, 253, 253, 254, 254, 254, 254, 255, 255, 255, 255, + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, + 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, + 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, + 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, + 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, + 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, + 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, + 56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63, + 64, 64, 64, 64, 65, 65, 65, 65, 66, 66, 66, 66, 67, 67, 67, 67, 68, 68, 68, 68, 69, 69, 69, 69, 70, 70, 70, 70, 71, 71, 71, 71, + 72, 72, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 75, 75, 75, 75, 76, 76, 76, 76, 77, 77, 77, 77, 78, 78, 78, 78, 79, 79, 79, 79, + 80, 80, 80, 80, 81, 81, 81, 81, 82, 82, 82, 82, 83, 83, 83, 83, 84, 84, 84, 84, 85, 85, 85, 85, 86, 86, 86, 86, 87, 87, 87, 87, + 88, 88, 88, 88, 89, 89, 89, 89, 90, 90, 90, 90, 91, 91, 91, 91, 92, 92, 92, 92, 93, 93, 93, 93, 94, 94, 94, 94, 95, 95, 95, 95, + 96, 96, 96, 96, 97, 97, 97, 97, 98, 98, 98, 98, 99, 99, 99, 99, 100, 100, 100, 100, 101, 101, 101, 101, 102, 102, 102, 102, 103, 103, 103, 103, + 104, 104, 104, 104, 105, 105, 105, 105, 106, 106, 106, 106, 107, 107, 107, 107, 108, 108, 108, 108, 109, 109, 109, 109, 110, 110, 110, 110, 111, 111, 111, 111, + 112, 112, 112, 112, 113, 113, 113, 113, 114, 114, 114, 114, 115, 115, 115, 115, 116, 116, 116, 116, 117, 117, 117, 117, 118, 118, 118, 118, 119, 119, 119, 119, + 120, 120, 120, 120, 121, 121, 121, 121, 122, 122, 122, 122, 123, 123, 123, 123, 124, 124, 124, 124, 125, 125, 125, 125, 126, 126, 126, 126, 127, 127, 127, 127, + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, + 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, + 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, + 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, + 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, + 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, + 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, + 56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63, + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, + 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, + 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, + 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, + 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, + 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, + 12, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 19, + 19, 19, 19, 19, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 25, 25, 25, + 25, 25, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, + 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 38, 38, + 38, 38, 38, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 44, 44, 44, 44, + 44, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 51, + 51, 51, 51, 51, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 57, 57, 57, + 57, 57, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, + 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 70, 70, + 70, 70, 70, 71, 71, 71, 71, 71, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 76, 76, 76, 76, + 76, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 82, 82, 82, 82, 82, 83, + 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 89, 89, 89, + 89, 89, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, + 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 102, 102, + 102, 102, 102, 103, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 108, 108, 108, 108, + 108, 109, 109, 109, 109, 109, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, + 115, 115, 115, 115, 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 121, 121, 121, + 121, 121, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, + 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 133, 133, 133, 133, 133, 134, 134, + 134, 134, 134, 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, 137, 137, 137, 137, 137, 138, 138, 138, 138, 138, 139, 139, 139, 139, 139, 140, 140, 140, 140, + 140, 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, 143, 143, 143, 143, 143, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 146, 146, 146, 146, 146, 147, + 147, 147, 147, 147, 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 151, 151, 151, 151, 151, 152, 152, 152, 152, 152, 153, 153, 153, + 153, 153, 154, 154, 154, 154, 154, 155, 155, 155, 155, 155, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 159, 159, 159, 159, 159, + 160, 160, 160, 160, 160, 161, 161, 161, 161, 161, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 166, 166, + 166, 166, 166, 167, 167, 167, 167, 167, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 171, 171, 171, 171, 171, 172, 172, 172, 172, + 172, 173, 173, 173, 173, 173, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 178, 178, 178, 178, 178, 179, + 179, 179, 179, 179, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 184, 184, 184, 184, 184, 185, 185, 185, + 185, 185, 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, + 192, 192, 192, 192, 192, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 197, 197, 197, 197, 197, 198, 198, + 198, 198, 198, 199, 199, 199, 199, 199, 200, 200, 200, 200, 200, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 203, 203, 203, 203, 203, 204, 204, 204, 204, + 204, 205, 205, 205, 205, 205, 206, 206, 206, 206, 206, 207, 207, 207, 207, 207, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 210, 210, 210, 210, 210, 211, + 211, 211, 211, 211, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 217, 217, 217, + 217, 217, 218, 218, 218, 218, 218, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 223, 223, 223, 223, 223, + 224, 224, 224, 224, 224, 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 229, 229, 229, 229, 229, 230, 230, + 230, 230, 230, 231, 231, 231, 231, 231, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 236, 236, 236, 236, + 236, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 243, + 243, 243, 243, 243, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 249, 249, 249, + 249, 249, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, + 51, 51, 51, 51, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 57, 57, 57, + 57, 57, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, + 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 70, 70, + 70, 70, 70, 71, 71, 71, 71, 71, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 76, 76, 76, 76, + 76, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 82, 82, 82, 82, 82, 83, + 83, 83, 83, 83, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 89, 89, 89, + 89, 89, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, + 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 102, 102, + 102, 102, 102, 103, 103, 103, 103, 103, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 108, 108, 108, 108, + 108, 109, 109, 109, 109, 109, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 114, 114, 114, 114, 114, 115, + 115, 115, 115, 115, 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 121, 121, 121, + 121, 121, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, + 25, 25, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, + 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 38, 38, + 38, 38, 38, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 44, 44, 44, 44, + 44, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 51, + 51, 51, 51, 51, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 57, 57, 57, + 57, 57, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, + 12, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 19, + 19, 19, 19, 19, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 25, 25, 25, + 25, 25, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, + 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 12, + 12, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, + 6, 6, 6, 7, 7, 7, 7, 7, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, + 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, + 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, + 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 21, 21, + 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, + 26, 26, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, + 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 37, 37, + 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, + 42, 42, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, + 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 53, 53, + 53, 53, 53, 53, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, + 58, 58, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, + 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 68, 69, 69, + 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 74, 74, 74, 74, + 74, 74, 75, 75, 75, 75, 75, 75, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, + 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 84, 84, 84, 84, 84, 84, 85, 85, + 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 89, 90, 90, 90, 90, + 90, 90, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, + 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 101, 101, + 101, 101, 101, 101, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 105, 106, 106, 106, 106, + 106, 106, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 110, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 117, 117, + 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, + 122, 122, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, + 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, 132, 132, 133, 133, + 133, 133, 133, 133, 134, 134, 134, 134, 134, 134, 135, 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, 138, 138, 138, 138, + 138, 138, 139, 139, 139, 139, 139, 139, 140, 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, 142, 143, 143, 143, 143, 143, 143, + 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 149, 149, + 149, 149, 149, 149, 150, 150, 150, 150, 150, 150, 151, 151, 151, 151, 151, 151, 152, 152, 152, 152, 152, 152, 153, 153, 153, 153, 153, 153, 154, 154, 154, 154, + 154, 154, 155, 155, 155, 155, 155, 155, 156, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 158, 159, 159, 159, 159, 159, 159, + 160, 160, 160, 160, 160, 160, 161, 161, 161, 161, 161, 161, 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, 163, 164, 164, 164, 164, 164, 164, 165, 165, + 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 167, 167, 167, 167, 167, 167, 168, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, + 170, 170, 171, 171, 171, 171, 171, 171, 172, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 175, + 176, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 177, 178, 178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, 180, 181, 181, + 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 183, 184, 184, 184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, + 186, 186, 187, 187, 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, + 192, 192, 192, 192, 192, 192, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, 195, 195, 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, 197, 197, + 197, 197, 197, 197, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 199, 200, 200, 200, 200, 200, 200, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, + 202, 202, 203, 203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207, 207, 207, + 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 212, 212, 212, 212, 212, 212, 213, 213, + 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, + 218, 218, 219, 219, 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 223, 223, 223, 223, 223, 223, + 224, 224, 224, 224, 224, 224, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, 227, 228, 228, 228, 228, 228, 228, 229, 229, + 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, + 234, 234, 235, 235, 235, 235, 235, 235, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 239, + 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, + 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, + 250, 250, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, + 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 89, 90, 90, 90, 90, + 90, 90, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, + 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 100, 100, 100, 100, 100, 100, 101, 101, + 101, 101, 101, 101, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 105, 106, 106, 106, 106, + 106, 106, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 110, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 117, 117, + 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, + 122, 122, 123, 123, 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, + 42, 42, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, + 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 53, 53, + 53, 53, 53, 53, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, + 58, 58, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, + 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, + 26, 26, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, + 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, + 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 2, 2, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, + 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 9, + 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, + 13, 13, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, + 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, + 22, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, + 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, + 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, + 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 41, + 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, + 45, 45, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 50, 50, + 50, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54, 54, 54, 54, + 54, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58, 59, 59, 59, + 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, + 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, + 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 71, 72, 72, 72, 72, 72, 72, 72, 73, + 73, 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, + 77, 77, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 82, 82, + 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 84, 84, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, + 86, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, + 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, + 96, 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99, 100, 100, 100, 100, + 100, 100, 100, 101, 101, 101, 101, 101, 101, 101, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, 103, 104, 104, 104, 104, 104, 104, 104, 105, + 105, 105, 105, 105, 105, 105, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, + 109, 109, 110, 110, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 111, 111, 112, 112, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 113, 114, 114, + 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, + 118, 119, 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, + 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, + 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 132, 132, 132, 132, + 132, 132, 132, 133, 133, 133, 133, 133, 133, 133, 134, 134, 134, 134, 134, 134, 134, 135, 135, 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, 136, 136, 137, + 137, 137, 137, 137, 137, 137, 138, 138, 138, 138, 138, 138, 138, 139, 139, 139, 139, 139, 139, 139, 140, 140, 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, + 141, 141, 142, 142, 142, 142, 142, 142, 142, 143, 143, 143, 143, 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 146, 146, + 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 150, + 150, 151, 151, 151, 151, 151, 151, 151, 152, 152, 152, 152, 152, 152, 152, 153, 153, 153, 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 155, 155, 155, + 155, 155, 155, 155, 156, 156, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 158, 158, 159, 159, 159, 159, 159, 159, 159, + 160, 160, 160, 160, 160, 160, 160, 161, 161, 161, 161, 161, 161, 161, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, 163, 163, 164, 164, 164, 164, + 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 167, 167, 167, 167, 167, 167, 167, 168, 168, 168, 168, 168, 168, 168, 169, + 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, 171, 172, 172, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, + 173, 173, 174, 174, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 177, 177, 178, 178, + 178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 179, 179, 180, 180, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, + 182, 183, 183, 183, 183, 183, 183, 183, 184, 184, 184, 184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 186, 187, 187, 187, + 187, 187, 187, 187, 188, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, + 192, 192, 192, 192, 192, 192, 192, 193, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, 195, 195, 195, 195, 196, 196, 196, 196, + 196, 196, 196, 197, 197, 197, 197, 197, 197, 197, 198, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 199, 199, 200, 200, 200, 200, 200, 200, 200, 201, + 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 202, 203, 203, 203, 203, 203, 203, 203, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205, 205, + 205, 205, 206, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 210, 210, + 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 212, 212, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, + 214, 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, 216, 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, + 219, 219, 219, 219, 220, 220, 220, 220, 220, 220, 220, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222, 223, 223, 223, 223, 223, 223, 223, + 224, 224, 224, 224, 224, 224, 224, 225, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, 227, 227, 228, 228, 228, 228, + 228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 231, 232, 232, 232, 232, 232, 232, 232, 233, + 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237, + 237, 237, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 242, 242, + 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, + 246, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, + 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, + 109, 109, 110, 110, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 111, 111, 112, 112, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 113, 114, 114, + 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, + 118, 119, 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, + 123, 123, 123, 123, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, + 54, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58, 59, 59, 59, + 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, + 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, + 13, 13, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 6, 7, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, + 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, + 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, + 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, + 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, + 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, + 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, + 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35, + 36, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39, 39, 39, 39, + 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, + 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 47, + 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, + 52, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, + 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, + 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63, + 64, 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67, 67, 67, 67, + 68, 68, 68, 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71, 71, 71, 71, 71, + 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, + 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, + 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, + 84, 84, 84, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, + 88, 88, 88, 88, 88, 88, 88, 88, 89, 89, 89, 89, 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 91, 91, + 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, 95, + 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, + 100, 100, 100, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, 101, 101, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, 103, 103, + 104, 104, 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 107, 107, + 108, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 110, 110, 110, 110, 110, 110, 110, 110, 111, 111, 111, 111, 111, 111, 111, 111, + 112, 112, 112, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 113, 113, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 115, + 116, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 119, 119, 119, + 120, 120, 120, 120, 120, 120, 120, 120, 121, 121, 121, 121, 121, 121, 121, 121, 122, 122, 122, 122, 122, 122, 122, 122, 123, 123, 123, 123, 123, 123, 123, 123, + 124, 124, 124, 124, 124, 124, 124, 124, 125, 125, 125, 125, 125, 125, 125, 125, 126, 126, 126, 126, 126, 126, 126, 126, 127, 127, 127, 127, 127, 127, 127, 127, + 128, 128, 128, 128, 128, 128, 128, 128, 129, 129, 129, 129, 129, 129, 129, 129, 130, 130, 130, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, + 132, 132, 132, 132, 132, 132, 132, 132, 133, 133, 133, 133, 133, 133, 133, 133, 134, 134, 134, 134, 134, 134, 134, 134, 135, 135, 135, 135, 135, 135, 135, 135, + 136, 136, 136, 136, 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 138, 138, 138, 138, 138, 138, 138, 138, 139, 139, 139, 139, 139, 139, 139, 139, + 140, 140, 140, 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, 142, 142, 142, 142, 142, 142, 143, 143, 143, 143, 143, 143, 143, 143, + 144, 144, 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, 147, 147, 147, + 148, 148, 148, 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 151, 151, 151, 151, 151, 151, 151, 151, + 152, 152, 152, 152, 152, 152, 152, 152, 153, 153, 153, 153, 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, 155, 155, 155, 155, 155, 155, + 156, 156, 156, 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 158, 158, 158, 159, 159, 159, 159, 159, 159, 159, 159, + 160, 160, 160, 160, 160, 160, 160, 160, 161, 161, 161, 161, 161, 161, 161, 161, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, 163, 163, 163, + 164, 164, 164, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 167, 167, 167, 167, 167, 167, 167, 167, + 168, 168, 168, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, 171, 171, + 172, 172, 172, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 174, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 175, 175, 175, + 176, 176, 176, 176, 176, 176, 176, 176, 177, 177, 177, 177, 177, 177, 177, 177, 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 179, 179, 179, + 180, 180, 180, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 183, 183, 183, + 184, 184, 184, 184, 184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, 187, 187, 187, + 188, 188, 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 190, 190, 190, 191, 191, 191, 191, 191, 191, 191, 191, + 192, 192, 192, 192, 192, 192, 192, 192, 193, 193, 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, 195, 195, 195, 195, 195, + 196, 196, 196, 196, 196, 196, 196, 196, 197, 197, 197, 197, 197, 197, 197, 197, 198, 198, 198, 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, 199, 199, 199, + 200, 200, 200, 200, 200, 200, 200, 200, 201, 201, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, 203, 203, 203, 203, 203, 203, 203, 203, + 204, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207, 207, 207, 207, 207, + 208, 208, 208, 208, 208, 208, 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 211, + 212, 212, 212, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 215, 215, 215, 215, 215, 215, 215, 215, + 216, 216, 216, 216, 216, 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, 219, 219, 219, 219, + 220, 220, 220, 220, 220, 220, 220, 220, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 222, 222, 222, 222, 222, 223, 223, 223, 223, 223, 223, 223, 223, + 224, 224, 224, 224, 224, 224, 224, 224, 225, 225, 225, 225, 225, 225, 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, 227, 227, 227, + 228, 228, 228, 228, 228, 228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, 231, 231, 231, 231, + 232, 232, 232, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 239, 239, 239, + 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, + 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, + 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, + 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, + 227, 227, 226, 226, 229, 229, 228, 228, 228, 228, 228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 230, 231, + 231, 231, 231, 231, 229, 229, 228, 228, 235, 235, 234, 234, 232, 232, 232, 232, 232, 233, 233, 233, 233, 233, 233, 233, 233, 233, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 235, 235, 235, 235, 235, 235, 235, 234, 234, 237, 237, 236, 236, 236, 236, 236, 236, 236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 239, 235, 235, 234, 234, 232, 232, 232, 232, 247, 247, 247, 247, 245, 245, 244, 244, 240, 241, 241, 241, 241, 241, 241, 241, + 184, 185, 185, 185, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, 187, 187, 186, 186, 189, 189, 188, 188, + 174, 174, 174, 174, 174, 174, 174, 175, 171, 171, 170, 170, 168, 168, 168, 168, 161, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, + 135, 135, 135, 135, 133, 133, 132, 132, 139, 139, 138, 138, 136, 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 139, 139, 139, 139, 139, 139, 139, 138, 138, 141, 141, 140, 140, 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, + 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 23, 23, 23, 23, 21, 21, 20, 20, 16, 17, 17, 17, 17, 17, 17, 17, + 46, 46, 46, 46, 46, 46, 46, 47, 43, 43, 42, 42, 40, 40, 40, 40, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, + 35, 35, 34, 34, 37, 37, 36, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, + 39, 39, 39, 39, 37, 37, 36, 36, 43, 43, 42, 42, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 42, 42, 45, 45, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 47, 43, 43, 42, 42, 40, 40, 40, 40, 55, 55, 55, 55, 53, 53, 52, 52, 48, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 51, 50, 50, 53, 53, 52, 52, 52, 52, 52, 52, 52, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 54, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 53, 53, 52, 52, 59, 59, 58, 58, 56, 56, 56, 56, + 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 58, 58, 61, 61, 60, 60, + 46, 46, 46, 46, 46, 46, 46, 47, 43, 43, 42, 42, 40, 40, 40, 40, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, + 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 87, 87, 87, 87, 85, 85, 84, 84, 80, 81, 81, 81, 81, 81, 81, 81, + 67, 67, 66, 66, 69, 69, 68, 68, 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 70, 70, 71, + 71, 71, 71, 71, 69, 69, 68, 68, 75, 75, 74, 74, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 74, 74, 77, 77, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 79, 75, 75, 74, 74, 72, 72, 72, 72, 87, 87, 87, 87, 85, 85, 84, 84, 80, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 82, 82, 85, 85, 84, 84, 84, 84, 84, 84, 84, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 85, 85, 84, 84, 91, 91, 90, 90, 88, 88, 88, 88, + 88, 89, 89, 89, 89, 89, 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 91, 90, 90, 93, 93, 92, 92, + 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 87, 87, 87, 87, 85, 85, 84, 84, 80, 81, 81, 81, 81, 81, 81, 81, + 110, 110, 110, 110, 110, 110, 110, 111, 107, 107, 106, 106, 104, 104, 104, 104, 97, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, + 99, 99, 98, 98, 101, 101, 100, 100, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, 101, 101, 101, 102, 102, 102, 102, 102, 102, 102, 102, 102, 103, + 103, 103, 103, 103, 101, 101, 100, 100, 107, 107, 106, 106, 104, 104, 104, 104, 104, 105, 105, 105, 105, 105, 105, 105, 105, 105, 106, 106, 106, 106, 106, 106, + 106, 106, 106, 107, 107, 107, 107, 107, 107, 107, 106, 106, 109, 109, 108, 108, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 110, 110, + 110, 110, 110, 110, 110, 110, 110, 111, 107, 107, 106, 106, 104, 104, 104, 104, 119, 119, 119, 119, 117, 117, 116, 116, 112, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, 115, 115, 114, 114, 117, 117, 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 118, 118, 118, 119, 119, 119, 119, 119, 117, 117, 116, 116, 123, 123, 122, 122, 120, 120, 120, 120, + 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 87, 87, 87, 87, 85, 85, 84, 84, 80, 81, 81, 81, 81, 81, 81, 81, + 67, 67, 66, 66, 69, 69, 68, 68, 68, 68, 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 70, 70, 71, + 184, 185, 185, 185, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, 187, 187, 186, 186, 189, 189, 188, 188, + 174, 174, 174, 174, 174, 174, 174, 175, 171, 171, 170, 170, 168, 168, 168, 168, 161, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, + 135, 135, 135, 135, 133, 133, 132, 132, 139, 139, 138, 138, 136, 136, 136, 136, 136, 137, 137, 137, 137, 137, 137, 137, 137, 137, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 139, 139, 139, 139, 139, 139, 139, 138, 138, 141, 141, 140, 140, 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 143, 139, 139, 138, 138, 136, 136, 136, 136, 151, 151, 151, 151, 149, 149, 148, 148, 144, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, 147, 147, 146, 146, 149, 149, 148, 148, 148, 148, 148, 148, 148, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 150, 151, 151, 151, 151, 151, 149, 149, 148, 148, 155, 155, 154, 154, 152, 152, 152, 152, + 152, 153, 153, 153, 153, 153, 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, 155, 155, 155, 155, 155, 154, 154, 157, 157, 156, 156, + 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 151, 151, 151, 151, 149, 149, 148, 148, 144, 145, 145, 145, 145, 145, 145, 145, + 174, 174, 174, 174, 174, 174, 174, 175, 171, 171, 170, 170, 168, 168, 168, 168, 161, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, + 163, 163, 162, 162, 165, 165, 164, 164, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 166, 167, + 167, 167, 167, 167, 165, 165, 164, 164, 171, 171, 170, 170, 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 171, 171, 171, 171, 171, 171, 171, 170, 170, 173, 173, 172, 172, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 175, 171, 171, 170, 170, 168, 168, 168, 168, 183, 183, 183, 183, 181, 181, 180, 180, 176, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 179, 179, 178, 178, 181, 181, 180, 180, 180, 180, 180, 180, 180, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, 183, 183, 183, 183, 183, 181, 181, 180, 180, 187, 187, 186, 186, 184, 184, 184, 184, + 184, 185, 185, 185, 185, 185, 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, 187, 187, 186, 186, 189, 189, 188, 188, + 174, 174, 174, 174, 174, 174, 174, 175, 171, 171, 170, 170, 168, 168, 168, 168, 161, 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, + 220, 220, 220, 220, 220, 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 215, 215, 215, 215, 213, 213, 212, 212, 208, 209, 209, 209, 209, 209, 209, 209, + 195, 195, 194, 194, 197, 197, 196, 196, 196, 196, 196, 196, 196, 197, 197, 197, 197, 197, 197, 197, 197, 197, 198, 198, 198, 198, 198, 198, 198, 198, 198, 199, + 199, 199, 199, 199, 197, 197, 196, 196, 203, 203, 202, 202, 200, 200, 200, 200, 200, 201, 201, 201, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 203, 203, 203, 203, 203, 203, 203, 202, 202, 205, 205, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, 205, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 207, 203, 203, 202, 202, 200, 200, 200, 200, 215, 215, 215, 215, 213, 213, 212, 212, 208, 209, 209, 209, 209, 209, 209, 209, + 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 211, 211, 210, 210, 213, 213, 212, 212, 212, 212, 212, 212, 212, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 215, 215, 215, 215, 215, 213, 213, 212, 212, 219, 219, 218, 218, 216, 216, 216, 216, + 216, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, 219, 219, 219, 218, 218, 221, 221, 220, 220, + 220, 220, 220, 220, 220, 221, 221, 221, 221, 221, 221, 221, 221, 221, 222, 222, 215, 215, 215, 215, 213, 213, 212, 212, 208, 209, 209, 209, 209, 209, 209, 209, + 238, 238, 238, 238, 238, 238, 238, 239, 235, 235, 234, 234, 232, 232, 232, 232, 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, + 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 206, 206, 206, 206, 203, 203, 203, 203, 202, 202, 202, 202, 200, 200, 201, 201, 201, 201, 201, 201, + 214, 214, 214, 214, 214, 214, 215, 215, 213, 213, 213, 213, 212, 212, 212, 212, 209, 209, 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, + 211, 211, 211, 211, 210, 210, 210, 210, 213, 213, 213, 213, 212, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 215, 215, 213, 213, 213, 213, 212, 212, 212, 212, 219, 219, 219, 219, 218, 218, 218, 218, 216, 216, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, 219, 219, 218, 218, 218, 218, 221, 221, 221, 221, 220, 220, 220, 220, + 214, 214, 214, 214, 214, 214, 215, 215, 213, 213, 213, 213, 212, 212, 212, 212, 209, 209, 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, + 236, 236, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, 238, 235, 235, 235, 235, 234, 234, 234, 234, 232, 232, 233, 233, 233, 233, 233, 233, + 227, 227, 227, 227, 226, 226, 226, 226, 229, 229, 229, 229, 228, 228, 228, 228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230, + 179, 179, 179, 179, 178, 178, 178, 178, 181, 181, 181, 181, 180, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 183, 183, 181, 181, 181, 181, 180, 180, 180, 180, 187, 187, 187, 187, 186, 186, 186, 186, 184, 184, 185, 185, 185, 185, 185, 185, + 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 174, 174, 171, 171, 171, 171, 170, 170, 170, 170, 168, 168, 169, 169, 169, 169, 169, 169, + 163, 163, 163, 163, 162, 162, 162, 162, 165, 165, 165, 165, 164, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, + 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, 142, 142, 139, 139, 139, 139, 138, 138, 138, 138, 136, 136, 137, 137, 137, 137, 137, 137, + 150, 150, 150, 150, 150, 150, 151, 151, 149, 149, 149, 149, 148, 148, 148, 148, 145, 145, 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, + 147, 147, 147, 147, 146, 146, 146, 146, 149, 149, 149, 149, 148, 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 151, 151, 149, 149, 149, 149, 148, 148, 148, 148, 155, 155, 155, 155, 154, 154, 154, 154, 152, 152, 153, 153, 153, 153, 153, 153, + 51, 51, 51, 51, 50, 50, 50, 50, 53, 53, 53, 53, 52, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 55, 55, 53, 53, 53, 53, 52, 52, 52, 52, 59, 59, 59, 59, 58, 58, 58, 58, 56, 56, 57, 57, 57, 57, 57, 57, + 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 43, 43, 43, 43, 42, 42, 42, 42, 40, 40, 41, 41, 41, 41, 41, 41, + 35, 35, 35, 35, 34, 34, 34, 34, 37, 37, 37, 37, 36, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, + 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 90, 90, 90, 90, 93, 93, 93, 93, 92, 92, 92, 92, + 86, 86, 86, 86, 86, 86, 87, 87, 85, 85, 85, 85, 84, 84, 84, 84, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, + 70, 70, 70, 70, 70, 70, 71, 71, 69, 69, 69, 69, 68, 68, 68, 68, 75, 75, 75, 75, 74, 74, 74, 74, 72, 72, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 77, 77, 77, 77, 76, 76, 76, 76, + 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 75, 75, 75, 75, 74, 74, 74, 74, 72, 72, 73, 73, 73, 73, 73, 73, + 86, 86, 86, 86, 86, 86, 87, 87, 85, 85, 85, 85, 84, 84, 84, 84, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, + 83, 83, 83, 83, 82, 82, 82, 82, 85, 85, 85, 85, 84, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 87, 87, 85, 85, 85, 85, 84, 84, 84, 84, 91, 91, 91, 91, 90, 90, 90, 90, 88, 88, 89, 89, 89, 89, 89, 89, + 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 90, 90, 90, 90, 93, 93, 93, 93, 92, 92, 92, 92, + 86, 86, 86, 86, 86, 86, 87, 87, 85, 85, 85, 85, 84, 84, 84, 84, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, + 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 110, 110, 110, 110, 107, 107, 107, 107, 106, 106, 106, 106, 104, 104, 105, 105, 105, 105, 105, 105, + 99, 99, 99, 99, 98, 98, 98, 98, 101, 101, 101, 101, 100, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 103, 103, 101, 101, 101, 101, 100, 100, 100, 100, 107, 107, 107, 107, 106, 106, 106, 106, 104, 104, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 107, 106, 106, 106, 106, 109, 109, 109, 109, 108, 108, 108, 108, + 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 110, 110, 110, 110, 107, 107, 107, 107, 106, 106, 106, 106, 104, 104, 105, 105, 105, 105, 105, 105, + 118, 118, 118, 118, 118, 118, 119, 119, 117, 117, 117, 117, 116, 116, 116, 116, 113, 113, 113, 113, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 115, 115, + 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 91, 90, 90, 90, 90, 93, 93, 93, 93, 92, 92, 92, 92, + 86, 86, 86, 86, 86, 86, 87, 87, 85, 85, 85, 85, 84, 84, 84, 84, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, + 70, 70, 70, 70, 70, 70, 71, 71, 69, 69, 69, 69, 68, 68, 68, 68, 75, 75, 75, 75, 74, 74, 74, 74, 72, 72, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 77, 77, 77, 77, 76, 76, 76, 76, + 179, 179, 179, 179, 178, 178, 178, 178, 181, 181, 181, 181, 180, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 183, 183, 181, 181, 181, 181, 180, 180, 180, 180, 187, 187, 187, 187, 186, 186, 186, 186, 184, 184, 185, 185, 185, 185, 185, 185, + 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 174, 174, 171, 171, 171, 171, 170, 170, 170, 170, 168, 168, 169, 169, 169, 169, 169, 169, + 163, 163, 163, 163, 162, 162, 162, 162, 165, 165, 165, 165, 164, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, + 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, 142, 142, 139, 139, 139, 139, 138, 138, 138, 138, 136, 136, 137, 137, 137, 137, 137, 137, + 150, 150, 150, 150, 150, 150, 151, 151, 149, 149, 149, 149, 148, 148, 148, 148, 145, 145, 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, + 147, 147, 147, 147, 146, 146, 146, 146, 149, 149, 149, 149, 148, 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 151, 151, 149, 149, 149, 149, 148, 148, 148, 148, 155, 155, 155, 155, 154, 154, 154, 154, 152, 152, 153, 153, 153, 153, 153, 153, + 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, 155, 155, 155, 155, 154, 154, 154, 154, 157, 157, 157, 157, 156, 156, 156, 156, + 150, 150, 150, 150, 150, 150, 151, 151, 149, 149, 149, 149, 148, 148, 148, 148, 145, 145, 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, + 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 174, 174, 171, 171, 171, 171, 170, 170, 170, 170, 168, 168, 169, 169, 169, 169, 169, 169, + 163, 163, 163, 163, 162, 162, 162, 162, 165, 165, 165, 165, 164, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 167, 167, 165, 165, 165, 165, 164, 164, 164, 164, 171, 171, 171, 171, 170, 170, 170, 170, 168, 168, 169, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 171, 171, 171, 170, 170, 170, 170, 173, 173, 173, 173, 172, 172, 172, 172, + 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 174, 174, 171, 171, 171, 171, 170, 170, 170, 170, 168, 168, 169, 169, 169, 169, 169, 169, + 182, 182, 182, 182, 182, 182, 183, 183, 181, 181, 181, 181, 180, 180, 180, 180, 177, 177, 177, 177, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, + 179, 179, 179, 179, 178, 178, 178, 178, 181, 181, 181, 181, 180, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 183, 183, 181, 181, 181, 181, 180, 180, 180, 180, 187, 187, 187, 187, 186, 186, 186, 186, 184, 184, 185, 185, 185, 185, 185, 185, + 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 174, 174, 171, 171, 171, 171, 170, 170, 170, 170, 168, 168, 169, 169, 169, 169, 169, 169, + 163, 163, 163, 163, 162, 162, 162, 162, 165, 165, 165, 165, 164, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, + 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, 219, 219, 218, 218, 218, 218, 221, 221, 221, 221, 220, 220, 220, 220, + 214, 214, 214, 214, 214, 214, 215, 215, 213, 213, 213, 213, 212, 212, 212, 212, 209, 209, 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, + 198, 198, 198, 198, 198, 198, 199, 199, 197, 197, 197, 197, 196, 196, 196, 196, 203, 203, 203, 203, 202, 202, 202, 202, 200, 200, 201, 201, 201, 201, 201, 201, + 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 203, 203, 203, 203, 203, 203, 202, 202, 202, 202, 205, 205, 205, 205, 204, 204, 204, 204, + 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 165, 165, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 164, 165, 170, 171, 171, 171, 171, 171, 170, 170, + 213, 213, 212, 212, 212, 212, 212, 213, 218, 219, 219, 219, 219, 219, 218, 218, 218, 218, 218, 218, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, 219, 218, 218, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 213, 213, 213, 213, + 213, 213, 212, 212, 212, 212, 212, 213, 210, 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 210, 210, 210, 210, 210, 210, 213, 213, 213, 213, + 202, 202, 202, 202, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 203, 203, 203, 203, 203, 202, 202, + 202, 202, 202, 202, 205, 205, 205, 205, 205, 205, 204, 204, 204, 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, 205, 202, 203, 203, 203, 203, 203, 202, 202, + 202, 202, 202, 202, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 202, 202, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 213, 213, 213, 213, + 213, 213, 212, 212, 212, 212, 212, 213, 210, 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, 211, 210, 210, 210, 210, 210, 210, 213, 213, 213, 213, + 213, 213, 212, 212, 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 213, 213, 213, 213, + 213, 213, 212, 212, 212, 212, 212, 213, 218, 219, 219, 219, 219, 219, 218, 218, 218, 218, 218, 218, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, 219, 218, 218, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 213, 213, 213, 213, + 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 181, 181, 181, 181, + 181, 181, 180, 180, 180, 180, 180, 181, 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 178, 178, 178, 178, 178, 178, 181, 181, 181, 181, + 181, 181, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 181, 181, 181, 181, + 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 170, 171, 171, 171, 171, 171, 170, 170, + 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 165, 165, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 164, 165, 170, 171, 171, 171, 171, 171, 170, 170, + 149, 149, 148, 148, 148, 148, 148, 149, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, 146, 146, 146, 146, 146, 146, 149, 149, 149, 149, + 149, 149, 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 149, 149, 149, 149, + 149, 149, 148, 148, 148, 148, 148, 149, 154, 155, 155, 155, 155, 155, 154, 154, 154, 154, 154, 154, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, 155, 155, 155, 154, 154, 149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 149, 149, 149, 149, + 149, 149, 148, 148, 148, 148, 148, 149, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, 146, 146, 146, 146, 146, 146, 149, 149, 149, 149, + 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 170, 171, 171, 171, 171, 171, 170, 170, + 85, 85, 84, 84, 84, 84, 84, 85, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 82, 85, 85, 85, 85, + 74, 74, 74, 74, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 74, 74, + 74, 74, 74, 74, 77, 77, 77, 77, 77, 77, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 74, 75, 75, 75, 75, 75, 74, 74, + 74, 74, 74, 74, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, + 85, 85, 84, 84, 84, 84, 84, 85, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 82, 85, 85, 85, 85, + 85, 85, 84, 84, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, + 85, 85, 84, 84, 84, 84, 84, 85, 90, 91, 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 90, 90, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, + 85, 85, 84, 84, 84, 84, 84, 85, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 82, 85, 85, 85, 85, + 106, 106, 106, 106, 109, 109, 109, 109, 109, 109, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 106, 107, 107, 107, 107, 107, 106, 106, + 106, 106, 106, 106, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 106, 106, 101, 101, 100, 100, 100, 100, 100, 101, 101, 101, 101, 101, 101, 101, 101, 101, + 101, 101, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 101, 101, 101, 101, 101, 101, 100, 100, 100, 100, 100, 101, 106, 107, 107, 107, 107, 107, 106, 106, + 106, 106, 106, 106, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 107, 107, 106, 106, + 106, 106, 106, 106, 109, 109, 109, 109, 109, 109, 108, 108, 108, 108, 108, 109, 109, 109, 109, 109, 109, 109, 109, 109, 106, 107, 107, 107, 107, 107, 106, 106, + 85, 85, 84, 84, 84, 84, 84, 85, 90, 91, 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 91, 91, 91, 90, 90, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, + 85, 85, 84, 84, 84, 84, 84, 85, 82, 82, 82, 82, 82, 82, 82, 82, 82, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 82, 85, 85, 85, 85, + 74, 74, 74, 74, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 74, 74, + 74, 74, 74, 74, 77, 77, 77, 77, 77, 77, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 74, 75, 75, 75, 75, 75, 74, 74, + 74, 74, 74, 74, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, + 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 181, 181, 181, 181, + 181, 181, 180, 180, 180, 180, 180, 181, 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 178, 178, 178, 178, 178, 178, 181, 181, 181, 181, + 181, 181, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 181, 181, 181, 181, + 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 170, 171, 171, 171, 171, 171, 170, 170, + 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 165, 165, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 164, 165, 170, 171, 171, 171, 171, 171, 170, 170, + 149, 149, 148, 148, 148, 148, 148, 149, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, 146, 146, 146, 146, 146, 146, 149, 149, 149, 149, + 149, 149, 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 149, 149, 149, 149, + 149, 149, 148, 148, 148, 148, 148, 149, 154, 155, 155, 155, 155, 155, 154, 154, 154, 154, 154, 154, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, 155, 155, 155, 154, 154, 149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 149, 149, 149, 149, + 149, 149, 148, 148, 148, 148, 148, 149, 146, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, 146, 146, 146, 146, 146, 146, 149, 149, 149, 149, + 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 170, 171, 171, 171, 171, 171, 170, 170, + 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 165, 165, 164, 164, 164, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 164, 165, 170, 171, 171, 171, 171, 171, 170, 170, + 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 171, 171, 170, 170, + 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 170, 171, 171, 171, 171, 171, 170, 170, + 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 181, 181, 181, 181, + 181, 181, 180, 180, 180, 180, 180, 181, 178, 178, 178, 178, 178, 178, 178, 178, 178, 179, 179, 179, 179, 179, 178, 178, 178, 178, 178, 178, 181, 181, 181, 181, + 181, 181, 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 181, 181, 181, 181, + 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, 173, 173, 173, 170, 171, 171, 171, 171, 171, 170, 170, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 173, 173, 173, 173, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 180, 181, 181, 181, 181, + 178, 178, 178, 178, 179, 179, 179, 179, 178, 178, 178, 178, 178, 178, 178, 178, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 180, 181, 181, 181, 181, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 173, 173, 173, 173, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 165, 165, 165, 165, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 212, 213, 213, 213, 213, + 218, 218, 218, 218, 219, 219, 219, 219, 218, 218, 218, 218, 218, 218, 218, 218, 217, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, 218, + 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 212, 213, 213, 213, 213, + 210, 210, 210, 210, 211, 211, 211, 211, 210, 210, 210, 210, 210, 210, 210, 210, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 212, 213, 213, 213, 213, + 202, 202, 202, 202, 203, 203, 203, 203, 202, 202, 202, 202, 202, 202, 202, 202, 205, 205, 205, 205, 205, 205, 205, 205, 204, 204, 204, 204, 205, 205, 205, 205, + 202, 202, 202, 202, 203, 203, 203, 203, 202, 202, 202, 202, 202, 202, 202, 202, 201, 201, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, + 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 212, 213, 213, 213, 213, + 210, 210, 210, 210, 211, 211, 211, 211, 210, 210, 210, 210, 210, 210, 210, 210, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 212, 213, 213, 213, 213, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 173, 173, 173, 173, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 180, 181, 181, 181, 181, + 178, 178, 178, 178, 179, 179, 179, 179, 178, 178, 178, 178, 178, 178, 178, 178, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 180, 181, 181, 181, 181, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 173, 173, 173, 173, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 165, 165, 165, 165, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 148, 149, 149, 149, 149, + 154, 154, 154, 154, 155, 155, 155, 155, 154, 154, 154, 154, 154, 154, 154, 154, 153, 153, 153, 153, 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, + 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 148, 149, 149, 149, 149, + 146, 146, 146, 146, 147, 147, 147, 147, 146, 146, 146, 146, 146, 146, 146, 146, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 148, 149, 149, 149, 149, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 173, 173, 173, 173, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 165, 165, 165, 165, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 85, 85, 85, 85, + 90, 90, 90, 90, 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, + 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 85, 85, 85, 85, + 82, 82, 82, 82, 83, 83, 83, 83, 82, 82, 82, 82, 82, 82, 82, 82, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 85, 85, 85, 85, + 106, 106, 106, 106, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 109, 109, 109, 109, 109, 109, 109, 109, 108, 108, 108, 108, 109, 109, 109, 109, + 106, 106, 106, 106, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 105, 105, 105, 105, 105, 105, 105, 105, 106, 106, 106, 106, 106, 106, 106, 106, + 101, 101, 101, 101, 101, 101, 101, 101, 102, 102, 102, 102, 102, 102, 102, 102, 101, 101, 101, 101, 101, 101, 101, 101, 100, 100, 100, 100, 101, 101, 101, 101, + 106, 106, 106, 106, 107, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 105, 105, 105, 105, 105, 105, 105, 105, 106, 106, 106, 106, 106, 106, 106, 106, + 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 85, 85, 85, 85, + 90, 90, 90, 90, 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 89, 89, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, + 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 85, 85, 85, 85, + 82, 82, 82, 82, 83, 83, 83, 83, 82, 82, 82, 82, 82, 82, 82, 82, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 85, 85, 85, 85, + 74, 74, 74, 74, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 74, 74, 77, 77, 77, 77, 77, 77, 77, 77, 76, 76, 76, 76, 77, 77, 77, 77, + 74, 74, 74, 74, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 74, 74, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, + 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 85, 85, 85, 85, + 82, 82, 82, 82, 83, 83, 83, 83, 82, 82, 82, 82, 82, 82, 82, 82, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 85, 85, 85, 85, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 173, 173, 173, 173, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 182, 182, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 180, 181, 181, 181, 181, + 178, 178, 178, 178, 179, 179, 179, 179, 178, 178, 178, 178, 178, 178, 178, 178, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 180, 181, 181, 181, 181, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 173, 173, 173, 173, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 165, 165, 165, 165, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 148, 149, 149, 149, 149, + 154, 154, 154, 154, 155, 155, 155, 155, 154, 154, 154, 154, 154, 154, 154, 154, 153, 153, 153, 153, 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, + 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 150, 150, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 148, 149, 149, 149, 149, + 146, 146, 146, 146, 147, 147, 147, 147, 146, 146, 146, 146, 146, 146, 146, 146, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 148, 149, 149, 149, 149, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 172, 172, 172, 172, 173, 173, 173, 173, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, 164, 164, 165, 165, 165, 165, + 170, 170, 170, 170, 171, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, + 146, 146, 146, 146, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 172, 172, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, + 164, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 172, 172, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, + 182, 182, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 179, 179, 178, 178, 178, 178, 178, 178, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 172, 172, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, + 164, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 210, 210, 210, 210, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, + 214, 214, 214, 214, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 218, 218, 218, 218, 218, 218, 218, 219, + 219, 219, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 217, 217, 217, 217, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, + 214, 214, 214, 214, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 211, 211, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, + 205, 205, 205, 205, 205, 205, 204, 204, 202, 202, 202, 202, 202, 202, 202, 203, 203, 203, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 201, 201, 201, 201, + 164, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 172, 172, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, + 182, 182, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 179, 179, 178, 178, 178, 178, 178, 178, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 172, 172, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, + 164, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 155, 155, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 153, 153, 153, 153, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, + 150, 150, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 147, 147, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 172, 172, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, + 164, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 172, 172, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, + 109, 109, 109, 109, 109, 109, 108, 108, 106, 106, 106, 106, 106, 106, 106, 107, 107, 107, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 105, 105, 105, 105, + 105, 105, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 107, 102, 102, 102, 102, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 100, 100, + 82, 82, 82, 82, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, + 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 90, 90, 90, 90, 90, 90, 90, 91, + 91, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89, 89, 89, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, + 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 83, 83, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, + 77, 77, 77, 77, 77, 77, 76, 76, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 73, 73, 73, 73, + 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, + 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 83, 83, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, + 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 85, 85, 85, 85, 85, 85, 85, 90, 90, 90, 90, 90, 90, 90, 91, + 164, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 172, 172, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, + 182, 182, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 181, 181, 181, 181, 181, 181, 181, 179, 179, 178, 178, 178, 178, 178, 178, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 172, 172, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 166, 166, 166, 166, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 164, 164, + 164, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, + 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, + 155, 155, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 153, 153, 153, 153, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, + 150, 150, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 147, 147, 146, 146, 146, 146, 146, 146, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 165, 165, 165, 165, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 149, 149, 149, 149, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 146, 146, 146, 146, 146, 146, 146, 146, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 165, 165, 165, 165, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 181, 181, 181, 181, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 165, 165, 165, 165, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 213, 213, 213, 213, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 210, 210, 210, 210, 210, 210, 210, 210, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 219, 219, 218, 218, 218, 218, + 213, 213, 213, 213, 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 213, 213, 213, 213, 213, 213, 213, 213, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 165, 165, 165, 165, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 181, 181, 181, 181, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 165, 165, 165, 165, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 149, 149, 149, 149, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 146, 146, 146, 146, 146, 146, 146, 146, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 165, 165, 165, 165, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 181, 181, 181, 181, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 85, 85, 85, 85, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 82, 82, 82, 82, 82, 82, 82, 82, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, + 74, 74, 74, 74, 74, 74, 74, 74, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 74, 74, 74, 74, + 85, 85, 85, 85, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 82, 82, 82, 82, 82, 82, 82, 82, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91, 90, 90, 90, 90, + 85, 85, 85, 85, 84, 84, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 165, 165, 165, 165, 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 181, 181, 181, 181, 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 181, 181, 181, 181, 181, 181, 181, 181, + 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 181, 181, 181, 181, 181, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 148, 149, 149, 149, 149, 149, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 181, 181, 181, 181, 181, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 212, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 210, 210, 210, 210, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 212, 213, 213, 213, 213, 213, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 181, 181, 181, 181, 181, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 148, 149, 149, 149, 149, 149, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 181, 181, 181, 181, 181, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 90, 90, 90, 90, 90, 90, 90, 90, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86, 86, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 82, 82, 82, 82, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 84, 85, 85, 85, 85, 85, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 173, 173, 173, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 165, 165, 165, 165, 165, 165, 165, 165, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, +}; + +static const uint8_t gamma_table[256 + 256 * 64] = { + 0, 16, 22, 26, 32, 34, 38, 42, 44, 48, 50, 52, 54, 56, 58, 60, 64, 64, 66, 68, 70, 72, 74, 76, 78, 80, 80, 82, 84, 86, 86, 88, + 90, 90, 92, 94, 96, 96, 98, 98, 100, 102, 102, 104, 106, 106, 108, 108, 110, 112, 112, 114, 114, 116, 116, 118, 118, 120, 120, 122, 122, 124, 124, 126, + 128, 128, 128, 130, 130, 132, 132, 134, 134, 136, 136, 138, 138, 140, 140, 142, 142, 144, 144, 144, 146, 146, 148, 148, 150, 150, 150, 152, 152, 154, 154, 154, + 156, 156, 158, 158, 160, 160, 160, 162, 162, 162, 164, 164, 166, 166, 166, 168, 168, 170, 170, 170, 172, 172, 172, 174, 174, 176, 176, 176, 178, 178, 178, 180, + 180, 180, 182, 182, 182, 184, 184, 184, 186, 186, 186, 188, 188, 188, 190, 190, 192, 192, 192, 192, 194, 194, 194, 196, 196, 196, 198, 198, 198, 200, 200, 200, + 202, 202, 202, 204, 204, 204, 206, 206, 206, 208, 208, 208, 208, 210, 210, 210, 212, 212, 212, 214, 214, 214, 214, 216, 216, 216, 218, 218, 218, 218, 220, 220, + 220, 222, 222, 222, 224, 224, 224, 224, 226, 226, 226, 226, 228, 228, 228, 230, 230, 230, 230, 232, 232, 232, 234, 234, 234, 234, 236, 236, 236, 236, 238, 238, + 238, 240, 240, 240, 240, 242, 242, 242, 242, 244, 244, 244, 244, 246, 246, 246, 246, 248, 248, 248, 248, 250, 250, 250, 250, 252, 252, 252, 252, 254, 254, 254, + 0, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, + 42, 42, 42, 42, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, + 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 68, 68, 68, 68, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, + 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, + 88, 88, 88, 88, 88, 88, 88, 88, 88, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, + 90, 90, 90, 90, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 92, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, + 100, 100, 100, 100, 100, 100, 100, 100, 100, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 106, 106, 106, 106, 106, 106, + 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 106, 106, 106, 106, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 114, 114, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, + 120, 120, 120, 120, 120, 120, 120, 120, 120, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, + 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, + 146, 146, 146, 146, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, + 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, + 152, 152, 152, 152, 152, 152, 152, 152, 152, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, + 154, 154, 154, 154, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 184, 184, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 216, 216, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, + 226, 226, 226, 226, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, + 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, + 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, + 242, 242, 242, 242, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, + 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, + 250, 250, 250, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, + 252, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, + 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, + 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, + 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, + 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, + 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, + 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, + 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, +}; +} diff --git a/parallel-rdp/rdp_common.hpp b/parallel-rdp/rdp_common.hpp new file mode 100644 index 00000000..4609e2c8 --- /dev/null +++ b/parallel-rdp/rdp_common.hpp @@ -0,0 +1,410 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +namespace Vulkan +{ +class Program; +class Shader; +} + +namespace RDP +{ +template struct Shaders; +using ShaderBank = Shaders; + +// list of command IDs +enum class Op +{ + Nop = 0, + + MetaSignalTimeline = 1, + MetaFlush = 2, + MetaIdle = 3, + MetaSetQuirks = 4, + + FillTriangle = 0x08, + FillZBufferTriangle = 0x09, + TextureTriangle = 0x0a, + TextureZBufferTriangle = 0x0b, + ShadeTriangle = 0x0c, + ShadeZBufferTriangle = 0x0d, + ShadeTextureTriangle = 0x0e, + ShadeTextureZBufferTriangle = 0x0f, + TextureRectangle = 0x24, + TextureRectangleFlip = 0x25, + SyncLoad = 0x26, + SyncPipe = 0x27, + SyncTile = 0x28, + SyncFull = 0x29, + SetKeyGB = 0x2a, + SetKeyR = 0x2b, + SetConvert = 0x2c, + SetScissor = 0x2d, + SetPrimDepth = 0x2e, + SetOtherModes = 0x2f, + LoadTLut = 0x30, + SetTileSize = 0x32, + LoadBlock = 0x33, + LoadTile = 0x34, + SetTile = 0x35, + FillRectangle = 0x36, + SetFillColor = 0x37, + SetFogColor = 0x38, + SetBlendColor = 0x39, + SetPrimColor = 0x3a, + SetEnvColor = 0x3b, + SetCombine = 0x3c, + SetTextureImage = 0x3d, + SetMaskImage = 0x3e, + SetColorImage = 0x3f +}; + +enum class RGBMul : uint8_t +{ + Combined = 0, + Texel0 = 1, + Texel1 = 2, + Primitive = 3, + Shade = 4, + Env = 5, + KeyScale = 6, + CombinedAlpha = 7, + Texel0Alpha = 8, + Texel1Alpha = 9, + PrimitiveAlpha = 10, + ShadeAlpha = 11, + EnvAlpha = 12, + LODFrac = 13, + PrimLODFrac = 14, + ConvertK5 = 15, + Zero = 16 +}; + +enum class RGBMulAdd : uint8_t +{ + Combined = 0, + Texel0 = 1, + Texel1 = 2, + Primitive = 3, + Shade = 4, + Env = 5, + One = 6, + Noise = 7, + Zero = 8 +}; + +enum class RGBMulSub : uint8_t +{ + Combined = 0, + Texel0 = 1, + Texel1 = 2, + Primitive = 3, + Shade = 4, + Env = 5, + KeyCenter = 6, + ConvertK4 = 7, + Zero = 8 +}; + +enum class RGBAdd : uint8_t +{ + Combined = 0, + Texel0 = 1, + Texel1 = 2, + Primitive = 3, + Shade = 4, + Env = 5, + One = 6, + Zero = 7 +}; + +enum class AlphaAddSub : uint8_t +{ + CombinedAlpha = 0, + Texel0Alpha = 1, + Texel1Alpha = 2, + PrimitiveAlpha = 3, + ShadeAlpha = 4, + EnvAlpha = 5, + One = 6, + Zero = 7 +}; + +enum class AlphaMul : uint8_t +{ + LODFrac = 0, + Texel0Alpha = 1, + Texel1Alpha = 2, + PrimitiveAlpha = 3, + ShadeAlpha = 4, + EnvAlpha = 5, + PrimLODFrac = 6, + Zero = 7 +}; + +enum class TextureSize : uint8_t +{ + Bpp4 = 0, + Bpp8 = 1, + Bpp16 = 2, + Bpp32 = 3 +}; + +enum class TextureFormat : uint8_t +{ + RGBA = 0, + YUV = 1, + CI = 2, + IA = 3, + I = 4 +}; + +enum class RGBDitherMode : uint8_t +{ + Magic = 0, + Bayer = 1, + Noise = 2, + Off = 3 +}; + +enum class AlphaDitherMode : uint8_t +{ + Pattern = 0, + InvPattern = 1, + Noise = 2, + Off = 3 +}; + +enum class CycleType : uint8_t +{ + Cycle1 = 0, + Cycle2 = 1, + Copy = 2, + Fill = 3 +}; + +enum class BlendMode1A : uint8_t +{ + PixelColor = 0, + MemoryColor = 1, + BlendColor = 2, + FogColor = 3 +}; + +enum class BlendMode1B : uint8_t +{ + PixelAlpha = 0, + FogAlpha = 1, + ShadeAlpha = 2, + Zero = 3 +}; + +enum class BlendMode2A : uint8_t +{ + PixelColor = 0, + MemoryColor = 1, + BlendColor = 2, + FogColor = 3 +}; + +enum class BlendMode2B : uint8_t +{ + InvPixelAlpha = 0, + MemoryAlpha = 1, + One = 2, + Zero = 3 +}; + +enum class CoverageMode : uint8_t +{ + Clamp = 0, + Wrap = 1, + Zap = 2, + Save = 3 +}; + +enum class ZMode : uint8_t +{ + Opaque = 0, + Interpenetrating = 1, + Transparent = 2, + Decal = 3 +}; + +enum TileInfoFlagBits +{ + TILE_INFO_CLAMP_S_BIT = 1 << 0, + TILE_INFO_MIRROR_S_BIT = 1 << 1, + TILE_INFO_CLAMP_T_BIT = 1 << 2, + TILE_INFO_MIRROR_T_BIT = 1 << 3 +}; +using TileInfoFlags = uint8_t; + +struct TileSize +{ + uint32_t slo = 0; + uint32_t shi = 0; + uint32_t tlo = 0; + uint32_t thi = 0; +}; + +struct TileMeta +{ + uint32_t offset = 0; + uint32_t stride = 0; + TextureFormat fmt = TextureFormat::RGBA; + TextureSize size = TextureSize::Bpp16; + uint8_t palette = 0; + uint8_t mask_s = 0; + uint8_t shift_s = 0; + uint8_t mask_t = 0; + uint8_t shift_t = 0; + TileInfoFlags flags = 0; +}; + +struct TileInfo +{ + TileSize size; + TileMeta meta; +}; + +struct CombinerInputsRGB +{ + RGBMulAdd muladd; + RGBMulSub mulsub; + RGBMul mul; + RGBAdd add; +}; + +struct CombinerInputsAlpha +{ + AlphaAddSub muladd; + AlphaAddSub mulsub; + AlphaMul mul; + AlphaAddSub add; +}; + +struct CombinerInputs +{ + CombinerInputsRGB rgb; + CombinerInputsAlpha alpha; +}; + +struct BlendModes +{ + BlendMode1A blend_1a; + BlendMode1B blend_1b; + BlendMode2A blend_2a; + BlendMode2B blend_2b; +}; + +static_assert(sizeof(TileInfo) == 32, "TileInfo must be 32 bytes."); + +enum class VIRegister +{ + Control = 0, + Origin, + Width, + Intr, + VCurrentLine, + Timing, + VSync, + HSync, + Leap, + HStart, + VStart, + VBurst, + XScale, + YScale, + Count +}; + +enum VIControlFlagBits +{ + VI_CONTROL_TYPE_BLANK_BIT = 0 << 0, + VI_CONTROL_TYPE_RESERVED_BIT = 1 << 0, + VI_CONTROL_TYPE_RGBA5551_BIT = 2 << 0, + VI_CONTROL_TYPE_RGBA8888_BIT = 3 << 0, + VI_CONTROL_TYPE_MASK = 3 << 0, + VI_CONTROL_GAMMA_DITHER_ENABLE_BIT = 1 << 2, + VI_CONTROL_GAMMA_ENABLE_BIT = 1 << 3, + VI_CONTROL_DIVOT_ENABLE_BIT = 1 << 4, + VI_CONTROL_SERRATE_BIT = 1 << 6, + VI_CONTROL_AA_MODE_RESAMP_EXTRA_ALWAYS_BIT = 0 << 8, + VI_CONTROL_AA_MODE_RESAMP_EXTRA_BIT = 1 << 8, + VI_CONTROL_AA_MODE_RESAMP_ONLY_BIT = 2 << 8, + VI_CONTROL_AA_MODE_RESAMP_REPLICATE_BIT = 3 << 8, + VI_CONTROL_AA_MODE_MASK = 3 << 8, + VI_CONTROL_DITHER_FILTER_ENABLE_BIT = 1 << 16, + VI_CONTROL_META_AA_BIT = 1 << 17, + VI_CONTROL_META_SCALE_BIT = 1 << 18 +}; +using VIControlFlags = uint32_t; + +static inline uint32_t make_vi_start_register(uint32_t start_value, uint32_t end_value) +{ + return ((start_value & 0x3ff) << 16) | (end_value & 0x3ff); +} + +static inline uint32_t make_vi_scale_register(uint32_t scale_factor, uint32_t bias) +{ + return ((bias & 0xfff) << 16) | (scale_factor & 0xfff); +} + +constexpr uint32_t VI_V_SYNC_NTSC = 525; +constexpr uint32_t VI_V_SYNC_PAL = 625; +constexpr uint32_t VI_H_OFFSET_NTSC = 108; +constexpr uint32_t VI_H_OFFSET_PAL = 128; +constexpr uint32_t VI_V_OFFSET_NTSC = 34; +constexpr uint32_t VI_V_OFFSET_PAL = 44; +constexpr uint32_t VI_V_RES_NTSC = 480; +constexpr uint32_t VI_V_RES_PAL = 576; +constexpr int VI_SCANOUT_WIDTH = 640; + +constexpr uint32_t VI_V_RES_MAX = VI_V_RES_PAL > VI_V_RES_NTSC ? VI_V_RES_PAL : VI_V_RES_NTSC; +// Handle odd v_start as well. Needed for rounding to work in our favor. +constexpr uint32_t VI_V_END_PAL = (VI_V_OFFSET_PAL + VI_V_RES_PAL) | 1; +constexpr uint32_t VI_V_END_NTSC = (VI_V_OFFSET_NTSC + VI_V_RES_NTSC) | 1; +constexpr uint32_t VI_V_END_MAX = VI_V_END_PAL > VI_V_END_NTSC ? VI_V_END_PAL : VI_V_END_NTSC; + +constexpr uint32_t VI_MAX_OUTPUT_SCANLINES = (VI_V_RES_MAX >> 1); + +static inline uint32_t make_default_v_start() +{ + return make_vi_start_register(VI_V_OFFSET_NTSC, VI_V_OFFSET_NTSC + 224 * 2); +} + +static inline uint32_t make_default_h_start() +{ + return make_vi_start_register(VI_H_OFFSET_NTSC, VI_H_OFFSET_NTSC + VI_SCANOUT_WIDTH); +} + +template +static int32_t sext(int32_t v) +{ + struct { int32_t dummy : bits; } d; + d.dummy = v; + return d.dummy; +} +} \ No newline at end of file diff --git a/parallel-rdp/rdp_data_structures.hpp b/parallel-rdp/rdp_data_structures.hpp new file mode 100644 index 00000000..c4c5fe63 --- /dev/null +++ b/parallel-rdp/rdp_data_structures.hpp @@ -0,0 +1,392 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include +#include +#include "rdp_common.hpp" + +namespace RDP +{ +enum TriangleSetupFlagBits +{ + TRIANGLE_SETUP_FLIP_BIT = 1 << 0, + TRIANGLE_SETUP_DO_OFFSET_BIT = 1 << 1, + TRIANGLE_SETUP_SKIP_XFRAC_BIT = 1 << 2, + TRIANGLE_SETUP_INTERLACE_FIELD_BIT = 1 << 3, + TRIANGLE_SETUP_INTERLACE_KEEP_ODD_BIT = 1 << 4, + TRIANGLE_SETUP_DISABLE_UPSCALING_BIT = 1 << 5, + TRIANGLE_SETUP_NATIVE_LOD_BIT = 1 << 6, + TRIANGLE_SETUP_FILL_COPY_RASTER_BIT = 1 << 7 +}; +using TriangleSetupFlags = uint8_t; + +enum StaticRasterizationFlagBits +{ + RASTERIZATION_INTERLACE_FIELD_BIT = 1 << 0, + RASTERIZATION_INTERLACE_KEEP_ODD_BIT = 1 << 1, + RASTERIZATION_AA_BIT = 1 << 2, + RASTERIZATION_PERSPECTIVE_CORRECT_BIT = 1 << 3, + RASTERIZATION_TLUT_BIT = 1 << 4, + RASTERIZATION_TLUT_TYPE_BIT = 1 << 5, + RASTERIZATION_CVG_TIMES_ALPHA_BIT = 1 << 6, + RASTERIZATION_ALPHA_CVG_SELECT_BIT = 1 << 7, + RASTERIZATION_MULTI_CYCLE_BIT = 1 << 8, + RASTERIZATION_TEX_LOD_ENABLE_BIT = 1 << 9, + RASTERIZATION_SHARPEN_LOD_ENABLE_BIT = 1 << 10, + RASTERIZATION_DETAIL_LOD_ENABLE_BIT = 1 << 11, + RASTERIZATION_FILL_BIT = 1 << 12, + RASTERIZATION_COPY_BIT = 1 << 13, + RASTERIZATION_SAMPLE_MODE_BIT = 1 << 14, + RASTERIZATION_ALPHA_TEST_BIT = 1 << 15, + RASTERIZATION_ALPHA_TEST_DITHER_BIT = 1 << 16, + RASTERIZATION_SAMPLE_MID_TEXEL_BIT = 1 << 17, + RASTERIZATION_USES_TEXEL0_BIT = 1 << 18, + RASTERIZATION_USES_TEXEL1_BIT = 1 << 19, + RASTERIZATION_USES_LOD_BIT = 1 << 20, + RASTERIZATION_USES_PIPELINED_TEXEL1_BIT = 1 << 21, + RASTERIZATION_CONVERT_ONE_BIT = 1 << 22, + RASTERIZATION_BILERP_0_BIT = 1 << 23, + RASTERIZATION_BILERP_1_BIT = 1 << 24, + RASTERIZATION_NEED_NOISE_DUAL_BIT = 1 << 25, + RASTERIZATION_UPSCALING_LOG2_BIT_OFFSET = 26, + // Bit 26 and 27 holds upscaling factor in LOG2. + RASTERIZATION_NEED_NOISE_BIT = 1 << 28, + RASTERIZATION_USE_STATIC_TEXTURE_SIZE_FORMAT_BIT = 1 << 29, + RASTERIZATION_USE_SPECIALIZATION_CONSTANT_BIT = 1 << 30 +}; +using StaticRasterizationFlags = uint32_t; + +enum DepthBlendFlagBits +{ + DEPTH_BLEND_DEPTH_TEST_BIT = 1 << 0, + DEPTH_BLEND_DEPTH_UPDATE_BIT = 1 << 1, + DEPTH_BLEND_FORCE_BLEND_BIT = 1 << 3, + DEPTH_BLEND_IMAGE_READ_ENABLE_BIT = 1 << 4, + DEPTH_BLEND_COLOR_ON_COVERAGE_BIT = 1 << 5, + DEPTH_BLEND_MULTI_CYCLE_BIT = 1 << 6, + DEPTH_BLEND_AA_BIT = 1 << 7, + DEPTH_BLEND_DITHER_ENABLE_BIT = 1 << 8 +}; +using DepthBlendFlags = uint32_t; + +struct TriangleSetup +{ + int32_t xh, xm, xl; + int16_t yh, ym; + + int32_t dxhdy, dxmdy, dxldy; + int16_t yl; + TriangleSetupFlags flags; + uint8_t tile; +}; + +struct AttributeSetup +{ + int32_t r, g, b, a; + int32_t drdx, dgdx, dbdx, dadx; + int32_t drde, dgde, dbde, dade; + int32_t drdy, dgdy, dbdy, dady; + + int32_t s, t, z, w; + int32_t dsdx, dtdx, dzdx, dwdx; + int32_t dsde, dtde, dzde, dwde; + int32_t dsdy, dtdy, dzdy, dwdy; +}; + +struct ConstantCombinerInputs +{ + uint8_t muladd[4]; + uint8_t mulsub[4]; + uint8_t mul[4]; + uint8_t add[4]; +}; + +// Per-primitive state which is very dynamic in nature and does not change anything about the shader itself. +struct DerivedSetup +{ + ConstantCombinerInputs constants[2]; + uint8_t fog_color[4]; + uint8_t blend_color[4]; + uint32_t fill_color; + uint16_t dz; + uint8_t dz_compressed; + uint8_t min_lod; + int16_t convert_factors[4]; +}; + +static_assert((sizeof(TriangleSetup) & 15) == 0, "TriangleSetup must be aligned to 16 bytes."); +static_assert((sizeof(AttributeSetup) & 15) == 0, "AttributeSetup must be aligned to 16 bytes."); +static_assert(sizeof(DerivedSetup) == 56, "DerivedSetup is not 56 bytes."); + +struct ScissorState +{ + uint32_t xlo; + uint32_t ylo; + uint32_t xhi; + uint32_t yhi; +}; + +struct StaticRasterizationState +{ + CombinerInputs combiner[2]; + StaticRasterizationFlags flags; + uint32_t dither; + uint32_t texture_size; + uint32_t texture_fmt; +}; +static_assert(sizeof(StaticRasterizationState) == 32, "StaticRasterizationState must be 32 bytes."); + +struct DepthBlendState +{ + BlendModes blend_cycles[2]; + DepthBlendFlags flags; + CoverageMode coverage_mode; + ZMode z_mode; + uint8_t padding[2]; +}; +static_assert(sizeof(DepthBlendState) == 16, "DepthBlendState must be 16 bytes."); + +struct InstanceIndices +{ + uint8_t static_index; + uint8_t depth_blend_index; + uint8_t tile_instance_index; + uint8_t padding[5]; + uint8_t tile_indices[8]; +}; +static_assert((sizeof(InstanceIndices) & 15) == 0, "InstanceIndices must be aligned to 16 bytes."); + +struct UploadInfo +{ + int32_t width, height; + float min_t_mod, max_t_mod; + + int32_t vram_addr; + int32_t vram_width; + int32_t vram_size; + int32_t vram_effective_width; + + int32_t tmem_offset; + int32_t tmem_stride_words; + int32_t tmem_size; + int32_t tmem_fmt; + + int32_t mode; + float inv_tmem_stride_words; + int32_t dxt; + int32_t padding; +}; +static_assert((sizeof(UploadInfo) & 15) == 0, "UploadInfo must be aligned to 16 bytes."); + +struct SpanSetup +{ + int32_t r, g, b, a; + int32_t s, t, w, z; + + int16_t xlo[4]; + int16_t xhi[4]; + + int32_t interpolation_base_x; + int32_t start_x; + int32_t end_x; + int16_t lodlength; + uint16_t valid_line; +}; +static_assert((sizeof(SpanSetup) & 15) == 0, "SpanSetup is not aligned to 16 bytes."); + +struct SpanInfoOffsets +{ + int32_t offset, ylo, yhi, padding; +}; +static_assert((sizeof(SpanInfoOffsets) == 16), "SpanInfoOffsets is not 16 bytes."); + +struct SpanInterpolationJob +{ + uint16_t primitive_index, base_y, max_y, padding; +}; +static_assert((sizeof(SpanInterpolationJob) == 8), "SpanInterpolationJob is not 8 bytes."); + +struct GlobalState +{ + uint32_t addr_index; + uint32_t depth_addr_index; + uint32_t fb_width, fb_height; + uint32_t group_mask; +}; + +struct TileRasterWork +{ + uint32_t tile_x, tile_y; + uint32_t tile_instance; + uint32_t primitive; +}; +static_assert((sizeof(TileRasterWork) == 16), "TileRasterWork is not 16 bytes."); + +struct GlobalFBInfo +{ + uint32_t dx_shift; + uint32_t dx_mask; + uint32_t fb_size; + uint32_t base_primitive_index; +}; + +template +class StateCache +{ +public: + unsigned add(const T &t) + { + if (cached_index >= 0) + if (memcmp(&elements[cached_index], &t, sizeof(T)) == 0) + return unsigned(cached_index); + + for (int i = int(count) - 1; i >= 0; i--) + { + if (memcmp(&elements[i], &t, sizeof(T)) == 0) + { + cached_index = i; + return unsigned(i); + } + } + + assert(count < N); + memcpy(elements + count, &t, sizeof(T)); + unsigned ret = count++; + cached_index = int(ret); + return ret; + } + + bool full() const + { + return count == N; + } + + unsigned size() const + { + return count; + } + + unsigned byte_size() const + { + return size() * sizeof(T); + } + + const T *data() const + { + return elements; + } + + void reset() + { + count = 0; + cached_index = -1; + } + + bool empty() const + { + return count == 0; + } + +private: + unsigned count = 0; + int cached_index = -1; + T elements[N]; +}; + +template +class StreamCache +{ +public: + void add(const T &t) + { + assert(count < N); + memcpy(&elements[count++], &t, sizeof(T)); + } + + bool full() const + { + return count == N; + } + + unsigned size() const + { + return count; + } + + unsigned byte_size() const + { + return size() * sizeof(T); + } + + const T *data() const + { + return elements; + } + + void reset() + { + count = 0; + } + + bool empty() const + { + return count == 0; + } + +private: + unsigned count = 0; + T elements[N]; +}; + +namespace Limits +{ +constexpr unsigned MaxPrimitives = 256; +constexpr unsigned MaxStaticRasterizationStates = 64; +constexpr unsigned MaxDepthBlendStates = 64; +constexpr unsigned MaxTileInfoStates = 256; +constexpr unsigned NumSyncStates = 32; +constexpr unsigned MaxNumTiles = 8; +constexpr unsigned MaxTMEMInstances = 256; +constexpr unsigned MaxSpanSetups = 32 * 1024; +constexpr unsigned MaxWidth = 1024; +constexpr unsigned MaxHeight = 1024; +constexpr unsigned MaxTileInstances = 0x8000; +} + +namespace ImplementationConstants +{ +constexpr unsigned DefaultWorkgroupSize = 64; + +constexpr unsigned TileWidth = 8; +constexpr unsigned TileHeight = 8; +constexpr unsigned MaxTilesX = Limits::MaxWidth / TileWidth; +constexpr unsigned MaxTilesY = Limits::MaxHeight / TileHeight; +constexpr unsigned IncoherentPageSize = 1024; +constexpr unsigned MaxPendingRenderPassesBeforeFlush = 8; +constexpr unsigned MinimumPrimitivesForIdleFlush = 32; +constexpr unsigned MinimumRenderPassesForIdleFlush = 2; +} +} diff --git a/parallel-rdp/rdp_device.cpp b/parallel-rdp/rdp_device.cpp new file mode 100644 index 00000000..aa0b3182 --- /dev/null +++ b/parallel-rdp/rdp_device.cpp @@ -0,0 +1,1264 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "rdp_device.hpp" +#include "rdp_common.hpp" +#include + +#ifdef __SSE2__ +#include +#endif + +#ifndef PARALLEL_RDP_SHADER_DIR +#include "shaders/slangmosh.hpp" +#endif + +using namespace Vulkan; + +#define STATE_MASK(flag, cond, mask) do { \ + (flag) &= ~(mask); \ + if (cond) (flag) |= (mask); \ +} while(0) + +namespace RDP +{ +CommandProcessor::CommandProcessor(Vulkan::Device &device_, void *rdram_ptr, + size_t rdram_offset_, size_t rdram_size_, size_t hidden_rdram_size, + CommandProcessorFlags flags_) + : device(device_), rdram_offset(rdram_offset_), rdram_size(rdram_size_), flags(flags_), renderer(*this), +#ifdef PARALLEL_RDP_SHADER_DIR + timeline_worker(Granite::Global::create_thread_context(), FenceExecutor{&device, &thread_timeline_value}) +#else + timeline_worker(FenceExecutor{&device, &thread_timeline_value}) +#endif +{ + BufferCreateInfo info = {}; + info.size = rdram_size; + info.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; + info.domain = BufferDomain::CachedCoherentHostPreferCached; + info.misc = BUFFER_MISC_ZERO_INITIALIZE_BIT; + + if (const char *env = getenv("PARALLEL_RDP_DUMP_PATH")) + { + dump_writer.reset(new RDPDumpWriter); + if (!dump_writer->init(env, rdram_size, hidden_rdram_size)) + { + LOGE("Failed to init RDP dump: %s.\n", env); + dump_writer.reset(); + } + else + { + LOGI("Dumping RDP commands to: %s.\n", env); + flags |= COMMAND_PROCESSOR_FLAG_HOST_VISIBLE_HIDDEN_RDRAM_BIT; + } + } + + if (rdram_ptr) + { + bool allow_memory_host = true; + if (const char *env = getenv("PARALLEL_RDP_ALLOW_EXTERNAL_HOST")) + allow_memory_host = strtol(env, nullptr, 0) > 0; + + if (allow_memory_host && device.get_device_features().supports_external_memory_host) + { + size_t import_size = rdram_size + rdram_offset; + size_t align = device.get_device_features().host_memory_properties.minImportedHostPointerAlignment; + import_size = (import_size + align - 1) & ~(align - 1); + info.size = import_size; + rdram = device.create_imported_host_buffer(info, VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, rdram_ptr); + if (!rdram) + LOGE("Failed to allocate RDRAM with VK_EXT_external_memory_host.\n"); + } + + if (!rdram) + { + LOGW("VK_EXT_external_memory_host not supported or failed, falling back to a slower path.\n"); + is_host_coherent = false; + rdram_offset = 0; + host_rdram = static_cast(rdram_ptr) + rdram_offset_; + + BufferCreateInfo device_rdram = {}; + device_rdram.size = rdram_size * 2; // Need twice the memory amount so we can also store a writemask. + device_rdram.usage = VK_BUFFER_USAGE_TRANSFER_DST_BIT | + VK_BUFFER_USAGE_TRANSFER_SRC_BIT | + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; + + if (device.get_gpu_properties().deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU) + device_rdram.domain = BufferDomain::CachedCoherentHostPreferCached; + else + device_rdram.domain = BufferDomain::Device; + + device_rdram.misc = BUFFER_MISC_ZERO_INITIALIZE_BIT; + rdram = device.create_buffer(device_rdram); + } + } + else + rdram = device.create_buffer(info); + + if (!rdram) + LOGE("Failed to allocate RDRAM.\n"); + + info.size = hidden_rdram_size; + // Should be CachedHost, but seeing some insane bug on incoherent Arm systems for time being, + // so just forcing coherent memory here for now. Not sure what is going on. + info.domain = (flags & COMMAND_PROCESSOR_FLAG_HOST_VISIBLE_HIDDEN_RDRAM_BIT) != 0 ? + BufferDomain::CachedCoherentHostPreferCoherent : BufferDomain::Device; + info.misc = 0; + hidden_rdram = device.create_buffer(info); + + info.size = 0x1000; + info.domain = (flags & COMMAND_PROCESSOR_FLAG_HOST_VISIBLE_TMEM_BIT) != 0 ? + BufferDomain::CachedCoherentHostPreferCoherent : BufferDomain::Device; + tmem = device.create_buffer(info); + + clear_hidden_rdram(); + clear_tmem(); + init_renderer(); + + if (const char *env = getenv("PARALLEL_RDP_BENCH")) + { + measure_stall_time = strtol(env, nullptr, 0) > 0; + if (measure_stall_time) + LOGI("Will measure stall timings.\n"); + } + + if (const char *env = getenv("PARALLEL_RDP_SINGLE_THREADED_COMMAND")) + { + single_threaded_processing = strtol(env, nullptr, 0) > 0; + if (single_threaded_processing) + LOGI("Will use single threaded command processing.\n"); + } + + if (!single_threaded_processing) + { + ring.init( +#ifdef PARALLEL_RDP_SHADER_DIR + Granite::Global::create_thread_context(), +#endif + this, 4 * 1024); + } + + if (const char *env = getenv("PARALLEL_RDP_BENCH")) + timestamp = strtol(env, nullptr, 0) > 0; +} + +CommandProcessor::~CommandProcessor() +{ + idle(); +} + +void CommandProcessor::begin_frame_context() +{ + flush(); + drain_command_ring(); + device.next_frame_context(); +} + +void CommandProcessor::init_renderer() +{ + if (!rdram) + { + is_supported = false; + return; + } + + renderer.set_device(&device); + renderer.set_rdram(rdram.get(), host_rdram, rdram_offset, rdram_size, is_host_coherent); + renderer.set_hidden_rdram(hidden_rdram.get()); + renderer.set_tmem(tmem.get()); + + unsigned factor = 1; + if (flags & COMMAND_PROCESSOR_FLAG_UPSCALING_8X_BIT) + factor = 8; + else if (flags & COMMAND_PROCESSOR_FLAG_UPSCALING_4X_BIT) + factor = 4; + else if (flags & COMMAND_PROCESSOR_FLAG_UPSCALING_2X_BIT) + factor = 2; + + if (factor != 1) + LOGI("Enabling upscaling: %ux.\n", factor); + + RendererOptions opts; + opts.upscaling_factor = factor; + opts.super_sampled_readback = (flags & COMMAND_PROCESSOR_FLAG_SUPER_SAMPLED_READ_BACK_BIT) != 0; + opts.super_sampled_readback_dither = (flags & COMMAND_PROCESSOR_FLAG_SUPER_SAMPLED_DITHER_BIT) != 0; + + is_supported = renderer.init_renderer(opts); + + vi.set_device(&device); + vi.set_rdram(rdram.get(), rdram_offset, rdram_size); + vi.set_hidden_rdram(hidden_rdram.get()); + vi.set_renderer(&renderer); + +#ifndef PARALLEL_RDP_SHADER_DIR + Vulkan::ResourceLayout layout; + shader_bank.reset(new ShaderBank(device, layout, [&](const char *name, const char *define) -> int { + if (strncmp(name, "vi_", 3) == 0) + return vi.resolve_shader_define(name, define); + else + return renderer.resolve_shader_define(name, define); + })); + renderer.set_shader_bank(shader_bank.get()); + vi.set_shader_bank(shader_bank.get()); +#endif +} + +bool CommandProcessor::device_is_supported() const +{ + return is_supported; +} + +void CommandProcessor::set_validation_interface(ValidationInterface *iface) +{ + renderer.set_validation_interface(iface); +} + +void CommandProcessor::clear_hidden_rdram() +{ + clear_buffer(*hidden_rdram, 0x03030303); +} + +void CommandProcessor::clear_tmem() +{ + clear_buffer(*tmem, 0); +} + +void CommandProcessor::clear_buffer(Vulkan::Buffer &buffer, uint32_t value) +{ + if (!buffer.get_allocation().is_host_allocation()) + { + auto cmd = device.request_command_buffer(); + cmd->fill_buffer(buffer, value); + Fence fence; + device.submit(cmd, &fence); + fence->wait(); + } + else + { + auto *mapped = device.map_host_buffer(buffer, MEMORY_ACCESS_WRITE_BIT); + memset(mapped, value & 0xff, buffer.get_create_info().size); + device.unmap_host_buffer(buffer, MEMORY_ACCESS_WRITE_BIT); + } +} + +void CommandProcessor::op_sync_full(const uint32_t *) +{ + renderer.flush_and_signal(); +} + +void CommandProcessor::decode_triangle_setup(TriangleSetup &setup, const uint32_t *words) const +{ + bool copy_cycle = (static_state.flags & RASTERIZATION_COPY_BIT) != 0; + bool flip = (words[0] & 0x800000u) != 0; + bool sign_dxhdy = (words[5] & 0x80000000u) != 0; + bool do_offset = flip == sign_dxhdy; + + setup.flags |= flip ? TRIANGLE_SETUP_FLIP_BIT : 0; + setup.flags |= do_offset ? TRIANGLE_SETUP_DO_OFFSET_BIT : 0; + setup.flags |= copy_cycle ? TRIANGLE_SETUP_SKIP_XFRAC_BIT : 0; + setup.flags |= quirks.u.options.native_texture_lod ? TRIANGLE_SETUP_NATIVE_LOD_BIT : 0; + + setup.tile = (words[0] >> 16) & 63; + + setup.yl = sext<14>(words[0]); + setup.ym = sext<14>(words[1] >> 16); + setup.yh = sext<14>(words[1]); + + // The lower bit is ignored, so shift here to obtain an extra bit of subpixel precision. + // This is very useful for upscaling, since we can obtain 8x before we overflow instead of 4x. + setup.xl = sext<28>(words[2]) >> 1; + setup.xh = sext<28>(words[4]) >> 1; + setup.xm = sext<28>(words[6]) >> 1; + setup.dxldy = sext<28>(words[3] >> 2) >> 1; + setup.dxhdy = sext<28>(words[5] >> 2) >> 1; + setup.dxmdy = sext<28>(words[7] >> 2) >> 1; +} + +static void decode_tex_setup(AttributeSetup &attr, const uint32_t *words) +{ + attr.s = (words[0] & 0xffff0000u) | ((words[4] >> 16) & 0x0000ffffu); + attr.t = ((words[0] << 16) & 0xffff0000u) | (words[4] & 0x0000ffffu); + attr.w = (words[1] & 0xffff0000u) | ((words[5] >> 16) & 0x0000ffffu); + + attr.dsdx = (words[2] & 0xffff0000u) | ((words[6] >> 16) & 0x0000ffffu); + attr.dtdx = ((words[2] << 16) & 0xffff0000u) | (words[6] & 0x0000ffffu); + attr.dwdx = (words[3] & 0xffff0000u) | ((words[7] >> 16) & 0x0000ffffu); + + attr.dsde = (words[8] & 0xffff0000u) | ((words[12] >> 16) & 0x0000ffffu); + attr.dtde = ((words[8] << 16) & 0xffff0000u) | (words[12] & 0x0000ffffu); + attr.dwde = (words[9] & 0xffff0000u) | ((words[13] >> 16) & 0x0000ffffu); + + attr.dsdy = (words[10] & 0xffff0000u) | ((words[14] >> 16) & 0x0000ffffu); + attr.dtdy = ((words[10] << 16) & 0xffff0000u) | (words[14] & 0x0000ffffu); + attr.dwdy = (words[11] & 0xffff0000u) | ((words[15] >> 16) & 0x0000ffffu); +} + +static void decode_rgba_setup(AttributeSetup &attr, const uint32_t *words) +{ + attr.r = (words[0] & 0xffff0000u) | ((words[4] >> 16) & 0xffff); + attr.g = (words[0] << 16) | (words[4] & 0xffff); + attr.b = (words[1] & 0xffff0000u) | ((words[5] >> 16) & 0xffff); + attr.a = (words[1] << 16) | (words[5] & 0xffff); + + attr.drdx = (words[2] & 0xffff0000u) | ((words[6] >> 16) & 0xffff); + attr.dgdx = (words[2] << 16) | (words[6] & 0xffff); + attr.dbdx = (words[3] & 0xffff0000u) | ((words[7] >> 16) & 0xffff); + attr.dadx = (words[3] << 16) | (words[7] & 0xffff); + + attr.drde = (words[8] & 0xffff0000u) | ((words[12] >> 16) & 0xffff); + attr.dgde = (words[8] << 16) | (words[12] & 0xffff); + attr.dbde = (words[9] & 0xffff0000u) | ((words[13] >> 16) & 0xffff); + attr.dade = (words[9] << 16) | (words[13] & 0xffff); + + attr.drdy = (words[10] & 0xffff0000u) | ((words[14] >> 16) & 0xffff); + attr.dgdy = (words[10] << 16) | (words[14] & 0xffff); + attr.dbdy = (words[11] & 0xffff0000u) | ((words[15] >> 16) & 0xffff); + attr.dady = (words[11] << 16) | (words[15] & 0xffff); +} + +static void decode_z_setup(AttributeSetup &attr, const uint32_t *words) +{ + attr.z = words[0]; + attr.dzdx = words[1]; + attr.dzde = words[2]; + attr.dzdy = words[3]; +} + +void CommandProcessor::op_fill_triangle(const uint32_t *words) +{ + TriangleSetup setup = {}; + decode_triangle_setup(setup, words); + renderer.draw_flat_primitive(setup); +} + +void CommandProcessor::op_shade_triangle(const uint32_t *words) +{ + TriangleSetup setup = {}; + AttributeSetup attr = {}; + decode_triangle_setup(setup, words); + decode_rgba_setup(attr, words + 8); + renderer.draw_shaded_primitive(setup, attr); +} + +void CommandProcessor::op_shade_z_buffer_triangle(const uint32_t *words) +{ + TriangleSetup setup = {}; + AttributeSetup attr = {}; + decode_triangle_setup(setup, words); + decode_rgba_setup(attr, words + 8); + decode_z_setup(attr, words + 24); + renderer.draw_shaded_primitive(setup, attr); +} + +void CommandProcessor::op_shade_texture_z_buffer_triangle(const uint32_t *words) +{ + TriangleSetup setup = {}; + AttributeSetup attr = {}; + decode_triangle_setup(setup, words); + decode_rgba_setup(attr, words + 8); + decode_tex_setup(attr, words + 24); + decode_z_setup(attr, words + 40); + renderer.draw_shaded_primitive(setup, attr); +} + +void CommandProcessor::op_fill_z_buffer_triangle(const uint32_t *words) +{ + TriangleSetup setup = {}; + AttributeSetup attr = {}; + decode_triangle_setup(setup, words); + decode_z_setup(attr, words + 8); + renderer.draw_shaded_primitive(setup, attr); +} + +void CommandProcessor::op_texture_triangle(const uint32_t *words) +{ + TriangleSetup setup = {}; + AttributeSetup attr = {}; + decode_triangle_setup(setup, words); + decode_tex_setup(attr, words + 8); + renderer.draw_shaded_primitive(setup, attr); +} + +void CommandProcessor::op_texture_z_buffer_triangle(const uint32_t *words) +{ + TriangleSetup setup = {}; + AttributeSetup attr = {}; + decode_triangle_setup(setup, words); + decode_tex_setup(attr, words + 8); + decode_z_setup(attr, words + 24); + renderer.draw_shaded_primitive(setup, attr); +} + +void CommandProcessor::op_shade_texture_triangle(const uint32_t *words) +{ + TriangleSetup setup = {}; + AttributeSetup attr = {}; + decode_triangle_setup(setup, words); + decode_rgba_setup(attr, words + 8); + decode_tex_setup(attr, words + 24); + renderer.draw_shaded_primitive(setup, attr); +} + +void CommandProcessor::op_set_color_image(const uint32_t *words) +{ + unsigned fmt = (words[0] >> 21) & 7; + unsigned size = (words[0] >> 19) & 3; + unsigned width = (words[0] & 1023) + 1; + unsigned addr = words[1] & 0xffffff; + + FBFormat fbfmt; + switch (size) + { + case 0: + fbfmt = FBFormat::I4; + break; + + case 1: + fbfmt = FBFormat::I8; + break; + + case 2: + fbfmt = fmt ? FBFormat::IA88 : FBFormat::RGBA5551; + break; + + case 3: + fbfmt = FBFormat::RGBA8888; + break; + + default: + LOGE("Invalid pixel size %u.\n", size); + return; + } + + renderer.set_color_framebuffer(addr, width, fbfmt); +} + +void CommandProcessor::op_set_mask_image(const uint32_t *words) +{ + unsigned addr = words[1] & 0xffffff; + renderer.set_depth_framebuffer(addr); +} + +void CommandProcessor::op_set_scissor(const uint32_t *words) +{ + scissor_state.xlo = (words[0] >> 12) & 0xfff; + scissor_state.xhi = (words[1] >> 12) & 0xfff; + scissor_state.ylo = (words[0] >> 0) & 0xfff; + scissor_state.yhi = (words[1] >> 0) & 0xfff; + + STATE_MASK(static_state.flags, bool(words[1] & (1 << 25)), RASTERIZATION_INTERLACE_FIELD_BIT); + STATE_MASK(static_state.flags, bool(words[1] & (1 << 24)), RASTERIZATION_INTERLACE_KEEP_ODD_BIT); + renderer.set_scissor_state(scissor_state); + renderer.set_static_rasterization_state(static_state); +} + +void CommandProcessor::op_set_other_modes(const uint32_t *words) +{ + STATE_MASK(static_state.flags, bool(words[0] & (1 << 19)), RASTERIZATION_PERSPECTIVE_CORRECT_BIT); + STATE_MASK(static_state.flags, bool(words[0] & (1 << 18)), RASTERIZATION_DETAIL_LOD_ENABLE_BIT); + STATE_MASK(static_state.flags, bool(words[0] & (1 << 17)), RASTERIZATION_SHARPEN_LOD_ENABLE_BIT); + STATE_MASK(static_state.flags, bool(words[0] & (1 << 16)), RASTERIZATION_TEX_LOD_ENABLE_BIT); + STATE_MASK(static_state.flags, bool(words[0] & (1 << 15)), RASTERIZATION_TLUT_BIT); + STATE_MASK(static_state.flags, bool(words[0] & (1 << 14)), RASTERIZATION_TLUT_TYPE_BIT); + STATE_MASK(static_state.flags, bool(words[0] & (1 << 13)), RASTERIZATION_SAMPLE_MODE_BIT); + STATE_MASK(static_state.flags, bool(words[0] & (1 << 12)), RASTERIZATION_SAMPLE_MID_TEXEL_BIT); + STATE_MASK(static_state.flags, bool(words[0] & (1 << 11)), RASTERIZATION_BILERP_0_BIT); + STATE_MASK(static_state.flags, bool(words[0] & (1 << 10)), RASTERIZATION_BILERP_1_BIT); + STATE_MASK(static_state.flags, bool(words[0] & (1 << 9)), RASTERIZATION_CONVERT_ONE_BIT); + STATE_MASK(depth_blend.flags, bool(words[1] & (1 << 14)), DEPTH_BLEND_FORCE_BLEND_BIT); + STATE_MASK(static_state.flags, bool(words[1] & (1 << 13)), RASTERIZATION_ALPHA_CVG_SELECT_BIT); + STATE_MASK(static_state.flags, bool(words[1] & (1 << 12)), RASTERIZATION_CVG_TIMES_ALPHA_BIT); + STATE_MASK(depth_blend.flags, bool(words[1] & (1 << 7)), DEPTH_BLEND_COLOR_ON_COVERAGE_BIT); + STATE_MASK(depth_blend.flags, bool(words[1] & (1 << 6)), DEPTH_BLEND_IMAGE_READ_ENABLE_BIT); + STATE_MASK(depth_blend.flags, bool(words[1] & (1 << 5)), DEPTH_BLEND_DEPTH_UPDATE_BIT); + STATE_MASK(depth_blend.flags, bool(words[1] & (1 << 4)), DEPTH_BLEND_DEPTH_TEST_BIT); + STATE_MASK(static_state.flags, bool(words[1] & (1 << 3)), RASTERIZATION_AA_BIT); + STATE_MASK(depth_blend.flags, bool(words[1] & (1 << 3)), DEPTH_BLEND_AA_BIT); + + STATE_MASK(static_state.flags, bool(words[1] & (1 << 1)), RASTERIZATION_ALPHA_TEST_DITHER_BIT); + STATE_MASK(static_state.flags, bool(words[1] & (1 << 0)), RASTERIZATION_ALPHA_TEST_BIT); + static_state.dither = (words[0] >> 4) & 0x0f; + STATE_MASK(depth_blend.flags, RGBDitherMode(static_state.dither >> 2) != RGBDitherMode::Off, DEPTH_BLEND_DITHER_ENABLE_BIT); + depth_blend.coverage_mode = static_cast((words[1] >> 8) & 3); + depth_blend.z_mode = static_cast((words[1] >> 10) & 3); + + static_state.flags &= ~(RASTERIZATION_MULTI_CYCLE_BIT | + RASTERIZATION_FILL_BIT | + RASTERIZATION_COPY_BIT); + depth_blend.flags &= ~DEPTH_BLEND_MULTI_CYCLE_BIT; + + switch (CycleType((words[0] >> 20) & 3)) + { + case CycleType::Cycle2: + static_state.flags |= RASTERIZATION_MULTI_CYCLE_BIT; + depth_blend.flags |= DEPTH_BLEND_MULTI_CYCLE_BIT; + break; + + case CycleType::Fill: + static_state.flags |= RASTERIZATION_FILL_BIT; + break; + + case CycleType::Copy: + static_state.flags |= RASTERIZATION_COPY_BIT; + break; + + default: + break; + } + + depth_blend.blend_cycles[0].blend_1a = static_cast((words[1] >> 30) & 3); + depth_blend.blend_cycles[1].blend_1a = static_cast((words[1] >> 28) & 3); + depth_blend.blend_cycles[0].blend_1b = static_cast((words[1] >> 26) & 3); + depth_blend.blend_cycles[1].blend_1b = static_cast((words[1] >> 24) & 3); + depth_blend.blend_cycles[0].blend_2a = static_cast((words[1] >> 22) & 3); + depth_blend.blend_cycles[1].blend_2a = static_cast((words[1] >> 20) & 3); + depth_blend.blend_cycles[0].blend_2b = static_cast((words[1] >> 18) & 3); + depth_blend.blend_cycles[1].blend_2b = static_cast((words[1] >> 16) & 3); + + renderer.set_static_rasterization_state(static_state); + renderer.set_depth_blend_state(depth_blend); + renderer.set_enable_primitive_depth(bool(words[1] & (1 << 2))); +} + +void CommandProcessor::op_set_texture_image(const uint32_t *words) +{ + auto fmt = TextureFormat((words[0] >> 21) & 7); + auto size = TextureSize((words[0] >> 19) & 3); + uint32_t width = (words[0] & 0x3ff) + 1; + uint32_t addr = words[1] & 0x00ffffffu; + + texture_image.addr = addr; + texture_image.width = width; + texture_image.size = size; + texture_image.fmt = fmt; +} + +void CommandProcessor::op_set_tile(const uint32_t *words) +{ + uint32_t tile = (words[1] >> 24) & 7; + + TileMeta info = {}; + info.offset = ((words[0] >> 0) & 511) << 3; + info.stride = ((words[0] >> 9) & 511) << 3; + info.size = TextureSize((words[0] >> 19) & 3); + info.fmt = TextureFormat((words[0] >> 21) & 7); + + info.palette = (words[1] >> 20) & 15; + + info.shift_s = (words[1] >> 0) & 15; + info.mask_s = (words[1] >> 4) & 15; + info.shift_t = (words[1] >> 10) & 15; + info.mask_t = (words[1] >> 14) & 15; + + if (words[1] & (1 << 8)) + info.flags |= TILE_INFO_MIRROR_S_BIT; + if (words[1] & (1 << 9)) + info.flags |= TILE_INFO_CLAMP_S_BIT; + if (words[1] & (1 << 18)) + info.flags |= TILE_INFO_MIRROR_T_BIT; + if (words[1] & (1 << 19)) + info.flags |= TILE_INFO_CLAMP_T_BIT; + + if (info.mask_s > 10) + info.mask_s = 10; + else if (info.mask_s == 0) + info.flags |= TILE_INFO_CLAMP_S_BIT; + + if (info.mask_t > 10) + info.mask_t = 10; + else if (info.mask_t == 0) + info.flags |= TILE_INFO_CLAMP_T_BIT; + + renderer.set_tile(tile, info); +} + +void CommandProcessor::op_load_tile(const uint32_t *words) +{ + uint32_t tile = (words[1] >> 24) & 7; + + LoadTileInfo info = {}; + + info.tex_addr = texture_image.addr; + info.tex_width = texture_image.width; + info.fmt = texture_image.fmt; + info.size = texture_image.size; + info.slo = (words[0] >> 12) & 0xfff; + info.shi = (words[1] >> 12) & 0xfff; + info.tlo = (words[0] >> 0) & 0xfff; + info.thi = (words[1] >> 0) & 0xfff; + info.mode = UploadMode::Tile; + + renderer.load_tile(tile, info); +} + +void CommandProcessor::op_load_tlut(const uint32_t *words) +{ + uint32_t tile = (words[1] >> 24) & 7; + + LoadTileInfo info = {}; + + info.tex_addr = texture_image.addr; + info.tex_width = texture_image.width; + info.fmt = texture_image.fmt; + info.size = texture_image.size; + info.slo = (words[0] >> 12) & 0xfff; + info.shi = (words[1] >> 12) & 0xfff; + info.tlo = (words[0] >> 0) & 0xfff; + info.thi = (words[1] >> 0) & 0xfff; + info.mode = UploadMode::TLUT; + + renderer.load_tile(tile, info); +} + +void CommandProcessor::op_load_block(const uint32_t *words) +{ + uint32_t tile = (words[1] >> 24) & 7; + + LoadTileInfo info = {}; + + info.tex_addr = texture_image.addr; + info.tex_width = texture_image.width; + info.fmt = texture_image.fmt; + info.size = texture_image.size; + info.slo = (words[0] >> 12) & 0xfff; + info.shi = (words[1] >> 12) & 0xfff; + info.tlo = (words[0] >> 0) & 0xfff; + info.thi = (words[1] >> 0) & 0xfff; + info.mode = UploadMode::Block; + + renderer.load_tile(tile, info); +} + +void CommandProcessor::op_set_tile_size(const uint32_t *words) +{ + uint32_t tile = (words[1] >> 24) & 7; + auto slo = (words[0] >> 12) & 0xfff; + auto shi = (words[1] >> 12) & 0xfff; + auto tlo = (words[0] >> 0) & 0xfff; + auto thi = (words[1] >> 0) & 0xfff; + renderer.set_tile_size(tile, slo, shi, tlo, thi); +} + +void CommandProcessor::op_set_combine(const uint32_t *words) +{ + static_state.combiner[0].rgb.muladd = static_cast((words[0] >> 20) & 0xf); + static_state.combiner[0].rgb.mul = static_cast((words[0] >> 15) & 0x1f); + static_state.combiner[0].rgb.mulsub = static_cast((words[1] >> 28) & 0xf); + static_state.combiner[0].rgb.add = static_cast(words[1] >> 15 & 0x7); + + static_state.combiner[0].alpha.muladd = static_cast((words[0] >> 12) & 0x7); + static_state.combiner[0].alpha.mulsub = static_cast((words[1] >> 12) & 0x7); + static_state.combiner[0].alpha.mul = static_cast((words[0] >> 9) & 0x7); + static_state.combiner[0].alpha.add = static_cast((words[1] >> 9) & 0x7); + + static_state.combiner[1].rgb.muladd = static_cast((words[0] >> 5) & 0xf); + static_state.combiner[1].rgb.mul = static_cast((words[0] >> 0) & 0x1f); + static_state.combiner[1].rgb.mulsub = static_cast((words[1] >> 24) & 0xf); + static_state.combiner[1].rgb.add = static_cast(words[1] >> 6 & 0x7); + + static_state.combiner[1].alpha.muladd = static_cast((words[1] >> 21) & 0x7); + static_state.combiner[1].alpha.mulsub = static_cast((words[1] >> 3) & 0x7); + static_state.combiner[1].alpha.mul = static_cast((words[1] >> 18) & 0x7); + static_state.combiner[1].alpha.add = static_cast((words[1] >> 0) & 0x7); + + renderer.set_static_rasterization_state(static_state); +} + +void CommandProcessor::op_set_blend_color(const uint32_t *words) +{ + renderer.set_blend_color(words[1]); +} + +void CommandProcessor::op_set_env_color(const uint32_t *words) +{ + renderer.set_env_color(words[1]); +} + +void CommandProcessor::op_set_fog_color(const uint32_t *words) +{ + renderer.set_fog_color(words[1]); +} + +void CommandProcessor::op_set_prim_color(const uint32_t *words) +{ + uint8_t prim_min_level = (words[0] >> 8) & 31; + uint8_t prim_level_frac = (words[0] >> 0) & 0xff; + renderer.set_primitive_color(prim_min_level, prim_level_frac, words[1]); +} + +void CommandProcessor::op_set_fill_color(const uint32_t *words) +{ + renderer.set_fill_color(words[1]); +} + +void CommandProcessor::op_fill_rectangle(const uint32_t *words) +{ + uint32_t xl = (words[0] >> 12) & 0xfff; + uint32_t yl = (words[0] >> 0) & 0xfff; + uint32_t xh = (words[1] >> 12) & 0xfff; + uint32_t yh = (words[1] >> 0) & 0xfff; + + if ((static_state.flags & (RASTERIZATION_COPY_BIT | RASTERIZATION_FILL_BIT)) != 0) + yl |= 3; + + TriangleSetup setup = {}; + setup.xh = xh << 13; + setup.xl = xl << 13; + setup.xm = xl << 13; + setup.ym = yl; + setup.yl = yl; + setup.yh = yh; + setup.flags = TRIANGLE_SETUP_FLIP_BIT | TRIANGLE_SETUP_DISABLE_UPSCALING_BIT; + + renderer.draw_flat_primitive(setup); +} + +void CommandProcessor::op_texture_rectangle(const uint32_t *words) +{ + uint32_t xl = (words[0] >> 12) & 0xfff; + uint32_t yl = (words[0] >> 0) & 0xfff; + uint32_t xh = (words[1] >> 12) & 0xfff; + uint32_t yh = (words[1] >> 0) & 0xfff; + uint32_t tile = (words[1] >> 24) & 0x7; + + int32_t s = (words[2] >> 16) & 0xffff; + int32_t t = (words[2] >> 0) & 0xffff; + int32_t dsdx = (words[3] >> 16) & 0xffff; + int32_t dtdy = (words[3] >> 0) & 0xffff; + dsdx = sext<16>(dsdx); + dtdy = sext<16>(dtdy); + + if ((static_state.flags & (RASTERIZATION_COPY_BIT | RASTERIZATION_FILL_BIT)) != 0) + yl |= 3; + + TriangleSetup setup = {}; + AttributeSetup attr = {}; + + setup.xh = xh << 13; + setup.xl = xl << 13; + setup.xm = xl << 13; + setup.ym = yl; + setup.yl = yl; + setup.yh = yh; + setup.flags = TRIANGLE_SETUP_FLIP_BIT | + (quirks.u.options.native_resolution_tex_rect ? TRIANGLE_SETUP_DISABLE_UPSCALING_BIT : 0) | + (quirks.u.options.native_texture_lod ? TRIANGLE_SETUP_NATIVE_LOD_BIT : 0); + setup.tile = tile; + + attr.s = s << 16; + attr.t = t << 16; + attr.dsdx = dsdx << 11; + attr.dtde = dtdy << 11; + attr.dtdy = dtdy << 11; + + if ((static_state.flags & RASTERIZATION_COPY_BIT) != 0) + setup.flags |= TRIANGLE_SETUP_SKIP_XFRAC_BIT; + + renderer.draw_shaded_primitive(setup, attr); +} + +void CommandProcessor::op_texture_rectangle_flip(const uint32_t *words) +{ + uint32_t xl = (words[0] >> 12) & 0xfff; + uint32_t yl = (words[0] >> 0) & 0xfff; + uint32_t xh = (words[1] >> 12) & 0xfff; + uint32_t yh = (words[1] >> 0) & 0xfff; + uint32_t tile = (words[1] >> 24) & 0x7; + + int32_t s = (words[2] >> 16) & 0xffff; + int32_t t = (words[2] >> 0) & 0xffff; + int32_t dsdx = (words[3] >> 16) & 0xffff; + int32_t dtdy = (words[3] >> 0) & 0xffff; + dsdx = sext<16>(dsdx); + dtdy = sext<16>(dtdy); + + if ((static_state.flags & (RASTERIZATION_COPY_BIT | RASTERIZATION_FILL_BIT)) != 0) + yl |= 3; + + TriangleSetup setup = {}; + AttributeSetup attr = {}; + + setup.xh = xh << 13; + setup.xl = xl << 13; + setup.xm = xl << 13; + setup.ym = yl; + setup.yl = yl; + setup.yh = yh; + setup.flags = TRIANGLE_SETUP_FLIP_BIT | TRIANGLE_SETUP_DISABLE_UPSCALING_BIT | + (quirks.u.options.native_resolution_tex_rect ? TRIANGLE_SETUP_DISABLE_UPSCALING_BIT : 0) | + (quirks.u.options.native_texture_lod ? TRIANGLE_SETUP_NATIVE_LOD_BIT : 0); + setup.tile = tile; + + attr.s = s << 16; + attr.t = t << 16; + attr.dtdx = dtdy << 11; + attr.dsde = dsdx << 11; + attr.dsdy = dsdx << 11; + + if ((static_state.flags & RASTERIZATION_COPY_BIT) != 0) + setup.flags |= TRIANGLE_SETUP_SKIP_XFRAC_BIT; + + renderer.draw_shaded_primitive(setup, attr); +} + +void CommandProcessor::op_set_prim_depth(const uint32_t *words) +{ + renderer.set_primitive_depth((words[1] >> 16) & 0xffff, words[1] & 0xffff); +} + +void CommandProcessor::op_set_convert(const uint32_t *words) +{ + uint64_t merged = (uint64_t(words[0]) << 32) | words[1]; + + uint16_t k5 = (merged >> 0) & 0x1ff; + uint16_t k4 = (merged >> 9) & 0x1ff; + uint16_t k3 = (merged >> 18) & 0x1ff; + uint16_t k2 = (merged >> 27) & 0x1ff; + uint16_t k1 = (merged >> 36) & 0x1ff; + uint16_t k0 = (merged >> 45) & 0x1ff; + renderer.set_convert(k0, k1, k2, k3, k4, k5); +} + +void CommandProcessor::op_set_key_gb(const uint32_t *words) +{ + uint32_t g_width = (words[0] >> 12) & 0xfff; + uint32_t b_width = (words[0] >> 0) & 0xfff; + uint32_t g_center = (words[1] >> 24) & 0xff; + uint32_t g_scale = (words[1] >> 16) & 0xff; + uint32_t b_center = (words[1] >> 8) & 0xff; + uint32_t b_scale = (words[1] >> 0) & 0xff; + renderer.set_color_key(1, g_width, g_center, g_scale); + renderer.set_color_key(2, b_width, b_center, b_scale); +} + +void CommandProcessor::op_set_key_r(const uint32_t *words) +{ + uint32_t r_width = (words[1] >> 16) & 0xfff; + uint32_t r_center = (words[1] >> 8) & 0xff; + uint32_t r_scale = (words[1] >> 0) & 0xff; + renderer.set_color_key(0, r_width, r_center, r_scale); +} + +#define OP(x) void CommandProcessor::op_##x(const uint32_t *) {} +OP(sync_load) OP(sync_pipe) +OP(sync_tile) +#undef OP + +void CommandProcessor::enqueue_command_inner(unsigned num_words, const uint32_t *words) +{ + if (single_threaded_processing) + enqueue_command_direct(num_words, words); + else + ring.enqueue_command(num_words, words); +} + +void CommandProcessor::enqueue_command(unsigned num_words, const uint32_t *words) +{ + if (dump_writer && !dump_in_command_list) + { + wait_for_timeline(signal_timeline()); + dump_writer->flush_dram(begin_read_rdram(), rdram_size); + dump_writer->flush_hidden_dram(begin_read_hidden_rdram(), hidden_rdram->get_create_info().size); + dump_in_command_list = true; + } + + enqueue_command_inner(num_words, words); + + if (dump_writer) + { + uint32_t cmd_id = (words[0] >> 24) & 63; + if (Op(cmd_id) == Op::SyncFull) + { + dump_writer->signal_complete(); + dump_in_command_list = false; + } + else + dump_writer->emit_command(cmd_id, words, num_words); + } +} + +void CommandProcessor::enqueue_command_direct(unsigned, const uint32_t *words) +{ +#define OP(x) &CommandProcessor::op_##x + using CommandFunc = void (CommandProcessor::*)(const uint32_t *words); + static const CommandFunc funcs[64] = { + /* 0x00 */ nullptr, nullptr, nullptr, nullptr, + /* 0x04 */ nullptr, nullptr, nullptr, nullptr, + /* 0x08 */ OP(fill_triangle), OP(fill_z_buffer_triangle), OP(texture_triangle), OP(texture_z_buffer_triangle), + /* 0x0c */ OP(shade_triangle), OP(shade_z_buffer_triangle), OP(shade_texture_triangle), OP(shade_texture_z_buffer_triangle), + /* 0x10 */ nullptr, nullptr, nullptr, nullptr, + /* 0x14 */ nullptr, nullptr, nullptr, nullptr, + /* 0x18 */ nullptr, nullptr, nullptr, nullptr, + /* 0x1c */ nullptr, nullptr, nullptr, nullptr, + /* 0x20 */ nullptr, nullptr, nullptr, nullptr, + /* 0x24 */ OP(texture_rectangle), OP(texture_rectangle_flip), OP(sync_load), OP(sync_pipe), + /* 0x28 */ OP(sync_tile), OP(sync_full), OP(set_key_gb), OP(set_key_r), + /* 0x2c */ OP(set_convert), OP(set_scissor), OP(set_prim_depth), OP(set_other_modes), + /* 0x30 */ OP(load_tlut), nullptr, OP(set_tile_size), OP(load_block), + /* 0x34 */ OP(load_tile), OP(set_tile), OP(fill_rectangle), OP(set_fill_color), + /* 0x38 */ OP(set_fog_color), OP(set_blend_color), OP(set_prim_color), OP(set_env_color), + /* 0x3c */ OP(set_combine), OP(set_texture_image), OP(set_mask_image), OP(set_color_image), + }; +#undef OP + + unsigned op = (words[0] >> 24) & 63; + switch (Op(op)) + { + case Op::MetaSignalTimeline: + { + renderer.flush_and_signal(); + uint64_t val = words[1] | (uint64_t(words[2]) << 32); + CoherencyOperation signal_op; + signal_op.timeline_value = val; + timeline_worker.push(std::move(signal_op)); + break; + } + + case Op::MetaFlush: + { + renderer.flush_and_signal(); + break; + } + + case Op::MetaIdle: + { + renderer.notify_idle_command_thread(); + break; + } + + case Op::MetaSetQuirks: + { + quirks.u.words[0] = words[1]; + break; + } + + default: + if (funcs[op]) + (this->*funcs[op])(words); + break; + } +} + +void CommandProcessor::set_quirks(const Quirks &quirks_) +{ + const uint32_t words[2] = { + uint32_t(Op::MetaSetQuirks) << 24u, + quirks_.u.words[0], + }; + enqueue_command_inner(2, words); +} + +void CommandProcessor::set_vi_register(VIRegister reg, uint32_t value) +{ + vi.set_vi_register(reg, value); + if (dump_writer) + dump_writer->set_vi_register(uint32_t(reg), value); +} + +void CommandProcessor::begin_vi_register_per_scanline(VideoInterface::PerScanlineRegisterFlags vi_flags) +{ + vi.begin_vi_register_per_scanline(vi_flags); +} + +void CommandProcessor::set_vi_register_for_scanline(VideoInterface::PerScanlineRegisterBits reg, uint32_t value) +{ + vi.set_vi_register_for_scanline(reg, value); +} + +void CommandProcessor::latch_vi_register_for_scanline(unsigned vi_line) +{ + vi.latch_vi_register_for_scanline(vi_line); +} + +void CommandProcessor::end_vi_register_per_scanline() +{ + vi.end_vi_register_per_scanline(); +} + +void *CommandProcessor::begin_read_rdram() +{ + if (rdram) + return device.map_host_buffer(*rdram, MEMORY_ACCESS_READ_BIT); + else + return nullptr; +} + +void CommandProcessor::end_write_rdram() +{ + if (rdram) + device.unmap_host_buffer(*rdram, MEMORY_ACCESS_WRITE_BIT); +} + +void *CommandProcessor::begin_read_hidden_rdram() +{ + return device.map_host_buffer(*hidden_rdram, MEMORY_ACCESS_READ_BIT); +} + +void CommandProcessor::end_write_hidden_rdram() +{ + device.unmap_host_buffer(*hidden_rdram, MEMORY_ACCESS_WRITE_BIT); +} + +size_t CommandProcessor::get_rdram_size() const +{ + if (is_host_coherent) + return rdram->get_create_info().size; + else + return rdram->get_create_info().size / 2; +} + +size_t CommandProcessor::get_hidden_rdram_size() const +{ + return hidden_rdram->get_create_info().size; +} + +void *CommandProcessor::get_tmem() +{ + return device.map_host_buffer(*tmem, MEMORY_ACCESS_READ_BIT); +} + +void CommandProcessor::idle() +{ + flush(); + wait_for_timeline(signal_timeline()); +} + +void CommandProcessor::flush() +{ + const uint32_t words[1] = { + uint32_t(Op::MetaFlush) << 24, + }; + enqueue_command_inner(1, words); +} + +uint64_t CommandProcessor::signal_timeline() +{ + timeline_value++; + + const uint32_t words[3] = { + uint32_t(Op::MetaSignalTimeline) << 24, + uint32_t(timeline_value), + uint32_t(timeline_value >> 32), + }; + enqueue_command_inner(3, words); + + return timeline_value; +} + +void CommandProcessor::wait_for_timeline(uint64_t index) +{ + Vulkan::QueryPoolHandle start_ts, end_ts; + if (measure_stall_time) + start_ts = device.write_calibrated_timestamp(); + timeline_worker.wait([this, index]() -> bool { + return thread_timeline_value >= index; + }); + if (measure_stall_time) + { + end_ts = device.write_calibrated_timestamp(); + device.register_time_interval("RDP CPU", std::move(start_ts), std::move(end_ts), "wait-for-timeline"); + } +} + +Vulkan::ImageHandle CommandProcessor::scanout(const ScanoutOptions &opts, VkImageLayout target_layout) +{ + Vulkan::QueryPoolHandle start_ts, end_ts; + drain_command_ring(); + + if (dump_writer) + { + wait_for_timeline(signal_timeline()); + dump_writer->flush_dram(begin_read_rdram(), rdram_size); + dump_writer->flush_hidden_dram(begin_read_hidden_rdram(), hidden_rdram->get_create_info().size); + dump_writer->end_frame(); + } + + // Block idle callbacks triggering while we're doing this. + renderer.lock_command_processing(); + { + renderer.flush_and_signal(); + if (!is_host_coherent) + { + unsigned offset, length; + vi.scanout_memory_range(offset, length); + renderer.resolve_coherency_external(offset, length); + } + } + renderer.unlock_command_processing(); + + auto scanout = vi.scanout(target_layout, opts, renderer.get_scaling_factor()); + return scanout; +} + +Vulkan::ImageHandle CommandProcessor::scanout(const ScanoutOptions &opts) +{ + return scanout(opts, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); +} + +void CommandProcessor::drain_command_ring() +{ + Vulkan::QueryPoolHandle start_ts, end_ts; + if (timestamp) + start_ts = device.write_calibrated_timestamp(); + ring.drain(); + if (timestamp) + { + end_ts = device.write_calibrated_timestamp(); + device.register_time_interval("RDP CPU", std::move(start_ts), std::move(end_ts), "drain-command-ring"); + } +} + +void CommandProcessor::scanout_async_buffer(VIScanoutBuffer &buffer, const ScanoutOptions &opts) +{ + auto handle = scanout(opts, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); + if (!handle) + { + buffer.width = 0; + buffer.height = 0; + buffer.fence.reset(); + return; + } + + buffer.width = handle->get_width(); + buffer.height = handle->get_height(); + + Vulkan::BufferCreateInfo info = {}; + info.size = buffer.width * buffer.height * sizeof(uint32_t); + info.usage = VK_BUFFER_USAGE_TRANSFER_DST_BIT; + info.domain = Vulkan::BufferDomain::CachedHost; + if (!buffer.buffer || buffer.buffer->get_create_info().size < info.size) + buffer.buffer = device.create_buffer(info); + + auto cmd = device.request_command_buffer(); + cmd->copy_image_to_buffer(*buffer.buffer, *handle, 0, {}, { buffer.width, buffer.height, 1 }, 0, 0, { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 }); + cmd->barrier(VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_HOST_BIT, VK_ACCESS_HOST_READ_BIT); + + buffer.fence.reset(); + device.submit(cmd, &buffer.fence); +} + +void CommandProcessor::scanout_sync(std::vector &colors, unsigned &width, unsigned &height, + const ScanoutOptions &opts) +{ + VIScanoutBuffer scanout; + scanout_async_buffer(scanout, opts); + + if (!scanout.width || !scanout.height) + { + width = 0; + height = 0; + colors.clear(); + return; + } + + width = scanout.width; + height = scanout.height; + colors.resize(width * height); + + scanout.fence->wait(); + memcpy(colors.data(), device.map_host_buffer(*scanout.buffer, Vulkan::MEMORY_ACCESS_READ_BIT), + width * height * sizeof(uint32_t)); + device.unmap_host_buffer(*scanout.buffer, Vulkan::MEMORY_ACCESS_READ_BIT); +} + +void CommandProcessor::FenceExecutor::notify_work_locked(const CoherencyOperation &work) +{ + if (work.timeline_value) + *value = work.timeline_value; +} + +bool CommandProcessor::FenceExecutor::is_sentinel(const CoherencyOperation &work) const +{ + return !work.fence && !work.timeline_value; +} + +static void masked_memcpy(uint8_t * __restrict dst, + const uint8_t * __restrict data_src, + const uint8_t * __restrict masked_src, + size_t size) +{ +#if defined(__SSE2__) + for (size_t i = 0; i < size; i += 16) + { + __m128i data = _mm_loadu_si128(reinterpret_cast(data_src + i)); + __m128i mask = _mm_loadu_si128(reinterpret_cast(masked_src + i)); + _mm_maskmoveu_si128(data, mask, reinterpret_cast(dst + i)); + } +#else + auto * __restrict data32 = reinterpret_cast(data_src); + auto * __restrict mask32 = reinterpret_cast(masked_src); + auto * __restrict dst32 = reinterpret_cast(dst); + auto size32 = size >> 2; + + for (size_t i = 0; i < size32; i++) + { + auto mask = mask32[i]; + if (mask == ~0u) + { + dst32[i] = data32[i]; + } + else if (mask) + { + // Fairly rare path. + for (unsigned j = 0; j < 4; j++) + if (masked_src[4 * i + j]) + dst[4 * i + j] = data_src[4 * i + j]; + } + } +#endif +} + +void CommandProcessor::FenceExecutor::perform_work(CoherencyOperation &work) +{ + if (work.fence) + work.fence->wait(); + + if (work.unlock_cookie) + work.unlock_cookie->fetch_sub(1, std::memory_order_relaxed); + + if (work.src) + { + for (auto © : work.copies) + { + auto *mapped_data = static_cast(device->map_host_buffer(*work.src, MEMORY_ACCESS_READ_BIT, copy.src_offset, copy.size)); + auto *mapped_mask = static_cast(device->map_host_buffer(*work.src, MEMORY_ACCESS_READ_BIT, copy.mask_offset, copy.size)); + masked_memcpy(work.dst + copy.dst_offset, mapped_data, mapped_mask, copy.size); + for (unsigned i = 0; i < copy.counters; i++) + { + unsigned val = copy.counter_base[i].fetch_sub(1, std::memory_order_release); + (void)val; + assert(val > 0); + } + } + +#ifdef __SSE2__ + _mm_mfence(); +#endif + } +} + +void CommandProcessor::enqueue_coherency_operation(CoherencyOperation &&op) +{ + timeline_worker.push(std::move(op)); +} +} diff --git a/parallel-rdp/rdp_device.hpp b/parallel-rdp/rdp_device.hpp new file mode 100644 index 00000000..5be857a4 --- /dev/null +++ b/parallel-rdp/rdp_device.hpp @@ -0,0 +1,284 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include +#include "device.hpp" +#include "video_interface.hpp" +#include "rdp_renderer.hpp" +#include "rdp_common.hpp" +#include "command_ring.hpp" +#include "worker_thread.hpp" +#include "rdp_dump_write.hpp" + +namespace RDP +{ +struct RGBA +{ + uint8_t r, g, b, a; +}; + +enum CommandProcessorFlagBits +{ + COMMAND_PROCESSOR_FLAG_HOST_VISIBLE_HIDDEN_RDRAM_BIT = 1 << 0, + COMMAND_PROCESSOR_FLAG_HOST_VISIBLE_TMEM_BIT = 1 << 1, + COMMAND_PROCESSOR_FLAG_UPSCALING_2X_BIT = 1 << 2, + COMMAND_PROCESSOR_FLAG_UPSCALING_4X_BIT = 1 << 3, + COMMAND_PROCESSOR_FLAG_UPSCALING_8X_BIT = 1 << 4, + COMMAND_PROCESSOR_FLAG_SUPER_SAMPLED_READ_BACK_BIT = 1 << 5, + COMMAND_PROCESSOR_FLAG_SUPER_SAMPLED_DITHER_BIT = 1 << 6 +}; +using CommandProcessorFlags = uint32_t; + +struct CoherencyCopy +{ + size_t src_offset = 0; + size_t mask_offset = 0; + size_t dst_offset = 0; + size_t size = 0; + std::atomic_uint32_t *counter_base = nullptr; + unsigned counters = 0; +}; + +struct CoherencyOperation +{ + Vulkan::Fence fence; + uint64_t timeline_value = 0; + + uint8_t *dst = nullptr; + const Vulkan::Buffer *src = nullptr; + std::vector copies; + std::atomic_uint32_t *unlock_cookie = nullptr; +}; + +// These options control various behavior when upscaling to workaround glitches which arise naturally as part of upscaling. +struct Quirks +{ + inline Quirks() + { + u.options.native_resolution_tex_rect = true; + u.options.native_texture_lod = false; + } + + inline void set_native_resolution_tex_rect(bool enable) + { + u.options.native_resolution_tex_rect = enable; + } + + inline void set_native_texture_lod(bool enable) + { + u.options.native_texture_lod = enable; + } + + union + { + struct Opts + { + // If true, force TEX_RECT and TEX_RECT_FLIP to render without upscaling. + // Works around bilinear filtering bugs in Cycle1/Cycle2 mode where game assumed 1:1 pixel transfer. + bool native_resolution_tex_rect; + + // Forces LOD to be computed as 1x upscale. + // Fixes content which relies on LOD computation to select textures in clever ways. + bool native_texture_lod; + } options; + uint32_t words[1]; + } u; +}; + +class CommandProcessor +{ +public: + CommandProcessor(Vulkan::Device &device, + void *rdram_ptr, + size_t rdram_offset, + size_t rdram_size, + size_t hidden_rdram_size, + CommandProcessorFlags flags); + + ~CommandProcessor(); + + void set_validation_interface(ValidationInterface *iface); + + bool device_is_supported() const; + + // Synchronization. + void flush(); + uint64_t signal_timeline(); + void wait_for_timeline(uint64_t index); + void idle(); + void begin_frame_context(); + + // Queues up state and drawing commands. + void enqueue_command(unsigned num_words, const uint32_t *words); + void enqueue_command_direct(unsigned num_words, const uint32_t *words); + + void set_quirks(const Quirks &quirks); + + // Interact with memory. + void *begin_read_rdram(); + void end_write_rdram(); + void *begin_read_hidden_rdram(); + void end_write_hidden_rdram(); + size_t get_rdram_size() const; + size_t get_hidden_rdram_size() const; + void *get_tmem(); + + // Sets VI register + void set_vi_register(VIRegister reg, uint32_t value); + + Vulkan::ImageHandle scanout(const ScanoutOptions &opts = {}); + void scanout_sync(std::vector &colors, unsigned &width, unsigned &height, const ScanoutOptions &opts = {}); + void scanout_async_buffer(VIScanoutBuffer &buffer, const ScanoutOptions &opts = {}); + + // Support for modifying certain registers per-scanline. + // The idea is that before we scanout(), we use set_vi_register() to + // set frame-global VI register state. + // While scanning out, we can support changing some state, in particular HStart and XStart + // which allows various raster effects ala HDMA. + // For sanity's sake, scanout() reads all memory at once. A fully beam-raced implementation + // would render out images every scanline, but that would cripple performance and it's questionable + // how this is useful, especially on a 3D console. The only failure case of this style of implementation + // would be if a demo attempted to modify VRAM *after* it has been scanned out, i.e. a write-after-read + // hazard. + + // Latch registers are initialized to the values in set_vi_register() for each respective register. + // After scanout(), the flags state is cleared to 0. + void begin_vi_register_per_scanline(VideoInterface::PerScanlineRegisterFlags flags); + void set_vi_register_for_scanline(VideoInterface::PerScanlineRegisterBits reg, uint32_t value); + + // Between begin_vi_register_per_scanline() and scanout(), line must be monotonically increasing, + // or the call is ignored. Initial value for the line counter is 0 + // (to set parameters for line 0, use global VI register state). + // Currently set registers in set_vi_register_for_scanline() are considered to be the active VI register + // values starting with VI line "vi_line", until the bottom of the frame or a new vi_line is set. + // Register state is assumed to have been fixed from the last latched scanline up until vi_line. + // + // The units used for this value matches the hardware YStart registers, + // i.e. the first active scanline is not 0, but VI_H_OFFSET_{NTSC,PAL}. + // For every scanned line, vi_line should increment by 2. + // vi_line must be less than VI_V_END_MAX (really, VI_V_END_{NTSC,PAL}), or it is ignored. + void latch_vi_register_for_scanline(unsigned vi_line); + + // Assumes that scanline register state does not change until end of frame. + // Must be called before scanout(), or all per-scanline register state is ignored for the scanout. + void end_vi_register_per_scanline(); + + // Intended flow is something like: + // set_vi_register(reg, value0) // value0 used for line [0, 99] + // begin_vi_register_per_scanline(flags); + // set_vi_register_for_scanline(reg, value1); // value1 used for line [100, 199] + // latch_vi_register_for_scanline(100); + // set_vi_register_for_scanline(reg, value2); + // latch_vi_register_for_scanline(200); // value2 used for line [200, VBlank] + // end_vi_register_per_scanline(); + // scanout(); + +private: + Vulkan::Device &device; + Vulkan::BufferHandle rdram; + Vulkan::BufferHandle hidden_rdram; + Vulkan::BufferHandle tmem; + size_t rdram_offset; + size_t rdram_size; + CommandProcessorFlags flags; +#ifndef PARALLEL_RDP_SHADER_DIR + std::unique_ptr shader_bank; +#endif + + // Tear-down order is important here. + Renderer renderer; + VideoInterface vi; + CommandRing ring; + + void clear_hidden_rdram(); + void clear_tmem(); + void clear_buffer(Vulkan::Buffer &buffer, uint32_t value); + void init_renderer(); + void enqueue_command_inner(unsigned num_words, const uint32_t *words); + + Vulkan::ImageHandle scanout(const ScanoutOptions &opts, VkImageLayout target_layout); + +#define OP(x) void op_##x(const uint32_t *words) + OP(fill_triangle); OP(fill_z_buffer_triangle); OP(texture_triangle); OP(texture_z_buffer_triangle); + OP(shade_triangle); OP(shade_z_buffer_triangle); OP(shade_texture_triangle); OP(shade_texture_z_buffer_triangle); + OP(texture_rectangle); OP(texture_rectangle_flip); OP(sync_load); OP(sync_pipe); + OP(sync_tile); OP(sync_full); OP(set_key_gb); OP(set_key_r); + OP(set_convert); OP(set_scissor); OP(set_prim_depth); OP(set_other_modes); + OP(load_tlut); OP(set_tile_size); OP(load_block); + OP(load_tile); OP(set_tile); OP(fill_rectangle); OP(set_fill_color); + OP(set_fog_color); OP(set_blend_color); OP(set_prim_color); OP(set_env_color); + OP(set_combine); OP(set_texture_image); OP(set_mask_image); OP(set_color_image); +#undef OP + + ScissorState scissor_state = {}; + StaticRasterizationState static_state = {}; + DepthBlendState depth_blend = {}; + + struct + { + uint32_t addr; + uint32_t width; + TextureFormat fmt; + TextureSize size; + } texture_image = {}; + + uint64_t timeline_value = 0; + uint64_t thread_timeline_value = 0; + + struct FenceExecutor + { + explicit inline FenceExecutor(Vulkan::Device *device_, uint64_t *ptr) + : device(device_), value(ptr) + { + } + + Vulkan::Device *device; + uint64_t *value; + bool is_sentinel(const CoherencyOperation &work) const; + void perform_work(CoherencyOperation &work); + void notify_work_locked(const CoherencyOperation &work); + }; + WorkerThread timeline_worker; + + uint8_t *host_rdram = nullptr; + bool measure_stall_time = false; + bool single_threaded_processing = false; + bool is_supported = false; + bool is_host_coherent = true; + bool timestamp = false; + + friend class Renderer; + + void enqueue_coherency_operation(CoherencyOperation &&op); + void drain_command_ring(); + void decode_triangle_setup(TriangleSetup &setup, const uint32_t *words) const; + + Quirks quirks; + + std::unique_ptr dump_writer; + bool dump_in_command_list = false; +}; +} diff --git a/parallel-rdp/rdp_dump_write.cpp b/parallel-rdp/rdp_dump_write.cpp new file mode 100644 index 00000000..1beee25a --- /dev/null +++ b/parallel-rdp/rdp_dump_write.cpp @@ -0,0 +1,151 @@ +/* Copyright (c) 2021 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "rdp_dump_write.hpp" +#include +#include +#include + +namespace RDP +{ +RDPDumpWriter::~RDPDumpWriter() +{ + end(); + if (file) + fclose(file); +} + +bool RDPDumpWriter::init(const char *path, uint32_t dram_size, uint32_t hidden_dram_size) +{ + if (file) + return false; + + rdp_dram_cache.clear(); + rdp_dram_cache.resize(dram_size); + rdp_hidden_dram_cache.clear(); + rdp_hidden_dram_cache.resize(hidden_dram_size); + + file = fopen(path, "wb"); + if (!file) + return false; + + fwrite("RDPDUMP2", 8, 1, file); + fwrite(&dram_size, sizeof(dram_size), 1, file); + fwrite(&hidden_dram_size, sizeof(hidden_dram_size), 1, file); + return true; +} + +void RDPDumpWriter::end_frame() +{ + if (!file) + return; + + uint32_t cmd = RDP_DUMP_CMD_END_FRAME; + fwrite(&cmd, sizeof(cmd), 1, file); +} + +void RDPDumpWriter::end() +{ + if (!file) + return; + + uint32_t cmd = RDP_DUMP_CMD_EOF; + fwrite(&cmd, sizeof(cmd), 1, file); + + fclose(file); + file = nullptr; + + rdp_dram_cache.clear(); + rdp_hidden_dram_cache.clear(); +} + +void RDPDumpWriter::flush(const void *dram_, uint32_t size, + RDPDumpCmd block_cmd, RDPDumpCmd flush_cmd, + uint8_t *cache) +{ + if (!file) + return; + + const auto *dram = static_cast(dram_); + const uint32_t block_size = 4 * 1024; + uint32_t i = 0; + + for (i = 0; i < size; i += block_size) + { + if (memcmp(dram + i, cache + i, block_size) != 0) + { + uint32_t cmd = block_cmd; + fwrite(&cmd, sizeof(cmd), 1, file); + fwrite(&i, sizeof(i), 1, file); + fwrite(&block_size, sizeof(block_size), 1, file); + fwrite(dram + i, 1, block_size, file); + memcpy(cache + i, dram + i, block_size); + } + } + + uint32_t cmd = flush_cmd; + fwrite(&cmd, sizeof(cmd), 1, file); + +} + +void RDPDumpWriter::flush_dram(const void *dram_, uint32_t size) +{ + flush(dram_, size, RDP_DUMP_CMD_UPDATE_DRAM, RDP_DUMP_CMD_UPDATE_DRAM_FLUSH, rdp_dram_cache.data()); +} + +void RDPDumpWriter::flush_hidden_dram(const void *dram_, uint32_t size) +{ + flush(dram_, size, RDP_DUMP_CMD_UPDATE_HIDDEN_DRAM, RDP_DUMP_CMD_UPDATE_HIDDEN_DRAM_FLUSH, rdp_hidden_dram_cache.data()); +} + +void RDPDumpWriter::signal_complete() +{ + if (!file) + return; + + uint32_t cmd = RDP_DUMP_CMD_SIGNAL_COMPLETE; + fwrite(&cmd, sizeof(cmd), 1, file); +} + +void RDPDumpWriter::emit_command(uint32_t command, const uint32_t *cmd_data, uint32_t cmd_words) +{ + if (!file) + return; + + uint32_t cmd = RDP_DUMP_CMD_RDP_COMMAND; + fwrite(&cmd, sizeof(cmd), 1, file); + fwrite(&command, sizeof(command), 1, file); + fwrite(&cmd_words, sizeof(cmd_words), 1, file); + fwrite(cmd_data, sizeof(*cmd_data), cmd_words, file); +} + +void RDPDumpWriter::set_vi_register(uint32_t vi_register, uint32_t value) +{ + if (!file) + return; + + uint32_t cmd = RDP_DUMP_CMD_SET_VI_REGISTER; + fwrite(&cmd, sizeof(cmd), 1, file); + fwrite(&vi_register, sizeof(vi_register), 1, file); + fwrite(&value, sizeof(value), 1, file); +} +} diff --git a/parallel-rdp/rdp_dump_write.hpp b/parallel-rdp/rdp_dump_write.hpp new file mode 100644 index 00000000..b4753902 --- /dev/null +++ b/parallel-rdp/rdp_dump_write.hpp @@ -0,0 +1,65 @@ +/* Copyright (c) 2021 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include + +namespace RDP +{ +class RDPDumpWriter +{ +public: + ~RDPDumpWriter(); + bool init(const char *path, uint32_t dram_size, uint32_t hidden_dram_size); + void flush_dram(const void *dram, uint32_t size); + void flush_hidden_dram(const void *dram, uint32_t size); + void signal_complete(); + void emit_command(uint32_t command, const uint32_t *cmd_data, uint32_t cmd_words); + void set_vi_register(uint32_t vi_register, uint32_t value); + void end_frame(); + +private: + enum RDPDumpCmd : uint32_t + { + RDP_DUMP_CMD_INVALID = 0, + RDP_DUMP_CMD_UPDATE_DRAM = 1, + RDP_DUMP_CMD_RDP_COMMAND = 2, + RDP_DUMP_CMD_SET_VI_REGISTER = 3, + RDP_DUMP_CMD_END_FRAME = 4, + RDP_DUMP_CMD_SIGNAL_COMPLETE = 5, + RDP_DUMP_CMD_EOF = 6, + RDP_DUMP_CMD_UPDATE_DRAM_FLUSH = 7, + RDP_DUMP_CMD_UPDATE_HIDDEN_DRAM = 8, + RDP_DUMP_CMD_UPDATE_HIDDEN_DRAM_FLUSH = 9, + RDP_DUMP_CMD_INT_MAX = 0x7fffffff + }; + + FILE *file = nullptr; + std::vector rdp_dram_cache; + std::vector rdp_hidden_dram_cache; + void flush(const void *dram_, uint32_t size, RDPDumpCmd block_cmd, RDPDumpCmd flush_cmd, uint8_t *cache); + void end(); +}; +} diff --git a/parallel-rdp/rdp_renderer.cpp b/parallel-rdp/rdp_renderer.cpp new file mode 100644 index 00000000..961e2e13 --- /dev/null +++ b/parallel-rdp/rdp_renderer.cpp @@ -0,0 +1,3584 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "rdp_renderer.hpp" +#include "rdp_device.hpp" +#include "logging.hpp" +#include "bitops.hpp" +#include "luts.hpp" +#include "timer.hpp" +#include +#include +#ifdef PARALLEL_RDP_SHADER_DIR +#include "global_managers.hpp" +#include "os_filesystem.hpp" +#else +#include "shaders/slangmosh.hpp" +#endif + +namespace RDP +{ +Renderer::Renderer(CommandProcessor &processor_) + : processor(processor_) +{ + active_submissions = 0; +} + +Renderer::~Renderer() +{ +} + +void Renderer::set_shader_bank(const ShaderBank *bank) +{ + shader_bank = bank; +} + +bool Renderer::init_renderer(const RendererOptions &options) +{ + if (options.upscaling_factor == 0) + return false; + if (options.upscaling_factor == 1 && options.super_sampled_readback) + return false; + + caps.max_width = options.upscaling_factor * Limits::MaxWidth; + caps.max_height = options.upscaling_factor * Limits::MaxHeight; + caps.max_tiles_x = options.upscaling_factor * ImplementationConstants::MaxTilesX; + caps.max_tiles_y = options.upscaling_factor * ImplementationConstants::MaxTilesY; + caps.max_num_tile_instances = options.upscaling_factor * options.upscaling_factor * Limits::MaxTileInstances; + +#ifdef PARALLEL_RDP_SHADER_DIR + pipeline_worker.reset(new WorkerThread( + Granite::Global::create_thread_context(), { device })); +#else + pipeline_worker.reset(new WorkerThread({ device })); +#endif + +#ifdef PARALLEL_RDP_SHADER_DIR + if (!GRANITE_FILESYSTEM()->get_backend("rdp")) + GRANITE_FILESYSTEM()->register_protocol("rdp", std::make_unique(PARALLEL_RDP_SHADER_DIR)); + device->get_shader_manager().add_include_directory("builtin://shaders/inc"); +#endif + + for (auto &buffer : buffer_instances) + buffer.init(*device); + + if (const char *env = getenv("RDP_DEBUG")) + debug_channel = strtoul(env, nullptr, 0) != 0; + if (const char *env = getenv("RDP_DEBUG_X")) + filter_debug_channel_x = strtol(env, nullptr, 0); + if (const char *env = getenv("RDP_DEBUG_Y")) + filter_debug_channel_y = strtol(env, nullptr, 0); + + { + Vulkan::BufferCreateInfo info = {}; + info.size = Limits::MaxTMEMInstances * 0x1000; + info.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; + info.domain = Vulkan::BufferDomain::Device; + info.misc = Vulkan::BUFFER_MISC_ZERO_INITIALIZE_BIT; + tmem_instances = device->create_buffer(info); + device->set_name(*tmem_instances, "tmem-instances"); + stream.tmem_upload_infos.reserve(Limits::MaxTMEMInstances); + } + + { + Vulkan::BufferCreateInfo info = {}; + info.size = options.upscaling_factor * Limits::MaxSpanSetups * sizeof(SpanSetup); + info.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; + info.domain = Vulkan::BufferDomain::Device; + info.misc = Vulkan::BUFFER_MISC_ZERO_INITIALIZE_BIT; + span_setups = device->create_buffer(info); + device->set_name(*span_setups, "span-setups"); + } + + init_blender_lut(); + init_buffers(options); + if (options.upscaling_factor > 1 && !init_internal_upscaling_factor(options)) + return false; + return init_caps(); +} + +void Renderer::set_device(Vulkan::Device *device_) +{ + device = device_; +} + +void Renderer::set_validation_interface(ValidationInterface *iface) +{ + validation_iface = iface; +} + +bool Renderer::init_caps() +{ + auto &features = device->get_device_features(); + + if (const char *timestamp = getenv("PARALLEL_RDP_BENCH")) + { + caps.timestamp = strtol(timestamp, nullptr, 0); + LOGI("Enabling timestamps = %d\n", caps.timestamp); + } + + if (const char *ubershader = getenv("PARALLEL_RDP_UBERSHADER")) + { + caps.ubershader = strtol(ubershader, nullptr, 0) > 0; + LOGI("Overriding ubershader = %d\n", int(caps.ubershader)); + } + + if (const char *force_sync = getenv("PARALLEL_RDP_FORCE_SYNC_SHADER")) + { + caps.force_sync = strtol(force_sync, nullptr, 0) > 0; + LOGI("Overriding force sync shader = %d\n", int(caps.force_sync)); + } + + bool allow_subgroup = true; + if (const char *subgroup = getenv("PARALLEL_RDP_SUBGROUP")) + { + allow_subgroup = strtol(subgroup, nullptr, 0) > 0; + LOGI("Allow subgroups = %d\n", int(allow_subgroup)); + } + + bool allow_small_types = true; + bool forces_small_types = false; + if (const char *small_type = getenv("PARALLEL_RDP_SMALL_TYPES")) + { + allow_small_types = strtol(small_type, nullptr, 0) > 0; + forces_small_types = true; + LOGI("Allow small types = %d.\n", int(allow_small_types)); + } + + if (!features.vk11_features.storageBuffer16BitAccess) + { + LOGE("16-bit storage for SSBOs is not supported! This is a minimum requirement for paraLLEl-RDP.\n"); + return false; + } + + if (!features.vk12_features.storageBuffer8BitAccess) + { + LOGE("8-bit storage for SSBOs is not supported! This is a minimum requirement for paraLLEl-RDP.\n"); + return false; + } + + // Driver workarounds here for 8/16-bit integer support. + if (features.supports_driver_properties && !forces_small_types) + { + if (features.driver_id == VK_DRIVER_ID_AMD_PROPRIETARY_KHR) + { + LOGW("Current proprietary AMD driver is known to be buggy with 8/16-bit integer arithmetic, disabling support for time being.\n"); + allow_small_types = false; + } + else if (features.driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR || + features.driver_id == VK_DRIVER_ID_MESA_RADV_KHR) + { + LOGW("Current open-source AMD drivers are known to be slightly faster without 8/16-bit integer arithmetic.\n"); + allow_small_types = false; + } + else if (features.driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR) + { + LOGW("Current NVIDIA driver is known to be slightly faster without 8/16-bit integer arithmetic.\n"); + allow_small_types = false; + } + else if (features.driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR) + { + LOGW("Current proprietary Intel Windows driver is tested to perform much better without 8/16-bit integer support.\n"); + allow_small_types = false; + } + + // Intel ANV *must* use small integer arithmetic, or it doesn't pass test suite. + } + + if (!allow_small_types) + { + caps.supports_small_integer_arithmetic = false; + } + else if (features.enabled_features.shaderInt16 && features.vk12_features.shaderInt8) + { + LOGI("Enabling 8 and 16-bit integer arithmetic support for more efficient shaders!\n"); + caps.supports_small_integer_arithmetic = true; + } + else + { + LOGW("Device does not support 8 and 16-bit integer arithmetic support. Falling back to 32-bit arithmetic everywhere.\n"); + caps.supports_small_integer_arithmetic = false; + } + + uint32_t subgroup_size = features.vk11_props.subgroupSize; + + const VkSubgroupFeatureFlags required = + VK_SUBGROUP_FEATURE_BALLOT_BIT | + VK_SUBGROUP_FEATURE_BASIC_BIT | + VK_SUBGROUP_FEATURE_VOTE_BIT | + VK_SUBGROUP_FEATURE_ARITHMETIC_BIT; + + caps.subgroup_tile_binning = + allow_subgroup && + (features.vk11_props.subgroupSupportedOperations & required) == required && + (features.vk11_props.subgroupSupportedStages & VK_SHADER_STAGE_COMPUTE_BIT) != 0 && + can_support_minimum_subgroup_size(32) && subgroup_size <= 64; + + caps.subgroup_depth_blend = + caps.super_sample_readback && + allow_subgroup && + (features.vk11_props.subgroupSupportedOperations & required) == required && + (features.vk11_props.subgroupSupportedOperations & VK_SHADER_STAGE_COMPUTE_BIT) != 0; + + return true; +} + +int Renderer::resolve_shader_define(const char *name, const char *define) const +{ + if (strcmp(define, "DEBUG_ENABLE") == 0) + return int(debug_channel); + else if (strcmp(define, "UBERSHADER") == 0) + return int(caps.ubershader); + else if (strcmp(define, "SMALL_TYPES") == 0) + return int(caps.supports_small_integer_arithmetic); + else if (strcmp(define, "SUBGROUP") == 0) + { + if (strcmp(name, "tile_binning_combined") == 0) + return int(caps.subgroup_tile_binning); + else if (strcmp(name, "depth_blend") == 0 || strcmp(name, "ubershader") == 0) + return int(caps.subgroup_depth_blend); + else + return 0; + } + else + return 0; +} + +void Renderer::init_buffers(const RendererOptions &options) +{ + Vulkan::BufferCreateInfo info = {}; + info.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; + info.domain = Vulkan::BufferDomain::Device; + info.misc = Vulkan::BUFFER_MISC_ZERO_INITIALIZE_BIT; + + static_assert((Limits::MaxPrimitives % 32) == 0, "MaxPrimitives must be divisble by 32."); + static_assert(Limits::MaxPrimitives <= (32 * 32), "MaxPrimitives must be less-or-equal than 1024."); + + info.size = sizeof(uint32_t) * + (Limits::MaxPrimitives / 32) * + (caps.max_width / ImplementationConstants::TileWidth) * + (caps.max_height / ImplementationConstants::TileHeight); + + tile_binning_buffer = device->create_buffer(info); + device->set_name(*tile_binning_buffer, "tile-binning-buffer"); + + info.size = sizeof(uint32_t) * + (caps.max_width / ImplementationConstants::TileWidth) * + (caps.max_height / ImplementationConstants::TileHeight); + + tile_binning_buffer_coarse = device->create_buffer(info); + device->set_name(*tile_binning_buffer_coarse, "tile-binning-buffer-coarse"); + + if (!caps.ubershader) + { + info.size = sizeof(uint32_t) * + (Limits::MaxPrimitives / 32) * + (caps.max_width / ImplementationConstants::TileWidth) * + (caps.max_height / ImplementationConstants::TileHeight); + + per_tile_offsets = device->create_buffer(info); + device->set_name(*per_tile_offsets, "per-tile-offsets"); + + info.size = sizeof(TileRasterWork) * Limits::MaxStaticRasterizationStates * caps.max_num_tile_instances; + tile_work_list = device->create_buffer(info); + device->set_name(*tile_work_list, "tile-work-list"); + + info.size = sizeof(uint32_t) * + caps.max_num_tile_instances * + ImplementationConstants::TileWidth * + ImplementationConstants::TileHeight; + per_tile_shaded_color = device->create_buffer(info); + device->set_name(*per_tile_shaded_color, "per-tile-shaded-color"); + per_tile_shaded_depth = device->create_buffer(info); + device->set_name(*per_tile_shaded_depth, "per-tile-shaded-depth"); + + info.size = sizeof(uint8_t) * + caps.max_num_tile_instances * + ImplementationConstants::TileWidth * + ImplementationConstants::TileHeight; + per_tile_shaded_coverage = device->create_buffer(info); + per_tile_shaded_shaded_alpha = device->create_buffer(info); + device->set_name(*per_tile_shaded_coverage, "per-tile-shaded-coverage"); + device->set_name(*per_tile_shaded_shaded_alpha, "per-tile-shaded-shaded-alpha"); + } +} + +void Renderer::init_blender_lut() +{ + Vulkan::BufferCreateInfo info = {}; + info.size = sizeof(blender_lut); + info.domain = Vulkan::BufferDomain::Device; + info.usage = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT; + + blender_divider_lut_buffer = device->create_buffer(info, blender_lut); + device->set_name(*blender_divider_lut_buffer, "blender-divider-lut-buffer"); + + Vulkan::BufferViewCreateInfo view = {}; + view.buffer = blender_divider_lut_buffer.get(); + view.format = VK_FORMAT_R8_UINT; + view.range = info.size; + blender_divider_buffer = device->create_buffer_view(view); +} + +void Renderer::message(const std::string &tag, uint32_t code, uint32_t x, uint32_t y, uint32_t, uint32_t num_words, + const Vulkan::DebugChannelInterface::Word *words) +{ + if (filter_debug_channel_x >= 0 && x != uint32_t(filter_debug_channel_x)) + return; + if (filter_debug_channel_y >= 0 && y != uint32_t(filter_debug_channel_y)) + return; + + enum Code + { + ASSERT_EQUAL = 0, + ASSERT_NOT_EQUAL = 1, + ASSERT_LESS_THAN = 2, + ASSERT_LESS_THAN_EQUAL = 3, + GENERIC = 4, + HEX = 5 + }; + + switch (Code(code)) + { + case ASSERT_EQUAL: + LOGE("ASSERT TRIPPED FOR (%u, %u), line %d, %d == %d failed.\n", + x, y, words[0].s32, words[1].s32, words[2].s32); + break; + + case ASSERT_NOT_EQUAL: + LOGE("ASSERT TRIPPED FOR (%u, %u), line %d, %d != %d failed.\n", + x, y, words[0].s32, words[1].s32, words[2].s32); + break; + + case ASSERT_LESS_THAN: + LOGE("ASSERT TRIPPED FOR (%u, %u), line %d, %d < %d failed.\n", + x, y, words[0].s32, words[1].s32, words[2].s32); + break; + + case ASSERT_LESS_THAN_EQUAL: + LOGE("ASSERT TRIPPED FOR (%u, %u), line %d, %d <= %d failed.\n", + x, y, words[0].s32, words[1].s32, words[2].s32); + break; + + case GENERIC: + switch (num_words) + { + case 1: + LOGI("(%u, %u), line %d.\n", x, y, words[0].s32); + break; + + case 2: + LOGI("(%u, %u), line %d: (%d).\n", x, y, words[0].s32, words[1].s32); + break; + + case 3: + LOGI("(%u, %u), line %d: (%d, %d).\n", x, y, words[0].s32, words[1].s32, words[2].s32); + break; + + case 4: + LOGI("(%u, %u), line %d: (%d, %d, %d).\n", x, y, + words[0].s32, words[1].s32, words[2].s32, words[3].s32); + break; + + default: + LOGE("Unknown number of generic parameters: %u\n", num_words); + break; + } + break; + + case HEX: + switch (num_words) + { + case 1: + LOGI("(%u, %u), line %d.\n", x, y, words[0].s32); + break; + + case 2: + LOGI("(%u, %u), line %d: (0x%x).\n", x, y, words[0].s32, words[1].s32); + break; + + case 3: + LOGI("(%u, %u), line %d: (0x%x, 0x%x).\n", x, y, words[0].s32, words[1].s32, words[2].s32); + break; + + case 4: + LOGI("(%u, %u), line %d: (0x%x, 0x%x, 0x%x).\n", x, y, + words[0].s32, words[1].s32, words[2].s32, words[3].s32); + break; + + default: + LOGE("Unknown number of generic parameters: %u\n", num_words); + break; + } + break; + + default: + LOGE("Unexpected message code: %u\n", code); + break; + } +} + +void Renderer::RenderBuffers::init(Vulkan::Device &device, Vulkan::BufferDomain domain, + RenderBuffers *borrow) +{ + triangle_setup = create_buffer(device, domain, + sizeof(TriangleSetup) * Limits::MaxPrimitives, + borrow ? &borrow->triangle_setup : nullptr); + device.set_name(*triangle_setup.buffer, "triangle-setup"); + + attribute_setup = create_buffer(device, domain, + sizeof(AttributeSetup) * Limits::MaxPrimitives, + borrow ? &borrow->attribute_setup: nullptr); + device.set_name(*attribute_setup.buffer, "attribute-setup"); + + derived_setup = create_buffer(device, domain, + sizeof(DerivedSetup) * Limits::MaxPrimitives, + borrow ? &borrow->derived_setup : nullptr); + device.set_name(*derived_setup.buffer, "derived-setup"); + + scissor_setup = create_buffer(device, domain, + sizeof(ScissorState) * Limits::MaxPrimitives, + borrow ? &borrow->scissor_setup : nullptr); + device.set_name(*scissor_setup.buffer, "scissor-state"); + + static_raster_state = create_buffer(device, domain, + sizeof(StaticRasterizationState) * Limits::MaxStaticRasterizationStates, + borrow ? &borrow->static_raster_state : nullptr); + device.set_name(*static_raster_state.buffer, "static-raster-state"); + + depth_blend_state = create_buffer(device, domain, + sizeof(DepthBlendState) * Limits::MaxDepthBlendStates, + borrow ? &borrow->depth_blend_state : nullptr); + device.set_name(*depth_blend_state.buffer, "depth-blend-state"); + + tile_info_state = create_buffer(device, domain, + sizeof(TileInfo) * Limits::MaxTileInfoStates, + borrow ? &borrow->tile_info_state : nullptr); + device.set_name(*tile_info_state.buffer, "tile-info-state"); + + state_indices = create_buffer(device, domain, + sizeof(InstanceIndices) * Limits::MaxPrimitives, + borrow ? &borrow->state_indices : nullptr); + device.set_name(*state_indices.buffer, "state-indices"); + + span_info_offsets = create_buffer(device, domain, + sizeof(SpanInfoOffsets) * Limits::MaxPrimitives, + borrow ? &borrow->span_info_offsets : nullptr); + device.set_name(*span_info_offsets.buffer, "span-info-offsets"); + + span_info_jobs = create_buffer(device, domain, + sizeof(SpanInterpolationJob) * Limits::MaxSpanSetups, + borrow ? &borrow->span_info_jobs : nullptr); + device.set_name(*span_info_jobs.buffer, "span-info-jobs"); + + if (!borrow) + { + Vulkan::BufferViewCreateInfo info = {}; + info.buffer = span_info_jobs.buffer.get(); + info.format = VK_FORMAT_R16G16B16A16_UINT; + info.range = span_info_jobs.buffer->get_create_info().size; + span_info_jobs_view = device.create_buffer_view(info); + } +} + +Renderer::MappedBuffer Renderer::RenderBuffers::create_buffer( + Vulkan::Device &device, Vulkan::BufferDomain domain, VkDeviceSize size, + Renderer::MappedBuffer *borrow) +{ + Vulkan::BufferCreateInfo info = {}; + info.domain = domain; + + if (domain == Vulkan::BufferDomain::Device || domain == Vulkan::BufferDomain::LinkedDeviceHostPreferDevice) + { + info.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | + VK_BUFFER_USAGE_TRANSFER_DST_BIT | + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | + VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT; + } + else if (borrow && borrow->is_host) + { + return *borrow; + } + else + { + info.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; + } + + info.size = size; + Renderer::MappedBuffer buffer; + buffer.buffer = device.create_buffer(info); + buffer.is_host = device.map_host_buffer(*buffer.buffer, 0) != nullptr; + return buffer; +} + +void Renderer::RenderBuffersUpdater::init(Vulkan::Device &device) +{ + gpu.init(device, Vulkan::BufferDomain::LinkedDeviceHostPreferDevice, nullptr); + cpu.init(device, Vulkan::BufferDomain::Host, &gpu); +} + +bool Renderer::init_internal_upscaling_factor(const RendererOptions &options) +{ + unsigned factor = options.upscaling_factor; + if (!device || !rdram || !hidden_rdram) + { + LOGE("Renderer is not initialized.\n"); + return false; + } + + caps.upscaling = factor; + caps.super_sample_readback = options.super_sampled_readback; + caps.super_sample_readback_dither = options.super_sampled_readback_dither; + + if (factor == 1) + { + upscaling_multisampled_hidden_rdram.reset(); + upscaling_reference_rdram.reset(); + upscaling_multisampled_rdram.reset(); + return true; + } + + Vulkan::BufferCreateInfo info; + info.domain = Vulkan::BufferDomain::Device; + info.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; + info.misc = Vulkan::BUFFER_MISC_ZERO_INITIALIZE_BIT; + + info.size = rdram_size; + upscaling_reference_rdram = device->create_buffer(info); + device->set_name(*upscaling_reference_rdram, "reference-rdram"); + + info.size = rdram_size * factor * factor; + // If we're super-sampling we'll need to carry forward a u8 writemask per unscaled pixel. + // The resolve pass will conditionally write a resolved pixel to avoid potential race conditions. + // We allocate 2 bits per pixel (color / depth write). + // The SSAA resolve shader will convert this to a VRAM write mask if we also need to handle incoherent + // RDRAM. + if (caps.super_sample_readback) + info.size += 2 * Limits::MaxWidth * Limits::MaxHeight / 8; + + upscaling_multisampled_rdram = device->create_buffer(info); + device->set_name(*upscaling_multisampled_rdram, "multisampled-rdram"); + + info.size = hidden_rdram->get_create_info().size * factor * factor; + upscaling_multisampled_hidden_rdram = device->create_buffer(info); + device->set_name(*upscaling_multisampled_hidden_rdram, "multisampled-hidden-rdram"); + + { + auto cmd = device->request_command_buffer(); + cmd->fill_buffer(*upscaling_multisampled_hidden_rdram, 0x03030303); + cmd->barrier(VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, + VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT); + device->submit(cmd); + } + + return true; +} + +void Renderer::set_rdram(Vulkan::Buffer *buffer, uint8_t *host_rdram, size_t offset, size_t size, bool coherent) +{ + rdram = buffer; + rdram_offset = offset; + rdram_size = size; + is_host_coherent = coherent; + device->set_name(*rdram, "rdram"); + + if (!is_host_coherent) + { + assert(rdram_offset == 0); + incoherent.host_rdram = host_rdram; + + // If we're not host coherent (missing VK_EXT_external_memory_host), + // we need to create a staging RDRAM buffer which is used for the real RDRAM uploads. + // RDRAM may be uploaded in a masked way (if GPU has pending writes), or direct copy (if no pending writes are outstanding). + Vulkan::BufferCreateInfo info = {}; + info.size = size; + info.domain = Vulkan::BufferDomain::Host; + info.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT; + incoherent.staging_rdram = device->create_buffer(info); + device->set_name(*incoherent.staging_rdram, "staging-rdram"); + + const auto div_round_up = [](size_t a, size_t b) -> size_t { return (a + b - 1) / b; }; + + if (!rdram->get_allocation().is_host_allocation()) + { + // If we cannot map RDRAM, we need a staging readback buffer. + Vulkan::BufferCreateInfo readback_info = {}; + readback_info.domain = Vulkan::BufferDomain::CachedCoherentHostPreferCached; + readback_info.size = rdram_size * Limits::NumSyncStates; + readback_info.usage = VK_BUFFER_USAGE_TRANSFER_DST_BIT; + incoherent.staging_readback = device->create_buffer(readback_info); + device->set_name(*incoherent.staging_readback, "staging-readback"); + incoherent.staging_readback_pages = div_round_up(readback_info.size, ImplementationConstants::IncoherentPageSize); + } + + incoherent.page_to_direct_copy.clear(); + incoherent.page_to_masked_copy.clear(); + incoherent.page_to_pending_readback.clear(); + + auto packed_pages = div_round_up(size, ImplementationConstants::IncoherentPageSize * 32); + incoherent.num_pages = div_round_up(size, ImplementationConstants::IncoherentPageSize); + + incoherent.page_to_direct_copy.resize(packed_pages); + incoherent.page_to_masked_copy.resize(packed_pages); + incoherent.page_to_pending_readback.resize(packed_pages); + incoherent.pending_writes_for_page.reset(new std::atomic_uint32_t[incoherent.num_pages]); + for (unsigned i = 0; i < incoherent.num_pages; i++) + incoherent.pending_writes_for_page[i].store(0); + } + else + { + incoherent = {}; + } +} + +void Renderer::set_hidden_rdram(Vulkan::Buffer *buffer) +{ + hidden_rdram = buffer; + device->set_name(*hidden_rdram, "hidden-rdram"); +} + +void Renderer::set_tmem(Vulkan::Buffer *buffer) +{ + tmem = buffer; + device->set_name(*tmem, "tmem"); +} + +void Renderer::flush_and_signal() +{ + flush_queues(); + submit_to_queue(); + assert(!stream.cmd); +} + +void Renderer::set_color_framebuffer(uint32_t addr, uint32_t width, FBFormat fmt) +{ + if (fb.addr != addr || fb.width != width || fb.fmt != fmt) + flush_queues(); + + fb.addr = addr; + fb.width = width; + fb.fmt = fmt; +} + +void Renderer::set_depth_framebuffer(uint32_t addr) +{ + if (fb.depth_addr != addr) + flush_queues(); + + fb.depth_addr = addr; +} + +void Renderer::set_scissor_state(const ScissorState &state) +{ + stream.scissor_state = state; +} + +void Renderer::set_static_rasterization_state(const StaticRasterizationState &state) +{ + stream.static_raster_state = state; +} + +void Renderer::set_depth_blend_state(const DepthBlendState &state) +{ + stream.depth_blend_state = state; +} + +void Renderer::draw_flat_primitive(TriangleSetup &setup) +{ + draw_shaded_primitive(setup, {}); +} + +static int normalize_dzpix(int dz) +{ + if (dz >= 0x8000) + return 0x8000; + else if (dz == 0) + return 1; + + unsigned bit = 31 - Util::leading_zeroes(dz); + return 1 << (bit + 1); +} + +static uint16_t dz_compress(int dz) +{ + int val = 0; + if (dz & 0xff00) + val |= 8; + if (dz & 0xf0f0) + val |= 4; + if (dz & 0xcccc) + val |= 2; + if (dz & 0xaaaa) + val |= 1; + return uint16_t(val); +} + +static void encode_rgb(uint8_t *rgba, uint32_t color) +{ + rgba[0] = uint8_t(color >> 24); + rgba[1] = uint8_t(color >> 16); + rgba[2] = uint8_t(color >> 8); +} + +static void encode_alpha(uint8_t *rgba, uint32_t color) +{ + rgba[3] = uint8_t(color); +} + +void Renderer::build_combiner_constants(DerivedSetup &setup, unsigned cycle) const +{ + auto &comb = stream.static_raster_state.combiner[cycle]; + auto &output = setup.constants[cycle]; + + switch (comb.rgb.muladd) + { + case RGBMulAdd::Env: + encode_rgb(output.muladd, constants.env_color); + break; + + case RGBMulAdd::Primitive: + encode_rgb(output.muladd, constants.primitive_color); + break; + + default: + break; + } + + switch (comb.rgb.mulsub) + { + case RGBMulSub::Env: + encode_rgb(output.mulsub, constants.env_color); + break; + + case RGBMulSub::Primitive: + encode_rgb(output.mulsub, constants.primitive_color); + break; + + case RGBMulSub::ConvertK4: + // Need to decode this specially since it's a 9-bit value. + encode_rgb(output.mulsub, uint32_t(constants.convert[4]) << 8); + break; + + case RGBMulSub::KeyCenter: + output.mulsub[0] = constants.key_center[0]; + output.mulsub[1] = constants.key_center[1]; + output.mulsub[2] = constants.key_center[2]; + break; + + default: + break; + } + + switch (comb.rgb.mul) + { + case RGBMul::Primitive: + encode_rgb(output.mul, constants.primitive_color); + break; + + case RGBMul::Env: + encode_rgb(output.mul, constants.env_color); + break; + + case RGBMul::PrimitiveAlpha: + encode_rgb(output.mul, 0x01010101 * ((constants.primitive_color) & 0xff)); + break; + + case RGBMul::EnvAlpha: + encode_rgb(output.mul, 0x01010101 * ((constants.env_color) & 0xff)); + break; + + case RGBMul::PrimLODFrac: + encode_rgb(output.mul, 0x01010101 * constants.prim_lod_frac); + break; + + case RGBMul::ConvertK5: + // Need to decode this specially since it's a 9-bit value. + encode_rgb(output.mul, uint32_t(constants.convert[5]) << 8); + break; + + case RGBMul::KeyScale: + output.mul[0] = constants.key_scale[0]; + output.mul[1] = constants.key_scale[1]; + output.mul[2] = constants.key_scale[2]; + break; + + default: + break; + } + + switch (comb.rgb.add) + { + case RGBAdd::Primitive: + encode_rgb(output.add, constants.primitive_color); + break; + + case RGBAdd::Env: + encode_rgb(output.add, constants.env_color); + break; + + default: + break; + } + + switch (comb.alpha.muladd) + { + case AlphaAddSub::PrimitiveAlpha: + encode_alpha(output.muladd, constants.primitive_color); + break; + + case AlphaAddSub::EnvAlpha: + encode_alpha(output.muladd, constants.env_color); + break; + + default: + break; + } + + switch (comb.alpha.mulsub) + { + case AlphaAddSub::PrimitiveAlpha: + encode_alpha(output.mulsub, constants.primitive_color); + break; + + case AlphaAddSub::EnvAlpha: + encode_alpha(output.mulsub, constants.env_color); + break; + + default: + break; + } + + switch (comb.alpha.mul) + { + case AlphaMul::PrimitiveAlpha: + encode_alpha(output.mul, constants.primitive_color); + break; + + case AlphaMul::EnvAlpha: + encode_alpha(output.mul, constants.env_color); + break; + + case AlphaMul::PrimLODFrac: + encode_alpha(output.mul, constants.prim_lod_frac); + break; + + default: + break; + } + + switch (comb.alpha.add) + { + case AlphaAddSub::PrimitiveAlpha: + encode_alpha(output.add, constants.primitive_color); + break; + + case AlphaAddSub::EnvAlpha: + encode_alpha(output.add, constants.env_color); + break; + + default: + break; + } +} + +DerivedSetup Renderer::build_derived_attributes(const AttributeSetup &attr) const +{ + DerivedSetup setup = {}; + if (constants.use_prim_depth) + { + setup.dz = constants.prim_dz; + setup.dz_compressed = dz_compress(setup.dz); + } + else + { + int dzdx = attr.dzdx >> 16; + int dzdy = attr.dzdy >> 16; + int dzpix = (dzdx < 0 ? (~dzdx & 0x7fff) : dzdx) + (dzdy < 0 ? (~dzdy & 0x7fff) : dzdy); + dzpix = normalize_dzpix(dzpix); + setup.dz = dzpix; + setup.dz_compressed = dz_compress(dzpix); + } + + build_combiner_constants(setup, 0); + build_combiner_constants(setup, 1); + + setup.fog_color[0] = uint8_t(constants.fog_color >> 24); + setup.fog_color[1] = uint8_t(constants.fog_color >> 16); + setup.fog_color[2] = uint8_t(constants.fog_color >> 8); + setup.fog_color[3] = uint8_t(constants.fog_color >> 0); + + setup.blend_color[0] = uint8_t(constants.blend_color >> 24); + setup.blend_color[1] = uint8_t(constants.blend_color >> 16); + setup.blend_color[2] = uint8_t(constants.blend_color >> 8); + setup.blend_color[3] = uint8_t(constants.blend_color >> 0); + + setup.fill_color = constants.fill_color; + setup.min_lod = constants.min_level; + + for (unsigned i = 0; i < 4; i++) + setup.convert_factors[i] = int16_t(constants.convert[i]); + + return setup; +} + +static constexpr unsigned SUBPIXELS_Y = 4; + +static int32_t clamp_int32(int64_t v) +{ + if (v < std::numeric_limits::min()) + return std::numeric_limits::min(); + else if (v > std::numeric_limits::max()) + return std::numeric_limits::max(); + else + return int32_t(v); +} + +static std::pair interpolate_x(const TriangleSetup &setup, int y, bool flip, int scaling) +{ + // Interpolate in 64-bit so we are guaranteed to catch any overflow scenario. + int64_t yh_interpolation_base = setup.yh & ~(SUBPIXELS_Y - 1); + int64_t ym_interpolation_base = setup.ym; + yh_interpolation_base *= scaling; + ym_interpolation_base *= scaling; + + int64_t xh = scaling * setup.xh + int64_t(y - yh_interpolation_base) * setup.dxhdy; + int64_t xm = scaling * setup.xm + int64_t(y - yh_interpolation_base) * setup.dxmdy; + int64_t xl = scaling * setup.xl + int64_t(y - ym_interpolation_base) * setup.dxldy; + if (y < scaling * setup.ym) + xl = xm; + + int64_t xh_shifted = xh >> 15; + int64_t xl_shifted = xl >> 15; + + int64_t xleft, xright; + if (flip) + { + xleft = xh_shifted; + xright = xl_shifted; + } + else + { + xleft = xl_shifted; + xright = xh_shifted; + } + + return { clamp_int32(xleft), clamp_int32(xright) }; +} + +unsigned Renderer::compute_conservative_max_num_tiles(const TriangleSetup &setup) const +{ + if (setup.yl <= setup.yh) + return 0; + + int scaling = int(caps.upscaling); + int start_y = setup.yh & ~(SUBPIXELS_Y - 1); + int end_y = (setup.yl - 1) | (SUBPIXELS_Y - 1); + + start_y = std::max(int(stream.scissor_state.ylo), start_y); + end_y = std::min(int(stream.scissor_state.yhi) - 1, end_y); + start_y *= scaling; + end_y *= scaling; + + // Y is clipped out, exit early. + if (end_y < start_y) + return 0; + + bool flip = (setup.flags & TRIANGLE_SETUP_FLIP_BIT) != 0; + + auto upper = interpolate_x(setup, start_y, flip, scaling); + auto lower = interpolate_x(setup, end_y, flip, scaling); + auto mid = upper; + auto mid1 = upper; + + int ym = scaling * setup.ym; + if (ym > start_y && ym < end_y) + { + mid = interpolate_x(setup, ym, flip, scaling); + mid1 = interpolate_x(setup, ym - 1, flip, scaling); + } + + // Robustness, check if we overflow the X rasterizer precision. + // After shifting down, we should have 12 bits signed. + // If we detect any overflow here we need to assume X range is scissor rect. + // This really should never happen, but it's possible to write tests that intentionally trigger weird + // overflow behavior that needs to be specially handled. + // There might be freak scenarios where we cannot detect overflow since we're only sampling at 4 scanlines + // and we have ~32 overflows happening at once, + // So we need to interpolate in 64-bit to make this work. + + auto start_x = std::min(std::min(upper.first, lower.first), std::min(mid.first, mid1.first)); + auto end_x = std::max(std::max(upper.second, lower.second), std::max(mid.second, mid1.second)); + + auto max_range_x = std::max(std::abs(start_x), std::abs(end_x)); + // Effective X range is [-2048, 2047], but just make it [-2047, 2047] to match binning shader. + // If we interpolate X to something outside that range, + // we must assume the entire X range will be covered. + if (max_range_x > 2047 * scaling) + { + start_x = 0; + end_x = 0x7fffffff; + } + + start_x = std::max(start_x, scaling * (int(stream.scissor_state.xlo) >> 2)); + end_x = std::min(end_x, scaling * ((int(stream.scissor_state.xhi) + 3) >> 2) - 1); + + if (end_x < start_x) + return 0; + + start_x /= ImplementationConstants::TileWidth; + end_x /= ImplementationConstants::TileWidth; + start_y /= (SUBPIXELS_Y * ImplementationConstants::TileHeight); + end_y /= (SUBPIXELS_Y * ImplementationConstants::TileHeight); + + return (end_x - start_x + 1) * (end_y - start_y + 1); +} + +static bool combiner_accesses_texel0(const CombinerInputs &inputs) +{ + return inputs.rgb.muladd == RGBMulAdd::Texel0 || + inputs.rgb.mulsub == RGBMulSub::Texel0 || + inputs.rgb.mul == RGBMul::Texel0 || + inputs.rgb.add == RGBAdd::Texel0 || + inputs.rgb.mul == RGBMul::Texel0Alpha || + inputs.alpha.muladd == AlphaAddSub::Texel0Alpha || + inputs.alpha.mulsub == AlphaAddSub::Texel0Alpha || + inputs.alpha.mul == AlphaMul::Texel0Alpha || + inputs.alpha.add == AlphaAddSub::Texel0Alpha; +} + +static bool combiner_accesses_lod_frac(const CombinerInputs &inputs) +{ + return inputs.rgb.mul == RGBMul::LODFrac || inputs.alpha.mul == AlphaMul::LODFrac; +} + +static bool combiner_accesses_texel1(const CombinerInputs &inputs) +{ + return inputs.rgb.muladd == RGBMulAdd::Texel1 || + inputs.rgb.mulsub == RGBMulSub::Texel1 || + inputs.rgb.mul == RGBMul::Texel1 || + inputs.rgb.add == RGBAdd::Texel1 || + inputs.rgb.mul == RGBMul::Texel1Alpha || + inputs.alpha.muladd == AlphaAddSub::Texel1Alpha || + inputs.alpha.mulsub == AlphaAddSub::Texel1Alpha || + inputs.alpha.mul == AlphaMul::Texel1Alpha || + inputs.alpha.add == AlphaAddSub::Texel1Alpha; +} + +static bool combiner_uses_texel0(const StaticRasterizationState &state) +{ + // Texel0 can be safely used in cycle0 of CYCLE2 mode, or in cycle1 (only cycle) of CYCLE1 mode. + if ((state.flags & RASTERIZATION_MULTI_CYCLE_BIT) != 0) + { + // In second cycle, Texel0 and Texel1 swap around ... + return combiner_accesses_texel0(state.combiner[0]) || + combiner_accesses_texel1(state.combiner[1]); + } + else + return combiner_accesses_texel0(state.combiner[1]); +} + +static bool combiner_uses_texel1(const StaticRasterizationState &state) +{ + // Texel1 can be safely used in cycle0 of CYCLE2 mode, and never in cycle1 mode. + // Texel0 can be safely accessed in cycle1, which is an alias due to pipelining. + if ((state.flags & RASTERIZATION_MULTI_CYCLE_BIT) != 0) + { + return combiner_accesses_texel1(state.combiner[0]) || + combiner_accesses_texel0(state.combiner[1]); + } + else + return false; +} + +static bool combiner_uses_pipelined_texel1(const StaticRasterizationState &state) +{ + // If you access Texel1 in cycle1 mode, you end up reading the next pixel's color for whatever reason. + if ((state.flags & RASTERIZATION_MULTI_CYCLE_BIT) == 0) + return combiner_accesses_texel1(state.combiner[1]); + else + return false; +} + +static bool combiner_uses_lod_frac(const StaticRasterizationState &state) +{ + if ((state.flags & RASTERIZATION_MULTI_CYCLE_BIT) != 0) + return combiner_accesses_lod_frac(state.combiner[0]) || combiner_accesses_lod_frac(state.combiner[1]); + else + return false; +} + +void Renderer::deduce_noise_state() +{ + auto &state = stream.static_raster_state; + state.flags &= ~(RASTERIZATION_NEED_NOISE_BIT | RASTERIZATION_NEED_NOISE_DUAL_BIT); + + // Figure out if we need to seed noise variable for this primitive. + if ((state.dither & 3) == 2 || ((state.dither >> 2) & 3) == 2) + { + state.flags |= RASTERIZATION_NEED_NOISE_BIT; + return; + } + + if ((state.flags & (RASTERIZATION_COPY_BIT | RASTERIZATION_FILL_BIT)) != 0) + return; + + if ((state.flags & RASTERIZATION_MULTI_CYCLE_BIT) != 0) + if (state.combiner[0].rgb.muladd == RGBMulAdd::Noise) + state.flags |= RASTERIZATION_NEED_NOISE_BIT; + + if (state.combiner[1].rgb.muladd == RGBMulAdd::Noise) + state.flags |= RASTERIZATION_NEED_NOISE_BIT; + + // If both cycles use noise, they need to observe different values. + if ((state.flags & RASTERIZATION_MULTI_CYCLE_BIT) != 0 && + state.combiner[0].rgb.muladd == RGBMulAdd::Noise && + state.combiner[1].rgb.muladd == RGBMulAdd::Noise) + state.flags |= RASTERIZATION_NEED_NOISE_DUAL_BIT; + + if ((state.flags & (RASTERIZATION_ALPHA_TEST_BIT | RASTERIZATION_ALPHA_TEST_DITHER_BIT)) == + (RASTERIZATION_ALPHA_TEST_BIT | RASTERIZATION_ALPHA_TEST_DITHER_BIT)) + { + state.flags |= RASTERIZATION_NEED_NOISE_BIT; + } +} + +static RGBMulAdd normalize_combiner(RGBMulAdd muladd) +{ + switch (muladd) + { + case RGBMulAdd::Noise: + case RGBMulAdd::Texel0: + case RGBMulAdd::Texel1: + case RGBMulAdd::Combined: + case RGBMulAdd::One: + case RGBMulAdd::Shade: + return muladd; + + default: + return RGBMulAdd::Zero; + } +} + +static RGBMulSub normalize_combiner(RGBMulSub mulsub) +{ + switch (mulsub) + { + case RGBMulSub::Combined: + case RGBMulSub::Texel0: + case RGBMulSub::Texel1: + case RGBMulSub::Shade: + case RGBMulSub::ConvertK4: + return mulsub; + + default: + return RGBMulSub::Zero; + } +} + +static RGBMul normalize_combiner(RGBMul mul) +{ + switch (mul) + { + case RGBMul::Combined: + case RGBMul::CombinedAlpha: + case RGBMul::Texel0: + case RGBMul::Texel1: + case RGBMul::Texel0Alpha: + case RGBMul::Texel1Alpha: + case RGBMul::Shade: + case RGBMul::ShadeAlpha: + case RGBMul::LODFrac: + case RGBMul::ConvertK5: + return mul; + + default: + return RGBMul::Zero; + } +} + +static RGBAdd normalize_combiner(RGBAdd add) +{ + switch (add) + { + case RGBAdd::Texel0: + case RGBAdd::Texel1: + case RGBAdd::Combined: + case RGBAdd::One: + case RGBAdd::Shade: + return add; + + default: + return RGBAdd::Zero; + } +} + +static AlphaAddSub normalize_combiner(AlphaAddSub addsub) +{ + switch (addsub) + { + case AlphaAddSub::CombinedAlpha: + case AlphaAddSub::Texel0Alpha: + case AlphaAddSub::Texel1Alpha: + case AlphaAddSub::ShadeAlpha: + case AlphaAddSub::One: + return addsub; + + default: + return AlphaAddSub::Zero; + } +} + +static AlphaMul normalize_combiner(AlphaMul mul) +{ + switch (mul) + { + case AlphaMul::LODFrac: + case AlphaMul::Texel0Alpha: + case AlphaMul::Texel1Alpha: + case AlphaMul::ShadeAlpha: + return mul; + + default: + return AlphaMul::Zero; + } +} + +static void normalize_combiner(CombinerInputsRGB &comb) +{ + comb.muladd = normalize_combiner(comb.muladd); + comb.mulsub = normalize_combiner(comb.mulsub); + comb.mul = normalize_combiner(comb.mul); + comb.add = normalize_combiner(comb.add); +} + +static void normalize_combiner(CombinerInputsAlpha &comb) +{ + comb.muladd = normalize_combiner(comb.muladd); + comb.mulsub = normalize_combiner(comb.mulsub); + comb.mul = normalize_combiner(comb.mul); + comb.add = normalize_combiner(comb.add); +} + +static void normalize_combiner(CombinerInputs &comb) +{ + normalize_combiner(comb.rgb); + normalize_combiner(comb.alpha); +} + +StaticRasterizationState Renderer::normalize_static_state(StaticRasterizationState state) +{ + if ((state.flags & RASTERIZATION_FILL_BIT) != 0) + { + state = {}; + state.flags = RASTERIZATION_FILL_BIT; + return state; + } + + if ((state.flags & RASTERIZATION_COPY_BIT) != 0) + { + auto flags = state.flags & + (RASTERIZATION_COPY_BIT | + RASTERIZATION_TLUT_BIT | + RASTERIZATION_TLUT_TYPE_BIT | + RASTERIZATION_USES_TEXEL0_BIT | + RASTERIZATION_USE_STATIC_TEXTURE_SIZE_FORMAT_BIT | + RASTERIZATION_TEX_LOD_ENABLE_BIT | + RASTERIZATION_DETAIL_LOD_ENABLE_BIT | + RASTERIZATION_PERSPECTIVE_CORRECT_BIT | + RASTERIZATION_ALPHA_TEST_BIT); + + auto fmt = state.texture_fmt; + auto siz = state.texture_size; + state = {}; + state.flags = flags; + state.texture_fmt = fmt; + state.texture_size = siz; + return state; + } + + if ((state.flags & (RASTERIZATION_MULTI_CYCLE_BIT | RASTERIZATION_USES_PIPELINED_TEXEL1_BIT)) == 0) + state.flags &= ~(RASTERIZATION_BILERP_1_BIT | RASTERIZATION_CONVERT_ONE_BIT); + + normalize_combiner(state.combiner[0]); + normalize_combiner(state.combiner[1]); + return state; +} + +void Renderer::deduce_static_texture_state(unsigned tile, unsigned max_lod_level) +{ + auto &state = stream.static_raster_state; + state.flags &= ~RASTERIZATION_USE_STATIC_TEXTURE_SIZE_FORMAT_BIT; + state.texture_size = 0; + state.texture_fmt = 0; + + if ((state.flags & RASTERIZATION_FILL_BIT) != 0) + return; + + auto fmt = tiles[tile].meta.fmt; + auto siz = tiles[tile].meta.size; + + if ((state.flags & RASTERIZATION_COPY_BIT) == 0) + { + // If all tiles we sample have the same fmt and size (common case), we can use a static variant. + bool uses_texel0 = combiner_uses_texel0(state); + bool uses_texel1 = combiner_uses_texel1(state); + bool uses_pipelined_texel1 = combiner_uses_pipelined_texel1(state); + bool uses_lod_frac = combiner_uses_lod_frac(state); + + if (uses_texel1 && (state.flags & RASTERIZATION_CONVERT_ONE_BIT) != 0) + uses_texel0 = true; + + state.flags &= ~(RASTERIZATION_USES_TEXEL0_BIT | + RASTERIZATION_USES_TEXEL1_BIT | + RASTERIZATION_USES_PIPELINED_TEXEL1_BIT | + RASTERIZATION_USES_LOD_BIT); + if (uses_texel0) + state.flags |= RASTERIZATION_USES_TEXEL0_BIT; + if (uses_texel1) + state.flags |= RASTERIZATION_USES_TEXEL1_BIT; + if (uses_pipelined_texel1) + state.flags |= RASTERIZATION_USES_PIPELINED_TEXEL1_BIT; + if (uses_lod_frac || (state.flags & RASTERIZATION_TEX_LOD_ENABLE_BIT) != 0) + state.flags |= RASTERIZATION_USES_LOD_BIT; + + if (!uses_texel0 && !uses_texel1 && !uses_pipelined_texel1) + return; + + bool use_lod = (state.flags & RASTERIZATION_TEX_LOD_ENABLE_BIT) != 0; + bool use_detail = (state.flags & RASTERIZATION_DETAIL_LOD_ENABLE_BIT) != 0; + + bool uses_physical_texel1 = uses_texel1 && + ((state.flags & RASTERIZATION_CONVERT_ONE_BIT) == 0 || + (state.flags & RASTERIZATION_BILERP_1_BIT) != 0); + + if (!use_lod) + max_lod_level = uses_physical_texel1 ? 1 : 0; + if (use_detail) + max_lod_level++; + max_lod_level = std::min(max_lod_level, 7u); + + for (unsigned i = 1; i <= max_lod_level; i++) + { + auto &t = tiles[(tile + i) & 7].meta; + if (t.fmt != fmt) + return; + if (t.size != siz) + return; + } + } + + // We have a static format. + state.flags |= RASTERIZATION_USE_STATIC_TEXTURE_SIZE_FORMAT_BIT; + state.texture_fmt = uint32_t(fmt); + state.texture_size = uint32_t(siz); +} + +void Renderer::fixup_triangle_setup(TriangleSetup &setup) const +{ + // If YM is lower than the first sub-scanline we rasterize, we will never observe YM at all. + // To account for this, fixup here so that YM is out of range. + // No known content actually triggers this, but some public tests triggered it. + int start_y = setup.yh & ~(SUBPIXELS_Y - 1); + if (setup.ym < start_y) + setup.ym = std::numeric_limits::max(); + + if ((stream.static_raster_state.flags & RASTERIZATION_INTERLACE_FIELD_BIT) != 0) + { + setup.flags |= (stream.static_raster_state.flags & RASTERIZATION_INTERLACE_FIELD_BIT) ? + TRIANGLE_SETUP_INTERLACE_FIELD_BIT : 0; + setup.flags |= (stream.static_raster_state.flags & RASTERIZATION_INTERLACE_KEEP_ODD_BIT) ? + TRIANGLE_SETUP_INTERLACE_KEEP_ODD_BIT : 0; + } + + // Span size is inclusive, not exclusive. + // Rasterization is based on X range directly. + if ((stream.static_raster_state.flags & (RASTERIZATION_COPY_BIT | RASTERIZATION_FILL_BIT)) != 0) + setup.flags |= TRIANGLE_SETUP_FILL_COPY_RASTER_BIT; +} + +void Renderer::validate_draw_state() const +{ + if ((stream.static_raster_state.flags & RASTERIZATION_FILL_BIT) != 0) + { + if (fb.fmt == FBFormat::I4) + { + validation_iface->report_rdp_crash(ValidationError::Fill4bpp, + "Attempted to use Fill mode on 4bpp surface."); + } + + if ((stream.depth_blend_state.flags & DEPTH_BLEND_DEPTH_TEST_BIT) != 0) + { + validation_iface->report_rdp_crash(ValidationError::FillDepthTest, + "Attempted to use Fill mode with depth test."); + } + + if ((stream.depth_blend_state.flags & DEPTH_BLEND_IMAGE_READ_ENABLE_BIT) != 0) + { + validation_iface->report_rdp_crash(ValidationError::FillImageReadEnable, + "Attempted to use Fill mode with image read enable."); + } + + if ((stream.depth_blend_state.flags & DEPTH_BLEND_DEPTH_UPDATE_BIT) != 0 && + !constants.use_prim_depth) + { + validation_iface->report_rdp_crash(ValidationError::FillDepthWrite, + "Attempted to use Fill mode with depth write enabled."); + } + } + else if ((stream.static_raster_state.flags & RASTERIZATION_COPY_BIT) != 0) + { + if (fb.fmt == FBFormat::RGBA8888) + { + validation_iface->report_rdp_crash(ValidationError::Copy32bpp, + "Attempted to use Copy mode on 32bpp surface."); + } + } +} + +void Renderer::draw_shaded_primitive(TriangleSetup &setup, const AttributeSetup &attr) +{ + if (validation_iface) + validate_draw_state(); + + fixup_triangle_setup(setup); + + unsigned num_tiles = compute_conservative_max_num_tiles(setup); + +#if 0 + // Don't exit early, throws off seeding of noise channels. + if (!num_tiles) + return; +#endif + + if (!caps.ubershader) + stream.max_shaded_tiles += num_tiles; + + update_deduced_height(setup); + stream.span_info_offsets.add(allocate_span_jobs(setup)); + stream.triangle_setup.add(setup); + + if (constants.use_prim_depth) + { + auto tmp_attr = attr; + tmp_attr.z = constants.prim_depth; + tmp_attr.dzdx = 0; + tmp_attr.dzde = 0; + tmp_attr.dzdy = 0; + stream.attribute_setup.add(tmp_attr); + } + else + { + stream.attribute_setup.add(attr); + } + + stream.derived_setup.add(build_derived_attributes(attr)); + stream.scissor_setup.add(stream.scissor_state); + + deduce_static_texture_state(setup.tile & 7, setup.tile >> 3); + deduce_noise_state(); + + InstanceIndices indices = {}; + indices.static_index = stream.static_raster_state_cache.add(normalize_static_state(stream.static_raster_state)); + indices.depth_blend_index = stream.depth_blend_state_cache.add(stream.depth_blend_state); + indices.tile_instance_index = uint8_t(stream.tmem_upload_infos.size()); + for (unsigned i = 0; i < 8; i++) + indices.tile_indices[i] = stream.tile_info_state_cache.add(tiles[i]); + stream.state_indices.add(indices); + + fb.color_write_pending = true; + if (stream.depth_blend_state.flags & DEPTH_BLEND_DEPTH_UPDATE_BIT) + fb.depth_write_pending = true; + pending_primitives++; + + if (need_flush()) + flush_queues(); +} + +SpanInfoOffsets Renderer::allocate_span_jobs(const TriangleSetup &setup) +{ + int min_active_sub_scanline = std::max(int(setup.yh), int(stream.scissor_state.ylo)); + int min_active_line = min_active_sub_scanline >> 2; + + int max_active_sub_scanline = std::min(setup.yl - 1, int(stream.scissor_state.yhi) - 1); + int max_active_line = max_active_sub_scanline >> 2; + + if (max_active_line < min_active_line) + return { 0, 0, -1, 0 }; + + // Need to poke into next scanline validation for certain workarounds. + int height = std::max(max_active_line - min_active_line + 2, 0); + height = std::min(height, 1024); + + int num_jobs = (height + ImplementationConstants::DefaultWorkgroupSize - 1) / ImplementationConstants::DefaultWorkgroupSize; + + SpanInfoOffsets offsets = {}; + offsets.offset = uint32_t(stream.span_info_jobs.size()) * ImplementationConstants::DefaultWorkgroupSize; + offsets.ylo = min_active_line; + offsets.yhi = max_active_line; + + for (int i = 0; i < num_jobs; i++) + { + SpanInterpolationJob interpolation_job = {}; + interpolation_job.primitive_index = uint32_t(stream.triangle_setup.size()); + interpolation_job.base_y = min_active_line + ImplementationConstants::DefaultWorkgroupSize * i; + interpolation_job.max_y = max_active_line + 1; + stream.span_info_jobs.add(interpolation_job); + } + return offsets; +} + +void Renderer::update_deduced_height(const TriangleSetup &setup) +{ + int max_active_sub_scanline = std::min(setup.yl - 1, int(stream.scissor_state.yhi) - 1); + int max_active_line = max_active_sub_scanline >> 2; + int height = std::max(max_active_line + 1, 0); + fb.deduced_height = std::max(fb.deduced_height, uint32_t(height)); +} + +bool Renderer::need_flush() const +{ + bool cache_full = + stream.static_raster_state_cache.full() || + stream.depth_blend_state_cache.full() || + (stream.tile_info_state_cache.size() + 8 > Limits::MaxTileInfoStates); + + bool triangle_full = + stream.triangle_setup.full(); + bool span_info_full = + (stream.span_info_jobs.size() * ImplementationConstants::DefaultWorkgroupSize + Limits::MaxHeight > Limits::MaxSpanSetups); + bool max_shaded_tiles = + (stream.max_shaded_tiles + caps.max_tiles_x * caps.max_tiles_y > caps.max_num_tile_instances); + +#ifdef VULKAN_DEBUG + if (cache_full) + LOGI("Cache is full.\n"); + if (triangle_full) + LOGI("Triangle is full.\n"); + if (span_info_full) + LOGI("Span info is full.\n"); + if (max_shaded_tiles) + LOGI("Shaded tiles is full.\n"); +#endif + + return cache_full || triangle_full || span_info_full || max_shaded_tiles; +} + +template +void Renderer::RenderBuffersUpdater::upload(Vulkan::CommandBuffer &cmd, Vulkan::Device &device, + const MappedBuffer &gpu, const MappedBuffer &cpu, const Cache &cache, + bool &did_upload) +{ + if (!cache.empty()) + { + memcpy(device.map_host_buffer(*cpu.buffer, Vulkan::MEMORY_ACCESS_WRITE_BIT), cache.data(), cache.byte_size()); + device.unmap_host_buffer(*cpu.buffer, Vulkan::MEMORY_ACCESS_WRITE_BIT); + if (gpu.buffer != cpu.buffer) + { + cmd.copy_buffer(*gpu.buffer, 0, *cpu.buffer, 0, cache.byte_size()); + did_upload = true; + } + } +} + +void Renderer::RenderBuffersUpdater::upload(Vulkan::Device &device, const Renderer::StreamCaches &caches, + Vulkan::CommandBuffer &cmd) +{ + bool did_upload = false; + + upload(cmd, device, gpu.triangle_setup, cpu.triangle_setup, caches.triangle_setup, did_upload); + upload(cmd, device, gpu.attribute_setup, cpu.attribute_setup, caches.attribute_setup, did_upload); + upload(cmd, device, gpu.derived_setup, cpu.derived_setup, caches.derived_setup, did_upload); + upload(cmd, device, gpu.scissor_setup, cpu.scissor_setup, caches.scissor_setup, did_upload); + + upload(cmd, device, gpu.static_raster_state, cpu.static_raster_state, caches.static_raster_state_cache, did_upload); + upload(cmd, device, gpu.depth_blend_state, cpu.depth_blend_state, caches.depth_blend_state_cache, did_upload); + upload(cmd, device, gpu.tile_info_state, cpu.tile_info_state, caches.tile_info_state_cache, did_upload); + + upload(cmd, device, gpu.state_indices, cpu.state_indices, caches.state_indices, did_upload); + upload(cmd, device, gpu.span_info_offsets, cpu.span_info_offsets, caches.span_info_offsets, did_upload); + upload(cmd, device, gpu.span_info_jobs, cpu.span_info_jobs, caches.span_info_jobs, did_upload); + + if (did_upload) + { + cmd.barrier(VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_READ_BIT); + } +} + +void Renderer::update_tmem_instances(Vulkan::CommandBuffer &cmd) +{ + cmd.begin_region("tmem-update"); + cmd.set_storage_buffer(0, 0, *rdram, rdram_offset, rdram_size); + cmd.set_storage_buffer(0, 1, *tmem); + cmd.set_storage_buffer(0, 2, *tmem_instances); + + memcpy(cmd.allocate_typed_constant_data(1, 0, stream.tmem_upload_infos.size()), + stream.tmem_upload_infos.data(), + stream.tmem_upload_infos.size() * sizeof(UploadInfo)); + + auto count = uint32_t(stream.tmem_upload_infos.size()); + +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://tmem_update.comp", {{ "DEBUG_ENABLE", debug_channel ? 1 : 0 }}); +#else + cmd.set_program(shader_bank->tmem_update); +#endif + + cmd.push_constants(&count, 0, sizeof(count)); + cmd.set_specialization_constant_mask(1); + cmd.set_specialization_constant(0, ImplementationConstants::DefaultWorkgroupSize); + + Vulkan::QueryPoolHandle start_ts, end_ts; + if (caps.timestamp >= 2) + start_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + cmd.dispatch(2048 / ImplementationConstants::DefaultWorkgroupSize, 1, 1); + if (caps.timestamp >= 2) + { + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + device->register_time_interval("RDP GPU", std::move(start_ts), std::move(end_ts), + "tmem-update"); + } + cmd.end_region(); +} + +void Renderer::submit_span_setup_jobs(Vulkan::CommandBuffer &cmd, bool upscale) +{ + cmd.begin_region("span-setup"); + auto &instance = buffer_instances[buffer_instance]; + cmd.set_storage_buffer(0, 0, *instance.gpu.triangle_setup.buffer); + cmd.set_storage_buffer(0, 1, *instance.gpu.attribute_setup.buffer); + cmd.set_storage_buffer(0, 2, *instance.gpu.scissor_setup.buffer); + cmd.set_storage_buffer(0, 3, *span_setups); + +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://span_setup.comp", {{ "DEBUG_ENABLE", debug_channel ? 1 : 0 }}); +#else + cmd.set_program(shader_bank->span_setup); +#endif + + cmd.set_buffer_view(1, 0, *instance.gpu.span_info_jobs_view); + cmd.set_specialization_constant_mask(3); + cmd.set_specialization_constant(0, (upscale ? caps.upscaling : 1) * ImplementationConstants::DefaultWorkgroupSize); + cmd.set_specialization_constant(1, upscale ? Util::trailing_zeroes(caps.upscaling) : 0u); + + Vulkan::QueryPoolHandle begin_ts, end_ts; + if (caps.timestamp >= 2) + begin_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + cmd.dispatch(stream.span_info_jobs.size(), 1, 1); + if (caps.timestamp >= 2) + { + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + device->register_time_interval("RDP GPU", std::move(begin_ts), std::move(end_ts), "span-info-jobs"); + } + cmd.end_region(); +} + +void Renderer::clear_indirect_buffer(Vulkan::CommandBuffer &cmd) +{ + cmd.begin_region("clear-indirect-buffer"); + +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://clear_indirect_buffer.comp"); +#else + cmd.set_program(shader_bank->clear_indirect_buffer); +#endif + + cmd.set_storage_buffer(0, 0, *indirect_dispatch_buffer); + + static_assert((Limits::MaxStaticRasterizationStates % ImplementationConstants::DefaultWorkgroupSize) == 0, "MaxStaticRasterizationStates does not align."); + cmd.set_specialization_constant_mask(1); + cmd.set_specialization_constant(0, ImplementationConstants::DefaultWorkgroupSize); + cmd.dispatch(Limits::MaxStaticRasterizationStates / ImplementationConstants::DefaultWorkgroupSize, 1, 1); + cmd.end_region(); +} + +void Renderer::submit_rasterization(Vulkan::CommandBuffer &cmd, Vulkan::Buffer &tmem, bool upscaling) +{ + cmd.begin_region("rasterization"); + auto &instance = buffer_instances[buffer_instance]; + + cmd.set_storage_buffer(0, 0, *instance.gpu.triangle_setup.buffer); + cmd.set_storage_buffer(0, 1, *instance.gpu.attribute_setup.buffer); + cmd.set_storage_buffer(0, 2, *instance.gpu.derived_setup.buffer); + cmd.set_storage_buffer(0, 3, *instance.gpu.static_raster_state.buffer); + cmd.set_storage_buffer(0, 4, *instance.gpu.state_indices.buffer); + cmd.set_storage_buffer(0, 5, *instance.gpu.span_info_offsets.buffer); + cmd.set_storage_buffer(0, 6, *span_setups); + cmd.set_storage_buffer(0, 7, tmem); + cmd.set_storage_buffer(0, 8, *instance.gpu.tile_info_state.buffer); + + cmd.set_storage_buffer(0, 9, *per_tile_shaded_color); + cmd.set_storage_buffer(0, 10, *per_tile_shaded_depth); + cmd.set_storage_buffer(0, 11, *per_tile_shaded_shaded_alpha); + cmd.set_storage_buffer(0, 12, *per_tile_shaded_coverage); + + auto *global_fb_info = cmd.allocate_typed_constant_data(2, 0, 1); + switch (fb.fmt) + { + case FBFormat::I4: + global_fb_info->fb_size = 0; + global_fb_info->dx_mask = 0; + global_fb_info->dx_shift = 0; + break; + + case FBFormat::I8: + global_fb_info->fb_size = 1; + global_fb_info->dx_mask = ~7u; + global_fb_info->dx_shift = 3; + break; + + case FBFormat::RGBA5551: + case FBFormat::IA88: + global_fb_info->fb_size = 2; + global_fb_info->dx_mask = ~3u; + global_fb_info->dx_shift = 2; + break; + + case FBFormat::RGBA8888: + global_fb_info->fb_size = 4; + global_fb_info->dx_shift = ~1u; + global_fb_info->dx_shift = 1; + break; + } + + global_fb_info->base_primitive_index = base_primitive_index; + +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://rasterizer.comp", { + { "DEBUG_ENABLE", debug_channel ? 1 : 0 }, + { "SMALL_TYPES", caps.supports_small_integer_arithmetic ? 1 : 0 }, + }); +#else + cmd.set_program(shader_bank->rasterizer); +#endif + + cmd.set_specialization_constant(0, ImplementationConstants::TileWidth); + cmd.set_specialization_constant(1, ImplementationConstants::TileHeight); + + Vulkan::QueryPoolHandle start_ts, end_ts; + if (caps.timestamp >= 2) + start_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + + uint32_t scale_log2_bit = (upscaling ? Util::trailing_zeroes(caps.upscaling) : 0u) << RASTERIZATION_UPSCALING_LOG2_BIT_OFFSET; + + for (size_t i = 0; i < stream.static_raster_state_cache.size(); i++) + { + cmd.set_storage_buffer(1, 0, *tile_work_list, + i * sizeof(TileRasterWork) * caps.max_num_tile_instances, + sizeof(TileRasterWork) * caps.max_num_tile_instances); + + auto &state = stream.static_raster_state_cache.data()[i]; + cmd.set_specialization_constant(2, state.flags | RASTERIZATION_USE_SPECIALIZATION_CONSTANT_BIT | scale_log2_bit); + cmd.set_specialization_constant(3, state.combiner[0].rgb); + cmd.set_specialization_constant(4, state.combiner[0].alpha); + cmd.set_specialization_constant(5, state.combiner[1].rgb); + cmd.set_specialization_constant(6, state.combiner[1].alpha); + + cmd.set_specialization_constant(7, state.dither | + (state.texture_size << 8u) | + (state.texture_fmt << 16u)); + cmd.set_specialization_constant_mask(0xff); + + if (!caps.force_sync && !cmd.flush_pipeline_state_without_blocking()) + { + Vulkan::DeferredPipelineCompile compile; + cmd.extract_pipeline_state(compile); + if (pending_async_pipelines.count(compile.hash) == 0) + { + pending_async_pipelines.insert(compile.hash); + pipeline_worker->push(std::move(compile)); + } + cmd.set_specialization_constant_mask(7); + cmd.set_specialization_constant(2, scale_log2_bit); + } + + cmd.dispatch_indirect(*indirect_dispatch_buffer, 4 * sizeof(uint32_t) * i); + } + + if (caps.timestamp >= 2) + { + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + device->register_time_interval("RDP GPU", std::move(start_ts), std::move(end_ts), "shading"); + } + cmd.end_region(); +} + +void Renderer::submit_tile_binning_combined(Vulkan::CommandBuffer &cmd, bool upscale) +{ + cmd.begin_region("tile-binning-combined"); + auto &instance = buffer_instances[buffer_instance]; + cmd.set_storage_buffer(0, 0, *instance.gpu.triangle_setup.buffer); + cmd.set_storage_buffer(0, 1, *instance.gpu.scissor_setup.buffer); + cmd.set_storage_buffer(0, 2, *instance.gpu.state_indices.buffer); + cmd.set_storage_buffer(0, 3, *tile_binning_buffer); + cmd.set_storage_buffer(0, 4, *tile_binning_buffer_coarse); + + if (!caps.ubershader) + { + cmd.set_storage_buffer(0, 5, *per_tile_offsets); + cmd.set_storage_buffer(0, 6, *indirect_dispatch_buffer); + cmd.set_storage_buffer(0, 7, *tile_work_list); + } + + cmd.set_specialization_constant_mask(0x7f); + cmd.set_specialization_constant(1, ImplementationConstants::TileWidth); + cmd.set_specialization_constant(2, ImplementationConstants::TileHeight); + cmd.set_specialization_constant(3, Limits::MaxPrimitives); + cmd.set_specialization_constant(4, upscale ? caps.max_width : Limits::MaxWidth); + cmd.set_specialization_constant(5, caps.max_num_tile_instances); + cmd.set_specialization_constant(6, upscale ? caps.upscaling : 1u); + + struct PushData + { + uint32_t width, height; + uint32_t num_primitives; + } push = {}; + push.width = fb.width; + push.height = fb.deduced_height; + + if (upscale) + { + push.width *= caps.upscaling; + push.height *= caps.upscaling; + } + + push.num_primitives = uint32_t(stream.triangle_setup.size()); + unsigned num_primitives_32 = (push.num_primitives + 31) / 32; + + cmd.push_constants(&push, 0, sizeof(push)); + + auto &features = device->get_device_features(); + uint32_t subgroup_size = features.vk11_props.subgroupSize; + + Vulkan::QueryPoolHandle start_ts, end_ts; + if (caps.timestamp >= 2) + start_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + + if (caps.subgroup_tile_binning) + { +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://tile_binning_combined.comp", { + { "DEBUG_ENABLE", debug_channel ? 1 : 0 }, + { "SUBGROUP", 1 }, + { "UBERSHADER", int(caps.ubershader) }, + { "SMALL_TYPES", caps.supports_small_integer_arithmetic ? 1 : 0 }, + }); +#else + cmd.set_program(shader_bank->tile_binning_combined); +#endif + + if (supports_subgroup_size_control(32, subgroup_size)) + { + cmd.enable_subgroup_size_control(true); + cmd.set_subgroup_size_log2(true, 5, Util::trailing_zeroes(subgroup_size)); + } + } + else + { +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://tile_binning_combined.comp", { + { "DEBUG_ENABLE", debug_channel ? 1 : 0 }, + { "SUBGROUP", 0 }, + { "UBERSHADER", int(caps.ubershader) }, + { "SMALL_TYPES", caps.supports_small_integer_arithmetic ? 1 : 0 }, + }); +#else + cmd.set_program(shader_bank->tile_binning_combined); +#endif + + subgroup_size = 32; + } + + cmd.set_specialization_constant(0, subgroup_size); + unsigned meta_tiles_x = 8; + unsigned meta_tiles_y = subgroup_size / meta_tiles_x; + unsigned num_tiles_x = (push.width + ImplementationConstants::TileWidth - 1) / ImplementationConstants::TileWidth; + unsigned num_tiles_y = (push.height + ImplementationConstants::TileHeight - 1) / ImplementationConstants::TileHeight; + unsigned num_meta_tiles_x = (num_tiles_x + meta_tiles_x - 1) / meta_tiles_x; + unsigned num_meta_tiles_y = (num_tiles_y + meta_tiles_y - 1) / meta_tiles_y; + cmd.dispatch(num_primitives_32, num_meta_tiles_x, num_meta_tiles_y); + + if (caps.timestamp >= 2) + { + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + device->register_time_interval("RDP GPU", std::move(start_ts), std::move(end_ts), "tile-binning"); + } + + cmd.enable_subgroup_size_control(false); + cmd.end_region(); +} + +void Renderer::submit_update_upscaled_domain_external(Vulkan::CommandBuffer &cmd, + unsigned addr, unsigned length, unsigned pixel_size_log2) +{ + submit_update_upscaled_domain(cmd, ResolveStage::Pre, addr, addr, length, 1, pixel_size_log2); +} + +void Renderer::submit_update_upscaled_domain(Vulkan::CommandBuffer &cmd, ResolveStage stage, + unsigned addr, unsigned depth_addr, + unsigned width, unsigned height, + unsigned pixel_size_log2) +{ +#ifdef PARALLEL_RDP_SHADER_DIR + if (stage == ResolveStage::Pre) + cmd.set_program("rdp://update_upscaled_domain_pre.comp"); + else if (stage == ResolveStage::Post) + cmd.set_program("rdp://update_upscaled_domain_post.comp"); + else + cmd.set_program("rdp://update_upscaled_domain_resolve.comp"); +#else + if (stage == ResolveStage::Pre) + cmd.set_program(shader_bank->update_upscaled_domain_pre); + else if (stage == ResolveStage::Post) + cmd.set_program(shader_bank->update_upscaled_domain_post); + else + cmd.set_program(shader_bank->update_upscaled_domain_resolve); +#endif + + unsigned num_pixels = width * height; + + if (stage != ResolveStage::SSAAResolve) + { + // Ensure that we always process entire words, thus we avoid having to do weird swizzles, + // and memory access patterns are linear with gl_GlobalInvocationID.x. + addr &= ~3u; + depth_addr &= ~3u; + unsigned align_pixels = 4u >> pixel_size_log2; + num_pixels = (num_pixels + align_pixels - 1u) & ~(align_pixels - 1u); + } + + cmd.set_storage_buffer(0, 0, *rdram, rdram_offset, + (stage == ResolveStage::SSAAResolve && !is_host_coherent ? 2 : 1) * rdram_size); + cmd.set_storage_buffer(0, 1, *hidden_rdram); + cmd.set_storage_buffer(0, 2, *upscaling_reference_rdram); + cmd.set_storage_buffer(0, 3, *upscaling_multisampled_rdram); + cmd.set_storage_buffer(0, 4, *upscaling_multisampled_hidden_rdram); + + cmd.set_specialization_constant_mask(0x7f); + cmd.set_specialization_constant(0, uint32_t(rdram_size)); + cmd.set_specialization_constant(1, pixel_size_log2); + cmd.set_specialization_constant(2, int(addr == depth_addr)); + cmd.set_specialization_constant(3, ImplementationConstants::DefaultWorkgroupSize); + cmd.set_specialization_constant(4, caps.upscaling * caps.upscaling); + if (stage == ResolveStage::SSAAResolve) + { + cmd.set_specialization_constant(5, uint32_t(caps.super_sample_readback_dither)); + cmd.set_specialization_constant(6, uint32_t(!is_host_coherent)); + } + + uint32_t num_workgroups_x, num_workgroups_y; + + if (stage == ResolveStage::SSAAResolve) + { + num_workgroups_x = + (width + ImplementationConstants::DefaultWorkgroupSize - 1) / + ImplementationConstants::DefaultWorkgroupSize; + num_workgroups_y = height; + } + else + { + num_workgroups_x = + (num_pixels + ImplementationConstants::DefaultWorkgroupSize - 1) / + ImplementationConstants::DefaultWorkgroupSize; + num_workgroups_y = 1; + } + + struct Push + { + uint32_t pixels; + uint32_t fb_addr, fb_depth_addr; + uint32_t width, height; + } push = {}; + push.pixels = num_pixels; + push.fb_addr = addr >> pixel_size_log2; + push.fb_depth_addr = depth_addr >> 1; + push.width = width; + push.height = height; + + cmd.push_constants(&push, 0, sizeof(push)); + + Vulkan::QueryPoolHandle start_ts, end_ts; + if (caps.timestamp >= 2 && stage == ResolveStage::SSAAResolve) + start_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + cmd.dispatch(num_workgroups_x, num_workgroups_y, 1); + if (caps.timestamp >= 2 && stage == ResolveStage::SSAAResolve) + { + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + device->register_time_interval("RDP GPU", std::move(start_ts), std::move(end_ts), "ssaa-resolve"); + } +} + +void Renderer::submit_clear_super_sample_write_mask(Vulkan::CommandBuffer &cmd, unsigned width, unsigned height) +{ + // Pack 4x4 block of pixel's writemasks in one u32. Allows for one depth_blend workgroup to target a single u32 + // in all cases, which is nice :) + unsigned blocks_x = (width + 3) / 4; + unsigned blocks_y = (height + 3) / 4; + unsigned num_words = blocks_x * blocks_y; + unsigned num_workgroups = (num_words + ImplementationConstants::DefaultWorkgroupSize - 1) / + ImplementationConstants::DefaultWorkgroupSize; + +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://clear_super_sampled_write_mask.comp"); +#else + cmd.set_program(shader_bank->clear_super_sampled_write_mask); +#endif + + cmd.set_storage_buffer(0, 0, *upscaling_multisampled_rdram, rdram_size * caps.upscaling * caps.upscaling, + 2 * Limits::MaxWidth * Limits::MaxHeight / 8); + + cmd.set_specialization_constant_mask(1); + cmd.set_specialization_constant(0, ImplementationConstants::DefaultWorkgroupSize); + cmd.dispatch(num_workgroups, 1, 1); + cmd.set_specialization_constant_mask(0); +} + +void Renderer::submit_update_upscaled_domain(Vulkan::CommandBuffer &cmd, ResolveStage stage) +{ + unsigned pixel_size_log2; + + switch (fb.fmt) + { + case FBFormat::RGBA8888: + pixel_size_log2 = 2; + break; + + case FBFormat::RGBA5551: + case FBFormat::IA88: + pixel_size_log2 = 1; + break; + + default: + pixel_size_log2 = 0; + break; + } + + submit_update_upscaled_domain(cmd, stage, fb.addr, fb.depth_addr, + fb.width, fb.deduced_height, pixel_size_log2); +} + +void Renderer::submit_depth_blend(Vulkan::CommandBuffer &cmd, Vulkan::Buffer &tmem, bool upscaled, bool force_write_mask) +{ + cmd.begin_region("render-pass"); + auto &instance = buffer_instances[buffer_instance]; + + cmd.set_specialization_constant_mask(0xff); + cmd.set_specialization_constant(0, uint32_t(rdram_size)); + cmd.set_specialization_constant(1, uint32_t(fb.fmt)); + cmd.set_specialization_constant(2, int(fb.addr == fb.depth_addr)); + cmd.set_specialization_constant(3, ImplementationConstants::TileWidth); + cmd.set_specialization_constant(4, ImplementationConstants::TileHeight); + cmd.set_specialization_constant(5, Limits::MaxPrimitives); + cmd.set_specialization_constant(6, upscaled ? caps.max_width : Limits::MaxWidth); + cmd.set_specialization_constant(7, uint32_t(force_write_mask || (!is_host_coherent && !upscaled)) | + ((upscaled ? Util::trailing_zeroes(caps.upscaling) : 0u) << 1u)); + + if (upscaled) + cmd.set_storage_buffer(0, 0, *upscaling_multisampled_rdram); + else + cmd.set_storage_buffer(0, 0, *rdram, rdram_offset, rdram_size * (is_host_coherent ? 1 : 2)); + cmd.set_storage_buffer(0, 1, upscaled ? *upscaling_multisampled_hidden_rdram : *hidden_rdram); + cmd.set_storage_buffer(0, 2, tmem); + + if (!caps.ubershader) + { + cmd.set_storage_buffer(0, 3, *per_tile_shaded_color); + cmd.set_storage_buffer(0, 4, *per_tile_shaded_depth); + cmd.set_storage_buffer(0, 5, *per_tile_shaded_shaded_alpha); + cmd.set_storage_buffer(0, 6, *per_tile_shaded_coverage); + cmd.set_storage_buffer(0, 7, *per_tile_offsets); + } + + cmd.set_storage_buffer(1, 0, *instance.gpu.triangle_setup.buffer); + cmd.set_storage_buffer(1, 1, *instance.gpu.attribute_setup.buffer); + cmd.set_storage_buffer(1, 2, *instance.gpu.derived_setup.buffer); + cmd.set_storage_buffer(1, 3, *instance.gpu.scissor_setup.buffer); + cmd.set_storage_buffer(1, 4, *instance.gpu.static_raster_state.buffer); + cmd.set_storage_buffer(1, 5, *instance.gpu.depth_blend_state.buffer); + cmd.set_storage_buffer(1, 6, *instance.gpu.state_indices.buffer); + cmd.set_storage_buffer(1, 7, *instance.gpu.tile_info_state.buffer); + cmd.set_storage_buffer(1, 8, *span_setups); + cmd.set_storage_buffer(1, 9, *instance.gpu.span_info_offsets.buffer); + cmd.set_buffer_view(1, 10, *blender_divider_buffer); + cmd.set_storage_buffer(1, 11, *tile_binning_buffer); + cmd.set_storage_buffer(1, 12, *tile_binning_buffer_coarse); + + auto *global_fb_info = cmd.allocate_typed_constant_data(2, 0, 1); + + GlobalState push = {}; + push.fb_width = fb.width; + push.fb_height = fb.deduced_height; + + if (upscaled) + { + push.fb_width *= caps.upscaling; + push.fb_height *= caps.upscaling; + } + + switch (fb.fmt) + { + case FBFormat::I4: + push.addr_index = fb.addr; + global_fb_info->fb_size = 0; + global_fb_info->dx_mask = 0; + global_fb_info->dx_shift = 0; + break; + + case FBFormat::I8: + push.addr_index = fb.addr; + global_fb_info->fb_size = 1; + global_fb_info->dx_mask = ~7u; + global_fb_info->dx_shift = 3; + break; + + case FBFormat::RGBA5551: + case FBFormat::IA88: + push.addr_index = fb.addr >> 1u; + global_fb_info->fb_size = 2; + global_fb_info->dx_mask = ~3u; + global_fb_info->dx_shift = 2; + break; + + case FBFormat::RGBA8888: + push.addr_index = fb.addr >> 2u; + global_fb_info->fb_size = 4; + global_fb_info->dx_mask = ~1u; + global_fb_info->dx_shift = 1; + break; + } + + global_fb_info->base_primitive_index = base_primitive_index; + + push.depth_addr_index = fb.depth_addr >> 1; + unsigned num_primitives_32 = (stream.triangle_setup.size() + 31) / 32; + push.group_mask = (1u << num_primitives_32) - 1; + cmd.push_constants(&push, 0, sizeof(push)); + + if (caps.ubershader) + { +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://ubershader.comp", { + { "DEBUG_ENABLE", debug_channel ? 1 : 0 }, + { "SMALL_TYPES", caps.supports_small_integer_arithmetic ? 1 : 0 }, + { "SUBGROUP", caps.subgroup_depth_blend ? 1 : 0 }, + }); +#else + cmd.set_program(shader_bank->ubershader); +#endif + } + else + { +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://depth_blend.comp", { + { "DEBUG_ENABLE", debug_channel ? 1 : 0 }, + { "SMALL_TYPES", caps.supports_small_integer_arithmetic ? 1 : 0 }, + { "SUBGROUP", caps.subgroup_depth_blend ? 1 : 0 }, + }); +#else + cmd.set_program(shader_bank->depth_blend); +#endif + } + + Vulkan::QueryPoolHandle start_ts, end_ts; + if (caps.timestamp >= 2) + start_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + + cmd.dispatch((push.fb_width + 7) / 8, (push.fb_height + 7) / 8, 1); + + if (caps.timestamp >= 2) + { + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + device->register_time_interval("RDP GPU", std::move(start_ts), std::move(end_ts), "depth-blending"); + } + + cmd.end_region(); +} + +void Renderer::submit_render_pass(Vulkan::CommandBuffer &cmd) +{ + bool need_render_pass = fb.width != 0 && fb.deduced_height != 0 && !stream.span_info_jobs.empty(); + bool need_tmem_upload = !stream.tmem_upload_infos.empty(); + bool need_submit = need_render_pass || need_tmem_upload; + if (!need_submit) + return; + + Vulkan::QueryPoolHandle render_pass_start, render_pass_end; + if (caps.timestamp >= 1) + render_pass_start = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + + if (debug_channel) + cmd.begin_debug_channel(this, "Debug", 16 * 1024 * 1024); + + // Here we run 3 dispatches in parallel. Span setup and TMEM instances are low occupancy kind of jobs, but the binning + // pass should dominate here unless the workload is trivial. + if (need_render_pass) + { + submit_span_setup_jobs(cmd, false); + submit_tile_binning_combined(cmd, false); + if (caps.upscaling > 1) + submit_update_upscaled_domain(cmd, ResolveStage::Pre); + } + + if (need_tmem_upload) + update_tmem_instances(cmd); + + cmd.barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | (!caps.ubershader ? VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT : 0), + VK_ACCESS_2_SHADER_STORAGE_READ_BIT | VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT | + (!caps.ubershader ? VK_ACCESS_INDIRECT_COMMAND_READ_BIT : 0)); + + if (need_render_pass && !caps.ubershader) + { + submit_rasterization(cmd, need_tmem_upload ? *tmem_instances : *tmem, false); + cmd.barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_READ_BIT); + } + + if (need_render_pass) + submit_depth_blend(cmd, need_tmem_upload ? *tmem_instances : *tmem, false, false); + + if (!caps.ubershader) + clear_indirect_buffer(cmd); + + if (render_pass_is_upscaled()) + { + cmd.barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_STORAGE_READ_BIT | VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT); + + // TODO: Could probably do this reference update in the render pass itself, + // just write output to two buffers ... This is more composable for now. + submit_update_upscaled_domain(cmd, ResolveStage::Post); + } + + if (caps.timestamp >= 1) + { + render_pass_end = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + device->register_time_interval("RDP GPU", std::move(render_pass_start), std::move(render_pass_end), "render-pass"); + } +} + +void Renderer::submit_render_pass_upscaled(Vulkan::CommandBuffer &cmd) +{ + cmd.begin_region("render-pass-upscaled"); + Vulkan::QueryPoolHandle start_ts, end_ts; + if (caps.timestamp >= 1) + start_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + + bool need_tmem_upload = !stream.tmem_upload_infos.empty(); + + submit_span_setup_jobs(cmd, true); + submit_tile_binning_combined(cmd, true); + if (caps.super_sample_readback) + { + submit_update_upscaled_domain(cmd, ResolveStage::Pre); + submit_clear_super_sample_write_mask(cmd, fb.width, fb.deduced_height); + if (need_tmem_upload) + update_tmem_instances(cmd); + } + + cmd.barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | + (!caps.ubershader ? VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT : 0), + VK_ACCESS_2_SHADER_STORAGE_READ_BIT | VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT | + (!caps.ubershader ? VK_ACCESS_INDIRECT_COMMAND_READ_BIT : 0)); + + if (!caps.ubershader) + { + submit_rasterization(cmd, need_tmem_upload ? *tmem_instances : *tmem, true); + cmd.barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_STORAGE_READ_BIT); + } + + submit_depth_blend(cmd, need_tmem_upload ? *tmem_instances : *tmem, true, caps.super_sample_readback); + if (!caps.ubershader) + clear_indirect_buffer(cmd); + + if (caps.super_sample_readback) + { + cmd.begin_region("ssaa-resolve"); + cmd.barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_STORAGE_READ_BIT | VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT); + + submit_update_upscaled_domain(cmd, ResolveStage::SSAAResolve); + cmd.end_region(); + } + + if (caps.timestamp >= 1) + { + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + device->register_time_interval("RDP GPU", std::move(start_ts), std::move(end_ts), "render-pass-upscaled"); + } + cmd.end_region(); +} + +void Renderer::submit_render_pass_end(Vulkan::CommandBuffer &cmd) +{ + base_primitive_index += uint32_t(stream.triangle_setup.size()); + cmd.barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_STORAGE_READ_BIT | VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT); +} + +void Renderer::maintain_queues() +{ + // Some conditions dictate if we should flush a render pass. + // These heuristics ensures we don't wait too long to flush render passes, + // and also ensure that we don't spam submissions too often, causing massive bubbles on GPU. + + // If we get a lot of small render passes in a row, it makes sense to batch them up, e.g. 8 at a time. + // If we get 2 full render passes of ~256 primitives, that's also a good indication we should flush since we're getting spammed. + // If we have no pending submissions, the GPU is idle and there is no reason not to submit. + // If we haven't submitted anything in a while (1.0 ms), it's probably fine to submit again. + if (pending_render_passes >= ImplementationConstants::MaxPendingRenderPassesBeforeFlush || + (caps.super_sample_readback && pending_render_passes_upscaled >= ImplementationConstants::MaxPendingRenderPassesBeforeFlush) || + pending_primitives >= Limits::MaxPrimitives || + pending_primitives_upscaled >= Limits::MaxPrimitives || + active_submissions.load(std::memory_order_relaxed) == 0 || + int64_t(Util::get_current_time_nsecs() - last_submit_ns) > 1000000) + { + submit_to_queue(); + } +} + +void Renderer::lock_command_processing() +{ + idle_lock.lock(); +} + +void Renderer::unlock_command_processing() +{ + idle_lock.unlock(); +} + +void Renderer::maintain_queues_idle() +{ + std::lock_guard holder{idle_lock}; + if (pending_primitives >= ImplementationConstants::MinimumPrimitivesForIdleFlush || + pending_render_passes >= ImplementationConstants::MinimumRenderPassesForIdleFlush) + { + flush_queues(); + submit_to_queue(); + } +} + +void Renderer::enqueue_fence_wait(Vulkan::Fence fence) +{ + CoherencyOperation op; + op.fence = std::move(fence); + op.unlock_cookie = &active_submissions; + active_submissions.fetch_add(1, std::memory_order_relaxed); + processor.enqueue_coherency_operation(std::move(op)); + last_submit_ns = Util::get_current_time_nsecs(); +} + +void Renderer::submit_to_queue() +{ + bool pending_host_visible_render_passes = + (caps.super_sample_readback ? pending_render_passes_upscaled : pending_render_passes) != 0; + bool pending_upscaled_passes = pending_render_passes_upscaled != 0; + pending_render_passes = 0; + pending_render_passes_upscaled = 0; + pending_primitives = 0; + pending_primitives_upscaled = 0; + + if (!stream.cmd) + { + if (pending_host_visible_render_passes) + { + Vulkan::Fence fence; + device->submit_empty(Vulkan::CommandBuffer::Type::AsyncCompute, &fence); + enqueue_fence_wait(fence); + } + return; + } + + bool need_host_barrier = is_host_coherent || !incoherent.staging_readback; + + // If we maintain queues in-between doing 1x render pass and upscaled render pass, + // we haven't flushed memory yet. + bool need_memory_flush = pending_host_visible_render_passes && !pending_upscaled_passes; + stream.cmd->barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + need_memory_flush ? VK_ACCESS_MEMORY_WRITE_BIT : 0, + (need_host_barrier ? VK_PIPELINE_STAGE_2_HOST_BIT : VK_PIPELINE_STAGE_2_COPY_BIT), + (need_host_barrier ? VK_ACCESS_HOST_READ_BIT : VK_ACCESS_TRANSFER_READ_BIT)); + + Vulkan::Fence fence; + + if (is_host_coherent) + { + device->submit(stream.cmd, &fence); + if (pending_host_visible_render_passes) + enqueue_fence_wait(fence); + } + else + { + CoherencyOperation op; + if (pending_host_visible_render_passes) + resolve_coherency_gpu_to_host(op, *stream.cmd); + + device->submit(stream.cmd, &fence); + + if (pending_host_visible_render_passes) + { + enqueue_fence_wait(fence); + op.fence = fence; + if (!op.copies.empty()) + processor.enqueue_coherency_operation(std::move(op)); + } + } + + Util::for_each_bit(sync_indices_needs_flush, [&](unsigned bit) { + auto &sync = internal_sync[bit]; + sync.fence = fence; + }); + sync_indices_needs_flush = 0; + stream.cmd.reset(); +} + +void Renderer::reset_context() +{ + stream.scissor_setup.reset(); + stream.static_raster_state_cache.reset(); + stream.depth_blend_state_cache.reset(); + stream.tile_info_state_cache.reset(); + stream.triangle_setup.reset(); + stream.attribute_setup.reset(); + stream.derived_setup.reset(); + stream.state_indices.reset(); + stream.span_info_offsets.reset(); + stream.span_info_jobs.reset(); + stream.max_shaded_tiles = 0; + + fb.deduced_height = 0; + fb.color_write_pending = false; + fb.depth_write_pending = false; + + stream.tmem_upload_infos.clear(); +} + +void Renderer::begin_new_context() +{ + buffer_instance = (buffer_instance + 1) % Limits::NumSyncStates; + reset_context(); +} + +uint32_t Renderer::get_byte_size_for_bound_color_framebuffer() const +{ + unsigned pixel_count = fb.width * fb.deduced_height; + unsigned byte_count; + switch (fb.fmt) + { + case FBFormat::RGBA8888: + byte_count = pixel_count * 4; + break; + + case FBFormat::RGBA5551: + case FBFormat::IA88: + byte_count = pixel_count * 2; + break; + + default: + byte_count = pixel_count; + break; + } + + return byte_count; +} + +uint32_t Renderer::get_byte_size_for_bound_depth_framebuffer() const +{ + return fb.width * fb.deduced_height * 2; +} + +void Renderer::mark_pages_for_gpu_read(uint32_t base_addr, uint32_t byte_count) +{ + if (byte_count == 0) + return; + + uint32_t start_page = base_addr / ImplementationConstants::IncoherentPageSize; + uint32_t end_page = (base_addr + byte_count - 1) / ImplementationConstants::IncoherentPageSize + 1; + start_page &= incoherent.num_pages - 1; + end_page &= incoherent.num_pages - 1; + + uint32_t page = start_page; + while (page != end_page) + { + bool pending_writes = (incoherent.page_to_pending_readback[page / 32] & (1u << (page & 31))) != 0 || + incoherent.pending_writes_for_page[page].load(std::memory_order_relaxed) != 0; + + // We'll do an acquire memory barrier later before we start memcpy-ing from host memory. + if (pending_writes) + incoherent.page_to_masked_copy[page / 32] |= 1u << (page & 31); + else + incoherent.page_to_direct_copy[page / 32] |= 1u << (page & 31); + + page = (page + 1) & (incoherent.num_pages - 1); + } +} + +void Renderer::lock_pages_for_gpu_write(uint32_t base_addr, uint32_t byte_count) +{ + if (byte_count == 0) + return; + + uint32_t start_page = base_addr / ImplementationConstants::IncoherentPageSize; + uint32_t end_page = (base_addr + byte_count - 1) / ImplementationConstants::IncoherentPageSize + 1; + + for (uint32_t page = start_page; page < end_page; page++) + { + uint32_t wrapped_page = page & (incoherent.num_pages - 1); + incoherent.page_to_pending_readback[wrapped_page / 32] |= 1u << (wrapped_page & 31); + } +} + +void Renderer::resolve_coherency_gpu_to_host(CoherencyOperation &op, Vulkan::CommandBuffer &cmd) +{ + cmd.begin_region("resolve-coherency-gpu-to-host"); + if (!incoherent.staging_readback) + { + // iGPU path. + op.src = rdram; + op.dst = incoherent.host_rdram; + op.timeline_value = 0; + + for (auto &readback : incoherent.page_to_pending_readback) + { + uint32_t base_index = 32 * uint32_t(&readback - incoherent.page_to_pending_readback.data()); + + Util::for_each_bit_range(readback, [&](unsigned index, unsigned count) { + index += base_index; + + for (unsigned i = 0; i < count; i++) + incoherent.pending_writes_for_page[index + i].fetch_add(1, std::memory_order_relaxed); + + CoherencyCopy coherent_copy = {}; + coherent_copy.counter_base = &incoherent.pending_writes_for_page[index]; + coherent_copy.counters = count; + coherent_copy.src_offset = index * ImplementationConstants::IncoherentPageSize; + coherent_copy.mask_offset = coherent_copy.src_offset + rdram_size; + coherent_copy.dst_offset = index * ImplementationConstants::IncoherentPageSize; + coherent_copy.size = ImplementationConstants::IncoherentPageSize * count; + op.copies.push_back(coherent_copy); + }); + + readback = 0; + } + } + else + { + // Discrete GPU path. + Util::SmallVector copies; + op.src = incoherent.staging_readback.get(); + op.dst = incoherent.host_rdram; + op.timeline_value = 0; + + for (auto &readback : incoherent.page_to_pending_readback) + { + uint32_t base_index = 32 * uint32_t(&readback - incoherent.page_to_pending_readback.data()); + + Util::for_each_bit_range(readback, [&](unsigned index, unsigned count) { + index += base_index; + + for (unsigned i = 0; i < count; i++) + incoherent.pending_writes_for_page[index + i].fetch_add(1, std::memory_order_relaxed); + + VkBufferCopy copy = {}; + copy.srcOffset = index * ImplementationConstants::IncoherentPageSize; + + unsigned dst_page_index = incoherent.staging_readback_index; + copy.dstOffset = dst_page_index * ImplementationConstants::IncoherentPageSize; + + incoherent.staging_readback_index += count; + incoherent.staging_readback_index &= (incoherent.staging_readback_pages - 1); + // Unclean wraparound check. + if (incoherent.staging_readback_index != 0 && incoherent.staging_readback_index < dst_page_index) + { + copy.dstOffset = 0; + incoherent.staging_readback_index = count; + } + + copy.size = ImplementationConstants::IncoherentPageSize * count; + copies.push_back(copy); + + CoherencyCopy coherent_copy = {}; + coherent_copy.counter_base = &incoherent.pending_writes_for_page[index]; + coherent_copy.counters = count; + coherent_copy.src_offset = copy.dstOffset; + coherent_copy.dst_offset = index * ImplementationConstants::IncoherentPageSize; + coherent_copy.size = ImplementationConstants::IncoherentPageSize * count; + + VkBufferCopy mask_copy = {}; + mask_copy.srcOffset = index * ImplementationConstants::IncoherentPageSize + rdram_size; + + dst_page_index = incoherent.staging_readback_index; + mask_copy.dstOffset = dst_page_index * ImplementationConstants::IncoherentPageSize; + + incoherent.staging_readback_index += count; + incoherent.staging_readback_index &= (incoherent.staging_readback_pages - 1); + // Unclean wraparound check. + if (incoherent.staging_readback_index != 0 && incoherent.staging_readback_index < dst_page_index) + { + mask_copy.dstOffset = 0; + incoherent.staging_readback_index = count; + } + + mask_copy.size = ImplementationConstants::IncoherentPageSize * count; + copies.push_back(mask_copy); + coherent_copy.mask_offset = mask_copy.dstOffset; + + op.copies.push_back(coherent_copy); + }); + + readback = 0; + } + + if (!copies.empty()) + { +//#define COHERENCY_READBACK_TIMESTAMPS +#ifdef COHERENCY_READBACK_TIMESTAMPS + Vulkan::QueryPoolHandle start_ts, end_ts; + start_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_2_COPY_BIT); +#endif + cmd.copy_buffer(*incoherent.staging_readback, *rdram, copies.data(), copies.size()); +#ifdef COHERENCY_READBACK_TIMESTAMPS + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_2_COPY_BIT); + device->register_time_interval(std::move(start_ts), std::move(end_ts), "coherency-readback"); +#endif + cmd.barrier(VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_HOST_BIT | VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + VK_ACCESS_HOST_READ_BIT); + } + } + cmd.end_region(); +} + +void Renderer::resolve_coherency_external(unsigned offset, unsigned length) +{ + mark_pages_for_gpu_read(offset, length); + ensure_command_buffer(); + resolve_coherency_host_to_gpu(*stream.cmd); + device->submit(stream.cmd); + stream.cmd.reset(); +} + +unsigned Renderer::get_scaling_factor() const +{ + return caps.upscaling; +} + +const Vulkan::Buffer *Renderer::get_upscaled_rdram_buffer() const +{ + return upscaling_multisampled_rdram.get(); +} + +const Vulkan::Buffer *Renderer::get_upscaled_hidden_rdram_buffer() const +{ + return upscaling_multisampled_hidden_rdram.get(); +} + +void Renderer::resolve_coherency_host_to_gpu(Vulkan::CommandBuffer &cmd) +{ + // Now, ensure that the GPU sees a coherent view of the CPU memory writes up until now. + // Writes made by the GPU which are not known to be resolved on the timeline waiter thread will always + // "win" over writes made by CPU, since CPU is not allowed to meaningfully overwrite data which the GPU + // is going to touch. + + cmd.begin_region("resolve-coherency-host-to-gpu"); + + Vulkan::QueryPoolHandle start_ts, end_ts; + if (caps.timestamp) + start_ts = device->write_calibrated_timestamp(); + + std::atomic_thread_fence(std::memory_order_acquire); + + Util::SmallVector buffer_copies; + Util::SmallVector masked_page_copies; + Util::SmallVector to_clear_write_mask; + + // If we're able to map RDRAM directly, we can just memcpy straight into RDRAM if we have an unmasked copy. + // Important for iGPU. + if (rdram->get_allocation().is_host_allocation()) + { + for (auto &direct : incoherent.page_to_direct_copy) + { + uint32_t base_index = 32 * (&direct - incoherent.page_to_direct_copy.data()); + Util::for_each_bit_range(direct, [&](unsigned index, unsigned count) { + index += base_index; + auto *mapped_rdram = device->map_host_buffer(*rdram, Vulkan::MEMORY_ACCESS_WRITE_BIT, + ImplementationConstants::IncoherentPageSize * index, + ImplementationConstants::IncoherentPageSize * count); + memcpy(mapped_rdram, + incoherent.host_rdram + ImplementationConstants::IncoherentPageSize * index, + ImplementationConstants::IncoherentPageSize * count); + + device->unmap_host_buffer(*rdram, Vulkan::MEMORY_ACCESS_WRITE_BIT, + ImplementationConstants::IncoherentPageSize * index, + ImplementationConstants::IncoherentPageSize * count); + + mapped_rdram = device->map_host_buffer(*rdram, Vulkan::MEMORY_ACCESS_WRITE_BIT, + ImplementationConstants::IncoherentPageSize * index + rdram_size, + ImplementationConstants::IncoherentPageSize * count); + + memset(mapped_rdram, 0, ImplementationConstants::IncoherentPageSize * count); + + device->unmap_host_buffer(*rdram, Vulkan::MEMORY_ACCESS_WRITE_BIT, + ImplementationConstants::IncoherentPageSize * index + rdram_size, + ImplementationConstants::IncoherentPageSize * count); + }); + direct = 0; + } + + auto *mapped_staging = static_cast(device->map_host_buffer(*incoherent.staging_rdram, + Vulkan::MEMORY_ACCESS_WRITE_BIT)); + + for (auto &indirect : incoherent.page_to_masked_copy) + { + uint32_t base_index = 32 * (&indirect - incoherent.page_to_masked_copy.data()); + Util::for_each_bit(indirect, [&](unsigned index) { + index += base_index; + masked_page_copies.push_back(index); + memcpy(mapped_staging + ImplementationConstants::IncoherentPageSize * index, + incoherent.host_rdram + ImplementationConstants::IncoherentPageSize * index, + ImplementationConstants::IncoherentPageSize); + }); + indirect = 0; + } + + device->unmap_host_buffer(*incoherent.staging_rdram, Vulkan::MEMORY_ACCESS_WRITE_BIT); + } + else + { + auto *mapped_rdram = static_cast(device->map_host_buffer(*incoherent.staging_rdram, Vulkan::MEMORY_ACCESS_WRITE_BIT)); + + size_t num_packed_pages = incoherent.page_to_masked_copy.size(); + for (size_t i = 0; i < num_packed_pages; i++) + { + uint32_t base_index = 32 * i; + uint32_t tmp = incoherent.page_to_masked_copy[i] | incoherent.page_to_direct_copy[i]; + Util::for_each_bit(tmp, [&](unsigned index) { + unsigned bit = index; + index += base_index; + + if ((1u << bit) & incoherent.page_to_masked_copy[i]) + masked_page_copies.push_back(index); + else + { + VkBufferCopy copy = {}; + copy.size = ImplementationConstants::IncoherentPageSize; + copy.dstOffset = copy.srcOffset = index * ImplementationConstants::IncoherentPageSize; + buffer_copies.push_back(copy); + to_clear_write_mask.push_back(index); + } + + memcpy(mapped_rdram + ImplementationConstants::IncoherentPageSize * index, + incoherent.host_rdram + ImplementationConstants::IncoherentPageSize * index, + ImplementationConstants::IncoherentPageSize); + }); + + incoherent.page_to_masked_copy[i] = 0; + incoherent.page_to_direct_copy[i] = 0; + } + + device->unmap_host_buffer(*incoherent.staging_rdram, Vulkan::MEMORY_ACCESS_WRITE_BIT); + } + + if (!masked_page_copies.empty()) + { +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://masked_rdram_resolve.comp"); +#else + cmd.set_program(shader_bank->masked_rdram_resolve); +#endif + cmd.set_specialization_constant_mask(3); + cmd.set_specialization_constant(0, ImplementationConstants::IncoherentPageSize / 4); + cmd.set_specialization_constant(1, ImplementationConstants::IncoherentPageSize / 4); + + cmd.set_storage_buffer(0, 0, *rdram, rdram_offset, rdram_size); + cmd.set_storage_buffer(0, 1, *incoherent.staging_rdram); + cmd.set_storage_buffer(0, 2, *rdram, rdram_offset + rdram_size, rdram_size); + +//#define COHERENCY_MASK_TIMESTAMPS +#ifdef COHERENCY_MASK_TIMESTAMPS + Vulkan::QueryPoolHandle start_ts, end_ts; + start_ts = cmd->write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); +#endif + + for (size_t i = 0; i < masked_page_copies.size(); i += 4096) + { + size_t to_copy = std::min(masked_page_copies.size() - i, size_t(4096)); + memcpy(cmd.allocate_typed_constant_data(1, 0, to_copy), + masked_page_copies.data() + i, + to_copy * sizeof(uint32_t)); + cmd.dispatch(to_copy, 1, 1); + } + +#ifdef COHERENCY_MASK_TIMESTAMPS + end_ts = cmd->write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + device->register_time_interval(std::move(start_ts), std::move(end_ts), "coherent-mask-copy"); +#endif + } + + // Could use FillBuffer here, but would need to use TRANSFER stage, and introduce more barriers than needed. + if (!to_clear_write_mask.empty()) + { +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://clear_write_mask.comp"); +#else + cmd.set_program(shader_bank->clear_write_mask); +#endif + cmd.set_specialization_constant_mask(3); + cmd.set_specialization_constant(0, ImplementationConstants::IncoherentPageSize / 4); + cmd.set_specialization_constant(1, ImplementationConstants::IncoherentPageSize / 4); + cmd.set_storage_buffer(0, 0, *rdram, rdram_offset + rdram_size, rdram_size); + for (size_t i = 0; i < to_clear_write_mask.size(); i += 4096) + { + size_t to_copy = std::min(to_clear_write_mask.size() - i, size_t(4096)); + memcpy(cmd.allocate_typed_constant_data(1, 0, to_copy), + to_clear_write_mask.data() + i, + to_copy * sizeof(uint32_t)); + cmd.dispatch(to_copy, 1, 1); + } + } + + if (!to_clear_write_mask.empty() || !masked_page_copies.empty()) + { + cmd.barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_READ_BIT); + } + + // If we cannot map the device memory, copy. We're latency sensitive, so don't use DMA queue. + if (!buffer_copies.empty()) + { + cmd.barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, + VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_WRITE_BIT); + +//#define COHERENCY_COPY_TIMESTAMPS +#ifdef COHERENCY_COPY_TIMESTAMPS + Vulkan::QueryPoolHandle start_ts, end_ts; + start_ts = cmd->write_timestamp(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT); +#endif + cmd.copy_buffer(*rdram, *incoherent.staging_rdram, buffer_copies.data(), buffer_copies.size()); +#ifdef COHERENCY_COPY_TIMESTAMPS + end_ts = cmd->write_timestamp(VK_PIPELINE_STAGE_2_COPY_BIT); + device->register_time_interval(std::move(start_ts), std::move(end_ts), "coherent-copy"); +#endif + + cmd.barrier(VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_READ_BIT); + } + + if (caps.timestamp) + { + end_ts = device->write_calibrated_timestamp(); + device->register_time_interval("RDP CPU", std::move(start_ts), std::move(end_ts), "coherency-host-to-gpu"); + } + + cmd.end_region(); +} + +void Renderer::flush_queues() +{ + if (stream.tmem_upload_infos.empty() && stream.span_info_jobs.empty()) + { + base_primitive_index += stream.triangle_setup.size(); + reset_context(); + return; + } + + if (!is_host_coherent) + { + mark_pages_for_gpu_read(fb.addr, get_byte_size_for_bound_color_framebuffer()); + mark_pages_for_gpu_read(fb.depth_addr, get_byte_size_for_bound_depth_framebuffer()); + + // We're going to write to these pages, so lock them down. + lock_pages_for_gpu_write(fb.addr, get_byte_size_for_bound_color_framebuffer()); + lock_pages_for_gpu_write(fb.depth_addr, get_byte_size_for_bound_depth_framebuffer()); + } + + auto &instance = buffer_instances[buffer_instance]; + auto &sync = internal_sync[buffer_instance]; + if (sync_indices_needs_flush & (1u << buffer_instance)) + submit_to_queue(); + sync_indices_needs_flush |= 1u << buffer_instance; + + if (sync.fence) + { + Vulkan::QueryPoolHandle start_ts, end_ts; + if (caps.timestamp) + start_ts = device->write_calibrated_timestamp(); + sync.fence->wait(); + if (caps.timestamp) + { + end_ts = device->write_calibrated_timestamp(); + device->register_time_interval("RDP CPU", std::move(start_ts), std::move(end_ts), "render-pass-fence"); + } + sync.fence.reset(); + } + + ensure_command_buffer(); + + if (!is_host_coherent) + resolve_coherency_host_to_gpu(*stream.cmd); + instance.upload(*device, stream, *stream.cmd); + + // If we have super-sampled readback, then this is meaningless. + bool has_single_sampled_render_pass = !caps.super_sample_readback; + + if (has_single_sampled_render_pass) + { + stream.cmd->begin_region("render-pass-1x"); + submit_render_pass(*stream.cmd); + stream.cmd->end_region(); + pending_render_passes++; + } + + if (render_pass_is_upscaled()) + { + if (has_single_sampled_render_pass) + { + maintain_queues(); + ensure_command_buffer(); + + // We're going to keep reading the same data structures, so make sure + // we signal fence after upscaled render pass is submitted. + sync_indices_needs_flush |= 1u << buffer_instance; + } + + submit_render_pass_upscaled(*stream.cmd); + pending_render_passes_upscaled++; + pending_primitives_upscaled += uint32_t(stream.triangle_setup.size()); + } + + submit_render_pass_end(*stream.cmd); + + begin_new_context(); + maintain_queues(); +} + +bool Renderer::render_pass_is_upscaled() const +{ + if (caps.super_sample_readback) + return true; + + bool need_render_pass = fb.width != 0 && fb.deduced_height != 0 && !stream.span_info_jobs.empty(); + return need_render_pass && should_render_upscaled(); +} + +bool Renderer::should_render_upscaled() const +{ + if (caps.upscaling > 1) + { + // A heuristic. There is no point to render upscaled for purely off-screen passes. + // We should ideally only upscale the final pass which hits screen. + // From a heuristic point-of-view we expect only 16-bit/32-bit frame buffers to be relevant, + // and only frame buffers with at least 256 pixels. + return (fb.fmt == FBFormat::RGBA5551 || fb.fmt == FBFormat::RGBA8888) && fb.width >= 256; + } + else + return false; +} + +void Renderer::ensure_command_buffer() +{ + if (!stream.cmd) + stream.cmd = device->request_command_buffer(Vulkan::CommandBuffer::Type::AsyncCompute); + + if (!caps.ubershader && !indirect_dispatch_buffer) + { + Vulkan::BufferCreateInfo indirect_info = {}; + indirect_info.size = 4 * sizeof(uint32_t) * Limits::MaxStaticRasterizationStates; + indirect_info.domain = Vulkan::BufferDomain::Device; + indirect_info.usage = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT; + + indirect_dispatch_buffer = device->create_buffer(indirect_info); + device->set_name(*indirect_dispatch_buffer, "indirect-dispatch-buffer"); + + clear_indirect_buffer(*stream.cmd); + stream.cmd->barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, + VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT | VK_ACCESS_2_SHADER_STORAGE_READ_BIT); + } +} + +void Renderer::set_tile(uint32_t tile, const TileMeta &meta) +{ + tiles[tile].meta = meta; +} + +void Renderer::set_tile_size(uint32_t tile, uint32_t slo, uint32_t shi, uint32_t tlo, uint32_t thi) +{ + tiles[tile].size.slo = slo; + tiles[tile].size.shi = shi; + tiles[tile].size.tlo = tlo; + tiles[tile].size.thi = thi; +} + +void Renderer::notify_idle_command_thread() +{ + maintain_queues_idle(); +} + +bool Renderer::tmem_upload_needs_flush(uint32_t addr) const +{ + // Not perfect, since TMEM upload could slice into framebuffer, + // but I doubt this will be an issue (famous last words ...) + + if (fb.color_write_pending) + { + uint32_t offset = (addr - fb.addr) & (rdram_size - 1); + uint32_t pending_pixels = fb.deduced_height * fb.width; + + switch (fb.fmt) + { + case FBFormat::RGBA5551: + case FBFormat::I8: + offset >>= 1; + break; + + case FBFormat::RGBA8888: + offset >>= 2; + break; + + default: + break; + } + + if (offset < pending_pixels) + { + //LOGI("Flushing render pass due to coherent TMEM fetch from color buffer.\n"); + return true; + } + } + + if (fb.depth_write_pending) + { + uint32_t offset = (addr - fb.depth_addr) & (rdram_size - 1); + uint32_t pending_pixels = fb.deduced_height * fb.width; + offset >>= 1; + + if (offset < pending_pixels) + { + //LOGI("Flushing render pass due to coherent TMEM fetch from depth buffer.\n"); + return true; + } + } + + return false; +} + +void Renderer::load_tile(uint32_t tile, const LoadTileInfo &info) +{ + if (validation_iface && info.mode == UploadMode::TLUT) + { + if ((info.thi >> 2) > (info.tlo >> 2)) + { + validation_iface->report_rdp_crash(ValidationError::InvalidMultilineLoadTlut, + "Attempting to load multiple lines in TLUT."); + } + } + + if (tmem_upload_needs_flush(info.tex_addr)) + flush_queues(); + + // Detect noop cases. + if (info.mode != UploadMode::Block) + { + if ((info.thi >> 2) < (info.tlo >> 2)) + return; + + unsigned pixel_count = (((info.shi >> 2) - (info.slo >> 2)) + 1) & 0xfff; + if (!pixel_count) + return; + } + else + { + unsigned pixel_count = ((info.shi - info.slo) + 1) & 0xfff; + if (!pixel_count || pixel_count > 2048) + return; + } + + if (!is_host_coherent) + { + unsigned pixel_count; + unsigned offset_pixels; + unsigned base_addr = info.tex_addr; + + if (info.mode == UploadMode::Block) + { + pixel_count = (info.shi - info.slo + 1) & 0xfff; + offset_pixels = info.slo + info.tex_width * info.tlo; + } + else + { + unsigned max_x = ((info.shi >> 2) - (info.slo >> 2)) & 0xfff; + unsigned max_y = (info.thi >> 2) - (info.tlo >> 2); + pixel_count = max_y * info.tex_width + max_x + 1; + offset_pixels = (info.slo >> 2) + info.tex_width * (info.tlo >> 2); + } + + unsigned byte_size = pixel_count << (unsigned(info.size) - 1); + byte_size = (byte_size + 7) & ~7; + base_addr += offset_pixels << (unsigned(info.size) - 1); + mark_pages_for_gpu_read(base_addr, byte_size); + } + + if (info.mode == UploadMode::Tile) + { + auto &meta = tiles[tile].meta; + unsigned pixels_coverered_per_line = (((info.shi >> 2) - (info.slo >> 2)) + 1) & 0xfff; + + // Technically, 32-bpp TMEM upload and YUV upload will work like 16bpp, just split into two halves, but that also means + // we get 2kB wraparound instead of 4kB wraparound, so this works out just fine for our purposes. + unsigned quad_words_covered_per_line = ((pixels_coverered_per_line << unsigned(meta.size)) + 15) >> 4; + + // Deal with mismatch in state, there is no reasonable scenarios where this should even matter, but you never know ... + if (unsigned(meta.size) > unsigned(info.size)) + quad_words_covered_per_line <<= unsigned(meta.size) - unsigned(info.size); + else if (unsigned(meta.size) < unsigned(info.size)) + quad_words_covered_per_line >>= unsigned(info.size) - unsigned(meta.size); + + // Compute a conservative estimate for how many bytes we're going to splat down into TMEM. + unsigned bytes_covered_per_line = std::max(quad_words_covered_per_line * 8, meta.stride); + + unsigned max_bytes_per_line = 0x1000; + // We need to write lower and upper halves at once, + // so we need to wrap around at 2k boundary. + if (meta.fmt == TextureFormat::YUV) + max_bytes_per_line /= 2; + + unsigned num_lines = ((info.thi >> 2) - (info.tlo >> 2)) + 1; + unsigned total_bytes_covered = bytes_covered_per_line * num_lines; + + if (total_bytes_covered > max_bytes_per_line) + { + // Welp, for whatever reason, the game wants to write more than 4k of texture data to TMEM in one go. + // We can only handle 4kB in one go due to wrap-around effects, + // so split up the upload in multiple chunks. + + unsigned max_lines_per_iteration = max_bytes_per_line / bytes_covered_per_line; + // Align T-state. + max_lines_per_iteration &= ~1u; + + if (max_lines_per_iteration == 0) + { + LOGE("Pure insanity where content is attempting to load more than 2kB of TMEM data in one single line ...\n"); + // Could be supported if we start splitting up horizonal direction as well, but seriously ... + return; + } + + for (unsigned line = 0; line < num_lines; line += max_lines_per_iteration) + { + unsigned to_copy_lines = std::min(num_lines - line, max_lines_per_iteration); + + LoadTileInfo tmp_info = info; + tmp_info.tlo = info.tlo + (line << 2); + tmp_info.thi = tmp_info.tlo + ((to_copy_lines - 1) << 2); + load_tile_iteration(tile, tmp_info, line * meta.stride); + } + + auto &size = tiles[tile].size; + size.slo = info.slo; + size.shi = info.shi; + size.tlo = info.tlo; + size.thi = info.thi; + } + else + load_tile_iteration(tile, info, 0); + } + else + load_tile_iteration(tile, info, 0); +} + +void Renderer::load_tile_iteration(uint32_t tile, const LoadTileInfo &info, uint32_t tmem_offset) +{ + auto &size = tiles[tile].size; + auto &meta = tiles[tile].meta; + size.slo = info.slo; + size.shi = info.shi; + size.tlo = info.tlo; + size.thi = info.thi; + + if (meta.fmt == TextureFormat::YUV && ((meta.size != TextureSize::Bpp16) || (info.size != TextureSize::Bpp16))) + { + LOGE("Only 16bpp is supported for YUV uploads.\n"); + return; + } + + // This case does not appear to be supported. + if (info.size == TextureSize::Bpp4) + { + LOGE("4-bit VRAM pointer crashes the RDP.\n"); + if (validation_iface) + validation_iface->report_rdp_crash(ValidationError::LoadTile4bpp, "4-bit VRAM pointer crashes the RDP."); + return; + } + + if (meta.size == TextureSize::Bpp32 && meta.fmt != TextureFormat::RGBA) + { + LOGE("32bpp tile uploads must using RGBA texture format, unsupported otherwise.\n"); + return; + } + + if (info.mode == UploadMode::TLUT && meta.size == TextureSize::Bpp32) + { + LOGE("TLUT uploads with 32bpp tiles are unsupported.\n"); + return; + } + + if (info.mode != UploadMode::TLUT) + { + if (info.size == TextureSize::Bpp32 && meta.size == TextureSize::Bpp8) + { + LOGE("FIXME: Loading tile with Texture 32-bit and Tile 8-bit. This creates insane results, unsupported.\n"); + return; + } + else if (info.size == TextureSize::Bpp16 && meta.size == TextureSize::Bpp4) + { + LOGE("FIXME: Loading tile with Texture 16-bit and Tile 4-bit. This creates insane results, unsupported.\n"); + return; + } + else if (info.size == TextureSize::Bpp32 && meta.size == TextureSize::Bpp4) + { + LOGE("FIXME: Loading tile with Texture 32-bit and Tile 4-bit. This creates insane results, unsupported.\n"); + return; + } + } + + UploadInfo upload = {}; + upload.tmem_stride_words = meta.stride >> 1; + + uint32_t upload_x = 0; + uint32_t upload_y = 0; + + auto upload_mode = info.mode; + + if (upload_mode == UploadMode::Block) + { + upload_x = info.slo; + upload_y = info.tlo; + + // LoadBlock is kinda awkward. Rather than specifying width and height, we get width and dTdx. + // dTdx will increment and generate a T coordinate based on S coordinate (T = (S_64bpp_word * dTdx) >> 11). + // The stride is added on top of this, so effective stride is stride(T) + stride(tile). + // Usually it makes sense for stride(tile) to be 0, but it doesn't have to be ... + // The only reasonable solution is to try to decompose this mess into a normal width/height/stride. + // In the general dTdx case, we don't have to deduce a stable value for stride. + // If dTdx is very weird, we might get variable stride, which is near-impossible to deal with. + // However, it makes zero sense for content to actually rely on this behavior. + // Even if there are inaccuracies in the fraction, we always floor it to get T, and thus we'll have to run + // for quite some time to observe the fractional error accumulate. + + unsigned pixel_count = (info.shi - info.slo + 1) & 0xfff; + + unsigned dt = info.thi; + + unsigned max_tmem_iteration = (pixel_count - 1) >> (4u - unsigned(info.size)); + unsigned max_t = (max_tmem_iteration * dt) >> 11; + + if (max_t != 0) + { + // dT is an inverse which is not necessarily accurate, we can end up with an uneven amount of + // texels per "line". If we have stride == 0, this is fairly easy to deal with, + // but for the case where stride != 0, it is very difficult to implement it correctly. + // We will need to solve this kind of equation for X: + + // TMEM word = floor((x * dt) / 2048) * stride + x + // This equation has no solutions for cases where we stride over TMEM words. + // The only way I can think of is to test all candidates for the floor() expression, and see if that is a valid solution. + // We can find an conservative estimate for floor() by: + // t_min = TMEM word / (max_num_64bpp_elements + stride) + // t_max = TMEM word / (min_num_64bpp_elements + stride) + unsigned max_num_64bpp_elements_before_wrap = ((1u << 11u) + dt - 1u) / dt; + unsigned min_num_64bpp_elements_before_wrap = (1u << 11u) / dt; + + bool uneven_dt = max_num_64bpp_elements_before_wrap != min_num_64bpp_elements_before_wrap; + + if (uneven_dt) + { + // If we never get rounding errors, we can handwave this issue away and pretend that min == max iterations. + // This is by far the common case. + + // Each overflow into next T adds a certain amount of error. + unsigned overflow_amt = dt * max_num_64bpp_elements_before_wrap - (1 << 11); + + // Multiply this by maximum value of T we can observe, and we have a conservative estimate for our T error. + overflow_amt *= max_t; + + // If this error is less than 1 step of dt, we can be certain that we will get max_num iterations every time, + // and we can ignore the worst edge cases. + if (overflow_amt < dt) + { + min_num_64bpp_elements_before_wrap = max_num_64bpp_elements_before_wrap; + uneven_dt = false; + } + } + + // Add more precision bits to DXT. We might have to shift it down if we have a meta.size fixup down below. + // Also makes the right shift nicer (16 vs 11). + upload.dxt = dt << 5; + + if (meta.size == TextureSize::Bpp32 || meta.fmt == TextureFormat::YUV) + { + // We iterate twice for Bpp32 and YUV to complete a 64bpp word. + upload.tmem_stride_words <<= 1; + + // Pure, utter insanity, but no content should *ever* hit this ... + if (uneven_dt && meta.size != info.size) + { + LOGE("Got uneven_dt, and texture size != tile size.\n"); + return; + } + } + + // If TMEM and VRAM bpp misalign, we need to fixup this since we step too fast or slow. + if (unsigned(meta.size) > unsigned(info.size)) + { + unsigned shamt = unsigned(meta.size) - unsigned(info.size); + max_num_64bpp_elements_before_wrap <<= shamt; + min_num_64bpp_elements_before_wrap <<= shamt; + // Need to step slower so we can handle the added striding. + upload.dxt >>= shamt; + } + else if (unsigned(info.size) > unsigned(meta.size)) + { + // Here we step multiple times over the same pixel, but potentially with different T state, + // since dTdx applies between the iterations. + // Horrible, horrible mess ... + LOGE("LoadBlock: VRAM bpp size is larger than tile bpp. This is unsupported.\n"); + return; + } + + unsigned max_line_stride_64bpp = max_num_64bpp_elements_before_wrap + (upload.tmem_stride_words >> 2); + unsigned min_line_stride_64bpp = min_num_64bpp_elements_before_wrap + (upload.tmem_stride_words >> 2); + + // Multiplying 64bpp TMEM word by these gives us lower and upper bounds for T. + // These serve as candidate expressions for floor(). + float min_t_mod = 1.0f / float(max_line_stride_64bpp); + float max_t_mod = 1.0f / float(min_line_stride_64bpp); + upload.min_t_mod = min_t_mod; + upload.max_t_mod = max_t_mod; + + upload.width = pixel_count; + upload.height = 1; + upload.tmem_stride_words >>= 2; // Stride in 64bpp instead of 16bpp. + } + else + { + // We never trigger a case where T is non-zero, so this is equivalent to a Tile upload. + upload.width = pixel_count; + upload.height = 1; + upload.tmem_stride_words = 0; + upload_mode = UploadMode::Tile; + } + } + else + { + upload_x = info.slo >> 2; + upload_y = info.tlo >> 2; + upload.width = (((info.shi >> 2) - (info.slo >> 2)) + 1) & 0xfff; + upload.height = ((info.thi >> 2) - (info.tlo >> 2)) + 1; + } + + if (!upload.width) + return; + + switch (info.size) + { + case TextureSize::Bpp8: + upload.vram_effective_width = (upload.width + 7) & ~7; + break; + + case TextureSize::Bpp16: + // In 16-bit VRAM pointer with TLUT, we iterate one texel at a time, not 4. + if (upload_mode == UploadMode::TLUT) + upload.vram_effective_width = upload.width; + else + upload.vram_effective_width = (upload.width + 3) & ~3; + break; + + case TextureSize::Bpp32: + upload.vram_effective_width = (upload.width + 1) & ~1; + break; + + default: + break; + } + + // Uploads happen in chunks of 8 bytes in groups of 4x16-bits. + switch (meta.size) + { + case TextureSize::Bpp4: + upload.width = (upload.width + 15) & ~15; + upload.width >>= 2; + break; + + case TextureSize::Bpp8: + upload.width = (upload.width + 7) & ~7; + upload.width >>= 1; + break; + + case TextureSize::Bpp16: + upload.width = (upload.width + 3) & ~3; + // Consider YUV uploads to be 32bpp since that's kinda what they are. + if (meta.fmt == TextureFormat::YUV) + upload.width >>= 1; + break; + + case TextureSize::Bpp32: + upload.width = (upload.width + 1) & ~1; + break; + + default: + LOGE("Unimplemented!\n"); + break; + } + + if (upload.height > 1 && upload_mode == UploadMode::TLUT) + { + LOGE("Load TLUT with height > 1 is not supported.\n"); + return; + } + + upload.vram_addr = info.tex_addr + ((info.tex_width * upload_y + upload_x) << (unsigned(info.size) - 1)); + upload.vram_width = upload_mode == UploadMode::Block ? upload.vram_effective_width : info.tex_width; + upload.vram_size = int32_t(info.size); + + upload.tmem_offset = (meta.offset + tmem_offset) & 0xfff; + upload.tmem_size = int32_t(meta.size); + upload.tmem_fmt = int32_t(meta.fmt); + upload.mode = int32_t(upload_mode); + + upload.inv_tmem_stride_words = 1.0f / float(upload.tmem_stride_words); + + stream.tmem_upload_infos.push_back(upload); + if (stream.tmem_upload_infos.size() + 1 >= Limits::MaxTMEMInstances) + flush_queues(); +} + +void Renderer::set_blend_color(uint32_t color) +{ + constants.blend_color = color; +} + +void Renderer::set_fog_color(uint32_t color) +{ + constants.fog_color = color; +} + +void Renderer::set_env_color(uint32_t color) +{ + constants.env_color = color; +} + +void Renderer::set_fill_color(uint32_t color) +{ + constants.fill_color = color; +} + +void Renderer::set_primitive_depth(uint16_t prim_depth, uint16_t prim_dz) +{ + constants.prim_depth = int32_t(prim_depth & 0x7fff) << 16; + constants.prim_dz = prim_dz; +} + +void Renderer::set_enable_primitive_depth(bool enable) +{ + constants.use_prim_depth = enable; +} + +void Renderer::set_convert(uint16_t k0, uint16_t k1, uint16_t k2, uint16_t k3, uint16_t k4, uint16_t k5) +{ + constants.convert[0] = 2 * sext<9>(k0) + 1; + constants.convert[1] = 2 * sext<9>(k1) + 1; + constants.convert[2] = 2 * sext<9>(k2) + 1; + constants.convert[3] = 2 * sext<9>(k3) + 1; + constants.convert[4] = k4; + constants.convert[5] = k5; +} + +void Renderer::set_color_key(unsigned component, uint32_t width, uint32_t center, uint32_t scale) +{ + constants.key_width[component] = width; + constants.key_center[component] = center; + constants.key_scale[component] = scale; +} + +void Renderer::set_primitive_color(uint8_t min_level, uint8_t prim_lod_frac, uint32_t color) +{ + constants.primitive_color = color; + constants.min_level = min_level; + constants.prim_lod_frac = prim_lod_frac; +} + +bool Renderer::can_support_minimum_subgroup_size(unsigned size) const +{ + return supports_subgroup_size_control(size, device->get_device_features().vk11_props.subgroupSize); +} + +bool Renderer::supports_subgroup_size_control(uint32_t minimum_size, uint32_t maximum_size) const +{ + auto &features = device->get_device_features(); + + if (!features.vk13_features.computeFullSubgroups) + return false; + + bool use_varying = minimum_size <= features.vk13_props.minSubgroupSize && + maximum_size >= features.vk13_props.maxSubgroupSize; + + if (!use_varying) + { + bool outside_range = minimum_size > features.vk13_props.maxSubgroupSize || + maximum_size < features.vk13_props.minSubgroupSize; + if (outside_range) + return false; + + if ((features.vk13_props.requiredSubgroupSizeStages & VK_SHADER_STAGE_COMPUTE_BIT) == 0) + return false; + } + + return true; +} + +void Renderer::PipelineExecutor::perform_work(const Vulkan::DeferredPipelineCompile &compile) const +{ + auto start_ts = device->write_calibrated_timestamp(); + Vulkan::CommandBuffer::build_compute_pipeline(device, compile, Vulkan::CommandBuffer::CompileMode::AsyncThread); + auto end_ts = device->write_calibrated_timestamp(); + device->register_time_interval("RDP Pipeline", std::move(start_ts), std::move(end_ts), + "pipeline-compilation"); +} + +bool Renderer::PipelineExecutor::is_sentinel(const Vulkan::DeferredPipelineCompile &compile) const +{ + return compile.hash == 0; +} + +void Renderer::PipelineExecutor::notify_work_locked(const Vulkan::DeferredPipelineCompile &) const +{ +} +} diff --git a/parallel-rdp/rdp_renderer.hpp b/parallel-rdp/rdp_renderer.hpp new file mode 100644 index 00000000..26a02e40 --- /dev/null +++ b/parallel-rdp/rdp_renderer.hpp @@ -0,0 +1,420 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "rdp_data_structures.hpp" +#include "device.hpp" +#include "rdp_common.hpp" +#include "worker_thread.hpp" +#include + +namespace RDP +{ +struct CoherencyOperation; + +struct SyncObject +{ + Vulkan::Fence fence; +}; + +enum class FBFormat : uint32_t +{ + I4 = 0, + I8 = 1, + RGBA5551 = 2, + IA88 = 3, + RGBA8888 = 4 +}; + +enum class UploadMode : uint32_t +{ + Tile = 0, + TLUT = 1, + Block = 2 +}; + +struct LoadTileInfo +{ + uint32_t tex_addr; + uint32_t tex_width; + uint16_t slo, tlo, shi, thi; + TextureFormat fmt; + TextureSize size; + UploadMode mode; +}; + +class CommandProcessor; + +struct RendererOptions +{ + unsigned upscaling_factor = 1; + bool super_sampled_readback = false; + bool super_sampled_readback_dither = false; +}; + +enum class ValidationError +{ + Fill4bpp, + LoadTile4bpp, + InvalidMultilineLoadTlut, + FillDepthTest, + FillDepthWrite, + FillImageReadEnable, + Copy32bpp +}; + +class ValidationInterface +{ +public: + virtual ~ValidationInterface() = default; + // Validation errors may be called from a thread as errors are encountered. + // Reports situations that would cause fatal error on a real RDP. + // We only opt to report these situations rather than deliberately crashing the renderer. + // Handling crashes is only relevant during development of N64 homebrew. + virtual void report_rdp_crash(ValidationError err, const char *msg) = 0; +}; + +class Renderer : public Vulkan::DebugChannelInterface +{ +public: + explicit Renderer(CommandProcessor &processor); + ~Renderer(); + void set_device(Vulkan::Device *device); + + void set_validation_interface(ValidationInterface *iface); + + // If coherent is false, RDRAM is a buffer split into data in lower half and writemask state in upper half, each part being size large. + // offset must be 0 in this case. + void set_rdram(Vulkan::Buffer *buffer, uint8_t *host_rdram, size_t offset, size_t size, bool coherent); + void set_hidden_rdram(Vulkan::Buffer *buffer); + void set_tmem(Vulkan::Buffer *buffer); + void set_shader_bank(const ShaderBank *bank); + + bool init_renderer(const RendererOptions &options); + + // setup may be mutated to apply various fixups to triangle setup. + void draw_flat_primitive(TriangleSetup &setup); + void draw_shaded_primitive(TriangleSetup &setup, const AttributeSetup &attr); + + void set_color_framebuffer(uint32_t addr, uint32_t width, FBFormat fmt); + void set_depth_framebuffer(uint32_t addr); + + void set_scissor_state(const ScissorState &state); + void set_static_rasterization_state(const StaticRasterizationState &state); + void set_depth_blend_state(const DepthBlendState &state); + + void set_tile(uint32_t tile, const TileMeta &info); + void set_tile_size(uint32_t tile, uint32_t slo, uint32_t shi, uint32_t tlo, uint32_t thi); + void load_tile(uint32_t tile, const LoadTileInfo &info); + void load_tile_iteration(uint32_t tile, const LoadTileInfo &info, uint32_t tmem_offset); + + void set_blend_color(uint32_t color); + void set_fog_color(uint32_t color); + void set_env_color(uint32_t color); + void set_primitive_color(uint8_t min_level, uint8_t prim_lod_frac, uint32_t color); + void set_fill_color(uint32_t color); + void set_primitive_depth(uint16_t prim_depth, uint16_t prim_dz); + void set_enable_primitive_depth(bool enable); + void set_convert(uint16_t k0, uint16_t k1, uint16_t k2, uint16_t k3, uint16_t k4, uint16_t k5); + void set_color_key(unsigned component, uint32_t width, uint32_t center, uint32_t scale); + + // Called when the command thread has not seen any activity in a given period of time. + // This is useful so we don't needlessly queue up work when we might as well kick it to the GPU. + void notify_idle_command_thread(); + void flush_and_signal(); + + int resolve_shader_define(const char *name, const char *define) const; + + void resolve_coherency_external(unsigned offset, unsigned length); + void submit_update_upscaled_domain_external(Vulkan::CommandBuffer &cmd, + unsigned addr, unsigned pixels, unsigned pixel_size_log2); + unsigned get_scaling_factor() const; + + const Vulkan::Buffer *get_upscaled_rdram_buffer() const; + const Vulkan::Buffer *get_upscaled_hidden_rdram_buffer() const; + + void lock_command_processing(); + void unlock_command_processing(); + +private: + CommandProcessor &processor; + Vulkan::Device *device = nullptr; + Vulkan::Buffer *rdram = nullptr; + ValidationInterface *validation_iface = nullptr; + + Vulkan::BufferHandle upscaling_reference_rdram; + Vulkan::BufferHandle upscaling_multisampled_rdram; + Vulkan::BufferHandle upscaling_multisampled_hidden_rdram; + + void validate_draw_state() const; + + struct + { + uint8_t *host_rdram = nullptr; + Vulkan::BufferHandle staging_rdram; + Vulkan::BufferHandle staging_readback; + std::unique_ptr pending_writes_for_page; + std::vector page_to_direct_copy; + std::vector page_to_masked_copy; + std::vector page_to_pending_readback; + unsigned num_pages = 0; + unsigned staging_readback_pages = 0; + unsigned staging_readback_index = 0; // Ringbuffer the readbacks. + } incoherent; + + size_t rdram_offset = 0; + size_t rdram_size = 0; + bool is_host_coherent = false; + Vulkan::Buffer *hidden_rdram = nullptr; + Vulkan::Buffer *tmem = nullptr; + const ShaderBank *shader_bank = nullptr; + + bool init_caps(); + void init_blender_lut(); + void init_buffers(const RendererOptions &options); + bool init_internal_upscaling_factor(const RendererOptions &options); + + struct + { + uint32_t addr = 0; + uint32_t depth_addr = 0; + uint32_t width = 0; + uint32_t deduced_height = 0; + FBFormat fmt = FBFormat::I8; + bool depth_write_pending = false; + bool color_write_pending = false; + } fb; + + struct StreamCaches + { + ScissorState scissor_state = {}; + StaticRasterizationState static_raster_state = {}; + DepthBlendState depth_blend_state = {}; + + StateCache static_raster_state_cache; + StateCache depth_blend_state_cache; + StateCache tile_info_state_cache; + + StreamCache triangle_setup; + StreamCache scissor_setup; + StreamCache attribute_setup; + StreamCache derived_setup; + StreamCache state_indices; + StreamCache span_info_offsets; + StreamCache span_info_jobs; + + std::vector tmem_upload_infos; + unsigned max_shaded_tiles = 0; + Vulkan::CommandBufferHandle cmd; + } stream; + + void ensure_command_buffer(); + + TileInfo tiles[Limits::MaxNumTiles]; + Vulkan::BufferHandle tmem_instances; + Vulkan::BufferHandle span_setups; + Vulkan::BufferHandle blender_divider_lut_buffer; + Vulkan::BufferViewHandle blender_divider_buffer; + + Vulkan::BufferHandle tile_binning_buffer; + Vulkan::BufferHandle tile_binning_buffer_coarse; + + Vulkan::BufferHandle indirect_dispatch_buffer; + Vulkan::BufferHandle tile_work_list; + Vulkan::BufferHandle per_tile_offsets; + Vulkan::BufferHandle per_tile_shaded_color; + Vulkan::BufferHandle per_tile_shaded_depth; + Vulkan::BufferHandle per_tile_shaded_shaded_alpha; + Vulkan::BufferHandle per_tile_shaded_coverage; + + struct MappedBuffer + { + Vulkan::BufferHandle buffer; + bool is_host = false; + }; + + struct RenderBuffers + { + void init(Vulkan::Device &device, Vulkan::BufferDomain domain, RenderBuffers *borrow); + static MappedBuffer create_buffer(Vulkan::Device &device, Vulkan::BufferDomain domain, VkDeviceSize size, MappedBuffer *borrow); + + MappedBuffer triangle_setup; + MappedBuffer attribute_setup; + MappedBuffer derived_setup; + MappedBuffer scissor_setup; + + MappedBuffer static_raster_state; + MappedBuffer depth_blend_state; + MappedBuffer tile_info_state; + + MappedBuffer state_indices; + MappedBuffer span_info_offsets; + + MappedBuffer span_info_jobs; + Vulkan::BufferViewHandle span_info_jobs_view; + }; + + struct RenderBuffersUpdater + { + void init(Vulkan::Device &device); + void upload(Vulkan::Device &device, const StreamCaches &caches, Vulkan::CommandBuffer &cmd); + + template + void upload(Vulkan::CommandBuffer &cmd, Vulkan::Device &device, + const MappedBuffer &gpu, const MappedBuffer &cpu, const Cache &cache, bool &did_upload); + + RenderBuffers cpu, gpu; + }; + + struct InternalSynchronization + { + Vulkan::Fence fence; + }; + + struct Constants + { + uint32_t blend_color = 0; + uint32_t fog_color = 0; + uint32_t env_color = 0; + uint32_t primitive_color = 0; + uint32_t fill_color = 0; + uint8_t min_level = 0; + uint8_t prim_lod_frac = 0; + int32_t prim_depth = 0; + uint16_t prim_dz = 0; + uint16_t convert[6] = {}; + + uint16_t key_width[3] = {}; + uint8_t key_center[3] = {}; + uint8_t key_scale[3] = {}; + + bool use_prim_depth = false; + } constants; + + RenderBuffersUpdater buffer_instances[Limits::NumSyncStates]; + InternalSynchronization internal_sync[Limits::NumSyncStates]; + uint32_t sync_indices_needs_flush = 0; + unsigned buffer_instance = 0; + uint32_t base_primitive_index = 0; + unsigned pending_render_passes = 0; + unsigned pending_render_passes_upscaled = 0; + unsigned pending_primitives = 0; + unsigned pending_primitives_upscaled = 0; + + bool tmem_upload_needs_flush(uint32_t addr) const; + + bool render_pass_is_upscaled() const; + bool should_render_upscaled() const; + + void flush_queues(); + void submit_render_pass(Vulkan::CommandBuffer &cmd); + void submit_render_pass_upscaled(Vulkan::CommandBuffer &cmd); + void submit_render_pass_end(Vulkan::CommandBuffer &cmd); + void submit_to_queue(); + void begin_new_context(); + void reset_context(); + bool need_flush() const; + void maintain_queues(); + void maintain_queues_idle(); + void update_tmem_instances(Vulkan::CommandBuffer &cmd); + void submit_span_setup_jobs(Vulkan::CommandBuffer &cmd, bool upscaled); + void update_deduced_height(const TriangleSetup &setup); + void submit_tile_binning_combined(Vulkan::CommandBuffer &cmd, bool upscaled); + void clear_indirect_buffer(Vulkan::CommandBuffer &cmd); + void submit_rasterization(Vulkan::CommandBuffer &cmd, Vulkan::Buffer &tmem, bool upscaled); + void submit_depth_blend(Vulkan::CommandBuffer &cmd, Vulkan::Buffer &tmem, bool upscaled, bool force_write_mask); + + enum class ResolveStage { Pre, Post, SSAAResolve }; + void submit_update_upscaled_domain(Vulkan::CommandBuffer &cmd, ResolveStage stage); + void submit_update_upscaled_domain(Vulkan::CommandBuffer &cmd, ResolveStage stage, + unsigned addr, unsigned depth_addr, + unsigned width, unsigned height, + unsigned pixel_size_log2); + void submit_clear_super_sample_write_mask(Vulkan::CommandBuffer &cmd, unsigned width, unsigned height); + + SpanInfoOffsets allocate_span_jobs(const TriangleSetup &setup); + + DerivedSetup build_derived_attributes(const AttributeSetup &attr) const; + void build_combiner_constants(DerivedSetup &setup, unsigned cycle) const; + int filter_debug_channel_x = -1; + int filter_debug_channel_y = -1; + bool debug_channel = false; + + void message(const std::string &tag, uint32_t code, + uint32_t x, uint32_t y, uint32_t z, + uint32_t num_words, const Vulkan::DebugChannelInterface::Word *words) override; + + bool can_support_minimum_subgroup_size(unsigned size) const; + bool supports_subgroup_size_control(uint32_t minimum_size, uint32_t maximum_size) const; + + std::unordered_set pending_async_pipelines; + + unsigned compute_conservative_max_num_tiles(const TriangleSetup &setup) const; + + void deduce_static_texture_state(unsigned tile, unsigned max_lod_level); + void deduce_noise_state(); + static StaticRasterizationState normalize_static_state(StaticRasterizationState state); + void fixup_triangle_setup(TriangleSetup &setup) const; + + struct Caps + { + int timestamp = 0; + bool force_sync = false; + bool ubershader = false; + bool supports_small_integer_arithmetic = false; + bool subgroup_tile_binning = false; + bool subgroup_depth_blend = false; + bool super_sample_readback = false; + bool super_sample_readback_dither = false; + unsigned upscaling = 1; + unsigned max_num_tile_instances = Limits::MaxTileInstances; + unsigned max_tiles_x = ImplementationConstants::MaxTilesX; + unsigned max_tiles_y = ImplementationConstants::MaxTilesY; + unsigned max_width = Limits::MaxWidth; + unsigned max_height = Limits::MaxHeight; + } caps; + + struct PipelineExecutor + { + Vulkan::Device *device; + bool is_sentinel(const Vulkan::DeferredPipelineCompile &compile) const; + void perform_work(const Vulkan::DeferredPipelineCompile &compile) const; + void notify_work_locked(const Vulkan::DeferredPipelineCompile &compile) const; + }; + + std::unique_ptr> pipeline_worker; + + void resolve_coherency_host_to_gpu(Vulkan::CommandBuffer &cmd); + void resolve_coherency_gpu_to_host(CoherencyOperation &op, Vulkan::CommandBuffer &cmd); + uint32_t get_byte_size_for_bound_color_framebuffer() const; + uint32_t get_byte_size_for_bound_depth_framebuffer() const; + void mark_pages_for_gpu_read(uint32_t base_addr, uint32_t byte_count); + void lock_pages_for_gpu_write(uint32_t base_addr, uint32_t byte_count); + + std::atomic_uint32_t active_submissions; + void enqueue_fence_wait(Vulkan::Fence fence); + uint64_t last_submit_ns = 0; + + std::mutex idle_lock; +}; +} \ No newline at end of file diff --git a/parallel-rdp/shaders/binning.h b/parallel-rdp/shaders/binning.h new file mode 100644 index 00000000..169e173f --- /dev/null +++ b/parallel-rdp/shaders/binning.h @@ -0,0 +1,146 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef BINNING_H_ +#define BINNING_H_ + +// There are 4 critical Y coordinates to test when binning. Top, bottom, mid, and mid - 1. + +const int SUBPIXELS_Y = 4; + +ivec4 quantize_x(ivec4 x) +{ + return x >> 15; +} + +int minimum4(ivec4 v) +{ + ivec2 minimum2 = min(v.xy, v.zw); + return min(minimum2.x, minimum2.y); +} + +int maximum4(ivec4 v) +{ + ivec2 maximum2 = max(v.xy, v.zw); + return max(maximum2.x, maximum2.y); +} + +ivec4 madd_32_64(ivec4 a, int b, int c, out ivec4 hi_bits) +{ + ivec4 lo, hi; + imulExtended(a, ivec4(b), hi, lo); + uvec4 carry; + lo = ivec4(uaddCarry(lo, uvec4(c), carry)); + hi += ivec4(carry); + hi_bits = hi; + return lo; +} + +ivec2 interpolate_xs(TriangleSetup setup, ivec4 ys, bool flip, int scaling) +{ + int yh_interpolation_base = setup.yh & ~(SUBPIXELS_Y - 1); + int ym_interpolation_base = setup.ym; + + yh_interpolation_base *= scaling; + ym_interpolation_base *= scaling; + + // Interpolate in 64-bit so we can detect quirky overflow scenarios. + ivec4 xh_hi, xm_hi, xl_hi; + ivec4 xh = madd_32_64(ys - yh_interpolation_base, setup.dxhdy, scaling * setup.xh, xh_hi); + ivec4 xm = madd_32_64(ys - yh_interpolation_base, setup.dxmdy, scaling * setup.xm, xm_hi); + ivec4 xl = madd_32_64(ys - ym_interpolation_base, setup.dxldy, scaling * setup.xl, xl_hi); + xl = mix(xl, xm, lessThan(ys, ivec4(scaling * setup.ym))); + xl_hi = mix(xl_hi, xm_hi, lessThan(ys, ivec4(scaling * setup.ym))); + + // Handle overflow scenarios. Saturate 64-bit signed to 32-bit signed without 64-bit math. + xh = mix(xh, ivec4(0x7fffffff), greaterThan(xh_hi, ivec4(0))); + xh = mix(xh, ivec4(-0x80000000), lessThan(xh_hi, ivec4(-1))); + xl = mix(xl, ivec4(0x7fffffff), greaterThan(xl_hi, ivec4(0))); + xl = mix(xl, ivec4(-0x80000000), lessThan(xl_hi, ivec4(-1))); + + ivec4 xh_shifted = quantize_x(xh); + ivec4 xl_shifted = quantize_x(xl); + + ivec4 xleft, xright; + if (flip) + { + xleft = xh_shifted; + xright = xl_shifted; + } + else + { + xleft = xl_shifted; + xright = xh_shifted; + } + + // If one of the results are out of range, we have overflow, and we need to be conservative when binning. + int max_range = maximum4(max(abs(xleft), abs(xright))); + ivec2 range; + if (max_range <= 2047 * scaling) + range = ivec2(minimum4(xleft), maximum4(xright)); + else + range = ivec2(0, 0x7fffffff); + + return range; +} + +bool bin_primitive(TriangleSetup setup, ivec2 lo, ivec2 hi, int scaling, ScissorState scissor) +{ + // First clip Y range based on scissor. + lo.y = max(lo.y, scaling * (scissor.ylo >> 2)); + hi.y = min(hi.y, scaling * ((scissor.yhi + 3) >> 2) - 1); + + int start_y = lo.y * SUBPIXELS_Y; + int end_y = (hi.y * SUBPIXELS_Y) + (SUBPIXELS_Y - 1); + + // First, we clip start/end against y_lo, y_hi. + start_y = max(start_y, scaling * int(setup.yh)); + end_y = min(end_y, scaling * int(setup.yl) - 1); + + // Y is clipped out, exit early. + if (end_y < start_y) + return false; + + bool flip = (setup.flags & TRIANGLE_SETUP_FLIP_BIT) != 0; + + // Sample the X ranges for min and max Y, and potentially the mid-point as well. + ivec4 ys = ivec4(start_y, end_y, clamp(setup.ym * scaling + ivec2(-1, 0), ivec2(start_y), ivec2(end_y))); + ivec2 x_range = interpolate_xs(setup, ys, flip, scaling); + + // For FILL_COPY_RASTER_BIT we're inclusive, if not, exclusive. + int x_bias = (setup.flags & TRIANGLE_SETUP_FILL_COPY_RASTER_BIT) != 0 ? 4 : 3; + ivec2 scissor_x = ivec2(scaling * (scissor.xlo >> 2), scaling * ((scissor.xhi + x_bias) >> 2) - 1); + + // Scissor is applied through a clamp with a mask being generated for overshoot which affects if the line is valid. + // Since this is a conservative test we don't compute valid line here, so we have to assume it is valid. + // We can end up creating fake coverage in FILL/COPY modes in some cases + // if we clamp scissor to outside the primitive's range as long as at least one sub-line passes the scissor test. + // The x_range ends up being degenerate, but these fill modes are conservative and generate one pixel of coverage + // anyways. + x_range = clamp(x_range, scissor_x.xx, scissor_x.yy); + + x_range.x = max(x_range.x, lo.x); + x_range.y = min(x_range.y, hi.x); + return x_range.x <= x_range.y; +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/blender.h b/parallel-rdp/shaders/blender.h new file mode 100644 index 00000000..553e3225 --- /dev/null +++ b/parallel-rdp/shaders/blender.h @@ -0,0 +1,145 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef BLENDER_H_ +#define BLENDER_H_ + +struct BlendInputs +{ + u8x4 pixel_color; + u8x4 memory_color; + u8x4 fog_color; + u8x4 blend_color; + u8 shade_alpha; +}; + +const int BLEND_MODE_1A_PIXEL_COLOR = 0; +const int BLEND_MODE_1A_MEMORY_COLOR = 1; +const int BLEND_MODE_1A_BLEND_COLOR = 2; +const int BLEND_MODE_1A_FOG_COLOR = 3; + +const int BLEND_MODE_1B_PIXEL_ALPHA = 0; +const int BLEND_MODE_1B_FOG_ALPHA = 1; +const int BLEND_MODE_1B_SHADE_ALPHA = 2; +const int BLEND_MODE_1B_ZERO = 3; + +const int BLEND_MODE_2A_PIXEL_COLOR = 0; +const int BLEND_MODE_2A_MEMORY_COLOR = 1; +const int BLEND_MODE_2A_BLEND_COLOR = 2; +const int BLEND_MODE_2A_FOG_COLOR = 3; + +const int BLEND_MODE_2B_INV_PIXEL_ALPHA = 0; +const int BLEND_MODE_2B_MEMORY_ALPHA = 1; +const int BLEND_MODE_2B_ONE = 2; +const int BLEND_MODE_2B_ZERO = 3; + +u8x3 blender(BlendInputs inputs, u8x4 blend_modes, + bool force_blend, bool blend_en, bool color_on_coverage, bool coverage_wrap, u8x2 blend_shift, + bool final_cycle) +{ + u8x3 rgb1; + switch (int(blend_modes.z)) + { + case BLEND_MODE_2A_PIXEL_COLOR: rgb1 = inputs.pixel_color.rgb; break; + case BLEND_MODE_2A_MEMORY_COLOR: rgb1 = inputs.memory_color.rgb; break; + case BLEND_MODE_2A_BLEND_COLOR: rgb1 = inputs.blend_color.rgb; break; + case BLEND_MODE_2A_FOG_COLOR: rgb1 = inputs.fog_color.rgb; break; + } + + if (final_cycle) + { + if (color_on_coverage && !coverage_wrap) + return rgb1; + } + + u8x3 rgb0; + switch (int(blend_modes.x)) + { + case BLEND_MODE_1A_PIXEL_COLOR: rgb0 = inputs.pixel_color.rgb; break; + case BLEND_MODE_1A_MEMORY_COLOR: rgb0 = inputs.memory_color.rgb; break; + case BLEND_MODE_1A_BLEND_COLOR: rgb0 = inputs.blend_color.rgb; break; + case BLEND_MODE_1A_FOG_COLOR: rgb0 = inputs.fog_color.rgb; break; + } + + if (final_cycle) + { + if (!blend_en || (blend_modes.y == BLEND_MODE_1B_PIXEL_ALPHA && + blend_modes.w == BLEND_MODE_2B_INV_PIXEL_ALPHA && + inputs.pixel_color.a == U8_C(0xff))) + { + return rgb0; + } + } + + u8 a0; + u8 a1; + + switch (int(blend_modes.y)) + { + case BLEND_MODE_1B_PIXEL_ALPHA: a0 = inputs.pixel_color.a; break; + case BLEND_MODE_1B_FOG_ALPHA: a0 = inputs.fog_color.a; break; + case BLEND_MODE_1B_SHADE_ALPHA: a0 = inputs.shade_alpha; break; + case BLEND_MODE_1B_ZERO: a0 = U8_C(0); break; + } + + switch (int(blend_modes.w)) + { + case BLEND_MODE_2B_INV_PIXEL_ALPHA: a1 = ~a0 & U8_C(0xff); break; + case BLEND_MODE_2B_MEMORY_ALPHA: a1 = inputs.memory_color.a; break; + case BLEND_MODE_2B_ONE: a1 = U8_C(0xff); break; + case BLEND_MODE_2B_ZERO: a1 = U8_C(0); break; + } + + a0 >>= U8_C(3); + a1 >>= U8_C(3); + + if (blend_modes.w == BLEND_MODE_2B_MEMORY_ALPHA) + { + a0 = (a0 >> blend_shift.x) & U8_C(0x3c); + a1 = (a1 >> blend_shift.y) | U8_C(3); + } + + i16x3 blended = i16x3(rgb0) * i16(a0) + i16x3(rgb1) * (i16(a1) + I16_C(1)); + + if (!final_cycle || force_blend) + { + rgb0 = u8x3(blended >> I16_C(5)); + } + else + { + // Serious funk here. Somehow the RDP implemented a divider to deal with weighted average. + // Typically relevant when using blender shifters from interpenetrating Z mode. + // Under normal condition, this is implemented as a straight integer divider, but + // for edge cases, we need a look-up table. The results make no sense. + int blend_sum = (int(a0) >> 2) + (int(a1) >> 2) + 1; + blended >>= I16_C(2); + blended &= I16_C(0x7ff); + + rgb0.r = u8(texelFetch(uBlenderDividerLUT, (blend_sum << 11) | blended.x).x); + rgb0.g = u8(texelFetch(uBlenderDividerLUT, (blend_sum << 11) | blended.y).x); + rgb0.b = u8(texelFetch(uBlenderDividerLUT, (blend_sum << 11) | blended.z).x); + } + + return rgb0 & U8_C(0xff); +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/clamping.h b/parallel-rdp/shaders/clamping.h new file mode 100644 index 00000000..ab3238f8 --- /dev/null +++ b/parallel-rdp/shaders/clamping.h @@ -0,0 +1,78 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef CLAMPING_H_ +#define CLAMPING_H_ + +#if SMALL_TYPES && 0 +// This path is buggy on RADV LLVM, disable for time being. +i16x4 clamp_9bit_notrunc(i16x4 color) +{ + // [-129, -256] should clamp to 0xff, subtracting by 0x80 will underflow back to positive numbers. + // [-128, -1] should clamp to 0. + color -= I16_C(0x80); + // Sign-extend to 9-bit. + color <<= I16_C(7); + color >>= I16_C(7); + color += I16_C(0x80); + return clamp(color, i16x4(0), i16x4(0xff)); +} +#else +i16x4 clamp_9bit_notrunc(ivec4 color) +{ + // [-129, -256] should clamp to 0xff, subtracting by 0x80 will underflow back to positive numbers. + // [-128, -1] should clamp to 0. + color -= 0x80; + // Sign-extend to 9-bit. + color = bitfieldExtract(color, 0, 9); + color += 0x80; + return i16x4(clamp(color, ivec4(0), ivec4(0xff))); +} +#endif + +u8x4 clamp_9bit(i16x4 color) +{ + return u8x4(clamp_9bit_notrunc(color)); +} + +int clamp_9bit(int color) +{ + return clamp(bitfieldExtract(color - 0x80, 0, 9) + 0x80, 0, 0xff); +} + +// Returns 18-bit UNORM depth. +int clamp_z(int z) +{ + // Similar to RGBA, we reserve an extra bit to deal with overflow and underflow. + z -= (1 << 17); + z <<= (31 - 18); + z >>= (31 - 18); + z += (1 << 17); + + // [0x00000, 0x3ffff] maps to self. + // [0x40000, 0x5ffff] maps to 0x3ffff. + // [0x60000, 0x7ffff] maps to 0. + + return clamp(z, 0, 0x3ffff); +} + +#endif diff --git a/parallel-rdp/shaders/clear_indirect_buffer.comp b/parallel-rdp/shaders/clear_indirect_buffer.comp new file mode 100644 index 00000000..30dc16fa --- /dev/null +++ b/parallel-rdp/shaders/clear_indirect_buffer.comp @@ -0,0 +1,33 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +layout(local_size_x_id = 0) in; + +layout(set = 0, binding = 0, std430) writeonly buffer ClearIndirectBuffer +{ + uvec4 indirects[]; +}; + +void main() +{ + indirects[gl_GlobalInvocationID.x] = uvec4(0, 1, 1, 0); +} \ No newline at end of file diff --git a/parallel-rdp/shaders/clear_super_sampled_write_mask.comp b/parallel-rdp/shaders/clear_super_sampled_write_mask.comp new file mode 100644 index 00000000..4494fe92 --- /dev/null +++ b/parallel-rdp/shaders/clear_super_sampled_write_mask.comp @@ -0,0 +1,34 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +layout(local_size_x_id = 0) in; + +layout(set = 0, binding = 0, std430) writeonly buffer ToClear +{ + uint elems[]; +} mask_ram; + +void main() +{ + mask_ram.elems[gl_GlobalInvocationID.x] = 0u; +} diff --git a/parallel-rdp/shaders/clear_write_mask.comp b/parallel-rdp/shaders/clear_write_mask.comp new file mode 100644 index 00000000..134403da --- /dev/null +++ b/parallel-rdp/shaders/clear_write_mask.comp @@ -0,0 +1,42 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +layout(local_size_x_id = 0) in; +layout(constant_id = 1) const int PAGE_STRIDE = 256; + +layout(set = 0, binding = 0, std430) writeonly buffer SSBO +{ + uint write_mask[]; +}; + +layout(set = 1, binding = 0, std140) uniform UBO +{ + uvec4 offsets[1024]; +}; + +void main() +{ + uint offset = offsets[gl_WorkGroupID.x >> 2u][gl_WorkGroupID.x & 3u]; + offset *= PAGE_STRIDE; + write_mask[offset + gl_LocalInvocationIndex] = 0u; +} diff --git a/parallel-rdp/shaders/combiner.h b/parallel-rdp/shaders/combiner.h new file mode 100644 index 00000000..1d6977a0 --- /dev/null +++ b/parallel-rdp/shaders/combiner.h @@ -0,0 +1,284 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef COMBINER_H_ +#define COMBINER_H_ + +#include "clamping.h" + +ivec4 special_expand(ivec4 value) +{ + // Special sign-extend without explicit clamp. + return bitfieldExtract(value - 0x80, 0, 9) + 0x80; +} + +i16x4 combiner_equation(ivec4 a, ivec4 b, ivec4 c, ivec4 d) +{ + // Sign-extend multiplier to 9 bits. + c = bitfieldExtract(c, 0, 9); + + // Need this to deal with very specific 9-bit sign bits ... + a = special_expand(a); + b = special_expand(b); + d = special_expand(d); + + ivec4 color = (a - b) * c; + color += 0x80; + return i16x4(color >> 8) + i16x4(d); +} + +struct CombinerInputs +{ + u8x4 constant_muladd; + u8x4 constant_mulsub; + u8x4 constant_mul; + u8x4 constant_add; + + u8x4 shade; + i16x4 combined; + i16x4 texel0; + i16x4 texel1; + i16 lod_frac; + i16 noise; +}; + +const int RGB_MULADD_COMBINED = 0; +const int RGB_MULADD_TEXEL0 = 1; +const int RGB_MULADD_TEXEL1 = 2; +const int RGB_MULADD_SHADE = 4; +const int RGB_MULADD_ONE = 6; +const int RGB_MULADD_NOISE = 7; + +const int RGB_MULSUB_COMBINED = 0; +const int RGB_MULSUB_TEXEL0 = 1; +const int RGB_MULSUB_TEXEL1 = 2; +const int RGB_MULSUB_SHADE = 4; +const int RGB_MULSUB_K4 = 7; + +const int RGB_MUL_COMBINED = 0; +const int RGB_MUL_TEXEL0 = 1; +const int RGB_MUL_TEXEL1 = 2; +const int RGB_MUL_SHADE = 4; +const int RGB_MUL_COMBINED_ALPHA = 7; +const int RGB_MUL_TEXEL0_ALPHA = 8; +const int RGB_MUL_TEXEL1_ALPHA = 9; +const int RGB_MUL_SHADE_ALPHA = 11; +const int RGB_MUL_LOD_FRAC = 13; +const int RGB_MUL_K5 = 15; + +const int RGB_ADD_COMBINED = 0; +const int RGB_ADD_TEXEL0 = 1; +const int RGB_ADD_TEXEL1 = 2; +const int RGB_ADD_SHADE = 4; +const int RGB_ADD_ONE = 6; + +const int ALPHA_ADDSUB_COMBINED = 0; +const int ALPHA_ADDSUB_TEXEL0_ALPHA = 1; +const int ALPHA_ADDSUB_TEXEL1_ALPHA = 2; +const int ALPHA_ADDSUB_SHADE_ALPHA = 4; +const int ALPHA_ADDSUB_ONE = 6; + +const int ALPHA_MUL_LOD_FRAC = 0; +const int ALPHA_MUL_TEXEL0_ALPHA = 1; +const int ALPHA_MUL_TEXEL1_ALPHA = 2; +const int ALPHA_MUL_SHADE_ALPHA = 4; + +ivec4 select_muladd(CombinerInputs inputs, int selector_rgb, int selector_alpha) +{ + ivec3 res; + switch (selector_rgb) + { + case RGB_MULADD_COMBINED: res = inputs.combined.rgb; break; + case RGB_MULADD_TEXEL0: res = inputs.texel0.rgb; break; + case RGB_MULADD_TEXEL1: res = inputs.texel1.rgb; break; + case RGB_MULADD_SHADE: res = inputs.shade.rgb; break; + case RGB_MULADD_NOISE: res = ivec3(inputs.noise); break; + case RGB_MULADD_ONE: res = ivec3(0x100); break; + default: res = inputs.constant_muladd.rgb; break; + } + + int alpha; + switch (selector_alpha) + { + case ALPHA_ADDSUB_COMBINED: alpha = inputs.combined.a; break; + case ALPHA_ADDSUB_TEXEL0_ALPHA: alpha = inputs.texel0.a; break; + case ALPHA_ADDSUB_TEXEL1_ALPHA: alpha = inputs.texel1.a; break; + case ALPHA_ADDSUB_SHADE_ALPHA: alpha = inputs.shade.a; break; + case ALPHA_ADDSUB_ONE: alpha = 0x100; break; + default: alpha = inputs.constant_muladd.a; break; + } + return ivec4(res, alpha); +} + +ivec4 select_mulsub(CombinerInputs inputs, int selector_rgb, int selector_alpha) +{ + ivec3 res; + switch (selector_rgb) + { + case RGB_MULSUB_COMBINED: res = inputs.combined.rgb; break; + case RGB_MULSUB_TEXEL0: res = inputs.texel0.rgb; break; + case RGB_MULSUB_TEXEL1: res = inputs.texel1.rgb; break; + case RGB_MULSUB_SHADE: res = inputs.shade.rgb; break; + case RGB_MULSUB_K4: res = ivec3((int(inputs.constant_mulsub.g) << 8) | inputs.constant_mulsub.b); break; + default: res = inputs.constant_mulsub.rgb; break; + } + + int alpha; + switch (selector_alpha) + { + case ALPHA_ADDSUB_COMBINED: alpha = inputs.combined.a; break; + case ALPHA_ADDSUB_TEXEL0_ALPHA: alpha = inputs.texel0.a; break; + case ALPHA_ADDSUB_TEXEL1_ALPHA: alpha = inputs.texel1.a; break; + case ALPHA_ADDSUB_SHADE_ALPHA: alpha = inputs.shade.a; break; + case ALPHA_ADDSUB_ONE: alpha = 0x100; break; + default: alpha = inputs.constant_mulsub.a; break; + } + return ivec4(res, alpha); +} + +ivec4 select_mul(CombinerInputs inputs, int selector_rgb, int selector_alpha) +{ + ivec3 res; + switch (selector_rgb) + { + case RGB_MUL_COMBINED: res = inputs.combined.rgb; break; + case RGB_MUL_COMBINED_ALPHA: res = inputs.combined.aaa; break; + case RGB_MUL_TEXEL0: res = inputs.texel0.rgb; break; + case RGB_MUL_TEXEL1: res = inputs.texel1.rgb; break; + case RGB_MUL_SHADE: res = inputs.shade.rgb; break; + case RGB_MUL_TEXEL0_ALPHA: res = inputs.texel0.aaa; break; + case RGB_MUL_TEXEL1_ALPHA: res = inputs.texel1.aaa; break; + case RGB_MUL_SHADE_ALPHA: res = inputs.shade.aaa; break; + case RGB_MUL_LOD_FRAC: res = ivec3(inputs.lod_frac); break; + case RGB_MUL_K5: res = ivec3((int(inputs.constant_mul.g) << 8) | inputs.constant_mul.b); break; + default: res = inputs.constant_mul.rgb; break; + } + + int alpha; + switch (selector_alpha) + { + case ALPHA_MUL_LOD_FRAC: alpha = inputs.lod_frac; break; + case ALPHA_MUL_TEXEL0_ALPHA: alpha = inputs.texel0.a; break; + case ALPHA_MUL_TEXEL1_ALPHA: alpha = inputs.texel1.a; break; + case ALPHA_MUL_SHADE_ALPHA: alpha = inputs.shade.a; break; + default: alpha = inputs.constant_mul.a; break; + } + return ivec4(res, alpha); +} + +ivec4 select_add(CombinerInputs inputs, int selector_rgb, int selector_alpha) +{ + ivec3 res; + switch (selector_rgb) + { + case RGB_ADD_COMBINED: res = inputs.combined.rgb; break; + case RGB_ADD_TEXEL0: res = inputs.texel0.rgb; break; + case RGB_ADD_TEXEL1: res = inputs.texel1.rgb; break; + case RGB_ADD_SHADE: res = inputs.shade.rgb; break; + case RGB_ADD_ONE: res = ivec3(0x100); break; + default: res = inputs.constant_add.rgb; break; + } + + int alpha; + switch (selector_alpha) + { + case ALPHA_ADDSUB_COMBINED: alpha = inputs.combined.a; break; + case ALPHA_ADDSUB_TEXEL0_ALPHA: alpha = inputs.texel0.a; break; + case ALPHA_ADDSUB_TEXEL1_ALPHA: alpha = inputs.texel1.a; break; + case ALPHA_ADDSUB_SHADE_ALPHA: alpha = inputs.shade.a; break; + case ALPHA_ADDSUB_ONE: alpha = 0x100; break; + default: alpha = inputs.constant_add.a; break; + } + return ivec4(res, alpha); +} + +i16x4 combiner_cycle0(CombinerInputs inputs, u8x4 combiner_inputs_rgb, u8x4 combiner_inputs_alpha, int alpha_dith, + int coverage, bool cvg_times_alpha, bool alpha_cvg_select, bool alpha_test, out u8 alpha_test_reference) +{ + ivec4 muladd = select_muladd(inputs, combiner_inputs_rgb.x, combiner_inputs_alpha.x); + ivec4 mulsub = select_mulsub(inputs, combiner_inputs_rgb.y, combiner_inputs_alpha.y); + ivec4 mul = select_mul(inputs, combiner_inputs_rgb.z, combiner_inputs_alpha.z); + ivec4 add = select_add(inputs, combiner_inputs_rgb.w, combiner_inputs_alpha.w); + + i16x4 combined = combiner_equation(muladd, mulsub, mul, add); + + if (alpha_test) + { + int clamped_alpha = clamp_9bit(combined.a); + // Expands 0xff to 0x100 to avoid having to divide by 2**n - 1. + int expanded_alpha = clamped_alpha + ((clamped_alpha + 1) >> 8); + + if (alpha_cvg_select) + { + int modulated_alpha; + if (cvg_times_alpha) + modulated_alpha = (expanded_alpha * coverage + 4) >> 3; + else + modulated_alpha = coverage << 5; + expanded_alpha = modulated_alpha; + } + else + expanded_alpha += alpha_dith; + + alpha_test_reference = u8(clamp(expanded_alpha, 0, 0xff)); + } + else + alpha_test_reference = U8_C(0); + + return combined; +} + +i16x4 combiner_cycle1(CombinerInputs inputs, u8x4 combiner_inputs_rgb, u8x4 combiner_inputs_alpha, int alpha_dith, + inout int coverage, bool cvg_times_alpha, bool alpha_cvg_select) +{ + ivec4 muladd = select_muladd(inputs, combiner_inputs_rgb.x, combiner_inputs_alpha.x); + ivec4 mulsub = select_mulsub(inputs, combiner_inputs_rgb.y, combiner_inputs_alpha.y); + ivec4 mul = select_mul(inputs, combiner_inputs_rgb.z, combiner_inputs_alpha.z); + ivec4 add = select_add(inputs, combiner_inputs_rgb.w, combiner_inputs_alpha.w); + + i16x4 combined = combiner_equation(muladd, mulsub, mul, add); + + combined = clamp_9bit_notrunc(combined); + + // Expands 0xff to 0x100 to avoid having to divide by 2**n - 1. + int expanded_alpha = combined.a + ((combined.a + 1) >> 8); + + int modulated_alpha; + if (cvg_times_alpha) + { + modulated_alpha = (expanded_alpha * coverage + 4) >> 3; + coverage = modulated_alpha >> 5; + } + else + modulated_alpha = coverage << 5; + + if (alpha_cvg_select) + expanded_alpha = modulated_alpha; + else + expanded_alpha += alpha_dith; + + combined.a = i16(clamp(expanded_alpha, 0, 0xff)); + + return combined; +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/coverage.h b/parallel-rdp/shaders/coverage.h new file mode 100644 index 00000000..6b9b9713 --- /dev/null +++ b/parallel-rdp/shaders/coverage.h @@ -0,0 +1,81 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef COVERAGE_H_ +#define COVERAGE_H_ + +#include "data_structures.h" + +const int SUBPIXELS_LOG2 = 2; +const int SUBPIXELS = 1 << SUBPIXELS_LOG2; + +u8 compute_coverage(u16x4 xleft, u16x4 xright, int x) +{ + u16x4 xshift = u16x4(0, 4, 2, 6) + (u16(x) << U16_C(3)); + bvec4 clip_lo_x01 = lessThan(xshift, xleft.xxyy); + bvec4 clip_lo_x23 = lessThan(xshift, xleft.zzww); + bvec4 clip_hi_x01 = greaterThanEqual(xshift, xright.xxyy); + bvec4 clip_hi_x23 = greaterThanEqual(xshift, xright.zzww); + + u8x4 clip_x0 = u8x4(clip_lo_x01) | u8x4(clip_hi_x01); + u8x4 clip_x1 = u8x4(clip_lo_x23) | u8x4(clip_hi_x23); + u8x4 clip_x = clip_x0 * u8x4(1, 2, 4, 8) + clip_x1 * u8x4(16, 32, 64, 128); + u8 clip_coverage = (clip_x.x | clip_x.y) | (clip_x.z | clip_x.w); + return ~clip_coverage & U8_C(0xff); +} + +const int COVERAGE_CLAMP = 0; +const int COVERAGE_WRAP = 1; +const int COVERAGE_ZAP = 2; +const int COVERAGE_SAVE = 3; + +int blend_coverage(int coverage, int memory_coverage, bool blend_en, int mode) +{ + int res = 0; + switch (mode) + { + case COVERAGE_CLAMP: + { + if (blend_en) + res = min(7, memory_coverage + coverage); // image_read_en to read memory coverage, otherwise, it's 7. + else + res = (coverage - 1) & 7; + break; + } + + case COVERAGE_WRAP: + res = (coverage + memory_coverage) & 7; + break; + + case COVERAGE_ZAP: + res = 7; + break; + + case COVERAGE_SAVE: + res = memory_coverage; + break; + } + + return res; +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/data_structures.h b/parallel-rdp/shaders/data_structures.h new file mode 100644 index 00000000..af97c228 --- /dev/null +++ b/parallel-rdp/shaders/data_structures.h @@ -0,0 +1,347 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef DATA_STRUCTURES_H_ +#define DATA_STRUCTURES_H_ + +// Data structures which are supposed to match up with rdp_data_structures.hpp. +// A little dirty to duplicate like this, but it's non-trivial to share headers with C++, +// especially when we need to deal with small integer types. + +const int TRIANGLE_SETUP_FLIP_BIT = 1 << 0; +const int TRIANGLE_SETUP_DO_OFFSET_BIT = 1 << 1; +const int TRIANGLE_SETUP_SKIP_XFRAC_BIT = 1 << 2; +const int TRIANGLE_SETUP_INTERLACE_FIELD_BIT = 1 << 3; +const int TRIANGLE_SETUP_INTERLACE_KEEP_ODD_BIT = 1 << 4; +const int TRIANGLE_SETUP_DISABLE_UPSCALING_BIT = 1 << 5; +const int TRIANGLE_SETUP_NATIVE_LOD_BIT = 1 << 6; +const int TRIANGLE_SETUP_FILL_COPY_RASTER_BIT = 1 << 7; + +const int RASTERIZATION_INTERLACE_FIELD_BIT = 1 << 0; +const int RASTERIZATION_INTERLACE_KEEP_ODD_BIT = 1 << 1; +const int RASTERIZATION_AA_BIT = 1 << 2; +const int RASTERIZATION_PERSPECTIVE_CORRECT_BIT = 1 << 3; +const int RASTERIZATION_TLUT_BIT = 1 << 4; +const int RASTERIZATION_TLUT_TYPE_BIT = 1 << 5; +const int RASTERIZATION_CVG_TIMES_ALPHA_BIT = 1 << 6; +const int RASTERIZATION_ALPHA_CVG_SELECT_BIT = 1 << 7; +const int RASTERIZATION_MULTI_CYCLE_BIT = 1 << 8; +const int RASTERIZATION_TEX_LOD_ENABLE_BIT = 1 << 9; +const int RASTERIZATION_SHARPEN_LOD_ENABLE_BIT = 1 << 10; +const int RASTERIZATION_DETAIL_LOD_ENABLE_BIT = 1 << 11; +const int RASTERIZATION_FILL_BIT = 1 << 12; +const int RASTERIZATION_COPY_BIT = 1 << 13; +const int RASTERIZATION_SAMPLE_MODE_BIT = 1 << 14; +const int RASTERIZATION_ALPHA_TEST_BIT = 1 << 15; +const int RASTERIZATION_ALPHA_TEST_DITHER_BIT = 1 << 16; +const int RASTERIZATION_SAMPLE_MID_TEXEL_BIT = 1 << 17; +const int RASTERIZATION_USES_TEXEL0_BIT = 1 << 18; +const int RASTERIZATION_USES_TEXEL1_BIT = 1 << 19; +const int RASTERIZATION_USES_LOD_BIT = 1 << 20; +const int RASTERIZATION_USES_PIPELINED_TEXEL1_BIT = 1 << 21; +const int RASTERIZATION_CONVERT_ONE_BIT = 1 << 22; +const int RASTERIZATION_BILERP_0_BIT = 1 << 23; +const int RASTERIZATION_BILERP_1_BIT = 1 << 24; +const int RASTERIZATION_NEED_NOISE_DUAL_BIT = 1 << 25; +const int RASTERIZATION_UPSCALING_LOG2_BIT_OFFSET = 26; +const int RASTERIZATION_NEED_NOISE_BIT = 1 << 28; +const int RASTERIZATION_USE_STATIC_TEXTURE_SIZE_FORMAT_BIT = 1 << 29; +const int RASTERIZATION_USE_SPECIALIZATION_CONSTANT_BIT = 1 << 30; + +const int DEPTH_BLEND_DEPTH_TEST_BIT = 1 << 0; +const int DEPTH_BLEND_DEPTH_UPDATE_BIT = 1 << 1; +const int DEPTH_BLEND_FORCE_BLEND_BIT = 1 << 3; +const int DEPTH_BLEND_IMAGE_READ_ENABLE_BIT = 1 << 4; +const int DEPTH_BLEND_COLOR_ON_COVERAGE_BIT = 1 << 5; +const int DEPTH_BLEND_MULTI_CYCLE_BIT = 1 << 6; +const int DEPTH_BLEND_AA_BIT = 1 << 7; +const int DEPTH_BLEND_DITHER_ENABLE_BIT = 1 << 8; + +struct TriangleSetupMem +{ + int xh, xm, xl; + mem_i16 yh, ym; + int dxhdy, dxmdy, dxldy; + mem_i16 yl; mem_u8 flags; mem_u8 tile; +}; + +#if SMALL_TYPES +#define TriangleSetup TriangleSetupMem +#else +struct TriangleSetup +{ + int xh, xm, xl; + i16 yh, ym; + int dxhdy, dxmdy, dxldy; + i16 yl; u8 flags; u8 tile; +}; +#endif + +struct AttributeSetupMem +{ + ivec4 rgba; + ivec4 drgba_dx; + ivec4 drgba_de; + ivec4 drgba_dy; + + ivec4 stzw; + ivec4 dstzw_dx; + ivec4 dstzw_de; + ivec4 dstzw_dy; +}; +#define AttributeSetup AttributeSetupMem + +struct SpanSetupMem +{ + ivec4 rgba; + ivec4 stzw; + + mem_u16x4 xleft; + mem_u16x4 xright; + + int interpolation_base_x; + int start_x; + int end_x; + mem_i16 lodlength; + mem_u16 valid_line; +}; +#if SMALL_TYPES +#define SpanSetup SpanSetupMem +#else +struct SpanSetup +{ + ivec4 rgba; + ivec4 stzw; + + u16x4 xleft; + u16x4 xright; + + int interpolation_base_x; + int start_x; + int end_x; + i16 lodlength; + u16 valid_line; +}; +#endif + +struct SpanInfoOffsetsMem +{ + int offset; + int ylo; + int yhi; + int padding; +}; +#define SpanInfoOffsets SpanInfoOffsetsMem + +struct DerivedSetupMem +{ + mem_u8x4 constant_muladd0; + mem_u8x4 constant_mulsub0; + mem_u8x4 constant_mul0; + mem_u8x4 constant_add0; + + mem_u8x4 constant_muladd1; + mem_u8x4 constant_mulsub1; + mem_u8x4 constant_mul1; + mem_u8x4 constant_add1; + + mem_u8x4 fog_color; + mem_u8x4 blend_color; + uint fill_color; + + mem_u16 dz; + mem_u8 dz_compressed; + mem_u8 min_lod; + + mem_i16x4 factors; +}; + +#if SMALL_TYPES +#define DerivedSetup DerivedSetupMem +#else +struct DerivedSetup +{ + u8x4 constant_muladd0; + u8x4 constant_mulsub0; + u8x4 constant_mul0; + u8x4 constant_add0; + + u8x4 constant_muladd1; + u8x4 constant_mulsub1; + u8x4 constant_mul1; + u8x4 constant_add1; + + u8x4 fog_color; + u8x4 blend_color; + uint fill_color; + + u16 dz; + u8 dz_compressed; + u8 min_lod; + + i16x4 factors; +}; +#endif + +#define ScissorStateMem ivec4 + +struct ScissorState +{ + int xlo, ylo, xhi, yhi; +}; + +const int TILE_INFO_CLAMP_S_BIT = 1 << 0; +const int TILE_INFO_MIRROR_S_BIT = 1 << 1; +const int TILE_INFO_CLAMP_T_BIT = 1 << 2; +const int TILE_INFO_MIRROR_T_BIT = 1 << 3; + +struct TileInfoMem +{ + uint slo; + uint shi; + uint tlo; + uint thi; + uint offset; + uint stride; + mem_u8 fmt; + mem_u8 size; + mem_u8 palette; + mem_u8 mask_s; + mem_u8 shift_s; + mem_u8 mask_t; + mem_u8 shift_t; + mem_u8 flags; +}; + +#if SMALL_TYPES +#define TileInfo TileInfoMem +#else +struct TileInfo +{ + uint slo; + uint shi; + uint tlo; + uint thi; + uint offset; + uint stride; + u8 fmt; + u8 size; + u8 palette; + u8 mask_s; + u8 shift_s; + u8 mask_t; + u8 shift_t; + u8 flags; +}; +#endif + +struct StaticRasterizationStateMem +{ + mem_u8x4 combiner_inputs_rgb0; + mem_u8x4 combiner_inputs_alpha0; + mem_u8x4 combiner_inputs_rgb1; + mem_u8x4 combiner_inputs_alpha1; + uint flags; + int dither; + int texture_size; + int texture_fmt; +}; + +#if SMALL_TYPES +#define StaticRasterizationState StaticRasterizationStateMem +#else +struct StaticRasterizationState +{ + u8x4 combiner_inputs_rgb0; + u8x4 combiner_inputs_alpha0; + u8x4 combiner_inputs_rgb1; + u8x4 combiner_inputs_alpha1; + uint flags; + int dither; + int texture_size; + int texture_fmt; +}; +#endif + +struct DepthBlendStateMem +{ + mem_u8x4 blend_modes0; + mem_u8x4 blend_modes1; + uint flags; + mem_u8 coverage_mode; + mem_u8 z_mode; + mem_u8 padding0; + mem_u8 padding1; +}; + +#if SMALL_TYPES +#define DepthBlendState DepthBlendStateMem +#else +struct DepthBlendState +{ + u8x4 blend_modes0; + u8x4 blend_modes1; + uint flags; + u8 coverage_mode; + u8 z_mode; + u8 padding0; + u8 padding1; +}; +#endif + +struct InstanceIndicesMem +{ + mem_u8x4 static_depth_tmem; + mem_u8x4 other; + mem_u8 tile_infos[8]; +}; + +struct TMEMInstance16Mem +{ + mem_u16 elems[2048]; +}; + +struct TMEMInstance8Mem +{ + mem_u8 elems[4096]; +}; + +struct ShadedData +{ + u8x4 combined; + int z_dith; + u8 coverage_count; + u8 shade_alpha; +}; + +const int COVERAGE_FILL_BIT = 0x40; +const int COVERAGE_COPY_BIT = 0x20; + +struct GlobalFBInfo +{ + int dx_shift; + int dx_mask; + int fb_size; + uint base_primitive_index; +}; + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/data_structures_buffers.h b/parallel-rdp/shaders/data_structures_buffers.h new file mode 100644 index 00000000..d8d2c63f --- /dev/null +++ b/parallel-rdp/shaders/data_structures_buffers.h @@ -0,0 +1,134 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef DATA_STRUCTURES_BUFFERS_H_ +#define DATA_STRUCTURES_BUFFERS_H_ + +#include "data_structures.h" + +layout(set = 0, binding = 0, std430) buffer VRAM32 +{ + uint data[]; +} vram32; + +layout(set = 0, binding = 0, std430) buffer VRAM16 +{ + mem_u16 data[]; +} vram16; + +layout(set = 0, binding = 0, std430) buffer VRAM8 +{ + mem_u8 data[]; +} vram8; + +layout(set = 0, binding = 1, std430) buffer HiddenVRAM +{ + mem_u8 data[]; +} hidden_vram; + +layout(set = 0, binding = 2, std430) readonly buffer TMEM16 +{ + TMEMInstance16Mem instances[]; +} tmem16; + +layout(set = 0, binding = 2, std430) readonly buffer TMEM8 +{ + TMEMInstance8Mem instances[]; +} tmem8; + +layout(set = 1, binding = 0, std430) readonly buffer TriangleSetupBuffer +{ + TriangleSetupMem elems[]; +} triangle_setup; +#include "load_triangle_setup.h" + +layout(set = 1, binding = 1, std430) readonly buffer AttributeSetupBuffer +{ + AttributeSetupMem elems[]; +} attribute_setup; +#include "load_attribute_setup.h" + +layout(set = 1, binding = 2, std430) readonly buffer DerivedSetupBuffer +{ + DerivedSetupMem elems[]; +} derived_setup; +#include "load_derived_setup.h" + +layout(set = 1, binding = 3, std430) readonly buffer ScissorStateBuffer +{ + ScissorStateMem elems[]; +} scissor_state; +#include "load_scissor_state.h" + +layout(set = 1, binding = 4, std430) readonly buffer StaticRasterStateBuffer +{ + StaticRasterizationStateMem elems[]; +} static_raster_state; +#include "load_static_raster_state.h" + +layout(set = 1, binding = 5, std430) readonly buffer DepthBlendStateBuffer +{ + DepthBlendStateMem elems[]; +} depth_blend_state; +#include "load_depth_blend_state.h" + +layout(set = 1, binding = 6, std430) readonly buffer StateIndicesBuffer +{ + InstanceIndicesMem elems[]; +} state_indices; + +layout(set = 1, binding = 7, std430) readonly buffer TileInfoBuffer +{ + TileInfoMem elems[]; +} tile_infos; +#include "load_tile_info.h" + +layout(set = 1, binding = 8, std430) readonly buffer SpanSetups +{ + SpanSetupMem elems[]; +} span_setups; +#include "load_span_setup.h" + +layout(set = 1, binding = 9, std430) readonly buffer SpanInfoOffsetBuffer +{ + SpanInfoOffsetsMem elems[]; +} span_offsets; +#include "load_span_offsets.h" + +layout(set = 1, binding = 10) uniform utextureBuffer uBlenderDividerLUT; + +layout(set = 1, binding = 11, std430) readonly buffer TileBinning +{ + uint elems[]; +} tile_binning; + +layout(set = 1, binding = 12, std430) readonly buffer TileBinningCoarse +{ + uint elems[]; +} tile_binning_coarse; + +layout(set = 2, binding = 0, std140) uniform GlobalConstants +{ + GlobalFBInfo fb_info; +} global_constants; + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/debug.h b/parallel-rdp/shaders/debug.h new file mode 100644 index 00000000..dbbd3368 --- /dev/null +++ b/parallel-rdp/shaders/debug.h @@ -0,0 +1,151 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef DEBUG_H_ +#define DEBUG_H_ + +#if defined(DEBUG_ENABLE) && DEBUG_ENABLE +#include "debug_channel.h" + +const uint CODE_ASSERT_EQUAL = 0; +const uint CODE_ASSERT_NOT_EQUAL = 1; +const uint CODE_ASSERT_LESS_THAN = 2; +const uint CODE_ASSERT_LESS_THAN_EQUAL = 3; +const uint CODE_GENERIC = 4; +const uint CODE_HEX = 5; + +void ASSERT_EQUAL_(int line, int a, int b) +{ + if (a != b) + add_debug_message(CODE_ASSERT_EQUAL, gl_GlobalInvocationID, ivec3(line, a, b)); +} + +void ASSERT_NOT_EQUAL_(int line, int a, int b) +{ + if (a == b) + add_debug_message(CODE_ASSERT_NOT_EQUAL, gl_GlobalInvocationID, ivec3(line, a, b)); +} + +void ASSERT_LESS_THAN_(int line, int a, int b) +{ + if (a >= b) + add_debug_message(CODE_ASSERT_LESS_THAN, gl_GlobalInvocationID, ivec3(line, a, b)); +} + +void ASSERT_LESS_THAN_EQUAL_(int line, int a, int b) +{ + if (a > b) + add_debug_message(CODE_ASSERT_LESS_THAN_EQUAL, gl_GlobalInvocationID, ivec3(line, a, b)); +} + +void ASSERT_EQUAL_(int line, uint a, uint b) +{ + if (a != b) + add_debug_message(CODE_ASSERT_EQUAL, gl_GlobalInvocationID, ivec3(line, a, b)); +} + +void ASSERT_NOT_EQUAL_(int line, uint a, uint b) +{ + if (a == b) + add_debug_message(CODE_ASSERT_NOT_EQUAL, gl_GlobalInvocationID, ivec3(line, a, b)); +} + +void ASSERT_LESS_THAN_(int line, uint a, uint b) +{ + if (a >= b) + add_debug_message(CODE_ASSERT_LESS_THAN, gl_GlobalInvocationID, ivec3(line, a, b)); +} + +void ASSERT_LESS_THAN_EQUAL_(int line, uint a, uint b) +{ + if (a > b) + add_debug_message(CODE_ASSERT_LESS_THAN_EQUAL, gl_GlobalInvocationID, ivec3(line, a, b)); +} + +void GENERIC_MESSAGE_(int line) +{ + add_debug_message(CODE_GENERIC, gl_GlobalInvocationID, line); +} + +void GENERIC_MESSAGE_(int line, uint v) +{ + add_debug_message(CODE_GENERIC, gl_GlobalInvocationID, uvec2(line, v)); +} + +void GENERIC_MESSAGE_(int line, uvec2 v) +{ + add_debug_message(CODE_GENERIC, gl_GlobalInvocationID, uvec3(line, v)); +} + +void GENERIC_MESSAGE_(int line, uvec3 v) +{ + add_debug_message(CODE_GENERIC, gl_GlobalInvocationID, uvec4(line, v)); +} + +void HEX_MESSAGE_(int line) +{ + add_debug_message(CODE_HEX, gl_GlobalInvocationID, line); +} + +void HEX_MESSAGE_(int line, uint v) +{ + add_debug_message(CODE_HEX, gl_GlobalInvocationID, uvec2(line, v)); +} + +void HEX_MESSAGE_(int line, uvec2 v) +{ + add_debug_message(CODE_HEX, gl_GlobalInvocationID, uvec3(line, v)); +} + +void HEX_MESSAGE_(int line, uvec3 v) +{ + add_debug_message(CODE_HEX, gl_GlobalInvocationID, uvec4(line, v)); +} + +#define ASSERT_EQUAL(a, b) ASSERT_EQUAL_(__LINE__, a, b) +#define ASSERT_NOT_EQUAL(a, b) ASSERT_NOT_EQUAL_(__LINE__, a, b) +#define ASSERT_LESS_THAN(a, b) ASSERT_LESS_THAN_(__LINE__, a, b) +#define ASSERT_LESS_THAN_EQUAL(a, b) ASSERT_LESS_THAN_EQUAL_(__LINE__, a, b) +#define GENERIC_MESSAGE0() GENERIC_MESSAGE_(__LINE__) +#define GENERIC_MESSAGE1(a) GENERIC_MESSAGE_(__LINE__, a) +#define GENERIC_MESSAGE2(a, b) GENERIC_MESSAGE_(__LINE__, uvec2(a, b)) +#define GENERIC_MESSAGE3(a, b, c) GENERIC_MESSAGE_(__LINE__, uvec3(a, b, c)) +#define HEX_MESSAGE0() HEX_MESSAGE_(__LINE__) +#define HEX_MESSAGE1(a) HEX_MESSAGE_(__LINE__, a) +#define HEX_MESSAGE2(a, b) HEX_MESSAGE_(__LINE__, uvec2(a, b)) +#define HEX_MESSAGE3(a, b, c) HEX_MESSAGE_(__LINE__, uvec3(a, b, c)) +#else +#define ASSERT_EQUAL(a, b) +#define ASSERT_NOT_EQUAL(a, b) +#define ASSERT_LESS_THAN(a, b) +#define ASSERT_LESS_THAN_EQUAL(a, b) +#define GENERIC_MESSAGE0() +#define GENERIC_MESSAGE1(a) +#define GENERIC_MESSAGE2(a, b) +#define GENERIC_MESSAGE3(a, b, c) +#define HEX_MESSAGE0() +#define HEX_MESSAGE1(a) +#define HEX_MESSAGE2(a, b) +#define HEX_MESSAGE3(a, b, c) +#endif + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/depth_blend.comp b/parallel-rdp/shaders/depth_blend.comp new file mode 100644 index 00000000..37342735 --- /dev/null +++ b/parallel-rdp/shaders/depth_blend.comp @@ -0,0 +1,149 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#if SUBGROUP +#extension GL_KHR_shader_subgroup_basic : require +#extension GL_KHR_shader_subgroup_vote : require +#extension GL_KHR_shader_subgroup_ballot : require +#extension GL_KHR_shader_subgroup_arithmetic : require +#endif +#include "small_types.h" + +layout(local_size_x_id = 3, local_size_y_id = 4) in; + +#include "noise.h" +#include "debug.h" +#include "data_structures_buffers.h" +#include "memory_interfacing.h" + +layout(set = 0, binding = 3, std430) readonly buffer ColorBuffer +{ + mem_u8x4 elems[]; +} color; + +layout(set = 0, binding = 3, std430) readonly buffer ColorRawBuffer +{ + uint elems[]; +} raw_color; + +layout(set = 0, binding = 4, std430) readonly buffer DepthBuffer +{ + int elems[]; +} depth; + +layout(set = 0, binding = 5, std430) readonly buffer ShadeAlpha +{ + mem_u8 elems[]; +} shade_alpha; + +layout(set = 0, binding = 6, std430) readonly buffer Coverage +{ + mem_i8 elems[]; +} coverage; + +layout(std430, set = 0, binding = 7) readonly buffer TileInstanceOffset +{ + uint elems[]; +} tile_instance_offsets; + +layout(push_constant, std430) uniform Registers +{ + uint fb_addr_index; + uint fb_depth_addr_index; + uint fb_width; + uint fb_height; + uint group_mask; +} registers; + +layout(constant_id = 5) const int MAX_PRIMITIVES = 256; +layout(constant_id = 6) const int MAX_WIDTH = 1024; + +const int TILE_BINNING_STRIDE = MAX_PRIMITIVES / 32; +const int MAX_TILES_X = MAX_WIDTH / int(gl_WorkGroupSize.x); + +// Overall architecture of the tiling is from RetroWarp. + +void main() +{ + int x = int(gl_GlobalInvocationID.x); + int y = int(gl_GlobalInvocationID.y); + ivec2 tile = ivec2(gl_WorkGroupID.xy); + + int linear_tile = tile.x + tile.y * MAX_TILES_X; + int linear_tile_base = linear_tile * TILE_BINNING_STRIDE; + + uint coarse_binned = tile_binning_coarse.elems[linear_tile] & registers.group_mask; + if (coarse_binned == 0u) + return; + + init_tile(gl_GlobalInvocationID.xy, + registers.fb_width, registers.fb_height, + registers.fb_addr_index, registers.fb_depth_addr_index); + + while (coarse_binned != 0u) + { + int mask_index = findLSB(coarse_binned); + coarse_binned &= ~uint(1 << mask_index); + + uint tile_instance = tile_instance_offsets.elems[linear_tile_base + mask_index]; + uint binned = tile_binning.elems[linear_tile_base + mask_index]; + + while (binned != 0u) + { + int i = findLSB(binned); + binned &= ~uint(1 << i); + uint primitive_index = uint(i + 32 * mask_index); + + uint index = tile_instance * (gl_WorkGroupSize.x * gl_WorkGroupSize.y) + gl_LocalInvocationIndex; + int coverage = int(coverage.elems[index]); + + if (coverage >= 0) + { + if ((coverage & COVERAGE_FILL_BIT) != 0) + { + fill_color(derived_setup.elems[primitive_index].fill_color); + } + else if ((coverage & COVERAGE_COPY_BIT) != 0) + { + uint word = raw_color.elems[index]; + copy_pipeline(word, primitive_index); + } + else + { + ShadedData shaded; + shaded.combined = u8x4(color.elems[index]); + shaded.z_dith = depth.elems[index]; + shaded.shade_alpha = u8(shade_alpha.elems[index]); + shaded.coverage_count = u8(coverage); + depth_blend(x, y, primitive_index, shaded); + } + } + + tile_instance++; + } + } + + finish_tile(gl_GlobalInvocationID.xy, + registers.fb_width, registers.fb_height, + registers.fb_addr_index, registers.fb_depth_addr_index); +} diff --git a/parallel-rdp/shaders/depth_test.h b/parallel-rdp/shaders/depth_test.h new file mode 100644 index 00000000..adaa1709 --- /dev/null +++ b/parallel-rdp/shaders/depth_test.h @@ -0,0 +1,146 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef DEPTH_TEST_H_ +#define DEPTH_TEST_H_ + +#include "z_encode.h" + +const int Z_MODE_OPAQUE = 0; +const int Z_MODE_INTERPENETRATING = 1; +const int Z_MODE_TRANSPARENT = 2; +const int Z_MODE_DECAL = 3; + +int combine_dz(int dz) +{ + // Find largest POT which is <= dz. + if (dz != 0) + dz = 1 << findMSB(dz); + return dz; +} + +bool depth_test(int z, int dz, int dz_compressed, + u16 current_depth, u8 current_dz, + inout int coverage_count, int current_coverage_count, + bool z_compare, int z_mode, + bool force_blend, bool aa_enable, + out bool blend_en, out bool coverage_wrap, out u8x2 blend_shift) +{ + bool depth_pass; + + if (z_compare) + { + int memory_z = z_decompress(current_depth); + int memory_dz = dz_decompress(current_dz); + int precision_factor = (int(current_depth) >> 11) & 0xf; + bool coplanar = false; + + blend_shift.x = u8(clamp(dz_compressed - current_dz, 0, 4)); + blend_shift.y = u8(clamp(current_dz - dz_compressed, 0, 4)); + + if (precision_factor < 3) + { + if (memory_dz != 0x8000) + memory_dz = max(memory_dz << 1, 16 >> precision_factor); + else + { + coplanar = true; + memory_dz = 0xffff; + } + } + + int combined_dz = combine_dz(dz | memory_dz); + int combined_dz_interpenetrate = combined_dz; + combined_dz <<= 3; + + bool farther = coplanar || ((z + combined_dz) >= memory_z); + bool overflow = (coverage_count + current_coverage_count) >= 8; + + blend_en = force_blend || (!overflow && aa_enable && farther); + coverage_wrap = overflow; + + depth_pass = false; + bool max_z = memory_z == 0x3ffff; + bool front = z < memory_z; + int z_closest_possible = z - combined_dz; + bool nearer = coplanar || (z_closest_possible <= memory_z); + + switch (z_mode) + { + case Z_MODE_OPAQUE: + { + // The OPAQUE mode is normal less-than. + // However, if z is sufficiently close enough to memory Z, we assume that we have the same surface + // and we should simply increment coverage (blend_en). + // If we overflow coverage, it is clear that we have a different surface, and here we should only + // consider pure in-front test and overwrite coverage. + depth_pass = max_z || (overflow ? front : nearer); + break; + } + + case Z_MODE_INTERPENETRATING: + { + // This one is ... interesting as it affects coverage. + if (!front || !farther || !overflow) + { + // If there is no decal-like intersect, treat this as normal opaque mode. + depth_pass = max_z || (overflow ? front : nearer); + } + else + { + // Modify coverage based on how far away current surface we are somehow? + combined_dz_interpenetrate = dz_compress(combined_dz_interpenetrate & 0xffff); + int cvg_coeff = ((memory_z >> combined_dz_interpenetrate) - (z >> combined_dz_interpenetrate)) & 0xf; + coverage_count = min((cvg_coeff * coverage_count) >> 3, 8); + depth_pass = true; + } + break; + } + + case Z_MODE_TRANSPARENT: + { + depth_pass = front || max_z; + break; + } + + case Z_MODE_DECAL: + { + // Decals pass if |z - memory_z| <= max(dz, memory_dz). + depth_pass = farther && nearer && !max_z; + break; + } + } + } + else + { + blend_shift.x = u8(0); + blend_shift.y = u8(min(0xf - dz_compressed, 4)); + + bool overflow = (coverage_count + current_coverage_count) >= 8; + blend_en = force_blend || (!overflow && aa_enable); + coverage_wrap = overflow; + depth_pass = true; + } + return depth_pass; +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/dither.h b/parallel-rdp/shaders/dither.h new file mode 100644 index 00000000..c0cfea9e --- /dev/null +++ b/parallel-rdp/shaders/dither.h @@ -0,0 +1,70 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef DITHER_H_ +#define DITHER_H_ + +const u8 dither_matrices[2][16] = u8[][]( + u8[](U8_C(0), U8_C(6), U8_C(1), U8_C(7), U8_C(4), U8_C(2), U8_C(5), U8_C(3), U8_C(3), U8_C(5), U8_C(2), U8_C(4), U8_C(7), U8_C(1), U8_C(6), U8_C(0)), + u8[](U8_C(0), U8_C(4), U8_C(1), U8_C(5), U8_C(4), U8_C(0), U8_C(5), U8_C(1), U8_C(3), U8_C(7), U8_C(2), U8_C(6), U8_C(7), U8_C(3), U8_C(6), U8_C(2))); + +u8x3 rgb_dither(ivec3 orig_rgb, int dith) +{ + ivec3 rgb_dith = (ivec3(dith) >> ivec3(0, 3, 6)) & 7; + ivec3 rgb = mix((orig_rgb & 0xf8) + 8, ivec3(255), greaterThan(orig_rgb, ivec3(247))); + ivec3 replace_sign = (rgb_dith - (orig_rgb & 7)) >> 31; + ivec3 dither_diff = rgb - orig_rgb; + rgb = orig_rgb + (dither_diff & replace_sign); + return u8x3(rgb & 0xff); +} + +void dither_coefficients(int x, int y, int dither_mode_rgb, int dither_mode_alpha, out int rgb_dither, out int alpha_dither) +{ + const int DITHER_SPLAT = (1 << 0) | (1 << 3) | (1 << 6); + + if (dither_mode_rgb < 2) + rgb_dither = int(dither_matrices[dither_mode_rgb][(y & 3) * 4 + (x & 3)]) * DITHER_SPLAT; + else if (dither_mode_rgb == 2) + rgb_dither = noise_get_dither_color(); + else + rgb_dither = 0; + + if (dither_mode_alpha == 3) + alpha_dither = 0; + else + { + if (dither_mode_alpha == 2) + { + alpha_dither = noise_get_dither_alpha(); + } + else + { + alpha_dither = dither_mode_rgb >= 2 ? + int(dither_matrices[dither_mode_rgb & 1][(y & 3) * 4 + (x & 3)]) : (rgb_dither & 7); + + if (dither_mode_alpha == 1) + alpha_dither = ~alpha_dither & 7; + } + } +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/extract_vram.comp b/parallel-rdp/shaders/extract_vram.comp new file mode 100644 index 00000000..79e8369c --- /dev/null +++ b/parallel-rdp/shaders/extract_vram.comp @@ -0,0 +1,107 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "small_types.h" +layout(local_size_x = 16, local_size_y = 8) in; + +// Copies VRAM into a texture which is then consumed by VI scanout. + +layout(set = 0, binding = 0, rgba8ui) uniform writeonly uimage2D uAAInput; +layout(set = 0, binding = 1, std430) readonly buffer RDRAM16 +{ + mem_u16 elems[]; +} vram16; + +layout(set = 0, binding = 1, std430) readonly buffer RDRAM32 +{ + uint elems[]; +} vram32; + +layout(set = 0, binding = 2, std430) readonly buffer HiddenRDRAM +{ + mem_u8 elems[]; +} hidden_vram; + +layout(push_constant, std430) uniform Registers +{ + int fb_offset; + int fb_width; + ivec2 offset; + ivec2 resolution; +} registers; + +layout(constant_id = 0) const int RDRAM_SIZE = 0; +const int RDRAM_MASK_8 = RDRAM_SIZE - 1; +const int RDRAM_MASK_16 = RDRAM_MASK_8 >> 1; +const int RDRAM_MASK_32 = RDRAM_MASK_16 >> 1; +layout(constant_id = 2) const int SCALING_LOG2 = 0; +const int SCALING_FACTOR = 1 << SCALING_LOG2; + +#include "vi_status.h" + +uvec4 fetch_color(ivec2 coord) +{ + ivec2 slice2d = coord & (SCALING_FACTOR - 1); + coord >>= SCALING_LOG2; + int slice = slice2d.y * SCALING_FACTOR + slice2d.x; + + uvec4 color; + if (FMT_RGBA8888) + { + int linear_coord = coord.y * registers.fb_width + coord.x + registers.fb_offset; + linear_coord &= RDRAM_MASK_32; + linear_coord += slice * (RDRAM_SIZE >> 2); + uint word = uint(vram32.elems[linear_coord]); + color = (uvec4(word) >> uvec4(24, 16, 8, 5)) & uvec4(0xff, 0xff, 0xff, 7); + } + else if (FMT_RGBA5551) + { + int linear_coord = coord.y * registers.fb_width + coord.x + registers.fb_offset; + linear_coord &= RDRAM_MASK_16; + linear_coord += slice * (RDRAM_SIZE >> 1); + uint word = uint(vram16.elems[linear_coord ^ 1]); + uint hidden_word = uint(hidden_vram.elems[linear_coord]); + + uint r = (word >> 8u) & 0xf8u; + uint g = (word >> 3u) & 0xf8u; + uint b = (word << 2u) & 0xf8u; + uint a = ((word & 1u) << 2u) | hidden_word; + color = uvec4(r, g, b, a); + } + else + color = uvec4(0); + + if (!FETCH_AA) + color.a = 7u; + + return color; +} + +void main() +{ + if (any(greaterThanEqual(gl_GlobalInvocationID.xy, registers.resolution))) + return; + + ivec2 coord = ivec2(gl_GlobalInvocationID.xy) + registers.offset; + uvec4 col = fetch_color(coord); + imageStore(uAAInput, ivec2(gl_GlobalInvocationID.xy), col); +} \ No newline at end of file diff --git a/parallel-rdp/shaders/fb_formats.h b/parallel-rdp/shaders/fb_formats.h new file mode 100644 index 00000000..d6d56a52 --- /dev/null +++ b/parallel-rdp/shaders/fb_formats.h @@ -0,0 +1,10 @@ +#ifndef FB_FORMATS_H_ +#define FB_FORMATS_H_ + +const int FB_FMT_I4 = 0; +const int FB_FMT_I8 = 1; +const int FB_FMT_RGBA5551 = 2; +const int FB_FMT_IA88 = 3; +const int FB_FMT_RGBA8888 = 4; + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/fullscreen.vert b/parallel-rdp/shaders/fullscreen.vert new file mode 100644 index 00000000..f4db1cac --- /dev/null +++ b/parallel-rdp/shaders/fullscreen.vert @@ -0,0 +1,32 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +void main() +{ + if (gl_VertexIndex == 0) + gl_Position = vec4(-1.0, -1.0, 0.0, 1.0); + else if (gl_VertexIndex == 1) + gl_Position = vec4(-1.0, +3.0, 0.0, 1.0); + else + gl_Position = vec4(+3.0, -1.0, 0.0, 1.0); +} diff --git a/parallel-rdp/shaders/interpolation.h b/parallel-rdp/shaders/interpolation.h new file mode 100644 index 00000000..4e02e73f --- /dev/null +++ b/parallel-rdp/shaders/interpolation.h @@ -0,0 +1,255 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef INTERPOLATION_H_ +#define INTERPOLATION_H_ + +#include "data_structures.h" +#include "clamping.h" +#include "perspective.h" + +u8x4 interpolate_rgba(ivec4 rgba, ivec4 drgba_dx, ivec4 drgba_dy, int dx, int coverage) +{ + rgba += ((drgba_dx & ~0x1f) >> SCALING_LOG2) * dx; + + // RGBA is interpolated to 9-bit. The last bit is used to deal with clamping. + // Slight underflow below 0 is clamped to 0 and slight overflow above 0xff is clamped to 0xff. + + // Keep 2 sign bits of precision before we complete the centroid interpolation. + i16x4 snapped_rgba = i16x4(rgba >> 14); + + // Centroid clipping is based on the first coverage bit, and we interpolate at the first subpixel in scanline order. + // With this layout we can just use findLSB to get correct result. + // 0x01 0x02 + // 0x04 0x08 + // 0x10 0x20 + // 0x40 0x80 + int first_coverage = findLSB(coverage); + i16 yoff = i16(first_coverage >> 1); + i16 xoff = i16((first_coverage & 1) << 1) + (yoff & I16_C(1)); + snapped_rgba <<= I16_C(2 + SCALING_LOG2); + snapped_rgba += xoff * i16x4(drgba_dx >> 14) + yoff * i16x4(drgba_dy >> 14); + snapped_rgba >>= I16_C(4 + SCALING_LOG2); + return clamp_9bit(snapped_rgba); +} + +void interpolate_st_copy(SpanSetup span, ivec4 dstzw_dx, int x, bool perspective, bool flip, + out ivec2 st, out int s_offset) +{ + int dx = flip ? (x - span.start_x) : (span.end_x - x); + + // For copy pipe, we should duplicate pixels when scaling, there is no filtering we can (or should!) do. + dx >>= SCALING_LOG2; + + // Snap DX to where we perform interpolation (once per N output pixels). + int snapped_dx = dx & global_constants.fb_info.dx_mask; + s_offset = dx - snapped_dx; + int lerp_dx = (dx >> global_constants.fb_info.dx_shift) * (flip ? 1 : -1); + ivec3 stw = span.stzw.xyw + (dstzw_dx.xyw & ~0x1f) * lerp_dx; + + if (perspective) + { + bool st_overflow; + st = perspective_divide(stw >> 16, st_overflow); + } + else + st = no_perspective_divide(stw >> 16); +} + +ivec2 interpolate_st_single(ivec4 stzw, ivec4 dstzw_dx, int dx, bool perspective) +{ + ivec3 stw = stzw.xyw + ((dstzw_dx.xyw & ~0x1f) >> SCALING_LOG2) * dx; + stw >>= 16; + ivec2 st; + + if (perspective) + { + bool st_overflow; + st = perspective_divide(stw, st_overflow); + } + else + st = no_perspective_divide(stw); + + return st; +} + +void interpolate_stz(ivec4 stzw, ivec4 dstzw_dx, ivec4 dstzw_dy, int dx, int coverage, bool perspective, bool uses_lod, + int flip_direction, out ivec2 st, out ivec2 st_dx, out ivec2 st_dy, out int z, inout bool st_overflow) +{ + ivec3 stw = stzw.xyw + ((dstzw_dx.xyw & ~0x1f) >> SCALING_LOG2) * dx; + ivec3 stw_dx, stw_dy; + + if (uses_lod) + { + stw_dx = stw + flip_direction * ((dstzw_dx.xyw & ~0x1f) >> SCALING_LOG2); + if (SCALING_FACTOR > 1) + stw_dy = stw + abs(flip_direction) * ((dstzw_dy.xyw & ~0x7fff) >> SCALING_LOG2); + else + stw_dy = stw + ((dstzw_dy.xyw & ~0x7fff) >> SCALING_LOG2); + } + + if (perspective) + { + st = perspective_divide(stw >> 16, st_overflow); + if (uses_lod) + { + st_dx = perspective_divide(stw_dx >> 16, st_overflow); + st_dy = perspective_divide(stw_dy >> 16, st_overflow); + } + } + else + { + st = no_perspective_divide(stw >> 16); + if (uses_lod) + { + st_dx = no_perspective_divide(stw_dx >> 16); + st_dy = no_perspective_divide(stw_dy >> 16); + } + } + + // Ensure that interpolation snaps as we expect on every "main" pixel, + // for subpixels, interpolate with quantized step factor. + z = stzw.z + dstzw_dx.z * (dx >> SCALING_LOG2) + (dstzw_dx.z >> SCALING_LOG2) * (dx & (SCALING_FACTOR - 1)); + + int snapped_z = z >> 10; + int first_coverage = findLSB(coverage); + int yoff = first_coverage >> 1; + int xoff = ((first_coverage & 1) << 1) + (yoff & I16_C(1)); + snapped_z <<= 2 + SCALING_LOG2; + snapped_z += xoff * (dstzw_dx.z >> 10) + yoff * (dstzw_dy.z >> 10); + snapped_z >>= 5 + SCALING_LOG2; + + z = clamp_z(snapped_z); +} + +#if 0 +u8x4 interpolate_rgba(TriangleSetup setup, AttributeSetup attr, int x, int y, int coverage) +{ + bool do_offset = (setup.flags & TRIANGLE_SETUP_DO_OFFSET_BIT) != 0; + int y_interpolation_base = int(setup.yh) >> 2; + int xh = setup.xh + (y - y_interpolation_base) * (setup.dxhdy << 2); + + ivec4 drgba_diff = ivec4(0); + + // In do_offset mode, varyings are latched at last subpixel line instead of first (for some reason). + if (do_offset) + { + xh += 3 * setup.dxhdy; + ivec4 drgba_deh = attr.drgba_de & ~0x1ff; + ivec4 drgba_dyh = attr.drgba_dy & ~0x1ff; + drgba_diff = drgba_deh - (drgba_deh >> 2) - drgba_dyh + (drgba_dyh >> 2); + } + + int base_x = xh >> 16; + int xfrac = (xh >> 8) & 0xff; + + ivec4 rgba = attr.rgba; + rgba += attr.drgba_de * (y - y_interpolation_base); + rgba = ((rgba & ~0x1ff) + drgba_diff - xfrac * ((attr.drgba_dx >> 8) & ~1)) & ~0x3ff; + rgba += (attr.drgba_dx & ~0x1f) * (x - base_x); + + // RGBA is interpolated to 9-bit. The last bit is used to deal with clamping. + // Slight underflow below 0 is clamped to 0 and slight overflow above 0xff is clamped to 0xff. + + // Keep 2 sign bits of precision before we complete the centroid interpolation. + i16x4 snapped_rgba = i16x4(rgba >> 14); + + // Centroid clipping is based on the first coverage bit, and we interpolate at the first subpixel in scanline order. + // FWIW, Angrylion has a very different coverage bit assignment, but we need this layout to avoid an awkward LUT. + // With this layout we can just use findLSB instead. + // 0x01 0x02 + // 0x04 0x08 + // 0x10 0x20 + // 0x40 0x80 + int first_coverage = findLSB(coverage); + i16 yoff = i16(first_coverage >> 1); + i16 xoff = i16((first_coverage & 1) << 1) + (yoff & I16_C(1)); + snapped_rgba <<= I16_C(2); + snapped_rgba += xoff * i16x4(attr.drgba_dx >> 14) + yoff * i16x4(attr.drgba_dy >> 14); + snapped_rgba >>= I16_C(4); + return clamp_9bit(snapped_rgba); +} + +ivec3 interpolate_stw(TriangleSetup setup, AttributeSetup attr, int x, int y) +{ + bool do_offset = (setup.flags & TRIANGLE_SETUP_DO_OFFSET_BIT) != 0; + int y_interpolation_base = int(setup.yh) >> 2; + int xh = setup.xh + (y - y_interpolation_base) * (setup.dxhdy << 2); + + ivec3 dstw_diff = ivec3(0); + + // In do_offset mode, varyings are latched at last subpixel line instead of first (for some reason). + if (do_offset) + { + xh += 3 * setup.dxhdy; + ivec3 dstw_deh = attr.dstzw_de.xyw & ~0x1ff; + ivec3 dstw_dyh = attr.dstzw_dy.xyw & ~0x1ff; + dstw_diff = dstw_deh - (dstw_deh >> 2) - dstw_dyh + (dstw_dyh >> 2); + } + + int base_x = xh >> 16; + int xfrac = (xh >> 8) & 0xff; + + ivec3 stw = attr.stzw.xyw; + stw += attr.dstzw_de.xyw * (y - y_interpolation_base); + stw = ((stw & ~0x1ff) + dstw_diff - xfrac * ((attr.dstzw_dx.xyw >> 8) & ~1)) & ~0x3ff; + stw += (attr.dstzw_dx.xyw & ~0x1f) * (x - base_x); + + ivec3 snapped_stw = stw >> 16; + return snapped_stw; +} + +int interpolate_z(TriangleSetup setup, AttributeSetup attr, int x, int y, int coverage) +{ + bool do_offset = (setup.flags & TRIANGLE_SETUP_DO_OFFSET_BIT) != 0; + int y_interpolation_base = int(setup.yh) >> 2; + int xh = setup.xh + (y - y_interpolation_base) * (setup.dxhdy << 2); + + int dzdiff = 0; + // In do_offset mode, varyings are latched at last subpixel line instead of first (for some reason). + if (do_offset) + { + xh += 3 * setup.dxhdy; + int dzdeh = attr.dstzw_de.z & ~0x1ff; + int dzdyh = attr.dstzw_dy.z & ~0x1ff; + dzdiff = dzdeh - (dzdeh >> 2) - dzdyh + (dzdyh >> 2); + } + + int base_x = xh >> 16; + int xfrac = (xh >> 8) & 0xff; + int z = attr.stzw.z; + z += attr.dstzw_de.z * (y - y_interpolation_base); + z = ((z & ~0x1ff) + dzdiff - xfrac * ((attr.dstzw_dx.z >> 8) & ~1)) & ~0x3ff; + z += attr.dstzw_dx.z * (x - base_x); + + int snapped_z = z >> 10; + int first_coverage = findLSB(coverage); + int yoff = first_coverage >> 1; + int xoff = ((first_coverage & 1) << 1) + (yoff & 1s); + snapped_z <<= 2; + snapped_z += xoff * (attr.dstzw_dx.z >> 10) + yoff * (attr.dstzw_dy.z >> 10); + snapped_z >>= 5; + return clamp_z(snapped_z); +} +#endif + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/load_attribute_setup.h b/parallel-rdp/shaders/load_attribute_setup.h new file mode 100644 index 00000000..6e950fc8 --- /dev/null +++ b/parallel-rdp/shaders/load_attribute_setup.h @@ -0,0 +1,31 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef LOAD_ATTRIBUTE_SETUP_H_ +#define LOAD_ATTRIBUTE_SETUP_H_ + +AttributeSetup load_attribute_setup(uint index) +{ + return attribute_setup.elems[index]; +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/load_depth_blend_state.h b/parallel-rdp/shaders/load_depth_blend_state.h new file mode 100644 index 00000000..66f3fa7c --- /dev/null +++ b/parallel-rdp/shaders/load_depth_blend_state.h @@ -0,0 +1,41 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef LOAD_DEPTH_BLEND_STATE_H_ +#define LOAD_DEPTH_BLEND_STATE_H_ + +DepthBlendState load_depth_blend_state(uint index) +{ +#if SMALL_TYPES + return depth_blend_state.elems[index]; +#else + return DepthBlendState( + u8x4(depth_blend_state.elems[index].blend_modes0), + u8x4(depth_blend_state.elems[index].blend_modes1), + depth_blend_state.elems[index].flags, + u8(depth_blend_state.elems[index].coverage_mode), + u8(depth_blend_state.elems[index].z_mode), + u8(0), u8(0)); +#endif +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/load_derived_setup.h b/parallel-rdp/shaders/load_derived_setup.h new file mode 100644 index 00000000..74594c0d --- /dev/null +++ b/parallel-rdp/shaders/load_derived_setup.h @@ -0,0 +1,50 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef LOAD_DERIVED_SETUP_H_ +#define LOAD_DERIVED_SETUP_H_ + +DerivedSetup load_derived_setup(uint index) +{ +#if SMALL_TYPES + return derived_setup.elems[index]; +#else + return DerivedSetup( + u8x4(derived_setup.elems[index].constant_muladd0), + u8x4(derived_setup.elems[index].constant_mulsub0), + u8x4(derived_setup.elems[index].constant_mul0), + u8x4(derived_setup.elems[index].constant_add0), + u8x4(derived_setup.elems[index].constant_muladd1), + u8x4(derived_setup.elems[index].constant_mulsub1), + u8x4(derived_setup.elems[index].constant_mul1), + u8x4(derived_setup.elems[index].constant_add1), + u8x4(derived_setup.elems[index].fog_color), + u8x4(derived_setup.elems[index].blend_color), + uint(derived_setup.elems[index].fill_color), + u16(derived_setup.elems[index].dz), + u8(derived_setup.elems[index].dz_compressed), + u8(derived_setup.elems[index].min_lod), + i16x4(derived_setup.elems[index].factors)); +#endif +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/load_scissor_state.h b/parallel-rdp/shaders/load_scissor_state.h new file mode 100644 index 00000000..517617e5 --- /dev/null +++ b/parallel-rdp/shaders/load_scissor_state.h @@ -0,0 +1,32 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef LOAD_SCISSOR_STATE_H_ +#define LOAD_SCISSOR_STATE_H_ + +ScissorState load_scissor_state(uint index) +{ + ivec4 values = scissor_state.elems[index]; + return ScissorState(values.x, values.y, values.z, values.w); +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/load_span_offsets.h b/parallel-rdp/shaders/load_span_offsets.h new file mode 100644 index 00000000..34b77448 --- /dev/null +++ b/parallel-rdp/shaders/load_span_offsets.h @@ -0,0 +1,31 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef LOAD_SPAN_OFFSETS_H_ +#define LOAD_SPAN_OFFSETS_H_ + +SpanInfoOffsets load_span_offsets(uint index) +{ + return span_offsets.elems[index]; +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/load_span_setup.h b/parallel-rdp/shaders/load_span_setup.h new file mode 100644 index 00000000..5b961390 --- /dev/null +++ b/parallel-rdp/shaders/load_span_setup.h @@ -0,0 +1,44 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef LOAD_SPAN_SETUP_H_ +#define LOAD_SPAN_SETUP_H_ + +SpanSetup load_span_setup(uint index) +{ +#if SMALL_TYPES + return span_setups.elems[index]; +#else + return SpanSetup( + span_setups.elems[index].rgba, + span_setups.elems[index].stzw, + u16x4(uvec4(span_setups.elems[index].xleft)), + u16x4(uvec4(span_setups.elems[index].xright)), + span_setups.elems[index].interpolation_base_x, + span_setups.elems[index].start_x, + span_setups.elems[index].end_x, + i16(span_setups.elems[index].lodlength), + u16(span_setups.elems[index].valid_line)); +#endif +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/load_static_raster_state.h b/parallel-rdp/shaders/load_static_raster_state.h new file mode 100644 index 00000000..20b89303 --- /dev/null +++ b/parallel-rdp/shaders/load_static_raster_state.h @@ -0,0 +1,42 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef LOAD_STATIC_RASTER_STATE_H_ +#define LOAD_STATIC_RASTER_STATE_H_ + +StaticRasterizationState load_static_rasterization_state(uint index) +{ +#if SMALL_TYPES + return static_raster_state.elems[index]; +#else + return StaticRasterizationState( + u8x4(static_raster_state.elems[index].combiner_inputs_rgb0), + u8x4(static_raster_state.elems[index].combiner_inputs_alpha0), + u8x4(static_raster_state.elems[index].combiner_inputs_rgb1), + u8x4(static_raster_state.elems[index].combiner_inputs_alpha1), + static_raster_state.elems[index].flags, + static_raster_state.elems[index].dither, + 0, 0); +#endif +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/load_tile_info.h b/parallel-rdp/shaders/load_tile_info.h new file mode 100644 index 00000000..5972c9e0 --- /dev/null +++ b/parallel-rdp/shaders/load_tile_info.h @@ -0,0 +1,49 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef LOAD_TILE_INFO_H_ +#define LOAD_TILE_INFO_H_ + +TileInfo load_tile_info(uint index) +{ +#if SMALL_TYPES + return tile_infos.elems[index]; +#else + return TileInfo( + tile_infos.elems[index].slo, + tile_infos.elems[index].shi, + tile_infos.elems[index].tlo, + tile_infos.elems[index].thi, + tile_infos.elems[index].offset, + tile_infos.elems[index].stride, + u8(tile_infos.elems[index].fmt), + u8(tile_infos.elems[index].size), + u8(tile_infos.elems[index].palette), + u8(tile_infos.elems[index].mask_s), + u8(tile_infos.elems[index].shift_s), + u8(tile_infos.elems[index].mask_t), + u8(tile_infos.elems[index].shift_t), + u8(tile_infos.elems[index].flags)); +#endif +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/load_triangle_setup.h b/parallel-rdp/shaders/load_triangle_setup.h new file mode 100644 index 00000000..05c51c9f --- /dev/null +++ b/parallel-rdp/shaders/load_triangle_setup.h @@ -0,0 +1,46 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef LOAD_TRIANGLE_SETUP_H_ +#define LOAD_TRIANGLE_SETUP_H_ + +TriangleSetup load_triangle_setup(uint index) +{ +#if SMALL_TYPES + return triangle_setup.elems[index]; +#else + return TriangleSetup( + triangle_setup.elems[index].xh, + triangle_setup.elems[index].xm, + triangle_setup.elems[index].xl, + i16(triangle_setup.elems[index].yh), + i16(triangle_setup.elems[index].ym), + triangle_setup.elems[index].dxhdy, + triangle_setup.elems[index].dxmdy, + triangle_setup.elems[index].dxldy, + i16(triangle_setup.elems[index].yl), + u8(triangle_setup.elems[index].flags), + u8(triangle_setup.elems[index].tile)); +#endif +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/masked_rdram_resolve.comp b/parallel-rdp/shaders/masked_rdram_resolve.comp new file mode 100644 index 00000000..11ec56c3 --- /dev/null +++ b/parallel-rdp/shaders/masked_rdram_resolve.comp @@ -0,0 +1,70 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +layout(local_size_x_id = 0) in; +layout(constant_id = 1) const int PAGE_STRIDE = 256; + +layout(set = 0, binding = 0, std430) buffer RDRAM +{ + uint rdram[]; +}; + +layout(set = 0, binding = 1, std430) readonly buffer StagingRDRAM +{ + uint staging_rdram[]; +}; + +layout(set = 0, binding = 2, std430) readonly buffer WriteMaskRDRAM +{ + uint writemask[]; +}; + +layout(set = 1, binding = 0, std140) uniform UBO +{ + uvec4 offsets[1024]; +}; + +void main() +{ + uint offset = offsets[gl_WorkGroupID.x >> 2u][gl_WorkGroupID.x & 3u]; + offset *= PAGE_STRIDE; + offset += gl_LocalInvocationIndex; + uint mask = writemask[offset]; + + if (mask == ~0u) + { + return; + } + else if (mask == 0u) + { + uint staging = staging_rdram[offset]; + rdram[offset] = staging; + } + else + { + uint word = rdram[offset]; + uint staging = staging_rdram[offset]; + word = (word & mask) | (staging & ~mask); + rdram[offset] = word; + } +} \ No newline at end of file diff --git a/parallel-rdp/shaders/memory_interfacing.h b/parallel-rdp/shaders/memory_interfacing.h new file mode 100644 index 00000000..3e224660 --- /dev/null +++ b/parallel-rdp/shaders/memory_interfacing.h @@ -0,0 +1,572 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef MEMORY_INTERFACING_H_ +#define MEMORY_INTERFACING_H_ + +#include "dither.h" +#include "z_encode.h" +#include "blender.h" +#include "depth_test.h" +#include "coverage.h" +#include "fb_formats.h" + +layout(constant_id = 0) const uint RDRAM_SIZE = 0; + +layout(constant_id = 7) const int RDRAM_INCOHERENT_SCALING = 0; +const bool RDRAM_INCOHERENT = (RDRAM_INCOHERENT_SCALING & 1) != 0; +const int SCALING_LOG2 = RDRAM_INCOHERENT_SCALING >> 1; +const int SCALING_FACTOR = 1 << SCALING_LOG2; +const bool RDRAM_UNSCALED_WRITE_MASK = RDRAM_INCOHERENT && SCALING_LOG2 == 0; +const bool RDRAM_SCALED_WRITE_MASK = RDRAM_INCOHERENT && SCALING_LOG2 != 0; + +const uint RDRAM_MASK_8 = RDRAM_SIZE - 1u; +const uint RDRAM_MASK_16 = RDRAM_MASK_8 >> 1u; +const uint RDRAM_MASK_32 = RDRAM_MASK_8 >> 2u; + +layout(constant_id = 1) const int FB_FMT = 0; +layout(constant_id = 2) const bool FB_COLOR_DEPTH_ALIAS = false; + +u8x4 current_color; +bool current_color_dirty; + +u16 current_depth; +u8 current_dz; +bool current_depth_dirty; + +void load_vram_color(uint index, uint slice) +{ + switch (FB_FMT) + { + case FB_FMT_I4: + case FB_FMT_I8: + { + index &= RDRAM_MASK_8; + index += slice * RDRAM_SIZE; + u8 word = u8(vram8.data[index ^ 3u]); + current_color = u8x4(word, word, word, u8(hidden_vram.data[index >> 1])); + break; + } + + case FB_FMT_RGBA5551: + { + index &= RDRAM_MASK_16; + index += slice * (RDRAM_SIZE >> 1); + uint word = uint(vram16.data[index ^ 1u]); + uvec3 rgb = uvec3(word >> 8u, word >> 3u, word << 2u) & 0xf8u; + current_color = u8x4(rgb, (u8(hidden_vram.data[index]) << U8_C(5)) | u8((word & 1) << 7)); + break; + } + + case FB_FMT_IA88: + { + index &= RDRAM_MASK_16; + index += slice * (RDRAM_SIZE >> 1); + uint word = uint(vram16.data[index ^ 1u]); + current_color = u8x4(u8x3(word >> 8u), word & 0xff); + break; + } + + case FB_FMT_RGBA8888: + { + index &= RDRAM_MASK_32; + index += slice * (RDRAM_SIZE >> 2); + uint word = vram32.data[index]; + current_color = u8x4((uvec4(word) >> uvec4(24, 16, 8, 0)) & uvec4(0xff)); + break; + } + } +} + +void alias_color_to_depth() +{ + /* Inherit memory depth from color. */ + switch (FB_FMT) + { + case FB_FMT_RGBA5551: + { + current_dz = (current_color.a >> U8_C(3)) | (current_color.b & U8_C(8)); + uint word = (current_color.r & 0xf8u) << 6u; + word |= (current_color.g & 0xf8u) << 1u; + word |= (current_color.b & 0xf8u) >> 4u; + current_depth = u16(word); + break; + } + + case FB_FMT_IA88: + { + uvec2 col = current_color.ra; + uint word = (col.x << 8u) | col.y; + uint hidden_word = (word & 1u) * 3u; + current_depth = u16(word >> 2u); + current_dz = u8(((word & 3u) << 2u) | hidden_word); + break; + } + } +} + +void alias_depth_to_color() +{ + uint word = (uint(current_depth) << 4u) | current_dz; + + switch (FB_FMT) + { + case FB_FMT_RGBA5551: + { + current_color.r = u8((word >> 10u) & 0xf8u); + current_color.g = u8((word >> 5u) & 0xf8u); + current_color.b = u8((word >> 0u) & 0xf8u); + current_color.a = u8((word & 7u) << 5u); + break; + } + + case FB_FMT_IA88: + { + current_color.r = u8((word >> 10u) & 0xffu); + current_color.a = u8((word >> 2u) & 0xffu); + break; + } + } + + current_color_dirty = true; +} + +void load_vram_depth(uint index, uint slice) +{ + index &= RDRAM_MASK_16; + index += slice * (RDRAM_SIZE >> 1); + u16 word = u16(vram16.data[index ^ 1u]); + current_depth = word >> U16_C(2); + current_dz = u8(hidden_vram.data[index]) | u8((word & U16_C(3)) << U16_C(2)); +} + +void store_unscaled_write_mask(uint index) +{ + if (current_color_dirty) + { + switch (FB_FMT) + { + case FB_FMT_I4: + case FB_FMT_I8: + vram8.data[(index ^ 3u) + RDRAM_SIZE] = mem_u8(0xff); + break; + + case FB_FMT_RGBA5551: + case FB_FMT_IA88: + vram16.data[(index ^ 1u) + (RDRAM_SIZE >> 1u)] = mem_u16(0xffff); + break; + + case FB_FMT_RGBA8888: + vram32.data[index + (RDRAM_SIZE >> 2u)] = ~0u; + break; + } + } +} + +void store_vram_color(uint index, uint slice) +{ + if (current_color_dirty) + { + switch (FB_FMT) + { + case FB_FMT_I4: + { + index &= RDRAM_MASK_8; + index += slice * RDRAM_SIZE; + vram8.data[index ^ 3u] = mem_u8(0); + if ((index & 1u) != 0u) + hidden_vram.data[index >> 1u] = mem_u8(current_color.a); + break; + } + + case FB_FMT_I8: + { + index &= RDRAM_MASK_8; + index += slice * RDRAM_SIZE; + vram8.data[index ^ 3u] = mem_u8(current_color.r); + if ((index & 1u) != 0u) + hidden_vram.data[index >> 1u] = mem_u8((current_color.r & 1) * 3); + break; + } + + case FB_FMT_RGBA5551: + { + index &= RDRAM_MASK_16; + index += slice * (RDRAM_SIZE >> 1); + uvec4 c = uvec4(current_color); + c.rgb &= 0xf8u; + uint cov = c.w >> 5u; + uint word = (c.x << 8u) | (c.y << 3u) | (c.z >> 2u) | (cov >> 2u); + vram16.data[index ^ 1u] = mem_u16(word); + hidden_vram.data[index] = mem_u8(cov & U8_C(3)); + break; + } + + case FB_FMT_IA88: + { + index &= RDRAM_MASK_16; + index += slice * (RDRAM_SIZE >> 1); + uvec2 col = current_color.ra; + uint word = (col.x << 8u) | col.y; + vram16.data[index ^ 1u] = mem_u16(word); + hidden_vram.data[index] = mem_u8((col.y & 1) * 3); + break; + } + + case FB_FMT_RGBA8888: + { + index &= RDRAM_MASK_32; + index += slice * (RDRAM_SIZE >> 2); + uvec4 col = current_color; + uint word = (col.r << 24u) | (col.g << 16u) | (col.b << 8u) | (col.a << 0u); + vram32.data[index] = word; + hidden_vram.data[2u * index] = mem_u8((current_color.g & 1) * 3); + hidden_vram.data[2u * index + 1u] = mem_u8((current_color.a & 1) * 3); + break; + } + } + } + + if (RDRAM_UNSCALED_WRITE_MASK) + { + // Need this memory barrier to ensure the mask readback does not read + // an invalid value from RDRAM. If the mask is seen, the valid RDRAM value is + // also coherent. + memoryBarrierBuffer(); + store_unscaled_write_mask(index); + } +} + +void store_vram_depth(uint index, uint slice) +{ + if (!FB_COLOR_DEPTH_ALIAS) + { + if (current_depth_dirty) + { + index &= RDRAM_MASK_16; + index += slice * (RDRAM_SIZE >> 1); + vram16.data[index ^ 1u] = mem_u16((current_depth << U16_C(2)) | (current_dz >> U16_C(2))); + hidden_vram.data[index] = mem_u8(current_dz & U16_C(3)); + } + + if (RDRAM_UNSCALED_WRITE_MASK) + { + // Need this memory barrier to ensure the mask readback does not read + // an invalid value from RDRAM. If the mask is seen, the valid RDRAM value is + // also coherent. + memoryBarrierBuffer(); + if (current_depth_dirty) + vram16.data[(index ^ 1) + (RDRAM_SIZE >> 1u)] = mem_u16(0xffff); + } + } +} + +uint color_fb_index; + +void init_tile(uvec2 coord, uint fb_width, uint fb_height, uint fb_addr_index, uint fb_depth_addr_index) +{ + current_color_dirty = false; + current_depth_dirty = false; + if (all(lessThan(coord, uvec2(fb_width, fb_height)))) + { + uvec2 slice2d = coord & (SCALING_FACTOR - 1); + coord >>= SCALING_LOG2; + uint slice = slice2d.y * SCALING_FACTOR + slice2d.x; + + uint index = fb_addr_index + (fb_width >> SCALING_LOG2) * coord.y + coord.x; + color_fb_index = index; + load_vram_color(index, slice); + + index = fb_depth_addr_index + (fb_width >> SCALING_LOG2) * coord.y + coord.x; + load_vram_depth(index, slice); + } +} + +void emit_scaled_write_masks(uvec2 unscaled_coord, uint unscaled_fb_width) +{ + // Merge write masks across pixels. + // We reserved a chunk of memory after scaled RDRAM to store 2 bits per pixel holding + // a write mask for color and depth. The resolve stage will only resolve a pixel + // and trigger a write if any sub-sample was marked as written. + + // Write masks are organized in 4x4 blocks of unscaled pixels for locality purposes. + // This guarantees a minimum number of loop iterations to resolve the write masks. + uint unscaled_block = (unscaled_coord.y >> 2u) * ((unscaled_fb_width + 3u) >> 2u) + (unscaled_coord.x >> 2u); + uvec2 unscaled_sub = unscaled_coord & 3u; + uint word = uint(current_color_dirty) + 2u * uint(current_depth_dirty); + word <<= 2u * (unscaled_sub.x + unscaled_sub.y * 4u); + +#if SUBGROUP + // This should only need one iteration . + bool is_active = true; + do + { + if (subgroupBroadcastFirst(unscaled_block) == unscaled_block) + { + uint merged = subgroupOr(word); + if (subgroupElect()) + atomicOr(vram32.data[SCALING_FACTOR * SCALING_FACTOR * (RDRAM_SIZE >> 2) + unscaled_block], merged); + is_active = false; + } + } while (is_active); +#else + // Just use atomics directly. With subgroup support, we can be a bit smarter about it. + if (word != 0u) + atomicOr(vram32.data[SCALING_FACTOR * SCALING_FACTOR * (RDRAM_SIZE >> 2) + unscaled_block], word); +#endif +} + +void finish_tile(uvec2 coord, uint fb_width, uint fb_height, uint fb_addr_index, uint fb_depth_addr_index) +{ + // MSL portability: Need to maintain uniform control flow. + if (any(greaterThanEqual(coord, uvec2(fb_width, fb_height)))) + { + current_color_dirty = false; + current_depth_dirty = false; + } + + uint unscaled_fb_width = fb_width >> SCALING_LOG2; + + uvec2 slice2d = coord & (SCALING_FACTOR - 1); + coord >>= SCALING_LOG2; + uint slice = slice2d.y * SCALING_FACTOR + slice2d.x; + + uint index = fb_addr_index + unscaled_fb_width * coord.y + coord.x; + store_vram_color(index, slice); + + index = fb_depth_addr_index + unscaled_fb_width * coord.y + coord.x; + store_vram_depth(index, slice); + + if (RDRAM_SCALED_WRITE_MASK) + emit_scaled_write_masks(coord, unscaled_fb_width); +} + +u8x4 decode_memory_color(bool image_read_en) +{ + u8 memory_coverage = image_read_en ? (current_color.a & U8_C(0xe0)) : U8_C(0xe0); + + u8x3 color; + switch (FB_FMT) + { + case FB_FMT_I4: + color = u8x3(0); + memory_coverage = U8_C(0xe0); + break; + + case FB_FMT_I8: + color = current_color.rrr; + memory_coverage = U8_C(0xe0); + break; + + case FB_FMT_RGBA5551: + color = current_color.rgb & U8_C(0xf8); + break; + + case FB_FMT_IA88: + color = current_color.rrr; + break; + + case FB_FMT_RGBA8888: + color = current_color.rgb; + break; + } + return u8x4(color, memory_coverage); +} + +void write_color(u8x4 col) +{ + if (FB_FMT == FB_FMT_I4) + current_color.rgb = col.rgb; + else + current_color = col; + current_color_dirty = true; +} + +void copy_pipeline(uint word, uint primitive_index) +{ + switch (FB_FMT) + { + case FB_FMT_I4: + { + current_color = u8x4(0); + current_color_dirty = true; + break; + } + + case FB_FMT_I8: + { + // Alpha testing needs to only look at the low dword for some bizarre reason. + // I don't think alpha testing is supposed to be used at all with 8-bit FB ... + word &= 0xffu; + write_color(u8x4(word)); + break; + } + + case FB_FMT_RGBA5551: + { + uint r = (word >> 8) & 0xf8u; + uint g = (word >> 3) & 0xf8u; + uint b = (word << 2) & 0xf8u; + uint a = (word & 1) * 0xe0u; + write_color(u8x4(r, g, b, a)); + break; + } + } + + if (FB_COLOR_DEPTH_ALIAS) + alias_color_to_depth(); +} + +void fill_color(uint col) +{ + switch (FB_FMT) + { + case FB_FMT_RGBA8888: + { + uint r = (col >> 24u) & 0xffu; + uint g = (col >> 16u) & 0xffu; + uint b = (col >> 8u) & 0xffu; + uint a = (col >> 0u) & 0xffu; + write_color(u8x4(r, g, b, a)); + break; + } + + case FB_FMT_RGBA5551: + { + col >>= ((color_fb_index & 1u) ^ 1u) * 16u; + uint r = (col >> 8u) & 0xf8u; + uint g = (col >> 3u) & 0xf8u; + uint b = (col << 2u) & 0xf8u; + uint a = (col & 1u) * 0xe0u; + write_color(u8x4(r, g, b, a)); + break; + } + + case FB_FMT_IA88: + { + col >>= ((color_fb_index & 1u) ^ 1u) * 16u; + col &= 0xffffu; + uint r = (col >> 8u) & 0xffu; + uint a = (col >> 0u) & 0xffu; + write_color(u8x4(r, r, r, a)); + break; + } + + case FB_FMT_I8: + { + col >>= ((color_fb_index & 3u) ^ 3u) * 8u; + col &= 0xffu; + write_color(u8x4(col)); + break; + } + } + + if (FB_COLOR_DEPTH_ALIAS) + alias_color_to_depth(); +} + +void depth_blend(int x, int y, uint primitive_index, ShadedData shaded) +{ + int z = shaded.z_dith >> 9; + int dith = shaded.z_dith & 0x1ff; + int coverage_count = shaded.coverage_count; + u8x4 combined = shaded.combined; + u8 shade_alpha = shaded.shade_alpha; + + uint blend_state_index = uint(state_indices.elems[primitive_index].static_depth_tmem.y); + DerivedSetup derived = load_derived_setup(primitive_index); + DepthBlendState depth_blend = load_depth_blend_state(blend_state_index); + + bool force_blend = (depth_blend.flags & DEPTH_BLEND_FORCE_BLEND_BIT) != 0; + bool z_compare = (depth_blend.flags & DEPTH_BLEND_DEPTH_TEST_BIT) != 0; + bool z_update = (depth_blend.flags & DEPTH_BLEND_DEPTH_UPDATE_BIT) != 0; + bool image_read_enable = (depth_blend.flags & DEPTH_BLEND_IMAGE_READ_ENABLE_BIT) != 0; + bool color_on_coverage = (depth_blend.flags & DEPTH_BLEND_COLOR_ON_COVERAGE_BIT) != 0; + bool blend_multicycle = (depth_blend.flags & DEPTH_BLEND_MULTI_CYCLE_BIT) != 0; + bool aa_enable = (depth_blend.flags & DEPTH_BLEND_AA_BIT) != 0; + bool dither_en = (depth_blend.flags & DEPTH_BLEND_DITHER_ENABLE_BIT) != 0; + + bool blend_en; + bool coverage_wrap; + u8x2 blend_shift; + + u8x4 memory_color = decode_memory_color(image_read_enable); + u8 memory_coverage = memory_color.a >> U8_C(5); + + bool z_pass = depth_test(z, derived.dz, derived.dz_compressed, + current_depth, current_dz, + coverage_count, memory_coverage, + z_compare, depth_blend.z_mode, + force_blend, aa_enable, + blend_en, coverage_wrap, blend_shift); + + GENERIC_MESSAGE3(combined.x, combined.y, combined.z); + + // Pixel tests. + if (z_pass && (!aa_enable || coverage_count != 0)) + { + // Blending + BlendInputs blender_inputs = + BlendInputs(combined, memory_color, + derived.fog_color, derived.blend_color, shade_alpha); + + u8x4 blend_modes = depth_blend.blend_modes0; + if (blend_multicycle) + { + blender_inputs.pixel_color.rgb = + blender(blender_inputs, + blend_modes, + force_blend, blend_en, color_on_coverage, coverage_wrap, blend_shift, false); + blend_modes = depth_blend.blend_modes1; + } + u8x3 rgb = blender(blender_inputs, + blend_modes, + force_blend, blend_en, color_on_coverage, coverage_wrap, blend_shift, true); + + // Dither + if (dither_en) + rgb = rgb_dither(rgb, dith); + + // Coverage blending + int new_coverage = blend_coverage(coverage_count, memory_coverage, blend_en, depth_blend.coverage_mode); + + GENERIC_MESSAGE3(rgb.x, rgb.y, rgb.z); + + // Writeback + write_color(u8x4(rgb, new_coverage << 5)); + + // Z-writeback. + if (z_update) + { + current_depth = z_compress(z); + current_dz = u8(derived.dz_compressed); + current_depth_dirty = true; + + if (FB_COLOR_DEPTH_ALIAS) + alias_depth_to_color(); + } + else if (FB_COLOR_DEPTH_ALIAS) + alias_color_to_depth(); + } +} + +#endif diff --git a/parallel-rdp/shaders/noise.h b/parallel-rdp/shaders/noise.h new file mode 100644 index 00000000..2c7071a4 --- /dev/null +++ b/parallel-rdp/shaders/noise.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef NOISE_H_ +#define NOISE_H_ + +u16 seeded_noise = U16_C(0); + +// From: https://www.shadertoy.com/view/XlXcW4 with slight modifications. +void reseed_noise(uint x, uint y, uint primitive_offset) +{ + const uint NOISE_PRIME = 1103515245u; + uvec3 seed = uvec3(x, y, primitive_offset); + seed = ((seed >> 8u) ^ seed.yzx) * NOISE_PRIME; + seed = ((seed >> 8u) ^ seed.yzx) * NOISE_PRIME; + seed = ((seed >> 8u) ^ seed.yzx) * NOISE_PRIME; + seeded_noise = u16(seed.x >> 16u); +} + +i16 noise_get_combiner() +{ + return i16(((seeded_noise & U16_C(7u)) << U16_C(6u)) | U16_C(0x20u)); +} + +int noise_get_dither_alpha() +{ + return int(seeded_noise & U16_C(7u)); +} + +int noise_get_dither_color() +{ + // 3 bits of noise for RGB separately. + return int(seeded_noise & U16_C(0x1ff)); +} + +u8 noise_get_blend_threshold() +{ + return u8(seeded_noise & U16_C(0xffu)); +} + +uvec3 noise_get_full_gamma_dither() +{ + uint seed = seeded_noise; + return uvec3(seed & 0x3f, (seed >> 6u) & 0x3f, ((seed >> 9u) & 0x38) | (seed & 7u)); +} + +uvec3 noise_get_partial_gamma_dither() +{ + return (uvec3(seeded_noise) >> uvec3(0, 1, 2)) & 1u; +} + +#endif diff --git a/parallel-rdp/shaders/perspective.h b/parallel-rdp/shaders/perspective.h new file mode 100644 index 00000000..72dd398b --- /dev/null +++ b/parallel-rdp/shaders/perspective.h @@ -0,0 +1,114 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef PERSPECTIVE_H_ +#define PERSPECTIVE_H_ + +const i16x2 perspective_table[64] = i16x2[]( + i16x2(0x4000, -252 * 4), i16x2(0x3f04, -244 * 4), i16x2(0x3e10, -238 * 4), i16x2(0x3d22, -230 * 4), + i16x2(0x3c3c, -223 * 4), i16x2(0x3b5d, -218 * 4), i16x2(0x3a83, -210 * 4), i16x2(0x39b1, -205 * 4), + i16x2(0x38e4, -200 * 4), i16x2(0x381c, -194 * 4), i16x2(0x375a, -189 * 4), i16x2(0x369d, -184 * 4), + i16x2(0x35e5, -179 * 4), i16x2(0x3532, -175 * 4), i16x2(0x3483, -170 * 4), i16x2(0x33d9, -166 * 4), + i16x2(0x3333, -162 * 4), i16x2(0x3291, -157 * 4), i16x2(0x31f4, -155 * 4), i16x2(0x3159, -150 * 4), + i16x2(0x30c3, -147 * 4), i16x2(0x3030, -143 * 4), i16x2(0x2fa1, -140 * 4), i16x2(0x2f15, -137 * 4), + i16x2(0x2e8c, -134 * 4), i16x2(0x2e06, -131 * 4), i16x2(0x2d83, -128 * 4), i16x2(0x2d03, -125 * 4), + i16x2(0x2c86, -123 * 4), i16x2(0x2c0b, -120 * 4), i16x2(0x2b93, -117 * 4), i16x2(0x2b1e, -115 * 4), + i16x2(0x2aab, -113 * 4), i16x2(0x2a3a, -110 * 4), i16x2(0x29cc, -108 * 4), i16x2(0x2960, -106 * 4), + i16x2(0x28f6, -104 * 4), i16x2(0x288e, -102 * 4), i16x2(0x2828, -100 * 4), i16x2(0x27c4, -98 * 4), + i16x2(0x2762, -96 * 4), i16x2(0x2702, -94 * 4), i16x2(0x26a4, -92 * 4), i16x2(0x2648, -91 * 4), + i16x2(0x25ed, -89 * 4), i16x2(0x2594, -87 * 4), i16x2(0x253d, -86 * 4), i16x2(0x24e7, -85 * 4), + i16x2(0x2492, -83 * 4), i16x2(0x243f, -81 * 4), i16x2(0x23ee, -80 * 4), i16x2(0x239e, -79 * 4), + i16x2(0x234f, -77 * 4), i16x2(0x2302, -76 * 4), i16x2(0x22b6, -74 * 4), i16x2(0x226c, -74 * 4), + i16x2(0x2222, -72 * 4), i16x2(0x21da, -71 * 4), i16x2(0x2193, -70 * 4), i16x2(0x214d, -69 * 4), + i16x2(0x2108, -67 * 4), i16x2(0x20c5, -67 * 4), i16x2(0x2082, -65 * 4), i16x2(0x2041, -65 * 4) +); + +ivec2 perspective_get_lut(int w) +{ + int shift = min(14 - findMSB(w), 14); + int normout = (w << shift) & 0x3fff; + int wnorm = normout & 0xff; + ivec2 table = ivec2(perspective_table[normout >> 8]); + int rcp = ((table.y * wnorm) >> 10) + table.x; + return ivec2(rcp, shift); +} + +ivec2 no_perspective_divide(ivec3 stw) +{ + return stw.xy; +} + +// s16 divided by s1.15. +// Classic approximation of a (x * rcp) >> shift with a LUT to find rcp. +ivec2 perspective_divide(ivec3 stw, inout bool overflow) +{ + int w = stw.z; + bool w_carry = w <= 0; + w &= 0x7fff; + + ivec2 table = perspective_get_lut(w); + int shift = table.y; + ivec2 prod = stw.xy * table.x; + + int temp_mask = ((1 << 30) - 1) & -((1 << 29) >> shift); + ivec2 out_of_bounds = prod & temp_mask; + + ivec2 temp; + if (shift != 14) + temp = prod = prod >> (13 - shift); + else + temp = prod << 1; + + if (any(notEqual(out_of_bounds, ivec2(0)))) + { + if (out_of_bounds.x != temp_mask && out_of_bounds.x != 0) + { + if ((prod.x & (1 << 29)) == 0) + temp.x = 0x7fff; + else + temp.x = -0x8000; + overflow = true; + } + + if (out_of_bounds.y != temp_mask && out_of_bounds.y != 0) + { + if ((prod.y & (1 << 29)) == 0) + temp.y = 0x7fff; + else + temp.y = -0x8000; + overflow = true; + } + } + + if (w_carry) + { + temp = ivec2(0x7fff); + overflow = true; + } + + // Perspective divide produces a 17-bit signed coordinate, which is later clamped to 16-bit signed. + // However, the LOD computation happens in 17 bits ... + return clamp(temp, ivec2(-0x10000), ivec2(0xffff)); +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/rasterizer.comp b/parallel-rdp/shaders/rasterizer.comp new file mode 100644 index 00000000..ac583062 --- /dev/null +++ b/parallel-rdp/shaders/rasterizer.comp @@ -0,0 +1,191 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "small_types.h" + +layout(local_size_x_id = 0, local_size_y_id = 1) in; + +#include "debug.h" +#include "data_structures.h" + +layout(set = 0, binding = 0, std430) readonly buffer TriangleSetupBuffer +{ + TriangleSetupMem elems[]; +} triangle_setup; +#include "load_triangle_setup.h" + +layout(set = 0, binding = 1, std430) readonly buffer AttributeSetupBuffer +{ + AttributeSetupMem elems[]; +} attribute_setup; +#include "load_attribute_setup.h" + +layout(set = 0, binding = 2, std430) readonly buffer DerivedSetupBuffer +{ + DerivedSetupMem elems[]; +} derived_setup; +#include "load_derived_setup.h" + +layout(set = 0, binding = 3, std430) readonly buffer StaticRasterStateBuffer +{ + StaticRasterizationStateMem elems[]; +} static_raster_state; +#include "load_static_raster_state.h" + +layout(set = 0, binding = 4, std430) readonly buffer StateIndicesBuffer +{ + InstanceIndicesMem elems[]; +} state_indices; + +layout(set = 0, binding = 5, std430) readonly buffer SpanInfoOffsetBuffer +{ + SpanInfoOffsetsMem elems[]; +} span_offsets; +#include "load_span_offsets.h" + +layout(set = 0, binding = 6, std430) readonly buffer SpanSetups +{ + SpanSetupMem elems[]; +} span_setups; +#include "load_span_setup.h" + +layout(set = 0, binding = 7, std430) readonly buffer TMEM16 +{ + TMEMInstance16Mem instances[]; +} tmem16; + +layout(set = 0, binding = 7, std430) readonly buffer TMEM8 +{ + TMEMInstance8Mem instances[]; +} tmem8; + +layout(set = 0, binding = 8, std430) readonly buffer TileInfoBuffer +{ + TileInfoMem elems[]; +} tile_infos; +#include "load_tile_info.h" + +layout(set = 2, binding = 0, std140) uniform GlobalConstants +{ + GlobalFBInfo fb_info; +} global_constants; + +layout(constant_id = 2) const int STATIC_STATE_FLAGS = 0; +layout(constant_id = 3) const int COMBINER_INPUTS_RGB0 = 0; +layout(constant_id = 4) const int COMBINER_INPUTS_ALPHA0 = 0; +layout(constant_id = 5) const int COMBINER_INPUTS_RGB1 = 0; +layout(constant_id = 6) const int COMBINER_INPUTS_ALPHA1 = 0; +layout(constant_id = 7) const int DITHER_TEX_SIZE_TEX_FMT = 0; + +const int COMBINER_INPUT_RGB0_MULADD = (COMBINER_INPUTS_RGB0 >> 0) & 0xff; +const int COMBINER_INPUT_RGB0_MULSUB = (COMBINER_INPUTS_RGB0 >> 8) & 0xff; +const int COMBINER_INPUT_RGB0_MUL = (COMBINER_INPUTS_RGB0 >> 16) & 0xff; +const int COMBINER_INPUT_RGB0_ADD = (COMBINER_INPUTS_RGB0 >> 24) & 0xff; + +const int COMBINER_INPUT_ALPHA0_MULADD = (COMBINER_INPUTS_ALPHA0 >> 0) & 0xff; +const int COMBINER_INPUT_ALPHA0_MULSUB = (COMBINER_INPUTS_ALPHA0 >> 8) & 0xff; +const int COMBINER_INPUT_ALPHA0_MUL = (COMBINER_INPUTS_ALPHA0 >> 16) & 0xff; +const int COMBINER_INPUT_ALPHA0_ADD = (COMBINER_INPUTS_ALPHA0 >> 24) & 0xff; + +const int COMBINER_INPUT_RGB1_MULADD = (COMBINER_INPUTS_RGB1 >> 0) & 0xff; +const int COMBINER_INPUT_RGB1_MULSUB = (COMBINER_INPUTS_RGB1 >> 8) & 0xff; +const int COMBINER_INPUT_RGB1_MUL = (COMBINER_INPUTS_RGB1 >> 16) & 0xff; +const int COMBINER_INPUT_RGB1_ADD = (COMBINER_INPUTS_RGB1 >> 24) & 0xff; + +const int COMBINER_INPUT_ALPHA1_MULADD = (COMBINER_INPUTS_ALPHA1 >> 0) & 0xff; +const int COMBINER_INPUT_ALPHA1_MULSUB = (COMBINER_INPUTS_ALPHA1 >> 8) & 0xff; +const int COMBINER_INPUT_ALPHA1_MUL = (COMBINER_INPUTS_ALPHA1 >> 16) & 0xff; +const int COMBINER_INPUT_ALPHA1_ADD = (COMBINER_INPUTS_ALPHA1 >> 24) & 0xff; + +const int DITHER = (DITHER_TEX_SIZE_TEX_FMT >> 0) & 0xff; +const int TEX_SIZE = (DITHER_TEX_SIZE_TEX_FMT >> 8) & 0xff; +const int TEX_FMT = (DITHER_TEX_SIZE_TEX_FMT >> 16) & 0xff; + +#define RASTERIZER_SPEC_CONSTANT + +#include "noise.h" +#include "shading.h" + +layout(set = 0, binding = 9, std430) writeonly buffer ColorBuffer +{ + mem_u8x4 elems[]; +} color; + +layout(set = 0, binding = 9, std430) writeonly buffer ColorBufferRaw +{ + uint elems[]; +} raw_color; + +layout(set = 0, binding = 10, std430) writeonly buffer DepthBuffer +{ + int elems[]; +} depth; + +layout(set = 0, binding = 11, std430) writeonly buffer ShadeAlpha +{ + mem_u8 elems[]; +} shade_alpha; + +layout(set = 0, binding = 12, std430) writeonly buffer Coverage +{ + mem_i8 elems[]; +} coverage; + +layout(set = 1, binding = 0, std430) readonly buffer TileWorkList +{ + uvec4 elems[]; +} tile_work_list; + +void main() +{ + uvec4 work = tile_work_list.elems[gl_WorkGroupID.x]; + int x = int(work.x * gl_WorkGroupSize.x + gl_LocalInvocationID.x); + int y = int(work.y * gl_WorkGroupSize.y + gl_LocalInvocationID.y); + uint tile_instance = work.z; + uint primitive_index = work.w; + + ShadedData shaded; + i8 coverage_value; + uint index = tile_instance * (gl_WorkGroupSize.x * gl_WorkGroupSize.y) + gl_LocalInvocationIndex; + + if (shade_pixel(x, y, primitive_index, shaded)) + { + coverage_value = i8(shaded.coverage_count); + + if (coverage_value <= I8_C(8)) + { + // Workaround curious bug with glslang, need to cast manually to uvec4 first. + color.elems[index] = mem_u8x4(uvec4(shaded.combined)); + shade_alpha.elems[index] = mem_u8(shaded.shade_alpha); + depth.elems[index] = shaded.z_dith; + } + else if ((coverage_value & COVERAGE_COPY_BIT) != 0) + { + // For copy pipe, we use a raw 32-bit word to represent the loaded texel. + raw_color.elems[index] = shaded.z_dith; + } + } + else + coverage_value = I8_C(-1); + + coverage.elems[index] = mem_i8(coverage_value); +} \ No newline at end of file diff --git a/parallel-rdp/shaders/shading.h b/parallel-rdp/shaders/shading.h new file mode 100644 index 00000000..c63b5dcb --- /dev/null +++ b/parallel-rdp/shaders/shading.h @@ -0,0 +1,361 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef SHADING_H_ +#define SHADING_H_ + +#ifdef RASTERIZER_SPEC_CONSTANT +const int SCALING_LOG2 = (STATIC_STATE_FLAGS >> RASTERIZATION_UPSCALING_LOG2_BIT_OFFSET) & 3; +const int SCALING_FACTOR = 1 << SCALING_LOG2; +#endif + +#include "coverage.h" +#include "interpolation.h" +#include "perspective.h" +#include "texture.h" +#include "dither.h" +#include "combiner.h" + +bool shade_pixel(int x, int y, uint primitive_index, out ShadedData shaded) +{ + SpanInfoOffsets span_offsets = load_span_offsets(primitive_index); + if ((y < (SCALING_FACTOR * span_offsets.ylo)) || (y > (span_offsets.yhi * SCALING_FACTOR + (SCALING_FACTOR - 1)))) + return false; + + uint setup_flags = uint(triangle_setup.elems[primitive_index].flags); + if (SCALING_FACTOR > 1) + { + if ((setup_flags & TRIANGLE_SETUP_DISABLE_UPSCALING_BIT) != 0u) + { + x &= ~(SCALING_FACTOR - 1); + y &= ~(SCALING_FACTOR - 1); + } + } + + SpanSetup span_setup = load_span_setup(SCALING_FACTOR * span_offsets.offset + (y - SCALING_FACTOR * span_offsets.ylo)); + if (span_setup.valid_line == U16_C(0)) + return false; + + uint setup_tile = uint(triangle_setup.elems[primitive_index].tile); + AttributeSetup attr = load_attribute_setup(primitive_index); + + uvec4 states = uvec4(state_indices.elems[primitive_index].static_depth_tmem); + uint static_state_index = states.x; + uint tmem_instance_index = states.z; + + StaticRasterizationState static_state = load_static_rasterization_state(static_state_index); + uint static_state_flags = static_state.flags; + int static_state_dither = static_state.dither; + u8x4 combiner_inputs_rgb0 = static_state.combiner_inputs_rgb0; + u8x4 combiner_inputs_alpha0 = static_state.combiner_inputs_alpha0; + u8x4 combiner_inputs_rgb1 = static_state.combiner_inputs_rgb1; + u8x4 combiner_inputs_alpha1 = static_state.combiner_inputs_alpha1; + +#ifdef RASTERIZER_SPEC_CONSTANT + if ((STATIC_STATE_FLAGS & RASTERIZATION_USE_SPECIALIZATION_CONSTANT_BIT) != 0) + { + static_state_flags = STATIC_STATE_FLAGS; + static_state_dither = DITHER; + + combiner_inputs_rgb0.x = u8(COMBINER_INPUT_RGB0_MULADD); + combiner_inputs_rgb0.y = u8(COMBINER_INPUT_RGB0_MULSUB); + combiner_inputs_rgb0.z = u8(COMBINER_INPUT_RGB0_MUL); + combiner_inputs_rgb0.w = u8(COMBINER_INPUT_RGB0_ADD); + + combiner_inputs_alpha0.x = u8(COMBINER_INPUT_ALPHA0_MULADD); + combiner_inputs_alpha0.y = u8(COMBINER_INPUT_ALPHA0_MULSUB); + combiner_inputs_alpha0.z = u8(COMBINER_INPUT_ALPHA0_MUL); + combiner_inputs_alpha0.w = u8(COMBINER_INPUT_ALPHA0_ADD); + + combiner_inputs_rgb1.x = u8(COMBINER_INPUT_RGB1_MULADD); + combiner_inputs_rgb1.y = u8(COMBINER_INPUT_RGB1_MULSUB); + combiner_inputs_rgb1.z = u8(COMBINER_INPUT_RGB1_MUL); + combiner_inputs_rgb1.w = u8(COMBINER_INPUT_RGB1_ADD); + + combiner_inputs_alpha1.x = u8(COMBINER_INPUT_ALPHA1_MULADD); + combiner_inputs_alpha1.y = u8(COMBINER_INPUT_ALPHA1_MULSUB); + combiner_inputs_alpha1.z = u8(COMBINER_INPUT_ALPHA1_MUL); + combiner_inputs_alpha1.w = u8(COMBINER_INPUT_ALPHA1_ADD); + } +#endif + + // This is a great case for specialization constants. + bool tlut = (static_state_flags & RASTERIZATION_TLUT_BIT) != 0; + bool tlut_type = (static_state_flags & RASTERIZATION_TLUT_TYPE_BIT) != 0; + bool sample_quad = (static_state_flags & RASTERIZATION_SAMPLE_MODE_BIT) != 0; + bool cvg_times_alpha = (static_state_flags & RASTERIZATION_CVG_TIMES_ALPHA_BIT) != 0; + bool alpha_cvg_select = (static_state_flags & RASTERIZATION_ALPHA_CVG_SELECT_BIT) != 0; + bool perspective = (static_state_flags & RASTERIZATION_PERSPECTIVE_CORRECT_BIT) != 0; + bool tex_lod_en = (static_state_flags & RASTERIZATION_TEX_LOD_ENABLE_BIT) != 0; + bool sharpen_lod_en = (static_state_flags & RASTERIZATION_SHARPEN_LOD_ENABLE_BIT) != 0; + bool detail_lod_en = (static_state_flags & RASTERIZATION_DETAIL_LOD_ENABLE_BIT) != 0; + bool aa_enable = (static_state_flags & RASTERIZATION_AA_BIT) != 0; + bool multi_cycle = (static_state_flags & RASTERIZATION_MULTI_CYCLE_BIT) != 0; + bool interlace_en = (static_state_flags & RASTERIZATION_INTERLACE_FIELD_BIT) != 0; + bool fill_en = (static_state_flags & RASTERIZATION_FILL_BIT) != 0; + bool copy_en = (static_state_flags & RASTERIZATION_COPY_BIT) != 0; + bool alpha_test = (static_state_flags & RASTERIZATION_ALPHA_TEST_BIT) != 0; + bool alpha_test_dither = (static_state_flags & RASTERIZATION_ALPHA_TEST_DITHER_BIT) != 0; + bool mid_texel = (static_state_flags & RASTERIZATION_SAMPLE_MID_TEXEL_BIT) != 0; + bool uses_texel0 = (static_state_flags & RASTERIZATION_USES_TEXEL0_BIT) != 0; + bool uses_texel1 = (static_state_flags & RASTERIZATION_USES_TEXEL1_BIT) != 0; + bool uses_pipelined_texel1 = (static_state_flags & RASTERIZATION_USES_PIPELINED_TEXEL1_BIT) != 0; + bool uses_lod = (static_state_flags & RASTERIZATION_USES_LOD_BIT) != 0; + bool convert_one = (static_state_flags & RASTERIZATION_CONVERT_ONE_BIT) != 0; + bool bilerp0 = (static_state_flags & RASTERIZATION_BILERP_0_BIT) != 0; + bool bilerp1 = (static_state_flags & RASTERIZATION_BILERP_1_BIT) != 0; + + if ((static_state_flags & RASTERIZATION_NEED_NOISE_BIT) != 0) + reseed_noise(x, y, primitive_index + global_constants.fb_info.base_primitive_index); + + bool flip = (setup_flags & TRIANGLE_SETUP_FLIP_BIT) != 0; + + if (copy_en) + { + bool valid = x >= span_setup.start_x && x <= span_setup.end_x; + if (!valid) + return false; + + ivec2 st; + int s_offset; + interpolate_st_copy(span_setup, attr.dstzw_dx, x, perspective, flip, st, s_offset); + + uint tile0 = uint(setup_tile) & 7u; + uint tile_info_index0 = uint(state_indices.elems[primitive_index].tile_infos[tile0]); + TileInfo tile_info0 = load_tile_info(tile_info_index0); +#ifdef RASTERIZER_SPEC_CONSTANT + if ((STATIC_STATE_FLAGS & RASTERIZATION_USE_STATIC_TEXTURE_SIZE_FORMAT_BIT) != 0) + { + tile_info0.fmt = u8(TEX_FMT); + tile_info0.size = u8(TEX_SIZE); + } +#endif + int texel0 = sample_texture_copy(tile_info0, tmem_instance_index, st, s_offset, tlut, tlut_type); + shaded.z_dith = texel0; + shaded.coverage_count = U8_C(COVERAGE_COPY_BIT); + + if (alpha_test && global_constants.fb_info.fb_size == 2 && (texel0 & 1) == 0) + return false; + + return true; + } + else if (fill_en) + { + shaded.coverage_count = U8_C(COVERAGE_FILL_BIT); + return x >= span_setup.start_x && x <= span_setup.end_x; + } + + int coverage = compute_coverage(span_setup.xleft, span_setup.xright, x); + + // There is no way we can gain coverage here. + // Reject work as fast as possible. + if (coverage == 0) + return false; + + int coverage_count = bitCount(coverage); + + // If we're not using AA, only the first coverage bit is relevant. + if (!aa_enable && (coverage & 1) == 0) + return false; + + DerivedSetup derived = load_derived_setup(primitive_index); + + int dx = x - span_setup.interpolation_base_x; + int interpolation_direction = flip ? 1 : -1; + + // Interpolate attributes. + u8x4 shade = interpolate_rgba(span_setup.rgba, attr.drgba_dx, attr.drgba_dy, + dx, coverage); + + ivec2 st, st_dx, st_dy; + int z; + bool perspective_overflow = false; + + int tex_interpolation_direction = interpolation_direction; + if (SCALING_FACTOR > 1 && uses_lod) + if ((setup_flags & TRIANGLE_SETUP_NATIVE_LOD_BIT) != 0) + tex_interpolation_direction *= SCALING_FACTOR; + + interpolate_stz(span_setup.stzw, attr.dstzw_dx, attr.dstzw_dy, dx, coverage, perspective, uses_lod, + tex_interpolation_direction, st, st_dx, st_dy, z, perspective_overflow); + + // Sample textures. + uint tile0 = uint(setup_tile) & 7u; + uint tile1 = (tile0 + 1) & 7u; + uint max_level = uint(setup_tile) >> 3u; + int min_lod = derived.min_lod; + + i16 lod_frac; + if (uses_lod) + { + compute_lod_2cycle(tile0, tile1, lod_frac, max_level, min_lod, st, st_dx, st_dy, perspective_overflow, + tex_lod_en, sharpen_lod_en, detail_lod_en); + } + + i16x4 texel0, texel1; + + if (uses_texel0) + { + uint tile_info_index0 = uint(state_indices.elems[primitive_index].tile_infos[tile0]); + TileInfo tile_info0 = load_tile_info(tile_info_index0); +#ifdef RASTERIZER_SPEC_CONSTANT + if ((STATIC_STATE_FLAGS & RASTERIZATION_USE_STATIC_TEXTURE_SIZE_FORMAT_BIT) != 0) + { + tile_info0.fmt = u8(TEX_FMT); + tile_info0.size = u8(TEX_SIZE); + } +#endif + texel0 = sample_texture(tile_info0, tmem_instance_index, st, tlut, tlut_type, + sample_quad, mid_texel, false, bilerp0, derived.factors, i16x4(0)); + } + + // A very awkward mechanism where we peek into the next pixel, or in some cases, the next scanline's first pixel. + if (uses_pipelined_texel1) + { + bool valid_line = uint(span_setups.elems[SCALING_FACTOR * span_offsets.offset + (y - SCALING_FACTOR * span_offsets.ylo + 1)].valid_line) != 0u; + bool long_span = span_setup.lodlength >= 8; + bool end_span = x == (flip ? span_setup.end_x : span_setup.start_x); + + if (end_span && long_span && valid_line) + { + ivec3 stw = span_setups.elems[SCALING_FACTOR * span_offsets.offset + (y - SCALING_FACTOR * span_offsets.ylo + 1)].stzw.xyw >> 16; + if (perspective) + { + bool st_overflow; + st = perspective_divide(stw, st_overflow); + } + else + st = no_perspective_divide(stw); + } + else + st = interpolate_st_single(span_setup.stzw, attr.dstzw_dx, dx + interpolation_direction * SCALING_FACTOR, perspective); + + tile1 = tile0; + uses_texel1 = true; + } + + if (uses_texel1) + { + if (convert_one && !bilerp1) + { + texel1 = texture_convert_factors(texel0, derived.factors); + } + else + { + uint tile_info_index1 = uint(state_indices.elems[primitive_index].tile_infos[tile1]); + TileInfo tile_info1 = load_tile_info(tile_info_index1); +#ifdef RASTERIZER_SPEC_CONSTANT + if ((STATIC_STATE_FLAGS & RASTERIZATION_USE_STATIC_TEXTURE_SIZE_FORMAT_BIT) != 0) + { + tile_info1.fmt = u8(TEX_FMT); + tile_info1.size = u8(TEX_SIZE); + } +#endif + texel1 = sample_texture(tile_info1, tmem_instance_index, st, tlut, tlut_type, sample_quad, mid_texel, + convert_one, bilerp1, derived.factors, texel0); + } + } + + int rgb_dith, alpha_dith; + dither_coefficients(x, y >> int(interlace_en), static_state_dither >> 2, static_state_dither & 3, rgb_dith, alpha_dith); + + // Run combiner. + u8x4 combined; + u8 alpha_reference; + if (multi_cycle) + { + CombinerInputs combined_inputs = + CombinerInputs(derived.constant_muladd0, derived.constant_mulsub0, derived.constant_mul0, derived.constant_add0, + shade, u8x4(0), texel0, texel1, lod_frac, noise_get_combiner()); + + combined_inputs.combined = combiner_cycle0(combined_inputs, + combiner_inputs_rgb0, + combiner_inputs_alpha0, + alpha_dith, coverage_count, cvg_times_alpha, alpha_cvg_select, + alpha_test, alpha_reference); + + combined_inputs.constant_muladd = derived.constant_muladd1; + combined_inputs.constant_mulsub = derived.constant_mulsub1; + combined_inputs.constant_mul = derived.constant_mul1; + combined_inputs.constant_add = derived.constant_add1; + + // Pipelining, texel1 is promoted to texel0 in cycle1. + // I don't think hardware ever intended for you to access texels in second cycle due to this nature. + i16x4 tmp_texel = combined_inputs.texel0; + combined_inputs.texel0 = combined_inputs.texel1; + // Following the pipelining, texel1 should become texel0 of next pixel, + // but let's not go there ... + combined_inputs.texel1 = tmp_texel; + + // Resample the noise at some arbitrary other offset. + // This only matters if both noise combiner inputs take noise (very weird). + if ((static_state_flags & RASTERIZATION_NEED_NOISE_DUAL_BIT) != 0) + { + reseed_noise(x + 1023, y + 7, primitive_index + global_constants.fb_info.base_primitive_index + 11); + combined_inputs.noise = noise_get_combiner(); + } + + combined = u8x4(combiner_cycle1(combined_inputs, + combiner_inputs_rgb1, + combiner_inputs_alpha1, + alpha_dith, coverage_count, cvg_times_alpha, alpha_cvg_select)); + } + else + { + CombinerInputs combined_inputs = + CombinerInputs(derived.constant_muladd1, derived.constant_mulsub1, derived.constant_mul1, derived.constant_add1, + shade, u8x4(0), texel0, texel1, lod_frac, noise_get_combiner()); + + combined = u8x4(combiner_cycle1(combined_inputs, + combiner_inputs_rgb1, + combiner_inputs_alpha1, + alpha_dith, coverage_count, cvg_times_alpha, alpha_cvg_select)); + + alpha_reference = combined.a; + } + + // After combiner, color can be modified to 0 through alpha-to-cvg, so check for potential write_enable here. + // If we're not using AA, the first coverage bit is used instead, coverage count is ignored. + if (aa_enable && coverage_count == 0) + return false; + + if (alpha_test) + { + u8 alpha_threshold; + if (alpha_test_dither) + alpha_threshold = noise_get_blend_threshold(); + else + alpha_threshold = derived.blend_color.a; + + if (alpha_reference < alpha_threshold) + return false; + } + + shaded.combined = combined; + shaded.z_dith = (z << 9) | rgb_dith; + shaded.coverage_count = u8(coverage_count); + // Shade alpha needs to be passed separately since it might affect the blending stage. + shaded.shade_alpha = u8(min(shade.a + alpha_dith, 0xff)); + return true; +} + +#endif diff --git a/parallel-rdp/shaders/slangmosh.hpp b/parallel-rdp/shaders/slangmosh.hpp new file mode 100644 index 00000000..0b948c00 --- /dev/null +++ b/parallel-rdp/shaders/slangmosh.hpp @@ -0,0 +1,49792 @@ +// Autogenerated from slangmosh, do not edit. +#ifndef SLANGMOSH_GENERATED_RDPiface_H +#define SLANGMOSH_GENERATED_RDPiface_H +#include +namespace Vulkan +{ +class Program; +class Shader; +} + +namespace RDP +{ +template +struct Shaders +{ + Program tmem_update = {}; + Program span_setup = {}; + Program clear_indirect_buffer = {}; + Program tile_binning_combined = {}; + Program ubershader = {}; + Program depth_blend = {}; + Program rasterizer = {}; + Shader fullscreen = {}; + Shader vi_scale = {}; + Shader vi_divot[2] = {}; + Shader vi_fetch[2] = {}; + Shader vi_blend_fields = {}; + Program extract_vram = {}; + Program masked_rdram_resolve = {}; + Program clear_write_mask = {}; + Program update_upscaled_domain_post = {}; + Program update_upscaled_domain_pre = {}; + Program update_upscaled_domain_resolve = {}; + Program clear_super_sampled_write_mask = {}; + Shader vi_deinterlace_vert = {}; + Shader vi_deinterlace_frag = {}; + Shaders() = default; + + template + Shaders(Device &device, Layout &layout, const Resolver &resolver); +}; +} +#endif +// Autogenerated from slangmosh, do not edit. +#ifndef SLANGMOSH_GENERATED_RDPH +#define SLANGMOSH_GENERATED_RDPH +#include +namespace Vulkan +{ +class Program; +class Shader; +} + +namespace RDP +{ +static const uint32_t spirv_bank[] = +{ + 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000a56u, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, + 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, + 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, + 0x0003000eu, 0x00000000u, 0x00000001u, 0x0006000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, + 0x0000042fu, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, 0x00040047u, + 0x000001c7u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000001c8u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x000001c8u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001c8u, 0x00000002u, 0x00040047u, + 0x000001cau, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001cau, 0x00000021u, 0x00000000u, 0x00040047u, + 0x000001d2u, 0x00000006u, 0x00000001u, 0x00040048u, 0x000001d3u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x000001d3u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001d3u, 0x00000002u, 0x00040047u, + 0x000001d5u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001d5u, 0x00000021u, 0x00000000u, 0x00040047u, + 0x00000341u, 0x00000006u, 0x00000002u, 0x00040048u, 0x00000342u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000342u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000342u, 0x00000002u, 0x00040047u, + 0x00000344u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000344u, 0x00000021u, 0x00000000u, 0x00040047u, + 0x00000429u, 0x00000006u, 0x00000002u, 0x00050048u, 0x0000042au, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x0000042au, 0x00000002u, 0x00040047u, 0x0000042cu, 0x00000022u, 0x00000000u, 0x00040047u, + 0x0000042cu, 0x00000021u, 0x00000001u, 0x00040047u, 0x0000042fu, 0x0000000bu, 0x0000001cu, 0x00040047u, + 0x0000043fu, 0x00000006u, 0x00000002u, 0x00050048u, 0x00000440u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00040047u, 0x00000441u, 0x00000006u, 0x00001000u, 0x00040048u, 0x00000442u, 0x00000000u, 0x00000019u, + 0x00050048u, 0x00000442u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000442u, 0x00000002u, + 0x00040047u, 0x00000444u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000444u, 0x00000021u, 0x00000002u, + 0x00050048u, 0x0000044bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000044bu, 0x00000002u, + 0x00050048u, 0x0000045bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x0000045bu, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x0000045bu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, + 0x0000045bu, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x0000045bu, 0x00000004u, 0x00000023u, + 0x00000010u, 0x00050048u, 0x0000045bu, 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, 0x0000045bu, + 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x0000045bu, 0x00000007u, 0x00000023u, 0x0000001cu, + 0x00050048u, 0x0000045bu, 0x00000008u, 0x00000023u, 0x00000020u, 0x00050048u, 0x0000045bu, 0x00000009u, + 0x00000023u, 0x00000024u, 0x00050048u, 0x0000045bu, 0x0000000au, 0x00000023u, 0x00000028u, 0x00050048u, + 0x0000045bu, 0x0000000bu, 0x00000023u, 0x0000002cu, 0x00050048u, 0x0000045bu, 0x0000000cu, 0x00000023u, + 0x00000030u, 0x00050048u, 0x0000045bu, 0x0000000du, 0x00000023u, 0x00000034u, 0x00050048u, 0x0000045bu, + 0x0000000eu, 0x00000023u, 0x00000038u, 0x00050048u, 0x0000045bu, 0x0000000fu, 0x00000023u, 0x0000003cu, + 0x00040047u, 0x0000045du, 0x00000006u, 0x00000040u, 0x00050048u, 0x0000045eu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000045eu, 0x00000002u, 0x00040047u, 0x00000460u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000460u, 0x00000021u, 0x00000000u, 0x00040047u, 0x000004beu, 0x00000001u, 0x00000000u, + 0x00040047u, 0x000004bfu, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, + 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, 0x00030016u, 0x00000008u, 0x00000020u, + 0x00020014u, 0x00000011u, 0x0004002bu, 0x00000008u, 0x00000025u, 0x3f000000u, 0x0004002bu, 0x00000006u, + 0x0000002du, 0x00000008u, 0x0004002bu, 0x00000006u, 0x00000030u, 0x000007ffu, 0x0004002bu, 0x00000006u, + 0x00000032u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x0000003cu, 0x000003ffu, 0x0004002bu, 0x00000006u, + 0x0000003fu, 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000040u, 0x0000000cu, 0x0004002bu, 0x00000006u, + 0x00000043u, 0x00000002u, 0x0004002bu, 0x00000006u, 0x00000051u, 0xfffffffeu, 0x0004002bu, 0x00000006u, + 0x0000005cu, 0x00000010u, 0x0004002bu, 0x00000006u, 0x00000098u, 0x00000003u, 0x0003002au, 0x00000011u, + 0x000000bbu, 0x00030029u, 0x00000011u, 0x000000ecu, 0x0004002bu, 0x00000006u, 0x00000153u, 0x00000006u, + 0x0004002bu, 0x00000006u, 0x0000015cu, 0x00000004u, 0x00040015u, 0x000001c4u, 0x00000020u, 0x00000000u, + 0x0003001du, 0x000001c7u, 0x000001c4u, 0x0003001eu, 0x000001c8u, 0x000001c7u, 0x00040020u, 0x000001c9u, + 0x0000000cu, 0x000001c8u, 0x0004003bu, 0x000001c9u, 0x000001cau, 0x0000000cu, 0x00040020u, 0x000001cdu, + 0x0000000cu, 0x000001c4u, 0x00040015u, 0x000001d1u, 0x00000008u, 0x00000000u, 0x0003001du, 0x000001d2u, + 0x000001d1u, 0x0003001eu, 0x000001d3u, 0x000001d2u, 0x00040020u, 0x000001d4u, 0x0000000cu, 0x000001d3u, + 0x0004003bu, 0x000001d4u, 0x000001d5u, 0x0000000cu, 0x00040020u, 0x000001d8u, 0x0000000cu, 0x000001d1u, + 0x0004002bu, 0x00000006u, 0x000001dcu, 0x00000018u, 0x0004002bu, 0x000001c4u, 0x000001fdu, 0x00000010u, + 0x0004002bu, 0x000001c4u, 0x000001ffu, 0x000000ffu, 0x0004002bu, 0x000001c4u, 0x00000203u, 0x00000000u, + 0x0004002bu, 0x000001c4u, 0x00000207u, 0x00000008u, 0x0004002bu, 0x000001c4u, 0x0000020eu, 0x00000018u, + 0x0004002bu, 0x000001c4u, 0x0000021bu, 0x00000001u, 0x0004002bu, 0x000001c4u, 0x00000221u, 0x0000ffffu, + 0x0004002bu, 0x00000006u, 0x0000022cu, 0x00000fffu, 0x0004002bu, 0x00000006u, 0x000002e0u, 0xfffffffcu, + 0x00040015u, 0x00000340u, 0x00000010u, 0x00000000u, 0x0003001du, 0x00000341u, 0x00000340u, 0x0003001eu, + 0x00000342u, 0x00000341u, 0x00040020u, 0x00000343u, 0x0000000cu, 0x00000342u, 0x0004003bu, 0x00000343u, + 0x00000344u, 0x0000000cu, 0x00040020u, 0x00000348u, 0x0000000cu, 0x00000340u, 0x0004002bu, 0x00000006u, + 0x00000393u, 0xfffffff8u, 0x0004002bu, 0x00000006u, 0x000003c8u, 0xffffffffu, 0x0004002bu, 0x00000006u, + 0x000003cdu, 0x0000001cu, 0x0004002bu, 0x000001c4u, 0x00000428u, 0x00000800u, 0x0004001cu, 0x00000429u, + 0x00000340u, 0x00000428u, 0x0003001eu, 0x0000042au, 0x00000429u, 0x00040020u, 0x0000042bu, 0x0000000cu, + 0x0000042au, 0x0004003bu, 0x0000042bu, 0x0000042cu, 0x0000000cu, 0x00040017u, 0x0000042du, 0x000001c4u, + 0x00000003u, 0x00040020u, 0x0000042eu, 0x00000001u, 0x0000042du, 0x0004003bu, 0x0000042eu, 0x0000042fu, + 0x00000001u, 0x00040020u, 0x00000430u, 0x00000001u, 0x000001c4u, 0x0004002bu, 0x00000006u, 0x0000043du, + 0x00000400u, 0x0004001cu, 0x0000043fu, 0x00000340u, 0x00000428u, 0x0003001eu, 0x00000440u, 0x0000043fu, + 0x0003001du, 0x00000441u, 0x00000440u, 0x0003001eu, 0x00000442u, 0x00000441u, 0x00040020u, 0x00000443u, + 0x0000000cu, 0x00000442u, 0x0004003bu, 0x00000443u, 0x00000444u, 0x0000000cu, 0x0003001eu, 0x0000044bu, + 0x00000006u, 0x00040020u, 0x0000044cu, 0x00000009u, 0x0000044bu, 0x0004003bu, 0x0000044cu, 0x0000044du, + 0x00000009u, 0x00040020u, 0x0000044eu, 0x00000009u, 0x00000006u, 0x0012001eu, 0x0000045bu, 0x00000006u, + 0x00000006u, 0x00000008u, 0x00000008u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000008u, 0x00000006u, 0x00000006u, 0x0004002bu, + 0x000001c4u, 0x0000045cu, 0x00000100u, 0x0004001cu, 0x0000045du, 0x0000045bu, 0x0000045cu, 0x0003001eu, + 0x0000045eu, 0x0000045du, 0x00040020u, 0x0000045fu, 0x00000002u, 0x0000045eu, 0x0004003bu, 0x0000045fu, + 0x00000460u, 0x00000002u, 0x00040020u, 0x00000462u, 0x00000002u, 0x0000045bu, 0x00040032u, 0x000001c4u, + 0x000004beu, 0x00000001u, 0x00060033u, 0x0000042du, 0x000004bfu, 0x000004beu, 0x0000021bu, 0x0000021bu, + 0x00030001u, 0x00000006u, 0x00000968u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, + 0x000200f8u, 0x00000005u, 0x00050041u, 0x00000430u, 0x00000431u, 0x0000042fu, 0x00000203u, 0x0004003du, + 0x000001c4u, 0x00000432u, 0x00000431u, 0x00060041u, 0x00000348u, 0x00000433u, 0x0000042cu, 0x0000003fu, + 0x00000432u, 0x0004003du, 0x00000340u, 0x00000434u, 0x00000433u, 0x00040071u, 0x000001c4u, 0x00000435u, + 0x00000434u, 0x0004007cu, 0x00000006u, 0x00000439u, 0x00000432u, 0x000500c6u, 0x00000006u, 0x0000043au, + 0x00000439u, 0x00000032u, 0x000500afu, 0x00000011u, 0x0000043eu, 0x0000043au, 0x0000043du, 0x00040071u, + 0x00000340u, 0x00000448u, 0x00000435u, 0x00080041u, 0x00000348u, 0x00000449u, 0x00000444u, 0x0000003fu, + 0x0000003fu, 0x0000003fu, 0x00000432u, 0x0003003eu, 0x00000449u, 0x00000448u, 0x00050041u, 0x0000044eu, + 0x0000044fu, 0x0000044du, 0x0000003fu, 0x0004003du, 0x00000006u, 0x00000450u, 0x0000044fu, 0x000200f9u, + 0x00000452u, 0x000200f8u, 0x00000452u, 0x000700f5u, 0x00000006u, 0x0000099du, 0x00000968u, 0x00000005u, + 0x00000a37u, 0x00000455u, 0x000700f5u, 0x00000006u, 0x00000967u, 0x00000968u, 0x00000005u, 0x00000a19u, + 0x00000455u, 0x000700f5u, 0x000001c4u, 0x0000093cu, 0x00000435u, 0x00000005u, 0x000009d5u, 0x00000455u, + 0x000700f5u, 0x00000011u, 0x0000093bu, 0x000000bbu, 0x00000005u, 0x000009f6u, 0x00000455u, 0x000700f5u, + 0x00000006u, 0x0000093au, 0x0000003fu, 0x00000005u, 0x000004aeu, 0x00000455u, 0x000500b1u, 0x00000011u, + 0x00000459u, 0x0000093au, 0x00000450u, 0x000400f6u, 0x00000454u, 0x00000455u, 0x00000000u, 0x000400fau, + 0x00000459u, 0x00000453u, 0x00000454u, 0x000200f8u, 0x00000453u, 0x00060041u, 0x00000462u, 0x00000463u, + 0x00000460u, 0x0000003fu, 0x0000093au, 0x0004003du, 0x0000045bu, 0x00000464u, 0x00000463u, 0x00050051u, + 0x00000006u, 0x00000465u, 0x00000464u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000467u, 0x00000464u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00000469u, 0x00000464u, 0x00000002u, 0x00050051u, 0x00000008u, + 0x0000046bu, 0x00000464u, 0x00000003u, 0x00050051u, 0x00000006u, 0x0000046du, 0x00000464u, 0x00000004u, + 0x00050051u, 0x00000006u, 0x0000046fu, 0x00000464u, 0x00000005u, 0x00050051u, 0x00000006u, 0x00000471u, + 0x00000464u, 0x00000006u, 0x00050051u, 0x00000006u, 0x00000473u, 0x00000464u, 0x00000007u, 0x00050051u, + 0x00000006u, 0x00000475u, 0x00000464u, 0x00000008u, 0x00050051u, 0x00000006u, 0x00000477u, 0x00000464u, + 0x00000009u, 0x00050051u, 0x00000006u, 0x00000479u, 0x00000464u, 0x0000000au, 0x00050051u, 0x00000006u, + 0x0000047bu, 0x00000464u, 0x0000000bu, 0x00050051u, 0x00000006u, 0x0000047eu, 0x00000464u, 0x0000000cu, + 0x00050051u, 0x00000008u, 0x00000480u, 0x00000464u, 0x0000000du, 0x00050051u, 0x00000006u, 0x00000482u, + 0x00000464u, 0x0000000eu, 0x000500aau, 0x00000011u, 0x00000489u, 0x0000047eu, 0x00000032u, 0x000300f7u, + 0x0000048bu, 0x00000000u, 0x000400fau, 0x00000489u, 0x0000048au, 0x00000491u, 0x000200f8u, 0x0000048au, + 0x000300f7u, 0x0000058eu, 0x00000000u, 0x000300fbu, 0x00000203u, 0x000004d5u, 0x000200f8u, 0x000004d5u, + 0x000500c7u, 0x00000006u, 0x000004d8u, 0x00000475u, 0x0000022cu, 0x000500c3u, 0x00000006u, 0x000004d9u, + 0x000004d8u, 0x00000032u, 0x00050082u, 0x00000006u, 0x000004dcu, 0x0000043au, 0x000004d9u, 0x000500c7u, + 0x00000006u, 0x000004ddu, 0x000004dcu, 0x00000030u, 0x00050082u, 0x00000006u, 0x000004e2u, 0x00000471u, + 0x00000479u, 0x000500aau, 0x00000011u, 0x000004e3u, 0x000004e2u, 0x00000043u, 0x000300f7u, 0x00000563u, + 0x00000000u, 0x000400fau, 0x000004e3u, 0x000004e4u, 0x000004f2u, 0x000200f8u, 0x000004e4u, 0x000500c3u, + 0x00000006u, 0x000004e6u, 0x000004ddu, 0x00000043u, 0x00050082u, 0x00000006u, 0x000004e9u, 0x00000471u, + 0x00000043u, 0x000500c4u, 0x00000006u, 0x000004ebu, 0x000004e6u, 0x000004e9u, 0x000500afu, 0x00000011u, + 0x000004efu, 0x000004ebu, 0x00000473u, 0x000300f7u, 0x000004f1u, 0x00000000u, 0x000400fau, 0x000004efu, + 0x000004f0u, 0x000004f1u, 0x000200f8u, 0x000004f0u, 0x000200f9u, 0x0000058eu, 0x000200f8u, 0x000004f1u, + 0x000200f9u, 0x00000563u, 0x000200f8u, 0x000004f2u, 0x000500aau, 0x00000011u, 0x000004f8u, 0x000004e2u, + 0x00000032u, 0x000300f7u, 0x00000562u, 0x00000000u, 0x000400fau, 0x000004f8u, 0x000004f9u, 0x00000511u, + 0x000200f8u, 0x000004f9u, 0x000500c7u, 0x00000006u, 0x000004fbu, 0x000004ddu, 0x0000015cu, 0x000500aau, + 0x00000011u, 0x000004fcu, 0x000004fbu, 0x0000003fu, 0x000300f7u, 0x00000510u, 0x00000000u, 0x000400fau, + 0x000004fcu, 0x000004fdu, 0x0000050fu, 0x000200f8u, 0x000004fdu, 0x000500aau, 0x00000011u, 0x00000502u, + 0x00000471u, 0x00000043u, 0x000600a9u, 0x00000006u, 0x00000503u, 0x00000502u, 0x00000043u, 0x0000003fu, + 0x00050080u, 0x00000006u, 0x00000504u, 0x00000479u, 0x00000503u, 0x000500c7u, 0x00000006u, 0x00000506u, + 0x000004ddu, 0x00000393u, 0x000500c3u, 0x00000006u, 0x00000508u, 0x00000506u, 0x00000504u, 0x000500afu, + 0x00000011u, 0x0000050cu, 0x00000508u, 0x00000473u, 0x000300f7u, 0x0000050eu, 0x00000000u, 0x000400fau, + 0x0000050cu, 0x0000050du, 0x0000050eu, 0x000200f8u, 0x0000050du, 0x000200f9u, 0x0000058eu, 0x000200f8u, + 0x0000050eu, 0x000200f9u, 0x00000510u, 0x000200f8u, 0x0000050fu, 0x000200f9u, 0x0000058eu, 0x000200f8u, + 0x00000510u, 0x000200f9u, 0x00000562u, 0x000200f8u, 0x00000511u, 0x000500aau, 0x00000011u, 0x00000516u, + 0x00000471u, 0x00000479u, 0x000300f7u, 0x00000561u, 0x00000000u, 0x000400fau, 0x00000516u, 0x00000517u, + 0x0000052fu, 0x000200f8u, 0x00000517u, 0x000500c7u, 0x00000006u, 0x00000519u, 0x000004ddu, 0x00000040u, + 0x000500aau, 0x00000011u, 0x0000051au, 0x00000519u, 0x0000003fu, 0x000300f7u, 0x0000052eu, 0x00000000u, + 0x000400fau, 0x0000051au, 0x0000051bu, 0x0000052du, 0x000200f8u, 0x0000051bu, 0x000500aau, 0x00000011u, + 0x00000520u, 0x00000471u, 0x00000043u, 0x000600a9u, 0x00000006u, 0x00000521u, 0x00000520u, 0x00000043u, + 0x0000003fu, 0x00050080u, 0x00000006u, 0x00000522u, 0x00000479u, 0x00000521u, 0x000500c7u, 0x00000006u, + 0x00000524u, 0x000004ddu, 0x000002e0u, 0x000500c3u, 0x00000006u, 0x00000526u, 0x00000524u, 0x00000522u, + 0x000500afu, 0x00000011u, 0x0000052au, 0x00000526u, 0x00000473u, 0x000300f7u, 0x0000052cu, 0x00000000u, + 0x000400fau, 0x0000052au, 0x0000052bu, 0x0000052cu, 0x000200f8u, 0x0000052bu, 0x000200f9u, 0x0000058eu, + 0x000200f8u, 0x0000052cu, 0x000200f9u, 0x0000052eu, 0x000200f8u, 0x0000052du, 0x000200f9u, 0x0000058eu, + 0x000200f8u, 0x0000052eu, 0x000200f9u, 0x00000561u, 0x000200f8u, 0x0000052fu, 0x000500aau, 0x00000011u, + 0x00000535u, 0x000004e2u, 0x000003c8u, 0x000300f7u, 0x00000560u, 0x00000000u, 0x000400fau, 0x00000535u, + 0x00000536u, 0x00000549u, 0x000200f8u, 0x00000536u, 0x000500c7u, 0x00000006u, 0x00000538u, 0x000004ddu, + 0x000003cdu, 0x000500aau, 0x00000011u, 0x00000539u, 0x00000538u, 0x0000003fu, 0x000300f7u, 0x00000548u, + 0x00000000u, 0x000400fau, 0x00000539u, 0x0000053au, 0x00000547u, 0x000200f8u, 0x0000053au, 0x000500c3u, + 0x00000006u, 0x0000053fu, 0x000004ddu, 0x00000479u, 0x000500c7u, 0x00000006u, 0x00000540u, 0x0000053fu, + 0x00000393u, 0x000500afu, 0x00000011u, 0x00000544u, 0x00000540u, 0x00000473u, 0x000300f7u, 0x00000546u, + 0x00000000u, 0x000400fau, 0x00000544u, 0x00000545u, 0x00000546u, 0x000200f8u, 0x00000545u, 0x000200f9u, + 0x0000058eu, 0x000200f8u, 0x00000546u, 0x000200f9u, 0x00000548u, 0x000200f8u, 0x00000547u, 0x000200f9u, + 0x0000058eu, 0x000200f8u, 0x00000548u, 0x000200f9u, 0x00000560u, 0x000200f8u, 0x00000549u, 0x000500c3u, + 0x00000006u, 0x0000054bu, 0x000004ddu, 0x00000043u, 0x00050084u, 0x00000006u, 0x0000054fu, 0x0000054bu, + 0x0000015cu, 0x00050080u, 0x00000006u, 0x00000551u, 0x0000054fu, 0x00000043u, 0x000500b1u, 0x00000011u, + 0x00000554u, 0x00000551u, 0x00000473u, 0x000600a9u, 0x00000006u, 0x00000a54u, 0x00000554u, 0x00000551u, + 0x0000054fu, 0x000500afu, 0x00000011u, 0x0000055cu, 0x00000a54u, 0x00000473u, 0x000300f7u, 0x0000055eu, + 0x00000000u, 0x000400fau, 0x0000055cu, 0x0000055du, 0x0000055eu, 0x000200f8u, 0x0000055du, 0x000200f9u, + 0x0000058eu, 0x000200f8u, 0x0000055eu, 0x000200f9u, 0x00000560u, 0x000200f8u, 0x00000560u, 0x000700f5u, + 0x00000006u, 0x000009a9u, 0x00000540u, 0x00000548u, 0x00000a54u, 0x0000055eu, 0x000200f9u, 0x00000561u, + 0x000200f8u, 0x00000561u, 0x000700f5u, 0x00000006u, 0x000009a8u, 0x00000526u, 0x0000052eu, 0x000009a9u, + 0x00000560u, 0x000200f9u, 0x00000562u, 0x000200f8u, 0x00000562u, 0x000700f5u, 0x00000006u, 0x000009a7u, + 0x00000508u, 0x00000510u, 0x000009a8u, 0x00000561u, 0x000200f9u, 0x00000563u, 0x000200f8u, 0x00000563u, + 0x000700f5u, 0x00000006u, 0x000009a6u, 0x000004ebu, 0x000004f1u, 0x000009a7u, 0x00000562u, 0x00050082u, + 0x00000006u, 0x00000569u, 0x00000471u, 0x00000032u, 0x000500c4u, 0x00000006u, 0x0000056au, 0x000009a6u, + 0x00000569u, 0x00050080u, 0x00000006u, 0x0000056bu, 0x0000046du, 0x0000056au, 0x000500c7u, 0x00000006u, + 0x0000056du, 0x0000056bu, 0x00000032u, 0x00050084u, 0x00000006u, 0x0000056eu, 0x00000043u, 0x0000056du, + 0x000500c7u, 0x00000006u, 0x00000570u, 0x000004ddu, 0x00000098u, 0x00050084u, 0x00000006u, 0x00000571u, + 0x0000056eu, 0x00000570u, 0x00050080u, 0x00000006u, 0x00000573u, 0x0000056bu, 0x00000571u, 0x000500c7u, + 0x00000006u, 0x00000575u, 0x00000573u, 0x00000032u, 0x000500aau, 0x00000011u, 0x00000576u, 0x00000575u, + 0x0000003fu, 0x000300f7u, 0x0000058cu, 0x00000000u, 0x000400fau, 0x00000576u, 0x00000577u, 0x0000057eu, + 0x000200f8u, 0x00000577u, 0x000500c3u, 0x00000006u, 0x00000579u, 0x00000573u, 0x00000032u, 0x000500c6u, + 0x00000006u, 0x0000057au, 0x00000579u, 0x00000032u, 0x00060041u, 0x00000348u, 0x0000057bu, 0x00000344u, + 0x0000003fu, 0x0000057au, 0x0004003du, 0x00000340u, 0x0000057cu, 0x0000057bu, 0x00040071u, 0x000001c4u, + 0x0000057du, 0x0000057cu, 0x000200f9u, 0x0000058cu, 0x000200f8u, 0x0000057eu, 0x000500c6u, 0x00000006u, + 0x00000580u, 0x00000573u, 0x00000098u, 0x00060041u, 0x000001d8u, 0x00000581u, 0x000001d5u, 0x0000003fu, + 0x00000580u, 0x0004003du, 0x000001d1u, 0x00000582u, 0x00000581u, 0x00040071u, 0x000001c4u, 0x00000583u, + 0x00000582u, 0x000500c4u, 0x000001c4u, 0x00000584u, 0x00000583u, 0x0000002du, 0x00050080u, 0x00000006u, + 0x00000586u, 0x00000573u, 0x00000032u, 0x000500c6u, 0x00000006u, 0x00000587u, 0x00000586u, 0x00000098u, + 0x00060041u, 0x000001d8u, 0x00000588u, 0x000001d5u, 0x0000003fu, 0x00000587u, 0x0004003du, 0x000001d1u, + 0x00000589u, 0x00000588u, 0x00040071u, 0x000001c4u, 0x0000058au, 0x00000589u, 0x000500c5u, 0x000001c4u, + 0x0000058bu, 0x00000584u, 0x0000058au, 0x000200f9u, 0x0000058cu, 0x000200f8u, 0x0000058cu, 0x000700f5u, + 0x000001c4u, 0x000009aau, 0x0000057du, 0x00000577u, 0x0000058bu, 0x0000057eu, 0x000200f9u, 0x0000058eu, + 0x000200f8u, 0x0000058eu, 0x001500f5u, 0x00000011u, 0x000009f7u, 0x0000093bu, 0x000004f0u, 0x0000093bu, + 0x0000050du, 0x0000093bu, 0x0000050fu, 0x0000093bu, 0x0000052bu, 0x0000093bu, 0x0000052du, 0x0000093bu, + 0x00000545u, 0x0000093bu, 0x00000547u, 0x0000093bu, 0x0000055du, 0x000000ecu, 0x0000058cu, 0x001500f5u, + 0x000001c4u, 0x000009d6u, 0x0000093cu, 0x000004f0u, 0x0000093cu, 0x0000050du, 0x0000093cu, 0x0000050fu, + 0x0000093cu, 0x0000052bu, 0x0000093cu, 0x0000052du, 0x0000093cu, 0x00000545u, 0x0000093cu, 0x00000547u, + 0x0000093cu, 0x0000055du, 0x000009aau, 0x0000058cu, 0x000200f9u, 0x0000048bu, 0x000200f8u, 0x00000491u, + 0x000500aau, 0x00000011u, 0x00000495u, 0x0000047bu, 0x00000032u, 0x000500aau, 0x00000011u, 0x00000498u, + 0x00000479u, 0x00000098u, 0x000500a6u, 0x00000011u, 0x0000049au, 0x00000498u, 0x00000495u, 0x000300f7u, + 0x0000049cu, 0x00000000u, 0x000400fau, 0x0000049au, 0x0000049bu, 0x000004a7u, 0x000200f8u, 0x0000049bu, + 0x000500c7u, 0x00000006u, 0x0000049eu, 0x0000043au, 0x0000003cu, 0x000300f7u, 0x0000075du, 0x00000000u, + 0x000300fbu, 0x00000203u, 0x000005b8u, 0x000200f8u, 0x000005b8u, 0x000500c7u, 0x00000006u, 0x000005bbu, + 0x00000475u, 0x00000030u, 0x000500c3u, 0x00000006u, 0x000005bcu, 0x000005bbu, 0x00000032u, 0x00050082u, + 0x00000006u, 0x000005c1u, 0x0000049eu, 0x000005bcu, 0x000500c7u, 0x00000006u, 0x000005c2u, 0x000005c1u, + 0x0000003cu, 0x000500aau, 0x00000011u, 0x000005c5u, 0x0000047eu, 0x00000043u, 0x000300f7u, 0x00000694u, + 0x00000000u, 0x000400fau, 0x000005c5u, 0x000005c6u, 0x0000066fu, 0x000200f8u, 0x000005c6u, 0x000500c3u, + 0x00000006u, 0x000005c8u, 0x000005c2u, 0x00000032u, 0x000500aau, 0x00000011u, 0x000005cbu, 0x00000477u, + 0x0000003fu, 0x000300f7u, 0x0000066du, 0x00000000u, 0x000400fau, 0x000005cbu, 0x000005ccu, 0x00000600u, + 0x000200f8u, 0x000005ccu, 0x000500c7u, 0x00000006u, 0x000005ceu, 0x000005c8u, 0x00000051u, 0x00050080u, + 0x00000006u, 0x000005d0u, 0x000005ceu, 0x00000032u, 0x00050084u, 0x00000006u, 0x000005d4u, 0x000005ceu, + 0x00000482u, 0x000500c3u, 0x00000006u, 0x000005d5u, 0x000005d4u, 0x0000005cu, 0x00050084u, 0x00000006u, + 0x000005d9u, 0x000005d0u, 0x00000482u, 0x000500c3u, 0x00000006u, 0x000005dau, 0x000005d9u, 0x0000005cu, + 0x000500abu, 0x00000011u, 0x000005ddu, 0x000005d5u, 0x000005dau, 0x000300f7u, 0x000005ffu, 0x00000000u, + 0x000400fau, 0x000005ddu, 0x000005deu, 0x000005f9u, 0x000200f8u, 0x000005deu, 0x000500c7u, 0x00000006u, + 0x000005e1u, 0x000005d5u, 0x00000032u, 0x000500c6u, 0x00000006u, 0x000005e2u, 0x000005ceu, 0x000005e1u, + 0x000500c7u, 0x00000006u, 0x000005e5u, 0x000005dau, 0x00000032u, 0x000500c6u, 0x00000006u, 0x000005e6u, + 0x000005d0u, 0x000005e5u, 0x000500aau, 0x00000011u, 0x000005e9u, 0x000005e6u, 0x000005c8u, 0x000300f7u, + 0x000005f8u, 0x00000000u, 0x000400fau, 0x000005e9u, 0x000005eau, 0x000005eeu, 0x000200f8u, 0x000005eau, + 0x000500c4u, 0x00000006u, 0x000005edu, 0x000005e5u, 0x00000032u, 0x000200f9u, 0x000005f8u, 0x000200f8u, + 0x000005eeu, 0x000500aau, 0x00000011u, 0x000005f1u, 0x000005e2u, 0x000005c8u, 0x000300f7u, 0x000005f2u, + 0x00000000u, 0x000400fau, 0x000005f1u, 0x000005f2u, 0x000005f6u, 0x000200f8u, 0x000005f2u, 0x000500c4u, + 0x00000006u, 0x000005f5u, 0x000005e1u, 0x00000032u, 0x000200f9u, 0x000005f8u, 0x000200f8u, 0x000005f6u, + 0x000200f9u, 0x0000075du, 0x000200f8u, 0x000005f8u, 0x000700f5u, 0x00000006u, 0x00000981u, 0x000005edu, + 0x000005eau, 0x000005f5u, 0x000005f2u, 0x000200f9u, 0x000005ffu, 0x000200f8u, 0x000005f9u, 0x000500c7u, + 0x00000006u, 0x000005fbu, 0x000005d5u, 0x00000032u, 0x000500c4u, 0x00000006u, 0x000005fcu, 0x000005fbu, + 0x00000032u, 0x000500c6u, 0x00000006u, 0x000005feu, 0x0000003fu, 0x000005fcu, 0x000200f9u, 0x000005ffu, + 0x000200f8u, 0x000005ffu, 0x000700f5u, 0x00000006u, 0x00000980u, 0x00000981u, 0x000005f8u, 0x000005feu, + 0x000005f9u, 0x000200f9u, 0x0000066du, 0x000200f8u, 0x00000600u, 0x000500c7u, 0x00000006u, 0x00000602u, + 0x000005c8u, 0x00000051u, 0x0004006fu, 0x00000008u, 0x00000761u, 0x00000602u, 0x00050081u, 0x00000008u, + 0x00000762u, 0x00000761u, 0x00000025u, 0x00050085u, 0x00000008u, 0x00000764u, 0x00000762u, 0x00000469u, + 0x0004006eu, 0x00000006u, 0x00000765u, 0x00000764u, 0x000500c5u, 0x00000006u, 0x00000607u, 0x000005c8u, + 0x00000032u, 0x0004006fu, 0x00000008u, 0x00000769u, 0x00000607u, 0x00050081u, 0x00000008u, 0x0000076au, + 0x00000769u, 0x00000025u, 0x00050085u, 0x00000008u, 0x0000076cu, 0x0000076au, 0x0000046bu, 0x0004006eu, + 0x00000006u, 0x0000076du, 0x0000076cu, 0x00050084u, 0x00000006u, 0x0000060fu, 0x00000477u, 0x00000765u, + 0x00050082u, 0x00000006u, 0x00000610u, 0x00000607u, 0x0000060fu, 0x00050084u, 0x00000006u, 0x00000615u, + 0x00000477u, 0x0000076du, 0x00050082u, 0x00000006u, 0x00000616u, 0x00000602u, 0x00000615u, 0x00050084u, + 0x00000006u, 0x0000061bu, 0x00000616u, 0x00000482u, 0x000500c3u, 0x00000006u, 0x0000061cu, 0x0000061bu, + 0x0000005cu, 0x0007000cu, 0x00000006u, 0x0000061du, 0x00000001u, 0x0000002au, 0x00000765u, 0x0000061cu, + 0x00050084u, 0x00000006u, 0x00000622u, 0x00000610u, 0x00000482u, 0x000500c3u, 0x00000006u, 0x00000623u, + 0x00000622u, 0x0000005cu, 0x0007000cu, 0x00000006u, 0x00000624u, 0x00000001u, 0x00000027u, 0x0000076du, + 0x00000623u, 0x000200f9u, 0x00000626u, 0x000200f8u, 0x00000626u, 0x000700f5u, 0x00000006u, 0x0000096eu, + 0x00000624u, 0x00000600u, 0x00000667u, 0x00000665u, 0x000500afu, 0x00000011u, 0x0000062au, 0x0000096eu, + 0x0000061du, 0x000400f6u, 0x00000668u, 0x00000665u, 0x00000000u, 0x000400fau, 0x0000062au, 0x0000062bu, + 0x00000668u, 0x000200f8u, 0x0000062bu, 0x00050084u, 0x00000006u, 0x00000630u, 0x00000477u, 0x0000096eu, + 0x00050082u, 0x00000006u, 0x00000631u, 0x00000602u, 0x00000630u, 0x00050082u, 0x00000006u, 0x00000637u, + 0x00000607u, 0x00000630u, 0x00050084u, 0x00000006u, 0x0000063bu, 0x00000631u, 0x00000482u, 0x000500c3u, + 0x00000006u, 0x0000063cu, 0x0000063bu, 0x0000005cu, 0x00050084u, 0x00000006u, 0x00000640u, 0x00000637u, + 0x00000482u, 0x000500c3u, 0x00000006u, 0x00000641u, 0x00000640u, 0x0000005cu, 0x00050084u, 0x00000006u, + 0x00000645u, 0x00000641u, 0x00000477u, 0x00050080u, 0x00000006u, 0x00000646u, 0x00000637u, 0x00000645u, + 0x000500c7u, 0x00000006u, 0x00000648u, 0x00000641u, 0x00000032u, 0x000500c6u, 0x00000006u, 0x00000649u, + 0x00000646u, 0x00000648u, 0x000500aau, 0x00000011u, 0x0000064bu, 0x00000649u, 0x000005c8u, 0x000300f7u, + 0x00000664u, 0x00000000u, 0x000400fau, 0x0000064bu, 0x0000064cu, 0x00000652u, 0x000200f8u, 0x0000064cu, + 0x000500c4u, 0x00000006u, 0x0000064eu, 0x00000637u, 0x00000032u, 0x000500c7u, 0x00000006u, 0x00000650u, + 0x000005c2u, 0x00000032u, 0x00050080u, 0x00000006u, 0x00000651u, 0x0000064eu, 0x00000650u, 0x000200f9u, + 0x00000668u, 0x000200f8u, 0x00000652u, 0x00050084u, 0x00000006u, 0x00000656u, 0x0000063cu, 0x00000477u, + 0x00050080u, 0x00000006u, 0x00000657u, 0x00000631u, 0x00000656u, 0x000500c7u, 0x00000006u, 0x00000659u, + 0x0000063cu, 0x00000032u, 0x000500c6u, 0x00000006u, 0x0000065au, 0x00000657u, 0x00000659u, 0x000500aau, + 0x00000011u, 0x0000065cu, 0x0000065au, 0x000005c8u, 0x000300f7u, 0x00000663u, 0x00000000u, 0x000400fau, + 0x0000065cu, 0x0000065du, 0x00000663u, 0x000200f8u, 0x0000065du, 0x000500c4u, 0x00000006u, 0x0000065fu, + 0x00000631u, 0x00000032u, 0x000500c7u, 0x00000006u, 0x00000661u, 0x000005c2u, 0x00000032u, 0x00050080u, + 0x00000006u, 0x00000662u, 0x0000065fu, 0x00000661u, 0x000200f9u, 0x00000668u, 0x000200f8u, 0x00000663u, + 0x000200f9u, 0x00000664u, 0x000200f8u, 0x00000664u, 0x000200f9u, 0x00000665u, 0x000200f8u, 0x00000665u, + 0x00050082u, 0x00000006u, 0x00000667u, 0x0000096eu, 0x00000032u, 0x000200f9u, 0x00000626u, 0x000200f8u, + 0x00000668u, 0x000900f5u, 0x00000006u, 0x00000975u, 0x000005c2u, 0x00000626u, 0x00000651u, 0x0000064cu, + 0x00000662u, 0x0000065du, 0x000900f5u, 0x00000011u, 0x00000970u, 0x000000bbu, 0x00000626u, 0x000000ecu, + 0x0000064cu, 0x000000ecu, 0x0000065du, 0x000400a8u, 0x00000011u, 0x0000066au, 0x00000970u, 0x000300f7u, + 0x0000066cu, 0x00000000u, 0x000400fau, 0x0000066au, 0x0000066bu, 0x0000066cu, 0x000200f8u, 0x0000066bu, + 0x000200f9u, 0x0000075du, 0x000200f8u, 0x0000066cu, 0x000200f9u, 0x0000066du, 0x000200f8u, 0x0000066du, + 0x000700f5u, 0x00000006u, 0x0000097fu, 0x00000980u, 0x000005ffu, 0x0000003fu, 0x0000066cu, 0x000700f5u, + 0x00000006u, 0x00000972u, 0x000005c2u, 0x000005ffu, 0x00000975u, 0x0000066cu, 0x000200f9u, 0x00000694u, + 0x000200f8u, 0x0000066fu, 0x000500aau, 0x00000011u, 0x00000671u, 0x00000477u, 0x0000003fu, 0x000300f7u, + 0x00000693u, 0x00000000u, 0x000400fau, 0x00000671u, 0x00000672u, 0x00000677u, 0x000200f8u, 0x00000672u, + 0x00050082u, 0x00000006u, 0x00000676u, 0x00000467u, 0x00000032u, 0x000200f9u, 0x00000693u, 0x000200f8u, + 0x00000677u, 0x0004006fu, 0x00000008u, 0x00000771u, 0x000005c2u, 0x00050081u, 0x00000008u, 0x00000772u, + 0x00000771u, 0x00000025u, 0x00050085u, 0x00000008u, 0x00000774u, 0x00000772u, 0x00000480u, 0x0004006eu, + 0x00000006u, 0x00000775u, 0x00000774u, 0x00050084u, 0x00000006u, 0x0000067fu, 0x00000775u, 0x00000477u, + 0x00050082u, 0x00000006u, 0x00000680u, 0x000005c2u, 0x0000067fu, 0x000500afu, 0x00000011u, 0x00000684u, + 0x00000775u, 0x00000467u, 0x000300f7u, 0x00000692u, 0x00000000u, 0x000400fau, 0x00000684u, 0x00000685u, + 0x00000692u, 0x000200f8u, 0x00000685u, 0x00050082u, 0x00000006u, 0x0000068au, 0x00000775u, 0x00000467u, + 0x00050080u, 0x00000006u, 0x0000068bu, 0x0000068au, 0x00000032u, 0x00050084u, 0x00000006u, 0x0000068cu, + 0x00000477u, 0x0000068bu, 0x00050080u, 0x00000006u, 0x0000068eu, 0x00000680u, 0x0000068cu, 0x00050082u, + 0x00000006u, 0x00000691u, 0x00000467u, 0x00000032u, 0x000200f9u, 0x00000692u, 0x000200f8u, 0x00000692u, + 0x000700f5u, 0x00000006u, 0x0000097bu, 0x00000775u, 0x00000677u, 0x00000691u, 0x00000685u, 0x000700f5u, + 0x00000006u, 0x00000978u, 0x00000680u, 0x00000677u, 0x0000068eu, 0x00000685u, 0x000200f9u, 0x00000693u, + 0x000200f8u, 0x00000693u, 0x000700f5u, 0x00000006u, 0x0000097au, 0x00000676u, 0x00000672u, 0x0000097bu, + 0x00000692u, 0x000700f5u, 0x00000006u, 0x00000977u, 0x000005c2u, 0x00000672u, 0x00000978u, 0x00000692u, + 0x000200f9u, 0x00000694u, 0x000200f8u, 0x00000694u, 0x000700f5u, 0x00000006u, 0x0000097eu, 0x0000097fu, + 0x0000066du, 0x0000003fu, 0x00000693u, 0x000700f5u, 0x00000006u, 0x00000979u, 0x0000003fu, 0x0000066du, + 0x0000097au, 0x00000693u, 0x000700f5u, 0x00000006u, 0x00000976u, 0x00000972u, 0x0000066du, 0x00000977u, + 0x00000693u, 0x000500c7u, 0x00000006u, 0x00000697u, 0x00000979u, 0x00000032u, 0x000500c4u, 0x00000006u, + 0x00000698u, 0x00000697u, 0x00000032u, 0x000500c6u, 0x00000006u, 0x00000699u, 0x00000976u, 0x00000698u, + 0x000500afu, 0x00000011u, 0x0000069du, 0x00000699u, 0x00000465u, 0x000500adu, 0x00000011u, 0x0000069fu, + 0x00000979u, 0x0000003fu, 0x000500a7u, 0x00000011u, 0x000006a0u, 0x0000069du, 0x0000069fu, 0x000300f7u, + 0x000006a7u, 0x00000000u, 0x000400fau, 0x000006a0u, 0x000006a1u, 0x000006a7u, 0x000200f8u, 0x000006a1u, + 0x00050082u, 0x00000006u, 0x000006a3u, 0x00000979u, 0x00000032u, 0x00050080u, 0x00000006u, 0x000006a6u, + 0x00000976u, 0x00000477u, 0x000200f9u, 0x000006a7u, 0x000200f8u, 0x000006a7u, 0x000700f5u, 0x00000006u, + 0x00000986u, 0x00000976u, 0x00000694u, 0x000006a6u, 0x000006a1u, 0x000700f5u, 0x00000006u, 0x0000097cu, + 0x00000979u, 0x00000694u, 0x000006a3u, 0x000006a1u, 0x000500c7u, 0x00000006u, 0x000006a9u, 0x0000097cu, + 0x00000032u, 0x000500c4u, 0x00000006u, 0x000006aau, 0x000006a9u, 0x00000032u, 0x000500c5u, 0x00000006u, + 0x000006acu, 0x000006aau, 0x0000097eu, 0x000500c6u, 0x00000006u, 0x000006aeu, 0x00000986u, 0x000006acu, + 0x000500aau, 0x00000011u, 0x000006b1u, 0x00000471u, 0x00000098u, 0x000500a6u, 0x00000011u, 0x000006b3u, + 0x000006b1u, 0x00000495u, 0x000300f7u, 0x000006f8u, 0x00000000u, 0x000400fau, 0x000006b3u, 0x000006b4u, + 0x000006b8u, 0x000200f8u, 0x000006b4u, 0x000500c7u, 0x00000006u, 0x000006b6u, 0x000006aeu, 0x00000051u, + 0x00050084u, 0x00000006u, 0x000006b7u, 0x0000015cu, 0x000006b6u, 0x000200f9u, 0x000006f8u, 0x000200f8u, + 0x000006b8u, 0x000500aau, 0x00000011u, 0x000006bbu, 0x00000471u, 0x00000043u, 0x000300f7u, 0x000006f7u, + 0x00000000u, 0x000400fau, 0x000006bbu, 0x000006bcu, 0x000006d1u, 0x000200f8u, 0x000006bcu, 0x000500c7u, + 0x00000006u, 0x000006beu, 0x000006aeu, 0x00000043u, 0x000500abu, 0x00000011u, 0x000006bfu, 0x000006beu, + 0x0000003fu, 0x000300f7u, 0x000006cdu, 0x00000000u, 0x000400fau, 0x000006bfu, 0x000006c0u, 0x000006cdu, + 0x000200f8u, 0x000006c0u, 0x000500adu, 0x00000011u, 0x000006c2u, 0x0000097cu, 0x0000003fu, 0x000300f7u, + 0x000006c3u, 0x00000000u, 0x000400fau, 0x000006c2u, 0x000006c3u, 0x000006cbu, 0x000200f8u, 0x000006c3u, + 0x00050082u, 0x00000006u, 0x000006c5u, 0x0000097cu, 0x00000032u, 0x00050080u, 0x00000006u, 0x000006c8u, + 0x000006aeu, 0x00000477u, 0x000500c6u, 0x00000006u, 0x000006cau, 0x000006c8u, 0x00000043u, 0x000200f9u, + 0x000006cdu, 0x000200f8u, 0x000006cbu, 0x000200f9u, 0x0000075du, 0x000200f8u, 0x000006cdu, 0x000700f5u, + 0x00000006u, 0x00000993u, 0x0000097cu, 0x000006bcu, 0x000006c5u, 0x000006c3u, 0x000700f5u, 0x00000006u, + 0x0000098du, 0x000006aeu, 0x000006bcu, 0x000006cau, 0x000006c3u, 0x000500c7u, 0x00000006u, 0x000006cfu, + 0x0000098du, 0x00000051u, 0x00050084u, 0x00000006u, 0x000006d0u, 0x00000043u, 0x000006cfu, 0x000200f9u, + 0x000006f7u, 0x000200f8u, 0x000006d1u, 0x000500aau, 0x00000011u, 0x000006d4u, 0x00000471u, 0x00000032u, + 0x000300f7u, 0x000006f6u, 0x00000000u, 0x000400fau, 0x000006d4u, 0x000006d5u, 0x000006f6u, 0x000200f8u, + 0x000006d5u, 0x000200f9u, 0x000006d6u, 0x000200f8u, 0x000006d6u, 0x000700f5u, 0x00000006u, 0x00000989u, + 0x000006aeu, 0x000006d5u, 0x000006eau, 0x000006e3u, 0x000700f5u, 0x00000006u, 0x00000988u, 0x0000097cu, + 0x000006d5u, 0x000006e5u, 0x000006e3u, 0x000700f5u, 0x00000006u, 0x00000987u, 0x0000003fu, 0x000006d5u, + 0x000006edu, 0x000006e3u, 0x000400f6u, 0x000006eeu, 0x000006e3u, 0x00000000u, 0x000200f9u, 0x000006d7u, + 0x000200f8u, 0x000006d7u, 0x000500b1u, 0x00000011u, 0x000006d9u, 0x00000987u, 0x0000015cu, 0x000500adu, + 0x00000011u, 0x000006dbu, 0x00000988u, 0x0000003fu, 0x000500a7u, 0x00000011u, 0x000006dcu, 0x000006d9u, + 0x000006dbu, 0x000300f7u, 0x000006e1u, 0x00000000u, 0x000400fau, 0x000006dcu, 0x000006ddu, 0x000006e1u, + 0x000200f8u, 0x000006ddu, 0x000500c7u, 0x00000006u, 0x000006dfu, 0x00000989u, 0x00000153u, 0x000500abu, + 0x00000011u, 0x000006e0u, 0x000006dfu, 0x0000003fu, 0x000200f9u, 0x000006e1u, 0x000200f8u, 0x000006e1u, + 0x000700f5u, 0x00000011u, 0x000006e2u, 0x000006dcu, 0x000006d7u, 0x000006e0u, 0x000006ddu, 0x000400fau, + 0x000006e2u, 0x000006e3u, 0x000006eeu, 0x000200f8u, 0x000006e3u, 0x00050082u, 0x00000006u, 0x000006e5u, + 0x00000988u, 0x00000032u, 0x00050080u, 0x00000006u, 0x000006e8u, 0x00000989u, 0x00000477u, 0x000500c6u, + 0x00000006u, 0x000006eau, 0x000006e8u, 0x00000043u, 0x00050080u, 0x00000006u, 0x000006edu, 0x00000987u, + 0x00000032u, 0x000200f9u, 0x000006d6u, 0x000200f8u, 0x000006eeu, 0x000500c7u, 0x00000006u, 0x000006f0u, + 0x00000989u, 0x00000153u, 0x000500abu, 0x00000011u, 0x000006f1u, 0x000006f0u, 0x0000003fu, 0x000300f7u, + 0x000006f3u, 0x00000000u, 0x000400fau, 0x000006f1u, 0x000006f2u, 0x000006f3u, 0x000200f8u, 0x000006f2u, + 0x000200f9u, 0x0000075du, 0x000200f8u, 0x000006f3u, 0x000500c7u, 0x00000006u, 0x000006f5u, 0x00000989u, + 0x00000051u, 0x000200f9u, 0x000006f6u, 0x000200f8u, 0x000006f6u, 0x000700f5u, 0x00000006u, 0x00000997u, + 0x0000099du, 0x000006d1u, 0x000006f5u, 0x000006f3u, 0x000700f5u, 0x00000006u, 0x00000994u, 0x0000097cu, + 0x000006d1u, 0x00000988u, 0x000006f3u, 0x000700f5u, 0x00000006u, 0x00000990u, 0x000006aeu, 0x000006d1u, + 0x00000989u, 0x000006f3u, 0x000200f9u, 0x000006f7u, 0x000200f8u, 0x000006f7u, 0x000700f5u, 0x00000006u, + 0x00000996u, 0x000006d0u, 0x000006cdu, 0x00000997u, 0x000006f6u, 0x000700f5u, 0x00000006u, 0x00000992u, + 0x00000993u, 0x000006cdu, 0x00000994u, 0x000006f6u, 0x000700f5u, 0x00000006u, 0x0000098fu, 0x0000098du, + 0x000006cdu, 0x00000990u, 0x000006f6u, 0x000200f9u, 0x000006f8u, 0x000200f8u, 0x000006f8u, 0x000700f5u, + 0x00000006u, 0x00000995u, 0x000006b7u, 0x000006b4u, 0x00000996u, 0x000006f7u, 0x000700f5u, 0x00000006u, + 0x00000991u, 0x0000097cu, 0x000006b4u, 0x00000992u, 0x000006f7u, 0x000700f5u, 0x00000006u, 0x0000098eu, + 0x000006aeu, 0x000006b4u, 0x0000098fu, 0x000006f7u, 0x000500afu, 0x00000011u, 0x000006fcu, 0x0000098eu, + 0x00000465u, 0x000300f7u, 0x000006feu, 0x00000000u, 0x000400fau, 0x000006fcu, 0x000006fdu, 0x000006feu, + 0x000200f8u, 0x000006fdu, 0x000200f9u, 0x0000075du, 0x000200f8u, 0x000006feu, 0x00050084u, 0x00000006u, + 0x00000704u, 0x00000991u, 0x0000046fu, 0x00050082u, 0x00000006u, 0x00000707u, 0x00000471u, 0x00000032u, + 0x000500c4u, 0x00000006u, 0x00000708u, 0x00000704u, 0x00000707u, 0x00050080u, 0x00000006u, 0x00000709u, + 0x0000046du, 0x00000708u, 0x00050080u, 0x00000006u, 0x0000070cu, 0x00000709u, 0x00000995u, 0x000500c7u, + 0x00000006u, 0x0000070eu, 0x0000098eu, 0x00000032u, 0x00050084u, 0x00000006u, 0x0000070fu, 0x0000015cu, + 0x0000070eu, 0x00050080u, 0x00000006u, 0x00000710u, 0x0000070cu, 0x0000070fu, 0x000500c7u, 0x00000006u, + 0x00000712u, 0x00000710u, 0x00000098u, 0x000500aau, 0x00000011u, 0x00000713u, 0x00000712u, 0x0000003fu, + 0x000300f7u, 0x00000737u, 0x00000000u, 0x000400fau, 0x00000713u, 0x00000714u, 0x00000719u, 0x000200f8u, + 0x00000714u, 0x000500c3u, 0x00000006u, 0x00000716u, 0x00000710u, 0x00000043u, 0x00060041u, 0x000001cdu, + 0x00000717u, 0x000001cau, 0x0000003fu, 0x00000716u, 0x0004003du, 0x000001c4u, 0x00000718u, 0x00000717u, + 0x000200f9u, 0x00000737u, 0x000200f8u, 0x00000719u, 0x000500c6u, 0x00000006u, 0x0000071bu, 0x00000710u, + 0x00000098u, 0x00060041u, 0x000001d8u, 0x0000071cu, 0x000001d5u, 0x0000003fu, 0x0000071bu, 0x0004003du, + 0x000001d1u, 0x0000071du, 0x0000071cu, 0x00040071u, 0x000001c4u, 0x0000071eu, 0x0000071du, 0x000500c4u, + 0x000001c4u, 0x0000071fu, 0x0000071eu, 0x000001dcu, 0x00050080u, 0x00000006u, 0x00000721u, 0x00000710u, + 0x00000032u, 0x000500c6u, 0x00000006u, 0x00000722u, 0x00000721u, 0x00000098u, 0x00060041u, 0x000001d8u, + 0x00000723u, 0x000001d5u, 0x0000003fu, 0x00000722u, 0x0004003du, 0x000001d1u, 0x00000724u, 0x00000723u, + 0x00040071u, 0x000001c4u, 0x00000725u, 0x00000724u, 0x000500c4u, 0x000001c4u, 0x00000726u, 0x00000725u, + 0x0000005cu, 0x000500c5u, 0x000001c4u, 0x00000727u, 0x0000071fu, 0x00000726u, 0x00050080u, 0x00000006u, + 0x00000729u, 0x00000710u, 0x00000043u, 0x000500c6u, 0x00000006u, 0x0000072au, 0x00000729u, 0x00000098u, + 0x00060041u, 0x000001d8u, 0x0000072bu, 0x000001d5u, 0x0000003fu, 0x0000072au, 0x0004003du, 0x000001d1u, + 0x0000072cu, 0x0000072bu, 0x00040071u, 0x000001c4u, 0x0000072du, 0x0000072cu, 0x000500c4u, 0x000001c4u, + 0x0000072eu, 0x0000072du, 0x0000002du, 0x000500c5u, 0x000001c4u, 0x0000072fu, 0x00000727u, 0x0000072eu, + 0x00050080u, 0x00000006u, 0x00000731u, 0x00000710u, 0x00000098u, 0x000500c6u, 0x00000006u, 0x00000732u, + 0x00000731u, 0x00000098u, 0x00060041u, 0x000001d8u, 0x00000733u, 0x000001d5u, 0x0000003fu, 0x00000732u, + 0x0004003du, 0x000001d1u, 0x00000734u, 0x00000733u, 0x00040071u, 0x000001c4u, 0x00000735u, 0x00000734u, + 0x000500c5u, 0x000001c4u, 0x00000736u, 0x0000072fu, 0x00000735u, 0x000200f9u, 0x00000737u, 0x000200f8u, + 0x00000737u, 0x000700f5u, 0x000001c4u, 0x000009a2u, 0x00000718u, 0x00000714u, 0x00000736u, 0x00000719u, + 0x000300f7u, 0x0000075bu, 0x00000000u, 0x000400fau, 0x00000495u, 0x00000739u, 0x00000752u, 0x000200f8u, + 0x00000739u, 0x000300f7u, 0x00000751u, 0x00000000u, 0x000400fau, 0x0000043eu, 0x0000073bu, 0x00000746u, + 0x000200f8u, 0x0000073bu, 0x000500c2u, 0x000001c4u, 0x0000073du, 0x000009a2u, 0x000001fdu, 0x000500c7u, + 0x000001c4u, 0x0000073eu, 0x0000073du, 0x000001ffu, 0x000500c2u, 0x000001c4u, 0x00000740u, 0x000009a2u, + 0x00000203u, 0x000500c7u, 0x000001c4u, 0x00000741u, 0x00000740u, 0x000001ffu, 0x000500c4u, 0x000001c4u, + 0x00000743u, 0x0000073eu, 0x00000207u, 0x000500c5u, 0x000001c4u, 0x00000745u, 0x00000743u, 0x00000741u, + 0x000200f9u, 0x00000751u, 0x000200f8u, 0x00000746u, 0x000500c2u, 0x000001c4u, 0x00000748u, 0x000009a2u, + 0x0000020eu, 0x000500c7u, 0x000001c4u, 0x00000749u, 0x00000748u, 0x000001ffu, 0x000500c2u, 0x000001c4u, + 0x0000074bu, 0x000009a2u, 0x00000207u, 0x000500c7u, 0x000001c4u, 0x0000074cu, 0x0000074bu, 0x000001ffu, + 0x000500c4u, 0x000001c4u, 0x0000074eu, 0x00000749u, 0x00000207u, 0x000500c5u, 0x000001c4u, 0x00000750u, + 0x0000074eu, 0x0000074cu, 0x000200f9u, 0x00000751u, 0x000200f8u, 0x00000751u, 0x000700f5u, 0x000001c4u, + 0x000009a4u, 0x00000745u, 0x0000073bu, 0x00000750u, 0x00000746u, 0x000200f9u, 0x0000075bu, 0x000200f8u, + 0x00000752u, 0x000600a9u, 0x000001c4u, 0x00000754u, 0x0000043eu, 0x0000021bu, 0x00000203u, 0x00050084u, + 0x000001c4u, 0x00000755u, 0x000001fdu, 0x00000754u, 0x00050082u, 0x000001c4u, 0x00000756u, 0x000001fdu, + 0x00000755u, 0x000500c2u, 0x000001c4u, 0x00000758u, 0x000009a2u, 0x00000756u, 0x000500c7u, 0x000001c4u, + 0x0000075au, 0x00000758u, 0x00000221u, 0x000200f9u, 0x0000075bu, 0x000200f8u, 0x0000075bu, 0x000700f5u, + 0x000001c4u, 0x000009a3u, 0x000009a4u, 0x00000751u, 0x0000075au, 0x00000752u, 0x000200f9u, 0x0000075du, + 0x000200f8u, 0x0000075du, 0x000f00f5u, 0x00000006u, 0x00000a40u, 0x0000099du, 0x000005f6u, 0x0000099du, + 0x0000066bu, 0x0000099du, 0x000006cbu, 0x0000099du, 0x000006f2u, 0x00000995u, 0x000006fdu, 0x00000995u, + 0x0000075bu, 0x000f00f5u, 0x00000011u, 0x000009fau, 0x0000093bu, 0x000005f6u, 0x0000093bu, 0x0000066bu, + 0x0000093bu, 0x000006cbu, 0x0000093bu, 0x000006f2u, 0x0000093bu, 0x000006fdu, 0x000000ecu, 0x0000075bu, + 0x000f00f5u, 0x000001c4u, 0x000009d9u, 0x0000093cu, 0x000005f6u, 0x0000093cu, 0x0000066bu, 0x0000093cu, + 0x000006cbu, 0x0000093cu, 0x000006f2u, 0x0000093cu, 0x000006fdu, 0x000009a3u, 0x0000075bu, 0x000200f9u, + 0x0000049cu, 0x000200f8u, 0x000004a7u, 0x000300f7u, 0x0000089eu, 0x00000000u, 0x000300fbu, 0x00000203u, + 0x00000791u, 0x000200f8u, 0x00000791u, 0x000500c7u, 0x00000006u, 0x00000794u, 0x00000475u, 0x0000022cu, + 0x000500c3u, 0x00000006u, 0x00000795u, 0x00000794u, 0x00000032u, 0x00050082u, 0x00000006u, 0x0000079au, + 0x0000043au, 0x00000795u, 0x000500c7u, 0x00000006u, 0x0000079bu, 0x0000079au, 0x00000030u, 0x000500aau, + 0x00000011u, 0x0000079eu, 0x0000047eu, 0x00000043u, 0x000300f7u, 0x0000081fu, 0x00000000u, 0x000400fau, + 0x0000079eu, 0x0000079fu, 0x000007fau, 0x000200f8u, 0x0000079fu, 0x000500c3u, 0x00000006u, 0x000007a1u, + 0x0000079bu, 0x00000043u, 0x000500aau, 0x00000011u, 0x000007a4u, 0x00000477u, 0x0000003fu, 0x000300f7u, + 0x000007f8u, 0x00000000u, 0x000400fau, 0x000007a4u, 0x000007a5u, 0x000007adu, 0x000200f8u, 0x000007a5u, + 0x00050084u, 0x00000006u, 0x000007a9u, 0x000007a1u, 0x00000482u, 0x000500c3u, 0x00000006u, 0x000007aau, + 0x000007a9u, 0x0000005cu, 0x000500c7u, 0x00000006u, 0x000007abu, 0x000007aau, 0x00000032u, 0x000500c4u, + 0x00000006u, 0x000007acu, 0x000007abu, 0x00000032u, 0x000200f9u, 0x000007f8u, 0x000200f8u, 0x000007adu, + 0x0004006fu, 0x00000008u, 0x000008a2u, 0x000007a1u, 0x00050081u, 0x00000008u, 0x000008a3u, 0x000008a2u, + 0x00000025u, 0x00050085u, 0x00000008u, 0x000008a5u, 0x000008a3u, 0x00000469u, 0x0004006eu, 0x00000006u, + 0x000008a6u, 0x000008a5u, 0x00050085u, 0x00000008u, 0x000008adu, 0x000008a3u, 0x0000046bu, 0x0004006eu, + 0x00000006u, 0x000008aeu, 0x000008adu, 0x00050084u, 0x00000006u, 0x000007b9u, 0x00000477u, 0x000008a6u, + 0x00050082u, 0x00000006u, 0x000007bau, 0x000007a1u, 0x000007b9u, 0x00050084u, 0x00000006u, 0x000007beu, + 0x00000477u, 0x000008aeu, 0x00050082u, 0x00000006u, 0x000007bfu, 0x000007a1u, 0x000007beu, 0x00050084u, + 0x00000006u, 0x000007c4u, 0x000007bfu, 0x00000482u, 0x000500c3u, 0x00000006u, 0x000007c5u, 0x000007c4u, + 0x0000005cu, 0x0007000cu, 0x00000006u, 0x000007c6u, 0x00000001u, 0x0000002au, 0x000008a6u, 0x000007c5u, + 0x00050084u, 0x00000006u, 0x000007cbu, 0x000007bau, 0x00000482u, 0x000500c3u, 0x00000006u, 0x000007ccu, + 0x000007cbu, 0x0000005cu, 0x0007000cu, 0x00000006u, 0x000007cdu, 0x00000001u, 0x00000027u, 0x000008aeu, + 0x000007ccu, 0x000200f9u, 0x000007cfu, 0x000200f8u, 0x000007cfu, 0x000700f5u, 0x00000006u, 0x0000093fu, + 0x0000079bu, 0x000007adu, 0x00000a18u, 0x000007f0u, 0x000700f5u, 0x00000011u, 0x0000093eu, 0x000000bbu, + 0x000007adu, 0x00000a55u, 0x000007f0u, 0x000700f5u, 0x00000006u, 0x0000093du, 0x000007cdu, 0x000007adu, + 0x000007f2u, 0x000007f0u, 0x000700f5u, 0x00000006u, 0x00000959u, 0x0000003fu, 0x000007adu, 0x0000095au, + 0x000007f0u, 0x000500afu, 0x00000011u, 0x000007d3u, 0x0000093du, 0x000007c6u, 0x000400f6u, 0x000007f3u, + 0x000007f0u, 0x00000000u, 0x000400fau, 0x000007d3u, 0x000007d4u, 0x000007f3u, 0x000200f8u, 0x000007d4u, + 0x00050084u, 0x00000006u, 0x000007d8u, 0x00000477u, 0x0000093du, 0x00050082u, 0x00000006u, 0x000007d9u, + 0x000007a1u, 0x000007d8u, 0x00050084u, 0x00000006u, 0x000007ddu, 0x000007d9u, 0x00000482u, 0x000500c3u, + 0x00000006u, 0x000007deu, 0x000007ddu, 0x0000005cu, 0x00050084u, 0x00000006u, 0x000007e2u, 0x000007deu, + 0x00000477u, 0x00050080u, 0x00000006u, 0x000007e3u, 0x000007d9u, 0x000007e2u, 0x000500aau, 0x00000011u, + 0x000007e5u, 0x000007e3u, 0x000007a1u, 0x000300f7u, 0x000007efu, 0x00000000u, 0x000400fau, 0x000007e5u, + 0x000007e6u, 0x000007efu, 0x000200f8u, 0x000007e6u, 0x000500c7u, 0x00000006u, 0x000007e8u, 0x000007deu, + 0x00000032u, 0x000500c4u, 0x00000006u, 0x000007e9u, 0x000007e8u, 0x00000032u, 0x000500c4u, 0x00000006u, + 0x000007ebu, 0x000007d9u, 0x00000043u, 0x000500c7u, 0x00000006u, 0x000007edu, 0x0000093fu, 0x00000098u, + 0x00050080u, 0x00000006u, 0x000007eeu, 0x000007ebu, 0x000007edu, 0x000200f9u, 0x000007efu, 0x000200f8u, + 0x000007efu, 0x000700f5u, 0x00000006u, 0x00000a18u, 0x0000093fu, 0x000007d4u, 0x000007eeu, 0x000007e6u, + 0x000700f5u, 0x00000006u, 0x0000095au, 0x00000959u, 0x000007d4u, 0x000007e9u, 0x000007e6u, 0x000600a9u, + 0x00000011u, 0x00000a55u, 0x000007e5u, 0x000000ecu, 0x0000093eu, 0x000200f9u, 0x000007f0u, 0x000200f8u, + 0x000007f0u, 0x00050082u, 0x00000006u, 0x000007f2u, 0x0000093du, 0x00000032u, 0x000200f9u, 0x000007cfu, + 0x000200f8u, 0x000007f3u, 0x000400a8u, 0x00000011u, 0x000007f5u, 0x0000093eu, 0x000300f7u, 0x000007f7u, + 0x00000000u, 0x000400fau, 0x000007f5u, 0x000007f6u, 0x000007f7u, 0x000200f8u, 0x000007f6u, 0x000200f9u, + 0x0000089eu, 0x000200f8u, 0x000007f7u, 0x000200f9u, 0x000007f8u, 0x000200f8u, 0x000007f8u, 0x000700f5u, + 0x00000006u, 0x00000958u, 0x000007acu, 0x000007a5u, 0x00000959u, 0x000007f7u, 0x000700f5u, 0x00000006u, + 0x00000941u, 0x0000079bu, 0x000007a5u, 0x0000093fu, 0x000007f7u, 0x000200f9u, 0x0000081fu, 0x000200f8u, + 0x000007fau, 0x000500aau, 0x00000011u, 0x000007fcu, 0x00000477u, 0x0000003fu, 0x000300f7u, 0x0000081eu, + 0x00000000u, 0x000400fau, 0x000007fcu, 0x000007fdu, 0x00000802u, 0x000200f8u, 0x000007fdu, 0x00050082u, + 0x00000006u, 0x00000801u, 0x00000467u, 0x00000032u, 0x000200f9u, 0x0000081eu, 0x000200f8u, 0x00000802u, + 0x0004006fu, 0x00000008u, 0x000008b2u, 0x0000079bu, 0x00050081u, 0x00000008u, 0x000008b3u, 0x000008b2u, + 0x00000025u, 0x00050085u, 0x00000008u, 0x000008b5u, 0x000008b3u, 0x00000480u, 0x0004006eu, 0x00000006u, + 0x000008b6u, 0x000008b5u, 0x00050084u, 0x00000006u, 0x0000080au, 0x000008b6u, 0x00000477u, 0x00050082u, + 0x00000006u, 0x0000080bu, 0x0000079bu, 0x0000080au, 0x000500afu, 0x00000011u, 0x0000080fu, 0x000008b6u, + 0x00000467u, 0x000300f7u, 0x0000081du, 0x00000000u, 0x000400fau, 0x0000080fu, 0x00000810u, 0x0000081du, + 0x000200f8u, 0x00000810u, 0x00050082u, 0x00000006u, 0x00000815u, 0x000008b6u, 0x00000467u, 0x00050080u, + 0x00000006u, 0x00000816u, 0x00000815u, 0x00000032u, 0x00050084u, 0x00000006u, 0x00000817u, 0x00000477u, + 0x00000816u, 0x00050080u, 0x00000006u, 0x00000819u, 0x0000080bu, 0x00000817u, 0x00050082u, 0x00000006u, + 0x0000081cu, 0x00000467u, 0x00000032u, 0x000200f9u, 0x0000081du, 0x000200f8u, 0x0000081du, 0x000700f5u, + 0x00000006u, 0x00000949u, 0x000008b6u, 0x00000802u, 0x0000081cu, 0x00000810u, 0x000700f5u, 0x00000006u, + 0x00000944u, 0x0000080bu, 0x00000802u, 0x00000819u, 0x00000810u, 0x000200f9u, 0x0000081eu, 0x000200f8u, + 0x0000081eu, 0x000700f5u, 0x00000006u, 0x00000948u, 0x00000801u, 0x000007fdu, 0x00000949u, 0x0000081du, + 0x000700f5u, 0x00000006u, 0x00000943u, 0x0000079bu, 0x000007fdu, 0x00000944u, 0x0000081du, 0x000200f9u, + 0x0000081fu, 0x000200f8u, 0x0000081fu, 0x000700f5u, 0x00000006u, 0x00000957u, 0x00000958u, 0x000007f8u, + 0x0000003fu, 0x0000081eu, 0x000700f5u, 0x00000006u, 0x00000947u, 0x0000003fu, 0x000007f8u, 0x00000948u, + 0x0000081eu, 0x000700f5u, 0x00000006u, 0x00000942u, 0x00000941u, 0x000007f8u, 0x00000943u, 0x0000081eu, + 0x000500abu, 0x00000011u, 0x00000824u, 0x00000479u, 0x00000471u, 0x000300f7u, 0x00000864u, 0x00000000u, + 0x000400fau, 0x00000824u, 0x00000825u, 0x00000860u, 0x000200f8u, 0x00000825u, 0x00050082u, 0x00000006u, + 0x0000082au, 0x00000471u, 0x00000479u, 0x000500aau, 0x00000011u, 0x0000082bu, 0x0000082au, 0x00000032u, + 0x000300f7u, 0x0000085fu, 0x00000000u, 0x000400fau, 0x0000082bu, 0x0000082cu, 0x0000083eu, 0x000200f8u, + 0x0000082cu, 0x000500c7u, 0x00000006u, 0x0000082eu, 0x00000942u, 0x000002e0u, 0x00050084u, 0x00000006u, + 0x0000082fu, 0x0000082eu, 0x0000015cu, 0x00050080u, 0x00000006u, 0x00000832u, 0x0000082eu, 0x00000043u, + 0x00050082u, 0x00000006u, 0x00000837u, 0x00000098u, 0x00000471u, 0x000500c3u, 0x00000006u, 0x00000838u, + 0x00000473u, 0x00000837u, 0x000500b1u, 0x00000011u, 0x00000839u, 0x00000832u, 0x00000838u, 0x000300f7u, + 0x0000083du, 0x00000000u, 0x000400fau, 0x00000839u, 0x0000083au, 0x0000083du, 0x000200f8u, 0x0000083au, + 0x00050080u, 0x00000006u, 0x0000083cu, 0x0000082fu, 0x0000002du, 0x000200f9u, 0x0000083du, 0x000200f8u, + 0x0000083du, 0x000700f5u, 0x00000006u, 0x00000962u, 0x0000082fu, 0x0000082cu, 0x0000083cu, 0x0000083au, + 0x000200f9u, 0x0000085fu, 0x000200f8u, 0x0000083eu, 0x000500aau, 0x00000011u, 0x00000841u, 0x00000479u, + 0x00000043u, 0x000300f7u, 0x00000846u, 0x00000000u, 0x000400fau, 0x00000841u, 0x00000842u, 0x00000846u, + 0x000200f8u, 0x00000842u, 0x000500aau, 0x00000011u, 0x00000845u, 0x00000471u, 0x00000032u, 0x000200f9u, + 0x00000846u, 0x000200f8u, 0x00000846u, 0x000700f5u, 0x00000011u, 0x00000847u, 0x00000841u, 0x0000083eu, + 0x00000845u, 0x00000842u, 0x000300f7u, 0x0000085eu, 0x00000000u, 0x000400fau, 0x00000847u, 0x00000848u, + 0x0000085eu, 0x000200f8u, 0x00000848u, 0x000500c7u, 0x00000006u, 0x0000084au, 0x00000942u, 0x0000015cu, + 0x000500abu, 0x00000011u, 0x0000084bu, 0x0000084au, 0x0000003fu, 0x000300f7u, 0x0000085bu, 0x00000000u, + 0x000400fau, 0x0000084bu, 0x0000084cu, 0x0000085bu, 0x000200f8u, 0x0000084cu, 0x000500c7u, 0x00000006u, + 0x0000084eu, 0x00000477u, 0x0000015cu, 0x000500abu, 0x00000011u, 0x0000084fu, 0x0000084eu, 0x0000003fu, + 0x000500adu, 0x00000011u, 0x00000851u, 0x00000947u, 0x0000003fu, 0x000500a7u, 0x00000011u, 0x00000852u, + 0x0000084fu, 0x00000851u, 0x000300f7u, 0x00000853u, 0x00000000u, 0x000400fau, 0x00000852u, 0x00000853u, + 0x00000859u, 0x000200f8u, 0x00000853u, 0x00050082u, 0x00000006u, 0x00000855u, 0x00000947u, 0x00000032u, + 0x00050080u, 0x00000006u, 0x00000858u, 0x00000942u, 0x00000477u, 0x000200f9u, 0x0000085bu, 0x000200f8u, + 0x00000859u, 0x000200f9u, 0x0000089eu, 0x000200f8u, 0x0000085bu, 0x000700f5u, 0x00000006u, 0x00000953u, + 0x00000947u, 0x00000848u, 0x00000855u, 0x00000853u, 0x000700f5u, 0x00000006u, 0x0000094au, 0x00000942u, + 0x00000848u, 0x00000858u, 0x00000853u, 0x000500c7u, 0x00000006u, 0x0000085du, 0x0000094au, 0x000002e0u, + 0x000200f9u, 0x0000085eu, 0x000200f8u, 0x0000085eu, 0x000700f5u, 0x00000006u, 0x00000963u, 0x00000967u, + 0x00000846u, 0x0000085du, 0x0000085bu, 0x000700f5u, 0x00000006u, 0x00000952u, 0x00000947u, 0x00000846u, + 0x00000953u, 0x0000085bu, 0x000700f5u, 0x00000006u, 0x0000094eu, 0x00000942u, 0x00000846u, 0x0000094au, + 0x0000085bu, 0x000200f9u, 0x0000085fu, 0x000200f8u, 0x0000085fu, 0x000700f5u, 0x00000006u, 0x00000961u, + 0x00000962u, 0x0000083du, 0x00000963u, 0x0000085eu, 0x000700f5u, 0x00000006u, 0x00000950u, 0x00000947u, + 0x0000083du, 0x00000952u, 0x0000085eu, 0x000700f5u, 0x00000006u, 0x0000094cu, 0x00000942u, 0x0000083du, + 0x0000094eu, 0x0000085eu, 0x000200f9u, 0x00000864u, 0x000200f8u, 0x00000860u, 0x000500c7u, 0x00000006u, + 0x00000862u, 0x00000942u, 0x000002e0u, 0x00050084u, 0x00000006u, 0x00000863u, 0x00000862u, 0x00000043u, + 0x000200f9u, 0x00000864u, 0x000200f8u, 0x00000864u, 0x000700f5u, 0x00000006u, 0x00000960u, 0x00000961u, + 0x0000085fu, 0x00000863u, 0x00000860u, 0x000700f5u, 0x00000006u, 0x0000094fu, 0x00000950u, 0x0000085fu, + 0x00000947u, 0x00000860u, 0x000700f5u, 0x00000006u, 0x0000094bu, 0x0000094cu, 0x0000085fu, 0x00000942u, + 0x00000860u, 0x000500afu, 0x00000011u, 0x00000868u, 0x0000094bu, 0x00000465u, 0x000300f7u, 0x0000086au, + 0x00000000u, 0x000400fau, 0x00000868u, 0x00000869u, 0x0000086au, 0x000200f8u, 0x00000869u, 0x000200f9u, + 0x0000089eu, 0x000200f8u, 0x0000086au, 0x00050084u, 0x00000006u, 0x00000870u, 0x0000094fu, 0x0000046fu, + 0x00050082u, 0x00000006u, 0x00000873u, 0x00000471u, 0x00000032u, 0x000500c4u, 0x00000006u, 0x00000874u, + 0x00000870u, 0x00000873u, 0x00050080u, 0x00000006u, 0x00000875u, 0x0000046du, 0x00000874u, 0x000500c7u, + 0x00000006u, 0x00000877u, 0x0000094fu, 0x00000032u, 0x000500c4u, 0x00000006u, 0x00000878u, 0x00000877u, + 0x00000032u, 0x000500c5u, 0x00000006u, 0x0000087au, 0x00000878u, 0x00000957u, 0x000500c6u, 0x00000006u, + 0x0000087cu, 0x0000094bu, 0x0000087au, 0x00050080u, 0x00000006u, 0x0000087fu, 0x00000875u, 0x00000960u, + 0x000500c7u, 0x00000006u, 0x00000881u, 0x0000087cu, 0x00000098u, 0x00050084u, 0x00000006u, 0x00000882u, + 0x00000043u, 0x00000881u, 0x00050080u, 0x00000006u, 0x00000883u, 0x0000087fu, 0x00000882u, 0x000500c7u, + 0x00000006u, 0x00000885u, 0x00000883u, 0x00000032u, 0x000500aau, 0x00000011u, 0x00000886u, 0x00000885u, + 0x0000003fu, 0x000300f7u, 0x0000089cu, 0x00000000u, 0x000400fau, 0x00000886u, 0x00000887u, 0x0000088eu, + 0x000200f8u, 0x00000887u, 0x000500c3u, 0x00000006u, 0x00000889u, 0x00000883u, 0x00000032u, 0x000500c6u, + 0x00000006u, 0x0000088au, 0x00000889u, 0x00000032u, 0x00060041u, 0x00000348u, 0x0000088bu, 0x00000344u, + 0x0000003fu, 0x0000088au, 0x0004003du, 0x00000340u, 0x0000088cu, 0x0000088bu, 0x00040071u, 0x000001c4u, + 0x0000088du, 0x0000088cu, 0x000200f9u, 0x0000089cu, 0x000200f8u, 0x0000088eu, 0x000500c6u, 0x00000006u, + 0x00000890u, 0x00000883u, 0x00000098u, 0x00060041u, 0x000001d8u, 0x00000891u, 0x000001d5u, 0x0000003fu, + 0x00000890u, 0x0004003du, 0x000001d1u, 0x00000892u, 0x00000891u, 0x00040071u, 0x000001c4u, 0x00000893u, + 0x00000892u, 0x000500c4u, 0x000001c4u, 0x00000894u, 0x00000893u, 0x0000002du, 0x00050080u, 0x00000006u, + 0x00000896u, 0x00000883u, 0x00000032u, 0x000500c6u, 0x00000006u, 0x00000897u, 0x00000896u, 0x00000098u, + 0x00060041u, 0x000001d8u, 0x00000898u, 0x000001d5u, 0x0000003fu, 0x00000897u, 0x0004003du, 0x000001d1u, + 0x00000899u, 0x00000898u, 0x00040071u, 0x000001c4u, 0x0000089au, 0x00000899u, 0x000500c5u, 0x000001c4u, + 0x0000089bu, 0x00000894u, 0x0000089au, 0x000200f9u, 0x0000089cu, 0x000200f8u, 0x0000089cu, 0x000700f5u, + 0x000001c4u, 0x0000096du, 0x0000088du, 0x00000887u, 0x0000089bu, 0x0000088eu, 0x000200f9u, 0x0000089eu, + 0x000200f8u, 0x0000089eu, 0x000b00f5u, 0x00000006u, 0x00000a35u, 0x00000967u, 0x000007f6u, 0x00000967u, + 0x00000859u, 0x00000960u, 0x00000869u, 0x00000960u, 0x0000089cu, 0x000b00f5u, 0x00000011u, 0x00000a0au, + 0x0000093bu, 0x000007f6u, 0x0000093bu, 0x00000859u, 0x0000093bu, 0x00000869u, 0x000000ecu, 0x0000089cu, + 0x000b00f5u, 0x000001c4u, 0x000009e9u, 0x0000093cu, 0x000007f6u, 0x0000093cu, 0x00000859u, 0x0000093cu, + 0x00000869u, 0x0000096du, 0x0000089cu, 0x000200f9u, 0x0000049cu, 0x000200f8u, 0x0000049cu, 0x000700f5u, + 0x00000006u, 0x00000a3fu, 0x00000a40u, 0x0000075du, 0x0000099du, 0x0000089eu, 0x000700f5u, 0x00000006u, + 0x00000a21u, 0x00000967u, 0x0000075du, 0x00000a35u, 0x0000089eu, 0x000700f5u, 0x00000011u, 0x000009f9u, + 0x000009fau, 0x0000075du, 0x00000a0au, 0x0000089eu, 0x000700f5u, 0x000001c4u, 0x000009d8u, 0x000009d9u, + 0x0000075du, 0x000009e9u, 0x0000089eu, 0x000200f9u, 0x0000048bu, 0x000200f8u, 0x0000048bu, 0x000700f5u, + 0x00000006u, 0x00000a37u, 0x0000099du, 0x0000058eu, 0x00000a3fu, 0x0000049cu, 0x000700f5u, 0x00000006u, + 0x00000a19u, 0x00000967u, 0x0000058eu, 0x00000a21u, 0x0000049cu, 0x000700f5u, 0x00000011u, 0x000009f6u, + 0x000009f7u, 0x0000058eu, 0x000009f9u, 0x0000049cu, 0x000700f5u, 0x000001c4u, 0x000009d5u, 0x000009d6u, + 0x0000058eu, 0x000009d8u, 0x0000049cu, 0x00050080u, 0x00000006u, 0x000004aeu, 0x0000093au, 0x00000032u, + 0x00040071u, 0x00000340u, 0x000004b2u, 0x000009d5u, 0x00080041u, 0x00000348u, 0x000004b3u, 0x00000444u, + 0x0000003fu, 0x000004aeu, 0x0000003fu, 0x00000432u, 0x0003003eu, 0x000004b3u, 0x000004b2u, 0x000200f9u, + 0x00000455u, 0x000200f8u, 0x00000455u, 0x000200f9u, 0x00000452u, 0x000200f8u, 0x00000454u, 0x000300f7u, + 0x000004b8u, 0x00000000u, 0x000400fau, 0x0000093bu, 0x000004b7u, 0x000004b8u, 0x000200f8u, 0x000004b7u, + 0x00040071u, 0x00000340u, 0x000004bcu, 0x0000093cu, 0x0003003eu, 0x00000433u, 0x000004bcu, 0x000200f9u, + 0x000004b8u, 0x000200f8u, 0x000004b8u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, + 0x000004c4u, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x0000002eu, 0x00020011u, 0x00001151u, + 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, + 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, + 0x00000000u, 0x00000001u, 0x0008000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00000131u, + 0x00000148u, 0x0000030du, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, + 0x00050048u, 0x00000034u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000034u, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x00000034u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, + 0x00000034u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000034u, 0x00000004u, 0x00000023u, + 0x0000000eu, 0x00050048u, 0x00000034u, 0x00000005u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000034u, + 0x00000006u, 0x00000023u, 0x00000014u, 0x00050048u, 0x00000034u, 0x00000007u, 0x00000023u, 0x00000018u, + 0x00050048u, 0x00000034u, 0x00000008u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x00000034u, 0x00000009u, + 0x00000023u, 0x0000001eu, 0x00050048u, 0x00000034u, 0x0000000au, 0x00000023u, 0x0000001fu, 0x00040047u, + 0x00000035u, 0x00000006u, 0x00000020u, 0x00040048u, 0x00000036u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000036u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000036u, 0x00000002u, 0x00040047u, + 0x00000038u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000038u, 0x00000021u, 0x00000000u, 0x00050048u, + 0x00000072u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000072u, 0x00000001u, 0x00000023u, + 0x00000010u, 0x00050048u, 0x00000072u, 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, 0x00000072u, + 0x00000003u, 0x00000023u, 0x00000030u, 0x00050048u, 0x00000072u, 0x00000004u, 0x00000023u, 0x00000040u, + 0x00050048u, 0x00000072u, 0x00000005u, 0x00000023u, 0x00000050u, 0x00050048u, 0x00000072u, 0x00000006u, + 0x00000023u, 0x00000060u, 0x00050048u, 0x00000072u, 0x00000007u, 0x00000023u, 0x00000070u, 0x00040047u, + 0x00000073u, 0x00000006u, 0x00000080u, 0x00040048u, 0x00000074u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000074u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000074u, 0x00000002u, 0x00040047u, + 0x00000076u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000076u, 0x00000021u, 0x00000001u, 0x00040047u, + 0x00000091u, 0x00000006u, 0x00000010u, 0x00040048u, 0x00000092u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000092u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000092u, 0x00000002u, 0x00040047u, + 0x00000094u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000094u, 0x00000021u, 0x00000002u, 0x00050048u, + 0x000000aau, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000000aau, 0x00000001u, 0x00000023u, + 0x00000010u, 0x00050048u, 0x000000aau, 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, 0x000000aau, + 0x00000003u, 0x00000023u, 0x00000028u, 0x00050048u, 0x000000aau, 0x00000004u, 0x00000023u, 0x00000030u, + 0x00050048u, 0x000000aau, 0x00000005u, 0x00000023u, 0x00000034u, 0x00050048u, 0x000000aau, 0x00000006u, + 0x00000023u, 0x00000038u, 0x00050048u, 0x000000aau, 0x00000007u, 0x00000023u, 0x0000003cu, 0x00050048u, + 0x000000aau, 0x00000008u, 0x00000023u, 0x0000003eu, 0x00040047u, 0x000000abu, 0x00000006u, 0x00000040u, + 0x00040048u, 0x000000acu, 0x00000000u, 0x00000019u, 0x00050048u, 0x000000acu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000000acu, 0x00000002u, 0x00040047u, 0x000000aeu, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000000aeu, 0x00000021u, 0x00000003u, 0x00040047u, 0x00000114u, 0x00000001u, 0x00000001u, + 0x00040047u, 0x0000012du, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000012du, 0x00000021u, 0x00000000u, + 0x00040047u, 0x00000131u, 0x0000000bu, 0x0000001au, 0x00040047u, 0x00000148u, 0x0000000bu, 0x0000001du, + 0x00040047u, 0x0000030du, 0x0000000bu, 0x0000001cu, 0x00040047u, 0x00000314u, 0x00000001u, 0x00000000u, + 0x00040047u, 0x00000315u, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, + 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x00040015u, 0x00000008u, 0x00000020u, + 0x00000001u, 0x00040017u, 0x0000000eu, 0x00000008u, 0x00000004u, 0x00040015u, 0x00000032u, 0x00000010u, + 0x00000001u, 0x00040015u, 0x00000033u, 0x00000008u, 0x00000000u, 0x000d001eu, 0x00000034u, 0x00000008u, + 0x00000008u, 0x00000008u, 0x00000032u, 0x00000032u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000032u, + 0x00000033u, 0x00000033u, 0x0003001du, 0x00000035u, 0x00000034u, 0x0003001eu, 0x00000036u, 0x00000035u, + 0x00040020u, 0x00000037u, 0x0000000cu, 0x00000036u, 0x0004003bu, 0x00000037u, 0x00000038u, 0x0000000cu, + 0x0004002bu, 0x00000008u, 0x00000039u, 0x00000000u, 0x00040020u, 0x0000003bu, 0x0000000cu, 0x00000008u, + 0x0004002bu, 0x00000008u, 0x0000003fu, 0x00000001u, 0x0004002bu, 0x00000008u, 0x00000043u, 0x00000002u, + 0x0004002bu, 0x00000008u, 0x00000047u, 0x00000003u, 0x00040020u, 0x00000048u, 0x0000000cu, 0x00000032u, + 0x0004002bu, 0x00000008u, 0x0000004du, 0x00000004u, 0x0004002bu, 0x00000008u, 0x00000052u, 0x00000005u, + 0x0004002bu, 0x00000008u, 0x00000056u, 0x00000006u, 0x0004002bu, 0x00000008u, 0x0000005au, 0x00000007u, + 0x0004002bu, 0x00000008u, 0x0000005eu, 0x00000008u, 0x0004002bu, 0x00000008u, 0x00000063u, 0x00000009u, + 0x00040020u, 0x00000064u, 0x0000000cu, 0x00000033u, 0x000a001eu, 0x00000072u, 0x0000000eu, 0x0000000eu, + 0x0000000eu, 0x0000000eu, 0x0000000eu, 0x0000000eu, 0x0000000eu, 0x0000000eu, 0x0003001du, 0x00000073u, + 0x00000072u, 0x0003001eu, 0x00000074u, 0x00000073u, 0x00040020u, 0x00000075u, 0x0000000cu, 0x00000074u, + 0x0004003bu, 0x00000075u, 0x00000076u, 0x0000000cu, 0x00040020u, 0x00000078u, 0x0000000cu, 0x00000072u, + 0x0003001du, 0x00000091u, 0x0000000eu, 0x0003001eu, 0x00000092u, 0x00000091u, 0x00040020u, 0x00000093u, + 0x0000000cu, 0x00000092u, 0x0004003bu, 0x00000093u, 0x00000094u, 0x0000000cu, 0x00040020u, 0x00000096u, + 0x0000000cu, 0x0000000eu, 0x0004002bu, 0x00000006u, 0x00000099u, 0x00000000u, 0x0004002bu, 0x00000006u, + 0x0000009cu, 0x00000001u, 0x00040015u, 0x000000a8u, 0x00000010u, 0x00000000u, 0x00040017u, 0x000000a9u, + 0x000000a8u, 0x00000004u, 0x000b001eu, 0x000000aau, 0x0000000eu, 0x0000000eu, 0x000000a9u, 0x000000a9u, + 0x00000008u, 0x00000008u, 0x00000008u, 0x00000032u, 0x000000a8u, 0x0003001du, 0x000000abu, 0x000000aau, + 0x0003001eu, 0x000000acu, 0x000000abu, 0x00040020u, 0x000000adu, 0x0000000cu, 0x000000acu, 0x0004003bu, + 0x000000adu, 0x000000aeu, 0x0000000cu, 0x00040017u, 0x000000bau, 0x00000006u, 0x00000004u, 0x00040020u, + 0x000000bdu, 0x0000000cu, 0x000000a9u, 0x00040020u, 0x000000dau, 0x0000000cu, 0x000000a8u, 0x0004002bu, + 0x00000008u, 0x000000deu, 0x00000fffu, 0x0007002cu, 0x0000000eu, 0x000000e1u, 0x00000039u, 0x00000039u, + 0x00000039u, 0x00000039u, 0x00020014u, 0x000000e2u, 0x00040017u, 0x000000e3u, 0x000000e2u, 0x00000004u, + 0x0007002cu, 0x0000000eu, 0x000000e5u, 0x0000003fu, 0x0000003fu, 0x0000003fu, 0x0000003fu, 0x0004002bu, + 0x00000008u, 0x000000e9u, 0x0000000cu, 0x00040017u, 0x000000f6u, 0x00000008u, 0x00000002u, 0x00040032u, + 0x00000008u, 0x00000114u, 0x00000000u, 0x00060034u, 0x00000008u, 0x00000118u, 0x000000c4u, 0x0000003fu, + 0x00000114u, 0x00060034u, 0x00000008u, 0x00000119u, 0x00000082u, 0x00000118u, 0x0000003fu, 0x00040017u, + 0x00000128u, 0x00000008u, 0x00000003u, 0x00090019u, 0x0000012bu, 0x00000006u, 0x00000005u, 0x00000000u, + 0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, 0x0000012cu, 0x00000000u, 0x0000012bu, + 0x0004003bu, 0x0000012cu, 0x0000012du, 0x00000000u, 0x00040017u, 0x0000012fu, 0x00000006u, 0x00000003u, + 0x00040020u, 0x00000130u, 0x00000001u, 0x0000012fu, 0x0004003bu, 0x00000130u, 0x00000131u, 0x00000001u, + 0x00040020u, 0x00000132u, 0x00000001u, 0x00000006u, 0x00060034u, 0x00000008u, 0x00000144u, 0x00000082u, + 0x00000118u, 0x0000003fu, 0x0004003bu, 0x00000132u, 0x00000148u, 0x00000001u, 0x0004002bu, 0x00000008u, + 0x00000171u, 0x00000010u, 0x00060034u, 0x00000008u, 0x00000197u, 0x00000084u, 0x00000118u, 0x00000047u, + 0x0004002bu, 0x00000008u, 0x000001a0u, 0xfffffe00u, 0x0004002bu, 0x00000008u, 0x000001cau, 0x0000000fu, + 0x0004002bu, 0x00000008u, 0x000001d4u, 0x000000ffu, 0x0004002bu, 0x00000008u, 0x000001eau, 0xfffffffeu, + 0x0004002bu, 0x00000008u, 0x000001f2u, 0xfffffc00u, 0x0004002bu, 0x00000008u, 0x0000021bu, 0xfffffffcu, + 0x0007002cu, 0x0000000eu, 0x00000229u, 0x00000039u, 0x0000003fu, 0x00000043u, 0x00000047u, 0x0007002cu, + 0x000000bau, 0x00000248u, 0x00000099u, 0x00000099u, 0x00000099u, 0x00000099u, 0x0007002cu, 0x000000bau, + 0x00000249u, 0x0000009cu, 0x0000009cu, 0x0000009cu, 0x0000009cu, 0x0004002bu, 0x00000008u, 0x00000282u, + 0x0000001bu, 0x00060034u, 0x00000008u, 0x00000283u, 0x00000080u, 0x00000282u, 0x00000114u, 0x00060034u, + 0x00000008u, 0x00000286u, 0x00000080u, 0x00000282u, 0x00000114u, 0x0004002bu, 0x00000008u, 0x000002ceu, + 0x0000ffffu, 0x0007002cu, 0x0000000eu, 0x000002cfu, 0x000002ceu, 0x000002ceu, 0x000002ceu, 0x000002ceu, + 0x0004003bu, 0x00000130u, 0x0000030du, 0x00000001u, 0x00040032u, 0x00000006u, 0x00000314u, 0x00000001u, + 0x00060033u, 0x0000012fu, 0x00000315u, 0x00000314u, 0x0000009cu, 0x0000009cu, 0x0007002cu, 0x0000000eu, + 0x000004b8u, 0x000001a0u, 0x000001a0u, 0x000001a0u, 0x000001a0u, 0x0007002cu, 0x0000000eu, 0x000004b9u, + 0x00000043u, 0x00000043u, 0x00000043u, 0x00000043u, 0x0007002cu, 0x0000000eu, 0x000004bau, 0x0000005eu, + 0x0000005eu, 0x0000005eu, 0x0000005eu, 0x0007002cu, 0x0000000eu, 0x000004bbu, 0x000001eau, 0x000001eau, + 0x000001eau, 0x000001eau, 0x0007002cu, 0x0000000eu, 0x000004bcu, 0x000001f2u, 0x000001f2u, 0x000001f2u, + 0x000001f2u, 0x0007002cu, 0x0000000eu, 0x000004bdu, 0x000000deu, 0x000000deu, 0x000000deu, 0x000000deu, + 0x0007002cu, 0x0000000eu, 0x000004beu, 0x000000e9u, 0x000000e9u, 0x000000e9u, 0x000000e9u, 0x00050036u, + 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x000300f7u, 0x0000032fu, + 0x00000000u, 0x000300fbu, 0x00000099u, 0x00000330u, 0x000200f8u, 0x00000330u, 0x0004003du, 0x0000012bu, + 0x0000012eu, 0x0000012du, 0x00050041u, 0x00000132u, 0x00000133u, 0x00000131u, 0x00000099u, 0x0004003du, + 0x00000006u, 0x00000134u, 0x00000133u, 0x0004007cu, 0x00000008u, 0x00000135u, 0x00000134u, 0x0005005fu, + 0x000000bau, 0x00000136u, 0x0000012eu, 0x00000135u, 0x0008004fu, 0x0000012fu, 0x00000137u, 0x00000136u, + 0x00000136u, 0x00000000u, 0x00000001u, 0x00000002u, 0x0004007cu, 0x00000128u, 0x00000138u, 0x00000137u, + 0x00050051u, 0x00000008u, 0x0000013bu, 0x00000138u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000013eu, + 0x00000138u, 0x00000001u, 0x00050084u, 0x00000008u, 0x0000013fu, 0x0000013eu, 0x00000118u, 0x00050051u, + 0x00000008u, 0x00000142u, 0x00000138u, 0x00000002u, 0x00050084u, 0x00000008u, 0x00000143u, 0x00000142u, + 0x00000118u, 0x00050080u, 0x00000008u, 0x00000145u, 0x00000143u, 0x00000144u, 0x0004003du, 0x00000006u, + 0x00000149u, 0x00000148u, 0x0004007cu, 0x00000008u, 0x0000014au, 0x00000149u, 0x00050080u, 0x00000008u, + 0x0000014bu, 0x0000013fu, 0x0000014au, 0x000500adu, 0x000000e2u, 0x0000014eu, 0x0000014bu, 0x00000145u, + 0x000300f7u, 0x00000150u, 0x00000000u, 0x000400fau, 0x0000014eu, 0x0000014fu, 0x00000150u, 0x000200f8u, + 0x0000014fu, 0x000200f9u, 0x0000032fu, 0x000200f8u, 0x00000150u, 0x0004007cu, 0x00000006u, 0x00000155u, + 0x0000013bu, 0x00070041u, 0x0000003bu, 0x00000337u, 0x00000038u, 0x00000039u, 0x00000155u, 0x00000039u, + 0x0004003du, 0x00000008u, 0x00000338u, 0x00000337u, 0x00070041u, 0x0000003bu, 0x0000033au, 0x00000038u, + 0x00000039u, 0x00000155u, 0x0000003fu, 0x0004003du, 0x00000008u, 0x0000033bu, 0x0000033au, 0x00070041u, + 0x0000003bu, 0x0000033du, 0x00000038u, 0x00000039u, 0x00000155u, 0x00000043u, 0x0004003du, 0x00000008u, + 0x0000033eu, 0x0000033du, 0x00070041u, 0x00000048u, 0x00000340u, 0x00000038u, 0x00000039u, 0x00000155u, + 0x00000047u, 0x0004003du, 0x00000032u, 0x00000341u, 0x00000340u, 0x00040072u, 0x00000008u, 0x00000342u, + 0x00000341u, 0x00070041u, 0x00000048u, 0x00000344u, 0x00000038u, 0x00000039u, 0x00000155u, 0x0000004du, + 0x0004003du, 0x00000032u, 0x00000345u, 0x00000344u, 0x00040072u, 0x00000008u, 0x00000346u, 0x00000345u, + 0x00070041u, 0x0000003bu, 0x00000348u, 0x00000038u, 0x00000039u, 0x00000155u, 0x00000052u, 0x0004003du, + 0x00000008u, 0x00000349u, 0x00000348u, 0x00070041u, 0x0000003bu, 0x0000034bu, 0x00000038u, 0x00000039u, + 0x00000155u, 0x00000056u, 0x0004003du, 0x00000008u, 0x0000034cu, 0x0000034bu, 0x00070041u, 0x0000003bu, + 0x0000034eu, 0x00000038u, 0x00000039u, 0x00000155u, 0x0000005au, 0x0004003du, 0x00000008u, 0x0000034fu, + 0x0000034eu, 0x00070041u, 0x00000048u, 0x00000351u, 0x00000038u, 0x00000039u, 0x00000155u, 0x0000005eu, + 0x0004003du, 0x00000032u, 0x00000352u, 0x00000351u, 0x00040072u, 0x00000008u, 0x00000353u, 0x00000352u, + 0x00070041u, 0x00000064u, 0x00000355u, 0x00000038u, 0x00000039u, 0x00000155u, 0x00000063u, 0x0004003du, + 0x00000033u, 0x00000356u, 0x00000355u, 0x00040071u, 0x00000006u, 0x00000357u, 0x00000356u, 0x0004007cu, + 0x00000008u, 0x00000358u, 0x00000357u, 0x00060041u, 0x00000078u, 0x00000363u, 0x00000076u, 0x00000039u, + 0x00000155u, 0x0004003du, 0x00000072u, 0x00000364u, 0x00000363u, 0x00050051u, 0x0000000eu, 0x00000365u, + 0x00000364u, 0x00000000u, 0x00050051u, 0x0000000eu, 0x00000367u, 0x00000364u, 0x00000001u, 0x00050051u, + 0x0000000eu, 0x00000369u, 0x00000364u, 0x00000002u, 0x00050051u, 0x0000000eu, 0x0000036bu, 0x00000364u, + 0x00000003u, 0x00050051u, 0x0000000eu, 0x0000036du, 0x00000364u, 0x00000004u, 0x00050051u, 0x0000000eu, + 0x0000036fu, 0x00000364u, 0x00000005u, 0x00050051u, 0x0000000eu, 0x00000371u, 0x00000364u, 0x00000006u, + 0x00050051u, 0x0000000eu, 0x00000373u, 0x00000364u, 0x00000007u, 0x00060041u, 0x00000096u, 0x0000037au, + 0x00000094u, 0x00000039u, 0x00000155u, 0x0004003du, 0x0000000eu, 0x0000037bu, 0x0000037au, 0x00050051u, + 0x00000008u, 0x0000037du, 0x0000037bu, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000037fu, 0x0000037bu, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00000381u, 0x0000037bu, 0x00000002u, 0x00050051u, 0x00000008u, + 0x00000383u, 0x0000037bu, 0x00000003u, 0x000500c7u, 0x00000008u, 0x00000167u, 0x00000358u, 0x0000003fu, + 0x000500abu, 0x000000e2u, 0x00000168u, 0x00000167u, 0x00000039u, 0x000500c7u, 0x00000008u, 0x0000016cu, + 0x00000358u, 0x0000005eu, 0x000500abu, 0x000000e2u, 0x0000016du, 0x0000016cu, 0x00000039u, 0x000500c7u, + 0x00000008u, 0x00000172u, 0x00000358u, 0x00000171u, 0x000500abu, 0x000000e2u, 0x00000173u, 0x00000172u, + 0x00000039u, 0x000500c7u, 0x00000008u, 0x00000177u, 0x00000358u, 0x00000043u, 0x000500abu, 0x000000e2u, + 0x00000178u, 0x00000177u, 0x00000039u, 0x000500c7u, 0x00000008u, 0x0000017cu, 0x00000358u, 0x0000004du, + 0x000500abu, 0x000000e2u, 0x0000017du, 0x0000017cu, 0x00000039u, 0x000500c3u, 0x00000008u, 0x00000181u, + 0x00000342u, 0x00000043u, 0x00050084u, 0x00000008u, 0x00000183u, 0x00000181u, 0x00000118u, 0x00050082u, + 0x00000008u, 0x00000187u, 0x0000014bu, 0x00000183u, 0x00050084u, 0x00000008u, 0x0000018bu, 0x00000338u, + 0x00000118u, 0x000500c4u, 0x00000008u, 0x0000018fu, 0x00000349u, 0x00000043u, 0x00050084u, 0x00000008u, + 0x00000190u, 0x00000187u, 0x0000018fu, 0x00050080u, 0x00000008u, 0x00000191u, 0x0000018bu, 0x00000190u, + 0x000300f7u, 0x00000196u, 0x00000000u, 0x000400fau, 0x00000178u, 0x00000195u, 0x00000196u, 0x000200f8u, + 0x00000195u, 0x00050084u, 0x00000008u, 0x0000019au, 0x00000197u, 0x00000349u, 0x00050080u, 0x00000008u, + 0x0000019cu, 0x00000191u, 0x0000019au, 0x000500c7u, 0x0000000eu, 0x000001a2u, 0x00000369u, 0x000004b8u, + 0x000500c7u, 0x0000000eu, 0x000001a7u, 0x0000036bu, 0x000004b8u, 0x000500c3u, 0x0000000eu, 0x000001abu, + 0x000001a2u, 0x000004b9u, 0x00050082u, 0x0000000eu, 0x000001acu, 0x000001a2u, 0x000001abu, 0x00050082u, + 0x0000000eu, 0x000001aeu, 0x000001acu, 0x000001a7u, 0x000500c3u, 0x0000000eu, 0x000001b1u, 0x000001a7u, + 0x000004b9u, 0x00050080u, 0x0000000eu, 0x000001b2u, 0x000001aeu, 0x000001b1u, 0x000500c7u, 0x0000000eu, + 0x000001b7u, 0x00000371u, 0x000004b8u, 0x000500c7u, 0x0000000eu, 0x000001bcu, 0x00000373u, 0x000004b8u, + 0x000500c3u, 0x0000000eu, 0x000001c0u, 0x000001b7u, 0x000004b9u, 0x00050082u, 0x0000000eu, 0x000001c1u, + 0x000001b7u, 0x000001c0u, 0x00050082u, 0x0000000eu, 0x000001c3u, 0x000001c1u, 0x000001bcu, 0x000500c3u, + 0x0000000eu, 0x000001c6u, 0x000001bcu, 0x000004b9u, 0x00050080u, 0x0000000eu, 0x000001c7u, 0x000001c3u, + 0x000001c6u, 0x000200f9u, 0x00000196u, 0x000200f8u, 0x00000196u, 0x000700f5u, 0x0000000eu, 0x000004b1u, + 0x000000e1u, 0x00000150u, 0x000001c7u, 0x00000195u, 0x000700f5u, 0x0000000eu, 0x000004afu, 0x000000e1u, + 0x00000150u, 0x000001b2u, 0x00000195u, 0x000700f5u, 0x00000008u, 0x000004acu, 0x00000191u, 0x00000150u, + 0x0000019cu, 0x00000195u, 0x000500c3u, 0x00000008u, 0x000001cbu, 0x000004acu, 0x000001cau, 0x000300f7u, + 0x000001d0u, 0x00000000u, 0x000400fau, 0x0000017du, 0x000001cfu, 0x000001d1u, 0x000200f8u, 0x000001cfu, + 0x000200f9u, 0x000001d0u, 0x000200f8u, 0x000001d1u, 0x000500c3u, 0x00000008u, 0x000001d3u, 0x000004acu, + 0x0000005au, 0x000500c7u, 0x00000008u, 0x000001d5u, 0x000001d3u, 0x000001d4u, 0x000200f9u, 0x000001d0u, + 0x000200f8u, 0x000001d0u, 0x000700f5u, 0x00000008u, 0x000004adu, 0x00000039u, 0x000001cfu, 0x000001d5u, + 0x000001d1u, 0x000500c3u, 0x00000008u, 0x0000038au, 0x00000187u, 0x00000114u, 0x000500c7u, 0x00000008u, + 0x0000038cu, 0x00000187u, 0x00000119u, 0x00070050u, 0x0000000eu, 0x0000038fu, 0x0000038au, 0x0000038au, + 0x0000038au, 0x0000038au, 0x00050084u, 0x0000000eu, 0x00000390u, 0x0000038fu, 0x00000369u, 0x00070050u, + 0x0000000eu, 0x00000393u, 0x00000114u, 0x00000114u, 0x00000114u, 0x00000114u, 0x000500c3u, 0x0000000eu, + 0x00000394u, 0x00000369u, 0x00000393u, 0x00070050u, 0x0000000eu, 0x00000395u, 0x0000038cu, 0x0000038cu, + 0x0000038cu, 0x0000038cu, 0x00050084u, 0x0000000eu, 0x00000396u, 0x00000395u, 0x00000394u, 0x00050080u, + 0x0000000eu, 0x00000397u, 0x00000390u, 0x00000396u, 0x00050080u, 0x0000000eu, 0x000001e0u, 0x00000365u, + 0x00000397u, 0x000500c7u, 0x0000000eu, 0x000001e3u, 0x000001e0u, 0x000004b8u, 0x00050080u, 0x0000000eu, + 0x000001e5u, 0x000001e3u, 0x000004afu, 0x000500c3u, 0x0000000eu, 0x000001e9u, 0x00000367u, 0x000004bau, + 0x000500c7u, 0x0000000eu, 0x000001ecu, 0x000001e9u, 0x000004bbu, 0x000500c3u, 0x00000008u, 0x0000039du, + 0x000004adu, 0x00000114u, 0x000500c7u, 0x00000008u, 0x0000039fu, 0x000004adu, 0x00000119u, 0x00070050u, + 0x0000000eu, 0x000003a2u, 0x0000039du, 0x0000039du, 0x0000039du, 0x0000039du, 0x00050084u, 0x0000000eu, + 0x000003a3u, 0x000003a2u, 0x000001ecu, 0x000500c3u, 0x0000000eu, 0x000003a7u, 0x000001ecu, 0x00000393u, + 0x00070050u, 0x0000000eu, 0x000003a8u, 0x0000039fu, 0x0000039fu, 0x0000039fu, 0x0000039fu, 0x00050084u, + 0x0000000eu, 0x000003a9u, 0x000003a8u, 0x000003a7u, 0x00050080u, 0x0000000eu, 0x000003aau, 0x000003a3u, + 0x000003a9u, 0x00050082u, 0x0000000eu, 0x000001f1u, 0x000001e5u, 0x000003aau, 0x000500c7u, 0x0000000eu, + 0x000001f4u, 0x000001f1u, 0x000004bcu, 0x00050084u, 0x0000000eu, 0x000003b6u, 0x0000038fu, 0x00000371u, + 0x000500c3u, 0x0000000eu, 0x000003bau, 0x00000371u, 0x00000393u, 0x00050084u, 0x0000000eu, 0x000003bcu, + 0x00000395u, 0x000003bau, 0x00050080u, 0x0000000eu, 0x000003bdu, 0x000003b6u, 0x000003bcu, 0x00050080u, + 0x0000000eu, 0x000001feu, 0x0000036du, 0x000003bdu, 0x000500c7u, 0x0000000eu, 0x00000201u, 0x000001feu, + 0x000004b8u, 0x00050080u, 0x0000000eu, 0x00000203u, 0x00000201u, 0x000004b1u, 0x000500c3u, 0x0000000eu, + 0x00000207u, 0x0000036fu, 0x000004bau, 0x000500c7u, 0x0000000eu, 0x00000209u, 0x00000207u, 0x000004bbu, + 0x00050084u, 0x0000000eu, 0x000003c9u, 0x000003a2u, 0x00000209u, 0x000500c3u, 0x0000000eu, 0x000003cdu, + 0x00000209u, 0x00000393u, 0x00050084u, 0x0000000eu, 0x000003cfu, 0x000003a8u, 0x000003cdu, 0x00050080u, + 0x0000000eu, 0x000003d0u, 0x000003c9u, 0x000003cfu, 0x00050082u, 0x0000000eu, 0x0000020eu, 0x00000203u, + 0x000003d0u, 0x000500c7u, 0x0000000eu, 0x00000210u, 0x0000020eu, 0x000004bcu, 0x000500c7u, 0x00000008u, + 0x0000021cu, 0x00000342u, 0x0000021bu, 0x00050084u, 0x00000008u, 0x00000221u, 0x0000021cu, 0x00000118u, + 0x00050084u, 0x00000008u, 0x00000223u, 0x00000346u, 0x00000118u, 0x00050084u, 0x00000008u, 0x00000226u, + 0x0000014bu, 0x0000004du, 0x00070050u, 0x0000000eu, 0x0000022au, 0x00000226u, 0x00000226u, 0x00000226u, + 0x00000226u, 0x00050080u, 0x0000000eu, 0x0000022bu, 0x0000022au, 0x00000229u, 0x0007000cu, 0x00000008u, + 0x00000231u, 0x00000001u, 0x0000002au, 0x00000342u, 0x0000037fu, 0x00050084u, 0x00000008u, 0x00000232u, + 0x00000231u, 0x00000118u, 0x0007000cu, 0x00000008u, 0x00000238u, 0x00000001u, 0x00000027u, 0x00000353u, + 0x00000383u, 0x00050084u, 0x00000008u, 0x00000239u, 0x00000238u, 0x00000118u, 0x00070050u, 0x0000000eu, + 0x0000023eu, 0x00000232u, 0x00000232u, 0x00000232u, 0x00000232u, 0x000500b1u, 0x000000e3u, 0x0000023fu, + 0x0000022bu, 0x0000023eu, 0x00070050u, 0x0000000eu, 0x00000243u, 0x00000239u, 0x00000239u, 0x00000239u, + 0x00000239u, 0x000500afu, 0x000000e3u, 0x00000244u, 0x0000022bu, 0x00000243u, 0x000600a9u, 0x000000bau, + 0x0000024au, 0x0000023fu, 0x00000249u, 0x00000248u, 0x000600a9u, 0x000000bau, 0x0000024cu, 0x00000244u, + 0x00000249u, 0x00000248u, 0x000500c5u, 0x000000bau, 0x0000024du, 0x0000024au, 0x0000024cu, 0x00070050u, + 0x0000000eu, 0x00000254u, 0x00000221u, 0x00000221u, 0x00000221u, 0x00000221u, 0x00050082u, 0x0000000eu, + 0x00000255u, 0x0000022bu, 0x00000254u, 0x00070050u, 0x0000000eu, 0x00000258u, 0x00000349u, 0x00000349u, + 0x00000349u, 0x00000349u, 0x00050084u, 0x0000000eu, 0x00000259u, 0x00000255u, 0x00000258u, 0x00070050u, + 0x0000000eu, 0x0000025au, 0x0000018bu, 0x0000018bu, 0x0000018bu, 0x0000018bu, 0x00050080u, 0x0000000eu, + 0x0000025bu, 0x0000025au, 0x00000259u, 0x00050084u, 0x00000008u, 0x0000025fu, 0x0000033bu, 0x00000118u, + 0x00070050u, 0x0000000eu, 0x00000266u, 0x0000034cu, 0x0000034cu, 0x0000034cu, 0x0000034cu, 0x00050084u, + 0x0000000eu, 0x00000267u, 0x00000255u, 0x00000266u, 0x00070050u, 0x0000000eu, 0x00000268u, 0x0000025fu, + 0x0000025fu, 0x0000025fu, 0x0000025fu, 0x00050080u, 0x0000000eu, 0x00000269u, 0x00000268u, 0x00000267u, + 0x00050084u, 0x00000008u, 0x0000026du, 0x0000033eu, 0x00000118u, 0x00070050u, 0x0000000eu, 0x00000270u, + 0x00000223u, 0x00000223u, 0x00000223u, 0x00000223u, 0x00050082u, 0x0000000eu, 0x00000271u, 0x0000022bu, + 0x00000270u, 0x00070050u, 0x0000000eu, 0x00000274u, 0x0000034fu, 0x0000034fu, 0x0000034fu, 0x0000034fu, + 0x00050084u, 0x0000000eu, 0x00000275u, 0x00000271u, 0x00000274u, 0x00070050u, 0x0000000eu, 0x00000276u, + 0x0000026du, 0x0000026du, 0x0000026du, 0x0000026du, 0x00050080u, 0x0000000eu, 0x00000277u, 0x00000276u, + 0x00000275u, 0x00050084u, 0x00000008u, 0x0000027du, 0x00000118u, 0x00000346u, 0x00070050u, 0x0000000eu, + 0x0000027eu, 0x0000027du, 0x0000027du, 0x0000027du, 0x0000027du, 0x000500b1u, 0x000000e3u, 0x0000027fu, + 0x0000022bu, 0x0000027eu, 0x000600a9u, 0x0000000eu, 0x00000280u, 0x0000027fu, 0x00000269u, 0x00000277u, + 0x000600cau, 0x0000000eu, 0x00000284u, 0x00000280u, 0x00000039u, 0x00000283u, 0x000600cau, 0x0000000eu, + 0x00000287u, 0x0000025bu, 0x00000039u, 0x00000286u, 0x000500c7u, 0x0000000eu, 0x000003d7u, 0x00000287u, + 0x000004bdu, 0x000500abu, 0x000000e3u, 0x000003d8u, 0x000003d7u, 0x000000e1u, 0x000600a9u, 0x0000000eu, + 0x000003d9u, 0x000003d8u, 0x000000e5u, 0x000000e1u, 0x000500c3u, 0x0000000eu, 0x000003dcu, 0x00000287u, + 0x000004beu, 0x000500c5u, 0x0000000eu, 0x000003deu, 0x000003dcu, 0x000003d9u, 0x000500c7u, 0x0000000eu, + 0x000003ebu, 0x00000284u, 0x000004bdu, 0x000500abu, 0x000000e3u, 0x000003ecu, 0x000003ebu, 0x000000e1u, + 0x000600a9u, 0x0000000eu, 0x000003edu, 0x000003ecu, 0x000000e5u, 0x000000e1u, 0x000500c3u, 0x0000000eu, + 0x000003f0u, 0x00000284u, 0x000004beu, 0x000500c5u, 0x0000000eu, 0x000003f2u, 0x000003f0u, 0x000003edu, + 0x00070050u, 0x000000e3u, 0x000004bfu, 0x00000168u, 0x00000168u, 0x00000168u, 0x00000168u, 0x000600a9u, + 0x0000000eu, 0x000004c0u, 0x000004bfu, 0x000003f2u, 0x000003deu, 0x000600a9u, 0x0000000eu, 0x000004c2u, + 0x000004bfu, 0x000003deu, 0x000003f2u, 0x000500c3u, 0x0000000eu, 0x0000029du, 0x000004c2u, 0x000000e5u, + 0x000500c3u, 0x0000000eu, 0x000002a0u, 0x000004c0u, 0x000000e5u, 0x000500adu, 0x000000e3u, 0x000002a1u, + 0x0000029du, 0x000002a0u, 0x000500c4u, 0x00000008u, 0x000002a5u, 0x0000037du, 0x0000003fu, 0x00050084u, + 0x00000008u, 0x000002a6u, 0x00000118u, 0x000002a5u, 0x00070050u, 0x0000000eu, 0x000002a7u, 0x000002a6u, + 0x000002a6u, 0x000002a6u, 0x000002a6u, 0x000500c4u, 0x00000008u, 0x000002abu, 0x00000381u, 0x0000003fu, + 0x00050084u, 0x00000008u, 0x000002acu, 0x00000118u, 0x000002abu, 0x00070050u, 0x0000000eu, 0x000002adu, + 0x000002acu, 0x000002acu, 0x000002acu, 0x000002acu, 0x0007000cu, 0x0000000eu, 0x000002b1u, 0x00000001u, + 0x00000027u, 0x000004c2u, 0x000004c0u, 0x000500afu, 0x000000e3u, 0x000002b3u, 0x000002b1u, 0x000002adu, + 0x0004009bu, 0x000000e2u, 0x000002b4u, 0x000002b3u, 0x0007000cu, 0x0000000eu, 0x000002b8u, 0x00000001u, + 0x0000002au, 0x000004c2u, 0x000004c0u, 0x000500b1u, 0x000000e3u, 0x000002bau, 0x000002b8u, 0x000002a7u, + 0x0004009bu, 0x000000e2u, 0x000002bbu, 0x000002bau, 0x0007000cu, 0x0000000eu, 0x000002beu, 0x00000001u, + 0x0000002au, 0x000004c2u, 0x000002a7u, 0x0007000cu, 0x0000000eu, 0x000002c1u, 0x00000001u, 0x00000027u, + 0x000002beu, 0x000002adu, 0x0007000cu, 0x0000000eu, 0x000002c4u, 0x00000001u, 0x0000002au, 0x000004c0u, + 0x000002a7u, 0x0007000cu, 0x0000000eu, 0x000002c7u, 0x00000001u, 0x00000027u, 0x000002c4u, 0x000002adu, + 0x000600a9u, 0x000000bau, 0x000002c9u, 0x000002a1u, 0x00000249u, 0x00000248u, 0x000500c5u, 0x000000bau, + 0x000002cbu, 0x000002c9u, 0x0000024du, 0x000500abu, 0x000000e3u, 0x000002ccu, 0x000002cbu, 0x00000248u, + 0x000600a9u, 0x0000000eu, 0x000002d1u, 0x000002ccu, 0x000002cfu, 0x000002c1u, 0x000600a9u, 0x0000000eu, + 0x000002d4u, 0x000002ccu, 0x000000e1u, 0x000002c7u, 0x0007004fu, 0x000000f6u, 0x000003fdu, 0x000002d1u, + 0x000002d1u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x000000f6u, 0x000003ffu, 0x000002d1u, 0x000002d1u, + 0x00000002u, 0x00000003u, 0x0007000cu, 0x000000f6u, 0x00000400u, 0x00000001u, 0x00000027u, 0x000003fdu, + 0x000003ffu, 0x00050051u, 0x00000008u, 0x00000402u, 0x00000400u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00000404u, 0x00000400u, 0x00000001u, 0x0007000cu, 0x00000008u, 0x00000405u, 0x00000001u, 0x00000027u, + 0x00000402u, 0x00000404u, 0x000500c3u, 0x00000008u, 0x000002d9u, 0x00000405u, 0x00000047u, 0x0007004fu, + 0x000000f6u, 0x0000040au, 0x000002d4u, 0x000002d4u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x000000f6u, + 0x0000040cu, 0x000002d4u, 0x000002d4u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x000000f6u, 0x0000040du, + 0x00000001u, 0x0000002au, 0x0000040au, 0x0000040cu, 0x00050051u, 0x00000008u, 0x0000040fu, 0x0000040du, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00000411u, 0x0000040du, 0x00000001u, 0x0007000cu, 0x00000008u, + 0x00000412u, 0x00000001u, 0x0000002au, 0x0000040fu, 0x00000411u, 0x000500c3u, 0x00000008u, 0x000002deu, + 0x00000412u, 0x00000047u, 0x0004009bu, 0x000000e2u, 0x000002e8u, 0x000002ccu, 0x000400a8u, 0x000000e2u, + 0x000002e9u, 0x000002e8u, 0x000400a8u, 0x000000e2u, 0x000002ebu, 0x000002b4u, 0x000500a7u, 0x000000e2u, + 0x000002ecu, 0x000002e9u, 0x000002ebu, 0x000400a8u, 0x000000e2u, 0x000002eeu, 0x000002bbu, 0x000500a7u, + 0x000000e2u, 0x000002efu, 0x000002ecu, 0x000002eeu, 0x000600a9u, 0x00000008u, 0x000002f0u, 0x000002efu, + 0x0000003fu, 0x00000039u, 0x000300f7u, 0x000002f4u, 0x00000000u, 0x000400fau, 0x0000016du, 0x000002f3u, + 0x000002f4u, 0x000200f8u, 0x000002f3u, 0x000500c3u, 0x00000008u, 0x000002f6u, 0x0000014bu, 0x00000114u, + 0x000500c7u, 0x00000008u, 0x000002f7u, 0x000002f6u, 0x0000003fu, 0x000600a9u, 0x00000008u, 0x000002f9u, + 0x00000173u, 0x0000003fu, 0x00000039u, 0x000500abu, 0x000000e2u, 0x000002fau, 0x000002f7u, 0x000002f9u, + 0x000600a9u, 0x00000008u, 0x000004c3u, 0x000002fau, 0x00000039u, 0x000002f0u, 0x000200f9u, 0x000002f4u, + 0x000200f8u, 0x000002f4u, 0x000700f5u, 0x00000008u, 0x000004b6u, 0x000002f0u, 0x000001d0u, 0x000004c3u, + 0x000002f3u, 0x000300f7u, 0x00000301u, 0x00000000u, 0x000400fau, 0x00000168u, 0x00000300u, 0x00000306u, + 0x000200f8u, 0x00000300u, 0x00050082u, 0x00000008u, 0x00000305u, 0x000002deu, 0x000001cbu, 0x000200f9u, + 0x00000301u, 0x000200f8u, 0x00000306u, 0x00050082u, 0x00000008u, 0x0000030au, 0x000001cbu, 0x000002d9u, + 0x000200f9u, 0x00000301u, 0x000200f8u, 0x00000301u, 0x000700f5u, 0x00000008u, 0x000004b4u, 0x00000305u, + 0x00000300u, 0x0000030au, 0x00000306u, 0x00050041u, 0x00000132u, 0x0000030fu, 0x0000030du, 0x00000099u, + 0x0004003du, 0x00000006u, 0x00000310u, 0x0000030fu, 0x00070041u, 0x00000096u, 0x00000417u, 0x000000aeu, + 0x00000039u, 0x00000310u, 0x00000039u, 0x0003003eu, 0x00000417u, 0x000001f4u, 0x00070041u, 0x00000096u, + 0x0000041bu, 0x000000aeu, 0x00000039u, 0x00000310u, 0x0000003fu, 0x0003003eu, 0x0000041bu, 0x00000210u, + 0x0004007cu, 0x000000bau, 0x0000041fu, 0x000002d1u, 0x00040071u, 0x000000a9u, 0x00000420u, 0x0000041fu, + 0x00070041u, 0x000000bdu, 0x00000421u, 0x000000aeu, 0x00000039u, 0x00000310u, 0x00000043u, 0x0003003eu, + 0x00000421u, 0x00000420u, 0x0004007cu, 0x000000bau, 0x00000425u, 0x000002d4u, 0x00040071u, 0x000000a9u, + 0x00000426u, 0x00000425u, 0x00070041u, 0x000000bdu, 0x00000427u, 0x000000aeu, 0x00000039u, 0x00000310u, + 0x00000047u, 0x0003003eu, 0x00000427u, 0x00000426u, 0x00070041u, 0x0000003bu, 0x0000042bu, 0x000000aeu, + 0x00000039u, 0x00000310u, 0x0000004du, 0x0003003eu, 0x0000042bu, 0x000001cbu, 0x00070041u, 0x0000003bu, + 0x0000042fu, 0x000000aeu, 0x00000039u, 0x00000310u, 0x00000052u, 0x0003003eu, 0x0000042fu, 0x000002d9u, + 0x00070041u, 0x0000003bu, 0x00000433u, 0x000000aeu, 0x00000039u, 0x00000310u, 0x00000056u, 0x0003003eu, + 0x00000433u, 0x000002deu, 0x00040072u, 0x00000032u, 0x00000437u, 0x000004b4u, 0x00070041u, 0x00000048u, + 0x00000438u, 0x000000aeu, 0x00000039u, 0x00000310u, 0x0000005au, 0x0003003eu, 0x00000438u, 0x00000437u, + 0x00040071u, 0x000000a8u, 0x0000043cu, 0x000004b6u, 0x00070041u, 0x000000dau, 0x0000043du, 0x000000aeu, + 0x00000039u, 0x00000310u, 0x0000005eu, 0x0003003eu, 0x0000043du, 0x0000043cu, 0x000200f9u, 0x0000032fu, + 0x000200f8u, 0x0000032fu, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x0000001bu, + 0x00000000u, 0x00020011u, 0x00000001u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, + 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0006000fu, 0x00000005u, 0x00000004u, 0x6e69616du, + 0x00000000u, 0x00000010u, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, + 0x00040047u, 0x00000008u, 0x00000006u, 0x00000010u, 0x00040048u, 0x00000009u, 0x00000000u, 0x00000019u, + 0x00050048u, 0x00000009u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000009u, 0x00000002u, + 0x00040047u, 0x0000000bu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000000bu, 0x00000021u, 0x00000000u, + 0x00040047u, 0x00000010u, 0x0000000bu, 0x0000001cu, 0x00040047u, 0x00000019u, 0x00000001u, 0x00000000u, + 0x00040047u, 0x0000001au, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, + 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x00040017u, 0x00000007u, 0x00000006u, + 0x00000004u, 0x0003001du, 0x00000008u, 0x00000007u, 0x0003001eu, 0x00000009u, 0x00000008u, 0x00040020u, + 0x0000000au, 0x0000000cu, 0x00000009u, 0x0004003bu, 0x0000000au, 0x0000000bu, 0x0000000cu, 0x00040015u, + 0x0000000cu, 0x00000020u, 0x00000001u, 0x0004002bu, 0x0000000cu, 0x0000000du, 0x00000000u, 0x00040017u, + 0x0000000eu, 0x00000006u, 0x00000003u, 0x00040020u, 0x0000000fu, 0x00000001u, 0x0000000eu, 0x0004003bu, + 0x0000000fu, 0x00000010u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x00000011u, 0x00000000u, 0x00040020u, + 0x00000012u, 0x00000001u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x00000015u, 0x00000001u, 0x0007002cu, + 0x00000007u, 0x00000016u, 0x00000011u, 0x00000015u, 0x00000015u, 0x00000011u, 0x00040020u, 0x00000017u, + 0x0000000cu, 0x00000007u, 0x00040032u, 0x00000006u, 0x00000019u, 0x00000001u, 0x00060033u, 0x0000000eu, + 0x0000001au, 0x00000019u, 0x00000015u, 0x00000015u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, + 0x00000003u, 0x000200f8u, 0x00000005u, 0x00050041u, 0x00000012u, 0x00000013u, 0x00000010u, 0x00000011u, + 0x0004003du, 0x00000006u, 0x00000014u, 0x00000013u, 0x00060041u, 0x00000017u, 0x00000018u, 0x0000000bu, + 0x0000000du, 0x00000014u, 0x0003003eu, 0x00000018u, 0x00000016u, 0x000100fdu, 0x00010038u, 0x07230203u, + 0x00010300u, 0x000d000bu, 0x000007a5u, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x00001151u, + 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, + 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, + 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00000203u, + 0x0000020eu, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000020u, 0x00000001u, 0x00000001u, 0x00050048u, + 0x000001acu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000001acu, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x000001acu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000001acu, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000001acu, 0x00000004u, 0x00000023u, 0x0000000eu, + 0x00050048u, 0x000001acu, 0x00000005u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000001acu, 0x00000006u, + 0x00000023u, 0x00000014u, 0x00050048u, 0x000001acu, 0x00000007u, 0x00000023u, 0x00000018u, 0x00050048u, + 0x000001acu, 0x00000008u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x000001acu, 0x00000009u, 0x00000023u, + 0x0000001eu, 0x00050048u, 0x000001acu, 0x0000000au, 0x00000023u, 0x0000001fu, 0x00040047u, 0x000001adu, + 0x00000006u, 0x00000020u, 0x00040048u, 0x000001aeu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001aeu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001aeu, 0x00000002u, 0x00040047u, 0x000001b0u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000001b0u, 0x00000021u, 0x00000000u, 0x00040047u, 0x000001e1u, + 0x00000006u, 0x00000010u, 0x00040048u, 0x000001e2u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001e2u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001e2u, 0x00000002u, 0x00040047u, 0x000001e4u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000001e4u, 0x00000021u, 0x00000001u, 0x00040047u, 0x000001f6u, + 0x00000006u, 0x00000010u, 0x00050048u, 0x000001f7u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x000001f7u, 0x00000002u, 0x00040047u, 0x000001f9u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001f9u, + 0x00000021u, 0x00000006u, 0x00040047u, 0x00000203u, 0x0000000bu, 0x0000001au, 0x00040047u, 0x0000020eu, + 0x0000000bu, 0x0000001du, 0x00040047u, 0x00000222u, 0x00000001u, 0x00000004u, 0x00040047u, 0x00000223u, + 0x00000001u, 0x00000001u, 0x00040047u, 0x0000022cu, 0x00000001u, 0x00000002u, 0x00050048u, 0x00000236u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000236u, 0x00000001u, 0x00000023u, 0x00000008u, + 0x00030047u, 0x00000236u, 0x00000002u, 0x00040047u, 0x00000273u, 0x00000001u, 0x00000006u, 0x00040047u, + 0x000002b4u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000002b5u, 0x00000000u, 0x00000019u, 0x00050048u, + 0x000002b5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002b5u, 0x00000002u, 0x00040047u, + 0x000002b7u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000002b7u, 0x00000021u, 0x00000003u, 0x00040047u, + 0x000002b9u, 0x00000001u, 0x00000003u, 0x00040047u, 0x000002c4u, 0x00000006u, 0x00000004u, 0x00040048u, + 0x000002c5u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000002c5u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000002c5u, 0x00000002u, 0x00040047u, 0x000002c7u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000002c7u, 0x00000021u, 0x00000004u, 0x00040047u, 0x000002e4u, 0x00000006u, 0x00000004u, 0x00040048u, + 0x000002e5u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000002e5u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000002e5u, 0x00000002u, 0x00040047u, 0x000002e7u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000002e7u, 0x00000021u, 0x00000005u, 0x00040047u, 0x0000030eu, 0x00000006u, 0x00000001u, 0x00050048u, + 0x0000030fu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x0000030fu, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x0000030fu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, 0x00000310u, + 0x00000006u, 0x00000010u, 0x00040048u, 0x00000311u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000311u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000311u, 0x00000002u, 0x00040047u, 0x00000313u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x00000313u, 0x00000021u, 0x00000002u, 0x00040047u, 0x0000031cu, + 0x00000006u, 0x00000010u, 0x00040048u, 0x0000031du, 0x00000000u, 0x00000019u, 0x00050048u, 0x0000031du, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000031du, 0x00000002u, 0x00040047u, 0x0000031fu, + 0x00000022u, 0x00000000u, 0x00040047u, 0x0000031fu, 0x00000021u, 0x00000007u, 0x00040047u, 0x00000321u, + 0x00000001u, 0x00000005u, 0x00040047u, 0x00000335u, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, + 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, 0x00040017u, + 0x00000007u, 0x00000006u, 0x00000004u, 0x00020014u, 0x0000001eu, 0x00040017u, 0x00000020u, 0x00000006u, + 0x00000002u, 0x00040015u, 0x00000033u, 0x00000020u, 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000042u, + 0x0000000fu, 0x0004002bu, 0x00000033u, 0x0000004du, 0x00000000u, 0x0004002bu, 0x00000033u, 0x00000050u, + 0x00000001u, 0x0004001eu, 0x00000068u, 0x00000007u, 0x00000007u, 0x00040017u, 0x0000006du, 0x00000033u, + 0x00000004u, 0x0004001eu, 0x00000074u, 0x0000006du, 0x0000006du, 0x0004002bu, 0x00000006u, 0x00000082u, + 0x00000003u, 0x0004002bu, 0x00000006u, 0x00000085u, 0xfffffffcu, 0x0004002bu, 0x00000006u, 0x00000088u, + 0x00000004u, 0x0004002bu, 0x00000006u, 0x00000096u, 0x00000005u, 0x0004002bu, 0x00000006u, 0x00000098u, + 0x00000000u, 0x0004002bu, 0x00000006u, 0x000000aau, 0x00000006u, 0x0004002bu, 0x00000006u, 0x000000acu, + 0x00000001u, 0x0004002bu, 0x00000006u, 0x000000beu, 0x00000007u, 0x0004002bu, 0x00000006u, 0x000000c0u, + 0x00000002u, 0x00040017u, 0x000000d5u, 0x0000001eu, 0x00000004u, 0x0004002bu, 0x00000006u, 0x000000e3u, + 0x7fffffffu, 0x0007002cu, 0x00000007u, 0x000000e4u, 0x000000e3u, 0x000000e3u, 0x000000e3u, 0x000000e3u, + 0x0007002cu, 0x00000007u, 0x000000e6u, 0x00000098u, 0x00000098u, 0x00000098u, 0x00000098u, 0x0004002bu, + 0x00000006u, 0x000000eau, 0x80000000u, 0x0007002cu, 0x00000007u, 0x000000ebu, 0x000000eau, 0x000000eau, + 0x000000eau, 0x000000eau, 0x0004002bu, 0x00000006u, 0x000000edu, 0xffffffffu, 0x0007002cu, 0x00000007u, + 0x000000eeu, 0x000000edu, 0x000000edu, 0x000000edu, 0x000000edu, 0x0004002bu, 0x00000006u, 0x00000114u, + 0x000007ffu, 0x0005002cu, 0x00000020u, 0x00000123u, 0x00000098u, 0x000000e3u, 0x0004002bu, 0x00000006u, + 0x0000014cu, 0x00000008u, 0x0003002au, 0x0000001eu, 0x00000157u, 0x0004002bu, 0x00000006u, 0x0000015au, + 0x00000009u, 0x0005002cu, 0x00000020u, 0x00000166u, 0x000000edu, 0x00000098u, 0x0004002bu, 0x00000006u, + 0x0000017eu, 0x00000080u, 0x00040015u, 0x000001aau, 0x00000010u, 0x00000001u, 0x00040015u, 0x000001abu, + 0x00000008u, 0x00000000u, 0x000d001eu, 0x000001acu, 0x00000006u, 0x00000006u, 0x00000006u, 0x000001aau, + 0x000001aau, 0x00000006u, 0x00000006u, 0x00000006u, 0x000001aau, 0x000001abu, 0x000001abu, 0x0003001du, + 0x000001adu, 0x000001acu, 0x0003001eu, 0x000001aeu, 0x000001adu, 0x00040020u, 0x000001afu, 0x0000000cu, + 0x000001aeu, 0x0004003bu, 0x000001afu, 0x000001b0u, 0x0000000cu, 0x00040020u, 0x000001b2u, 0x0000000cu, + 0x00000006u, 0x00040020u, 0x000001bcu, 0x0000000cu, 0x000001aau, 0x00040020u, 0x000001d2u, 0x0000000cu, + 0x000001abu, 0x0003001du, 0x000001e1u, 0x00000007u, 0x0003001eu, 0x000001e2u, 0x000001e1u, 0x00040020u, + 0x000001e3u, 0x0000000cu, 0x000001e2u, 0x0004003bu, 0x000001e3u, 0x000001e4u, 0x0000000cu, 0x00040020u, + 0x000001e6u, 0x0000000cu, 0x00000007u, 0x0004002bu, 0x00000033u, 0x000001edu, 0x00000002u, 0x0004002bu, + 0x00000033u, 0x000001f0u, 0x00000003u, 0x0003001du, 0x000001f6u, 0x0000006du, 0x0003001eu, 0x000001f7u, + 0x000001f6u, 0x00040020u, 0x000001f8u, 0x0000000cu, 0x000001f7u, 0x0004003bu, 0x000001f8u, 0x000001f9u, + 0x0000000cu, 0x00040020u, 0x000001fbu, 0x0000000cu, 0x00000033u, 0x00040017u, 0x00000201u, 0x00000033u, + 0x00000003u, 0x00040020u, 0x00000202u, 0x00000001u, 0x00000201u, 0x0004003bu, 0x00000202u, 0x00000203u, + 0x00000001u, 0x00040020u, 0x00000204u, 0x00000001u, 0x00000033u, 0x00040017u, 0x00000209u, 0x00000033u, + 0x00000002u, 0x0004003bu, 0x00000204u, 0x0000020eu, 0x00000001u, 0x0005002cu, 0x00000020u, 0x00000219u, + 0x0000014cu, 0x00000088u, 0x00040032u, 0x00000006u, 0x00000222u, 0x00000400u, 0x00040032u, 0x00000006u, + 0x00000223u, 0x00000008u, 0x00060034u, 0x00000006u, 0x00000224u, 0x00000087u, 0x00000222u, 0x00000223u, + 0x00060034u, 0x00000006u, 0x0000022bu, 0x00000084u, 0x00000223u, 0x0000014cu, 0x00040032u, 0x00000006u, + 0x0000022cu, 0x00000008u, 0x00060034u, 0x00000006u, 0x0000022du, 0x00000084u, 0x0000022cu, 0x00000088u, + 0x00050033u, 0x00000020u, 0x0000022eu, 0x0000022bu, 0x0000022du, 0x00060034u, 0x00000006u, 0x00000232u, + 0x00000084u, 0x00000223u, 0x0000014cu, 0x00060034u, 0x00000006u, 0x00000233u, 0x00000084u, 0x0000022cu, + 0x00000088u, 0x00050033u, 0x00000020u, 0x00000234u, 0x00000232u, 0x00000233u, 0x0004001eu, 0x00000236u, + 0x00000209u, 0x00000006u, 0x00040020u, 0x00000237u, 0x00000009u, 0x00000236u, 0x0004003bu, 0x00000237u, + 0x00000238u, 0x00000009u, 0x00040020u, 0x00000239u, 0x00000009u, 0x00000209u, 0x00050033u, 0x00000020u, + 0x00000242u, 0x00000223u, 0x0000022cu, 0x00050033u, 0x00000020u, 0x00000246u, 0x00000223u, 0x0000022cu, + 0x00040020u, 0x0000024fu, 0x00000009u, 0x00000006u, 0x00040020u, 0x00000256u, 0x00000004u, 0x00000033u, + 0x0004003bu, 0x00000256u, 0x00000257u, 0x00000004u, 0x0004002bu, 0x00000033u, 0x00000258u, 0x00000108u, + 0x0004002bu, 0x00000006u, 0x0000025bu, 0x00000020u, 0x00040032u, 0x00000006u, 0x00000273u, 0x00000001u, + 0x0003001du, 0x000002b4u, 0x00000033u, 0x0003001eu, 0x000002b5u, 0x000002b4u, 0x00040020u, 0x000002b6u, + 0x0000000cu, 0x000002b5u, 0x0004003bu, 0x000002b6u, 0x000002b7u, 0x0000000cu, 0x00040032u, 0x00000006u, + 0x000002b9u, 0x00000100u, 0x00060034u, 0x00000006u, 0x000002bau, 0x00000087u, 0x000002b9u, 0x0000025bu, + 0x0003001du, 0x000002c4u, 0x00000033u, 0x0003001eu, 0x000002c5u, 0x000002c4u, 0x00040020u, 0x000002c6u, + 0x0000000cu, 0x000002c5u, 0x0004003bu, 0x000002c6u, 0x000002c7u, 0x0000000cu, 0x0003001du, 0x000002e4u, + 0x00000033u, 0x0003001eu, 0x000002e5u, 0x000002e4u, 0x00040020u, 0x000002e6u, 0x0000000cu, 0x000002e5u, + 0x0004003bu, 0x000002e6u, 0x000002e7u, 0x0000000cu, 0x00040017u, 0x0000030cu, 0x000001abu, 0x00000004u, + 0x0004002bu, 0x00000033u, 0x0000030du, 0x00000008u, 0x0004001cu, 0x0000030eu, 0x000001abu, 0x0000030du, + 0x0005001eu, 0x0000030fu, 0x0000030cu, 0x0000030cu, 0x0000030eu, 0x0003001du, 0x00000310u, 0x0000030fu, + 0x0003001eu, 0x00000311u, 0x00000310u, 0x00040020u, 0x00000312u, 0x0000000cu, 0x00000311u, 0x0004003bu, + 0x00000312u, 0x00000313u, 0x0000000cu, 0x0003001du, 0x0000031cu, 0x0000006du, 0x0003001eu, 0x0000031du, + 0x0000031cu, 0x00040020u, 0x0000031eu, 0x0000000cu, 0x0000031du, 0x0004003bu, 0x0000031eu, 0x0000031fu, + 0x0000000cu, 0x00040032u, 0x00000006u, 0x00000321u, 0x00008000u, 0x00060034u, 0x00000033u, 0x00000322u, + 0x00000080u, 0x00000321u, 0x0000004du, 0x00040020u, 0x00000330u, 0x0000000cu, 0x0000006du, 0x0004002bu, + 0x00000033u, 0x00000334u, 0x00000020u, 0x0006002cu, 0x00000201u, 0x00000335u, 0x00000334u, 0x00000050u, + 0x00000050u, 0x0005002cu, 0x00000020u, 0x00000799u, 0x000000acu, 0x000000acu, 0x0007002cu, 0x00000007u, + 0x0000079au, 0x00000042u, 0x00000042u, 0x00000042u, 0x00000042u, 0x00050036u, 0x00000002u, 0x00000004u, + 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x00050041u, 0x00000204u, 0x00000205u, 0x00000203u, + 0x0000004du, 0x0004003du, 0x00000033u, 0x00000206u, 0x00000205u, 0x0004007cu, 0x00000006u, 0x00000207u, + 0x00000206u, 0x0004003du, 0x00000201u, 0x0000020au, 0x00000203u, 0x0007004fu, 0x00000209u, 0x0000020bu, + 0x0000020au, 0x0000020au, 0x00000001u, 0x00000002u, 0x0004007cu, 0x00000020u, 0x0000020cu, 0x0000020bu, + 0x0004003du, 0x00000033u, 0x0000020fu, 0x0000020eu, 0x0004007cu, 0x00000006u, 0x00000210u, 0x0000020fu, + 0x000500c7u, 0x00000006u, 0x00000213u, 0x00000210u, 0x000000beu, 0x000500c3u, 0x00000006u, 0x00000216u, + 0x00000210u, 0x00000082u, 0x00050084u, 0x00000020u, 0x0000021au, 0x0000020cu, 0x00000219u, 0x00050050u, + 0x00000020u, 0x0000021du, 0x00000213u, 0x00000216u, 0x00050080u, 0x00000020u, 0x0000021eu, 0x0000021au, + 0x0000021du, 0x00050051u, 0x00000006u, 0x00000221u, 0x0000021eu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00000225u, 0x00000221u, 0x00000224u, 0x00050051u, 0x00000006u, 0x00000227u, 0x0000021eu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00000228u, 0x00000225u, 0x00000227u, 0x00050084u, 0x00000020u, 0x0000022fu, + 0x0000020cu, 0x0000022eu, 0x00050080u, 0x00000020u, 0x00000235u, 0x0000022fu, 0x00000234u, 0x00050041u, + 0x00000239u, 0x0000023au, 0x00000238u, 0x00000098u, 0x0004003du, 0x00000209u, 0x0000023bu, 0x0000023au, + 0x0004007cu, 0x00000020u, 0x0000023cu, 0x0000023bu, 0x0007000cu, 0x00000020u, 0x0000023du, 0x00000001u, + 0x00000027u, 0x00000235u, 0x0000023cu, 0x00050082u, 0x00000020u, 0x0000023fu, 0x0000023du, 0x00000799u, + 0x00050084u, 0x00000020u, 0x00000243u, 0x0000021eu, 0x00000242u, 0x00050080u, 0x00000020u, 0x00000247u, + 0x00000243u, 0x00000246u, 0x0007000cu, 0x00000020u, 0x0000024bu, 0x00000001u, 0x00000027u, 0x00000247u, + 0x0000023cu, 0x00050082u, 0x00000020u, 0x0000024du, 0x0000024bu, 0x00000799u, 0x00050041u, 0x0000024fu, + 0x00000250u, 0x00000238u, 0x000000acu, 0x0004003du, 0x00000006u, 0x00000251u, 0x00000250u, 0x000500aau, + 0x0000001eu, 0x00000253u, 0x00000210u, 0x00000098u, 0x000300f7u, 0x00000255u, 0x00000000u, 0x000400fau, + 0x00000253u, 0x00000254u, 0x00000255u, 0x000200f8u, 0x00000254u, 0x0003003eu, 0x00000257u, 0x0000004du, + 0x000200f9u, 0x00000255u, 0x000200f8u, 0x00000255u, 0x000400e0u, 0x000001edu, 0x000001edu, 0x00000258u, + 0x000500b1u, 0x0000001eu, 0x0000025cu, 0x00000210u, 0x0000025bu, 0x000300f7u, 0x0000025eu, 0x00000000u, + 0x000400fau, 0x0000025cu, 0x0000025du, 0x0000025eu, 0x000200f8u, 0x0000025du, 0x00050084u, 0x00000006u, + 0x00000261u, 0x00000207u, 0x0000025bu, 0x00050080u, 0x00000006u, 0x00000263u, 0x00000261u, 0x00000210u, + 0x0004007cu, 0x00000033u, 0x00000264u, 0x00000263u, 0x0004007cu, 0x00000033u, 0x00000267u, 0x00000251u, + 0x000500b0u, 0x0000001eu, 0x00000268u, 0x00000264u, 0x00000267u, 0x000300f7u, 0x0000026au, 0x00000000u, + 0x000400fau, 0x00000268u, 0x00000269u, 0x0000026au, 0x000200f8u, 0x00000269u, 0x00060041u, 0x000001e6u, + 0x00000358u, 0x000001e4u, 0x00000098u, 0x00000264u, 0x0004003du, 0x00000007u, 0x00000359u, 0x00000358u, + 0x00050051u, 0x00000006u, 0x0000035bu, 0x00000359u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000035du, + 0x00000359u, 0x00000001u, 0x00050051u, 0x00000006u, 0x0000035fu, 0x00000359u, 0x00000002u, 0x00050051u, + 0x00000006u, 0x00000361u, 0x00000359u, 0x00000003u, 0x00070041u, 0x000001b2u, 0x00000366u, 0x000001b0u, + 0x00000098u, 0x00000264u, 0x00000098u, 0x0004003du, 0x00000006u, 0x00000367u, 0x00000366u, 0x00070041u, + 0x000001b2u, 0x00000369u, 0x000001b0u, 0x00000098u, 0x00000264u, 0x000000acu, 0x0004003du, 0x00000006u, + 0x0000036au, 0x00000369u, 0x00070041u, 0x000001b2u, 0x0000036cu, 0x000001b0u, 0x00000098u, 0x00000264u, + 0x000000c0u, 0x0004003du, 0x00000006u, 0x0000036du, 0x0000036cu, 0x00070041u, 0x000001bcu, 0x0000036fu, + 0x000001b0u, 0x00000098u, 0x00000264u, 0x00000082u, 0x0004003du, 0x000001aau, 0x00000370u, 0x0000036fu, + 0x00040072u, 0x00000006u, 0x00000371u, 0x00000370u, 0x00070041u, 0x000001bcu, 0x00000373u, 0x000001b0u, + 0x00000098u, 0x00000264u, 0x00000088u, 0x0004003du, 0x000001aau, 0x00000374u, 0x00000373u, 0x00040072u, + 0x00000006u, 0x00000375u, 0x00000374u, 0x00070041u, 0x000001b2u, 0x00000377u, 0x000001b0u, 0x00000098u, + 0x00000264u, 0x00000096u, 0x0004003du, 0x00000006u, 0x00000378u, 0x00000377u, 0x00070041u, 0x000001b2u, + 0x0000037au, 0x000001b0u, 0x00000098u, 0x00000264u, 0x000000aau, 0x0004003du, 0x00000006u, 0x0000037bu, + 0x0000037au, 0x00070041u, 0x000001b2u, 0x0000037du, 0x000001b0u, 0x00000098u, 0x00000264u, 0x000000beu, + 0x0004003du, 0x00000006u, 0x0000037eu, 0x0000037du, 0x00070041u, 0x000001bcu, 0x00000380u, 0x000001b0u, + 0x00000098u, 0x00000264u, 0x0000014cu, 0x0004003du, 0x000001aau, 0x00000381u, 0x00000380u, 0x00040072u, + 0x00000006u, 0x00000382u, 0x00000381u, 0x00070041u, 0x000001d2u, 0x00000384u, 0x000001b0u, 0x00000098u, + 0x00000264u, 0x0000015au, 0x0004003du, 0x000001abu, 0x00000385u, 0x00000384u, 0x00040071u, 0x00000033u, + 0x00000386u, 0x00000385u, 0x0004007cu, 0x00000006u, 0x00000387u, 0x00000386u, 0x000300f7u, 0x0000040eu, + 0x00000000u, 0x000300fbu, 0x0000004du, 0x0000039du, 0x000200f8u, 0x0000039du, 0x00050051u, 0x00000006u, + 0x0000039fu, 0x0000022fu, 0x00000001u, 0x000500c3u, 0x00000006u, 0x000003a3u, 0x0000035du, 0x000000c0u, + 0x00050084u, 0x00000006u, 0x000003a4u, 0x00000273u, 0x000003a3u, 0x0007000cu, 0x00000006u, 0x000003a5u, + 0x00000001u, 0x0000002au, 0x0000039fu, 0x000003a4u, 0x00050051u, 0x00000006u, 0x000003a8u, 0x0000023fu, + 0x00000001u, 0x00050080u, 0x00000006u, 0x000003acu, 0x00000361u, 0x00000082u, 0x000500c3u, 0x00000006u, + 0x000003adu, 0x000003acu, 0x000000c0u, 0x00050084u, 0x00000006u, 0x000003aeu, 0x00000273u, 0x000003adu, + 0x00050082u, 0x00000006u, 0x000003afu, 0x000003aeu, 0x000000acu, 0x0007000cu, 0x00000006u, 0x000003b0u, + 0x00000001u, 0x00000027u, 0x000003a8u, 0x000003afu, 0x00050084u, 0x00000006u, 0x000003b4u, 0x000003a5u, + 0x00000088u, 0x00050084u, 0x00000006u, 0x000003b7u, 0x000003b0u, 0x00000088u, 0x00050080u, 0x00000006u, + 0x000003b8u, 0x000003b7u, 0x00000082u, 0x00050084u, 0x00000006u, 0x000003bdu, 0x00000273u, 0x00000371u, + 0x0007000cu, 0x00000006u, 0x000003beu, 0x00000001u, 0x0000002au, 0x000003b4u, 0x000003bdu, 0x00050084u, + 0x00000006u, 0x000003c3u, 0x00000273u, 0x00000382u, 0x00050082u, 0x00000006u, 0x000003c4u, 0x000003c3u, + 0x000000acu, 0x0007000cu, 0x00000006u, 0x000003c5u, 0x00000001u, 0x00000027u, 0x000003b8u, 0x000003c4u, + 0x000500b1u, 0x0000001eu, 0x000003c8u, 0x000003c5u, 0x000003beu, 0x000300f7u, 0x000003cau, 0x00000000u, + 0x000400fau, 0x000003c8u, 0x000003c9u, 0x000003cau, 0x000200f8u, 0x000003c9u, 0x000200f9u, 0x0000040eu, + 0x000200f8u, 0x000003cau, 0x000500c7u, 0x00000006u, 0x000003cdu, 0x00000387u, 0x000000acu, 0x000500abu, + 0x0000001eu, 0x000003ceu, 0x000003cdu, 0x00000098u, 0x00050084u, 0x00000006u, 0x000003d4u, 0x00000375u, + 0x00000273u, 0x00050050u, 0x00000020u, 0x000003d5u, 0x000003d4u, 0x000003d4u, 0x00050080u, 0x00000020u, + 0x000003d6u, 0x000003d5u, 0x00000166u, 0x00050050u, 0x00000020u, 0x000003d8u, 0x000003beu, 0x000003beu, + 0x00050050u, 0x00000020u, 0x000003dau, 0x000003c5u, 0x000003c5u, 0x0008000cu, 0x00000020u, 0x000003dbu, + 0x00000001u, 0x0000002du, 0x000003d6u, 0x000003d8u, 0x000003dau, 0x00050051u, 0x00000006u, 0x000003dcu, + 0x000003dbu, 0x00000000u, 0x00050051u, 0x00000006u, 0x000003ddu, 0x000003dbu, 0x00000001u, 0x00070050u, + 0x00000007u, 0x000003deu, 0x000003beu, 0x000003c5u, 0x000003dcu, 0x000003ddu, 0x000500c7u, 0x00000006u, + 0x00000433u, 0x00000371u, 0x00000085u, 0x00050084u, 0x00000006u, 0x00000438u, 0x00000433u, 0x00000273u, + 0x00070050u, 0x00000007u, 0x0000043eu, 0x00000438u, 0x00000438u, 0x00000438u, 0x00000438u, 0x00050082u, + 0x00000007u, 0x0000043fu, 0x000003deu, 0x0000043eu, 0x00050084u, 0x00000006u, 0x00000443u, 0x00000273u, + 0x00000367u, 0x00070050u, 0x00000007u, 0x000004aau, 0x00000378u, 0x00000378u, 0x00000378u, 0x00000378u, + 0x00050098u, 0x00000068u, 0x000004abu, 0x0000043fu, 0x000004aau, 0x00050051u, 0x00000007u, 0x000004acu, + 0x000004abu, 0x00000000u, 0x00050051u, 0x00000007u, 0x000004adu, 0x000004abu, 0x00000001u, 0x0004007cu, + 0x0000006du, 0x000004afu, 0x000004acu, 0x0004007cu, 0x00000033u, 0x000004b1u, 0x00000443u, 0x00070050u, + 0x0000006du, 0x000004b2u, 0x000004b1u, 0x000004b1u, 0x000004b1u, 0x000004b1u, 0x00050095u, 0x00000074u, + 0x000004b3u, 0x000004afu, 0x000004b2u, 0x00050051u, 0x0000006du, 0x000004b4u, 0x000004b3u, 0x00000001u, + 0x00050051u, 0x0000006du, 0x000004b5u, 0x000004b3u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x000004b6u, + 0x000004b5u, 0x0004007cu, 0x00000007u, 0x000004b8u, 0x000004b4u, 0x00050080u, 0x00000007u, 0x000004bau, + 0x000004adu, 0x000004b8u, 0x00050084u, 0x00000006u, 0x0000044fu, 0x00000273u, 0x0000036au, 0x00070050u, + 0x00000007u, 0x000004c4u, 0x0000037bu, 0x0000037bu, 0x0000037bu, 0x0000037bu, 0x00050098u, 0x00000068u, + 0x000004c5u, 0x0000043fu, 0x000004c4u, 0x00050051u, 0x00000007u, 0x000004c6u, 0x000004c5u, 0x00000000u, + 0x00050051u, 0x00000007u, 0x000004c7u, 0x000004c5u, 0x00000001u, 0x0004007cu, 0x0000006du, 0x000004c9u, + 0x000004c6u, 0x0004007cu, 0x00000033u, 0x000004cbu, 0x0000044fu, 0x00070050u, 0x0000006du, 0x000004ccu, + 0x000004cbu, 0x000004cbu, 0x000004cbu, 0x000004cbu, 0x00050095u, 0x00000074u, 0x000004cdu, 0x000004c9u, + 0x000004ccu, 0x00050051u, 0x0000006du, 0x000004ceu, 0x000004cdu, 0x00000001u, 0x00050051u, 0x0000006du, + 0x000004cfu, 0x000004cdu, 0x00000000u, 0x0004007cu, 0x00000007u, 0x000004d0u, 0x000004cfu, 0x0004007cu, + 0x00000007u, 0x000004d2u, 0x000004ceu, 0x00050080u, 0x00000007u, 0x000004d4u, 0x000004c7u, 0x000004d2u, + 0x00070050u, 0x00000007u, 0x00000456u, 0x000003d4u, 0x000003d4u, 0x000003d4u, 0x000003d4u, 0x00050082u, + 0x00000007u, 0x00000457u, 0x000003deu, 0x00000456u, 0x00050084u, 0x00000006u, 0x0000045bu, 0x00000273u, + 0x0000036du, 0x00070050u, 0x00000007u, 0x000004deu, 0x0000037eu, 0x0000037eu, 0x0000037eu, 0x0000037eu, + 0x00050098u, 0x00000068u, 0x000004dfu, 0x00000457u, 0x000004deu, 0x00050051u, 0x00000007u, 0x000004e0u, + 0x000004dfu, 0x00000000u, 0x00050051u, 0x00000007u, 0x000004e1u, 0x000004dfu, 0x00000001u, 0x0004007cu, + 0x0000006du, 0x000004e3u, 0x000004e0u, 0x0004007cu, 0x00000033u, 0x000004e5u, 0x0000045bu, 0x00070050u, + 0x0000006du, 0x000004e6u, 0x000004e5u, 0x000004e5u, 0x000004e5u, 0x000004e5u, 0x00050095u, 0x00000074u, + 0x000004e7u, 0x000004e3u, 0x000004e6u, 0x00050051u, 0x0000006du, 0x000004e8u, 0x000004e7u, 0x00000001u, + 0x00050051u, 0x0000006du, 0x000004e9u, 0x000004e7u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x000004eau, + 0x000004e9u, 0x0004007cu, 0x00000007u, 0x000004ecu, 0x000004e8u, 0x00050080u, 0x00000007u, 0x000004eeu, + 0x000004e1u, 0x000004ecu, 0x00050084u, 0x00000006u, 0x00000466u, 0x00000273u, 0x00000375u, 0x00070050u, + 0x00000007u, 0x00000467u, 0x00000466u, 0x00000466u, 0x00000466u, 0x00000466u, 0x000500b1u, 0x000000d5u, + 0x00000468u, 0x000003deu, 0x00000467u, 0x000600a9u, 0x00000007u, 0x00000469u, 0x00000468u, 0x000004d0u, + 0x000004eau, 0x000600a9u, 0x00000007u, 0x00000473u, 0x00000468u, 0x000004d4u, 0x000004eeu, 0x000500adu, + 0x000000d5u, 0x00000476u, 0x000004bau, 0x000000e6u, 0x000600a9u, 0x00000007u, 0x00000477u, 0x00000476u, + 0x000000e4u, 0x000004b6u, 0x000500b1u, 0x000000d5u, 0x0000047au, 0x000004bau, 0x000000eeu, 0x000600a9u, + 0x00000007u, 0x0000047bu, 0x0000047au, 0x000000ebu, 0x00000477u, 0x000500adu, 0x000000d5u, 0x0000047eu, + 0x00000473u, 0x000000e6u, 0x000600a9u, 0x00000007u, 0x0000047fu, 0x0000047eu, 0x000000e4u, 0x00000469u, + 0x000500b1u, 0x000000d5u, 0x00000482u, 0x00000473u, 0x000000eeu, 0x000600a9u, 0x00000007u, 0x00000483u, + 0x00000482u, 0x000000ebu, 0x0000047fu, 0x000500c3u, 0x00000007u, 0x000004f5u, 0x0000047bu, 0x0000079au, + 0x000500c3u, 0x00000007u, 0x000004fau, 0x00000483u, 0x0000079au, 0x00070050u, 0x000000d5u, 0x0000079du, + 0x000003ceu, 0x000003ceu, 0x000003ceu, 0x000003ceu, 0x000600a9u, 0x00000007u, 0x0000079eu, 0x0000079du, + 0x000004fau, 0x000004f5u, 0x000600a9u, 0x00000007u, 0x000007a0u, 0x0000079du, 0x000004f5u, 0x000004fau, + 0x0006000cu, 0x00000007u, 0x00000491u, 0x00000001u, 0x00000005u, 0x000007a0u, 0x0006000cu, 0x00000007u, + 0x00000493u, 0x00000001u, 0x00000005u, 0x0000079eu, 0x0007000cu, 0x00000007u, 0x00000494u, 0x00000001u, + 0x0000002au, 0x00000491u, 0x00000493u, 0x0007004fu, 0x00000020u, 0x000004ffu, 0x00000494u, 0x00000494u, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x00000501u, 0x00000494u, 0x00000494u, 0x00000002u, + 0x00000003u, 0x0007000cu, 0x00000020u, 0x00000502u, 0x00000001u, 0x0000002au, 0x000004ffu, 0x00000501u, + 0x00050051u, 0x00000006u, 0x00000504u, 0x00000502u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000506u, + 0x00000502u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000507u, 0x00000001u, 0x0000002au, 0x00000504u, + 0x00000506u, 0x00050084u, 0x00000006u, 0x00000498u, 0x00000114u, 0x00000273u, 0x000500b3u, 0x0000001eu, + 0x00000499u, 0x00000507u, 0x00000498u, 0x000300f7u, 0x000004a1u, 0x00000000u, 0x000400fau, 0x00000499u, + 0x0000049au, 0x000004a0u, 0x000200f8u, 0x0000049au, 0x0007004fu, 0x00000020u, 0x0000050cu, 0x000007a0u, + 0x000007a0u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x0000050eu, 0x000007a0u, 0x000007a0u, + 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x0000050fu, 0x00000001u, 0x00000027u, 0x0000050cu, + 0x0000050eu, 0x00050051u, 0x00000006u, 0x00000511u, 0x0000050fu, 0x00000000u, 0x00050051u, 0x00000006u, + 0x00000513u, 0x0000050fu, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000514u, 0x00000001u, 0x00000027u, + 0x00000511u, 0x00000513u, 0x0007004fu, 0x00000020u, 0x00000519u, 0x0000079eu, 0x0000079eu, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x00000020u, 0x0000051bu, 0x0000079eu, 0x0000079eu, 0x00000002u, 0x00000003u, + 0x0007000cu, 0x00000020u, 0x0000051cu, 0x00000001u, 0x0000002au, 0x00000519u, 0x0000051bu, 0x00050051u, + 0x00000006u, 0x0000051eu, 0x0000051cu, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000520u, 0x0000051cu, + 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000521u, 0x00000001u, 0x0000002au, 0x0000051eu, 0x00000520u, + 0x00050050u, 0x00000020u, 0x0000049fu, 0x00000514u, 0x00000521u, 0x000200f9u, 0x000004a1u, 0x000200f8u, + 0x000004a0u, 0x000200f9u, 0x000004a1u, 0x000200f8u, 0x000004a1u, 0x000700f5u, 0x00000020u, 0x00000774u, + 0x0000049fu, 0x0000049au, 0x00000123u, 0x000004a0u, 0x000500c7u, 0x00000006u, 0x000003e6u, 0x00000387u, + 0x0000017eu, 0x000500abu, 0x0000001eu, 0x000003e7u, 0x000003e6u, 0x00000098u, 0x000600a9u, 0x00000006u, + 0x000003e8u, 0x000003e7u, 0x00000088u, 0x00000082u, 0x000500c3u, 0x00000006u, 0x000003ecu, 0x0000035bu, + 0x000000c0u, 0x00050084u, 0x00000006u, 0x000003edu, 0x00000273u, 0x000003ecu, 0x00050080u, 0x00000006u, + 0x000003f2u, 0x0000035fu, 0x000003e8u, 0x000500c3u, 0x00000006u, 0x000003f3u, 0x000003f2u, 0x000000c0u, + 0x00050084u, 0x00000006u, 0x000003f4u, 0x00000273u, 0x000003f3u, 0x00050082u, 0x00000006u, 0x000003f5u, + 0x000003f4u, 0x000000acu, 0x00050050u, 0x00000020u, 0x000003f6u, 0x000003edu, 0x000003f5u, 0x0007004fu, + 0x00000020u, 0x000003f9u, 0x000003f6u, 0x000003f6u, 0x00000000u, 0x00000000u, 0x0007004fu, 0x00000020u, + 0x000003fbu, 0x000003f6u, 0x000003f6u, 0x00000001u, 0x00000001u, 0x0008000cu, 0x00000020u, 0x000003fcu, + 0x00000001u, 0x0000002du, 0x00000774u, 0x000003f9u, 0x000003fbu, 0x00050051u, 0x00000006u, 0x000003feu, + 0x000003fcu, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000400u, 0x0000022fu, 0x00000000u, 0x0007000cu, + 0x00000006u, 0x00000401u, 0x00000001u, 0x0000002au, 0x000003feu, 0x00000400u, 0x00050051u, 0x00000006u, + 0x00000404u, 0x000003fcu, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000406u, 0x0000023fu, 0x00000000u, + 0x0007000cu, 0x00000006u, 0x00000407u, 0x00000001u, 0x00000027u, 0x00000404u, 0x00000406u, 0x000500b3u, + 0x0000001eu, 0x0000040du, 0x00000401u, 0x00000407u, 0x000200f9u, 0x0000040eu, 0x000200f8u, 0x0000040eu, + 0x000700f5u, 0x0000001eu, 0x00000779u, 0x00000157u, 0x000003c9u, 0x0000040du, 0x000004a1u, 0x000200f9u, + 0x0000026au, 0x000200f8u, 0x0000026au, 0x000700f5u, 0x0000001eu, 0x0000077bu, 0x00000157u, 0x0000025du, + 0x00000779u, 0x0000040eu, 0x000200f9u, 0x0000025eu, 0x000200f8u, 0x0000025eu, 0x000700f5u, 0x0000001eu, + 0x0000077au, 0x00000157u, 0x00000255u, 0x0000077bu, 0x0000026au, 0x000300f7u, 0x00000280u, 0x00000000u, + 0x000400fau, 0x0000077au, 0x0000027fu, 0x00000280u, 0x000200f8u, 0x0000027fu, 0x000500c4u, 0x00000033u, + 0x00000282u, 0x00000050u, 0x00000210u, 0x000700f1u, 0x00000033u, 0x00000283u, 0x00000257u, 0x00000050u, + 0x0000004du, 0x00000282u, 0x000200f9u, 0x00000280u, 0x000200f8u, 0x00000280u, 0x000400e0u, 0x000001edu, + 0x000001edu, 0x00000258u, 0x0004003du, 0x00000033u, 0x00000285u, 0x00000257u, 0x000200f9u, 0x00000287u, + 0x000200f8u, 0x00000287u, 0x000700f5u, 0x00000033u, 0x0000077du, 0x0000004du, 0x00000280u, 0x00000795u, + 0x0000028au, 0x000700f5u, 0x00000033u, 0x0000077cu, 0x00000285u, 0x00000280u, 0x00000295u, 0x0000028au, + 0x000500abu, 0x0000001eu, 0x0000028du, 0x0000077cu, 0x0000004du, 0x000400f6u, 0x00000289u, 0x0000028au, + 0x00000000u, 0x000400fau, 0x0000028du, 0x00000288u, 0x00000289u, 0x000200f8u, 0x00000288u, 0x0006000cu, + 0x00000006u, 0x00000290u, 0x00000001u, 0x00000049u, 0x0000077cu, 0x000500c4u, 0x00000033u, 0x00000292u, + 0x00000050u, 0x00000290u, 0x000400c8u, 0x00000033u, 0x00000293u, 0x00000292u, 0x000500c7u, 0x00000033u, + 0x00000295u, 0x0000077cu, 0x00000293u, 0x00050084u, 0x00000006u, 0x00000298u, 0x00000207u, 0x0000025bu, + 0x00050080u, 0x00000006u, 0x0000029au, 0x00000298u, 0x00000290u, 0x0004007cu, 0x00000033u, 0x0000029bu, + 0x0000029au, 0x00060041u, 0x000001e6u, 0x00000526u, 0x000001e4u, 0x00000098u, 0x0000029bu, 0x0004003du, + 0x00000007u, 0x00000527u, 0x00000526u, 0x00050051u, 0x00000006u, 0x00000529u, 0x00000527u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x0000052bu, 0x00000527u, 0x00000001u, 0x00050051u, 0x00000006u, 0x0000052du, + 0x00000527u, 0x00000002u, 0x00050051u, 0x00000006u, 0x0000052fu, 0x00000527u, 0x00000003u, 0x00070041u, + 0x000001b2u, 0x00000534u, 0x000001b0u, 0x00000098u, 0x0000029bu, 0x00000098u, 0x0004003du, 0x00000006u, + 0x00000535u, 0x00000534u, 0x00070041u, 0x000001b2u, 0x00000537u, 0x000001b0u, 0x00000098u, 0x0000029bu, + 0x000000acu, 0x0004003du, 0x00000006u, 0x00000538u, 0x00000537u, 0x00070041u, 0x000001b2u, 0x0000053au, + 0x000001b0u, 0x00000098u, 0x0000029bu, 0x000000c0u, 0x0004003du, 0x00000006u, 0x0000053bu, 0x0000053au, + 0x00070041u, 0x000001bcu, 0x0000053du, 0x000001b0u, 0x00000098u, 0x0000029bu, 0x00000082u, 0x0004003du, + 0x000001aau, 0x0000053eu, 0x0000053du, 0x00040072u, 0x00000006u, 0x0000053fu, 0x0000053eu, 0x00070041u, + 0x000001bcu, 0x00000541u, 0x000001b0u, 0x00000098u, 0x0000029bu, 0x00000088u, 0x0004003du, 0x000001aau, + 0x00000542u, 0x00000541u, 0x00040072u, 0x00000006u, 0x00000543u, 0x00000542u, 0x00070041u, 0x000001b2u, + 0x00000545u, 0x000001b0u, 0x00000098u, 0x0000029bu, 0x00000096u, 0x0004003du, 0x00000006u, 0x00000546u, + 0x00000545u, 0x00070041u, 0x000001b2u, 0x00000548u, 0x000001b0u, 0x00000098u, 0x0000029bu, 0x000000aau, + 0x0004003du, 0x00000006u, 0x00000549u, 0x00000548u, 0x00070041u, 0x000001b2u, 0x0000054bu, 0x000001b0u, + 0x00000098u, 0x0000029bu, 0x000000beu, 0x0004003du, 0x00000006u, 0x0000054cu, 0x0000054bu, 0x00070041u, + 0x000001bcu, 0x0000054eu, 0x000001b0u, 0x00000098u, 0x0000029bu, 0x0000014cu, 0x0004003du, 0x000001aau, + 0x0000054fu, 0x0000054eu, 0x00040072u, 0x00000006u, 0x00000550u, 0x0000054fu, 0x00070041u, 0x000001d2u, + 0x00000552u, 0x000001b0u, 0x00000098u, 0x0000029bu, 0x0000015au, 0x0004003du, 0x000001abu, 0x00000553u, + 0x00000552u, 0x00040071u, 0x00000033u, 0x00000554u, 0x00000553u, 0x0004007cu, 0x00000006u, 0x00000555u, + 0x00000554u, 0x000300f7u, 0x000005dcu, 0x00000000u, 0x000300fbu, 0x0000004du, 0x0000056bu, 0x000200f8u, + 0x0000056bu, 0x00050051u, 0x00000006u, 0x0000056du, 0x00000243u, 0x00000001u, 0x000500c3u, 0x00000006u, + 0x00000571u, 0x0000052bu, 0x000000c0u, 0x00050084u, 0x00000006u, 0x00000572u, 0x00000273u, 0x00000571u, + 0x0007000cu, 0x00000006u, 0x00000573u, 0x00000001u, 0x0000002au, 0x0000056du, 0x00000572u, 0x00050051u, + 0x00000006u, 0x00000576u, 0x0000024du, 0x00000001u, 0x00050080u, 0x00000006u, 0x0000057au, 0x0000052fu, + 0x00000082u, 0x000500c3u, 0x00000006u, 0x0000057bu, 0x0000057au, 0x000000c0u, 0x00050084u, 0x00000006u, + 0x0000057cu, 0x00000273u, 0x0000057bu, 0x00050082u, 0x00000006u, 0x0000057du, 0x0000057cu, 0x000000acu, + 0x0007000cu, 0x00000006u, 0x0000057eu, 0x00000001u, 0x00000027u, 0x00000576u, 0x0000057du, 0x00050084u, + 0x00000006u, 0x00000582u, 0x00000573u, 0x00000088u, 0x00050084u, 0x00000006u, 0x00000585u, 0x0000057eu, + 0x00000088u, 0x00050080u, 0x00000006u, 0x00000586u, 0x00000585u, 0x00000082u, 0x00050084u, 0x00000006u, + 0x0000058bu, 0x00000273u, 0x0000053fu, 0x0007000cu, 0x00000006u, 0x0000058cu, 0x00000001u, 0x0000002au, + 0x00000582u, 0x0000058bu, 0x00050084u, 0x00000006u, 0x00000591u, 0x00000273u, 0x00000550u, 0x00050082u, + 0x00000006u, 0x00000592u, 0x00000591u, 0x000000acu, 0x0007000cu, 0x00000006u, 0x00000593u, 0x00000001u, + 0x00000027u, 0x00000586u, 0x00000592u, 0x000500b1u, 0x0000001eu, 0x00000596u, 0x00000593u, 0x0000058cu, + 0x000300f7u, 0x00000598u, 0x00000000u, 0x000400fau, 0x00000596u, 0x00000597u, 0x00000598u, 0x000200f8u, + 0x00000597u, 0x000200f9u, 0x000005dcu, 0x000200f8u, 0x00000598u, 0x000500c7u, 0x00000006u, 0x0000059bu, + 0x00000555u, 0x000000acu, 0x000500abu, 0x0000001eu, 0x0000059cu, 0x0000059bu, 0x00000098u, 0x00050084u, + 0x00000006u, 0x000005a2u, 0x00000543u, 0x00000273u, 0x00050050u, 0x00000020u, 0x000005a3u, 0x000005a2u, + 0x000005a2u, 0x00050080u, 0x00000020u, 0x000005a4u, 0x000005a3u, 0x00000166u, 0x00050050u, 0x00000020u, + 0x000005a6u, 0x0000058cu, 0x0000058cu, 0x00050050u, 0x00000020u, 0x000005a8u, 0x00000593u, 0x00000593u, + 0x0008000cu, 0x00000020u, 0x000005a9u, 0x00000001u, 0x0000002du, 0x000005a4u, 0x000005a6u, 0x000005a8u, + 0x00050051u, 0x00000006u, 0x000005aau, 0x000005a9u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000005abu, + 0x000005a9u, 0x00000001u, 0x00070050u, 0x00000007u, 0x000005acu, 0x0000058cu, 0x00000593u, 0x000005aau, + 0x000005abu, 0x000500c7u, 0x00000006u, 0x00000601u, 0x0000053fu, 0x00000085u, 0x00050084u, 0x00000006u, + 0x00000606u, 0x00000601u, 0x00000273u, 0x00070050u, 0x00000007u, 0x0000060cu, 0x00000606u, 0x00000606u, + 0x00000606u, 0x00000606u, 0x00050082u, 0x00000007u, 0x0000060du, 0x000005acu, 0x0000060cu, 0x00050084u, + 0x00000006u, 0x00000611u, 0x00000273u, 0x00000535u, 0x00070050u, 0x00000007u, 0x00000678u, 0x00000546u, + 0x00000546u, 0x00000546u, 0x00000546u, 0x00050098u, 0x00000068u, 0x00000679u, 0x0000060du, 0x00000678u, + 0x00050051u, 0x00000007u, 0x0000067au, 0x00000679u, 0x00000000u, 0x00050051u, 0x00000007u, 0x0000067bu, + 0x00000679u, 0x00000001u, 0x0004007cu, 0x0000006du, 0x0000067du, 0x0000067au, 0x0004007cu, 0x00000033u, + 0x0000067fu, 0x00000611u, 0x00070050u, 0x0000006du, 0x00000680u, 0x0000067fu, 0x0000067fu, 0x0000067fu, + 0x0000067fu, 0x00050095u, 0x00000074u, 0x00000681u, 0x0000067du, 0x00000680u, 0x00050051u, 0x0000006du, + 0x00000682u, 0x00000681u, 0x00000001u, 0x00050051u, 0x0000006du, 0x00000683u, 0x00000681u, 0x00000000u, + 0x0004007cu, 0x00000007u, 0x00000684u, 0x00000683u, 0x0004007cu, 0x00000007u, 0x00000686u, 0x00000682u, + 0x00050080u, 0x00000007u, 0x00000688u, 0x0000067bu, 0x00000686u, 0x00050084u, 0x00000006u, 0x0000061du, + 0x00000273u, 0x00000538u, 0x00070050u, 0x00000007u, 0x00000692u, 0x00000549u, 0x00000549u, 0x00000549u, + 0x00000549u, 0x00050098u, 0x00000068u, 0x00000693u, 0x0000060du, 0x00000692u, 0x00050051u, 0x00000007u, + 0x00000694u, 0x00000693u, 0x00000000u, 0x00050051u, 0x00000007u, 0x00000695u, 0x00000693u, 0x00000001u, + 0x0004007cu, 0x0000006du, 0x00000697u, 0x00000694u, 0x0004007cu, 0x00000033u, 0x00000699u, 0x0000061du, + 0x00070050u, 0x0000006du, 0x0000069au, 0x00000699u, 0x00000699u, 0x00000699u, 0x00000699u, 0x00050095u, + 0x00000074u, 0x0000069bu, 0x00000697u, 0x0000069au, 0x00050051u, 0x0000006du, 0x0000069cu, 0x0000069bu, + 0x00000001u, 0x00050051u, 0x0000006du, 0x0000069du, 0x0000069bu, 0x00000000u, 0x0004007cu, 0x00000007u, + 0x0000069eu, 0x0000069du, 0x0004007cu, 0x00000007u, 0x000006a0u, 0x0000069cu, 0x00050080u, 0x00000007u, + 0x000006a2u, 0x00000695u, 0x000006a0u, 0x00070050u, 0x00000007u, 0x00000624u, 0x000005a2u, 0x000005a2u, + 0x000005a2u, 0x000005a2u, 0x00050082u, 0x00000007u, 0x00000625u, 0x000005acu, 0x00000624u, 0x00050084u, + 0x00000006u, 0x00000629u, 0x00000273u, 0x0000053bu, 0x00070050u, 0x00000007u, 0x000006acu, 0x0000054cu, + 0x0000054cu, 0x0000054cu, 0x0000054cu, 0x00050098u, 0x00000068u, 0x000006adu, 0x00000625u, 0x000006acu, + 0x00050051u, 0x00000007u, 0x000006aeu, 0x000006adu, 0x00000000u, 0x00050051u, 0x00000007u, 0x000006afu, + 0x000006adu, 0x00000001u, 0x0004007cu, 0x0000006du, 0x000006b1u, 0x000006aeu, 0x0004007cu, 0x00000033u, + 0x000006b3u, 0x00000629u, 0x00070050u, 0x0000006du, 0x000006b4u, 0x000006b3u, 0x000006b3u, 0x000006b3u, + 0x000006b3u, 0x00050095u, 0x00000074u, 0x000006b5u, 0x000006b1u, 0x000006b4u, 0x00050051u, 0x0000006du, + 0x000006b6u, 0x000006b5u, 0x00000001u, 0x00050051u, 0x0000006du, 0x000006b7u, 0x000006b5u, 0x00000000u, + 0x0004007cu, 0x00000007u, 0x000006b8u, 0x000006b7u, 0x0004007cu, 0x00000007u, 0x000006bau, 0x000006b6u, + 0x00050080u, 0x00000007u, 0x000006bcu, 0x000006afu, 0x000006bau, 0x00050084u, 0x00000006u, 0x00000634u, + 0x00000273u, 0x00000543u, 0x00070050u, 0x00000007u, 0x00000635u, 0x00000634u, 0x00000634u, 0x00000634u, + 0x00000634u, 0x000500b1u, 0x000000d5u, 0x00000636u, 0x000005acu, 0x00000635u, 0x000600a9u, 0x00000007u, + 0x00000637u, 0x00000636u, 0x0000069eu, 0x000006b8u, 0x000600a9u, 0x00000007u, 0x00000641u, 0x00000636u, + 0x000006a2u, 0x000006bcu, 0x000500adu, 0x000000d5u, 0x00000644u, 0x00000688u, 0x000000e6u, 0x000600a9u, + 0x00000007u, 0x00000645u, 0x00000644u, 0x000000e4u, 0x00000684u, 0x000500b1u, 0x000000d5u, 0x00000648u, + 0x00000688u, 0x000000eeu, 0x000600a9u, 0x00000007u, 0x00000649u, 0x00000648u, 0x000000ebu, 0x00000645u, + 0x000500adu, 0x000000d5u, 0x0000064cu, 0x00000641u, 0x000000e6u, 0x000600a9u, 0x00000007u, 0x0000064du, + 0x0000064cu, 0x000000e4u, 0x00000637u, 0x000500b1u, 0x000000d5u, 0x00000650u, 0x00000641u, 0x000000eeu, + 0x000600a9u, 0x00000007u, 0x00000651u, 0x00000650u, 0x000000ebu, 0x0000064du, 0x000500c3u, 0x00000007u, + 0x000006c3u, 0x00000649u, 0x0000079au, 0x000500c3u, 0x00000007u, 0x000006c8u, 0x00000651u, 0x0000079au, + 0x00070050u, 0x000000d5u, 0x000007a1u, 0x0000059cu, 0x0000059cu, 0x0000059cu, 0x0000059cu, 0x000600a9u, + 0x00000007u, 0x000007a2u, 0x000007a1u, 0x000006c8u, 0x000006c3u, 0x000600a9u, 0x00000007u, 0x000007a4u, + 0x000007a1u, 0x000006c3u, 0x000006c8u, 0x0006000cu, 0x00000007u, 0x0000065fu, 0x00000001u, 0x00000005u, + 0x000007a4u, 0x0006000cu, 0x00000007u, 0x00000661u, 0x00000001u, 0x00000005u, 0x000007a2u, 0x0007000cu, + 0x00000007u, 0x00000662u, 0x00000001u, 0x0000002au, 0x0000065fu, 0x00000661u, 0x0007004fu, 0x00000020u, + 0x000006cdu, 0x00000662u, 0x00000662u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x000006cfu, + 0x00000662u, 0x00000662u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x000006d0u, 0x00000001u, + 0x0000002au, 0x000006cdu, 0x000006cfu, 0x00050051u, 0x00000006u, 0x000006d2u, 0x000006d0u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x000006d4u, 0x000006d0u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x000006d5u, + 0x00000001u, 0x0000002au, 0x000006d2u, 0x000006d4u, 0x00050084u, 0x00000006u, 0x00000666u, 0x00000114u, + 0x00000273u, 0x000500b3u, 0x0000001eu, 0x00000667u, 0x000006d5u, 0x00000666u, 0x000300f7u, 0x0000066fu, + 0x00000000u, 0x000400fau, 0x00000667u, 0x00000668u, 0x0000066eu, 0x000200f8u, 0x00000668u, 0x0007004fu, + 0x00000020u, 0x000006dau, 0x000007a4u, 0x000007a4u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, + 0x000006dcu, 0x000007a4u, 0x000007a4u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x000006ddu, + 0x00000001u, 0x00000027u, 0x000006dau, 0x000006dcu, 0x00050051u, 0x00000006u, 0x000006dfu, 0x000006ddu, + 0x00000000u, 0x00050051u, 0x00000006u, 0x000006e1u, 0x000006ddu, 0x00000001u, 0x0007000cu, 0x00000006u, + 0x000006e2u, 0x00000001u, 0x00000027u, 0x000006dfu, 0x000006e1u, 0x0007004fu, 0x00000020u, 0x000006e7u, + 0x000007a2u, 0x000007a2u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x000006e9u, 0x000007a2u, + 0x000007a2u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x000006eau, 0x00000001u, 0x0000002au, + 0x000006e7u, 0x000006e9u, 0x00050051u, 0x00000006u, 0x000006ecu, 0x000006eau, 0x00000000u, 0x00050051u, + 0x00000006u, 0x000006eeu, 0x000006eau, 0x00000001u, 0x0007000cu, 0x00000006u, 0x000006efu, 0x00000001u, + 0x0000002au, 0x000006ecu, 0x000006eeu, 0x00050050u, 0x00000020u, 0x0000066du, 0x000006e2u, 0x000006efu, + 0x000200f9u, 0x0000066fu, 0x000200f8u, 0x0000066eu, 0x000200f9u, 0x0000066fu, 0x000200f8u, 0x0000066fu, + 0x000700f5u, 0x00000020u, 0x00000788u, 0x0000066du, 0x00000668u, 0x00000123u, 0x0000066eu, 0x000500c7u, + 0x00000006u, 0x000005b4u, 0x00000555u, 0x0000017eu, 0x000500abu, 0x0000001eu, 0x000005b5u, 0x000005b4u, + 0x00000098u, 0x000600a9u, 0x00000006u, 0x000005b6u, 0x000005b5u, 0x00000088u, 0x00000082u, 0x000500c3u, + 0x00000006u, 0x000005bau, 0x00000529u, 0x000000c0u, 0x00050084u, 0x00000006u, 0x000005bbu, 0x00000273u, + 0x000005bau, 0x00050080u, 0x00000006u, 0x000005c0u, 0x0000052du, 0x000005b6u, 0x000500c3u, 0x00000006u, + 0x000005c1u, 0x000005c0u, 0x000000c0u, 0x00050084u, 0x00000006u, 0x000005c2u, 0x00000273u, 0x000005c1u, + 0x00050082u, 0x00000006u, 0x000005c3u, 0x000005c2u, 0x000000acu, 0x00050050u, 0x00000020u, 0x000005c4u, + 0x000005bbu, 0x000005c3u, 0x0007004fu, 0x00000020u, 0x000005c7u, 0x000005c4u, 0x000005c4u, 0x00000000u, + 0x00000000u, 0x0007004fu, 0x00000020u, 0x000005c9u, 0x000005c4u, 0x000005c4u, 0x00000001u, 0x00000001u, + 0x0008000cu, 0x00000020u, 0x000005cau, 0x00000001u, 0x0000002du, 0x00000788u, 0x000005c7u, 0x000005c9u, + 0x00050051u, 0x00000006u, 0x000005ccu, 0x000005cau, 0x00000000u, 0x00050051u, 0x00000006u, 0x000005ceu, + 0x00000243u, 0x00000000u, 0x0007000cu, 0x00000006u, 0x000005cfu, 0x00000001u, 0x0000002au, 0x000005ccu, + 0x000005ceu, 0x00050051u, 0x00000006u, 0x000005d2u, 0x000005cau, 0x00000001u, 0x00050051u, 0x00000006u, + 0x000005d4u, 0x0000024du, 0x00000000u, 0x0007000cu, 0x00000006u, 0x000005d5u, 0x00000001u, 0x00000027u, + 0x000005d2u, 0x000005d4u, 0x000500b3u, 0x0000001eu, 0x000005dbu, 0x000005cfu, 0x000005d5u, 0x000200f9u, + 0x000005dcu, 0x000200f8u, 0x000005dcu, 0x000700f5u, 0x0000001eu, 0x0000078du, 0x00000157u, 0x00000597u, + 0x000005dbu, 0x0000066fu, 0x000300f7u, 0x000002afu, 0x00000000u, 0x000400fau, 0x0000078du, 0x000002aeu, + 0x000002afu, 0x000200f8u, 0x000002aeu, 0x000500c5u, 0x00000033u, 0x000002b3u, 0x0000077du, 0x00000292u, + 0x000200f9u, 0x000002afu, 0x000200f8u, 0x000002afu, 0x000700f5u, 0x00000033u, 0x00000795u, 0x0000077du, + 0x000005dcu, 0x000002b3u, 0x000002aeu, 0x000200f9u, 0x0000028au, 0x000200f8u, 0x0000028au, 0x000200f9u, + 0x00000287u, 0x000200f8u, 0x00000289u, 0x00050084u, 0x00000006u, 0x000002bbu, 0x00000228u, 0x000002bau, + 0x00050080u, 0x00000006u, 0x000002bdu, 0x000002bbu, 0x00000207u, 0x00060041u, 0x000001fbu, 0x000002bfu, + 0x000002b7u, 0x00000098u, 0x000002bdu, 0x0003003eu, 0x000002bfu, 0x0000077du, 0x000500abu, 0x0000001eu, + 0x000002c1u, 0x0000077du, 0x0000004du, 0x000300f7u, 0x000002c3u, 0x00000000u, 0x000400fau, 0x000002c1u, + 0x000002c2u, 0x000002cdu, 0x000200f8u, 0x000002c2u, 0x00060041u, 0x000001fbu, 0x000002c9u, 0x000002c7u, + 0x00000098u, 0x00000228u, 0x000500c4u, 0x00000033u, 0x000002cbu, 0x00000050u, 0x00000207u, 0x000700f1u, + 0x00000033u, 0x000002ccu, 0x000002c9u, 0x00000050u, 0x0000004du, 0x000002cbu, 0x000200f9u, 0x000002c3u, + 0x000200f8u, 0x000002cdu, 0x00060041u, 0x000001fbu, 0x000002cfu, 0x000002c7u, 0x00000098u, 0x00000228u, + 0x000500c4u, 0x00000033u, 0x000002d1u, 0x00000050u, 0x00000207u, 0x000400c8u, 0x00000033u, 0x000002d2u, + 0x000002d1u, 0x000700f0u, 0x00000033u, 0x000002d3u, 0x000002cfu, 0x00000050u, 0x0000004du, 0x000002d2u, + 0x000200f9u, 0x000002c3u, 0x000200f8u, 0x000002c3u, 0x000400cdu, 0x00000006u, 0x000002d6u, 0x0000077du, + 0x0004007cu, 0x00000033u, 0x000002d7u, 0x000002d6u, 0x000500abu, 0x0000001eu, 0x000002dau, 0x000002d7u, + 0x0000004du, 0x000300f7u, 0x000002dcu, 0x00000000u, 0x000400fau, 0x000002dau, 0x000002dbu, 0x000002dcu, + 0x000200f8u, 0x000002dbu, 0x00070041u, 0x000001fbu, 0x000002ddu, 0x000001f9u, 0x00000098u, 0x00000098u, + 0x000001f0u, 0x000700eau, 0x00000033u, 0x000002dfu, 0x000002ddu, 0x00000050u, 0x0000004du, 0x000002d7u, + 0x000200f9u, 0x000002dcu, 0x000200f8u, 0x000002dcu, 0x000700f5u, 0x00000033u, 0x0000077fu, 0x0000004du, + 0x000002c3u, 0x000002dfu, 0x000002dbu, 0x000300f7u, 0x000002e3u, 0x00000000u, 0x000400fau, 0x000002dau, + 0x000002e2u, 0x000002e3u, 0x000200f8u, 0x000002e2u, 0x00060041u, 0x000001fbu, 0x000002edu, 0x000002e7u, + 0x00000098u, 0x000002bdu, 0x0003003eu, 0x000002edu, 0x0000077fu, 0x000200f9u, 0x000002e3u, 0x000200f8u, + 0x000002e3u, 0x000200f9u, 0x000002f0u, 0x000200f8u, 0x000002f0u, 0x000700f5u, 0x00000033u, 0x00000784u, + 0x0000077fu, 0x000002e3u, 0x00000798u, 0x000002f3u, 0x000700f5u, 0x00000033u, 0x00000782u, 0x0000077du, + 0x000002e3u, 0x000002feu, 0x000002f3u, 0x000500abu, 0x0000001eu, 0x000002f6u, 0x00000782u, 0x0000004du, + 0x000400f6u, 0x000002f2u, 0x000002f3u, 0x00000000u, 0x000400fau, 0x000002f6u, 0x000002f1u, 0x000002f2u, + 0x000200f8u, 0x000002f1u, 0x0006000cu, 0x00000006u, 0x000002f9u, 0x00000001u, 0x00000049u, 0x00000782u, + 0x000500c4u, 0x00000033u, 0x000002fbu, 0x00000050u, 0x000002f9u, 0x000400c8u, 0x00000033u, 0x000002fcu, + 0x000002fbu, 0x000500c7u, 0x00000033u, 0x000002feu, 0x00000782u, 0x000002fcu, 0x00050084u, 0x00000006u, + 0x00000301u, 0x00000207u, 0x0000025bu, 0x00050080u, 0x00000006u, 0x00000303u, 0x00000301u, 0x000002f9u, + 0x000500c7u, 0x00000033u, 0x00000307u, 0x0000077du, 0x000002fbu, 0x000500abu, 0x0000001eu, 0x00000308u, + 0x00000307u, 0x0000004du, 0x000300f7u, 0x0000030au, 0x00000000u, 0x000400fau, 0x00000308u, 0x00000309u, + 0x0000030au, 0x000200f8u, 0x00000309u, 0x00080041u, 0x000001d2u, 0x00000315u, 0x00000313u, 0x00000098u, + 0x00000303u, 0x00000098u, 0x0000004du, 0x0004003du, 0x000001abu, 0x00000316u, 0x00000315u, 0x00040071u, + 0x00000033u, 0x00000317u, 0x00000316u, 0x00070041u, 0x000001fbu, 0x000006f3u, 0x000001f9u, 0x00000098u, + 0x00000317u, 0x0000004du, 0x000700eau, 0x00000033u, 0x000006f4u, 0x000006f3u, 0x00000050u, 0x0000004du, + 0x00000050u, 0x00050084u, 0x00000033u, 0x00000324u, 0x00000322u, 0x00000317u, 0x00050080u, 0x00000033u, + 0x00000325u, 0x000006f4u, 0x00000324u, 0x0004007cu, 0x00000033u, 0x00000328u, 0x00000227u, 0x0004007cu, + 0x00000033u, 0x0000032bu, 0x00000221u, 0x0004007cu, 0x00000033u, 0x0000032eu, 0x00000303u, 0x00070050u, + 0x0000006du, 0x0000032fu, 0x00000328u, 0x0000032bu, 0x00000784u, 0x0000032eu, 0x00060041u, 0x00000330u, + 0x00000331u, 0x0000031fu, 0x00000098u, 0x00000325u, 0x0003003eu, 0x00000331u, 0x0000032fu, 0x00050080u, + 0x00000033u, 0x00000333u, 0x00000784u, 0x000000acu, 0x000200f9u, 0x0000030au, 0x000200f8u, 0x0000030au, + 0x000700f5u, 0x00000033u, 0x00000798u, 0x00000784u, 0x000002f1u, 0x00000333u, 0x00000309u, 0x000200f9u, + 0x000002f3u, 0x000200f8u, 0x000002f3u, 0x000200f9u, 0x000002f0u, 0x000200f8u, 0x000002f2u, 0x000100fdu, + 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x000007f4u, 0x00000000u, 0x00020011u, 0x00000001u, + 0x00020011u, 0x0000003du, 0x00020011u, 0x0000003eu, 0x00020011u, 0x0000003fu, 0x00020011u, 0x00000040u, + 0x00020011u, 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, + 0x6f74735fu, 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, + 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0009000fu, 0x00000005u, 0x00000004u, 0x6e69616du, + 0x00000000u, 0x00000215u, 0x00000220u, 0x00000224u, 0x0000022fu, 0x00060010u, 0x00000004u, 0x00000011u, + 0x00000001u, 0x00000001u, 0x00000001u, 0x00050048u, 0x000001acu, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00050048u, 0x000001acu, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000001acu, 0x00000002u, + 0x00000023u, 0x00000008u, 0x00050048u, 0x000001acu, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, + 0x000001acu, 0x00000004u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x000001acu, 0x00000005u, 0x00000023u, + 0x00000010u, 0x00050048u, 0x000001acu, 0x00000006u, 0x00000023u, 0x00000014u, 0x00050048u, 0x000001acu, + 0x00000007u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000001acu, 0x00000008u, 0x00000023u, 0x0000001cu, + 0x00050048u, 0x000001acu, 0x00000009u, 0x00000023u, 0x0000001eu, 0x00050048u, 0x000001acu, 0x0000000au, + 0x00000023u, 0x0000001fu, 0x00040047u, 0x000001adu, 0x00000006u, 0x00000020u, 0x00040048u, 0x000001aeu, + 0x00000000u, 0x00000018u, 0x00050048u, 0x000001aeu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x000001aeu, 0x00000002u, 0x00040047u, 0x000001b0u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001b0u, + 0x00000021u, 0x00000000u, 0x00040047u, 0x000001e1u, 0x00000006u, 0x00000010u, 0x00040048u, 0x000001e2u, + 0x00000000u, 0x00000018u, 0x00050048u, 0x000001e2u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x000001e2u, 0x00000002u, 0x00040047u, 0x000001e4u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001e4u, + 0x00000021u, 0x00000001u, 0x00040047u, 0x00000200u, 0x00000006u, 0x00000010u, 0x00050048u, 0x00000201u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000201u, 0x00000002u, 0x00040047u, 0x00000203u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x00000203u, 0x00000021u, 0x00000006u, 0x00040047u, 0x00000215u, + 0x0000000bu, 0x0000001au, 0x00030047u, 0x00000220u, 0x00000000u, 0x00040047u, 0x00000220u, 0x0000000bu, + 0x00000029u, 0x00030047u, 0x00000221u, 0x00000000u, 0x00030047u, 0x00000222u, 0x00000000u, 0x00030047u, + 0x00000224u, 0x00000000u, 0x00040047u, 0x00000224u, 0x0000000bu, 0x00000024u, 0x00030047u, 0x00000225u, + 0x00000000u, 0x00030047u, 0x00000226u, 0x00000000u, 0x00030047u, 0x00000227u, 0x00000000u, 0x00040047u, + 0x0000022fu, 0x0000000bu, 0x00000028u, 0x00040047u, 0x00000237u, 0x00000001u, 0x00000000u, 0x00040047u, + 0x00000238u, 0x0000000bu, 0x00000019u, 0x00040047u, 0x00000245u, 0x00000001u, 0x00000004u, 0x00040047u, + 0x00000246u, 0x00000001u, 0x00000001u, 0x00040047u, 0x0000024fu, 0x00000001u, 0x00000002u, 0x00050048u, + 0x00000263u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000263u, 0x00000001u, 0x00000023u, + 0x00000008u, 0x00030047u, 0x00000263u, 0x00000002u, 0x00040047u, 0x00000299u, 0x00000001u, 0x00000006u, + 0x00040047u, 0x000002d6u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000002d7u, 0x00000000u, 0x00000019u, + 0x00050048u, 0x000002d7u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002d7u, 0x00000002u, + 0x00040047u, 0x000002d9u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000002d9u, 0x00000021u, 0x00000003u, + 0x00040047u, 0x000002dbu, 0x00000001u, 0x00000003u, 0x00040047u, 0x000002e6u, 0x00000006u, 0x00000004u, + 0x00040048u, 0x000002e7u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000002e7u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000002e7u, 0x00000002u, 0x00040047u, 0x000002e9u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000002e9u, 0x00000021u, 0x00000004u, 0x00040047u, 0x00000319u, 0x00000006u, 0x00000004u, + 0x00040048u, 0x0000031au, 0x00000000u, 0x00000019u, 0x00050048u, 0x0000031au, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000031au, 0x00000002u, 0x00040047u, 0x0000031cu, 0x00000022u, 0x00000000u, + 0x00040047u, 0x0000031cu, 0x00000021u, 0x00000005u, 0x00040047u, 0x00000344u, 0x00000006u, 0x00000001u, + 0x00050048u, 0x00000345u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000345u, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x00000345u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, + 0x00000346u, 0x00000006u, 0x00000010u, 0x00040048u, 0x00000347u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000347u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000347u, 0x00000002u, 0x00040047u, + 0x00000349u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000349u, 0x00000021u, 0x00000002u, 0x00040047u, + 0x00000352u, 0x00000006u, 0x00000010u, 0x00040048u, 0x00000353u, 0x00000000u, 0x00000019u, 0x00050048u, + 0x00000353u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000353u, 0x00000002u, 0x00040047u, + 0x00000355u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000355u, 0x00000021u, 0x00000007u, 0x00040047u, + 0x00000357u, 0x00000001u, 0x00000005u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, + 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000007u, 0x00000006u, 0x00000004u, + 0x00020014u, 0x0000001eu, 0x00040017u, 0x00000020u, 0x00000006u, 0x00000002u, 0x00040015u, 0x00000033u, + 0x00000020u, 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000042u, 0x0000000fu, 0x0004002bu, 0x00000033u, + 0x0000004du, 0x00000000u, 0x0004002bu, 0x00000033u, 0x00000050u, 0x00000001u, 0x0004001eu, 0x00000068u, + 0x00000007u, 0x00000007u, 0x00040017u, 0x0000006du, 0x00000033u, 0x00000004u, 0x0004001eu, 0x00000074u, + 0x0000006du, 0x0000006du, 0x0004002bu, 0x00000006u, 0x00000082u, 0x00000003u, 0x0004002bu, 0x00000006u, + 0x00000085u, 0xfffffffcu, 0x0004002bu, 0x00000006u, 0x00000088u, 0x00000004u, 0x0004002bu, 0x00000006u, + 0x00000096u, 0x00000005u, 0x0004002bu, 0x00000006u, 0x00000098u, 0x00000000u, 0x0004002bu, 0x00000006u, + 0x000000aau, 0x00000006u, 0x0004002bu, 0x00000006u, 0x000000acu, 0x00000001u, 0x0004002bu, 0x00000006u, + 0x000000beu, 0x00000007u, 0x0004002bu, 0x00000006u, 0x000000c0u, 0x00000002u, 0x00040017u, 0x000000d5u, + 0x0000001eu, 0x00000004u, 0x0004002bu, 0x00000006u, 0x000000e3u, 0x7fffffffu, 0x0007002cu, 0x00000007u, + 0x000000e4u, 0x000000e3u, 0x000000e3u, 0x000000e3u, 0x000000e3u, 0x0007002cu, 0x00000007u, 0x000000e6u, + 0x00000098u, 0x00000098u, 0x00000098u, 0x00000098u, 0x0004002bu, 0x00000006u, 0x000000eau, 0x80000000u, + 0x0007002cu, 0x00000007u, 0x000000ebu, 0x000000eau, 0x000000eau, 0x000000eau, 0x000000eau, 0x0004002bu, + 0x00000006u, 0x000000edu, 0xffffffffu, 0x0007002cu, 0x00000007u, 0x000000eeu, 0x000000edu, 0x000000edu, + 0x000000edu, 0x000000edu, 0x0004002bu, 0x00000006u, 0x00000114u, 0x000007ffu, 0x0005002cu, 0x00000020u, + 0x00000123u, 0x00000098u, 0x000000e3u, 0x0004002bu, 0x00000006u, 0x0000014cu, 0x00000008u, 0x0003002au, + 0x0000001eu, 0x00000157u, 0x0004002bu, 0x00000006u, 0x0000015au, 0x00000009u, 0x0005002cu, 0x00000020u, + 0x00000166u, 0x000000edu, 0x00000098u, 0x0004002bu, 0x00000006u, 0x0000017eu, 0x00000080u, 0x00040015u, + 0x000001aau, 0x00000010u, 0x00000001u, 0x00040015u, 0x000001abu, 0x00000008u, 0x00000000u, 0x000d001eu, + 0x000001acu, 0x00000006u, 0x00000006u, 0x00000006u, 0x000001aau, 0x000001aau, 0x00000006u, 0x00000006u, + 0x00000006u, 0x000001aau, 0x000001abu, 0x000001abu, 0x0003001du, 0x000001adu, 0x000001acu, 0x0003001eu, + 0x000001aeu, 0x000001adu, 0x00040020u, 0x000001afu, 0x0000000cu, 0x000001aeu, 0x0004003bu, 0x000001afu, + 0x000001b0u, 0x0000000cu, 0x00040020u, 0x000001b2u, 0x0000000cu, 0x00000006u, 0x00040020u, 0x000001bcu, + 0x0000000cu, 0x000001aau, 0x00040020u, 0x000001d2u, 0x0000000cu, 0x000001abu, 0x0003001du, 0x000001e1u, + 0x00000007u, 0x0003001eu, 0x000001e2u, 0x000001e1u, 0x00040020u, 0x000001e3u, 0x0000000cu, 0x000001e2u, + 0x0004003bu, 0x000001e3u, 0x000001e4u, 0x0000000cu, 0x00040020u, 0x000001e6u, 0x0000000cu, 0x00000007u, + 0x0004002bu, 0x00000033u, 0x000001f0u, 0x00000003u, 0x00030029u, 0x0000001eu, 0x000001f7u, 0x0003001du, + 0x00000200u, 0x0000006du, 0x0003001eu, 0x00000201u, 0x00000200u, 0x00040020u, 0x00000202u, 0x0000000cu, + 0x00000201u, 0x0004003bu, 0x00000202u, 0x00000203u, 0x0000000cu, 0x00040020u, 0x00000205u, 0x0000000cu, + 0x00000033u, 0x00040017u, 0x00000213u, 0x00000033u, 0x00000003u, 0x00040020u, 0x00000214u, 0x00000001u, + 0x00000213u, 0x0004003bu, 0x00000214u, 0x00000215u, 0x00000001u, 0x00040020u, 0x00000216u, 0x00000001u, + 0x00000033u, 0x00040017u, 0x0000021bu, 0x00000033u, 0x00000002u, 0x0004003bu, 0x00000216u, 0x00000220u, + 0x00000001u, 0x0004003bu, 0x00000216u, 0x00000224u, 0x00000001u, 0x0004003bu, 0x00000216u, 0x0000022fu, + 0x00000001u, 0x00040032u, 0x00000033u, 0x00000237u, 0x00000001u, 0x00060033u, 0x00000213u, 0x00000238u, + 0x00000237u, 0x00000050u, 0x00000050u, 0x00060034u, 0x00000033u, 0x00000239u, 0x00000051u, 0x00000238u, + 0x00000000u, 0x00060034u, 0x00000006u, 0x0000023au, 0x00000080u, 0x00000239u, 0x0000004du, 0x00060034u, + 0x00000006u, 0x0000023bu, 0x000000c3u, 0x0000023au, 0x00000082u, 0x00050033u, 0x00000020u, 0x0000023cu, + 0x0000014cu, 0x0000023bu, 0x00040032u, 0x00000006u, 0x00000245u, 0x00000400u, 0x00040032u, 0x00000006u, + 0x00000246u, 0x00000008u, 0x00060034u, 0x00000006u, 0x00000247u, 0x00000087u, 0x00000245u, 0x00000246u, + 0x00060034u, 0x00000006u, 0x0000024eu, 0x00000084u, 0x00000246u, 0x0000014cu, 0x00040032u, 0x00000006u, + 0x0000024fu, 0x00000008u, 0x00060034u, 0x00000006u, 0x00000250u, 0x00000084u, 0x0000024fu, 0x0000023bu, + 0x00050033u, 0x00000020u, 0x00000251u, 0x0000024eu, 0x00000250u, 0x00060034u, 0x00000006u, 0x0000025eu, + 0x00000084u, 0x00000246u, 0x0000014cu, 0x0004001eu, 0x00000263u, 0x0000021bu, 0x00000006u, 0x00040020u, + 0x00000264u, 0x00000009u, 0x00000263u, 0x0004003bu, 0x00000264u, 0x00000265u, 0x00000009u, 0x00040020u, + 0x00000266u, 0x00000009u, 0x0000021bu, 0x00050033u, 0x00000020u, 0x0000026fu, 0x00000246u, 0x0000024fu, + 0x00050033u, 0x00000020u, 0x00000273u, 0x00000246u, 0x0000024fu, 0x00040020u, 0x0000027cu, 0x00000009u, + 0x00000006u, 0x0004002bu, 0x00000006u, 0x00000281u, 0x00000020u, 0x00040032u, 0x00000006u, 0x00000299u, + 0x00000001u, 0x0003001du, 0x000002d6u, 0x00000033u, 0x0003001eu, 0x000002d7u, 0x000002d6u, 0x00040020u, + 0x000002d8u, 0x0000000cu, 0x000002d7u, 0x0004003bu, 0x000002d8u, 0x000002d9u, 0x0000000cu, 0x00040032u, + 0x00000006u, 0x000002dbu, 0x00000100u, 0x00060034u, 0x00000006u, 0x000002dcu, 0x00000087u, 0x000002dbu, + 0x00000281u, 0x0003001du, 0x000002e6u, 0x00000033u, 0x0003001eu, 0x000002e7u, 0x000002e6u, 0x00040020u, + 0x000002e8u, 0x0000000cu, 0x000002e7u, 0x0004003bu, 0x000002e8u, 0x000002e9u, 0x0000000cu, 0x0003001du, + 0x00000319u, 0x00000033u, 0x0003001eu, 0x0000031au, 0x00000319u, 0x00040020u, 0x0000031bu, 0x0000000cu, + 0x0000031au, 0x0004003bu, 0x0000031bu, 0x0000031cu, 0x0000000cu, 0x00040017u, 0x00000342u, 0x000001abu, + 0x00000004u, 0x0004002bu, 0x00000033u, 0x00000343u, 0x00000008u, 0x0004001cu, 0x00000344u, 0x000001abu, + 0x00000343u, 0x0005001eu, 0x00000345u, 0x00000342u, 0x00000342u, 0x00000344u, 0x0003001du, 0x00000346u, + 0x00000345u, 0x0003001eu, 0x00000347u, 0x00000346u, 0x00040020u, 0x00000348u, 0x0000000cu, 0x00000347u, + 0x0004003bu, 0x00000348u, 0x00000349u, 0x0000000cu, 0x0003001du, 0x00000352u, 0x0000006du, 0x0003001eu, + 0x00000353u, 0x00000352u, 0x00040020u, 0x00000354u, 0x0000000cu, 0x00000353u, 0x0004003bu, 0x00000354u, + 0x00000355u, 0x0000000cu, 0x00040032u, 0x00000006u, 0x00000357u, 0x00008000u, 0x00060034u, 0x00000033u, + 0x00000358u, 0x00000080u, 0x00000357u, 0x0000004du, 0x00040020u, 0x00000366u, 0x0000000cu, 0x0000006du, + 0x0005002cu, 0x00000020u, 0x000007e8u, 0x000000acu, 0x000000acu, 0x0007002cu, 0x00000007u, 0x000007e9u, + 0x00000042u, 0x00000042u, 0x00000042u, 0x00000042u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, + 0x00000003u, 0x000200f8u, 0x00000005u, 0x00050041u, 0x00000216u, 0x00000217u, 0x00000215u, 0x0000004du, + 0x0004003du, 0x00000033u, 0x00000218u, 0x00000217u, 0x0004007cu, 0x00000006u, 0x00000219u, 0x00000218u, + 0x0004003du, 0x00000213u, 0x0000021cu, 0x00000215u, 0x0007004fu, 0x0000021bu, 0x0000021du, 0x0000021cu, + 0x0000021cu, 0x00000001u, 0x00000002u, 0x0004007cu, 0x00000020u, 0x0000021eu, 0x0000021du, 0x0004003du, + 0x00000033u, 0x00000221u, 0x00000220u, 0x0004007cu, 0x00000006u, 0x00000222u, 0x00000221u, 0x0004003du, + 0x00000033u, 0x00000225u, 0x00000224u, 0x0004007cu, 0x00000006u, 0x00000226u, 0x00000225u, 0x000500c3u, + 0x00000006u, 0x00000227u, 0x00000226u, 0x00000082u, 0x000500c7u, 0x00000006u, 0x0000022au, 0x00000222u, + 0x000000beu, 0x000500c3u, 0x00000006u, 0x0000022du, 0x00000222u, 0x00000082u, 0x0004003du, 0x00000033u, + 0x00000230u, 0x0000022fu, 0x0004007cu, 0x00000006u, 0x00000231u, 0x00000230u, 0x00050084u, 0x00000006u, + 0x00000232u, 0x00000227u, 0x00000231u, 0x00050080u, 0x00000006u, 0x00000234u, 0x0000022du, 0x00000232u, + 0x00050084u, 0x00000020u, 0x0000023du, 0x0000021eu, 0x0000023cu, 0x00050050u, 0x00000020u, 0x00000240u, + 0x0000022au, 0x00000234u, 0x00050080u, 0x00000020u, 0x00000241u, 0x0000023du, 0x00000240u, 0x00050051u, + 0x00000006u, 0x00000244u, 0x00000241u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000248u, 0x00000244u, + 0x00000247u, 0x00050051u, 0x00000006u, 0x0000024au, 0x00000241u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x0000024bu, 0x00000248u, 0x0000024au, 0x00050084u, 0x00000020u, 0x00000252u, 0x0000021eu, 0x00000251u, + 0x00050084u, 0x00000006u, 0x00000254u, 0x00000227u, 0x0000024fu, 0x00050084u, 0x00000006u, 0x00000257u, + 0x00000254u, 0x00000231u, 0x00050051u, 0x00000006u, 0x00000259u, 0x00000252u, 0x00000001u, 0x00050080u, + 0x00000006u, 0x0000025au, 0x00000259u, 0x00000257u, 0x00060052u, 0x00000020u, 0x0000077eu, 0x0000025au, + 0x00000252u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000260u, 0x0000024fu, 0x00000227u, 0x00050050u, + 0x00000020u, 0x00000261u, 0x0000025eu, 0x00000260u, 0x00050080u, 0x00000020u, 0x00000262u, 0x0000077eu, + 0x00000261u, 0x00050041u, 0x00000266u, 0x00000267u, 0x00000265u, 0x00000098u, 0x0004003du, 0x0000021bu, + 0x00000268u, 0x00000267u, 0x0004007cu, 0x00000020u, 0x00000269u, 0x00000268u, 0x0007000cu, 0x00000020u, + 0x0000026au, 0x00000001u, 0x00000027u, 0x00000262u, 0x00000269u, 0x00050082u, 0x00000020u, 0x0000026cu, + 0x0000026au, 0x000007e8u, 0x00050084u, 0x00000020u, 0x00000270u, 0x00000241u, 0x0000026fu, 0x00050080u, + 0x00000020u, 0x00000274u, 0x00000270u, 0x00000273u, 0x0007000cu, 0x00000020u, 0x00000278u, 0x00000001u, + 0x00000027u, 0x00000274u, 0x00000269u, 0x00050082u, 0x00000020u, 0x0000027au, 0x00000278u, 0x000007e8u, + 0x00050041u, 0x0000027cu, 0x0000027du, 0x00000265u, 0x000000acu, 0x0004003du, 0x00000006u, 0x0000027eu, + 0x0000027du, 0x000500b1u, 0x0000001eu, 0x00000282u, 0x00000222u, 0x00000281u, 0x000300f7u, 0x00000284u, + 0x00000000u, 0x000400fau, 0x00000282u, 0x00000283u, 0x00000284u, 0x000200f8u, 0x00000283u, 0x00050084u, + 0x00000006u, 0x00000287u, 0x00000219u, 0x00000281u, 0x00050080u, 0x00000006u, 0x00000289u, 0x00000287u, + 0x00000222u, 0x0004007cu, 0x00000033u, 0x0000028au, 0x00000289u, 0x0004007cu, 0x00000033u, 0x0000028du, + 0x0000027eu, 0x000500b0u, 0x0000001eu, 0x0000028eu, 0x0000028au, 0x0000028du, 0x000300f7u, 0x00000290u, + 0x00000000u, 0x000400fau, 0x0000028eu, 0x0000028fu, 0x00000290u, 0x000200f8u, 0x0000028fu, 0x00060041u, + 0x000001e6u, 0x0000038bu, 0x000001e4u, 0x00000098u, 0x0000028au, 0x0004003du, 0x00000007u, 0x0000038cu, + 0x0000038bu, 0x00050051u, 0x00000006u, 0x0000038eu, 0x0000038cu, 0x00000000u, 0x00050051u, 0x00000006u, + 0x00000390u, 0x0000038cu, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000392u, 0x0000038cu, 0x00000002u, + 0x00050051u, 0x00000006u, 0x00000394u, 0x0000038cu, 0x00000003u, 0x00070041u, 0x000001b2u, 0x00000399u, + 0x000001b0u, 0x00000098u, 0x0000028au, 0x00000098u, 0x0004003du, 0x00000006u, 0x0000039au, 0x00000399u, + 0x00070041u, 0x000001b2u, 0x0000039cu, 0x000001b0u, 0x00000098u, 0x0000028au, 0x000000acu, 0x0004003du, + 0x00000006u, 0x0000039du, 0x0000039cu, 0x00070041u, 0x000001b2u, 0x0000039fu, 0x000001b0u, 0x00000098u, + 0x0000028au, 0x000000c0u, 0x0004003du, 0x00000006u, 0x000003a0u, 0x0000039fu, 0x00070041u, 0x000001bcu, + 0x000003a2u, 0x000001b0u, 0x00000098u, 0x0000028au, 0x00000082u, 0x0004003du, 0x000001aau, 0x000003a3u, + 0x000003a2u, 0x00040072u, 0x00000006u, 0x000003a4u, 0x000003a3u, 0x00070041u, 0x000001bcu, 0x000003a6u, + 0x000001b0u, 0x00000098u, 0x0000028au, 0x00000088u, 0x0004003du, 0x000001aau, 0x000003a7u, 0x000003a6u, + 0x00040072u, 0x00000006u, 0x000003a8u, 0x000003a7u, 0x00070041u, 0x000001b2u, 0x000003aau, 0x000001b0u, + 0x00000098u, 0x0000028au, 0x00000096u, 0x0004003du, 0x00000006u, 0x000003abu, 0x000003aau, 0x00070041u, + 0x000001b2u, 0x000003adu, 0x000001b0u, 0x00000098u, 0x0000028au, 0x000000aau, 0x0004003du, 0x00000006u, + 0x000003aeu, 0x000003adu, 0x00070041u, 0x000001b2u, 0x000003b0u, 0x000001b0u, 0x00000098u, 0x0000028au, + 0x000000beu, 0x0004003du, 0x00000006u, 0x000003b1u, 0x000003b0u, 0x00070041u, 0x000001bcu, 0x000003b3u, + 0x000001b0u, 0x00000098u, 0x0000028au, 0x0000014cu, 0x0004003du, 0x000001aau, 0x000003b4u, 0x000003b3u, + 0x00040072u, 0x00000006u, 0x000003b5u, 0x000003b4u, 0x00070041u, 0x000001d2u, 0x000003b7u, 0x000001b0u, + 0x00000098u, 0x0000028au, 0x0000015au, 0x0004003du, 0x000001abu, 0x000003b8u, 0x000003b7u, 0x00040071u, + 0x00000033u, 0x000003b9u, 0x000003b8u, 0x0004007cu, 0x00000006u, 0x000003bau, 0x000003b9u, 0x000300f7u, + 0x00000441u, 0x00000000u, 0x000300fbu, 0x0000004du, 0x000003d0u, 0x000200f8u, 0x000003d0u, 0x000500c3u, + 0x00000006u, 0x000003d6u, 0x00000390u, 0x000000c0u, 0x00050084u, 0x00000006u, 0x000003d7u, 0x00000299u, + 0x000003d6u, 0x0007000cu, 0x00000006u, 0x000003d8u, 0x00000001u, 0x0000002au, 0x0000025au, 0x000003d7u, + 0x00050051u, 0x00000006u, 0x000003dbu, 0x0000026cu, 0x00000001u, 0x00050080u, 0x00000006u, 0x000003dfu, + 0x00000394u, 0x00000082u, 0x000500c3u, 0x00000006u, 0x000003e0u, 0x000003dfu, 0x000000c0u, 0x00050084u, + 0x00000006u, 0x000003e1u, 0x00000299u, 0x000003e0u, 0x00050082u, 0x00000006u, 0x000003e2u, 0x000003e1u, + 0x000000acu, 0x0007000cu, 0x00000006u, 0x000003e3u, 0x00000001u, 0x00000027u, 0x000003dbu, 0x000003e2u, + 0x00050084u, 0x00000006u, 0x000003e7u, 0x000003d8u, 0x00000088u, 0x00050084u, 0x00000006u, 0x000003eau, + 0x000003e3u, 0x00000088u, 0x00050080u, 0x00000006u, 0x000003ebu, 0x000003eau, 0x00000082u, 0x00050084u, + 0x00000006u, 0x000003f0u, 0x00000299u, 0x000003a4u, 0x0007000cu, 0x00000006u, 0x000003f1u, 0x00000001u, + 0x0000002au, 0x000003e7u, 0x000003f0u, 0x00050084u, 0x00000006u, 0x000003f6u, 0x00000299u, 0x000003b5u, + 0x00050082u, 0x00000006u, 0x000003f7u, 0x000003f6u, 0x000000acu, 0x0007000cu, 0x00000006u, 0x000003f8u, + 0x00000001u, 0x00000027u, 0x000003ebu, 0x000003f7u, 0x000500b1u, 0x0000001eu, 0x000003fbu, 0x000003f8u, + 0x000003f1u, 0x000300f7u, 0x000003fdu, 0x00000000u, 0x000400fau, 0x000003fbu, 0x000003fcu, 0x000003fdu, + 0x000200f8u, 0x000003fcu, 0x000200f9u, 0x00000441u, 0x000200f8u, 0x000003fdu, 0x000500c7u, 0x00000006u, + 0x00000400u, 0x000003bau, 0x000000acu, 0x000500abu, 0x0000001eu, 0x00000401u, 0x00000400u, 0x00000098u, + 0x00050084u, 0x00000006u, 0x00000407u, 0x000003a8u, 0x00000299u, 0x00050050u, 0x00000020u, 0x00000408u, + 0x00000407u, 0x00000407u, 0x00050080u, 0x00000020u, 0x00000409u, 0x00000408u, 0x00000166u, 0x00050050u, + 0x00000020u, 0x0000040bu, 0x000003f1u, 0x000003f1u, 0x00050050u, 0x00000020u, 0x0000040du, 0x000003f8u, + 0x000003f8u, 0x0008000cu, 0x00000020u, 0x0000040eu, 0x00000001u, 0x0000002du, 0x00000409u, 0x0000040bu, + 0x0000040du, 0x00050051u, 0x00000006u, 0x0000040fu, 0x0000040eu, 0x00000000u, 0x00050051u, 0x00000006u, + 0x00000410u, 0x0000040eu, 0x00000001u, 0x00070050u, 0x00000007u, 0x00000411u, 0x000003f1u, 0x000003f8u, + 0x0000040fu, 0x00000410u, 0x000500c7u, 0x00000006u, 0x00000466u, 0x000003a4u, 0x00000085u, 0x00050084u, + 0x00000006u, 0x0000046bu, 0x00000466u, 0x00000299u, 0x00070050u, 0x00000007u, 0x00000471u, 0x0000046bu, + 0x0000046bu, 0x0000046bu, 0x0000046bu, 0x00050082u, 0x00000007u, 0x00000472u, 0x00000411u, 0x00000471u, + 0x00050084u, 0x00000006u, 0x00000476u, 0x00000299u, 0x0000039au, 0x00070050u, 0x00000007u, 0x000004ddu, + 0x000003abu, 0x000003abu, 0x000003abu, 0x000003abu, 0x00050098u, 0x00000068u, 0x000004deu, 0x00000472u, + 0x000004ddu, 0x00050051u, 0x00000007u, 0x000004dfu, 0x000004deu, 0x00000000u, 0x00050051u, 0x00000007u, + 0x000004e0u, 0x000004deu, 0x00000001u, 0x0004007cu, 0x0000006du, 0x000004e2u, 0x000004dfu, 0x0004007cu, + 0x00000033u, 0x000004e4u, 0x00000476u, 0x00070050u, 0x0000006du, 0x000004e5u, 0x000004e4u, 0x000004e4u, + 0x000004e4u, 0x000004e4u, 0x00050095u, 0x00000074u, 0x000004e6u, 0x000004e2u, 0x000004e5u, 0x00050051u, + 0x0000006du, 0x000004e7u, 0x000004e6u, 0x00000001u, 0x00050051u, 0x0000006du, 0x000004e8u, 0x000004e6u, + 0x00000000u, 0x0004007cu, 0x00000007u, 0x000004e9u, 0x000004e8u, 0x0004007cu, 0x00000007u, 0x000004ebu, + 0x000004e7u, 0x00050080u, 0x00000007u, 0x000004edu, 0x000004e0u, 0x000004ebu, 0x00050084u, 0x00000006u, + 0x00000482u, 0x00000299u, 0x0000039du, 0x00070050u, 0x00000007u, 0x000004f7u, 0x000003aeu, 0x000003aeu, + 0x000003aeu, 0x000003aeu, 0x00050098u, 0x00000068u, 0x000004f8u, 0x00000472u, 0x000004f7u, 0x00050051u, + 0x00000007u, 0x000004f9u, 0x000004f8u, 0x00000000u, 0x00050051u, 0x00000007u, 0x000004fau, 0x000004f8u, + 0x00000001u, 0x0004007cu, 0x0000006du, 0x000004fcu, 0x000004f9u, 0x0004007cu, 0x00000033u, 0x000004feu, + 0x00000482u, 0x00070050u, 0x0000006du, 0x000004ffu, 0x000004feu, 0x000004feu, 0x000004feu, 0x000004feu, + 0x00050095u, 0x00000074u, 0x00000500u, 0x000004fcu, 0x000004ffu, 0x00050051u, 0x0000006du, 0x00000501u, + 0x00000500u, 0x00000001u, 0x00050051u, 0x0000006du, 0x00000502u, 0x00000500u, 0x00000000u, 0x0004007cu, + 0x00000007u, 0x00000503u, 0x00000502u, 0x0004007cu, 0x00000007u, 0x00000505u, 0x00000501u, 0x00050080u, + 0x00000007u, 0x00000507u, 0x000004fau, 0x00000505u, 0x00070050u, 0x00000007u, 0x00000489u, 0x00000407u, + 0x00000407u, 0x00000407u, 0x00000407u, 0x00050082u, 0x00000007u, 0x0000048au, 0x00000411u, 0x00000489u, + 0x00050084u, 0x00000006u, 0x0000048eu, 0x00000299u, 0x000003a0u, 0x00070050u, 0x00000007u, 0x00000511u, + 0x000003b1u, 0x000003b1u, 0x000003b1u, 0x000003b1u, 0x00050098u, 0x00000068u, 0x00000512u, 0x0000048au, + 0x00000511u, 0x00050051u, 0x00000007u, 0x00000513u, 0x00000512u, 0x00000000u, 0x00050051u, 0x00000007u, + 0x00000514u, 0x00000512u, 0x00000001u, 0x0004007cu, 0x0000006du, 0x00000516u, 0x00000513u, 0x0004007cu, + 0x00000033u, 0x00000518u, 0x0000048eu, 0x00070050u, 0x0000006du, 0x00000519u, 0x00000518u, 0x00000518u, + 0x00000518u, 0x00000518u, 0x00050095u, 0x00000074u, 0x0000051au, 0x00000516u, 0x00000519u, 0x00050051u, + 0x0000006du, 0x0000051bu, 0x0000051au, 0x00000001u, 0x00050051u, 0x0000006du, 0x0000051cu, 0x0000051au, + 0x00000000u, 0x0004007cu, 0x00000007u, 0x0000051du, 0x0000051cu, 0x0004007cu, 0x00000007u, 0x0000051fu, + 0x0000051bu, 0x00050080u, 0x00000007u, 0x00000521u, 0x00000514u, 0x0000051fu, 0x00050084u, 0x00000006u, + 0x00000499u, 0x00000299u, 0x000003a8u, 0x00070050u, 0x00000007u, 0x0000049au, 0x00000499u, 0x00000499u, + 0x00000499u, 0x00000499u, 0x000500b1u, 0x000000d5u, 0x0000049bu, 0x00000411u, 0x0000049au, 0x000600a9u, + 0x00000007u, 0x0000049cu, 0x0000049bu, 0x00000503u, 0x0000051du, 0x000600a9u, 0x00000007u, 0x000004a6u, + 0x0000049bu, 0x00000507u, 0x00000521u, 0x000500adu, 0x000000d5u, 0x000004a9u, 0x000004edu, 0x000000e6u, + 0x000600a9u, 0x00000007u, 0x000004aau, 0x000004a9u, 0x000000e4u, 0x000004e9u, 0x000500b1u, 0x000000d5u, + 0x000004adu, 0x000004edu, 0x000000eeu, 0x000600a9u, 0x00000007u, 0x000004aeu, 0x000004adu, 0x000000ebu, + 0x000004aau, 0x000500adu, 0x000000d5u, 0x000004b1u, 0x000004a6u, 0x000000e6u, 0x000600a9u, 0x00000007u, + 0x000004b2u, 0x000004b1u, 0x000000e4u, 0x0000049cu, 0x000500b1u, 0x000000d5u, 0x000004b5u, 0x000004a6u, + 0x000000eeu, 0x000600a9u, 0x00000007u, 0x000004b6u, 0x000004b5u, 0x000000ebu, 0x000004b2u, 0x000500c3u, + 0x00000007u, 0x00000528u, 0x000004aeu, 0x000007e9u, 0x000500c3u, 0x00000007u, 0x0000052du, 0x000004b6u, + 0x000007e9u, 0x00070050u, 0x000000d5u, 0x000007ecu, 0x00000401u, 0x00000401u, 0x00000401u, 0x00000401u, + 0x000600a9u, 0x00000007u, 0x000007edu, 0x000007ecu, 0x0000052du, 0x00000528u, 0x000600a9u, 0x00000007u, + 0x000007efu, 0x000007ecu, 0x00000528u, 0x0000052du, 0x0006000cu, 0x00000007u, 0x000004c4u, 0x00000001u, + 0x00000005u, 0x000007efu, 0x0006000cu, 0x00000007u, 0x000004c6u, 0x00000001u, 0x00000005u, 0x000007edu, + 0x0007000cu, 0x00000007u, 0x000004c7u, 0x00000001u, 0x0000002au, 0x000004c4u, 0x000004c6u, 0x0007004fu, + 0x00000020u, 0x00000532u, 0x000004c7u, 0x000004c7u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, + 0x00000534u, 0x000004c7u, 0x000004c7u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x00000535u, + 0x00000001u, 0x0000002au, 0x00000532u, 0x00000534u, 0x00050051u, 0x00000006u, 0x00000537u, 0x00000535u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x00000539u, 0x00000535u, 0x00000001u, 0x0007000cu, 0x00000006u, + 0x0000053au, 0x00000001u, 0x0000002au, 0x00000537u, 0x00000539u, 0x00050084u, 0x00000006u, 0x000004cbu, + 0x00000114u, 0x00000299u, 0x000500b3u, 0x0000001eu, 0x000004ccu, 0x0000053au, 0x000004cbu, 0x000300f7u, + 0x000004d4u, 0x00000000u, 0x000400fau, 0x000004ccu, 0x000004cdu, 0x000004d3u, 0x000200f8u, 0x000004cdu, + 0x0007004fu, 0x00000020u, 0x0000053fu, 0x000007efu, 0x000007efu, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x00000020u, 0x00000541u, 0x000007efu, 0x000007efu, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, + 0x00000542u, 0x00000001u, 0x00000027u, 0x0000053fu, 0x00000541u, 0x00050051u, 0x00000006u, 0x00000544u, + 0x00000542u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000546u, 0x00000542u, 0x00000001u, 0x0007000cu, + 0x00000006u, 0x00000547u, 0x00000001u, 0x00000027u, 0x00000544u, 0x00000546u, 0x0007004fu, 0x00000020u, + 0x0000054cu, 0x000007edu, 0x000007edu, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x0000054eu, + 0x000007edu, 0x000007edu, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x0000054fu, 0x00000001u, + 0x0000002au, 0x0000054cu, 0x0000054eu, 0x00050051u, 0x00000006u, 0x00000551u, 0x0000054fu, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00000553u, 0x0000054fu, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000554u, + 0x00000001u, 0x0000002au, 0x00000551u, 0x00000553u, 0x00050050u, 0x00000020u, 0x000004d2u, 0x00000547u, + 0x00000554u, 0x000200f9u, 0x000004d4u, 0x000200f8u, 0x000004d3u, 0x000200f9u, 0x000004d4u, 0x000200f8u, + 0x000004d4u, 0x000700f5u, 0x00000020u, 0x000007bbu, 0x000004d2u, 0x000004cdu, 0x00000123u, 0x000004d3u, + 0x000500c7u, 0x00000006u, 0x00000419u, 0x000003bau, 0x0000017eu, 0x000500abu, 0x0000001eu, 0x0000041au, + 0x00000419u, 0x00000098u, 0x000600a9u, 0x00000006u, 0x0000041bu, 0x0000041au, 0x00000088u, 0x00000082u, + 0x000500c3u, 0x00000006u, 0x0000041fu, 0x0000038eu, 0x000000c0u, 0x00050084u, 0x00000006u, 0x00000420u, + 0x00000299u, 0x0000041fu, 0x00050080u, 0x00000006u, 0x00000425u, 0x00000392u, 0x0000041bu, 0x000500c3u, + 0x00000006u, 0x00000426u, 0x00000425u, 0x000000c0u, 0x00050084u, 0x00000006u, 0x00000427u, 0x00000299u, + 0x00000426u, 0x00050082u, 0x00000006u, 0x00000428u, 0x00000427u, 0x000000acu, 0x00050050u, 0x00000020u, + 0x00000429u, 0x00000420u, 0x00000428u, 0x0007004fu, 0x00000020u, 0x0000042cu, 0x00000429u, 0x00000429u, + 0x00000000u, 0x00000000u, 0x0007004fu, 0x00000020u, 0x0000042eu, 0x00000429u, 0x00000429u, 0x00000001u, + 0x00000001u, 0x0008000cu, 0x00000020u, 0x0000042fu, 0x00000001u, 0x0000002du, 0x000007bbu, 0x0000042cu, + 0x0000042eu, 0x00050051u, 0x00000006u, 0x00000431u, 0x0000042fu, 0x00000000u, 0x00050051u, 0x00000006u, + 0x00000433u, 0x00000252u, 0x00000000u, 0x0007000cu, 0x00000006u, 0x00000434u, 0x00000001u, 0x0000002au, + 0x00000431u, 0x00000433u, 0x00050051u, 0x00000006u, 0x00000437u, 0x0000042fu, 0x00000001u, 0x00050051u, + 0x00000006u, 0x00000439u, 0x0000026cu, 0x00000000u, 0x0007000cu, 0x00000006u, 0x0000043au, 0x00000001u, + 0x00000027u, 0x00000437u, 0x00000439u, 0x000500b3u, 0x0000001eu, 0x00000440u, 0x00000434u, 0x0000043au, + 0x000200f9u, 0x00000441u, 0x000200f8u, 0x00000441u, 0x000700f5u, 0x0000001eu, 0x000007c0u, 0x00000157u, + 0x000003fcu, 0x00000440u, 0x000004d4u, 0x000200f9u, 0x00000290u, 0x000200f8u, 0x00000290u, 0x000700f5u, + 0x0000001eu, 0x000007c2u, 0x00000157u, 0x00000283u, 0x000007c0u, 0x00000441u, 0x000200f9u, 0x00000284u, + 0x000200f8u, 0x00000284u, 0x000700f5u, 0x0000001eu, 0x000007c1u, 0x00000157u, 0x00000005u, 0x000007c2u, + 0x00000290u, 0x00050153u, 0x0000006du, 0x000002a6u, 0x000001f0u, 0x000007c1u, 0x00050051u, 0x00000033u, + 0x000002a7u, 0x000002a6u, 0x00000000u, 0x000200f9u, 0x000002a9u, 0x000200f8u, 0x000002a9u, 0x000700f5u, + 0x00000033u, 0x000007c4u, 0x0000004du, 0x00000284u, 0x000007e2u, 0x000002acu, 0x000700f5u, 0x00000033u, + 0x000007c3u, 0x000002a7u, 0x00000284u, 0x000002b7u, 0x000002acu, 0x000500abu, 0x0000001eu, 0x000002afu, + 0x000007c3u, 0x0000004du, 0x000400f6u, 0x000002abu, 0x000002acu, 0x00000000u, 0x000400fau, 0x000002afu, + 0x000002aau, 0x000002abu, 0x000200f8u, 0x000002aau, 0x0006000cu, 0x00000006u, 0x000002b2u, 0x00000001u, + 0x00000049u, 0x000007c3u, 0x000500c4u, 0x00000033u, 0x000002b4u, 0x00000050u, 0x000002b2u, 0x000400c8u, + 0x00000033u, 0x000002b5u, 0x000002b4u, 0x000500c7u, 0x00000033u, 0x000002b7u, 0x000007c3u, 0x000002b5u, + 0x00050084u, 0x00000006u, 0x000002bau, 0x00000219u, 0x00000281u, 0x00050080u, 0x00000006u, 0x000002bcu, + 0x000002bau, 0x000002b2u, 0x0004007cu, 0x00000033u, 0x000002bdu, 0x000002bcu, 0x00060041u, 0x000001e6u, + 0x00000559u, 0x000001e4u, 0x00000098u, 0x000002bdu, 0x0004003du, 0x00000007u, 0x0000055au, 0x00000559u, + 0x00050051u, 0x00000006u, 0x0000055cu, 0x0000055au, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000055eu, + 0x0000055au, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000560u, 0x0000055au, 0x00000002u, 0x00050051u, + 0x00000006u, 0x00000562u, 0x0000055au, 0x00000003u, 0x00070041u, 0x000001b2u, 0x00000567u, 0x000001b0u, + 0x00000098u, 0x000002bdu, 0x00000098u, 0x0004003du, 0x00000006u, 0x00000568u, 0x00000567u, 0x00070041u, + 0x000001b2u, 0x0000056au, 0x000001b0u, 0x00000098u, 0x000002bdu, 0x000000acu, 0x0004003du, 0x00000006u, + 0x0000056bu, 0x0000056au, 0x00070041u, 0x000001b2u, 0x0000056du, 0x000001b0u, 0x00000098u, 0x000002bdu, + 0x000000c0u, 0x0004003du, 0x00000006u, 0x0000056eu, 0x0000056du, 0x00070041u, 0x000001bcu, 0x00000570u, + 0x000001b0u, 0x00000098u, 0x000002bdu, 0x00000082u, 0x0004003du, 0x000001aau, 0x00000571u, 0x00000570u, + 0x00040072u, 0x00000006u, 0x00000572u, 0x00000571u, 0x00070041u, 0x000001bcu, 0x00000574u, 0x000001b0u, + 0x00000098u, 0x000002bdu, 0x00000088u, 0x0004003du, 0x000001aau, 0x00000575u, 0x00000574u, 0x00040072u, + 0x00000006u, 0x00000576u, 0x00000575u, 0x00070041u, 0x000001b2u, 0x00000578u, 0x000001b0u, 0x00000098u, + 0x000002bdu, 0x00000096u, 0x0004003du, 0x00000006u, 0x00000579u, 0x00000578u, 0x00070041u, 0x000001b2u, + 0x0000057bu, 0x000001b0u, 0x00000098u, 0x000002bdu, 0x000000aau, 0x0004003du, 0x00000006u, 0x0000057cu, + 0x0000057bu, 0x00070041u, 0x000001b2u, 0x0000057eu, 0x000001b0u, 0x00000098u, 0x000002bdu, 0x000000beu, + 0x0004003du, 0x00000006u, 0x0000057fu, 0x0000057eu, 0x00070041u, 0x000001bcu, 0x00000581u, 0x000001b0u, + 0x00000098u, 0x000002bdu, 0x0000014cu, 0x0004003du, 0x000001aau, 0x00000582u, 0x00000581u, 0x00040072u, + 0x00000006u, 0x00000583u, 0x00000582u, 0x00070041u, 0x000001d2u, 0x00000585u, 0x000001b0u, 0x00000098u, + 0x000002bdu, 0x0000015au, 0x0004003du, 0x000001abu, 0x00000586u, 0x00000585u, 0x00040071u, 0x00000033u, + 0x00000587u, 0x00000586u, 0x0004007cu, 0x00000006u, 0x00000588u, 0x00000587u, 0x000300f7u, 0x0000060fu, + 0x00000000u, 0x000300fbu, 0x0000004du, 0x0000059eu, 0x000200f8u, 0x0000059eu, 0x00050051u, 0x00000006u, + 0x000005a0u, 0x00000270u, 0x00000001u, 0x000500c3u, 0x00000006u, 0x000005a4u, 0x0000055eu, 0x000000c0u, + 0x00050084u, 0x00000006u, 0x000005a5u, 0x00000299u, 0x000005a4u, 0x0007000cu, 0x00000006u, 0x000005a6u, + 0x00000001u, 0x0000002au, 0x000005a0u, 0x000005a5u, 0x00050051u, 0x00000006u, 0x000005a9u, 0x0000027au, + 0x00000001u, 0x00050080u, 0x00000006u, 0x000005adu, 0x00000562u, 0x00000082u, 0x000500c3u, 0x00000006u, + 0x000005aeu, 0x000005adu, 0x000000c0u, 0x00050084u, 0x00000006u, 0x000005afu, 0x00000299u, 0x000005aeu, + 0x00050082u, 0x00000006u, 0x000005b0u, 0x000005afu, 0x000000acu, 0x0007000cu, 0x00000006u, 0x000005b1u, + 0x00000001u, 0x00000027u, 0x000005a9u, 0x000005b0u, 0x00050084u, 0x00000006u, 0x000005b5u, 0x000005a6u, + 0x00000088u, 0x00050084u, 0x00000006u, 0x000005b8u, 0x000005b1u, 0x00000088u, 0x00050080u, 0x00000006u, + 0x000005b9u, 0x000005b8u, 0x00000082u, 0x00050084u, 0x00000006u, 0x000005beu, 0x00000299u, 0x00000572u, + 0x0007000cu, 0x00000006u, 0x000005bfu, 0x00000001u, 0x0000002au, 0x000005b5u, 0x000005beu, 0x00050084u, + 0x00000006u, 0x000005c4u, 0x00000299u, 0x00000583u, 0x00050082u, 0x00000006u, 0x000005c5u, 0x000005c4u, + 0x000000acu, 0x0007000cu, 0x00000006u, 0x000005c6u, 0x00000001u, 0x00000027u, 0x000005b9u, 0x000005c5u, + 0x000500b1u, 0x0000001eu, 0x000005c9u, 0x000005c6u, 0x000005bfu, 0x000300f7u, 0x000005cbu, 0x00000000u, + 0x000400fau, 0x000005c9u, 0x000005cau, 0x000005cbu, 0x000200f8u, 0x000005cau, 0x000200f9u, 0x0000060fu, + 0x000200f8u, 0x000005cbu, 0x000500c7u, 0x00000006u, 0x000005ceu, 0x00000588u, 0x000000acu, 0x000500abu, + 0x0000001eu, 0x000005cfu, 0x000005ceu, 0x00000098u, 0x00050084u, 0x00000006u, 0x000005d5u, 0x00000576u, + 0x00000299u, 0x00050050u, 0x00000020u, 0x000005d6u, 0x000005d5u, 0x000005d5u, 0x00050080u, 0x00000020u, + 0x000005d7u, 0x000005d6u, 0x00000166u, 0x00050050u, 0x00000020u, 0x000005d9u, 0x000005bfu, 0x000005bfu, + 0x00050050u, 0x00000020u, 0x000005dbu, 0x000005c6u, 0x000005c6u, 0x0008000cu, 0x00000020u, 0x000005dcu, + 0x00000001u, 0x0000002du, 0x000005d7u, 0x000005d9u, 0x000005dbu, 0x00050051u, 0x00000006u, 0x000005ddu, + 0x000005dcu, 0x00000000u, 0x00050051u, 0x00000006u, 0x000005deu, 0x000005dcu, 0x00000001u, 0x00070050u, + 0x00000007u, 0x000005dfu, 0x000005bfu, 0x000005c6u, 0x000005ddu, 0x000005deu, 0x000500c7u, 0x00000006u, + 0x00000634u, 0x00000572u, 0x00000085u, 0x00050084u, 0x00000006u, 0x00000639u, 0x00000634u, 0x00000299u, + 0x00070050u, 0x00000007u, 0x0000063fu, 0x00000639u, 0x00000639u, 0x00000639u, 0x00000639u, 0x00050082u, + 0x00000007u, 0x00000640u, 0x000005dfu, 0x0000063fu, 0x00050084u, 0x00000006u, 0x00000644u, 0x00000299u, + 0x00000568u, 0x00070050u, 0x00000007u, 0x000006abu, 0x00000579u, 0x00000579u, 0x00000579u, 0x00000579u, + 0x00050098u, 0x00000068u, 0x000006acu, 0x00000640u, 0x000006abu, 0x00050051u, 0x00000007u, 0x000006adu, + 0x000006acu, 0x00000000u, 0x00050051u, 0x00000007u, 0x000006aeu, 0x000006acu, 0x00000001u, 0x0004007cu, + 0x0000006du, 0x000006b0u, 0x000006adu, 0x0004007cu, 0x00000033u, 0x000006b2u, 0x00000644u, 0x00070050u, + 0x0000006du, 0x000006b3u, 0x000006b2u, 0x000006b2u, 0x000006b2u, 0x000006b2u, 0x00050095u, 0x00000074u, + 0x000006b4u, 0x000006b0u, 0x000006b3u, 0x00050051u, 0x0000006du, 0x000006b5u, 0x000006b4u, 0x00000001u, + 0x00050051u, 0x0000006du, 0x000006b6u, 0x000006b4u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x000006b7u, + 0x000006b6u, 0x0004007cu, 0x00000007u, 0x000006b9u, 0x000006b5u, 0x00050080u, 0x00000007u, 0x000006bbu, + 0x000006aeu, 0x000006b9u, 0x00050084u, 0x00000006u, 0x00000650u, 0x00000299u, 0x0000056bu, 0x00070050u, + 0x00000007u, 0x000006c5u, 0x0000057cu, 0x0000057cu, 0x0000057cu, 0x0000057cu, 0x00050098u, 0x00000068u, + 0x000006c6u, 0x00000640u, 0x000006c5u, 0x00050051u, 0x00000007u, 0x000006c7u, 0x000006c6u, 0x00000000u, + 0x00050051u, 0x00000007u, 0x000006c8u, 0x000006c6u, 0x00000001u, 0x0004007cu, 0x0000006du, 0x000006cau, + 0x000006c7u, 0x0004007cu, 0x00000033u, 0x000006ccu, 0x00000650u, 0x00070050u, 0x0000006du, 0x000006cdu, + 0x000006ccu, 0x000006ccu, 0x000006ccu, 0x000006ccu, 0x00050095u, 0x00000074u, 0x000006ceu, 0x000006cau, + 0x000006cdu, 0x00050051u, 0x0000006du, 0x000006cfu, 0x000006ceu, 0x00000001u, 0x00050051u, 0x0000006du, + 0x000006d0u, 0x000006ceu, 0x00000000u, 0x0004007cu, 0x00000007u, 0x000006d1u, 0x000006d0u, 0x0004007cu, + 0x00000007u, 0x000006d3u, 0x000006cfu, 0x00050080u, 0x00000007u, 0x000006d5u, 0x000006c8u, 0x000006d3u, + 0x00070050u, 0x00000007u, 0x00000657u, 0x000005d5u, 0x000005d5u, 0x000005d5u, 0x000005d5u, 0x00050082u, + 0x00000007u, 0x00000658u, 0x000005dfu, 0x00000657u, 0x00050084u, 0x00000006u, 0x0000065cu, 0x00000299u, + 0x0000056eu, 0x00070050u, 0x00000007u, 0x000006dfu, 0x0000057fu, 0x0000057fu, 0x0000057fu, 0x0000057fu, + 0x00050098u, 0x00000068u, 0x000006e0u, 0x00000658u, 0x000006dfu, 0x00050051u, 0x00000007u, 0x000006e1u, + 0x000006e0u, 0x00000000u, 0x00050051u, 0x00000007u, 0x000006e2u, 0x000006e0u, 0x00000001u, 0x0004007cu, + 0x0000006du, 0x000006e4u, 0x000006e1u, 0x0004007cu, 0x00000033u, 0x000006e6u, 0x0000065cu, 0x00070050u, + 0x0000006du, 0x000006e7u, 0x000006e6u, 0x000006e6u, 0x000006e6u, 0x000006e6u, 0x00050095u, 0x00000074u, + 0x000006e8u, 0x000006e4u, 0x000006e7u, 0x00050051u, 0x0000006du, 0x000006e9u, 0x000006e8u, 0x00000001u, + 0x00050051u, 0x0000006du, 0x000006eau, 0x000006e8u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x000006ebu, + 0x000006eau, 0x0004007cu, 0x00000007u, 0x000006edu, 0x000006e9u, 0x00050080u, 0x00000007u, 0x000006efu, + 0x000006e2u, 0x000006edu, 0x00050084u, 0x00000006u, 0x00000667u, 0x00000299u, 0x00000576u, 0x00070050u, + 0x00000007u, 0x00000668u, 0x00000667u, 0x00000667u, 0x00000667u, 0x00000667u, 0x000500b1u, 0x000000d5u, + 0x00000669u, 0x000005dfu, 0x00000668u, 0x000600a9u, 0x00000007u, 0x0000066au, 0x00000669u, 0x000006d1u, + 0x000006ebu, 0x000600a9u, 0x00000007u, 0x00000674u, 0x00000669u, 0x000006d5u, 0x000006efu, 0x000500adu, + 0x000000d5u, 0x00000677u, 0x000006bbu, 0x000000e6u, 0x000600a9u, 0x00000007u, 0x00000678u, 0x00000677u, + 0x000000e4u, 0x000006b7u, 0x000500b1u, 0x000000d5u, 0x0000067bu, 0x000006bbu, 0x000000eeu, 0x000600a9u, + 0x00000007u, 0x0000067cu, 0x0000067bu, 0x000000ebu, 0x00000678u, 0x000500adu, 0x000000d5u, 0x0000067fu, + 0x00000674u, 0x000000e6u, 0x000600a9u, 0x00000007u, 0x00000680u, 0x0000067fu, 0x000000e4u, 0x0000066au, + 0x000500b1u, 0x000000d5u, 0x00000683u, 0x00000674u, 0x000000eeu, 0x000600a9u, 0x00000007u, 0x00000684u, + 0x00000683u, 0x000000ebu, 0x00000680u, 0x000500c3u, 0x00000007u, 0x000006f6u, 0x0000067cu, 0x000007e9u, + 0x000500c3u, 0x00000007u, 0x000006fbu, 0x00000684u, 0x000007e9u, 0x00070050u, 0x000000d5u, 0x000007f0u, + 0x000005cfu, 0x000005cfu, 0x000005cfu, 0x000005cfu, 0x000600a9u, 0x00000007u, 0x000007f1u, 0x000007f0u, + 0x000006fbu, 0x000006f6u, 0x000600a9u, 0x00000007u, 0x000007f3u, 0x000007f0u, 0x000006f6u, 0x000006fbu, + 0x0006000cu, 0x00000007u, 0x00000692u, 0x00000001u, 0x00000005u, 0x000007f3u, 0x0006000cu, 0x00000007u, + 0x00000694u, 0x00000001u, 0x00000005u, 0x000007f1u, 0x0007000cu, 0x00000007u, 0x00000695u, 0x00000001u, + 0x0000002au, 0x00000692u, 0x00000694u, 0x0007004fu, 0x00000020u, 0x00000700u, 0x00000695u, 0x00000695u, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x00000702u, 0x00000695u, 0x00000695u, 0x00000002u, + 0x00000003u, 0x0007000cu, 0x00000020u, 0x00000703u, 0x00000001u, 0x0000002au, 0x00000700u, 0x00000702u, + 0x00050051u, 0x00000006u, 0x00000705u, 0x00000703u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000707u, + 0x00000703u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000708u, 0x00000001u, 0x0000002au, 0x00000705u, + 0x00000707u, 0x00050084u, 0x00000006u, 0x00000699u, 0x00000114u, 0x00000299u, 0x000500b3u, 0x0000001eu, + 0x0000069au, 0x00000708u, 0x00000699u, 0x000300f7u, 0x000006a2u, 0x00000000u, 0x000400fau, 0x0000069au, + 0x0000069bu, 0x000006a1u, 0x000200f8u, 0x0000069bu, 0x0007004fu, 0x00000020u, 0x0000070du, 0x000007f3u, + 0x000007f3u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x0000070fu, 0x000007f3u, 0x000007f3u, + 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x00000710u, 0x00000001u, 0x00000027u, 0x0000070du, + 0x0000070fu, 0x00050051u, 0x00000006u, 0x00000712u, 0x00000710u, 0x00000000u, 0x00050051u, 0x00000006u, + 0x00000714u, 0x00000710u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000715u, 0x00000001u, 0x00000027u, + 0x00000712u, 0x00000714u, 0x0007004fu, 0x00000020u, 0x0000071au, 0x000007f1u, 0x000007f1u, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x00000020u, 0x0000071cu, 0x000007f1u, 0x000007f1u, 0x00000002u, 0x00000003u, + 0x0007000cu, 0x00000020u, 0x0000071du, 0x00000001u, 0x0000002au, 0x0000071au, 0x0000071cu, 0x00050051u, + 0x00000006u, 0x0000071fu, 0x0000071du, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000721u, 0x0000071du, + 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000722u, 0x00000001u, 0x0000002au, 0x0000071fu, 0x00000721u, + 0x00050050u, 0x00000020u, 0x000006a0u, 0x00000715u, 0x00000722u, 0x000200f9u, 0x000006a2u, 0x000200f8u, + 0x000006a1u, 0x000200f9u, 0x000006a2u, 0x000200f8u, 0x000006a2u, 0x000700f5u, 0x00000020u, 0x000007d5u, + 0x000006a0u, 0x0000069bu, 0x00000123u, 0x000006a1u, 0x000500c7u, 0x00000006u, 0x000005e7u, 0x00000588u, + 0x0000017eu, 0x000500abu, 0x0000001eu, 0x000005e8u, 0x000005e7u, 0x00000098u, 0x000600a9u, 0x00000006u, + 0x000005e9u, 0x000005e8u, 0x00000088u, 0x00000082u, 0x000500c3u, 0x00000006u, 0x000005edu, 0x0000055cu, + 0x000000c0u, 0x00050084u, 0x00000006u, 0x000005eeu, 0x00000299u, 0x000005edu, 0x00050080u, 0x00000006u, + 0x000005f3u, 0x00000560u, 0x000005e9u, 0x000500c3u, 0x00000006u, 0x000005f4u, 0x000005f3u, 0x000000c0u, + 0x00050084u, 0x00000006u, 0x000005f5u, 0x00000299u, 0x000005f4u, 0x00050082u, 0x00000006u, 0x000005f6u, + 0x000005f5u, 0x000000acu, 0x00050050u, 0x00000020u, 0x000005f7u, 0x000005eeu, 0x000005f6u, 0x0007004fu, + 0x00000020u, 0x000005fau, 0x000005f7u, 0x000005f7u, 0x00000000u, 0x00000000u, 0x0007004fu, 0x00000020u, + 0x000005fcu, 0x000005f7u, 0x000005f7u, 0x00000001u, 0x00000001u, 0x0008000cu, 0x00000020u, 0x000005fdu, + 0x00000001u, 0x0000002du, 0x000007d5u, 0x000005fau, 0x000005fcu, 0x00050051u, 0x00000006u, 0x000005ffu, + 0x000005fdu, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000601u, 0x00000270u, 0x00000000u, 0x0007000cu, + 0x00000006u, 0x00000602u, 0x00000001u, 0x0000002au, 0x000005ffu, 0x00000601u, 0x00050051u, 0x00000006u, + 0x00000605u, 0x000005fdu, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000607u, 0x0000027au, 0x00000000u, + 0x0007000cu, 0x00000006u, 0x00000608u, 0x00000001u, 0x00000027u, 0x00000605u, 0x00000607u, 0x000500b3u, + 0x0000001eu, 0x0000060eu, 0x00000602u, 0x00000608u, 0x000200f9u, 0x0000060fu, 0x000200f8u, 0x0000060fu, + 0x000700f5u, 0x0000001eu, 0x000007dau, 0x00000157u, 0x000005cau, 0x0000060eu, 0x000006a2u, 0x000300f7u, + 0x000002d1u, 0x00000000u, 0x000400fau, 0x000007dau, 0x000002d0u, 0x000002d1u, 0x000200f8u, 0x000002d0u, + 0x000500c5u, 0x00000033u, 0x000002d5u, 0x000007c4u, 0x000002b4u, 0x000200f9u, 0x000002d1u, 0x000200f8u, + 0x000002d1u, 0x000700f5u, 0x00000033u, 0x000007e2u, 0x000007c4u, 0x0000060fu, 0x000002d5u, 0x000002d0u, + 0x000200f9u, 0x000002acu, 0x000200f8u, 0x000002acu, 0x000200f9u, 0x000002a9u, 0x000200f8u, 0x000002abu, + 0x00050084u, 0x00000006u, 0x000002ddu, 0x0000024bu, 0x000002dcu, 0x00050080u, 0x00000006u, 0x000002dfu, + 0x000002ddu, 0x00000219u, 0x00060041u, 0x00000205u, 0x000002e1u, 0x000002d9u, 0x00000098u, 0x000002dfu, + 0x0003003eu, 0x000002e1u, 0x000007c4u, 0x000500abu, 0x0000001eu, 0x000002e3u, 0x000007c4u, 0x0000004du, + 0x000300f7u, 0x000002e5u, 0x00000000u, 0x000400fau, 0x000002e3u, 0x000002e4u, 0x000002efu, 0x000200f8u, + 0x000002e4u, 0x00060041u, 0x00000205u, 0x000002ebu, 0x000002e9u, 0x00000098u, 0x0000024bu, 0x000500c4u, + 0x00000033u, 0x000002edu, 0x00000050u, 0x00000219u, 0x000700f1u, 0x00000033u, 0x000002eeu, 0x000002ebu, + 0x00000050u, 0x0000004du, 0x000002edu, 0x000200f9u, 0x000002e5u, 0x000200f8u, 0x000002efu, 0x00060041u, + 0x00000205u, 0x000002f1u, 0x000002e9u, 0x00000098u, 0x0000024bu, 0x000500c4u, 0x00000033u, 0x000002f3u, + 0x00000050u, 0x00000219u, 0x000400c8u, 0x00000033u, 0x000002f4u, 0x000002f3u, 0x000700f0u, 0x00000033u, + 0x000002f5u, 0x000002f1u, 0x00000050u, 0x0000004du, 0x000002f4u, 0x000200f9u, 0x000002e5u, 0x000200f8u, + 0x000002e5u, 0x000400cdu, 0x00000006u, 0x000002f8u, 0x000007c4u, 0x0004007cu, 0x00000033u, 0x000002f9u, + 0x000002f8u, 0x000500abu, 0x0000001eu, 0x000002fcu, 0x000002f9u, 0x0000004du, 0x0005014fu, 0x0000001eu, + 0x000002fdu, 0x000001f0u, 0x000002fcu, 0x000300f7u, 0x000002ffu, 0x00000000u, 0x000400fau, 0x000002fdu, + 0x000002feu, 0x000002ffu, 0x000200f8u, 0x000002feu, 0x0006015du, 0x00000033u, 0x00000302u, 0x000001f0u, + 0x00000000u, 0x000002f9u, 0x0004014du, 0x0000001eu, 0x00000303u, 0x000001f0u, 0x000300f7u, 0x00000305u, + 0x00000000u, 0x000400fau, 0x00000303u, 0x00000304u, 0x00000305u, 0x000200f8u, 0x00000304u, 0x000500abu, + 0x0000001eu, 0x00000307u, 0x00000302u, 0x0000004du, 0x000300f7u, 0x00000309u, 0x00000000u, 0x000400fau, + 0x00000307u, 0x00000308u, 0x00000309u, 0x000200f8u, 0x00000308u, 0x00070041u, 0x00000205u, 0x0000030au, + 0x00000203u, 0x00000098u, 0x00000098u, 0x000001f0u, 0x000700eau, 0x00000033u, 0x0000030cu, 0x0000030au, + 0x00000050u, 0x0000004du, 0x00000302u, 0x000200f9u, 0x00000309u, 0x000200f8u, 0x00000309u, 0x000700f5u, + 0x00000033u, 0x000007c7u, 0x0000004du, 0x00000304u, 0x0000030cu, 0x00000308u, 0x000200f9u, 0x00000305u, + 0x000200f8u, 0x00000305u, 0x000700f5u, 0x00000033u, 0x000007c6u, 0x0000004du, 0x000002feu, 0x000007c7u, + 0x00000309u, 0x00050152u, 0x00000033u, 0x0000030eu, 0x000001f0u, 0x000007c6u, 0x0006015du, 0x00000033u, + 0x00000310u, 0x000001f0u, 0x00000001u, 0x000002f9u, 0x00050082u, 0x00000033u, 0x00000312u, 0x00000310u, + 0x000002f9u, 0x00050080u, 0x00000033u, 0x00000314u, 0x0000030eu, 0x00000312u, 0x000200f9u, 0x000002ffu, + 0x000200f8u, 0x000002ffu, 0x000700f5u, 0x00000033u, 0x000007c8u, 0x0000004du, 0x000002e5u, 0x00000314u, + 0x00000305u, 0x000300f7u, 0x00000318u, 0x00000000u, 0x000400fau, 0x000002fcu, 0x00000317u, 0x00000318u, + 0x000200f8u, 0x00000317u, 0x00060041u, 0x00000205u, 0x00000322u, 0x0000031cu, 0x00000098u, 0x000002dfu, + 0x0003003eu, 0x00000322u, 0x000007c8u, 0x000200f9u, 0x00000318u, 0x000200f8u, 0x00000318u, 0x00060168u, + 0x00000033u, 0x00000325u, 0x000001f0u, 0x00000000u, 0x000007c4u, 0x000200f9u, 0x00000326u, 0x000200f8u, + 0x00000326u, 0x000700f5u, 0x00000033u, 0x000007d1u, 0x000007c8u, 0x00000318u, 0x000007e7u, 0x00000329u, + 0x000700f5u, 0x00000033u, 0x000007cdu, 0x00000325u, 0x00000318u, 0x00000334u, 0x00000329u, 0x000500abu, + 0x0000001eu, 0x0000032cu, 0x000007cdu, 0x0000004du, 0x000400f6u, 0x00000328u, 0x00000329u, 0x00000000u, + 0x000400fau, 0x0000032cu, 0x00000327u, 0x00000328u, 0x000200f8u, 0x00000327u, 0x0006000cu, 0x00000006u, + 0x0000032fu, 0x00000001u, 0x00000049u, 0x000007cdu, 0x000500c4u, 0x00000033u, 0x00000331u, 0x00000050u, + 0x0000032fu, 0x000400c8u, 0x00000033u, 0x00000332u, 0x00000331u, 0x000500c7u, 0x00000033u, 0x00000334u, + 0x000007cdu, 0x00000332u, 0x00050084u, 0x00000006u, 0x00000337u, 0x00000219u, 0x00000281u, 0x00050080u, + 0x00000006u, 0x00000339u, 0x00000337u, 0x0000032fu, 0x000500c7u, 0x00000033u, 0x0000033du, 0x000007c4u, + 0x00000331u, 0x000500abu, 0x0000001eu, 0x0000033eu, 0x0000033du, 0x0000004du, 0x000300f7u, 0x00000340u, + 0x00000000u, 0x000400fau, 0x0000033eu, 0x0000033fu, 0x00000340u, 0x000200f8u, 0x0000033fu, 0x00080041u, + 0x000001d2u, 0x0000034bu, 0x00000349u, 0x00000098u, 0x00000339u, 0x00000098u, 0x0000004du, 0x0004003du, + 0x000001abu, 0x0000034cu, 0x0000034bu, 0x00040071u, 0x00000033u, 0x0000034du, 0x0000034cu, 0x00050153u, + 0x0000006du, 0x00000728u, 0x000001f0u, 0x000001f7u, 0x00060156u, 0x00000033u, 0x0000072au, 0x000001f0u, + 0x00000000u, 0x00000728u, 0x0004014du, 0x0000001eu, 0x0000072bu, 0x000001f0u, 0x000300f7u, 0x00000731u, + 0x00000000u, 0x000400fau, 0x0000072bu, 0x0000072cu, 0x00000731u, 0x000200f8u, 0x0000072cu, 0x00070041u, + 0x00000205u, 0x0000072eu, 0x00000203u, 0x00000098u, 0x0000034du, 0x0000004du, 0x000700eau, 0x00000033u, + 0x00000730u, 0x0000072eu, 0x00000050u, 0x0000004du, 0x0000072au, 0x000200f9u, 0x00000731u, 0x000200f8u, + 0x00000731u, 0x000700f5u, 0x00000033u, 0x000007cfu, 0x0000004du, 0x0000033fu, 0x00000730u, 0x0000072cu, + 0x00050152u, 0x00000033u, 0x00000733u, 0x000001f0u, 0x000007cfu, 0x00060156u, 0x00000033u, 0x00000735u, + 0x000001f0u, 0x00000002u, 0x00000728u, 0x00050080u, 0x00000033u, 0x00000737u, 0x00000733u, 0x00000735u, + 0x00050084u, 0x00000033u, 0x0000035au, 0x00000358u, 0x0000034du, 0x00050080u, 0x00000033u, 0x0000035bu, + 0x00000737u, 0x0000035au, 0x0004007cu, 0x00000033u, 0x0000035eu, 0x0000024au, 0x0004007cu, 0x00000033u, + 0x00000361u, 0x00000244u, 0x0004007cu, 0x00000033u, 0x00000364u, 0x00000339u, 0x00070050u, 0x0000006du, + 0x00000365u, 0x0000035eu, 0x00000361u, 0x000007d1u, 0x00000364u, 0x00060041u, 0x00000366u, 0x00000367u, + 0x00000355u, 0x00000098u, 0x0000035bu, 0x0003003eu, 0x00000367u, 0x00000365u, 0x00050080u, 0x00000033u, + 0x00000369u, 0x000007d1u, 0x000000acu, 0x000200f9u, 0x00000340u, 0x000200f8u, 0x00000340u, 0x000700f5u, + 0x00000033u, 0x000007e7u, 0x000007d1u, 0x00000327u, 0x00000369u, 0x00000731u, 0x000200f9u, 0x00000329u, + 0x000200f8u, 0x00000329u, 0x000200f9u, 0x00000326u, 0x000200f8u, 0x00000328u, 0x000100fdu, 0x00010038u, + 0x07230203u, 0x00010300u, 0x000d000bu, 0x0000072fu, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, + 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, + 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, + 0x0003000eu, 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, + 0x000001f5u, 0x00000200u, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000020u, 0x00000001u, 0x00000001u, + 0x00050048u, 0x000001a8u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000001a8u, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x000001a8u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, + 0x000001a8u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000001a8u, 0x00000004u, 0x00000023u, + 0x0000000eu, 0x00050048u, 0x000001a8u, 0x00000005u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000001a8u, + 0x00000006u, 0x00000023u, 0x00000014u, 0x00050048u, 0x000001a8u, 0x00000007u, 0x00000023u, 0x00000018u, + 0x00050048u, 0x000001a8u, 0x00000008u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x000001a8u, 0x00000009u, + 0x00000023u, 0x0000001eu, 0x00050048u, 0x000001a8u, 0x0000000au, 0x00000023u, 0x0000001fu, 0x00040047u, + 0x000001a9u, 0x00000006u, 0x00000020u, 0x00040048u, 0x000001aau, 0x00000000u, 0x00000018u, 0x00050048u, + 0x000001aau, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001aau, 0x00000002u, 0x00040047u, + 0x000001acu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001acu, 0x00000021u, 0x00000000u, 0x00040047u, + 0x000001ddu, 0x00000006u, 0x00000010u, 0x00040048u, 0x000001deu, 0x00000000u, 0x00000018u, 0x00050048u, + 0x000001deu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001deu, 0x00000002u, 0x00040047u, + 0x000001e0u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001e0u, 0x00000021u, 0x00000001u, 0x00040047u, + 0x000001f5u, 0x0000000bu, 0x0000001au, 0x00040047u, 0x00000200u, 0x0000000bu, 0x0000001du, 0x00040047u, + 0x00000214u, 0x00000001u, 0x00000004u, 0x00040047u, 0x00000215u, 0x00000001u, 0x00000001u, 0x00040047u, + 0x0000021eu, 0x00000001u, 0x00000002u, 0x00050048u, 0x00000228u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00050048u, 0x00000228u, 0x00000001u, 0x00000023u, 0x00000008u, 0x00030047u, 0x00000228u, 0x00000002u, + 0x00040047u, 0x00000265u, 0x00000001u, 0x00000006u, 0x00040047u, 0x000002a6u, 0x00000006u, 0x00000004u, + 0x00040048u, 0x000002a7u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000002a7u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000002a7u, 0x00000002u, 0x00040047u, 0x000002a9u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000002a9u, 0x00000021u, 0x00000003u, 0x00040047u, 0x000002abu, 0x00000001u, 0x00000003u, + 0x00040047u, 0x000002b7u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000002b8u, 0x00000000u, 0x00000019u, + 0x00050048u, 0x000002b8u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002b8u, 0x00000002u, + 0x00040047u, 0x000002bau, 0x00000022u, 0x00000000u, 0x00040047u, 0x000002bau, 0x00000021u, 0x00000004u, + 0x00040047u, 0x000002c8u, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, + 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000007u, 0x00000006u, + 0x00000004u, 0x00020014u, 0x0000001eu, 0x00040017u, 0x00000020u, 0x00000006u, 0x00000002u, 0x00040015u, + 0x00000033u, 0x00000020u, 0x00000000u, 0x0004002bu, 0x00000006u, 0x0000003eu, 0x0000000fu, 0x0004002bu, + 0x00000033u, 0x00000049u, 0x00000000u, 0x0004002bu, 0x00000033u, 0x0000004cu, 0x00000001u, 0x0004001eu, + 0x00000064u, 0x00000007u, 0x00000007u, 0x00040017u, 0x00000069u, 0x00000033u, 0x00000004u, 0x0004001eu, + 0x00000070u, 0x00000069u, 0x00000069u, 0x0004002bu, 0x00000006u, 0x0000007eu, 0x00000003u, 0x0004002bu, + 0x00000006u, 0x00000081u, 0xfffffffcu, 0x0004002bu, 0x00000006u, 0x00000084u, 0x00000004u, 0x0004002bu, + 0x00000006u, 0x00000092u, 0x00000005u, 0x0004002bu, 0x00000006u, 0x00000094u, 0x00000000u, 0x0004002bu, + 0x00000006u, 0x000000a6u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x000000a8u, 0x00000001u, 0x0004002bu, + 0x00000006u, 0x000000bau, 0x00000007u, 0x0004002bu, 0x00000006u, 0x000000bcu, 0x00000002u, 0x00040017u, + 0x000000d1u, 0x0000001eu, 0x00000004u, 0x0004002bu, 0x00000006u, 0x000000dfu, 0x7fffffffu, 0x0007002cu, + 0x00000007u, 0x000000e0u, 0x000000dfu, 0x000000dfu, 0x000000dfu, 0x000000dfu, 0x0007002cu, 0x00000007u, + 0x000000e2u, 0x00000094u, 0x00000094u, 0x00000094u, 0x00000094u, 0x0004002bu, 0x00000006u, 0x000000e6u, + 0x80000000u, 0x0007002cu, 0x00000007u, 0x000000e7u, 0x000000e6u, 0x000000e6u, 0x000000e6u, 0x000000e6u, + 0x0004002bu, 0x00000006u, 0x000000e9u, 0xffffffffu, 0x0007002cu, 0x00000007u, 0x000000eau, 0x000000e9u, + 0x000000e9u, 0x000000e9u, 0x000000e9u, 0x0004002bu, 0x00000006u, 0x00000110u, 0x000007ffu, 0x0005002cu, + 0x00000020u, 0x0000011fu, 0x00000094u, 0x000000dfu, 0x0004002bu, 0x00000006u, 0x00000148u, 0x00000008u, + 0x0003002au, 0x0000001eu, 0x00000153u, 0x0004002bu, 0x00000006u, 0x00000156u, 0x00000009u, 0x0005002cu, + 0x00000020u, 0x00000162u, 0x000000e9u, 0x00000094u, 0x0004002bu, 0x00000006u, 0x0000017au, 0x00000080u, + 0x00040015u, 0x000001a6u, 0x00000010u, 0x00000001u, 0x00040015u, 0x000001a7u, 0x00000008u, 0x00000000u, + 0x000d001eu, 0x000001a8u, 0x00000006u, 0x00000006u, 0x00000006u, 0x000001a6u, 0x000001a6u, 0x00000006u, + 0x00000006u, 0x00000006u, 0x000001a6u, 0x000001a7u, 0x000001a7u, 0x0003001du, 0x000001a9u, 0x000001a8u, + 0x0003001eu, 0x000001aau, 0x000001a9u, 0x00040020u, 0x000001abu, 0x0000000cu, 0x000001aau, 0x0004003bu, + 0x000001abu, 0x000001acu, 0x0000000cu, 0x00040020u, 0x000001aeu, 0x0000000cu, 0x00000006u, 0x00040020u, + 0x000001b8u, 0x0000000cu, 0x000001a6u, 0x00040020u, 0x000001ceu, 0x0000000cu, 0x000001a7u, 0x0003001du, + 0x000001ddu, 0x00000007u, 0x0003001eu, 0x000001deu, 0x000001ddu, 0x00040020u, 0x000001dfu, 0x0000000cu, + 0x000001deu, 0x0004003bu, 0x000001dfu, 0x000001e0u, 0x0000000cu, 0x00040020u, 0x000001e2u, 0x0000000cu, + 0x00000007u, 0x0004002bu, 0x00000033u, 0x000001e9u, 0x00000002u, 0x00040017u, 0x000001f3u, 0x00000033u, + 0x00000003u, 0x00040020u, 0x000001f4u, 0x00000001u, 0x000001f3u, 0x0004003bu, 0x000001f4u, 0x000001f5u, + 0x00000001u, 0x00040020u, 0x000001f6u, 0x00000001u, 0x00000033u, 0x00040017u, 0x000001fbu, 0x00000033u, + 0x00000002u, 0x0004003bu, 0x000001f6u, 0x00000200u, 0x00000001u, 0x0005002cu, 0x00000020u, 0x0000020bu, + 0x00000148u, 0x00000084u, 0x00040032u, 0x00000006u, 0x00000214u, 0x00000400u, 0x00040032u, 0x00000006u, + 0x00000215u, 0x00000008u, 0x00060034u, 0x00000006u, 0x00000216u, 0x00000087u, 0x00000214u, 0x00000215u, + 0x00060034u, 0x00000006u, 0x0000021du, 0x00000084u, 0x00000215u, 0x00000148u, 0x00040032u, 0x00000006u, + 0x0000021eu, 0x00000008u, 0x00060034u, 0x00000006u, 0x0000021fu, 0x00000084u, 0x0000021eu, 0x00000084u, + 0x00050033u, 0x00000020u, 0x00000220u, 0x0000021du, 0x0000021fu, 0x00060034u, 0x00000006u, 0x00000224u, + 0x00000084u, 0x00000215u, 0x00000148u, 0x00060034u, 0x00000006u, 0x00000225u, 0x00000084u, 0x0000021eu, + 0x00000084u, 0x00050033u, 0x00000020u, 0x00000226u, 0x00000224u, 0x00000225u, 0x0004001eu, 0x00000228u, + 0x000001fbu, 0x00000006u, 0x00040020u, 0x00000229u, 0x00000009u, 0x00000228u, 0x0004003bu, 0x00000229u, + 0x0000022au, 0x00000009u, 0x00040020u, 0x0000022bu, 0x00000009u, 0x000001fbu, 0x00050033u, 0x00000020u, + 0x00000234u, 0x00000215u, 0x0000021eu, 0x00050033u, 0x00000020u, 0x00000238u, 0x00000215u, 0x0000021eu, + 0x00040020u, 0x00000241u, 0x00000009u, 0x00000006u, 0x00040020u, 0x00000248u, 0x00000004u, 0x00000033u, + 0x0004003bu, 0x00000248u, 0x00000249u, 0x00000004u, 0x0004002bu, 0x00000033u, 0x0000024au, 0x00000108u, + 0x0004002bu, 0x00000006u, 0x0000024du, 0x00000020u, 0x00040032u, 0x00000006u, 0x00000265u, 0x00000001u, + 0x0003001du, 0x000002a6u, 0x00000033u, 0x0003001eu, 0x000002a7u, 0x000002a6u, 0x00040020u, 0x000002a8u, + 0x0000000cu, 0x000002a7u, 0x0004003bu, 0x000002a8u, 0x000002a9u, 0x0000000cu, 0x00040032u, 0x00000006u, + 0x000002abu, 0x00000100u, 0x00060034u, 0x00000006u, 0x000002acu, 0x00000087u, 0x000002abu, 0x0000024du, + 0x00040020u, 0x000002b1u, 0x0000000cu, 0x00000033u, 0x0003001du, 0x000002b7u, 0x00000033u, 0x0003001eu, + 0x000002b8u, 0x000002b7u, 0x00040020u, 0x000002b9u, 0x0000000cu, 0x000002b8u, 0x0004003bu, 0x000002b9u, + 0x000002bau, 0x0000000cu, 0x0004002bu, 0x00000033u, 0x000002c7u, 0x00000020u, 0x0006002cu, 0x000001f3u, + 0x000002c8u, 0x000002c7u, 0x0000004cu, 0x0000004cu, 0x0005002cu, 0x00000020u, 0x00000723u, 0x000000a8u, + 0x000000a8u, 0x0007002cu, 0x00000007u, 0x00000724u, 0x0000003eu, 0x0000003eu, 0x0000003eu, 0x0000003eu, + 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x00050041u, + 0x000001f6u, 0x000001f7u, 0x000001f5u, 0x00000049u, 0x0004003du, 0x00000033u, 0x000001f8u, 0x000001f7u, + 0x0004007cu, 0x00000006u, 0x000001f9u, 0x000001f8u, 0x0004003du, 0x000001f3u, 0x000001fcu, 0x000001f5u, + 0x0007004fu, 0x000001fbu, 0x000001fdu, 0x000001fcu, 0x000001fcu, 0x00000001u, 0x00000002u, 0x0004007cu, + 0x00000020u, 0x000001feu, 0x000001fdu, 0x0004003du, 0x00000033u, 0x00000201u, 0x00000200u, 0x0004007cu, + 0x00000006u, 0x00000202u, 0x00000201u, 0x000500c7u, 0x00000006u, 0x00000205u, 0x00000202u, 0x000000bau, + 0x000500c3u, 0x00000006u, 0x00000208u, 0x00000202u, 0x0000007eu, 0x00050084u, 0x00000020u, 0x0000020cu, + 0x000001feu, 0x0000020bu, 0x00050050u, 0x00000020u, 0x0000020fu, 0x00000205u, 0x00000208u, 0x00050080u, + 0x00000020u, 0x00000210u, 0x0000020cu, 0x0000020fu, 0x00050051u, 0x00000006u, 0x00000213u, 0x00000210u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00000217u, 0x00000213u, 0x00000216u, 0x00050051u, 0x00000006u, + 0x00000219u, 0x00000210u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000021au, 0x00000217u, 0x00000219u, + 0x00050084u, 0x00000020u, 0x00000221u, 0x000001feu, 0x00000220u, 0x00050080u, 0x00000020u, 0x00000227u, + 0x00000221u, 0x00000226u, 0x00050041u, 0x0000022bu, 0x0000022cu, 0x0000022au, 0x00000094u, 0x0004003du, + 0x000001fbu, 0x0000022du, 0x0000022cu, 0x0004007cu, 0x00000020u, 0x0000022eu, 0x0000022du, 0x0007000cu, + 0x00000020u, 0x0000022fu, 0x00000001u, 0x00000027u, 0x00000227u, 0x0000022eu, 0x00050082u, 0x00000020u, + 0x00000231u, 0x0000022fu, 0x00000723u, 0x00050084u, 0x00000020u, 0x00000235u, 0x00000210u, 0x00000234u, + 0x00050080u, 0x00000020u, 0x00000239u, 0x00000235u, 0x00000238u, 0x0007000cu, 0x00000020u, 0x0000023du, + 0x00000001u, 0x00000027u, 0x00000239u, 0x0000022eu, 0x00050082u, 0x00000020u, 0x0000023fu, 0x0000023du, + 0x00000723u, 0x00050041u, 0x00000241u, 0x00000242u, 0x0000022au, 0x000000a8u, 0x0004003du, 0x00000006u, + 0x00000243u, 0x00000242u, 0x000500aau, 0x0000001eu, 0x00000245u, 0x00000202u, 0x00000094u, 0x000300f7u, + 0x00000247u, 0x00000000u, 0x000400fau, 0x00000245u, 0x00000246u, 0x00000247u, 0x000200f8u, 0x00000246u, + 0x0003003eu, 0x00000249u, 0x00000049u, 0x000200f9u, 0x00000247u, 0x000200f8u, 0x00000247u, 0x000400e0u, + 0x000001e9u, 0x000001e9u, 0x0000024au, 0x000500b1u, 0x0000001eu, 0x0000024eu, 0x00000202u, 0x0000024du, + 0x000300f7u, 0x00000250u, 0x00000000u, 0x000400fau, 0x0000024eu, 0x0000024fu, 0x00000250u, 0x000200f8u, + 0x0000024fu, 0x00050084u, 0x00000006u, 0x00000253u, 0x000001f9u, 0x0000024du, 0x00050080u, 0x00000006u, + 0x00000255u, 0x00000253u, 0x00000202u, 0x0004007cu, 0x00000033u, 0x00000256u, 0x00000255u, 0x0004007cu, + 0x00000033u, 0x00000259u, 0x00000243u, 0x000500b0u, 0x0000001eu, 0x0000025au, 0x00000256u, 0x00000259u, + 0x000300f7u, 0x0000025cu, 0x00000000u, 0x000400fau, 0x0000025au, 0x0000025bu, 0x0000025cu, 0x000200f8u, + 0x0000025bu, 0x00060041u, 0x000001e2u, 0x000002f4u, 0x000001e0u, 0x00000094u, 0x00000256u, 0x0004003du, + 0x00000007u, 0x000002f5u, 0x000002f4u, 0x00050051u, 0x00000006u, 0x000002f7u, 0x000002f5u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x000002f9u, 0x000002f5u, 0x00000001u, 0x00050051u, 0x00000006u, 0x000002fbu, + 0x000002f5u, 0x00000002u, 0x00050051u, 0x00000006u, 0x000002fdu, 0x000002f5u, 0x00000003u, 0x00070041u, + 0x000001aeu, 0x00000302u, 0x000001acu, 0x00000094u, 0x00000256u, 0x00000094u, 0x0004003du, 0x00000006u, + 0x00000303u, 0x00000302u, 0x00070041u, 0x000001aeu, 0x00000305u, 0x000001acu, 0x00000094u, 0x00000256u, + 0x000000a8u, 0x0004003du, 0x00000006u, 0x00000306u, 0x00000305u, 0x00070041u, 0x000001aeu, 0x00000308u, + 0x000001acu, 0x00000094u, 0x00000256u, 0x000000bcu, 0x0004003du, 0x00000006u, 0x00000309u, 0x00000308u, + 0x00070041u, 0x000001b8u, 0x0000030bu, 0x000001acu, 0x00000094u, 0x00000256u, 0x0000007eu, 0x0004003du, + 0x000001a6u, 0x0000030cu, 0x0000030bu, 0x00040072u, 0x00000006u, 0x0000030du, 0x0000030cu, 0x00070041u, + 0x000001b8u, 0x0000030fu, 0x000001acu, 0x00000094u, 0x00000256u, 0x00000084u, 0x0004003du, 0x000001a6u, + 0x00000310u, 0x0000030fu, 0x00040072u, 0x00000006u, 0x00000311u, 0x00000310u, 0x00070041u, 0x000001aeu, + 0x00000313u, 0x000001acu, 0x00000094u, 0x00000256u, 0x00000092u, 0x0004003du, 0x00000006u, 0x00000314u, + 0x00000313u, 0x00070041u, 0x000001aeu, 0x00000316u, 0x000001acu, 0x00000094u, 0x00000256u, 0x000000a6u, + 0x0004003du, 0x00000006u, 0x00000317u, 0x00000316u, 0x00070041u, 0x000001aeu, 0x00000319u, 0x000001acu, + 0x00000094u, 0x00000256u, 0x000000bau, 0x0004003du, 0x00000006u, 0x0000031au, 0x00000319u, 0x00070041u, + 0x000001b8u, 0x0000031cu, 0x000001acu, 0x00000094u, 0x00000256u, 0x00000148u, 0x0004003du, 0x000001a6u, + 0x0000031du, 0x0000031cu, 0x00040072u, 0x00000006u, 0x0000031eu, 0x0000031du, 0x00070041u, 0x000001ceu, + 0x00000320u, 0x000001acu, 0x00000094u, 0x00000256u, 0x00000156u, 0x0004003du, 0x000001a7u, 0x00000321u, + 0x00000320u, 0x00040071u, 0x00000033u, 0x00000322u, 0x00000321u, 0x0004007cu, 0x00000006u, 0x00000323u, + 0x00000322u, 0x000300f7u, 0x000003aau, 0x00000000u, 0x000300fbu, 0x00000049u, 0x00000339u, 0x000200f8u, + 0x00000339u, 0x00050051u, 0x00000006u, 0x0000033bu, 0x00000221u, 0x00000001u, 0x000500c3u, 0x00000006u, + 0x0000033fu, 0x000002f9u, 0x000000bcu, 0x00050084u, 0x00000006u, 0x00000340u, 0x00000265u, 0x0000033fu, + 0x0007000cu, 0x00000006u, 0x00000341u, 0x00000001u, 0x0000002au, 0x0000033bu, 0x00000340u, 0x00050051u, + 0x00000006u, 0x00000344u, 0x00000231u, 0x00000001u, 0x00050080u, 0x00000006u, 0x00000348u, 0x000002fdu, + 0x0000007eu, 0x000500c3u, 0x00000006u, 0x00000349u, 0x00000348u, 0x000000bcu, 0x00050084u, 0x00000006u, + 0x0000034au, 0x00000265u, 0x00000349u, 0x00050082u, 0x00000006u, 0x0000034bu, 0x0000034au, 0x000000a8u, + 0x0007000cu, 0x00000006u, 0x0000034cu, 0x00000001u, 0x00000027u, 0x00000344u, 0x0000034bu, 0x00050084u, + 0x00000006u, 0x00000350u, 0x00000341u, 0x00000084u, 0x00050084u, 0x00000006u, 0x00000353u, 0x0000034cu, + 0x00000084u, 0x00050080u, 0x00000006u, 0x00000354u, 0x00000353u, 0x0000007eu, 0x00050084u, 0x00000006u, + 0x00000359u, 0x00000265u, 0x0000030du, 0x0007000cu, 0x00000006u, 0x0000035au, 0x00000001u, 0x0000002au, + 0x00000350u, 0x00000359u, 0x00050084u, 0x00000006u, 0x0000035fu, 0x00000265u, 0x0000031eu, 0x00050082u, + 0x00000006u, 0x00000360u, 0x0000035fu, 0x000000a8u, 0x0007000cu, 0x00000006u, 0x00000361u, 0x00000001u, + 0x00000027u, 0x00000354u, 0x00000360u, 0x000500b1u, 0x0000001eu, 0x00000364u, 0x00000361u, 0x0000035au, + 0x000300f7u, 0x00000366u, 0x00000000u, 0x000400fau, 0x00000364u, 0x00000365u, 0x00000366u, 0x000200f8u, + 0x00000365u, 0x000200f9u, 0x000003aau, 0x000200f8u, 0x00000366u, 0x000500c7u, 0x00000006u, 0x00000369u, + 0x00000323u, 0x000000a8u, 0x000500abu, 0x0000001eu, 0x0000036au, 0x00000369u, 0x00000094u, 0x00050084u, + 0x00000006u, 0x00000370u, 0x00000311u, 0x00000265u, 0x00050050u, 0x00000020u, 0x00000371u, 0x00000370u, + 0x00000370u, 0x00050080u, 0x00000020u, 0x00000372u, 0x00000371u, 0x00000162u, 0x00050050u, 0x00000020u, + 0x00000374u, 0x0000035au, 0x0000035au, 0x00050050u, 0x00000020u, 0x00000376u, 0x00000361u, 0x00000361u, + 0x0008000cu, 0x00000020u, 0x00000377u, 0x00000001u, 0x0000002du, 0x00000372u, 0x00000374u, 0x00000376u, + 0x00050051u, 0x00000006u, 0x00000378u, 0x00000377u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000379u, + 0x00000377u, 0x00000001u, 0x00070050u, 0x00000007u, 0x0000037au, 0x0000035au, 0x00000361u, 0x00000378u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x000003cfu, 0x0000030du, 0x00000081u, 0x00050084u, 0x00000006u, + 0x000003d4u, 0x000003cfu, 0x00000265u, 0x00070050u, 0x00000007u, 0x000003dau, 0x000003d4u, 0x000003d4u, + 0x000003d4u, 0x000003d4u, 0x00050082u, 0x00000007u, 0x000003dbu, 0x0000037au, 0x000003dau, 0x00050084u, + 0x00000006u, 0x000003dfu, 0x00000265u, 0x00000303u, 0x00070050u, 0x00000007u, 0x00000446u, 0x00000314u, + 0x00000314u, 0x00000314u, 0x00000314u, 0x00050098u, 0x00000064u, 0x00000447u, 0x000003dbu, 0x00000446u, + 0x00050051u, 0x00000007u, 0x00000448u, 0x00000447u, 0x00000000u, 0x00050051u, 0x00000007u, 0x00000449u, + 0x00000447u, 0x00000001u, 0x0004007cu, 0x00000069u, 0x0000044bu, 0x00000448u, 0x0004007cu, 0x00000033u, + 0x0000044du, 0x000003dfu, 0x00070050u, 0x00000069u, 0x0000044eu, 0x0000044du, 0x0000044du, 0x0000044du, + 0x0000044du, 0x00050095u, 0x00000070u, 0x0000044fu, 0x0000044bu, 0x0000044eu, 0x00050051u, 0x00000069u, + 0x00000450u, 0x0000044fu, 0x00000001u, 0x00050051u, 0x00000069u, 0x00000451u, 0x0000044fu, 0x00000000u, + 0x0004007cu, 0x00000007u, 0x00000452u, 0x00000451u, 0x0004007cu, 0x00000007u, 0x00000454u, 0x00000450u, + 0x00050080u, 0x00000007u, 0x00000456u, 0x00000449u, 0x00000454u, 0x00050084u, 0x00000006u, 0x000003ebu, + 0x00000265u, 0x00000306u, 0x00070050u, 0x00000007u, 0x00000460u, 0x00000317u, 0x00000317u, 0x00000317u, + 0x00000317u, 0x00050098u, 0x00000064u, 0x00000461u, 0x000003dbu, 0x00000460u, 0x00050051u, 0x00000007u, + 0x00000462u, 0x00000461u, 0x00000000u, 0x00050051u, 0x00000007u, 0x00000463u, 0x00000461u, 0x00000001u, + 0x0004007cu, 0x00000069u, 0x00000465u, 0x00000462u, 0x0004007cu, 0x00000033u, 0x00000467u, 0x000003ebu, + 0x00070050u, 0x00000069u, 0x00000468u, 0x00000467u, 0x00000467u, 0x00000467u, 0x00000467u, 0x00050095u, + 0x00000070u, 0x00000469u, 0x00000465u, 0x00000468u, 0x00050051u, 0x00000069u, 0x0000046au, 0x00000469u, + 0x00000001u, 0x00050051u, 0x00000069u, 0x0000046bu, 0x00000469u, 0x00000000u, 0x0004007cu, 0x00000007u, + 0x0000046cu, 0x0000046bu, 0x0004007cu, 0x00000007u, 0x0000046eu, 0x0000046au, 0x00050080u, 0x00000007u, + 0x00000470u, 0x00000463u, 0x0000046eu, 0x00070050u, 0x00000007u, 0x000003f2u, 0x00000370u, 0x00000370u, + 0x00000370u, 0x00000370u, 0x00050082u, 0x00000007u, 0x000003f3u, 0x0000037au, 0x000003f2u, 0x00050084u, + 0x00000006u, 0x000003f7u, 0x00000265u, 0x00000309u, 0x00070050u, 0x00000007u, 0x0000047au, 0x0000031au, + 0x0000031au, 0x0000031au, 0x0000031au, 0x00050098u, 0x00000064u, 0x0000047bu, 0x000003f3u, 0x0000047au, + 0x00050051u, 0x00000007u, 0x0000047cu, 0x0000047bu, 0x00000000u, 0x00050051u, 0x00000007u, 0x0000047du, + 0x0000047bu, 0x00000001u, 0x0004007cu, 0x00000069u, 0x0000047fu, 0x0000047cu, 0x0004007cu, 0x00000033u, + 0x00000481u, 0x000003f7u, 0x00070050u, 0x00000069u, 0x00000482u, 0x00000481u, 0x00000481u, 0x00000481u, + 0x00000481u, 0x00050095u, 0x00000070u, 0x00000483u, 0x0000047fu, 0x00000482u, 0x00050051u, 0x00000069u, + 0x00000484u, 0x00000483u, 0x00000001u, 0x00050051u, 0x00000069u, 0x00000485u, 0x00000483u, 0x00000000u, + 0x0004007cu, 0x00000007u, 0x00000486u, 0x00000485u, 0x0004007cu, 0x00000007u, 0x00000488u, 0x00000484u, + 0x00050080u, 0x00000007u, 0x0000048au, 0x0000047du, 0x00000488u, 0x00050084u, 0x00000006u, 0x00000402u, + 0x00000265u, 0x00000311u, 0x00070050u, 0x00000007u, 0x00000403u, 0x00000402u, 0x00000402u, 0x00000402u, + 0x00000402u, 0x000500b1u, 0x000000d1u, 0x00000404u, 0x0000037au, 0x00000403u, 0x000600a9u, 0x00000007u, + 0x00000405u, 0x00000404u, 0x0000046cu, 0x00000486u, 0x000600a9u, 0x00000007u, 0x0000040fu, 0x00000404u, + 0x00000470u, 0x0000048au, 0x000500adu, 0x000000d1u, 0x00000412u, 0x00000456u, 0x000000e2u, 0x000600a9u, + 0x00000007u, 0x00000413u, 0x00000412u, 0x000000e0u, 0x00000452u, 0x000500b1u, 0x000000d1u, 0x00000416u, + 0x00000456u, 0x000000eau, 0x000600a9u, 0x00000007u, 0x00000417u, 0x00000416u, 0x000000e7u, 0x00000413u, + 0x000500adu, 0x000000d1u, 0x0000041au, 0x0000040fu, 0x000000e2u, 0x000600a9u, 0x00000007u, 0x0000041bu, + 0x0000041au, 0x000000e0u, 0x00000405u, 0x000500b1u, 0x000000d1u, 0x0000041eu, 0x0000040fu, 0x000000eau, + 0x000600a9u, 0x00000007u, 0x0000041fu, 0x0000041eu, 0x000000e7u, 0x0000041bu, 0x000500c3u, 0x00000007u, + 0x00000491u, 0x00000417u, 0x00000724u, 0x000500c3u, 0x00000007u, 0x00000496u, 0x0000041fu, 0x00000724u, + 0x00070050u, 0x000000d1u, 0x00000727u, 0x0000036au, 0x0000036au, 0x0000036au, 0x0000036au, 0x000600a9u, + 0x00000007u, 0x00000728u, 0x00000727u, 0x00000496u, 0x00000491u, 0x000600a9u, 0x00000007u, 0x0000072au, + 0x00000727u, 0x00000491u, 0x00000496u, 0x0006000cu, 0x00000007u, 0x0000042du, 0x00000001u, 0x00000005u, + 0x0000072au, 0x0006000cu, 0x00000007u, 0x0000042fu, 0x00000001u, 0x00000005u, 0x00000728u, 0x0007000cu, + 0x00000007u, 0x00000430u, 0x00000001u, 0x0000002au, 0x0000042du, 0x0000042fu, 0x0007004fu, 0x00000020u, + 0x0000049bu, 0x00000430u, 0x00000430u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x0000049du, + 0x00000430u, 0x00000430u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x0000049eu, 0x00000001u, + 0x0000002au, 0x0000049bu, 0x0000049du, 0x00050051u, 0x00000006u, 0x000004a0u, 0x0000049eu, 0x00000000u, + 0x00050051u, 0x00000006u, 0x000004a2u, 0x0000049eu, 0x00000001u, 0x0007000cu, 0x00000006u, 0x000004a3u, + 0x00000001u, 0x0000002au, 0x000004a0u, 0x000004a2u, 0x00050084u, 0x00000006u, 0x00000434u, 0x00000110u, + 0x00000265u, 0x000500b3u, 0x0000001eu, 0x00000435u, 0x000004a3u, 0x00000434u, 0x000300f7u, 0x0000043du, + 0x00000000u, 0x000400fau, 0x00000435u, 0x00000436u, 0x0000043cu, 0x000200f8u, 0x00000436u, 0x0007004fu, + 0x00000020u, 0x000004a8u, 0x0000072au, 0x0000072au, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, + 0x000004aau, 0x0000072au, 0x0000072au, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x000004abu, + 0x00000001u, 0x00000027u, 0x000004a8u, 0x000004aau, 0x00050051u, 0x00000006u, 0x000004adu, 0x000004abu, + 0x00000000u, 0x00050051u, 0x00000006u, 0x000004afu, 0x000004abu, 0x00000001u, 0x0007000cu, 0x00000006u, + 0x000004b0u, 0x00000001u, 0x00000027u, 0x000004adu, 0x000004afu, 0x0007004fu, 0x00000020u, 0x000004b5u, + 0x00000728u, 0x00000728u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x000004b7u, 0x00000728u, + 0x00000728u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x000004b8u, 0x00000001u, 0x0000002au, + 0x000004b5u, 0x000004b7u, 0x00050051u, 0x00000006u, 0x000004bau, 0x000004b8u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x000004bcu, 0x000004b8u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x000004bdu, 0x00000001u, + 0x0000002au, 0x000004bau, 0x000004bcu, 0x00050050u, 0x00000020u, 0x0000043bu, 0x000004b0u, 0x000004bdu, + 0x000200f9u, 0x0000043du, 0x000200f8u, 0x0000043cu, 0x000200f9u, 0x0000043du, 0x000200f8u, 0x0000043du, + 0x000700f5u, 0x00000020u, 0x00000709u, 0x0000043bu, 0x00000436u, 0x0000011fu, 0x0000043cu, 0x000500c7u, + 0x00000006u, 0x00000382u, 0x00000323u, 0x0000017au, 0x000500abu, 0x0000001eu, 0x00000383u, 0x00000382u, + 0x00000094u, 0x000600a9u, 0x00000006u, 0x00000384u, 0x00000383u, 0x00000084u, 0x0000007eu, 0x000500c3u, + 0x00000006u, 0x00000388u, 0x000002f7u, 0x000000bcu, 0x00050084u, 0x00000006u, 0x00000389u, 0x00000265u, + 0x00000388u, 0x00050080u, 0x00000006u, 0x0000038eu, 0x000002fbu, 0x00000384u, 0x000500c3u, 0x00000006u, + 0x0000038fu, 0x0000038eu, 0x000000bcu, 0x00050084u, 0x00000006u, 0x00000390u, 0x00000265u, 0x0000038fu, + 0x00050082u, 0x00000006u, 0x00000391u, 0x00000390u, 0x000000a8u, 0x00050050u, 0x00000020u, 0x00000392u, + 0x00000389u, 0x00000391u, 0x0007004fu, 0x00000020u, 0x00000395u, 0x00000392u, 0x00000392u, 0x00000000u, + 0x00000000u, 0x0007004fu, 0x00000020u, 0x00000397u, 0x00000392u, 0x00000392u, 0x00000001u, 0x00000001u, + 0x0008000cu, 0x00000020u, 0x00000398u, 0x00000001u, 0x0000002du, 0x00000709u, 0x00000395u, 0x00000397u, + 0x00050051u, 0x00000006u, 0x0000039au, 0x00000398u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000039cu, + 0x00000221u, 0x00000000u, 0x0007000cu, 0x00000006u, 0x0000039du, 0x00000001u, 0x0000002au, 0x0000039au, + 0x0000039cu, 0x00050051u, 0x00000006u, 0x000003a0u, 0x00000398u, 0x00000001u, 0x00050051u, 0x00000006u, + 0x000003a2u, 0x00000231u, 0x00000000u, 0x0007000cu, 0x00000006u, 0x000003a3u, 0x00000001u, 0x00000027u, + 0x000003a0u, 0x000003a2u, 0x000500b3u, 0x0000001eu, 0x000003a9u, 0x0000039du, 0x000003a3u, 0x000200f9u, + 0x000003aau, 0x000200f8u, 0x000003aau, 0x000700f5u, 0x0000001eu, 0x0000070eu, 0x00000153u, 0x00000365u, + 0x000003a9u, 0x0000043du, 0x000200f9u, 0x0000025cu, 0x000200f8u, 0x0000025cu, 0x000700f5u, 0x0000001eu, + 0x00000710u, 0x00000153u, 0x0000024fu, 0x0000070eu, 0x000003aau, 0x000200f9u, 0x00000250u, 0x000200f8u, + 0x00000250u, 0x000700f5u, 0x0000001eu, 0x0000070fu, 0x00000153u, 0x00000247u, 0x00000710u, 0x0000025cu, + 0x000300f7u, 0x00000272u, 0x00000000u, 0x000400fau, 0x0000070fu, 0x00000271u, 0x00000272u, 0x000200f8u, + 0x00000271u, 0x000500c4u, 0x00000033u, 0x00000274u, 0x0000004cu, 0x00000202u, 0x000700f1u, 0x00000033u, + 0x00000275u, 0x00000249u, 0x0000004cu, 0x00000049u, 0x00000274u, 0x000200f9u, 0x00000272u, 0x000200f8u, + 0x00000272u, 0x000400e0u, 0x000001e9u, 0x000001e9u, 0x0000024au, 0x0004003du, 0x00000033u, 0x00000277u, + 0x00000249u, 0x000200f9u, 0x00000279u, 0x000200f8u, 0x00000279u, 0x000700f5u, 0x00000033u, 0x00000712u, + 0x00000049u, 0x00000272u, 0x00000722u, 0x0000027cu, 0x000700f5u, 0x00000033u, 0x00000711u, 0x00000277u, + 0x00000272u, 0x00000287u, 0x0000027cu, 0x000500abu, 0x0000001eu, 0x0000027fu, 0x00000711u, 0x00000049u, + 0x000400f6u, 0x0000027bu, 0x0000027cu, 0x00000000u, 0x000400fau, 0x0000027fu, 0x0000027au, 0x0000027bu, + 0x000200f8u, 0x0000027au, 0x0006000cu, 0x00000006u, 0x00000282u, 0x00000001u, 0x00000049u, 0x00000711u, + 0x000500c4u, 0x00000033u, 0x00000284u, 0x0000004cu, 0x00000282u, 0x000400c8u, 0x00000033u, 0x00000285u, + 0x00000284u, 0x000500c7u, 0x00000033u, 0x00000287u, 0x00000711u, 0x00000285u, 0x00050084u, 0x00000006u, + 0x0000028au, 0x000001f9u, 0x0000024du, 0x00050080u, 0x00000006u, 0x0000028cu, 0x0000028au, 0x00000282u, + 0x0004007cu, 0x00000033u, 0x0000028du, 0x0000028cu, 0x00060041u, 0x000001e2u, 0x000004c2u, 0x000001e0u, + 0x00000094u, 0x0000028du, 0x0004003du, 0x00000007u, 0x000004c3u, 0x000004c2u, 0x00050051u, 0x00000006u, + 0x000004c5u, 0x000004c3u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000004c7u, 0x000004c3u, 0x00000001u, + 0x00050051u, 0x00000006u, 0x000004c9u, 0x000004c3u, 0x00000002u, 0x00050051u, 0x00000006u, 0x000004cbu, + 0x000004c3u, 0x00000003u, 0x00070041u, 0x000001aeu, 0x000004d0u, 0x000001acu, 0x00000094u, 0x0000028du, + 0x00000094u, 0x0004003du, 0x00000006u, 0x000004d1u, 0x000004d0u, 0x00070041u, 0x000001aeu, 0x000004d3u, + 0x000001acu, 0x00000094u, 0x0000028du, 0x000000a8u, 0x0004003du, 0x00000006u, 0x000004d4u, 0x000004d3u, + 0x00070041u, 0x000001aeu, 0x000004d6u, 0x000001acu, 0x00000094u, 0x0000028du, 0x000000bcu, 0x0004003du, + 0x00000006u, 0x000004d7u, 0x000004d6u, 0x00070041u, 0x000001b8u, 0x000004d9u, 0x000001acu, 0x00000094u, + 0x0000028du, 0x0000007eu, 0x0004003du, 0x000001a6u, 0x000004dau, 0x000004d9u, 0x00040072u, 0x00000006u, + 0x000004dbu, 0x000004dau, 0x00070041u, 0x000001b8u, 0x000004ddu, 0x000001acu, 0x00000094u, 0x0000028du, + 0x00000084u, 0x0004003du, 0x000001a6u, 0x000004deu, 0x000004ddu, 0x00040072u, 0x00000006u, 0x000004dfu, + 0x000004deu, 0x00070041u, 0x000001aeu, 0x000004e1u, 0x000001acu, 0x00000094u, 0x0000028du, 0x00000092u, + 0x0004003du, 0x00000006u, 0x000004e2u, 0x000004e1u, 0x00070041u, 0x000001aeu, 0x000004e4u, 0x000001acu, + 0x00000094u, 0x0000028du, 0x000000a6u, 0x0004003du, 0x00000006u, 0x000004e5u, 0x000004e4u, 0x00070041u, + 0x000001aeu, 0x000004e7u, 0x000001acu, 0x00000094u, 0x0000028du, 0x000000bau, 0x0004003du, 0x00000006u, + 0x000004e8u, 0x000004e7u, 0x00070041u, 0x000001b8u, 0x000004eau, 0x000001acu, 0x00000094u, 0x0000028du, + 0x00000148u, 0x0004003du, 0x000001a6u, 0x000004ebu, 0x000004eau, 0x00040072u, 0x00000006u, 0x000004ecu, + 0x000004ebu, 0x00070041u, 0x000001ceu, 0x000004eeu, 0x000001acu, 0x00000094u, 0x0000028du, 0x00000156u, + 0x0004003du, 0x000001a7u, 0x000004efu, 0x000004eeu, 0x00040071u, 0x00000033u, 0x000004f0u, 0x000004efu, + 0x0004007cu, 0x00000006u, 0x000004f1u, 0x000004f0u, 0x000300f7u, 0x00000578u, 0x00000000u, 0x000300fbu, + 0x00000049u, 0x00000507u, 0x000200f8u, 0x00000507u, 0x00050051u, 0x00000006u, 0x00000509u, 0x00000235u, + 0x00000001u, 0x000500c3u, 0x00000006u, 0x0000050du, 0x000004c7u, 0x000000bcu, 0x00050084u, 0x00000006u, + 0x0000050eu, 0x00000265u, 0x0000050du, 0x0007000cu, 0x00000006u, 0x0000050fu, 0x00000001u, 0x0000002au, + 0x00000509u, 0x0000050eu, 0x00050051u, 0x00000006u, 0x00000512u, 0x0000023fu, 0x00000001u, 0x00050080u, + 0x00000006u, 0x00000516u, 0x000004cbu, 0x0000007eu, 0x000500c3u, 0x00000006u, 0x00000517u, 0x00000516u, + 0x000000bcu, 0x00050084u, 0x00000006u, 0x00000518u, 0x00000265u, 0x00000517u, 0x00050082u, 0x00000006u, + 0x00000519u, 0x00000518u, 0x000000a8u, 0x0007000cu, 0x00000006u, 0x0000051au, 0x00000001u, 0x00000027u, + 0x00000512u, 0x00000519u, 0x00050084u, 0x00000006u, 0x0000051eu, 0x0000050fu, 0x00000084u, 0x00050084u, + 0x00000006u, 0x00000521u, 0x0000051au, 0x00000084u, 0x00050080u, 0x00000006u, 0x00000522u, 0x00000521u, + 0x0000007eu, 0x00050084u, 0x00000006u, 0x00000527u, 0x00000265u, 0x000004dbu, 0x0007000cu, 0x00000006u, + 0x00000528u, 0x00000001u, 0x0000002au, 0x0000051eu, 0x00000527u, 0x00050084u, 0x00000006u, 0x0000052du, + 0x00000265u, 0x000004ecu, 0x00050082u, 0x00000006u, 0x0000052eu, 0x0000052du, 0x000000a8u, 0x0007000cu, + 0x00000006u, 0x0000052fu, 0x00000001u, 0x00000027u, 0x00000522u, 0x0000052eu, 0x000500b1u, 0x0000001eu, + 0x00000532u, 0x0000052fu, 0x00000528u, 0x000300f7u, 0x00000534u, 0x00000000u, 0x000400fau, 0x00000532u, + 0x00000533u, 0x00000534u, 0x000200f8u, 0x00000533u, 0x000200f9u, 0x00000578u, 0x000200f8u, 0x00000534u, + 0x000500c7u, 0x00000006u, 0x00000537u, 0x000004f1u, 0x000000a8u, 0x000500abu, 0x0000001eu, 0x00000538u, + 0x00000537u, 0x00000094u, 0x00050084u, 0x00000006u, 0x0000053eu, 0x000004dfu, 0x00000265u, 0x00050050u, + 0x00000020u, 0x0000053fu, 0x0000053eu, 0x0000053eu, 0x00050080u, 0x00000020u, 0x00000540u, 0x0000053fu, + 0x00000162u, 0x00050050u, 0x00000020u, 0x00000542u, 0x00000528u, 0x00000528u, 0x00050050u, 0x00000020u, + 0x00000544u, 0x0000052fu, 0x0000052fu, 0x0008000cu, 0x00000020u, 0x00000545u, 0x00000001u, 0x0000002du, + 0x00000540u, 0x00000542u, 0x00000544u, 0x00050051u, 0x00000006u, 0x00000546u, 0x00000545u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00000547u, 0x00000545u, 0x00000001u, 0x00070050u, 0x00000007u, 0x00000548u, + 0x00000528u, 0x0000052fu, 0x00000546u, 0x00000547u, 0x000500c7u, 0x00000006u, 0x0000059du, 0x000004dbu, + 0x00000081u, 0x00050084u, 0x00000006u, 0x000005a2u, 0x0000059du, 0x00000265u, 0x00070050u, 0x00000007u, + 0x000005a8u, 0x000005a2u, 0x000005a2u, 0x000005a2u, 0x000005a2u, 0x00050082u, 0x00000007u, 0x000005a9u, + 0x00000548u, 0x000005a8u, 0x00050084u, 0x00000006u, 0x000005adu, 0x00000265u, 0x000004d1u, 0x00070050u, + 0x00000007u, 0x00000614u, 0x000004e2u, 0x000004e2u, 0x000004e2u, 0x000004e2u, 0x00050098u, 0x00000064u, + 0x00000615u, 0x000005a9u, 0x00000614u, 0x00050051u, 0x00000007u, 0x00000616u, 0x00000615u, 0x00000000u, + 0x00050051u, 0x00000007u, 0x00000617u, 0x00000615u, 0x00000001u, 0x0004007cu, 0x00000069u, 0x00000619u, + 0x00000616u, 0x0004007cu, 0x00000033u, 0x0000061bu, 0x000005adu, 0x00070050u, 0x00000069u, 0x0000061cu, + 0x0000061bu, 0x0000061bu, 0x0000061bu, 0x0000061bu, 0x00050095u, 0x00000070u, 0x0000061du, 0x00000619u, + 0x0000061cu, 0x00050051u, 0x00000069u, 0x0000061eu, 0x0000061du, 0x00000001u, 0x00050051u, 0x00000069u, + 0x0000061fu, 0x0000061du, 0x00000000u, 0x0004007cu, 0x00000007u, 0x00000620u, 0x0000061fu, 0x0004007cu, + 0x00000007u, 0x00000622u, 0x0000061eu, 0x00050080u, 0x00000007u, 0x00000624u, 0x00000617u, 0x00000622u, + 0x00050084u, 0x00000006u, 0x000005b9u, 0x00000265u, 0x000004d4u, 0x00070050u, 0x00000007u, 0x0000062eu, + 0x000004e5u, 0x000004e5u, 0x000004e5u, 0x000004e5u, 0x00050098u, 0x00000064u, 0x0000062fu, 0x000005a9u, + 0x0000062eu, 0x00050051u, 0x00000007u, 0x00000630u, 0x0000062fu, 0x00000000u, 0x00050051u, 0x00000007u, + 0x00000631u, 0x0000062fu, 0x00000001u, 0x0004007cu, 0x00000069u, 0x00000633u, 0x00000630u, 0x0004007cu, + 0x00000033u, 0x00000635u, 0x000005b9u, 0x00070050u, 0x00000069u, 0x00000636u, 0x00000635u, 0x00000635u, + 0x00000635u, 0x00000635u, 0x00050095u, 0x00000070u, 0x00000637u, 0x00000633u, 0x00000636u, 0x00050051u, + 0x00000069u, 0x00000638u, 0x00000637u, 0x00000001u, 0x00050051u, 0x00000069u, 0x00000639u, 0x00000637u, + 0x00000000u, 0x0004007cu, 0x00000007u, 0x0000063au, 0x00000639u, 0x0004007cu, 0x00000007u, 0x0000063cu, + 0x00000638u, 0x00050080u, 0x00000007u, 0x0000063eu, 0x00000631u, 0x0000063cu, 0x00070050u, 0x00000007u, + 0x000005c0u, 0x0000053eu, 0x0000053eu, 0x0000053eu, 0x0000053eu, 0x00050082u, 0x00000007u, 0x000005c1u, + 0x00000548u, 0x000005c0u, 0x00050084u, 0x00000006u, 0x000005c5u, 0x00000265u, 0x000004d7u, 0x00070050u, + 0x00000007u, 0x00000648u, 0x000004e8u, 0x000004e8u, 0x000004e8u, 0x000004e8u, 0x00050098u, 0x00000064u, + 0x00000649u, 0x000005c1u, 0x00000648u, 0x00050051u, 0x00000007u, 0x0000064au, 0x00000649u, 0x00000000u, + 0x00050051u, 0x00000007u, 0x0000064bu, 0x00000649u, 0x00000001u, 0x0004007cu, 0x00000069u, 0x0000064du, + 0x0000064au, 0x0004007cu, 0x00000033u, 0x0000064fu, 0x000005c5u, 0x00070050u, 0x00000069u, 0x00000650u, + 0x0000064fu, 0x0000064fu, 0x0000064fu, 0x0000064fu, 0x00050095u, 0x00000070u, 0x00000651u, 0x0000064du, + 0x00000650u, 0x00050051u, 0x00000069u, 0x00000652u, 0x00000651u, 0x00000001u, 0x00050051u, 0x00000069u, + 0x00000653u, 0x00000651u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x00000654u, 0x00000653u, 0x0004007cu, + 0x00000007u, 0x00000656u, 0x00000652u, 0x00050080u, 0x00000007u, 0x00000658u, 0x0000064bu, 0x00000656u, + 0x00050084u, 0x00000006u, 0x000005d0u, 0x00000265u, 0x000004dfu, 0x00070050u, 0x00000007u, 0x000005d1u, + 0x000005d0u, 0x000005d0u, 0x000005d0u, 0x000005d0u, 0x000500b1u, 0x000000d1u, 0x000005d2u, 0x00000548u, + 0x000005d1u, 0x000600a9u, 0x00000007u, 0x000005d3u, 0x000005d2u, 0x0000063au, 0x00000654u, 0x000600a9u, + 0x00000007u, 0x000005ddu, 0x000005d2u, 0x0000063eu, 0x00000658u, 0x000500adu, 0x000000d1u, 0x000005e0u, + 0x00000624u, 0x000000e2u, 0x000600a9u, 0x00000007u, 0x000005e1u, 0x000005e0u, 0x000000e0u, 0x00000620u, + 0x000500b1u, 0x000000d1u, 0x000005e4u, 0x00000624u, 0x000000eau, 0x000600a9u, 0x00000007u, 0x000005e5u, + 0x000005e4u, 0x000000e7u, 0x000005e1u, 0x000500adu, 0x000000d1u, 0x000005e8u, 0x000005ddu, 0x000000e2u, + 0x000600a9u, 0x00000007u, 0x000005e9u, 0x000005e8u, 0x000000e0u, 0x000005d3u, 0x000500b1u, 0x000000d1u, + 0x000005ecu, 0x000005ddu, 0x000000eau, 0x000600a9u, 0x00000007u, 0x000005edu, 0x000005ecu, 0x000000e7u, + 0x000005e9u, 0x000500c3u, 0x00000007u, 0x0000065fu, 0x000005e5u, 0x00000724u, 0x000500c3u, 0x00000007u, + 0x00000664u, 0x000005edu, 0x00000724u, 0x00070050u, 0x000000d1u, 0x0000072bu, 0x00000538u, 0x00000538u, + 0x00000538u, 0x00000538u, 0x000600a9u, 0x00000007u, 0x0000072cu, 0x0000072bu, 0x00000664u, 0x0000065fu, + 0x000600a9u, 0x00000007u, 0x0000072eu, 0x0000072bu, 0x0000065fu, 0x00000664u, 0x0006000cu, 0x00000007u, + 0x000005fbu, 0x00000001u, 0x00000005u, 0x0000072eu, 0x0006000cu, 0x00000007u, 0x000005fdu, 0x00000001u, + 0x00000005u, 0x0000072cu, 0x0007000cu, 0x00000007u, 0x000005feu, 0x00000001u, 0x0000002au, 0x000005fbu, + 0x000005fdu, 0x0007004fu, 0x00000020u, 0x00000669u, 0x000005feu, 0x000005feu, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x00000020u, 0x0000066bu, 0x000005feu, 0x000005feu, 0x00000002u, 0x00000003u, 0x0007000cu, + 0x00000020u, 0x0000066cu, 0x00000001u, 0x0000002au, 0x00000669u, 0x0000066bu, 0x00050051u, 0x00000006u, + 0x0000066eu, 0x0000066cu, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000670u, 0x0000066cu, 0x00000001u, + 0x0007000cu, 0x00000006u, 0x00000671u, 0x00000001u, 0x0000002au, 0x0000066eu, 0x00000670u, 0x00050084u, + 0x00000006u, 0x00000602u, 0x00000110u, 0x00000265u, 0x000500b3u, 0x0000001eu, 0x00000603u, 0x00000671u, + 0x00000602u, 0x000300f7u, 0x0000060bu, 0x00000000u, 0x000400fau, 0x00000603u, 0x00000604u, 0x0000060au, + 0x000200f8u, 0x00000604u, 0x0007004fu, 0x00000020u, 0x00000676u, 0x0000072eu, 0x0000072eu, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x00000020u, 0x00000678u, 0x0000072eu, 0x0000072eu, 0x00000002u, 0x00000003u, + 0x0007000cu, 0x00000020u, 0x00000679u, 0x00000001u, 0x00000027u, 0x00000676u, 0x00000678u, 0x00050051u, + 0x00000006u, 0x0000067bu, 0x00000679u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000067du, 0x00000679u, + 0x00000001u, 0x0007000cu, 0x00000006u, 0x0000067eu, 0x00000001u, 0x00000027u, 0x0000067bu, 0x0000067du, + 0x0007004fu, 0x00000020u, 0x00000683u, 0x0000072cu, 0x0000072cu, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x00000020u, 0x00000685u, 0x0000072cu, 0x0000072cu, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, + 0x00000686u, 0x00000001u, 0x0000002au, 0x00000683u, 0x00000685u, 0x00050051u, 0x00000006u, 0x00000688u, + 0x00000686u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000068au, 0x00000686u, 0x00000001u, 0x0007000cu, + 0x00000006u, 0x0000068bu, 0x00000001u, 0x0000002au, 0x00000688u, 0x0000068au, 0x00050050u, 0x00000020u, + 0x00000609u, 0x0000067eu, 0x0000068bu, 0x000200f9u, 0x0000060bu, 0x000200f8u, 0x0000060au, 0x000200f9u, + 0x0000060bu, 0x000200f8u, 0x0000060bu, 0x000700f5u, 0x00000020u, 0x00000715u, 0x00000609u, 0x00000604u, + 0x0000011fu, 0x0000060au, 0x000500c7u, 0x00000006u, 0x00000550u, 0x000004f1u, 0x0000017au, 0x000500abu, + 0x0000001eu, 0x00000551u, 0x00000550u, 0x00000094u, 0x000600a9u, 0x00000006u, 0x00000552u, 0x00000551u, + 0x00000084u, 0x0000007eu, 0x000500c3u, 0x00000006u, 0x00000556u, 0x000004c5u, 0x000000bcu, 0x00050084u, + 0x00000006u, 0x00000557u, 0x00000265u, 0x00000556u, 0x00050080u, 0x00000006u, 0x0000055cu, 0x000004c9u, + 0x00000552u, 0x000500c3u, 0x00000006u, 0x0000055du, 0x0000055cu, 0x000000bcu, 0x00050084u, 0x00000006u, + 0x0000055eu, 0x00000265u, 0x0000055du, 0x00050082u, 0x00000006u, 0x0000055fu, 0x0000055eu, 0x000000a8u, + 0x00050050u, 0x00000020u, 0x00000560u, 0x00000557u, 0x0000055fu, 0x0007004fu, 0x00000020u, 0x00000563u, + 0x00000560u, 0x00000560u, 0x00000000u, 0x00000000u, 0x0007004fu, 0x00000020u, 0x00000565u, 0x00000560u, + 0x00000560u, 0x00000001u, 0x00000001u, 0x0008000cu, 0x00000020u, 0x00000566u, 0x00000001u, 0x0000002du, + 0x00000715u, 0x00000563u, 0x00000565u, 0x00050051u, 0x00000006u, 0x00000568u, 0x00000566u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x0000056au, 0x00000235u, 0x00000000u, 0x0007000cu, 0x00000006u, 0x0000056bu, + 0x00000001u, 0x0000002au, 0x00000568u, 0x0000056au, 0x00050051u, 0x00000006u, 0x0000056eu, 0x00000566u, + 0x00000001u, 0x00050051u, 0x00000006u, 0x00000570u, 0x0000023fu, 0x00000000u, 0x0007000cu, 0x00000006u, + 0x00000571u, 0x00000001u, 0x00000027u, 0x0000056eu, 0x00000570u, 0x000500b3u, 0x0000001eu, 0x00000577u, + 0x0000056bu, 0x00000571u, 0x000200f9u, 0x00000578u, 0x000200f8u, 0x00000578u, 0x000700f5u, 0x0000001eu, + 0x0000071au, 0x00000153u, 0x00000533u, 0x00000577u, 0x0000060bu, 0x000300f7u, 0x000002a1u, 0x00000000u, + 0x000400fau, 0x0000071au, 0x000002a0u, 0x000002a1u, 0x000200f8u, 0x000002a0u, 0x000500c5u, 0x00000033u, + 0x000002a5u, 0x00000712u, 0x00000284u, 0x000200f9u, 0x000002a1u, 0x000200f8u, 0x000002a1u, 0x000700f5u, + 0x00000033u, 0x00000722u, 0x00000712u, 0x00000578u, 0x000002a5u, 0x000002a0u, 0x000200f9u, 0x0000027cu, + 0x000200f8u, 0x0000027cu, 0x000200f9u, 0x00000279u, 0x000200f8u, 0x0000027bu, 0x00050084u, 0x00000006u, + 0x000002adu, 0x0000021au, 0x000002acu, 0x00050080u, 0x00000006u, 0x000002afu, 0x000002adu, 0x000001f9u, + 0x00060041u, 0x000002b1u, 0x000002b2u, 0x000002a9u, 0x00000094u, 0x000002afu, 0x0003003eu, 0x000002b2u, + 0x00000712u, 0x000500abu, 0x0000001eu, 0x000002b4u, 0x00000712u, 0x00000049u, 0x000300f7u, 0x000002b6u, + 0x00000000u, 0x000400fau, 0x000002b4u, 0x000002b5u, 0x000002c0u, 0x000200f8u, 0x000002b5u, 0x00060041u, + 0x000002b1u, 0x000002bcu, 0x000002bau, 0x00000094u, 0x0000021au, 0x000500c4u, 0x00000033u, 0x000002beu, + 0x0000004cu, 0x000001f9u, 0x000700f1u, 0x00000033u, 0x000002bfu, 0x000002bcu, 0x0000004cu, 0x00000049u, + 0x000002beu, 0x000200f9u, 0x000002b6u, 0x000200f8u, 0x000002c0u, 0x00060041u, 0x000002b1u, 0x000002c2u, + 0x000002bau, 0x00000094u, 0x0000021au, 0x000500c4u, 0x00000033u, 0x000002c4u, 0x0000004cu, 0x000001f9u, + 0x000400c8u, 0x00000033u, 0x000002c5u, 0x000002c4u, 0x000700f0u, 0x00000033u, 0x000002c6u, 0x000002c2u, + 0x0000004cu, 0x00000049u, 0x000002c5u, 0x000200f9u, 0x000002b6u, 0x000200f8u, 0x000002b6u, 0x000100fdu, + 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000740u, 0x00000000u, 0x00020011u, 0x00000001u, + 0x00020011u, 0x0000003du, 0x00020011u, 0x00000040u, 0x00020011u, 0x00001151u, 0x00020011u, 0x00001160u, + 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, 0x00000000u, 0x0006000bu, + 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, + 0x0009000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x000001f5u, 0x00000200u, 0x00000204u, + 0x0000020fu, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, 0x00050048u, + 0x000001a8u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000001a8u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x000001a8u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000001a8u, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000001a8u, 0x00000004u, 0x00000023u, 0x0000000eu, + 0x00050048u, 0x000001a8u, 0x00000005u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000001a8u, 0x00000006u, + 0x00000023u, 0x00000014u, 0x00050048u, 0x000001a8u, 0x00000007u, 0x00000023u, 0x00000018u, 0x00050048u, + 0x000001a8u, 0x00000008u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x000001a8u, 0x00000009u, 0x00000023u, + 0x0000001eu, 0x00050048u, 0x000001a8u, 0x0000000au, 0x00000023u, 0x0000001fu, 0x00040047u, 0x000001a9u, + 0x00000006u, 0x00000020u, 0x00040048u, 0x000001aau, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001aau, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001aau, 0x00000002u, 0x00040047u, 0x000001acu, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000001acu, 0x00000021u, 0x00000000u, 0x00040047u, 0x000001ddu, + 0x00000006u, 0x00000010u, 0x00040048u, 0x000001deu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001deu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001deu, 0x00000002u, 0x00040047u, 0x000001e0u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000001e0u, 0x00000021u, 0x00000001u, 0x00040047u, 0x000001f5u, + 0x0000000bu, 0x0000001au, 0x00030047u, 0x00000200u, 0x00000000u, 0x00040047u, 0x00000200u, 0x0000000bu, + 0x00000029u, 0x00030047u, 0x00000201u, 0x00000000u, 0x00030047u, 0x00000202u, 0x00000000u, 0x00030047u, + 0x00000204u, 0x00000000u, 0x00040047u, 0x00000204u, 0x0000000bu, 0x00000024u, 0x00030047u, 0x00000205u, + 0x00000000u, 0x00030047u, 0x00000206u, 0x00000000u, 0x00030047u, 0x00000207u, 0x00000000u, 0x00040047u, + 0x0000020fu, 0x0000000bu, 0x00000028u, 0x00040047u, 0x00000217u, 0x00000001u, 0x00000000u, 0x00040047u, + 0x00000218u, 0x0000000bu, 0x00000019u, 0x00040047u, 0x00000225u, 0x00000001u, 0x00000004u, 0x00040047u, + 0x00000226u, 0x00000001u, 0x00000001u, 0x00040047u, 0x0000022fu, 0x00000001u, 0x00000002u, 0x00050048u, + 0x00000243u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000243u, 0x00000001u, 0x00000023u, + 0x00000008u, 0x00030047u, 0x00000243u, 0x00000002u, 0x00040047u, 0x00000279u, 0x00000001u, 0x00000006u, + 0x00040047u, 0x000002b6u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000002b7u, 0x00000000u, 0x00000019u, + 0x00050048u, 0x000002b7u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002b7u, 0x00000002u, + 0x00040047u, 0x000002b9u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000002b9u, 0x00000021u, 0x00000003u, + 0x00040047u, 0x000002bbu, 0x00000001u, 0x00000003u, 0x00040047u, 0x000002c7u, 0x00000006u, 0x00000004u, + 0x00040048u, 0x000002c8u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000002c8u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000002c8u, 0x00000002u, 0x00040047u, 0x000002cau, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000002cau, 0x00000021u, 0x00000004u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, + 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000007u, 0x00000006u, + 0x00000004u, 0x00020014u, 0x0000001eu, 0x00040017u, 0x00000020u, 0x00000006u, 0x00000002u, 0x00040015u, + 0x00000033u, 0x00000020u, 0x00000000u, 0x0004002bu, 0x00000006u, 0x0000003eu, 0x0000000fu, 0x0004002bu, + 0x00000033u, 0x00000049u, 0x00000000u, 0x0004002bu, 0x00000033u, 0x0000004cu, 0x00000001u, 0x0004001eu, + 0x00000064u, 0x00000007u, 0x00000007u, 0x00040017u, 0x00000069u, 0x00000033u, 0x00000004u, 0x0004001eu, + 0x00000070u, 0x00000069u, 0x00000069u, 0x0004002bu, 0x00000006u, 0x0000007eu, 0x00000003u, 0x0004002bu, + 0x00000006u, 0x00000081u, 0xfffffffcu, 0x0004002bu, 0x00000006u, 0x00000084u, 0x00000004u, 0x0004002bu, + 0x00000006u, 0x00000092u, 0x00000005u, 0x0004002bu, 0x00000006u, 0x00000094u, 0x00000000u, 0x0004002bu, + 0x00000006u, 0x000000a6u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x000000a8u, 0x00000001u, 0x0004002bu, + 0x00000006u, 0x000000bau, 0x00000007u, 0x0004002bu, 0x00000006u, 0x000000bcu, 0x00000002u, 0x00040017u, + 0x000000d1u, 0x0000001eu, 0x00000004u, 0x0004002bu, 0x00000006u, 0x000000dfu, 0x7fffffffu, 0x0007002cu, + 0x00000007u, 0x000000e0u, 0x000000dfu, 0x000000dfu, 0x000000dfu, 0x000000dfu, 0x0007002cu, 0x00000007u, + 0x000000e2u, 0x00000094u, 0x00000094u, 0x00000094u, 0x00000094u, 0x0004002bu, 0x00000006u, 0x000000e6u, + 0x80000000u, 0x0007002cu, 0x00000007u, 0x000000e7u, 0x000000e6u, 0x000000e6u, 0x000000e6u, 0x000000e6u, + 0x0004002bu, 0x00000006u, 0x000000e9u, 0xffffffffu, 0x0007002cu, 0x00000007u, 0x000000eau, 0x000000e9u, + 0x000000e9u, 0x000000e9u, 0x000000e9u, 0x0004002bu, 0x00000006u, 0x00000110u, 0x000007ffu, 0x0005002cu, + 0x00000020u, 0x0000011fu, 0x00000094u, 0x000000dfu, 0x0004002bu, 0x00000006u, 0x00000148u, 0x00000008u, + 0x0003002au, 0x0000001eu, 0x00000153u, 0x0004002bu, 0x00000006u, 0x00000156u, 0x00000009u, 0x0005002cu, + 0x00000020u, 0x00000162u, 0x000000e9u, 0x00000094u, 0x0004002bu, 0x00000006u, 0x0000017au, 0x00000080u, + 0x00040015u, 0x000001a6u, 0x00000010u, 0x00000001u, 0x00040015u, 0x000001a7u, 0x00000008u, 0x00000000u, + 0x000d001eu, 0x000001a8u, 0x00000006u, 0x00000006u, 0x00000006u, 0x000001a6u, 0x000001a6u, 0x00000006u, + 0x00000006u, 0x00000006u, 0x000001a6u, 0x000001a7u, 0x000001a7u, 0x0003001du, 0x000001a9u, 0x000001a8u, + 0x0003001eu, 0x000001aau, 0x000001a9u, 0x00040020u, 0x000001abu, 0x0000000cu, 0x000001aau, 0x0004003bu, + 0x000001abu, 0x000001acu, 0x0000000cu, 0x00040020u, 0x000001aeu, 0x0000000cu, 0x00000006u, 0x00040020u, + 0x000001b8u, 0x0000000cu, 0x000001a6u, 0x00040020u, 0x000001ceu, 0x0000000cu, 0x000001a7u, 0x0003001du, + 0x000001ddu, 0x00000007u, 0x0003001eu, 0x000001deu, 0x000001ddu, 0x00040020u, 0x000001dfu, 0x0000000cu, + 0x000001deu, 0x0004003bu, 0x000001dfu, 0x000001e0u, 0x0000000cu, 0x00040020u, 0x000001e2u, 0x0000000cu, + 0x00000007u, 0x0004002bu, 0x00000033u, 0x000001ecu, 0x00000003u, 0x00040017u, 0x000001f3u, 0x00000033u, + 0x00000003u, 0x00040020u, 0x000001f4u, 0x00000001u, 0x000001f3u, 0x0004003bu, 0x000001f4u, 0x000001f5u, + 0x00000001u, 0x00040020u, 0x000001f6u, 0x00000001u, 0x00000033u, 0x00040017u, 0x000001fbu, 0x00000033u, + 0x00000002u, 0x0004003bu, 0x000001f6u, 0x00000200u, 0x00000001u, 0x0004003bu, 0x000001f6u, 0x00000204u, + 0x00000001u, 0x0004003bu, 0x000001f6u, 0x0000020fu, 0x00000001u, 0x00040032u, 0x00000033u, 0x00000217u, + 0x00000001u, 0x00060033u, 0x000001f3u, 0x00000218u, 0x00000217u, 0x0000004cu, 0x0000004cu, 0x00060034u, + 0x00000033u, 0x00000219u, 0x00000051u, 0x00000218u, 0x00000000u, 0x00060034u, 0x00000006u, 0x0000021au, + 0x00000080u, 0x00000219u, 0x00000049u, 0x00060034u, 0x00000006u, 0x0000021bu, 0x000000c3u, 0x0000021au, + 0x0000007eu, 0x00050033u, 0x00000020u, 0x0000021cu, 0x00000148u, 0x0000021bu, 0x00040032u, 0x00000006u, + 0x00000225u, 0x00000400u, 0x00040032u, 0x00000006u, 0x00000226u, 0x00000008u, 0x00060034u, 0x00000006u, + 0x00000227u, 0x00000087u, 0x00000225u, 0x00000226u, 0x00060034u, 0x00000006u, 0x0000022eu, 0x00000084u, + 0x00000226u, 0x00000148u, 0x00040032u, 0x00000006u, 0x0000022fu, 0x00000008u, 0x00060034u, 0x00000006u, + 0x00000230u, 0x00000084u, 0x0000022fu, 0x0000021bu, 0x00050033u, 0x00000020u, 0x00000231u, 0x0000022eu, + 0x00000230u, 0x00060034u, 0x00000006u, 0x0000023eu, 0x00000084u, 0x00000226u, 0x00000148u, 0x0004001eu, + 0x00000243u, 0x000001fbu, 0x00000006u, 0x00040020u, 0x00000244u, 0x00000009u, 0x00000243u, 0x0004003bu, + 0x00000244u, 0x00000245u, 0x00000009u, 0x00040020u, 0x00000246u, 0x00000009u, 0x000001fbu, 0x00050033u, + 0x00000020u, 0x0000024fu, 0x00000226u, 0x0000022fu, 0x00050033u, 0x00000020u, 0x00000253u, 0x00000226u, + 0x0000022fu, 0x00040020u, 0x0000025cu, 0x00000009u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x00000261u, + 0x00000020u, 0x00040032u, 0x00000006u, 0x00000279u, 0x00000001u, 0x0003001du, 0x000002b6u, 0x00000033u, + 0x0003001eu, 0x000002b7u, 0x000002b6u, 0x00040020u, 0x000002b8u, 0x0000000cu, 0x000002b7u, 0x0004003bu, + 0x000002b8u, 0x000002b9u, 0x0000000cu, 0x00040032u, 0x00000006u, 0x000002bbu, 0x00000100u, 0x00060034u, + 0x00000006u, 0x000002bcu, 0x00000087u, 0x000002bbu, 0x00000261u, 0x00040020u, 0x000002c1u, 0x0000000cu, + 0x00000033u, 0x0003001du, 0x000002c7u, 0x00000033u, 0x0003001eu, 0x000002c8u, 0x000002c7u, 0x00040020u, + 0x000002c9u, 0x0000000cu, 0x000002c8u, 0x0004003bu, 0x000002c9u, 0x000002cau, 0x0000000cu, 0x0005002cu, + 0x00000020u, 0x00000734u, 0x000000a8u, 0x000000a8u, 0x0007002cu, 0x00000007u, 0x00000735u, 0x0000003eu, + 0x0000003eu, 0x0000003eu, 0x0000003eu, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, + 0x000200f8u, 0x00000005u, 0x00050041u, 0x000001f6u, 0x000001f7u, 0x000001f5u, 0x00000049u, 0x0004003du, + 0x00000033u, 0x000001f8u, 0x000001f7u, 0x0004007cu, 0x00000006u, 0x000001f9u, 0x000001f8u, 0x0004003du, + 0x000001f3u, 0x000001fcu, 0x000001f5u, 0x0007004fu, 0x000001fbu, 0x000001fdu, 0x000001fcu, 0x000001fcu, + 0x00000001u, 0x00000002u, 0x0004007cu, 0x00000020u, 0x000001feu, 0x000001fdu, 0x0004003du, 0x00000033u, + 0x00000201u, 0x00000200u, 0x0004007cu, 0x00000006u, 0x00000202u, 0x00000201u, 0x0004003du, 0x00000033u, + 0x00000205u, 0x00000204u, 0x0004007cu, 0x00000006u, 0x00000206u, 0x00000205u, 0x000500c3u, 0x00000006u, + 0x00000207u, 0x00000206u, 0x0000007eu, 0x000500c7u, 0x00000006u, 0x0000020au, 0x00000202u, 0x000000bau, + 0x000500c3u, 0x00000006u, 0x0000020du, 0x00000202u, 0x0000007eu, 0x0004003du, 0x00000033u, 0x00000210u, + 0x0000020fu, 0x0004007cu, 0x00000006u, 0x00000211u, 0x00000210u, 0x00050084u, 0x00000006u, 0x00000212u, + 0x00000207u, 0x00000211u, 0x00050080u, 0x00000006u, 0x00000214u, 0x0000020du, 0x00000212u, 0x00050084u, + 0x00000020u, 0x0000021du, 0x000001feu, 0x0000021cu, 0x00050050u, 0x00000020u, 0x00000220u, 0x0000020au, + 0x00000214u, 0x00050080u, 0x00000020u, 0x00000221u, 0x0000021du, 0x00000220u, 0x00050051u, 0x00000006u, + 0x00000224u, 0x00000221u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000228u, 0x00000224u, 0x00000227u, + 0x00050051u, 0x00000006u, 0x0000022au, 0x00000221u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000022bu, + 0x00000228u, 0x0000022au, 0x00050084u, 0x00000020u, 0x00000232u, 0x000001feu, 0x00000231u, 0x00050084u, + 0x00000006u, 0x00000234u, 0x00000207u, 0x0000022fu, 0x00050084u, 0x00000006u, 0x00000237u, 0x00000234u, + 0x00000211u, 0x00050051u, 0x00000006u, 0x00000239u, 0x00000232u, 0x00000001u, 0x00050080u, 0x00000006u, + 0x0000023au, 0x00000239u, 0x00000237u, 0x00060052u, 0x00000020u, 0x000006dfu, 0x0000023au, 0x00000232u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00000240u, 0x0000022fu, 0x00000207u, 0x00050050u, 0x00000020u, + 0x00000241u, 0x0000023eu, 0x00000240u, 0x00050080u, 0x00000020u, 0x00000242u, 0x000006dfu, 0x00000241u, + 0x00050041u, 0x00000246u, 0x00000247u, 0x00000245u, 0x00000094u, 0x0004003du, 0x000001fbu, 0x00000248u, + 0x00000247u, 0x0004007cu, 0x00000020u, 0x00000249u, 0x00000248u, 0x0007000cu, 0x00000020u, 0x0000024au, + 0x00000001u, 0x00000027u, 0x00000242u, 0x00000249u, 0x00050082u, 0x00000020u, 0x0000024cu, 0x0000024au, + 0x00000734u, 0x00050084u, 0x00000020u, 0x00000250u, 0x00000221u, 0x0000024fu, 0x00050080u, 0x00000020u, + 0x00000254u, 0x00000250u, 0x00000253u, 0x0007000cu, 0x00000020u, 0x00000258u, 0x00000001u, 0x00000027u, + 0x00000254u, 0x00000249u, 0x00050082u, 0x00000020u, 0x0000025au, 0x00000258u, 0x00000734u, 0x00050041u, + 0x0000025cu, 0x0000025du, 0x00000245u, 0x000000a8u, 0x0004003du, 0x00000006u, 0x0000025eu, 0x0000025du, + 0x000500b1u, 0x0000001eu, 0x00000262u, 0x00000202u, 0x00000261u, 0x000300f7u, 0x00000264u, 0x00000000u, + 0x000400fau, 0x00000262u, 0x00000263u, 0x00000264u, 0x000200f8u, 0x00000263u, 0x00050084u, 0x00000006u, + 0x00000267u, 0x000001f9u, 0x00000261u, 0x00050080u, 0x00000006u, 0x00000269u, 0x00000267u, 0x00000202u, + 0x0004007cu, 0x00000033u, 0x0000026au, 0x00000269u, 0x0004007cu, 0x00000033u, 0x0000026du, 0x0000025eu, + 0x000500b0u, 0x0000001eu, 0x0000026eu, 0x0000026au, 0x0000026du, 0x000300f7u, 0x00000270u, 0x00000000u, + 0x000400fau, 0x0000026eu, 0x0000026fu, 0x00000270u, 0x000200f8u, 0x0000026fu, 0x00060041u, 0x000001e2u, + 0x00000302u, 0x000001e0u, 0x00000094u, 0x0000026au, 0x0004003du, 0x00000007u, 0x00000303u, 0x00000302u, + 0x00050051u, 0x00000006u, 0x00000305u, 0x00000303u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000307u, + 0x00000303u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000309u, 0x00000303u, 0x00000002u, 0x00050051u, + 0x00000006u, 0x0000030bu, 0x00000303u, 0x00000003u, 0x00070041u, 0x000001aeu, 0x00000310u, 0x000001acu, + 0x00000094u, 0x0000026au, 0x00000094u, 0x0004003du, 0x00000006u, 0x00000311u, 0x00000310u, 0x00070041u, + 0x000001aeu, 0x00000313u, 0x000001acu, 0x00000094u, 0x0000026au, 0x000000a8u, 0x0004003du, 0x00000006u, + 0x00000314u, 0x00000313u, 0x00070041u, 0x000001aeu, 0x00000316u, 0x000001acu, 0x00000094u, 0x0000026au, + 0x000000bcu, 0x0004003du, 0x00000006u, 0x00000317u, 0x00000316u, 0x00070041u, 0x000001b8u, 0x00000319u, + 0x000001acu, 0x00000094u, 0x0000026au, 0x0000007eu, 0x0004003du, 0x000001a6u, 0x0000031au, 0x00000319u, + 0x00040072u, 0x00000006u, 0x0000031bu, 0x0000031au, 0x00070041u, 0x000001b8u, 0x0000031du, 0x000001acu, + 0x00000094u, 0x0000026au, 0x00000084u, 0x0004003du, 0x000001a6u, 0x0000031eu, 0x0000031du, 0x00040072u, + 0x00000006u, 0x0000031fu, 0x0000031eu, 0x00070041u, 0x000001aeu, 0x00000321u, 0x000001acu, 0x00000094u, + 0x0000026au, 0x00000092u, 0x0004003du, 0x00000006u, 0x00000322u, 0x00000321u, 0x00070041u, 0x000001aeu, + 0x00000324u, 0x000001acu, 0x00000094u, 0x0000026au, 0x000000a6u, 0x0004003du, 0x00000006u, 0x00000325u, + 0x00000324u, 0x00070041u, 0x000001aeu, 0x00000327u, 0x000001acu, 0x00000094u, 0x0000026au, 0x000000bau, + 0x0004003du, 0x00000006u, 0x00000328u, 0x00000327u, 0x00070041u, 0x000001b8u, 0x0000032au, 0x000001acu, + 0x00000094u, 0x0000026au, 0x00000148u, 0x0004003du, 0x000001a6u, 0x0000032bu, 0x0000032au, 0x00040072u, + 0x00000006u, 0x0000032cu, 0x0000032bu, 0x00070041u, 0x000001ceu, 0x0000032eu, 0x000001acu, 0x00000094u, + 0x0000026au, 0x00000156u, 0x0004003du, 0x000001a7u, 0x0000032fu, 0x0000032eu, 0x00040071u, 0x00000033u, + 0x00000330u, 0x0000032fu, 0x0004007cu, 0x00000006u, 0x00000331u, 0x00000330u, 0x000300f7u, 0x000003b8u, + 0x00000000u, 0x000300fbu, 0x00000049u, 0x00000347u, 0x000200f8u, 0x00000347u, 0x000500c3u, 0x00000006u, + 0x0000034du, 0x00000307u, 0x000000bcu, 0x00050084u, 0x00000006u, 0x0000034eu, 0x00000279u, 0x0000034du, + 0x0007000cu, 0x00000006u, 0x0000034fu, 0x00000001u, 0x0000002au, 0x0000023au, 0x0000034eu, 0x00050051u, + 0x00000006u, 0x00000352u, 0x0000024cu, 0x00000001u, 0x00050080u, 0x00000006u, 0x00000356u, 0x0000030bu, + 0x0000007eu, 0x000500c3u, 0x00000006u, 0x00000357u, 0x00000356u, 0x000000bcu, 0x00050084u, 0x00000006u, + 0x00000358u, 0x00000279u, 0x00000357u, 0x00050082u, 0x00000006u, 0x00000359u, 0x00000358u, 0x000000a8u, + 0x0007000cu, 0x00000006u, 0x0000035au, 0x00000001u, 0x00000027u, 0x00000352u, 0x00000359u, 0x00050084u, + 0x00000006u, 0x0000035eu, 0x0000034fu, 0x00000084u, 0x00050084u, 0x00000006u, 0x00000361u, 0x0000035au, + 0x00000084u, 0x00050080u, 0x00000006u, 0x00000362u, 0x00000361u, 0x0000007eu, 0x00050084u, 0x00000006u, + 0x00000367u, 0x00000279u, 0x0000031bu, 0x0007000cu, 0x00000006u, 0x00000368u, 0x00000001u, 0x0000002au, + 0x0000035eu, 0x00000367u, 0x00050084u, 0x00000006u, 0x0000036du, 0x00000279u, 0x0000032cu, 0x00050082u, + 0x00000006u, 0x0000036eu, 0x0000036du, 0x000000a8u, 0x0007000cu, 0x00000006u, 0x0000036fu, 0x00000001u, + 0x00000027u, 0x00000362u, 0x0000036eu, 0x000500b1u, 0x0000001eu, 0x00000372u, 0x0000036fu, 0x00000368u, + 0x000300f7u, 0x00000374u, 0x00000000u, 0x000400fau, 0x00000372u, 0x00000373u, 0x00000374u, 0x000200f8u, + 0x00000373u, 0x000200f9u, 0x000003b8u, 0x000200f8u, 0x00000374u, 0x000500c7u, 0x00000006u, 0x00000377u, + 0x00000331u, 0x000000a8u, 0x000500abu, 0x0000001eu, 0x00000378u, 0x00000377u, 0x00000094u, 0x00050084u, + 0x00000006u, 0x0000037eu, 0x0000031fu, 0x00000279u, 0x00050050u, 0x00000020u, 0x0000037fu, 0x0000037eu, + 0x0000037eu, 0x00050080u, 0x00000020u, 0x00000380u, 0x0000037fu, 0x00000162u, 0x00050050u, 0x00000020u, + 0x00000382u, 0x00000368u, 0x00000368u, 0x00050050u, 0x00000020u, 0x00000384u, 0x0000036fu, 0x0000036fu, + 0x0008000cu, 0x00000020u, 0x00000385u, 0x00000001u, 0x0000002du, 0x00000380u, 0x00000382u, 0x00000384u, + 0x00050051u, 0x00000006u, 0x00000386u, 0x00000385u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000387u, + 0x00000385u, 0x00000001u, 0x00070050u, 0x00000007u, 0x00000388u, 0x00000368u, 0x0000036fu, 0x00000386u, + 0x00000387u, 0x000500c7u, 0x00000006u, 0x000003ddu, 0x0000031bu, 0x00000081u, 0x00050084u, 0x00000006u, + 0x000003e2u, 0x000003ddu, 0x00000279u, 0x00070050u, 0x00000007u, 0x000003e8u, 0x000003e2u, 0x000003e2u, + 0x000003e2u, 0x000003e2u, 0x00050082u, 0x00000007u, 0x000003e9u, 0x00000388u, 0x000003e8u, 0x00050084u, + 0x00000006u, 0x000003edu, 0x00000279u, 0x00000311u, 0x00070050u, 0x00000007u, 0x00000454u, 0x00000322u, + 0x00000322u, 0x00000322u, 0x00000322u, 0x00050098u, 0x00000064u, 0x00000455u, 0x000003e9u, 0x00000454u, + 0x00050051u, 0x00000007u, 0x00000456u, 0x00000455u, 0x00000000u, 0x00050051u, 0x00000007u, 0x00000457u, + 0x00000455u, 0x00000001u, 0x0004007cu, 0x00000069u, 0x00000459u, 0x00000456u, 0x0004007cu, 0x00000033u, + 0x0000045bu, 0x000003edu, 0x00070050u, 0x00000069u, 0x0000045cu, 0x0000045bu, 0x0000045bu, 0x0000045bu, + 0x0000045bu, 0x00050095u, 0x00000070u, 0x0000045du, 0x00000459u, 0x0000045cu, 0x00050051u, 0x00000069u, + 0x0000045eu, 0x0000045du, 0x00000001u, 0x00050051u, 0x00000069u, 0x0000045fu, 0x0000045du, 0x00000000u, + 0x0004007cu, 0x00000007u, 0x00000460u, 0x0000045fu, 0x0004007cu, 0x00000007u, 0x00000462u, 0x0000045eu, + 0x00050080u, 0x00000007u, 0x00000464u, 0x00000457u, 0x00000462u, 0x00050084u, 0x00000006u, 0x000003f9u, + 0x00000279u, 0x00000314u, 0x00070050u, 0x00000007u, 0x0000046eu, 0x00000325u, 0x00000325u, 0x00000325u, + 0x00000325u, 0x00050098u, 0x00000064u, 0x0000046fu, 0x000003e9u, 0x0000046eu, 0x00050051u, 0x00000007u, + 0x00000470u, 0x0000046fu, 0x00000000u, 0x00050051u, 0x00000007u, 0x00000471u, 0x0000046fu, 0x00000001u, + 0x0004007cu, 0x00000069u, 0x00000473u, 0x00000470u, 0x0004007cu, 0x00000033u, 0x00000475u, 0x000003f9u, + 0x00070050u, 0x00000069u, 0x00000476u, 0x00000475u, 0x00000475u, 0x00000475u, 0x00000475u, 0x00050095u, + 0x00000070u, 0x00000477u, 0x00000473u, 0x00000476u, 0x00050051u, 0x00000069u, 0x00000478u, 0x00000477u, + 0x00000001u, 0x00050051u, 0x00000069u, 0x00000479u, 0x00000477u, 0x00000000u, 0x0004007cu, 0x00000007u, + 0x0000047au, 0x00000479u, 0x0004007cu, 0x00000007u, 0x0000047cu, 0x00000478u, 0x00050080u, 0x00000007u, + 0x0000047eu, 0x00000471u, 0x0000047cu, 0x00070050u, 0x00000007u, 0x00000400u, 0x0000037eu, 0x0000037eu, + 0x0000037eu, 0x0000037eu, 0x00050082u, 0x00000007u, 0x00000401u, 0x00000388u, 0x00000400u, 0x00050084u, + 0x00000006u, 0x00000405u, 0x00000279u, 0x00000317u, 0x00070050u, 0x00000007u, 0x00000488u, 0x00000328u, + 0x00000328u, 0x00000328u, 0x00000328u, 0x00050098u, 0x00000064u, 0x00000489u, 0x00000401u, 0x00000488u, + 0x00050051u, 0x00000007u, 0x0000048au, 0x00000489u, 0x00000000u, 0x00050051u, 0x00000007u, 0x0000048bu, + 0x00000489u, 0x00000001u, 0x0004007cu, 0x00000069u, 0x0000048du, 0x0000048au, 0x0004007cu, 0x00000033u, + 0x0000048fu, 0x00000405u, 0x00070050u, 0x00000069u, 0x00000490u, 0x0000048fu, 0x0000048fu, 0x0000048fu, + 0x0000048fu, 0x00050095u, 0x00000070u, 0x00000491u, 0x0000048du, 0x00000490u, 0x00050051u, 0x00000069u, + 0x00000492u, 0x00000491u, 0x00000001u, 0x00050051u, 0x00000069u, 0x00000493u, 0x00000491u, 0x00000000u, + 0x0004007cu, 0x00000007u, 0x00000494u, 0x00000493u, 0x0004007cu, 0x00000007u, 0x00000496u, 0x00000492u, + 0x00050080u, 0x00000007u, 0x00000498u, 0x0000048bu, 0x00000496u, 0x00050084u, 0x00000006u, 0x00000410u, + 0x00000279u, 0x0000031fu, 0x00070050u, 0x00000007u, 0x00000411u, 0x00000410u, 0x00000410u, 0x00000410u, + 0x00000410u, 0x000500b1u, 0x000000d1u, 0x00000412u, 0x00000388u, 0x00000411u, 0x000600a9u, 0x00000007u, + 0x00000413u, 0x00000412u, 0x0000047au, 0x00000494u, 0x000600a9u, 0x00000007u, 0x0000041du, 0x00000412u, + 0x0000047eu, 0x00000498u, 0x000500adu, 0x000000d1u, 0x00000420u, 0x00000464u, 0x000000e2u, 0x000600a9u, + 0x00000007u, 0x00000421u, 0x00000420u, 0x000000e0u, 0x00000460u, 0x000500b1u, 0x000000d1u, 0x00000424u, + 0x00000464u, 0x000000eau, 0x000600a9u, 0x00000007u, 0x00000425u, 0x00000424u, 0x000000e7u, 0x00000421u, + 0x000500adu, 0x000000d1u, 0x00000428u, 0x0000041du, 0x000000e2u, 0x000600a9u, 0x00000007u, 0x00000429u, + 0x00000428u, 0x000000e0u, 0x00000413u, 0x000500b1u, 0x000000d1u, 0x0000042cu, 0x0000041du, 0x000000eau, + 0x000600a9u, 0x00000007u, 0x0000042du, 0x0000042cu, 0x000000e7u, 0x00000429u, 0x000500c3u, 0x00000007u, + 0x0000049fu, 0x00000425u, 0x00000735u, 0x000500c3u, 0x00000007u, 0x000004a4u, 0x0000042du, 0x00000735u, + 0x00070050u, 0x000000d1u, 0x00000738u, 0x00000378u, 0x00000378u, 0x00000378u, 0x00000378u, 0x000600a9u, + 0x00000007u, 0x00000739u, 0x00000738u, 0x000004a4u, 0x0000049fu, 0x000600a9u, 0x00000007u, 0x0000073bu, + 0x00000738u, 0x0000049fu, 0x000004a4u, 0x0006000cu, 0x00000007u, 0x0000043bu, 0x00000001u, 0x00000005u, + 0x0000073bu, 0x0006000cu, 0x00000007u, 0x0000043du, 0x00000001u, 0x00000005u, 0x00000739u, 0x0007000cu, + 0x00000007u, 0x0000043eu, 0x00000001u, 0x0000002au, 0x0000043bu, 0x0000043du, 0x0007004fu, 0x00000020u, + 0x000004a9u, 0x0000043eu, 0x0000043eu, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x000004abu, + 0x0000043eu, 0x0000043eu, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x000004acu, 0x00000001u, + 0x0000002au, 0x000004a9u, 0x000004abu, 0x00050051u, 0x00000006u, 0x000004aeu, 0x000004acu, 0x00000000u, + 0x00050051u, 0x00000006u, 0x000004b0u, 0x000004acu, 0x00000001u, 0x0007000cu, 0x00000006u, 0x000004b1u, + 0x00000001u, 0x0000002au, 0x000004aeu, 0x000004b0u, 0x00050084u, 0x00000006u, 0x00000442u, 0x00000110u, + 0x00000279u, 0x000500b3u, 0x0000001eu, 0x00000443u, 0x000004b1u, 0x00000442u, 0x000300f7u, 0x0000044bu, + 0x00000000u, 0x000400fau, 0x00000443u, 0x00000444u, 0x0000044au, 0x000200f8u, 0x00000444u, 0x0007004fu, + 0x00000020u, 0x000004b6u, 0x0000073bu, 0x0000073bu, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, + 0x000004b8u, 0x0000073bu, 0x0000073bu, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x000004b9u, + 0x00000001u, 0x00000027u, 0x000004b6u, 0x000004b8u, 0x00050051u, 0x00000006u, 0x000004bbu, 0x000004b9u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x000004bdu, 0x000004b9u, 0x00000001u, 0x0007000cu, 0x00000006u, + 0x000004beu, 0x00000001u, 0x00000027u, 0x000004bbu, 0x000004bdu, 0x0007004fu, 0x00000020u, 0x000004c3u, + 0x00000739u, 0x00000739u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x000004c5u, 0x00000739u, + 0x00000739u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000020u, 0x000004c6u, 0x00000001u, 0x0000002au, + 0x000004c3u, 0x000004c5u, 0x00050051u, 0x00000006u, 0x000004c8u, 0x000004c6u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x000004cau, 0x000004c6u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x000004cbu, 0x00000001u, + 0x0000002au, 0x000004c8u, 0x000004cau, 0x00050050u, 0x00000020u, 0x00000449u, 0x000004beu, 0x000004cbu, + 0x000200f9u, 0x0000044bu, 0x000200f8u, 0x0000044au, 0x000200f9u, 0x0000044bu, 0x000200f8u, 0x0000044bu, + 0x000700f5u, 0x00000020u, 0x0000071au, 0x00000449u, 0x00000444u, 0x0000011fu, 0x0000044au, 0x000500c7u, + 0x00000006u, 0x00000390u, 0x00000331u, 0x0000017au, 0x000500abu, 0x0000001eu, 0x00000391u, 0x00000390u, + 0x00000094u, 0x000600a9u, 0x00000006u, 0x00000392u, 0x00000391u, 0x00000084u, 0x0000007eu, 0x000500c3u, + 0x00000006u, 0x00000396u, 0x00000305u, 0x000000bcu, 0x00050084u, 0x00000006u, 0x00000397u, 0x00000279u, + 0x00000396u, 0x00050080u, 0x00000006u, 0x0000039cu, 0x00000309u, 0x00000392u, 0x000500c3u, 0x00000006u, + 0x0000039du, 0x0000039cu, 0x000000bcu, 0x00050084u, 0x00000006u, 0x0000039eu, 0x00000279u, 0x0000039du, + 0x00050082u, 0x00000006u, 0x0000039fu, 0x0000039eu, 0x000000a8u, 0x00050050u, 0x00000020u, 0x000003a0u, + 0x00000397u, 0x0000039fu, 0x0007004fu, 0x00000020u, 0x000003a3u, 0x000003a0u, 0x000003a0u, 0x00000000u, + 0x00000000u, 0x0007004fu, 0x00000020u, 0x000003a5u, 0x000003a0u, 0x000003a0u, 0x00000001u, 0x00000001u, + 0x0008000cu, 0x00000020u, 0x000003a6u, 0x00000001u, 0x0000002du, 0x0000071au, 0x000003a3u, 0x000003a5u, + 0x00050051u, 0x00000006u, 0x000003a8u, 0x000003a6u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000003aau, + 0x00000232u, 0x00000000u, 0x0007000cu, 0x00000006u, 0x000003abu, 0x00000001u, 0x0000002au, 0x000003a8u, + 0x000003aau, 0x00050051u, 0x00000006u, 0x000003aeu, 0x000003a6u, 0x00000001u, 0x00050051u, 0x00000006u, + 0x000003b0u, 0x0000024cu, 0x00000000u, 0x0007000cu, 0x00000006u, 0x000003b1u, 0x00000001u, 0x00000027u, + 0x000003aeu, 0x000003b0u, 0x000500b3u, 0x0000001eu, 0x000003b7u, 0x000003abu, 0x000003b1u, 0x000200f9u, + 0x000003b8u, 0x000200f8u, 0x000003b8u, 0x000700f5u, 0x0000001eu, 0x0000071fu, 0x00000153u, 0x00000373u, + 0x000003b7u, 0x0000044bu, 0x000200f9u, 0x00000270u, 0x000200f8u, 0x00000270u, 0x000700f5u, 0x0000001eu, + 0x00000721u, 0x00000153u, 0x00000263u, 0x0000071fu, 0x000003b8u, 0x000200f9u, 0x00000264u, 0x000200f8u, + 0x00000264u, 0x000700f5u, 0x0000001eu, 0x00000720u, 0x00000153u, 0x00000005u, 0x00000721u, 0x00000270u, + 0x00050153u, 0x00000069u, 0x00000286u, 0x000001ecu, 0x00000720u, 0x00050051u, 0x00000033u, 0x00000287u, + 0x00000286u, 0x00000000u, 0x000200f9u, 0x00000289u, 0x000200f8u, 0x00000289u, 0x000700f5u, 0x00000033u, + 0x00000723u, 0x00000049u, 0x00000264u, 0x00000733u, 0x0000028cu, 0x000700f5u, 0x00000033u, 0x00000722u, + 0x00000287u, 0x00000264u, 0x00000297u, 0x0000028cu, 0x000500abu, 0x0000001eu, 0x0000028fu, 0x00000722u, + 0x00000049u, 0x000400f6u, 0x0000028bu, 0x0000028cu, 0x00000000u, 0x000400fau, 0x0000028fu, 0x0000028au, + 0x0000028bu, 0x000200f8u, 0x0000028au, 0x0006000cu, 0x00000006u, 0x00000292u, 0x00000001u, 0x00000049u, + 0x00000722u, 0x000500c4u, 0x00000033u, 0x00000294u, 0x0000004cu, 0x00000292u, 0x000400c8u, 0x00000033u, + 0x00000295u, 0x00000294u, 0x000500c7u, 0x00000033u, 0x00000297u, 0x00000722u, 0x00000295u, 0x00050084u, + 0x00000006u, 0x0000029au, 0x000001f9u, 0x00000261u, 0x00050080u, 0x00000006u, 0x0000029cu, 0x0000029au, + 0x00000292u, 0x0004007cu, 0x00000033u, 0x0000029du, 0x0000029cu, 0x00060041u, 0x000001e2u, 0x000004d0u, + 0x000001e0u, 0x00000094u, 0x0000029du, 0x0004003du, 0x00000007u, 0x000004d1u, 0x000004d0u, 0x00050051u, + 0x00000006u, 0x000004d3u, 0x000004d1u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000004d5u, 0x000004d1u, + 0x00000001u, 0x00050051u, 0x00000006u, 0x000004d7u, 0x000004d1u, 0x00000002u, 0x00050051u, 0x00000006u, + 0x000004d9u, 0x000004d1u, 0x00000003u, 0x00070041u, 0x000001aeu, 0x000004deu, 0x000001acu, 0x00000094u, + 0x0000029du, 0x00000094u, 0x0004003du, 0x00000006u, 0x000004dfu, 0x000004deu, 0x00070041u, 0x000001aeu, + 0x000004e1u, 0x000001acu, 0x00000094u, 0x0000029du, 0x000000a8u, 0x0004003du, 0x00000006u, 0x000004e2u, + 0x000004e1u, 0x00070041u, 0x000001aeu, 0x000004e4u, 0x000001acu, 0x00000094u, 0x0000029du, 0x000000bcu, + 0x0004003du, 0x00000006u, 0x000004e5u, 0x000004e4u, 0x00070041u, 0x000001b8u, 0x000004e7u, 0x000001acu, + 0x00000094u, 0x0000029du, 0x0000007eu, 0x0004003du, 0x000001a6u, 0x000004e8u, 0x000004e7u, 0x00040072u, + 0x00000006u, 0x000004e9u, 0x000004e8u, 0x00070041u, 0x000001b8u, 0x000004ebu, 0x000001acu, 0x00000094u, + 0x0000029du, 0x00000084u, 0x0004003du, 0x000001a6u, 0x000004ecu, 0x000004ebu, 0x00040072u, 0x00000006u, + 0x000004edu, 0x000004ecu, 0x00070041u, 0x000001aeu, 0x000004efu, 0x000001acu, 0x00000094u, 0x0000029du, + 0x00000092u, 0x0004003du, 0x00000006u, 0x000004f0u, 0x000004efu, 0x00070041u, 0x000001aeu, 0x000004f2u, + 0x000001acu, 0x00000094u, 0x0000029du, 0x000000a6u, 0x0004003du, 0x00000006u, 0x000004f3u, 0x000004f2u, + 0x00070041u, 0x000001aeu, 0x000004f5u, 0x000001acu, 0x00000094u, 0x0000029du, 0x000000bau, 0x0004003du, + 0x00000006u, 0x000004f6u, 0x000004f5u, 0x00070041u, 0x000001b8u, 0x000004f8u, 0x000001acu, 0x00000094u, + 0x0000029du, 0x00000148u, 0x0004003du, 0x000001a6u, 0x000004f9u, 0x000004f8u, 0x00040072u, 0x00000006u, + 0x000004fau, 0x000004f9u, 0x00070041u, 0x000001ceu, 0x000004fcu, 0x000001acu, 0x00000094u, 0x0000029du, + 0x00000156u, 0x0004003du, 0x000001a7u, 0x000004fdu, 0x000004fcu, 0x00040071u, 0x00000033u, 0x000004feu, + 0x000004fdu, 0x0004007cu, 0x00000006u, 0x000004ffu, 0x000004feu, 0x000300f7u, 0x00000586u, 0x00000000u, + 0x000300fbu, 0x00000049u, 0x00000515u, 0x000200f8u, 0x00000515u, 0x00050051u, 0x00000006u, 0x00000517u, + 0x00000250u, 0x00000001u, 0x000500c3u, 0x00000006u, 0x0000051bu, 0x000004d5u, 0x000000bcu, 0x00050084u, + 0x00000006u, 0x0000051cu, 0x00000279u, 0x0000051bu, 0x0007000cu, 0x00000006u, 0x0000051du, 0x00000001u, + 0x0000002au, 0x00000517u, 0x0000051cu, 0x00050051u, 0x00000006u, 0x00000520u, 0x0000025au, 0x00000001u, + 0x00050080u, 0x00000006u, 0x00000524u, 0x000004d9u, 0x0000007eu, 0x000500c3u, 0x00000006u, 0x00000525u, + 0x00000524u, 0x000000bcu, 0x00050084u, 0x00000006u, 0x00000526u, 0x00000279u, 0x00000525u, 0x00050082u, + 0x00000006u, 0x00000527u, 0x00000526u, 0x000000a8u, 0x0007000cu, 0x00000006u, 0x00000528u, 0x00000001u, + 0x00000027u, 0x00000520u, 0x00000527u, 0x00050084u, 0x00000006u, 0x0000052cu, 0x0000051du, 0x00000084u, + 0x00050084u, 0x00000006u, 0x0000052fu, 0x00000528u, 0x00000084u, 0x00050080u, 0x00000006u, 0x00000530u, + 0x0000052fu, 0x0000007eu, 0x00050084u, 0x00000006u, 0x00000535u, 0x00000279u, 0x000004e9u, 0x0007000cu, + 0x00000006u, 0x00000536u, 0x00000001u, 0x0000002au, 0x0000052cu, 0x00000535u, 0x00050084u, 0x00000006u, + 0x0000053bu, 0x00000279u, 0x000004fau, 0x00050082u, 0x00000006u, 0x0000053cu, 0x0000053bu, 0x000000a8u, + 0x0007000cu, 0x00000006u, 0x0000053du, 0x00000001u, 0x00000027u, 0x00000530u, 0x0000053cu, 0x000500b1u, + 0x0000001eu, 0x00000540u, 0x0000053du, 0x00000536u, 0x000300f7u, 0x00000542u, 0x00000000u, 0x000400fau, + 0x00000540u, 0x00000541u, 0x00000542u, 0x000200f8u, 0x00000541u, 0x000200f9u, 0x00000586u, 0x000200f8u, + 0x00000542u, 0x000500c7u, 0x00000006u, 0x00000545u, 0x000004ffu, 0x000000a8u, 0x000500abu, 0x0000001eu, + 0x00000546u, 0x00000545u, 0x00000094u, 0x00050084u, 0x00000006u, 0x0000054cu, 0x000004edu, 0x00000279u, + 0x00050050u, 0x00000020u, 0x0000054du, 0x0000054cu, 0x0000054cu, 0x00050080u, 0x00000020u, 0x0000054eu, + 0x0000054du, 0x00000162u, 0x00050050u, 0x00000020u, 0x00000550u, 0x00000536u, 0x00000536u, 0x00050050u, + 0x00000020u, 0x00000552u, 0x0000053du, 0x0000053du, 0x0008000cu, 0x00000020u, 0x00000553u, 0x00000001u, + 0x0000002du, 0x0000054eu, 0x00000550u, 0x00000552u, 0x00050051u, 0x00000006u, 0x00000554u, 0x00000553u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x00000555u, 0x00000553u, 0x00000001u, 0x00070050u, 0x00000007u, + 0x00000556u, 0x00000536u, 0x0000053du, 0x00000554u, 0x00000555u, 0x000500c7u, 0x00000006u, 0x000005abu, + 0x000004e9u, 0x00000081u, 0x00050084u, 0x00000006u, 0x000005b0u, 0x000005abu, 0x00000279u, 0x00070050u, + 0x00000007u, 0x000005b6u, 0x000005b0u, 0x000005b0u, 0x000005b0u, 0x000005b0u, 0x00050082u, 0x00000007u, + 0x000005b7u, 0x00000556u, 0x000005b6u, 0x00050084u, 0x00000006u, 0x000005bbu, 0x00000279u, 0x000004dfu, + 0x00070050u, 0x00000007u, 0x00000622u, 0x000004f0u, 0x000004f0u, 0x000004f0u, 0x000004f0u, 0x00050098u, + 0x00000064u, 0x00000623u, 0x000005b7u, 0x00000622u, 0x00050051u, 0x00000007u, 0x00000624u, 0x00000623u, + 0x00000000u, 0x00050051u, 0x00000007u, 0x00000625u, 0x00000623u, 0x00000001u, 0x0004007cu, 0x00000069u, + 0x00000627u, 0x00000624u, 0x0004007cu, 0x00000033u, 0x00000629u, 0x000005bbu, 0x00070050u, 0x00000069u, + 0x0000062au, 0x00000629u, 0x00000629u, 0x00000629u, 0x00000629u, 0x00050095u, 0x00000070u, 0x0000062bu, + 0x00000627u, 0x0000062au, 0x00050051u, 0x00000069u, 0x0000062cu, 0x0000062bu, 0x00000001u, 0x00050051u, + 0x00000069u, 0x0000062du, 0x0000062bu, 0x00000000u, 0x0004007cu, 0x00000007u, 0x0000062eu, 0x0000062du, + 0x0004007cu, 0x00000007u, 0x00000630u, 0x0000062cu, 0x00050080u, 0x00000007u, 0x00000632u, 0x00000625u, + 0x00000630u, 0x00050084u, 0x00000006u, 0x000005c7u, 0x00000279u, 0x000004e2u, 0x00070050u, 0x00000007u, + 0x0000063cu, 0x000004f3u, 0x000004f3u, 0x000004f3u, 0x000004f3u, 0x00050098u, 0x00000064u, 0x0000063du, + 0x000005b7u, 0x0000063cu, 0x00050051u, 0x00000007u, 0x0000063eu, 0x0000063du, 0x00000000u, 0x00050051u, + 0x00000007u, 0x0000063fu, 0x0000063du, 0x00000001u, 0x0004007cu, 0x00000069u, 0x00000641u, 0x0000063eu, + 0x0004007cu, 0x00000033u, 0x00000643u, 0x000005c7u, 0x00070050u, 0x00000069u, 0x00000644u, 0x00000643u, + 0x00000643u, 0x00000643u, 0x00000643u, 0x00050095u, 0x00000070u, 0x00000645u, 0x00000641u, 0x00000644u, + 0x00050051u, 0x00000069u, 0x00000646u, 0x00000645u, 0x00000001u, 0x00050051u, 0x00000069u, 0x00000647u, + 0x00000645u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x00000648u, 0x00000647u, 0x0004007cu, 0x00000007u, + 0x0000064au, 0x00000646u, 0x00050080u, 0x00000007u, 0x0000064cu, 0x0000063fu, 0x0000064au, 0x00070050u, + 0x00000007u, 0x000005ceu, 0x0000054cu, 0x0000054cu, 0x0000054cu, 0x0000054cu, 0x00050082u, 0x00000007u, + 0x000005cfu, 0x00000556u, 0x000005ceu, 0x00050084u, 0x00000006u, 0x000005d3u, 0x00000279u, 0x000004e5u, + 0x00070050u, 0x00000007u, 0x00000656u, 0x000004f6u, 0x000004f6u, 0x000004f6u, 0x000004f6u, 0x00050098u, + 0x00000064u, 0x00000657u, 0x000005cfu, 0x00000656u, 0x00050051u, 0x00000007u, 0x00000658u, 0x00000657u, + 0x00000000u, 0x00050051u, 0x00000007u, 0x00000659u, 0x00000657u, 0x00000001u, 0x0004007cu, 0x00000069u, + 0x0000065bu, 0x00000658u, 0x0004007cu, 0x00000033u, 0x0000065du, 0x000005d3u, 0x00070050u, 0x00000069u, + 0x0000065eu, 0x0000065du, 0x0000065du, 0x0000065du, 0x0000065du, 0x00050095u, 0x00000070u, 0x0000065fu, + 0x0000065bu, 0x0000065eu, 0x00050051u, 0x00000069u, 0x00000660u, 0x0000065fu, 0x00000001u, 0x00050051u, + 0x00000069u, 0x00000661u, 0x0000065fu, 0x00000000u, 0x0004007cu, 0x00000007u, 0x00000662u, 0x00000661u, + 0x0004007cu, 0x00000007u, 0x00000664u, 0x00000660u, 0x00050080u, 0x00000007u, 0x00000666u, 0x00000659u, + 0x00000664u, 0x00050084u, 0x00000006u, 0x000005deu, 0x00000279u, 0x000004edu, 0x00070050u, 0x00000007u, + 0x000005dfu, 0x000005deu, 0x000005deu, 0x000005deu, 0x000005deu, 0x000500b1u, 0x000000d1u, 0x000005e0u, + 0x00000556u, 0x000005dfu, 0x000600a9u, 0x00000007u, 0x000005e1u, 0x000005e0u, 0x00000648u, 0x00000662u, + 0x000600a9u, 0x00000007u, 0x000005ebu, 0x000005e0u, 0x0000064cu, 0x00000666u, 0x000500adu, 0x000000d1u, + 0x000005eeu, 0x00000632u, 0x000000e2u, 0x000600a9u, 0x00000007u, 0x000005efu, 0x000005eeu, 0x000000e0u, + 0x0000062eu, 0x000500b1u, 0x000000d1u, 0x000005f2u, 0x00000632u, 0x000000eau, 0x000600a9u, 0x00000007u, + 0x000005f3u, 0x000005f2u, 0x000000e7u, 0x000005efu, 0x000500adu, 0x000000d1u, 0x000005f6u, 0x000005ebu, + 0x000000e2u, 0x000600a9u, 0x00000007u, 0x000005f7u, 0x000005f6u, 0x000000e0u, 0x000005e1u, 0x000500b1u, + 0x000000d1u, 0x000005fau, 0x000005ebu, 0x000000eau, 0x000600a9u, 0x00000007u, 0x000005fbu, 0x000005fau, + 0x000000e7u, 0x000005f7u, 0x000500c3u, 0x00000007u, 0x0000066du, 0x000005f3u, 0x00000735u, 0x000500c3u, + 0x00000007u, 0x00000672u, 0x000005fbu, 0x00000735u, 0x00070050u, 0x000000d1u, 0x0000073cu, 0x00000546u, + 0x00000546u, 0x00000546u, 0x00000546u, 0x000600a9u, 0x00000007u, 0x0000073du, 0x0000073cu, 0x00000672u, + 0x0000066du, 0x000600a9u, 0x00000007u, 0x0000073fu, 0x0000073cu, 0x0000066du, 0x00000672u, 0x0006000cu, + 0x00000007u, 0x00000609u, 0x00000001u, 0x00000005u, 0x0000073fu, 0x0006000cu, 0x00000007u, 0x0000060bu, + 0x00000001u, 0x00000005u, 0x0000073du, 0x0007000cu, 0x00000007u, 0x0000060cu, 0x00000001u, 0x0000002au, + 0x00000609u, 0x0000060bu, 0x0007004fu, 0x00000020u, 0x00000677u, 0x0000060cu, 0x0000060cu, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x00000020u, 0x00000679u, 0x0000060cu, 0x0000060cu, 0x00000002u, 0x00000003u, + 0x0007000cu, 0x00000020u, 0x0000067au, 0x00000001u, 0x0000002au, 0x00000677u, 0x00000679u, 0x00050051u, + 0x00000006u, 0x0000067cu, 0x0000067au, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000067eu, 0x0000067au, + 0x00000001u, 0x0007000cu, 0x00000006u, 0x0000067fu, 0x00000001u, 0x0000002au, 0x0000067cu, 0x0000067eu, + 0x00050084u, 0x00000006u, 0x00000610u, 0x00000110u, 0x00000279u, 0x000500b3u, 0x0000001eu, 0x00000611u, + 0x0000067fu, 0x00000610u, 0x000300f7u, 0x00000619u, 0x00000000u, 0x000400fau, 0x00000611u, 0x00000612u, + 0x00000618u, 0x000200f8u, 0x00000612u, 0x0007004fu, 0x00000020u, 0x00000684u, 0x0000073fu, 0x0000073fu, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000020u, 0x00000686u, 0x0000073fu, 0x0000073fu, 0x00000002u, + 0x00000003u, 0x0007000cu, 0x00000020u, 0x00000687u, 0x00000001u, 0x00000027u, 0x00000684u, 0x00000686u, + 0x00050051u, 0x00000006u, 0x00000689u, 0x00000687u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000068bu, + 0x00000687u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x0000068cu, 0x00000001u, 0x00000027u, 0x00000689u, + 0x0000068bu, 0x0007004fu, 0x00000020u, 0x00000691u, 0x0000073du, 0x0000073du, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x00000020u, 0x00000693u, 0x0000073du, 0x0000073du, 0x00000002u, 0x00000003u, 0x0007000cu, + 0x00000020u, 0x00000694u, 0x00000001u, 0x0000002au, 0x00000691u, 0x00000693u, 0x00050051u, 0x00000006u, + 0x00000696u, 0x00000694u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000698u, 0x00000694u, 0x00000001u, + 0x0007000cu, 0x00000006u, 0x00000699u, 0x00000001u, 0x0000002au, 0x00000696u, 0x00000698u, 0x00050050u, + 0x00000020u, 0x00000617u, 0x0000068cu, 0x00000699u, 0x000200f9u, 0x00000619u, 0x000200f8u, 0x00000618u, + 0x000200f9u, 0x00000619u, 0x000200f8u, 0x00000619u, 0x000700f5u, 0x00000020u, 0x00000726u, 0x00000617u, + 0x00000612u, 0x0000011fu, 0x00000618u, 0x000500c7u, 0x00000006u, 0x0000055eu, 0x000004ffu, 0x0000017au, + 0x000500abu, 0x0000001eu, 0x0000055fu, 0x0000055eu, 0x00000094u, 0x000600a9u, 0x00000006u, 0x00000560u, + 0x0000055fu, 0x00000084u, 0x0000007eu, 0x000500c3u, 0x00000006u, 0x00000564u, 0x000004d3u, 0x000000bcu, + 0x00050084u, 0x00000006u, 0x00000565u, 0x00000279u, 0x00000564u, 0x00050080u, 0x00000006u, 0x0000056au, + 0x000004d7u, 0x00000560u, 0x000500c3u, 0x00000006u, 0x0000056bu, 0x0000056au, 0x000000bcu, 0x00050084u, + 0x00000006u, 0x0000056cu, 0x00000279u, 0x0000056bu, 0x00050082u, 0x00000006u, 0x0000056du, 0x0000056cu, + 0x000000a8u, 0x00050050u, 0x00000020u, 0x0000056eu, 0x00000565u, 0x0000056du, 0x0007004fu, 0x00000020u, + 0x00000571u, 0x0000056eu, 0x0000056eu, 0x00000000u, 0x00000000u, 0x0007004fu, 0x00000020u, 0x00000573u, + 0x0000056eu, 0x0000056eu, 0x00000001u, 0x00000001u, 0x0008000cu, 0x00000020u, 0x00000574u, 0x00000001u, + 0x0000002du, 0x00000726u, 0x00000571u, 0x00000573u, 0x00050051u, 0x00000006u, 0x00000576u, 0x00000574u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x00000578u, 0x00000250u, 0x00000000u, 0x0007000cu, 0x00000006u, + 0x00000579u, 0x00000001u, 0x0000002au, 0x00000576u, 0x00000578u, 0x00050051u, 0x00000006u, 0x0000057cu, + 0x00000574u, 0x00000001u, 0x00050051u, 0x00000006u, 0x0000057eu, 0x0000025au, 0x00000000u, 0x0007000cu, + 0x00000006u, 0x0000057fu, 0x00000001u, 0x00000027u, 0x0000057cu, 0x0000057eu, 0x000500b3u, 0x0000001eu, + 0x00000585u, 0x00000579u, 0x0000057fu, 0x000200f9u, 0x00000586u, 0x000200f8u, 0x00000586u, 0x000700f5u, + 0x0000001eu, 0x0000072bu, 0x00000153u, 0x00000541u, 0x00000585u, 0x00000619u, 0x000300f7u, 0x000002b1u, + 0x00000000u, 0x000400fau, 0x0000072bu, 0x000002b0u, 0x000002b1u, 0x000200f8u, 0x000002b0u, 0x000500c5u, + 0x00000033u, 0x000002b5u, 0x00000723u, 0x00000294u, 0x000200f9u, 0x000002b1u, 0x000200f8u, 0x000002b1u, + 0x000700f5u, 0x00000033u, 0x00000733u, 0x00000723u, 0x00000586u, 0x000002b5u, 0x000002b0u, 0x000200f9u, + 0x0000028cu, 0x000200f8u, 0x0000028cu, 0x000200f9u, 0x00000289u, 0x000200f8u, 0x0000028bu, 0x00050084u, + 0x00000006u, 0x000002bdu, 0x0000022bu, 0x000002bcu, 0x00050080u, 0x00000006u, 0x000002bfu, 0x000002bdu, + 0x000001f9u, 0x00060041u, 0x000002c1u, 0x000002c2u, 0x000002b9u, 0x00000094u, 0x000002bfu, 0x0003003eu, + 0x000002c2u, 0x00000723u, 0x000500abu, 0x0000001eu, 0x000002c4u, 0x00000723u, 0x00000049u, 0x000300f7u, + 0x000002c6u, 0x00000000u, 0x000400fau, 0x000002c4u, 0x000002c5u, 0x000002d0u, 0x000200f8u, 0x000002c5u, + 0x00060041u, 0x000002c1u, 0x000002ccu, 0x000002cau, 0x00000094u, 0x0000022bu, 0x000500c4u, 0x00000033u, + 0x000002ceu, 0x0000004cu, 0x000001f9u, 0x000700f1u, 0x00000033u, 0x000002cfu, 0x000002ccu, 0x0000004cu, + 0x00000049u, 0x000002ceu, 0x000200f9u, 0x000002c6u, 0x000200f8u, 0x000002d0u, 0x00060041u, 0x000002c1u, + 0x000002d2u, 0x000002cau, 0x00000094u, 0x0000022bu, 0x000500c4u, 0x00000033u, 0x000002d4u, 0x0000004cu, + 0x000001f9u, 0x000400c8u, 0x00000033u, 0x000002d5u, 0x000002d4u, 0x000700f0u, 0x00000033u, 0x000002d6u, + 0x000002d2u, 0x0000004cu, 0x00000049u, 0x000002d5u, 0x000200f9u, 0x000002c6u, 0x000200f8u, 0x000002c6u, + 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x000007cdu, 0x00000000u, 0x00020011u, + 0x00000001u, 0x00020011u, 0x00000016u, 0x00020011u, 0x00000027u, 0x00020011u, 0x00001151u, 0x00020011u, + 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, 0x00000000u, + 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, + 0x00000001u, 0x0007000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00000200u, 0x0000020bu, + 0x00060010u, 0x00000004u, 0x00000011u, 0x00000020u, 0x00000001u, 0x00000001u, 0x00050048u, 0x000001b9u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000001b9u, 0x00000001u, 0x00000023u, 0x00000004u, + 0x00050048u, 0x000001b9u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000001b9u, 0x00000003u, + 0x00000023u, 0x0000000cu, 0x00050048u, 0x000001b9u, 0x00000004u, 0x00000023u, 0x0000000eu, 0x00050048u, + 0x000001b9u, 0x00000005u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000001b9u, 0x00000006u, 0x00000023u, + 0x00000014u, 0x00050048u, 0x000001b9u, 0x00000007u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000001b9u, + 0x00000008u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x000001b9u, 0x00000009u, 0x00000023u, 0x0000001eu, + 0x00050048u, 0x000001b9u, 0x0000000au, 0x00000023u, 0x0000001fu, 0x00040047u, 0x000001bau, 0x00000006u, + 0x00000020u, 0x00040048u, 0x000001bbu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001bbu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x000001bbu, 0x00000002u, 0x00040047u, 0x000001bdu, 0x00000022u, + 0x00000000u, 0x00040047u, 0x000001bdu, 0x00000021u, 0x00000000u, 0x00040047u, 0x000001deu, 0x00000006u, + 0x00000010u, 0x00040048u, 0x000001dfu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001dfu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x000001dfu, 0x00000002u, 0x00040047u, 0x000001e1u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x000001e1u, 0x00000021u, 0x00000001u, 0x00040047u, 0x000001f3u, 0x00000006u, + 0x00000010u, 0x00050048u, 0x000001f4u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001f4u, + 0x00000002u, 0x00040047u, 0x000001f6u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001f6u, 0x00000021u, + 0x00000006u, 0x00040047u, 0x00000200u, 0x0000000bu, 0x0000001au, 0x00040047u, 0x0000020bu, 0x0000000bu, + 0x0000001du, 0x00040047u, 0x0000021fu, 0x00000001u, 0x00000004u, 0x00040047u, 0x00000220u, 0x00000001u, + 0x00000001u, 0x00040047u, 0x00000229u, 0x00000001u, 0x00000002u, 0x00050048u, 0x00000233u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x00000233u, 0x00000001u, 0x00000023u, 0x00000008u, 0x00030047u, + 0x00000233u, 0x00000002u, 0x00040047u, 0x00000270u, 0x00000001u, 0x00000006u, 0x00040047u, 0x000002b1u, + 0x00000006u, 0x00000004u, 0x00040048u, 0x000002b2u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000002b2u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002b2u, 0x00000002u, 0x00040047u, 0x000002b4u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000002b4u, 0x00000021u, 0x00000003u, 0x00040047u, 0x000002b6u, + 0x00000001u, 0x00000003u, 0x00040047u, 0x000002c1u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000002c2u, + 0x00000000u, 0x00000019u, 0x00050048u, 0x000002c2u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x000002c2u, 0x00000002u, 0x00040047u, 0x000002c4u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000002c4u, + 0x00000021u, 0x00000004u, 0x00040047u, 0x000002e1u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000002e2u, + 0x00000000u, 0x00000019u, 0x00050048u, 0x000002e2u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x000002e2u, 0x00000002u, 0x00040047u, 0x000002e4u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000002e4u, + 0x00000021u, 0x00000005u, 0x00040047u, 0x0000030bu, 0x00000006u, 0x00000001u, 0x00050048u, 0x0000030cu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x0000030cu, 0x00000001u, 0x00000023u, 0x00000004u, + 0x00050048u, 0x0000030cu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, 0x0000030du, 0x00000006u, + 0x00000010u, 0x00040048u, 0x0000030eu, 0x00000000u, 0x00000018u, 0x00050048u, 0x0000030eu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x0000030eu, 0x00000002u, 0x00040047u, 0x00000310u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000310u, 0x00000021u, 0x00000002u, 0x00040047u, 0x0000031au, 0x00000006u, + 0x00000010u, 0x00040048u, 0x0000031bu, 0x00000000u, 0x00000019u, 0x00050048u, 0x0000031bu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x0000031bu, 0x00000002u, 0x00040047u, 0x0000031du, 0x00000022u, + 0x00000000u, 0x00040047u, 0x0000031du, 0x00000021u, 0x00000007u, 0x00040047u, 0x0000031fu, 0x00000001u, + 0x00000005u, 0x00040047u, 0x00000333u, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, + 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000007u, + 0x00000006u, 0x00000004u, 0x00040015u, 0x0000001cu, 0x00000010u, 0x00000001u, 0x00040015u, 0x0000001du, + 0x00000008u, 0x00000000u, 0x00020014u, 0x00000020u, 0x00040017u, 0x00000022u, 0x00000006u, 0x00000002u, + 0x00040015u, 0x00000035u, 0x00000020u, 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000044u, 0x0000000fu, + 0x0004002bu, 0x00000035u, 0x0000004fu, 0x00000000u, 0x0004002bu, 0x00000035u, 0x00000052u, 0x00000001u, + 0x0004001eu, 0x0000006au, 0x00000007u, 0x00000007u, 0x00040017u, 0x0000006fu, 0x00000035u, 0x00000004u, + 0x0004001eu, 0x00000076u, 0x0000006fu, 0x0000006fu, 0x0004002bu, 0x00000006u, 0x00000084u, 0x00000003u, + 0x0004002bu, 0x00000006u, 0x00000089u, 0xfffffffcu, 0x0004002bu, 0x00000006u, 0x0000008cu, 0x00000004u, + 0x0004002bu, 0x00000006u, 0x0000009du, 0x00000000u, 0x0004002bu, 0x00000006u, 0x000000b1u, 0x00000001u, + 0x0004002bu, 0x00000006u, 0x000000c3u, 0x00000007u, 0x0004002bu, 0x00000006u, 0x000000c5u, 0x00000002u, + 0x00040017u, 0x000000dbu, 0x00000020u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x000000eau, 0x7fffffffu, + 0x0007002cu, 0x00000007u, 0x000000ebu, 0x000000eau, 0x000000eau, 0x000000eau, 0x000000eau, 0x0007002cu, + 0x00000007u, 0x000000edu, 0x0000009du, 0x0000009du, 0x0000009du, 0x0000009du, 0x0004002bu, 0x00000006u, + 0x000000f1u, 0x80000000u, 0x0007002cu, 0x00000007u, 0x000000f2u, 0x000000f1u, 0x000000f1u, 0x000000f1u, + 0x000000f1u, 0x0004002bu, 0x00000006u, 0x000000f4u, 0xffffffffu, 0x0007002cu, 0x00000007u, 0x000000f5u, + 0x000000f4u, 0x000000f4u, 0x000000f4u, 0x000000f4u, 0x0004002bu, 0x00000006u, 0x0000011bu, 0x000007ffu, + 0x0005002cu, 0x00000022u, 0x0000012au, 0x0000009du, 0x000000eau, 0x0004002bu, 0x00000006u, 0x00000154u, + 0x00000008u, 0x0003002au, 0x00000020u, 0x00000160u, 0x0005002cu, 0x00000022u, 0x00000173u, 0x000000f4u, + 0x0000009du, 0x0004002bu, 0x00000006u, 0x0000018du, 0x00000080u, 0x000d001eu, 0x000001b9u, 0x00000006u, + 0x00000006u, 0x00000006u, 0x0000001cu, 0x0000001cu, 0x00000006u, 0x00000006u, 0x00000006u, 0x0000001cu, + 0x0000001du, 0x0000001du, 0x0003001du, 0x000001bau, 0x000001b9u, 0x0003001eu, 0x000001bbu, 0x000001bau, + 0x00040020u, 0x000001bcu, 0x0000000cu, 0x000001bbu, 0x0004003bu, 0x000001bcu, 0x000001bdu, 0x0000000cu, + 0x00040020u, 0x000001bfu, 0x0000000cu, 0x000001b9u, 0x0003001du, 0x000001deu, 0x00000007u, 0x0003001eu, + 0x000001dfu, 0x000001deu, 0x00040020u, 0x000001e0u, 0x0000000cu, 0x000001dfu, 0x0004003bu, 0x000001e0u, + 0x000001e1u, 0x0000000cu, 0x00040020u, 0x000001e3u, 0x0000000cu, 0x00000007u, 0x0004002bu, 0x00000035u, + 0x000001eau, 0x00000002u, 0x0004002bu, 0x00000035u, 0x000001edu, 0x00000003u, 0x0003001du, 0x000001f3u, + 0x0000006fu, 0x0003001eu, 0x000001f4u, 0x000001f3u, 0x00040020u, 0x000001f5u, 0x0000000cu, 0x000001f4u, + 0x0004003bu, 0x000001f5u, 0x000001f6u, 0x0000000cu, 0x00040020u, 0x000001f8u, 0x0000000cu, 0x00000035u, + 0x00040017u, 0x000001feu, 0x00000035u, 0x00000003u, 0x00040020u, 0x000001ffu, 0x00000001u, 0x000001feu, + 0x0004003bu, 0x000001ffu, 0x00000200u, 0x00000001u, 0x00040020u, 0x00000201u, 0x00000001u, 0x00000035u, + 0x00040017u, 0x00000206u, 0x00000035u, 0x00000002u, 0x0004003bu, 0x00000201u, 0x0000020bu, 0x00000001u, + 0x0005002cu, 0x00000022u, 0x00000216u, 0x00000154u, 0x0000008cu, 0x00040032u, 0x00000006u, 0x0000021fu, + 0x00000400u, 0x00040032u, 0x00000006u, 0x00000220u, 0x00000008u, 0x00060034u, 0x00000006u, 0x00000221u, + 0x00000087u, 0x0000021fu, 0x00000220u, 0x00060034u, 0x00000006u, 0x00000228u, 0x00000084u, 0x00000220u, + 0x00000154u, 0x00040032u, 0x00000006u, 0x00000229u, 0x00000008u, 0x00060034u, 0x00000006u, 0x0000022au, + 0x00000084u, 0x00000229u, 0x0000008cu, 0x00050033u, 0x00000022u, 0x0000022bu, 0x00000228u, 0x0000022au, + 0x00060034u, 0x00000006u, 0x0000022fu, 0x00000084u, 0x00000220u, 0x00000154u, 0x00060034u, 0x00000006u, + 0x00000230u, 0x00000084u, 0x00000229u, 0x0000008cu, 0x00050033u, 0x00000022u, 0x00000231u, 0x0000022fu, + 0x00000230u, 0x0004001eu, 0x00000233u, 0x00000206u, 0x00000006u, 0x00040020u, 0x00000234u, 0x00000009u, + 0x00000233u, 0x0004003bu, 0x00000234u, 0x00000235u, 0x00000009u, 0x00040020u, 0x00000236u, 0x00000009u, + 0x00000206u, 0x00050033u, 0x00000022u, 0x0000023fu, 0x00000220u, 0x00000229u, 0x00050033u, 0x00000022u, + 0x00000243u, 0x00000220u, 0x00000229u, 0x00040020u, 0x0000024cu, 0x00000009u, 0x00000006u, 0x00040020u, + 0x00000253u, 0x00000004u, 0x00000035u, 0x0004003bu, 0x00000253u, 0x00000254u, 0x00000004u, 0x0004002bu, + 0x00000035u, 0x00000255u, 0x00000108u, 0x0004002bu, 0x00000006u, 0x00000258u, 0x00000020u, 0x00040032u, + 0x00000006u, 0x00000270u, 0x00000001u, 0x0003001du, 0x000002b1u, 0x00000035u, 0x0003001eu, 0x000002b2u, + 0x000002b1u, 0x00040020u, 0x000002b3u, 0x0000000cu, 0x000002b2u, 0x0004003bu, 0x000002b3u, 0x000002b4u, + 0x0000000cu, 0x00040032u, 0x00000006u, 0x000002b6u, 0x00000100u, 0x00060034u, 0x00000006u, 0x000002b7u, + 0x00000087u, 0x000002b6u, 0x00000258u, 0x0003001du, 0x000002c1u, 0x00000035u, 0x0003001eu, 0x000002c2u, + 0x000002c1u, 0x00040020u, 0x000002c3u, 0x0000000cu, 0x000002c2u, 0x0004003bu, 0x000002c3u, 0x000002c4u, + 0x0000000cu, 0x0003001du, 0x000002e1u, 0x00000035u, 0x0003001eu, 0x000002e2u, 0x000002e1u, 0x00040020u, + 0x000002e3u, 0x0000000cu, 0x000002e2u, 0x0004003bu, 0x000002e3u, 0x000002e4u, 0x0000000cu, 0x00040017u, + 0x00000309u, 0x0000001du, 0x00000004u, 0x0004002bu, 0x00000035u, 0x0000030au, 0x00000008u, 0x0004001cu, + 0x0000030bu, 0x0000001du, 0x0000030au, 0x0005001eu, 0x0000030cu, 0x00000309u, 0x00000309u, 0x0000030bu, + 0x0003001du, 0x0000030du, 0x0000030cu, 0x0003001eu, 0x0000030eu, 0x0000030du, 0x00040020u, 0x0000030fu, + 0x0000000cu, 0x0000030eu, 0x0004003bu, 0x0000030fu, 0x00000310u, 0x0000000cu, 0x00040020u, 0x00000312u, + 0x0000000cu, 0x0000001du, 0x0003001du, 0x0000031au, 0x0000006fu, 0x0003001eu, 0x0000031bu, 0x0000031au, + 0x00040020u, 0x0000031cu, 0x0000000cu, 0x0000031bu, 0x0004003bu, 0x0000031cu, 0x0000031du, 0x0000000cu, + 0x00040032u, 0x00000006u, 0x0000031fu, 0x00008000u, 0x00060034u, 0x00000035u, 0x00000320u, 0x00000080u, + 0x0000031fu, 0x0000004fu, 0x00040020u, 0x0000032eu, 0x0000000cu, 0x0000006fu, 0x0004002bu, 0x00000035u, + 0x00000332u, 0x00000020u, 0x0006002cu, 0x000001feu, 0x00000333u, 0x00000332u, 0x00000052u, 0x00000052u, + 0x0005002cu, 0x00000022u, 0x000007c1u, 0x000000b1u, 0x000000b1u, 0x0007002cu, 0x00000007u, 0x000007c2u, + 0x00000044u, 0x00000044u, 0x00000044u, 0x00000044u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, + 0x00000003u, 0x000200f8u, 0x00000005u, 0x00050041u, 0x00000201u, 0x00000202u, 0x00000200u, 0x0000004fu, + 0x0004003du, 0x00000035u, 0x00000203u, 0x00000202u, 0x0004007cu, 0x00000006u, 0x00000204u, 0x00000203u, + 0x0004003du, 0x000001feu, 0x00000207u, 0x00000200u, 0x0007004fu, 0x00000206u, 0x00000208u, 0x00000207u, + 0x00000207u, 0x00000001u, 0x00000002u, 0x0004007cu, 0x00000022u, 0x00000209u, 0x00000208u, 0x0004003du, + 0x00000035u, 0x0000020cu, 0x0000020bu, 0x0004007cu, 0x00000006u, 0x0000020du, 0x0000020cu, 0x000500c7u, + 0x00000006u, 0x00000210u, 0x0000020du, 0x000000c3u, 0x000500c3u, 0x00000006u, 0x00000213u, 0x0000020du, + 0x00000084u, 0x00050084u, 0x00000022u, 0x00000217u, 0x00000209u, 0x00000216u, 0x00050050u, 0x00000022u, + 0x0000021au, 0x00000210u, 0x00000213u, 0x00050080u, 0x00000022u, 0x0000021bu, 0x00000217u, 0x0000021au, + 0x00050051u, 0x00000006u, 0x0000021eu, 0x0000021bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000222u, + 0x0000021eu, 0x00000221u, 0x00050051u, 0x00000006u, 0x00000224u, 0x0000021bu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00000225u, 0x00000222u, 0x00000224u, 0x00050084u, 0x00000022u, 0x0000022cu, 0x00000209u, + 0x0000022bu, 0x00050080u, 0x00000022u, 0x00000232u, 0x0000022cu, 0x00000231u, 0x00050041u, 0x00000236u, + 0x00000237u, 0x00000235u, 0x0000009du, 0x0004003du, 0x00000206u, 0x00000238u, 0x00000237u, 0x0004007cu, + 0x00000022u, 0x00000239u, 0x00000238u, 0x0007000cu, 0x00000022u, 0x0000023au, 0x00000001u, 0x00000027u, + 0x00000232u, 0x00000239u, 0x00050082u, 0x00000022u, 0x0000023cu, 0x0000023au, 0x000007c1u, 0x00050084u, + 0x00000022u, 0x00000240u, 0x0000021bu, 0x0000023fu, 0x00050080u, 0x00000022u, 0x00000244u, 0x00000240u, + 0x00000243u, 0x0007000cu, 0x00000022u, 0x00000248u, 0x00000001u, 0x00000027u, 0x00000244u, 0x00000239u, + 0x00050082u, 0x00000022u, 0x0000024au, 0x00000248u, 0x000007c1u, 0x00050041u, 0x0000024cu, 0x0000024du, + 0x00000235u, 0x000000b1u, 0x0004003du, 0x00000006u, 0x0000024eu, 0x0000024du, 0x000500aau, 0x00000020u, + 0x00000250u, 0x0000020du, 0x0000009du, 0x000300f7u, 0x00000252u, 0x00000000u, 0x000400fau, 0x00000250u, + 0x00000251u, 0x00000252u, 0x000200f8u, 0x00000251u, 0x0003003eu, 0x00000254u, 0x0000004fu, 0x000200f9u, + 0x00000252u, 0x000200f8u, 0x00000252u, 0x000400e0u, 0x000001eau, 0x000001eau, 0x00000255u, 0x000500b1u, + 0x00000020u, 0x00000259u, 0x0000020du, 0x00000258u, 0x000300f7u, 0x0000025bu, 0x00000000u, 0x000400fau, + 0x00000259u, 0x0000025au, 0x0000025bu, 0x000200f8u, 0x0000025au, 0x00050084u, 0x00000006u, 0x0000025eu, + 0x00000204u, 0x00000258u, 0x00050080u, 0x00000006u, 0x00000260u, 0x0000025eu, 0x0000020du, 0x0004007cu, + 0x00000035u, 0x00000261u, 0x00000260u, 0x0004007cu, 0x00000035u, 0x00000264u, 0x0000024eu, 0x000500b0u, + 0x00000020u, 0x00000265u, 0x00000261u, 0x00000264u, 0x000300f7u, 0x00000267u, 0x00000000u, 0x000400fau, + 0x00000265u, 0x00000266u, 0x00000267u, 0x000200f8u, 0x00000266u, 0x00060041u, 0x000001e3u, 0x00000356u, + 0x000001e1u, 0x0000009du, 0x00000261u, 0x0004003du, 0x00000007u, 0x00000357u, 0x00000356u, 0x00050051u, + 0x00000006u, 0x00000359u, 0x00000357u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000035bu, 0x00000357u, + 0x00000001u, 0x00050051u, 0x00000006u, 0x0000035du, 0x00000357u, 0x00000002u, 0x00050051u, 0x00000006u, + 0x0000035fu, 0x00000357u, 0x00000003u, 0x00060041u, 0x000001bfu, 0x00000365u, 0x000001bdu, 0x0000009du, + 0x00000261u, 0x0004003du, 0x000001b9u, 0x00000366u, 0x00000365u, 0x00050051u, 0x00000006u, 0x00000367u, + 0x00000366u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000369u, 0x00000366u, 0x00000001u, 0x00050051u, + 0x00000006u, 0x0000036bu, 0x00000366u, 0x00000002u, 0x00050051u, 0x0000001cu, 0x0000036du, 0x00000366u, + 0x00000003u, 0x00050051u, 0x0000001cu, 0x0000036fu, 0x00000366u, 0x00000004u, 0x00050051u, 0x00000006u, + 0x00000371u, 0x00000366u, 0x00000005u, 0x00050051u, 0x00000006u, 0x00000373u, 0x00000366u, 0x00000006u, + 0x00050051u, 0x00000006u, 0x00000375u, 0x00000366u, 0x00000007u, 0x00050051u, 0x0000001cu, 0x00000377u, + 0x00000366u, 0x00000008u, 0x00050051u, 0x0000001du, 0x00000379u, 0x00000366u, 0x00000009u, 0x000300f7u, + 0x00000405u, 0x00000000u, 0x000300fbu, 0x0000004fu, 0x0000038du, 0x000200f8u, 0x0000038du, 0x00050051u, + 0x00000006u, 0x0000038fu, 0x0000022cu, 0x00000001u, 0x000500c3u, 0x00000006u, 0x00000393u, 0x0000035bu, + 0x000000c5u, 0x00050084u, 0x00000006u, 0x00000394u, 0x00000270u, 0x00000393u, 0x0007000cu, 0x00000006u, + 0x00000395u, 0x00000001u, 0x0000002au, 0x0000038fu, 0x00000394u, 0x00050051u, 0x00000006u, 0x00000398u, + 0x0000023cu, 0x00000001u, 0x00050080u, 0x00000006u, 0x0000039cu, 0x0000035fu, 0x00000084u, 0x000500c3u, + 0x00000006u, 0x0000039du, 0x0000039cu, 0x000000c5u, 0x00050084u, 0x00000006u, 0x0000039eu, 0x00000270u, + 0x0000039du, 0x00050082u, 0x00000006u, 0x0000039fu, 0x0000039eu, 0x000000b1u, 0x0007000cu, 0x00000006u, + 0x000003a0u, 0x00000001u, 0x00000027u, 0x00000398u, 0x0000039fu, 0x00050084u, 0x00000006u, 0x000003a4u, + 0x00000395u, 0x0000008cu, 0x00050084u, 0x00000006u, 0x000003a7u, 0x000003a0u, 0x0000008cu, 0x00050080u, + 0x00000006u, 0x000003a8u, 0x000003a7u, 0x00000084u, 0x00040072u, 0x00000006u, 0x000003adu, 0x0000036du, + 0x00050084u, 0x00000006u, 0x000003aeu, 0x00000270u, 0x000003adu, 0x0007000cu, 0x00000006u, 0x000003afu, + 0x00000001u, 0x0000002au, 0x000003a4u, 0x000003aeu, 0x00040072u, 0x00000006u, 0x000003b4u, 0x00000377u, + 0x00050084u, 0x00000006u, 0x000003b5u, 0x00000270u, 0x000003b4u, 0x00050082u, 0x00000006u, 0x000003b6u, + 0x000003b5u, 0x000000b1u, 0x0007000cu, 0x00000006u, 0x000003b7u, 0x00000001u, 0x00000027u, 0x000003a8u, + 0x000003b6u, 0x000500b1u, 0x00000020u, 0x000003bau, 0x000003b7u, 0x000003afu, 0x000300f7u, 0x000003bcu, + 0x00000000u, 0x000400fau, 0x000003bau, 0x000003bbu, 0x000003bcu, 0x000200f8u, 0x000003bbu, 0x000200f9u, + 0x00000405u, 0x000200f8u, 0x000003bcu, 0x00040071u, 0x00000035u, 0x000003bfu, 0x00000379u, 0x0004007cu, + 0x00000006u, 0x000003c0u, 0x000003bfu, 0x000500c7u, 0x00000006u, 0x000003c1u, 0x000003c0u, 0x000000b1u, + 0x000500abu, 0x00000020u, 0x000003c2u, 0x000003c1u, 0x0000009du, 0x00040072u, 0x00000006u, 0x000003c7u, + 0x0000036fu, 0x00050084u, 0x00000006u, 0x000003c9u, 0x000003c7u, 0x00000270u, 0x00050050u, 0x00000022u, + 0x000003cau, 0x000003c9u, 0x000003c9u, 0x00050080u, 0x00000022u, 0x000003cbu, 0x000003cau, 0x00000173u, + 0x00050050u, 0x00000022u, 0x000003cdu, 0x000003afu, 0x000003afu, 0x00050050u, 0x00000022u, 0x000003cfu, + 0x000003b7u, 0x000003b7u, 0x0008000cu, 0x00000022u, 0x000003d0u, 0x00000001u, 0x0000002du, 0x000003cbu, + 0x000003cdu, 0x000003cfu, 0x00050051u, 0x00000006u, 0x000003d1u, 0x000003d0u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x000003d2u, 0x000003d0u, 0x00000001u, 0x00070050u, 0x00000007u, 0x000003d3u, 0x000003afu, + 0x000003b7u, 0x000003d1u, 0x000003d2u, 0x000500c7u, 0x00000006u, 0x0000042bu, 0x000003adu, 0x00000089u, + 0x00050084u, 0x00000006u, 0x00000431u, 0x0000042bu, 0x00000270u, 0x00070050u, 0x00000007u, 0x00000437u, + 0x00000431u, 0x00000431u, 0x00000431u, 0x00000431u, 0x00050082u, 0x00000007u, 0x00000438u, 0x000003d3u, + 0x00000437u, 0x00050084u, 0x00000006u, 0x0000043cu, 0x00000270u, 0x00000367u, 0x00070050u, 0x00000007u, + 0x000004a5u, 0x00000371u, 0x00000371u, 0x00000371u, 0x00000371u, 0x00050098u, 0x0000006au, 0x000004a6u, + 0x00000438u, 0x000004a5u, 0x00050051u, 0x00000007u, 0x000004a7u, 0x000004a6u, 0x00000000u, 0x00050051u, + 0x00000007u, 0x000004a8u, 0x000004a6u, 0x00000001u, 0x0004007cu, 0x0000006fu, 0x000004aau, 0x000004a7u, + 0x0004007cu, 0x00000035u, 0x000004acu, 0x0000043cu, 0x00070050u, 0x0000006fu, 0x000004adu, 0x000004acu, + 0x000004acu, 0x000004acu, 0x000004acu, 0x00050095u, 0x00000076u, 0x000004aeu, 0x000004aau, 0x000004adu, + 0x00050051u, 0x0000006fu, 0x000004afu, 0x000004aeu, 0x00000001u, 0x00050051u, 0x0000006fu, 0x000004b0u, + 0x000004aeu, 0x00000000u, 0x0004007cu, 0x00000007u, 0x000004b1u, 0x000004b0u, 0x0004007cu, 0x00000007u, + 0x000004b3u, 0x000004afu, 0x00050080u, 0x00000007u, 0x000004b5u, 0x000004a8u, 0x000004b3u, 0x00050084u, + 0x00000006u, 0x00000448u, 0x00000270u, 0x00000369u, 0x00070050u, 0x00000007u, 0x000004bfu, 0x00000373u, + 0x00000373u, 0x00000373u, 0x00000373u, 0x00050098u, 0x0000006au, 0x000004c0u, 0x00000438u, 0x000004bfu, + 0x00050051u, 0x00000007u, 0x000004c1u, 0x000004c0u, 0x00000000u, 0x00050051u, 0x00000007u, 0x000004c2u, + 0x000004c0u, 0x00000001u, 0x0004007cu, 0x0000006fu, 0x000004c4u, 0x000004c1u, 0x0004007cu, 0x00000035u, + 0x000004c6u, 0x00000448u, 0x00070050u, 0x0000006fu, 0x000004c7u, 0x000004c6u, 0x000004c6u, 0x000004c6u, + 0x000004c6u, 0x00050095u, 0x00000076u, 0x000004c8u, 0x000004c4u, 0x000004c7u, 0x00050051u, 0x0000006fu, + 0x000004c9u, 0x000004c8u, 0x00000001u, 0x00050051u, 0x0000006fu, 0x000004cau, 0x000004c8u, 0x00000000u, + 0x0004007cu, 0x00000007u, 0x000004cbu, 0x000004cau, 0x0004007cu, 0x00000007u, 0x000004cdu, 0x000004c9u, + 0x00050080u, 0x00000007u, 0x000004cfu, 0x000004c2u, 0x000004cdu, 0x00070050u, 0x00000007u, 0x0000044fu, + 0x000003c9u, 0x000003c9u, 0x000003c9u, 0x000003c9u, 0x00050082u, 0x00000007u, 0x00000450u, 0x000003d3u, + 0x0000044fu, 0x00050084u, 0x00000006u, 0x00000454u, 0x00000270u, 0x0000036bu, 0x00070050u, 0x00000007u, + 0x000004d9u, 0x00000375u, 0x00000375u, 0x00000375u, 0x00000375u, 0x00050098u, 0x0000006au, 0x000004dau, + 0x00000450u, 0x000004d9u, 0x00050051u, 0x00000007u, 0x000004dbu, 0x000004dau, 0x00000000u, 0x00050051u, + 0x00000007u, 0x000004dcu, 0x000004dau, 0x00000001u, 0x0004007cu, 0x0000006fu, 0x000004deu, 0x000004dbu, + 0x0004007cu, 0x00000035u, 0x000004e0u, 0x00000454u, 0x00070050u, 0x0000006fu, 0x000004e1u, 0x000004e0u, + 0x000004e0u, 0x000004e0u, 0x000004e0u, 0x00050095u, 0x00000076u, 0x000004e2u, 0x000004deu, 0x000004e1u, + 0x00050051u, 0x0000006fu, 0x000004e3u, 0x000004e2u, 0x00000001u, 0x00050051u, 0x0000006fu, 0x000004e4u, + 0x000004e2u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x000004e5u, 0x000004e4u, 0x0004007cu, 0x00000007u, + 0x000004e7u, 0x000004e3u, 0x00050080u, 0x00000007u, 0x000004e9u, 0x000004dcu, 0x000004e7u, 0x00050084u, + 0x00000006u, 0x00000460u, 0x00000270u, 0x000003c7u, 0x00070050u, 0x00000007u, 0x00000461u, 0x00000460u, + 0x00000460u, 0x00000460u, 0x00000460u, 0x000500b1u, 0x000000dbu, 0x00000462u, 0x000003d3u, 0x00000461u, + 0x000600a9u, 0x00000007u, 0x00000463u, 0x00000462u, 0x000004cbu, 0x000004e5u, 0x000600a9u, 0x00000007u, + 0x0000046eu, 0x00000462u, 0x000004cfu, 0x000004e9u, 0x000500adu, 0x000000dbu, 0x00000471u, 0x000004b5u, + 0x000000edu, 0x000600a9u, 0x00000007u, 0x00000472u, 0x00000471u, 0x000000ebu, 0x000004b1u, 0x000500b1u, + 0x000000dbu, 0x00000475u, 0x000004b5u, 0x000000f5u, 0x000600a9u, 0x00000007u, 0x00000476u, 0x00000475u, + 0x000000f2u, 0x00000472u, 0x000500adu, 0x000000dbu, 0x00000479u, 0x0000046eu, 0x000000edu, 0x000600a9u, + 0x00000007u, 0x0000047au, 0x00000479u, 0x000000ebu, 0x00000463u, 0x000500b1u, 0x000000dbu, 0x0000047du, + 0x0000046eu, 0x000000f5u, 0x000600a9u, 0x00000007u, 0x0000047eu, 0x0000047du, 0x000000f2u, 0x0000047au, + 0x000500c3u, 0x00000007u, 0x000004f0u, 0x00000476u, 0x000007c2u, 0x000500c3u, 0x00000007u, 0x000004f5u, + 0x0000047eu, 0x000007c2u, 0x00070050u, 0x000000dbu, 0x000007c5u, 0x000003c2u, 0x000003c2u, 0x000003c2u, + 0x000003c2u, 0x000600a9u, 0x00000007u, 0x000007c6u, 0x000007c5u, 0x000004f5u, 0x000004f0u, 0x000600a9u, + 0x00000007u, 0x000007c8u, 0x000007c5u, 0x000004f0u, 0x000004f5u, 0x0006000cu, 0x00000007u, 0x0000048cu, + 0x00000001u, 0x00000005u, 0x000007c8u, 0x0006000cu, 0x00000007u, 0x0000048eu, 0x00000001u, 0x00000005u, + 0x000007c6u, 0x0007000cu, 0x00000007u, 0x0000048fu, 0x00000001u, 0x0000002au, 0x0000048cu, 0x0000048eu, + 0x0007004fu, 0x00000022u, 0x000004fau, 0x0000048fu, 0x0000048fu, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x00000022u, 0x000004fcu, 0x0000048fu, 0x0000048fu, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, + 0x000004fdu, 0x00000001u, 0x0000002au, 0x000004fau, 0x000004fcu, 0x00050051u, 0x00000006u, 0x000004ffu, + 0x000004fdu, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000501u, 0x000004fdu, 0x00000001u, 0x0007000cu, + 0x00000006u, 0x00000502u, 0x00000001u, 0x0000002au, 0x000004ffu, 0x00000501u, 0x00050084u, 0x00000006u, + 0x00000493u, 0x0000011bu, 0x00000270u, 0x000500b3u, 0x00000020u, 0x00000494u, 0x00000502u, 0x00000493u, + 0x000300f7u, 0x0000049cu, 0x00000000u, 0x000400fau, 0x00000494u, 0x00000495u, 0x0000049bu, 0x000200f8u, + 0x00000495u, 0x0007004fu, 0x00000022u, 0x00000507u, 0x000007c8u, 0x000007c8u, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x00000022u, 0x00000509u, 0x000007c8u, 0x000007c8u, 0x00000002u, 0x00000003u, 0x0007000cu, + 0x00000022u, 0x0000050au, 0x00000001u, 0x00000027u, 0x00000507u, 0x00000509u, 0x00050051u, 0x00000006u, + 0x0000050cu, 0x0000050au, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000050eu, 0x0000050au, 0x00000001u, + 0x0007000cu, 0x00000006u, 0x0000050fu, 0x00000001u, 0x00000027u, 0x0000050cu, 0x0000050eu, 0x0007004fu, + 0x00000022u, 0x00000514u, 0x000007c6u, 0x000007c6u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, + 0x00000516u, 0x000007c6u, 0x000007c6u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x00000517u, + 0x00000001u, 0x0000002au, 0x00000514u, 0x00000516u, 0x00050051u, 0x00000006u, 0x00000519u, 0x00000517u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x0000051bu, 0x00000517u, 0x00000001u, 0x0007000cu, 0x00000006u, + 0x0000051cu, 0x00000001u, 0x0000002au, 0x00000519u, 0x0000051bu, 0x00050050u, 0x00000022u, 0x0000049au, + 0x0000050fu, 0x0000051cu, 0x000200f9u, 0x0000049cu, 0x000200f8u, 0x0000049bu, 0x000200f9u, 0x0000049cu, + 0x000200f8u, 0x0000049cu, 0x000700f5u, 0x00000022u, 0x0000079cu, 0x0000049au, 0x00000495u, 0x0000012au, + 0x0000049bu, 0x000500c7u, 0x00000006u, 0x000003ddu, 0x000003c0u, 0x0000018du, 0x000500abu, 0x00000020u, + 0x000003deu, 0x000003ddu, 0x0000009du, 0x000600a9u, 0x00000006u, 0x000003dfu, 0x000003deu, 0x0000008cu, + 0x00000084u, 0x000500c3u, 0x00000006u, 0x000003e3u, 0x00000359u, 0x000000c5u, 0x00050084u, 0x00000006u, + 0x000003e4u, 0x00000270u, 0x000003e3u, 0x00050080u, 0x00000006u, 0x000003e9u, 0x0000035du, 0x000003dfu, + 0x000500c3u, 0x00000006u, 0x000003eau, 0x000003e9u, 0x000000c5u, 0x00050084u, 0x00000006u, 0x000003ebu, + 0x00000270u, 0x000003eau, 0x00050082u, 0x00000006u, 0x000003ecu, 0x000003ebu, 0x000000b1u, 0x00050050u, + 0x00000022u, 0x000003edu, 0x000003e4u, 0x000003ecu, 0x0007004fu, 0x00000022u, 0x000003f0u, 0x000003edu, + 0x000003edu, 0x00000000u, 0x00000000u, 0x0007004fu, 0x00000022u, 0x000003f2u, 0x000003edu, 0x000003edu, + 0x00000001u, 0x00000001u, 0x0008000cu, 0x00000022u, 0x000003f3u, 0x00000001u, 0x0000002du, 0x0000079cu, + 0x000003f0u, 0x000003f2u, 0x00050051u, 0x00000006u, 0x000003f5u, 0x000003f3u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x000003f7u, 0x0000022cu, 0x00000000u, 0x0007000cu, 0x00000006u, 0x000003f8u, 0x00000001u, + 0x0000002au, 0x000003f5u, 0x000003f7u, 0x00050051u, 0x00000006u, 0x000003fbu, 0x000003f3u, 0x00000001u, + 0x00050051u, 0x00000006u, 0x000003fdu, 0x0000023cu, 0x00000000u, 0x0007000cu, 0x00000006u, 0x000003feu, + 0x00000001u, 0x00000027u, 0x000003fbu, 0x000003fdu, 0x000500b3u, 0x00000020u, 0x00000404u, 0x000003f8u, + 0x000003feu, 0x000200f9u, 0x00000405u, 0x000200f8u, 0x00000405u, 0x000700f5u, 0x00000020u, 0x000007a1u, + 0x00000160u, 0x000003bbu, 0x00000404u, 0x0000049cu, 0x000200f9u, 0x00000267u, 0x000200f8u, 0x00000267u, + 0x000700f5u, 0x00000020u, 0x000007a3u, 0x00000160u, 0x0000025au, 0x000007a1u, 0x00000405u, 0x000200f9u, + 0x0000025bu, 0x000200f8u, 0x0000025bu, 0x000700f5u, 0x00000020u, 0x000007a2u, 0x00000160u, 0x00000252u, + 0x000007a3u, 0x00000267u, 0x000300f7u, 0x0000027du, 0x00000000u, 0x000400fau, 0x000007a2u, 0x0000027cu, + 0x0000027du, 0x000200f8u, 0x0000027cu, 0x000500c4u, 0x00000035u, 0x0000027fu, 0x00000052u, 0x0000020du, + 0x000700f1u, 0x00000035u, 0x00000280u, 0x00000254u, 0x00000052u, 0x0000004fu, 0x0000027fu, 0x000200f9u, + 0x0000027du, 0x000200f8u, 0x0000027du, 0x000400e0u, 0x000001eau, 0x000001eau, 0x00000255u, 0x0004003du, + 0x00000035u, 0x00000282u, 0x00000254u, 0x000200f9u, 0x00000284u, 0x000200f8u, 0x00000284u, 0x000700f5u, + 0x00000035u, 0x000007a5u, 0x0000004fu, 0x0000027du, 0x000007bdu, 0x00000287u, 0x000700f5u, 0x00000035u, + 0x000007a4u, 0x00000282u, 0x0000027du, 0x00000292u, 0x00000287u, 0x000500abu, 0x00000020u, 0x0000028au, + 0x000007a4u, 0x0000004fu, 0x000400f6u, 0x00000286u, 0x00000287u, 0x00000000u, 0x000400fau, 0x0000028au, + 0x00000285u, 0x00000286u, 0x000200f8u, 0x00000285u, 0x0006000cu, 0x00000006u, 0x0000028du, 0x00000001u, + 0x00000049u, 0x000007a4u, 0x000500c4u, 0x00000035u, 0x0000028fu, 0x00000052u, 0x0000028du, 0x000400c8u, + 0x00000035u, 0x00000290u, 0x0000028fu, 0x000500c7u, 0x00000035u, 0x00000292u, 0x000007a4u, 0x00000290u, + 0x00050084u, 0x00000006u, 0x00000295u, 0x00000204u, 0x00000258u, 0x00050080u, 0x00000006u, 0x00000297u, + 0x00000295u, 0x0000028du, 0x0004007cu, 0x00000035u, 0x00000298u, 0x00000297u, 0x00060041u, 0x000001e3u, + 0x00000521u, 0x000001e1u, 0x0000009du, 0x00000298u, 0x0004003du, 0x00000007u, 0x00000522u, 0x00000521u, + 0x00050051u, 0x00000006u, 0x00000524u, 0x00000522u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000526u, + 0x00000522u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000528u, 0x00000522u, 0x00000002u, 0x00050051u, + 0x00000006u, 0x0000052au, 0x00000522u, 0x00000003u, 0x00060041u, 0x000001bfu, 0x00000530u, 0x000001bdu, + 0x0000009du, 0x00000298u, 0x0004003du, 0x000001b9u, 0x00000531u, 0x00000530u, 0x00050051u, 0x00000006u, + 0x00000532u, 0x00000531u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000534u, 0x00000531u, 0x00000001u, + 0x00050051u, 0x00000006u, 0x00000536u, 0x00000531u, 0x00000002u, 0x00050051u, 0x0000001cu, 0x00000538u, + 0x00000531u, 0x00000003u, 0x00050051u, 0x0000001cu, 0x0000053au, 0x00000531u, 0x00000004u, 0x00050051u, + 0x00000006u, 0x0000053cu, 0x00000531u, 0x00000005u, 0x00050051u, 0x00000006u, 0x0000053eu, 0x00000531u, + 0x00000006u, 0x00050051u, 0x00000006u, 0x00000540u, 0x00000531u, 0x00000007u, 0x00050051u, 0x0000001cu, + 0x00000542u, 0x00000531u, 0x00000008u, 0x00050051u, 0x0000001du, 0x00000544u, 0x00000531u, 0x00000009u, + 0x000300f7u, 0x000005d0u, 0x00000000u, 0x000300fbu, 0x0000004fu, 0x00000558u, 0x000200f8u, 0x00000558u, + 0x00050051u, 0x00000006u, 0x0000055au, 0x00000240u, 0x00000001u, 0x000500c3u, 0x00000006u, 0x0000055eu, + 0x00000526u, 0x000000c5u, 0x00050084u, 0x00000006u, 0x0000055fu, 0x00000270u, 0x0000055eu, 0x0007000cu, + 0x00000006u, 0x00000560u, 0x00000001u, 0x0000002au, 0x0000055au, 0x0000055fu, 0x00050051u, 0x00000006u, + 0x00000563u, 0x0000024au, 0x00000001u, 0x00050080u, 0x00000006u, 0x00000567u, 0x0000052au, 0x00000084u, + 0x000500c3u, 0x00000006u, 0x00000568u, 0x00000567u, 0x000000c5u, 0x00050084u, 0x00000006u, 0x00000569u, + 0x00000270u, 0x00000568u, 0x00050082u, 0x00000006u, 0x0000056au, 0x00000569u, 0x000000b1u, 0x0007000cu, + 0x00000006u, 0x0000056bu, 0x00000001u, 0x00000027u, 0x00000563u, 0x0000056au, 0x00050084u, 0x00000006u, + 0x0000056fu, 0x00000560u, 0x0000008cu, 0x00050084u, 0x00000006u, 0x00000572u, 0x0000056bu, 0x0000008cu, + 0x00050080u, 0x00000006u, 0x00000573u, 0x00000572u, 0x00000084u, 0x00040072u, 0x00000006u, 0x00000578u, + 0x00000538u, 0x00050084u, 0x00000006u, 0x00000579u, 0x00000270u, 0x00000578u, 0x0007000cu, 0x00000006u, + 0x0000057au, 0x00000001u, 0x0000002au, 0x0000056fu, 0x00000579u, 0x00040072u, 0x00000006u, 0x0000057fu, + 0x00000542u, 0x00050084u, 0x00000006u, 0x00000580u, 0x00000270u, 0x0000057fu, 0x00050082u, 0x00000006u, + 0x00000581u, 0x00000580u, 0x000000b1u, 0x0007000cu, 0x00000006u, 0x00000582u, 0x00000001u, 0x00000027u, + 0x00000573u, 0x00000581u, 0x000500b1u, 0x00000020u, 0x00000585u, 0x00000582u, 0x0000057au, 0x000300f7u, + 0x00000587u, 0x00000000u, 0x000400fau, 0x00000585u, 0x00000586u, 0x00000587u, 0x000200f8u, 0x00000586u, + 0x000200f9u, 0x000005d0u, 0x000200f8u, 0x00000587u, 0x00040071u, 0x00000035u, 0x0000058au, 0x00000544u, + 0x0004007cu, 0x00000006u, 0x0000058bu, 0x0000058au, 0x000500c7u, 0x00000006u, 0x0000058cu, 0x0000058bu, + 0x000000b1u, 0x000500abu, 0x00000020u, 0x0000058du, 0x0000058cu, 0x0000009du, 0x00040072u, 0x00000006u, + 0x00000592u, 0x0000053au, 0x00050084u, 0x00000006u, 0x00000594u, 0x00000592u, 0x00000270u, 0x00050050u, + 0x00000022u, 0x00000595u, 0x00000594u, 0x00000594u, 0x00050080u, 0x00000022u, 0x00000596u, 0x00000595u, + 0x00000173u, 0x00050050u, 0x00000022u, 0x00000598u, 0x0000057au, 0x0000057au, 0x00050050u, 0x00000022u, + 0x0000059au, 0x00000582u, 0x00000582u, 0x0008000cu, 0x00000022u, 0x0000059bu, 0x00000001u, 0x0000002du, + 0x00000596u, 0x00000598u, 0x0000059au, 0x00050051u, 0x00000006u, 0x0000059cu, 0x0000059bu, 0x00000000u, + 0x00050051u, 0x00000006u, 0x0000059du, 0x0000059bu, 0x00000001u, 0x00070050u, 0x00000007u, 0x0000059eu, + 0x0000057au, 0x00000582u, 0x0000059cu, 0x0000059du, 0x000500c7u, 0x00000006u, 0x000005f6u, 0x00000578u, + 0x00000089u, 0x00050084u, 0x00000006u, 0x000005fcu, 0x000005f6u, 0x00000270u, 0x00070050u, 0x00000007u, + 0x00000602u, 0x000005fcu, 0x000005fcu, 0x000005fcu, 0x000005fcu, 0x00050082u, 0x00000007u, 0x00000603u, + 0x0000059eu, 0x00000602u, 0x00050084u, 0x00000006u, 0x00000607u, 0x00000270u, 0x00000532u, 0x00070050u, + 0x00000007u, 0x00000670u, 0x0000053cu, 0x0000053cu, 0x0000053cu, 0x0000053cu, 0x00050098u, 0x0000006au, + 0x00000671u, 0x00000603u, 0x00000670u, 0x00050051u, 0x00000007u, 0x00000672u, 0x00000671u, 0x00000000u, + 0x00050051u, 0x00000007u, 0x00000673u, 0x00000671u, 0x00000001u, 0x0004007cu, 0x0000006fu, 0x00000675u, + 0x00000672u, 0x0004007cu, 0x00000035u, 0x00000677u, 0x00000607u, 0x00070050u, 0x0000006fu, 0x00000678u, + 0x00000677u, 0x00000677u, 0x00000677u, 0x00000677u, 0x00050095u, 0x00000076u, 0x00000679u, 0x00000675u, + 0x00000678u, 0x00050051u, 0x0000006fu, 0x0000067au, 0x00000679u, 0x00000001u, 0x00050051u, 0x0000006fu, + 0x0000067bu, 0x00000679u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x0000067cu, 0x0000067bu, 0x0004007cu, + 0x00000007u, 0x0000067eu, 0x0000067au, 0x00050080u, 0x00000007u, 0x00000680u, 0x00000673u, 0x0000067eu, + 0x00050084u, 0x00000006u, 0x00000613u, 0x00000270u, 0x00000534u, 0x00070050u, 0x00000007u, 0x0000068au, + 0x0000053eu, 0x0000053eu, 0x0000053eu, 0x0000053eu, 0x00050098u, 0x0000006au, 0x0000068bu, 0x00000603u, + 0x0000068au, 0x00050051u, 0x00000007u, 0x0000068cu, 0x0000068bu, 0x00000000u, 0x00050051u, 0x00000007u, + 0x0000068du, 0x0000068bu, 0x00000001u, 0x0004007cu, 0x0000006fu, 0x0000068fu, 0x0000068cu, 0x0004007cu, + 0x00000035u, 0x00000691u, 0x00000613u, 0x00070050u, 0x0000006fu, 0x00000692u, 0x00000691u, 0x00000691u, + 0x00000691u, 0x00000691u, 0x00050095u, 0x00000076u, 0x00000693u, 0x0000068fu, 0x00000692u, 0x00050051u, + 0x0000006fu, 0x00000694u, 0x00000693u, 0x00000001u, 0x00050051u, 0x0000006fu, 0x00000695u, 0x00000693u, + 0x00000000u, 0x0004007cu, 0x00000007u, 0x00000696u, 0x00000695u, 0x0004007cu, 0x00000007u, 0x00000698u, + 0x00000694u, 0x00050080u, 0x00000007u, 0x0000069au, 0x0000068du, 0x00000698u, 0x00070050u, 0x00000007u, + 0x0000061au, 0x00000594u, 0x00000594u, 0x00000594u, 0x00000594u, 0x00050082u, 0x00000007u, 0x0000061bu, + 0x0000059eu, 0x0000061au, 0x00050084u, 0x00000006u, 0x0000061fu, 0x00000270u, 0x00000536u, 0x00070050u, + 0x00000007u, 0x000006a4u, 0x00000540u, 0x00000540u, 0x00000540u, 0x00000540u, 0x00050098u, 0x0000006au, + 0x000006a5u, 0x0000061bu, 0x000006a4u, 0x00050051u, 0x00000007u, 0x000006a6u, 0x000006a5u, 0x00000000u, + 0x00050051u, 0x00000007u, 0x000006a7u, 0x000006a5u, 0x00000001u, 0x0004007cu, 0x0000006fu, 0x000006a9u, + 0x000006a6u, 0x0004007cu, 0x00000035u, 0x000006abu, 0x0000061fu, 0x00070050u, 0x0000006fu, 0x000006acu, + 0x000006abu, 0x000006abu, 0x000006abu, 0x000006abu, 0x00050095u, 0x00000076u, 0x000006adu, 0x000006a9u, + 0x000006acu, 0x00050051u, 0x0000006fu, 0x000006aeu, 0x000006adu, 0x00000001u, 0x00050051u, 0x0000006fu, + 0x000006afu, 0x000006adu, 0x00000000u, 0x0004007cu, 0x00000007u, 0x000006b0u, 0x000006afu, 0x0004007cu, + 0x00000007u, 0x000006b2u, 0x000006aeu, 0x00050080u, 0x00000007u, 0x000006b4u, 0x000006a7u, 0x000006b2u, + 0x00050084u, 0x00000006u, 0x0000062bu, 0x00000270u, 0x00000592u, 0x00070050u, 0x00000007u, 0x0000062cu, + 0x0000062bu, 0x0000062bu, 0x0000062bu, 0x0000062bu, 0x000500b1u, 0x000000dbu, 0x0000062du, 0x0000059eu, + 0x0000062cu, 0x000600a9u, 0x00000007u, 0x0000062eu, 0x0000062du, 0x00000696u, 0x000006b0u, 0x000600a9u, + 0x00000007u, 0x00000639u, 0x0000062du, 0x0000069au, 0x000006b4u, 0x000500adu, 0x000000dbu, 0x0000063cu, + 0x00000680u, 0x000000edu, 0x000600a9u, 0x00000007u, 0x0000063du, 0x0000063cu, 0x000000ebu, 0x0000067cu, + 0x000500b1u, 0x000000dbu, 0x00000640u, 0x00000680u, 0x000000f5u, 0x000600a9u, 0x00000007u, 0x00000641u, + 0x00000640u, 0x000000f2u, 0x0000063du, 0x000500adu, 0x000000dbu, 0x00000644u, 0x00000639u, 0x000000edu, + 0x000600a9u, 0x00000007u, 0x00000645u, 0x00000644u, 0x000000ebu, 0x0000062eu, 0x000500b1u, 0x000000dbu, + 0x00000648u, 0x00000639u, 0x000000f5u, 0x000600a9u, 0x00000007u, 0x00000649u, 0x00000648u, 0x000000f2u, + 0x00000645u, 0x000500c3u, 0x00000007u, 0x000006bbu, 0x00000641u, 0x000007c2u, 0x000500c3u, 0x00000007u, + 0x000006c0u, 0x00000649u, 0x000007c2u, 0x00070050u, 0x000000dbu, 0x000007c9u, 0x0000058du, 0x0000058du, + 0x0000058du, 0x0000058du, 0x000600a9u, 0x00000007u, 0x000007cau, 0x000007c9u, 0x000006c0u, 0x000006bbu, + 0x000600a9u, 0x00000007u, 0x000007ccu, 0x000007c9u, 0x000006bbu, 0x000006c0u, 0x0006000cu, 0x00000007u, + 0x00000657u, 0x00000001u, 0x00000005u, 0x000007ccu, 0x0006000cu, 0x00000007u, 0x00000659u, 0x00000001u, + 0x00000005u, 0x000007cau, 0x0007000cu, 0x00000007u, 0x0000065au, 0x00000001u, 0x0000002au, 0x00000657u, + 0x00000659u, 0x0007004fu, 0x00000022u, 0x000006c5u, 0x0000065au, 0x0000065au, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x00000022u, 0x000006c7u, 0x0000065au, 0x0000065au, 0x00000002u, 0x00000003u, 0x0007000cu, + 0x00000022u, 0x000006c8u, 0x00000001u, 0x0000002au, 0x000006c5u, 0x000006c7u, 0x00050051u, 0x00000006u, + 0x000006cau, 0x000006c8u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000006ccu, 0x000006c8u, 0x00000001u, + 0x0007000cu, 0x00000006u, 0x000006cdu, 0x00000001u, 0x0000002au, 0x000006cau, 0x000006ccu, 0x00050084u, + 0x00000006u, 0x0000065eu, 0x0000011bu, 0x00000270u, 0x000500b3u, 0x00000020u, 0x0000065fu, 0x000006cdu, + 0x0000065eu, 0x000300f7u, 0x00000667u, 0x00000000u, 0x000400fau, 0x0000065fu, 0x00000660u, 0x00000666u, + 0x000200f8u, 0x00000660u, 0x0007004fu, 0x00000022u, 0x000006d2u, 0x000007ccu, 0x000007ccu, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x00000022u, 0x000006d4u, 0x000007ccu, 0x000007ccu, 0x00000002u, 0x00000003u, + 0x0007000cu, 0x00000022u, 0x000006d5u, 0x00000001u, 0x00000027u, 0x000006d2u, 0x000006d4u, 0x00050051u, + 0x00000006u, 0x000006d7u, 0x000006d5u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000006d9u, 0x000006d5u, + 0x00000001u, 0x0007000cu, 0x00000006u, 0x000006dau, 0x00000001u, 0x00000027u, 0x000006d7u, 0x000006d9u, + 0x0007004fu, 0x00000022u, 0x000006dfu, 0x000007cau, 0x000007cau, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x00000022u, 0x000006e1u, 0x000007cau, 0x000007cau, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, + 0x000006e2u, 0x00000001u, 0x0000002au, 0x000006dfu, 0x000006e1u, 0x00050051u, 0x00000006u, 0x000006e4u, + 0x000006e2u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000006e6u, 0x000006e2u, 0x00000001u, 0x0007000cu, + 0x00000006u, 0x000006e7u, 0x00000001u, 0x0000002au, 0x000006e4u, 0x000006e6u, 0x00050050u, 0x00000022u, + 0x00000665u, 0x000006dau, 0x000006e7u, 0x000200f9u, 0x00000667u, 0x000200f8u, 0x00000666u, 0x000200f9u, + 0x00000667u, 0x000200f8u, 0x00000667u, 0x000700f5u, 0x00000022u, 0x000007b0u, 0x00000665u, 0x00000660u, + 0x0000012au, 0x00000666u, 0x000500c7u, 0x00000006u, 0x000005a8u, 0x0000058bu, 0x0000018du, 0x000500abu, + 0x00000020u, 0x000005a9u, 0x000005a8u, 0x0000009du, 0x000600a9u, 0x00000006u, 0x000005aau, 0x000005a9u, + 0x0000008cu, 0x00000084u, 0x000500c3u, 0x00000006u, 0x000005aeu, 0x00000524u, 0x000000c5u, 0x00050084u, + 0x00000006u, 0x000005afu, 0x00000270u, 0x000005aeu, 0x00050080u, 0x00000006u, 0x000005b4u, 0x00000528u, + 0x000005aau, 0x000500c3u, 0x00000006u, 0x000005b5u, 0x000005b4u, 0x000000c5u, 0x00050084u, 0x00000006u, + 0x000005b6u, 0x00000270u, 0x000005b5u, 0x00050082u, 0x00000006u, 0x000005b7u, 0x000005b6u, 0x000000b1u, + 0x00050050u, 0x00000022u, 0x000005b8u, 0x000005afu, 0x000005b7u, 0x0007004fu, 0x00000022u, 0x000005bbu, + 0x000005b8u, 0x000005b8u, 0x00000000u, 0x00000000u, 0x0007004fu, 0x00000022u, 0x000005bdu, 0x000005b8u, + 0x000005b8u, 0x00000001u, 0x00000001u, 0x0008000cu, 0x00000022u, 0x000005beu, 0x00000001u, 0x0000002du, + 0x000007b0u, 0x000005bbu, 0x000005bdu, 0x00050051u, 0x00000006u, 0x000005c0u, 0x000005beu, 0x00000000u, + 0x00050051u, 0x00000006u, 0x000005c2u, 0x00000240u, 0x00000000u, 0x0007000cu, 0x00000006u, 0x000005c3u, + 0x00000001u, 0x0000002au, 0x000005c0u, 0x000005c2u, 0x00050051u, 0x00000006u, 0x000005c6u, 0x000005beu, + 0x00000001u, 0x00050051u, 0x00000006u, 0x000005c8u, 0x0000024au, 0x00000000u, 0x0007000cu, 0x00000006u, + 0x000005c9u, 0x00000001u, 0x00000027u, 0x000005c6u, 0x000005c8u, 0x000500b3u, 0x00000020u, 0x000005cfu, + 0x000005c3u, 0x000005c9u, 0x000200f9u, 0x000005d0u, 0x000200f8u, 0x000005d0u, 0x000700f5u, 0x00000020u, + 0x000007b5u, 0x00000160u, 0x00000586u, 0x000005cfu, 0x00000667u, 0x000300f7u, 0x000002acu, 0x00000000u, + 0x000400fau, 0x000007b5u, 0x000002abu, 0x000002acu, 0x000200f8u, 0x000002abu, 0x000500c5u, 0x00000035u, + 0x000002b0u, 0x000007a5u, 0x0000028fu, 0x000200f9u, 0x000002acu, 0x000200f8u, 0x000002acu, 0x000700f5u, + 0x00000035u, 0x000007bdu, 0x000007a5u, 0x000005d0u, 0x000002b0u, 0x000002abu, 0x000200f9u, 0x00000287u, + 0x000200f8u, 0x00000287u, 0x000200f9u, 0x00000284u, 0x000200f8u, 0x00000286u, 0x00050084u, 0x00000006u, + 0x000002b8u, 0x00000225u, 0x000002b7u, 0x00050080u, 0x00000006u, 0x000002bau, 0x000002b8u, 0x00000204u, + 0x00060041u, 0x000001f8u, 0x000002bcu, 0x000002b4u, 0x0000009du, 0x000002bau, 0x0003003eu, 0x000002bcu, + 0x000007a5u, 0x000500abu, 0x00000020u, 0x000002beu, 0x000007a5u, 0x0000004fu, 0x000300f7u, 0x000002c0u, + 0x00000000u, 0x000400fau, 0x000002beu, 0x000002bfu, 0x000002cau, 0x000200f8u, 0x000002bfu, 0x00060041u, + 0x000001f8u, 0x000002c6u, 0x000002c4u, 0x0000009du, 0x00000225u, 0x000500c4u, 0x00000035u, 0x000002c8u, + 0x00000052u, 0x00000204u, 0x000700f1u, 0x00000035u, 0x000002c9u, 0x000002c6u, 0x00000052u, 0x0000004fu, + 0x000002c8u, 0x000200f9u, 0x000002c0u, 0x000200f8u, 0x000002cau, 0x00060041u, 0x000001f8u, 0x000002ccu, + 0x000002c4u, 0x0000009du, 0x00000225u, 0x000500c4u, 0x00000035u, 0x000002ceu, 0x00000052u, 0x00000204u, + 0x000400c8u, 0x00000035u, 0x000002cfu, 0x000002ceu, 0x000700f0u, 0x00000035u, 0x000002d0u, 0x000002ccu, + 0x00000052u, 0x0000004fu, 0x000002cfu, 0x000200f9u, 0x000002c0u, 0x000200f8u, 0x000002c0u, 0x000400cdu, + 0x00000006u, 0x000002d3u, 0x000007a5u, 0x0004007cu, 0x00000035u, 0x000002d4u, 0x000002d3u, 0x000500abu, + 0x00000020u, 0x000002d7u, 0x000002d4u, 0x0000004fu, 0x000300f7u, 0x000002d9u, 0x00000000u, 0x000400fau, + 0x000002d7u, 0x000002d8u, 0x000002d9u, 0x000200f8u, 0x000002d8u, 0x00070041u, 0x000001f8u, 0x000002dau, + 0x000001f6u, 0x0000009du, 0x0000009du, 0x000001edu, 0x000700eau, 0x00000035u, 0x000002dcu, 0x000002dau, + 0x00000052u, 0x0000004fu, 0x000002d4u, 0x000200f9u, 0x000002d9u, 0x000200f8u, 0x000002d9u, 0x000700f5u, + 0x00000035u, 0x000007a7u, 0x0000004fu, 0x000002c0u, 0x000002dcu, 0x000002d8u, 0x000300f7u, 0x000002e0u, + 0x00000000u, 0x000400fau, 0x000002d7u, 0x000002dfu, 0x000002e0u, 0x000200f8u, 0x000002dfu, 0x00060041u, + 0x000001f8u, 0x000002eau, 0x000002e4u, 0x0000009du, 0x000002bau, 0x0003003eu, 0x000002eau, 0x000007a7u, + 0x000200f9u, 0x000002e0u, 0x000200f8u, 0x000002e0u, 0x000200f9u, 0x000002edu, 0x000200f8u, 0x000002edu, + 0x000700f5u, 0x00000035u, 0x000007acu, 0x000007a7u, 0x000002e0u, 0x000007c0u, 0x000002f0u, 0x000700f5u, + 0x00000035u, 0x000007aau, 0x000007a5u, 0x000002e0u, 0x000002fbu, 0x000002f0u, 0x000500abu, 0x00000020u, + 0x000002f3u, 0x000007aau, 0x0000004fu, 0x000400f6u, 0x000002efu, 0x000002f0u, 0x00000000u, 0x000400fau, + 0x000002f3u, 0x000002eeu, 0x000002efu, 0x000200f8u, 0x000002eeu, 0x0006000cu, 0x00000006u, 0x000002f6u, + 0x00000001u, 0x00000049u, 0x000007aau, 0x000500c4u, 0x00000035u, 0x000002f8u, 0x00000052u, 0x000002f6u, + 0x000400c8u, 0x00000035u, 0x000002f9u, 0x000002f8u, 0x000500c7u, 0x00000035u, 0x000002fbu, 0x000007aau, + 0x000002f9u, 0x00050084u, 0x00000006u, 0x000002feu, 0x00000204u, 0x00000258u, 0x00050080u, 0x00000006u, + 0x00000300u, 0x000002feu, 0x000002f6u, 0x000500c7u, 0x00000035u, 0x00000304u, 0x000007a5u, 0x000002f8u, + 0x000500abu, 0x00000020u, 0x00000305u, 0x00000304u, 0x0000004fu, 0x000300f7u, 0x00000307u, 0x00000000u, + 0x000400fau, 0x00000305u, 0x00000306u, 0x00000307u, 0x000200f8u, 0x00000306u, 0x00080041u, 0x00000312u, + 0x00000313u, 0x00000310u, 0x0000009du, 0x00000300u, 0x0000009du, 0x0000004fu, 0x0004003du, 0x0000001du, + 0x00000314u, 0x00000313u, 0x00040071u, 0x00000035u, 0x00000315u, 0x00000314u, 0x00070041u, 0x000001f8u, + 0x000006ebu, 0x000001f6u, 0x0000009du, 0x00000315u, 0x0000004fu, 0x000700eau, 0x00000035u, 0x000006ecu, + 0x000006ebu, 0x00000052u, 0x0000004fu, 0x00000052u, 0x00050084u, 0x00000035u, 0x00000322u, 0x00000320u, + 0x00000315u, 0x00050080u, 0x00000035u, 0x00000323u, 0x000006ecu, 0x00000322u, 0x0004007cu, 0x00000035u, + 0x00000326u, 0x00000224u, 0x0004007cu, 0x00000035u, 0x00000329u, 0x0000021eu, 0x0004007cu, 0x00000035u, + 0x0000032cu, 0x00000300u, 0x00070050u, 0x0000006fu, 0x0000032du, 0x00000326u, 0x00000329u, 0x000007acu, + 0x0000032cu, 0x00060041u, 0x0000032eu, 0x0000032fu, 0x0000031du, 0x0000009du, 0x00000323u, 0x0003003eu, + 0x0000032fu, 0x0000032du, 0x00050080u, 0x00000035u, 0x00000331u, 0x000007acu, 0x000000b1u, 0x000200f9u, + 0x00000307u, 0x000200f8u, 0x00000307u, 0x000700f5u, 0x00000035u, 0x000007c0u, 0x000007acu, 0x000002eeu, + 0x00000331u, 0x00000306u, 0x000200f9u, 0x000002f0u, 0x000200f8u, 0x000002f0u, 0x000200f9u, 0x000002edu, + 0x000200f8u, 0x000002efu, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x0000081cu, + 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x00000016u, 0x00020011u, 0x00000027u, 0x00020011u, + 0x0000003du, 0x00020011u, 0x0000003eu, 0x00020011u, 0x0000003fu, 0x00020011u, 0x00000040u, 0x00020011u, + 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, + 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, + 0x0003000eu, 0x00000000u, 0x00000001u, 0x0009000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, + 0x00000212u, 0x0000021du, 0x00000221u, 0x0000022cu, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, + 0x00000001u, 0x00000001u, 0x00050048u, 0x000001b9u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x000001b9u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000001b9u, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x000001b9u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000001b9u, + 0x00000004u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x000001b9u, 0x00000005u, 0x00000023u, 0x00000010u, + 0x00050048u, 0x000001b9u, 0x00000006u, 0x00000023u, 0x00000014u, 0x00050048u, 0x000001b9u, 0x00000007u, + 0x00000023u, 0x00000018u, 0x00050048u, 0x000001b9u, 0x00000008u, 0x00000023u, 0x0000001cu, 0x00050048u, + 0x000001b9u, 0x00000009u, 0x00000023u, 0x0000001eu, 0x00050048u, 0x000001b9u, 0x0000000au, 0x00000023u, + 0x0000001fu, 0x00040047u, 0x000001bau, 0x00000006u, 0x00000020u, 0x00040048u, 0x000001bbu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x000001bbu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001bbu, + 0x00000002u, 0x00040047u, 0x000001bdu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001bdu, 0x00000021u, + 0x00000000u, 0x00040047u, 0x000001deu, 0x00000006u, 0x00000010u, 0x00040048u, 0x000001dfu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x000001dfu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001dfu, + 0x00000002u, 0x00040047u, 0x000001e1u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001e1u, 0x00000021u, + 0x00000001u, 0x00040047u, 0x000001fdu, 0x00000006u, 0x00000010u, 0x00050048u, 0x000001feu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x000001feu, 0x00000002u, 0x00040047u, 0x00000200u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000200u, 0x00000021u, 0x00000006u, 0x00040047u, 0x00000212u, 0x0000000bu, + 0x0000001au, 0x00030047u, 0x0000021du, 0x00000000u, 0x00040047u, 0x0000021du, 0x0000000bu, 0x00000029u, + 0x00030047u, 0x0000021eu, 0x00000000u, 0x00030047u, 0x0000021fu, 0x00000000u, 0x00030047u, 0x00000221u, + 0x00000000u, 0x00040047u, 0x00000221u, 0x0000000bu, 0x00000024u, 0x00030047u, 0x00000222u, 0x00000000u, + 0x00030047u, 0x00000223u, 0x00000000u, 0x00030047u, 0x00000224u, 0x00000000u, 0x00040047u, 0x0000022cu, + 0x0000000bu, 0x00000028u, 0x00040047u, 0x00000234u, 0x00000001u, 0x00000000u, 0x00040047u, 0x00000235u, + 0x0000000bu, 0x00000019u, 0x00040047u, 0x00000242u, 0x00000001u, 0x00000004u, 0x00040047u, 0x00000243u, + 0x00000001u, 0x00000001u, 0x00040047u, 0x0000024cu, 0x00000001u, 0x00000002u, 0x00050048u, 0x00000260u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000260u, 0x00000001u, 0x00000023u, 0x00000008u, + 0x00030047u, 0x00000260u, 0x00000002u, 0x00040047u, 0x00000296u, 0x00000001u, 0x00000006u, 0x00040047u, + 0x000002d3u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000002d4u, 0x00000000u, 0x00000019u, 0x00050048u, + 0x000002d4u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002d4u, 0x00000002u, 0x00040047u, + 0x000002d6u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000002d6u, 0x00000021u, 0x00000003u, 0x00040047u, + 0x000002d8u, 0x00000001u, 0x00000003u, 0x00040047u, 0x000002e3u, 0x00000006u, 0x00000004u, 0x00040048u, + 0x000002e4u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000002e4u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000002e4u, 0x00000002u, 0x00040047u, 0x000002e6u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000002e6u, 0x00000021u, 0x00000004u, 0x00040047u, 0x00000316u, 0x00000006u, 0x00000004u, 0x00040048u, + 0x00000317u, 0x00000000u, 0x00000019u, 0x00050048u, 0x00000317u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x00000317u, 0x00000002u, 0x00040047u, 0x00000319u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x00000319u, 0x00000021u, 0x00000005u, 0x00040047u, 0x00000341u, 0x00000006u, 0x00000001u, 0x00050048u, + 0x00000342u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000342u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x00000342u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, 0x00000343u, + 0x00000006u, 0x00000010u, 0x00040048u, 0x00000344u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000344u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000344u, 0x00000002u, 0x00040047u, 0x00000346u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x00000346u, 0x00000021u, 0x00000002u, 0x00040047u, 0x00000350u, + 0x00000006u, 0x00000010u, 0x00040048u, 0x00000351u, 0x00000000u, 0x00000019u, 0x00050048u, 0x00000351u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000351u, 0x00000002u, 0x00040047u, 0x00000353u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x00000353u, 0x00000021u, 0x00000007u, 0x00040047u, 0x00000355u, + 0x00000001u, 0x00000005u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, + 0x00000006u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000007u, 0x00000006u, 0x00000004u, 0x00040015u, + 0x0000001cu, 0x00000010u, 0x00000001u, 0x00040015u, 0x0000001du, 0x00000008u, 0x00000000u, 0x00020014u, + 0x00000020u, 0x00040017u, 0x00000022u, 0x00000006u, 0x00000002u, 0x00040015u, 0x00000035u, 0x00000020u, + 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000044u, 0x0000000fu, 0x0004002bu, 0x00000035u, 0x0000004fu, + 0x00000000u, 0x0004002bu, 0x00000035u, 0x00000052u, 0x00000001u, 0x0004001eu, 0x0000006au, 0x00000007u, + 0x00000007u, 0x00040017u, 0x0000006fu, 0x00000035u, 0x00000004u, 0x0004001eu, 0x00000076u, 0x0000006fu, + 0x0000006fu, 0x0004002bu, 0x00000006u, 0x00000084u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x00000089u, + 0xfffffffcu, 0x0004002bu, 0x00000006u, 0x0000008cu, 0x00000004u, 0x0004002bu, 0x00000006u, 0x0000009du, + 0x00000000u, 0x0004002bu, 0x00000006u, 0x000000b1u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x000000c3u, + 0x00000007u, 0x0004002bu, 0x00000006u, 0x000000c5u, 0x00000002u, 0x00040017u, 0x000000dbu, 0x00000020u, + 0x00000004u, 0x0004002bu, 0x00000006u, 0x000000eau, 0x7fffffffu, 0x0007002cu, 0x00000007u, 0x000000ebu, + 0x000000eau, 0x000000eau, 0x000000eau, 0x000000eau, 0x0007002cu, 0x00000007u, 0x000000edu, 0x0000009du, + 0x0000009du, 0x0000009du, 0x0000009du, 0x0004002bu, 0x00000006u, 0x000000f1u, 0x80000000u, 0x0007002cu, + 0x00000007u, 0x000000f2u, 0x000000f1u, 0x000000f1u, 0x000000f1u, 0x000000f1u, 0x0004002bu, 0x00000006u, + 0x000000f4u, 0xffffffffu, 0x0007002cu, 0x00000007u, 0x000000f5u, 0x000000f4u, 0x000000f4u, 0x000000f4u, + 0x000000f4u, 0x0004002bu, 0x00000006u, 0x0000011bu, 0x000007ffu, 0x0005002cu, 0x00000022u, 0x0000012au, + 0x0000009du, 0x000000eau, 0x0004002bu, 0x00000006u, 0x00000154u, 0x00000008u, 0x0003002au, 0x00000020u, + 0x00000160u, 0x0005002cu, 0x00000022u, 0x00000173u, 0x000000f4u, 0x0000009du, 0x0004002bu, 0x00000006u, + 0x0000018du, 0x00000080u, 0x000d001eu, 0x000001b9u, 0x00000006u, 0x00000006u, 0x00000006u, 0x0000001cu, + 0x0000001cu, 0x00000006u, 0x00000006u, 0x00000006u, 0x0000001cu, 0x0000001du, 0x0000001du, 0x0003001du, + 0x000001bau, 0x000001b9u, 0x0003001eu, 0x000001bbu, 0x000001bau, 0x00040020u, 0x000001bcu, 0x0000000cu, + 0x000001bbu, 0x0004003bu, 0x000001bcu, 0x000001bdu, 0x0000000cu, 0x00040020u, 0x000001bfu, 0x0000000cu, + 0x000001b9u, 0x0003001du, 0x000001deu, 0x00000007u, 0x0003001eu, 0x000001dfu, 0x000001deu, 0x00040020u, + 0x000001e0u, 0x0000000cu, 0x000001dfu, 0x0004003bu, 0x000001e0u, 0x000001e1u, 0x0000000cu, 0x00040020u, + 0x000001e3u, 0x0000000cu, 0x00000007u, 0x0004002bu, 0x00000035u, 0x000001edu, 0x00000003u, 0x00030029u, + 0x00000020u, 0x000001f4u, 0x0003001du, 0x000001fdu, 0x0000006fu, 0x0003001eu, 0x000001feu, 0x000001fdu, + 0x00040020u, 0x000001ffu, 0x0000000cu, 0x000001feu, 0x0004003bu, 0x000001ffu, 0x00000200u, 0x0000000cu, + 0x00040020u, 0x00000202u, 0x0000000cu, 0x00000035u, 0x00040017u, 0x00000210u, 0x00000035u, 0x00000003u, + 0x00040020u, 0x00000211u, 0x00000001u, 0x00000210u, 0x0004003bu, 0x00000211u, 0x00000212u, 0x00000001u, + 0x00040020u, 0x00000213u, 0x00000001u, 0x00000035u, 0x00040017u, 0x00000218u, 0x00000035u, 0x00000002u, + 0x0004003bu, 0x00000213u, 0x0000021du, 0x00000001u, 0x0004003bu, 0x00000213u, 0x00000221u, 0x00000001u, + 0x0004003bu, 0x00000213u, 0x0000022cu, 0x00000001u, 0x00040032u, 0x00000035u, 0x00000234u, 0x00000001u, + 0x00060033u, 0x00000210u, 0x00000235u, 0x00000234u, 0x00000052u, 0x00000052u, 0x00060034u, 0x00000035u, + 0x00000236u, 0x00000051u, 0x00000235u, 0x00000000u, 0x00060034u, 0x00000006u, 0x00000237u, 0x00000080u, + 0x00000236u, 0x0000004fu, 0x00060034u, 0x00000006u, 0x00000238u, 0x000000c3u, 0x00000237u, 0x00000084u, + 0x00050033u, 0x00000022u, 0x00000239u, 0x00000154u, 0x00000238u, 0x00040032u, 0x00000006u, 0x00000242u, + 0x00000400u, 0x00040032u, 0x00000006u, 0x00000243u, 0x00000008u, 0x00060034u, 0x00000006u, 0x00000244u, + 0x00000087u, 0x00000242u, 0x00000243u, 0x00060034u, 0x00000006u, 0x0000024bu, 0x00000084u, 0x00000243u, + 0x00000154u, 0x00040032u, 0x00000006u, 0x0000024cu, 0x00000008u, 0x00060034u, 0x00000006u, 0x0000024du, + 0x00000084u, 0x0000024cu, 0x00000238u, 0x00050033u, 0x00000022u, 0x0000024eu, 0x0000024bu, 0x0000024du, + 0x00060034u, 0x00000006u, 0x0000025bu, 0x00000084u, 0x00000243u, 0x00000154u, 0x0004001eu, 0x00000260u, + 0x00000218u, 0x00000006u, 0x00040020u, 0x00000261u, 0x00000009u, 0x00000260u, 0x0004003bu, 0x00000261u, + 0x00000262u, 0x00000009u, 0x00040020u, 0x00000263u, 0x00000009u, 0x00000218u, 0x00050033u, 0x00000022u, + 0x0000026cu, 0x00000243u, 0x0000024cu, 0x00050033u, 0x00000022u, 0x00000270u, 0x00000243u, 0x0000024cu, + 0x00040020u, 0x00000279u, 0x00000009u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x0000027eu, 0x00000020u, + 0x00040032u, 0x00000006u, 0x00000296u, 0x00000001u, 0x0003001du, 0x000002d3u, 0x00000035u, 0x0003001eu, + 0x000002d4u, 0x000002d3u, 0x00040020u, 0x000002d5u, 0x0000000cu, 0x000002d4u, 0x0004003bu, 0x000002d5u, + 0x000002d6u, 0x0000000cu, 0x00040032u, 0x00000006u, 0x000002d8u, 0x00000100u, 0x00060034u, 0x00000006u, + 0x000002d9u, 0x00000087u, 0x000002d8u, 0x0000027eu, 0x0003001du, 0x000002e3u, 0x00000035u, 0x0003001eu, + 0x000002e4u, 0x000002e3u, 0x00040020u, 0x000002e5u, 0x0000000cu, 0x000002e4u, 0x0004003bu, 0x000002e5u, + 0x000002e6u, 0x0000000cu, 0x0003001du, 0x00000316u, 0x00000035u, 0x0003001eu, 0x00000317u, 0x00000316u, + 0x00040020u, 0x00000318u, 0x0000000cu, 0x00000317u, 0x0004003bu, 0x00000318u, 0x00000319u, 0x0000000cu, + 0x00040017u, 0x0000033fu, 0x0000001du, 0x00000004u, 0x0004002bu, 0x00000035u, 0x00000340u, 0x00000008u, + 0x0004001cu, 0x00000341u, 0x0000001du, 0x00000340u, 0x0005001eu, 0x00000342u, 0x0000033fu, 0x0000033fu, + 0x00000341u, 0x0003001du, 0x00000343u, 0x00000342u, 0x0003001eu, 0x00000344u, 0x00000343u, 0x00040020u, + 0x00000345u, 0x0000000cu, 0x00000344u, 0x0004003bu, 0x00000345u, 0x00000346u, 0x0000000cu, 0x00040020u, + 0x00000348u, 0x0000000cu, 0x0000001du, 0x0003001du, 0x00000350u, 0x0000006fu, 0x0003001eu, 0x00000351u, + 0x00000350u, 0x00040020u, 0x00000352u, 0x0000000cu, 0x00000351u, 0x0004003bu, 0x00000352u, 0x00000353u, + 0x0000000cu, 0x00040032u, 0x00000006u, 0x00000355u, 0x00008000u, 0x00060034u, 0x00000035u, 0x00000356u, + 0x00000080u, 0x00000355u, 0x0000004fu, 0x00040020u, 0x00000364u, 0x0000000cu, 0x0000006fu, 0x0005002cu, + 0x00000022u, 0x00000810u, 0x000000b1u, 0x000000b1u, 0x0007002cu, 0x00000007u, 0x00000811u, 0x00000044u, + 0x00000044u, 0x00000044u, 0x00000044u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, + 0x000200f8u, 0x00000005u, 0x00050041u, 0x00000213u, 0x00000214u, 0x00000212u, 0x0000004fu, 0x0004003du, + 0x00000035u, 0x00000215u, 0x00000214u, 0x0004007cu, 0x00000006u, 0x00000216u, 0x00000215u, 0x0004003du, + 0x00000210u, 0x00000219u, 0x00000212u, 0x0007004fu, 0x00000218u, 0x0000021au, 0x00000219u, 0x00000219u, + 0x00000001u, 0x00000002u, 0x0004007cu, 0x00000022u, 0x0000021bu, 0x0000021au, 0x0004003du, 0x00000035u, + 0x0000021eu, 0x0000021du, 0x0004007cu, 0x00000006u, 0x0000021fu, 0x0000021eu, 0x0004003du, 0x00000035u, + 0x00000222u, 0x00000221u, 0x0004007cu, 0x00000006u, 0x00000223u, 0x00000222u, 0x000500c3u, 0x00000006u, + 0x00000224u, 0x00000223u, 0x00000084u, 0x000500c7u, 0x00000006u, 0x00000227u, 0x0000021fu, 0x000000c3u, + 0x000500c3u, 0x00000006u, 0x0000022au, 0x0000021fu, 0x00000084u, 0x0004003du, 0x00000035u, 0x0000022du, + 0x0000022cu, 0x0004007cu, 0x00000006u, 0x0000022eu, 0x0000022du, 0x00050084u, 0x00000006u, 0x0000022fu, + 0x00000224u, 0x0000022eu, 0x00050080u, 0x00000006u, 0x00000231u, 0x0000022au, 0x0000022fu, 0x00050084u, + 0x00000022u, 0x0000023au, 0x0000021bu, 0x00000239u, 0x00050050u, 0x00000022u, 0x0000023du, 0x00000227u, + 0x00000231u, 0x00050080u, 0x00000022u, 0x0000023eu, 0x0000023au, 0x0000023du, 0x00050051u, 0x00000006u, + 0x00000241u, 0x0000023eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000245u, 0x00000241u, 0x00000244u, + 0x00050051u, 0x00000006u, 0x00000247u, 0x0000023eu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00000248u, + 0x00000245u, 0x00000247u, 0x00050084u, 0x00000022u, 0x0000024fu, 0x0000021bu, 0x0000024eu, 0x00050084u, + 0x00000006u, 0x00000251u, 0x00000224u, 0x0000024cu, 0x00050084u, 0x00000006u, 0x00000254u, 0x00000251u, + 0x0000022eu, 0x00050051u, 0x00000006u, 0x00000256u, 0x0000024fu, 0x00000001u, 0x00050080u, 0x00000006u, + 0x00000257u, 0x00000256u, 0x00000254u, 0x00060052u, 0x00000022u, 0x000007a6u, 0x00000257u, 0x0000024fu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000025du, 0x0000024cu, 0x00000224u, 0x00050050u, 0x00000022u, + 0x0000025eu, 0x0000025bu, 0x0000025du, 0x00050080u, 0x00000022u, 0x0000025fu, 0x000007a6u, 0x0000025eu, + 0x00050041u, 0x00000263u, 0x00000264u, 0x00000262u, 0x0000009du, 0x0004003du, 0x00000218u, 0x00000265u, + 0x00000264u, 0x0004007cu, 0x00000022u, 0x00000266u, 0x00000265u, 0x0007000cu, 0x00000022u, 0x00000267u, + 0x00000001u, 0x00000027u, 0x0000025fu, 0x00000266u, 0x00050082u, 0x00000022u, 0x00000269u, 0x00000267u, + 0x00000810u, 0x00050084u, 0x00000022u, 0x0000026du, 0x0000023eu, 0x0000026cu, 0x00050080u, 0x00000022u, + 0x00000271u, 0x0000026du, 0x00000270u, 0x0007000cu, 0x00000022u, 0x00000275u, 0x00000001u, 0x00000027u, + 0x00000271u, 0x00000266u, 0x00050082u, 0x00000022u, 0x00000277u, 0x00000275u, 0x00000810u, 0x00050041u, + 0x00000279u, 0x0000027au, 0x00000262u, 0x000000b1u, 0x0004003du, 0x00000006u, 0x0000027bu, 0x0000027au, + 0x000500b1u, 0x00000020u, 0x0000027fu, 0x0000021fu, 0x0000027eu, 0x000300f7u, 0x00000281u, 0x00000000u, + 0x000400fau, 0x0000027fu, 0x00000280u, 0x00000281u, 0x000200f8u, 0x00000280u, 0x00050084u, 0x00000006u, + 0x00000284u, 0x00000216u, 0x0000027eu, 0x00050080u, 0x00000006u, 0x00000286u, 0x00000284u, 0x0000021fu, + 0x0004007cu, 0x00000035u, 0x00000287u, 0x00000286u, 0x0004007cu, 0x00000035u, 0x0000028au, 0x0000027bu, + 0x000500b0u, 0x00000020u, 0x0000028bu, 0x00000287u, 0x0000028au, 0x000300f7u, 0x0000028du, 0x00000000u, + 0x000400fau, 0x0000028bu, 0x0000028cu, 0x0000028du, 0x000200f8u, 0x0000028cu, 0x00060041u, 0x000001e3u, + 0x00000389u, 0x000001e1u, 0x0000009du, 0x00000287u, 0x0004003du, 0x00000007u, 0x0000038au, 0x00000389u, + 0x00050051u, 0x00000006u, 0x0000038cu, 0x0000038au, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000038eu, + 0x0000038au, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000390u, 0x0000038au, 0x00000002u, 0x00050051u, + 0x00000006u, 0x00000392u, 0x0000038au, 0x00000003u, 0x00060041u, 0x000001bfu, 0x00000398u, 0x000001bdu, + 0x0000009du, 0x00000287u, 0x0004003du, 0x000001b9u, 0x00000399u, 0x00000398u, 0x00050051u, 0x00000006u, + 0x0000039au, 0x00000399u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000039cu, 0x00000399u, 0x00000001u, + 0x00050051u, 0x00000006u, 0x0000039eu, 0x00000399u, 0x00000002u, 0x00050051u, 0x0000001cu, 0x000003a0u, + 0x00000399u, 0x00000003u, 0x00050051u, 0x0000001cu, 0x000003a2u, 0x00000399u, 0x00000004u, 0x00050051u, + 0x00000006u, 0x000003a4u, 0x00000399u, 0x00000005u, 0x00050051u, 0x00000006u, 0x000003a6u, 0x00000399u, + 0x00000006u, 0x00050051u, 0x00000006u, 0x000003a8u, 0x00000399u, 0x00000007u, 0x00050051u, 0x0000001cu, + 0x000003aau, 0x00000399u, 0x00000008u, 0x00050051u, 0x0000001du, 0x000003acu, 0x00000399u, 0x00000009u, + 0x000300f7u, 0x00000438u, 0x00000000u, 0x000300fbu, 0x0000004fu, 0x000003c0u, 0x000200f8u, 0x000003c0u, + 0x000500c3u, 0x00000006u, 0x000003c6u, 0x0000038eu, 0x000000c5u, 0x00050084u, 0x00000006u, 0x000003c7u, + 0x00000296u, 0x000003c6u, 0x0007000cu, 0x00000006u, 0x000003c8u, 0x00000001u, 0x0000002au, 0x00000257u, + 0x000003c7u, 0x00050051u, 0x00000006u, 0x000003cbu, 0x00000269u, 0x00000001u, 0x00050080u, 0x00000006u, + 0x000003cfu, 0x00000392u, 0x00000084u, 0x000500c3u, 0x00000006u, 0x000003d0u, 0x000003cfu, 0x000000c5u, + 0x00050084u, 0x00000006u, 0x000003d1u, 0x00000296u, 0x000003d0u, 0x00050082u, 0x00000006u, 0x000003d2u, + 0x000003d1u, 0x000000b1u, 0x0007000cu, 0x00000006u, 0x000003d3u, 0x00000001u, 0x00000027u, 0x000003cbu, + 0x000003d2u, 0x00050084u, 0x00000006u, 0x000003d7u, 0x000003c8u, 0x0000008cu, 0x00050084u, 0x00000006u, + 0x000003dau, 0x000003d3u, 0x0000008cu, 0x00050080u, 0x00000006u, 0x000003dbu, 0x000003dau, 0x00000084u, + 0x00040072u, 0x00000006u, 0x000003e0u, 0x000003a0u, 0x00050084u, 0x00000006u, 0x000003e1u, 0x00000296u, + 0x000003e0u, 0x0007000cu, 0x00000006u, 0x000003e2u, 0x00000001u, 0x0000002au, 0x000003d7u, 0x000003e1u, + 0x00040072u, 0x00000006u, 0x000003e7u, 0x000003aau, 0x00050084u, 0x00000006u, 0x000003e8u, 0x00000296u, + 0x000003e7u, 0x00050082u, 0x00000006u, 0x000003e9u, 0x000003e8u, 0x000000b1u, 0x0007000cu, 0x00000006u, + 0x000003eau, 0x00000001u, 0x00000027u, 0x000003dbu, 0x000003e9u, 0x000500b1u, 0x00000020u, 0x000003edu, + 0x000003eau, 0x000003e2u, 0x000300f7u, 0x000003efu, 0x00000000u, 0x000400fau, 0x000003edu, 0x000003eeu, + 0x000003efu, 0x000200f8u, 0x000003eeu, 0x000200f9u, 0x00000438u, 0x000200f8u, 0x000003efu, 0x00040071u, + 0x00000035u, 0x000003f2u, 0x000003acu, 0x0004007cu, 0x00000006u, 0x000003f3u, 0x000003f2u, 0x000500c7u, + 0x00000006u, 0x000003f4u, 0x000003f3u, 0x000000b1u, 0x000500abu, 0x00000020u, 0x000003f5u, 0x000003f4u, + 0x0000009du, 0x00040072u, 0x00000006u, 0x000003fau, 0x000003a2u, 0x00050084u, 0x00000006u, 0x000003fcu, + 0x000003fau, 0x00000296u, 0x00050050u, 0x00000022u, 0x000003fdu, 0x000003fcu, 0x000003fcu, 0x00050080u, + 0x00000022u, 0x000003feu, 0x000003fdu, 0x00000173u, 0x00050050u, 0x00000022u, 0x00000400u, 0x000003e2u, + 0x000003e2u, 0x00050050u, 0x00000022u, 0x00000402u, 0x000003eau, 0x000003eau, 0x0008000cu, 0x00000022u, + 0x00000403u, 0x00000001u, 0x0000002du, 0x000003feu, 0x00000400u, 0x00000402u, 0x00050051u, 0x00000006u, + 0x00000404u, 0x00000403u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000405u, 0x00000403u, 0x00000001u, + 0x00070050u, 0x00000007u, 0x00000406u, 0x000003e2u, 0x000003eau, 0x00000404u, 0x00000405u, 0x000500c7u, + 0x00000006u, 0x0000045eu, 0x000003e0u, 0x00000089u, 0x00050084u, 0x00000006u, 0x00000464u, 0x0000045eu, + 0x00000296u, 0x00070050u, 0x00000007u, 0x0000046au, 0x00000464u, 0x00000464u, 0x00000464u, 0x00000464u, + 0x00050082u, 0x00000007u, 0x0000046bu, 0x00000406u, 0x0000046au, 0x00050084u, 0x00000006u, 0x0000046fu, + 0x00000296u, 0x0000039au, 0x00070050u, 0x00000007u, 0x000004d8u, 0x000003a4u, 0x000003a4u, 0x000003a4u, + 0x000003a4u, 0x00050098u, 0x0000006au, 0x000004d9u, 0x0000046bu, 0x000004d8u, 0x00050051u, 0x00000007u, + 0x000004dau, 0x000004d9u, 0x00000000u, 0x00050051u, 0x00000007u, 0x000004dbu, 0x000004d9u, 0x00000001u, + 0x0004007cu, 0x0000006fu, 0x000004ddu, 0x000004dau, 0x0004007cu, 0x00000035u, 0x000004dfu, 0x0000046fu, + 0x00070050u, 0x0000006fu, 0x000004e0u, 0x000004dfu, 0x000004dfu, 0x000004dfu, 0x000004dfu, 0x00050095u, + 0x00000076u, 0x000004e1u, 0x000004ddu, 0x000004e0u, 0x00050051u, 0x0000006fu, 0x000004e2u, 0x000004e1u, + 0x00000001u, 0x00050051u, 0x0000006fu, 0x000004e3u, 0x000004e1u, 0x00000000u, 0x0004007cu, 0x00000007u, + 0x000004e4u, 0x000004e3u, 0x0004007cu, 0x00000007u, 0x000004e6u, 0x000004e2u, 0x00050080u, 0x00000007u, + 0x000004e8u, 0x000004dbu, 0x000004e6u, 0x00050084u, 0x00000006u, 0x0000047bu, 0x00000296u, 0x0000039cu, + 0x00070050u, 0x00000007u, 0x000004f2u, 0x000003a6u, 0x000003a6u, 0x000003a6u, 0x000003a6u, 0x00050098u, + 0x0000006au, 0x000004f3u, 0x0000046bu, 0x000004f2u, 0x00050051u, 0x00000007u, 0x000004f4u, 0x000004f3u, + 0x00000000u, 0x00050051u, 0x00000007u, 0x000004f5u, 0x000004f3u, 0x00000001u, 0x0004007cu, 0x0000006fu, + 0x000004f7u, 0x000004f4u, 0x0004007cu, 0x00000035u, 0x000004f9u, 0x0000047bu, 0x00070050u, 0x0000006fu, + 0x000004fau, 0x000004f9u, 0x000004f9u, 0x000004f9u, 0x000004f9u, 0x00050095u, 0x00000076u, 0x000004fbu, + 0x000004f7u, 0x000004fau, 0x00050051u, 0x0000006fu, 0x000004fcu, 0x000004fbu, 0x00000001u, 0x00050051u, + 0x0000006fu, 0x000004fdu, 0x000004fbu, 0x00000000u, 0x0004007cu, 0x00000007u, 0x000004feu, 0x000004fdu, + 0x0004007cu, 0x00000007u, 0x00000500u, 0x000004fcu, 0x00050080u, 0x00000007u, 0x00000502u, 0x000004f5u, + 0x00000500u, 0x00070050u, 0x00000007u, 0x00000482u, 0x000003fcu, 0x000003fcu, 0x000003fcu, 0x000003fcu, + 0x00050082u, 0x00000007u, 0x00000483u, 0x00000406u, 0x00000482u, 0x00050084u, 0x00000006u, 0x00000487u, + 0x00000296u, 0x0000039eu, 0x00070050u, 0x00000007u, 0x0000050cu, 0x000003a8u, 0x000003a8u, 0x000003a8u, + 0x000003a8u, 0x00050098u, 0x0000006au, 0x0000050du, 0x00000483u, 0x0000050cu, 0x00050051u, 0x00000007u, + 0x0000050eu, 0x0000050du, 0x00000000u, 0x00050051u, 0x00000007u, 0x0000050fu, 0x0000050du, 0x00000001u, + 0x0004007cu, 0x0000006fu, 0x00000511u, 0x0000050eu, 0x0004007cu, 0x00000035u, 0x00000513u, 0x00000487u, + 0x00070050u, 0x0000006fu, 0x00000514u, 0x00000513u, 0x00000513u, 0x00000513u, 0x00000513u, 0x00050095u, + 0x00000076u, 0x00000515u, 0x00000511u, 0x00000514u, 0x00050051u, 0x0000006fu, 0x00000516u, 0x00000515u, + 0x00000001u, 0x00050051u, 0x0000006fu, 0x00000517u, 0x00000515u, 0x00000000u, 0x0004007cu, 0x00000007u, + 0x00000518u, 0x00000517u, 0x0004007cu, 0x00000007u, 0x0000051au, 0x00000516u, 0x00050080u, 0x00000007u, + 0x0000051cu, 0x0000050fu, 0x0000051au, 0x00050084u, 0x00000006u, 0x00000493u, 0x00000296u, 0x000003fau, + 0x00070050u, 0x00000007u, 0x00000494u, 0x00000493u, 0x00000493u, 0x00000493u, 0x00000493u, 0x000500b1u, + 0x000000dbu, 0x00000495u, 0x00000406u, 0x00000494u, 0x000600a9u, 0x00000007u, 0x00000496u, 0x00000495u, + 0x000004feu, 0x00000518u, 0x000600a9u, 0x00000007u, 0x000004a1u, 0x00000495u, 0x00000502u, 0x0000051cu, + 0x000500adu, 0x000000dbu, 0x000004a4u, 0x000004e8u, 0x000000edu, 0x000600a9u, 0x00000007u, 0x000004a5u, + 0x000004a4u, 0x000000ebu, 0x000004e4u, 0x000500b1u, 0x000000dbu, 0x000004a8u, 0x000004e8u, 0x000000f5u, + 0x000600a9u, 0x00000007u, 0x000004a9u, 0x000004a8u, 0x000000f2u, 0x000004a5u, 0x000500adu, 0x000000dbu, + 0x000004acu, 0x000004a1u, 0x000000edu, 0x000600a9u, 0x00000007u, 0x000004adu, 0x000004acu, 0x000000ebu, + 0x00000496u, 0x000500b1u, 0x000000dbu, 0x000004b0u, 0x000004a1u, 0x000000f5u, 0x000600a9u, 0x00000007u, + 0x000004b1u, 0x000004b0u, 0x000000f2u, 0x000004adu, 0x000500c3u, 0x00000007u, 0x00000523u, 0x000004a9u, + 0x00000811u, 0x000500c3u, 0x00000007u, 0x00000528u, 0x000004b1u, 0x00000811u, 0x00070050u, 0x000000dbu, + 0x00000814u, 0x000003f5u, 0x000003f5u, 0x000003f5u, 0x000003f5u, 0x000600a9u, 0x00000007u, 0x00000815u, + 0x00000814u, 0x00000528u, 0x00000523u, 0x000600a9u, 0x00000007u, 0x00000817u, 0x00000814u, 0x00000523u, + 0x00000528u, 0x0006000cu, 0x00000007u, 0x000004bfu, 0x00000001u, 0x00000005u, 0x00000817u, 0x0006000cu, + 0x00000007u, 0x000004c1u, 0x00000001u, 0x00000005u, 0x00000815u, 0x0007000cu, 0x00000007u, 0x000004c2u, + 0x00000001u, 0x0000002au, 0x000004bfu, 0x000004c1u, 0x0007004fu, 0x00000022u, 0x0000052du, 0x000004c2u, + 0x000004c2u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x0000052fu, 0x000004c2u, 0x000004c2u, + 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x00000530u, 0x00000001u, 0x0000002au, 0x0000052du, + 0x0000052fu, 0x00050051u, 0x00000006u, 0x00000532u, 0x00000530u, 0x00000000u, 0x00050051u, 0x00000006u, + 0x00000534u, 0x00000530u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000535u, 0x00000001u, 0x0000002au, + 0x00000532u, 0x00000534u, 0x00050084u, 0x00000006u, 0x000004c6u, 0x0000011bu, 0x00000296u, 0x000500b3u, + 0x00000020u, 0x000004c7u, 0x00000535u, 0x000004c6u, 0x000300f7u, 0x000004cfu, 0x00000000u, 0x000400fau, + 0x000004c7u, 0x000004c8u, 0x000004ceu, 0x000200f8u, 0x000004c8u, 0x0007004fu, 0x00000022u, 0x0000053au, + 0x00000817u, 0x00000817u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x0000053cu, 0x00000817u, + 0x00000817u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x0000053du, 0x00000001u, 0x00000027u, + 0x0000053au, 0x0000053cu, 0x00050051u, 0x00000006u, 0x0000053fu, 0x0000053du, 0x00000000u, 0x00050051u, + 0x00000006u, 0x00000541u, 0x0000053du, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000542u, 0x00000001u, + 0x00000027u, 0x0000053fu, 0x00000541u, 0x0007004fu, 0x00000022u, 0x00000547u, 0x00000815u, 0x00000815u, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x00000549u, 0x00000815u, 0x00000815u, 0x00000002u, + 0x00000003u, 0x0007000cu, 0x00000022u, 0x0000054au, 0x00000001u, 0x0000002au, 0x00000547u, 0x00000549u, + 0x00050051u, 0x00000006u, 0x0000054cu, 0x0000054au, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000054eu, + 0x0000054au, 0x00000001u, 0x0007000cu, 0x00000006u, 0x0000054fu, 0x00000001u, 0x0000002au, 0x0000054cu, + 0x0000054eu, 0x00050050u, 0x00000022u, 0x000004cdu, 0x00000542u, 0x0000054fu, 0x000200f9u, 0x000004cfu, + 0x000200f8u, 0x000004ceu, 0x000200f9u, 0x000004cfu, 0x000200f8u, 0x000004cfu, 0x000700f5u, 0x00000022u, + 0x000007e3u, 0x000004cdu, 0x000004c8u, 0x0000012au, 0x000004ceu, 0x000500c7u, 0x00000006u, 0x00000410u, + 0x000003f3u, 0x0000018du, 0x000500abu, 0x00000020u, 0x00000411u, 0x00000410u, 0x0000009du, 0x000600a9u, + 0x00000006u, 0x00000412u, 0x00000411u, 0x0000008cu, 0x00000084u, 0x000500c3u, 0x00000006u, 0x00000416u, + 0x0000038cu, 0x000000c5u, 0x00050084u, 0x00000006u, 0x00000417u, 0x00000296u, 0x00000416u, 0x00050080u, + 0x00000006u, 0x0000041cu, 0x00000390u, 0x00000412u, 0x000500c3u, 0x00000006u, 0x0000041du, 0x0000041cu, + 0x000000c5u, 0x00050084u, 0x00000006u, 0x0000041eu, 0x00000296u, 0x0000041du, 0x00050082u, 0x00000006u, + 0x0000041fu, 0x0000041eu, 0x000000b1u, 0x00050050u, 0x00000022u, 0x00000420u, 0x00000417u, 0x0000041fu, + 0x0007004fu, 0x00000022u, 0x00000423u, 0x00000420u, 0x00000420u, 0x00000000u, 0x00000000u, 0x0007004fu, + 0x00000022u, 0x00000425u, 0x00000420u, 0x00000420u, 0x00000001u, 0x00000001u, 0x0008000cu, 0x00000022u, + 0x00000426u, 0x00000001u, 0x0000002du, 0x000007e3u, 0x00000423u, 0x00000425u, 0x00050051u, 0x00000006u, + 0x00000428u, 0x00000426u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000042au, 0x0000024fu, 0x00000000u, + 0x0007000cu, 0x00000006u, 0x0000042bu, 0x00000001u, 0x0000002au, 0x00000428u, 0x0000042au, 0x00050051u, + 0x00000006u, 0x0000042eu, 0x00000426u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000430u, 0x00000269u, + 0x00000000u, 0x0007000cu, 0x00000006u, 0x00000431u, 0x00000001u, 0x00000027u, 0x0000042eu, 0x00000430u, + 0x000500b3u, 0x00000020u, 0x00000437u, 0x0000042bu, 0x00000431u, 0x000200f9u, 0x00000438u, 0x000200f8u, + 0x00000438u, 0x000700f5u, 0x00000020u, 0x000007e8u, 0x00000160u, 0x000003eeu, 0x00000437u, 0x000004cfu, + 0x000200f9u, 0x0000028du, 0x000200f8u, 0x0000028du, 0x000700f5u, 0x00000020u, 0x000007eau, 0x00000160u, + 0x00000280u, 0x000007e8u, 0x00000438u, 0x000200f9u, 0x00000281u, 0x000200f8u, 0x00000281u, 0x000700f5u, + 0x00000020u, 0x000007e9u, 0x00000160u, 0x00000005u, 0x000007eau, 0x0000028du, 0x00050153u, 0x0000006fu, + 0x000002a3u, 0x000001edu, 0x000007e9u, 0x00050051u, 0x00000035u, 0x000002a4u, 0x000002a3u, 0x00000000u, + 0x000200f9u, 0x000002a6u, 0x000200f8u, 0x000002a6u, 0x000700f5u, 0x00000035u, 0x000007ecu, 0x0000004fu, + 0x00000281u, 0x0000080au, 0x000002a9u, 0x000700f5u, 0x00000035u, 0x000007ebu, 0x000002a4u, 0x00000281u, + 0x000002b4u, 0x000002a9u, 0x000500abu, 0x00000020u, 0x000002acu, 0x000007ebu, 0x0000004fu, 0x000400f6u, + 0x000002a8u, 0x000002a9u, 0x00000000u, 0x000400fau, 0x000002acu, 0x000002a7u, 0x000002a8u, 0x000200f8u, + 0x000002a7u, 0x0006000cu, 0x00000006u, 0x000002afu, 0x00000001u, 0x00000049u, 0x000007ebu, 0x000500c4u, + 0x00000035u, 0x000002b1u, 0x00000052u, 0x000002afu, 0x000400c8u, 0x00000035u, 0x000002b2u, 0x000002b1u, + 0x000500c7u, 0x00000035u, 0x000002b4u, 0x000007ebu, 0x000002b2u, 0x00050084u, 0x00000006u, 0x000002b7u, + 0x00000216u, 0x0000027eu, 0x00050080u, 0x00000006u, 0x000002b9u, 0x000002b7u, 0x000002afu, 0x0004007cu, + 0x00000035u, 0x000002bau, 0x000002b9u, 0x00060041u, 0x000001e3u, 0x00000554u, 0x000001e1u, 0x0000009du, + 0x000002bau, 0x0004003du, 0x00000007u, 0x00000555u, 0x00000554u, 0x00050051u, 0x00000006u, 0x00000557u, + 0x00000555u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000559u, 0x00000555u, 0x00000001u, 0x00050051u, + 0x00000006u, 0x0000055bu, 0x00000555u, 0x00000002u, 0x00050051u, 0x00000006u, 0x0000055du, 0x00000555u, + 0x00000003u, 0x00060041u, 0x000001bfu, 0x00000563u, 0x000001bdu, 0x0000009du, 0x000002bau, 0x0004003du, + 0x000001b9u, 0x00000564u, 0x00000563u, 0x00050051u, 0x00000006u, 0x00000565u, 0x00000564u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00000567u, 0x00000564u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000569u, + 0x00000564u, 0x00000002u, 0x00050051u, 0x0000001cu, 0x0000056bu, 0x00000564u, 0x00000003u, 0x00050051u, + 0x0000001cu, 0x0000056du, 0x00000564u, 0x00000004u, 0x00050051u, 0x00000006u, 0x0000056fu, 0x00000564u, + 0x00000005u, 0x00050051u, 0x00000006u, 0x00000571u, 0x00000564u, 0x00000006u, 0x00050051u, 0x00000006u, + 0x00000573u, 0x00000564u, 0x00000007u, 0x00050051u, 0x0000001cu, 0x00000575u, 0x00000564u, 0x00000008u, + 0x00050051u, 0x0000001du, 0x00000577u, 0x00000564u, 0x00000009u, 0x000300f7u, 0x00000603u, 0x00000000u, + 0x000300fbu, 0x0000004fu, 0x0000058bu, 0x000200f8u, 0x0000058bu, 0x00050051u, 0x00000006u, 0x0000058du, + 0x0000026du, 0x00000001u, 0x000500c3u, 0x00000006u, 0x00000591u, 0x00000559u, 0x000000c5u, 0x00050084u, + 0x00000006u, 0x00000592u, 0x00000296u, 0x00000591u, 0x0007000cu, 0x00000006u, 0x00000593u, 0x00000001u, + 0x0000002au, 0x0000058du, 0x00000592u, 0x00050051u, 0x00000006u, 0x00000596u, 0x00000277u, 0x00000001u, + 0x00050080u, 0x00000006u, 0x0000059au, 0x0000055du, 0x00000084u, 0x000500c3u, 0x00000006u, 0x0000059bu, + 0x0000059au, 0x000000c5u, 0x00050084u, 0x00000006u, 0x0000059cu, 0x00000296u, 0x0000059bu, 0x00050082u, + 0x00000006u, 0x0000059du, 0x0000059cu, 0x000000b1u, 0x0007000cu, 0x00000006u, 0x0000059eu, 0x00000001u, + 0x00000027u, 0x00000596u, 0x0000059du, 0x00050084u, 0x00000006u, 0x000005a2u, 0x00000593u, 0x0000008cu, + 0x00050084u, 0x00000006u, 0x000005a5u, 0x0000059eu, 0x0000008cu, 0x00050080u, 0x00000006u, 0x000005a6u, + 0x000005a5u, 0x00000084u, 0x00040072u, 0x00000006u, 0x000005abu, 0x0000056bu, 0x00050084u, 0x00000006u, + 0x000005acu, 0x00000296u, 0x000005abu, 0x0007000cu, 0x00000006u, 0x000005adu, 0x00000001u, 0x0000002au, + 0x000005a2u, 0x000005acu, 0x00040072u, 0x00000006u, 0x000005b2u, 0x00000575u, 0x00050084u, 0x00000006u, + 0x000005b3u, 0x00000296u, 0x000005b2u, 0x00050082u, 0x00000006u, 0x000005b4u, 0x000005b3u, 0x000000b1u, + 0x0007000cu, 0x00000006u, 0x000005b5u, 0x00000001u, 0x00000027u, 0x000005a6u, 0x000005b4u, 0x000500b1u, + 0x00000020u, 0x000005b8u, 0x000005b5u, 0x000005adu, 0x000300f7u, 0x000005bau, 0x00000000u, 0x000400fau, + 0x000005b8u, 0x000005b9u, 0x000005bau, 0x000200f8u, 0x000005b9u, 0x000200f9u, 0x00000603u, 0x000200f8u, + 0x000005bau, 0x00040071u, 0x00000035u, 0x000005bdu, 0x00000577u, 0x0004007cu, 0x00000006u, 0x000005beu, + 0x000005bdu, 0x000500c7u, 0x00000006u, 0x000005bfu, 0x000005beu, 0x000000b1u, 0x000500abu, 0x00000020u, + 0x000005c0u, 0x000005bfu, 0x0000009du, 0x00040072u, 0x00000006u, 0x000005c5u, 0x0000056du, 0x00050084u, + 0x00000006u, 0x000005c7u, 0x000005c5u, 0x00000296u, 0x00050050u, 0x00000022u, 0x000005c8u, 0x000005c7u, + 0x000005c7u, 0x00050080u, 0x00000022u, 0x000005c9u, 0x000005c8u, 0x00000173u, 0x00050050u, 0x00000022u, + 0x000005cbu, 0x000005adu, 0x000005adu, 0x00050050u, 0x00000022u, 0x000005cdu, 0x000005b5u, 0x000005b5u, + 0x0008000cu, 0x00000022u, 0x000005ceu, 0x00000001u, 0x0000002du, 0x000005c9u, 0x000005cbu, 0x000005cdu, + 0x00050051u, 0x00000006u, 0x000005cfu, 0x000005ceu, 0x00000000u, 0x00050051u, 0x00000006u, 0x000005d0u, + 0x000005ceu, 0x00000001u, 0x00070050u, 0x00000007u, 0x000005d1u, 0x000005adu, 0x000005b5u, 0x000005cfu, + 0x000005d0u, 0x000500c7u, 0x00000006u, 0x00000629u, 0x000005abu, 0x00000089u, 0x00050084u, 0x00000006u, + 0x0000062fu, 0x00000629u, 0x00000296u, 0x00070050u, 0x00000007u, 0x00000635u, 0x0000062fu, 0x0000062fu, + 0x0000062fu, 0x0000062fu, 0x00050082u, 0x00000007u, 0x00000636u, 0x000005d1u, 0x00000635u, 0x00050084u, + 0x00000006u, 0x0000063au, 0x00000296u, 0x00000565u, 0x00070050u, 0x00000007u, 0x000006a3u, 0x0000056fu, + 0x0000056fu, 0x0000056fu, 0x0000056fu, 0x00050098u, 0x0000006au, 0x000006a4u, 0x00000636u, 0x000006a3u, + 0x00050051u, 0x00000007u, 0x000006a5u, 0x000006a4u, 0x00000000u, 0x00050051u, 0x00000007u, 0x000006a6u, + 0x000006a4u, 0x00000001u, 0x0004007cu, 0x0000006fu, 0x000006a8u, 0x000006a5u, 0x0004007cu, 0x00000035u, + 0x000006aau, 0x0000063au, 0x00070050u, 0x0000006fu, 0x000006abu, 0x000006aau, 0x000006aau, 0x000006aau, + 0x000006aau, 0x00050095u, 0x00000076u, 0x000006acu, 0x000006a8u, 0x000006abu, 0x00050051u, 0x0000006fu, + 0x000006adu, 0x000006acu, 0x00000001u, 0x00050051u, 0x0000006fu, 0x000006aeu, 0x000006acu, 0x00000000u, + 0x0004007cu, 0x00000007u, 0x000006afu, 0x000006aeu, 0x0004007cu, 0x00000007u, 0x000006b1u, 0x000006adu, + 0x00050080u, 0x00000007u, 0x000006b3u, 0x000006a6u, 0x000006b1u, 0x00050084u, 0x00000006u, 0x00000646u, + 0x00000296u, 0x00000567u, 0x00070050u, 0x00000007u, 0x000006bdu, 0x00000571u, 0x00000571u, 0x00000571u, + 0x00000571u, 0x00050098u, 0x0000006au, 0x000006beu, 0x00000636u, 0x000006bdu, 0x00050051u, 0x00000007u, + 0x000006bfu, 0x000006beu, 0x00000000u, 0x00050051u, 0x00000007u, 0x000006c0u, 0x000006beu, 0x00000001u, + 0x0004007cu, 0x0000006fu, 0x000006c2u, 0x000006bfu, 0x0004007cu, 0x00000035u, 0x000006c4u, 0x00000646u, + 0x00070050u, 0x0000006fu, 0x000006c5u, 0x000006c4u, 0x000006c4u, 0x000006c4u, 0x000006c4u, 0x00050095u, + 0x00000076u, 0x000006c6u, 0x000006c2u, 0x000006c5u, 0x00050051u, 0x0000006fu, 0x000006c7u, 0x000006c6u, + 0x00000001u, 0x00050051u, 0x0000006fu, 0x000006c8u, 0x000006c6u, 0x00000000u, 0x0004007cu, 0x00000007u, + 0x000006c9u, 0x000006c8u, 0x0004007cu, 0x00000007u, 0x000006cbu, 0x000006c7u, 0x00050080u, 0x00000007u, + 0x000006cdu, 0x000006c0u, 0x000006cbu, 0x00070050u, 0x00000007u, 0x0000064du, 0x000005c7u, 0x000005c7u, + 0x000005c7u, 0x000005c7u, 0x00050082u, 0x00000007u, 0x0000064eu, 0x000005d1u, 0x0000064du, 0x00050084u, + 0x00000006u, 0x00000652u, 0x00000296u, 0x00000569u, 0x00070050u, 0x00000007u, 0x000006d7u, 0x00000573u, + 0x00000573u, 0x00000573u, 0x00000573u, 0x00050098u, 0x0000006au, 0x000006d8u, 0x0000064eu, 0x000006d7u, + 0x00050051u, 0x00000007u, 0x000006d9u, 0x000006d8u, 0x00000000u, 0x00050051u, 0x00000007u, 0x000006dau, + 0x000006d8u, 0x00000001u, 0x0004007cu, 0x0000006fu, 0x000006dcu, 0x000006d9u, 0x0004007cu, 0x00000035u, + 0x000006deu, 0x00000652u, 0x00070050u, 0x0000006fu, 0x000006dfu, 0x000006deu, 0x000006deu, 0x000006deu, + 0x000006deu, 0x00050095u, 0x00000076u, 0x000006e0u, 0x000006dcu, 0x000006dfu, 0x00050051u, 0x0000006fu, + 0x000006e1u, 0x000006e0u, 0x00000001u, 0x00050051u, 0x0000006fu, 0x000006e2u, 0x000006e0u, 0x00000000u, + 0x0004007cu, 0x00000007u, 0x000006e3u, 0x000006e2u, 0x0004007cu, 0x00000007u, 0x000006e5u, 0x000006e1u, + 0x00050080u, 0x00000007u, 0x000006e7u, 0x000006dau, 0x000006e5u, 0x00050084u, 0x00000006u, 0x0000065eu, + 0x00000296u, 0x000005c5u, 0x00070050u, 0x00000007u, 0x0000065fu, 0x0000065eu, 0x0000065eu, 0x0000065eu, + 0x0000065eu, 0x000500b1u, 0x000000dbu, 0x00000660u, 0x000005d1u, 0x0000065fu, 0x000600a9u, 0x00000007u, + 0x00000661u, 0x00000660u, 0x000006c9u, 0x000006e3u, 0x000600a9u, 0x00000007u, 0x0000066cu, 0x00000660u, + 0x000006cdu, 0x000006e7u, 0x000500adu, 0x000000dbu, 0x0000066fu, 0x000006b3u, 0x000000edu, 0x000600a9u, + 0x00000007u, 0x00000670u, 0x0000066fu, 0x000000ebu, 0x000006afu, 0x000500b1u, 0x000000dbu, 0x00000673u, + 0x000006b3u, 0x000000f5u, 0x000600a9u, 0x00000007u, 0x00000674u, 0x00000673u, 0x000000f2u, 0x00000670u, + 0x000500adu, 0x000000dbu, 0x00000677u, 0x0000066cu, 0x000000edu, 0x000600a9u, 0x00000007u, 0x00000678u, + 0x00000677u, 0x000000ebu, 0x00000661u, 0x000500b1u, 0x000000dbu, 0x0000067bu, 0x0000066cu, 0x000000f5u, + 0x000600a9u, 0x00000007u, 0x0000067cu, 0x0000067bu, 0x000000f2u, 0x00000678u, 0x000500c3u, 0x00000007u, + 0x000006eeu, 0x00000674u, 0x00000811u, 0x000500c3u, 0x00000007u, 0x000006f3u, 0x0000067cu, 0x00000811u, + 0x00070050u, 0x000000dbu, 0x00000818u, 0x000005c0u, 0x000005c0u, 0x000005c0u, 0x000005c0u, 0x000600a9u, + 0x00000007u, 0x00000819u, 0x00000818u, 0x000006f3u, 0x000006eeu, 0x000600a9u, 0x00000007u, 0x0000081bu, + 0x00000818u, 0x000006eeu, 0x000006f3u, 0x0006000cu, 0x00000007u, 0x0000068au, 0x00000001u, 0x00000005u, + 0x0000081bu, 0x0006000cu, 0x00000007u, 0x0000068cu, 0x00000001u, 0x00000005u, 0x00000819u, 0x0007000cu, + 0x00000007u, 0x0000068du, 0x00000001u, 0x0000002au, 0x0000068au, 0x0000068cu, 0x0007004fu, 0x00000022u, + 0x000006f8u, 0x0000068du, 0x0000068du, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x000006fau, + 0x0000068du, 0x0000068du, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x000006fbu, 0x00000001u, + 0x0000002au, 0x000006f8u, 0x000006fau, 0x00050051u, 0x00000006u, 0x000006fdu, 0x000006fbu, 0x00000000u, + 0x00050051u, 0x00000006u, 0x000006ffu, 0x000006fbu, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000700u, + 0x00000001u, 0x0000002au, 0x000006fdu, 0x000006ffu, 0x00050084u, 0x00000006u, 0x00000691u, 0x0000011bu, + 0x00000296u, 0x000500b3u, 0x00000020u, 0x00000692u, 0x00000700u, 0x00000691u, 0x000300f7u, 0x0000069au, + 0x00000000u, 0x000400fau, 0x00000692u, 0x00000693u, 0x00000699u, 0x000200f8u, 0x00000693u, 0x0007004fu, + 0x00000022u, 0x00000705u, 0x0000081bu, 0x0000081bu, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, + 0x00000707u, 0x0000081bu, 0x0000081bu, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x00000708u, + 0x00000001u, 0x00000027u, 0x00000705u, 0x00000707u, 0x00050051u, 0x00000006u, 0x0000070au, 0x00000708u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x0000070cu, 0x00000708u, 0x00000001u, 0x0007000cu, 0x00000006u, + 0x0000070du, 0x00000001u, 0x00000027u, 0x0000070au, 0x0000070cu, 0x0007004fu, 0x00000022u, 0x00000712u, + 0x00000819u, 0x00000819u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x00000714u, 0x00000819u, + 0x00000819u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x00000715u, 0x00000001u, 0x0000002au, + 0x00000712u, 0x00000714u, 0x00050051u, 0x00000006u, 0x00000717u, 0x00000715u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x00000719u, 0x00000715u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x0000071au, 0x00000001u, + 0x0000002au, 0x00000717u, 0x00000719u, 0x00050050u, 0x00000022u, 0x00000698u, 0x0000070du, 0x0000071au, + 0x000200f9u, 0x0000069au, 0x000200f8u, 0x00000699u, 0x000200f9u, 0x0000069au, 0x000200f8u, 0x0000069au, + 0x000700f5u, 0x00000022u, 0x000007fdu, 0x00000698u, 0x00000693u, 0x0000012au, 0x00000699u, 0x000500c7u, + 0x00000006u, 0x000005dbu, 0x000005beu, 0x0000018du, 0x000500abu, 0x00000020u, 0x000005dcu, 0x000005dbu, + 0x0000009du, 0x000600a9u, 0x00000006u, 0x000005ddu, 0x000005dcu, 0x0000008cu, 0x00000084u, 0x000500c3u, + 0x00000006u, 0x000005e1u, 0x00000557u, 0x000000c5u, 0x00050084u, 0x00000006u, 0x000005e2u, 0x00000296u, + 0x000005e1u, 0x00050080u, 0x00000006u, 0x000005e7u, 0x0000055bu, 0x000005ddu, 0x000500c3u, 0x00000006u, + 0x000005e8u, 0x000005e7u, 0x000000c5u, 0x00050084u, 0x00000006u, 0x000005e9u, 0x00000296u, 0x000005e8u, + 0x00050082u, 0x00000006u, 0x000005eau, 0x000005e9u, 0x000000b1u, 0x00050050u, 0x00000022u, 0x000005ebu, + 0x000005e2u, 0x000005eau, 0x0007004fu, 0x00000022u, 0x000005eeu, 0x000005ebu, 0x000005ebu, 0x00000000u, + 0x00000000u, 0x0007004fu, 0x00000022u, 0x000005f0u, 0x000005ebu, 0x000005ebu, 0x00000001u, 0x00000001u, + 0x0008000cu, 0x00000022u, 0x000005f1u, 0x00000001u, 0x0000002du, 0x000007fdu, 0x000005eeu, 0x000005f0u, + 0x00050051u, 0x00000006u, 0x000005f3u, 0x000005f1u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000005f5u, + 0x0000026du, 0x00000000u, 0x0007000cu, 0x00000006u, 0x000005f6u, 0x00000001u, 0x0000002au, 0x000005f3u, + 0x000005f5u, 0x00050051u, 0x00000006u, 0x000005f9u, 0x000005f1u, 0x00000001u, 0x00050051u, 0x00000006u, + 0x000005fbu, 0x00000277u, 0x00000000u, 0x0007000cu, 0x00000006u, 0x000005fcu, 0x00000001u, 0x00000027u, + 0x000005f9u, 0x000005fbu, 0x000500b3u, 0x00000020u, 0x00000602u, 0x000005f6u, 0x000005fcu, 0x000200f9u, + 0x00000603u, 0x000200f8u, 0x00000603u, 0x000700f5u, 0x00000020u, 0x00000802u, 0x00000160u, 0x000005b9u, + 0x00000602u, 0x0000069au, 0x000300f7u, 0x000002ceu, 0x00000000u, 0x000400fau, 0x00000802u, 0x000002cdu, + 0x000002ceu, 0x000200f8u, 0x000002cdu, 0x000500c5u, 0x00000035u, 0x000002d2u, 0x000007ecu, 0x000002b1u, + 0x000200f9u, 0x000002ceu, 0x000200f8u, 0x000002ceu, 0x000700f5u, 0x00000035u, 0x0000080au, 0x000007ecu, + 0x00000603u, 0x000002d2u, 0x000002cdu, 0x000200f9u, 0x000002a9u, 0x000200f8u, 0x000002a9u, 0x000200f9u, + 0x000002a6u, 0x000200f8u, 0x000002a8u, 0x00050084u, 0x00000006u, 0x000002dau, 0x00000248u, 0x000002d9u, + 0x00050080u, 0x00000006u, 0x000002dcu, 0x000002dau, 0x00000216u, 0x00060041u, 0x00000202u, 0x000002deu, + 0x000002d6u, 0x0000009du, 0x000002dcu, 0x0003003eu, 0x000002deu, 0x000007ecu, 0x000500abu, 0x00000020u, + 0x000002e0u, 0x000007ecu, 0x0000004fu, 0x000300f7u, 0x000002e2u, 0x00000000u, 0x000400fau, 0x000002e0u, + 0x000002e1u, 0x000002ecu, 0x000200f8u, 0x000002e1u, 0x00060041u, 0x00000202u, 0x000002e8u, 0x000002e6u, + 0x0000009du, 0x00000248u, 0x000500c4u, 0x00000035u, 0x000002eau, 0x00000052u, 0x00000216u, 0x000700f1u, + 0x00000035u, 0x000002ebu, 0x000002e8u, 0x00000052u, 0x0000004fu, 0x000002eau, 0x000200f9u, 0x000002e2u, + 0x000200f8u, 0x000002ecu, 0x00060041u, 0x00000202u, 0x000002eeu, 0x000002e6u, 0x0000009du, 0x00000248u, + 0x000500c4u, 0x00000035u, 0x000002f0u, 0x00000052u, 0x00000216u, 0x000400c8u, 0x00000035u, 0x000002f1u, + 0x000002f0u, 0x000700f0u, 0x00000035u, 0x000002f2u, 0x000002eeu, 0x00000052u, 0x0000004fu, 0x000002f1u, + 0x000200f9u, 0x000002e2u, 0x000200f8u, 0x000002e2u, 0x000400cdu, 0x00000006u, 0x000002f5u, 0x000007ecu, + 0x0004007cu, 0x00000035u, 0x000002f6u, 0x000002f5u, 0x000500abu, 0x00000020u, 0x000002f9u, 0x000002f6u, + 0x0000004fu, 0x0005014fu, 0x00000020u, 0x000002fau, 0x000001edu, 0x000002f9u, 0x000300f7u, 0x000002fcu, + 0x00000000u, 0x000400fau, 0x000002fau, 0x000002fbu, 0x000002fcu, 0x000200f8u, 0x000002fbu, 0x0006015du, + 0x00000035u, 0x000002ffu, 0x000001edu, 0x00000000u, 0x000002f6u, 0x0004014du, 0x00000020u, 0x00000300u, + 0x000001edu, 0x000300f7u, 0x00000302u, 0x00000000u, 0x000400fau, 0x00000300u, 0x00000301u, 0x00000302u, + 0x000200f8u, 0x00000301u, 0x000500abu, 0x00000020u, 0x00000304u, 0x000002ffu, 0x0000004fu, 0x000300f7u, + 0x00000306u, 0x00000000u, 0x000400fau, 0x00000304u, 0x00000305u, 0x00000306u, 0x000200f8u, 0x00000305u, + 0x00070041u, 0x00000202u, 0x00000307u, 0x00000200u, 0x0000009du, 0x0000009du, 0x000001edu, 0x000700eau, + 0x00000035u, 0x00000309u, 0x00000307u, 0x00000052u, 0x0000004fu, 0x000002ffu, 0x000200f9u, 0x00000306u, + 0x000200f8u, 0x00000306u, 0x000700f5u, 0x00000035u, 0x000007efu, 0x0000004fu, 0x00000301u, 0x00000309u, + 0x00000305u, 0x000200f9u, 0x00000302u, 0x000200f8u, 0x00000302u, 0x000700f5u, 0x00000035u, 0x000007eeu, + 0x0000004fu, 0x000002fbu, 0x000007efu, 0x00000306u, 0x00050152u, 0x00000035u, 0x0000030bu, 0x000001edu, + 0x000007eeu, 0x0006015du, 0x00000035u, 0x0000030du, 0x000001edu, 0x00000001u, 0x000002f6u, 0x00050082u, + 0x00000035u, 0x0000030fu, 0x0000030du, 0x000002f6u, 0x00050080u, 0x00000035u, 0x00000311u, 0x0000030bu, + 0x0000030fu, 0x000200f9u, 0x000002fcu, 0x000200f8u, 0x000002fcu, 0x000700f5u, 0x00000035u, 0x000007f0u, + 0x0000004fu, 0x000002e2u, 0x00000311u, 0x00000302u, 0x000300f7u, 0x00000315u, 0x00000000u, 0x000400fau, + 0x000002f9u, 0x00000314u, 0x00000315u, 0x000200f8u, 0x00000314u, 0x00060041u, 0x00000202u, 0x0000031fu, + 0x00000319u, 0x0000009du, 0x000002dcu, 0x0003003eu, 0x0000031fu, 0x000007f0u, 0x000200f9u, 0x00000315u, + 0x000200f8u, 0x00000315u, 0x00060168u, 0x00000035u, 0x00000322u, 0x000001edu, 0x00000000u, 0x000007ecu, + 0x000200f9u, 0x00000323u, 0x000200f8u, 0x00000323u, 0x000700f5u, 0x00000035u, 0x000007f9u, 0x000007f0u, + 0x00000315u, 0x0000080fu, 0x00000326u, 0x000700f5u, 0x00000035u, 0x000007f5u, 0x00000322u, 0x00000315u, + 0x00000331u, 0x00000326u, 0x000500abu, 0x00000020u, 0x00000329u, 0x000007f5u, 0x0000004fu, 0x000400f6u, + 0x00000325u, 0x00000326u, 0x00000000u, 0x000400fau, 0x00000329u, 0x00000324u, 0x00000325u, 0x000200f8u, + 0x00000324u, 0x0006000cu, 0x00000006u, 0x0000032cu, 0x00000001u, 0x00000049u, 0x000007f5u, 0x000500c4u, + 0x00000035u, 0x0000032eu, 0x00000052u, 0x0000032cu, 0x000400c8u, 0x00000035u, 0x0000032fu, 0x0000032eu, + 0x000500c7u, 0x00000035u, 0x00000331u, 0x000007f5u, 0x0000032fu, 0x00050084u, 0x00000006u, 0x00000334u, + 0x00000216u, 0x0000027eu, 0x00050080u, 0x00000006u, 0x00000336u, 0x00000334u, 0x0000032cu, 0x000500c7u, + 0x00000035u, 0x0000033au, 0x000007ecu, 0x0000032eu, 0x000500abu, 0x00000020u, 0x0000033bu, 0x0000033au, + 0x0000004fu, 0x000300f7u, 0x0000033du, 0x00000000u, 0x000400fau, 0x0000033bu, 0x0000033cu, 0x0000033du, + 0x000200f8u, 0x0000033cu, 0x00080041u, 0x00000348u, 0x00000349u, 0x00000346u, 0x0000009du, 0x00000336u, + 0x0000009du, 0x0000004fu, 0x0004003du, 0x0000001du, 0x0000034au, 0x00000349u, 0x00040071u, 0x00000035u, + 0x0000034bu, 0x0000034au, 0x00050153u, 0x0000006fu, 0x00000720u, 0x000001edu, 0x000001f4u, 0x00060156u, + 0x00000035u, 0x00000722u, 0x000001edu, 0x00000000u, 0x00000720u, 0x0004014du, 0x00000020u, 0x00000723u, + 0x000001edu, 0x000300f7u, 0x00000729u, 0x00000000u, 0x000400fau, 0x00000723u, 0x00000724u, 0x00000729u, + 0x000200f8u, 0x00000724u, 0x00070041u, 0x00000202u, 0x00000726u, 0x00000200u, 0x0000009du, 0x0000034bu, + 0x0000004fu, 0x000700eau, 0x00000035u, 0x00000728u, 0x00000726u, 0x00000052u, 0x0000004fu, 0x00000722u, + 0x000200f9u, 0x00000729u, 0x000200f8u, 0x00000729u, 0x000700f5u, 0x00000035u, 0x000007f7u, 0x0000004fu, + 0x0000033cu, 0x00000728u, 0x00000724u, 0x00050152u, 0x00000035u, 0x0000072bu, 0x000001edu, 0x000007f7u, + 0x00060156u, 0x00000035u, 0x0000072du, 0x000001edu, 0x00000002u, 0x00000720u, 0x00050080u, 0x00000035u, + 0x0000072fu, 0x0000072bu, 0x0000072du, 0x00050084u, 0x00000035u, 0x00000358u, 0x00000356u, 0x0000034bu, + 0x00050080u, 0x00000035u, 0x00000359u, 0x0000072fu, 0x00000358u, 0x0004007cu, 0x00000035u, 0x0000035cu, + 0x00000247u, 0x0004007cu, 0x00000035u, 0x0000035fu, 0x00000241u, 0x0004007cu, 0x00000035u, 0x00000362u, + 0x00000336u, 0x00070050u, 0x0000006fu, 0x00000363u, 0x0000035cu, 0x0000035fu, 0x000007f9u, 0x00000362u, + 0x00060041u, 0x00000364u, 0x00000365u, 0x00000353u, 0x0000009du, 0x00000359u, 0x0003003eu, 0x00000365u, + 0x00000363u, 0x00050080u, 0x00000035u, 0x00000367u, 0x000007f9u, 0x000000b1u, 0x000200f9u, 0x0000033du, + 0x000200f8u, 0x0000033du, 0x000700f5u, 0x00000035u, 0x0000080fu, 0x000007f9u, 0x00000324u, 0x00000367u, + 0x00000729u, 0x000200f9u, 0x00000326u, 0x000200f8u, 0x00000326u, 0x000200f9u, 0x00000323u, 0x000200f8u, + 0x00000325u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000756u, 0x00000000u, + 0x00020011u, 0x00000001u, 0x00020011u, 0x00000016u, 0x00020011u, 0x00000027u, 0x00020011u, 0x00001151u, + 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, + 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, + 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x000001f2u, + 0x000001fdu, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000020u, 0x00000001u, 0x00000001u, 0x00050048u, + 0x000001b5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000001b5u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x000001b5u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000001b5u, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000001b5u, 0x00000004u, 0x00000023u, 0x0000000eu, + 0x00050048u, 0x000001b5u, 0x00000005u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000001b5u, 0x00000006u, + 0x00000023u, 0x00000014u, 0x00050048u, 0x000001b5u, 0x00000007u, 0x00000023u, 0x00000018u, 0x00050048u, + 0x000001b5u, 0x00000008u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x000001b5u, 0x00000009u, 0x00000023u, + 0x0000001eu, 0x00050048u, 0x000001b5u, 0x0000000au, 0x00000023u, 0x0000001fu, 0x00040047u, 0x000001b6u, + 0x00000006u, 0x00000020u, 0x00040048u, 0x000001b7u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001b7u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001b7u, 0x00000002u, 0x00040047u, 0x000001b9u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000001b9u, 0x00000021u, 0x00000000u, 0x00040047u, 0x000001dau, + 0x00000006u, 0x00000010u, 0x00040048u, 0x000001dbu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001dbu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001dbu, 0x00000002u, 0x00040047u, 0x000001ddu, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000001ddu, 0x00000021u, 0x00000001u, 0x00040047u, 0x000001f2u, + 0x0000000bu, 0x0000001au, 0x00040047u, 0x000001fdu, 0x0000000bu, 0x0000001du, 0x00040047u, 0x00000211u, + 0x00000001u, 0x00000004u, 0x00040047u, 0x00000212u, 0x00000001u, 0x00000001u, 0x00040047u, 0x0000021bu, + 0x00000001u, 0x00000002u, 0x00050048u, 0x00000225u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x00000225u, 0x00000001u, 0x00000023u, 0x00000008u, 0x00030047u, 0x00000225u, 0x00000002u, 0x00040047u, + 0x00000262u, 0x00000001u, 0x00000006u, 0x00040047u, 0x000002a3u, 0x00000006u, 0x00000004u, 0x00040048u, + 0x000002a4u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000002a4u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000002a4u, 0x00000002u, 0x00040047u, 0x000002a6u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000002a6u, 0x00000021u, 0x00000003u, 0x00040047u, 0x000002a8u, 0x00000001u, 0x00000003u, 0x00040047u, + 0x000002b4u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000002b5u, 0x00000000u, 0x00000019u, 0x00050048u, + 0x000002b5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002b5u, 0x00000002u, 0x00040047u, + 0x000002b7u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000002b7u, 0x00000021u, 0x00000004u, 0x00040047u, + 0x000002c5u, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, + 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000007u, 0x00000006u, 0x00000004u, + 0x00040015u, 0x0000001cu, 0x00000010u, 0x00000001u, 0x00040015u, 0x0000001du, 0x00000008u, 0x00000000u, + 0x00020014u, 0x00000020u, 0x00040017u, 0x00000022u, 0x00000006u, 0x00000002u, 0x00040015u, 0x00000035u, + 0x00000020u, 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000040u, 0x0000000fu, 0x0004002bu, 0x00000035u, + 0x0000004bu, 0x00000000u, 0x0004002bu, 0x00000035u, 0x0000004eu, 0x00000001u, 0x0004001eu, 0x00000066u, + 0x00000007u, 0x00000007u, 0x00040017u, 0x0000006bu, 0x00000035u, 0x00000004u, 0x0004001eu, 0x00000072u, + 0x0000006bu, 0x0000006bu, 0x0004002bu, 0x00000006u, 0x00000080u, 0x00000003u, 0x0004002bu, 0x00000006u, + 0x00000085u, 0xfffffffcu, 0x0004002bu, 0x00000006u, 0x00000088u, 0x00000004u, 0x0004002bu, 0x00000006u, + 0x00000099u, 0x00000000u, 0x0004002bu, 0x00000006u, 0x000000adu, 0x00000001u, 0x0004002bu, 0x00000006u, + 0x000000bfu, 0x00000007u, 0x0004002bu, 0x00000006u, 0x000000c1u, 0x00000002u, 0x00040017u, 0x000000d7u, + 0x00000020u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x000000e6u, 0x7fffffffu, 0x0007002cu, 0x00000007u, + 0x000000e7u, 0x000000e6u, 0x000000e6u, 0x000000e6u, 0x000000e6u, 0x0007002cu, 0x00000007u, 0x000000e9u, + 0x00000099u, 0x00000099u, 0x00000099u, 0x00000099u, 0x0004002bu, 0x00000006u, 0x000000edu, 0x80000000u, + 0x0007002cu, 0x00000007u, 0x000000eeu, 0x000000edu, 0x000000edu, 0x000000edu, 0x000000edu, 0x0004002bu, + 0x00000006u, 0x000000f0u, 0xffffffffu, 0x0007002cu, 0x00000007u, 0x000000f1u, 0x000000f0u, 0x000000f0u, + 0x000000f0u, 0x000000f0u, 0x0004002bu, 0x00000006u, 0x00000117u, 0x000007ffu, 0x0005002cu, 0x00000022u, + 0x00000126u, 0x00000099u, 0x000000e6u, 0x0004002bu, 0x00000006u, 0x00000150u, 0x00000008u, 0x0003002au, + 0x00000020u, 0x0000015cu, 0x0005002cu, 0x00000022u, 0x0000016fu, 0x000000f0u, 0x00000099u, 0x0004002bu, + 0x00000006u, 0x00000189u, 0x00000080u, 0x000d001eu, 0x000001b5u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x0000001cu, 0x0000001cu, 0x00000006u, 0x00000006u, 0x00000006u, 0x0000001cu, 0x0000001du, 0x0000001du, + 0x0003001du, 0x000001b6u, 0x000001b5u, 0x0003001eu, 0x000001b7u, 0x000001b6u, 0x00040020u, 0x000001b8u, + 0x0000000cu, 0x000001b7u, 0x0004003bu, 0x000001b8u, 0x000001b9u, 0x0000000cu, 0x00040020u, 0x000001bbu, + 0x0000000cu, 0x000001b5u, 0x0003001du, 0x000001dau, 0x00000007u, 0x0003001eu, 0x000001dbu, 0x000001dau, + 0x00040020u, 0x000001dcu, 0x0000000cu, 0x000001dbu, 0x0004003bu, 0x000001dcu, 0x000001ddu, 0x0000000cu, + 0x00040020u, 0x000001dfu, 0x0000000cu, 0x00000007u, 0x0004002bu, 0x00000035u, 0x000001e6u, 0x00000002u, + 0x00040017u, 0x000001f0u, 0x00000035u, 0x00000003u, 0x00040020u, 0x000001f1u, 0x00000001u, 0x000001f0u, + 0x0004003bu, 0x000001f1u, 0x000001f2u, 0x00000001u, 0x00040020u, 0x000001f3u, 0x00000001u, 0x00000035u, + 0x00040017u, 0x000001f8u, 0x00000035u, 0x00000002u, 0x0004003bu, 0x000001f3u, 0x000001fdu, 0x00000001u, + 0x0005002cu, 0x00000022u, 0x00000208u, 0x00000150u, 0x00000088u, 0x00040032u, 0x00000006u, 0x00000211u, + 0x00000400u, 0x00040032u, 0x00000006u, 0x00000212u, 0x00000008u, 0x00060034u, 0x00000006u, 0x00000213u, + 0x00000087u, 0x00000211u, 0x00000212u, 0x00060034u, 0x00000006u, 0x0000021au, 0x00000084u, 0x00000212u, + 0x00000150u, 0x00040032u, 0x00000006u, 0x0000021bu, 0x00000008u, 0x00060034u, 0x00000006u, 0x0000021cu, + 0x00000084u, 0x0000021bu, 0x00000088u, 0x00050033u, 0x00000022u, 0x0000021du, 0x0000021au, 0x0000021cu, + 0x00060034u, 0x00000006u, 0x00000221u, 0x00000084u, 0x00000212u, 0x00000150u, 0x00060034u, 0x00000006u, + 0x00000222u, 0x00000084u, 0x0000021bu, 0x00000088u, 0x00050033u, 0x00000022u, 0x00000223u, 0x00000221u, + 0x00000222u, 0x0004001eu, 0x00000225u, 0x000001f8u, 0x00000006u, 0x00040020u, 0x00000226u, 0x00000009u, + 0x00000225u, 0x0004003bu, 0x00000226u, 0x00000227u, 0x00000009u, 0x00040020u, 0x00000228u, 0x00000009u, + 0x000001f8u, 0x00050033u, 0x00000022u, 0x00000231u, 0x00000212u, 0x0000021bu, 0x00050033u, 0x00000022u, + 0x00000235u, 0x00000212u, 0x0000021bu, 0x00040020u, 0x0000023eu, 0x00000009u, 0x00000006u, 0x00040020u, + 0x00000245u, 0x00000004u, 0x00000035u, 0x0004003bu, 0x00000245u, 0x00000246u, 0x00000004u, 0x0004002bu, + 0x00000035u, 0x00000247u, 0x00000108u, 0x0004002bu, 0x00000006u, 0x0000024au, 0x00000020u, 0x00040032u, + 0x00000006u, 0x00000262u, 0x00000001u, 0x0003001du, 0x000002a3u, 0x00000035u, 0x0003001eu, 0x000002a4u, + 0x000002a3u, 0x00040020u, 0x000002a5u, 0x0000000cu, 0x000002a4u, 0x0004003bu, 0x000002a5u, 0x000002a6u, + 0x0000000cu, 0x00040032u, 0x00000006u, 0x000002a8u, 0x00000100u, 0x00060034u, 0x00000006u, 0x000002a9u, + 0x00000087u, 0x000002a8u, 0x0000024au, 0x00040020u, 0x000002aeu, 0x0000000cu, 0x00000035u, 0x0003001du, + 0x000002b4u, 0x00000035u, 0x0003001eu, 0x000002b5u, 0x000002b4u, 0x00040020u, 0x000002b6u, 0x0000000cu, + 0x000002b5u, 0x0004003bu, 0x000002b6u, 0x000002b7u, 0x0000000cu, 0x0004002bu, 0x00000035u, 0x000002c4u, + 0x00000020u, 0x0006002cu, 0x000001f0u, 0x000002c5u, 0x000002c4u, 0x0000004eu, 0x0000004eu, 0x0005002cu, + 0x00000022u, 0x0000074au, 0x000000adu, 0x000000adu, 0x0007002cu, 0x00000007u, 0x0000074bu, 0x00000040u, + 0x00000040u, 0x00000040u, 0x00000040u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, + 0x000200f8u, 0x00000005u, 0x00050041u, 0x000001f3u, 0x000001f4u, 0x000001f2u, 0x0000004bu, 0x0004003du, + 0x00000035u, 0x000001f5u, 0x000001f4u, 0x0004007cu, 0x00000006u, 0x000001f6u, 0x000001f5u, 0x0004003du, + 0x000001f0u, 0x000001f9u, 0x000001f2u, 0x0007004fu, 0x000001f8u, 0x000001fau, 0x000001f9u, 0x000001f9u, + 0x00000001u, 0x00000002u, 0x0004007cu, 0x00000022u, 0x000001fbu, 0x000001fau, 0x0004003du, 0x00000035u, + 0x000001feu, 0x000001fdu, 0x0004007cu, 0x00000006u, 0x000001ffu, 0x000001feu, 0x000500c7u, 0x00000006u, + 0x00000202u, 0x000001ffu, 0x000000bfu, 0x000500c3u, 0x00000006u, 0x00000205u, 0x000001ffu, 0x00000080u, + 0x00050084u, 0x00000022u, 0x00000209u, 0x000001fbu, 0x00000208u, 0x00050050u, 0x00000022u, 0x0000020cu, + 0x00000202u, 0x00000205u, 0x00050080u, 0x00000022u, 0x0000020du, 0x00000209u, 0x0000020cu, 0x00050051u, + 0x00000006u, 0x00000210u, 0x0000020du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000214u, 0x00000210u, + 0x00000213u, 0x00050051u, 0x00000006u, 0x00000216u, 0x0000020du, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00000217u, 0x00000214u, 0x00000216u, 0x00050084u, 0x00000022u, 0x0000021eu, 0x000001fbu, 0x0000021du, + 0x00050080u, 0x00000022u, 0x00000224u, 0x0000021eu, 0x00000223u, 0x00050041u, 0x00000228u, 0x00000229u, + 0x00000227u, 0x00000099u, 0x0004003du, 0x000001f8u, 0x0000022au, 0x00000229u, 0x0004007cu, 0x00000022u, + 0x0000022bu, 0x0000022au, 0x0007000cu, 0x00000022u, 0x0000022cu, 0x00000001u, 0x00000027u, 0x00000224u, + 0x0000022bu, 0x00050082u, 0x00000022u, 0x0000022eu, 0x0000022cu, 0x0000074au, 0x00050084u, 0x00000022u, + 0x00000232u, 0x0000020du, 0x00000231u, 0x00050080u, 0x00000022u, 0x00000236u, 0x00000232u, 0x00000235u, + 0x0007000cu, 0x00000022u, 0x0000023au, 0x00000001u, 0x00000027u, 0x00000236u, 0x0000022bu, 0x00050082u, + 0x00000022u, 0x0000023cu, 0x0000023au, 0x0000074au, 0x00050041u, 0x0000023eu, 0x0000023fu, 0x00000227u, + 0x000000adu, 0x0004003du, 0x00000006u, 0x00000240u, 0x0000023fu, 0x000500aau, 0x00000020u, 0x00000242u, + 0x000001ffu, 0x00000099u, 0x000300f7u, 0x00000244u, 0x00000000u, 0x000400fau, 0x00000242u, 0x00000243u, + 0x00000244u, 0x000200f8u, 0x00000243u, 0x0003003eu, 0x00000246u, 0x0000004bu, 0x000200f9u, 0x00000244u, + 0x000200f8u, 0x00000244u, 0x000400e0u, 0x000001e6u, 0x000001e6u, 0x00000247u, 0x000500b1u, 0x00000020u, + 0x0000024bu, 0x000001ffu, 0x0000024au, 0x000300f7u, 0x0000024du, 0x00000000u, 0x000400fau, 0x0000024bu, + 0x0000024cu, 0x0000024du, 0x000200f8u, 0x0000024cu, 0x00050084u, 0x00000006u, 0x00000250u, 0x000001f6u, + 0x0000024au, 0x00050080u, 0x00000006u, 0x00000252u, 0x00000250u, 0x000001ffu, 0x0004007cu, 0x00000035u, + 0x00000253u, 0x00000252u, 0x0004007cu, 0x00000035u, 0x00000256u, 0x00000240u, 0x000500b0u, 0x00000020u, + 0x00000257u, 0x00000253u, 0x00000256u, 0x000300f7u, 0x00000259u, 0x00000000u, 0x000400fau, 0x00000257u, + 0x00000258u, 0x00000259u, 0x000200f8u, 0x00000258u, 0x00060041u, 0x000001dfu, 0x000002f1u, 0x000001ddu, + 0x00000099u, 0x00000253u, 0x0004003du, 0x00000007u, 0x000002f2u, 0x000002f1u, 0x00050051u, 0x00000006u, + 0x000002f4u, 0x000002f2u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000002f6u, 0x000002f2u, 0x00000001u, + 0x00050051u, 0x00000006u, 0x000002f8u, 0x000002f2u, 0x00000002u, 0x00050051u, 0x00000006u, 0x000002fau, + 0x000002f2u, 0x00000003u, 0x00060041u, 0x000001bbu, 0x00000300u, 0x000001b9u, 0x00000099u, 0x00000253u, + 0x0004003du, 0x000001b5u, 0x00000301u, 0x00000300u, 0x00050051u, 0x00000006u, 0x00000302u, 0x00000301u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x00000304u, 0x00000301u, 0x00000001u, 0x00050051u, 0x00000006u, + 0x00000306u, 0x00000301u, 0x00000002u, 0x00050051u, 0x0000001cu, 0x00000308u, 0x00000301u, 0x00000003u, + 0x00050051u, 0x0000001cu, 0x0000030au, 0x00000301u, 0x00000004u, 0x00050051u, 0x00000006u, 0x0000030cu, + 0x00000301u, 0x00000005u, 0x00050051u, 0x00000006u, 0x0000030eu, 0x00000301u, 0x00000006u, 0x00050051u, + 0x00000006u, 0x00000310u, 0x00000301u, 0x00000007u, 0x00050051u, 0x0000001cu, 0x00000312u, 0x00000301u, + 0x00000008u, 0x00050051u, 0x0000001du, 0x00000314u, 0x00000301u, 0x00000009u, 0x000300f7u, 0x000003a0u, + 0x00000000u, 0x000300fbu, 0x0000004bu, 0x00000328u, 0x000200f8u, 0x00000328u, 0x00050051u, 0x00000006u, + 0x0000032au, 0x0000021eu, 0x00000001u, 0x000500c3u, 0x00000006u, 0x0000032eu, 0x000002f6u, 0x000000c1u, + 0x00050084u, 0x00000006u, 0x0000032fu, 0x00000262u, 0x0000032eu, 0x0007000cu, 0x00000006u, 0x00000330u, + 0x00000001u, 0x0000002au, 0x0000032au, 0x0000032fu, 0x00050051u, 0x00000006u, 0x00000333u, 0x0000022eu, + 0x00000001u, 0x00050080u, 0x00000006u, 0x00000337u, 0x000002fau, 0x00000080u, 0x000500c3u, 0x00000006u, + 0x00000338u, 0x00000337u, 0x000000c1u, 0x00050084u, 0x00000006u, 0x00000339u, 0x00000262u, 0x00000338u, + 0x00050082u, 0x00000006u, 0x0000033au, 0x00000339u, 0x000000adu, 0x0007000cu, 0x00000006u, 0x0000033bu, + 0x00000001u, 0x00000027u, 0x00000333u, 0x0000033au, 0x00050084u, 0x00000006u, 0x0000033fu, 0x00000330u, + 0x00000088u, 0x00050084u, 0x00000006u, 0x00000342u, 0x0000033bu, 0x00000088u, 0x00050080u, 0x00000006u, + 0x00000343u, 0x00000342u, 0x00000080u, 0x00040072u, 0x00000006u, 0x00000348u, 0x00000308u, 0x00050084u, + 0x00000006u, 0x00000349u, 0x00000262u, 0x00000348u, 0x0007000cu, 0x00000006u, 0x0000034au, 0x00000001u, + 0x0000002au, 0x0000033fu, 0x00000349u, 0x00040072u, 0x00000006u, 0x0000034fu, 0x00000312u, 0x00050084u, + 0x00000006u, 0x00000350u, 0x00000262u, 0x0000034fu, 0x00050082u, 0x00000006u, 0x00000351u, 0x00000350u, + 0x000000adu, 0x0007000cu, 0x00000006u, 0x00000352u, 0x00000001u, 0x00000027u, 0x00000343u, 0x00000351u, + 0x000500b1u, 0x00000020u, 0x00000355u, 0x00000352u, 0x0000034au, 0x000300f7u, 0x00000357u, 0x00000000u, + 0x000400fau, 0x00000355u, 0x00000356u, 0x00000357u, 0x000200f8u, 0x00000356u, 0x000200f9u, 0x000003a0u, + 0x000200f8u, 0x00000357u, 0x00040071u, 0x00000035u, 0x0000035au, 0x00000314u, 0x0004007cu, 0x00000006u, + 0x0000035bu, 0x0000035au, 0x000500c7u, 0x00000006u, 0x0000035cu, 0x0000035bu, 0x000000adu, 0x000500abu, + 0x00000020u, 0x0000035du, 0x0000035cu, 0x00000099u, 0x00040072u, 0x00000006u, 0x00000362u, 0x0000030au, + 0x00050084u, 0x00000006u, 0x00000364u, 0x00000362u, 0x00000262u, 0x00050050u, 0x00000022u, 0x00000365u, + 0x00000364u, 0x00000364u, 0x00050080u, 0x00000022u, 0x00000366u, 0x00000365u, 0x0000016fu, 0x00050050u, + 0x00000022u, 0x00000368u, 0x0000034au, 0x0000034au, 0x00050050u, 0x00000022u, 0x0000036au, 0x00000352u, + 0x00000352u, 0x0008000cu, 0x00000022u, 0x0000036bu, 0x00000001u, 0x0000002du, 0x00000366u, 0x00000368u, + 0x0000036au, 0x00050051u, 0x00000006u, 0x0000036cu, 0x0000036bu, 0x00000000u, 0x00050051u, 0x00000006u, + 0x0000036du, 0x0000036bu, 0x00000001u, 0x00070050u, 0x00000007u, 0x0000036eu, 0x0000034au, 0x00000352u, + 0x0000036cu, 0x0000036du, 0x000500c7u, 0x00000006u, 0x000003c6u, 0x00000348u, 0x00000085u, 0x00050084u, + 0x00000006u, 0x000003ccu, 0x000003c6u, 0x00000262u, 0x00070050u, 0x00000007u, 0x000003d2u, 0x000003ccu, + 0x000003ccu, 0x000003ccu, 0x000003ccu, 0x00050082u, 0x00000007u, 0x000003d3u, 0x0000036eu, 0x000003d2u, + 0x00050084u, 0x00000006u, 0x000003d7u, 0x00000262u, 0x00000302u, 0x00070050u, 0x00000007u, 0x00000440u, + 0x0000030cu, 0x0000030cu, 0x0000030cu, 0x0000030cu, 0x00050098u, 0x00000066u, 0x00000441u, 0x000003d3u, + 0x00000440u, 0x00050051u, 0x00000007u, 0x00000442u, 0x00000441u, 0x00000000u, 0x00050051u, 0x00000007u, + 0x00000443u, 0x00000441u, 0x00000001u, 0x0004007cu, 0x0000006bu, 0x00000445u, 0x00000442u, 0x0004007cu, + 0x00000035u, 0x00000447u, 0x000003d7u, 0x00070050u, 0x0000006bu, 0x00000448u, 0x00000447u, 0x00000447u, + 0x00000447u, 0x00000447u, 0x00050095u, 0x00000072u, 0x00000449u, 0x00000445u, 0x00000448u, 0x00050051u, + 0x0000006bu, 0x0000044au, 0x00000449u, 0x00000001u, 0x00050051u, 0x0000006bu, 0x0000044bu, 0x00000449u, + 0x00000000u, 0x0004007cu, 0x00000007u, 0x0000044cu, 0x0000044bu, 0x0004007cu, 0x00000007u, 0x0000044eu, + 0x0000044au, 0x00050080u, 0x00000007u, 0x00000450u, 0x00000443u, 0x0000044eu, 0x00050084u, 0x00000006u, + 0x000003e3u, 0x00000262u, 0x00000304u, 0x00070050u, 0x00000007u, 0x0000045au, 0x0000030eu, 0x0000030eu, + 0x0000030eu, 0x0000030eu, 0x00050098u, 0x00000066u, 0x0000045bu, 0x000003d3u, 0x0000045au, 0x00050051u, + 0x00000007u, 0x0000045cu, 0x0000045bu, 0x00000000u, 0x00050051u, 0x00000007u, 0x0000045du, 0x0000045bu, + 0x00000001u, 0x0004007cu, 0x0000006bu, 0x0000045fu, 0x0000045cu, 0x0004007cu, 0x00000035u, 0x00000461u, + 0x000003e3u, 0x00070050u, 0x0000006bu, 0x00000462u, 0x00000461u, 0x00000461u, 0x00000461u, 0x00000461u, + 0x00050095u, 0x00000072u, 0x00000463u, 0x0000045fu, 0x00000462u, 0x00050051u, 0x0000006bu, 0x00000464u, + 0x00000463u, 0x00000001u, 0x00050051u, 0x0000006bu, 0x00000465u, 0x00000463u, 0x00000000u, 0x0004007cu, + 0x00000007u, 0x00000466u, 0x00000465u, 0x0004007cu, 0x00000007u, 0x00000468u, 0x00000464u, 0x00050080u, + 0x00000007u, 0x0000046au, 0x0000045du, 0x00000468u, 0x00070050u, 0x00000007u, 0x000003eau, 0x00000364u, + 0x00000364u, 0x00000364u, 0x00000364u, 0x00050082u, 0x00000007u, 0x000003ebu, 0x0000036eu, 0x000003eau, + 0x00050084u, 0x00000006u, 0x000003efu, 0x00000262u, 0x00000306u, 0x00070050u, 0x00000007u, 0x00000474u, + 0x00000310u, 0x00000310u, 0x00000310u, 0x00000310u, 0x00050098u, 0x00000066u, 0x00000475u, 0x000003ebu, + 0x00000474u, 0x00050051u, 0x00000007u, 0x00000476u, 0x00000475u, 0x00000000u, 0x00050051u, 0x00000007u, + 0x00000477u, 0x00000475u, 0x00000001u, 0x0004007cu, 0x0000006bu, 0x00000479u, 0x00000476u, 0x0004007cu, + 0x00000035u, 0x0000047bu, 0x000003efu, 0x00070050u, 0x0000006bu, 0x0000047cu, 0x0000047bu, 0x0000047bu, + 0x0000047bu, 0x0000047bu, 0x00050095u, 0x00000072u, 0x0000047du, 0x00000479u, 0x0000047cu, 0x00050051u, + 0x0000006bu, 0x0000047eu, 0x0000047du, 0x00000001u, 0x00050051u, 0x0000006bu, 0x0000047fu, 0x0000047du, + 0x00000000u, 0x0004007cu, 0x00000007u, 0x00000480u, 0x0000047fu, 0x0004007cu, 0x00000007u, 0x00000482u, + 0x0000047eu, 0x00050080u, 0x00000007u, 0x00000484u, 0x00000477u, 0x00000482u, 0x00050084u, 0x00000006u, + 0x000003fbu, 0x00000262u, 0x00000362u, 0x00070050u, 0x00000007u, 0x000003fcu, 0x000003fbu, 0x000003fbu, + 0x000003fbu, 0x000003fbu, 0x000500b1u, 0x000000d7u, 0x000003fdu, 0x0000036eu, 0x000003fcu, 0x000600a9u, + 0x00000007u, 0x000003feu, 0x000003fdu, 0x00000466u, 0x00000480u, 0x000600a9u, 0x00000007u, 0x00000409u, + 0x000003fdu, 0x0000046au, 0x00000484u, 0x000500adu, 0x000000d7u, 0x0000040cu, 0x00000450u, 0x000000e9u, + 0x000600a9u, 0x00000007u, 0x0000040du, 0x0000040cu, 0x000000e7u, 0x0000044cu, 0x000500b1u, 0x000000d7u, + 0x00000410u, 0x00000450u, 0x000000f1u, 0x000600a9u, 0x00000007u, 0x00000411u, 0x00000410u, 0x000000eeu, + 0x0000040du, 0x000500adu, 0x000000d7u, 0x00000414u, 0x00000409u, 0x000000e9u, 0x000600a9u, 0x00000007u, + 0x00000415u, 0x00000414u, 0x000000e7u, 0x000003feu, 0x000500b1u, 0x000000d7u, 0x00000418u, 0x00000409u, + 0x000000f1u, 0x000600a9u, 0x00000007u, 0x00000419u, 0x00000418u, 0x000000eeu, 0x00000415u, 0x000500c3u, + 0x00000007u, 0x0000048bu, 0x00000411u, 0x0000074bu, 0x000500c3u, 0x00000007u, 0x00000490u, 0x00000419u, + 0x0000074bu, 0x00070050u, 0x000000d7u, 0x0000074eu, 0x0000035du, 0x0000035du, 0x0000035du, 0x0000035du, + 0x000600a9u, 0x00000007u, 0x0000074fu, 0x0000074eu, 0x00000490u, 0x0000048bu, 0x000600a9u, 0x00000007u, + 0x00000751u, 0x0000074eu, 0x0000048bu, 0x00000490u, 0x0006000cu, 0x00000007u, 0x00000427u, 0x00000001u, + 0x00000005u, 0x00000751u, 0x0006000cu, 0x00000007u, 0x00000429u, 0x00000001u, 0x00000005u, 0x0000074fu, + 0x0007000cu, 0x00000007u, 0x0000042au, 0x00000001u, 0x0000002au, 0x00000427u, 0x00000429u, 0x0007004fu, + 0x00000022u, 0x00000495u, 0x0000042au, 0x0000042au, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, + 0x00000497u, 0x0000042au, 0x0000042au, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x00000498u, + 0x00000001u, 0x0000002au, 0x00000495u, 0x00000497u, 0x00050051u, 0x00000006u, 0x0000049au, 0x00000498u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x0000049cu, 0x00000498u, 0x00000001u, 0x0007000cu, 0x00000006u, + 0x0000049du, 0x00000001u, 0x0000002au, 0x0000049au, 0x0000049cu, 0x00050084u, 0x00000006u, 0x0000042eu, + 0x00000117u, 0x00000262u, 0x000500b3u, 0x00000020u, 0x0000042fu, 0x0000049du, 0x0000042eu, 0x000300f7u, + 0x00000437u, 0x00000000u, 0x000400fau, 0x0000042fu, 0x00000430u, 0x00000436u, 0x000200f8u, 0x00000430u, + 0x0007004fu, 0x00000022u, 0x000004a2u, 0x00000751u, 0x00000751u, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x00000022u, 0x000004a4u, 0x00000751u, 0x00000751u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, + 0x000004a5u, 0x00000001u, 0x00000027u, 0x000004a2u, 0x000004a4u, 0x00050051u, 0x00000006u, 0x000004a7u, + 0x000004a5u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000004a9u, 0x000004a5u, 0x00000001u, 0x0007000cu, + 0x00000006u, 0x000004aau, 0x00000001u, 0x00000027u, 0x000004a7u, 0x000004a9u, 0x0007004fu, 0x00000022u, + 0x000004afu, 0x0000074fu, 0x0000074fu, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x000004b1u, + 0x0000074fu, 0x0000074fu, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x000004b2u, 0x00000001u, + 0x0000002au, 0x000004afu, 0x000004b1u, 0x00050051u, 0x00000006u, 0x000004b4u, 0x000004b2u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x000004b6u, 0x000004b2u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x000004b7u, + 0x00000001u, 0x0000002au, 0x000004b4u, 0x000004b6u, 0x00050050u, 0x00000022u, 0x00000435u, 0x000004aau, + 0x000004b7u, 0x000200f9u, 0x00000437u, 0x000200f8u, 0x00000436u, 0x000200f9u, 0x00000437u, 0x000200f8u, + 0x00000437u, 0x000700f5u, 0x00000022u, 0x00000730u, 0x00000435u, 0x00000430u, 0x00000126u, 0x00000436u, + 0x000500c7u, 0x00000006u, 0x00000378u, 0x0000035bu, 0x00000189u, 0x000500abu, 0x00000020u, 0x00000379u, + 0x00000378u, 0x00000099u, 0x000600a9u, 0x00000006u, 0x0000037au, 0x00000379u, 0x00000088u, 0x00000080u, + 0x000500c3u, 0x00000006u, 0x0000037eu, 0x000002f4u, 0x000000c1u, 0x00050084u, 0x00000006u, 0x0000037fu, + 0x00000262u, 0x0000037eu, 0x00050080u, 0x00000006u, 0x00000384u, 0x000002f8u, 0x0000037au, 0x000500c3u, + 0x00000006u, 0x00000385u, 0x00000384u, 0x000000c1u, 0x00050084u, 0x00000006u, 0x00000386u, 0x00000262u, + 0x00000385u, 0x00050082u, 0x00000006u, 0x00000387u, 0x00000386u, 0x000000adu, 0x00050050u, 0x00000022u, + 0x00000388u, 0x0000037fu, 0x00000387u, 0x0007004fu, 0x00000022u, 0x0000038bu, 0x00000388u, 0x00000388u, + 0x00000000u, 0x00000000u, 0x0007004fu, 0x00000022u, 0x0000038du, 0x00000388u, 0x00000388u, 0x00000001u, + 0x00000001u, 0x0008000cu, 0x00000022u, 0x0000038eu, 0x00000001u, 0x0000002du, 0x00000730u, 0x0000038bu, + 0x0000038du, 0x00050051u, 0x00000006u, 0x00000390u, 0x0000038eu, 0x00000000u, 0x00050051u, 0x00000006u, + 0x00000392u, 0x0000021eu, 0x00000000u, 0x0007000cu, 0x00000006u, 0x00000393u, 0x00000001u, 0x0000002au, + 0x00000390u, 0x00000392u, 0x00050051u, 0x00000006u, 0x00000396u, 0x0000038eu, 0x00000001u, 0x00050051u, + 0x00000006u, 0x00000398u, 0x0000022eu, 0x00000000u, 0x0007000cu, 0x00000006u, 0x00000399u, 0x00000001u, + 0x00000027u, 0x00000396u, 0x00000398u, 0x000500b3u, 0x00000020u, 0x0000039fu, 0x00000393u, 0x00000399u, + 0x000200f9u, 0x000003a0u, 0x000200f8u, 0x000003a0u, 0x000700f5u, 0x00000020u, 0x00000735u, 0x0000015cu, + 0x00000356u, 0x0000039fu, 0x00000437u, 0x000200f9u, 0x00000259u, 0x000200f8u, 0x00000259u, 0x000700f5u, + 0x00000020u, 0x00000737u, 0x0000015cu, 0x0000024cu, 0x00000735u, 0x000003a0u, 0x000200f9u, 0x0000024du, + 0x000200f8u, 0x0000024du, 0x000700f5u, 0x00000020u, 0x00000736u, 0x0000015cu, 0x00000244u, 0x00000737u, + 0x00000259u, 0x000300f7u, 0x0000026fu, 0x00000000u, 0x000400fau, 0x00000736u, 0x0000026eu, 0x0000026fu, + 0x000200f8u, 0x0000026eu, 0x000500c4u, 0x00000035u, 0x00000271u, 0x0000004eu, 0x000001ffu, 0x000700f1u, + 0x00000035u, 0x00000272u, 0x00000246u, 0x0000004eu, 0x0000004bu, 0x00000271u, 0x000200f9u, 0x0000026fu, + 0x000200f8u, 0x0000026fu, 0x000400e0u, 0x000001e6u, 0x000001e6u, 0x00000247u, 0x0004003du, 0x00000035u, + 0x00000274u, 0x00000246u, 0x000200f9u, 0x00000276u, 0x000200f8u, 0x00000276u, 0x000700f5u, 0x00000035u, + 0x00000739u, 0x0000004bu, 0x0000026fu, 0x00000749u, 0x00000279u, 0x000700f5u, 0x00000035u, 0x00000738u, + 0x00000274u, 0x0000026fu, 0x00000284u, 0x00000279u, 0x000500abu, 0x00000020u, 0x0000027cu, 0x00000738u, + 0x0000004bu, 0x000400f6u, 0x00000278u, 0x00000279u, 0x00000000u, 0x000400fau, 0x0000027cu, 0x00000277u, + 0x00000278u, 0x000200f8u, 0x00000277u, 0x0006000cu, 0x00000006u, 0x0000027fu, 0x00000001u, 0x00000049u, + 0x00000738u, 0x000500c4u, 0x00000035u, 0x00000281u, 0x0000004eu, 0x0000027fu, 0x000400c8u, 0x00000035u, + 0x00000282u, 0x00000281u, 0x000500c7u, 0x00000035u, 0x00000284u, 0x00000738u, 0x00000282u, 0x00050084u, + 0x00000006u, 0x00000287u, 0x000001f6u, 0x0000024au, 0x00050080u, 0x00000006u, 0x00000289u, 0x00000287u, + 0x0000027fu, 0x0004007cu, 0x00000035u, 0x0000028au, 0x00000289u, 0x00060041u, 0x000001dfu, 0x000004bcu, + 0x000001ddu, 0x00000099u, 0x0000028au, 0x0004003du, 0x00000007u, 0x000004bdu, 0x000004bcu, 0x00050051u, + 0x00000006u, 0x000004bfu, 0x000004bdu, 0x00000000u, 0x00050051u, 0x00000006u, 0x000004c1u, 0x000004bdu, + 0x00000001u, 0x00050051u, 0x00000006u, 0x000004c3u, 0x000004bdu, 0x00000002u, 0x00050051u, 0x00000006u, + 0x000004c5u, 0x000004bdu, 0x00000003u, 0x00060041u, 0x000001bbu, 0x000004cbu, 0x000001b9u, 0x00000099u, + 0x0000028au, 0x0004003du, 0x000001b5u, 0x000004ccu, 0x000004cbu, 0x00050051u, 0x00000006u, 0x000004cdu, + 0x000004ccu, 0x00000000u, 0x00050051u, 0x00000006u, 0x000004cfu, 0x000004ccu, 0x00000001u, 0x00050051u, + 0x00000006u, 0x000004d1u, 0x000004ccu, 0x00000002u, 0x00050051u, 0x0000001cu, 0x000004d3u, 0x000004ccu, + 0x00000003u, 0x00050051u, 0x0000001cu, 0x000004d5u, 0x000004ccu, 0x00000004u, 0x00050051u, 0x00000006u, + 0x000004d7u, 0x000004ccu, 0x00000005u, 0x00050051u, 0x00000006u, 0x000004d9u, 0x000004ccu, 0x00000006u, + 0x00050051u, 0x00000006u, 0x000004dbu, 0x000004ccu, 0x00000007u, 0x00050051u, 0x0000001cu, 0x000004ddu, + 0x000004ccu, 0x00000008u, 0x00050051u, 0x0000001du, 0x000004dfu, 0x000004ccu, 0x00000009u, 0x000300f7u, + 0x0000056bu, 0x00000000u, 0x000300fbu, 0x0000004bu, 0x000004f3u, 0x000200f8u, 0x000004f3u, 0x00050051u, + 0x00000006u, 0x000004f5u, 0x00000232u, 0x00000001u, 0x000500c3u, 0x00000006u, 0x000004f9u, 0x000004c1u, + 0x000000c1u, 0x00050084u, 0x00000006u, 0x000004fau, 0x00000262u, 0x000004f9u, 0x0007000cu, 0x00000006u, + 0x000004fbu, 0x00000001u, 0x0000002au, 0x000004f5u, 0x000004fau, 0x00050051u, 0x00000006u, 0x000004feu, + 0x0000023cu, 0x00000001u, 0x00050080u, 0x00000006u, 0x00000502u, 0x000004c5u, 0x00000080u, 0x000500c3u, + 0x00000006u, 0x00000503u, 0x00000502u, 0x000000c1u, 0x00050084u, 0x00000006u, 0x00000504u, 0x00000262u, + 0x00000503u, 0x00050082u, 0x00000006u, 0x00000505u, 0x00000504u, 0x000000adu, 0x0007000cu, 0x00000006u, + 0x00000506u, 0x00000001u, 0x00000027u, 0x000004feu, 0x00000505u, 0x00050084u, 0x00000006u, 0x0000050au, + 0x000004fbu, 0x00000088u, 0x00050084u, 0x00000006u, 0x0000050du, 0x00000506u, 0x00000088u, 0x00050080u, + 0x00000006u, 0x0000050eu, 0x0000050du, 0x00000080u, 0x00040072u, 0x00000006u, 0x00000513u, 0x000004d3u, + 0x00050084u, 0x00000006u, 0x00000514u, 0x00000262u, 0x00000513u, 0x0007000cu, 0x00000006u, 0x00000515u, + 0x00000001u, 0x0000002au, 0x0000050au, 0x00000514u, 0x00040072u, 0x00000006u, 0x0000051au, 0x000004ddu, + 0x00050084u, 0x00000006u, 0x0000051bu, 0x00000262u, 0x0000051au, 0x00050082u, 0x00000006u, 0x0000051cu, + 0x0000051bu, 0x000000adu, 0x0007000cu, 0x00000006u, 0x0000051du, 0x00000001u, 0x00000027u, 0x0000050eu, + 0x0000051cu, 0x000500b1u, 0x00000020u, 0x00000520u, 0x0000051du, 0x00000515u, 0x000300f7u, 0x00000522u, + 0x00000000u, 0x000400fau, 0x00000520u, 0x00000521u, 0x00000522u, 0x000200f8u, 0x00000521u, 0x000200f9u, + 0x0000056bu, 0x000200f8u, 0x00000522u, 0x00040071u, 0x00000035u, 0x00000525u, 0x000004dfu, 0x0004007cu, + 0x00000006u, 0x00000526u, 0x00000525u, 0x000500c7u, 0x00000006u, 0x00000527u, 0x00000526u, 0x000000adu, + 0x000500abu, 0x00000020u, 0x00000528u, 0x00000527u, 0x00000099u, 0x00040072u, 0x00000006u, 0x0000052du, + 0x000004d5u, 0x00050084u, 0x00000006u, 0x0000052fu, 0x0000052du, 0x00000262u, 0x00050050u, 0x00000022u, + 0x00000530u, 0x0000052fu, 0x0000052fu, 0x00050080u, 0x00000022u, 0x00000531u, 0x00000530u, 0x0000016fu, + 0x00050050u, 0x00000022u, 0x00000533u, 0x00000515u, 0x00000515u, 0x00050050u, 0x00000022u, 0x00000535u, + 0x0000051du, 0x0000051du, 0x0008000cu, 0x00000022u, 0x00000536u, 0x00000001u, 0x0000002du, 0x00000531u, + 0x00000533u, 0x00000535u, 0x00050051u, 0x00000006u, 0x00000537u, 0x00000536u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x00000538u, 0x00000536u, 0x00000001u, 0x00070050u, 0x00000007u, 0x00000539u, 0x00000515u, + 0x0000051du, 0x00000537u, 0x00000538u, 0x000500c7u, 0x00000006u, 0x00000591u, 0x00000513u, 0x00000085u, + 0x00050084u, 0x00000006u, 0x00000597u, 0x00000591u, 0x00000262u, 0x00070050u, 0x00000007u, 0x0000059du, + 0x00000597u, 0x00000597u, 0x00000597u, 0x00000597u, 0x00050082u, 0x00000007u, 0x0000059eu, 0x00000539u, + 0x0000059du, 0x00050084u, 0x00000006u, 0x000005a2u, 0x00000262u, 0x000004cdu, 0x00070050u, 0x00000007u, + 0x0000060bu, 0x000004d7u, 0x000004d7u, 0x000004d7u, 0x000004d7u, 0x00050098u, 0x00000066u, 0x0000060cu, + 0x0000059eu, 0x0000060bu, 0x00050051u, 0x00000007u, 0x0000060du, 0x0000060cu, 0x00000000u, 0x00050051u, + 0x00000007u, 0x0000060eu, 0x0000060cu, 0x00000001u, 0x0004007cu, 0x0000006bu, 0x00000610u, 0x0000060du, + 0x0004007cu, 0x00000035u, 0x00000612u, 0x000005a2u, 0x00070050u, 0x0000006bu, 0x00000613u, 0x00000612u, + 0x00000612u, 0x00000612u, 0x00000612u, 0x00050095u, 0x00000072u, 0x00000614u, 0x00000610u, 0x00000613u, + 0x00050051u, 0x0000006bu, 0x00000615u, 0x00000614u, 0x00000001u, 0x00050051u, 0x0000006bu, 0x00000616u, + 0x00000614u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x00000617u, 0x00000616u, 0x0004007cu, 0x00000007u, + 0x00000619u, 0x00000615u, 0x00050080u, 0x00000007u, 0x0000061bu, 0x0000060eu, 0x00000619u, 0x00050084u, + 0x00000006u, 0x000005aeu, 0x00000262u, 0x000004cfu, 0x00070050u, 0x00000007u, 0x00000625u, 0x000004d9u, + 0x000004d9u, 0x000004d9u, 0x000004d9u, 0x00050098u, 0x00000066u, 0x00000626u, 0x0000059eu, 0x00000625u, + 0x00050051u, 0x00000007u, 0x00000627u, 0x00000626u, 0x00000000u, 0x00050051u, 0x00000007u, 0x00000628u, + 0x00000626u, 0x00000001u, 0x0004007cu, 0x0000006bu, 0x0000062au, 0x00000627u, 0x0004007cu, 0x00000035u, + 0x0000062cu, 0x000005aeu, 0x00070050u, 0x0000006bu, 0x0000062du, 0x0000062cu, 0x0000062cu, 0x0000062cu, + 0x0000062cu, 0x00050095u, 0x00000072u, 0x0000062eu, 0x0000062au, 0x0000062du, 0x00050051u, 0x0000006bu, + 0x0000062fu, 0x0000062eu, 0x00000001u, 0x00050051u, 0x0000006bu, 0x00000630u, 0x0000062eu, 0x00000000u, + 0x0004007cu, 0x00000007u, 0x00000631u, 0x00000630u, 0x0004007cu, 0x00000007u, 0x00000633u, 0x0000062fu, + 0x00050080u, 0x00000007u, 0x00000635u, 0x00000628u, 0x00000633u, 0x00070050u, 0x00000007u, 0x000005b5u, + 0x0000052fu, 0x0000052fu, 0x0000052fu, 0x0000052fu, 0x00050082u, 0x00000007u, 0x000005b6u, 0x00000539u, + 0x000005b5u, 0x00050084u, 0x00000006u, 0x000005bau, 0x00000262u, 0x000004d1u, 0x00070050u, 0x00000007u, + 0x0000063fu, 0x000004dbu, 0x000004dbu, 0x000004dbu, 0x000004dbu, 0x00050098u, 0x00000066u, 0x00000640u, + 0x000005b6u, 0x0000063fu, 0x00050051u, 0x00000007u, 0x00000641u, 0x00000640u, 0x00000000u, 0x00050051u, + 0x00000007u, 0x00000642u, 0x00000640u, 0x00000001u, 0x0004007cu, 0x0000006bu, 0x00000644u, 0x00000641u, + 0x0004007cu, 0x00000035u, 0x00000646u, 0x000005bau, 0x00070050u, 0x0000006bu, 0x00000647u, 0x00000646u, + 0x00000646u, 0x00000646u, 0x00000646u, 0x00050095u, 0x00000072u, 0x00000648u, 0x00000644u, 0x00000647u, + 0x00050051u, 0x0000006bu, 0x00000649u, 0x00000648u, 0x00000001u, 0x00050051u, 0x0000006bu, 0x0000064au, + 0x00000648u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x0000064bu, 0x0000064au, 0x0004007cu, 0x00000007u, + 0x0000064du, 0x00000649u, 0x00050080u, 0x00000007u, 0x0000064fu, 0x00000642u, 0x0000064du, 0x00050084u, + 0x00000006u, 0x000005c6u, 0x00000262u, 0x0000052du, 0x00070050u, 0x00000007u, 0x000005c7u, 0x000005c6u, + 0x000005c6u, 0x000005c6u, 0x000005c6u, 0x000500b1u, 0x000000d7u, 0x000005c8u, 0x00000539u, 0x000005c7u, + 0x000600a9u, 0x00000007u, 0x000005c9u, 0x000005c8u, 0x00000631u, 0x0000064bu, 0x000600a9u, 0x00000007u, + 0x000005d4u, 0x000005c8u, 0x00000635u, 0x0000064fu, 0x000500adu, 0x000000d7u, 0x000005d7u, 0x0000061bu, + 0x000000e9u, 0x000600a9u, 0x00000007u, 0x000005d8u, 0x000005d7u, 0x000000e7u, 0x00000617u, 0x000500b1u, + 0x000000d7u, 0x000005dbu, 0x0000061bu, 0x000000f1u, 0x000600a9u, 0x00000007u, 0x000005dcu, 0x000005dbu, + 0x000000eeu, 0x000005d8u, 0x000500adu, 0x000000d7u, 0x000005dfu, 0x000005d4u, 0x000000e9u, 0x000600a9u, + 0x00000007u, 0x000005e0u, 0x000005dfu, 0x000000e7u, 0x000005c9u, 0x000500b1u, 0x000000d7u, 0x000005e3u, + 0x000005d4u, 0x000000f1u, 0x000600a9u, 0x00000007u, 0x000005e4u, 0x000005e3u, 0x000000eeu, 0x000005e0u, + 0x000500c3u, 0x00000007u, 0x00000656u, 0x000005dcu, 0x0000074bu, 0x000500c3u, 0x00000007u, 0x0000065bu, + 0x000005e4u, 0x0000074bu, 0x00070050u, 0x000000d7u, 0x00000752u, 0x00000528u, 0x00000528u, 0x00000528u, + 0x00000528u, 0x000600a9u, 0x00000007u, 0x00000753u, 0x00000752u, 0x0000065bu, 0x00000656u, 0x000600a9u, + 0x00000007u, 0x00000755u, 0x00000752u, 0x00000656u, 0x0000065bu, 0x0006000cu, 0x00000007u, 0x000005f2u, + 0x00000001u, 0x00000005u, 0x00000755u, 0x0006000cu, 0x00000007u, 0x000005f4u, 0x00000001u, 0x00000005u, + 0x00000753u, 0x0007000cu, 0x00000007u, 0x000005f5u, 0x00000001u, 0x0000002au, 0x000005f2u, 0x000005f4u, + 0x0007004fu, 0x00000022u, 0x00000660u, 0x000005f5u, 0x000005f5u, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x00000022u, 0x00000662u, 0x000005f5u, 0x000005f5u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, + 0x00000663u, 0x00000001u, 0x0000002au, 0x00000660u, 0x00000662u, 0x00050051u, 0x00000006u, 0x00000665u, + 0x00000663u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000667u, 0x00000663u, 0x00000001u, 0x0007000cu, + 0x00000006u, 0x00000668u, 0x00000001u, 0x0000002au, 0x00000665u, 0x00000667u, 0x00050084u, 0x00000006u, + 0x000005f9u, 0x00000117u, 0x00000262u, 0x000500b3u, 0x00000020u, 0x000005fau, 0x00000668u, 0x000005f9u, + 0x000300f7u, 0x00000602u, 0x00000000u, 0x000400fau, 0x000005fau, 0x000005fbu, 0x00000601u, 0x000200f8u, + 0x000005fbu, 0x0007004fu, 0x00000022u, 0x0000066du, 0x00000755u, 0x00000755u, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x00000022u, 0x0000066fu, 0x00000755u, 0x00000755u, 0x00000002u, 0x00000003u, 0x0007000cu, + 0x00000022u, 0x00000670u, 0x00000001u, 0x00000027u, 0x0000066du, 0x0000066fu, 0x00050051u, 0x00000006u, + 0x00000672u, 0x00000670u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000674u, 0x00000670u, 0x00000001u, + 0x0007000cu, 0x00000006u, 0x00000675u, 0x00000001u, 0x00000027u, 0x00000672u, 0x00000674u, 0x0007004fu, + 0x00000022u, 0x0000067au, 0x00000753u, 0x00000753u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, + 0x0000067cu, 0x00000753u, 0x00000753u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x0000067du, + 0x00000001u, 0x0000002au, 0x0000067au, 0x0000067cu, 0x00050051u, 0x00000006u, 0x0000067fu, 0x0000067du, + 0x00000000u, 0x00050051u, 0x00000006u, 0x00000681u, 0x0000067du, 0x00000001u, 0x0007000cu, 0x00000006u, + 0x00000682u, 0x00000001u, 0x0000002au, 0x0000067fu, 0x00000681u, 0x00050050u, 0x00000022u, 0x00000600u, + 0x00000675u, 0x00000682u, 0x000200f9u, 0x00000602u, 0x000200f8u, 0x00000601u, 0x000200f9u, 0x00000602u, + 0x000200f8u, 0x00000602u, 0x000700f5u, 0x00000022u, 0x0000073cu, 0x00000600u, 0x000005fbu, 0x00000126u, + 0x00000601u, 0x000500c7u, 0x00000006u, 0x00000543u, 0x00000526u, 0x00000189u, 0x000500abu, 0x00000020u, + 0x00000544u, 0x00000543u, 0x00000099u, 0x000600a9u, 0x00000006u, 0x00000545u, 0x00000544u, 0x00000088u, + 0x00000080u, 0x000500c3u, 0x00000006u, 0x00000549u, 0x000004bfu, 0x000000c1u, 0x00050084u, 0x00000006u, + 0x0000054au, 0x00000262u, 0x00000549u, 0x00050080u, 0x00000006u, 0x0000054fu, 0x000004c3u, 0x00000545u, + 0x000500c3u, 0x00000006u, 0x00000550u, 0x0000054fu, 0x000000c1u, 0x00050084u, 0x00000006u, 0x00000551u, + 0x00000262u, 0x00000550u, 0x00050082u, 0x00000006u, 0x00000552u, 0x00000551u, 0x000000adu, 0x00050050u, + 0x00000022u, 0x00000553u, 0x0000054au, 0x00000552u, 0x0007004fu, 0x00000022u, 0x00000556u, 0x00000553u, + 0x00000553u, 0x00000000u, 0x00000000u, 0x0007004fu, 0x00000022u, 0x00000558u, 0x00000553u, 0x00000553u, + 0x00000001u, 0x00000001u, 0x0008000cu, 0x00000022u, 0x00000559u, 0x00000001u, 0x0000002du, 0x0000073cu, + 0x00000556u, 0x00000558u, 0x00050051u, 0x00000006u, 0x0000055bu, 0x00000559u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x0000055du, 0x00000232u, 0x00000000u, 0x0007000cu, 0x00000006u, 0x0000055eu, 0x00000001u, + 0x0000002au, 0x0000055bu, 0x0000055du, 0x00050051u, 0x00000006u, 0x00000561u, 0x00000559u, 0x00000001u, + 0x00050051u, 0x00000006u, 0x00000563u, 0x0000023cu, 0x00000000u, 0x0007000cu, 0x00000006u, 0x00000564u, + 0x00000001u, 0x00000027u, 0x00000561u, 0x00000563u, 0x000500b3u, 0x00000020u, 0x0000056au, 0x0000055eu, + 0x00000564u, 0x000200f9u, 0x0000056bu, 0x000200f8u, 0x0000056bu, 0x000700f5u, 0x00000020u, 0x00000741u, + 0x0000015cu, 0x00000521u, 0x0000056au, 0x00000602u, 0x000300f7u, 0x0000029eu, 0x00000000u, 0x000400fau, + 0x00000741u, 0x0000029du, 0x0000029eu, 0x000200f8u, 0x0000029du, 0x000500c5u, 0x00000035u, 0x000002a2u, + 0x00000739u, 0x00000281u, 0x000200f9u, 0x0000029eu, 0x000200f8u, 0x0000029eu, 0x000700f5u, 0x00000035u, + 0x00000749u, 0x00000739u, 0x0000056bu, 0x000002a2u, 0x0000029du, 0x000200f9u, 0x00000279u, 0x000200f8u, + 0x00000279u, 0x000200f9u, 0x00000276u, 0x000200f8u, 0x00000278u, 0x00050084u, 0x00000006u, 0x000002aau, + 0x00000217u, 0x000002a9u, 0x00050080u, 0x00000006u, 0x000002acu, 0x000002aau, 0x000001f6u, 0x00060041u, + 0x000002aeu, 0x000002afu, 0x000002a6u, 0x00000099u, 0x000002acu, 0x0003003eu, 0x000002afu, 0x00000739u, + 0x000500abu, 0x00000020u, 0x000002b1u, 0x00000739u, 0x0000004bu, 0x000300f7u, 0x000002b3u, 0x00000000u, + 0x000400fau, 0x000002b1u, 0x000002b2u, 0x000002bdu, 0x000200f8u, 0x000002b2u, 0x00060041u, 0x000002aeu, + 0x000002b9u, 0x000002b7u, 0x00000099u, 0x00000217u, 0x000500c4u, 0x00000035u, 0x000002bbu, 0x0000004eu, + 0x000001f6u, 0x000700f1u, 0x00000035u, 0x000002bcu, 0x000002b9u, 0x0000004eu, 0x0000004bu, 0x000002bbu, + 0x000200f9u, 0x000002b3u, 0x000200f8u, 0x000002bdu, 0x00060041u, 0x000002aeu, 0x000002bfu, 0x000002b7u, + 0x00000099u, 0x00000217u, 0x000500c4u, 0x00000035u, 0x000002c1u, 0x0000004eu, 0x000001f6u, 0x000400c8u, + 0x00000035u, 0x000002c2u, 0x000002c1u, 0x000700f0u, 0x00000035u, 0x000002c3u, 0x000002bfu, 0x0000004eu, + 0x0000004bu, 0x000002c2u, 0x000200f9u, 0x000002b3u, 0x000200f8u, 0x000002b3u, 0x000100fdu, 0x00010038u, + 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000767u, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, + 0x00000016u, 0x00020011u, 0x00000027u, 0x00020011u, 0x0000003du, 0x00020011u, 0x00000040u, 0x00020011u, + 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, + 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, + 0x0003000eu, 0x00000000u, 0x00000001u, 0x0009000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, + 0x000001f2u, 0x000001fdu, 0x00000201u, 0x0000020cu, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, + 0x00000001u, 0x00000001u, 0x00050048u, 0x000001b5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x000001b5u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000001b5u, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x000001b5u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000001b5u, + 0x00000004u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x000001b5u, 0x00000005u, 0x00000023u, 0x00000010u, + 0x00050048u, 0x000001b5u, 0x00000006u, 0x00000023u, 0x00000014u, 0x00050048u, 0x000001b5u, 0x00000007u, + 0x00000023u, 0x00000018u, 0x00050048u, 0x000001b5u, 0x00000008u, 0x00000023u, 0x0000001cu, 0x00050048u, + 0x000001b5u, 0x00000009u, 0x00000023u, 0x0000001eu, 0x00050048u, 0x000001b5u, 0x0000000au, 0x00000023u, + 0x0000001fu, 0x00040047u, 0x000001b6u, 0x00000006u, 0x00000020u, 0x00040048u, 0x000001b7u, 0x00000000u, + 0x00000018u, 0x00050048u, 0x000001b7u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001b7u, + 0x00000002u, 0x00040047u, 0x000001b9u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001b9u, 0x00000021u, + 0x00000000u, 0x00040047u, 0x000001dau, 0x00000006u, 0x00000010u, 0x00040048u, 0x000001dbu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x000001dbu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000001dbu, + 0x00000002u, 0x00040047u, 0x000001ddu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000001ddu, 0x00000021u, + 0x00000001u, 0x00040047u, 0x000001f2u, 0x0000000bu, 0x0000001au, 0x00030047u, 0x000001fdu, 0x00000000u, + 0x00040047u, 0x000001fdu, 0x0000000bu, 0x00000029u, 0x00030047u, 0x000001feu, 0x00000000u, 0x00030047u, + 0x000001ffu, 0x00000000u, 0x00030047u, 0x00000201u, 0x00000000u, 0x00040047u, 0x00000201u, 0x0000000bu, + 0x00000024u, 0x00030047u, 0x00000202u, 0x00000000u, 0x00030047u, 0x00000203u, 0x00000000u, 0x00030047u, + 0x00000204u, 0x00000000u, 0x00040047u, 0x0000020cu, 0x0000000bu, 0x00000028u, 0x00040047u, 0x00000214u, + 0x00000001u, 0x00000000u, 0x00040047u, 0x00000215u, 0x0000000bu, 0x00000019u, 0x00040047u, 0x00000222u, + 0x00000001u, 0x00000004u, 0x00040047u, 0x00000223u, 0x00000001u, 0x00000001u, 0x00040047u, 0x0000022cu, + 0x00000001u, 0x00000002u, 0x00050048u, 0x00000240u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x00000240u, 0x00000001u, 0x00000023u, 0x00000008u, 0x00030047u, 0x00000240u, 0x00000002u, 0x00040047u, + 0x00000276u, 0x00000001u, 0x00000006u, 0x00040047u, 0x000002b3u, 0x00000006u, 0x00000004u, 0x00040048u, + 0x000002b4u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000002b4u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000002b4u, 0x00000002u, 0x00040047u, 0x000002b6u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000002b6u, 0x00000021u, 0x00000003u, 0x00040047u, 0x000002b8u, 0x00000001u, 0x00000003u, 0x00040047u, + 0x000002c4u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000002c5u, 0x00000000u, 0x00000019u, 0x00050048u, + 0x000002c5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002c5u, 0x00000002u, 0x00040047u, + 0x000002c7u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000002c7u, 0x00000021u, 0x00000004u, 0x00020013u, + 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, + 0x00040017u, 0x00000007u, 0x00000006u, 0x00000004u, 0x00040015u, 0x0000001cu, 0x00000010u, 0x00000001u, + 0x00040015u, 0x0000001du, 0x00000008u, 0x00000000u, 0x00020014u, 0x00000020u, 0x00040017u, 0x00000022u, + 0x00000006u, 0x00000002u, 0x00040015u, 0x00000035u, 0x00000020u, 0x00000000u, 0x0004002bu, 0x00000006u, + 0x00000040u, 0x0000000fu, 0x0004002bu, 0x00000035u, 0x0000004bu, 0x00000000u, 0x0004002bu, 0x00000035u, + 0x0000004eu, 0x00000001u, 0x0004001eu, 0x00000066u, 0x00000007u, 0x00000007u, 0x00040017u, 0x0000006bu, + 0x00000035u, 0x00000004u, 0x0004001eu, 0x00000072u, 0x0000006bu, 0x0000006bu, 0x0004002bu, 0x00000006u, + 0x00000080u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x00000085u, 0xfffffffcu, 0x0004002bu, 0x00000006u, + 0x00000088u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x00000099u, 0x00000000u, 0x0004002bu, 0x00000006u, + 0x000000adu, 0x00000001u, 0x0004002bu, 0x00000006u, 0x000000bfu, 0x00000007u, 0x0004002bu, 0x00000006u, + 0x000000c1u, 0x00000002u, 0x00040017u, 0x000000d7u, 0x00000020u, 0x00000004u, 0x0004002bu, 0x00000006u, + 0x000000e6u, 0x7fffffffu, 0x0007002cu, 0x00000007u, 0x000000e7u, 0x000000e6u, 0x000000e6u, 0x000000e6u, + 0x000000e6u, 0x0007002cu, 0x00000007u, 0x000000e9u, 0x00000099u, 0x00000099u, 0x00000099u, 0x00000099u, + 0x0004002bu, 0x00000006u, 0x000000edu, 0x80000000u, 0x0007002cu, 0x00000007u, 0x000000eeu, 0x000000edu, + 0x000000edu, 0x000000edu, 0x000000edu, 0x0004002bu, 0x00000006u, 0x000000f0u, 0xffffffffu, 0x0007002cu, + 0x00000007u, 0x000000f1u, 0x000000f0u, 0x000000f0u, 0x000000f0u, 0x000000f0u, 0x0004002bu, 0x00000006u, + 0x00000117u, 0x000007ffu, 0x0005002cu, 0x00000022u, 0x00000126u, 0x00000099u, 0x000000e6u, 0x0004002bu, + 0x00000006u, 0x00000150u, 0x00000008u, 0x0003002au, 0x00000020u, 0x0000015cu, 0x0005002cu, 0x00000022u, + 0x0000016fu, 0x000000f0u, 0x00000099u, 0x0004002bu, 0x00000006u, 0x00000189u, 0x00000080u, 0x000d001eu, + 0x000001b5u, 0x00000006u, 0x00000006u, 0x00000006u, 0x0000001cu, 0x0000001cu, 0x00000006u, 0x00000006u, + 0x00000006u, 0x0000001cu, 0x0000001du, 0x0000001du, 0x0003001du, 0x000001b6u, 0x000001b5u, 0x0003001eu, + 0x000001b7u, 0x000001b6u, 0x00040020u, 0x000001b8u, 0x0000000cu, 0x000001b7u, 0x0004003bu, 0x000001b8u, + 0x000001b9u, 0x0000000cu, 0x00040020u, 0x000001bbu, 0x0000000cu, 0x000001b5u, 0x0003001du, 0x000001dau, + 0x00000007u, 0x0003001eu, 0x000001dbu, 0x000001dau, 0x00040020u, 0x000001dcu, 0x0000000cu, 0x000001dbu, + 0x0004003bu, 0x000001dcu, 0x000001ddu, 0x0000000cu, 0x00040020u, 0x000001dfu, 0x0000000cu, 0x00000007u, + 0x0004002bu, 0x00000035u, 0x000001e9u, 0x00000003u, 0x00040017u, 0x000001f0u, 0x00000035u, 0x00000003u, + 0x00040020u, 0x000001f1u, 0x00000001u, 0x000001f0u, 0x0004003bu, 0x000001f1u, 0x000001f2u, 0x00000001u, + 0x00040020u, 0x000001f3u, 0x00000001u, 0x00000035u, 0x00040017u, 0x000001f8u, 0x00000035u, 0x00000002u, + 0x0004003bu, 0x000001f3u, 0x000001fdu, 0x00000001u, 0x0004003bu, 0x000001f3u, 0x00000201u, 0x00000001u, + 0x0004003bu, 0x000001f3u, 0x0000020cu, 0x00000001u, 0x00040032u, 0x00000035u, 0x00000214u, 0x00000001u, + 0x00060033u, 0x000001f0u, 0x00000215u, 0x00000214u, 0x0000004eu, 0x0000004eu, 0x00060034u, 0x00000035u, + 0x00000216u, 0x00000051u, 0x00000215u, 0x00000000u, 0x00060034u, 0x00000006u, 0x00000217u, 0x00000080u, + 0x00000216u, 0x0000004bu, 0x00060034u, 0x00000006u, 0x00000218u, 0x000000c3u, 0x00000217u, 0x00000080u, + 0x00050033u, 0x00000022u, 0x00000219u, 0x00000150u, 0x00000218u, 0x00040032u, 0x00000006u, 0x00000222u, + 0x00000400u, 0x00040032u, 0x00000006u, 0x00000223u, 0x00000008u, 0x00060034u, 0x00000006u, 0x00000224u, + 0x00000087u, 0x00000222u, 0x00000223u, 0x00060034u, 0x00000006u, 0x0000022bu, 0x00000084u, 0x00000223u, + 0x00000150u, 0x00040032u, 0x00000006u, 0x0000022cu, 0x00000008u, 0x00060034u, 0x00000006u, 0x0000022du, + 0x00000084u, 0x0000022cu, 0x00000218u, 0x00050033u, 0x00000022u, 0x0000022eu, 0x0000022bu, 0x0000022du, + 0x00060034u, 0x00000006u, 0x0000023bu, 0x00000084u, 0x00000223u, 0x00000150u, 0x0004001eu, 0x00000240u, + 0x000001f8u, 0x00000006u, 0x00040020u, 0x00000241u, 0x00000009u, 0x00000240u, 0x0004003bu, 0x00000241u, + 0x00000242u, 0x00000009u, 0x00040020u, 0x00000243u, 0x00000009u, 0x000001f8u, 0x00050033u, 0x00000022u, + 0x0000024cu, 0x00000223u, 0x0000022cu, 0x00050033u, 0x00000022u, 0x00000250u, 0x00000223u, 0x0000022cu, + 0x00040020u, 0x00000259u, 0x00000009u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x0000025eu, 0x00000020u, + 0x00040032u, 0x00000006u, 0x00000276u, 0x00000001u, 0x0003001du, 0x000002b3u, 0x00000035u, 0x0003001eu, + 0x000002b4u, 0x000002b3u, 0x00040020u, 0x000002b5u, 0x0000000cu, 0x000002b4u, 0x0004003bu, 0x000002b5u, + 0x000002b6u, 0x0000000cu, 0x00040032u, 0x00000006u, 0x000002b8u, 0x00000100u, 0x00060034u, 0x00000006u, + 0x000002b9u, 0x00000087u, 0x000002b8u, 0x0000025eu, 0x00040020u, 0x000002beu, 0x0000000cu, 0x00000035u, + 0x0003001du, 0x000002c4u, 0x00000035u, 0x0003001eu, 0x000002c5u, 0x000002c4u, 0x00040020u, 0x000002c6u, + 0x0000000cu, 0x000002c5u, 0x0004003bu, 0x000002c6u, 0x000002c7u, 0x0000000cu, 0x0005002cu, 0x00000022u, + 0x0000075bu, 0x000000adu, 0x000000adu, 0x0007002cu, 0x00000007u, 0x0000075cu, 0x00000040u, 0x00000040u, + 0x00000040u, 0x00000040u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, + 0x00000005u, 0x00050041u, 0x000001f3u, 0x000001f4u, 0x000001f2u, 0x0000004bu, 0x0004003du, 0x00000035u, + 0x000001f5u, 0x000001f4u, 0x0004007cu, 0x00000006u, 0x000001f6u, 0x000001f5u, 0x0004003du, 0x000001f0u, + 0x000001f9u, 0x000001f2u, 0x0007004fu, 0x000001f8u, 0x000001fau, 0x000001f9u, 0x000001f9u, 0x00000001u, + 0x00000002u, 0x0004007cu, 0x00000022u, 0x000001fbu, 0x000001fau, 0x0004003du, 0x00000035u, 0x000001feu, + 0x000001fdu, 0x0004007cu, 0x00000006u, 0x000001ffu, 0x000001feu, 0x0004003du, 0x00000035u, 0x00000202u, + 0x00000201u, 0x0004007cu, 0x00000006u, 0x00000203u, 0x00000202u, 0x000500c3u, 0x00000006u, 0x00000204u, + 0x00000203u, 0x00000080u, 0x000500c7u, 0x00000006u, 0x00000207u, 0x000001ffu, 0x000000bfu, 0x000500c3u, + 0x00000006u, 0x0000020au, 0x000001ffu, 0x00000080u, 0x0004003du, 0x00000035u, 0x0000020du, 0x0000020cu, + 0x0004007cu, 0x00000006u, 0x0000020eu, 0x0000020du, 0x00050084u, 0x00000006u, 0x0000020fu, 0x00000204u, + 0x0000020eu, 0x00050080u, 0x00000006u, 0x00000211u, 0x0000020au, 0x0000020fu, 0x00050084u, 0x00000022u, + 0x0000021au, 0x000001fbu, 0x00000219u, 0x00050050u, 0x00000022u, 0x0000021du, 0x00000207u, 0x00000211u, + 0x00050080u, 0x00000022u, 0x0000021eu, 0x0000021au, 0x0000021du, 0x00050051u, 0x00000006u, 0x00000221u, + 0x0000021eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000225u, 0x00000221u, 0x00000224u, 0x00050051u, + 0x00000006u, 0x00000227u, 0x0000021eu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00000228u, 0x00000225u, + 0x00000227u, 0x00050084u, 0x00000022u, 0x0000022fu, 0x000001fbu, 0x0000022eu, 0x00050084u, 0x00000006u, + 0x00000231u, 0x00000204u, 0x0000022cu, 0x00050084u, 0x00000006u, 0x00000234u, 0x00000231u, 0x0000020eu, + 0x00050051u, 0x00000006u, 0x00000236u, 0x0000022fu, 0x00000001u, 0x00050080u, 0x00000006u, 0x00000237u, + 0x00000236u, 0x00000234u, 0x00060052u, 0x00000022u, 0x00000706u, 0x00000237u, 0x0000022fu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000023du, 0x0000022cu, 0x00000204u, 0x00050050u, 0x00000022u, 0x0000023eu, + 0x0000023bu, 0x0000023du, 0x00050080u, 0x00000022u, 0x0000023fu, 0x00000706u, 0x0000023eu, 0x00050041u, + 0x00000243u, 0x00000244u, 0x00000242u, 0x00000099u, 0x0004003du, 0x000001f8u, 0x00000245u, 0x00000244u, + 0x0004007cu, 0x00000022u, 0x00000246u, 0x00000245u, 0x0007000cu, 0x00000022u, 0x00000247u, 0x00000001u, + 0x00000027u, 0x0000023fu, 0x00000246u, 0x00050082u, 0x00000022u, 0x00000249u, 0x00000247u, 0x0000075bu, + 0x00050084u, 0x00000022u, 0x0000024du, 0x0000021eu, 0x0000024cu, 0x00050080u, 0x00000022u, 0x00000251u, + 0x0000024du, 0x00000250u, 0x0007000cu, 0x00000022u, 0x00000255u, 0x00000001u, 0x00000027u, 0x00000251u, + 0x00000246u, 0x00050082u, 0x00000022u, 0x00000257u, 0x00000255u, 0x0000075bu, 0x00050041u, 0x00000259u, + 0x0000025au, 0x00000242u, 0x000000adu, 0x0004003du, 0x00000006u, 0x0000025bu, 0x0000025au, 0x000500b1u, + 0x00000020u, 0x0000025fu, 0x000001ffu, 0x0000025eu, 0x000300f7u, 0x00000261u, 0x00000000u, 0x000400fau, + 0x0000025fu, 0x00000260u, 0x00000261u, 0x000200f8u, 0x00000260u, 0x00050084u, 0x00000006u, 0x00000264u, + 0x000001f6u, 0x0000025eu, 0x00050080u, 0x00000006u, 0x00000266u, 0x00000264u, 0x000001ffu, 0x0004007cu, + 0x00000035u, 0x00000267u, 0x00000266u, 0x0004007cu, 0x00000035u, 0x0000026au, 0x0000025bu, 0x000500b0u, + 0x00000020u, 0x0000026bu, 0x00000267u, 0x0000026au, 0x000300f7u, 0x0000026du, 0x00000000u, 0x000400fau, + 0x0000026bu, 0x0000026cu, 0x0000026du, 0x000200f8u, 0x0000026cu, 0x00060041u, 0x000001dfu, 0x000002ffu, + 0x000001ddu, 0x00000099u, 0x00000267u, 0x0004003du, 0x00000007u, 0x00000300u, 0x000002ffu, 0x00050051u, + 0x00000006u, 0x00000302u, 0x00000300u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000304u, 0x00000300u, + 0x00000001u, 0x00050051u, 0x00000006u, 0x00000306u, 0x00000300u, 0x00000002u, 0x00050051u, 0x00000006u, + 0x00000308u, 0x00000300u, 0x00000003u, 0x00060041u, 0x000001bbu, 0x0000030eu, 0x000001b9u, 0x00000099u, + 0x00000267u, 0x0004003du, 0x000001b5u, 0x0000030fu, 0x0000030eu, 0x00050051u, 0x00000006u, 0x00000310u, + 0x0000030fu, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000312u, 0x0000030fu, 0x00000001u, 0x00050051u, + 0x00000006u, 0x00000314u, 0x0000030fu, 0x00000002u, 0x00050051u, 0x0000001cu, 0x00000316u, 0x0000030fu, + 0x00000003u, 0x00050051u, 0x0000001cu, 0x00000318u, 0x0000030fu, 0x00000004u, 0x00050051u, 0x00000006u, + 0x0000031au, 0x0000030fu, 0x00000005u, 0x00050051u, 0x00000006u, 0x0000031cu, 0x0000030fu, 0x00000006u, + 0x00050051u, 0x00000006u, 0x0000031eu, 0x0000030fu, 0x00000007u, 0x00050051u, 0x0000001cu, 0x00000320u, + 0x0000030fu, 0x00000008u, 0x00050051u, 0x0000001du, 0x00000322u, 0x0000030fu, 0x00000009u, 0x000300f7u, + 0x000003aeu, 0x00000000u, 0x000300fbu, 0x0000004bu, 0x00000336u, 0x000200f8u, 0x00000336u, 0x000500c3u, + 0x00000006u, 0x0000033cu, 0x00000304u, 0x000000c1u, 0x00050084u, 0x00000006u, 0x0000033du, 0x00000276u, + 0x0000033cu, 0x0007000cu, 0x00000006u, 0x0000033eu, 0x00000001u, 0x0000002au, 0x00000237u, 0x0000033du, + 0x00050051u, 0x00000006u, 0x00000341u, 0x00000249u, 0x00000001u, 0x00050080u, 0x00000006u, 0x00000345u, + 0x00000308u, 0x00000080u, 0x000500c3u, 0x00000006u, 0x00000346u, 0x00000345u, 0x000000c1u, 0x00050084u, + 0x00000006u, 0x00000347u, 0x00000276u, 0x00000346u, 0x00050082u, 0x00000006u, 0x00000348u, 0x00000347u, + 0x000000adu, 0x0007000cu, 0x00000006u, 0x00000349u, 0x00000001u, 0x00000027u, 0x00000341u, 0x00000348u, + 0x00050084u, 0x00000006u, 0x0000034du, 0x0000033eu, 0x00000088u, 0x00050084u, 0x00000006u, 0x00000350u, + 0x00000349u, 0x00000088u, 0x00050080u, 0x00000006u, 0x00000351u, 0x00000350u, 0x00000080u, 0x00040072u, + 0x00000006u, 0x00000356u, 0x00000316u, 0x00050084u, 0x00000006u, 0x00000357u, 0x00000276u, 0x00000356u, + 0x0007000cu, 0x00000006u, 0x00000358u, 0x00000001u, 0x0000002au, 0x0000034du, 0x00000357u, 0x00040072u, + 0x00000006u, 0x0000035du, 0x00000320u, 0x00050084u, 0x00000006u, 0x0000035eu, 0x00000276u, 0x0000035du, + 0x00050082u, 0x00000006u, 0x0000035fu, 0x0000035eu, 0x000000adu, 0x0007000cu, 0x00000006u, 0x00000360u, + 0x00000001u, 0x00000027u, 0x00000351u, 0x0000035fu, 0x000500b1u, 0x00000020u, 0x00000363u, 0x00000360u, + 0x00000358u, 0x000300f7u, 0x00000365u, 0x00000000u, 0x000400fau, 0x00000363u, 0x00000364u, 0x00000365u, + 0x000200f8u, 0x00000364u, 0x000200f9u, 0x000003aeu, 0x000200f8u, 0x00000365u, 0x00040071u, 0x00000035u, + 0x00000368u, 0x00000322u, 0x0004007cu, 0x00000006u, 0x00000369u, 0x00000368u, 0x000500c7u, 0x00000006u, + 0x0000036au, 0x00000369u, 0x000000adu, 0x000500abu, 0x00000020u, 0x0000036bu, 0x0000036au, 0x00000099u, + 0x00040072u, 0x00000006u, 0x00000370u, 0x00000318u, 0x00050084u, 0x00000006u, 0x00000372u, 0x00000370u, + 0x00000276u, 0x00050050u, 0x00000022u, 0x00000373u, 0x00000372u, 0x00000372u, 0x00050080u, 0x00000022u, + 0x00000374u, 0x00000373u, 0x0000016fu, 0x00050050u, 0x00000022u, 0x00000376u, 0x00000358u, 0x00000358u, + 0x00050050u, 0x00000022u, 0x00000378u, 0x00000360u, 0x00000360u, 0x0008000cu, 0x00000022u, 0x00000379u, + 0x00000001u, 0x0000002du, 0x00000374u, 0x00000376u, 0x00000378u, 0x00050051u, 0x00000006u, 0x0000037au, + 0x00000379u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000037bu, 0x00000379u, 0x00000001u, 0x00070050u, + 0x00000007u, 0x0000037cu, 0x00000358u, 0x00000360u, 0x0000037au, 0x0000037bu, 0x000500c7u, 0x00000006u, + 0x000003d4u, 0x00000356u, 0x00000085u, 0x00050084u, 0x00000006u, 0x000003dau, 0x000003d4u, 0x00000276u, + 0x00070050u, 0x00000007u, 0x000003e0u, 0x000003dau, 0x000003dau, 0x000003dau, 0x000003dau, 0x00050082u, + 0x00000007u, 0x000003e1u, 0x0000037cu, 0x000003e0u, 0x00050084u, 0x00000006u, 0x000003e5u, 0x00000276u, + 0x00000310u, 0x00070050u, 0x00000007u, 0x0000044eu, 0x0000031au, 0x0000031au, 0x0000031au, 0x0000031au, + 0x00050098u, 0x00000066u, 0x0000044fu, 0x000003e1u, 0x0000044eu, 0x00050051u, 0x00000007u, 0x00000450u, + 0x0000044fu, 0x00000000u, 0x00050051u, 0x00000007u, 0x00000451u, 0x0000044fu, 0x00000001u, 0x0004007cu, + 0x0000006bu, 0x00000453u, 0x00000450u, 0x0004007cu, 0x00000035u, 0x00000455u, 0x000003e5u, 0x00070050u, + 0x0000006bu, 0x00000456u, 0x00000455u, 0x00000455u, 0x00000455u, 0x00000455u, 0x00050095u, 0x00000072u, + 0x00000457u, 0x00000453u, 0x00000456u, 0x00050051u, 0x0000006bu, 0x00000458u, 0x00000457u, 0x00000001u, + 0x00050051u, 0x0000006bu, 0x00000459u, 0x00000457u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x0000045au, + 0x00000459u, 0x0004007cu, 0x00000007u, 0x0000045cu, 0x00000458u, 0x00050080u, 0x00000007u, 0x0000045eu, + 0x00000451u, 0x0000045cu, 0x00050084u, 0x00000006u, 0x000003f1u, 0x00000276u, 0x00000312u, 0x00070050u, + 0x00000007u, 0x00000468u, 0x0000031cu, 0x0000031cu, 0x0000031cu, 0x0000031cu, 0x00050098u, 0x00000066u, + 0x00000469u, 0x000003e1u, 0x00000468u, 0x00050051u, 0x00000007u, 0x0000046au, 0x00000469u, 0x00000000u, + 0x00050051u, 0x00000007u, 0x0000046bu, 0x00000469u, 0x00000001u, 0x0004007cu, 0x0000006bu, 0x0000046du, + 0x0000046au, 0x0004007cu, 0x00000035u, 0x0000046fu, 0x000003f1u, 0x00070050u, 0x0000006bu, 0x00000470u, + 0x0000046fu, 0x0000046fu, 0x0000046fu, 0x0000046fu, 0x00050095u, 0x00000072u, 0x00000471u, 0x0000046du, + 0x00000470u, 0x00050051u, 0x0000006bu, 0x00000472u, 0x00000471u, 0x00000001u, 0x00050051u, 0x0000006bu, + 0x00000473u, 0x00000471u, 0x00000000u, 0x0004007cu, 0x00000007u, 0x00000474u, 0x00000473u, 0x0004007cu, + 0x00000007u, 0x00000476u, 0x00000472u, 0x00050080u, 0x00000007u, 0x00000478u, 0x0000046bu, 0x00000476u, + 0x00070050u, 0x00000007u, 0x000003f8u, 0x00000372u, 0x00000372u, 0x00000372u, 0x00000372u, 0x00050082u, + 0x00000007u, 0x000003f9u, 0x0000037cu, 0x000003f8u, 0x00050084u, 0x00000006u, 0x000003fdu, 0x00000276u, + 0x00000314u, 0x00070050u, 0x00000007u, 0x00000482u, 0x0000031eu, 0x0000031eu, 0x0000031eu, 0x0000031eu, + 0x00050098u, 0x00000066u, 0x00000483u, 0x000003f9u, 0x00000482u, 0x00050051u, 0x00000007u, 0x00000484u, + 0x00000483u, 0x00000000u, 0x00050051u, 0x00000007u, 0x00000485u, 0x00000483u, 0x00000001u, 0x0004007cu, + 0x0000006bu, 0x00000487u, 0x00000484u, 0x0004007cu, 0x00000035u, 0x00000489u, 0x000003fdu, 0x00070050u, + 0x0000006bu, 0x0000048au, 0x00000489u, 0x00000489u, 0x00000489u, 0x00000489u, 0x00050095u, 0x00000072u, + 0x0000048bu, 0x00000487u, 0x0000048au, 0x00050051u, 0x0000006bu, 0x0000048cu, 0x0000048bu, 0x00000001u, + 0x00050051u, 0x0000006bu, 0x0000048du, 0x0000048bu, 0x00000000u, 0x0004007cu, 0x00000007u, 0x0000048eu, + 0x0000048du, 0x0004007cu, 0x00000007u, 0x00000490u, 0x0000048cu, 0x00050080u, 0x00000007u, 0x00000492u, + 0x00000485u, 0x00000490u, 0x00050084u, 0x00000006u, 0x00000409u, 0x00000276u, 0x00000370u, 0x00070050u, + 0x00000007u, 0x0000040au, 0x00000409u, 0x00000409u, 0x00000409u, 0x00000409u, 0x000500b1u, 0x000000d7u, + 0x0000040bu, 0x0000037cu, 0x0000040au, 0x000600a9u, 0x00000007u, 0x0000040cu, 0x0000040bu, 0x00000474u, + 0x0000048eu, 0x000600a9u, 0x00000007u, 0x00000417u, 0x0000040bu, 0x00000478u, 0x00000492u, 0x000500adu, + 0x000000d7u, 0x0000041au, 0x0000045eu, 0x000000e9u, 0x000600a9u, 0x00000007u, 0x0000041bu, 0x0000041au, + 0x000000e7u, 0x0000045au, 0x000500b1u, 0x000000d7u, 0x0000041eu, 0x0000045eu, 0x000000f1u, 0x000600a9u, + 0x00000007u, 0x0000041fu, 0x0000041eu, 0x000000eeu, 0x0000041bu, 0x000500adu, 0x000000d7u, 0x00000422u, + 0x00000417u, 0x000000e9u, 0x000600a9u, 0x00000007u, 0x00000423u, 0x00000422u, 0x000000e7u, 0x0000040cu, + 0x000500b1u, 0x000000d7u, 0x00000426u, 0x00000417u, 0x000000f1u, 0x000600a9u, 0x00000007u, 0x00000427u, + 0x00000426u, 0x000000eeu, 0x00000423u, 0x000500c3u, 0x00000007u, 0x00000499u, 0x0000041fu, 0x0000075cu, + 0x000500c3u, 0x00000007u, 0x0000049eu, 0x00000427u, 0x0000075cu, 0x00070050u, 0x000000d7u, 0x0000075fu, + 0x0000036bu, 0x0000036bu, 0x0000036bu, 0x0000036bu, 0x000600a9u, 0x00000007u, 0x00000760u, 0x0000075fu, + 0x0000049eu, 0x00000499u, 0x000600a9u, 0x00000007u, 0x00000762u, 0x0000075fu, 0x00000499u, 0x0000049eu, + 0x0006000cu, 0x00000007u, 0x00000435u, 0x00000001u, 0x00000005u, 0x00000762u, 0x0006000cu, 0x00000007u, + 0x00000437u, 0x00000001u, 0x00000005u, 0x00000760u, 0x0007000cu, 0x00000007u, 0x00000438u, 0x00000001u, + 0x0000002au, 0x00000435u, 0x00000437u, 0x0007004fu, 0x00000022u, 0x000004a3u, 0x00000438u, 0x00000438u, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x000004a5u, 0x00000438u, 0x00000438u, 0x00000002u, + 0x00000003u, 0x0007000cu, 0x00000022u, 0x000004a6u, 0x00000001u, 0x0000002au, 0x000004a3u, 0x000004a5u, + 0x00050051u, 0x00000006u, 0x000004a8u, 0x000004a6u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000004aau, + 0x000004a6u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x000004abu, 0x00000001u, 0x0000002au, 0x000004a8u, + 0x000004aau, 0x00050084u, 0x00000006u, 0x0000043cu, 0x00000117u, 0x00000276u, 0x000500b3u, 0x00000020u, + 0x0000043du, 0x000004abu, 0x0000043cu, 0x000300f7u, 0x00000445u, 0x00000000u, 0x000400fau, 0x0000043du, + 0x0000043eu, 0x00000444u, 0x000200f8u, 0x0000043eu, 0x0007004fu, 0x00000022u, 0x000004b0u, 0x00000762u, + 0x00000762u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x000004b2u, 0x00000762u, 0x00000762u, + 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x000004b3u, 0x00000001u, 0x00000027u, 0x000004b0u, + 0x000004b2u, 0x00050051u, 0x00000006u, 0x000004b5u, 0x000004b3u, 0x00000000u, 0x00050051u, 0x00000006u, + 0x000004b7u, 0x000004b3u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x000004b8u, 0x00000001u, 0x00000027u, + 0x000004b5u, 0x000004b7u, 0x0007004fu, 0x00000022u, 0x000004bdu, 0x00000760u, 0x00000760u, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x00000022u, 0x000004bfu, 0x00000760u, 0x00000760u, 0x00000002u, 0x00000003u, + 0x0007000cu, 0x00000022u, 0x000004c0u, 0x00000001u, 0x0000002au, 0x000004bdu, 0x000004bfu, 0x00050051u, + 0x00000006u, 0x000004c2u, 0x000004c0u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000004c4u, 0x000004c0u, + 0x00000001u, 0x0007000cu, 0x00000006u, 0x000004c5u, 0x00000001u, 0x0000002au, 0x000004c2u, 0x000004c4u, + 0x00050050u, 0x00000022u, 0x00000443u, 0x000004b8u, 0x000004c5u, 0x000200f9u, 0x00000445u, 0x000200f8u, + 0x00000444u, 0x000200f9u, 0x00000445u, 0x000200f8u, 0x00000445u, 0x000700f5u, 0x00000022u, 0x00000741u, + 0x00000443u, 0x0000043eu, 0x00000126u, 0x00000444u, 0x000500c7u, 0x00000006u, 0x00000386u, 0x00000369u, + 0x00000189u, 0x000500abu, 0x00000020u, 0x00000387u, 0x00000386u, 0x00000099u, 0x000600a9u, 0x00000006u, + 0x00000388u, 0x00000387u, 0x00000088u, 0x00000080u, 0x000500c3u, 0x00000006u, 0x0000038cu, 0x00000302u, + 0x000000c1u, 0x00050084u, 0x00000006u, 0x0000038du, 0x00000276u, 0x0000038cu, 0x00050080u, 0x00000006u, + 0x00000392u, 0x00000306u, 0x00000388u, 0x000500c3u, 0x00000006u, 0x00000393u, 0x00000392u, 0x000000c1u, + 0x00050084u, 0x00000006u, 0x00000394u, 0x00000276u, 0x00000393u, 0x00050082u, 0x00000006u, 0x00000395u, + 0x00000394u, 0x000000adu, 0x00050050u, 0x00000022u, 0x00000396u, 0x0000038du, 0x00000395u, 0x0007004fu, + 0x00000022u, 0x00000399u, 0x00000396u, 0x00000396u, 0x00000000u, 0x00000000u, 0x0007004fu, 0x00000022u, + 0x0000039bu, 0x00000396u, 0x00000396u, 0x00000001u, 0x00000001u, 0x0008000cu, 0x00000022u, 0x0000039cu, + 0x00000001u, 0x0000002du, 0x00000741u, 0x00000399u, 0x0000039bu, 0x00050051u, 0x00000006u, 0x0000039eu, + 0x0000039cu, 0x00000000u, 0x00050051u, 0x00000006u, 0x000003a0u, 0x0000022fu, 0x00000000u, 0x0007000cu, + 0x00000006u, 0x000003a1u, 0x00000001u, 0x0000002au, 0x0000039eu, 0x000003a0u, 0x00050051u, 0x00000006u, + 0x000003a4u, 0x0000039cu, 0x00000001u, 0x00050051u, 0x00000006u, 0x000003a6u, 0x00000249u, 0x00000000u, + 0x0007000cu, 0x00000006u, 0x000003a7u, 0x00000001u, 0x00000027u, 0x000003a4u, 0x000003a6u, 0x000500b3u, + 0x00000020u, 0x000003adu, 0x000003a1u, 0x000003a7u, 0x000200f9u, 0x000003aeu, 0x000200f8u, 0x000003aeu, + 0x000700f5u, 0x00000020u, 0x00000746u, 0x0000015cu, 0x00000364u, 0x000003adu, 0x00000445u, 0x000200f9u, + 0x0000026du, 0x000200f8u, 0x0000026du, 0x000700f5u, 0x00000020u, 0x00000748u, 0x0000015cu, 0x00000260u, + 0x00000746u, 0x000003aeu, 0x000200f9u, 0x00000261u, 0x000200f8u, 0x00000261u, 0x000700f5u, 0x00000020u, + 0x00000747u, 0x0000015cu, 0x00000005u, 0x00000748u, 0x0000026du, 0x00050153u, 0x0000006bu, 0x00000283u, + 0x000001e9u, 0x00000747u, 0x00050051u, 0x00000035u, 0x00000284u, 0x00000283u, 0x00000000u, 0x000200f9u, + 0x00000286u, 0x000200f8u, 0x00000286u, 0x000700f5u, 0x00000035u, 0x0000074au, 0x0000004bu, 0x00000261u, + 0x0000075au, 0x00000289u, 0x000700f5u, 0x00000035u, 0x00000749u, 0x00000284u, 0x00000261u, 0x00000294u, + 0x00000289u, 0x000500abu, 0x00000020u, 0x0000028cu, 0x00000749u, 0x0000004bu, 0x000400f6u, 0x00000288u, + 0x00000289u, 0x00000000u, 0x000400fau, 0x0000028cu, 0x00000287u, 0x00000288u, 0x000200f8u, 0x00000287u, + 0x0006000cu, 0x00000006u, 0x0000028fu, 0x00000001u, 0x00000049u, 0x00000749u, 0x000500c4u, 0x00000035u, + 0x00000291u, 0x0000004eu, 0x0000028fu, 0x000400c8u, 0x00000035u, 0x00000292u, 0x00000291u, 0x000500c7u, + 0x00000035u, 0x00000294u, 0x00000749u, 0x00000292u, 0x00050084u, 0x00000006u, 0x00000297u, 0x000001f6u, + 0x0000025eu, 0x00050080u, 0x00000006u, 0x00000299u, 0x00000297u, 0x0000028fu, 0x0004007cu, 0x00000035u, + 0x0000029au, 0x00000299u, 0x00060041u, 0x000001dfu, 0x000004cau, 0x000001ddu, 0x00000099u, 0x0000029au, + 0x0004003du, 0x00000007u, 0x000004cbu, 0x000004cau, 0x00050051u, 0x00000006u, 0x000004cdu, 0x000004cbu, + 0x00000000u, 0x00050051u, 0x00000006u, 0x000004cfu, 0x000004cbu, 0x00000001u, 0x00050051u, 0x00000006u, + 0x000004d1u, 0x000004cbu, 0x00000002u, 0x00050051u, 0x00000006u, 0x000004d3u, 0x000004cbu, 0x00000003u, + 0x00060041u, 0x000001bbu, 0x000004d9u, 0x000001b9u, 0x00000099u, 0x0000029au, 0x0004003du, 0x000001b5u, + 0x000004dau, 0x000004d9u, 0x00050051u, 0x00000006u, 0x000004dbu, 0x000004dau, 0x00000000u, 0x00050051u, + 0x00000006u, 0x000004ddu, 0x000004dau, 0x00000001u, 0x00050051u, 0x00000006u, 0x000004dfu, 0x000004dau, + 0x00000002u, 0x00050051u, 0x0000001cu, 0x000004e1u, 0x000004dau, 0x00000003u, 0x00050051u, 0x0000001cu, + 0x000004e3u, 0x000004dau, 0x00000004u, 0x00050051u, 0x00000006u, 0x000004e5u, 0x000004dau, 0x00000005u, + 0x00050051u, 0x00000006u, 0x000004e7u, 0x000004dau, 0x00000006u, 0x00050051u, 0x00000006u, 0x000004e9u, + 0x000004dau, 0x00000007u, 0x00050051u, 0x0000001cu, 0x000004ebu, 0x000004dau, 0x00000008u, 0x00050051u, + 0x0000001du, 0x000004edu, 0x000004dau, 0x00000009u, 0x000300f7u, 0x00000579u, 0x00000000u, 0x000300fbu, + 0x0000004bu, 0x00000501u, 0x000200f8u, 0x00000501u, 0x00050051u, 0x00000006u, 0x00000503u, 0x0000024du, + 0x00000001u, 0x000500c3u, 0x00000006u, 0x00000507u, 0x000004cfu, 0x000000c1u, 0x00050084u, 0x00000006u, + 0x00000508u, 0x00000276u, 0x00000507u, 0x0007000cu, 0x00000006u, 0x00000509u, 0x00000001u, 0x0000002au, + 0x00000503u, 0x00000508u, 0x00050051u, 0x00000006u, 0x0000050cu, 0x00000257u, 0x00000001u, 0x00050080u, + 0x00000006u, 0x00000510u, 0x000004d3u, 0x00000080u, 0x000500c3u, 0x00000006u, 0x00000511u, 0x00000510u, + 0x000000c1u, 0x00050084u, 0x00000006u, 0x00000512u, 0x00000276u, 0x00000511u, 0x00050082u, 0x00000006u, + 0x00000513u, 0x00000512u, 0x000000adu, 0x0007000cu, 0x00000006u, 0x00000514u, 0x00000001u, 0x00000027u, + 0x0000050cu, 0x00000513u, 0x00050084u, 0x00000006u, 0x00000518u, 0x00000509u, 0x00000088u, 0x00050084u, + 0x00000006u, 0x0000051bu, 0x00000514u, 0x00000088u, 0x00050080u, 0x00000006u, 0x0000051cu, 0x0000051bu, + 0x00000080u, 0x00040072u, 0x00000006u, 0x00000521u, 0x000004e1u, 0x00050084u, 0x00000006u, 0x00000522u, + 0x00000276u, 0x00000521u, 0x0007000cu, 0x00000006u, 0x00000523u, 0x00000001u, 0x0000002au, 0x00000518u, + 0x00000522u, 0x00040072u, 0x00000006u, 0x00000528u, 0x000004ebu, 0x00050084u, 0x00000006u, 0x00000529u, + 0x00000276u, 0x00000528u, 0x00050082u, 0x00000006u, 0x0000052au, 0x00000529u, 0x000000adu, 0x0007000cu, + 0x00000006u, 0x0000052bu, 0x00000001u, 0x00000027u, 0x0000051cu, 0x0000052au, 0x000500b1u, 0x00000020u, + 0x0000052eu, 0x0000052bu, 0x00000523u, 0x000300f7u, 0x00000530u, 0x00000000u, 0x000400fau, 0x0000052eu, + 0x0000052fu, 0x00000530u, 0x000200f8u, 0x0000052fu, 0x000200f9u, 0x00000579u, 0x000200f8u, 0x00000530u, + 0x00040071u, 0x00000035u, 0x00000533u, 0x000004edu, 0x0004007cu, 0x00000006u, 0x00000534u, 0x00000533u, + 0x000500c7u, 0x00000006u, 0x00000535u, 0x00000534u, 0x000000adu, 0x000500abu, 0x00000020u, 0x00000536u, + 0x00000535u, 0x00000099u, 0x00040072u, 0x00000006u, 0x0000053bu, 0x000004e3u, 0x00050084u, 0x00000006u, + 0x0000053du, 0x0000053bu, 0x00000276u, 0x00050050u, 0x00000022u, 0x0000053eu, 0x0000053du, 0x0000053du, + 0x00050080u, 0x00000022u, 0x0000053fu, 0x0000053eu, 0x0000016fu, 0x00050050u, 0x00000022u, 0x00000541u, + 0x00000523u, 0x00000523u, 0x00050050u, 0x00000022u, 0x00000543u, 0x0000052bu, 0x0000052bu, 0x0008000cu, + 0x00000022u, 0x00000544u, 0x00000001u, 0x0000002du, 0x0000053fu, 0x00000541u, 0x00000543u, 0x00050051u, + 0x00000006u, 0x00000545u, 0x00000544u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000546u, 0x00000544u, + 0x00000001u, 0x00070050u, 0x00000007u, 0x00000547u, 0x00000523u, 0x0000052bu, 0x00000545u, 0x00000546u, + 0x000500c7u, 0x00000006u, 0x0000059fu, 0x00000521u, 0x00000085u, 0x00050084u, 0x00000006u, 0x000005a5u, + 0x0000059fu, 0x00000276u, 0x00070050u, 0x00000007u, 0x000005abu, 0x000005a5u, 0x000005a5u, 0x000005a5u, + 0x000005a5u, 0x00050082u, 0x00000007u, 0x000005acu, 0x00000547u, 0x000005abu, 0x00050084u, 0x00000006u, + 0x000005b0u, 0x00000276u, 0x000004dbu, 0x00070050u, 0x00000007u, 0x00000619u, 0x000004e5u, 0x000004e5u, + 0x000004e5u, 0x000004e5u, 0x00050098u, 0x00000066u, 0x0000061au, 0x000005acu, 0x00000619u, 0x00050051u, + 0x00000007u, 0x0000061bu, 0x0000061au, 0x00000000u, 0x00050051u, 0x00000007u, 0x0000061cu, 0x0000061au, + 0x00000001u, 0x0004007cu, 0x0000006bu, 0x0000061eu, 0x0000061bu, 0x0004007cu, 0x00000035u, 0x00000620u, + 0x000005b0u, 0x00070050u, 0x0000006bu, 0x00000621u, 0x00000620u, 0x00000620u, 0x00000620u, 0x00000620u, + 0x00050095u, 0x00000072u, 0x00000622u, 0x0000061eu, 0x00000621u, 0x00050051u, 0x0000006bu, 0x00000623u, + 0x00000622u, 0x00000001u, 0x00050051u, 0x0000006bu, 0x00000624u, 0x00000622u, 0x00000000u, 0x0004007cu, + 0x00000007u, 0x00000625u, 0x00000624u, 0x0004007cu, 0x00000007u, 0x00000627u, 0x00000623u, 0x00050080u, + 0x00000007u, 0x00000629u, 0x0000061cu, 0x00000627u, 0x00050084u, 0x00000006u, 0x000005bcu, 0x00000276u, + 0x000004ddu, 0x00070050u, 0x00000007u, 0x00000633u, 0x000004e7u, 0x000004e7u, 0x000004e7u, 0x000004e7u, + 0x00050098u, 0x00000066u, 0x00000634u, 0x000005acu, 0x00000633u, 0x00050051u, 0x00000007u, 0x00000635u, + 0x00000634u, 0x00000000u, 0x00050051u, 0x00000007u, 0x00000636u, 0x00000634u, 0x00000001u, 0x0004007cu, + 0x0000006bu, 0x00000638u, 0x00000635u, 0x0004007cu, 0x00000035u, 0x0000063au, 0x000005bcu, 0x00070050u, + 0x0000006bu, 0x0000063bu, 0x0000063au, 0x0000063au, 0x0000063au, 0x0000063au, 0x00050095u, 0x00000072u, + 0x0000063cu, 0x00000638u, 0x0000063bu, 0x00050051u, 0x0000006bu, 0x0000063du, 0x0000063cu, 0x00000001u, + 0x00050051u, 0x0000006bu, 0x0000063eu, 0x0000063cu, 0x00000000u, 0x0004007cu, 0x00000007u, 0x0000063fu, + 0x0000063eu, 0x0004007cu, 0x00000007u, 0x00000641u, 0x0000063du, 0x00050080u, 0x00000007u, 0x00000643u, + 0x00000636u, 0x00000641u, 0x00070050u, 0x00000007u, 0x000005c3u, 0x0000053du, 0x0000053du, 0x0000053du, + 0x0000053du, 0x00050082u, 0x00000007u, 0x000005c4u, 0x00000547u, 0x000005c3u, 0x00050084u, 0x00000006u, + 0x000005c8u, 0x00000276u, 0x000004dfu, 0x00070050u, 0x00000007u, 0x0000064du, 0x000004e9u, 0x000004e9u, + 0x000004e9u, 0x000004e9u, 0x00050098u, 0x00000066u, 0x0000064eu, 0x000005c4u, 0x0000064du, 0x00050051u, + 0x00000007u, 0x0000064fu, 0x0000064eu, 0x00000000u, 0x00050051u, 0x00000007u, 0x00000650u, 0x0000064eu, + 0x00000001u, 0x0004007cu, 0x0000006bu, 0x00000652u, 0x0000064fu, 0x0004007cu, 0x00000035u, 0x00000654u, + 0x000005c8u, 0x00070050u, 0x0000006bu, 0x00000655u, 0x00000654u, 0x00000654u, 0x00000654u, 0x00000654u, + 0x00050095u, 0x00000072u, 0x00000656u, 0x00000652u, 0x00000655u, 0x00050051u, 0x0000006bu, 0x00000657u, + 0x00000656u, 0x00000001u, 0x00050051u, 0x0000006bu, 0x00000658u, 0x00000656u, 0x00000000u, 0x0004007cu, + 0x00000007u, 0x00000659u, 0x00000658u, 0x0004007cu, 0x00000007u, 0x0000065bu, 0x00000657u, 0x00050080u, + 0x00000007u, 0x0000065du, 0x00000650u, 0x0000065bu, 0x00050084u, 0x00000006u, 0x000005d4u, 0x00000276u, + 0x0000053bu, 0x00070050u, 0x00000007u, 0x000005d5u, 0x000005d4u, 0x000005d4u, 0x000005d4u, 0x000005d4u, + 0x000500b1u, 0x000000d7u, 0x000005d6u, 0x00000547u, 0x000005d5u, 0x000600a9u, 0x00000007u, 0x000005d7u, + 0x000005d6u, 0x0000063fu, 0x00000659u, 0x000600a9u, 0x00000007u, 0x000005e2u, 0x000005d6u, 0x00000643u, + 0x0000065du, 0x000500adu, 0x000000d7u, 0x000005e5u, 0x00000629u, 0x000000e9u, 0x000600a9u, 0x00000007u, + 0x000005e6u, 0x000005e5u, 0x000000e7u, 0x00000625u, 0x000500b1u, 0x000000d7u, 0x000005e9u, 0x00000629u, + 0x000000f1u, 0x000600a9u, 0x00000007u, 0x000005eau, 0x000005e9u, 0x000000eeu, 0x000005e6u, 0x000500adu, + 0x000000d7u, 0x000005edu, 0x000005e2u, 0x000000e9u, 0x000600a9u, 0x00000007u, 0x000005eeu, 0x000005edu, + 0x000000e7u, 0x000005d7u, 0x000500b1u, 0x000000d7u, 0x000005f1u, 0x000005e2u, 0x000000f1u, 0x000600a9u, + 0x00000007u, 0x000005f2u, 0x000005f1u, 0x000000eeu, 0x000005eeu, 0x000500c3u, 0x00000007u, 0x00000664u, + 0x000005eau, 0x0000075cu, 0x000500c3u, 0x00000007u, 0x00000669u, 0x000005f2u, 0x0000075cu, 0x00070050u, + 0x000000d7u, 0x00000763u, 0x00000536u, 0x00000536u, 0x00000536u, 0x00000536u, 0x000600a9u, 0x00000007u, + 0x00000764u, 0x00000763u, 0x00000669u, 0x00000664u, 0x000600a9u, 0x00000007u, 0x00000766u, 0x00000763u, + 0x00000664u, 0x00000669u, 0x0006000cu, 0x00000007u, 0x00000600u, 0x00000001u, 0x00000005u, 0x00000766u, + 0x0006000cu, 0x00000007u, 0x00000602u, 0x00000001u, 0x00000005u, 0x00000764u, 0x0007000cu, 0x00000007u, + 0x00000603u, 0x00000001u, 0x0000002au, 0x00000600u, 0x00000602u, 0x0007004fu, 0x00000022u, 0x0000066eu, + 0x00000603u, 0x00000603u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x00000670u, 0x00000603u, + 0x00000603u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x00000671u, 0x00000001u, 0x0000002au, + 0x0000066eu, 0x00000670u, 0x00050051u, 0x00000006u, 0x00000673u, 0x00000671u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x00000675u, 0x00000671u, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000676u, 0x00000001u, + 0x0000002au, 0x00000673u, 0x00000675u, 0x00050084u, 0x00000006u, 0x00000607u, 0x00000117u, 0x00000276u, + 0x000500b3u, 0x00000020u, 0x00000608u, 0x00000676u, 0x00000607u, 0x000300f7u, 0x00000610u, 0x00000000u, + 0x000400fau, 0x00000608u, 0x00000609u, 0x0000060fu, 0x000200f8u, 0x00000609u, 0x0007004fu, 0x00000022u, + 0x0000067bu, 0x00000766u, 0x00000766u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x0000067du, + 0x00000766u, 0x00000766u, 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x0000067eu, 0x00000001u, + 0x00000027u, 0x0000067bu, 0x0000067du, 0x00050051u, 0x00000006u, 0x00000680u, 0x0000067eu, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00000682u, 0x0000067eu, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000683u, + 0x00000001u, 0x00000027u, 0x00000680u, 0x00000682u, 0x0007004fu, 0x00000022u, 0x00000688u, 0x00000764u, + 0x00000764u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x00000022u, 0x0000068au, 0x00000764u, 0x00000764u, + 0x00000002u, 0x00000003u, 0x0007000cu, 0x00000022u, 0x0000068bu, 0x00000001u, 0x0000002au, 0x00000688u, + 0x0000068au, 0x00050051u, 0x00000006u, 0x0000068du, 0x0000068bu, 0x00000000u, 0x00050051u, 0x00000006u, + 0x0000068fu, 0x0000068bu, 0x00000001u, 0x0007000cu, 0x00000006u, 0x00000690u, 0x00000001u, 0x0000002au, + 0x0000068du, 0x0000068fu, 0x00050050u, 0x00000022u, 0x0000060eu, 0x00000683u, 0x00000690u, 0x000200f9u, + 0x00000610u, 0x000200f8u, 0x0000060fu, 0x000200f9u, 0x00000610u, 0x000200f8u, 0x00000610u, 0x000700f5u, + 0x00000022u, 0x0000074du, 0x0000060eu, 0x00000609u, 0x00000126u, 0x0000060fu, 0x000500c7u, 0x00000006u, + 0x00000551u, 0x00000534u, 0x00000189u, 0x000500abu, 0x00000020u, 0x00000552u, 0x00000551u, 0x00000099u, + 0x000600a9u, 0x00000006u, 0x00000553u, 0x00000552u, 0x00000088u, 0x00000080u, 0x000500c3u, 0x00000006u, + 0x00000557u, 0x000004cdu, 0x000000c1u, 0x00050084u, 0x00000006u, 0x00000558u, 0x00000276u, 0x00000557u, + 0x00050080u, 0x00000006u, 0x0000055du, 0x000004d1u, 0x00000553u, 0x000500c3u, 0x00000006u, 0x0000055eu, + 0x0000055du, 0x000000c1u, 0x00050084u, 0x00000006u, 0x0000055fu, 0x00000276u, 0x0000055eu, 0x00050082u, + 0x00000006u, 0x00000560u, 0x0000055fu, 0x000000adu, 0x00050050u, 0x00000022u, 0x00000561u, 0x00000558u, + 0x00000560u, 0x0007004fu, 0x00000022u, 0x00000564u, 0x00000561u, 0x00000561u, 0x00000000u, 0x00000000u, + 0x0007004fu, 0x00000022u, 0x00000566u, 0x00000561u, 0x00000561u, 0x00000001u, 0x00000001u, 0x0008000cu, + 0x00000022u, 0x00000567u, 0x00000001u, 0x0000002du, 0x0000074du, 0x00000564u, 0x00000566u, 0x00050051u, + 0x00000006u, 0x00000569u, 0x00000567u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000056bu, 0x0000024du, + 0x00000000u, 0x0007000cu, 0x00000006u, 0x0000056cu, 0x00000001u, 0x0000002au, 0x00000569u, 0x0000056bu, + 0x00050051u, 0x00000006u, 0x0000056fu, 0x00000567u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000571u, + 0x00000257u, 0x00000000u, 0x0007000cu, 0x00000006u, 0x00000572u, 0x00000001u, 0x00000027u, 0x0000056fu, + 0x00000571u, 0x000500b3u, 0x00000020u, 0x00000578u, 0x0000056cu, 0x00000572u, 0x000200f9u, 0x00000579u, + 0x000200f8u, 0x00000579u, 0x000700f5u, 0x00000020u, 0x00000752u, 0x0000015cu, 0x0000052fu, 0x00000578u, + 0x00000610u, 0x000300f7u, 0x000002aeu, 0x00000000u, 0x000400fau, 0x00000752u, 0x000002adu, 0x000002aeu, + 0x000200f8u, 0x000002adu, 0x000500c5u, 0x00000035u, 0x000002b2u, 0x0000074au, 0x00000291u, 0x000200f9u, + 0x000002aeu, 0x000200f8u, 0x000002aeu, 0x000700f5u, 0x00000035u, 0x0000075au, 0x0000074au, 0x00000579u, + 0x000002b2u, 0x000002adu, 0x000200f9u, 0x00000289u, 0x000200f8u, 0x00000289u, 0x000200f9u, 0x00000286u, + 0x000200f8u, 0x00000288u, 0x00050084u, 0x00000006u, 0x000002bau, 0x00000228u, 0x000002b9u, 0x00050080u, + 0x00000006u, 0x000002bcu, 0x000002bau, 0x000001f6u, 0x00060041u, 0x000002beu, 0x000002bfu, 0x000002b6u, + 0x00000099u, 0x000002bcu, 0x0003003eu, 0x000002bfu, 0x0000074au, 0x000500abu, 0x00000020u, 0x000002c1u, + 0x0000074au, 0x0000004bu, 0x000300f7u, 0x000002c3u, 0x00000000u, 0x000400fau, 0x000002c1u, 0x000002c2u, + 0x000002cdu, 0x000200f8u, 0x000002c2u, 0x00060041u, 0x000002beu, 0x000002c9u, 0x000002c7u, 0x00000099u, + 0x00000228u, 0x000500c4u, 0x00000035u, 0x000002cbu, 0x0000004eu, 0x000001f6u, 0x000700f1u, 0x00000035u, + 0x000002ccu, 0x000002c9u, 0x0000004eu, 0x0000004bu, 0x000002cbu, 0x000200f9u, 0x000002c3u, 0x000200f8u, + 0x000002cdu, 0x00060041u, 0x000002beu, 0x000002cfu, 0x000002c7u, 0x00000099u, 0x00000228u, 0x000500c4u, + 0x00000035u, 0x000002d1u, 0x0000004eu, 0x000001f6u, 0x000400c8u, 0x00000035u, 0x000002d2u, 0x000002d1u, + 0x000700f0u, 0x00000035u, 0x000002d3u, 0x000002cfu, 0x0000004eu, 0x0000004bu, 0x000002d2u, 0x000200f9u, + 0x000002c3u, 0x000200f8u, 0x000002c3u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, + 0x0000bdf5u, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x0000002eu, 0x00020011u, 0x00001151u, + 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, + 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, + 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00001f94u, + 0x00001f9eu, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, 0x00050048u, + 0x00000209u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000209u, 0x00000001u, 0x00000023u, + 0x00000010u, 0x00050048u, 0x00000209u, 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, 0x00000209u, + 0x00000003u, 0x00000023u, 0x00000030u, 0x00050048u, 0x00000209u, 0x00000004u, 0x00000023u, 0x00000040u, + 0x00050048u, 0x00000209u, 0x00000005u, 0x00000023u, 0x00000050u, 0x00050048u, 0x00000209u, 0x00000006u, + 0x00000023u, 0x00000060u, 0x00050048u, 0x00000209u, 0x00000007u, 0x00000023u, 0x00000070u, 0x00040047u, + 0x0000020au, 0x00000006u, 0x00000080u, 0x00040048u, 0x0000020bu, 0x00000000u, 0x00000018u, 0x00050048u, + 0x0000020bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000020bu, 0x00000002u, 0x00040047u, + 0x0000020du, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000020du, 0x00000021u, 0x00000001u, 0x00050048u, + 0x00000233u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000233u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x00000233u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000233u, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000233u, 0x00000004u, 0x00000023u, 0x00000010u, + 0x00050048u, 0x00000233u, 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, 0x00000233u, 0x00000006u, + 0x00000023u, 0x00000018u, 0x00050048u, 0x00000233u, 0x00000007u, 0x00000023u, 0x0000001cu, 0x00050048u, + 0x00000233u, 0x00000008u, 0x00000023u, 0x00000020u, 0x00050048u, 0x00000233u, 0x00000009u, 0x00000023u, + 0x00000024u, 0x00050048u, 0x00000233u, 0x0000000au, 0x00000023u, 0x00000028u, 0x00050048u, 0x00000233u, + 0x0000000bu, 0x00000023u, 0x0000002cu, 0x00050048u, 0x00000233u, 0x0000000cu, 0x00000023u, 0x0000002eu, + 0x00050048u, 0x00000233u, 0x0000000du, 0x00000023u, 0x0000002fu, 0x00050048u, 0x00000233u, 0x0000000eu, + 0x00000023u, 0x00000030u, 0x00040047u, 0x00000234u, 0x00000006u, 0x00000038u, 0x00040048u, 0x00000235u, + 0x00000000u, 0x00000018u, 0x00050048u, 0x00000235u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000235u, 0x00000002u, 0x00040047u, 0x00000237u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000237u, + 0x00000021u, 0x00000002u, 0x00050048u, 0x00000290u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x00000290u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000290u, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x00000290u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000290u, + 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000290u, 0x00000005u, 0x00000023u, 0x00000014u, + 0x00050048u, 0x00000290u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x00000290u, 0x00000007u, + 0x00000023u, 0x0000001cu, 0x00040047u, 0x00000291u, 0x00000006u, 0x00000020u, 0x00040048u, 0x00000292u, + 0x00000000u, 0x00000018u, 0x00050048u, 0x00000292u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000292u, 0x00000002u, 0x00040047u, 0x00000294u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000294u, + 0x00000021u, 0x00000004u, 0x00050048u, 0x000002b3u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x000002b3u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000002b3u, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x000002b3u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000002b3u, + 0x00000004u, 0x00000023u, 0x0000000du, 0x00050048u, 0x000002b3u, 0x00000005u, 0x00000023u, 0x0000000eu, + 0x00050048u, 0x000002b3u, 0x00000006u, 0x00000023u, 0x0000000fu, 0x00040047u, 0x000002b4u, 0x00000006u, + 0x00000010u, 0x00040048u, 0x000002b5u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000002b5u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x000002b5u, 0x00000002u, 0x00040047u, 0x000002b7u, 0x00000022u, + 0x00000001u, 0x00040047u, 0x000002b7u, 0x00000021u, 0x00000005u, 0x00050048u, 0x000002d2u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x000002d2u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x000002d2u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000002d2u, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00050048u, 0x000002d2u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000002d2u, + 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, 0x000002d2u, 0x00000006u, 0x00000023u, 0x00000018u, + 0x00050048u, 0x000002d2u, 0x00000007u, 0x00000023u, 0x00000019u, 0x00050048u, 0x000002d2u, 0x00000008u, + 0x00000023u, 0x0000001au, 0x00050048u, 0x000002d2u, 0x00000009u, 0x00000023u, 0x0000001bu, 0x00050048u, + 0x000002d2u, 0x0000000au, 0x00000023u, 0x0000001cu, 0x00050048u, 0x000002d2u, 0x0000000bu, 0x00000023u, + 0x0000001du, 0x00050048u, 0x000002d2u, 0x0000000cu, 0x00000023u, 0x0000001eu, 0x00050048u, 0x000002d2u, + 0x0000000du, 0x00000023u, 0x0000001fu, 0x00040047u, 0x000002d3u, 0x00000006u, 0x00000020u, 0x00040048u, + 0x000002d4u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000002d4u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000002d4u, 0x00000002u, 0x00040047u, 0x000002d6u, 0x00000022u, 0x00000001u, 0x00040047u, + 0x000002d6u, 0x00000021u, 0x00000007u, 0x00050048u, 0x00000315u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00050048u, 0x00000315u, 0x00000001u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000315u, 0x00000002u, + 0x00000023u, 0x00000020u, 0x00050048u, 0x00000315u, 0x00000003u, 0x00000023u, 0x00000028u, 0x00050048u, + 0x00000315u, 0x00000004u, 0x00000023u, 0x00000030u, 0x00050048u, 0x00000315u, 0x00000005u, 0x00000023u, + 0x00000034u, 0x00050048u, 0x00000315u, 0x00000006u, 0x00000023u, 0x00000038u, 0x00050048u, 0x00000315u, + 0x00000007u, 0x00000023u, 0x0000003cu, 0x00050048u, 0x00000315u, 0x00000008u, 0x00000023u, 0x0000003eu, + 0x00040047u, 0x00000316u, 0x00000006u, 0x00000040u, 0x00040048u, 0x00000317u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x00000317u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000317u, 0x00000002u, + 0x00040047u, 0x00000319u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000319u, 0x00000021u, 0x00000008u, + 0x00050048u, 0x00000342u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000342u, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x00000342u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, + 0x00000342u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00040047u, 0x00000343u, 0x00000006u, 0x00000010u, + 0x00040048u, 0x00000344u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000344u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000344u, 0x00000002u, 0x00040047u, 0x00000346u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000346u, 0x00000021u, 0x00000009u, 0x00040047u, 0x00000509u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000509u, 0x00000021u, 0x0000000au, 0x00040047u, 0x0000065cu, 0x00000001u, 0x00000001u, + 0x00040047u, 0x00000662u, 0x00000001u, 0x00000000u, 0x00040047u, 0x0000066bu, 0x00000006u, 0x00000001u, + 0x00050048u, 0x0000066cu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000066cu, 0x00000002u, + 0x00040047u, 0x0000066eu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000066eu, 0x00000021u, 0x00000000u, + 0x00040047u, 0x0000067au, 0x00000006u, 0x00000001u, 0x00050048u, 0x0000067bu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000067bu, 0x00000002u, 0x00040047u, 0x0000067du, 0x00000022u, 0x00000000u, + 0x00040047u, 0x0000067du, 0x00000021u, 0x00000001u, 0x00040047u, 0x0000068fu, 0x00000006u, 0x00000002u, + 0x00050048u, 0x00000690u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000690u, 0x00000002u, + 0x00040047u, 0x00000692u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000692u, 0x00000021u, 0x00000000u, + 0x00040047u, 0x000006d8u, 0x00000006u, 0x00000004u, 0x00050048u, 0x000006d9u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000006d9u, 0x00000002u, 0x00040047u, 0x000006dbu, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000006dbu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000848u, 0x00000001u, 0x00000007u, + 0x00040047u, 0x00000854u, 0x00000001u, 0x00000002u, 0x00040047u, 0x00000a11u, 0x00000006u, 0x00000001u, + 0x00050048u, 0x00000a12u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000a12u, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x00000a12u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, + 0x00000a13u, 0x00000006u, 0x00000010u, 0x00040048u, 0x00000a14u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000a14u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000a14u, 0x00000002u, 0x00040047u, + 0x00000a16u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000a16u, 0x00000021u, 0x00000006u, 0x00050048u, + 0x00000cccu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000cccu, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x00000cccu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000cccu, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000ccdu, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x00000ccdu, 0x00000002u, 0x00040047u, 0x00000ccfu, 0x00000022u, 0x00000002u, 0x00040047u, + 0x00000ccfu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000e6eu, 0x00000006u, 0x00000001u, 0x00050048u, + 0x00000e6fu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00040047u, 0x00000e70u, 0x00000006u, 0x00001000u, + 0x00040048u, 0x00000e71u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000e71u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000e71u, 0x00000002u, 0x00040047u, 0x00000e73u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x00000e73u, 0x00000021u, 0x00000002u, 0x00040047u, 0x00000f35u, 0x00000006u, 0x00000002u, + 0x00050048u, 0x00000f36u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00040047u, 0x00000f37u, 0x00000006u, + 0x00001000u, 0x00040048u, 0x00000f38u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000f38u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000f38u, 0x00000002u, 0x00040047u, 0x00000f3au, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000f3au, 0x00000021u, 0x00000002u, 0x00050048u, 0x00001c40u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x00001c40u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x00001c40u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00001c40u, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00050048u, 0x00001c40u, 0x00000004u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x00001c40u, + 0x00000005u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00001c40u, 0x00000006u, 0x00000023u, 0x00000014u, + 0x00050048u, 0x00001c40u, 0x00000007u, 0x00000023u, 0x00000018u, 0x00050048u, 0x00001c40u, 0x00000008u, + 0x00000023u, 0x0000001cu, 0x00050048u, 0x00001c40u, 0x00000009u, 0x00000023u, 0x0000001eu, 0x00050048u, + 0x00001c40u, 0x0000000au, 0x00000023u, 0x0000001fu, 0x00040047u, 0x00001c41u, 0x00000006u, 0x00000020u, + 0x00040048u, 0x00001c42u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00001c42u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00001c42u, 0x00000002u, 0x00040047u, 0x00001c44u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00001c44u, 0x00000021u, 0x00000000u, 0x00040047u, 0x00001f94u, 0x0000000bu, 0x0000001cu, + 0x00040047u, 0x00001f9eu, 0x0000000bu, 0x0000001au, 0x00040047u, 0x00001fa7u, 0x00000001u, 0x00000006u, + 0x00040047u, 0x00001fa8u, 0x00000001u, 0x00000003u, 0x00040047u, 0x00001fa9u, 0x00000001u, 0x00000004u, + 0x00040047u, 0x00001faau, 0x0000000bu, 0x00000019u, 0x00040047u, 0x00001fb2u, 0x00000001u, 0x00000005u, + 0x00040047u, 0x00001fb6u, 0x00000006u, 0x00000004u, 0x00040048u, 0x00001fb7u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x00001fb7u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00001fb7u, 0x00000002u, + 0x00040047u, 0x00001fb9u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00001fb9u, 0x00000021u, 0x0000000cu, + 0x00050048u, 0x00001fbdu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00001fbdu, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x00001fbdu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, + 0x00001fbdu, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00001fbdu, 0x00000004u, 0x00000023u, + 0x00000010u, 0x00030047u, 0x00001fbdu, 0x00000002u, 0x00040047u, 0x00001feau, 0x00000006u, 0x00000004u, + 0x00040048u, 0x00001febu, 0x00000000u, 0x00000018u, 0x00050048u, 0x00001febu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00001febu, 0x00000002u, 0x00040047u, 0x00001fedu, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00001fedu, 0x00000021u, 0x0000000bu, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, + 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x00040015u, 0x00000008u, 0x00000020u, + 0x00000001u, 0x00040017u, 0x00000009u, 0x00000008u, 0x00000004u, 0x00040017u, 0x0000003cu, 0x00000008u, + 0x00000003u, 0x00040020u, 0x0000003eu, 0x00000007u, 0x00000008u, 0x00020014u, 0x0000005du, 0x00040017u, + 0x0000005fu, 0x00000008u, 0x00000002u, 0x00040020u, 0x00000060u, 0x00000007u, 0x0000005fu, 0x00040017u, + 0x000000a6u, 0x00000006u, 0x00000002u, 0x0004002bu, 0x00000008u, 0x00000208u, 0x00000000u, 0x000a001eu, + 0x00000209u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, + 0x00000009u, 0x0003001du, 0x0000020au, 0x00000209u, 0x0003001eu, 0x0000020bu, 0x0000020au, 0x00040020u, + 0x0000020cu, 0x0000000cu, 0x0000020bu, 0x0004003bu, 0x0000020cu, 0x0000020du, 0x0000000cu, 0x00040020u, + 0x0000020fu, 0x0000000cu, 0x00000209u, 0x0004002bu, 0x00000008u, 0x00000217u, 0x00000001u, 0x0004002bu, + 0x00000008u, 0x0000021au, 0x00000002u, 0x0004002bu, 0x00000008u, 0x0000021du, 0x00000003u, 0x0004002bu, + 0x00000008u, 0x00000220u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x00000223u, 0x00000005u, 0x0004002bu, + 0x00000008u, 0x00000226u, 0x00000006u, 0x0004002bu, 0x00000008u, 0x00000229u, 0x00000007u, 0x00040015u, + 0x0000022eu, 0x00000008u, 0x00000000u, 0x00040017u, 0x0000022fu, 0x0000022eu, 0x00000004u, 0x00040015u, + 0x00000230u, 0x00000010u, 0x00000000u, 0x00040015u, 0x00000231u, 0x00000010u, 0x00000001u, 0x00040017u, + 0x00000232u, 0x00000231u, 0x00000004u, 0x0011001eu, 0x00000233u, 0x0000022fu, 0x0000022fu, 0x0000022fu, + 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x00000006u, + 0x00000230u, 0x0000022eu, 0x0000022eu, 0x00000232u, 0x0003001du, 0x00000234u, 0x00000233u, 0x0003001eu, + 0x00000235u, 0x00000234u, 0x00040020u, 0x00000236u, 0x0000000cu, 0x00000235u, 0x0004003bu, 0x00000236u, + 0x00000237u, 0x0000000cu, 0x00040020u, 0x00000239u, 0x0000000cu, 0x0000022fu, 0x00040017u, 0x0000023cu, + 0x00000006u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x00000263u, 0x00000008u, 0x0004002bu, 0x00000008u, + 0x00000269u, 0x00000009u, 0x0004002bu, 0x00000008u, 0x0000026fu, 0x0000000au, 0x00040020u, 0x00000270u, + 0x0000000cu, 0x00000006u, 0x0004002bu, 0x00000008u, 0x00000274u, 0x0000000bu, 0x00040020u, 0x00000275u, + 0x0000000cu, 0x00000230u, 0x0004002bu, 0x00000008u, 0x0000027bu, 0x0000000cu, 0x00040020u, 0x0000027cu, + 0x0000000cu, 0x0000022eu, 0x0004002bu, 0x00000008u, 0x00000282u, 0x0000000du, 0x0004002bu, 0x00000008u, + 0x00000288u, 0x0000000eu, 0x00040020u, 0x00000289u, 0x0000000cu, 0x00000232u, 0x000a001eu, 0x00000290u, + 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x00000006u, 0x00000008u, 0x00000008u, 0x00000008u, + 0x0003001du, 0x00000291u, 0x00000290u, 0x0003001eu, 0x00000292u, 0x00000291u, 0x00040020u, 0x00000293u, + 0x0000000cu, 0x00000292u, 0x0004003bu, 0x00000293u, 0x00000294u, 0x0000000cu, 0x00040020u, 0x000002adu, + 0x0000000cu, 0x00000008u, 0x0009001eu, 0x000002b3u, 0x0000022fu, 0x0000022fu, 0x00000006u, 0x0000022eu, + 0x0000022eu, 0x0000022eu, 0x0000022eu, 0x0003001du, 0x000002b4u, 0x000002b3u, 0x0003001eu, 0x000002b5u, + 0x000002b4u, 0x00040020u, 0x000002b6u, 0x0000000cu, 0x000002b5u, 0x0004003bu, 0x000002b6u, 0x000002b7u, + 0x0000000cu, 0x0010001eu, 0x000002d2u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00000006u, 0x0000022eu, 0x0000022eu, 0x0000022eu, 0x0000022eu, 0x0000022eu, 0x0000022eu, 0x0000022eu, + 0x0000022eu, 0x0003001du, 0x000002d3u, 0x000002d2u, 0x0003001eu, 0x000002d4u, 0x000002d3u, 0x00040020u, + 0x000002d5u, 0x0000000cu, 0x000002d4u, 0x0004003bu, 0x000002d5u, 0x000002d6u, 0x0000000cu, 0x00040017u, + 0x00000314u, 0x00000230u, 0x00000004u, 0x000b001eu, 0x00000315u, 0x00000009u, 0x00000009u, 0x00000314u, + 0x00000314u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000231u, 0x00000230u, 0x0003001du, 0x00000316u, + 0x00000315u, 0x0003001eu, 0x00000317u, 0x00000316u, 0x00040020u, 0x00000318u, 0x0000000cu, 0x00000317u, + 0x0004003bu, 0x00000318u, 0x00000319u, 0x0000000cu, 0x00040020u, 0x0000031bu, 0x0000000cu, 0x00000009u, + 0x00040020u, 0x00000322u, 0x0000000cu, 0x00000314u, 0x00040020u, 0x00000336u, 0x0000000cu, 0x00000231u, + 0x0006001eu, 0x00000342u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, 0x00000343u, + 0x00000342u, 0x0003001eu, 0x00000344u, 0x00000343u, 0x00040020u, 0x00000345u, 0x0000000cu, 0x00000344u, + 0x0004003bu, 0x00000345u, 0x00000346u, 0x0000000cu, 0x00040020u, 0x00000348u, 0x0000000cu, 0x00000342u, + 0x00040017u, 0x00000358u, 0x00000006u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x00000360u, 0x00000008u, + 0x0004002bu, 0x00000006u, 0x00000366u, 0x41c64e6du, 0x0004002bu, 0x00000006u, 0x00000379u, 0x00000000u, + 0x0004002bu, 0x00000006u, 0x0000037cu, 0x00000010u, 0x0004002bu, 0x00000008u, 0x00000382u, 0x00000020u, + 0x0004002bu, 0x00000008u, 0x0000038bu, 0x000001ffu, 0x0004002bu, 0x00000008u, 0x00000390u, 0x000000ffu, + 0x0006002cu, 0x0000003cu, 0x00000397u, 0x00000208u, 0x0000021du, 0x00000226u, 0x0004002bu, 0x00000008u, + 0x0000039du, 0x000000f8u, 0x0006002cu, 0x0000003cu, 0x000003a2u, 0x00000390u, 0x00000390u, 0x00000390u, + 0x0004002bu, 0x00000008u, 0x000003a4u, 0x000000f7u, 0x0006002cu, 0x0000003cu, 0x000003a5u, 0x000003a4u, + 0x000003a4u, 0x000003a4u, 0x00040017u, 0x000003a6u, 0x0000005du, 0x00000003u, 0x0004002bu, 0x00000008u, + 0x000003afu, 0x0000001fu, 0x0004001cu, 0x000003c8u, 0x00000008u, 0x0000037cu, 0x0004002bu, 0x00000006u, + 0x000003c9u, 0x00000002u, 0x0004001cu, 0x000003cau, 0x000003c8u, 0x000003c9u, 0x0013002cu, 0x000003c8u, + 0x000003cbu, 0x00000208u, 0x00000226u, 0x00000217u, 0x00000229u, 0x00000220u, 0x0000021au, 0x00000223u, + 0x0000021du, 0x0000021du, 0x00000223u, 0x0000021au, 0x00000220u, 0x00000229u, 0x00000217u, 0x00000226u, + 0x00000208u, 0x0013002cu, 0x000003c8u, 0x000003ccu, 0x00000208u, 0x00000220u, 0x00000217u, 0x00000223u, + 0x00000220u, 0x00000208u, 0x00000223u, 0x00000217u, 0x0000021du, 0x00000229u, 0x0000021au, 0x00000226u, + 0x00000229u, 0x0000021du, 0x00000226u, 0x0000021au, 0x0005002cu, 0x000003cau, 0x000003cdu, 0x000003cbu, + 0x000003ccu, 0x00040020u, 0x000003d5u, 0x00000007u, 0x000003cau, 0x0004002bu, 0x00000008u, 0x000003d9u, + 0x00000049u, 0x0004002bu, 0x00000008u, 0x0000040fu, 0x000007ffu, 0x0004002bu, 0x00000008u, 0x00000416u, + 0x00040000u, 0x0004002bu, 0x00000008u, 0x00000422u, 0x0003ffffu, 0x0004002bu, 0x00000008u, 0x00000427u, + 0x00000011u, 0x0004002bu, 0x00000006u, 0x0000048au, 0x00000001u, 0x0004002bu, 0x00000006u, 0x00000490u, + 0x00000003u, 0x0004002bu, 0x00000008u, 0x000004d2u, 0x0000003cu, 0x00090019u, 0x00000507u, 0x00000006u, + 0x00000005u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, 0x00000508u, + 0x00000000u, 0x00000507u, 0x0004003bu, 0x00000508u, 0x00000509u, 0x00000000u, 0x0004002bu, 0x00000008u, + 0x00000545u, 0x0000000fu, 0x0003002au, 0x0000005du, 0x00000548u, 0x0004002bu, 0x00000008u, 0x00000558u, + 0x00008000u, 0x0004002bu, 0x00000008u, 0x0000055eu, 0x00000010u, 0x00030029u, 0x0000005du, 0x00000563u, + 0x0004002bu, 0x00000008u, 0x00000564u, 0x0000ffffu, 0x0007002cu, 0x00000009u, 0x000005f9u, 0x00000208u, + 0x00000220u, 0x0000021au, 0x00000226u, 0x00040017u, 0x000005feu, 0x0000005du, 0x00000004u, 0x0007002cu, + 0x00000009u, 0x00000616u, 0x00000208u, 0x00000208u, 0x00000208u, 0x00000208u, 0x0007002cu, 0x00000009u, + 0x00000617u, 0x00000217u, 0x00000217u, 0x00000217u, 0x00000217u, 0x0007002cu, 0x00000009u, 0x00000624u, + 0x00000217u, 0x0000021au, 0x00000220u, 0x00000263u, 0x0004002bu, 0x00000008u, 0x00000627u, 0x00000040u, + 0x0004002bu, 0x00000008u, 0x00000628u, 0x00000080u, 0x0007002cu, 0x00000009u, 0x00000629u, 0x0000055eu, + 0x00000382u, 0x00000627u, 0x00000628u, 0x00040032u, 0x00000008u, 0x0000065cu, 0x00000000u, 0x00040032u, + 0x00000006u, 0x00000662u, 0x00000000u, 0x00060034u, 0x00000006u, 0x00000663u, 0x00000082u, 0x00000662u, + 0x0000048au, 0x0003001du, 0x0000066bu, 0x0000022eu, 0x0003001eu, 0x0000066cu, 0x0000066bu, 0x00040020u, + 0x0000066du, 0x0000000cu, 0x0000066cu, 0x0004003bu, 0x0000066du, 0x0000066eu, 0x0000000cu, 0x0003001du, + 0x0000067au, 0x0000022eu, 0x0003001eu, 0x0000067bu, 0x0000067au, 0x00040020u, 0x0000067cu, 0x0000000cu, + 0x0000067bu, 0x0004003bu, 0x0000067cu, 0x0000067du, 0x0000000cu, 0x00060034u, 0x00000006u, 0x00000686u, + 0x000000c2u, 0x00000663u, 0x0000048au, 0x00060034u, 0x00000006u, 0x0000068au, 0x000000c2u, 0x00000662u, + 0x00000217u, 0x0003001du, 0x0000068fu, 0x00000230u, 0x0003001eu, 0x00000690u, 0x0000068fu, 0x00040020u, + 0x00000691u, 0x0000000cu, 0x00000690u, 0x0004003bu, 0x00000691u, 0x00000692u, 0x0000000cu, 0x0004002bu, + 0x00000006u, 0x000006a0u, 0x000000f8u, 0x00060034u, 0x00000006u, 0x000006b8u, 0x000000c2u, 0x00000662u, + 0x00000217u, 0x0004002bu, 0x00000006u, 0x000006c7u, 0x000000ffu, 0x00060034u, 0x00000006u, 0x000006cfu, + 0x000000c2u, 0x00000663u, 0x000003c9u, 0x00060034u, 0x00000006u, 0x000006d3u, 0x000000c2u, 0x00000662u, + 0x0000021au, 0x0003001du, 0x000006d8u, 0x00000006u, 0x0003001eu, 0x000006d9u, 0x000006d8u, 0x00040020u, + 0x000006dau, 0x0000000cu, 0x000006d9u, 0x0004003bu, 0x000006dau, 0x000006dbu, 0x0000000cu, 0x0004002bu, + 0x00000006u, 0x000006e1u, 0x00000018u, 0x0007002cu, 0x0000023cu, 0x000006e2u, 0x000006e1u, 0x0000037cu, + 0x00000360u, 0x00000379u, 0x0007002cu, 0x0000023cu, 0x000006e4u, 0x000006c7u, 0x000006c7u, 0x000006c7u, + 0x000006c7u, 0x0004002bu, 0x00000006u, 0x000006f9u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x00000706u, + 0x00000004u, 0x0004002bu, 0x00000006u, 0x00000733u, 0x0000000au, 0x0004002bu, 0x00000006u, 0x00000739u, + 0x00000005u, 0x0004002bu, 0x00000006u, 0x00000744u, 0x00000007u, 0x00060034u, 0x00000006u, 0x0000075bu, + 0x000000c2u, 0x00000662u, 0x00000217u, 0x00060034u, 0x00000006u, 0x00000780u, 0x000000c2u, 0x00000662u, + 0x0000048au, 0x0004002bu, 0x00000006u, 0x00000782u, 0x0000ffffu, 0x00060034u, 0x00000006u, 0x00000787u, + 0x000000c2u, 0x00000662u, 0x000003c9u, 0x0004002bu, 0x00000006u, 0x00000789u, 0xffffffffu, 0x00060034u, + 0x00000006u, 0x000007c9u, 0x000000c2u, 0x00000662u, 0x00000217u, 0x00060034u, 0x00000006u, 0x000007fcu, + 0x000000c2u, 0x00000662u, 0x00000217u, 0x00060034u, 0x00000006u, 0x0000081bu, 0x000000c2u, 0x00000662u, + 0x0000021au, 0x00040032u, 0x00000008u, 0x00000848u, 0x00000000u, 0x00060034u, 0x00000008u, 0x00000849u, + 0x000000c7u, 0x00000848u, 0x00000217u, 0x00060034u, 0x0000005du, 0x0000084au, 0x000000abu, 0x00000849u, + 0x00000208u, 0x00060034u, 0x00000008u, 0x0000084bu, 0x000000c3u, 0x00000848u, 0x00000217u, 0x00060034u, + 0x0000005du, 0x0000084cu, 0x000000aau, 0x0000084bu, 0x00000208u, 0x00060034u, 0x0000005du, 0x0000084du, + 0x000000a7u, 0x0000084au, 0x0000084cu, 0x0004002bu, 0x00000006u, 0x00000850u, 0x00000048u, 0x00030031u, + 0x0000005du, 0x00000854u, 0x00050034u, 0x0000005du, 0x00000855u, 0x000000a8u, 0x00000854u, 0x00060034u, + 0x00000006u, 0x0000085fu, 0x000000c2u, 0x00000662u, 0x00000217u, 0x00060034u, 0x00000006u, 0x00000878u, + 0x000000c2u, 0x00000662u, 0x0000048au, 0x00040017u, 0x00000880u, 0x0000005du, 0x00000002u, 0x00060034u, + 0x00000008u, 0x00000887u, 0x000000c4u, 0x00000217u, 0x0000084bu, 0x00060034u, 0x00000008u, 0x00000888u, + 0x00000082u, 0x00000887u, 0x00000217u, 0x00060034u, 0x00000006u, 0x00000889u, 0x00000080u, 0x00000888u, + 0x00000379u, 0x00060034u, 0x00000006u, 0x00000892u, 0x00000080u, 0x00000887u, 0x00000379u, 0x00060034u, + 0x00000008u, 0x000008ddu, 0x00000084u, 0x00000887u, 0x00000887u, 0x00060034u, 0x00000006u, 0x000008deu, + 0x00000080u, 0x000008ddu, 0x00000379u, 0x00060034u, 0x00000006u, 0x000008dfu, 0x000000c2u, 0x00000662u, + 0x0000021au, 0x00060034u, 0x00000006u, 0x000008e0u, 0x00000084u, 0x000008deu, 0x000008dfu, 0x00060034u, + 0x00000008u, 0x000008f3u, 0x00000082u, 0x00000887u, 0x00000217u, 0x00060034u, 0x00000006u, 0x000008f4u, + 0x00000080u, 0x000008f3u, 0x00000379u, 0x00060034u, 0x00000006u, 0x000008fdu, 0x00000080u, 0x00000887u, + 0x00000379u, 0x00060034u, 0x0000005du, 0x0000091fu, 0x000000abu, 0x0000084bu, 0x00000208u, 0x00060034u, + 0x0000005du, 0x00000920u, 0x000000a7u, 0x0000084au, 0x0000091fu, 0x0004002bu, 0x00000008u, 0x0000092fu, + 0x000000e0u, 0x0006002cu, 0x0000003cu, 0x0000093au, 0x00000208u, 0x00000208u, 0x00000208u, 0x00060034u, + 0x0000005du, 0x00000953u, 0x000000aau, 0x0000065cu, 0x00000208u, 0x0004002bu, 0x00000006u, 0x0000097cu, + 0x000000e0u, 0x0004001cu, 0x00000a11u, 0x0000022eu, 0x00000360u, 0x0005001eu, 0x00000a12u, 0x0000022fu, + 0x0000022fu, 0x00000a11u, 0x0003001du, 0x00000a13u, 0x00000a12u, 0x0003001eu, 0x00000a14u, 0x00000a13u, + 0x00040020u, 0x00000a15u, 0x0000000cu, 0x00000a14u, 0x0004003bu, 0x00000a15u, 0x00000a16u, 0x0000000cu, + 0x0004002bu, 0x00000006u, 0x00000a3cu, 0x00000020u, 0x0004002bu, 0x00000006u, 0x00000a42u, 0x00000040u, + 0x0004002bu, 0x00000006u, 0x00000a48u, 0x00000080u, 0x0004002bu, 0x00000006u, 0x00000a4eu, 0x00000100u, + 0x0007002cu, 0x00000009u, 0x00000af5u, 0x00000390u, 0x00000390u, 0x00000390u, 0x00000390u, 0x0004002bu, + 0x00000008u, 0x00000b0fu, 0x00020000u, 0x0004002bu, 0x00000008u, 0x00000b25u, 0x00003fffu, 0x0004001cu, + 0x00000b2bu, 0x0000005fu, 0x00000a42u, 0x0004002bu, 0x00000008u, 0x00000b2cu, 0x00004000u, 0x0004002bu, + 0x00000008u, 0x00000b2du, 0xfffffc10u, 0x0005002cu, 0x0000005fu, 0x00000b2eu, 0x00000b2cu, 0x00000b2du, + 0x0004002bu, 0x00000008u, 0x00000b2fu, 0x00003f04u, 0x0004002bu, 0x00000008u, 0x00000b30u, 0xfffffc30u, + 0x0005002cu, 0x0000005fu, 0x00000b31u, 0x00000b2fu, 0x00000b30u, 0x0004002bu, 0x00000008u, 0x00000b32u, + 0x00003e10u, 0x0004002bu, 0x00000008u, 0x00000b33u, 0xfffffc48u, 0x0005002cu, 0x0000005fu, 0x00000b34u, + 0x00000b32u, 0x00000b33u, 0x0004002bu, 0x00000008u, 0x00000b35u, 0x00003d22u, 0x0004002bu, 0x00000008u, + 0x00000b36u, 0xfffffc68u, 0x0005002cu, 0x0000005fu, 0x00000b37u, 0x00000b35u, 0x00000b36u, 0x0004002bu, + 0x00000008u, 0x00000b38u, 0x00003c3cu, 0x0004002bu, 0x00000008u, 0x00000b39u, 0xfffffc84u, 0x0005002cu, + 0x0000005fu, 0x00000b3au, 0x00000b38u, 0x00000b39u, 0x0004002bu, 0x00000008u, 0x00000b3bu, 0x00003b5du, + 0x0004002bu, 0x00000008u, 0x00000b3cu, 0xfffffc98u, 0x0005002cu, 0x0000005fu, 0x00000b3du, 0x00000b3bu, + 0x00000b3cu, 0x0004002bu, 0x00000008u, 0x00000b3eu, 0x00003a83u, 0x0004002bu, 0x00000008u, 0x00000b3fu, + 0xfffffcb8u, 0x0005002cu, 0x0000005fu, 0x00000b40u, 0x00000b3eu, 0x00000b3fu, 0x0004002bu, 0x00000008u, + 0x00000b41u, 0x000039b1u, 0x0004002bu, 0x00000008u, 0x00000b42u, 0xfffffcccu, 0x0005002cu, 0x0000005fu, + 0x00000b43u, 0x00000b41u, 0x00000b42u, 0x0004002bu, 0x00000008u, 0x00000b44u, 0x000038e4u, 0x0004002bu, + 0x00000008u, 0x00000b45u, 0xfffffce0u, 0x0005002cu, 0x0000005fu, 0x00000b46u, 0x00000b44u, 0x00000b45u, + 0x0004002bu, 0x00000008u, 0x00000b47u, 0x0000381cu, 0x0004002bu, 0x00000008u, 0x00000b48u, 0xfffffcf8u, + 0x0005002cu, 0x0000005fu, 0x00000b49u, 0x00000b47u, 0x00000b48u, 0x0004002bu, 0x00000008u, 0x00000b4au, + 0x0000375au, 0x0004002bu, 0x00000008u, 0x00000b4bu, 0xfffffd0cu, 0x0005002cu, 0x0000005fu, 0x00000b4cu, + 0x00000b4au, 0x00000b4bu, 0x0004002bu, 0x00000008u, 0x00000b4du, 0x0000369du, 0x0004002bu, 0x00000008u, + 0x00000b4eu, 0xfffffd20u, 0x0005002cu, 0x0000005fu, 0x00000b4fu, 0x00000b4du, 0x00000b4eu, 0x0004002bu, + 0x00000008u, 0x00000b50u, 0x000035e5u, 0x0004002bu, 0x00000008u, 0x00000b51u, 0xfffffd34u, 0x0005002cu, + 0x0000005fu, 0x00000b52u, 0x00000b50u, 0x00000b51u, 0x0004002bu, 0x00000008u, 0x00000b53u, 0x00003532u, + 0x0004002bu, 0x00000008u, 0x00000b54u, 0xfffffd44u, 0x0005002cu, 0x0000005fu, 0x00000b55u, 0x00000b53u, + 0x00000b54u, 0x0004002bu, 0x00000008u, 0x00000b56u, 0x00003483u, 0x0004002bu, 0x00000008u, 0x00000b57u, + 0xfffffd58u, 0x0005002cu, 0x0000005fu, 0x00000b58u, 0x00000b56u, 0x00000b57u, 0x0004002bu, 0x00000008u, + 0x00000b59u, 0x000033d9u, 0x0004002bu, 0x00000008u, 0x00000b5au, 0xfffffd68u, 0x0005002cu, 0x0000005fu, + 0x00000b5bu, 0x00000b59u, 0x00000b5au, 0x0004002bu, 0x00000008u, 0x00000b5cu, 0x00003333u, 0x0004002bu, + 0x00000008u, 0x00000b5du, 0xfffffd78u, 0x0005002cu, 0x0000005fu, 0x00000b5eu, 0x00000b5cu, 0x00000b5du, + 0x0004002bu, 0x00000008u, 0x00000b5fu, 0x00003291u, 0x0004002bu, 0x00000008u, 0x00000b60u, 0xfffffd8cu, + 0x0005002cu, 0x0000005fu, 0x00000b61u, 0x00000b5fu, 0x00000b60u, 0x0004002bu, 0x00000008u, 0x00000b62u, + 0x000031f4u, 0x0004002bu, 0x00000008u, 0x00000b63u, 0xfffffd94u, 0x0005002cu, 0x0000005fu, 0x00000b64u, + 0x00000b62u, 0x00000b63u, 0x0004002bu, 0x00000008u, 0x00000b65u, 0x00003159u, 0x0004002bu, 0x00000008u, + 0x00000b66u, 0xfffffda8u, 0x0005002cu, 0x0000005fu, 0x00000b67u, 0x00000b65u, 0x00000b66u, 0x0004002bu, + 0x00000008u, 0x00000b68u, 0x000030c3u, 0x0004002bu, 0x00000008u, 0x00000b69u, 0xfffffdb4u, 0x0005002cu, + 0x0000005fu, 0x00000b6au, 0x00000b68u, 0x00000b69u, 0x0004002bu, 0x00000008u, 0x00000b6bu, 0x00003030u, + 0x0004002bu, 0x00000008u, 0x00000b6cu, 0xfffffdc4u, 0x0005002cu, 0x0000005fu, 0x00000b6du, 0x00000b6bu, + 0x00000b6cu, 0x0004002bu, 0x00000008u, 0x00000b6eu, 0x00002fa1u, 0x0004002bu, 0x00000008u, 0x00000b6fu, + 0xfffffdd0u, 0x0005002cu, 0x0000005fu, 0x00000b70u, 0x00000b6eu, 0x00000b6fu, 0x0004002bu, 0x00000008u, + 0x00000b71u, 0x00002f15u, 0x0004002bu, 0x00000008u, 0x00000b72u, 0xfffffddcu, 0x0005002cu, 0x0000005fu, + 0x00000b73u, 0x00000b71u, 0x00000b72u, 0x0004002bu, 0x00000008u, 0x00000b74u, 0x00002e8cu, 0x0004002bu, + 0x00000008u, 0x00000b75u, 0xfffffde8u, 0x0005002cu, 0x0000005fu, 0x00000b76u, 0x00000b74u, 0x00000b75u, + 0x0004002bu, 0x00000008u, 0x00000b77u, 0x00002e06u, 0x0004002bu, 0x00000008u, 0x00000b78u, 0xfffffdf4u, + 0x0005002cu, 0x0000005fu, 0x00000b79u, 0x00000b77u, 0x00000b78u, 0x0004002bu, 0x00000008u, 0x00000b7au, + 0x00002d83u, 0x0004002bu, 0x00000008u, 0x00000b7bu, 0xfffffe00u, 0x0005002cu, 0x0000005fu, 0x00000b7cu, + 0x00000b7au, 0x00000b7bu, 0x0004002bu, 0x00000008u, 0x00000b7du, 0x00002d03u, 0x0004002bu, 0x00000008u, + 0x00000b7eu, 0xfffffe0cu, 0x0005002cu, 0x0000005fu, 0x00000b7fu, 0x00000b7du, 0x00000b7eu, 0x0004002bu, + 0x00000008u, 0x00000b80u, 0x00002c86u, 0x0004002bu, 0x00000008u, 0x00000b81u, 0xfffffe14u, 0x0005002cu, + 0x0000005fu, 0x00000b82u, 0x00000b80u, 0x00000b81u, 0x0004002bu, 0x00000008u, 0x00000b83u, 0x00002c0bu, + 0x0004002bu, 0x00000008u, 0x00000b84u, 0xfffffe20u, 0x0005002cu, 0x0000005fu, 0x00000b85u, 0x00000b83u, + 0x00000b84u, 0x0004002bu, 0x00000008u, 0x00000b86u, 0x00002b93u, 0x0004002bu, 0x00000008u, 0x00000b87u, + 0xfffffe2cu, 0x0005002cu, 0x0000005fu, 0x00000b88u, 0x00000b86u, 0x00000b87u, 0x0004002bu, 0x00000008u, + 0x00000b89u, 0x00002b1eu, 0x0004002bu, 0x00000008u, 0x00000b8au, 0xfffffe34u, 0x0005002cu, 0x0000005fu, + 0x00000b8bu, 0x00000b89u, 0x00000b8au, 0x0004002bu, 0x00000008u, 0x00000b8cu, 0x00002aabu, 0x0004002bu, + 0x00000008u, 0x00000b8du, 0xfffffe3cu, 0x0005002cu, 0x0000005fu, 0x00000b8eu, 0x00000b8cu, 0x00000b8du, + 0x0004002bu, 0x00000008u, 0x00000b8fu, 0x00002a3au, 0x0004002bu, 0x00000008u, 0x00000b90u, 0xfffffe48u, + 0x0005002cu, 0x0000005fu, 0x00000b91u, 0x00000b8fu, 0x00000b90u, 0x0004002bu, 0x00000008u, 0x00000b92u, + 0x000029ccu, 0x0004002bu, 0x00000008u, 0x00000b93u, 0xfffffe50u, 0x0005002cu, 0x0000005fu, 0x00000b94u, + 0x00000b92u, 0x00000b93u, 0x0004002bu, 0x00000008u, 0x00000b95u, 0x00002960u, 0x0004002bu, 0x00000008u, + 0x00000b96u, 0xfffffe58u, 0x0005002cu, 0x0000005fu, 0x00000b97u, 0x00000b95u, 0x00000b96u, 0x0004002bu, + 0x00000008u, 0x00000b98u, 0x000028f6u, 0x0004002bu, 0x00000008u, 0x00000b99u, 0xfffffe60u, 0x0005002cu, + 0x0000005fu, 0x00000b9au, 0x00000b98u, 0x00000b99u, 0x0004002bu, 0x00000008u, 0x00000b9bu, 0x0000288eu, + 0x0004002bu, 0x00000008u, 0x00000b9cu, 0xfffffe68u, 0x0005002cu, 0x0000005fu, 0x00000b9du, 0x00000b9bu, + 0x00000b9cu, 0x0004002bu, 0x00000008u, 0x00000b9eu, 0x00002828u, 0x0004002bu, 0x00000008u, 0x00000b9fu, + 0xfffffe70u, 0x0005002cu, 0x0000005fu, 0x00000ba0u, 0x00000b9eu, 0x00000b9fu, 0x0004002bu, 0x00000008u, + 0x00000ba1u, 0x000027c4u, 0x0004002bu, 0x00000008u, 0x00000ba2u, 0xfffffe78u, 0x0005002cu, 0x0000005fu, + 0x00000ba3u, 0x00000ba1u, 0x00000ba2u, 0x0004002bu, 0x00000008u, 0x00000ba4u, 0x00002762u, 0x0004002bu, + 0x00000008u, 0x00000ba5u, 0xfffffe80u, 0x0005002cu, 0x0000005fu, 0x00000ba6u, 0x00000ba4u, 0x00000ba5u, + 0x0004002bu, 0x00000008u, 0x00000ba7u, 0x00002702u, 0x0004002bu, 0x00000008u, 0x00000ba8u, 0xfffffe88u, + 0x0005002cu, 0x0000005fu, 0x00000ba9u, 0x00000ba7u, 0x00000ba8u, 0x0004002bu, 0x00000008u, 0x00000baau, + 0x000026a4u, 0x0004002bu, 0x00000008u, 0x00000babu, 0xfffffe90u, 0x0005002cu, 0x0000005fu, 0x00000bacu, + 0x00000baau, 0x00000babu, 0x0004002bu, 0x00000008u, 0x00000badu, 0x00002648u, 0x0004002bu, 0x00000008u, + 0x00000baeu, 0xfffffe94u, 0x0005002cu, 0x0000005fu, 0x00000bafu, 0x00000badu, 0x00000baeu, 0x0004002bu, + 0x00000008u, 0x00000bb0u, 0x000025edu, 0x0004002bu, 0x00000008u, 0x00000bb1u, 0xfffffe9cu, 0x0005002cu, + 0x0000005fu, 0x00000bb2u, 0x00000bb0u, 0x00000bb1u, 0x0004002bu, 0x00000008u, 0x00000bb3u, 0x00002594u, + 0x0004002bu, 0x00000008u, 0x00000bb4u, 0xfffffea4u, 0x0005002cu, 0x0000005fu, 0x00000bb5u, 0x00000bb3u, + 0x00000bb4u, 0x0004002bu, 0x00000008u, 0x00000bb6u, 0x0000253du, 0x0004002bu, 0x00000008u, 0x00000bb7u, + 0xfffffea8u, 0x0005002cu, 0x0000005fu, 0x00000bb8u, 0x00000bb6u, 0x00000bb7u, 0x0004002bu, 0x00000008u, + 0x00000bb9u, 0x000024e7u, 0x0004002bu, 0x00000008u, 0x00000bbau, 0xfffffeacu, 0x0005002cu, 0x0000005fu, + 0x00000bbbu, 0x00000bb9u, 0x00000bbau, 0x0004002bu, 0x00000008u, 0x00000bbcu, 0x00002492u, 0x0004002bu, + 0x00000008u, 0x00000bbdu, 0xfffffeb4u, 0x0005002cu, 0x0000005fu, 0x00000bbeu, 0x00000bbcu, 0x00000bbdu, + 0x0004002bu, 0x00000008u, 0x00000bbfu, 0x0000243fu, 0x0004002bu, 0x00000008u, 0x00000bc0u, 0xfffffebcu, + 0x0005002cu, 0x0000005fu, 0x00000bc1u, 0x00000bbfu, 0x00000bc0u, 0x0004002bu, 0x00000008u, 0x00000bc2u, + 0x000023eeu, 0x0004002bu, 0x00000008u, 0x00000bc3u, 0xfffffec0u, 0x0005002cu, 0x0000005fu, 0x00000bc4u, + 0x00000bc2u, 0x00000bc3u, 0x0004002bu, 0x00000008u, 0x00000bc5u, 0x0000239eu, 0x0004002bu, 0x00000008u, + 0x00000bc6u, 0xfffffec4u, 0x0005002cu, 0x0000005fu, 0x00000bc7u, 0x00000bc5u, 0x00000bc6u, 0x0004002bu, + 0x00000008u, 0x00000bc8u, 0x0000234fu, 0x0004002bu, 0x00000008u, 0x00000bc9u, 0xfffffeccu, 0x0005002cu, + 0x0000005fu, 0x00000bcau, 0x00000bc8u, 0x00000bc9u, 0x0004002bu, 0x00000008u, 0x00000bcbu, 0x00002302u, + 0x0004002bu, 0x00000008u, 0x00000bccu, 0xfffffed0u, 0x0005002cu, 0x0000005fu, 0x00000bcdu, 0x00000bcbu, + 0x00000bccu, 0x0004002bu, 0x00000008u, 0x00000bceu, 0x000022b6u, 0x0004002bu, 0x00000008u, 0x00000bcfu, + 0xfffffed8u, 0x0005002cu, 0x0000005fu, 0x00000bd0u, 0x00000bceu, 0x00000bcfu, 0x0004002bu, 0x00000008u, + 0x00000bd1u, 0x0000226cu, 0x0005002cu, 0x0000005fu, 0x00000bd2u, 0x00000bd1u, 0x00000bcfu, 0x0004002bu, + 0x00000008u, 0x00000bd3u, 0x00002222u, 0x0004002bu, 0x00000008u, 0x00000bd4u, 0xfffffee0u, 0x0005002cu, + 0x0000005fu, 0x00000bd5u, 0x00000bd3u, 0x00000bd4u, 0x0004002bu, 0x00000008u, 0x00000bd6u, 0x000021dau, + 0x0004002bu, 0x00000008u, 0x00000bd7u, 0xfffffee4u, 0x0005002cu, 0x0000005fu, 0x00000bd8u, 0x00000bd6u, + 0x00000bd7u, 0x0004002bu, 0x00000008u, 0x00000bd9u, 0x00002193u, 0x0004002bu, 0x00000008u, 0x00000bdau, + 0xfffffee8u, 0x0005002cu, 0x0000005fu, 0x00000bdbu, 0x00000bd9u, 0x00000bdau, 0x0004002bu, 0x00000008u, + 0x00000bdcu, 0x0000214du, 0x0004002bu, 0x00000008u, 0x00000bddu, 0xfffffeecu, 0x0005002cu, 0x0000005fu, + 0x00000bdeu, 0x00000bdcu, 0x00000bddu, 0x0004002bu, 0x00000008u, 0x00000bdfu, 0x00002108u, 0x0004002bu, + 0x00000008u, 0x00000be0u, 0xfffffef4u, 0x0005002cu, 0x0000005fu, 0x00000be1u, 0x00000bdfu, 0x00000be0u, + 0x0004002bu, 0x00000008u, 0x00000be2u, 0x000020c5u, 0x0005002cu, 0x0000005fu, 0x00000be3u, 0x00000be2u, + 0x00000be0u, 0x0004002bu, 0x00000008u, 0x00000be4u, 0x00002082u, 0x0004002bu, 0x00000008u, 0x00000be5u, + 0xfffffefcu, 0x0005002cu, 0x0000005fu, 0x00000be6u, 0x00000be4u, 0x00000be5u, 0x0004002bu, 0x00000008u, + 0x00000be7u, 0x00002041u, 0x0005002cu, 0x0000005fu, 0x00000be8u, 0x00000be7u, 0x00000be5u, 0x0043002cu, + 0x00000b2bu, 0x00000be9u, 0x00000b2eu, 0x00000b31u, 0x00000b34u, 0x00000b37u, 0x00000b3au, 0x00000b3du, + 0x00000b40u, 0x00000b43u, 0x00000b46u, 0x00000b49u, 0x00000b4cu, 0x00000b4fu, 0x00000b52u, 0x00000b55u, + 0x00000b58u, 0x00000b5bu, 0x00000b5eu, 0x00000b61u, 0x00000b64u, 0x00000b67u, 0x00000b6au, 0x00000b6du, + 0x00000b70u, 0x00000b73u, 0x00000b76u, 0x00000b79u, 0x00000b7cu, 0x00000b7fu, 0x00000b82u, 0x00000b85u, + 0x00000b88u, 0x00000b8bu, 0x00000b8eu, 0x00000b91u, 0x00000b94u, 0x00000b97u, 0x00000b9au, 0x00000b9du, + 0x00000ba0u, 0x00000ba3u, 0x00000ba6u, 0x00000ba9u, 0x00000bacu, 0x00000bafu, 0x00000bb2u, 0x00000bb5u, + 0x00000bb8u, 0x00000bbbu, 0x00000bbeu, 0x00000bc1u, 0x00000bc4u, 0x00000bc7u, 0x00000bcau, 0x00000bcdu, + 0x00000bd0u, 0x00000bd2u, 0x00000bd5u, 0x00000bd8u, 0x00000bdbu, 0x00000bdeu, 0x00000be1u, 0x00000be3u, + 0x00000be6u, 0x00000be8u, 0x00040020u, 0x00000becu, 0x00000007u, 0x00000b2bu, 0x0004002bu, 0x00000008u, + 0x00000c0bu, 0x00007fffu, 0x0004002bu, 0x00000008u, 0x00000c1du, 0x3fffffffu, 0x0004002bu, 0x00000008u, + 0x00000c1eu, 0x20000000u, 0x0005002cu, 0x0000005fu, 0x00000c37u, 0x00000208u, 0x00000208u, 0x0004002bu, + 0x00000008u, 0x00000c50u, 0xffff8000u, 0x0005002cu, 0x0000005fu, 0x00000c6au, 0x00000c0bu, 0x00000c0bu, + 0x0004002bu, 0x00000008u, 0x00000c6cu, 0xffff0000u, 0x0005002cu, 0x0000005fu, 0x00000c6du, 0x00000c6cu, + 0x00000c6cu, 0x0005002cu, 0x0000005fu, 0x00000c6eu, 0x00000564u, 0x00000564u, 0x0004002bu, 0x00000008u, + 0x00000c73u, 0xffffffe0u, 0x00060034u, 0x00000008u, 0x00000c93u, 0x00000080u, 0x0000021au, 0x0000084bu, + 0x00060034u, 0x00000008u, 0x00000cb0u, 0x00000080u, 0x00000220u, 0x0000084bu, 0x0006001eu, 0x00000cccu, + 0x00000008u, 0x00000008u, 0x00000008u, 0x00000006u, 0x0003001eu, 0x00000ccdu, 0x00000cccu, 0x00040020u, + 0x00000cceu, 0x00000002u, 0x00000ccdu, 0x0004003bu, 0x00000cceu, 0x00000ccfu, 0x00000002u, 0x00040020u, + 0x00000cd0u, 0x00000002u, 0x00000008u, 0x0004002bu, 0x00000008u, 0x00000cddu, 0xffffffffu, 0x00060034u, + 0x0000005du, 0x00000d3cu, 0x000000adu, 0x00000887u, 0x00000217u, 0x00060034u, 0x00000008u, 0x00000d92u, + 0x00000082u, 0x00000887u, 0x00000217u, 0x00060034u, 0x00000008u, 0x00000da6u, 0x00000080u, 0x0000021au, + 0x0000084bu, 0x00060034u, 0x00000008u, 0x00000db6u, 0x00000080u, 0x00000223u, 0x0000084bu, 0x0005002cu, + 0x0000005fu, 0x00000ddbu, 0x00000208u, 0x00000217u, 0x0004002bu, 0x00000006u, 0x00000e1fu, 0x0000000bu, + 0x0006002cu, 0x00000358u, 0x00000e20u, 0x00000e1fu, 0x000006f9u, 0x0000048au, 0x0004002bu, 0x00000006u, + 0x00000e22u, 0x0000001fu, 0x0004002bu, 0x00000006u, 0x00000e59u, 0x00000fffu, 0x0004002bu, 0x00000006u, + 0x00000e6du, 0x00001000u, 0x0004001cu, 0x00000e6eu, 0x0000022eu, 0x00000e6du, 0x0003001eu, 0x00000e6fu, + 0x00000e6eu, 0x0003001du, 0x00000e70u, 0x00000e6fu, 0x0003001eu, 0x00000e71u, 0x00000e70u, 0x00040020u, + 0x00000e72u, 0x0000000cu, 0x00000e71u, 0x0004003bu, 0x00000e72u, 0x00000e73u, 0x0000000cu, 0x0004002bu, + 0x00000006u, 0x00000e7cu, 0x0000000fu, 0x0004002bu, 0x00000006u, 0x00000eb3u, 0x0000000eu, 0x0004002bu, + 0x00000006u, 0x00000f0bu, 0x000007ffu, 0x0004002bu, 0x00000006u, 0x00000f34u, 0x00000800u, 0x0004001cu, + 0x00000f35u, 0x00000230u, 0x00000f34u, 0x0003001eu, 0x00000f36u, 0x00000f35u, 0x0003001du, 0x00000f37u, + 0x00000f36u, 0x0003001eu, 0x00000f38u, 0x00000f37u, 0x00040020u, 0x00000f39u, 0x0000000cu, 0x00000f38u, + 0x0004003bu, 0x00000f39u, 0x00000f3au, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000f3cu, 0x00000400u, + 0x0004002bu, 0x00000006u, 0x00000fdau, 0xfffffffcu, 0x0004002bu, 0x00000008u, 0x00001140u, 0x000003ffu, + 0x0004002bu, 0x00000006u, 0x000011adu, 0x00001fffu, 0x0004002bu, 0x00000006u, 0x00001253u, 0x0000000cu, + 0x0004002bu, 0x00000008u, 0x00001276u, 0x00000400u, 0x0004002bu, 0x00000008u, 0x000013a0u, 0xffffff01u, + 0x0005002cu, 0x0000005fu, 0x000013acu, 0x0000055eu, 0x0000055eu, 0x0004002bu, 0x00000008u, 0x000019c8u, + 0xffffff00u, 0x0004002bu, 0x00000008u, 0x00001a63u, 0x00000100u, 0x0006002cu, 0x0000003cu, 0x00001a64u, + 0x00001a63u, 0x00001a63u, 0x00001a63u, 0x00060034u, 0x00000008u, 0x00001c38u, 0x00000082u, 0x00000887u, + 0x00000217u, 0x000d001eu, 0x00001c40u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000231u, 0x00000231u, + 0x00000008u, 0x00000008u, 0x00000008u, 0x00000231u, 0x0000022eu, 0x0000022eu, 0x0003001du, 0x00001c41u, + 0x00001c40u, 0x0003001eu, 0x00001c42u, 0x00001c41u, 0x00040020u, 0x00001c43u, 0x0000000cu, 0x00001c42u, + 0x0004003bu, 0x00001c43u, 0x00001c44u, 0x0000000cu, 0x00060034u, 0x0000005du, 0x00001c49u, 0x000000adu, + 0x00000887u, 0x00000217u, 0x00060034u, 0x00000008u, 0x00001c51u, 0x00000082u, 0x00000887u, 0x00000217u, + 0x00050034u, 0x00000008u, 0x00001c52u, 0x000000c8u, 0x00001c51u, 0x00060034u, 0x00000008u, 0x00001c55u, + 0x00000082u, 0x00000887u, 0x00000217u, 0x00050034u, 0x00000008u, 0x00001c56u, 0x000000c8u, 0x00001c55u, + 0x0004002bu, 0x00000006u, 0x00001ca1u, 0x00004000u, 0x0004002bu, 0x00000006u, 0x00001cb2u, 0x00000200u, + 0x0004002bu, 0x00000006u, 0x00001ccfu, 0x00002000u, 0x0004002bu, 0x00000006u, 0x00001cd4u, 0x00008000u, + 0x0004002bu, 0x00000006u, 0x00001cd9u, 0x00010000u, 0x0004002bu, 0x00000006u, 0x00001cdeu, 0x00020000u, + 0x0004002bu, 0x00000006u, 0x00001ce3u, 0x00040000u, 0x0004002bu, 0x00000006u, 0x00001ce8u, 0x00080000u, + 0x0004002bu, 0x00000006u, 0x00001cedu, 0x00200000u, 0x0004002bu, 0x00000006u, 0x00001cf2u, 0x00100000u, + 0x0004002bu, 0x00000006u, 0x00001cf7u, 0x00400000u, 0x0004002bu, 0x00000006u, 0x00001cfcu, 0x00800000u, + 0x0004002bu, 0x00000006u, 0x00001d01u, 0x01000000u, 0x0004002bu, 0x00000006u, 0x00001d05u, 0x10000000u, + 0x00040020u, 0x00001d0fu, 0x00000002u, 0x00000006u, 0x00060034u, 0x0000005du, 0x00001dbcu, 0x000000adu, + 0x00000887u, 0x00000217u, 0x0004002bu, 0x00000006u, 0x00001f16u, 0x02000000u, 0x00040020u, 0x00001f93u, + 0x00000001u, 0x00000358u, 0x0004003bu, 0x00001f93u, 0x00001f94u, 0x00000001u, 0x00040020u, 0x00001f95u, + 0x00000001u, 0x00000006u, 0x0004003bu, 0x00001f93u, 0x00001f9eu, 0x00000001u, 0x00040032u, 0x00000008u, + 0x00001fa7u, 0x00000400u, 0x00040032u, 0x00000006u, 0x00001fa8u, 0x00000001u, 0x00040032u, 0x00000006u, + 0x00001fa9u, 0x00000001u, 0x00060033u, 0x00000358u, 0x00001faau, 0x00001fa8u, 0x00001fa9u, 0x0000048au, + 0x00060034u, 0x00000006u, 0x00001fabu, 0x00000051u, 0x00001faau, 0x00000000u, 0x00060034u, 0x00000008u, + 0x00001facu, 0x00000080u, 0x00001fabu, 0x00000379u, 0x00060034u, 0x00000008u, 0x00001fadu, 0x00000087u, + 0x00001fa7u, 0x00001facu, 0x00040032u, 0x00000008u, 0x00001fb2u, 0x00000100u, 0x00060034u, 0x00000008u, + 0x00001fb3u, 0x00000087u, 0x00001fb2u, 0x00000382u, 0x0003001du, 0x00001fb6u, 0x00000006u, 0x0003001eu, + 0x00001fb7u, 0x00001fb6u, 0x00040020u, 0x00001fb8u, 0x0000000cu, 0x00001fb7u, 0x0004003bu, 0x00001fb8u, + 0x00001fb9u, 0x0000000cu, 0x0007001eu, 0x00001fbdu, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00000006u, 0x00040020u, 0x00001fbeu, 0x00000009u, 0x00001fbdu, 0x0004003bu, 0x00001fbeu, 0x00001fbfu, + 0x00000009u, 0x00040020u, 0x00001fc0u, 0x00000009u, 0x00000006u, 0x0003001du, 0x00001feau, 0x00000006u, + 0x0003001eu, 0x00001febu, 0x00001feau, 0x00040020u, 0x00001fecu, 0x0000000cu, 0x00001febu, 0x0004003bu, + 0x00001fecu, 0x00001fedu, 0x0000000cu, 0x00030001u, 0x00000009u, 0x000075d6u, 0x00030001u, 0x00000008u, + 0x000075fcu, 0x00030001u, 0x0000003cu, 0x00007638u, 0x00030001u, 0x0000005fu, 0x000076cbu, 0x00030001u, + 0x00000006u, 0x0000a2eau, 0x0006002cu, 0x00000358u, 0x0000bda0u, 0x000006a0u, 0x000006a0u, 0x000006a0u, + 0x0005002cu, 0x000000a6u, 0x0000bda1u, 0x00000490u, 0x00000490u, 0x0006002cu, 0x00000358u, 0x0000bda2u, + 0x00000360u, 0x00000360u, 0x00000360u, 0x0006002cu, 0x00000358u, 0x0000bda3u, 0x00000366u, 0x00000366u, + 0x00000366u, 0x0006002cu, 0x0000003cu, 0x0000bda4u, 0x00000c73u, 0x00000c73u, 0x00000c73u, 0x0006002cu, + 0x0000003cu, 0x0000bda5u, 0x0000055eu, 0x0000055eu, 0x0000055eu, 0x0007002cu, 0x00000009u, 0x0000bda6u, + 0x00000c73u, 0x00000c73u, 0x00000c73u, 0x00000c73u, 0x0007002cu, 0x00000009u, 0x0000bda7u, 0x00000288u, + 0x00000288u, 0x00000288u, 0x00000288u, 0x0007002cu, 0x00000009u, 0x0000bda8u, 0x00000628u, 0x00000628u, + 0x00000628u, 0x00000628u, 0x0005002cu, 0x0000005fu, 0x0000bda9u, 0x00000217u, 0x00000217u, 0x0006002cu, + 0x0000003cu, 0x0000bdaau, 0x00000c50u, 0x00000c50u, 0x00000c50u, 0x0005002cu, 0x0000005fu, 0x0000bdabu, + 0x00000223u, 0x00000223u, 0x0005002cu, 0x0000005fu, 0x0000bdacu, 0x000003afu, 0x000003afu, 0x0005002cu, + 0x000000a6u, 0x0000bdadu, 0x000011adu, 0x000011adu, 0x0005002cu, 0x000000a6u, 0x0000bdaeu, 0x000003c9u, + 0x000003c9u, 0x0006002cu, 0x00000358u, 0x0000bdafu, 0x00000e22u, 0x00000e22u, 0x00000e22u, 0x0006002cu, + 0x00000358u, 0x0000bdb0u, 0x00000490u, 0x00000490u, 0x00000490u, 0x0006002cu, 0x00000358u, 0x0000bdb1u, + 0x000003c9u, 0x000003c9u, 0x000003c9u, 0x0007002cu, 0x00000009u, 0x0000bdb2u, 0x0000021au, 0x0000021au, + 0x0000021au, 0x0000021au, 0x0007002cu, 0x00000009u, 0x0000bdb3u, 0x00000263u, 0x00000263u, 0x00000263u, + 0x00000263u, 0x0005002cu, 0x0000005fu, 0x0000bdb4u, 0x0000021au, 0x0000021au, 0x0005002cu, 0x0000005fu, + 0x0000bdb5u, 0x00000382u, 0x00000382u, 0x0007002cu, 0x00000009u, 0x0000bdb6u, 0x0000055eu, 0x0000055eu, + 0x0000055eu, 0x0000055eu, 0x0007002cu, 0x00000009u, 0x0000bdb7u, 0x00000223u, 0x00000223u, 0x00000223u, + 0x00000223u, 0x0005002cu, 0x0000005fu, 0x0000bdb8u, 0x00000226u, 0x00000226u, 0x0005002cu, 0x0000005fu, + 0x0000bdb9u, 0x00000628u, 0x00000628u, 0x0006002cu, 0x0000003cu, 0x0000bdbau, 0x0000039du, 0x0000039du, + 0x0000039du, 0x0006002cu, 0x0000003cu, 0x0000bdbbu, 0x00000229u, 0x00000229u, 0x00000229u, 0x0006002cu, + 0x0000003cu, 0x0000bdbcu, 0x00000263u, 0x00000263u, 0x00000263u, 0x0006002cu, 0x0000003cu, 0x0000bdbdu, + 0x000003afu, 0x000003afu, 0x000003afu, 0x0006002cu, 0x0000003cu, 0x0000bdbeu, 0x00000223u, 0x00000223u, + 0x00000223u, 0x0006002cu, 0x0000003cu, 0x0000bdbfu, 0x0000021au, 0x0000021au, 0x0000021au, 0x0006002cu, + 0x0000003cu, 0x0000bdc0u, 0x0000040fu, 0x0000040fu, 0x0000040fu, 0x0004002bu, 0x0000022eu, 0x0000bdc1u, + 0x00000000u, 0x0004002bu, 0x0000022eu, 0x0000bdc2u, 0x000000ffu, 0x0004002bu, 0x00000230u, 0x0000bdc3u, + 0x0000ffffu, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, + 0x0004003bu, 0x000003d5u, 0x000060a9u, 0x00000007u, 0x0004003bu, 0x000003d5u, 0x000060abu, 0x00000007u, + 0x0004003bu, 0x00000becu, 0x0000475du, 0x00000007u, 0x0004003bu, 0x00000becu, 0x000046afu, 0x00000007u, + 0x0004003bu, 0x00000becu, 0x00002c92u, 0x00000007u, 0x0004003bu, 0x00000becu, 0x00002c0au, 0x00000007u, + 0x0004003bu, 0x00000becu, 0x00002b82u, 0x00000007u, 0x0004003bu, 0x00000becu, 0x0000259cu, 0x00000007u, + 0x000300f7u, 0x0000205bu, 0x00000000u, 0x000300fbu, 0x00000379u, 0x0000205cu, 0x000200f8u, 0x0000205cu, + 0x00050041u, 0x00001f95u, 0x00001f96u, 0x00001f94u, 0x00000379u, 0x0004003du, 0x00000006u, 0x00001f97u, + 0x00001f96u, 0x0004007cu, 0x00000008u, 0x00001f98u, 0x00001f97u, 0x00050041u, 0x00001f95u, 0x00001f9au, + 0x00001f94u, 0x0000048au, 0x0004003du, 0x00000006u, 0x00001f9bu, 0x00001f9au, 0x0004007cu, 0x00000008u, + 0x00001f9cu, 0x00001f9bu, 0x0004003du, 0x00000358u, 0x00001f9fu, 0x00001f9eu, 0x0007004fu, 0x000000a6u, + 0x00001fa0u, 0x00001f9fu, 0x00001f9fu, 0x00000000u, 0x00000001u, 0x0004007cu, 0x0000005fu, 0x00001fa1u, + 0x00001fa0u, 0x00050051u, 0x00000008u, 0x00001fa4u, 0x00001fa1u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00001fa6u, 0x00001fa1u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00001faeu, 0x00001fa6u, 0x00001fadu, + 0x00050080u, 0x00000008u, 0x00001fafu, 0x00001fa4u, 0x00001faeu, 0x00050084u, 0x00000008u, 0x00001fb4u, + 0x00001fafu, 0x00001fb3u, 0x00060041u, 0x00000270u, 0x00001fbbu, 0x00001fb9u, 0x00000208u, 0x00001fafu, + 0x0004003du, 0x00000006u, 0x00001fbcu, 0x00001fbbu, 0x00050041u, 0x00001fc0u, 0x00001fc1u, 0x00001fbfu, + 0x00000220u, 0x0004003du, 0x00000006u, 0x00001fc2u, 0x00001fc1u, 0x000500c7u, 0x00000006u, 0x00001fc3u, + 0x00001fbcu, 0x00001fc2u, 0x000500aau, 0x0000005du, 0x00001fc5u, 0x00001fc3u, 0x00000379u, 0x000300f7u, + 0x00001fc7u, 0x00000000u, 0x000400fau, 0x00001fc5u, 0x00001fc6u, 0x00001fc7u, 0x000200f8u, 0x00001fc6u, + 0x000200f9u, 0x0000205bu, 0x000200f8u, 0x00001fc7u, 0x0004003du, 0x00000358u, 0x00001fcau, 0x00001f94u, + 0x0007004fu, 0x000000a6u, 0x00001fcbu, 0x00001fcau, 0x00001fcau, 0x00000000u, 0x00000001u, 0x00050041u, + 0x00001fc0u, 0x00001fcdu, 0x00001fbfu, 0x0000021au, 0x0004003du, 0x00000006u, 0x00001fceu, 0x00001fcdu, + 0x00050041u, 0x00001fc0u, 0x00001fd0u, 0x00001fbfu, 0x0000021du, 0x0004003du, 0x00000006u, 0x00001fd1u, + 0x00001fd0u, 0x00050041u, 0x00001fc0u, 0x00001fd3u, 0x00001fbfu, 0x00000208u, 0x0004003du, 0x00000006u, + 0x00001fd4u, 0x00001fd3u, 0x00050041u, 0x00001fc0u, 0x00001fd6u, 0x00001fbfu, 0x00000217u, 0x0004003du, + 0x00000006u, 0x00001fd7u, 0x00001fd6u, 0x00050050u, 0x000000a6u, 0x00002073u, 0x00001fceu, 0x00001fd1u, + 0x000500b0u, 0x00000880u, 0x00002074u, 0x00001fcbu, 0x00002073u, 0x0004009bu, 0x0000005du, 0x00002075u, + 0x00002074u, 0x000300f7u, 0x0000209eu, 0x00000000u, 0x000400fau, 0x00002075u, 0x00002076u, 0x0000209eu, + 0x000200f8u, 0x00002076u, 0x00050050u, 0x000000a6u, 0x00002078u, 0x00000889u, 0x00000889u, 0x000500c7u, + 0x000000a6u, 0x00002079u, 0x00001fcbu, 0x00002078u, 0x00050050u, 0x0000005fu, 0x0000207bu, 0x0000084bu, + 0x0000084bu, 0x000500c2u, 0x000000a6u, 0x0000207cu, 0x00001fcbu, 0x0000207bu, 0x00050051u, 0x00000006u, + 0x0000207eu, 0x00002079u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000207fu, 0x0000207eu, 0x00000892u, + 0x00050051u, 0x00000006u, 0x00002081u, 0x00002079u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00002082u, + 0x0000207fu, 0x00002081u, 0x000500c2u, 0x00000006u, 0x00002085u, 0x00001fceu, 0x0000084bu, 0x00050051u, + 0x00000006u, 0x00002087u, 0x0000207cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00002088u, 0x00002085u, + 0x00002087u, 0x00050080u, 0x00000006u, 0x00002089u, 0x00001fd4u, 0x00002088u, 0x00050051u, 0x00000006u, + 0x0000208bu, 0x0000207cu, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000208cu, 0x00002089u, 0x0000208bu, + 0x000300f7u, 0x00002108u, 0x00000000u, 0x000d00fbu, 0x0000065cu, 0x00002108u, 0x00000000u, 0x000020a5u, + 0x00000001u, 0x000020a5u, 0x00000002u, 0x000020bcu, 0x00000003u, 0x000020e2u, 0x00000004u, 0x000020f9u, + 0x000200f8u, 0x000020f9u, 0x000500c7u, 0x00000006u, 0x000020fbu, 0x0000208cu, 0x000006cfu, 0x00050084u, + 0x00000006u, 0x000020fdu, 0x00002082u, 0x000006d3u, 0x00050080u, 0x00000006u, 0x000020ffu, 0x000020fbu, + 0x000020fdu, 0x00060041u, 0x00000270u, 0x00002101u, 0x000006dbu, 0x00000208u, 0x000020ffu, 0x0004003du, + 0x00000006u, 0x00002102u, 0x00002101u, 0x00070050u, 0x0000023cu, 0x00002104u, 0x00002102u, 0x00002102u, + 0x00002102u, 0x00002102u, 0x000500c2u, 0x0000023cu, 0x00002105u, 0x00002104u, 0x000006e2u, 0x000500c7u, + 0x0000023cu, 0x00002106u, 0x00002105u, 0x000006e4u, 0x0004007cu, 0x00000009u, 0x00002107u, 0x00002106u, + 0x000200f9u, 0x00002108u, 0x000200f8u, 0x000020e2u, 0x000500c7u, 0x00000006u, 0x000020e4u, 0x0000208cu, + 0x00000686u, 0x00050084u, 0x00000006u, 0x000020e6u, 0x00002082u, 0x000006b8u, 0x00050080u, 0x00000006u, + 0x000020e8u, 0x000020e4u, 0x000020e6u, 0x000500c6u, 0x00000006u, 0x000020eau, 0x000020e8u, 0x0000048au, + 0x00060041u, 0x00000275u, 0x000020ebu, 0x00000692u, 0x00000208u, 0x000020eau, 0x0004003du, 0x00000230u, + 0x000020ecu, 0x000020ebu, 0x00040071u, 0x00000006u, 0x000020edu, 0x000020ecu, 0x000500c2u, 0x00000006u, + 0x000020efu, 0x000020edu, 0x00000360u, 0x0004007cu, 0x00000008u, 0x000020f0u, 0x000020efu, 0x000500c7u, + 0x00000006u, 0x000020f3u, 0x000020edu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000020f4u, 0x000020f3u, + 0x00070050u, 0x00000009u, 0x000020f8u, 0x000020f0u, 0x000020f0u, 0x000020f0u, 0x000020f4u, 0x000200f9u, + 0x00002108u, 0x000200f8u, 0x000020bcu, 0x000500c7u, 0x00000006u, 0x000020beu, 0x0000208cu, 0x00000686u, + 0x00050084u, 0x00000006u, 0x000020c0u, 0x00002082u, 0x0000068au, 0x00050080u, 0x00000006u, 0x000020c2u, + 0x000020beu, 0x000020c0u, 0x000500c6u, 0x00000006u, 0x000020c4u, 0x000020c2u, 0x0000048au, 0x00060041u, + 0x00000275u, 0x000020c5u, 0x00000692u, 0x00000208u, 0x000020c4u, 0x0004003du, 0x00000230u, 0x000020c6u, + 0x000020c5u, 0x00040071u, 0x00000006u, 0x000020c7u, 0x000020c6u, 0x000500c2u, 0x00000006u, 0x000020c9u, + 0x000020c7u, 0x00000360u, 0x000500c2u, 0x00000006u, 0x000020cbu, 0x000020c7u, 0x00000490u, 0x000500c4u, + 0x00000006u, 0x000020cdu, 0x000020c7u, 0x000003c9u, 0x00060050u, 0x00000358u, 0x000020ceu, 0x000020c9u, + 0x000020cbu, 0x000020cdu, 0x000500c7u, 0x00000358u, 0x000020d0u, 0x000020ceu, 0x0000bda0u, 0x0004007cu, + 0x0000003cu, 0x000020d2u, 0x000020d0u, 0x00060041u, 0x0000027cu, 0x000020d4u, 0x0000067du, 0x00000208u, + 0x000020c2u, 0x0004003du, 0x0000022eu, 0x000020d5u, 0x000020d4u, 0x00040071u, 0x00000006u, 0x000020d6u, + 0x000020d5u, 0x0004007cu, 0x00000008u, 0x000020d7u, 0x000020d6u, 0x000500c4u, 0x00000008u, 0x000020d8u, + 0x000020d7u, 0x00000223u, 0x000500c7u, 0x00000006u, 0x000020dau, 0x000020c7u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x000020dbu, 0x000020dau, 0x00000229u, 0x0004007cu, 0x00000008u, 0x000020dcu, 0x000020dbu, + 0x000500c5u, 0x00000008u, 0x000020ddu, 0x000020d8u, 0x000020dcu, 0x00050051u, 0x00000008u, 0x000020deu, + 0x000020d2u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000020dfu, 0x000020d2u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x000020e0u, 0x000020d2u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000020e1u, 0x000020deu, + 0x000020dfu, 0x000020e0u, 0x000020ddu, 0x000200f9u, 0x00002108u, 0x000200f8u, 0x000020a5u, 0x000500c7u, + 0x00000006u, 0x000020a7u, 0x0000208cu, 0x00000663u, 0x00050084u, 0x00000006u, 0x000020a9u, 0x00002082u, + 0x00000662u, 0x00050080u, 0x00000006u, 0x000020abu, 0x000020a7u, 0x000020a9u, 0x000500c6u, 0x00000006u, + 0x000020adu, 0x000020abu, 0x00000490u, 0x00060041u, 0x0000027cu, 0x000020aeu, 0x0000066eu, 0x00000208u, + 0x000020adu, 0x0004003du, 0x0000022eu, 0x000020afu, 0x000020aeu, 0x00040071u, 0x00000006u, 0x000020b0u, + 0x000020afu, 0x0004007cu, 0x00000008u, 0x000020b1u, 0x000020b0u, 0x000500c2u, 0x00000006u, 0x000020b6u, + 0x000020abu, 0x00000217u, 0x00060041u, 0x0000027cu, 0x000020b7u, 0x0000067du, 0x00000208u, 0x000020b6u, + 0x0004003du, 0x0000022eu, 0x000020b8u, 0x000020b7u, 0x00040071u, 0x00000006u, 0x000020b9u, 0x000020b8u, + 0x0004007cu, 0x00000008u, 0x000020bau, 0x000020b9u, 0x00070050u, 0x00000009u, 0x000020bbu, 0x000020b1u, + 0x000020b1u, 0x000020b1u, 0x000020bau, 0x000200f9u, 0x00002108u, 0x000200f8u, 0x00002108u, 0x000d00f5u, + 0x00000009u, 0x000075d7u, 0x000075d6u, 0x00002076u, 0x000020bbu, 0x000020a5u, 0x000020e1u, 0x000020bcu, + 0x000020f8u, 0x000020e2u, 0x00002107u, 0x000020f9u, 0x00050080u, 0x00000006u, 0x00002097u, 0x00001fd7u, + 0x00002088u, 0x00050080u, 0x00000006u, 0x0000209au, 0x00002097u, 0x0000208bu, 0x000500c7u, 0x00000006u, + 0x0000210cu, 0x0000209au, 0x00000686u, 0x00050084u, 0x00000006u, 0x0000210eu, 0x00002082u, 0x0000075bu, + 0x00050080u, 0x00000006u, 0x00002110u, 0x0000210cu, 0x0000210eu, 0x000500c6u, 0x00000006u, 0x00002112u, + 0x00002110u, 0x0000048au, 0x00060041u, 0x00000275u, 0x00002113u, 0x00000692u, 0x00000208u, 0x00002112u, + 0x0004003du, 0x00000230u, 0x00002114u, 0x00002113u, 0x00040071u, 0x00000006u, 0x00002115u, 0x00002114u, + 0x0004007cu, 0x00000008u, 0x00002116u, 0x00002115u, 0x000500c3u, 0x00000008u, 0x00002118u, 0x00002116u, + 0x0000021au, 0x00060041u, 0x0000027cu, 0x0000211au, 0x0000067du, 0x00000208u, 0x00002110u, 0x0004003du, + 0x0000022eu, 0x0000211bu, 0x0000211au, 0x00040071u, 0x00000006u, 0x0000211cu, 0x0000211bu, 0x0004007cu, + 0x00000008u, 0x0000211du, 0x0000211cu, 0x000500c7u, 0x00000008u, 0x0000211fu, 0x00002116u, 0x0000021du, + 0x000500c4u, 0x00000008u, 0x00002120u, 0x0000211fu, 0x0000021au, 0x000500c5u, 0x00000008u, 0x00002121u, + 0x0000211du, 0x00002120u, 0x000200f9u, 0x0000209eu, 0x000200f8u, 0x0000209eu, 0x000700f5u, 0x00000006u, + 0x0000a2e9u, 0x0000a2eau, 0x00001fc7u, 0x0000208cu, 0x00002108u, 0x000700f5u, 0x00000008u, 0x00007608u, + 0x000075fcu, 0x00001fc7u, 0x00002121u, 0x00002108u, 0x000700f5u, 0x00000008u, 0x000075fbu, 0x000075fcu, + 0x00001fc7u, 0x00002118u, 0x00002108u, 0x000700f5u, 0x00000009u, 0x000075d5u, 0x000075d6u, 0x00001fc7u, + 0x000075d7u, 0x00002108u, 0x000200f9u, 0x00001fd9u, 0x000200f8u, 0x00001fd9u, 0x000700f5u, 0x00000008u, + 0x00007607u, 0x00007608u, 0x0000209eu, 0x0000931bu, 0x00001fdcu, 0x000700f5u, 0x00000008u, 0x000075fau, + 0x000075fbu, 0x0000209eu, 0x000091afu, 0x00001fdcu, 0x000700f5u, 0x0000005du, 0x000075ecu, 0x00000548u, + 0x0000209eu, 0x0000a789u, 0x00001fdcu, 0x000700f5u, 0x00000009u, 0x000075d4u, 0x000075d5u, 0x0000209eu, + 0x00008ed0u, 0x00001fdcu, 0x000700f5u, 0x0000005du, 0x000075cfu, 0x00000548u, 0x0000209eu, 0x0000a603u, + 0x00001fdcu, 0x000700f5u, 0x00000006u, 0x000075c9u, 0x00001fc3u, 0x0000209eu, 0x00001fe8u, 0x00001fdcu, + 0x000700f5u, 0x0000003cu, 0x0000a116u, 0x00007638u, 0x0000209eu, 0x0000a115u, 0x00001fdcu, 0x000700f5u, + 0x0000003cu, 0x00009f82u, 0x00007638u, 0x0000209eu, 0x00009f81u, 0x00001fdcu, 0x000700f5u, 0x00000008u, + 0x00009defu, 0x000075fcu, 0x0000209eu, 0x00009deeu, 0x00001fdcu, 0x000700f5u, 0x00000008u, 0x00009c5cu, + 0x000075fcu, 0x0000209eu, 0x00009c5bu, 0x00001fdcu, 0x000700f5u, 0x0000003cu, 0x00009ac6u, 0x00007638u, + 0x0000209eu, 0x00009ac5u, 0x00001fdcu, 0x000700f5u, 0x0000003cu, 0x0000993fu, 0x00007638u, 0x0000209eu, + 0x0000993eu, 0x00001fdcu, 0x000700f5u, 0x00000008u, 0x000097b9u, 0x000075fcu, 0x0000209eu, 0x000097b8u, + 0x00001fdcu, 0x000700f5u, 0x00000008u, 0x00009633u, 0x000075fcu, 0x0000209eu, 0x00009632u, 0x00001fdcu, + 0x000700f5u, 0x0000003cu, 0x0000903fu, 0x00007638u, 0x0000209eu, 0x0000903eu, 0x00001fdcu, 0x000700f5u, + 0x00000009u, 0x00008d64u, 0x000075d6u, 0x0000209eu, 0x00008d63u, 0x00001fdcu, 0x000700f5u, 0x00000008u, + 0x00008c22u, 0x000075fcu, 0x0000209eu, 0x00008c21u, 0x00001fdcu, 0x000700f5u, 0x00000008u, 0x00008ae0u, + 0x000075fcu, 0x0000209eu, 0x00008adfu, 0x00001fdcu, 0x000700f5u, 0x00000008u, 0x00008973u, 0x000075fcu, + 0x0000209eu, 0x00008972u, 0x00001fdcu, 0x000700f5u, 0x00000008u, 0x0000864au, 0x000075fcu, 0x0000209eu, + 0x00008649u, 0x00001fdcu, 0x000700f5u, 0x00000009u, 0x00008591u, 0x000075d6u, 0x0000209eu, 0x00008590u, + 0x00001fdcu, 0x000700f5u, 0x00000008u, 0x00008404u, 0x00000208u, 0x0000209eu, 0x00008403u, 0x00001fdcu, + 0x000700f5u, 0x00000009u, 0x000081e1u, 0x000075d6u, 0x0000209eu, 0x000081e0u, 0x00001fdcu, 0x000700f5u, + 0x00000009u, 0x000080ecu, 0x000075d6u, 0x0000209eu, 0x000080ebu, 0x00001fdcu, 0x000700f5u, 0x00000009u, + 0x00007ff1u, 0x000075d6u, 0x0000209eu, 0x00007ff0u, 0x00001fdcu, 0x000700f5u, 0x00000009u, 0x00007e85u, + 0x000075d6u, 0x0000209eu, 0x00007e84u, 0x00001fdcu, 0x000700f5u, 0x00000009u, 0x00007d9bu, 0x000075d6u, + 0x0000209eu, 0x00007d9au, 0x00001fdcu, 0x000700f5u, 0x00000009u, 0x000079ceu, 0x000075d6u, 0x0000209eu, + 0x000079cdu, 0x00001fdcu, 0x000700f5u, 0x00000009u, 0x00007953u, 0x000075d6u, 0x0000209eu, 0x00007952u, + 0x00001fdcu, 0x000700f5u, 0x00000009u, 0x000078d2u, 0x000075d6u, 0x0000209eu, 0x000078d1u, 0x00001fdcu, + 0x000700f5u, 0x00000009u, 0x000077e0u, 0x000075d6u, 0x0000209eu, 0x000077dfu, 0x00001fdcu, 0x000700f5u, + 0x0000005fu, 0x000076edu, 0x000076cbu, 0x0000209eu, 0x000076ecu, 0x00001fdcu, 0x000700f5u, 0x0000005fu, + 0x000076c9u, 0x000076cbu, 0x0000209eu, 0x000076c8u, 0x00001fdcu, 0x000700f5u, 0x0000003cu, 0x00007645u, + 0x00007638u, 0x0000209eu, 0x00007644u, 0x00001fdcu, 0x000700f5u, 0x0000003cu, 0x00007636u, 0x00007638u, + 0x0000209eu, 0x00007635u, 0x00001fdcu, 0x000500abu, 0x0000005du, 0x00001fdfu, 0x000075c9u, 0x00000379u, + 0x000400f6u, 0x00001fdbu, 0x00001fdcu, 0x00000000u, 0x000400fau, 0x00001fdfu, 0x00001fdau, 0x00001fdbu, + 0x000200f8u, 0x00001fdau, 0x0006000cu, 0x00000008u, 0x00001fe2u, 0x00000001u, 0x00000049u, 0x000075c9u, + 0x000500c4u, 0x00000008u, 0x00001fe4u, 0x00000217u, 0x00001fe2u, 0x0004007cu, 0x00000006u, 0x00001fe5u, + 0x00001fe4u, 0x000400c8u, 0x00000006u, 0x00001fe6u, 0x00001fe5u, 0x000500c7u, 0x00000006u, 0x00001fe8u, + 0x000075c9u, 0x00001fe6u, 0x00050080u, 0x00000008u, 0x00001ff0u, 0x00001fb4u, 0x00001fe2u, 0x00060041u, + 0x00000270u, 0x00001ff1u, 0x00001fedu, 0x00000208u, 0x00001ff0u, 0x0004003du, 0x00000006u, 0x00001ff2u, + 0x00001ff1u, 0x000200f9u, 0x00001ff3u, 0x000200f8u, 0x00001ff3u, 0x000700f5u, 0x0000003cu, 0x0000a115u, + 0x0000a116u, 0x00001fdau, 0x0000bd45u, 0x00001ff6u, 0x000700f5u, 0x0000003cu, 0x00009f81u, 0x00009f82u, + 0x00001fdau, 0x0000bd2bu, 0x00001ff6u, 0x000700f5u, 0x00000008u, 0x00009deeu, 0x00009defu, 0x00001fdau, + 0x0000bd10u, 0x00001ff6u, 0x000700f5u, 0x00000008u, 0x00009c5bu, 0x00009c5cu, 0x00001fdau, 0x0000bcf5u, + 0x00001ff6u, 0x000700f5u, 0x0000003cu, 0x00009ac5u, 0x00009ac6u, 0x00001fdau, 0x0000bccdu, 0x00001ff6u, + 0x000700f5u, 0x0000003cu, 0x0000993eu, 0x0000993fu, 0x00001fdau, 0x0000bca6u, 0x00001ff6u, 0x000700f5u, + 0x00000008u, 0x000097b8u, 0x000097b9u, 0x00001fdau, 0x0000bc7eu, 0x00001ff6u, 0x000700f5u, 0x00000008u, + 0x00009632u, 0x00009633u, 0x00001fdau, 0x0000bc56u, 0x00001ff6u, 0x000700f5u, 0x00000008u, 0x0000931bu, + 0x00007607u, 0x00001fdau, 0x0000bbe5u, 0x00001ff6u, 0x000700f5u, 0x00000008u, 0x000091afu, 0x000075fau, + 0x00001fdau, 0x0000bba7u, 0x00001ff6u, 0x000700f5u, 0x0000003cu, 0x0000903eu, 0x0000903fu, 0x00001fdau, + 0x0000bb69u, 0x00001ff6u, 0x000700f5u, 0x00000009u, 0x00008ed0u, 0x000075d4u, 0x00001fdau, 0x0000bb5cu, + 0x00001ff6u, 0x000700f5u, 0x00000009u, 0x00008d63u, 0x00008d64u, 0x00001fdau, 0x00008d61u, 0x00001ff6u, + 0x000700f5u, 0x00000008u, 0x00008c21u, 0x00008c22u, 0x00001fdau, 0x00008c1fu, 0x00001ff6u, 0x000700f5u, + 0x00000008u, 0x00008adfu, 0x00008ae0u, 0x00001fdau, 0x00008addu, 0x00001ff6u, 0x000700f5u, 0x00000008u, + 0x00008972u, 0x00008973u, 0x00001fdau, 0x00008970u, 0x00001ff6u, 0x000700f5u, 0x00000008u, 0x00008649u, + 0x0000864au, 0x00001fdau, 0x0000b9cau, 0x00001ff6u, 0x000700f5u, 0x00000009u, 0x00008590u, 0x00008591u, + 0x00001fdau, 0x0000b937u, 0x00001ff6u, 0x000700f5u, 0x00000008u, 0x00008403u, 0x00008404u, 0x00001fdau, + 0x0000b8c5u, 0x00001ff6u, 0x000700f5u, 0x00000009u, 0x000081e0u, 0x000081e1u, 0x00001fdau, 0x0000b81bu, + 0x00001ff6u, 0x000700f5u, 0x00000009u, 0x000080ebu, 0x000080ecu, 0x00001fdau, 0x0000b773u, 0x00001ff6u, + 0x000700f5u, 0x00000009u, 0x00007ff0u, 0x00007ff1u, 0x00001fdau, 0x0000b6cbu, 0x00001ff6u, 0x000700f5u, + 0x00000009u, 0x00007e84u, 0x00007e85u, 0x00001fdau, 0x0000b623u, 0x00001ff6u, 0x000700f5u, 0x00000009u, + 0x00007d9au, 0x00007d9bu, 0x00001fdau, 0x0000b590u, 0x00001ff6u, 0x000700f5u, 0x00000009u, 0x000079cdu, + 0x000079ceu, 0x00001fdau, 0x0000b46cu, 0x00001ff6u, 0x000700f5u, 0x00000009u, 0x00007952u, 0x00007953u, + 0x00001fdau, 0x0000b34au, 0x00001ff6u, 0x000700f5u, 0x00000009u, 0x000078d1u, 0x000078d2u, 0x00001fdau, + 0x0000b228u, 0x00001ff6u, 0x000700f5u, 0x00000009u, 0x000077dfu, 0x000077e0u, 0x00001fdau, 0x0000b106u, + 0x00001ff6u, 0x000700f5u, 0x0000005fu, 0x000076ecu, 0x000076edu, 0x00001fdau, 0x0000af84u, 0x00001ff6u, + 0x000700f5u, 0x0000005fu, 0x000076c8u, 0x000076c9u, 0x00001fdau, 0x0000ae02u, 0x00001ff6u, 0x000700f5u, + 0x0000003cu, 0x00007644u, 0x00007645u, 0x00001fdau, 0x0000ac74u, 0x00001ff6u, 0x000700f5u, 0x0000003cu, + 0x00007635u, 0x00007636u, 0x00001fdau, 0x0000aaddu, 0x00001ff6u, 0x000700f5u, 0x00000006u, 0x00007622u, + 0x00001ff2u, 0x00001fdau, 0x00002002u, 0x00001ff6u, 0x000700f5u, 0x0000005du, 0x0000a789u, 0x000075ecu, + 0x00001fdau, 0x0000a78au, 0x00001ff6u, 0x000700f5u, 0x0000005du, 0x0000a603u, 0x000075cfu, 0x00001fdau, + 0x0000a604u, 0x00001ff6u, 0x000500abu, 0x0000005du, 0x00001ff9u, 0x00007622u, 0x00000379u, 0x000400f6u, + 0x00001ff5u, 0x00001ff6u, 0x00000000u, 0x000400fau, 0x00001ff9u, 0x00001ff4u, 0x00001ff5u, 0x000200f8u, + 0x00001ff4u, 0x0006000cu, 0x00000008u, 0x00001ffcu, 0x00000001u, 0x00000049u, 0x00007622u, 0x000500c4u, + 0x00000008u, 0x00001ffeu, 0x00000217u, 0x00001ffcu, 0x0004007cu, 0x00000006u, 0x00001fffu, 0x00001ffeu, + 0x000400c8u, 0x00000006u, 0x00002000u, 0x00001fffu, 0x000500c7u, 0x00000006u, 0x00002002u, 0x00007622u, + 0x00002000u, 0x00050084u, 0x00000008u, 0x00002006u, 0x00000382u, 0x00001fe2u, 0x00050080u, 0x00000008u, + 0x00002007u, 0x00001ffcu, 0x00002006u, 0x0004007cu, 0x00000006u, 0x00002008u, 0x00002007u, 0x000300f7u, + 0x00002468u, 0x00000000u, 0x000300fbu, 0x00000379u, 0x000021f2u, 0x000200f8u, 0x000021f2u, 0x00060041u, + 0x00000348u, 0x0000246eu, 0x00000346u, 0x00000208u, 0x00002008u, 0x0004003du, 0x00000342u, 0x0000246fu, + 0x0000246eu, 0x00050051u, 0x00000008u, 0x00002470u, 0x0000246fu, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00002472u, 0x0000246fu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00002474u, 0x0000246fu, 0x00000002u, + 0x00050084u, 0x00000008u, 0x000021f8u, 0x00000887u, 0x00002472u, 0x000500b1u, 0x0000005du, 0x000021f9u, + 0x00001f9cu, 0x000021f8u, 0x000400a8u, 0x0000005du, 0x000021fau, 0x000021f9u, 0x000300f7u, 0x00002202u, + 0x00000000u, 0x000400fau, 0x000021fau, 0x000021fbu, 0x00002202u, 0x000200f8u, 0x000021fbu, 0x00050084u, + 0x00000008u, 0x000021ffu, 0x00002474u, 0x00000887u, 0x00050080u, 0x00000008u, 0x00002200u, 0x000021ffu, + 0x00001c38u, 0x000500adu, 0x0000005du, 0x00002201u, 0x00001f9cu, 0x00002200u, 0x000200f9u, 0x00002202u, + 0x000200f8u, 0x00002202u, 0x000700f5u, 0x0000005du, 0x00002203u, 0x000021f9u, 0x000021f2u, 0x00002201u, + 0x000021fbu, 0x000300f7u, 0x00002205u, 0x00000000u, 0x000400fau, 0x00002203u, 0x00002204u, 0x00002205u, + 0x000200f8u, 0x00002204u, 0x000200f9u, 0x00002468u, 0x000200f8u, 0x00002205u, 0x00070041u, 0x0000027cu, + 0x00002207u, 0x00001c44u, 0x00000208u, 0x00002008u, 0x00000269u, 0x0004003du, 0x0000022eu, 0x00002208u, + 0x00002207u, 0x00040071u, 0x00000006u, 0x00002209u, 0x00002208u, 0x000300f7u, 0x00002214u, 0x00000000u, + 0x000400fau, 0x00001c49u, 0x0000220au, 0x00002214u, 0x000200f8u, 0x0000220au, 0x000500c7u, 0x00000006u, + 0x0000220cu, 0x00002209u, 0x00000a3cu, 0x000500abu, 0x0000005du, 0x0000220du, 0x0000220cu, 0x00000379u, + 0x000300f7u, 0x00002213u, 0x00000000u, 0x000400fau, 0x0000220du, 0x0000220eu, 0x00002213u, 0x000200f8u, + 0x0000220eu, 0x000500c7u, 0x00000008u, 0x00002210u, 0x00001f98u, 0x00001c52u, 0x000500c7u, 0x00000008u, + 0x00002212u, 0x00001f9cu, 0x00001c56u, 0x000200f9u, 0x00002213u, 0x000200f8u, 0x00002213u, 0x000700f5u, + 0x00000008u, 0x00007628u, 0x00001f98u, 0x0000220au, 0x00002210u, 0x0000220eu, 0x000700f5u, 0x00000008u, + 0x00007626u, 0x00001f9cu, 0x0000220au, 0x00002212u, 0x0000220eu, 0x000200f9u, 0x00002214u, 0x000200f8u, + 0x00002214u, 0x000700f5u, 0x00000008u, 0x00007627u, 0x00001f98u, 0x00002205u, 0x00007628u, 0x00002213u, + 0x000700f5u, 0x00000008u, 0x00007625u, 0x00001f9cu, 0x00002205u, 0x00007626u, 0x00002213u, 0x00050084u, + 0x00000008u, 0x00002217u, 0x00000887u, 0x00002470u, 0x00050082u, 0x00000008u, 0x0000221cu, 0x00007625u, + 0x000021f8u, 0x00050080u, 0x00000008u, 0x0000221du, 0x00002217u, 0x0000221cu, 0x0004007cu, 0x00000006u, + 0x0000221eu, 0x0000221du, 0x00070041u, 0x0000031bu, 0x0000247cu, 0x00000319u, 0x00000208u, 0x0000221eu, + 0x00000208u, 0x0004003du, 0x00000009u, 0x0000247du, 0x0000247cu, 0x00070041u, 0x0000031bu, 0x0000247fu, + 0x00000319u, 0x00000208u, 0x0000221eu, 0x00000217u, 0x0004003du, 0x00000009u, 0x00002480u, 0x0000247fu, + 0x00070041u, 0x00000322u, 0x00002482u, 0x00000319u, 0x00000208u, 0x0000221eu, 0x0000021au, 0x0004003du, + 0x00000314u, 0x00002483u, 0x00002482u, 0x00040071u, 0x0000023cu, 0x00002484u, 0x00002483u, 0x0004007cu, + 0x00000009u, 0x00002485u, 0x00002484u, 0x00070041u, 0x00000322u, 0x00002487u, 0x00000319u, 0x00000208u, + 0x0000221eu, 0x0000021du, 0x0004003du, 0x00000314u, 0x00002488u, 0x00002487u, 0x00040071u, 0x0000023cu, + 0x00002489u, 0x00002488u, 0x0004007cu, 0x00000009u, 0x0000248au, 0x00002489u, 0x00070041u, 0x000002adu, + 0x0000248cu, 0x00000319u, 0x00000208u, 0x0000221eu, 0x00000220u, 0x0004003du, 0x00000008u, 0x0000248du, + 0x0000248cu, 0x00070041u, 0x000002adu, 0x0000248fu, 0x00000319u, 0x00000208u, 0x0000221eu, 0x00000223u, + 0x0004003du, 0x00000008u, 0x00002490u, 0x0000248fu, 0x00070041u, 0x000002adu, 0x00002492u, 0x00000319u, + 0x00000208u, 0x0000221eu, 0x00000226u, 0x0004003du, 0x00000008u, 0x00002493u, 0x00002492u, 0x00070041u, + 0x00000336u, 0x00002495u, 0x00000319u, 0x00000208u, 0x0000221eu, 0x00000229u, 0x0004003du, 0x00000231u, + 0x00002496u, 0x00002495u, 0x00040072u, 0x00000008u, 0x00002497u, 0x00002496u, 0x00070041u, 0x00000275u, + 0x00002499u, 0x00000319u, 0x00000208u, 0x0000221eu, 0x00000263u, 0x0004003du, 0x00000230u, 0x0000249au, + 0x00002499u, 0x00040071u, 0x00000006u, 0x0000249bu, 0x0000249au, 0x0004007cu, 0x00000008u, 0x0000249cu, + 0x0000249bu, 0x000500aau, 0x0000005du, 0x00002222u, 0x0000249cu, 0x00000208u, 0x000300f7u, 0x00002224u, + 0x00000000u, 0x000400fau, 0x00002222u, 0x00002223u, 0x00002224u, 0x000200f8u, 0x00002223u, 0x000200f9u, + 0x00002468u, 0x000200f8u, 0x00002224u, 0x00070041u, 0x0000027cu, 0x00002226u, 0x00001c44u, 0x00000208u, + 0x00002008u, 0x0000026fu, 0x0004003du, 0x0000022eu, 0x00002227u, 0x00002226u, 0x00040071u, 0x00000006u, + 0x00002228u, 0x00002227u, 0x00060041u, 0x0000020fu, 0x000024a2u, 0x0000020du, 0x00000208u, 0x00002008u, + 0x0004003du, 0x00000209u, 0x000024a3u, 0x000024a2u, 0x00050051u, 0x00000009u, 0x000024a6u, 0x000024a3u, + 0x00000001u, 0x00050051u, 0x00000009u, 0x000024aau, 0x000024a3u, 0x00000003u, 0x00050051u, 0x00000009u, + 0x000024aeu, 0x000024a3u, 0x00000005u, 0x00050051u, 0x00000009u, 0x000024b2u, 0x000024a3u, 0x00000007u, + 0x00070041u, 0x00000239u, 0x0000222cu, 0x00000a16u, 0x00000208u, 0x00002008u, 0x00000208u, 0x0004003du, + 0x0000022fu, 0x0000222du, 0x0000222cu, 0x00040071u, 0x0000023cu, 0x0000222eu, 0x0000222du, 0x00050051u, + 0x00000006u, 0x00002230u, 0x0000222eu, 0x00000000u, 0x00050051u, 0x00000006u, 0x00002232u, 0x0000222eu, + 0x00000002u, 0x00070041u, 0x00000239u, 0x000024b8u, 0x00000294u, 0x00000208u, 0x00002230u, 0x00000208u, + 0x0004003du, 0x0000022fu, 0x000024b9u, 0x000024b8u, 0x00040071u, 0x0000023cu, 0x000024bau, 0x000024b9u, + 0x0004007cu, 0x00000009u, 0x000024bbu, 0x000024bau, 0x00070041u, 0x00000239u, 0x000024bdu, 0x00000294u, + 0x00000208u, 0x00002230u, 0x00000217u, 0x0004003du, 0x0000022fu, 0x000024beu, 0x000024bdu, 0x00040071u, + 0x0000023cu, 0x000024bfu, 0x000024beu, 0x0004007cu, 0x00000009u, 0x000024c0u, 0x000024bfu, 0x00070041u, + 0x00000239u, 0x000024c2u, 0x00000294u, 0x00000208u, 0x00002230u, 0x0000021au, 0x0004003du, 0x0000022fu, + 0x000024c3u, 0x000024c2u, 0x00040071u, 0x0000023cu, 0x000024c4u, 0x000024c3u, 0x0004007cu, 0x00000009u, + 0x000024c5u, 0x000024c4u, 0x00070041u, 0x00000239u, 0x000024c7u, 0x00000294u, 0x00000208u, 0x00002230u, + 0x0000021du, 0x0004003du, 0x0000022fu, 0x000024c8u, 0x000024c7u, 0x00040071u, 0x0000023cu, 0x000024c9u, + 0x000024c8u, 0x0004007cu, 0x00000009u, 0x000024cau, 0x000024c9u, 0x00070041u, 0x00000270u, 0x000024ccu, + 0x00000294u, 0x00000208u, 0x00002230u, 0x00000220u, 0x0004003du, 0x00000006u, 0x000024cdu, 0x000024ccu, + 0x00070041u, 0x000002adu, 0x000024cfu, 0x00000294u, 0x00000208u, 0x00002230u, 0x00000223u, 0x0004003du, + 0x00000008u, 0x000024d0u, 0x000024cfu, 0x000500c7u, 0x00000006u, 0x00002242u, 0x000024cdu, 0x0000037cu, + 0x000500abu, 0x0000005du, 0x00002243u, 0x00002242u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002245u, + 0x000024cdu, 0x00000a3cu, 0x000500abu, 0x0000005du, 0x00002246u, 0x00002245u, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x00002248u, 0x000024cdu, 0x00001ca1u, 0x000500abu, 0x0000005du, 0x00002249u, 0x00002248u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000224bu, 0x000024cdu, 0x00000a42u, 0x000500abu, 0x0000005du, + 0x0000224cu, 0x0000224bu, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000224eu, 0x000024cdu, 0x00000a48u, + 0x000500abu, 0x0000005du, 0x0000224fu, 0x0000224eu, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002251u, + 0x000024cdu, 0x00000360u, 0x000500abu, 0x0000005du, 0x00002252u, 0x00002251u, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x00002254u, 0x000024cdu, 0x00001cb2u, 0x000500abu, 0x0000005du, 0x00002255u, 0x00002254u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002257u, 0x000024cdu, 0x00000f3cu, 0x000500abu, 0x0000005du, + 0x00002258u, 0x00002257u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000225au, 0x000024cdu, 0x00000f34u, + 0x000500abu, 0x0000005du, 0x0000225bu, 0x0000225au, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000225du, + 0x000024cdu, 0x00000706u, 0x000500abu, 0x0000005du, 0x0000225eu, 0x0000225du, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x00002260u, 0x000024cdu, 0x00000a4eu, 0x000500abu, 0x0000005du, 0x00002261u, 0x00002260u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002263u, 0x000024cdu, 0x0000048au, 0x000500abu, 0x0000005du, + 0x00002264u, 0x00002263u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002266u, 0x000024cdu, 0x00000e6du, + 0x000500abu, 0x0000005du, 0x00002267u, 0x00002266u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002269u, + 0x000024cdu, 0x00001ccfu, 0x000500abu, 0x0000005du, 0x0000226au, 0x00002269u, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x0000226cu, 0x000024cdu, 0x00001cd4u, 0x000500abu, 0x0000005du, 0x0000226du, 0x0000226cu, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000226fu, 0x000024cdu, 0x00001cd9u, 0x000500abu, 0x0000005du, + 0x00002270u, 0x0000226fu, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002272u, 0x000024cdu, 0x00001cdeu, + 0x000500abu, 0x0000005du, 0x00002273u, 0x00002272u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002275u, + 0x000024cdu, 0x00001ce3u, 0x000500abu, 0x0000005du, 0x00002276u, 0x00002275u, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x00002278u, 0x000024cdu, 0x00001ce8u, 0x000500abu, 0x0000005du, 0x00002279u, 0x00002278u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000227bu, 0x000024cdu, 0x00001cedu, 0x000500abu, 0x0000005du, + 0x0000227cu, 0x0000227bu, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000227eu, 0x000024cdu, 0x00001cf2u, + 0x000500abu, 0x0000005du, 0x0000227fu, 0x0000227eu, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002281u, + 0x000024cdu, 0x00001cf7u, 0x000500abu, 0x0000005du, 0x00002282u, 0x00002281u, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x00002284u, 0x000024cdu, 0x00001cfcu, 0x000500abu, 0x0000005du, 0x00002285u, 0x00002284u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002287u, 0x000024cdu, 0x00001d01u, 0x000500abu, 0x0000005du, + 0x00002288u, 0x00002287u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000228au, 0x000024cdu, 0x00001d05u, + 0x000500abu, 0x0000005du, 0x0000228bu, 0x0000228au, 0x00000379u, 0x000300f7u, 0x00002296u, 0x00000000u, + 0x000400fau, 0x0000228bu, 0x0000228cu, 0x00002296u, 0x000200f8u, 0x0000228cu, 0x0004007cu, 0x00000006u, + 0x0000228eu, 0x00007627u, 0x0004007cu, 0x00000006u, 0x00002290u, 0x00007625u, 0x00060041u, 0x00001d0fu, + 0x00002292u, 0x00000ccfu, 0x00000208u, 0x0000021du, 0x0004003du, 0x00000006u, 0x00002293u, 0x00002292u, + 0x00050080u, 0x00000006u, 0x00002294u, 0x00002008u, 0x00002293u, 0x00060050u, 0x00000358u, 0x000024d7u, + 0x0000228eu, 0x00002290u, 0x00002294u, 0x000500c2u, 0x00000358u, 0x000024dau, 0x000024d7u, 0x0000bda2u, + 0x0008004fu, 0x00000358u, 0x000024dcu, 0x000024d7u, 0x000024d7u, 0x00000001u, 0x00000002u, 0x00000000u, + 0x000500c6u, 0x00000358u, 0x000024ddu, 0x000024dau, 0x000024dcu, 0x00050084u, 0x00000358u, 0x000024dfu, + 0x000024ddu, 0x0000bda3u, 0x000500c2u, 0x00000358u, 0x000024e2u, 0x000024dfu, 0x0000bda2u, 0x0008004fu, + 0x00000358u, 0x000024e4u, 0x000024dfu, 0x000024dfu, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, + 0x00000358u, 0x000024e5u, 0x000024e2u, 0x000024e4u, 0x00050084u, 0x00000358u, 0x000024e7u, 0x000024e5u, + 0x0000bda3u, 0x000500c2u, 0x00000358u, 0x000024eau, 0x000024e7u, 0x0000bda2u, 0x0008004fu, 0x00000358u, + 0x000024ecu, 0x000024e7u, 0x000024e7u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000358u, + 0x000024edu, 0x000024eau, 0x000024ecu, 0x00050084u, 0x00000358u, 0x000024efu, 0x000024edu, 0x0000bda3u, + 0x00050051u, 0x00000006u, 0x000024f1u, 0x000024efu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000024f2u, + 0x000024f1u, 0x0000037cu, 0x0004007cu, 0x00000008u, 0x000024f3u, 0x000024f2u, 0x000200f9u, 0x00002296u, + 0x000200f8u, 0x00002296u, 0x000700f5u, 0x00000008u, 0x00008400u, 0x00008403u, 0x00002224u, 0x000024f3u, + 0x0000228cu, 0x000500c7u, 0x00000006u, 0x00002298u, 0x00002209u, 0x0000048au, 0x000500abu, 0x0000005du, + 0x00002299u, 0x00002298u, 0x00000379u, 0x000300f7u, 0x000022e6u, 0x00000000u, 0x000400fau, 0x0000226au, + 0x0000229bu, 0x000022d6u, 0x000200f8u, 0x000022d6u, 0x000300f7u, 0x000022e5u, 0x00000000u, 0x000400fau, + 0x00002267u, 0x000022d8u, 0x000022e5u, 0x000200f8u, 0x000022d8u, 0x000500afu, 0x0000005du, 0x000022ddu, + 0x00007627u, 0x00002490u, 0x000300f7u, 0x000022e3u, 0x00000000u, 0x000400fau, 0x000022ddu, 0x000022deu, + 0x000022e3u, 0x000200f8u, 0x000022deu, 0x000500b3u, 0x0000005du, 0x000022e2u, 0x00007627u, 0x00002493u, + 0x000200f9u, 0x000022e3u, 0x000200f8u, 0x000022e3u, 0x000700f5u, 0x0000005du, 0x000022e4u, 0x000022ddu, + 0x000022d8u, 0x000022e2u, 0x000022deu, 0x000200f9u, 0x00002468u, 0x000200f8u, 0x000022e5u, 0x000200f9u, + 0x000022e6u, 0x000200f8u, 0x0000229bu, 0x000500afu, 0x0000005du, 0x0000229fu, 0x00007627u, 0x00002490u, + 0x000300f7u, 0x000022a5u, 0x00000000u, 0x000400fau, 0x0000229fu, 0x000022a0u, 0x000022a5u, 0x000200f8u, + 0x000022a0u, 0x000500b3u, 0x0000005du, 0x000022a4u, 0x00007627u, 0x00002493u, 0x000200f9u, 0x000022a5u, + 0x000200f8u, 0x000022a5u, 0x000700f5u, 0x0000005du, 0x000022a6u, 0x0000229fu, 0x0000229bu, 0x000022a4u, + 0x000022a0u, 0x000400a8u, 0x0000005du, 0x000022a8u, 0x000022a6u, 0x000300f7u, 0x000022aau, 0x00000000u, + 0x000400fau, 0x000022a8u, 0x000022a9u, 0x000022aau, 0x000200f8u, 0x000022a9u, 0x000200f9u, 0x00002468u, + 0x000200f8u, 0x000022aau, 0x000300f7u, 0x00002509u, 0x00000000u, 0x000400fau, 0x00002299u, 0x000024ffu, + 0x00002504u, 0x000200f8u, 0x00002504u, 0x00050082u, 0x00000008u, 0x00002508u, 0x00002493u, 0x00007627u, + 0x000200f9u, 0x00002509u, 0x000200f8u, 0x000024ffu, 0x00050082u, 0x00000008u, 0x00002503u, 0x00007627u, + 0x00002490u, 0x000200f9u, 0x00002509u, 0x000200f8u, 0x00002509u, 0x000700f5u, 0x00000008u, 0x00008931u, + 0x00002503u, 0x000024ffu, 0x00002508u, 0x00002504u, 0x000500c3u, 0x00000008u, 0x0000250cu, 0x00008931u, + 0x0000084bu, 0x00060041u, 0x00000cd0u, 0x0000250eu, 0x00000ccfu, 0x00000208u, 0x00000217u, 0x0004003du, + 0x00000008u, 0x0000250fu, 0x0000250eu, 0x000500c7u, 0x00000008u, 0x00002510u, 0x0000250cu, 0x0000250fu, + 0x00050082u, 0x00000008u, 0x00002513u, 0x0000250cu, 0x00002510u, 0x00060041u, 0x00000cd0u, 0x00002515u, + 0x00000ccfu, 0x00000208u, 0x00000208u, 0x0004003du, 0x00000008u, 0x00002516u, 0x00002515u, 0x000500c3u, + 0x00000008u, 0x00002517u, 0x0000250cu, 0x00002516u, 0x000600a9u, 0x00000008u, 0x00002519u, 0x00002299u, + 0x00000217u, 0x00000cddu, 0x00050084u, 0x00000008u, 0x0000251au, 0x00002517u, 0x00002519u, 0x0008004fu, + 0x0000003cu, 0x0000251du, 0x00002480u, 0x00002480u, 0x00000000u, 0x00000001u, 0x00000003u, 0x0008004fu, + 0x0000003cu, 0x0000251fu, 0x000024aeu, 0x000024aeu, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, + 0x0000003cu, 0x00002521u, 0x0000251fu, 0x0000bda4u, 0x00060050u, 0x0000003cu, 0x00002523u, 0x0000251au, + 0x0000251au, 0x0000251au, 0x00050084u, 0x0000003cu, 0x00002524u, 0x00002521u, 0x00002523u, 0x00050080u, + 0x0000003cu, 0x00002525u, 0x0000251du, 0x00002524u, 0x000300f7u, 0x00002533u, 0x00000000u, 0x000400fau, + 0x00002252u, 0x00002527u, 0x0000252eu, 0x000200f8u, 0x0000252eu, 0x000500c3u, 0x0000003cu, 0x00002531u, + 0x00002525u, 0x0000bda5u, 0x0007004fu, 0x0000005fu, 0x000025bfu, 0x00002531u, 0x00002531u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00002533u, 0x000200f8u, 0x00002527u, 0x000500c3u, 0x0000003cu, 0x0000252au, + 0x00002525u, 0x0000bda5u, 0x00050051u, 0x00000008u, 0x00002540u, 0x0000252au, 0x00000002u, 0x000500b3u, + 0x0000005du, 0x00002542u, 0x00002540u, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00002544u, 0x00002540u, + 0x00000c0bu, 0x0006000cu, 0x00000008u, 0x000025a1u, 0x00000001u, 0x0000004au, 0x00002544u, 0x00050082u, + 0x00000008u, 0x000025a2u, 0x00000288u, 0x000025a1u, 0x0007000cu, 0x00000008u, 0x000025a3u, 0x00000001u, + 0x00000027u, 0x000025a2u, 0x00000288u, 0x000500c4u, 0x00000008u, 0x000025a6u, 0x00002544u, 0x000025a3u, + 0x000500c7u, 0x00000008u, 0x000025a7u, 0x000025a6u, 0x00000b25u, 0x000500c7u, 0x00000008u, 0x000025a9u, + 0x000025a7u, 0x00000390u, 0x000500c3u, 0x00000008u, 0x000025abu, 0x000025a7u, 0x00000263u, 0x0003003eu, + 0x0000259cu, 0x00000be9u, 0x00050041u, 0x00000060u, 0x000025acu, 0x0000259cu, 0x000025abu, 0x0004003du, + 0x0000005fu, 0x000025adu, 0x000025acu, 0x00050051u, 0x00000008u, 0x000025b2u, 0x000025adu, 0x00000001u, + 0x00050084u, 0x00000008u, 0x000025b4u, 0x000025b2u, 0x000025a9u, 0x000500c3u, 0x00000008u, 0x000025b5u, + 0x000025b4u, 0x0000026fu, 0x00050051u, 0x00000008u, 0x000025b7u, 0x000025adu, 0x00000000u, 0x00050080u, + 0x00000008u, 0x000025b8u, 0x000025b5u, 0x000025b7u, 0x0007004fu, 0x0000005fu, 0x0000254au, 0x0000252au, + 0x0000252au, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x0000254du, 0x000025b8u, 0x000025b8u, + 0x00050084u, 0x0000005fu, 0x0000254eu, 0x0000254au, 0x0000254du, 0x000500c3u, 0x00000008u, 0x00002550u, + 0x00000c1eu, 0x000025a3u, 0x0004007eu, 0x00000008u, 0x00002551u, 0x00002550u, 0x000500c7u, 0x00000008u, + 0x00002552u, 0x00000c1du, 0x00002551u, 0x00050050u, 0x0000005fu, 0x00002555u, 0x00002552u, 0x00002552u, + 0x000500c7u, 0x0000005fu, 0x00002556u, 0x0000254eu, 0x00002555u, 0x000500abu, 0x0000005du, 0x00002558u, + 0x000025a3u, 0x00000288u, 0x000300f7u, 0x00002563u, 0x00000000u, 0x000400fau, 0x00002558u, 0x00002559u, + 0x0000255fu, 0x000200f8u, 0x0000255fu, 0x000500c4u, 0x0000005fu, 0x00002562u, 0x0000254eu, 0x0000bda9u, + 0x000200f9u, 0x00002563u, 0x000200f8u, 0x00002559u, 0x00050082u, 0x00000008u, 0x0000255cu, 0x00000282u, + 0x000025a3u, 0x00050050u, 0x0000005fu, 0x0000255du, 0x0000255cu, 0x0000255cu, 0x000500c3u, 0x0000005fu, + 0x0000255eu, 0x0000254eu, 0x0000255du, 0x000200f9u, 0x00002563u, 0x000200f8u, 0x00002563u, 0x000700f5u, + 0x0000005fu, 0x00008935u, 0x0000255eu, 0x00002559u, 0x00002562u, 0x0000255fu, 0x000700f5u, 0x0000005fu, + 0x00008933u, 0x0000255eu, 0x00002559u, 0x0000254eu, 0x0000255fu, 0x000500abu, 0x00000880u, 0x00002565u, + 0x00002556u, 0x00000c37u, 0x0004009au, 0x0000005du, 0x00002566u, 0x00002565u, 0x000300f7u, 0x00002592u, + 0x00000000u, 0x000400fau, 0x00002566u, 0x00002567u, 0x00002592u, 0x000200f8u, 0x00002567u, 0x00050051u, + 0x00000008u, 0x00002569u, 0x00002556u, 0x00000000u, 0x000500abu, 0x0000005du, 0x0000256bu, 0x00002569u, + 0x00002552u, 0x000300f7u, 0x00002570u, 0x00000000u, 0x000400fau, 0x0000256bu, 0x0000256cu, 0x00002570u, + 0x000200f8u, 0x0000256cu, 0x000500abu, 0x0000005du, 0x0000256fu, 0x00002569u, 0x00000208u, 0x000200f9u, + 0x00002570u, 0x000200f8u, 0x00002570u, 0x000700f5u, 0x0000005du, 0x00002571u, 0x0000256bu, 0x00002567u, + 0x0000256fu, 0x0000256cu, 0x000300f7u, 0x0000257cu, 0x00000000u, 0x000400fau, 0x00002571u, 0x00002572u, + 0x0000257cu, 0x000200f8u, 0x00002572u, 0x00050051u, 0x00000008u, 0x00002574u, 0x00008933u, 0x00000000u, + 0x000500c7u, 0x00000008u, 0x00002575u, 0x00002574u, 0x00000c1eu, 0x000500aau, 0x0000005du, 0x00002576u, + 0x00002575u, 0x00000208u, 0x000300f7u, 0x0000257bu, 0x00000000u, 0x000400fau, 0x00002576u, 0x00002577u, + 0x00002579u, 0x000200f8u, 0x00002579u, 0x00060052u, 0x0000005fu, 0x000071cbu, 0x00000c50u, 0x00008935u, + 0x00000000u, 0x000200f9u, 0x0000257bu, 0x000200f8u, 0x00002577u, 0x00060052u, 0x0000005fu, 0x000071c9u, + 0x00000c0bu, 0x00008935u, 0x00000000u, 0x000200f9u, 0x0000257bu, 0x000200f8u, 0x0000257bu, 0x000700f5u, + 0x0000005fu, 0x0000893bu, 0x000071c9u, 0x00002577u, 0x000071cbu, 0x00002579u, 0x000200f9u, 0x0000257cu, + 0x000200f8u, 0x0000257cu, 0x000700f5u, 0x0000005fu, 0x0000893au, 0x00008935u, 0x00002570u, 0x0000893bu, + 0x0000257bu, 0x00050051u, 0x00000008u, 0x0000257eu, 0x00002556u, 0x00000001u, 0x000500abu, 0x0000005du, + 0x00002580u, 0x0000257eu, 0x00002552u, 0x000300f7u, 0x00002585u, 0x00000000u, 0x000400fau, 0x00002580u, + 0x00002581u, 0x00002585u, 0x000200f8u, 0x00002581u, 0x000500abu, 0x0000005du, 0x00002584u, 0x0000257eu, + 0x00000208u, 0x000200f9u, 0x00002585u, 0x000200f8u, 0x00002585u, 0x000700f5u, 0x0000005du, 0x00002586u, + 0x00002580u, 0x0000257cu, 0x00002584u, 0x00002581u, 0x000300f7u, 0x00002591u, 0x00000000u, 0x000400fau, + 0x00002586u, 0x00002587u, 0x00002591u, 0x000200f8u, 0x00002587u, 0x00050051u, 0x00000008u, 0x00002589u, + 0x00008933u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x0000258au, 0x00002589u, 0x00000c1eu, 0x000500aau, + 0x0000005du, 0x0000258bu, 0x0000258au, 0x00000208u, 0x000300f7u, 0x00002590u, 0x00000000u, 0x000400fau, + 0x0000258bu, 0x0000258cu, 0x0000258eu, 0x000200f8u, 0x0000258eu, 0x00060052u, 0x0000005fu, 0x000071d2u, + 0x00000c50u, 0x0000893au, 0x00000001u, 0x000200f9u, 0x00002590u, 0x000200f8u, 0x0000258cu, 0x00060052u, + 0x0000005fu, 0x000071d0u, 0x00000c0bu, 0x0000893au, 0x00000001u, 0x000200f9u, 0x00002590u, 0x000200f8u, + 0x00002590u, 0x000700f5u, 0x0000005fu, 0x0000893fu, 0x000071d0u, 0x0000258cu, 0x000071d2u, 0x0000258eu, + 0x000200f9u, 0x00002591u, 0x000200f8u, 0x00002591u, 0x000700f5u, 0x0000005fu, 0x0000893eu, 0x0000893au, + 0x00002585u, 0x0000893fu, 0x00002590u, 0x000200f9u, 0x00002592u, 0x000200f8u, 0x00002592u, 0x000700f5u, + 0x0000005fu, 0x0000893du, 0x00008935u, 0x00002563u, 0x0000893eu, 0x00002591u, 0x00050050u, 0x00000880u, + 0x0000bdcbu, 0x00002542u, 0x00002542u, 0x000600a9u, 0x0000005fu, 0x0000bdccu, 0x0000bdcbu, 0x00000c6au, + 0x0000893du, 0x0008000cu, 0x0000005fu, 0x00002597u, 0x00000001u, 0x0000002du, 0x0000bdccu, 0x00000c6du, + 0x00000c6eu, 0x000200f9u, 0x00002533u, 0x000200f8u, 0x00002533u, 0x000700f5u, 0x0000005fu, 0x00008940u, + 0x00002597u, 0x00002592u, 0x000025bfu, 0x0000252eu, 0x000500c7u, 0x00000006u, 0x000022b5u, 0x00002228u, + 0x00000744u, 0x00080041u, 0x0000027cu, 0x000022b8u, 0x00000a16u, 0x00000208u, 0x00002008u, 0x0000021au, + 0x000022b5u, 0x0004003du, 0x0000022eu, 0x000022b9u, 0x000022b8u, 0x00040071u, 0x00000006u, 0x000022bau, + 0x000022b9u, 0x00070041u, 0x00000270u, 0x000025c3u, 0x000002d6u, 0x00000208u, 0x000022bau, 0x00000208u, + 0x0004003du, 0x00000006u, 0x000025c4u, 0x000025c3u, 0x00070041u, 0x00000270u, 0x000025c9u, 0x000002d6u, + 0x00000208u, 0x000022bau, 0x0000021au, 0x0004003du, 0x00000006u, 0x000025cau, 0x000025c9u, 0x00070041u, + 0x00000270u, 0x000025cfu, 0x000002d6u, 0x00000208u, 0x000022bau, 0x00000220u, 0x0004003du, 0x00000006u, + 0x000025d0u, 0x000025cfu, 0x00070041u, 0x00000270u, 0x000025d2u, 0x000002d6u, 0x00000208u, 0x000022bau, + 0x00000223u, 0x0004003du, 0x00000006u, 0x000025d3u, 0x000025d2u, 0x00070041u, 0x0000027cu, 0x000025dau, + 0x000002d6u, 0x00000208u, 0x000022bau, 0x00000229u, 0x0004003du, 0x0000022eu, 0x000025dbu, 0x000025dau, + 0x00040071u, 0x00000006u, 0x000025dcu, 0x000025dbu, 0x0004007cu, 0x00000008u, 0x000025ddu, 0x000025dcu, + 0x00070041u, 0x0000027cu, 0x000025dfu, 0x000002d6u, 0x00000208u, 0x000022bau, 0x00000263u, 0x0004003du, + 0x0000022eu, 0x000025e0u, 0x000025dfu, 0x00040071u, 0x00000006u, 0x000025e1u, 0x000025e0u, 0x0004007cu, + 0x00000008u, 0x000025e2u, 0x000025e1u, 0x00070041u, 0x0000027cu, 0x000025e4u, 0x000002d6u, 0x00000208u, + 0x000022bau, 0x00000269u, 0x0004003du, 0x0000022eu, 0x000025e5u, 0x000025e4u, 0x00040071u, 0x00000006u, + 0x000025e6u, 0x000025e5u, 0x0004007cu, 0x00000008u, 0x000025e7u, 0x000025e6u, 0x00070041u, 0x0000027cu, + 0x000025e9u, 0x000002d6u, 0x00000208u, 0x000022bau, 0x0000026fu, 0x0004003du, 0x0000022eu, 0x000025eau, + 0x000025e9u, 0x00040071u, 0x00000006u, 0x000025ebu, 0x000025eau, 0x0004007cu, 0x00000008u, 0x000025ecu, + 0x000025ebu, 0x00070041u, 0x0000027cu, 0x000025eeu, 0x000002d6u, 0x00000208u, 0x000022bau, 0x00000274u, + 0x0004003du, 0x0000022eu, 0x000025efu, 0x000025eeu, 0x00040071u, 0x00000006u, 0x000025f0u, 0x000025efu, + 0x0004007cu, 0x00000008u, 0x000025f1u, 0x000025f0u, 0x00070041u, 0x0000027cu, 0x000025f3u, 0x000002d6u, + 0x00000208u, 0x000022bau, 0x0000027bu, 0x0004003du, 0x0000022eu, 0x000025f4u, 0x000025f3u, 0x00040071u, + 0x00000006u, 0x000025f5u, 0x000025f4u, 0x0004007cu, 0x00000008u, 0x000025f6u, 0x000025f5u, 0x00070041u, + 0x0000027cu, 0x000025f8u, 0x000002d6u, 0x00000208u, 0x000022bau, 0x00000282u, 0x0004003du, 0x0000022eu, + 0x000025f9u, 0x000025f8u, 0x00040071u, 0x00000006u, 0x000025fau, 0x000025f9u, 0x0004007cu, 0x00000008u, + 0x000025fbu, 0x000025fau, 0x0004007cu, 0x00000008u, 0x00002614u, 0x000025c4u, 0x00050051u, 0x00000008u, + 0x00002618u, 0x00008940u, 0x00000000u, 0x0008000cu, 0x00000008u, 0x0000264eu, 0x00000001u, 0x0000002du, + 0x00002618u, 0x00000c50u, 0x00000c0bu, 0x000500b1u, 0x0000005du, 0x00002650u, 0x000025ecu, 0x00000274u, + 0x000300f7u, 0x0000265cu, 0x00000000u, 0x000400fau, 0x00002650u, 0x00002651u, 0x00002655u, 0x000200f8u, + 0x00002655u, 0x00050082u, 0x00000008u, 0x00002657u, 0x00000382u, 0x000025ecu, 0x000500c4u, 0x00000008u, + 0x00002659u, 0x0000264eu, 0x00002657u, 0x000500c3u, 0x00000008u, 0x0000265bu, 0x00002659u, 0x0000055eu, + 0x000200f9u, 0x0000265cu, 0x000200f8u, 0x00002651u, 0x000500c3u, 0x00000008u, 0x00002654u, 0x0000264eu, + 0x000025ecu, 0x000200f9u, 0x0000265cu, 0x000200f8u, 0x0000265cu, 0x000700f5u, 0x00000008u, 0x00008941u, + 0x00002654u, 0x00002651u, 0x0000265bu, 0x00002655u, 0x000500c4u, 0x00000008u, 0x0000265eu, 0x00002614u, + 0x0000021du, 0x00050082u, 0x00000008u, 0x00002660u, 0x00008941u, 0x0000265eu, 0x0004007cu, 0x00000008u, + 0x0000261du, 0x000025cau, 0x00050051u, 0x00000008u, 0x00002621u, 0x00008940u, 0x00000001u, 0x0008000cu, + 0x00000008u, 0x00002665u, 0x00000001u, 0x0000002du, 0x00002621u, 0x00000c50u, 0x00000c0bu, 0x000500b1u, + 0x0000005du, 0x00002667u, 0x000025f6u, 0x00000274u, 0x000300f7u, 0x00002673u, 0x00000000u, 0x000400fau, + 0x00002667u, 0x00002668u, 0x0000266cu, 0x000200f8u, 0x0000266cu, 0x00050082u, 0x00000008u, 0x0000266eu, + 0x00000382u, 0x000025f6u, 0x000500c4u, 0x00000008u, 0x00002670u, 0x00002665u, 0x0000266eu, 0x000500c3u, + 0x00000008u, 0x00002672u, 0x00002670u, 0x0000055eu, 0x000200f9u, 0x00002673u, 0x000200f8u, 0x00002668u, + 0x000500c3u, 0x00000008u, 0x0000266bu, 0x00002665u, 0x000025f6u, 0x000200f9u, 0x00002673u, 0x000200f8u, + 0x00002673u, 0x000700f5u, 0x00000008u, 0x00008943u, 0x0000266bu, 0x00002668u, 0x00002672u, 0x0000266cu, + 0x000500c4u, 0x00000008u, 0x00002675u, 0x0000261du, 0x0000021du, 0x00050082u, 0x00000008u, 0x00002677u, + 0x00008943u, 0x00002675u, 0x00050050u, 0x0000005fu, 0x0000bdc6u, 0x00002660u, 0x00002677u, 0x000500c3u, + 0x0000005fu, 0x00002626u, 0x0000bdc6u, 0x0000bdabu, 0x00060041u, 0x00000cd0u, 0x00002627u, 0x00000ccfu, + 0x00000208u, 0x0000021au, 0x0004003du, 0x00000008u, 0x00002628u, 0x00002627u, 0x000500aau, 0x0000005du, + 0x00002629u, 0x00002628u, 0x00000208u, 0x000300f7u, 0x00002649u, 0x00000000u, 0x000400fau, 0x00002629u, + 0x0000262au, 0x0000262bu, 0x000200f8u, 0x0000262bu, 0x000500aau, 0x0000005du, 0x0000262eu, 0x00002628u, + 0x00000217u, 0x000300f7u, 0x00002648u, 0x00000000u, 0x000400fau, 0x0000262eu, 0x0000262fu, 0x00002640u, + 0x000200f8u, 0x00002640u, 0x000500b1u, 0x0000005du, 0x00002827u, 0x00002513u, 0x0000021au, 0x000300f7u, + 0x0000282du, 0x00000000u, 0x000400fau, 0x00002827u, 0x00002829u, 0x0000282du, 0x000200f8u, 0x00002829u, + 0x000500abu, 0x0000005du, 0x0000282cu, 0x000025ddu, 0x0000021au, 0x000200f9u, 0x0000282du, 0x000200f8u, + 0x0000282du, 0x000700f5u, 0x0000005du, 0x0000282eu, 0x00002827u, 0x00002640u, 0x0000282cu, 0x00002829u, + 0x000400a8u, 0x0000005du, 0x00002830u, 0x00002243u, 0x000500a7u, 0x0000005du, 0x00002831u, 0x0000282eu, + 0x00002830u, 0x0007000cu, 0x00000008u, 0x00002834u, 0x00000001u, 0x00000027u, 0x000025ddu, 0x0000021au, + 0x000500aau, 0x0000005du, 0x00002837u, 0x000025ddu, 0x0000021du, 0x000500a6u, 0x0000005du, 0x0000283au, + 0x00002837u, 0x00002243u, 0x000600a9u, 0x00000008u, 0x0000283bu, 0x0000283au, 0x00001140u, 0x0000040fu, + 0x000300f7u, 0x0000291du, 0x00000000u, 0x000400fau, 0x00002831u, 0x0000283du, 0x000028bcu, 0x000200f8u, + 0x000028bcu, 0x00050051u, 0x00000008u, 0x000028bfu, 0x00002626u, 0x00000000u, 0x00050080u, 0x00000008u, + 0x000028c0u, 0x000028bfu, 0x00002513u, 0x000500abu, 0x0000005du, 0x00002966u, 0x000025e7u, 0x00000208u, + 0x000300f7u, 0x0000297cu, 0x00000000u, 0x000400fau, 0x00002966u, 0x00002967u, 0x0000297cu, 0x000200f8u, + 0x00002967u, 0x000500c4u, 0x00000008u, 0x0000296au, 0x00000217u, 0x000025e7u, 0x000500c7u, 0x00000008u, + 0x0000296du, 0x000025fbu, 0x0000021au, 0x000500abu, 0x0000005du, 0x0000296eu, 0x0000296du, 0x00000208u, + 0x000300f7u, 0x00002977u, 0x00000000u, 0x000400fau, 0x0000296eu, 0x0000296fu, 0x00002977u, 0x000200f8u, + 0x0000296fu, 0x000500c7u, 0x00000008u, 0x00002972u, 0x000028c0u, 0x0000296au, 0x00050082u, 0x00000008u, + 0x00002973u, 0x00002972u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00002974u, 0x00000001u, 0x0000002au, + 0x00002973u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00002976u, 0x000028c0u, 0x00002974u, 0x000200f9u, + 0x00002977u, 0x000200f8u, 0x00002977u, 0x000700f5u, 0x00000008u, 0x00008946u, 0x000028c0u, 0x00002967u, + 0x00002976u, 0x0000296fu, 0x00050082u, 0x00000008u, 0x00002979u, 0x0000296au, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x0000297bu, 0x00008946u, 0x00002979u, 0x000200f9u, 0x0000297cu, 0x000200f8u, 0x0000297cu, + 0x000700f5u, 0x00000008u, 0x00008947u, 0x000028c0u, 0x000028bcu, 0x0000297bu, 0x00002977u, 0x00050051u, + 0x00000008u, 0x000028c8u, 0x00002626u, 0x00000001u, 0x000500abu, 0x0000005du, 0x00002983u, 0x000025f1u, + 0x00000208u, 0x000300f7u, 0x00002999u, 0x00000000u, 0x000400fau, 0x00002983u, 0x00002984u, 0x00002999u, + 0x000200f8u, 0x00002984u, 0x000500c4u, 0x00000008u, 0x00002987u, 0x00000217u, 0x000025f1u, 0x000500c7u, + 0x00000008u, 0x0000298au, 0x000025fbu, 0x00000263u, 0x000500abu, 0x0000005du, 0x0000298bu, 0x0000298au, + 0x00000208u, 0x000300f7u, 0x00002994u, 0x00000000u, 0x000400fau, 0x0000298bu, 0x0000298cu, 0x00002994u, + 0x000200f8u, 0x0000298cu, 0x000500c7u, 0x00000008u, 0x0000298fu, 0x000028c8u, 0x00002987u, 0x00050082u, + 0x00000008u, 0x00002990u, 0x0000298fu, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00002991u, 0x00000001u, + 0x0000002au, 0x00002990u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00002993u, 0x000028c8u, 0x00002991u, + 0x000200f9u, 0x00002994u, 0x000200f8u, 0x00002994u, 0x000700f5u, 0x00000008u, 0x0000894au, 0x000028c8u, + 0x00002984u, 0x00002993u, 0x0000298cu, 0x00050082u, 0x00000008u, 0x00002996u, 0x00002987u, 0x00000217u, + 0x000500c7u, 0x00000008u, 0x00002998u, 0x0000894au, 0x00002996u, 0x000200f9u, 0x00002999u, 0x000200f8u, + 0x00002999u, 0x000700f5u, 0x00000008u, 0x0000894bu, 0x000028c8u, 0x0000297cu, 0x00002998u, 0x00002994u, + 0x0004007cu, 0x00000006u, 0x000028cfu, 0x0000894bu, 0x00050084u, 0x00000006u, 0x000028d0u, 0x000025d3u, + 0x000028cfu, 0x00050080u, 0x00000006u, 0x000028d1u, 0x000025d0u, 0x000028d0u, 0x00050084u, 0x00000006u, + 0x000028d3u, 0x000028d1u, 0x000003c9u, 0x000500c4u, 0x00000008u, 0x000028d6u, 0x00008947u, 0x00002834u, + 0x0004007cu, 0x00000006u, 0x000028d7u, 0x000028d6u, 0x00050080u, 0x00000006u, 0x000028d8u, 0x000028d3u, + 0x000028d7u, 0x000500c7u, 0x00000006u, 0x000028d9u, 0x000028d8u, 0x000011adu, 0x000500c7u, 0x00000006u, + 0x000028dcu, 0x000028cfu, 0x0000048au, 0x00050084u, 0x00000006u, 0x000028ddu, 0x000028dcu, 0x00000360u, + 0x000500c6u, 0x00000006u, 0x000028dfu, 0x000028d9u, 0x000028ddu, 0x000500c2u, 0x00000006u, 0x000028e1u, + 0x000028dfu, 0x000003c9u, 0x0004007cu, 0x00000006u, 0x000028e3u, 0x0000283bu, 0x000500c7u, 0x00000006u, + 0x000028e5u, 0x000028e1u, 0x000028e3u, 0x000500c6u, 0x00000006u, 0x000028e8u, 0x000028e5u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x000028e9u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x000028e8u, + 0x0004003du, 0x00000230u, 0x000028eau, 0x000028e9u, 0x00040071u, 0x00000006u, 0x000028ebu, 0x000028eau, + 0x0004007cu, 0x00000008u, 0x000028ecu, 0x000028ebu, 0x000300f7u, 0x0000291cu, 0x00000000u, 0x000400fau, + 0x00002243u, 0x000028eeu, 0x0000291cu, 0x000200f8u, 0x000028eeu, 0x000500aau, 0x0000005du, 0x000028f1u, + 0x000025ddu, 0x00000208u, 0x000300f7u, 0x00002913u, 0x00000000u, 0x000400fau, 0x000028f1u, 0x000028f2u, + 0x00002905u, 0x000200f8u, 0x00002905u, 0x000500c7u, 0x00000006u, 0x00002907u, 0x000028dfu, 0x000003c9u, + 0x00050084u, 0x00000006u, 0x00002908u, 0x00000706u, 0x00002907u, 0x00050082u, 0x00000006u, 0x00002909u, + 0x00000360u, 0x00002908u, 0x000500c3u, 0x00000008u, 0x0000290bu, 0x000028ecu, 0x00002909u, 0x000500c7u, + 0x00000008u, 0x0000290du, 0x0000290bu, 0x00000390u, 0x000500c4u, 0x00000008u, 0x0000290fu, 0x0000290du, + 0x0000021au, 0x00050080u, 0x00000008u, 0x00002912u, 0x0000290fu, 0x00002513u, 0x000200f9u, 0x00002913u, + 0x000200f8u, 0x000028f2u, 0x000500c7u, 0x00000006u, 0x000028f4u, 0x000028dfu, 0x00000490u, 0x00050084u, + 0x00000006u, 0x000028f5u, 0x00000706u, 0x000028f4u, 0x00050082u, 0x00000006u, 0x000028f6u, 0x00001253u, + 0x000028f5u, 0x000500c3u, 0x00000008u, 0x000028f8u, 0x000028ecu, 0x000028f6u, 0x000500c7u, 0x00000008u, + 0x000028fau, 0x000028f8u, 0x00000545u, 0x000500c4u, 0x00000008u, 0x000028fdu, 0x000025e2u, 0x00000220u, + 0x000500c5u, 0x00000008u, 0x000028ffu, 0x000028fau, 0x000028fdu, 0x000500c4u, 0x00000008u, 0x00002901u, + 0x000028ffu, 0x0000021au, 0x00050080u, 0x00000008u, 0x00002904u, 0x00002901u, 0x00002513u, 0x000200f9u, + 0x00002913u, 0x000200f8u, 0x00002913u, 0x000700f5u, 0x00000008u, 0x0000894cu, 0x00002904u, 0x000028f2u, + 0x00002912u, 0x00002905u, 0x000500c5u, 0x00000008u, 0x00002916u, 0x0000894cu, 0x00001276u, 0x000500c6u, + 0x00000008u, 0x00002917u, 0x00002916u, 0x00000217u, 0x00080041u, 0x00000275u, 0x00002918u, 0x00000f3au, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00002917u, 0x0004003du, 0x00000230u, 0x00002919u, 0x00002918u, + 0x00040071u, 0x00000006u, 0x0000291au, 0x00002919u, 0x0004007cu, 0x00000008u, 0x0000291bu, 0x0000291au, + 0x000200f9u, 0x0000291cu, 0x000200f8u, 0x0000291cu, 0x000700f5u, 0x00000008u, 0x00008958u, 0x000028ecu, + 0x00002999u, 0x0000291bu, 0x00002913u, 0x000200f9u, 0x0000291du, 0x000200f8u, 0x0000283du, 0x00050084u, + 0x00000008u, 0x0000283fu, 0x0000021au, 0x00002513u, 0x00050051u, 0x00000008u, 0x00002841u, 0x00002626u, + 0x00000000u, 0x00050080u, 0x00000008u, 0x00002842u, 0x00002841u, 0x0000283fu, 0x00050050u, 0x0000005fu, + 0x00002924u, 0x00002842u, 0x00002842u, 0x00050080u, 0x0000005fu, 0x00002925u, 0x00002924u, 0x00000ddbu, + 0x000500abu, 0x0000005du, 0x00002928u, 0x000025e7u, 0x00000208u, 0x000300f7u, 0x00002942u, 0x00000000u, + 0x000400fau, 0x00002928u, 0x00002929u, 0x00002942u, 0x000200f8u, 0x00002929u, 0x000500c4u, 0x00000008u, + 0x0000292cu, 0x00000217u, 0x000025e7u, 0x000500c7u, 0x00000008u, 0x0000292fu, 0x000025fbu, 0x0000021au, + 0x000500abu, 0x0000005du, 0x00002930u, 0x0000292fu, 0x00000208u, 0x000300f7u, 0x0000293cu, 0x00000000u, + 0x000400fau, 0x00002930u, 0x00002931u, 0x0000293cu, 0x000200f8u, 0x00002931u, 0x00050050u, 0x0000005fu, + 0x00002934u, 0x0000292cu, 0x0000292cu, 0x000500c7u, 0x0000005fu, 0x00002935u, 0x00002925u, 0x00002934u, + 0x00050082u, 0x0000005fu, 0x00002937u, 0x00002935u, 0x0000bda9u, 0x0007000cu, 0x0000005fu, 0x00002939u, + 0x00000001u, 0x0000002au, 0x00002937u, 0x00000c37u, 0x000500c6u, 0x0000005fu, 0x0000293bu, 0x00002925u, + 0x00002939u, 0x000200f9u, 0x0000293cu, 0x000200f8u, 0x0000293cu, 0x000700f5u, 0x0000005fu, 0x0000894du, + 0x00002925u, 0x00002929u, 0x0000293bu, 0x00002931u, 0x00050082u, 0x00000008u, 0x0000293eu, 0x0000292cu, + 0x00000217u, 0x00050050u, 0x0000005fu, 0x00002940u, 0x0000293eu, 0x0000293eu, 0x000500c7u, 0x0000005fu, + 0x00002941u, 0x0000894du, 0x00002940u, 0x000200f9u, 0x00002942u, 0x000200f8u, 0x00002942u, 0x000700f5u, + 0x0000005fu, 0x0000894eu, 0x00002925u, 0x0000283du, 0x00002941u, 0x0000293cu, 0x00050051u, 0x00000008u, + 0x0000284au, 0x00002626u, 0x00000001u, 0x000500abu, 0x0000005du, 0x00002949u, 0x000025f1u, 0x00000208u, + 0x000300f7u, 0x0000295fu, 0x00000000u, 0x000400fau, 0x00002949u, 0x0000294au, 0x0000295fu, 0x000200f8u, + 0x0000294au, 0x000500c4u, 0x00000008u, 0x0000294du, 0x00000217u, 0x000025f1u, 0x000500c7u, 0x00000008u, + 0x00002950u, 0x000025fbu, 0x00000263u, 0x000500abu, 0x0000005du, 0x00002951u, 0x00002950u, 0x00000208u, + 0x000300f7u, 0x0000295au, 0x00000000u, 0x000400fau, 0x00002951u, 0x00002952u, 0x0000295au, 0x000200f8u, + 0x00002952u, 0x000500c7u, 0x00000008u, 0x00002955u, 0x0000284au, 0x0000294du, 0x00050082u, 0x00000008u, + 0x00002956u, 0x00002955u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00002957u, 0x00000001u, 0x0000002au, + 0x00002956u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00002959u, 0x0000284au, 0x00002957u, 0x000200f9u, + 0x0000295au, 0x000200f8u, 0x0000295au, 0x000700f5u, 0x00000008u, 0x00008951u, 0x0000284au, 0x0000294au, + 0x00002959u, 0x00002952u, 0x00050082u, 0x00000008u, 0x0000295cu, 0x0000294du, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x0000295eu, 0x00008951u, 0x0000295cu, 0x000200f9u, 0x0000295fu, 0x000200f8u, 0x0000295fu, + 0x000700f5u, 0x00000008u, 0x00008952u, 0x0000284au, 0x00002942u, 0x0000295eu, 0x0000295au, 0x0004007cu, + 0x00000006u, 0x00002851u, 0x00008952u, 0x00050084u, 0x00000006u, 0x00002852u, 0x000025d3u, 0x00002851u, + 0x00050080u, 0x00000006u, 0x00002853u, 0x000025d0u, 0x00002852u, 0x00050084u, 0x00000006u, 0x00002855u, + 0x00002853u, 0x000003c9u, 0x00050050u, 0x0000005fu, 0x00002858u, 0x00002834u, 0x00002834u, 0x000500c4u, + 0x0000005fu, 0x00002859u, 0x0000894eu, 0x00002858u, 0x0004007cu, 0x000000a6u, 0x0000285au, 0x00002859u, + 0x00050050u, 0x000000a6u, 0x0000285bu, 0x00002855u, 0x00002855u, 0x00050080u, 0x000000a6u, 0x0000285cu, + 0x0000285bu, 0x0000285au, 0x000500c7u, 0x000000a6u, 0x0000285eu, 0x0000285cu, 0x0000bdadu, 0x000500c7u, + 0x00000006u, 0x00002861u, 0x00002851u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00002862u, 0x00002861u, + 0x00000360u, 0x00050050u, 0x000000a6u, 0x00002864u, 0x00002862u, 0x00002862u, 0x000500c6u, 0x000000a6u, + 0x00002865u, 0x0000285eu, 0x00002864u, 0x000500c2u, 0x000000a6u, 0x00002868u, 0x00002865u, 0x0000bdaeu, + 0x0004007cu, 0x00000006u, 0x0000286au, 0x0000283bu, 0x00050050u, 0x000000a6u, 0x0000286cu, 0x0000286au, + 0x0000286au, 0x000500c7u, 0x000000a6u, 0x0000286du, 0x00002868u, 0x0000286cu, 0x00050051u, 0x00000006u, + 0x00002870u, 0x0000286du, 0x00000000u, 0x000500c6u, 0x00000006u, 0x00002871u, 0x00002870u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00002872u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00002871u, + 0x0004003du, 0x00000230u, 0x00002873u, 0x00002872u, 0x00040071u, 0x00000006u, 0x00002874u, 0x00002873u, + 0x0004007cu, 0x00000008u, 0x00002875u, 0x00002874u, 0x00050051u, 0x00000006u, 0x00002878u, 0x0000286du, + 0x00000001u, 0x000500c6u, 0x00000006u, 0x00002879u, 0x00002878u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x0000287au, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00002879u, 0x0004003du, 0x00000230u, + 0x0000287bu, 0x0000287au, 0x00040071u, 0x00000006u, 0x0000287cu, 0x0000287bu, 0x0004007cu, 0x00000008u, + 0x0000287du, 0x0000287cu, 0x000500aau, 0x0000005du, 0x00002880u, 0x000025ddu, 0x00000217u, 0x000300f7u, + 0x000028b7u, 0x00000000u, 0x000400fau, 0x00002880u, 0x00002881u, 0x00002896u, 0x000200f8u, 0x00002896u, + 0x000500aau, 0x0000005du, 0x00002899u, 0x000025ddu, 0x00000208u, 0x000300f7u, 0x000028b6u, 0x00000000u, + 0x000400fau, 0x00002899u, 0x0000289au, 0x000028b1u, 0x000200f8u, 0x000028b1u, 0x000500c3u, 0x00000008u, + 0x000028b3u, 0x00002875u, 0x00000263u, 0x000500c3u, 0x00000008u, 0x000028b5u, 0x0000287du, 0x00000263u, + 0x000200f9u, 0x000028b6u, 0x000200f8u, 0x0000289au, 0x00050051u, 0x00000006u, 0x0000289cu, 0x00002865u, + 0x00000000u, 0x000500c7u, 0x00000006u, 0x0000289du, 0x0000289cu, 0x00000490u, 0x0004007cu, 0x00000008u, + 0x0000289eu, 0x0000289du, 0x00050084u, 0x00000008u, 0x0000289fu, 0x00000220u, 0x0000289eu, 0x00050082u, + 0x00000008u, 0x000028a0u, 0x0000027bu, 0x0000289fu, 0x000500c3u, 0x00000008u, 0x000028a2u, 0x00002875u, + 0x000028a0u, 0x00050051u, 0x00000006u, 0x000028a4u, 0x00002865u, 0x00000001u, 0x000500c7u, 0x00000006u, + 0x000028a5u, 0x000028a4u, 0x00000490u, 0x0004007cu, 0x00000008u, 0x000028a6u, 0x000028a5u, 0x00050084u, + 0x00000008u, 0x000028a7u, 0x00000220u, 0x000028a6u, 0x00050082u, 0x00000008u, 0x000028a8u, 0x0000027bu, + 0x000028a7u, 0x000500c3u, 0x00000008u, 0x000028aau, 0x0000287du, 0x000028a8u, 0x000500c7u, 0x00000008u, + 0x000028acu, 0x000028a2u, 0x00000545u, 0x00050084u, 0x00000008u, 0x000028adu, 0x000028acu, 0x00000427u, + 0x000500c7u, 0x00000008u, 0x000028afu, 0x000028aau, 0x00000545u, 0x00050084u, 0x00000008u, 0x000028b0u, + 0x000028afu, 0x00000427u, 0x000200f9u, 0x000028b6u, 0x000200f8u, 0x000028b6u, 0x000700f5u, 0x00000008u, + 0x00008956u, 0x000028b0u, 0x0000289au, 0x000028b5u, 0x000028b1u, 0x000700f5u, 0x00000008u, 0x00008954u, + 0x000028adu, 0x0000289au, 0x000028b3u, 0x000028b1u, 0x000200f9u, 0x000028b7u, 0x000200f8u, 0x00002881u, + 0x00050051u, 0x00000006u, 0x00002883u, 0x00002865u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x00002884u, + 0x00002883u, 0x000003c9u, 0x0004007cu, 0x00000008u, 0x00002885u, 0x00002884u, 0x00050084u, 0x00000008u, + 0x00002886u, 0x00000220u, 0x00002885u, 0x00050082u, 0x00000008u, 0x00002887u, 0x00000263u, 0x00002886u, + 0x000500c3u, 0x00000008u, 0x00002889u, 0x00002875u, 0x00002887u, 0x00050051u, 0x00000006u, 0x0000288bu, + 0x00002865u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x0000288cu, 0x0000288bu, 0x000003c9u, 0x0004007cu, + 0x00000008u, 0x0000288du, 0x0000288cu, 0x00050084u, 0x00000008u, 0x0000288eu, 0x00000220u, 0x0000288du, + 0x00050082u, 0x00000008u, 0x0000288fu, 0x00000263u, 0x0000288eu, 0x000500c3u, 0x00000008u, 0x00002891u, + 0x0000287du, 0x0000288fu, 0x000500c7u, 0x00000008u, 0x00002893u, 0x00002889u, 0x00000390u, 0x000500c7u, + 0x00000008u, 0x00002895u, 0x00002891u, 0x00000390u, 0x000200f9u, 0x000028b7u, 0x000200f8u, 0x000028b7u, + 0x000700f5u, 0x00000008u, 0x00008955u, 0x00002895u, 0x00002881u, 0x00008956u, 0x000028b6u, 0x000700f5u, + 0x00000008u, 0x00008953u, 0x00002893u, 0x00002881u, 0x00008954u, 0x000028b6u, 0x000500c4u, 0x00000008u, + 0x000028b9u, 0x00008953u, 0x00000263u, 0x000500c5u, 0x00000008u, 0x000028bbu, 0x000028b9u, 0x00008955u, + 0x000200f9u, 0x0000291du, 0x000200f8u, 0x0000291du, 0x000700f5u, 0x00000008u, 0x00008957u, 0x000028bbu, + 0x000028b7u, 0x00008958u, 0x0000291cu, 0x000200f9u, 0x00002648u, 0x000200f8u, 0x0000262fu, 0x000500c3u, + 0x00000008u, 0x00002631u, 0x00002513u, 0x00000217u, 0x000500b1u, 0x0000005du, 0x00002696u, 0x00002631u, + 0x0000021au, 0x000300f7u, 0x0000269cu, 0x00000000u, 0x000400fau, 0x00002696u, 0x00002698u, 0x0000269cu, + 0x000200f8u, 0x00002698u, 0x000500abu, 0x0000005du, 0x0000269bu, 0x000025ddu, 0x0000021au, 0x000200f9u, + 0x0000269cu, 0x000200f8u, 0x0000269cu, 0x000700f5u, 0x0000005du, 0x0000269du, 0x00002696u, 0x0000262fu, + 0x0000269bu, 0x00002698u, 0x000400a8u, 0x0000005du, 0x0000269fu, 0x00002243u, 0x000500a7u, 0x0000005du, + 0x000026a0u, 0x0000269du, 0x0000269fu, 0x0007000cu, 0x00000008u, 0x000026a3u, 0x00000001u, 0x00000027u, + 0x000025ddu, 0x0000021au, 0x000500aau, 0x0000005du, 0x000026a6u, 0x000025ddu, 0x0000021du, 0x000500a6u, + 0x0000005du, 0x000026a9u, 0x000026a6u, 0x00002243u, 0x000600a9u, 0x00000008u, 0x000026aau, 0x000026a9u, + 0x00001140u, 0x0000040fu, 0x000300f7u, 0x0000278cu, 0x00000000u, 0x000400fau, 0x000026a0u, 0x000026acu, + 0x0000272bu, 0x000200f8u, 0x0000272bu, 0x00050051u, 0x00000008u, 0x0000272eu, 0x00002626u, 0x00000000u, + 0x00050080u, 0x00000008u, 0x0000272fu, 0x0000272eu, 0x00002631u, 0x000500abu, 0x0000005du, 0x000027d5u, + 0x000025e7u, 0x00000208u, 0x000300f7u, 0x000027ebu, 0x00000000u, 0x000400fau, 0x000027d5u, 0x000027d6u, + 0x000027ebu, 0x000200f8u, 0x000027d6u, 0x000500c4u, 0x00000008u, 0x000027d9u, 0x00000217u, 0x000025e7u, + 0x000500c7u, 0x00000008u, 0x000027dcu, 0x000025fbu, 0x0000021au, 0x000500abu, 0x0000005du, 0x000027ddu, + 0x000027dcu, 0x00000208u, 0x000300f7u, 0x000027e6u, 0x00000000u, 0x000400fau, 0x000027ddu, 0x000027deu, + 0x000027e6u, 0x000200f8u, 0x000027deu, 0x000500c7u, 0x00000008u, 0x000027e1u, 0x0000272fu, 0x000027d9u, + 0x00050082u, 0x00000008u, 0x000027e2u, 0x000027e1u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x000027e3u, + 0x00000001u, 0x0000002au, 0x000027e2u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x000027e5u, 0x0000272fu, + 0x000027e3u, 0x000200f9u, 0x000027e6u, 0x000200f8u, 0x000027e6u, 0x000700f5u, 0x00000008u, 0x0000895au, + 0x0000272fu, 0x000027d6u, 0x000027e5u, 0x000027deu, 0x00050082u, 0x00000008u, 0x000027e8u, 0x000027d9u, + 0x00000217u, 0x000500c7u, 0x00000008u, 0x000027eau, 0x0000895au, 0x000027e8u, 0x000200f9u, 0x000027ebu, + 0x000200f8u, 0x000027ebu, 0x000700f5u, 0x00000008u, 0x0000895bu, 0x0000272fu, 0x0000272bu, 0x000027eau, + 0x000027e6u, 0x00050051u, 0x00000008u, 0x00002737u, 0x00002626u, 0x00000001u, 0x000500abu, 0x0000005du, + 0x000027f2u, 0x000025f1u, 0x00000208u, 0x000300f7u, 0x00002808u, 0x00000000u, 0x000400fau, 0x000027f2u, + 0x000027f3u, 0x00002808u, 0x000200f8u, 0x000027f3u, 0x000500c4u, 0x00000008u, 0x000027f6u, 0x00000217u, + 0x000025f1u, 0x000500c7u, 0x00000008u, 0x000027f9u, 0x000025fbu, 0x00000263u, 0x000500abu, 0x0000005du, + 0x000027fau, 0x000027f9u, 0x00000208u, 0x000300f7u, 0x00002803u, 0x00000000u, 0x000400fau, 0x000027fau, + 0x000027fbu, 0x00002803u, 0x000200f8u, 0x000027fbu, 0x000500c7u, 0x00000008u, 0x000027feu, 0x00002737u, + 0x000027f6u, 0x00050082u, 0x00000008u, 0x000027ffu, 0x000027feu, 0x00000217u, 0x0007000cu, 0x00000008u, + 0x00002800u, 0x00000001u, 0x0000002au, 0x000027ffu, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00002802u, + 0x00002737u, 0x00002800u, 0x000200f9u, 0x00002803u, 0x000200f8u, 0x00002803u, 0x000700f5u, 0x00000008u, + 0x0000895eu, 0x00002737u, 0x000027f3u, 0x00002802u, 0x000027fbu, 0x00050082u, 0x00000008u, 0x00002805u, + 0x000027f6u, 0x00000217u, 0x000500c7u, 0x00000008u, 0x00002807u, 0x0000895eu, 0x00002805u, 0x000200f9u, + 0x00002808u, 0x000200f8u, 0x00002808u, 0x000700f5u, 0x00000008u, 0x0000895fu, 0x00002737u, 0x000027ebu, + 0x00002807u, 0x00002803u, 0x0004007cu, 0x00000006u, 0x0000273eu, 0x0000895fu, 0x00050084u, 0x00000006u, + 0x0000273fu, 0x000025d3u, 0x0000273eu, 0x00050080u, 0x00000006u, 0x00002740u, 0x000025d0u, 0x0000273fu, + 0x00050084u, 0x00000006u, 0x00002742u, 0x00002740u, 0x000003c9u, 0x000500c4u, 0x00000008u, 0x00002745u, + 0x0000895bu, 0x000026a3u, 0x0004007cu, 0x00000006u, 0x00002746u, 0x00002745u, 0x00050080u, 0x00000006u, + 0x00002747u, 0x00002742u, 0x00002746u, 0x000500c7u, 0x00000006u, 0x00002748u, 0x00002747u, 0x000011adu, + 0x000500c7u, 0x00000006u, 0x0000274bu, 0x0000273eu, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000274cu, + 0x0000274bu, 0x00000360u, 0x000500c6u, 0x00000006u, 0x0000274eu, 0x00002748u, 0x0000274cu, 0x000500c2u, + 0x00000006u, 0x00002750u, 0x0000274eu, 0x000003c9u, 0x0004007cu, 0x00000006u, 0x00002752u, 0x000026aau, + 0x000500c7u, 0x00000006u, 0x00002754u, 0x00002750u, 0x00002752u, 0x000500c6u, 0x00000006u, 0x00002757u, + 0x00002754u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00002758u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00002757u, 0x0004003du, 0x00000230u, 0x00002759u, 0x00002758u, 0x00040071u, 0x00000006u, + 0x0000275au, 0x00002759u, 0x0004007cu, 0x00000008u, 0x0000275bu, 0x0000275au, 0x000300f7u, 0x0000278bu, + 0x00000000u, 0x000400fau, 0x00002243u, 0x0000275du, 0x0000278bu, 0x000200f8u, 0x0000275du, 0x000500aau, + 0x0000005du, 0x00002760u, 0x000025ddu, 0x00000208u, 0x000300f7u, 0x00002782u, 0x00000000u, 0x000400fau, + 0x00002760u, 0x00002761u, 0x00002774u, 0x000200f8u, 0x00002774u, 0x000500c7u, 0x00000006u, 0x00002776u, + 0x0000274eu, 0x000003c9u, 0x00050084u, 0x00000006u, 0x00002777u, 0x00000706u, 0x00002776u, 0x00050082u, + 0x00000006u, 0x00002778u, 0x00000360u, 0x00002777u, 0x000500c3u, 0x00000008u, 0x0000277au, 0x0000275bu, + 0x00002778u, 0x000500c7u, 0x00000008u, 0x0000277cu, 0x0000277au, 0x00000390u, 0x000500c4u, 0x00000008u, + 0x0000277eu, 0x0000277cu, 0x0000021au, 0x00050080u, 0x00000008u, 0x00002781u, 0x0000277eu, 0x00002631u, + 0x000200f9u, 0x00002782u, 0x000200f8u, 0x00002761u, 0x000500c7u, 0x00000006u, 0x00002763u, 0x0000274eu, + 0x00000490u, 0x00050084u, 0x00000006u, 0x00002764u, 0x00000706u, 0x00002763u, 0x00050082u, 0x00000006u, + 0x00002765u, 0x00001253u, 0x00002764u, 0x000500c3u, 0x00000008u, 0x00002767u, 0x0000275bu, 0x00002765u, + 0x000500c7u, 0x00000008u, 0x00002769u, 0x00002767u, 0x00000545u, 0x000500c4u, 0x00000008u, 0x0000276cu, + 0x000025e2u, 0x00000220u, 0x000500c5u, 0x00000008u, 0x0000276eu, 0x00002769u, 0x0000276cu, 0x000500c4u, + 0x00000008u, 0x00002770u, 0x0000276eu, 0x0000021au, 0x00050080u, 0x00000008u, 0x00002773u, 0x00002770u, + 0x00002631u, 0x000200f9u, 0x00002782u, 0x000200f8u, 0x00002782u, 0x000700f5u, 0x00000008u, 0x00008960u, + 0x00002773u, 0x00002761u, 0x00002781u, 0x00002774u, 0x000500c5u, 0x00000008u, 0x00002785u, 0x00008960u, + 0x00001276u, 0x000500c6u, 0x00000008u, 0x00002786u, 0x00002785u, 0x00000217u, 0x00080041u, 0x00000275u, + 0x00002787u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00002786u, 0x0004003du, 0x00000230u, + 0x00002788u, 0x00002787u, 0x00040071u, 0x00000006u, 0x00002789u, 0x00002788u, 0x0004007cu, 0x00000008u, + 0x0000278au, 0x00002789u, 0x000200f9u, 0x0000278bu, 0x000200f8u, 0x0000278bu, 0x000700f5u, 0x00000008u, + 0x0000896cu, 0x0000275bu, 0x00002808u, 0x0000278au, 0x00002782u, 0x000200f9u, 0x0000278cu, 0x000200f8u, + 0x000026acu, 0x00050084u, 0x00000008u, 0x000026aeu, 0x0000021au, 0x00002631u, 0x00050051u, 0x00000008u, + 0x000026b0u, 0x00002626u, 0x00000000u, 0x00050080u, 0x00000008u, 0x000026b1u, 0x000026b0u, 0x000026aeu, + 0x00050050u, 0x0000005fu, 0x00002793u, 0x000026b1u, 0x000026b1u, 0x00050080u, 0x0000005fu, 0x00002794u, + 0x00002793u, 0x00000ddbu, 0x000500abu, 0x0000005du, 0x00002797u, 0x000025e7u, 0x00000208u, 0x000300f7u, + 0x000027b1u, 0x00000000u, 0x000400fau, 0x00002797u, 0x00002798u, 0x000027b1u, 0x000200f8u, 0x00002798u, + 0x000500c4u, 0x00000008u, 0x0000279bu, 0x00000217u, 0x000025e7u, 0x000500c7u, 0x00000008u, 0x0000279eu, + 0x000025fbu, 0x0000021au, 0x000500abu, 0x0000005du, 0x0000279fu, 0x0000279eu, 0x00000208u, 0x000300f7u, + 0x000027abu, 0x00000000u, 0x000400fau, 0x0000279fu, 0x000027a0u, 0x000027abu, 0x000200f8u, 0x000027a0u, + 0x00050050u, 0x0000005fu, 0x000027a3u, 0x0000279bu, 0x0000279bu, 0x000500c7u, 0x0000005fu, 0x000027a4u, + 0x00002794u, 0x000027a3u, 0x00050082u, 0x0000005fu, 0x000027a6u, 0x000027a4u, 0x0000bda9u, 0x0007000cu, + 0x0000005fu, 0x000027a8u, 0x00000001u, 0x0000002au, 0x000027a6u, 0x00000c37u, 0x000500c6u, 0x0000005fu, + 0x000027aau, 0x00002794u, 0x000027a8u, 0x000200f9u, 0x000027abu, 0x000200f8u, 0x000027abu, 0x000700f5u, + 0x0000005fu, 0x00008961u, 0x00002794u, 0x00002798u, 0x000027aau, 0x000027a0u, 0x00050082u, 0x00000008u, + 0x000027adu, 0x0000279bu, 0x00000217u, 0x00050050u, 0x0000005fu, 0x000027afu, 0x000027adu, 0x000027adu, + 0x000500c7u, 0x0000005fu, 0x000027b0u, 0x00008961u, 0x000027afu, 0x000200f9u, 0x000027b1u, 0x000200f8u, + 0x000027b1u, 0x000700f5u, 0x0000005fu, 0x00008962u, 0x00002794u, 0x000026acu, 0x000027b0u, 0x000027abu, + 0x00050051u, 0x00000008u, 0x000026b9u, 0x00002626u, 0x00000001u, 0x000500abu, 0x0000005du, 0x000027b8u, + 0x000025f1u, 0x00000208u, 0x000300f7u, 0x000027ceu, 0x00000000u, 0x000400fau, 0x000027b8u, 0x000027b9u, + 0x000027ceu, 0x000200f8u, 0x000027b9u, 0x000500c4u, 0x00000008u, 0x000027bcu, 0x00000217u, 0x000025f1u, + 0x000500c7u, 0x00000008u, 0x000027bfu, 0x000025fbu, 0x00000263u, 0x000500abu, 0x0000005du, 0x000027c0u, + 0x000027bfu, 0x00000208u, 0x000300f7u, 0x000027c9u, 0x00000000u, 0x000400fau, 0x000027c0u, 0x000027c1u, + 0x000027c9u, 0x000200f8u, 0x000027c1u, 0x000500c7u, 0x00000008u, 0x000027c4u, 0x000026b9u, 0x000027bcu, + 0x00050082u, 0x00000008u, 0x000027c5u, 0x000027c4u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x000027c6u, + 0x00000001u, 0x0000002au, 0x000027c5u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x000027c8u, 0x000026b9u, + 0x000027c6u, 0x000200f9u, 0x000027c9u, 0x000200f8u, 0x000027c9u, 0x000700f5u, 0x00000008u, 0x00008965u, + 0x000026b9u, 0x000027b9u, 0x000027c8u, 0x000027c1u, 0x00050082u, 0x00000008u, 0x000027cbu, 0x000027bcu, + 0x00000217u, 0x000500c7u, 0x00000008u, 0x000027cdu, 0x00008965u, 0x000027cbu, 0x000200f9u, 0x000027ceu, + 0x000200f8u, 0x000027ceu, 0x000700f5u, 0x00000008u, 0x00008966u, 0x000026b9u, 0x000027b1u, 0x000027cdu, + 0x000027c9u, 0x0004007cu, 0x00000006u, 0x000026c0u, 0x00008966u, 0x00050084u, 0x00000006u, 0x000026c1u, + 0x000025d3u, 0x000026c0u, 0x00050080u, 0x00000006u, 0x000026c2u, 0x000025d0u, 0x000026c1u, 0x00050084u, + 0x00000006u, 0x000026c4u, 0x000026c2u, 0x000003c9u, 0x00050050u, 0x0000005fu, 0x000026c7u, 0x000026a3u, + 0x000026a3u, 0x000500c4u, 0x0000005fu, 0x000026c8u, 0x00008962u, 0x000026c7u, 0x0004007cu, 0x000000a6u, + 0x000026c9u, 0x000026c8u, 0x00050050u, 0x000000a6u, 0x000026cau, 0x000026c4u, 0x000026c4u, 0x00050080u, + 0x000000a6u, 0x000026cbu, 0x000026cau, 0x000026c9u, 0x000500c7u, 0x000000a6u, 0x000026cdu, 0x000026cbu, + 0x0000bdadu, 0x000500c7u, 0x00000006u, 0x000026d0u, 0x000026c0u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x000026d1u, 0x000026d0u, 0x00000360u, 0x00050050u, 0x000000a6u, 0x000026d3u, 0x000026d1u, 0x000026d1u, + 0x000500c6u, 0x000000a6u, 0x000026d4u, 0x000026cdu, 0x000026d3u, 0x000500c2u, 0x000000a6u, 0x000026d7u, + 0x000026d4u, 0x0000bdaeu, 0x0004007cu, 0x00000006u, 0x000026d9u, 0x000026aau, 0x00050050u, 0x000000a6u, + 0x000026dbu, 0x000026d9u, 0x000026d9u, 0x000500c7u, 0x000000a6u, 0x000026dcu, 0x000026d7u, 0x000026dbu, + 0x00050051u, 0x00000006u, 0x000026dfu, 0x000026dcu, 0x00000000u, 0x000500c6u, 0x00000006u, 0x000026e0u, + 0x000026dfu, 0x0000048au, 0x00080041u, 0x00000275u, 0x000026e1u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x000026e0u, 0x0004003du, 0x00000230u, 0x000026e2u, 0x000026e1u, 0x00040071u, 0x00000006u, + 0x000026e3u, 0x000026e2u, 0x0004007cu, 0x00000008u, 0x000026e4u, 0x000026e3u, 0x00050051u, 0x00000006u, + 0x000026e7u, 0x000026dcu, 0x00000001u, 0x000500c6u, 0x00000006u, 0x000026e8u, 0x000026e7u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x000026e9u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x000026e8u, + 0x0004003du, 0x00000230u, 0x000026eau, 0x000026e9u, 0x00040071u, 0x00000006u, 0x000026ebu, 0x000026eau, + 0x0004007cu, 0x00000008u, 0x000026ecu, 0x000026ebu, 0x000500aau, 0x0000005du, 0x000026efu, 0x000025ddu, + 0x00000217u, 0x000300f7u, 0x00002726u, 0x00000000u, 0x000400fau, 0x000026efu, 0x000026f0u, 0x00002705u, + 0x000200f8u, 0x00002705u, 0x000500aau, 0x0000005du, 0x00002708u, 0x000025ddu, 0x00000208u, 0x000300f7u, + 0x00002725u, 0x00000000u, 0x000400fau, 0x00002708u, 0x00002709u, 0x00002720u, 0x000200f8u, 0x00002720u, + 0x000500c3u, 0x00000008u, 0x00002722u, 0x000026e4u, 0x00000263u, 0x000500c3u, 0x00000008u, 0x00002724u, + 0x000026ecu, 0x00000263u, 0x000200f9u, 0x00002725u, 0x000200f8u, 0x00002709u, 0x00050051u, 0x00000006u, + 0x0000270bu, 0x000026d4u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x0000270cu, 0x0000270bu, 0x00000490u, + 0x0004007cu, 0x00000008u, 0x0000270du, 0x0000270cu, 0x00050084u, 0x00000008u, 0x0000270eu, 0x00000220u, + 0x0000270du, 0x00050082u, 0x00000008u, 0x0000270fu, 0x0000027bu, 0x0000270eu, 0x000500c3u, 0x00000008u, + 0x00002711u, 0x000026e4u, 0x0000270fu, 0x00050051u, 0x00000006u, 0x00002713u, 0x000026d4u, 0x00000001u, + 0x000500c7u, 0x00000006u, 0x00002714u, 0x00002713u, 0x00000490u, 0x0004007cu, 0x00000008u, 0x00002715u, + 0x00002714u, 0x00050084u, 0x00000008u, 0x00002716u, 0x00000220u, 0x00002715u, 0x00050082u, 0x00000008u, + 0x00002717u, 0x0000027bu, 0x00002716u, 0x000500c3u, 0x00000008u, 0x00002719u, 0x000026ecu, 0x00002717u, + 0x000500c7u, 0x00000008u, 0x0000271bu, 0x00002711u, 0x00000545u, 0x00050084u, 0x00000008u, 0x0000271cu, + 0x0000271bu, 0x00000427u, 0x000500c7u, 0x00000008u, 0x0000271eu, 0x00002719u, 0x00000545u, 0x00050084u, + 0x00000008u, 0x0000271fu, 0x0000271eu, 0x00000427u, 0x000200f9u, 0x00002725u, 0x000200f8u, 0x00002725u, + 0x000700f5u, 0x00000008u, 0x0000896au, 0x0000271fu, 0x00002709u, 0x00002724u, 0x00002720u, 0x000700f5u, + 0x00000008u, 0x00008968u, 0x0000271cu, 0x00002709u, 0x00002722u, 0x00002720u, 0x000200f9u, 0x00002726u, + 0x000200f8u, 0x000026f0u, 0x00050051u, 0x00000006u, 0x000026f2u, 0x000026d4u, 0x00000000u, 0x000500c7u, + 0x00000006u, 0x000026f3u, 0x000026f2u, 0x000003c9u, 0x0004007cu, 0x00000008u, 0x000026f4u, 0x000026f3u, + 0x00050084u, 0x00000008u, 0x000026f5u, 0x00000220u, 0x000026f4u, 0x00050082u, 0x00000008u, 0x000026f6u, + 0x00000263u, 0x000026f5u, 0x000500c3u, 0x00000008u, 0x000026f8u, 0x000026e4u, 0x000026f6u, 0x00050051u, + 0x00000006u, 0x000026fau, 0x000026d4u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x000026fbu, 0x000026fau, + 0x000003c9u, 0x0004007cu, 0x00000008u, 0x000026fcu, 0x000026fbu, 0x00050084u, 0x00000008u, 0x000026fdu, + 0x00000220u, 0x000026fcu, 0x00050082u, 0x00000008u, 0x000026feu, 0x00000263u, 0x000026fdu, 0x000500c3u, + 0x00000008u, 0x00002700u, 0x000026ecu, 0x000026feu, 0x000500c7u, 0x00000008u, 0x00002702u, 0x000026f8u, + 0x00000390u, 0x000500c7u, 0x00000008u, 0x00002704u, 0x00002700u, 0x00000390u, 0x000200f9u, 0x00002726u, + 0x000200f8u, 0x00002726u, 0x000700f5u, 0x00000008u, 0x00008969u, 0x00002704u, 0x000026f0u, 0x0000896au, + 0x00002725u, 0x000700f5u, 0x00000008u, 0x00008967u, 0x00002702u, 0x000026f0u, 0x00008968u, 0x00002725u, + 0x000500c4u, 0x00000008u, 0x00002728u, 0x00008967u, 0x00000263u, 0x000500c5u, 0x00000008u, 0x0000272au, + 0x00002728u, 0x00008969u, 0x000200f9u, 0x0000278cu, 0x000200f8u, 0x0000278cu, 0x000700f5u, 0x00000008u, + 0x0000896bu, 0x0000272au, 0x00002726u, 0x0000896cu, 0x0000278bu, 0x000500c7u, 0x00000008u, 0x00002639u, + 0x00002513u, 0x00000217u, 0x00050084u, 0x00000008u, 0x0000263au, 0x00000263u, 0x00002639u, 0x00050082u, + 0x00000008u, 0x0000263bu, 0x00000263u, 0x0000263au, 0x000500c3u, 0x00000008u, 0x0000263du, 0x0000896bu, + 0x0000263bu, 0x000500c7u, 0x00000008u, 0x0000263fu, 0x0000263du, 0x00000390u, 0x000200f9u, 0x00002648u, + 0x000200f8u, 0x00002648u, 0x000700f5u, 0x00000008u, 0x0000896eu, 0x0000263fu, 0x0000278cu, 0x00008957u, + 0x0000291du, 0x000200f9u, 0x00002649u, 0x000200f8u, 0x0000262au, 0x000200f9u, 0x00002649u, 0x000200f8u, + 0x00002649u, 0x000700f5u, 0x00000008u, 0x0000896du, 0x00000208u, 0x0000262au, 0x0000896eu, 0x00002648u, + 0x000300f7u, 0x000022ccu, 0x00000000u, 0x000400fau, 0x0000226du, 0x000022c8u, 0x000022ccu, 0x000200f8u, + 0x000022c8u, 0x000500aau, 0x0000005du, 0x000022cbu, 0x00002628u, 0x0000021au, 0x000200f9u, 0x000022ccu, + 0x000200f8u, 0x000022ccu, 0x000700f5u, 0x0000005du, 0x000022cdu, 0x0000226du, 0x00002649u, 0x000022cbu, + 0x000022c8u, 0x000300f7u, 0x000022d2u, 0x00000000u, 0x000400fau, 0x000022cdu, 0x000022ceu, 0x000022d2u, + 0x000200f8u, 0x000022ceu, 0x000500c7u, 0x00000008u, 0x000022d0u, 0x0000896du, 0x00000217u, 0x000500aau, + 0x0000005du, 0x000022d1u, 0x000022d0u, 0x00000208u, 0x000200f9u, 0x000022d2u, 0x000200f8u, 0x000022d2u, + 0x000700f5u, 0x0000005du, 0x000022d3u, 0x000022cdu, 0x000022ccu, 0x000022d1u, 0x000022ceu, 0x000300f7u, + 0x000022d5u, 0x00000000u, 0x000400fau, 0x000022d3u, 0x000022d4u, 0x000022d5u, 0x000200f8u, 0x000022d4u, + 0x000200f9u, 0x00002468u, 0x000200f8u, 0x000022d5u, 0x000200f9u, 0x00002468u, 0x000200f8u, 0x000022e6u, + 0x000500c4u, 0x00000008u, 0x000029a7u, 0x00007627u, 0x0000021du, 0x00070050u, 0x00000009u, 0x000029a8u, + 0x000029a7u, 0x000029a7u, 0x000029a7u, 0x000029a7u, 0x00050080u, 0x00000009u, 0x000029a9u, 0x000005f9u, + 0x000029a8u, 0x0009004fu, 0x00000009u, 0x000029acu, 0x00002485u, 0x00002485u, 0x00000000u, 0x00000000u, + 0x00000001u, 0x00000001u, 0x000500b1u, 0x000005feu, 0x000029adu, 0x000029a9u, 0x000029acu, 0x0009004fu, + 0x00000009u, 0x000029b0u, 0x00002485u, 0x00002485u, 0x00000002u, 0x00000002u, 0x00000003u, 0x00000003u, + 0x000500b1u, 0x000005feu, 0x000029b1u, 0x000029a9u, 0x000029b0u, 0x0009004fu, 0x00000009u, 0x000029b4u, + 0x0000248au, 0x0000248au, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000001u, 0x000500afu, 0x000005feu, + 0x000029b5u, 0x000029a9u, 0x000029b4u, 0x0009004fu, 0x00000009u, 0x000029b8u, 0x0000248au, 0x0000248au, + 0x00000002u, 0x00000002u, 0x00000003u, 0x00000003u, 0x000500afu, 0x000005feu, 0x000029b9u, 0x000029a9u, + 0x000029b8u, 0x000600a9u, 0x00000009u, 0x000029bbu, 0x000029adu, 0x00000617u, 0x00000616u, 0x000600a9u, + 0x00000009u, 0x000029bdu, 0x000029b5u, 0x00000617u, 0x00000616u, 0x000500c5u, 0x00000009u, 0x000029beu, + 0x000029bbu, 0x000029bdu, 0x000600a9u, 0x00000009u, 0x000029c0u, 0x000029b1u, 0x00000617u, 0x00000616u, + 0x000600a9u, 0x00000009u, 0x000029c2u, 0x000029b9u, 0x00000617u, 0x00000616u, 0x000500c5u, 0x00000009u, + 0x000029c3u, 0x000029c0u, 0x000029c2u, 0x00050084u, 0x00000009u, 0x000029c5u, 0x000029beu, 0x00000624u, + 0x00050084u, 0x00000009u, 0x000029c7u, 0x000029c3u, 0x00000629u, 0x00050080u, 0x00000009u, 0x000029c8u, + 0x000029c5u, 0x000029c7u, 0x00050051u, 0x00000008u, 0x000029cau, 0x000029c8u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000029ccu, 0x000029c8u, 0x00000001u, 0x000500c5u, 0x00000008u, 0x000029cdu, 0x000029cau, + 0x000029ccu, 0x00050051u, 0x00000008u, 0x000029cfu, 0x000029c8u, 0x00000002u, 0x00050051u, 0x00000008u, + 0x000029d1u, 0x000029c8u, 0x00000003u, 0x000500c5u, 0x00000008u, 0x000029d2u, 0x000029cfu, 0x000029d1u, + 0x000500c5u, 0x00000008u, 0x000029d3u, 0x000029cdu, 0x000029d2u, 0x000400c8u, 0x00000008u, 0x000029d5u, + 0x000029d3u, 0x000500c7u, 0x00000008u, 0x000029d6u, 0x000029d5u, 0x00000390u, 0x000500aau, 0x0000005du, + 0x000022eeu, 0x000029d6u, 0x00000208u, 0x000300f7u, 0x000022f0u, 0x00000000u, 0x000400fau, 0x000022eeu, + 0x000022efu, 0x000022f0u, 0x000200f8u, 0x000022efu, 0x000200f9u, 0x00002468u, 0x000200f8u, 0x000022f0u, + 0x000400cdu, 0x00000008u, 0x000022f2u, 0x000029d6u, 0x000400a8u, 0x0000005du, 0x000022f4u, 0x0000225eu, + 0x000300f7u, 0x000022f9u, 0x00000000u, 0x000400fau, 0x000022f4u, 0x000022f5u, 0x000022f9u, 0x000200f8u, + 0x000022f5u, 0x000500c7u, 0x00000008u, 0x000022f7u, 0x000029d6u, 0x00000217u, 0x000500aau, 0x0000005du, + 0x000022f8u, 0x000022f7u, 0x00000208u, 0x000200f9u, 0x000022f9u, 0x000200f8u, 0x000022f9u, 0x000700f5u, + 0x0000005du, 0x000022fau, 0x000022f4u, 0x000022f0u, 0x000022f8u, 0x000022f5u, 0x000300f7u, 0x000022fcu, + 0x00000000u, 0x000400fau, 0x000022fau, 0x000022fbu, 0x000022fcu, 0x000200f8u, 0x000022fbu, 0x000200f9u, + 0x00002468u, 0x000200f8u, 0x000022fcu, 0x00070041u, 0x00000239u, 0x000029dau, 0x00000237u, 0x00000208u, + 0x00002008u, 0x00000208u, 0x0004003du, 0x0000022fu, 0x000029dbu, 0x000029dau, 0x00040071u, 0x0000023cu, + 0x000029dcu, 0x000029dbu, 0x0004007cu, 0x00000009u, 0x000029ddu, 0x000029dcu, 0x00070041u, 0x00000239u, + 0x000029dfu, 0x00000237u, 0x00000208u, 0x00002008u, 0x00000217u, 0x0004003du, 0x0000022fu, 0x000029e0u, + 0x000029dfu, 0x00040071u, 0x0000023cu, 0x000029e1u, 0x000029e0u, 0x0004007cu, 0x00000009u, 0x000029e2u, + 0x000029e1u, 0x00070041u, 0x00000239u, 0x000029e4u, 0x00000237u, 0x00000208u, 0x00002008u, 0x0000021au, + 0x0004003du, 0x0000022fu, 0x000029e5u, 0x000029e4u, 0x00040071u, 0x0000023cu, 0x000029e6u, 0x000029e5u, + 0x0004007cu, 0x00000009u, 0x000029e7u, 0x000029e6u, 0x00070041u, 0x00000239u, 0x000029e9u, 0x00000237u, + 0x00000208u, 0x00002008u, 0x0000021du, 0x0004003du, 0x0000022fu, 0x000029eau, 0x000029e9u, 0x00040071u, + 0x0000023cu, 0x000029ebu, 0x000029eau, 0x0004007cu, 0x00000009u, 0x000029ecu, 0x000029ebu, 0x00070041u, + 0x00000239u, 0x000029eeu, 0x00000237u, 0x00000208u, 0x00002008u, 0x00000220u, 0x0004003du, 0x0000022fu, + 0x000029efu, 0x000029eeu, 0x00040071u, 0x0000023cu, 0x000029f0u, 0x000029efu, 0x0004007cu, 0x00000009u, + 0x000029f1u, 0x000029f0u, 0x00070041u, 0x00000239u, 0x000029f3u, 0x00000237u, 0x00000208u, 0x00002008u, + 0x00000223u, 0x0004003du, 0x0000022fu, 0x000029f4u, 0x000029f3u, 0x00040071u, 0x0000023cu, 0x000029f5u, + 0x000029f4u, 0x0004007cu, 0x00000009u, 0x000029f6u, 0x000029f5u, 0x00070041u, 0x00000239u, 0x000029f8u, + 0x00000237u, 0x00000208u, 0x00002008u, 0x00000226u, 0x0004003du, 0x0000022fu, 0x000029f9u, 0x000029f8u, + 0x00040071u, 0x0000023cu, 0x000029fau, 0x000029f9u, 0x0004007cu, 0x00000009u, 0x000029fbu, 0x000029fau, + 0x00070041u, 0x00000239u, 0x000029fdu, 0x00000237u, 0x00000208u, 0x00002008u, 0x00000229u, 0x0004003du, + 0x0000022fu, 0x000029feu, 0x000029fdu, 0x00040071u, 0x0000023cu, 0x000029ffu, 0x000029feu, 0x0004007cu, + 0x00000009u, 0x00002a00u, 0x000029ffu, 0x00070041u, 0x00000239u, 0x00002a07u, 0x00000237u, 0x00000208u, + 0x00002008u, 0x00000269u, 0x0004003du, 0x0000022fu, 0x00002a08u, 0x00002a07u, 0x00040071u, 0x0000023cu, + 0x00002a09u, 0x00002a08u, 0x0004007cu, 0x00000009u, 0x00002a0au, 0x00002a09u, 0x00070041u, 0x0000027cu, + 0x00002a19u, 0x00000237u, 0x00000208u, 0x00002008u, 0x00000282u, 0x0004003du, 0x0000022eu, 0x00002a1au, + 0x00002a19u, 0x00040071u, 0x00000006u, 0x00002a1bu, 0x00002a1au, 0x0004007cu, 0x00000008u, 0x00002a1cu, + 0x00002a1bu, 0x00070041u, 0x00000289u, 0x00002a1eu, 0x00000237u, 0x00000208u, 0x00002008u, 0x00000288u, + 0x0004003du, 0x00000232u, 0x00002a1fu, 0x00002a1eu, 0x00040072u, 0x00000009u, 0x00002a20u, 0x00002a1fu, + 0x00050082u, 0x00000008u, 0x00002302u, 0x00007627u, 0x0000248du, 0x000600a9u, 0x00000008u, 0x00002304u, + 0x00002299u, 0x00000217u, 0x00000cddu, 0x000500c7u, 0x00000009u, 0x00002a2bu, 0x000024a6u, 0x0000bda6u, + 0x00070050u, 0x00000009u, 0x00002a2cu, 0x0000084bu, 0x0000084bu, 0x0000084bu, 0x0000084bu, 0x000500c3u, + 0x00000009u, 0x00002a2du, 0x00002a2bu, 0x00002a2cu, 0x00070050u, 0x00000009u, 0x00002a2fu, 0x00002302u, + 0x00002302u, 0x00002302u, 0x00002302u, 0x00050084u, 0x00000009u, 0x00002a30u, 0x00002a2du, 0x00002a2fu, + 0x00050080u, 0x00000009u, 0x00002a32u, 0x0000247du, 0x00002a30u, 0x000500c3u, 0x00000009u, 0x00002a35u, + 0x00002a32u, 0x0000bda7u, 0x0006000cu, 0x00000008u, 0x00002a3cu, 0x00000001u, 0x00000049u, 0x000029d6u, + 0x000500c3u, 0x00000008u, 0x00002a3eu, 0x00002a3cu, 0x00000217u, 0x000500c7u, 0x00000008u, 0x00002a40u, + 0x00002a3cu, 0x00000217u, 0x000500c4u, 0x00000008u, 0x00002a41u, 0x00002a40u, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x00002a43u, 0x00002a3eu, 0x00000217u, 0x00050080u, 0x00000008u, 0x00002a44u, 0x00002a41u, + 0x00002a43u, 0x00070050u, 0x00000009u, 0x00002a46u, 0x00000c93u, 0x00000c93u, 0x00000c93u, 0x00000c93u, + 0x000500c4u, 0x00000009u, 0x00002a47u, 0x00002a35u, 0x00002a46u, 0x000500c3u, 0x00000009u, 0x00002a4bu, + 0x000024a6u, 0x0000bda7u, 0x00070050u, 0x00000009u, 0x00002a51u, 0x00002a44u, 0x00002a44u, 0x00002a44u, + 0x00002a44u, 0x00050084u, 0x00000009u, 0x00002a52u, 0x00002a51u, 0x00002a4bu, 0x000500c3u, 0x00000009u, + 0x00002a56u, 0x000024aau, 0x0000bda7u, 0x00070050u, 0x00000009u, 0x00002a5cu, 0x00002a3eu, 0x00002a3eu, + 0x00002a3eu, 0x00002a3eu, 0x00050084u, 0x00000009u, 0x00002a5du, 0x00002a5cu, 0x00002a56u, 0x00050080u, + 0x00000009u, 0x00002a5eu, 0x00002a52u, 0x00002a5du, 0x00050080u, 0x00000009u, 0x00002a60u, 0x00002a47u, + 0x00002a5eu, 0x00070050u, 0x00000009u, 0x00002a62u, 0x00000cb0u, 0x00000cb0u, 0x00000cb0u, 0x00000cb0u, + 0x000500c3u, 0x00000009u, 0x00002a63u, 0x00002a60u, 0x00002a62u, 0x00050082u, 0x00000009u, 0x00002a74u, + 0x00002a63u, 0x0000bda8u, 0x000600cau, 0x00000009u, 0x00002a76u, 0x00002a74u, 0x00000208u, 0x00000269u, + 0x00050080u, 0x00000009u, 0x00002a79u, 0x00002a76u, 0x0000bda8u, 0x0008000cu, 0x00000009u, 0x00002a7bu, + 0x00000001u, 0x0000002du, 0x00002a79u, 0x00000616u, 0x00000af5u, 0x000500a7u, 0x0000005du, 0x00002310u, + 0x00001dbcu, 0x0000227fu, 0x000300f7u, 0x00002319u, 0x00000000u, 0x000400fau, 0x00002310u, 0x00002311u, + 0x00002319u, 0x000200f8u, 0x00002311u, 0x000500c7u, 0x00000006u, 0x00002313u, 0x00002209u, 0x00000a42u, + 0x000500abu, 0x0000005du, 0x00002314u, 0x00002313u, 0x00000379u, 0x000300f7u, 0x00002318u, 0x00000000u, + 0x000400fau, 0x00002314u, 0x00002315u, 0x00002318u, 0x000200f8u, 0x00002315u, 0x00050084u, 0x00000008u, + 0x00002317u, 0x00002304u, 0x00000887u, 0x000200f9u, 0x00002318u, 0x000200f8u, 0x00002318u, 0x000700f5u, + 0x00000008u, 0x0000762cu, 0x00002304u, 0x00002311u, 0x00002317u, 0x00002315u, 0x000200f9u, 0x00002319u, + 0x000200f8u, 0x00002319u, 0x000700f5u, 0x00000008u, 0x0000762bu, 0x00002304u, 0x000022fcu, 0x0000762cu, + 0x00002318u, 0x0008004fu, 0x0000003cu, 0x00002a94u, 0x00002480u, 0x00002480u, 0x00000000u, 0x00000001u, + 0x00000003u, 0x0008004fu, 0x0000003cu, 0x00002a96u, 0x000024aeu, 0x000024aeu, 0x00000000u, 0x00000001u, + 0x00000003u, 0x000500c7u, 0x0000003cu, 0x00002a98u, 0x00002a96u, 0x0000bda4u, 0x00060050u, 0x0000003cu, + 0x00002a99u, 0x0000084bu, 0x0000084bu, 0x0000084bu, 0x000500c3u, 0x0000003cu, 0x00002a9au, 0x00002a98u, + 0x00002a99u, 0x00060050u, 0x0000003cu, 0x00002a9cu, 0x00002302u, 0x00002302u, 0x00002302u, 0x00050084u, + 0x0000003cu, 0x00002a9du, 0x00002a9au, 0x00002a9cu, 0x00050080u, 0x0000003cu, 0x00002a9eu, 0x00002a94u, + 0x00002a9du, 0x000300f7u, 0x00002ac3u, 0x00000000u, 0x000400fau, 0x0000227fu, 0x00002aa0u, 0x00002ac3u, + 0x000200f8u, 0x00002aa0u, 0x00060050u, 0x0000003cu, 0x00002aa9u, 0x0000762bu, 0x0000762bu, 0x0000762bu, + 0x00050084u, 0x0000003cu, 0x00002aaau, 0x00002aa9u, 0x00002a9au, 0x00050080u, 0x0000003cu, 0x00002aabu, + 0x00002a9eu, 0x00002aaau, 0x000300f7u, 0x00002ac2u, 0x00000000u, 0x000400fau, 0x00000d3cu, 0x00002aacu, + 0x00002ab9u, 0x000200f8u, 0x00002ab9u, 0x0008004fu, 0x0000003cu, 0x00002abcu, 0x000024b2u, 0x000024b2u, + 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, 0x0000003cu, 0x00002abeu, 0x00002abcu, 0x0000bdaau, + 0x000500c3u, 0x0000003cu, 0x00002ac0u, 0x00002abeu, 0x00002a99u, 0x00050080u, 0x0000003cu, 0x00002ac1u, + 0x00002a9eu, 0x00002ac0u, 0x000200f9u, 0x00002ac2u, 0x000200f8u, 0x00002aacu, 0x0006000cu, 0x00000008u, + 0x00002aafu, 0x00000001u, 0x00000005u, 0x0000762bu, 0x0008004fu, 0x0000003cu, 0x00002ab1u, 0x000024b2u, + 0x000024b2u, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, 0x0000003cu, 0x00002ab3u, 0x00002ab1u, + 0x0000bdaau, 0x000500c3u, 0x0000003cu, 0x00002ab5u, 0x00002ab3u, 0x00002a99u, 0x00060050u, 0x0000003cu, + 0x00002ab6u, 0x00002aafu, 0x00002aafu, 0x00002aafu, 0x00050084u, 0x0000003cu, 0x00002ab7u, 0x00002ab6u, + 0x00002ab5u, 0x00050080u, 0x0000003cu, 0x00002ab8u, 0x00002a9eu, 0x00002ab7u, 0x000200f9u, 0x00002ac2u, + 0x000200f8u, 0x00002ac2u, 0x000700f5u, 0x0000003cu, 0x0000764bu, 0x00002ab8u, 0x00002aacu, 0x00002ac1u, + 0x00002ab9u, 0x000200f9u, 0x00002ac3u, 0x000200f8u, 0x00002ac3u, 0x000700f5u, 0x0000003cu, 0x0000763eu, + 0x00007644u, 0x00002319u, 0x0000764bu, 0x00002ac2u, 0x000700f5u, 0x0000003cu, 0x0000762fu, 0x00007635u, + 0x00002319u, 0x00002aabu, 0x00002ac2u, 0x000300f7u, 0x00002aebu, 0x00000000u, 0x000400fau, 0x00002252u, + 0x00002ac5u, 0x00002adbu, 0x000200f8u, 0x00002adbu, 0x000500c3u, 0x0000003cu, 0x00002adeu, 0x00002a9eu, + 0x0000bda5u, 0x0007004fu, 0x0000005fu, 0x00002cb5u, 0x00002adeu, 0x00002adeu, 0x00000000u, 0x00000001u, + 0x000300f7u, 0x00002aeau, 0x00000000u, 0x000400fau, 0x0000227fu, 0x00002ae1u, 0x00002aeau, 0x000200f8u, + 0x00002ae1u, 0x000500c3u, 0x0000003cu, 0x00002ae4u, 0x0000762fu, 0x0000bda5u, 0x0007004fu, 0x0000005fu, + 0x00002cb9u, 0x00002ae4u, 0x00002ae4u, 0x00000000u, 0x00000001u, 0x000500c3u, 0x0000003cu, 0x00002ae8u, + 0x0000763eu, 0x0000bda5u, 0x0007004fu, 0x0000005fu, 0x00002cbdu, 0x00002ae8u, 0x00002ae8u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00002aeau, 0x000200f8u, 0x00002aeau, 0x000700f5u, 0x0000005fu, 0x000076fau, + 0x000076ecu, 0x00002adbu, 0x00002cbdu, 0x00002ae1u, 0x000700f5u, 0x0000005fu, 0x000076e0u, 0x000076c8u, + 0x00002adbu, 0x00002cb9u, 0x00002ae1u, 0x000200f9u, 0x00002aebu, 0x000200f8u, 0x00002ac5u, 0x000500c3u, + 0x0000003cu, 0x00002ac8u, 0x00002a9eu, 0x0000bda5u, 0x00050051u, 0x00000008u, 0x00002b26u, 0x00002ac8u, + 0x00000002u, 0x000500b3u, 0x0000005du, 0x00002b28u, 0x00002b26u, 0x00000208u, 0x000500c7u, 0x00000008u, + 0x00002b2au, 0x00002b26u, 0x00000c0bu, 0x0006000cu, 0x00000008u, 0x00002b87u, 0x00000001u, 0x0000004au, + 0x00002b2au, 0x00050082u, 0x00000008u, 0x00002b88u, 0x00000288u, 0x00002b87u, 0x0007000cu, 0x00000008u, + 0x00002b89u, 0x00000001u, 0x00000027u, 0x00002b88u, 0x00000288u, 0x000500c4u, 0x00000008u, 0x00002b8cu, + 0x00002b2au, 0x00002b89u, 0x000500c7u, 0x00000008u, 0x00002b8du, 0x00002b8cu, 0x00000b25u, 0x000500c7u, + 0x00000008u, 0x00002b8fu, 0x00002b8du, 0x00000390u, 0x000500c3u, 0x00000008u, 0x00002b91u, 0x00002b8du, + 0x00000263u, 0x0003003eu, 0x00002b82u, 0x00000be9u, 0x00050041u, 0x00000060u, 0x00002b92u, 0x00002b82u, + 0x00002b91u, 0x0004003du, 0x0000005fu, 0x00002b93u, 0x00002b92u, 0x00050051u, 0x00000008u, 0x00002b98u, + 0x00002b93u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00002b9au, 0x00002b98u, 0x00002b8fu, 0x000500c3u, + 0x00000008u, 0x00002b9bu, 0x00002b9au, 0x0000026fu, 0x00050051u, 0x00000008u, 0x00002b9du, 0x00002b93u, + 0x00000000u, 0x00050080u, 0x00000008u, 0x00002b9eu, 0x00002b9bu, 0x00002b9du, 0x0007004fu, 0x0000005fu, + 0x00002b30u, 0x00002ac8u, 0x00002ac8u, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x00002b33u, + 0x00002b9eu, 0x00002b9eu, 0x00050084u, 0x0000005fu, 0x00002b34u, 0x00002b30u, 0x00002b33u, 0x000500c3u, + 0x00000008u, 0x00002b36u, 0x00000c1eu, 0x00002b89u, 0x0004007eu, 0x00000008u, 0x00002b37u, 0x00002b36u, + 0x000500c7u, 0x00000008u, 0x00002b38u, 0x00000c1du, 0x00002b37u, 0x00050050u, 0x0000005fu, 0x00002b3bu, + 0x00002b38u, 0x00002b38u, 0x000500c7u, 0x0000005fu, 0x00002b3cu, 0x00002b34u, 0x00002b3bu, 0x000500abu, + 0x0000005du, 0x00002b3eu, 0x00002b89u, 0x00000288u, 0x000300f7u, 0x00002b49u, 0x00000000u, 0x000400fau, + 0x00002b3eu, 0x00002b3fu, 0x00002b45u, 0x000200f8u, 0x00002b45u, 0x000500c4u, 0x0000005fu, 0x00002b48u, + 0x00002b34u, 0x0000bda9u, 0x000200f9u, 0x00002b49u, 0x000200f8u, 0x00002b3fu, 0x00050082u, 0x00000008u, + 0x00002b42u, 0x00000282u, 0x00002b89u, 0x00050050u, 0x0000005fu, 0x00002b43u, 0x00002b42u, 0x00002b42u, + 0x000500c3u, 0x0000005fu, 0x00002b44u, 0x00002b34u, 0x00002b43u, 0x000200f9u, 0x00002b49u, 0x000200f8u, + 0x00002b49u, 0x000700f5u, 0x0000005fu, 0x00007651u, 0x00002b44u, 0x00002b3fu, 0x00002b48u, 0x00002b45u, + 0x000700f5u, 0x0000005fu, 0x0000764fu, 0x00002b44u, 0x00002b3fu, 0x00002b34u, 0x00002b45u, 0x000500abu, + 0x00000880u, 0x00002b4bu, 0x00002b3cu, 0x00000c37u, 0x0004009au, 0x0000005du, 0x00002b4cu, 0x00002b4bu, + 0x000300f7u, 0x00002b78u, 0x00000000u, 0x000400fau, 0x00002b4cu, 0x00002b4du, 0x00002b78u, 0x000200f8u, + 0x00002b4du, 0x00050051u, 0x00000008u, 0x00002b4fu, 0x00002b3cu, 0x00000000u, 0x000500abu, 0x0000005du, + 0x00002b51u, 0x00002b4fu, 0x00002b38u, 0x000300f7u, 0x00002b56u, 0x00000000u, 0x000400fau, 0x00002b51u, + 0x00002b52u, 0x00002b56u, 0x000200f8u, 0x00002b52u, 0x000500abu, 0x0000005du, 0x00002b55u, 0x00002b4fu, + 0x00000208u, 0x000200f9u, 0x00002b56u, 0x000200f8u, 0x00002b56u, 0x000700f5u, 0x0000005du, 0x00002b57u, + 0x00002b51u, 0x00002b4du, 0x00002b55u, 0x00002b52u, 0x000300f7u, 0x00002b62u, 0x00000000u, 0x000400fau, + 0x00002b57u, 0x00002b58u, 0x00002b62u, 0x000200f8u, 0x00002b58u, 0x00050051u, 0x00000008u, 0x00002b5au, + 0x0000764fu, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00002b5bu, 0x00002b5au, 0x00000c1eu, 0x000500aau, + 0x0000005du, 0x00002b5cu, 0x00002b5bu, 0x00000208u, 0x000300f7u, 0x00002b61u, 0x00000000u, 0x000400fau, + 0x00002b5cu, 0x00002b5du, 0x00002b5fu, 0x000200f8u, 0x00002b5fu, 0x00060052u, 0x0000005fu, 0x00007208u, + 0x00000c50u, 0x00007651u, 0x00000000u, 0x000200f9u, 0x00002b61u, 0x000200f8u, 0x00002b5du, 0x00060052u, + 0x0000005fu, 0x00007206u, 0x00000c0bu, 0x00007651u, 0x00000000u, 0x000200f9u, 0x00002b61u, 0x000200f8u, + 0x00002b61u, 0x000700f5u, 0x0000005fu, 0x00007657u, 0x00007206u, 0x00002b5du, 0x00007208u, 0x00002b5fu, + 0x000200f9u, 0x00002b62u, 0x000200f8u, 0x00002b62u, 0x000700f5u, 0x0000005fu, 0x00007656u, 0x00007651u, + 0x00002b56u, 0x00007657u, 0x00002b61u, 0x000600a9u, 0x0000005du, 0x0000bdcdu, 0x00002b57u, 0x00000563u, + 0x00000548u, 0x00050051u, 0x00000008u, 0x00002b64u, 0x00002b3cu, 0x00000001u, 0x000500abu, 0x0000005du, + 0x00002b66u, 0x00002b64u, 0x00002b38u, 0x000300f7u, 0x00002b6bu, 0x00000000u, 0x000400fau, 0x00002b66u, + 0x00002b67u, 0x00002b6bu, 0x000200f8u, 0x00002b67u, 0x000500abu, 0x0000005du, 0x00002b6au, 0x00002b64u, + 0x00000208u, 0x000200f9u, 0x00002b6bu, 0x000200f8u, 0x00002b6bu, 0x000700f5u, 0x0000005du, 0x00002b6cu, + 0x00002b66u, 0x00002b62u, 0x00002b6au, 0x00002b67u, 0x000300f7u, 0x00002b77u, 0x00000000u, 0x000400fau, + 0x00002b6cu, 0x00002b6du, 0x00002b77u, 0x000200f8u, 0x00002b6du, 0x00050051u, 0x00000008u, 0x00002b6fu, + 0x0000764fu, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00002b70u, 0x00002b6fu, 0x00000c1eu, 0x000500aau, + 0x0000005du, 0x00002b71u, 0x00002b70u, 0x00000208u, 0x000300f7u, 0x00002b76u, 0x00000000u, 0x000400fau, + 0x00002b71u, 0x00002b72u, 0x00002b74u, 0x000200f8u, 0x00002b74u, 0x00060052u, 0x0000005fu, 0x0000720fu, + 0x00000c50u, 0x00007656u, 0x00000001u, 0x000200f9u, 0x00002b76u, 0x000200f8u, 0x00002b72u, 0x00060052u, + 0x0000005fu, 0x0000720du, 0x00000c0bu, 0x00007656u, 0x00000001u, 0x000200f9u, 0x00002b76u, 0x000200f8u, + 0x00002b76u, 0x000700f5u, 0x0000005fu, 0x0000765bu, 0x0000720du, 0x00002b72u, 0x0000720fu, 0x00002b74u, + 0x000200f9u, 0x00002b77u, 0x000200f8u, 0x00002b77u, 0x000700f5u, 0x0000005fu, 0x0000765au, 0x00007656u, + 0x00002b6bu, 0x0000765bu, 0x00002b76u, 0x000600a9u, 0x0000005du, 0x0000bdceu, 0x00002b6cu, 0x00000563u, + 0x0000bdcdu, 0x000200f9u, 0x00002b78u, 0x000200f8u, 0x00002b78u, 0x000700f5u, 0x0000005du, 0x0000765du, + 0x00000548u, 0x00002b49u, 0x0000bdceu, 0x00002b77u, 0x000700f5u, 0x0000005fu, 0x00007659u, 0x00007651u, + 0x00002b49u, 0x0000765au, 0x00002b77u, 0x000600a9u, 0x0000005du, 0x0000bdcfu, 0x00002b28u, 0x00000563u, + 0x0000765du, 0x00050050u, 0x00000880u, 0x0000bdd0u, 0x00002b28u, 0x00002b28u, 0x000600a9u, 0x0000005fu, + 0x0000bdd1u, 0x0000bdd0u, 0x00000c6au, 0x00007659u, 0x0008000cu, 0x0000005fu, 0x00002b7du, 0x00000001u, + 0x0000002du, 0x0000bdd1u, 0x00000c6du, 0x00000c6eu, 0x000300f7u, 0x00002adau, 0x00000000u, 0x000400fau, + 0x0000227fu, 0x00002acdu, 0x00002adau, 0x000200f8u, 0x00002acdu, 0x000500c3u, 0x0000003cu, 0x00002ad0u, + 0x0000762fu, 0x0000bda5u, 0x00050051u, 0x00000008u, 0x00002baeu, 0x00002ad0u, 0x00000002u, 0x000500b3u, + 0x0000005du, 0x00002bb0u, 0x00002baeu, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00002bb2u, 0x00002baeu, + 0x00000c0bu, 0x0006000cu, 0x00000008u, 0x00002c0fu, 0x00000001u, 0x0000004au, 0x00002bb2u, 0x00050082u, + 0x00000008u, 0x00002c10u, 0x00000288u, 0x00002c0fu, 0x0007000cu, 0x00000008u, 0x00002c11u, 0x00000001u, + 0x00000027u, 0x00002c10u, 0x00000288u, 0x000500c4u, 0x00000008u, 0x00002c14u, 0x00002bb2u, 0x00002c11u, + 0x000500c7u, 0x00000008u, 0x00002c15u, 0x00002c14u, 0x00000b25u, 0x000500c7u, 0x00000008u, 0x00002c17u, + 0x00002c15u, 0x00000390u, 0x000500c3u, 0x00000008u, 0x00002c19u, 0x00002c15u, 0x00000263u, 0x0003003eu, + 0x00002c0au, 0x00000be9u, 0x00050041u, 0x00000060u, 0x00002c1au, 0x00002c0au, 0x00002c19u, 0x0004003du, + 0x0000005fu, 0x00002c1bu, 0x00002c1au, 0x00050051u, 0x00000008u, 0x00002c20u, 0x00002c1bu, 0x00000001u, + 0x00050084u, 0x00000008u, 0x00002c22u, 0x00002c20u, 0x00002c17u, 0x000500c3u, 0x00000008u, 0x00002c23u, + 0x00002c22u, 0x0000026fu, 0x00050051u, 0x00000008u, 0x00002c25u, 0x00002c1bu, 0x00000000u, 0x00050080u, + 0x00000008u, 0x00002c26u, 0x00002c23u, 0x00002c25u, 0x0007004fu, 0x0000005fu, 0x00002bb8u, 0x00002ad0u, + 0x00002ad0u, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x00002bbbu, 0x00002c26u, 0x00002c26u, + 0x00050084u, 0x0000005fu, 0x00002bbcu, 0x00002bb8u, 0x00002bbbu, 0x000500c3u, 0x00000008u, 0x00002bbeu, + 0x00000c1eu, 0x00002c11u, 0x0004007eu, 0x00000008u, 0x00002bbfu, 0x00002bbeu, 0x000500c7u, 0x00000008u, + 0x00002bc0u, 0x00000c1du, 0x00002bbfu, 0x00050050u, 0x0000005fu, 0x00002bc3u, 0x00002bc0u, 0x00002bc0u, + 0x000500c7u, 0x0000005fu, 0x00002bc4u, 0x00002bbcu, 0x00002bc3u, 0x000500abu, 0x0000005du, 0x00002bc6u, + 0x00002c11u, 0x00000288u, 0x000300f7u, 0x00002bd1u, 0x00000000u, 0x000400fau, 0x00002bc6u, 0x00002bc7u, + 0x00002bcdu, 0x000200f8u, 0x00002bcdu, 0x000500c4u, 0x0000005fu, 0x00002bd0u, 0x00002bbcu, 0x0000bda9u, + 0x000200f9u, 0x00002bd1u, 0x000200f8u, 0x00002bc7u, 0x00050082u, 0x00000008u, 0x00002bcau, 0x00000282u, + 0x00002c11u, 0x00050050u, 0x0000005fu, 0x00002bcbu, 0x00002bcau, 0x00002bcau, 0x000500c3u, 0x0000005fu, + 0x00002bccu, 0x00002bbcu, 0x00002bcbu, 0x000200f9u, 0x00002bd1u, 0x000200f8u, 0x00002bd1u, 0x000700f5u, + 0x0000005fu, 0x0000766fu, 0x00002bccu, 0x00002bc7u, 0x00002bd0u, 0x00002bcdu, 0x000700f5u, 0x0000005fu, + 0x0000766du, 0x00002bccu, 0x00002bc7u, 0x00002bbcu, 0x00002bcdu, 0x000500abu, 0x00000880u, 0x00002bd3u, + 0x00002bc4u, 0x00000c37u, 0x0004009au, 0x0000005du, 0x00002bd4u, 0x00002bd3u, 0x000300f7u, 0x00002c00u, + 0x00000000u, 0x000400fau, 0x00002bd4u, 0x00002bd5u, 0x00002c00u, 0x000200f8u, 0x00002bd5u, 0x00050051u, + 0x00000008u, 0x00002bd7u, 0x00002bc4u, 0x00000000u, 0x000500abu, 0x0000005du, 0x00002bd9u, 0x00002bd7u, + 0x00002bc0u, 0x000300f7u, 0x00002bdeu, 0x00000000u, 0x000400fau, 0x00002bd9u, 0x00002bdau, 0x00002bdeu, + 0x000200f8u, 0x00002bdau, 0x000500abu, 0x0000005du, 0x00002bddu, 0x00002bd7u, 0x00000208u, 0x000200f9u, + 0x00002bdeu, 0x000200f8u, 0x00002bdeu, 0x000700f5u, 0x0000005du, 0x00002bdfu, 0x00002bd9u, 0x00002bd5u, + 0x00002bddu, 0x00002bdau, 0x000300f7u, 0x00002beau, 0x00000000u, 0x000400fau, 0x00002bdfu, 0x00002be0u, + 0x00002beau, 0x000200f8u, 0x00002be0u, 0x00050051u, 0x00000008u, 0x00002be2u, 0x0000766du, 0x00000000u, + 0x000500c7u, 0x00000008u, 0x00002be3u, 0x00002be2u, 0x00000c1eu, 0x000500aau, 0x0000005du, 0x00002be4u, + 0x00002be3u, 0x00000208u, 0x000300f7u, 0x00002be9u, 0x00000000u, 0x000400fau, 0x00002be4u, 0x00002be5u, + 0x00002be7u, 0x000200f8u, 0x00002be7u, 0x00060052u, 0x0000005fu, 0x0000721bu, 0x00000c50u, 0x0000766fu, + 0x00000000u, 0x000200f9u, 0x00002be9u, 0x000200f8u, 0x00002be5u, 0x00060052u, 0x0000005fu, 0x00007219u, + 0x00000c0bu, 0x0000766fu, 0x00000000u, 0x000200f9u, 0x00002be9u, 0x000200f8u, 0x00002be9u, 0x000700f5u, + 0x0000005fu, 0x00007675u, 0x00007219u, 0x00002be5u, 0x0000721bu, 0x00002be7u, 0x000200f9u, 0x00002beau, + 0x000200f8u, 0x00002beau, 0x000700f5u, 0x0000005fu, 0x00007674u, 0x0000766fu, 0x00002bdeu, 0x00007675u, + 0x00002be9u, 0x000600a9u, 0x0000005du, 0x0000bdd2u, 0x00002bdfu, 0x00000563u, 0x0000bdcfu, 0x00050051u, + 0x00000008u, 0x00002becu, 0x00002bc4u, 0x00000001u, 0x000500abu, 0x0000005du, 0x00002beeu, 0x00002becu, + 0x00002bc0u, 0x000300f7u, 0x00002bf3u, 0x00000000u, 0x000400fau, 0x00002beeu, 0x00002befu, 0x00002bf3u, + 0x000200f8u, 0x00002befu, 0x000500abu, 0x0000005du, 0x00002bf2u, 0x00002becu, 0x00000208u, 0x000200f9u, + 0x00002bf3u, 0x000200f8u, 0x00002bf3u, 0x000700f5u, 0x0000005du, 0x00002bf4u, 0x00002beeu, 0x00002beau, + 0x00002bf2u, 0x00002befu, 0x000300f7u, 0x00002bffu, 0x00000000u, 0x000400fau, 0x00002bf4u, 0x00002bf5u, + 0x00002bffu, 0x000200f8u, 0x00002bf5u, 0x00050051u, 0x00000008u, 0x00002bf7u, 0x0000766du, 0x00000001u, + 0x000500c7u, 0x00000008u, 0x00002bf8u, 0x00002bf7u, 0x00000c1eu, 0x000500aau, 0x0000005du, 0x00002bf9u, + 0x00002bf8u, 0x00000208u, 0x000300f7u, 0x00002bfeu, 0x00000000u, 0x000400fau, 0x00002bf9u, 0x00002bfau, + 0x00002bfcu, 0x000200f8u, 0x00002bfcu, 0x00060052u, 0x0000005fu, 0x00007222u, 0x00000c50u, 0x00007674u, + 0x00000001u, 0x000200f9u, 0x00002bfeu, 0x000200f8u, 0x00002bfau, 0x00060052u, 0x0000005fu, 0x00007220u, + 0x00000c0bu, 0x00007674u, 0x00000001u, 0x000200f9u, 0x00002bfeu, 0x000200f8u, 0x00002bfeu, 0x000700f5u, + 0x0000005fu, 0x00007679u, 0x00007220u, 0x00002bfau, 0x00007222u, 0x00002bfcu, 0x000200f9u, 0x00002bffu, + 0x000200f8u, 0x00002bffu, 0x000700f5u, 0x0000005fu, 0x00007678u, 0x00007674u, 0x00002bf3u, 0x00007679u, + 0x00002bfeu, 0x000600a9u, 0x0000005du, 0x0000bdd3u, 0x00002bf4u, 0x00000563u, 0x0000bdd2u, 0x000200f9u, + 0x00002c00u, 0x000200f8u, 0x00002c00u, 0x000700f5u, 0x0000005du, 0x0000767bu, 0x0000bdcfu, 0x00002bd1u, + 0x0000bdd3u, 0x00002bffu, 0x000700f5u, 0x0000005fu, 0x00007677u, 0x0000766fu, 0x00002bd1u, 0x00007678u, + 0x00002bffu, 0x000600a9u, 0x0000005du, 0x0000bdd4u, 0x00002bb0u, 0x00000563u, 0x0000767bu, 0x00050050u, + 0x00000880u, 0x0000bdd5u, 0x00002bb0u, 0x00002bb0u, 0x000600a9u, 0x0000005fu, 0x0000bdd6u, 0x0000bdd5u, + 0x00000c6au, 0x00007677u, 0x0008000cu, 0x0000005fu, 0x00002c05u, 0x00000001u, 0x0000002du, 0x0000bdd6u, + 0x00000c6du, 0x00000c6eu, 0x000500c3u, 0x0000003cu, 0x00002ad6u, 0x0000763eu, 0x0000bda5u, 0x00050051u, + 0x00000008u, 0x00002c36u, 0x00002ad6u, 0x00000002u, 0x000500b3u, 0x0000005du, 0x00002c38u, 0x00002c36u, + 0x00000208u, 0x000500c7u, 0x00000008u, 0x00002c3au, 0x00002c36u, 0x00000c0bu, 0x0006000cu, 0x00000008u, + 0x00002c97u, 0x00000001u, 0x0000004au, 0x00002c3au, 0x00050082u, 0x00000008u, 0x00002c98u, 0x00000288u, + 0x00002c97u, 0x0007000cu, 0x00000008u, 0x00002c99u, 0x00000001u, 0x00000027u, 0x00002c98u, 0x00000288u, + 0x000500c4u, 0x00000008u, 0x00002c9cu, 0x00002c3au, 0x00002c99u, 0x000500c7u, 0x00000008u, 0x00002c9du, + 0x00002c9cu, 0x00000b25u, 0x000500c7u, 0x00000008u, 0x00002c9fu, 0x00002c9du, 0x00000390u, 0x000500c3u, + 0x00000008u, 0x00002ca1u, 0x00002c9du, 0x00000263u, 0x0003003eu, 0x00002c92u, 0x00000be9u, 0x00050041u, + 0x00000060u, 0x00002ca2u, 0x00002c92u, 0x00002ca1u, 0x0004003du, 0x0000005fu, 0x00002ca3u, 0x00002ca2u, + 0x00050051u, 0x00000008u, 0x00002ca8u, 0x00002ca3u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00002caau, + 0x00002ca8u, 0x00002c9fu, 0x000500c3u, 0x00000008u, 0x00002cabu, 0x00002caau, 0x0000026fu, 0x00050051u, + 0x00000008u, 0x00002cadu, 0x00002ca3u, 0x00000000u, 0x00050080u, 0x00000008u, 0x00002caeu, 0x00002cabu, + 0x00002cadu, 0x0007004fu, 0x0000005fu, 0x00002c40u, 0x00002ad6u, 0x00002ad6u, 0x00000000u, 0x00000001u, + 0x00050050u, 0x0000005fu, 0x00002c43u, 0x00002caeu, 0x00002caeu, 0x00050084u, 0x0000005fu, 0x00002c44u, + 0x00002c40u, 0x00002c43u, 0x000500c3u, 0x00000008u, 0x00002c46u, 0x00000c1eu, 0x00002c99u, 0x0004007eu, + 0x00000008u, 0x00002c47u, 0x00002c46u, 0x000500c7u, 0x00000008u, 0x00002c48u, 0x00000c1du, 0x00002c47u, + 0x00050050u, 0x0000005fu, 0x00002c4bu, 0x00002c48u, 0x00002c48u, 0x000500c7u, 0x0000005fu, 0x00002c4cu, + 0x00002c44u, 0x00002c4bu, 0x000500abu, 0x0000005du, 0x00002c4eu, 0x00002c99u, 0x00000288u, 0x000300f7u, + 0x00002c59u, 0x00000000u, 0x000400fau, 0x00002c4eu, 0x00002c4fu, 0x00002c55u, 0x000200f8u, 0x00002c55u, + 0x000500c4u, 0x0000005fu, 0x00002c58u, 0x00002c44u, 0x0000bda9u, 0x000200f9u, 0x00002c59u, 0x000200f8u, + 0x00002c4fu, 0x00050082u, 0x00000008u, 0x00002c52u, 0x00000282u, 0x00002c99u, 0x00050050u, 0x0000005fu, + 0x00002c53u, 0x00002c52u, 0x00002c52u, 0x000500c3u, 0x0000005fu, 0x00002c54u, 0x00002c44u, 0x00002c53u, + 0x000200f9u, 0x00002c59u, 0x000200f8u, 0x00002c59u, 0x000700f5u, 0x0000005fu, 0x00007696u, 0x00002c54u, + 0x00002c4fu, 0x00002c58u, 0x00002c55u, 0x000700f5u, 0x0000005fu, 0x00007694u, 0x00002c54u, 0x00002c4fu, + 0x00002c44u, 0x00002c55u, 0x000500abu, 0x00000880u, 0x00002c5bu, 0x00002c4cu, 0x00000c37u, 0x0004009au, + 0x0000005du, 0x00002c5cu, 0x00002c5bu, 0x000300f7u, 0x00002c88u, 0x00000000u, 0x000400fau, 0x00002c5cu, + 0x00002c5du, 0x00002c88u, 0x000200f8u, 0x00002c5du, 0x00050051u, 0x00000008u, 0x00002c5fu, 0x00002c4cu, + 0x00000000u, 0x000500abu, 0x0000005du, 0x00002c61u, 0x00002c5fu, 0x00002c48u, 0x000300f7u, 0x00002c66u, + 0x00000000u, 0x000400fau, 0x00002c61u, 0x00002c62u, 0x00002c66u, 0x000200f8u, 0x00002c62u, 0x000500abu, + 0x0000005du, 0x00002c65u, 0x00002c5fu, 0x00000208u, 0x000200f9u, 0x00002c66u, 0x000200f8u, 0x00002c66u, + 0x000700f5u, 0x0000005du, 0x00002c67u, 0x00002c61u, 0x00002c5du, 0x00002c65u, 0x00002c62u, 0x000300f7u, + 0x00002c72u, 0x00000000u, 0x000400fau, 0x00002c67u, 0x00002c68u, 0x00002c72u, 0x000200f8u, 0x00002c68u, + 0x00050051u, 0x00000008u, 0x00002c6au, 0x00007694u, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00002c6bu, + 0x00002c6au, 0x00000c1eu, 0x000500aau, 0x0000005du, 0x00002c6cu, 0x00002c6bu, 0x00000208u, 0x000300f7u, + 0x00002c71u, 0x00000000u, 0x000400fau, 0x00002c6cu, 0x00002c6du, 0x00002c6fu, 0x000200f8u, 0x00002c6fu, + 0x00060052u, 0x0000005fu, 0x0000722eu, 0x00000c50u, 0x00007696u, 0x00000000u, 0x000200f9u, 0x00002c71u, + 0x000200f8u, 0x00002c6du, 0x00060052u, 0x0000005fu, 0x0000722cu, 0x00000c0bu, 0x00007696u, 0x00000000u, + 0x000200f9u, 0x00002c71u, 0x000200f8u, 0x00002c71u, 0x000700f5u, 0x0000005fu, 0x0000769cu, 0x0000722cu, + 0x00002c6du, 0x0000722eu, 0x00002c6fu, 0x000200f9u, 0x00002c72u, 0x000200f8u, 0x00002c72u, 0x000700f5u, + 0x0000005fu, 0x0000769bu, 0x00007696u, 0x00002c66u, 0x0000769cu, 0x00002c71u, 0x000600a9u, 0x0000005du, + 0x0000bdd7u, 0x00002c67u, 0x00000563u, 0x0000bdd4u, 0x00050051u, 0x00000008u, 0x00002c74u, 0x00002c4cu, + 0x00000001u, 0x000500abu, 0x0000005du, 0x00002c76u, 0x00002c74u, 0x00002c48u, 0x000300f7u, 0x00002c7bu, + 0x00000000u, 0x000400fau, 0x00002c76u, 0x00002c77u, 0x00002c7bu, 0x000200f8u, 0x00002c77u, 0x000500abu, + 0x0000005du, 0x00002c7au, 0x00002c74u, 0x00000208u, 0x000200f9u, 0x00002c7bu, 0x000200f8u, 0x00002c7bu, + 0x000700f5u, 0x0000005du, 0x00002c7cu, 0x00002c76u, 0x00002c72u, 0x00002c7au, 0x00002c77u, 0x000300f7u, + 0x00002c87u, 0x00000000u, 0x000400fau, 0x00002c7cu, 0x00002c7du, 0x00002c87u, 0x000200f8u, 0x00002c7du, + 0x00050051u, 0x00000008u, 0x00002c7fu, 0x00007694u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00002c80u, + 0x00002c7fu, 0x00000c1eu, 0x000500aau, 0x0000005du, 0x00002c81u, 0x00002c80u, 0x00000208u, 0x000300f7u, + 0x00002c86u, 0x00000000u, 0x000400fau, 0x00002c81u, 0x00002c82u, 0x00002c84u, 0x000200f8u, 0x00002c84u, + 0x00060052u, 0x0000005fu, 0x00007235u, 0x00000c50u, 0x0000769bu, 0x00000001u, 0x000200f9u, 0x00002c86u, + 0x000200f8u, 0x00002c82u, 0x00060052u, 0x0000005fu, 0x00007233u, 0x00000c0bu, 0x0000769bu, 0x00000001u, + 0x000200f9u, 0x00002c86u, 0x000200f8u, 0x00002c86u, 0x000700f5u, 0x0000005fu, 0x000076a0u, 0x00007233u, + 0x00002c82u, 0x00007235u, 0x00002c84u, 0x000200f9u, 0x00002c87u, 0x000200f8u, 0x00002c87u, 0x000700f5u, + 0x0000005fu, 0x0000769fu, 0x0000769bu, 0x00002c7bu, 0x000076a0u, 0x00002c86u, 0x000600a9u, 0x0000005du, + 0x0000bdd8u, 0x00002c7cu, 0x00000563u, 0x0000bdd7u, 0x000200f9u, 0x00002c88u, 0x000200f8u, 0x00002c88u, + 0x000700f5u, 0x0000005du, 0x000076a2u, 0x0000bdd4u, 0x00002c59u, 0x0000bdd8u, 0x00002c87u, 0x000700f5u, + 0x0000005fu, 0x0000769eu, 0x00007696u, 0x00002c59u, 0x0000769fu, 0x00002c87u, 0x000600a9u, 0x0000005du, + 0x0000bdd9u, 0x00002c38u, 0x00000563u, 0x000076a2u, 0x00050050u, 0x00000880u, 0x0000bddau, 0x00002c38u, + 0x00002c38u, 0x000600a9u, 0x0000005fu, 0x0000bddbu, 0x0000bddau, 0x00000c6au, 0x0000769eu, 0x0008000cu, + 0x0000005fu, 0x00002c8du, 0x00000001u, 0x0000002du, 0x0000bddbu, 0x00000c6du, 0x00000c6eu, 0x000200f9u, + 0x00002adau, 0x000200f8u, 0x00002adau, 0x000700f5u, 0x0000005du, 0x000076fcu, 0x0000bdcfu, 0x00002b78u, + 0x0000bdd9u, 0x00002c88u, 0x000700f5u, 0x0000005fu, 0x000076e2u, 0x000076ecu, 0x00002b78u, 0x00002c8du, + 0x00002c88u, 0x000700f5u, 0x0000005fu, 0x000076beu, 0x000076c8u, 0x00002b78u, 0x00002c05u, 0x00002c88u, + 0x000200f9u, 0x00002aebu, 0x000200f8u, 0x00002aebu, 0x000700f5u, 0x0000005du, 0x000076fbu, 0x000076fcu, + 0x00002adau, 0x00000548u, 0x00002aeau, 0x000700f5u, 0x0000005fu, 0x000076e1u, 0x000076e2u, 0x00002adau, + 0x000076fau, 0x00002aeau, 0x000700f5u, 0x0000005fu, 0x000076bdu, 0x000076beu, 0x00002adau, 0x000076e0u, + 0x00002aeau, 0x000700f5u, 0x0000005fu, 0x000076a8u, 0x00002b7du, 0x00002adau, 0x00002cb5u, 0x00002aeau, + 0x00050051u, 0x00000008u, 0x00002aedu, 0x00002480u, 0x00000002u, 0x00050051u, 0x00000008u, 0x00002aefu, + 0x000024aeu, 0x00000002u, 0x000500c3u, 0x00000008u, 0x00002af1u, 0x00002302u, 0x0000084bu, 0x00050084u, + 0x00000008u, 0x00002af2u, 0x00002aefu, 0x00002af1u, 0x00050080u, 0x00000008u, 0x00002af3u, 0x00002aedu, + 0x00002af2u, 0x000500c3u, 0x00000008u, 0x00002af6u, 0x00002aefu, 0x0000084bu, 0x000500c7u, 0x00000008u, + 0x00002af8u, 0x00002302u, 0x00000d92u, 0x00050084u, 0x00000008u, 0x00002af9u, 0x00002af6u, 0x00002af8u, + 0x00050080u, 0x00000008u, 0x00002afau, 0x00002af3u, 0x00002af9u, 0x000500c3u, 0x00000008u, 0x00002afcu, + 0x00002afau, 0x0000026fu, 0x000500c4u, 0x00000008u, 0x00002b08u, 0x00002afcu, 0x00000da6u, 0x000500c3u, + 0x00000008u, 0x00002b0cu, 0x00002aefu, 0x0000026fu, 0x00050084u, 0x00000008u, 0x00002b0du, 0x00002a44u, + 0x00002b0cu, 0x00050051u, 0x00000008u, 0x00002b10u, 0x000024b2u, 0x00000002u, 0x000500c3u, 0x00000008u, + 0x00002b11u, 0x00002b10u, 0x0000026fu, 0x00050084u, 0x00000008u, 0x00002b12u, 0x00002a3eu, 0x00002b11u, + 0x00050080u, 0x00000008u, 0x00002b13u, 0x00002b0du, 0x00002b12u, 0x00050080u, 0x00000008u, 0x00002b15u, + 0x00002b08u, 0x00002b13u, 0x000500c3u, 0x00000008u, 0x00002b17u, 0x00002b15u, 0x00000db6u, 0x00050082u, + 0x00000008u, 0x00002cc1u, 0x00002b17u, 0x00000b0fu, 0x000500c4u, 0x00000008u, 0x00002cc3u, 0x00002cc1u, + 0x00000282u, 0x000500c3u, 0x00000008u, 0x00002cc5u, 0x00002cc3u, 0x00000282u, 0x00050080u, 0x00000008u, + 0x00002cc7u, 0x00002cc5u, 0x00000b0fu, 0x0008000cu, 0x00000008u, 0x00002cc9u, 0x00000001u, 0x0000002du, + 0x00002cc7u, 0x00000208u, 0x00000422u, 0x000500c7u, 0x00000006u, 0x0000232du, 0x00002228u, 0x00000744u, + 0x00050080u, 0x00000006u, 0x0000232fu, 0x0000232du, 0x0000048au, 0x000500c7u, 0x00000006u, 0x00002330u, + 0x0000232fu, 0x00000744u, 0x000500c2u, 0x00000006u, 0x00002332u, 0x00002228u, 0x00000490u, 0x000300f7u, + 0x00002346u, 0x00000000u, 0x000400fau, 0x0000227fu, 0x00002336u, 0x00002346u, 0x000200f8u, 0x00002336u, + 0x000300f7u, 0x00002d25u, 0x00000000u, 0x000400fau, 0x000076fbu, 0x00002cd4u, 0x00002cd5u, 0x000200f8u, + 0x00002cd5u, 0x00050082u, 0x0000005fu, 0x00002cd8u, 0x000076bdu, 0x000076a8u, 0x000500c3u, 0x0000005fu, + 0x00002cdbu, 0x00002cd8u, 0x0000bdacu, 0x000500c6u, 0x0000005fu, 0x00002cddu, 0x00002cd8u, 0x00002cdbu, + 0x00050082u, 0x0000005fu, 0x00002ce0u, 0x000076e1u, 0x000076a8u, 0x000500c3u, 0x0000005fu, 0x00002ce3u, + 0x00002ce0u, 0x0000bdacu, 0x000500c6u, 0x0000005fu, 0x00002ce5u, 0x00002ce0u, 0x00002ce3u, 0x0007000cu, + 0x0000005fu, 0x00002ce8u, 0x00000001u, 0x0000002au, 0x00002cddu, 0x00002ce5u, 0x00050051u, 0x00000008u, + 0x00002ceau, 0x00002ce8u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00002cecu, 0x00002ce8u, 0x00000001u, + 0x0007000cu, 0x00000008u, 0x00002cedu, 0x00000001u, 0x0000002au, 0x00002ceau, 0x00002cecu, 0x000500afu, + 0x0000005du, 0x00002cefu, 0x00002cedu, 0x00000b2cu, 0x000300f7u, 0x00002d24u, 0x00000000u, 0x000400fau, + 0x00002cefu, 0x00002cf0u, 0x00002cf2u, 0x000200f8u, 0x00002cf2u, 0x000500b1u, 0x0000005du, 0x00002cf4u, + 0x00002cedu, 0x00000382u, 0x000300f7u, 0x00002d23u, 0x00000000u, 0x000400fau, 0x00002cf4u, 0x00002cf5u, + 0x00002d09u, 0x000200f8u, 0x00002d09u, 0x000500c3u, 0x00000008u, 0x00002d0bu, 0x00002cedu, 0x00000223u, + 0x0006000cu, 0x00000008u, 0x00002d0cu, 0x00000001u, 0x0000004au, 0x00002d0bu, 0x0007000cu, 0x00000008u, + 0x00002d0du, 0x00000001u, 0x0000002au, 0x00002d0cu, 0x00000208u, 0x0004007cu, 0x00000006u, 0x00002d0fu, + 0x00002d0du, 0x000500aeu, 0x0000005du, 0x00002d11u, 0x00002d0fu, 0x00002332u, 0x000400a8u, 0x0000005du, + 0x00002d14u, 0x00002258u, 0x000500a7u, 0x0000005du, 0x00002d15u, 0x00002d11u, 0x00002d14u, 0x000400a8u, + 0x0000005du, 0x00002d17u, 0x0000225bu, 0x000500a7u, 0x0000005du, 0x00002d18u, 0x00002d15u, 0x00002d17u, + 0x000300f7u, 0x00002d22u, 0x00000000u, 0x000400fau, 0x00002d18u, 0x00002d19u, 0x00002d1au, 0x000200f8u, + 0x00002d1au, 0x000500c4u, 0x00000008u, 0x00002d1cu, 0x00002cedu, 0x0000021du, 0x000500c3u, 0x00000008u, + 0x00002d1eu, 0x00002d1cu, 0x00002d0du, 0x000500c7u, 0x00000008u, 0x00002d1fu, 0x00002d1eu, 0x00000390u, + 0x000200f9u, 0x00002d22u, 0x000200f8u, 0x00002d19u, 0x000200f9u, 0x00002d22u, 0x000200f8u, 0x00002d22u, + 0x000700f5u, 0x00000008u, 0x00007727u, 0x00000390u, 0x00002d19u, 0x00002d1fu, 0x00002d1au, 0x000600a9u, + 0x00000006u, 0x0000bddcu, 0x00002d18u, 0x00000379u, 0x00002d0fu, 0x000200f9u, 0x00002d23u, 0x000200f8u, + 0x00002cf5u, 0x000500aau, 0x0000005du, 0x00002cf7u, 0x00002332u, 0x00000379u, 0x000400a8u, 0x0000005du, + 0x00002cf9u, 0x00002258u, 0x000400a8u, 0x0000005du, 0x00002cfbu, 0x0000225bu, 0x000500a7u, 0x0000005du, + 0x00002cfcu, 0x00002cf9u, 0x00002cfbu, 0x000300f7u, 0x00002d08u, 0x00000000u, 0x000400fau, 0x00002cfcu, + 0x00002cfdu, 0x00002d00u, 0x000200f8u, 0x00002d00u, 0x0007000cu, 0x00000008u, 0x00002d03u, 0x00000001u, + 0x0000002au, 0x00002a1cu, 0x00002cedu, 0x000500c4u, 0x00000008u, 0x00002d04u, 0x00002d03u, 0x0000021du, + 0x000600a9u, 0x00000008u, 0x00002d06u, 0x00002258u, 0x000019c8u, 0x00000208u, 0x00050080u, 0x00000008u, + 0x00002d07u, 0x00002d04u, 0x00002d06u, 0x000200f9u, 0x00002d08u, 0x000200f8u, 0x00002cfdu, 0x000600a9u, + 0x00000008u, 0x00002cffu, 0x00002cf7u, 0x00000390u, 0x00000208u, 0x000200f9u, 0x00002d08u, 0x000200f8u, + 0x00002d08u, 0x000700f5u, 0x00000008u, 0x00007726u, 0x00002cffu, 0x00002cfdu, 0x00002d07u, 0x00002d00u, + 0x000200f9u, 0x00002d23u, 0x000200f8u, 0x00002d23u, 0x000700f5u, 0x00000008u, 0x00007725u, 0x00007726u, + 0x00002d08u, 0x00007727u, 0x00002d22u, 0x000700f5u, 0x00000006u, 0x0000770cu, 0x00000379u, 0x00002d08u, + 0x0000bddcu, 0x00002d22u, 0x000700f5u, 0x0000005du, 0x00007700u, 0x00002cf7u, 0x00002d08u, 0x00002d11u, + 0x00002d22u, 0x000600a9u, 0x0000005du, 0x0000bdddu, 0x00002cf4u, 0x00000563u, 0x00000548u, 0x000200f9u, + 0x00002d24u, 0x000200f8u, 0x00002cf0u, 0x000200f9u, 0x00002d24u, 0x000200f8u, 0x00002d24u, 0x000700f5u, + 0x00000008u, 0x00007724u, 0x00000390u, 0x00002cf0u, 0x00007725u, 0x00002d23u, 0x000700f5u, 0x0000005du, + 0x00007712u, 0x00000548u, 0x00002cf0u, 0x0000bdddu, 0x00002d23u, 0x000700f5u, 0x00000006u, 0x0000770bu, + 0x00002332u, 0x00002cf0u, 0x0000770cu, 0x00002d23u, 0x000700f5u, 0x0000005du, 0x000076ffu, 0x00000563u, + 0x00002cf0u, 0x00007700u, 0x00002d23u, 0x000200f9u, 0x00002d25u, 0x000200f8u, 0x00002cd4u, 0x000200f9u, + 0x00002d25u, 0x000200f8u, 0x00002d25u, 0x000700f5u, 0x00000008u, 0x00007723u, 0x00000390u, 0x00002cd4u, + 0x00007724u, 0x00002d24u, 0x000700f5u, 0x0000005du, 0x00007711u, 0x00000548u, 0x00002cd4u, 0x00007712u, + 0x00002d24u, 0x000700f5u, 0x00000006u, 0x0000770au, 0x00000379u, 0x00002cd4u, 0x0000770bu, 0x00002d24u, + 0x000700f5u, 0x0000005du, 0x000076feu, 0x00000563u, 0x00002cd4u, 0x000076ffu, 0x00002d24u, 0x000300f7u, + 0x00002d57u, 0x00000000u, 0x000400fau, 0x00002255u, 0x00002d27u, 0x00002d57u, 0x000200f8u, 0x00002d27u, + 0x000600a9u, 0x00000006u, 0x0000bddeu, 0x000076feu, 0x00002332u, 0x0000770au, 0x000400a8u, 0x0000005du, + 0x00002d2du, 0x0000225bu, 0x000300f7u, 0x00002d56u, 0x00000000u, 0x000400fau, 0x00002d2du, 0x00002d2eu, + 0x00002d43u, 0x000200f8u, 0x00002d43u, 0x00050080u, 0x00000006u, 0x00002d46u, 0x0000232du, 0x0000bddeu, + 0x000500a6u, 0x0000005du, 0x00002d49u, 0x000076feu, 0x00007711u, 0x000600a9u, 0x00000008u, 0x00002d4au, + 0x00002d49u, 0x00000217u, 0x0000021au, 0x0004007cu, 0x00000006u, 0x00002d4bu, 0x00002d4au, 0x00050080u, + 0x00000006u, 0x00002d4cu, 0x00002d46u, 0x00002d4bu, 0x000500c7u, 0x00000006u, 0x00002d4du, 0x00002d4cu, + 0x00000744u, 0x000600a9u, 0x00000008u, 0x00002d52u, 0x00007711u, 0x00000208u, 0x00000217u, 0x0004007cu, + 0x00000006u, 0x00002d53u, 0x00002d52u, 0x00050080u, 0x00000006u, 0x00002d54u, 0x00002d46u, 0x00002d53u, + 0x000500c7u, 0x00000006u, 0x00002d55u, 0x00002d54u, 0x00000744u, 0x000200f9u, 0x00002d56u, 0x000200f8u, + 0x00002d2eu, 0x00050080u, 0x00000006u, 0x00002d31u, 0x0000232du, 0x0000bddeu, 0x000500c7u, 0x00000006u, + 0x00002d32u, 0x00002d31u, 0x00000744u, 0x000400a8u, 0x0000005du, 0x00002d34u, 0x000076feu, 0x000300f7u, + 0x00002d3au, 0x00000000u, 0x000400fau, 0x00002d34u, 0x00002d35u, 0x00002d3au, 0x000200f8u, 0x00002d35u, + 0x000400a8u, 0x0000005du, 0x00002d37u, 0x00002258u, 0x000500a7u, 0x0000005du, 0x00002d39u, 0x00002d37u, + 0x00007711u, 0x000200f9u, 0x00002d3au, 0x000200f8u, 0x00002d3au, 0x000700f5u, 0x0000005du, 0x00002d3bu, + 0x000076feu, 0x00002d2eu, 0x00002d39u, 0x00002d35u, 0x000300f7u, 0x00002d42u, 0x00000000u, 0x000400fau, + 0x00002d3bu, 0x00002d3cu, 0x00002d3eu, 0x000200f8u, 0x00002d3eu, 0x00050080u, 0x00000006u, 0x00002d40u, + 0x00002d32u, 0x0000048au, 0x000500c7u, 0x00000006u, 0x00002d41u, 0x00002d40u, 0x00000744u, 0x000200f9u, + 0x00002d42u, 0x000200f8u, 0x00002d3cu, 0x000200f9u, 0x00002d42u, 0x000200f8u, 0x00002d42u, 0x000700f5u, + 0x00000006u, 0x00007721u, 0x00002d32u, 0x00002d3cu, 0x00002d41u, 0x00002d3eu, 0x000200f9u, 0x00002d56u, + 0x000200f8u, 0x00002d56u, 0x000700f5u, 0x00000006u, 0x00007720u, 0x00007721u, 0x00002d42u, 0x00002d4du, + 0x00002d43u, 0x000700f5u, 0x00000006u, 0x00007718u, 0x00002d32u, 0x00002d42u, 0x00002d55u, 0x00002d43u, + 0x000200f9u, 0x00002d57u, 0x000200f8u, 0x00002d57u, 0x000700f5u, 0x00000006u, 0x0000771au, 0x00002330u, + 0x00002d25u, 0x00007720u, 0x00002d56u, 0x000700f5u, 0x00000006u, 0x00007717u, 0x0000232du, 0x00002d25u, + 0x00007718u, 0x00002d56u, 0x000200f9u, 0x00002346u, 0x000200f8u, 0x00002346u, 0x000700f5u, 0x00000008u, + 0x0000863du, 0x00008649u, 0x00002aebu, 0x00007723u, 0x00002d57u, 0x000700f5u, 0x00000006u, 0x00007cc3u, + 0x00002330u, 0x00002aebu, 0x0000771au, 0x00002d57u, 0x000700f5u, 0x00000006u, 0x0000772cu, 0x0000232du, + 0x00002aebu, 0x00007717u, 0x00002d57u, 0x000300f7u, 0x0000235bu, 0x00000000u, 0x000400fau, 0x00002276u, + 0x00002348u, 0x0000235bu, 0x000200f8u, 0x00002348u, 0x00080041u, 0x0000027cu, 0x0000234bu, 0x00000a16u, + 0x00000208u, 0x00002008u, 0x0000021au, 0x0000772cu, 0x0004003du, 0x0000022eu, 0x0000234cu, 0x0000234bu, + 0x00040071u, 0x00000006u, 0x0000234du, 0x0000234cu, 0x00070041u, 0x00000270u, 0x00002d5bu, 0x000002d6u, + 0x00000208u, 0x0000234du, 0x00000208u, 0x0004003du, 0x00000006u, 0x00002d5cu, 0x00002d5bu, 0x00070041u, + 0x00000270u, 0x00002d5eu, 0x000002d6u, 0x00000208u, 0x0000234du, 0x00000217u, 0x0004003du, 0x00000006u, + 0x00002d5fu, 0x00002d5eu, 0x00070041u, 0x00000270u, 0x00002d61u, 0x000002d6u, 0x00000208u, 0x0000234du, + 0x0000021au, 0x0004003du, 0x00000006u, 0x00002d62u, 0x00002d61u, 0x00070041u, 0x00000270u, 0x00002d64u, + 0x000002d6u, 0x00000208u, 0x0000234du, 0x0000021du, 0x0004003du, 0x00000006u, 0x00002d65u, 0x00002d64u, + 0x00070041u, 0x00000270u, 0x00002d67u, 0x000002d6u, 0x00000208u, 0x0000234du, 0x00000220u, 0x0004003du, + 0x00000006u, 0x00002d68u, 0x00002d67u, 0x00070041u, 0x00000270u, 0x00002d6au, 0x000002d6u, 0x00000208u, + 0x0000234du, 0x00000223u, 0x0004003du, 0x00000006u, 0x00002d6bu, 0x00002d6au, 0x00070041u, 0x0000027cu, + 0x00002d6du, 0x000002d6u, 0x00000208u, 0x0000234du, 0x00000226u, 0x0004003du, 0x0000022eu, 0x00002d6eu, + 0x00002d6du, 0x00040071u, 0x00000006u, 0x00002d6fu, 0x00002d6eu, 0x0004007cu, 0x00000008u, 0x00002d70u, + 0x00002d6fu, 0x00070041u, 0x0000027cu, 0x00002d72u, 0x000002d6u, 0x00000208u, 0x0000234du, 0x00000229u, + 0x0004003du, 0x0000022eu, 0x00002d73u, 0x00002d72u, 0x00040071u, 0x00000006u, 0x00002d74u, 0x00002d73u, + 0x0004007cu, 0x00000008u, 0x00002d75u, 0x00002d74u, 0x00070041u, 0x0000027cu, 0x00002d77u, 0x000002d6u, + 0x00000208u, 0x0000234du, 0x00000263u, 0x0004003du, 0x0000022eu, 0x00002d78u, 0x00002d77u, 0x00040071u, + 0x00000006u, 0x00002d79u, 0x00002d78u, 0x0004007cu, 0x00000008u, 0x00002d7au, 0x00002d79u, 0x00070041u, + 0x0000027cu, 0x00002d7cu, 0x000002d6u, 0x00000208u, 0x0000234du, 0x00000269u, 0x0004003du, 0x0000022eu, + 0x00002d7du, 0x00002d7cu, 0x00040071u, 0x00000006u, 0x00002d7eu, 0x00002d7du, 0x0004007cu, 0x00000008u, + 0x00002d7fu, 0x00002d7eu, 0x00070041u, 0x0000027cu, 0x00002d81u, 0x000002d6u, 0x00000208u, 0x0000234du, + 0x0000026fu, 0x0004003du, 0x0000022eu, 0x00002d82u, 0x00002d81u, 0x00040071u, 0x00000006u, 0x00002d83u, + 0x00002d82u, 0x0004007cu, 0x00000008u, 0x00002d84u, 0x00002d83u, 0x00070041u, 0x0000027cu, 0x00002d86u, + 0x000002d6u, 0x00000208u, 0x0000234du, 0x00000274u, 0x0004003du, 0x0000022eu, 0x00002d87u, 0x00002d86u, + 0x00040071u, 0x00000006u, 0x00002d88u, 0x00002d87u, 0x0004007cu, 0x00000008u, 0x00002d89u, 0x00002d88u, + 0x00070041u, 0x0000027cu, 0x00002d8bu, 0x000002d6u, 0x00000208u, 0x0000234du, 0x0000027bu, 0x0004003du, + 0x0000022eu, 0x00002d8cu, 0x00002d8bu, 0x00040071u, 0x00000006u, 0x00002d8du, 0x00002d8cu, 0x0004007cu, + 0x00000008u, 0x00002d8eu, 0x00002d8du, 0x00070041u, 0x0000027cu, 0x00002d90u, 0x000002d6u, 0x00000208u, + 0x0000234du, 0x00000282u, 0x0004003du, 0x0000022eu, 0x00002d91u, 0x00002d90u, 0x00040071u, 0x00000006u, + 0x00002d92u, 0x00002d91u, 0x0004007cu, 0x00000008u, 0x00002d93u, 0x00002d92u, 0x000500c7u, 0x00000008u, + 0x00002eeeu, 0x00002d93u, 0x00000217u, 0x000500abu, 0x0000005du, 0x00002eefu, 0x00002eeeu, 0x00000208u, + 0x0004007cu, 0x00000008u, 0x00002ef2u, 0x00002d5cu, 0x0004007cu, 0x00000008u, 0x00002ef5u, 0x00002d5fu, + 0x00050051u, 0x00000008u, 0x00002ef9u, 0x000076a8u, 0x00000000u, 0x0008000cu, 0x00000008u, 0x000033c2u, + 0x00000001u, 0x0000002du, 0x00002ef9u, 0x00000c50u, 0x00000c0bu, 0x000500b1u, 0x0000005du, 0x000033c4u, + 0x00002d84u, 0x00000274u, 0x000300f7u, 0x000033d0u, 0x00000000u, 0x000400fau, 0x000033c4u, 0x000033c5u, + 0x000033c9u, 0x000200f8u, 0x000033c9u, 0x00050082u, 0x00000008u, 0x000033cbu, 0x00000382u, 0x00002d84u, + 0x000500c4u, 0x00000008u, 0x000033cdu, 0x000033c2u, 0x000033cbu, 0x000500c3u, 0x00000008u, 0x000033cfu, + 0x000033cdu, 0x0000055eu, 0x000200f9u, 0x000033d0u, 0x000200f8u, 0x000033c5u, 0x000500c3u, 0x00000008u, + 0x000033c8u, 0x000033c2u, 0x00002d84u, 0x000200f9u, 0x000033d0u, 0x000200f8u, 0x000033d0u, 0x000700f5u, + 0x00000008u, 0x00007738u, 0x000033c8u, 0x000033c5u, 0x000033cfu, 0x000033c9u, 0x000300f7u, 0x000033ecu, + 0x00000000u, 0x000400fau, 0x00002eefu, 0x000033d2u, 0x000033e7u, 0x000200f8u, 0x000033e7u, 0x000500c4u, + 0x00000008u, 0x000033e9u, 0x00002ef2u, 0x0000021du, 0x00050082u, 0x00000008u, 0x000033ebu, 0x00007738u, + 0x000033e9u, 0x000200f9u, 0x000033ecu, 0x000200f8u, 0x000033d2u, 0x000500c3u, 0x00000008u, 0x000033d4u, + 0x00007738u, 0x0000021du, 0x000500afu, 0x0000005du, 0x000033d6u, 0x000033d4u, 0x00002ef5u, 0x000300f7u, + 0x000033e6u, 0x00000000u, 0x000400fau, 0x000033d6u, 0x000033d8u, 0x000033e0u, 0x000200f8u, 0x000033e0u, + 0x000500c4u, 0x00000008u, 0x000033e3u, 0x00002ef2u, 0x0000021du, 0x00050082u, 0x00000008u, 0x000033e4u, + 0x00007738u, 0x000033e3u, 0x0007000cu, 0x00000008u, 0x000033e5u, 0x00000001u, 0x0000002au, 0x000033e4u, + 0x00000208u, 0x000200f9u, 0x000033e6u, 0x000200f8u, 0x000033d8u, 0x000500c3u, 0x00000008u, 0x000033dau, + 0x00002ef5u, 0x0000021au, 0x000500c3u, 0x00000008u, 0x000033dcu, 0x00002ef2u, 0x0000021au, 0x00050082u, + 0x00000008u, 0x000033ddu, 0x000033dau, 0x000033dcu, 0x000500c7u, 0x00000008u, 0x000033deu, 0x000033ddu, + 0x00001140u, 0x000500c4u, 0x00000008u, 0x000033dfu, 0x000033deu, 0x00000223u, 0x000200f9u, 0x000033e6u, + 0x000200f8u, 0x000033e6u, 0x000700f5u, 0x00000008u, 0x0000773au, 0x000033dfu, 0x000033d8u, 0x000033e5u, + 0x000033e0u, 0x000200f9u, 0x000033ecu, 0x000200f8u, 0x000033ecu, 0x000700f5u, 0x00000008u, 0x00007739u, + 0x0000773au, 0x000033e6u, 0x000033ebu, 0x000033e7u, 0x000500c7u, 0x00000008u, 0x00002efeu, 0x00002d93u, + 0x00000220u, 0x000500abu, 0x0000005du, 0x00002effu, 0x00002efeu, 0x00000208u, 0x0004007cu, 0x00000008u, + 0x00002f02u, 0x00002d62u, 0x0004007cu, 0x00000008u, 0x00002f05u, 0x00002d65u, 0x00050051u, 0x00000008u, + 0x00002f09u, 0x000076a8u, 0x00000001u, 0x0008000cu, 0x00000008u, 0x000033f2u, 0x00000001u, 0x0000002du, + 0x00002f09u, 0x00000c50u, 0x00000c0bu, 0x000500b1u, 0x0000005du, 0x000033f4u, 0x00002d8eu, 0x00000274u, + 0x000300f7u, 0x00003400u, 0x00000000u, 0x000400fau, 0x000033f4u, 0x000033f5u, 0x000033f9u, 0x000200f8u, + 0x000033f9u, 0x00050082u, 0x00000008u, 0x000033fbu, 0x00000382u, 0x00002d8eu, 0x000500c4u, 0x00000008u, + 0x000033fdu, 0x000033f2u, 0x000033fbu, 0x000500c3u, 0x00000008u, 0x000033ffu, 0x000033fdu, 0x0000055eu, + 0x000200f9u, 0x00003400u, 0x000200f8u, 0x000033f5u, 0x000500c3u, 0x00000008u, 0x000033f8u, 0x000033f2u, + 0x00002d8eu, 0x000200f9u, 0x00003400u, 0x000200f8u, 0x00003400u, 0x000700f5u, 0x00000008u, 0x0000773eu, + 0x000033f8u, 0x000033f5u, 0x000033ffu, 0x000033f9u, 0x000300f7u, 0x0000341cu, 0x00000000u, 0x000400fau, + 0x00002effu, 0x00003402u, 0x00003417u, 0x000200f8u, 0x00003417u, 0x000500c4u, 0x00000008u, 0x00003419u, + 0x00002f02u, 0x0000021du, 0x00050082u, 0x00000008u, 0x0000341bu, 0x0000773eu, 0x00003419u, 0x000200f9u, + 0x0000341cu, 0x000200f8u, 0x00003402u, 0x000500c3u, 0x00000008u, 0x00003404u, 0x0000773eu, 0x0000021du, + 0x000500afu, 0x0000005du, 0x00003406u, 0x00003404u, 0x00002f05u, 0x000300f7u, 0x00003416u, 0x00000000u, + 0x000400fau, 0x00003406u, 0x00003408u, 0x00003410u, 0x000200f8u, 0x00003410u, 0x000500c4u, 0x00000008u, + 0x00003413u, 0x00002f02u, 0x0000021du, 0x00050082u, 0x00000008u, 0x00003414u, 0x0000773eu, 0x00003413u, + 0x0007000cu, 0x00000008u, 0x00003415u, 0x00000001u, 0x0000002au, 0x00003414u, 0x00000208u, 0x000200f9u, + 0x00003416u, 0x000200f8u, 0x00003408u, 0x000500c3u, 0x00000008u, 0x0000340au, 0x00002f05u, 0x0000021au, + 0x000500c3u, 0x00000008u, 0x0000340cu, 0x00002f02u, 0x0000021au, 0x00050082u, 0x00000008u, 0x0000340du, + 0x0000340au, 0x0000340cu, 0x000500c7u, 0x00000008u, 0x0000340eu, 0x0000340du, 0x00001140u, 0x000500c4u, + 0x00000008u, 0x0000340fu, 0x0000340eu, 0x00000223u, 0x000200f9u, 0x00003416u, 0x000200f8u, 0x00003416u, + 0x000700f5u, 0x00000008u, 0x00007740u, 0x0000340fu, 0x00003408u, 0x00003415u, 0x00003410u, 0x000200f9u, + 0x0000341cu, 0x000200f8u, 0x0000341cu, 0x000700f5u, 0x00000008u, 0x0000773fu, 0x00007740u, 0x00003416u, + 0x0000341bu, 0x00003417u, 0x00050050u, 0x0000005fu, 0x0000bdc4u, 0x00007739u, 0x0000773fu, 0x000500a6u, + 0x0000005du, 0x00002f0eu, 0x00002249u, 0x00002243u, 0x000300f7u, 0x00002f14u, 0x00000000u, 0x000400fau, + 0x00002f0eu, 0x00002f0fu, 0x00002f13u, 0x000200f8u, 0x00002f13u, 0x000200f9u, 0x00002f14u, 0x000200f8u, + 0x00002f0fu, 0x000500c7u, 0x0000005fu, 0x00002f12u, 0x0000bdc4u, 0x0000bdacu, 0x000200f9u, 0x00002f14u, + 0x000200f8u, 0x00002f14u, 0x000700f5u, 0x0000005fu, 0x00007744u, 0x00002f12u, 0x00002f0fu, 0x00000c37u, + 0x00002f13u, 0x00050051u, 0x00000008u, 0x00002f16u, 0x00007744u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00002f18u, 0x00007744u, 0x00000001u, 0x00050080u, 0x00000008u, 0x00002f19u, 0x00002f16u, 0x00002f18u, + 0x000500c3u, 0x0000005fu, 0x00002f1cu, 0x0000bdc4u, 0x0000bdabu, 0x00050051u, 0x00000008u, 0x00002f1fu, + 0x00002f1cu, 0x00000000u, 0x000500abu, 0x0000005du, 0x00003423u, 0x00002d7fu, 0x00000208u, 0x000300f7u, + 0x00003439u, 0x00000000u, 0x000400fau, 0x00003423u, 0x00003424u, 0x00003439u, 0x000200f8u, 0x00003424u, + 0x000500c4u, 0x00000008u, 0x00003427u, 0x00000217u, 0x00002d7fu, 0x000500c7u, 0x00000008u, 0x0000342au, + 0x00002d93u, 0x0000021au, 0x000500abu, 0x0000005du, 0x0000342bu, 0x0000342au, 0x00000208u, 0x000300f7u, + 0x00003434u, 0x00000000u, 0x000400fau, 0x0000342bu, 0x0000342cu, 0x00003434u, 0x000200f8u, 0x0000342cu, + 0x000500c7u, 0x00000008u, 0x0000342fu, 0x00002f1fu, 0x00003427u, 0x00050082u, 0x00000008u, 0x00003430u, + 0x0000342fu, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00003431u, 0x00000001u, 0x0000002au, 0x00003430u, + 0x00000208u, 0x000500c6u, 0x00000008u, 0x00003433u, 0x00002f1fu, 0x00003431u, 0x000200f9u, 0x00003434u, + 0x000200f8u, 0x00003434u, 0x000700f5u, 0x00000008u, 0x00007746u, 0x00002f1fu, 0x00003424u, 0x00003433u, + 0x0000342cu, 0x00050082u, 0x00000008u, 0x00003436u, 0x00003427u, 0x00000217u, 0x000500c7u, 0x00000008u, + 0x00003438u, 0x00007746u, 0x00003436u, 0x000200f9u, 0x00003439u, 0x000200f8u, 0x00003439u, 0x000700f5u, + 0x00000008u, 0x00007747u, 0x00002f1fu, 0x00002f14u, 0x00003438u, 0x00003434u, 0x00050051u, 0x00000008u, + 0x00002f23u, 0x00002f1cu, 0x00000001u, 0x000500abu, 0x0000005du, 0x00003440u, 0x00002d89u, 0x00000208u, + 0x000300f7u, 0x00003456u, 0x00000000u, 0x000400fau, 0x00003440u, 0x00003441u, 0x00003456u, 0x000200f8u, + 0x00003441u, 0x000500c4u, 0x00000008u, 0x00003444u, 0x00000217u, 0x00002d89u, 0x000500c7u, 0x00000008u, + 0x00003447u, 0x00002d93u, 0x00000263u, 0x000500abu, 0x0000005du, 0x00003448u, 0x00003447u, 0x00000208u, + 0x000300f7u, 0x00003451u, 0x00000000u, 0x000400fau, 0x00003448u, 0x00003449u, 0x00003451u, 0x000200f8u, + 0x00003449u, 0x000500c7u, 0x00000008u, 0x0000344cu, 0x00002f23u, 0x00003444u, 0x00050082u, 0x00000008u, + 0x0000344du, 0x0000344cu, 0x00000217u, 0x0007000cu, 0x00000008u, 0x0000344eu, 0x00000001u, 0x0000002au, + 0x0000344du, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00003450u, 0x00002f23u, 0x0000344eu, 0x000200f9u, + 0x00003451u, 0x000200f8u, 0x00003451u, 0x000700f5u, 0x00000008u, 0x0000774au, 0x00002f23u, 0x00003441u, + 0x00003450u, 0x00003449u, 0x00050082u, 0x00000008u, 0x00003453u, 0x00003444u, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x00003455u, 0x0000774au, 0x00003453u, 0x000200f9u, 0x00003456u, 0x000200f8u, 0x00003456u, + 0x000700f5u, 0x00000008u, 0x0000774bu, 0x00002f23u, 0x00003439u, 0x00003455u, 0x00003451u, 0x00050080u, + 0x00000008u, 0x00002f27u, 0x00002f1fu, 0x00000217u, 0x000300f7u, 0x00003473u, 0x00000000u, 0x000400fau, + 0x00003423u, 0x0000345eu, 0x00003473u, 0x000200f8u, 0x0000345eu, 0x000500c4u, 0x00000008u, 0x00003461u, + 0x00000217u, 0x00002d7fu, 0x000500c7u, 0x00000008u, 0x00003464u, 0x00002d93u, 0x0000021au, 0x000500abu, + 0x0000005du, 0x00003465u, 0x00003464u, 0x00000208u, 0x000300f7u, 0x0000346eu, 0x00000000u, 0x000400fau, + 0x00003465u, 0x00003466u, 0x0000346eu, 0x000200f8u, 0x00003466u, 0x000500c7u, 0x00000008u, 0x00003469u, + 0x00002f27u, 0x00003461u, 0x00050082u, 0x00000008u, 0x0000346au, 0x00003469u, 0x00000217u, 0x0007000cu, + 0x00000008u, 0x0000346bu, 0x00000001u, 0x0000002au, 0x0000346au, 0x00000208u, 0x000500c6u, 0x00000008u, + 0x0000346du, 0x00002f27u, 0x0000346bu, 0x000200f9u, 0x0000346eu, 0x000200f8u, 0x0000346eu, 0x000700f5u, + 0x00000008u, 0x0000774eu, 0x00002f27u, 0x0000345eu, 0x0000346du, 0x00003466u, 0x00050082u, 0x00000008u, + 0x00003470u, 0x00003461u, 0x00000217u, 0x000500c7u, 0x00000008u, 0x00003472u, 0x0000774eu, 0x00003470u, + 0x000200f9u, 0x00003473u, 0x000200f8u, 0x00003473u, 0x000700f5u, 0x00000008u, 0x0000774fu, 0x00002f27u, + 0x00003456u, 0x00003472u, 0x0000346eu, 0x00050080u, 0x00000008u, 0x00002f2cu, 0x00002f23u, 0x00000217u, + 0x000300f7u, 0x00003490u, 0x00000000u, 0x000400fau, 0x00003440u, 0x0000347bu, 0x00003490u, 0x000200f8u, + 0x0000347bu, 0x000500c4u, 0x00000008u, 0x0000347eu, 0x00000217u, 0x00002d89u, 0x000500c7u, 0x00000008u, + 0x00003481u, 0x00002d93u, 0x00000263u, 0x000500abu, 0x0000005du, 0x00003482u, 0x00003481u, 0x00000208u, + 0x000300f7u, 0x0000348bu, 0x00000000u, 0x000400fau, 0x00003482u, 0x00003483u, 0x0000348bu, 0x000200f8u, + 0x00003483u, 0x000500c7u, 0x00000008u, 0x00003486u, 0x00002f2cu, 0x0000347eu, 0x00050082u, 0x00000008u, + 0x00003487u, 0x00003486u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00003488u, 0x00000001u, 0x0000002au, + 0x00003487u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x0000348au, 0x00002f2cu, 0x00003488u, 0x000200f9u, + 0x0000348bu, 0x000200f8u, 0x0000348bu, 0x000700f5u, 0x00000008u, 0x00007752u, 0x00002f2cu, 0x0000347bu, + 0x0000348au, 0x00003483u, 0x00050082u, 0x00000008u, 0x0000348du, 0x0000347eu, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x0000348fu, 0x00007752u, 0x0000348du, 0x000200f9u, 0x00003490u, 0x000200f8u, 0x00003490u, + 0x000700f5u, 0x00000008u, 0x00007753u, 0x00002f2cu, 0x00003473u, 0x0000348fu, 0x0000348bu, 0x00050082u, + 0x00000008u, 0x00002f31u, 0x00007753u, 0x0000774bu, 0x0007000cu, 0x00000008u, 0x00002f32u, 0x00000001u, + 0x0000002au, 0x00002f31u, 0x000013a0u, 0x000500c7u, 0x00000008u, 0x00002f34u, 0x0000774bu, 0x00000390u, + 0x00050080u, 0x00000008u, 0x00002f36u, 0x00002f34u, 0x00002f32u, 0x000500aau, 0x00000880u, 0x00002f3cu, + 0x00007744u, 0x000013acu, 0x00050051u, 0x0000005du, 0x00002f3du, 0x00002f3cu, 0x00000000u, 0x00050051u, + 0x0000005du, 0x00002f3eu, 0x00002f3cu, 0x00000001u, 0x00070050u, 0x000005feu, 0x00002f3fu, 0x00002273u, + 0x00002285u, 0x00002f3du, 0x00002f3eu, 0x0004009bu, 0x0000005du, 0x00002f40u, 0x00002f3fu, 0x000500afu, + 0x0000005du, 0x00002f42u, 0x00002f19u, 0x00000382u, 0x000600a9u, 0x00000008u, 0x0000bddfu, 0x00002f40u, + 0x00000208u, 0x00002f19u, 0x000500aau, 0x0000005du, 0x00002f48u, 0x00002d70u, 0x00000217u, 0x000500afu, + 0x0000005du, 0x00002f4au, 0x0000bddfu, 0x00000382u, 0x000300f7u, 0x00002f53u, 0x00000000u, 0x000400fau, + 0x00002f4au, 0x00002f4bu, 0x00002f4fu, 0x000200f8u, 0x00002f4fu, 0x00050050u, 0x0000005fu, 0x00002f52u, + 0x00007747u, 0x00002f34u, 0x000200f9u, 0x00002f53u, 0x000200f8u, 0x00002f4bu, 0x00050050u, 0x0000005fu, + 0x00002f4eu, 0x0000774fu, 0x00002f36u, 0x000200f9u, 0x00002f53u, 0x000200f8u, 0x00002f53u, 0x000700f5u, + 0x0000005fu, 0x0000776eu, 0x00002f4eu, 0x00002f4bu, 0x00002f52u, 0x00002f4fu, 0x000500c7u, 0x00000008u, + 0x00002f56u, 0x00007747u, 0x00000217u, 0x000500c4u, 0x00000008u, 0x00002f57u, 0x00002f56u, 0x00000220u, + 0x000500c3u, 0x00000008u, 0x00002f5au, 0x00002f16u, 0x00000217u, 0x000500c5u, 0x00000008u, 0x00002f5bu, + 0x00002f57u, 0x00002f5au, 0x000300f7u, 0x0000321fu, 0x00000000u, 0x000400fau, 0x00002243u, 0x00002f5du, + 0x00003003u, 0x000200f8u, 0x00003003u, 0x000300f7u, 0x0000321eu, 0x00000000u, 0x000d00fbu, 0x00002d70u, + 0x0000321eu, 0x00000000u, 0x00003006u, 0x00000001u, 0x0000308eu, 0x00000002u, 0x000030bcu, 0x00000003u, + 0x0000312fu, 0x00000004u, 0x000031b7u, 0x000200f8u, 0x000031b7u, 0x000300f7u, 0x0000321du, 0x00000000u, + 0x000700fbu, 0x00002d75u, 0x000031bau, 0x00000000u, 0x000031dbu, 0x00000001u, 0x000031fcu, 0x000200f8u, + 0x000031fcu, 0x0004007cu, 0x000000a6u, 0x000031feu, 0x0000776eu, 0x00050051u, 0x00000006u, 0x00004514u, + 0x000031feu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004515u, 0x00002d6bu, 0x00004514u, 0x00050080u, + 0x00000006u, 0x00004516u, 0x00002d68u, 0x00004515u, 0x00050051u, 0x00000006u, 0x00004518u, 0x000031feu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x0000451au, 0x00004516u, 0x00004518u, 0x000500c7u, 0x00000006u, + 0x0000451cu, 0x0000451au, 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00004520u, 0x00004514u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00004521u, 0x00004520u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004523u, + 0x0000451cu, 0x00004521u, 0x000500c6u, 0x00000006u, 0x00004525u, 0x00004523u, 0x00000490u, 0x00080041u, + 0x0000027cu, 0x00004528u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004525u, 0x0004003du, + 0x0000022eu, 0x00004529u, 0x00004528u, 0x00040071u, 0x00000006u, 0x0000452au, 0x00004529u, 0x0004007cu, + 0x00000008u, 0x0000452cu, 0x0000452au, 0x00070050u, 0x00000009u, 0x0000452du, 0x0000452cu, 0x0000452cu, + 0x0000452cu, 0x0000452cu, 0x000300f7u, 0x00003212u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00003203u, + 0x00003212u, 0x000200f8u, 0x00003203u, 0x00050050u, 0x0000005fu, 0x00003206u, 0x0000774fu, 0x00002f34u, + 0x0004007cu, 0x000000a6u, 0x00003207u, 0x00003206u, 0x00050051u, 0x00000006u, 0x00004538u, 0x00003207u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004539u, 0x00002d6bu, 0x00004538u, 0x00050080u, 0x00000006u, + 0x0000453au, 0x00002d68u, 0x00004539u, 0x00050051u, 0x00000006u, 0x0000453cu, 0x00003207u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x0000453eu, 0x0000453au, 0x0000453cu, 0x000500c7u, 0x00000006u, 0x00004540u, + 0x0000453eu, 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00004544u, 0x00004538u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00004545u, 0x00004544u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004547u, 0x00004540u, + 0x00004545u, 0x000500c6u, 0x00000006u, 0x00004549u, 0x00004547u, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x0000454cu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004549u, 0x0004003du, 0x0000022eu, + 0x0000454du, 0x0000454cu, 0x00040071u, 0x00000006u, 0x0000454eu, 0x0000454du, 0x0004007cu, 0x00000008u, + 0x00004550u, 0x0000454eu, 0x00070050u, 0x00000009u, 0x00004551u, 0x00004550u, 0x00004550u, 0x00004550u, + 0x00004550u, 0x00050050u, 0x0000005fu, 0x0000320du, 0x00007747u, 0x00002f36u, 0x0004007cu, 0x000000a6u, + 0x0000320eu, 0x0000320du, 0x00050051u, 0x00000006u, 0x0000455cu, 0x0000320eu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000455du, 0x00002d6bu, 0x0000455cu, 0x00050080u, 0x00000006u, 0x0000455eu, 0x00002d68u, + 0x0000455du, 0x00050051u, 0x00000006u, 0x00004560u, 0x0000320eu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00004562u, 0x0000455eu, 0x00004560u, 0x000500c7u, 0x00000006u, 0x00004564u, 0x00004562u, 0x00000e59u, + 0x000500c7u, 0x00000006u, 0x00004568u, 0x0000455cu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004569u, + 0x00004568u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000456bu, 0x00004564u, 0x00004569u, 0x000500c6u, + 0x00000006u, 0x0000456du, 0x0000456bu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00004570u, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x0000456du, 0x0004003du, 0x0000022eu, 0x00004571u, 0x00004570u, + 0x00040071u, 0x00000006u, 0x00004572u, 0x00004571u, 0x0004007cu, 0x00000008u, 0x00004574u, 0x00004572u, + 0x00070050u, 0x00000009u, 0x00004575u, 0x00004574u, 0x00004574u, 0x00004574u, 0x00004574u, 0x000200f9u, + 0x00003212u, 0x000200f8u, 0x00003212u, 0x000700f5u, 0x00000009u, 0x000079b0u, 0x00007952u, 0x000031fcu, + 0x00004575u, 0x00003203u, 0x000700f5u, 0x00000009u, 0x00007932u, 0x000078d1u, 0x000031fcu, 0x00004551u, + 0x00003203u, 0x000300f7u, 0x0000321cu, 0x00000000u, 0x000400fau, 0x00002f40u, 0x00003214u, 0x0000321cu, + 0x000200f8u, 0x00003214u, 0x00050050u, 0x0000005fu, 0x00003217u, 0x0000774fu, 0x00002f36u, 0x0004007cu, + 0x000000a6u, 0x00003218u, 0x00003217u, 0x00050051u, 0x00000006u, 0x00004580u, 0x00003218u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00004581u, 0x00002d6bu, 0x00004580u, 0x00050080u, 0x00000006u, 0x00004582u, + 0x00002d68u, 0x00004581u, 0x00050051u, 0x00000006u, 0x00004584u, 0x00003218u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00004586u, 0x00004582u, 0x00004584u, 0x000500c7u, 0x00000006u, 0x00004588u, 0x00004586u, + 0x00000e59u, 0x000500c7u, 0x00000006u, 0x0000458cu, 0x00004580u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x0000458du, 0x0000458cu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000458fu, 0x00004588u, 0x0000458du, + 0x000500c6u, 0x00000006u, 0x00004591u, 0x0000458fu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00004594u, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004591u, 0x0004003du, 0x0000022eu, 0x00004595u, + 0x00004594u, 0x00040071u, 0x00000006u, 0x00004596u, 0x00004595u, 0x0004007cu, 0x00000008u, 0x00004598u, + 0x00004596u, 0x00070050u, 0x00000009u, 0x00004599u, 0x00004598u, 0x00004598u, 0x00004598u, 0x00004598u, + 0x000200f9u, 0x0000321cu, 0x000200f8u, 0x0000321cu, 0x000700f5u, 0x00000009u, 0x00007a2du, 0x000079cdu, + 0x00003212u, 0x00004599u, 0x00003214u, 0x000200f9u, 0x0000321du, 0x000200f8u, 0x000031dbu, 0x0004007cu, + 0x000000a6u, 0x000031ddu, 0x0000776eu, 0x00050051u, 0x00000006u, 0x00004449u, 0x000031ddu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000444au, 0x00002d6bu, 0x00004449u, 0x00050080u, 0x00000006u, 0x0000444bu, + 0x00002d68u, 0x0000444au, 0x00050051u, 0x00000006u, 0x0000444du, 0x000031ddu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x0000444eu, 0x0000444du, 0x00000217u, 0x00050080u, 0x00000006u, 0x00004450u, 0x0000444bu, + 0x0000444eu, 0x000500c7u, 0x00000006u, 0x00004452u, 0x00004450u, 0x00000e59u, 0x000400c8u, 0x00000006u, + 0x00004455u, 0x0000444du, 0x000500c7u, 0x00000006u, 0x00004456u, 0x00004455u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00004457u, 0x00004456u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x0000445bu, 0x00004449u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000445cu, 0x0000445bu, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x0000445eu, 0x00004452u, 0x0000445cu, 0x000500c6u, 0x00000006u, 0x00004460u, 0x0000445eu, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00004463u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004460u, + 0x0004003du, 0x0000022eu, 0x00004464u, 0x00004463u, 0x00040071u, 0x00000006u, 0x00004465u, 0x00004464u, + 0x000500c2u, 0x00000006u, 0x00004468u, 0x00004465u, 0x00004457u, 0x000500c7u, 0x00000006u, 0x00004469u, + 0x00004468u, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x0000446bu, 0x00004469u, 0x00000220u, 0x000500c5u, + 0x00000006u, 0x0000446du, 0x00004469u, 0x0000446bu, 0x0004007cu, 0x00000008u, 0x0000446fu, 0x0000446du, + 0x00070050u, 0x00000009u, 0x00004470u, 0x0000446fu, 0x0000446fu, 0x0000446fu, 0x0000446fu, 0x000300f7u, + 0x000031f1u, 0x00000000u, 0x000400fau, 0x00002249u, 0x000031e2u, 0x000031f1u, 0x000200f8u, 0x000031e2u, + 0x00050050u, 0x0000005fu, 0x000031e5u, 0x0000774fu, 0x00002f34u, 0x0004007cu, 0x000000a6u, 0x000031e6u, + 0x000031e5u, 0x00050051u, 0x00000006u, 0x0000447cu, 0x000031e6u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000447du, 0x00002d6bu, 0x0000447cu, 0x00050080u, 0x00000006u, 0x0000447eu, 0x00002d68u, 0x0000447du, + 0x00050051u, 0x00000006u, 0x00004480u, 0x000031e6u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004481u, + 0x00004480u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00004483u, 0x0000447eu, 0x00004481u, 0x000500c7u, + 0x00000006u, 0x00004485u, 0x00004483u, 0x00000e59u, 0x000400c8u, 0x00000006u, 0x00004488u, 0x00004480u, + 0x000500c7u, 0x00000006u, 0x00004489u, 0x00004488u, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000448au, + 0x00004489u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x0000448eu, 0x0000447cu, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x0000448fu, 0x0000448eu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004491u, 0x00004485u, + 0x0000448fu, 0x000500c6u, 0x00000006u, 0x00004493u, 0x00004491u, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00004496u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004493u, 0x0004003du, 0x0000022eu, + 0x00004497u, 0x00004496u, 0x00040071u, 0x00000006u, 0x00004498u, 0x00004497u, 0x000500c2u, 0x00000006u, + 0x0000449bu, 0x00004498u, 0x0000448au, 0x000500c7u, 0x00000006u, 0x0000449cu, 0x0000449bu, 0x00000e7cu, + 0x000500c4u, 0x00000006u, 0x0000449eu, 0x0000449cu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x000044a0u, + 0x0000449cu, 0x0000449eu, 0x0004007cu, 0x00000008u, 0x000044a2u, 0x000044a0u, 0x00070050u, 0x00000009u, + 0x000044a3u, 0x000044a2u, 0x000044a2u, 0x000044a2u, 0x000044a2u, 0x00050050u, 0x0000005fu, 0x000031ecu, + 0x00007747u, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x000031edu, 0x000031ecu, 0x00050051u, 0x00000006u, + 0x000044afu, 0x000031edu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000044b0u, 0x00002d6bu, 0x000044afu, + 0x00050080u, 0x00000006u, 0x000044b1u, 0x00002d68u, 0x000044b0u, 0x00050051u, 0x00000006u, 0x000044b3u, + 0x000031edu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000044b4u, 0x000044b3u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x000044b6u, 0x000044b1u, 0x000044b4u, 0x000500c7u, 0x00000006u, 0x000044b8u, 0x000044b6u, + 0x00000e59u, 0x000400c8u, 0x00000006u, 0x000044bbu, 0x000044b3u, 0x000500c7u, 0x00000006u, 0x000044bcu, + 0x000044bbu, 0x0000048au, 0x00050084u, 0x00000006u, 0x000044bdu, 0x000044bcu, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x000044c1u, 0x000044afu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000044c2u, 0x000044c1u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x000044c4u, 0x000044b8u, 0x000044c2u, 0x000500c6u, 0x00000006u, + 0x000044c6u, 0x000044c4u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000044c9u, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x000044c6u, 0x0004003du, 0x0000022eu, 0x000044cau, 0x000044c9u, 0x00040071u, + 0x00000006u, 0x000044cbu, 0x000044cau, 0x000500c2u, 0x00000006u, 0x000044ceu, 0x000044cbu, 0x000044bdu, + 0x000500c7u, 0x00000006u, 0x000044cfu, 0x000044ceu, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x000044d1u, + 0x000044cfu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x000044d3u, 0x000044cfu, 0x000044d1u, 0x0004007cu, + 0x00000008u, 0x000044d5u, 0x000044d3u, 0x00070050u, 0x00000009u, 0x000044d6u, 0x000044d5u, 0x000044d5u, + 0x000044d5u, 0x000044d5u, 0x000200f9u, 0x000031f1u, 0x000200f8u, 0x000031f1u, 0x000700f5u, 0x00000009u, + 0x000079aeu, 0x00007952u, 0x000031dbu, 0x000044d6u, 0x000031e2u, 0x000700f5u, 0x00000009u, 0x00007930u, + 0x000078d1u, 0x000031dbu, 0x000044a3u, 0x000031e2u, 0x000300f7u, 0x000031fbu, 0x00000000u, 0x000400fau, + 0x00002f40u, 0x000031f3u, 0x000031fbu, 0x000200f8u, 0x000031f3u, 0x00050050u, 0x0000005fu, 0x000031f6u, + 0x0000774fu, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x000031f7u, 0x000031f6u, 0x00050051u, 0x00000006u, + 0x000044e2u, 0x000031f7u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000044e3u, 0x00002d6bu, 0x000044e2u, + 0x00050080u, 0x00000006u, 0x000044e4u, 0x00002d68u, 0x000044e3u, 0x00050051u, 0x00000006u, 0x000044e6u, + 0x000031f7u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000044e7u, 0x000044e6u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x000044e9u, 0x000044e4u, 0x000044e7u, 0x000500c7u, 0x00000006u, 0x000044ebu, 0x000044e9u, + 0x00000e59u, 0x000400c8u, 0x00000006u, 0x000044eeu, 0x000044e6u, 0x000500c7u, 0x00000006u, 0x000044efu, + 0x000044eeu, 0x0000048au, 0x00050084u, 0x00000006u, 0x000044f0u, 0x000044efu, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x000044f4u, 0x000044e2u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000044f5u, 0x000044f4u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x000044f7u, 0x000044ebu, 0x000044f5u, 0x000500c6u, 0x00000006u, + 0x000044f9u, 0x000044f7u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000044fcu, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x000044f9u, 0x0004003du, 0x0000022eu, 0x000044fdu, 0x000044fcu, 0x00040071u, + 0x00000006u, 0x000044feu, 0x000044fdu, 0x000500c2u, 0x00000006u, 0x00004501u, 0x000044feu, 0x000044f0u, + 0x000500c7u, 0x00000006u, 0x00004502u, 0x00004501u, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00004504u, + 0x00004502u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00004506u, 0x00004502u, 0x00004504u, 0x0004007cu, + 0x00000008u, 0x00004508u, 0x00004506u, 0x00070050u, 0x00000009u, 0x00004509u, 0x00004508u, 0x00004508u, + 0x00004508u, 0x00004508u, 0x000200f9u, 0x000031fbu, 0x000200f8u, 0x000031fbu, 0x000700f5u, 0x00000009u, + 0x00007a2bu, 0x000079cdu, 0x000031f1u, 0x00004509u, 0x000031f3u, 0x000200f9u, 0x0000321du, 0x000200f8u, + 0x000031bau, 0x0004007cu, 0x000000a6u, 0x000031bcu, 0x0000776eu, 0x00050051u, 0x00000006u, 0x0000439cu, + 0x000031bcu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000439du, 0x00002d6bu, 0x0000439cu, 0x00050080u, + 0x00000006u, 0x0000439eu, 0x00002d68u, 0x0000439du, 0x00050051u, 0x00000006u, 0x000043a0u, 0x000031bcu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000043a1u, 0x000043a0u, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x000043a3u, 0x0000439eu, 0x000043a1u, 0x000500c7u, 0x00000006u, 0x000043a5u, 0x000043a3u, 0x00000e59u, + 0x000500c2u, 0x00000006u, 0x000043a7u, 0x000043a5u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000043aau, + 0x0000439cu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000043abu, 0x000043aau, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x000043adu, 0x000043a7u, 0x000043abu, 0x000500c6u, 0x00000006u, 0x000043afu, 0x000043adu, + 0x0000048au, 0x00080041u, 0x00000275u, 0x000043b2u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x000043afu, 0x0004003du, 0x00000230u, 0x000043b3u, 0x000043b2u, 0x00040071u, 0x00000006u, 0x000043b4u, + 0x000043b3u, 0x000500c2u, 0x00000006u, 0x000043b6u, 0x000043b4u, 0x00000263u, 0x0004007cu, 0x00000008u, + 0x000043b7u, 0x000043b6u, 0x000500c7u, 0x00000006u, 0x000043b9u, 0x000043b4u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000043bau, 0x000043b9u, 0x00050050u, 0x0000005fu, 0x000043bbu, 0x000043b7u, 0x000043bau, + 0x0009004fu, 0x00000009u, 0x000043bcu, 0x000043bbu, 0x000043bbu, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000300f7u, 0x000031d0u, 0x00000000u, 0x000400fau, 0x00002249u, 0x000031c1u, 0x000031d0u, + 0x000200f8u, 0x000031c1u, 0x00050050u, 0x0000005fu, 0x000031c4u, 0x0000774fu, 0x00002f34u, 0x0004007cu, + 0x000000a6u, 0x000031c5u, 0x000031c4u, 0x00050051u, 0x00000006u, 0x000043c7u, 0x000031c5u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000043c8u, 0x00002d6bu, 0x000043c7u, 0x00050080u, 0x00000006u, 0x000043c9u, + 0x00002d68u, 0x000043c8u, 0x00050051u, 0x00000006u, 0x000043cbu, 0x000031c5u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x000043ccu, 0x000043cbu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000043ceu, 0x000043c9u, + 0x000043ccu, 0x000500c7u, 0x00000006u, 0x000043d0u, 0x000043ceu, 0x00000e59u, 0x000500c2u, 0x00000006u, + 0x000043d2u, 0x000043d0u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000043d5u, 0x000043c7u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x000043d6u, 0x000043d5u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x000043d8u, + 0x000043d2u, 0x000043d6u, 0x000500c6u, 0x00000006u, 0x000043dau, 0x000043d8u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x000043ddu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x000043dau, 0x0004003du, + 0x00000230u, 0x000043deu, 0x000043ddu, 0x00040071u, 0x00000006u, 0x000043dfu, 0x000043deu, 0x000500c2u, + 0x00000006u, 0x000043e1u, 0x000043dfu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x000043e2u, 0x000043e1u, + 0x000500c7u, 0x00000006u, 0x000043e4u, 0x000043dfu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000043e5u, + 0x000043e4u, 0x00050050u, 0x0000005fu, 0x000043e6u, 0x000043e2u, 0x000043e5u, 0x0009004fu, 0x00000009u, + 0x000043e7u, 0x000043e6u, 0x000043e6u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, + 0x0000005fu, 0x000031cbu, 0x00007747u, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x000031ccu, 0x000031cbu, + 0x00050051u, 0x00000006u, 0x000043f2u, 0x000031ccu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000043f3u, + 0x00002d6bu, 0x000043f2u, 0x00050080u, 0x00000006u, 0x000043f4u, 0x00002d68u, 0x000043f3u, 0x00050051u, + 0x00000006u, 0x000043f6u, 0x000031ccu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000043f7u, 0x000043f6u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x000043f9u, 0x000043f4u, 0x000043f7u, 0x000500c7u, 0x00000006u, + 0x000043fbu, 0x000043f9u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x000043fdu, 0x000043fbu, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00004400u, 0x000043f2u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004401u, + 0x00004400u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004403u, 0x000043fdu, 0x00004401u, 0x000500c6u, + 0x00000006u, 0x00004405u, 0x00004403u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00004408u, 0x00000f3au, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00004405u, 0x0004003du, 0x00000230u, 0x00004409u, 0x00004408u, + 0x00040071u, 0x00000006u, 0x0000440au, 0x00004409u, 0x000500c2u, 0x00000006u, 0x0000440cu, 0x0000440au, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x0000440du, 0x0000440cu, 0x000500c7u, 0x00000006u, 0x0000440fu, + 0x0000440au, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00004410u, 0x0000440fu, 0x00050050u, 0x0000005fu, + 0x00004411u, 0x0000440du, 0x00004410u, 0x0009004fu, 0x00000009u, 0x00004412u, 0x00004411u, 0x00004411u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000031d0u, 0x000200f8u, 0x000031d0u, + 0x000700f5u, 0x00000009u, 0x000079acu, 0x00007952u, 0x000031bau, 0x00004412u, 0x000031c1u, 0x000700f5u, + 0x00000009u, 0x0000792eu, 0x000078d1u, 0x000031bau, 0x000043e7u, 0x000031c1u, 0x000300f7u, 0x000031dau, + 0x00000000u, 0x000400fau, 0x00002f40u, 0x000031d2u, 0x000031dau, 0x000200f8u, 0x000031d2u, 0x00050050u, + 0x0000005fu, 0x000031d5u, 0x0000774fu, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x000031d6u, 0x000031d5u, + 0x00050051u, 0x00000006u, 0x0000441du, 0x000031d6u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000441eu, + 0x00002d6bu, 0x0000441du, 0x00050080u, 0x00000006u, 0x0000441fu, 0x00002d68u, 0x0000441eu, 0x00050051u, + 0x00000006u, 0x00004421u, 0x000031d6u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004422u, 0x00004421u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004424u, 0x0000441fu, 0x00004422u, 0x000500c7u, 0x00000006u, + 0x00004426u, 0x00004424u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00004428u, 0x00004426u, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x0000442bu, 0x0000441du, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000442cu, + 0x0000442bu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x0000442eu, 0x00004428u, 0x0000442cu, 0x000500c6u, + 0x00000006u, 0x00004430u, 0x0000442eu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00004433u, 0x00000f3au, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00004430u, 0x0004003du, 0x00000230u, 0x00004434u, 0x00004433u, + 0x00040071u, 0x00000006u, 0x00004435u, 0x00004434u, 0x000500c2u, 0x00000006u, 0x00004437u, 0x00004435u, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x00004438u, 0x00004437u, 0x000500c7u, 0x00000006u, 0x0000443au, + 0x00004435u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000443bu, 0x0000443au, 0x00050050u, 0x0000005fu, + 0x0000443cu, 0x00004438u, 0x0000443bu, 0x0009004fu, 0x00000009u, 0x0000443du, 0x0000443cu, 0x0000443cu, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000031dau, 0x000200f8u, 0x000031dau, + 0x000700f5u, 0x00000009u, 0x00007a29u, 0x000079cdu, 0x000031d0u, 0x0000443du, 0x000031d2u, 0x000200f9u, + 0x0000321du, 0x000200f8u, 0x0000321du, 0x000900f5u, 0x00000009u, 0x00007a28u, 0x00007a29u, 0x000031dau, + 0x00007a2bu, 0x000031fbu, 0x00007a2du, 0x0000321cu, 0x000900f5u, 0x00000009u, 0x000079aau, 0x000079acu, + 0x000031dau, 0x000079aeu, 0x000031fbu, 0x000079b0u, 0x0000321cu, 0x000900f5u, 0x00000009u, 0x0000792cu, + 0x0000792eu, 0x000031dau, 0x00007930u, 0x000031fbu, 0x00007932u, 0x0000321cu, 0x000900f5u, 0x00000009u, + 0x00007839u, 0x000043bcu, 0x000031dau, 0x00004470u, 0x000031fbu, 0x0000452du, 0x0000321cu, 0x000200f9u, + 0x0000321eu, 0x000200f8u, 0x0000312fu, 0x000300f7u, 0x000031b6u, 0x00000000u, 0x000b00fbu, 0x00002d75u, + 0x000031b6u, 0x00000000u, 0x00003132u, 0x00000001u, 0x00003153u, 0x00000002u, 0x00003174u, 0x00000003u, + 0x00003195u, 0x000200f8u, 0x00003195u, 0x0004007cu, 0x000000a6u, 0x00003197u, 0x0000776eu, 0x00050051u, + 0x00000006u, 0x000042f0u, 0x00003197u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000042f1u, 0x00002d6bu, + 0x000042f0u, 0x00050080u, 0x00000006u, 0x000042f2u, 0x00002d68u, 0x000042f1u, 0x00050051u, 0x00000006u, + 0x000042f4u, 0x00003197u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000042f5u, 0x000042f4u, 0x000003c9u, + 0x00050080u, 0x00000006u, 0x000042f7u, 0x000042f2u, 0x000042f5u, 0x000500c7u, 0x00000006u, 0x000042f9u, + 0x000042f7u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x000042fbu, 0x000042f9u, 0x00000217u, 0x000500c7u, + 0x00000006u, 0x000042feu, 0x000042f0u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000042ffu, 0x000042feu, + 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004301u, 0x000042fbu, 0x000042ffu, 0x000500c6u, 0x00000006u, + 0x00004303u, 0x00004301u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00004306u, 0x00000f3au, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00004303u, 0x0004003du, 0x00000230u, 0x00004307u, 0x00004306u, 0x00040071u, + 0x00000006u, 0x00004308u, 0x00004307u, 0x000500c2u, 0x00000006u, 0x0000430au, 0x00004308u, 0x00000263u, + 0x0004007cu, 0x00000008u, 0x0000430bu, 0x0000430au, 0x000500c7u, 0x00000006u, 0x0000430du, 0x00004308u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000430eu, 0x0000430du, 0x00050050u, 0x0000005fu, 0x0000430fu, + 0x0000430bu, 0x0000430eu, 0x0009004fu, 0x00000009u, 0x00004310u, 0x0000430fu, 0x0000430fu, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x000031abu, 0x00000000u, 0x000400fau, 0x00002249u, + 0x0000319cu, 0x000031abu, 0x000200f8u, 0x0000319cu, 0x00050050u, 0x0000005fu, 0x0000319fu, 0x0000774fu, + 0x00002f34u, 0x0004007cu, 0x000000a6u, 0x000031a0u, 0x0000319fu, 0x00050051u, 0x00000006u, 0x0000431bu, + 0x000031a0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000431cu, 0x00002d6bu, 0x0000431bu, 0x00050080u, + 0x00000006u, 0x0000431du, 0x00002d68u, 0x0000431cu, 0x00050051u, 0x00000006u, 0x0000431fu, 0x000031a0u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00004320u, 0x0000431fu, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00004322u, 0x0000431du, 0x00004320u, 0x000500c7u, 0x00000006u, 0x00004324u, 0x00004322u, 0x00000e59u, + 0x000500c2u, 0x00000006u, 0x00004326u, 0x00004324u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004329u, + 0x0000431bu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000432au, 0x00004329u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x0000432cu, 0x00004326u, 0x0000432au, 0x000500c6u, 0x00000006u, 0x0000432eu, 0x0000432cu, + 0x0000048au, 0x00080041u, 0x00000275u, 0x00004331u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x0000432eu, 0x0004003du, 0x00000230u, 0x00004332u, 0x00004331u, 0x00040071u, 0x00000006u, 0x00004333u, + 0x00004332u, 0x000500c2u, 0x00000006u, 0x00004335u, 0x00004333u, 0x00000263u, 0x0004007cu, 0x00000008u, + 0x00004336u, 0x00004335u, 0x000500c7u, 0x00000006u, 0x00004338u, 0x00004333u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00004339u, 0x00004338u, 0x00050050u, 0x0000005fu, 0x0000433au, 0x00004336u, 0x00004339u, + 0x0009004fu, 0x00000009u, 0x0000433bu, 0x0000433au, 0x0000433au, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x00050050u, 0x0000005fu, 0x000031a6u, 0x00007747u, 0x00002f36u, 0x0004007cu, 0x000000a6u, + 0x000031a7u, 0x000031a6u, 0x00050051u, 0x00000006u, 0x00004346u, 0x000031a7u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004347u, 0x00002d6bu, 0x00004346u, 0x00050080u, 0x00000006u, 0x00004348u, 0x00002d68u, + 0x00004347u, 0x00050051u, 0x00000006u, 0x0000434au, 0x000031a7u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x0000434bu, 0x0000434au, 0x000003c9u, 0x00050080u, 0x00000006u, 0x0000434du, 0x00004348u, 0x0000434bu, + 0x000500c7u, 0x00000006u, 0x0000434fu, 0x0000434du, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00004351u, + 0x0000434fu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004354u, 0x00004346u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00004355u, 0x00004354u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004357u, 0x00004351u, + 0x00004355u, 0x000500c6u, 0x00000006u, 0x00004359u, 0x00004357u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x0000435cu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004359u, 0x0004003du, 0x00000230u, + 0x0000435du, 0x0000435cu, 0x00040071u, 0x00000006u, 0x0000435eu, 0x0000435du, 0x000500c2u, 0x00000006u, + 0x00004360u, 0x0000435eu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00004361u, 0x00004360u, 0x000500c7u, + 0x00000006u, 0x00004363u, 0x0000435eu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00004364u, 0x00004363u, + 0x00050050u, 0x0000005fu, 0x00004365u, 0x00004361u, 0x00004364u, 0x0009004fu, 0x00000009u, 0x00004366u, + 0x00004365u, 0x00004365u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000031abu, + 0x000200f8u, 0x000031abu, 0x000700f5u, 0x00000009u, 0x000079a9u, 0x00007952u, 0x00003195u, 0x00004366u, + 0x0000319cu, 0x000700f5u, 0x00000009u, 0x0000792bu, 0x000078d1u, 0x00003195u, 0x0000433bu, 0x0000319cu, + 0x000300f7u, 0x000031b5u, 0x00000000u, 0x000400fau, 0x00002f40u, 0x000031adu, 0x000031b5u, 0x000200f8u, + 0x000031adu, 0x00050050u, 0x0000005fu, 0x000031b0u, 0x0000774fu, 0x00002f36u, 0x0004007cu, 0x000000a6u, + 0x000031b1u, 0x000031b0u, 0x00050051u, 0x00000006u, 0x00004371u, 0x000031b1u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004372u, 0x00002d6bu, 0x00004371u, 0x00050080u, 0x00000006u, 0x00004373u, 0x00002d68u, + 0x00004372u, 0x00050051u, 0x00000006u, 0x00004375u, 0x000031b1u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00004376u, 0x00004375u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004378u, 0x00004373u, 0x00004376u, + 0x000500c7u, 0x00000006u, 0x0000437au, 0x00004378u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x0000437cu, + 0x0000437au, 0x00000217u, 0x000500c7u, 0x00000006u, 0x0000437fu, 0x00004371u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00004380u, 0x0000437fu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004382u, 0x0000437cu, + 0x00004380u, 0x000500c6u, 0x00000006u, 0x00004384u, 0x00004382u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x00004387u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004384u, 0x0004003du, 0x00000230u, + 0x00004388u, 0x00004387u, 0x00040071u, 0x00000006u, 0x00004389u, 0x00004388u, 0x000500c2u, 0x00000006u, + 0x0000438bu, 0x00004389u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x0000438cu, 0x0000438bu, 0x000500c7u, + 0x00000006u, 0x0000438eu, 0x00004389u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000438fu, 0x0000438eu, + 0x00050050u, 0x0000005fu, 0x00004390u, 0x0000438cu, 0x0000438fu, 0x0009004fu, 0x00000009u, 0x00004391u, + 0x00004390u, 0x00004390u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000031b5u, + 0x000200f8u, 0x000031b5u, 0x000700f5u, 0x00000009u, 0x00007a26u, 0x000079cdu, 0x000031abu, 0x00004391u, + 0x000031adu, 0x000200f9u, 0x000031b6u, 0x000200f8u, 0x00003174u, 0x0004007cu, 0x000000a6u, 0x00003176u, + 0x0000776eu, 0x00050051u, 0x00000006u, 0x00004215u, 0x00003176u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004216u, 0x00002d6bu, 0x00004215u, 0x00050080u, 0x00000006u, 0x00004217u, 0x00002d68u, 0x00004216u, + 0x00050051u, 0x00000006u, 0x00004219u, 0x00003176u, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000421au, + 0x00004219u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x0000421cu, 0x00004217u, 0x0000421au, 0x000500c7u, + 0x00000006u, 0x0000421eu, 0x0000421cu, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00004220u, 0x0000421eu, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004223u, 0x00004215u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00004224u, 0x00004223u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004226u, 0x00004220u, 0x00004224u, + 0x000500c6u, 0x00000006u, 0x00004228u, 0x00004226u, 0x0000048au, 0x00080041u, 0x00000275u, 0x0000422bu, + 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004228u, 0x0004003du, 0x00000230u, 0x0000422cu, + 0x0000422bu, 0x00040071u, 0x00000006u, 0x0000422du, 0x0000422cu, 0x000500c2u, 0x00000006u, 0x00004235u, + 0x0000422du, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00004237u, 0x0000422du, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00004239u, 0x00004235u, 0x0004007cu, 0x00000008u, 0x0000423fu, 0x00004237u, 0x00070050u, + 0x00000009u, 0x00004240u, 0x00004239u, 0x00004239u, 0x00004239u, 0x0000423fu, 0x000300f7u, 0x0000318au, + 0x00000000u, 0x000400fau, 0x00002249u, 0x0000317bu, 0x0000318au, 0x000200f8u, 0x0000317bu, 0x00050050u, + 0x0000005fu, 0x0000317eu, 0x0000774fu, 0x00002f34u, 0x0004007cu, 0x000000a6u, 0x0000317fu, 0x0000317eu, + 0x00050051u, 0x00000006u, 0x0000424cu, 0x0000317fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000424du, + 0x00002d6bu, 0x0000424cu, 0x00050080u, 0x00000006u, 0x0000424eu, 0x00002d68u, 0x0000424du, 0x00050051u, + 0x00000006u, 0x00004250u, 0x0000317fu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004251u, 0x00004250u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004253u, 0x0000424eu, 0x00004251u, 0x000500c7u, 0x00000006u, + 0x00004255u, 0x00004253u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00004257u, 0x00004255u, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x0000425au, 0x0000424cu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000425bu, + 0x0000425au, 0x00000217u, 0x000500c6u, 0x00000006u, 0x0000425du, 0x00004257u, 0x0000425bu, 0x000500c6u, + 0x00000006u, 0x0000425fu, 0x0000425du, 0x0000048au, 0x00080041u, 0x00000275u, 0x00004262u, 0x00000f3au, + 0x00000208u, 0x00002232u, 0x00000208u, 0x0000425fu, 0x0004003du, 0x00000230u, 0x00004263u, 0x00004262u, + 0x00040071u, 0x00000006u, 0x00004264u, 0x00004263u, 0x000500c2u, 0x00000006u, 0x0000426cu, 0x00004264u, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x0000426eu, 0x00004264u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00004270u, 0x0000426cu, 0x0004007cu, 0x00000008u, 0x00004276u, 0x0000426eu, 0x00070050u, 0x00000009u, + 0x00004277u, 0x00004270u, 0x00004270u, 0x00004270u, 0x00004276u, 0x00050050u, 0x0000005fu, 0x00003185u, + 0x00007747u, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x00003186u, 0x00003185u, 0x00050051u, 0x00000006u, + 0x00004283u, 0x00003186u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004284u, 0x00002d6bu, 0x00004283u, + 0x00050080u, 0x00000006u, 0x00004285u, 0x00002d68u, 0x00004284u, 0x00050051u, 0x00000006u, 0x00004287u, + 0x00003186u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004288u, 0x00004287u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x0000428au, 0x00004285u, 0x00004288u, 0x000500c7u, 0x00000006u, 0x0000428cu, 0x0000428au, + 0x00000e59u, 0x000500c2u, 0x00000006u, 0x0000428eu, 0x0000428cu, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x00004291u, 0x00004283u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004292u, 0x00004291u, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x00004294u, 0x0000428eu, 0x00004292u, 0x000500c6u, 0x00000006u, 0x00004296u, + 0x00004294u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00004299u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00004296u, 0x0004003du, 0x00000230u, 0x0000429au, 0x00004299u, 0x00040071u, 0x00000006u, + 0x0000429bu, 0x0000429au, 0x000500c2u, 0x00000006u, 0x000042a3u, 0x0000429bu, 0x00000263u, 0x000500c7u, + 0x00000006u, 0x000042a5u, 0x0000429bu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000042a7u, 0x000042a3u, + 0x0004007cu, 0x00000008u, 0x000042adu, 0x000042a5u, 0x00070050u, 0x00000009u, 0x000042aeu, 0x000042a7u, + 0x000042a7u, 0x000042a7u, 0x000042adu, 0x000200f9u, 0x0000318au, 0x000200f8u, 0x0000318au, 0x000700f5u, + 0x00000009u, 0x000079a7u, 0x00007952u, 0x00003174u, 0x000042aeu, 0x0000317bu, 0x000700f5u, 0x00000009u, + 0x00007929u, 0x000078d1u, 0x00003174u, 0x00004277u, 0x0000317bu, 0x000300f7u, 0x00003194u, 0x00000000u, + 0x000400fau, 0x00002f40u, 0x0000318cu, 0x00003194u, 0x000200f8u, 0x0000318cu, 0x00050050u, 0x0000005fu, + 0x0000318fu, 0x0000774fu, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x00003190u, 0x0000318fu, 0x00050051u, + 0x00000006u, 0x000042bau, 0x00003190u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000042bbu, 0x00002d6bu, + 0x000042bau, 0x00050080u, 0x00000006u, 0x000042bcu, 0x00002d68u, 0x000042bbu, 0x00050051u, 0x00000006u, + 0x000042beu, 0x00003190u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000042bfu, 0x000042beu, 0x000003c9u, + 0x00050080u, 0x00000006u, 0x000042c1u, 0x000042bcu, 0x000042bfu, 0x000500c7u, 0x00000006u, 0x000042c3u, + 0x000042c1u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x000042c5u, 0x000042c3u, 0x00000217u, 0x000500c7u, + 0x00000006u, 0x000042c8u, 0x000042bau, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000042c9u, 0x000042c8u, + 0x00000217u, 0x000500c6u, 0x00000006u, 0x000042cbu, 0x000042c5u, 0x000042c9u, 0x000500c6u, 0x00000006u, + 0x000042cdu, 0x000042cbu, 0x0000048au, 0x00080041u, 0x00000275u, 0x000042d0u, 0x00000f3au, 0x00000208u, + 0x00002232u, 0x00000208u, 0x000042cdu, 0x0004003du, 0x00000230u, 0x000042d1u, 0x000042d0u, 0x00040071u, + 0x00000006u, 0x000042d2u, 0x000042d1u, 0x000500c2u, 0x00000006u, 0x000042dau, 0x000042d2u, 0x00000263u, + 0x000500c7u, 0x00000006u, 0x000042dcu, 0x000042d2u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000042deu, + 0x000042dau, 0x0004007cu, 0x00000008u, 0x000042e4u, 0x000042dcu, 0x00070050u, 0x00000009u, 0x000042e5u, + 0x000042deu, 0x000042deu, 0x000042deu, 0x000042e4u, 0x000200f9u, 0x00003194u, 0x000200f8u, 0x00003194u, + 0x000700f5u, 0x00000009u, 0x00007a24u, 0x000079cdu, 0x0000318au, 0x000042e5u, 0x0000318cu, 0x000200f9u, + 0x000031b6u, 0x000200f8u, 0x00003153u, 0x0004007cu, 0x000000a6u, 0x00003155u, 0x0000776eu, 0x00050051u, + 0x00000006u, 0x00004136u, 0x00003155u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004137u, 0x00002d6bu, + 0x00004136u, 0x00050080u, 0x00000006u, 0x00004138u, 0x00002d68u, 0x00004137u, 0x00050051u, 0x00000006u, + 0x0000413au, 0x00003155u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000413cu, 0x00004138u, 0x0000413au, + 0x000500c7u, 0x00000006u, 0x0000413eu, 0x0000413cu, 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00004142u, + 0x00004136u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004143u, 0x00004142u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x00004145u, 0x0000413eu, 0x00004143u, 0x000500c6u, 0x00000006u, 0x00004147u, 0x00004145u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000414au, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00004147u, 0x0004003du, 0x0000022eu, 0x0000414bu, 0x0000414au, 0x00040071u, 0x00000006u, 0x0000414cu, + 0x0000414bu, 0x000500c2u, 0x00000006u, 0x0000414eu, 0x0000414cu, 0x00000220u, 0x000500c7u, 0x00000006u, + 0x00004150u, 0x0000414cu, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00004152u, 0x00004150u, 0x00000220u, + 0x000500c5u, 0x00000006u, 0x00004154u, 0x00004150u, 0x00004152u, 0x000500c4u, 0x00000006u, 0x00004156u, + 0x0000414eu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00004158u, 0x0000414eu, 0x00004156u, 0x0004007cu, + 0x00000008u, 0x0000415au, 0x00004158u, 0x0004007cu, 0x00000008u, 0x00004160u, 0x00004154u, 0x00070050u, + 0x00000009u, 0x00004161u, 0x0000415au, 0x0000415au, 0x0000415au, 0x00004160u, 0x000300f7u, 0x00003169u, + 0x00000000u, 0x000400fau, 0x00002249u, 0x0000315au, 0x00003169u, 0x000200f8u, 0x0000315au, 0x00050050u, + 0x0000005fu, 0x0000315du, 0x0000774fu, 0x00002f34u, 0x0004007cu, 0x000000a6u, 0x0000315eu, 0x0000315du, + 0x00050051u, 0x00000006u, 0x0000416eu, 0x0000315eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000416fu, + 0x00002d6bu, 0x0000416eu, 0x00050080u, 0x00000006u, 0x00004170u, 0x00002d68u, 0x0000416fu, 0x00050051u, + 0x00000006u, 0x00004172u, 0x0000315eu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004174u, 0x00004170u, + 0x00004172u, 0x000500c7u, 0x00000006u, 0x00004176u, 0x00004174u, 0x00000e59u, 0x000500c7u, 0x00000006u, + 0x0000417au, 0x0000416eu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000417bu, 0x0000417au, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x0000417du, 0x00004176u, 0x0000417bu, 0x000500c6u, 0x00000006u, 0x0000417fu, + 0x0000417du, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00004182u, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x0000417fu, 0x0004003du, 0x0000022eu, 0x00004183u, 0x00004182u, 0x00040071u, 0x00000006u, + 0x00004184u, 0x00004183u, 0x000500c2u, 0x00000006u, 0x00004186u, 0x00004184u, 0x00000220u, 0x000500c7u, + 0x00000006u, 0x00004188u, 0x00004184u, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x0000418au, 0x00004188u, + 0x00000220u, 0x000500c5u, 0x00000006u, 0x0000418cu, 0x00004188u, 0x0000418au, 0x000500c4u, 0x00000006u, + 0x0000418eu, 0x00004186u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00004190u, 0x00004186u, 0x0000418eu, + 0x0004007cu, 0x00000008u, 0x00004192u, 0x00004190u, 0x0004007cu, 0x00000008u, 0x00004198u, 0x0000418cu, + 0x00070050u, 0x00000009u, 0x00004199u, 0x00004192u, 0x00004192u, 0x00004192u, 0x00004198u, 0x00050050u, + 0x0000005fu, 0x00003164u, 0x00007747u, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x00003165u, 0x00003164u, + 0x00050051u, 0x00000006u, 0x000041a6u, 0x00003165u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000041a7u, + 0x00002d6bu, 0x000041a6u, 0x00050080u, 0x00000006u, 0x000041a8u, 0x00002d68u, 0x000041a7u, 0x00050051u, + 0x00000006u, 0x000041aau, 0x00003165u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000041acu, 0x000041a8u, + 0x000041aau, 0x000500c7u, 0x00000006u, 0x000041aeu, 0x000041acu, 0x00000e59u, 0x000500c7u, 0x00000006u, + 0x000041b2u, 0x000041a6u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000041b3u, 0x000041b2u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x000041b5u, 0x000041aeu, 0x000041b3u, 0x000500c6u, 0x00000006u, 0x000041b7u, + 0x000041b5u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000041bau, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x000041b7u, 0x0004003du, 0x0000022eu, 0x000041bbu, 0x000041bau, 0x00040071u, 0x00000006u, + 0x000041bcu, 0x000041bbu, 0x000500c2u, 0x00000006u, 0x000041beu, 0x000041bcu, 0x00000220u, 0x000500c7u, + 0x00000006u, 0x000041c0u, 0x000041bcu, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x000041c2u, 0x000041c0u, + 0x00000220u, 0x000500c5u, 0x00000006u, 0x000041c4u, 0x000041c0u, 0x000041c2u, 0x000500c4u, 0x00000006u, + 0x000041c6u, 0x000041beu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x000041c8u, 0x000041beu, 0x000041c6u, + 0x0004007cu, 0x00000008u, 0x000041cau, 0x000041c8u, 0x0004007cu, 0x00000008u, 0x000041d0u, 0x000041c4u, + 0x00070050u, 0x00000009u, 0x000041d1u, 0x000041cau, 0x000041cau, 0x000041cau, 0x000041d0u, 0x000200f9u, + 0x00003169u, 0x000200f8u, 0x00003169u, 0x000700f5u, 0x00000009u, 0x000079a5u, 0x00007952u, 0x00003153u, + 0x000041d1u, 0x0000315au, 0x000700f5u, 0x00000009u, 0x00007927u, 0x000078d1u, 0x00003153u, 0x00004199u, + 0x0000315au, 0x000300f7u, 0x00003173u, 0x00000000u, 0x000400fau, 0x00002f40u, 0x0000316bu, 0x00003173u, + 0x000200f8u, 0x0000316bu, 0x00050050u, 0x0000005fu, 0x0000316eu, 0x0000774fu, 0x00002f36u, 0x0004007cu, + 0x000000a6u, 0x0000316fu, 0x0000316eu, 0x00050051u, 0x00000006u, 0x000041deu, 0x0000316fu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000041dfu, 0x00002d6bu, 0x000041deu, 0x00050080u, 0x00000006u, 0x000041e0u, + 0x00002d68u, 0x000041dfu, 0x00050051u, 0x00000006u, 0x000041e2u, 0x0000316fu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x000041e4u, 0x000041e0u, 0x000041e2u, 0x000500c7u, 0x00000006u, 0x000041e6u, 0x000041e4u, + 0x00000e59u, 0x000500c7u, 0x00000006u, 0x000041eau, 0x000041deu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x000041ebu, 0x000041eau, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000041edu, 0x000041e6u, 0x000041ebu, + 0x000500c6u, 0x00000006u, 0x000041efu, 0x000041edu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000041f2u, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x000041efu, 0x0004003du, 0x0000022eu, 0x000041f3u, + 0x000041f2u, 0x00040071u, 0x00000006u, 0x000041f4u, 0x000041f3u, 0x000500c2u, 0x00000006u, 0x000041f6u, + 0x000041f4u, 0x00000220u, 0x000500c7u, 0x00000006u, 0x000041f8u, 0x000041f4u, 0x00000e7cu, 0x000500c4u, + 0x00000006u, 0x000041fau, 0x000041f8u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x000041fcu, 0x000041f8u, + 0x000041fau, 0x000500c4u, 0x00000006u, 0x000041feu, 0x000041f6u, 0x00000220u, 0x000500c5u, 0x00000006u, + 0x00004200u, 0x000041f6u, 0x000041feu, 0x0004007cu, 0x00000008u, 0x00004202u, 0x00004200u, 0x0004007cu, + 0x00000008u, 0x00004208u, 0x000041fcu, 0x00070050u, 0x00000009u, 0x00004209u, 0x00004202u, 0x00004202u, + 0x00004202u, 0x00004208u, 0x000200f9u, 0x00003173u, 0x000200f8u, 0x00003173u, 0x000700f5u, 0x00000009u, + 0x00007a22u, 0x000079cdu, 0x00003169u, 0x00004209u, 0x0000316bu, 0x000200f9u, 0x000031b6u, 0x000200f8u, + 0x00003132u, 0x0004007cu, 0x000000a6u, 0x00003134u, 0x0000776eu, 0x00050051u, 0x00000006u, 0x0000402eu, + 0x00003134u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000402fu, 0x00002d6bu, 0x0000402eu, 0x00050080u, + 0x00000006u, 0x00004030u, 0x00002d68u, 0x0000402fu, 0x00050051u, 0x00000006u, 0x00004032u, 0x00003134u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004033u, 0x00004032u, 0x00000217u, 0x00050080u, 0x00000006u, + 0x00004035u, 0x00004030u, 0x00004033u, 0x000500c7u, 0x00000006u, 0x00004037u, 0x00004035u, 0x00000e59u, + 0x000400c8u, 0x00000006u, 0x0000403au, 0x00004032u, 0x000500c7u, 0x00000006u, 0x0000403bu, 0x0000403au, + 0x0000048au, 0x00050084u, 0x00000006u, 0x0000403cu, 0x0000403bu, 0x00000706u, 0x000500c7u, 0x00000006u, + 0x00004040u, 0x0000402eu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004041u, 0x00004040u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00004043u, 0x00004037u, 0x00004041u, 0x000500c6u, 0x00000006u, 0x00004045u, + 0x00004043u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00004048u, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00004045u, 0x0004003du, 0x0000022eu, 0x00004049u, 0x00004048u, 0x00040071u, 0x00000006u, + 0x0000404au, 0x00004049u, 0x000500c2u, 0x00000006u, 0x0000404du, 0x0000404au, 0x0000403cu, 0x000500c7u, + 0x00000006u, 0x0000404eu, 0x0000404du, 0x00000e7cu, 0x000500c7u, 0x00000006u, 0x00004050u, 0x0000404eu, + 0x00000eb3u, 0x000500c4u, 0x00000006u, 0x00004052u, 0x00004050u, 0x00000220u, 0x000500c4u, 0x00000006u, + 0x00004054u, 0x00004050u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00004055u, 0x00004052u, 0x00004054u, + 0x000500c2u, 0x00000006u, 0x00004057u, 0x00004050u, 0x0000021au, 0x000500c5u, 0x00000006u, 0x00004058u, + 0x00004055u, 0x00004057u, 0x0004007cu, 0x00000008u, 0x0000405au, 0x00004058u, 0x000500c7u, 0x00000006u, + 0x00004060u, 0x0000404eu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00004061u, 0x00004060u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00004062u, 0x00004061u, 0x00070050u, 0x00000009u, 0x00004063u, 0x0000405au, + 0x0000405au, 0x0000405au, 0x00004062u, 0x000300f7u, 0x00003148u, 0x00000000u, 0x000400fau, 0x00002249u, + 0x00003139u, 0x00003148u, 0x000200f8u, 0x00003139u, 0x00050050u, 0x0000005fu, 0x0000313cu, 0x0000774fu, + 0x00002f34u, 0x0004007cu, 0x000000a6u, 0x0000313du, 0x0000313cu, 0x00050051u, 0x00000006u, 0x00004070u, + 0x0000313du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004071u, 0x00002d6bu, 0x00004070u, 0x00050080u, + 0x00000006u, 0x00004072u, 0x00002d68u, 0x00004071u, 0x00050051u, 0x00000006u, 0x00004074u, 0x0000313du, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004075u, 0x00004074u, 0x00000217u, 0x00050080u, 0x00000006u, + 0x00004077u, 0x00004072u, 0x00004075u, 0x000500c7u, 0x00000006u, 0x00004079u, 0x00004077u, 0x00000e59u, + 0x000400c8u, 0x00000006u, 0x0000407cu, 0x00004074u, 0x000500c7u, 0x00000006u, 0x0000407du, 0x0000407cu, + 0x0000048au, 0x00050084u, 0x00000006u, 0x0000407eu, 0x0000407du, 0x00000706u, 0x000500c7u, 0x00000006u, + 0x00004082u, 0x00004070u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004083u, 0x00004082u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00004085u, 0x00004079u, 0x00004083u, 0x000500c6u, 0x00000006u, 0x00004087u, + 0x00004085u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000408au, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00004087u, 0x0004003du, 0x0000022eu, 0x0000408bu, 0x0000408au, 0x00040071u, 0x00000006u, + 0x0000408cu, 0x0000408bu, 0x000500c2u, 0x00000006u, 0x0000408fu, 0x0000408cu, 0x0000407eu, 0x000500c7u, + 0x00000006u, 0x00004090u, 0x0000408fu, 0x00000e7cu, 0x000500c7u, 0x00000006u, 0x00004092u, 0x00004090u, + 0x00000eb3u, 0x000500c4u, 0x00000006u, 0x00004094u, 0x00004092u, 0x00000220u, 0x000500c4u, 0x00000006u, + 0x00004096u, 0x00004092u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00004097u, 0x00004094u, 0x00004096u, + 0x000500c2u, 0x00000006u, 0x00004099u, 0x00004092u, 0x0000021au, 0x000500c5u, 0x00000006u, 0x0000409au, + 0x00004097u, 0x00004099u, 0x0004007cu, 0x00000008u, 0x0000409cu, 0x0000409au, 0x000500c7u, 0x00000006u, + 0x000040a2u, 0x00004090u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000040a3u, 0x000040a2u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x000040a4u, 0x000040a3u, 0x00070050u, 0x00000009u, 0x000040a5u, 0x0000409cu, + 0x0000409cu, 0x0000409cu, 0x000040a4u, 0x00050050u, 0x0000005fu, 0x00003143u, 0x00007747u, 0x00002f36u, + 0x0004007cu, 0x000000a6u, 0x00003144u, 0x00003143u, 0x00050051u, 0x00000006u, 0x000040b2u, 0x00003144u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000040b3u, 0x00002d6bu, 0x000040b2u, 0x00050080u, 0x00000006u, + 0x000040b4u, 0x00002d68u, 0x000040b3u, 0x00050051u, 0x00000006u, 0x000040b6u, 0x00003144u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000040b7u, 0x000040b6u, 0x00000217u, 0x00050080u, 0x00000006u, 0x000040b9u, + 0x000040b4u, 0x000040b7u, 0x000500c7u, 0x00000006u, 0x000040bbu, 0x000040b9u, 0x00000e59u, 0x000400c8u, + 0x00000006u, 0x000040beu, 0x000040b6u, 0x000500c7u, 0x00000006u, 0x000040bfu, 0x000040beu, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000040c0u, 0x000040bfu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000040c4u, + 0x000040b2u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000040c5u, 0x000040c4u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000040c7u, 0x000040bbu, 0x000040c5u, 0x000500c6u, 0x00000006u, 0x000040c9u, 0x000040c7u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000040ccu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x000040c9u, 0x0004003du, 0x0000022eu, 0x000040cdu, 0x000040ccu, 0x00040071u, 0x00000006u, 0x000040ceu, + 0x000040cdu, 0x000500c2u, 0x00000006u, 0x000040d1u, 0x000040ceu, 0x000040c0u, 0x000500c7u, 0x00000006u, + 0x000040d2u, 0x000040d1u, 0x00000e7cu, 0x000500c7u, 0x00000006u, 0x000040d4u, 0x000040d2u, 0x00000eb3u, + 0x000500c4u, 0x00000006u, 0x000040d6u, 0x000040d4u, 0x00000220u, 0x000500c4u, 0x00000006u, 0x000040d8u, + 0x000040d4u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x000040d9u, 0x000040d6u, 0x000040d8u, 0x000500c2u, + 0x00000006u, 0x000040dbu, 0x000040d4u, 0x0000021au, 0x000500c5u, 0x00000006u, 0x000040dcu, 0x000040d9u, + 0x000040dbu, 0x0004007cu, 0x00000008u, 0x000040deu, 0x000040dcu, 0x000500c7u, 0x00000006u, 0x000040e4u, + 0x000040d2u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000040e5u, 0x000040e4u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000040e6u, 0x000040e5u, 0x00070050u, 0x00000009u, 0x000040e7u, 0x000040deu, 0x000040deu, + 0x000040deu, 0x000040e6u, 0x000200f9u, 0x00003148u, 0x000200f8u, 0x00003148u, 0x000700f5u, 0x00000009u, + 0x000079a3u, 0x00007952u, 0x00003132u, 0x000040e7u, 0x00003139u, 0x000700f5u, 0x00000009u, 0x00007925u, + 0x000078d1u, 0x00003132u, 0x000040a5u, 0x00003139u, 0x000300f7u, 0x00003152u, 0x00000000u, 0x000400fau, + 0x00002f40u, 0x0000314au, 0x00003152u, 0x000200f8u, 0x0000314au, 0x00050050u, 0x0000005fu, 0x0000314du, + 0x0000774fu, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x0000314eu, 0x0000314du, 0x00050051u, 0x00000006u, + 0x000040f4u, 0x0000314eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000040f5u, 0x00002d6bu, 0x000040f4u, + 0x00050080u, 0x00000006u, 0x000040f6u, 0x00002d68u, 0x000040f5u, 0x00050051u, 0x00000006u, 0x000040f8u, + 0x0000314eu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000040f9u, 0x000040f8u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x000040fbu, 0x000040f6u, 0x000040f9u, 0x000500c7u, 0x00000006u, 0x000040fdu, 0x000040fbu, + 0x00000e59u, 0x000400c8u, 0x00000006u, 0x00004100u, 0x000040f8u, 0x000500c7u, 0x00000006u, 0x00004101u, + 0x00004100u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00004102u, 0x00004101u, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00004106u, 0x000040f4u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004107u, 0x00004106u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004109u, 0x000040fdu, 0x00004107u, 0x000500c6u, 0x00000006u, + 0x0000410bu, 0x00004109u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000410eu, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x0000410bu, 0x0004003du, 0x0000022eu, 0x0000410fu, 0x0000410eu, 0x00040071u, + 0x00000006u, 0x00004110u, 0x0000410fu, 0x000500c2u, 0x00000006u, 0x00004113u, 0x00004110u, 0x00004102u, + 0x000500c7u, 0x00000006u, 0x00004114u, 0x00004113u, 0x00000e7cu, 0x000500c7u, 0x00000006u, 0x00004116u, + 0x00004114u, 0x00000eb3u, 0x000500c4u, 0x00000006u, 0x00004118u, 0x00004116u, 0x00000220u, 0x000500c4u, + 0x00000006u, 0x0000411au, 0x00004116u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x0000411bu, 0x00004118u, + 0x0000411au, 0x000500c2u, 0x00000006u, 0x0000411du, 0x00004116u, 0x0000021au, 0x000500c5u, 0x00000006u, + 0x0000411eu, 0x0000411bu, 0x0000411du, 0x0004007cu, 0x00000008u, 0x00004120u, 0x0000411eu, 0x000500c7u, + 0x00000006u, 0x00004126u, 0x00004114u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00004127u, 0x00004126u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00004128u, 0x00004127u, 0x00070050u, 0x00000009u, 0x00004129u, + 0x00004120u, 0x00004120u, 0x00004120u, 0x00004128u, 0x000200f9u, 0x00003152u, 0x000200f8u, 0x00003152u, + 0x000700f5u, 0x00000009u, 0x00007a20u, 0x000079cdu, 0x00003148u, 0x00004129u, 0x0000314au, 0x000200f9u, + 0x000031b6u, 0x000200f8u, 0x000031b6u, 0x000d00f5u, 0x00000009u, 0x00007a1fu, 0x000079cdu, 0x0000312fu, + 0x00007a20u, 0x00003152u, 0x00007a22u, 0x00003173u, 0x00007a24u, 0x00003194u, 0x00007a26u, 0x000031b5u, + 0x000d00f5u, 0x00000009u, 0x000079a1u, 0x00007952u, 0x0000312fu, 0x000079a3u, 0x00003152u, 0x000079a5u, + 0x00003173u, 0x000079a7u, 0x00003194u, 0x000079a9u, 0x000031b5u, 0x000d00f5u, 0x00000009u, 0x00007923u, + 0x000078d1u, 0x0000312fu, 0x00007925u, 0x00003152u, 0x00007927u, 0x00003173u, 0x00007929u, 0x00003194u, + 0x0000792bu, 0x000031b5u, 0x000d00f5u, 0x00000009u, 0x00007830u, 0x000077dfu, 0x0000312fu, 0x00004063u, + 0x00003152u, 0x00004161u, 0x00003173u, 0x00004240u, 0x00003194u, 0x00004310u, 0x000031b5u, 0x000200f9u, + 0x0000321eu, 0x000200f8u, 0x000030bcu, 0x000300f7u, 0x0000312eu, 0x00000000u, 0x000700fbu, 0x00002d75u, + 0x000030bfu, 0x00000000u, 0x000030e0u, 0x00000001u, 0x0000310du, 0x000200f8u, 0x0000310du, 0x0004007cu, + 0x000000a6u, 0x0000310fu, 0x0000776eu, 0x00050051u, 0x00000006u, 0x00003f9cu, 0x0000310fu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003f9du, 0x00002d6bu, 0x00003f9cu, 0x00050080u, 0x00000006u, 0x00003f9eu, + 0x00002d68u, 0x00003f9du, 0x00050051u, 0x00000006u, 0x00003fa0u, 0x0000310fu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003fa2u, 0x00003f9eu, 0x00003fa0u, 0x000500c7u, 0x00000006u, 0x00003fa4u, 0x00003fa2u, + 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00003fa8u, 0x00003f9cu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00003fa9u, 0x00003fa8u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003fabu, 0x00003fa4u, 0x00003fa9u, + 0x000500c6u, 0x00000006u, 0x00003fadu, 0x00003fabu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003fb0u, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003fadu, 0x0004003du, 0x0000022eu, 0x00003fb1u, + 0x00003fb0u, 0x00040071u, 0x00000006u, 0x00003fb2u, 0x00003fb1u, 0x0004007cu, 0x00000008u, 0x00003fb4u, + 0x00003fb2u, 0x00070050u, 0x00000009u, 0x00003fb5u, 0x00003fb4u, 0x00003fb4u, 0x00003fb4u, 0x00003fb4u, + 0x000300f7u, 0x00003123u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00003114u, 0x00003123u, 0x000200f8u, + 0x00003114u, 0x00050050u, 0x0000005fu, 0x00003117u, 0x0000774fu, 0x00002f34u, 0x0004007cu, 0x000000a6u, + 0x00003118u, 0x00003117u, 0x00050051u, 0x00000006u, 0x00003fc0u, 0x00003118u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003fc1u, 0x00002d6bu, 0x00003fc0u, 0x00050080u, 0x00000006u, 0x00003fc2u, 0x00002d68u, + 0x00003fc1u, 0x00050051u, 0x00000006u, 0x00003fc4u, 0x00003118u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003fc6u, 0x00003fc2u, 0x00003fc4u, 0x000500c7u, 0x00000006u, 0x00003fc8u, 0x00003fc6u, 0x00000e59u, + 0x000500c7u, 0x00000006u, 0x00003fccu, 0x00003fc0u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003fcdu, + 0x00003fccu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003fcfu, 0x00003fc8u, 0x00003fcdu, 0x000500c6u, + 0x00000006u, 0x00003fd1u, 0x00003fcfu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003fd4u, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00003fd1u, 0x0004003du, 0x0000022eu, 0x00003fd5u, 0x00003fd4u, + 0x00040071u, 0x00000006u, 0x00003fd6u, 0x00003fd5u, 0x0004007cu, 0x00000008u, 0x00003fd8u, 0x00003fd6u, + 0x00070050u, 0x00000009u, 0x00003fd9u, 0x00003fd8u, 0x00003fd8u, 0x00003fd8u, 0x00003fd8u, 0x00050050u, + 0x0000005fu, 0x0000311eu, 0x00007747u, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x0000311fu, 0x0000311eu, + 0x00050051u, 0x00000006u, 0x00003fe4u, 0x0000311fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003fe5u, + 0x00002d6bu, 0x00003fe4u, 0x00050080u, 0x00000006u, 0x00003fe6u, 0x00002d68u, 0x00003fe5u, 0x00050051u, + 0x00000006u, 0x00003fe8u, 0x0000311fu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003feau, 0x00003fe6u, + 0x00003fe8u, 0x000500c7u, 0x00000006u, 0x00003fecu, 0x00003feau, 0x00000e59u, 0x000500c7u, 0x00000006u, + 0x00003ff0u, 0x00003fe4u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003ff1u, 0x00003ff0u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00003ff3u, 0x00003fecu, 0x00003ff1u, 0x000500c6u, 0x00000006u, 0x00003ff5u, + 0x00003ff3u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003ff8u, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00003ff5u, 0x0004003du, 0x0000022eu, 0x00003ff9u, 0x00003ff8u, 0x00040071u, 0x00000006u, + 0x00003ffau, 0x00003ff9u, 0x0004007cu, 0x00000008u, 0x00003ffcu, 0x00003ffau, 0x00070050u, 0x00000009u, + 0x00003ffdu, 0x00003ffcu, 0x00003ffcu, 0x00003ffcu, 0x00003ffcu, 0x000200f9u, 0x00003123u, 0x000200f8u, + 0x00003123u, 0x000700f5u, 0x00000009u, 0x000079a0u, 0x00007952u, 0x0000310du, 0x00003ffdu, 0x00003114u, + 0x000700f5u, 0x00000009u, 0x00007922u, 0x000078d1u, 0x0000310du, 0x00003fd9u, 0x00003114u, 0x000300f7u, + 0x0000312du, 0x00000000u, 0x000400fau, 0x00002f40u, 0x00003125u, 0x0000312du, 0x000200f8u, 0x00003125u, + 0x00050050u, 0x0000005fu, 0x00003128u, 0x0000774fu, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x00003129u, + 0x00003128u, 0x00050051u, 0x00000006u, 0x00004008u, 0x00003129u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004009u, 0x00002d6bu, 0x00004008u, 0x00050080u, 0x00000006u, 0x0000400au, 0x00002d68u, 0x00004009u, + 0x00050051u, 0x00000006u, 0x0000400cu, 0x00003129u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000400eu, + 0x0000400au, 0x0000400cu, 0x000500c7u, 0x00000006u, 0x00004010u, 0x0000400eu, 0x00000e59u, 0x000500c7u, + 0x00000006u, 0x00004014u, 0x00004008u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004015u, 0x00004014u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004017u, 0x00004010u, 0x00004015u, 0x000500c6u, 0x00000006u, + 0x00004019u, 0x00004017u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000401cu, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00004019u, 0x0004003du, 0x0000022eu, 0x0000401du, 0x0000401cu, 0x00040071u, + 0x00000006u, 0x0000401eu, 0x0000401du, 0x0004007cu, 0x00000008u, 0x00004020u, 0x0000401eu, 0x00070050u, + 0x00000009u, 0x00004021u, 0x00004020u, 0x00004020u, 0x00004020u, 0x00004020u, 0x000200f9u, 0x0000312du, + 0x000200f8u, 0x0000312du, 0x000700f5u, 0x00000009u, 0x00007a1du, 0x000079cdu, 0x00003123u, 0x00004021u, + 0x00003125u, 0x000200f9u, 0x0000312eu, 0x000200f8u, 0x000030e0u, 0x0004007cu, 0x000000a6u, 0x000030e2u, + 0x0000776eu, 0x0004007cu, 0x00000006u, 0x000030e5u, 0x00002d7au, 0x00050051u, 0x00000006u, 0x00003ed1u, + 0x000030e2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003ed2u, 0x00002d6bu, 0x00003ed1u, 0x00050080u, + 0x00000006u, 0x00003ed3u, 0x00002d68u, 0x00003ed2u, 0x00050051u, 0x00000006u, 0x00003ed5u, 0x000030e2u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003ed6u, 0x00003ed5u, 0x00000217u, 0x00050080u, 0x00000006u, + 0x00003ed8u, 0x00003ed3u, 0x00003ed6u, 0x000500c7u, 0x00000006u, 0x00003edau, 0x00003ed8u, 0x00000e59u, + 0x000400c8u, 0x00000006u, 0x00003eddu, 0x00003ed5u, 0x000500c7u, 0x00000006u, 0x00003edeu, 0x00003eddu, + 0x0000048au, 0x00050084u, 0x00000006u, 0x00003edfu, 0x00003edeu, 0x00000706u, 0x000500c7u, 0x00000006u, + 0x00003ee3u, 0x00003ed1u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003ee4u, 0x00003ee3u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00003ee6u, 0x00003edau, 0x00003ee4u, 0x000500c6u, 0x00000006u, 0x00003ee8u, + 0x00003ee6u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003eebu, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00003ee8u, 0x0004003du, 0x0000022eu, 0x00003eecu, 0x00003eebu, 0x00040071u, 0x00000006u, + 0x00003eedu, 0x00003eecu, 0x000500c2u, 0x00000006u, 0x00003ef0u, 0x00003eedu, 0x00003edfu, 0x000500c7u, + 0x00000006u, 0x00003ef1u, 0x00003ef0u, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00003ef3u, 0x000030e5u, + 0x00000220u, 0x000500c5u, 0x00000006u, 0x00003ef5u, 0x00003ef1u, 0x00003ef3u, 0x0004007cu, 0x00000008u, + 0x00003ef7u, 0x00003ef5u, 0x00070050u, 0x00000009u, 0x00003ef8u, 0x00003ef7u, 0x00003ef7u, 0x00003ef7u, + 0x00003ef7u, 0x000300f7u, 0x000030ffu, 0x00000000u, 0x000400fau, 0x00002249u, 0x000030eau, 0x000030ffu, + 0x000200f8u, 0x000030eau, 0x00050050u, 0x0000005fu, 0x000030edu, 0x0000774fu, 0x00002f34u, 0x0004007cu, + 0x000000a6u, 0x000030eeu, 0x000030edu, 0x00050051u, 0x00000006u, 0x00003f04u, 0x000030eeu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003f05u, 0x00002d6bu, 0x00003f04u, 0x00050080u, 0x00000006u, 0x00003f06u, + 0x00002d68u, 0x00003f05u, 0x00050051u, 0x00000006u, 0x00003f08u, 0x000030eeu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003f09u, 0x00003f08u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00003f0bu, 0x00003f06u, + 0x00003f09u, 0x000500c7u, 0x00000006u, 0x00003f0du, 0x00003f0bu, 0x00000e59u, 0x000400c8u, 0x00000006u, + 0x00003f10u, 0x00003f08u, 0x000500c7u, 0x00000006u, 0x00003f11u, 0x00003f10u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003f12u, 0x00003f11u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003f16u, 0x00003f04u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003f17u, 0x00003f16u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003f19u, 0x00003f0du, 0x00003f17u, 0x000500c6u, 0x00000006u, 0x00003f1bu, 0x00003f19u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00003f1eu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003f1bu, + 0x0004003du, 0x0000022eu, 0x00003f1fu, 0x00003f1eu, 0x00040071u, 0x00000006u, 0x00003f20u, 0x00003f1fu, + 0x000500c2u, 0x00000006u, 0x00003f23u, 0x00003f20u, 0x00003f12u, 0x000500c7u, 0x00000006u, 0x00003f24u, + 0x00003f23u, 0x00000e7cu, 0x000500c5u, 0x00000006u, 0x00003f28u, 0x00003f24u, 0x00003ef3u, 0x0004007cu, + 0x00000008u, 0x00003f2au, 0x00003f28u, 0x00070050u, 0x00000009u, 0x00003f2bu, 0x00003f2au, 0x00003f2au, + 0x00003f2au, 0x00003f2au, 0x00050050u, 0x0000005fu, 0x000030f7u, 0x00007747u, 0x00002f36u, 0x0004007cu, + 0x000000a6u, 0x000030f8u, 0x000030f7u, 0x00050051u, 0x00000006u, 0x00003f37u, 0x000030f8u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003f38u, 0x00002d6bu, 0x00003f37u, 0x00050080u, 0x00000006u, 0x00003f39u, + 0x00002d68u, 0x00003f38u, 0x00050051u, 0x00000006u, 0x00003f3bu, 0x000030f8u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003f3cu, 0x00003f3bu, 0x00000217u, 0x00050080u, 0x00000006u, 0x00003f3eu, 0x00003f39u, + 0x00003f3cu, 0x000500c7u, 0x00000006u, 0x00003f40u, 0x00003f3eu, 0x00000e59u, 0x000400c8u, 0x00000006u, + 0x00003f43u, 0x00003f3bu, 0x000500c7u, 0x00000006u, 0x00003f44u, 0x00003f43u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003f45u, 0x00003f44u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003f49u, 0x00003f37u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003f4au, 0x00003f49u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003f4cu, 0x00003f40u, 0x00003f4au, 0x000500c6u, 0x00000006u, 0x00003f4eu, 0x00003f4cu, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00003f51u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003f4eu, + 0x0004003du, 0x0000022eu, 0x00003f52u, 0x00003f51u, 0x00040071u, 0x00000006u, 0x00003f53u, 0x00003f52u, + 0x000500c2u, 0x00000006u, 0x00003f56u, 0x00003f53u, 0x00003f45u, 0x000500c7u, 0x00000006u, 0x00003f57u, + 0x00003f56u, 0x00000e7cu, 0x000500c5u, 0x00000006u, 0x00003f5bu, 0x00003f57u, 0x00003ef3u, 0x0004007cu, + 0x00000008u, 0x00003f5du, 0x00003f5bu, 0x00070050u, 0x00000009u, 0x00003f5eu, 0x00003f5du, 0x00003f5du, + 0x00003f5du, 0x00003f5du, 0x000200f9u, 0x000030ffu, 0x000200f8u, 0x000030ffu, 0x000700f5u, 0x00000009u, + 0x0000799eu, 0x00007952u, 0x000030e0u, 0x00003f5eu, 0x000030eau, 0x000700f5u, 0x00000009u, 0x00007920u, + 0x000078d1u, 0x000030e0u, 0x00003f2bu, 0x000030eau, 0x000300f7u, 0x0000310cu, 0x00000000u, 0x000400fau, + 0x00002f40u, 0x00003101u, 0x0000310cu, 0x000200f8u, 0x00003101u, 0x00050050u, 0x0000005fu, 0x00003104u, + 0x0000774fu, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x00003105u, 0x00003104u, 0x00050051u, 0x00000006u, + 0x00003f6au, 0x00003105u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003f6bu, 0x00002d6bu, 0x00003f6au, + 0x00050080u, 0x00000006u, 0x00003f6cu, 0x00002d68u, 0x00003f6bu, 0x00050051u, 0x00000006u, 0x00003f6eu, + 0x00003105u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003f6fu, 0x00003f6eu, 0x00000217u, 0x00050080u, + 0x00000006u, 0x00003f71u, 0x00003f6cu, 0x00003f6fu, 0x000500c7u, 0x00000006u, 0x00003f73u, 0x00003f71u, + 0x00000e59u, 0x000400c8u, 0x00000006u, 0x00003f76u, 0x00003f6eu, 0x000500c7u, 0x00000006u, 0x00003f77u, + 0x00003f76u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003f78u, 0x00003f77u, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00003f7cu, 0x00003f6au, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003f7du, 0x00003f7cu, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003f7fu, 0x00003f73u, 0x00003f7du, 0x000500c6u, 0x00000006u, + 0x00003f81u, 0x00003f7fu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003f84u, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00003f81u, 0x0004003du, 0x0000022eu, 0x00003f85u, 0x00003f84u, 0x00040071u, + 0x00000006u, 0x00003f86u, 0x00003f85u, 0x000500c2u, 0x00000006u, 0x00003f89u, 0x00003f86u, 0x00003f78u, + 0x000500c7u, 0x00000006u, 0x00003f8au, 0x00003f89u, 0x00000e7cu, 0x000500c5u, 0x00000006u, 0x00003f8eu, + 0x00003f8au, 0x00003ef3u, 0x0004007cu, 0x00000008u, 0x00003f90u, 0x00003f8eu, 0x00070050u, 0x00000009u, + 0x00003f91u, 0x00003f90u, 0x00003f90u, 0x00003f90u, 0x00003f90u, 0x000200f9u, 0x0000310cu, 0x000200f8u, + 0x0000310cu, 0x000700f5u, 0x00000009u, 0x00007a1bu, 0x000079cdu, 0x000030ffu, 0x00003f91u, 0x00003101u, + 0x000200f9u, 0x0000312eu, 0x000200f8u, 0x000030bfu, 0x0004007cu, 0x000000a6u, 0x000030c1u, 0x0000776eu, + 0x00050051u, 0x00000006u, 0x00003e24u, 0x000030c1u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003e25u, + 0x00002d6bu, 0x00003e24u, 0x00050080u, 0x00000006u, 0x00003e26u, 0x00002d68u, 0x00003e25u, 0x00050051u, + 0x00000006u, 0x00003e28u, 0x000030c1u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003e29u, 0x00003e28u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003e2bu, 0x00003e26u, 0x00003e29u, 0x000500c7u, 0x00000006u, + 0x00003e2du, 0x00003e2bu, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00003e2fu, 0x00003e2du, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00003e32u, 0x00003e24u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003e33u, + 0x00003e32u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003e35u, 0x00003e2fu, 0x00003e33u, 0x000500c6u, + 0x00000006u, 0x00003e37u, 0x00003e35u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00003e3au, 0x00000f3au, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00003e37u, 0x0004003du, 0x00000230u, 0x00003e3bu, 0x00003e3au, + 0x00040071u, 0x00000006u, 0x00003e3cu, 0x00003e3bu, 0x000500c2u, 0x00000006u, 0x00003e3eu, 0x00003e3cu, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003e3fu, 0x00003e3eu, 0x000500c7u, 0x00000006u, 0x00003e41u, + 0x00003e3cu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003e42u, 0x00003e41u, 0x00050050u, 0x0000005fu, + 0x00003e43u, 0x00003e3fu, 0x00003e42u, 0x0009004fu, 0x00000009u, 0x00003e44u, 0x00003e43u, 0x00003e43u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x000030d5u, 0x00000000u, 0x000400fau, + 0x00002249u, 0x000030c6u, 0x000030d5u, 0x000200f8u, 0x000030c6u, 0x00050050u, 0x0000005fu, 0x000030c9u, + 0x0000774fu, 0x00002f34u, 0x0004007cu, 0x000000a6u, 0x000030cau, 0x000030c9u, 0x00050051u, 0x00000006u, + 0x00003e4fu, 0x000030cau, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003e50u, 0x00002d6bu, 0x00003e4fu, + 0x00050080u, 0x00000006u, 0x00003e51u, 0x00002d68u, 0x00003e50u, 0x00050051u, 0x00000006u, 0x00003e53u, + 0x000030cau, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003e54u, 0x00003e53u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00003e56u, 0x00003e51u, 0x00003e54u, 0x000500c7u, 0x00000006u, 0x00003e58u, 0x00003e56u, + 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00003e5au, 0x00003e58u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x00003e5du, 0x00003e4fu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003e5eu, 0x00003e5du, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x00003e60u, 0x00003e5au, 0x00003e5eu, 0x000500c6u, 0x00000006u, 0x00003e62u, + 0x00003e60u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00003e65u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00003e62u, 0x0004003du, 0x00000230u, 0x00003e66u, 0x00003e65u, 0x00040071u, 0x00000006u, + 0x00003e67u, 0x00003e66u, 0x000500c2u, 0x00000006u, 0x00003e69u, 0x00003e67u, 0x00000263u, 0x0004007cu, + 0x00000008u, 0x00003e6au, 0x00003e69u, 0x000500c7u, 0x00000006u, 0x00003e6cu, 0x00003e67u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00003e6du, 0x00003e6cu, 0x00050050u, 0x0000005fu, 0x00003e6eu, 0x00003e6au, + 0x00003e6du, 0x0009004fu, 0x00000009u, 0x00003e6fu, 0x00003e6eu, 0x00003e6eu, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x000030d0u, 0x00007747u, 0x00002f36u, 0x0004007cu, + 0x000000a6u, 0x000030d1u, 0x000030d0u, 0x00050051u, 0x00000006u, 0x00003e7au, 0x000030d1u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003e7bu, 0x00002d6bu, 0x00003e7au, 0x00050080u, 0x00000006u, 0x00003e7cu, + 0x00002d68u, 0x00003e7bu, 0x00050051u, 0x00000006u, 0x00003e7eu, 0x000030d1u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003e7fu, 0x00003e7eu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003e81u, 0x00003e7cu, + 0x00003e7fu, 0x000500c7u, 0x00000006u, 0x00003e83u, 0x00003e81u, 0x00000e59u, 0x000500c2u, 0x00000006u, + 0x00003e85u, 0x00003e83u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003e88u, 0x00003e7au, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00003e89u, 0x00003e88u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003e8bu, + 0x00003e85u, 0x00003e89u, 0x000500c6u, 0x00000006u, 0x00003e8du, 0x00003e8bu, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00003e90u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003e8du, 0x0004003du, + 0x00000230u, 0x00003e91u, 0x00003e90u, 0x00040071u, 0x00000006u, 0x00003e92u, 0x00003e91u, 0x000500c2u, + 0x00000006u, 0x00003e94u, 0x00003e92u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003e95u, 0x00003e94u, + 0x000500c7u, 0x00000006u, 0x00003e97u, 0x00003e92u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003e98u, + 0x00003e97u, 0x00050050u, 0x0000005fu, 0x00003e99u, 0x00003e95u, 0x00003e98u, 0x0009004fu, 0x00000009u, + 0x00003e9au, 0x00003e99u, 0x00003e99u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x000030d5u, 0x000200f8u, 0x000030d5u, 0x000700f5u, 0x00000009u, 0x0000799cu, 0x00007952u, 0x000030bfu, + 0x00003e9au, 0x000030c6u, 0x000700f5u, 0x00000009u, 0x0000791eu, 0x000078d1u, 0x000030bfu, 0x00003e6fu, + 0x000030c6u, 0x000300f7u, 0x000030dfu, 0x00000000u, 0x000400fau, 0x00002f40u, 0x000030d7u, 0x000030dfu, + 0x000200f8u, 0x000030d7u, 0x00050050u, 0x0000005fu, 0x000030dau, 0x0000774fu, 0x00002f36u, 0x0004007cu, + 0x000000a6u, 0x000030dbu, 0x000030dau, 0x00050051u, 0x00000006u, 0x00003ea5u, 0x000030dbu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003ea6u, 0x00002d6bu, 0x00003ea5u, 0x00050080u, 0x00000006u, 0x00003ea7u, + 0x00002d68u, 0x00003ea6u, 0x00050051u, 0x00000006u, 0x00003ea9u, 0x000030dbu, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003eaau, 0x00003ea9u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003eacu, 0x00003ea7u, + 0x00003eaau, 0x000500c7u, 0x00000006u, 0x00003eaeu, 0x00003eacu, 0x00000e59u, 0x000500c2u, 0x00000006u, + 0x00003eb0u, 0x00003eaeu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003eb3u, 0x00003ea5u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00003eb4u, 0x00003eb3u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003eb6u, + 0x00003eb0u, 0x00003eb4u, 0x000500c6u, 0x00000006u, 0x00003eb8u, 0x00003eb6u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00003ebbu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003eb8u, 0x0004003du, + 0x00000230u, 0x00003ebcu, 0x00003ebbu, 0x00040071u, 0x00000006u, 0x00003ebdu, 0x00003ebcu, 0x000500c2u, + 0x00000006u, 0x00003ebfu, 0x00003ebdu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003ec0u, 0x00003ebfu, + 0x000500c7u, 0x00000006u, 0x00003ec2u, 0x00003ebdu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003ec3u, + 0x00003ec2u, 0x00050050u, 0x0000005fu, 0x00003ec4u, 0x00003ec0u, 0x00003ec3u, 0x0009004fu, 0x00000009u, + 0x00003ec5u, 0x00003ec4u, 0x00003ec4u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x000030dfu, 0x000200f8u, 0x000030dfu, 0x000700f5u, 0x00000009u, 0x00007a19u, 0x000079cdu, 0x000030d5u, + 0x00003ec5u, 0x000030d7u, 0x000200f9u, 0x0000312eu, 0x000200f8u, 0x0000312eu, 0x000900f5u, 0x00000009u, + 0x00007a18u, 0x00007a19u, 0x000030dfu, 0x00007a1bu, 0x0000310cu, 0x00007a1du, 0x0000312du, 0x000900f5u, + 0x00000009u, 0x0000799au, 0x0000799cu, 0x000030dfu, 0x0000799eu, 0x0000310cu, 0x000079a0u, 0x0000312du, + 0x000900f5u, 0x00000009u, 0x0000791cu, 0x0000791eu, 0x000030dfu, 0x00007920u, 0x0000310cu, 0x00007922u, + 0x0000312du, 0x000900f5u, 0x00000009u, 0x00007829u, 0x00003e44u, 0x000030dfu, 0x00003ef8u, 0x0000310cu, + 0x00003fb5u, 0x0000312du, 0x000200f9u, 0x0000321eu, 0x000200f8u, 0x0000308eu, 0x000500c3u, 0x00000008u, + 0x00003090u, 0x00007747u, 0x00000217u, 0x0004007cu, 0x00000006u, 0x00003091u, 0x00003090u, 0x00050082u, + 0x00000008u, 0x00003095u, 0x0000774fu, 0x00007747u, 0x00050080u, 0x00000008u, 0x00003096u, 0x0000774fu, + 0x00003095u, 0x000500c3u, 0x00000008u, 0x00003097u, 0x00003096u, 0x00000217u, 0x0004007cu, 0x00000006u, + 0x00003098u, 0x00003097u, 0x00050050u, 0x0000005fu, 0x0000309bu, 0x00007747u, 0x00002f34u, 0x0004007cu, + 0x000000a6u, 0x0000309cu, 0x0000309bu, 0x00050051u, 0x00000006u, 0x00003cfau, 0x0000309cu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003cfbu, 0x00002d6bu, 0x00003cfau, 0x00050080u, 0x00000006u, 0x00003cfcu, + 0x00002d68u, 0x00003cfbu, 0x00050051u, 0x00000006u, 0x00003cffu, 0x0000309cu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003d00u, 0x00003cfcu, 0x00003cffu, 0x000500c7u, 0x00000006u, 0x00003d02u, 0x00003d00u, + 0x00000f0bu, 0x00050084u, 0x00000006u, 0x00003d05u, 0x00003091u, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00003d06u, 0x00003cfcu, 0x00003d05u, 0x000500c7u, 0x00000006u, 0x00003d08u, 0x00003d06u, 0x00000f0bu, + 0x000500c7u, 0x00000006u, 0x00003d0cu, 0x00003cfau, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003d0du, + 0x00003d0cu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003d0fu, 0x00003d02u, 0x00003d0du, 0x000500c6u, + 0x00000006u, 0x00003d11u, 0x00003d0fu, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00003d13u, 0x00003d08u, + 0x00000217u, 0x000500c4u, 0x00000006u, 0x00003d17u, 0x00003d0cu, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00003d19u, 0x00003d13u, 0x00003d17u, 0x000500c6u, 0x00000006u, 0x00003d1bu, 0x00003d19u, 0x0000048au, + 0x000500c5u, 0x00000006u, 0x00003d1eu, 0x00003d11u, 0x00000f34u, 0x00080041u, 0x0000027cu, 0x00003d1fu, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003d1eu, 0x0004003du, 0x0000022eu, 0x00003d20u, + 0x00003d1fu, 0x00040071u, 0x00000006u, 0x00003d21u, 0x00003d20u, 0x0004007cu, 0x00000008u, 0x00003d22u, + 0x00003d21u, 0x00080041u, 0x00000275u, 0x00003d25u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00003d1bu, 0x0004003du, 0x00000230u, 0x00003d26u, 0x00003d25u, 0x00040071u, 0x00000006u, 0x00003d27u, + 0x00003d26u, 0x0004007cu, 0x00000008u, 0x00003d28u, 0x00003d27u, 0x000500c3u, 0x00000008u, 0x00003d2au, + 0x00003d28u, 0x00000263u, 0x000500c7u, 0x00000008u, 0x00003d2bu, 0x00003d2au, 0x00000390u, 0x000500c3u, + 0x00000008u, 0x00003d2du, 0x00003d28u, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00003d2eu, 0x00003d2du, + 0x00000390u, 0x00050082u, 0x00000008u, 0x00003d30u, 0x00003d2bu, 0x00000628u, 0x00050082u, 0x00000008u, + 0x00003d32u, 0x00003d2eu, 0x00000628u, 0x00070050u, 0x00000009u, 0x00003d35u, 0x00003d30u, 0x00003d32u, + 0x00003d22u, 0x00003d22u, 0x000300f7u, 0x000030bbu, 0x00000000u, 0x000400fau, 0x00002249u, 0x000030a2u, + 0x000030bbu, 0x000200f8u, 0x000030a2u, 0x00050050u, 0x0000005fu, 0x000030a5u, 0x0000774fu, 0x00002f34u, + 0x0004007cu, 0x000000a6u, 0x000030a6u, 0x000030a5u, 0x00050051u, 0x00000006u, 0x00003d46u, 0x000030a6u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d47u, 0x00002d6bu, 0x00003d46u, 0x00050080u, 0x00000006u, + 0x00003d48u, 0x00002d68u, 0x00003d47u, 0x00050051u, 0x00000006u, 0x00003d4bu, 0x000030a6u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00003d4cu, 0x00003d48u, 0x00003d4bu, 0x000500c7u, 0x00000006u, 0x00003d4eu, + 0x00003d4cu, 0x00000f0bu, 0x00050084u, 0x00000006u, 0x00003d51u, 0x00003098u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00003d52u, 0x00003d48u, 0x00003d51u, 0x000500c7u, 0x00000006u, 0x00003d54u, 0x00003d52u, + 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x00003d58u, 0x00003d46u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00003d59u, 0x00003d58u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003d5bu, 0x00003d4eu, 0x00003d59u, + 0x000500c6u, 0x00000006u, 0x00003d5du, 0x00003d5bu, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00003d5fu, + 0x00003d54u, 0x00000217u, 0x000500c4u, 0x00000006u, 0x00003d63u, 0x00003d58u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00003d65u, 0x00003d5fu, 0x00003d63u, 0x000500c6u, 0x00000006u, 0x00003d67u, 0x00003d65u, + 0x0000048au, 0x000500c5u, 0x00000006u, 0x00003d6au, 0x00003d5du, 0x00000f34u, 0x00080041u, 0x0000027cu, + 0x00003d6bu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003d6au, 0x0004003du, 0x0000022eu, + 0x00003d6cu, 0x00003d6bu, 0x00040071u, 0x00000006u, 0x00003d6du, 0x00003d6cu, 0x0004007cu, 0x00000008u, + 0x00003d6eu, 0x00003d6du, 0x00080041u, 0x00000275u, 0x00003d71u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00003d67u, 0x0004003du, 0x00000230u, 0x00003d72u, 0x00003d71u, 0x00040071u, 0x00000006u, + 0x00003d73u, 0x00003d72u, 0x0004007cu, 0x00000008u, 0x00003d74u, 0x00003d73u, 0x000500c3u, 0x00000008u, + 0x00003d76u, 0x00003d74u, 0x00000263u, 0x000500c7u, 0x00000008u, 0x00003d77u, 0x00003d76u, 0x00000390u, + 0x000500c3u, 0x00000008u, 0x00003d79u, 0x00003d74u, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00003d7au, + 0x00003d79u, 0x00000390u, 0x00050082u, 0x00000008u, 0x00003d7cu, 0x00003d77u, 0x00000628u, 0x00050082u, + 0x00000008u, 0x00003d7eu, 0x00003d7au, 0x00000628u, 0x00070050u, 0x00000009u, 0x00003d81u, 0x00003d7cu, + 0x00003d7eu, 0x00003d6eu, 0x00003d6eu, 0x00050050u, 0x0000005fu, 0x000030adu, 0x00007747u, 0x00002f36u, + 0x0004007cu, 0x000000a6u, 0x000030aeu, 0x000030adu, 0x00050051u, 0x00000006u, 0x00003d92u, 0x000030aeu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d93u, 0x00002d6bu, 0x00003d92u, 0x00050080u, 0x00000006u, + 0x00003d94u, 0x00002d68u, 0x00003d93u, 0x00050051u, 0x00000006u, 0x00003d97u, 0x000030aeu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00003d98u, 0x00003d94u, 0x00003d97u, 0x000500c7u, 0x00000006u, 0x00003d9au, + 0x00003d98u, 0x00000f0bu, 0x00050080u, 0x00000006u, 0x00003d9eu, 0x00003d94u, 0x00003d05u, 0x000500c7u, + 0x00000006u, 0x00003da0u, 0x00003d9eu, 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x00003da4u, 0x00003d92u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003da5u, 0x00003da4u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003da7u, 0x00003d9au, 0x00003da5u, 0x000500c6u, 0x00000006u, 0x00003da9u, 0x00003da7u, 0x00000490u, + 0x000500c2u, 0x00000006u, 0x00003dabu, 0x00003da0u, 0x00000217u, 0x000500c4u, 0x00000006u, 0x00003dafu, + 0x00003da4u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003db1u, 0x00003dabu, 0x00003dafu, 0x000500c6u, + 0x00000006u, 0x00003db3u, 0x00003db1u, 0x0000048au, 0x000500c5u, 0x00000006u, 0x00003db6u, 0x00003da9u, + 0x00000f34u, 0x00080041u, 0x0000027cu, 0x00003db7u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00003db6u, 0x0004003du, 0x0000022eu, 0x00003db8u, 0x00003db7u, 0x00040071u, 0x00000006u, 0x00003db9u, + 0x00003db8u, 0x0004007cu, 0x00000008u, 0x00003dbau, 0x00003db9u, 0x00080041u, 0x00000275u, 0x00003dbdu, + 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003db3u, 0x0004003du, 0x00000230u, 0x00003dbeu, + 0x00003dbdu, 0x00040071u, 0x00000006u, 0x00003dbfu, 0x00003dbeu, 0x0004007cu, 0x00000008u, 0x00003dc0u, + 0x00003dbfu, 0x000500c3u, 0x00000008u, 0x00003dc2u, 0x00003dc0u, 0x00000263u, 0x000500c7u, 0x00000008u, + 0x00003dc3u, 0x00003dc2u, 0x00000390u, 0x000500c3u, 0x00000008u, 0x00003dc5u, 0x00003dc0u, 0x00000208u, + 0x000500c7u, 0x00000008u, 0x00003dc6u, 0x00003dc5u, 0x00000390u, 0x00050082u, 0x00000008u, 0x00003dc8u, + 0x00003dc3u, 0x00000628u, 0x00050082u, 0x00000008u, 0x00003dcau, 0x00003dc6u, 0x00000628u, 0x00070050u, + 0x00000009u, 0x00003dcdu, 0x00003dc8u, 0x00003dcau, 0x00003dbau, 0x00003dbau, 0x00050050u, 0x0000005fu, + 0x000030b5u, 0x0000774fu, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x000030b6u, 0x000030b5u, 0x00050051u, + 0x00000006u, 0x00003ddeu, 0x000030b6u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003ddfu, 0x00002d6bu, + 0x00003ddeu, 0x00050080u, 0x00000006u, 0x00003de0u, 0x00002d68u, 0x00003ddfu, 0x00050051u, 0x00000006u, + 0x00003de3u, 0x000030b6u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003de4u, 0x00003de0u, 0x00003de3u, + 0x000500c7u, 0x00000006u, 0x00003de6u, 0x00003de4u, 0x00000f0bu, 0x00050080u, 0x00000006u, 0x00003deau, + 0x00003de0u, 0x00003d51u, 0x000500c7u, 0x00000006u, 0x00003decu, 0x00003deau, 0x00000f0bu, 0x000500c7u, + 0x00000006u, 0x00003df0u, 0x00003ddeu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003df1u, 0x00003df0u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003df3u, 0x00003de6u, 0x00003df1u, 0x000500c6u, 0x00000006u, + 0x00003df5u, 0x00003df3u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00003df7u, 0x00003decu, 0x00000217u, + 0x000500c4u, 0x00000006u, 0x00003dfbu, 0x00003df0u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003dfdu, + 0x00003df7u, 0x00003dfbu, 0x000500c6u, 0x00000006u, 0x00003dffu, 0x00003dfdu, 0x0000048au, 0x000500c5u, + 0x00000006u, 0x00003e02u, 0x00003df5u, 0x00000f34u, 0x00080041u, 0x0000027cu, 0x00003e03u, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00003e02u, 0x0004003du, 0x0000022eu, 0x00003e04u, 0x00003e03u, + 0x00040071u, 0x00000006u, 0x00003e05u, 0x00003e04u, 0x0004007cu, 0x00000008u, 0x00003e06u, 0x00003e05u, + 0x00080041u, 0x00000275u, 0x00003e09u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003dffu, + 0x0004003du, 0x00000230u, 0x00003e0au, 0x00003e09u, 0x00040071u, 0x00000006u, 0x00003e0bu, 0x00003e0au, + 0x0004007cu, 0x00000008u, 0x00003e0cu, 0x00003e0bu, 0x000500c3u, 0x00000008u, 0x00003e0eu, 0x00003e0cu, + 0x00000263u, 0x000500c7u, 0x00000008u, 0x00003e0fu, 0x00003e0eu, 0x00000390u, 0x000500c3u, 0x00000008u, + 0x00003e11u, 0x00003e0cu, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00003e12u, 0x00003e11u, 0x00000390u, + 0x00050082u, 0x00000008u, 0x00003e14u, 0x00003e0fu, 0x00000628u, 0x00050082u, 0x00000008u, 0x00003e16u, + 0x00003e12u, 0x00000628u, 0x00070050u, 0x00000009u, 0x00003e19u, 0x00003e14u, 0x00003e16u, 0x00003e06u, + 0x00003e06u, 0x000200f9u, 0x000030bbu, 0x000200f8u, 0x000030bbu, 0x000700f5u, 0x00000009u, 0x00007a17u, + 0x000079cdu, 0x0000308eu, 0x00003e19u, 0x000030a2u, 0x000700f5u, 0x00000009u, 0x00007999u, 0x00007952u, + 0x0000308eu, 0x00003dcdu, 0x000030a2u, 0x000700f5u, 0x00000009u, 0x0000791bu, 0x000078d1u, 0x0000308eu, + 0x00003d81u, 0x000030a2u, 0x000200f9u, 0x0000321eu, 0x000200f8u, 0x00003006u, 0x000300f7u, 0x0000308du, + 0x00000000u, 0x000b00fbu, 0x00002d75u, 0x0000308du, 0x00000000u, 0x00003009u, 0x00000001u, 0x0000302au, + 0x00000002u, 0x0000304bu, 0x00000003u, 0x0000306cu, 0x000200f8u, 0x0000306cu, 0x0004007cu, 0x000000a6u, + 0x0000306eu, 0x0000776eu, 0x00050051u, 0x00000006u, 0x00003c19u, 0x0000306eu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003c1au, 0x00002d6bu, 0x00003c19u, 0x00050080u, 0x00000006u, 0x00003c1bu, 0x00002d68u, + 0x00003c1au, 0x00050051u, 0x00000006u, 0x00003c1du, 0x0000306eu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003c1eu, 0x00003c1du, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003c20u, 0x00003c1bu, 0x00003c1eu, + 0x000500c7u, 0x00000006u, 0x00003c22u, 0x00003c20u, 0x00000f0bu, 0x000500c2u, 0x00000006u, 0x00003c24u, + 0x00003c22u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003c27u, 0x00003c19u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00003c28u, 0x00003c27u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003c2au, 0x00003c24u, + 0x00003c28u, 0x000500c6u, 0x00000006u, 0x00003c2cu, 0x00003c2au, 0x0000048au, 0x00080041u, 0x00000275u, + 0x00003c2fu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003c2cu, 0x0004003du, 0x00000230u, + 0x00003c30u, 0x00003c2fu, 0x00040071u, 0x00000006u, 0x00003c31u, 0x00003c30u, 0x000500c5u, 0x00000006u, + 0x00003c34u, 0x00003c2cu, 0x00000f3cu, 0x00080041u, 0x00000275u, 0x00003c35u, 0x00000f3au, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00003c34u, 0x0004003du, 0x00000230u, 0x00003c36u, 0x00003c35u, 0x00040071u, + 0x00000006u, 0x00003c37u, 0x00003c36u, 0x000500c2u, 0x00000006u, 0x00003c39u, 0x00003c31u, 0x00000263u, + 0x0004007cu, 0x00000008u, 0x00003c3au, 0x00003c39u, 0x000500c7u, 0x00000006u, 0x00003c3cu, 0x00003c31u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003c3du, 0x00003c3cu, 0x000500c2u, 0x00000006u, 0x00003c3fu, + 0x00003c37u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003c40u, 0x00003c3fu, 0x000500c7u, 0x00000006u, + 0x00003c42u, 0x00003c37u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003c43u, 0x00003c42u, 0x00070050u, + 0x00000009u, 0x00003c44u, 0x00003c3au, 0x00003c3du, 0x00003c40u, 0x00003c43u, 0x000300f7u, 0x00003082u, + 0x00000000u, 0x000400fau, 0x00002249u, 0x00003073u, 0x00003082u, 0x000200f8u, 0x00003073u, 0x00050050u, + 0x0000005fu, 0x00003076u, 0x0000774fu, 0x00002f34u, 0x0004007cu, 0x000000a6u, 0x00003077u, 0x00003076u, + 0x00050051u, 0x00000006u, 0x00003c50u, 0x00003077u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003c51u, + 0x00002d6bu, 0x00003c50u, 0x00050080u, 0x00000006u, 0x00003c52u, 0x00002d68u, 0x00003c51u, 0x00050051u, + 0x00000006u, 0x00003c54u, 0x00003077u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c55u, 0x00003c54u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003c57u, 0x00003c52u, 0x00003c55u, 0x000500c7u, 0x00000006u, + 0x00003c59u, 0x00003c57u, 0x00000f0bu, 0x000500c2u, 0x00000006u, 0x00003c5bu, 0x00003c59u, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00003c5eu, 0x00003c50u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003c5fu, + 0x00003c5eu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003c61u, 0x00003c5bu, 0x00003c5fu, 0x000500c6u, + 0x00000006u, 0x00003c63u, 0x00003c61u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00003c66u, 0x00000f3au, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00003c63u, 0x0004003du, 0x00000230u, 0x00003c67u, 0x00003c66u, + 0x00040071u, 0x00000006u, 0x00003c68u, 0x00003c67u, 0x000500c5u, 0x00000006u, 0x00003c6bu, 0x00003c63u, + 0x00000f3cu, 0x00080041u, 0x00000275u, 0x00003c6cu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00003c6bu, 0x0004003du, 0x00000230u, 0x00003c6du, 0x00003c6cu, 0x00040071u, 0x00000006u, 0x00003c6eu, + 0x00003c6du, 0x000500c2u, 0x00000006u, 0x00003c70u, 0x00003c68u, 0x00000263u, 0x0004007cu, 0x00000008u, + 0x00003c71u, 0x00003c70u, 0x000500c7u, 0x00000006u, 0x00003c73u, 0x00003c68u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00003c74u, 0x00003c73u, 0x000500c2u, 0x00000006u, 0x00003c76u, 0x00003c6eu, 0x00000263u, + 0x0004007cu, 0x00000008u, 0x00003c77u, 0x00003c76u, 0x000500c7u, 0x00000006u, 0x00003c79u, 0x00003c6eu, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003c7au, 0x00003c79u, 0x00070050u, 0x00000009u, 0x00003c7bu, + 0x00003c71u, 0x00003c74u, 0x00003c77u, 0x00003c7au, 0x00050050u, 0x0000005fu, 0x0000307du, 0x00007747u, + 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x0000307eu, 0x0000307du, 0x00050051u, 0x00000006u, 0x00003c87u, + 0x0000307eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003c88u, 0x00002d6bu, 0x00003c87u, 0x00050080u, + 0x00000006u, 0x00003c89u, 0x00002d68u, 0x00003c88u, 0x00050051u, 0x00000006u, 0x00003c8bu, 0x0000307eu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c8cu, 0x00003c8bu, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00003c8eu, 0x00003c89u, 0x00003c8cu, 0x000500c7u, 0x00000006u, 0x00003c90u, 0x00003c8eu, 0x00000f0bu, + 0x000500c2u, 0x00000006u, 0x00003c92u, 0x00003c90u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003c95u, + 0x00003c87u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003c96u, 0x00003c95u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00003c98u, 0x00003c92u, 0x00003c96u, 0x000500c6u, 0x00000006u, 0x00003c9au, 0x00003c98u, + 0x0000048au, 0x00080041u, 0x00000275u, 0x00003c9du, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00003c9au, 0x0004003du, 0x00000230u, 0x00003c9eu, 0x00003c9du, 0x00040071u, 0x00000006u, 0x00003c9fu, + 0x00003c9eu, 0x000500c5u, 0x00000006u, 0x00003ca2u, 0x00003c9au, 0x00000f3cu, 0x00080041u, 0x00000275u, + 0x00003ca3u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003ca2u, 0x0004003du, 0x00000230u, + 0x00003ca4u, 0x00003ca3u, 0x00040071u, 0x00000006u, 0x00003ca5u, 0x00003ca4u, 0x000500c2u, 0x00000006u, + 0x00003ca7u, 0x00003c9fu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003ca8u, 0x00003ca7u, 0x000500c7u, + 0x00000006u, 0x00003caau, 0x00003c9fu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003cabu, 0x00003caau, + 0x000500c2u, 0x00000006u, 0x00003cadu, 0x00003ca5u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003caeu, + 0x00003cadu, 0x000500c7u, 0x00000006u, 0x00003cb0u, 0x00003ca5u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00003cb1u, 0x00003cb0u, 0x00070050u, 0x00000009u, 0x00003cb2u, 0x00003ca8u, 0x00003cabu, 0x00003caeu, + 0x00003cb1u, 0x000200f9u, 0x00003082u, 0x000200f8u, 0x00003082u, 0x000700f5u, 0x00000009u, 0x00007998u, + 0x00007952u, 0x0000306cu, 0x00003cb2u, 0x00003073u, 0x000700f5u, 0x00000009u, 0x0000791au, 0x000078d1u, + 0x0000306cu, 0x00003c7bu, 0x00003073u, 0x000300f7u, 0x0000308cu, 0x00000000u, 0x000400fau, 0x00002f40u, + 0x00003084u, 0x0000308cu, 0x000200f8u, 0x00003084u, 0x00050050u, 0x0000005fu, 0x00003087u, 0x0000774fu, + 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x00003088u, 0x00003087u, 0x00050051u, 0x00000006u, 0x00003cbeu, + 0x00003088u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003cbfu, 0x00002d6bu, 0x00003cbeu, 0x00050080u, + 0x00000006u, 0x00003cc0u, 0x00002d68u, 0x00003cbfu, 0x00050051u, 0x00000006u, 0x00003cc2u, 0x00003088u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003cc3u, 0x00003cc2u, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00003cc5u, 0x00003cc0u, 0x00003cc3u, 0x000500c7u, 0x00000006u, 0x00003cc7u, 0x00003cc5u, 0x00000f0bu, + 0x000500c2u, 0x00000006u, 0x00003cc9u, 0x00003cc7u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003cccu, + 0x00003cbeu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003ccdu, 0x00003cccu, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00003ccfu, 0x00003cc9u, 0x00003ccdu, 0x000500c6u, 0x00000006u, 0x00003cd1u, 0x00003ccfu, + 0x0000048au, 0x00080041u, 0x00000275u, 0x00003cd4u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00003cd1u, 0x0004003du, 0x00000230u, 0x00003cd5u, 0x00003cd4u, 0x00040071u, 0x00000006u, 0x00003cd6u, + 0x00003cd5u, 0x000500c5u, 0x00000006u, 0x00003cd9u, 0x00003cd1u, 0x00000f3cu, 0x00080041u, 0x00000275u, + 0x00003cdau, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003cd9u, 0x0004003du, 0x00000230u, + 0x00003cdbu, 0x00003cdau, 0x00040071u, 0x00000006u, 0x00003cdcu, 0x00003cdbu, 0x000500c2u, 0x00000006u, + 0x00003cdeu, 0x00003cd6u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003cdfu, 0x00003cdeu, 0x000500c7u, + 0x00000006u, 0x00003ce1u, 0x00003cd6u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003ce2u, 0x00003ce1u, + 0x000500c2u, 0x00000006u, 0x00003ce4u, 0x00003cdcu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003ce5u, + 0x00003ce4u, 0x000500c7u, 0x00000006u, 0x00003ce7u, 0x00003cdcu, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00003ce8u, 0x00003ce7u, 0x00070050u, 0x00000009u, 0x00003ce9u, 0x00003cdfu, 0x00003ce2u, 0x00003ce5u, + 0x00003ce8u, 0x000200f9u, 0x0000308cu, 0x000200f8u, 0x0000308cu, 0x000700f5u, 0x00000009u, 0x00007a15u, + 0x000079cdu, 0x00003082u, 0x00003ce9u, 0x00003084u, 0x000200f9u, 0x0000308du, 0x000200f8u, 0x0000304bu, + 0x0004007cu, 0x000000a6u, 0x0000304du, 0x0000776eu, 0x00050051u, 0x00000006u, 0x00003b15u, 0x0000304du, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003b16u, 0x00002d6bu, 0x00003b15u, 0x00050080u, 0x00000006u, + 0x00003b17u, 0x00002d68u, 0x00003b16u, 0x00050051u, 0x00000006u, 0x00003b19u, 0x0000304du, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003b1au, 0x00003b19u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003b1cu, + 0x00003b17u, 0x00003b1au, 0x000500c7u, 0x00000006u, 0x00003b1eu, 0x00003b1cu, 0x00000e59u, 0x000500c2u, + 0x00000006u, 0x00003b20u, 0x00003b1eu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003b23u, 0x00003b15u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003b24u, 0x00003b23u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00003b26u, 0x00003b20u, 0x00003b24u, 0x000500c6u, 0x00000006u, 0x00003b28u, 0x00003b26u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00003b2bu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003b28u, + 0x0004003du, 0x00000230u, 0x00003b2cu, 0x00003b2bu, 0x00040071u, 0x00000006u, 0x00003b2du, 0x00003b2cu, + 0x00060050u, 0x00000358u, 0x00003b35u, 0x00003b2du, 0x00003b2du, 0x00003b2du, 0x000500c2u, 0x00000358u, + 0x00003b36u, 0x00003b35u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00003b38u, 0x00003b36u, 0x0000bdafu, + 0x000500c4u, 0x00000358u, 0x00003b3bu, 0x00003b38u, 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x00003b3eu, + 0x00003b38u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00003b3fu, 0x00003b3bu, 0x00003b3eu, 0x000500c7u, + 0x00000006u, 0x00003b41u, 0x00003b2du, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003b42u, 0x00003b41u, + 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003b44u, 0x00003b3fu, 0x0004007cu, 0x00000008u, 0x00003b46u, + 0x00003b42u, 0x00050051u, 0x00000008u, 0x00003b47u, 0x00003b44u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00003b48u, 0x00003b44u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003b49u, 0x00003b44u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00003b4au, 0x00003b47u, 0x00003b48u, 0x00003b49u, 0x00003b46u, 0x000300f7u, + 0x00003061u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00003052u, 0x00003061u, 0x000200f8u, 0x00003052u, + 0x00050050u, 0x0000005fu, 0x00003055u, 0x0000774fu, 0x00002f34u, 0x0004007cu, 0x000000a6u, 0x00003056u, + 0x00003055u, 0x00050051u, 0x00000006u, 0x00003b56u, 0x00003056u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003b57u, 0x00002d6bu, 0x00003b56u, 0x00050080u, 0x00000006u, 0x00003b58u, 0x00002d68u, 0x00003b57u, + 0x00050051u, 0x00000006u, 0x00003b5au, 0x00003056u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003b5bu, + 0x00003b5au, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003b5du, 0x00003b58u, 0x00003b5bu, 0x000500c7u, + 0x00000006u, 0x00003b5fu, 0x00003b5du, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00003b61u, 0x00003b5fu, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003b64u, 0x00003b56u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00003b65u, 0x00003b64u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003b67u, 0x00003b61u, 0x00003b65u, + 0x000500c6u, 0x00000006u, 0x00003b69u, 0x00003b67u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00003b6cu, + 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003b69u, 0x0004003du, 0x00000230u, 0x00003b6du, + 0x00003b6cu, 0x00040071u, 0x00000006u, 0x00003b6eu, 0x00003b6du, 0x00060050u, 0x00000358u, 0x00003b76u, + 0x00003b6eu, 0x00003b6eu, 0x00003b6eu, 0x000500c2u, 0x00000358u, 0x00003b77u, 0x00003b76u, 0x00000e20u, + 0x000500c7u, 0x00000358u, 0x00003b79u, 0x00003b77u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00003b7cu, + 0x00003b79u, 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x00003b7fu, 0x00003b79u, 0x0000bdb1u, 0x000500c5u, + 0x00000358u, 0x00003b80u, 0x00003b7cu, 0x00003b7fu, 0x000500c7u, 0x00000006u, 0x00003b82u, 0x00003b6eu, + 0x0000048au, 0x00050084u, 0x00000006u, 0x00003b83u, 0x00003b82u, 0x000006c7u, 0x0004007cu, 0x0000003cu, + 0x00003b85u, 0x00003b80u, 0x0004007cu, 0x00000008u, 0x00003b87u, 0x00003b83u, 0x00050051u, 0x00000008u, + 0x00003b88u, 0x00003b85u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00003b89u, 0x00003b85u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00003b8au, 0x00003b85u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00003b8bu, + 0x00003b88u, 0x00003b89u, 0x00003b8au, 0x00003b87u, 0x00050050u, 0x0000005fu, 0x0000305cu, 0x00007747u, + 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x0000305du, 0x0000305cu, 0x00050051u, 0x00000006u, 0x00003b97u, + 0x0000305du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003b98u, 0x00002d6bu, 0x00003b97u, 0x00050080u, + 0x00000006u, 0x00003b99u, 0x00002d68u, 0x00003b98u, 0x00050051u, 0x00000006u, 0x00003b9bu, 0x0000305du, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003b9cu, 0x00003b9bu, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00003b9eu, 0x00003b99u, 0x00003b9cu, 0x000500c7u, 0x00000006u, 0x00003ba0u, 0x00003b9eu, 0x00000e59u, + 0x000500c2u, 0x00000006u, 0x00003ba2u, 0x00003ba0u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003ba5u, + 0x00003b97u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003ba6u, 0x00003ba5u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00003ba8u, 0x00003ba2u, 0x00003ba6u, 0x000500c6u, 0x00000006u, 0x00003baau, 0x00003ba8u, + 0x0000048au, 0x00080041u, 0x00000275u, 0x00003badu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00003baau, 0x0004003du, 0x00000230u, 0x00003baeu, 0x00003badu, 0x00040071u, 0x00000006u, 0x00003bafu, + 0x00003baeu, 0x00060050u, 0x00000358u, 0x00003bb7u, 0x00003bafu, 0x00003bafu, 0x00003bafu, 0x000500c2u, + 0x00000358u, 0x00003bb8u, 0x00003bb7u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00003bbau, 0x00003bb8u, + 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00003bbdu, 0x00003bbau, 0x0000bdb0u, 0x000500c2u, 0x00000358u, + 0x00003bc0u, 0x00003bbau, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00003bc1u, 0x00003bbdu, 0x00003bc0u, + 0x000500c7u, 0x00000006u, 0x00003bc3u, 0x00003bafu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003bc4u, + 0x00003bc3u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003bc6u, 0x00003bc1u, 0x0004007cu, 0x00000008u, + 0x00003bc8u, 0x00003bc4u, 0x00050051u, 0x00000008u, 0x00003bc9u, 0x00003bc6u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00003bcau, 0x00003bc6u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003bcbu, 0x00003bc6u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00003bccu, 0x00003bc9u, 0x00003bcau, 0x00003bcbu, 0x00003bc8u, + 0x000200f9u, 0x00003061u, 0x000200f8u, 0x00003061u, 0x000700f5u, 0x00000009u, 0x00007996u, 0x00007952u, + 0x0000304bu, 0x00003bccu, 0x00003052u, 0x000700f5u, 0x00000009u, 0x00007918u, 0x000078d1u, 0x0000304bu, + 0x00003b8bu, 0x00003052u, 0x000300f7u, 0x0000306bu, 0x00000000u, 0x000400fau, 0x00002f40u, 0x00003063u, + 0x0000306bu, 0x000200f8u, 0x00003063u, 0x00050050u, 0x0000005fu, 0x00003066u, 0x0000774fu, 0x00002f36u, + 0x0004007cu, 0x000000a6u, 0x00003067u, 0x00003066u, 0x00050051u, 0x00000006u, 0x00003bd8u, 0x00003067u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003bd9u, 0x00002d6bu, 0x00003bd8u, 0x00050080u, 0x00000006u, + 0x00003bdau, 0x00002d68u, 0x00003bd9u, 0x00050051u, 0x00000006u, 0x00003bdcu, 0x00003067u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003bddu, 0x00003bdcu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003bdfu, + 0x00003bdau, 0x00003bddu, 0x000500c7u, 0x00000006u, 0x00003be1u, 0x00003bdfu, 0x00000e59u, 0x000500c2u, + 0x00000006u, 0x00003be3u, 0x00003be1u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003be6u, 0x00003bd8u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003be7u, 0x00003be6u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00003be9u, 0x00003be3u, 0x00003be7u, 0x000500c6u, 0x00000006u, 0x00003bebu, 0x00003be9u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00003beeu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003bebu, + 0x0004003du, 0x00000230u, 0x00003befu, 0x00003beeu, 0x00040071u, 0x00000006u, 0x00003bf0u, 0x00003befu, + 0x00060050u, 0x00000358u, 0x00003bf8u, 0x00003bf0u, 0x00003bf0u, 0x00003bf0u, 0x000500c2u, 0x00000358u, + 0x00003bf9u, 0x00003bf8u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00003bfbu, 0x00003bf9u, 0x0000bdafu, + 0x000500c4u, 0x00000358u, 0x00003bfeu, 0x00003bfbu, 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x00003c01u, + 0x00003bfbu, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00003c02u, 0x00003bfeu, 0x00003c01u, 0x000500c7u, + 0x00000006u, 0x00003c04u, 0x00003bf0u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003c05u, 0x00003c04u, + 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003c07u, 0x00003c02u, 0x0004007cu, 0x00000008u, 0x00003c09u, + 0x00003c05u, 0x00050051u, 0x00000008u, 0x00003c0au, 0x00003c07u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00003c0bu, 0x00003c07u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003c0cu, 0x00003c07u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00003c0du, 0x00003c0au, 0x00003c0bu, 0x00003c0cu, 0x00003c09u, 0x000200f9u, + 0x0000306bu, 0x000200f8u, 0x0000306bu, 0x000700f5u, 0x00000009u, 0x00007a13u, 0x000079cdu, 0x00003061u, + 0x00003c0du, 0x00003063u, 0x000200f9u, 0x0000308du, 0x000200f8u, 0x0000302au, 0x0004007cu, 0x000000a6u, + 0x0000302cu, 0x0000776eu, 0x00050051u, 0x00000006u, 0x00003a84u, 0x0000302cu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003a85u, 0x00002d6bu, 0x00003a84u, 0x00050080u, 0x00000006u, 0x00003a86u, 0x00002d68u, + 0x00003a85u, 0x00050051u, 0x00000006u, 0x00003a88u, 0x0000302cu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003a8au, 0x00003a86u, 0x00003a88u, 0x000500c7u, 0x00000006u, 0x00003a8cu, 0x00003a8au, 0x00000e59u, + 0x000500c7u, 0x00000006u, 0x00003a90u, 0x00003a84u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003a91u, + 0x00003a90u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003a93u, 0x00003a8cu, 0x00003a91u, 0x000500c6u, + 0x00000006u, 0x00003a95u, 0x00003a93u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003a98u, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00003a95u, 0x0004003du, 0x0000022eu, 0x00003a99u, 0x00003a98u, + 0x00040071u, 0x00000006u, 0x00003a9au, 0x00003a99u, 0x0004007cu, 0x00000008u, 0x00003a9cu, 0x00003a9au, + 0x00070050u, 0x00000009u, 0x00003a9du, 0x00003a9cu, 0x00003a9cu, 0x00003a9cu, 0x00003a9cu, 0x000300f7u, + 0x00003040u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00003031u, 0x00003040u, 0x000200f8u, 0x00003031u, + 0x00050050u, 0x0000005fu, 0x00003034u, 0x0000774fu, 0x00002f34u, 0x0004007cu, 0x000000a6u, 0x00003035u, + 0x00003034u, 0x00050051u, 0x00000006u, 0x00003aa8u, 0x00003035u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003aa9u, 0x00002d6bu, 0x00003aa8u, 0x00050080u, 0x00000006u, 0x00003aaau, 0x00002d68u, 0x00003aa9u, + 0x00050051u, 0x00000006u, 0x00003aacu, 0x00003035u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003aaeu, + 0x00003aaau, 0x00003aacu, 0x000500c7u, 0x00000006u, 0x00003ab0u, 0x00003aaeu, 0x00000e59u, 0x000500c7u, + 0x00000006u, 0x00003ab4u, 0x00003aa8u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003ab5u, 0x00003ab4u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003ab7u, 0x00003ab0u, 0x00003ab5u, 0x000500c6u, 0x00000006u, + 0x00003ab9u, 0x00003ab7u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003abcu, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00003ab9u, 0x0004003du, 0x0000022eu, 0x00003abdu, 0x00003abcu, 0x00040071u, + 0x00000006u, 0x00003abeu, 0x00003abdu, 0x0004007cu, 0x00000008u, 0x00003ac0u, 0x00003abeu, 0x00070050u, + 0x00000009u, 0x00003ac1u, 0x00003ac0u, 0x00003ac0u, 0x00003ac0u, 0x00003ac0u, 0x00050050u, 0x0000005fu, + 0x0000303bu, 0x00007747u, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x0000303cu, 0x0000303bu, 0x00050051u, + 0x00000006u, 0x00003accu, 0x0000303cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003acdu, 0x00002d6bu, + 0x00003accu, 0x00050080u, 0x00000006u, 0x00003aceu, 0x00002d68u, 0x00003acdu, 0x00050051u, 0x00000006u, + 0x00003ad0u, 0x0000303cu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003ad2u, 0x00003aceu, 0x00003ad0u, + 0x000500c7u, 0x00000006u, 0x00003ad4u, 0x00003ad2u, 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00003ad8u, + 0x00003accu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003ad9u, 0x00003ad8u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x00003adbu, 0x00003ad4u, 0x00003ad9u, 0x000500c6u, 0x00000006u, 0x00003addu, 0x00003adbu, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003ae0u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00003addu, 0x0004003du, 0x0000022eu, 0x00003ae1u, 0x00003ae0u, 0x00040071u, 0x00000006u, 0x00003ae2u, + 0x00003ae1u, 0x0004007cu, 0x00000008u, 0x00003ae4u, 0x00003ae2u, 0x00070050u, 0x00000009u, 0x00003ae5u, + 0x00003ae4u, 0x00003ae4u, 0x00003ae4u, 0x00003ae4u, 0x000200f9u, 0x00003040u, 0x000200f8u, 0x00003040u, + 0x000700f5u, 0x00000009u, 0x00007994u, 0x00007952u, 0x0000302au, 0x00003ae5u, 0x00003031u, 0x000700f5u, + 0x00000009u, 0x00007916u, 0x000078d1u, 0x0000302au, 0x00003ac1u, 0x00003031u, 0x000300f7u, 0x0000304au, + 0x00000000u, 0x000400fau, 0x00002f40u, 0x00003042u, 0x0000304au, 0x000200f8u, 0x00003042u, 0x00050050u, + 0x0000005fu, 0x00003045u, 0x0000774fu, 0x00002f36u, 0x0004007cu, 0x000000a6u, 0x00003046u, 0x00003045u, + 0x00050051u, 0x00000006u, 0x00003af0u, 0x00003046u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003af1u, + 0x00002d6bu, 0x00003af0u, 0x00050080u, 0x00000006u, 0x00003af2u, 0x00002d68u, 0x00003af1u, 0x00050051u, + 0x00000006u, 0x00003af4u, 0x00003046u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003af6u, 0x00003af2u, + 0x00003af4u, 0x000500c7u, 0x00000006u, 0x00003af8u, 0x00003af6u, 0x00000e59u, 0x000500c7u, 0x00000006u, + 0x00003afcu, 0x00003af0u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003afdu, 0x00003afcu, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00003affu, 0x00003af8u, 0x00003afdu, 0x000500c6u, 0x00000006u, 0x00003b01u, + 0x00003affu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003b04u, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00003b01u, 0x0004003du, 0x0000022eu, 0x00003b05u, 0x00003b04u, 0x00040071u, 0x00000006u, + 0x00003b06u, 0x00003b05u, 0x0004007cu, 0x00000008u, 0x00003b08u, 0x00003b06u, 0x00070050u, 0x00000009u, + 0x00003b09u, 0x00003b08u, 0x00003b08u, 0x00003b08u, 0x00003b08u, 0x000200f9u, 0x0000304au, 0x000200f8u, + 0x0000304au, 0x000700f5u, 0x00000009u, 0x00007a11u, 0x000079cdu, 0x00003040u, 0x00003b09u, 0x00003042u, + 0x000200f9u, 0x0000308du, 0x000200f8u, 0x00003009u, 0x0004007cu, 0x000000a6u, 0x0000300bu, 0x0000776eu, + 0x00050051u, 0x00000006u, 0x000039b9u, 0x0000300bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000039bau, + 0x00002d6bu, 0x000039b9u, 0x00050080u, 0x00000006u, 0x000039bbu, 0x00002d68u, 0x000039bau, 0x00050051u, + 0x00000006u, 0x000039bdu, 0x0000300bu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000039beu, 0x000039bdu, + 0x00000217u, 0x00050080u, 0x00000006u, 0x000039c0u, 0x000039bbu, 0x000039beu, 0x000500c7u, 0x00000006u, + 0x000039c2u, 0x000039c0u, 0x00000e59u, 0x000400c8u, 0x00000006u, 0x000039c5u, 0x000039bdu, 0x000500c7u, + 0x00000006u, 0x000039c6u, 0x000039c5u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000039c7u, 0x000039c6u, + 0x00000706u, 0x000500c7u, 0x00000006u, 0x000039cbu, 0x000039b9u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x000039ccu, 0x000039cbu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000039ceu, 0x000039c2u, 0x000039ccu, + 0x000500c6u, 0x00000006u, 0x000039d0u, 0x000039ceu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000039d3u, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x000039d0u, 0x0004003du, 0x0000022eu, 0x000039d4u, + 0x000039d3u, 0x00040071u, 0x00000006u, 0x000039d5u, 0x000039d4u, 0x000500c2u, 0x00000006u, 0x000039d8u, + 0x000039d5u, 0x000039c7u, 0x000500c7u, 0x00000006u, 0x000039d9u, 0x000039d8u, 0x00000e7cu, 0x000500c4u, + 0x00000006u, 0x000039dbu, 0x000039d9u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x000039ddu, 0x000039d9u, + 0x000039dbu, 0x0004007cu, 0x00000008u, 0x000039dfu, 0x000039ddu, 0x00070050u, 0x00000009u, 0x000039e0u, + 0x000039dfu, 0x000039dfu, 0x000039dfu, 0x000039dfu, 0x000300f7u, 0x0000301fu, 0x00000000u, 0x000400fau, + 0x00002249u, 0x00003010u, 0x0000301fu, 0x000200f8u, 0x00003010u, 0x00050050u, 0x0000005fu, 0x00003013u, + 0x0000774fu, 0x00002f34u, 0x0004007cu, 0x000000a6u, 0x00003014u, 0x00003013u, 0x00050051u, 0x00000006u, + 0x000039ecu, 0x00003014u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000039edu, 0x00002d6bu, 0x000039ecu, + 0x00050080u, 0x00000006u, 0x000039eeu, 0x00002d68u, 0x000039edu, 0x00050051u, 0x00000006u, 0x000039f0u, + 0x00003014u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000039f1u, 0x000039f0u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x000039f3u, 0x000039eeu, 0x000039f1u, 0x000500c7u, 0x00000006u, 0x000039f5u, 0x000039f3u, + 0x00000e59u, 0x000400c8u, 0x00000006u, 0x000039f8u, 0x000039f0u, 0x000500c7u, 0x00000006u, 0x000039f9u, + 0x000039f8u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000039fau, 0x000039f9u, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x000039feu, 0x000039ecu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000039ffu, 0x000039feu, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003a01u, 0x000039f5u, 0x000039ffu, 0x000500c6u, 0x00000006u, + 0x00003a03u, 0x00003a01u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003a06u, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00003a03u, 0x0004003du, 0x0000022eu, 0x00003a07u, 0x00003a06u, 0x00040071u, + 0x00000006u, 0x00003a08u, 0x00003a07u, 0x000500c2u, 0x00000006u, 0x00003a0bu, 0x00003a08u, 0x000039fau, + 0x000500c7u, 0x00000006u, 0x00003a0cu, 0x00003a0bu, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00003a0eu, + 0x00003a0cu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00003a10u, 0x00003a0cu, 0x00003a0eu, 0x0004007cu, + 0x00000008u, 0x00003a12u, 0x00003a10u, 0x00070050u, 0x00000009u, 0x00003a13u, 0x00003a12u, 0x00003a12u, + 0x00003a12u, 0x00003a12u, 0x00050050u, 0x0000005fu, 0x0000301au, 0x00007747u, 0x00002f36u, 0x0004007cu, + 0x000000a6u, 0x0000301bu, 0x0000301au, 0x00050051u, 0x00000006u, 0x00003a1fu, 0x0000301bu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003a20u, 0x00002d6bu, 0x00003a1fu, 0x00050080u, 0x00000006u, 0x00003a21u, + 0x00002d68u, 0x00003a20u, 0x00050051u, 0x00000006u, 0x00003a23u, 0x0000301bu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003a24u, 0x00003a23u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00003a26u, 0x00003a21u, + 0x00003a24u, 0x000500c7u, 0x00000006u, 0x00003a28u, 0x00003a26u, 0x00000e59u, 0x000400c8u, 0x00000006u, + 0x00003a2bu, 0x00003a23u, 0x000500c7u, 0x00000006u, 0x00003a2cu, 0x00003a2bu, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003a2du, 0x00003a2cu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003a31u, 0x00003a1fu, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003a32u, 0x00003a31u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003a34u, 0x00003a28u, 0x00003a32u, 0x000500c6u, 0x00000006u, 0x00003a36u, 0x00003a34u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00003a39u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003a36u, + 0x0004003du, 0x0000022eu, 0x00003a3au, 0x00003a39u, 0x00040071u, 0x00000006u, 0x00003a3bu, 0x00003a3au, + 0x000500c2u, 0x00000006u, 0x00003a3eu, 0x00003a3bu, 0x00003a2du, 0x000500c7u, 0x00000006u, 0x00003a3fu, + 0x00003a3eu, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00003a41u, 0x00003a3fu, 0x00000220u, 0x000500c5u, + 0x00000006u, 0x00003a43u, 0x00003a3fu, 0x00003a41u, 0x0004007cu, 0x00000008u, 0x00003a45u, 0x00003a43u, + 0x00070050u, 0x00000009u, 0x00003a46u, 0x00003a45u, 0x00003a45u, 0x00003a45u, 0x00003a45u, 0x000200f9u, + 0x0000301fu, 0x000200f8u, 0x0000301fu, 0x000700f5u, 0x00000009u, 0x00007992u, 0x00007952u, 0x00003009u, + 0x00003a46u, 0x00003010u, 0x000700f5u, 0x00000009u, 0x00007914u, 0x000078d1u, 0x00003009u, 0x00003a13u, + 0x00003010u, 0x000300f7u, 0x00003029u, 0x00000000u, 0x000400fau, 0x00002f40u, 0x00003021u, 0x00003029u, + 0x000200f8u, 0x00003021u, 0x00050050u, 0x0000005fu, 0x00003024u, 0x0000774fu, 0x00002f36u, 0x0004007cu, + 0x000000a6u, 0x00003025u, 0x00003024u, 0x00050051u, 0x00000006u, 0x00003a52u, 0x00003025u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003a53u, 0x00002d6bu, 0x00003a52u, 0x00050080u, 0x00000006u, 0x00003a54u, + 0x00002d68u, 0x00003a53u, 0x00050051u, 0x00000006u, 0x00003a56u, 0x00003025u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003a57u, 0x00003a56u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00003a59u, 0x00003a54u, + 0x00003a57u, 0x000500c7u, 0x00000006u, 0x00003a5bu, 0x00003a59u, 0x00000e59u, 0x000400c8u, 0x00000006u, + 0x00003a5eu, 0x00003a56u, 0x000500c7u, 0x00000006u, 0x00003a5fu, 0x00003a5eu, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003a60u, 0x00003a5fu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003a64u, 0x00003a52u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003a65u, 0x00003a64u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003a67u, 0x00003a5bu, 0x00003a65u, 0x000500c6u, 0x00000006u, 0x00003a69u, 0x00003a67u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00003a6cu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003a69u, + 0x0004003du, 0x0000022eu, 0x00003a6du, 0x00003a6cu, 0x00040071u, 0x00000006u, 0x00003a6eu, 0x00003a6du, + 0x000500c2u, 0x00000006u, 0x00003a71u, 0x00003a6eu, 0x00003a60u, 0x000500c7u, 0x00000006u, 0x00003a72u, + 0x00003a71u, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00003a74u, 0x00003a72u, 0x00000220u, 0x000500c5u, + 0x00000006u, 0x00003a76u, 0x00003a72u, 0x00003a74u, 0x0004007cu, 0x00000008u, 0x00003a78u, 0x00003a76u, + 0x00070050u, 0x00000009u, 0x00003a79u, 0x00003a78u, 0x00003a78u, 0x00003a78u, 0x00003a78u, 0x000200f9u, + 0x00003029u, 0x000200f8u, 0x00003029u, 0x000700f5u, 0x00000009u, 0x00007a0fu, 0x000079cdu, 0x0000301fu, + 0x00003a79u, 0x00003021u, 0x000200f9u, 0x0000308du, 0x000200f8u, 0x0000308du, 0x000d00f5u, 0x00000009u, + 0x00007a0eu, 0x000079cdu, 0x00003006u, 0x00007a0fu, 0x00003029u, 0x00007a11u, 0x0000304au, 0x00007a13u, + 0x0000306bu, 0x00007a15u, 0x0000308cu, 0x000d00f5u, 0x00000009u, 0x00007990u, 0x00007952u, 0x00003006u, + 0x00007992u, 0x00003029u, 0x00007994u, 0x0000304au, 0x00007996u, 0x0000306bu, 0x00007998u, 0x0000308cu, + 0x000d00f5u, 0x00000009u, 0x00007912u, 0x000078d1u, 0x00003006u, 0x00007914u, 0x00003029u, 0x00007916u, + 0x0000304au, 0x00007918u, 0x0000306bu, 0x0000791au, 0x0000308cu, 0x000d00f5u, 0x00000009u, 0x0000781fu, + 0x000077dfu, 0x00003006u, 0x000039e0u, 0x00003029u, 0x00003a9du, 0x0000304au, 0x00003b4au, 0x0000306bu, + 0x00003c44u, 0x0000308cu, 0x000200f9u, 0x0000321eu, 0x000200f8u, 0x0000321eu, 0x000f00f5u, 0x00000009u, + 0x00007a0du, 0x000079cdu, 0x00003003u, 0x00007a0eu, 0x0000308du, 0x00007a17u, 0x000030bbu, 0x00007a18u, + 0x0000312eu, 0x00007a1fu, 0x000031b6u, 0x00007a28u, 0x0000321du, 0x000f00f5u, 0x00000009u, 0x0000798fu, + 0x00007952u, 0x00003003u, 0x00007990u, 0x0000308du, 0x00007999u, 0x000030bbu, 0x0000799au, 0x0000312eu, + 0x000079a1u, 0x000031b6u, 0x000079aau, 0x0000321du, 0x000f00f5u, 0x00000009u, 0x00007911u, 0x000078d1u, + 0x00003003u, 0x00007912u, 0x0000308du, 0x0000791bu, 0x000030bbu, 0x0000791cu, 0x0000312eu, 0x00007923u, + 0x000031b6u, 0x0000792cu, 0x0000321du, 0x000f00f5u, 0x00000009u, 0x0000781eu, 0x000077dfu, 0x00003003u, + 0x0000781fu, 0x0000308du, 0x00003d35u, 0x000030bbu, 0x00007829u, 0x0000312eu, 0x00007830u, 0x000031b6u, + 0x00007839u, 0x0000321du, 0x000200f9u, 0x0000321fu, 0x000200f8u, 0x00002f5du, 0x000400a8u, 0x0000005du, + 0x00002f5fu, 0x00002249u, 0x000300f7u, 0x00002f66u, 0x00000000u, 0x000400fau, 0x00002f5fu, 0x00002f60u, + 0x00002f66u, 0x000200f8u, 0x00002f60u, 0x00050050u, 0x0000005fu, 0x00002f63u, 0x00007747u, 0x00002f34u, + 0x000200f9u, 0x00002f66u, 0x000200f8u, 0x00002f66u, 0x000700f5u, 0x0000005fu, 0x00007794u, 0x0000776eu, + 0x00002f5du, 0x00002f63u, 0x00002f60u, 0x000600a9u, 0x00000008u, 0x0000bde0u, 0x00002f5fu, 0x00002f34u, + 0x00002f36u, 0x000600a9u, 0x00000008u, 0x0000bde1u, 0x00002f5fu, 0x00007747u, 0x0000774fu, 0x000300f7u, + 0x00003002u, 0x00000000u, 0x000b00fbu, 0x00002d70u, 0x00003002u, 0x00000000u, 0x00002f69u, 0x00000002u, + 0x00002f69u, 0x00000003u, 0x00002f69u, 0x00000004u, 0x00002f69u, 0x000200f8u, 0x00002f69u, 0x000600a9u, + 0x00000008u, 0x00002f6du, 0x00002f42u, 0x0000021au, 0x00000217u, 0x0004007cu, 0x00000006u, 0x00002f6eu, + 0x00002f6du, 0x000300f7u, 0x00003001u, 0x00000000u, 0x000700fbu, 0x00002d75u, 0x00002f71u, 0x00000000u, + 0x00002f9du, 0x00000001u, 0x00002fd5u, 0x000200f8u, 0x00002fd5u, 0x0004007cu, 0x000000a6u, 0x00002fd7u, + 0x00007794u, 0x000600a9u, 0x00000008u, 0x00002fd9u, 0x00002f4au, 0x0000021du, 0x00000208u, 0x0004007cu, + 0x00000006u, 0x00002fdau, 0x00002fd9u, 0x00050051u, 0x00000006u, 0x00003820u, 0x00002fd7u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003821u, 0x00002d6bu, 0x00003820u, 0x00050080u, 0x00000006u, 0x00003822u, + 0x00002d68u, 0x00003821u, 0x00050051u, 0x00000006u, 0x00003824u, 0x00002fd7u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003826u, 0x00003822u, 0x00003824u, 0x000500c7u, 0x00000006u, 0x00003828u, 0x00003826u, + 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x0000382cu, 0x00003820u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x0000382du, 0x0000382cu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000382fu, 0x00003828u, 0x0000382du, + 0x000500c6u, 0x00000006u, 0x00003831u, 0x0000382fu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003834u, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003831u, 0x0004003du, 0x0000022eu, 0x00003835u, + 0x00003834u, 0x00040071u, 0x00000006u, 0x00003836u, 0x00003835u, 0x000500c4u, 0x00000006u, 0x00003838u, + 0x00003836u, 0x0000021au, 0x00050080u, 0x00000006u, 0x0000383au, 0x00003838u, 0x00002fdau, 0x000500c6u, + 0x00000006u, 0x0000383du, 0x0000383au, 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x00003840u, 0x00000f3cu, + 0x0000383du, 0x00080041u, 0x00000275u, 0x00003841u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00003840u, 0x0004003du, 0x00000230u, 0x00003842u, 0x00003841u, 0x00040071u, 0x00000006u, 0x00003843u, + 0x00003842u, 0x000300f7u, 0x0000384bu, 0x00000000u, 0x000400fau, 0x00002246u, 0x00003845u, 0x00003848u, + 0x000200f8u, 0x00003848u, 0x00060050u, 0x00000358u, 0x00003863u, 0x00003843u, 0x00003843u, 0x00003843u, + 0x000500c2u, 0x00000358u, 0x00003864u, 0x00003863u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00003866u, + 0x00003864u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00003869u, 0x00003866u, 0x0000bdb0u, 0x000500c2u, + 0x00000358u, 0x0000386cu, 0x00003866u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x0000386du, 0x00003869u, + 0x0000386cu, 0x000500c7u, 0x00000006u, 0x0000386fu, 0x00003843u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x00003870u, 0x0000386fu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003872u, 0x0000386du, 0x0004007cu, + 0x00000008u, 0x00003874u, 0x00003870u, 0x00050051u, 0x00000008u, 0x00003875u, 0x00003872u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00003876u, 0x00003872u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003877u, + 0x00003872u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00003878u, 0x00003875u, 0x00003876u, 0x00003877u, + 0x00003874u, 0x000200f9u, 0x0000384bu, 0x000200f8u, 0x00003845u, 0x000500c2u, 0x00000006u, 0x00003852u, + 0x00003843u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003854u, 0x00003843u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00003856u, 0x00003852u, 0x0004007cu, 0x00000008u, 0x0000385cu, 0x00003854u, 0x00070050u, + 0x00000009u, 0x0000385du, 0x00003856u, 0x00003856u, 0x00003856u, 0x0000385cu, 0x000200f9u, 0x0000384bu, + 0x000200f8u, 0x0000384bu, 0x000700f5u, 0x00000009u, 0x00007795u, 0x0000385du, 0x00003845u, 0x00003878u, + 0x00003848u, 0x000300f7u, 0x00002ff4u, 0x00000000u, 0x000400fau, 0x00002285u, 0x00002fe1u, 0x00002ff4u, + 0x000200f8u, 0x00002fe1u, 0x00050050u, 0x0000005fu, 0x00002fe4u, 0x0000bde1u, 0x00002f34u, 0x0004007cu, + 0x000000a6u, 0x00002fe5u, 0x00002fe4u, 0x00050051u, 0x00000006u, 0x00003887u, 0x00002fe5u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003888u, 0x00002d6bu, 0x00003887u, 0x00050080u, 0x00000006u, 0x00003889u, + 0x00002d68u, 0x00003888u, 0x00050051u, 0x00000006u, 0x0000388bu, 0x00002fe5u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x0000388du, 0x00003889u, 0x0000388bu, 0x000500c7u, 0x00000006u, 0x0000388fu, 0x0000388du, + 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x00003893u, 0x00003887u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00003894u, 0x00003893u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003896u, 0x0000388fu, 0x00003894u, + 0x000500c6u, 0x00000006u, 0x00003898u, 0x00003896u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000389bu, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003898u, 0x0004003du, 0x0000022eu, 0x0000389cu, + 0x0000389bu, 0x00040071u, 0x00000006u, 0x0000389du, 0x0000389cu, 0x000500c4u, 0x00000006u, 0x0000389fu, + 0x0000389du, 0x0000021au, 0x00050080u, 0x00000006u, 0x000038a1u, 0x0000389fu, 0x0000048au, 0x000500c6u, + 0x00000006u, 0x000038a4u, 0x000038a1u, 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x000038a7u, 0x00000f3cu, + 0x000038a4u, 0x00080041u, 0x00000275u, 0x000038a8u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x000038a7u, 0x0004003du, 0x00000230u, 0x000038a9u, 0x000038a8u, 0x00040071u, 0x00000006u, 0x000038aau, + 0x000038a9u, 0x000300f7u, 0x000038b2u, 0x00000000u, 0x000400fau, 0x00002246u, 0x000038acu, 0x000038afu, + 0x000200f8u, 0x000038afu, 0x00060050u, 0x00000358u, 0x000038cau, 0x000038aau, 0x000038aau, 0x000038aau, + 0x000500c2u, 0x00000358u, 0x000038cbu, 0x000038cau, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x000038cdu, + 0x000038cbu, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x000038d0u, 0x000038cdu, 0x0000bdb0u, 0x000500c2u, + 0x00000358u, 0x000038d3u, 0x000038cdu, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x000038d4u, 0x000038d0u, + 0x000038d3u, 0x000500c7u, 0x00000006u, 0x000038d6u, 0x000038aau, 0x0000048au, 0x00050084u, 0x00000006u, + 0x000038d7u, 0x000038d6u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000038d9u, 0x000038d4u, 0x0004007cu, + 0x00000008u, 0x000038dbu, 0x000038d7u, 0x00050051u, 0x00000008u, 0x000038dcu, 0x000038d9u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000038ddu, 0x000038d9u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000038deu, + 0x000038d9u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000038dfu, 0x000038dcu, 0x000038ddu, 0x000038deu, + 0x000038dbu, 0x000200f9u, 0x000038b2u, 0x000200f8u, 0x000038acu, 0x000500c2u, 0x00000006u, 0x000038b9u, + 0x000038aau, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000038bbu, 0x000038aau, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000038bdu, 0x000038b9u, 0x0004007cu, 0x00000008u, 0x000038c3u, 0x000038bbu, 0x00070050u, + 0x00000009u, 0x000038c4u, 0x000038bdu, 0x000038bdu, 0x000038bdu, 0x000038c3u, 0x000200f9u, 0x000038b2u, + 0x000200f8u, 0x000038b2u, 0x000700f5u, 0x00000009u, 0x0000779cu, 0x000038c4u, 0x000038acu, 0x000038dfu, + 0x000038afu, 0x00050050u, 0x0000005fu, 0x00002fedu, 0x00007747u, 0x0000bde0u, 0x0004007cu, 0x000000a6u, + 0x00002feeu, 0x00002fedu, 0x00050051u, 0x00000006u, 0x000038eeu, 0x00002feeu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000038efu, 0x00002d6bu, 0x000038eeu, 0x00050080u, 0x00000006u, 0x000038f0u, 0x00002d68u, + 0x000038efu, 0x00050051u, 0x00000006u, 0x000038f2u, 0x00002feeu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x000038f4u, 0x000038f0u, 0x000038f2u, 0x000500c7u, 0x00000006u, 0x000038f6u, 0x000038f4u, 0x00000f0bu, + 0x000500c7u, 0x00000006u, 0x000038fau, 0x000038eeu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000038fbu, + 0x000038fau, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000038fdu, 0x000038f6u, 0x000038fbu, 0x000500c6u, + 0x00000006u, 0x000038ffu, 0x000038fdu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003902u, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x000038ffu, 0x0004003du, 0x0000022eu, 0x00003903u, 0x00003902u, + 0x00040071u, 0x00000006u, 0x00003904u, 0x00003903u, 0x000500c4u, 0x00000006u, 0x00003906u, 0x00003904u, + 0x0000021au, 0x00050080u, 0x00000006u, 0x00003908u, 0x00003906u, 0x000003c9u, 0x000500c6u, 0x00000006u, + 0x0000390bu, 0x00003908u, 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x0000390eu, 0x00000f3cu, 0x0000390bu, + 0x00080041u, 0x00000275u, 0x0000390fu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x0000390eu, + 0x0004003du, 0x00000230u, 0x00003910u, 0x0000390fu, 0x00040071u, 0x00000006u, 0x00003911u, 0x00003910u, + 0x000300f7u, 0x00003919u, 0x00000000u, 0x000400fau, 0x00002246u, 0x00003913u, 0x00003916u, 0x000200f8u, + 0x00003916u, 0x00060050u, 0x00000358u, 0x00003931u, 0x00003911u, 0x00003911u, 0x00003911u, 0x000500c2u, + 0x00000358u, 0x00003932u, 0x00003931u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00003934u, 0x00003932u, + 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00003937u, 0x00003934u, 0x0000bdb0u, 0x000500c2u, 0x00000358u, + 0x0000393au, 0x00003934u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x0000393bu, 0x00003937u, 0x0000393au, + 0x000500c7u, 0x00000006u, 0x0000393du, 0x00003911u, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000393eu, + 0x0000393du, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003940u, 0x0000393bu, 0x0004007cu, 0x00000008u, + 0x00003942u, 0x0000393eu, 0x00050051u, 0x00000008u, 0x00003943u, 0x00003940u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00003944u, 0x00003940u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003945u, 0x00003940u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00003946u, 0x00003943u, 0x00003944u, 0x00003945u, 0x00003942u, + 0x000200f9u, 0x00003919u, 0x000200f8u, 0x00003913u, 0x000500c2u, 0x00000006u, 0x00003920u, 0x00003911u, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003922u, 0x00003911u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00003924u, 0x00003920u, 0x0004007cu, 0x00000008u, 0x0000392au, 0x00003922u, 0x00070050u, 0x00000009u, + 0x0000392bu, 0x00003924u, 0x00003924u, 0x00003924u, 0x0000392au, 0x000200f9u, 0x00003919u, 0x000200f8u, + 0x00003919u, 0x000700f5u, 0x00000009u, 0x000077a1u, 0x0000392bu, 0x00003913u, 0x00003946u, 0x00003916u, + 0x000200f9u, 0x00002ff4u, 0x000200f8u, 0x00002ff4u, 0x000700f5u, 0x00000009u, 0x0000798cu, 0x00007952u, + 0x0000384bu, 0x000077a1u, 0x00003919u, 0x000700f5u, 0x00000009u, 0x0000790du, 0x000078d1u, 0x0000384bu, + 0x0000779cu, 0x00003919u, 0x000300f7u, 0x00003000u, 0x00000000u, 0x000400fau, 0x00002f40u, 0x00002ff6u, + 0x00003000u, 0x000200f8u, 0x00002ff6u, 0x00050050u, 0x0000005fu, 0x00002ff9u, 0x0000bde1u, 0x0000bde0u, + 0x0004007cu, 0x000000a6u, 0x00002ffau, 0x00002ff9u, 0x00050051u, 0x00000006u, 0x00003955u, 0x00002ffau, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003956u, 0x00002d6bu, 0x00003955u, 0x00050080u, 0x00000006u, + 0x00003957u, 0x00002d68u, 0x00003956u, 0x00050051u, 0x00000006u, 0x00003959u, 0x00002ffau, 0x00000000u, + 0x00050080u, 0x00000006u, 0x0000395bu, 0x00003957u, 0x00003959u, 0x000500c7u, 0x00000006u, 0x0000395du, + 0x0000395bu, 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x00003961u, 0x00003955u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00003962u, 0x00003961u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003964u, 0x0000395du, + 0x00003962u, 0x000500c6u, 0x00000006u, 0x00003966u, 0x00003964u, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00003969u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003966u, 0x0004003du, 0x0000022eu, + 0x0000396au, 0x00003969u, 0x00040071u, 0x00000006u, 0x0000396bu, 0x0000396au, 0x000500c4u, 0x00000006u, + 0x0000396du, 0x0000396bu, 0x0000021au, 0x00050080u, 0x00000006u, 0x0000396fu, 0x0000396du, 0x00000490u, + 0x000500c6u, 0x00000006u, 0x00003972u, 0x0000396fu, 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x00003975u, + 0x00000f3cu, 0x00003972u, 0x00080041u, 0x00000275u, 0x00003976u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00003975u, 0x0004003du, 0x00000230u, 0x00003977u, 0x00003976u, 0x00040071u, 0x00000006u, + 0x00003978u, 0x00003977u, 0x000300f7u, 0x00003980u, 0x00000000u, 0x000400fau, 0x00002246u, 0x0000397au, + 0x0000397du, 0x000200f8u, 0x0000397du, 0x00060050u, 0x00000358u, 0x00003998u, 0x00003978u, 0x00003978u, + 0x00003978u, 0x000500c2u, 0x00000358u, 0x00003999u, 0x00003998u, 0x00000e20u, 0x000500c7u, 0x00000358u, + 0x0000399bu, 0x00003999u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x0000399eu, 0x0000399bu, 0x0000bdb0u, + 0x000500c2u, 0x00000358u, 0x000039a1u, 0x0000399bu, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x000039a2u, + 0x0000399eu, 0x000039a1u, 0x000500c7u, 0x00000006u, 0x000039a4u, 0x00003978u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x000039a5u, 0x000039a4u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000039a7u, 0x000039a2u, + 0x0004007cu, 0x00000008u, 0x000039a9u, 0x000039a5u, 0x00050051u, 0x00000008u, 0x000039aau, 0x000039a7u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000039abu, 0x000039a7u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000039acu, 0x000039a7u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000039adu, 0x000039aau, 0x000039abu, + 0x000039acu, 0x000039a9u, 0x000200f9u, 0x00003980u, 0x000200f8u, 0x0000397au, 0x000500c2u, 0x00000006u, + 0x00003987u, 0x00003978u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003989u, 0x00003978u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x0000398bu, 0x00003987u, 0x0004007cu, 0x00000008u, 0x00003991u, 0x00003989u, + 0x00070050u, 0x00000009u, 0x00003992u, 0x0000398bu, 0x0000398bu, 0x0000398bu, 0x00003991u, 0x000200f9u, + 0x00003980u, 0x000200f8u, 0x00003980u, 0x000700f5u, 0x00000009u, 0x000077a7u, 0x00003992u, 0x0000397au, + 0x000039adu, 0x0000397du, 0x000200f9u, 0x00003000u, 0x000200f8u, 0x00003000u, 0x000700f5u, 0x00000009u, + 0x00007a08u, 0x000079cdu, 0x00002ff4u, 0x000077a7u, 0x00003980u, 0x000200f9u, 0x00003001u, 0x000200f8u, + 0x00002f9du, 0x0004007cu, 0x000000a6u, 0x00002f9fu, 0x00007794u, 0x0004007cu, 0x00000006u, 0x00002fa2u, + 0x00002d7au, 0x000600a9u, 0x00000008u, 0x00002fa4u, 0x00002f4au, 0x0000021du, 0x00000208u, 0x0004007cu, + 0x00000006u, 0x00002fa5u, 0x00002fa4u, 0x00050051u, 0x00000006u, 0x00003649u, 0x00002f9fu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000364au, 0x00002d6bu, 0x00003649u, 0x00050080u, 0x00000006u, 0x0000364bu, + 0x00002d68u, 0x0000364au, 0x00050051u, 0x00000006u, 0x0000364du, 0x00002f9fu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x0000364eu, 0x0000364du, 0x00000217u, 0x00050080u, 0x00000006u, 0x00003650u, 0x0000364bu, + 0x0000364eu, 0x000500c7u, 0x00000006u, 0x00003652u, 0x00003650u, 0x00000f0bu, 0x000400c8u, 0x00000006u, + 0x00003655u, 0x0000364du, 0x000500c7u, 0x00000006u, 0x00003656u, 0x00003655u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003657u, 0x00003656u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x0000365bu, 0x00003649u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000365cu, 0x0000365bu, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x0000365eu, 0x00003652u, 0x0000365cu, 0x000500c6u, 0x00000006u, 0x00003660u, 0x0000365eu, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00003663u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003660u, + 0x0004003du, 0x0000022eu, 0x00003664u, 0x00003663u, 0x00040071u, 0x00000006u, 0x00003665u, 0x00003664u, + 0x000500c2u, 0x00000006u, 0x00003668u, 0x00003665u, 0x00003657u, 0x000500c7u, 0x00000006u, 0x00003669u, + 0x00003668u, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x0000366bu, 0x00002fa2u, 0x00000220u, 0x000500c5u, + 0x00000006u, 0x0000366du, 0x00003669u, 0x0000366bu, 0x000500c4u, 0x00000006u, 0x0000366fu, 0x0000366du, + 0x0000021au, 0x00050080u, 0x00000006u, 0x00003671u, 0x0000366fu, 0x00002fa5u, 0x000500c6u, 0x00000006u, + 0x00003674u, 0x00003671u, 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x00003677u, 0x00000f3cu, 0x00003674u, + 0x00080041u, 0x00000275u, 0x00003678u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003677u, + 0x0004003du, 0x00000230u, 0x00003679u, 0x00003678u, 0x00040071u, 0x00000006u, 0x0000367au, 0x00003679u, + 0x000300f7u, 0x00003682u, 0x00000000u, 0x000400fau, 0x00002246u, 0x0000367cu, 0x0000367fu, 0x000200f8u, + 0x0000367fu, 0x00060050u, 0x00000358u, 0x0000369au, 0x0000367au, 0x0000367au, 0x0000367au, 0x000500c2u, + 0x00000358u, 0x0000369bu, 0x0000369au, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x0000369du, 0x0000369bu, + 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x000036a0u, 0x0000369du, 0x0000bdb0u, 0x000500c2u, 0x00000358u, + 0x000036a3u, 0x0000369du, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x000036a4u, 0x000036a0u, 0x000036a3u, + 0x000500c7u, 0x00000006u, 0x000036a6u, 0x0000367au, 0x0000048au, 0x00050084u, 0x00000006u, 0x000036a7u, + 0x000036a6u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000036a9u, 0x000036a4u, 0x0004007cu, 0x00000008u, + 0x000036abu, 0x000036a7u, 0x00050051u, 0x00000008u, 0x000036acu, 0x000036a9u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000036adu, 0x000036a9u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000036aeu, 0x000036a9u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000036afu, 0x000036acu, 0x000036adu, 0x000036aeu, 0x000036abu, + 0x000200f9u, 0x00003682u, 0x000200f8u, 0x0000367cu, 0x000500c2u, 0x00000006u, 0x00003689u, 0x0000367au, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x0000368bu, 0x0000367au, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x0000368du, 0x00003689u, 0x0004007cu, 0x00000008u, 0x00003693u, 0x0000368bu, 0x00070050u, 0x00000009u, + 0x00003694u, 0x0000368du, 0x0000368du, 0x0000368du, 0x00003693u, 0x000200f9u, 0x00003682u, 0x000200f8u, + 0x00003682u, 0x000700f5u, 0x00000009u, 0x000077a8u, 0x00003694u, 0x0000367cu, 0x000036afu, 0x0000367fu, + 0x000300f7u, 0x00002fc5u, 0x00000000u, 0x000400fau, 0x00002285u, 0x00002facu, 0x00002fc5u, 0x000200f8u, + 0x00002facu, 0x00050050u, 0x0000005fu, 0x00002fafu, 0x0000bde1u, 0x00002f34u, 0x0004007cu, 0x000000a6u, + 0x00002fb0u, 0x00002fafu, 0x00050051u, 0x00000006u, 0x000036bfu, 0x00002fb0u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000036c0u, 0x00002d6bu, 0x000036bfu, 0x00050080u, 0x00000006u, 0x000036c1u, 0x00002d68u, + 0x000036c0u, 0x00050051u, 0x00000006u, 0x000036c3u, 0x00002fb0u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x000036c4u, 0x000036c3u, 0x00000217u, 0x00050080u, 0x00000006u, 0x000036c6u, 0x000036c1u, 0x000036c4u, + 0x000500c7u, 0x00000006u, 0x000036c8u, 0x000036c6u, 0x00000f0bu, 0x000400c8u, 0x00000006u, 0x000036cbu, + 0x000036c3u, 0x000500c7u, 0x00000006u, 0x000036ccu, 0x000036cbu, 0x0000048au, 0x00050084u, 0x00000006u, + 0x000036cdu, 0x000036ccu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000036d1u, 0x000036bfu, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x000036d2u, 0x000036d1u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000036d4u, + 0x000036c8u, 0x000036d2u, 0x000500c6u, 0x00000006u, 0x000036d6u, 0x000036d4u, 0x00000490u, 0x00080041u, + 0x0000027cu, 0x000036d9u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x000036d6u, 0x0004003du, + 0x0000022eu, 0x000036dau, 0x000036d9u, 0x00040071u, 0x00000006u, 0x000036dbu, 0x000036dau, 0x000500c2u, + 0x00000006u, 0x000036deu, 0x000036dbu, 0x000036cdu, 0x000500c7u, 0x00000006u, 0x000036dfu, 0x000036deu, + 0x00000e7cu, 0x000500c5u, 0x00000006u, 0x000036e3u, 0x000036dfu, 0x0000366bu, 0x000500c4u, 0x00000006u, + 0x000036e5u, 0x000036e3u, 0x0000021au, 0x00050080u, 0x00000006u, 0x000036e7u, 0x000036e5u, 0x0000048au, + 0x000500c6u, 0x00000006u, 0x000036eau, 0x000036e7u, 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x000036edu, + 0x00000f3cu, 0x000036eau, 0x00080041u, 0x00000275u, 0x000036eeu, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x000036edu, 0x0004003du, 0x00000230u, 0x000036efu, 0x000036eeu, 0x00040071u, 0x00000006u, + 0x000036f0u, 0x000036efu, 0x000300f7u, 0x000036f8u, 0x00000000u, 0x000400fau, 0x00002246u, 0x000036f2u, + 0x000036f5u, 0x000200f8u, 0x000036f5u, 0x00060050u, 0x00000358u, 0x00003710u, 0x000036f0u, 0x000036f0u, + 0x000036f0u, 0x000500c2u, 0x00000358u, 0x00003711u, 0x00003710u, 0x00000e20u, 0x000500c7u, 0x00000358u, + 0x00003713u, 0x00003711u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00003716u, 0x00003713u, 0x0000bdb0u, + 0x000500c2u, 0x00000358u, 0x00003719u, 0x00003713u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x0000371au, + 0x00003716u, 0x00003719u, 0x000500c7u, 0x00000006u, 0x0000371cu, 0x000036f0u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x0000371du, 0x0000371cu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000371fu, 0x0000371au, + 0x0004007cu, 0x00000008u, 0x00003721u, 0x0000371du, 0x00050051u, 0x00000008u, 0x00003722u, 0x0000371fu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00003723u, 0x0000371fu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00003724u, 0x0000371fu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00003725u, 0x00003722u, 0x00003723u, + 0x00003724u, 0x00003721u, 0x000200f9u, 0x000036f8u, 0x000200f8u, 0x000036f2u, 0x000500c2u, 0x00000006u, + 0x000036ffu, 0x000036f0u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003701u, 0x000036f0u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00003703u, 0x000036ffu, 0x0004007cu, 0x00000008u, 0x00003709u, 0x00003701u, + 0x00070050u, 0x00000009u, 0x0000370au, 0x00003703u, 0x00003703u, 0x00003703u, 0x00003709u, 0x000200f9u, + 0x000036f8u, 0x000200f8u, 0x000036f8u, 0x000700f5u, 0x00000009u, 0x000077abu, 0x0000370au, 0x000036f2u, + 0x00003725u, 0x000036f5u, 0x00050050u, 0x0000005fu, 0x00002fbbu, 0x00007747u, 0x0000bde0u, 0x0004007cu, + 0x000000a6u, 0x00002fbcu, 0x00002fbbu, 0x00050051u, 0x00000006u, 0x00003735u, 0x00002fbcu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003736u, 0x00002d6bu, 0x00003735u, 0x00050080u, 0x00000006u, 0x00003737u, + 0x00002d68u, 0x00003736u, 0x00050051u, 0x00000006u, 0x00003739u, 0x00002fbcu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x0000373au, 0x00003739u, 0x00000217u, 0x00050080u, 0x00000006u, 0x0000373cu, 0x00003737u, + 0x0000373au, 0x000500c7u, 0x00000006u, 0x0000373eu, 0x0000373cu, 0x00000f0bu, 0x000400c8u, 0x00000006u, + 0x00003741u, 0x00003739u, 0x000500c7u, 0x00000006u, 0x00003742u, 0x00003741u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003743u, 0x00003742u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003747u, 0x00003735u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003748u, 0x00003747u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x0000374au, 0x0000373eu, 0x00003748u, 0x000500c6u, 0x00000006u, 0x0000374cu, 0x0000374au, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x0000374fu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x0000374cu, + 0x0004003du, 0x0000022eu, 0x00003750u, 0x0000374fu, 0x00040071u, 0x00000006u, 0x00003751u, 0x00003750u, + 0x000500c2u, 0x00000006u, 0x00003754u, 0x00003751u, 0x00003743u, 0x000500c7u, 0x00000006u, 0x00003755u, + 0x00003754u, 0x00000e7cu, 0x000500c5u, 0x00000006u, 0x00003759u, 0x00003755u, 0x0000366bu, 0x000500c4u, + 0x00000006u, 0x0000375bu, 0x00003759u, 0x0000021au, 0x00050080u, 0x00000006u, 0x0000375du, 0x0000375bu, + 0x000003c9u, 0x000500c6u, 0x00000006u, 0x00003760u, 0x0000375du, 0x00002f6eu, 0x000500c5u, 0x00000006u, + 0x00003763u, 0x00000f3cu, 0x00003760u, 0x00080041u, 0x00000275u, 0x00003764u, 0x00000f3au, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00003763u, 0x0004003du, 0x00000230u, 0x00003765u, 0x00003764u, 0x00040071u, + 0x00000006u, 0x00003766u, 0x00003765u, 0x000300f7u, 0x0000376eu, 0x00000000u, 0x000400fau, 0x00002246u, + 0x00003768u, 0x0000376bu, 0x000200f8u, 0x0000376bu, 0x00060050u, 0x00000358u, 0x00003786u, 0x00003766u, + 0x00003766u, 0x00003766u, 0x000500c2u, 0x00000358u, 0x00003787u, 0x00003786u, 0x00000e20u, 0x000500c7u, + 0x00000358u, 0x00003789u, 0x00003787u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x0000378cu, 0x00003789u, + 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x0000378fu, 0x00003789u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, + 0x00003790u, 0x0000378cu, 0x0000378fu, 0x000500c7u, 0x00000006u, 0x00003792u, 0x00003766u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x00003793u, 0x00003792u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003795u, + 0x00003790u, 0x0004007cu, 0x00000008u, 0x00003797u, 0x00003793u, 0x00050051u, 0x00000008u, 0x00003798u, + 0x00003795u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00003799u, 0x00003795u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x0000379au, 0x00003795u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000379bu, 0x00003798u, + 0x00003799u, 0x0000379au, 0x00003797u, 0x000200f9u, 0x0000376eu, 0x000200f8u, 0x00003768u, 0x000500c2u, + 0x00000006u, 0x00003775u, 0x00003766u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003777u, 0x00003766u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003779u, 0x00003775u, 0x0004007cu, 0x00000008u, 0x0000377fu, + 0x00003777u, 0x00070050u, 0x00000009u, 0x00003780u, 0x00003779u, 0x00003779u, 0x00003779u, 0x0000377fu, + 0x000200f9u, 0x0000376eu, 0x000200f8u, 0x0000376eu, 0x000700f5u, 0x00000009u, 0x000077aeu, 0x00003780u, + 0x00003768u, 0x0000379bu, 0x0000376bu, 0x000200f9u, 0x00002fc5u, 0x000200f8u, 0x00002fc5u, 0x000700f5u, + 0x00000009u, 0x00007988u, 0x00007952u, 0x00003682u, 0x000077aeu, 0x0000376eu, 0x000700f5u, 0x00000009u, + 0x00007908u, 0x000078d1u, 0x00003682u, 0x000077abu, 0x0000376eu, 0x000300f7u, 0x00002fd4u, 0x00000000u, + 0x000400fau, 0x00002f40u, 0x00002fc7u, 0x00002fd4u, 0x000200f8u, 0x00002fc7u, 0x00050050u, 0x0000005fu, + 0x00002fcau, 0x0000bde1u, 0x0000bde0u, 0x0004007cu, 0x000000a6u, 0x00002fcbu, 0x00002fcau, 0x00050051u, + 0x00000006u, 0x000037abu, 0x00002fcbu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000037acu, 0x00002d6bu, + 0x000037abu, 0x00050080u, 0x00000006u, 0x000037adu, 0x00002d68u, 0x000037acu, 0x00050051u, 0x00000006u, + 0x000037afu, 0x00002fcbu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000037b0u, 0x000037afu, 0x00000217u, + 0x00050080u, 0x00000006u, 0x000037b2u, 0x000037adu, 0x000037b0u, 0x000500c7u, 0x00000006u, 0x000037b4u, + 0x000037b2u, 0x00000f0bu, 0x000400c8u, 0x00000006u, 0x000037b7u, 0x000037afu, 0x000500c7u, 0x00000006u, + 0x000037b8u, 0x000037b7u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000037b9u, 0x000037b8u, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x000037bdu, 0x000037abu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000037beu, + 0x000037bdu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000037c0u, 0x000037b4u, 0x000037beu, 0x000500c6u, + 0x00000006u, 0x000037c2u, 0x000037c0u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000037c5u, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x000037c2u, 0x0004003du, 0x0000022eu, 0x000037c6u, 0x000037c5u, + 0x00040071u, 0x00000006u, 0x000037c7u, 0x000037c6u, 0x000500c2u, 0x00000006u, 0x000037cau, 0x000037c7u, + 0x000037b9u, 0x000500c7u, 0x00000006u, 0x000037cbu, 0x000037cau, 0x00000e7cu, 0x000500c5u, 0x00000006u, + 0x000037cfu, 0x000037cbu, 0x0000366bu, 0x000500c4u, 0x00000006u, 0x000037d1u, 0x000037cfu, 0x0000021au, + 0x00050080u, 0x00000006u, 0x000037d3u, 0x000037d1u, 0x00000490u, 0x000500c6u, 0x00000006u, 0x000037d6u, + 0x000037d3u, 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x000037d9u, 0x00000f3cu, 0x000037d6u, 0x00080041u, + 0x00000275u, 0x000037dau, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x000037d9u, 0x0004003du, + 0x00000230u, 0x000037dbu, 0x000037dau, 0x00040071u, 0x00000006u, 0x000037dcu, 0x000037dbu, 0x000300f7u, + 0x000037e4u, 0x00000000u, 0x000400fau, 0x00002246u, 0x000037deu, 0x000037e1u, 0x000200f8u, 0x000037e1u, + 0x00060050u, 0x00000358u, 0x000037fcu, 0x000037dcu, 0x000037dcu, 0x000037dcu, 0x000500c2u, 0x00000358u, + 0x000037fdu, 0x000037fcu, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x000037ffu, 0x000037fdu, 0x0000bdafu, + 0x000500c4u, 0x00000358u, 0x00003802u, 0x000037ffu, 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x00003805u, + 0x000037ffu, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00003806u, 0x00003802u, 0x00003805u, 0x000500c7u, + 0x00000006u, 0x00003808u, 0x000037dcu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003809u, 0x00003808u, + 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000380bu, 0x00003806u, 0x0004007cu, 0x00000008u, 0x0000380du, + 0x00003809u, 0x00050051u, 0x00000008u, 0x0000380eu, 0x0000380bu, 0x00000000u, 0x00050051u, 0x00000008u, + 0x0000380fu, 0x0000380bu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003810u, 0x0000380bu, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00003811u, 0x0000380eu, 0x0000380fu, 0x00003810u, 0x0000380du, 0x000200f9u, + 0x000037e4u, 0x000200f8u, 0x000037deu, 0x000500c2u, 0x00000006u, 0x000037ebu, 0x000037dcu, 0x00000263u, + 0x000500c7u, 0x00000006u, 0x000037edu, 0x000037dcu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000037efu, + 0x000037ebu, 0x0004007cu, 0x00000008u, 0x000037f5u, 0x000037edu, 0x00070050u, 0x00000009u, 0x000037f6u, + 0x000037efu, 0x000037efu, 0x000037efu, 0x000037f5u, 0x000200f9u, 0x000037e4u, 0x000200f8u, 0x000037e4u, + 0x000700f5u, 0x00000009u, 0x000077b4u, 0x000037f6u, 0x000037deu, 0x00003811u, 0x000037e1u, 0x000200f9u, + 0x00002fd4u, 0x000200f8u, 0x00002fd4u, 0x000700f5u, 0x00000009u, 0x00007a03u, 0x000079cdu, 0x00002fc5u, + 0x000077b4u, 0x000037e4u, 0x000200f9u, 0x00003001u, 0x000200f8u, 0x00002f71u, 0x0004007cu, 0x000000a6u, + 0x00002f73u, 0x00007794u, 0x000600a9u, 0x00000008u, 0x00002f75u, 0x00002f4au, 0x0000021du, 0x00000208u, + 0x0004007cu, 0x00000006u, 0x00002f76u, 0x00002f75u, 0x00050051u, 0x00000006u, 0x000034a0u, 0x00002f73u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000034a1u, 0x00002d6bu, 0x000034a0u, 0x00050080u, 0x00000006u, + 0x000034a2u, 0x00002d68u, 0x000034a1u, 0x00050051u, 0x00000006u, 0x000034a4u, 0x00002f73u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x000034a5u, 0x000034a4u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000034a7u, + 0x000034a2u, 0x000034a5u, 0x000500c7u, 0x00000006u, 0x000034a9u, 0x000034a7u, 0x00000f0bu, 0x000500c2u, + 0x00000006u, 0x000034abu, 0x000034a9u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000034aeu, 0x000034a0u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x000034afu, 0x000034aeu, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x000034b1u, 0x000034abu, 0x000034afu, 0x000500c6u, 0x00000006u, 0x000034b3u, 0x000034b1u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x000034b6u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x000034b3u, + 0x0004003du, 0x00000230u, 0x000034b7u, 0x000034b6u, 0x00040071u, 0x00000006u, 0x000034b8u, 0x000034b7u, + 0x000500c2u, 0x00000006u, 0x000034bau, 0x000034b8u, 0x00000226u, 0x000500c7u, 0x00000006u, 0x000034bbu, + 0x000034bau, 0x00000fdau, 0x00050080u, 0x00000006u, 0x000034bdu, 0x000034bbu, 0x00002f76u, 0x000500c6u, + 0x00000006u, 0x000034c0u, 0x000034bdu, 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x000034c3u, 0x00000f3cu, + 0x000034c0u, 0x00080041u, 0x00000275u, 0x000034c4u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x000034c3u, 0x0004003du, 0x00000230u, 0x000034c5u, 0x000034c4u, 0x00040071u, 0x00000006u, 0x000034c6u, + 0x000034c5u, 0x000300f7u, 0x000034ceu, 0x00000000u, 0x000400fau, 0x00002246u, 0x000034c8u, 0x000034cbu, + 0x000200f8u, 0x000034cbu, 0x00060050u, 0x00000358u, 0x000034e6u, 0x000034c6u, 0x000034c6u, 0x000034c6u, + 0x000500c2u, 0x00000358u, 0x000034e7u, 0x000034e6u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x000034e9u, + 0x000034e7u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x000034ecu, 0x000034e9u, 0x0000bdb0u, 0x000500c2u, + 0x00000358u, 0x000034efu, 0x000034e9u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x000034f0u, 0x000034ecu, + 0x000034efu, 0x000500c7u, 0x00000006u, 0x000034f2u, 0x000034c6u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x000034f3u, 0x000034f2u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000034f5u, 0x000034f0u, 0x0004007cu, + 0x00000008u, 0x000034f7u, 0x000034f3u, 0x00050051u, 0x00000008u, 0x000034f8u, 0x000034f5u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000034f9u, 0x000034f5u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000034fau, + 0x000034f5u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000034fbu, 0x000034f8u, 0x000034f9u, 0x000034fau, + 0x000034f7u, 0x000200f9u, 0x000034ceu, 0x000200f8u, 0x000034c8u, 0x000500c2u, 0x00000006u, 0x000034d5u, + 0x000034c6u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000034d7u, 0x000034c6u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000034d9u, 0x000034d5u, 0x0004007cu, 0x00000008u, 0x000034dfu, 0x000034d7u, 0x00070050u, + 0x00000009u, 0x000034e0u, 0x000034d9u, 0x000034d9u, 0x000034d9u, 0x000034dfu, 0x000200f9u, 0x000034ceu, + 0x000200f8u, 0x000034ceu, 0x000700f5u, 0x00000009u, 0x000077b5u, 0x000034e0u, 0x000034c8u, 0x000034fbu, + 0x000034cbu, 0x000300f7u, 0x00002f90u, 0x00000000u, 0x000400fau, 0x00002285u, 0x00002f7du, 0x00002f90u, + 0x000200f8u, 0x00002f7du, 0x00050050u, 0x0000005fu, 0x00002f80u, 0x0000bde1u, 0x00002f34u, 0x0004007cu, + 0x000000a6u, 0x00002f81u, 0x00002f80u, 0x00050051u, 0x00000006u, 0x0000350au, 0x00002f81u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000350bu, 0x00002d6bu, 0x0000350au, 0x00050080u, 0x00000006u, 0x0000350cu, + 0x00002d68u, 0x0000350bu, 0x00050051u, 0x00000006u, 0x0000350eu, 0x00002f81u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x0000350fu, 0x0000350eu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003511u, 0x0000350cu, + 0x0000350fu, 0x000500c7u, 0x00000006u, 0x00003513u, 0x00003511u, 0x00000f0bu, 0x000500c2u, 0x00000006u, + 0x00003515u, 0x00003513u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003518u, 0x0000350au, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00003519u, 0x00003518u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x0000351bu, + 0x00003515u, 0x00003519u, 0x000500c6u, 0x00000006u, 0x0000351du, 0x0000351bu, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00003520u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x0000351du, 0x0004003du, + 0x00000230u, 0x00003521u, 0x00003520u, 0x00040071u, 0x00000006u, 0x00003522u, 0x00003521u, 0x000500c2u, + 0x00000006u, 0x00003524u, 0x00003522u, 0x00000226u, 0x000500c7u, 0x00000006u, 0x00003525u, 0x00003524u, + 0x00000fdau, 0x00050080u, 0x00000006u, 0x00003527u, 0x00003525u, 0x0000048au, 0x000500c6u, 0x00000006u, + 0x0000352au, 0x00003527u, 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x0000352du, 0x00000f3cu, 0x0000352au, + 0x00080041u, 0x00000275u, 0x0000352eu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x0000352du, + 0x0004003du, 0x00000230u, 0x0000352fu, 0x0000352eu, 0x00040071u, 0x00000006u, 0x00003530u, 0x0000352fu, + 0x000300f7u, 0x00003538u, 0x00000000u, 0x000400fau, 0x00002246u, 0x00003532u, 0x00003535u, 0x000200f8u, + 0x00003535u, 0x00060050u, 0x00000358u, 0x00003550u, 0x00003530u, 0x00003530u, 0x00003530u, 0x000500c2u, + 0x00000358u, 0x00003551u, 0x00003550u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00003553u, 0x00003551u, + 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00003556u, 0x00003553u, 0x0000bdb0u, 0x000500c2u, 0x00000358u, + 0x00003559u, 0x00003553u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x0000355au, 0x00003556u, 0x00003559u, + 0x000500c7u, 0x00000006u, 0x0000355cu, 0x00003530u, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000355du, + 0x0000355cu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000355fu, 0x0000355au, 0x0004007cu, 0x00000008u, + 0x00003561u, 0x0000355du, 0x00050051u, 0x00000008u, 0x00003562u, 0x0000355fu, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00003563u, 0x0000355fu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003564u, 0x0000355fu, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00003565u, 0x00003562u, 0x00003563u, 0x00003564u, 0x00003561u, + 0x000200f9u, 0x00003538u, 0x000200f8u, 0x00003532u, 0x000500c2u, 0x00000006u, 0x0000353fu, 0x00003530u, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003541u, 0x00003530u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00003543u, 0x0000353fu, 0x0004007cu, 0x00000008u, 0x00003549u, 0x00003541u, 0x00070050u, 0x00000009u, + 0x0000354au, 0x00003543u, 0x00003543u, 0x00003543u, 0x00003549u, 0x000200f9u, 0x00003538u, 0x000200f8u, + 0x00003538u, 0x000700f5u, 0x00000009u, 0x000077b8u, 0x0000354au, 0x00003532u, 0x00003565u, 0x00003535u, + 0x00050050u, 0x0000005fu, 0x00002f89u, 0x00007747u, 0x0000bde0u, 0x0004007cu, 0x000000a6u, 0x00002f8au, + 0x00002f89u, 0x00050051u, 0x00000006u, 0x00003574u, 0x00002f8au, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003575u, 0x00002d6bu, 0x00003574u, 0x00050080u, 0x00000006u, 0x00003576u, 0x00002d68u, 0x00003575u, + 0x00050051u, 0x00000006u, 0x00003578u, 0x00002f8au, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003579u, + 0x00003578u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x0000357bu, 0x00003576u, 0x00003579u, 0x000500c7u, + 0x00000006u, 0x0000357du, 0x0000357bu, 0x00000f0bu, 0x000500c2u, 0x00000006u, 0x0000357fu, 0x0000357du, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003582u, 0x00003574u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00003583u, 0x00003582u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003585u, 0x0000357fu, 0x00003583u, + 0x000500c6u, 0x00000006u, 0x00003587u, 0x00003585u, 0x0000048au, 0x00080041u, 0x00000275u, 0x0000358au, + 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003587u, 0x0004003du, 0x00000230u, 0x0000358bu, + 0x0000358au, 0x00040071u, 0x00000006u, 0x0000358cu, 0x0000358bu, 0x000500c2u, 0x00000006u, 0x0000358eu, + 0x0000358cu, 0x00000226u, 0x000500c7u, 0x00000006u, 0x0000358fu, 0x0000358eu, 0x00000fdau, 0x00050080u, + 0x00000006u, 0x00003591u, 0x0000358fu, 0x000003c9u, 0x000500c6u, 0x00000006u, 0x00003594u, 0x00003591u, + 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x00003597u, 0x00000f3cu, 0x00003594u, 0x00080041u, 0x00000275u, + 0x00003598u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003597u, 0x0004003du, 0x00000230u, + 0x00003599u, 0x00003598u, 0x00040071u, 0x00000006u, 0x0000359au, 0x00003599u, 0x000300f7u, 0x000035a2u, + 0x00000000u, 0x000400fau, 0x00002246u, 0x0000359cu, 0x0000359fu, 0x000200f8u, 0x0000359fu, 0x00060050u, + 0x00000358u, 0x000035bau, 0x0000359au, 0x0000359au, 0x0000359au, 0x000500c2u, 0x00000358u, 0x000035bbu, + 0x000035bau, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x000035bdu, 0x000035bbu, 0x0000bdafu, 0x000500c4u, + 0x00000358u, 0x000035c0u, 0x000035bdu, 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x000035c3u, 0x000035bdu, + 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x000035c4u, 0x000035c0u, 0x000035c3u, 0x000500c7u, 0x00000006u, + 0x000035c6u, 0x0000359au, 0x0000048au, 0x00050084u, 0x00000006u, 0x000035c7u, 0x000035c6u, 0x000006c7u, + 0x0004007cu, 0x0000003cu, 0x000035c9u, 0x000035c4u, 0x0004007cu, 0x00000008u, 0x000035cbu, 0x000035c7u, + 0x00050051u, 0x00000008u, 0x000035ccu, 0x000035c9u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000035cdu, + 0x000035c9u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000035ceu, 0x000035c9u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x000035cfu, 0x000035ccu, 0x000035cdu, 0x000035ceu, 0x000035cbu, 0x000200f9u, 0x000035a2u, + 0x000200f8u, 0x0000359cu, 0x000500c2u, 0x00000006u, 0x000035a9u, 0x0000359au, 0x00000263u, 0x000500c7u, + 0x00000006u, 0x000035abu, 0x0000359au, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000035adu, 0x000035a9u, + 0x0004007cu, 0x00000008u, 0x000035b3u, 0x000035abu, 0x00070050u, 0x00000009u, 0x000035b4u, 0x000035adu, + 0x000035adu, 0x000035adu, 0x000035b3u, 0x000200f9u, 0x000035a2u, 0x000200f8u, 0x000035a2u, 0x000700f5u, + 0x00000009u, 0x000077bbu, 0x000035b4u, 0x0000359cu, 0x000035cfu, 0x0000359fu, 0x000200f9u, 0x00002f90u, + 0x000200f8u, 0x00002f90u, 0x000700f5u, 0x00000009u, 0x00007983u, 0x00007952u, 0x000034ceu, 0x000077bbu, + 0x000035a2u, 0x000700f5u, 0x00000009u, 0x00007902u, 0x000078d1u, 0x000034ceu, 0x000077b8u, 0x000035a2u, + 0x000300f7u, 0x00002f9cu, 0x00000000u, 0x000400fau, 0x00002f40u, 0x00002f92u, 0x00002f9cu, 0x000200f8u, + 0x00002f92u, 0x00050050u, 0x0000005fu, 0x00002f95u, 0x0000bde1u, 0x0000bde0u, 0x0004007cu, 0x000000a6u, + 0x00002f96u, 0x00002f95u, 0x00050051u, 0x00000006u, 0x000035deu, 0x00002f96u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000035dfu, 0x00002d6bu, 0x000035deu, 0x00050080u, 0x00000006u, 0x000035e0u, 0x00002d68u, + 0x000035dfu, 0x00050051u, 0x00000006u, 0x000035e2u, 0x00002f96u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000035e3u, 0x000035e2u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000035e5u, 0x000035e0u, 0x000035e3u, + 0x000500c7u, 0x00000006u, 0x000035e7u, 0x000035e5u, 0x00000f0bu, 0x000500c2u, 0x00000006u, 0x000035e9u, + 0x000035e7u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000035ecu, 0x000035deu, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x000035edu, 0x000035ecu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x000035efu, 0x000035e9u, + 0x000035edu, 0x000500c6u, 0x00000006u, 0x000035f1u, 0x000035efu, 0x0000048au, 0x00080041u, 0x00000275u, + 0x000035f4u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x000035f1u, 0x0004003du, 0x00000230u, + 0x000035f5u, 0x000035f4u, 0x00040071u, 0x00000006u, 0x000035f6u, 0x000035f5u, 0x000500c2u, 0x00000006u, + 0x000035f8u, 0x000035f6u, 0x00000226u, 0x000500c7u, 0x00000006u, 0x000035f9u, 0x000035f8u, 0x00000fdau, + 0x00050080u, 0x00000006u, 0x000035fbu, 0x000035f9u, 0x00000490u, 0x000500c6u, 0x00000006u, 0x000035feu, + 0x000035fbu, 0x00002f6eu, 0x000500c5u, 0x00000006u, 0x00003601u, 0x00000f3cu, 0x000035feu, 0x00080041u, + 0x00000275u, 0x00003602u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00003601u, 0x0004003du, + 0x00000230u, 0x00003603u, 0x00003602u, 0x00040071u, 0x00000006u, 0x00003604u, 0x00003603u, 0x000300f7u, + 0x0000360cu, 0x00000000u, 0x000400fau, 0x00002246u, 0x00003606u, 0x00003609u, 0x000200f8u, 0x00003609u, + 0x00060050u, 0x00000358u, 0x00003624u, 0x00003604u, 0x00003604u, 0x00003604u, 0x000500c2u, 0x00000358u, + 0x00003625u, 0x00003624u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00003627u, 0x00003625u, 0x0000bdafu, + 0x000500c4u, 0x00000358u, 0x0000362au, 0x00003627u, 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x0000362du, + 0x00003627u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x0000362eu, 0x0000362au, 0x0000362du, 0x000500c7u, + 0x00000006u, 0x00003630u, 0x00003604u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003631u, 0x00003630u, + 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003633u, 0x0000362eu, 0x0004007cu, 0x00000008u, 0x00003635u, + 0x00003631u, 0x00050051u, 0x00000008u, 0x00003636u, 0x00003633u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00003637u, 0x00003633u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003638u, 0x00003633u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00003639u, 0x00003636u, 0x00003637u, 0x00003638u, 0x00003635u, 0x000200f9u, + 0x0000360cu, 0x000200f8u, 0x00003606u, 0x000500c2u, 0x00000006u, 0x00003613u, 0x00003604u, 0x00000263u, + 0x000500c7u, 0x00000006u, 0x00003615u, 0x00003604u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003617u, + 0x00003613u, 0x0004007cu, 0x00000008u, 0x0000361du, 0x00003615u, 0x00070050u, 0x00000009u, 0x0000361eu, + 0x00003617u, 0x00003617u, 0x00003617u, 0x0000361du, 0x000200f9u, 0x0000360cu, 0x000200f8u, 0x0000360cu, + 0x000700f5u, 0x00000009u, 0x000077c1u, 0x0000361eu, 0x00003606u, 0x00003639u, 0x00003609u, 0x000200f9u, + 0x00002f9cu, 0x000200f8u, 0x00002f9cu, 0x000700f5u, 0x00000009u, 0x000079fdu, 0x000079cdu, 0x00002f90u, + 0x000077c1u, 0x0000360cu, 0x000200f9u, 0x00003001u, 0x000200f8u, 0x00003001u, 0x000900f5u, 0x00000009u, + 0x000079fcu, 0x000079fdu, 0x00002f9cu, 0x00007a03u, 0x00002fd4u, 0x00007a08u, 0x00003000u, 0x000900f5u, + 0x00000009u, 0x00007981u, 0x00007983u, 0x00002f9cu, 0x00007988u, 0x00002fd4u, 0x0000798cu, 0x00003000u, + 0x000900f5u, 0x00000009u, 0x00007900u, 0x00007902u, 0x00002f9cu, 0x00007908u, 0x00002fd4u, 0x0000790du, + 0x00003000u, 0x000900f5u, 0x00000009u, 0x0000780eu, 0x000077b5u, 0x00002f9cu, 0x000077a8u, 0x00002fd4u, + 0x00007795u, 0x00003000u, 0x000200f9u, 0x00003002u, 0x000200f8u, 0x00003002u, 0x000700f5u, 0x00000009u, + 0x000079b2u, 0x000079cdu, 0x00002f66u, 0x000079fcu, 0x00003001u, 0x000700f5u, 0x00000009u, 0x00007937u, + 0x00007952u, 0x00002f66u, 0x00007981u, 0x00003001u, 0x000700f5u, 0x00000009u, 0x000078b6u, 0x000078d1u, + 0x00002f66u, 0x00007900u, 0x00003001u, 0x000700f5u, 0x00000009u, 0x000077c4u, 0x000077dfu, 0x00002f66u, + 0x0000780eu, 0x00003001u, 0x000200f9u, 0x0000321fu, 0x000200f8u, 0x0000321fu, 0x000700f5u, 0x00000009u, + 0x000079b1u, 0x000079b2u, 0x00003002u, 0x00007a0du, 0x0000321eu, 0x000700f5u, 0x00000009u, 0x00007936u, + 0x00007937u, 0x00003002u, 0x0000798fu, 0x0000321eu, 0x000700f5u, 0x00000009u, 0x000078b5u, 0x000078b6u, + 0x00003002u, 0x00007911u, 0x0000321eu, 0x000700f5u, 0x00000009u, 0x000077c3u, 0x000077c4u, 0x00003002u, + 0x0000781eu, 0x0000321eu, 0x000300f7u, 0x000033b1u, 0x00000000u, 0x000400fau, 0x00002f48u, 0x000032fcu, + 0x0000336fu, 0x000200f8u, 0x0000336fu, 0x000300f7u, 0x000033b0u, 0x00000000u, 0x000400fau, 0x00002f40u, + 0x00003371u, 0x0000337du, 0x000200f8u, 0x0000337du, 0x000600a9u, 0x0000005du, 0x0000bde2u, 0x00002285u, + 0x00002f0eu, 0x00002285u, 0x000300f7u, 0x000033afu, 0x00000000u, 0x000400fau, 0x0000bde2u, 0x00003385u, + 0x000033adu, 0x000200f8u, 0x000033adu, 0x000200f9u, 0x000033afu, 0x000200f8u, 0x00003385u, 0x000300f7u, + 0x0000338fu, 0x00000000u, 0x000400fau, 0x00002f4au, 0x00003388u, 0x0000338du, 0x000200f8u, 0x0000338du, + 0x000200f9u, 0x0000338fu, 0x000200f8u, 0x00003388u, 0x0007004fu, 0x0000005fu, 0x0000338au, 0x00007744u, + 0x00007744u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000005fu, 0x0000338cu, 0x0000bdb5u, 0x0000338au, + 0x000200f9u, 0x0000338fu, 0x000200f8u, 0x0000338fu, 0x000700f5u, 0x0000005fu, 0x000078b2u, 0x0000338cu, + 0x00003388u, 0x00007744u, 0x0000338du, 0x00050082u, 0x00000009u, 0x00003396u, 0x000078b5u, 0x000077c3u, + 0x00050051u, 0x00000008u, 0x00003398u, 0x000078b2u, 0x00000000u, 0x00070050u, 0x00000009u, 0x00003399u, + 0x00003398u, 0x00003398u, 0x00003398u, 0x00003398u, 0x00050084u, 0x00000009u, 0x0000339au, 0x00003396u, + 0x00003399u, 0x00050082u, 0x00000009u, 0x0000339du, 0x00007936u, 0x000077c3u, 0x00050051u, 0x00000008u, + 0x0000339fu, 0x000078b2u, 0x00000001u, 0x00070050u, 0x00000009u, 0x000033a0u, 0x0000339fu, 0x0000339fu, + 0x0000339fu, 0x0000339fu, 0x00050084u, 0x00000009u, 0x000033a1u, 0x0000339du, 0x000033a0u, 0x00050080u, + 0x00000009u, 0x000033a3u, 0x0000339au, 0x000033a1u, 0x00050080u, 0x00000009u, 0x000033a6u, 0x000033a3u, + 0x0000bdb6u, 0x000500c3u, 0x00000009u, 0x000033a9u, 0x000033a6u, 0x0000bdb7u, 0x00050080u, 0x00000009u, + 0x000033acu, 0x000033a9u, 0x000077c3u, 0x000200f9u, 0x000033afu, 0x000200f8u, 0x000033afu, 0x000700f5u, + 0x00000009u, 0x00007a72u, 0x000033acu, 0x0000338fu, 0x000077c3u, 0x000033adu, 0x000200f9u, 0x000033b0u, + 0x000200f8u, 0x00003371u, 0x00050080u, 0x00000009u, 0x00003374u, 0x000077c3u, 0x00007936u, 0x00050080u, + 0x00000009u, 0x00003376u, 0x00003374u, 0x000078b5u, 0x00050080u, 0x00000009u, 0x00003378u, 0x00003376u, + 0x000079b1u, 0x00050080u, 0x00000009u, 0x0000337au, 0x00003378u, 0x0000bdb2u, 0x000500c3u, 0x00000009u, + 0x0000337cu, 0x0000337au, 0x0000bdb2u, 0x000200f9u, 0x000033b0u, 0x000200f8u, 0x000033b0u, 0x000700f5u, + 0x00000009u, 0x00007a71u, 0x0000337cu, 0x00003371u, 0x00007a72u, 0x000033afu, 0x000200f9u, 0x000033b1u, + 0x000200f8u, 0x000032fcu, 0x000300f7u, 0x0000336eu, 0x00000000u, 0x000400fau, 0x00002249u, 0x000032feu, + 0x0000336cu, 0x000200f8u, 0x0000336cu, 0x000200f9u, 0x0000336eu, 0x000200f8u, 0x000032feu, 0x000300f7u, + 0x00003364u, 0x00000000u, 0x000400fau, 0x00002285u, 0x00003300u, 0x00003348u, 0x000200f8u, 0x00003348u, + 0x000300f7u, 0x00003355u, 0x00000000u, 0x000400fau, 0x00002f42u, 0x0000334fu, 0x00003352u, 0x000200f8u, + 0x00003352u, 0x0007004fu, 0x0000005fu, 0x00003354u, 0x000077c3u, 0x000077c3u, 0x00000002u, 0x00000003u, + 0x000200f9u, 0x00003355u, 0x000200f8u, 0x0000334fu, 0x0007004fu, 0x0000005fu, 0x00003351u, 0x000079b1u, + 0x000079b1u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00003355u, 0x000200f8u, 0x00003355u, 0x000700f5u, + 0x0000005fu, 0x00007a2fu, 0x00003351u, 0x0000334fu, 0x00003354u, 0x00003352u, 0x00050080u, 0x00000008u, + 0x0000335au, 0x00002f5bu, 0x00002f18u, 0x000500afu, 0x0000005du, 0x0000335bu, 0x0000335au, 0x00000382u, + 0x000300f7u, 0x00003362u, 0x00000000u, 0x000400fau, 0x0000335bu, 0x0000335cu, 0x0000335fu, 0x000200f8u, + 0x0000335fu, 0x0007004fu, 0x0000005fu, 0x00003361u, 0x000077c3u, 0x000077c3u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00003362u, 0x000200f8u, 0x0000335cu, 0x0007004fu, 0x0000005fu, 0x0000335eu, 0x000079b1u, + 0x000079b1u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003362u, 0x000200f8u, 0x00003362u, 0x000700f5u, + 0x0000005fu, 0x00007a33u, 0x0000335eu, 0x0000335cu, 0x00003361u, 0x0000335fu, 0x000200f9u, 0x00003364u, + 0x000200f8u, 0x00003300u, 0x00050050u, 0x0000005fu, 0x00003305u, 0x00002f5bu, 0x00002f18u, 0x000500aau, + 0x00000880u, 0x00003306u, 0x00003305u, 0x000013acu, 0x00050051u, 0x0000005du, 0x00003307u, 0x00003306u, + 0x00000000u, 0x00050051u, 0x0000005du, 0x00003308u, 0x00003306u, 0x00000001u, 0x00060050u, 0x000003a6u, + 0x00003309u, 0x00002273u, 0x00003307u, 0x00003308u, 0x0004009bu, 0x0000005du, 0x0000330au, 0x00003309u, + 0x000300f7u, 0x0000332au, 0x00000000u, 0x000400fau, 0x0000330au, 0x0000330cu, 0x0000331cu, 0x000200f8u, + 0x0000331cu, 0x0007004fu, 0x0000005fu, 0x00003322u, 0x000077c3u, 0x000077c3u, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x0000005fu, 0x00003324u, 0x000078b5u, 0x000078b5u, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x0000005fu, 0x00003326u, 0x00007936u, 0x00007936u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000005fu, + 0x00003328u, 0x000079b1u, 0x000079b1u, 0x00000000u, 0x00000001u, 0x00050080u, 0x00000008u, 0x000045a5u, + 0x00002f5bu, 0x00002f18u, 0x000500afu, 0x0000005du, 0x000045a7u, 0x000045a5u, 0x00000382u, 0x00050050u, + 0x00000880u, 0x000045aau, 0x000045a7u, 0x000045a7u, 0x000600a9u, 0x0000005fu, 0x000045abu, 0x000045aau, + 0x00003328u, 0x00003322u, 0x000300f7u, 0x000045b5u, 0x00000000u, 0x000400fau, 0x000045a7u, 0x000045aeu, + 0x000045b3u, 0x000200f8u, 0x000045b3u, 0x000200f9u, 0x000045b5u, 0x000200f8u, 0x000045aeu, 0x0007004fu, + 0x0000005fu, 0x000045b0u, 0x00003305u, 0x00003305u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000005fu, + 0x000045b2u, 0x0000bdb5u, 0x000045b0u, 0x000200f9u, 0x000045b5u, 0x000200f8u, 0x000045b5u, 0x000700f5u, + 0x0000005fu, 0x00007a34u, 0x000045b2u, 0x000045aeu, 0x00003305u, 0x000045b3u, 0x00050082u, 0x0000005fu, + 0x000045bcu, 0x00003324u, 0x000045abu, 0x00050051u, 0x00000008u, 0x000045beu, 0x00007a34u, 0x00000000u, + 0x00050050u, 0x0000005fu, 0x000045bfu, 0x000045beu, 0x000045beu, 0x00050084u, 0x0000005fu, 0x000045c0u, + 0x000045bcu, 0x000045bfu, 0x00050082u, 0x0000005fu, 0x000045c3u, 0x00003326u, 0x000045abu, 0x00050051u, + 0x00000008u, 0x000045c5u, 0x00007a34u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x000045c6u, 0x000045c5u, + 0x000045c5u, 0x00050084u, 0x0000005fu, 0x000045c7u, 0x000045c3u, 0x000045c6u, 0x00050080u, 0x0000005fu, + 0x000045c9u, 0x000045c0u, 0x000045c7u, 0x00050080u, 0x0000005fu, 0x000045ccu, 0x000045c9u, 0x000013acu, + 0x000500c3u, 0x0000005fu, 0x000045cfu, 0x000045ccu, 0x0000bdabu, 0x00050080u, 0x0000005fu, 0x000045d2u, + 0x000045cfu, 0x000045abu, 0x000200f9u, 0x0000332au, 0x000200f8u, 0x0000330cu, 0x0007004fu, 0x0000005fu, + 0x0000330eu, 0x000077c3u, 0x000077c3u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00003310u, + 0x000078b5u, 0x000078b5u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000005fu, 0x00003311u, 0x0000330eu, + 0x00003310u, 0x0007004fu, 0x0000005fu, 0x00003313u, 0x000079b1u, 0x000079b1u, 0x00000000u, 0x00000001u, + 0x00050080u, 0x0000005fu, 0x00003314u, 0x00003311u, 0x00003313u, 0x0007004fu, 0x0000005fu, 0x00003316u, + 0x00007936u, 0x00007936u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000005fu, 0x00003317u, 0x00003314u, + 0x00003316u, 0x00050080u, 0x0000005fu, 0x00003319u, 0x00003317u, 0x0000bdb4u, 0x000500c3u, 0x0000005fu, + 0x0000331bu, 0x00003319u, 0x0000bdb4u, 0x000200f9u, 0x0000332au, 0x000200f8u, 0x0000332au, 0x000700f5u, + 0x0000005fu, 0x00007a42u, 0x0000331bu, 0x0000330cu, 0x000045d2u, 0x000045b5u, 0x000300f7u, 0x00003347u, + 0x00000000u, 0x000400fau, 0x00002f40u, 0x0000332cu, 0x0000333cu, 0x000200f8u, 0x0000333cu, 0x0007004fu, + 0x0000005fu, 0x0000333eu, 0x000077c3u, 0x000077c3u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, + 0x00003340u, 0x000078b5u, 0x000078b5u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, 0x00003342u, + 0x00007936u, 0x00007936u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, 0x00003344u, 0x000079b1u, + 0x000079b1u, 0x00000002u, 0x00000003u, 0x00050050u, 0x00000880u, 0x000045e4u, 0x00002f42u, 0x00002f42u, + 0x000600a9u, 0x0000005fu, 0x000045e5u, 0x000045e4u, 0x00003344u, 0x0000333eu, 0x000300f7u, 0x000045efu, + 0x00000000u, 0x000400fau, 0x00002f42u, 0x000045e8u, 0x000045edu, 0x000200f8u, 0x000045edu, 0x000200f9u, + 0x000045efu, 0x000200f8u, 0x000045e8u, 0x0007004fu, 0x0000005fu, 0x000045eau, 0x00007744u, 0x00007744u, + 0x00000001u, 0x00000000u, 0x00050082u, 0x0000005fu, 0x000045ecu, 0x0000bdb5u, 0x000045eau, 0x000200f9u, + 0x000045efu, 0x000200f8u, 0x000045efu, 0x000700f5u, 0x0000005fu, 0x00007a3fu, 0x000045ecu, 0x000045e8u, + 0x00007744u, 0x000045edu, 0x00050082u, 0x0000005fu, 0x000045f6u, 0x00003340u, 0x000045e5u, 0x00050051u, + 0x00000008u, 0x000045f8u, 0x00007a3fu, 0x00000000u, 0x00050050u, 0x0000005fu, 0x000045f9u, 0x000045f8u, + 0x000045f8u, 0x00050084u, 0x0000005fu, 0x000045fau, 0x000045f6u, 0x000045f9u, 0x00050082u, 0x0000005fu, + 0x000045fdu, 0x00003342u, 0x000045e5u, 0x00050051u, 0x00000008u, 0x000045ffu, 0x00007a3fu, 0x00000001u, + 0x00050050u, 0x0000005fu, 0x00004600u, 0x000045ffu, 0x000045ffu, 0x00050084u, 0x0000005fu, 0x00004601u, + 0x000045fdu, 0x00004600u, 0x00050080u, 0x0000005fu, 0x00004603u, 0x000045fau, 0x00004601u, 0x00050080u, + 0x0000005fu, 0x00004606u, 0x00004603u, 0x000013acu, 0x000500c3u, 0x0000005fu, 0x00004609u, 0x00004606u, + 0x0000bdabu, 0x00050080u, 0x0000005fu, 0x0000460cu, 0x00004609u, 0x000045e5u, 0x000200f9u, 0x00003347u, + 0x000200f8u, 0x0000332cu, 0x0007004fu, 0x0000005fu, 0x0000332eu, 0x000077c3u, 0x000077c3u, 0x00000002u, + 0x00000003u, 0x0007004fu, 0x0000005fu, 0x00003330u, 0x000078b5u, 0x000078b5u, 0x00000002u, 0x00000003u, + 0x00050080u, 0x0000005fu, 0x00003331u, 0x0000332eu, 0x00003330u, 0x0007004fu, 0x0000005fu, 0x00003333u, + 0x000079b1u, 0x000079b1u, 0x00000002u, 0x00000003u, 0x00050080u, 0x0000005fu, 0x00003334u, 0x00003331u, + 0x00003333u, 0x0007004fu, 0x0000005fu, 0x00003336u, 0x00007936u, 0x00007936u, 0x00000002u, 0x00000003u, + 0x00050080u, 0x0000005fu, 0x00003337u, 0x00003334u, 0x00003336u, 0x00050080u, 0x0000005fu, 0x00003339u, + 0x00003337u, 0x0000bdb4u, 0x000500c3u, 0x0000005fu, 0x0000333bu, 0x00003339u, 0x0000bdb4u, 0x000200f9u, + 0x00003347u, 0x000200f8u, 0x00003347u, 0x000700f5u, 0x0000005fu, 0x00007a45u, 0x0000333bu, 0x0000332cu, + 0x0000460cu, 0x000045efu, 0x000200f9u, 0x00003364u, 0x000200f8u, 0x00003364u, 0x000700f5u, 0x0000005fu, + 0x00007a44u, 0x00007a45u, 0x00003347u, 0x00007a2fu, 0x00003362u, 0x000700f5u, 0x0000005fu, 0x00007a40u, + 0x00007a42u, 0x00003347u, 0x00007a33u, 0x00003362u, 0x00050051u, 0x00000008u, 0x00003367u, 0x00007a40u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00003368u, 0x00007a40u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00003369u, 0x00007a44u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000336au, 0x00007a44u, 0x00000001u, + 0x00070050u, 0x00000009u, 0x0000336bu, 0x00003367u, 0x00003368u, 0x00003369u, 0x0000336au, 0x000200f9u, + 0x0000336eu, 0x000200f8u, 0x0000336eu, 0x000700f5u, 0x00000009u, 0x00007a70u, 0x0000336bu, 0x00003364u, + 0x000077c3u, 0x0000336cu, 0x000200f9u, 0x000033b1u, 0x000200f8u, 0x000033b1u, 0x000700f5u, 0x00000009u, + 0x00007a6fu, 0x00007a70u, 0x0000336eu, 0x00007a71u, 0x000033b0u, 0x000400a8u, 0x0000005du, 0x000033b4u, + 0x00002285u, 0x000500a7u, 0x0000005du, 0x000033b7u, 0x000033b4u, 0x00000563u, 0x000300f7u, 0x000033bcu, + 0x00000000u, 0x000400fau, 0x000033b7u, 0x000033b8u, 0x000033bcu, 0x000200f8u, 0x000033b8u, 0x000600cau, + 0x00000009u, 0x0000461bu, 0x00007a6fu, 0x00000208u, 0x00000269u, 0x00050051u, 0x00000008u, 0x0000461du, + 0x0000461bu, 0x00000002u, 0x00050051u, 0x00000008u, 0x0000461fu, 0x00002a20u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00004621u, 0x0000461bu, 0x00000001u, 0x00050084u, 0x00000008u, 0x00004622u, 0x0000461fu, + 0x00004621u, 0x00050080u, 0x00000008u, 0x00004623u, 0x00004622u, 0x00000628u, 0x000500c3u, 0x00000008u, + 0x00004624u, 0x00004623u, 0x00000263u, 0x00050080u, 0x00000008u, 0x00004625u, 0x0000461du, 0x00004624u, + 0x00050051u, 0x00000008u, 0x00004629u, 0x00002a20u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000462bu, + 0x0000461bu, 0x00000000u, 0x00050084u, 0x00000008u, 0x0000462cu, 0x00004629u, 0x0000462bu, 0x00050051u, + 0x00000008u, 0x0000462eu, 0x00002a20u, 0x00000002u, 0x00050084u, 0x00000008u, 0x00004631u, 0x0000462eu, + 0x00004621u, 0x00050080u, 0x00000008u, 0x00004632u, 0x0000462cu, 0x00004631u, 0x00050080u, 0x00000008u, + 0x00004633u, 0x00004632u, 0x00000628u, 0x000500c3u, 0x00000008u, 0x00004634u, 0x00004633u, 0x00000263u, + 0x00050080u, 0x00000008u, 0x00004635u, 0x0000461du, 0x00004634u, 0x00050051u, 0x00000008u, 0x00004639u, + 0x00002a20u, 0x00000003u, 0x00050084u, 0x00000008u, 0x0000463cu, 0x00004639u, 0x0000462bu, 0x00050080u, + 0x00000008u, 0x0000463du, 0x0000463cu, 0x00000628u, 0x000500c3u, 0x00000008u, 0x0000463eu, 0x0000463du, + 0x00000263u, 0x00050080u, 0x00000008u, 0x0000463fu, 0x0000461du, 0x0000463eu, 0x00070050u, 0x00000009u, + 0x00004646u, 0x00004625u, 0x00004635u, 0x0000463fu, 0x0000461du, 0x000200f9u, 0x000033bcu, 0x000200f8u, + 0x000033bcu, 0x000700f5u, 0x00000009u, 0x00007a73u, 0x00007a6fu, 0x000033b1u, 0x00004646u, 0x000033b8u, + 0x000200f9u, 0x0000235bu, 0x000200f8u, 0x0000235bu, 0x000700f5u, 0x00000009u, 0x0000b4b7u, 0x000079cdu, + 0x00002346u, 0x000079b1u, 0x000033bcu, 0x000700f5u, 0x00000009u, 0x0000b395u, 0x00007952u, 0x00002346u, + 0x00007936u, 0x000033bcu, 0x000700f5u, 0x00000009u, 0x0000b273u, 0x000078d1u, 0x00002346u, 0x000078b5u, + 0x000033bcu, 0x000700f5u, 0x00000009u, 0x0000b151u, 0x000077dfu, 0x00002346u, 0x000077c3u, 0x000033bcu, + 0x000700f5u, 0x00000009u, 0x00007d8du, 0x00007d9au, 0x00002346u, 0x00007a73u, 0x000033bcu, 0x000300f7u, + 0x000023a6u, 0x00000000u, 0x000400fau, 0x0000227cu, 0x0000235du, 0x000023a6u, 0x000200f8u, 0x0000235du, + 0x00050080u, 0x00000008u, 0x00002366u, 0x0000221cu, 0x00000217u, 0x00050080u, 0x00000008u, 0x00002367u, + 0x00002217u, 0x00002366u, 0x00070041u, 0x00000275u, 0x00002368u, 0x00000319u, 0x00000208u, 0x00002367u, + 0x00000263u, 0x0004003du, 0x00000230u, 0x00002369u, 0x00002368u, 0x00040071u, 0x00000006u, 0x0000236au, + 0x00002369u, 0x000500abu, 0x0000005du, 0x0000236bu, 0x0000236au, 0x00000379u, 0x000500afu, 0x0000005du, + 0x0000236eu, 0x00002497u, 0x00000263u, 0x000600a9u, 0x00000008u, 0x0000bde3u, 0x00002299u, 0x00002493u, + 0x00002490u, 0x000500aau, 0x0000005du, 0x00002379u, 0x00007627u, 0x0000bde3u, 0x000500a7u, 0x0000005du, + 0x0000237cu, 0x00002379u, 0x0000236eu, 0x000500a7u, 0x0000005du, 0x0000237eu, 0x0000237cu, 0x0000236bu, + 0x000300f7u, 0x000023a4u, 0x00000000u, 0x000400fau, 0x0000237eu, 0x0000237fu, 0x00002399u, 0x000200f8u, + 0x00002399u, 0x00050084u, 0x00000008u, 0x0000239cu, 0x00002304u, 0x00000887u, 0x00050080u, 0x00000008u, + 0x0000239du, 0x00002302u, 0x0000239cu, 0x00060050u, 0x0000003cu, 0x000046e4u, 0x0000239du, 0x0000239du, + 0x0000239du, 0x00050084u, 0x0000003cu, 0x000046e5u, 0x00002a9au, 0x000046e4u, 0x00050080u, 0x0000003cu, + 0x000046e6u, 0x00002a94u, 0x000046e5u, 0x000500c3u, 0x0000003cu, 0x000046e9u, 0x000046e6u, 0x0000bda5u, + 0x000300f7u, 0x000046f3u, 0x00000000u, 0x000400fau, 0x00002252u, 0x000046ebu, 0x000046f0u, 0x000200f8u, + 0x000046f0u, 0x0007004fu, 0x0000005fu, 0x00004780u, 0x000046e9u, 0x000046e9u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x000046f3u, 0x000200f8u, 0x000046ebu, 0x00050051u, 0x00000008u, 0x00004701u, 0x000046e9u, + 0x00000002u, 0x000500b3u, 0x0000005du, 0x00004703u, 0x00004701u, 0x00000208u, 0x000500c7u, 0x00000008u, + 0x00004705u, 0x00004701u, 0x00000c0bu, 0x0006000cu, 0x00000008u, 0x00004762u, 0x00000001u, 0x0000004au, + 0x00004705u, 0x00050082u, 0x00000008u, 0x00004763u, 0x00000288u, 0x00004762u, 0x0007000cu, 0x00000008u, + 0x00004764u, 0x00000001u, 0x00000027u, 0x00004763u, 0x00000288u, 0x000500c4u, 0x00000008u, 0x00004767u, + 0x00004705u, 0x00004764u, 0x000500c7u, 0x00000008u, 0x00004768u, 0x00004767u, 0x00000b25u, 0x000500c7u, + 0x00000008u, 0x0000476au, 0x00004768u, 0x00000390u, 0x000500c3u, 0x00000008u, 0x0000476cu, 0x00004768u, + 0x00000263u, 0x0003003eu, 0x0000475du, 0x00000be9u, 0x00050041u, 0x00000060u, 0x0000476du, 0x0000475du, + 0x0000476cu, 0x0004003du, 0x0000005fu, 0x0000476eu, 0x0000476du, 0x00050051u, 0x00000008u, 0x00004773u, + 0x0000476eu, 0x00000001u, 0x00050084u, 0x00000008u, 0x00004775u, 0x00004773u, 0x0000476au, 0x000500c3u, + 0x00000008u, 0x00004776u, 0x00004775u, 0x0000026fu, 0x00050051u, 0x00000008u, 0x00004778u, 0x0000476eu, + 0x00000000u, 0x00050080u, 0x00000008u, 0x00004779u, 0x00004776u, 0x00004778u, 0x0007004fu, 0x0000005fu, + 0x0000470bu, 0x000046e9u, 0x000046e9u, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x0000470eu, + 0x00004779u, 0x00004779u, 0x00050084u, 0x0000005fu, 0x0000470fu, 0x0000470bu, 0x0000470eu, 0x000500c3u, + 0x00000008u, 0x00004711u, 0x00000c1eu, 0x00004764u, 0x0004007eu, 0x00000008u, 0x00004712u, 0x00004711u, + 0x000500c7u, 0x00000008u, 0x00004713u, 0x00000c1du, 0x00004712u, 0x00050050u, 0x0000005fu, 0x00004716u, + 0x00004713u, 0x00004713u, 0x000500c7u, 0x0000005fu, 0x00004717u, 0x0000470fu, 0x00004716u, 0x000500abu, + 0x0000005du, 0x00004719u, 0x00004764u, 0x00000288u, 0x000300f7u, 0x00004724u, 0x00000000u, 0x000400fau, + 0x00004719u, 0x0000471au, 0x00004720u, 0x000200f8u, 0x00004720u, 0x000500c4u, 0x0000005fu, 0x00004723u, + 0x0000470fu, 0x0000bda9u, 0x000200f9u, 0x00004724u, 0x000200f8u, 0x0000471au, 0x00050082u, 0x00000008u, + 0x0000471du, 0x00000282u, 0x00004764u, 0x00050050u, 0x0000005fu, 0x0000471eu, 0x0000471du, 0x0000471du, + 0x000500c3u, 0x0000005fu, 0x0000471fu, 0x0000470fu, 0x0000471eu, 0x000200f9u, 0x00004724u, 0x000200f8u, + 0x00004724u, 0x000700f5u, 0x0000005fu, 0x00007b9au, 0x0000471fu, 0x0000471au, 0x00004723u, 0x00004720u, + 0x000700f5u, 0x0000005fu, 0x00007b98u, 0x0000471fu, 0x0000471au, 0x0000470fu, 0x00004720u, 0x000500abu, + 0x00000880u, 0x00004726u, 0x00004717u, 0x00000c37u, 0x0004009au, 0x0000005du, 0x00004727u, 0x00004726u, + 0x000300f7u, 0x00004753u, 0x00000000u, 0x000400fau, 0x00004727u, 0x00004728u, 0x00004753u, 0x000200f8u, + 0x00004728u, 0x00050051u, 0x00000008u, 0x0000472au, 0x00004717u, 0x00000000u, 0x000500abu, 0x0000005du, + 0x0000472cu, 0x0000472au, 0x00004713u, 0x000300f7u, 0x00004731u, 0x00000000u, 0x000400fau, 0x0000472cu, + 0x0000472du, 0x00004731u, 0x000200f8u, 0x0000472du, 0x000500abu, 0x0000005du, 0x00004730u, 0x0000472au, + 0x00000208u, 0x000200f9u, 0x00004731u, 0x000200f8u, 0x00004731u, 0x000700f5u, 0x0000005du, 0x00004732u, + 0x0000472cu, 0x00004728u, 0x00004730u, 0x0000472du, 0x000300f7u, 0x0000473du, 0x00000000u, 0x000400fau, + 0x00004732u, 0x00004733u, 0x0000473du, 0x000200f8u, 0x00004733u, 0x00050051u, 0x00000008u, 0x00004735u, + 0x00007b98u, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00004736u, 0x00004735u, 0x00000c1eu, 0x000500aau, + 0x0000005du, 0x00004737u, 0x00004736u, 0x00000208u, 0x000300f7u, 0x0000473cu, 0x00000000u, 0x000400fau, + 0x00004737u, 0x00004738u, 0x0000473au, 0x000200f8u, 0x0000473au, 0x00060052u, 0x0000005fu, 0x0000737eu, + 0x00000c50u, 0x00007b9au, 0x00000000u, 0x000200f9u, 0x0000473cu, 0x000200f8u, 0x00004738u, 0x00060052u, + 0x0000005fu, 0x0000737cu, 0x00000c0bu, 0x00007b9au, 0x00000000u, 0x000200f9u, 0x0000473cu, 0x000200f8u, + 0x0000473cu, 0x000700f5u, 0x0000005fu, 0x00007ba0u, 0x0000737cu, 0x00004738u, 0x0000737eu, 0x0000473au, + 0x000200f9u, 0x0000473du, 0x000200f8u, 0x0000473du, 0x000700f5u, 0x0000005fu, 0x00007b9fu, 0x00007b9au, + 0x00004731u, 0x00007ba0u, 0x0000473cu, 0x00050051u, 0x00000008u, 0x0000473fu, 0x00004717u, 0x00000001u, + 0x000500abu, 0x0000005du, 0x00004741u, 0x0000473fu, 0x00004713u, 0x000300f7u, 0x00004746u, 0x00000000u, + 0x000400fau, 0x00004741u, 0x00004742u, 0x00004746u, 0x000200f8u, 0x00004742u, 0x000500abu, 0x0000005du, + 0x00004745u, 0x0000473fu, 0x00000208u, 0x000200f9u, 0x00004746u, 0x000200f8u, 0x00004746u, 0x000700f5u, + 0x0000005du, 0x00004747u, 0x00004741u, 0x0000473du, 0x00004745u, 0x00004742u, 0x000300f7u, 0x00004752u, + 0x00000000u, 0x000400fau, 0x00004747u, 0x00004748u, 0x00004752u, 0x000200f8u, 0x00004748u, 0x00050051u, + 0x00000008u, 0x0000474au, 0x00007b98u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x0000474bu, 0x0000474au, + 0x00000c1eu, 0x000500aau, 0x0000005du, 0x0000474cu, 0x0000474bu, 0x00000208u, 0x000300f7u, 0x00004751u, + 0x00000000u, 0x000400fau, 0x0000474cu, 0x0000474du, 0x0000474fu, 0x000200f8u, 0x0000474fu, 0x00060052u, + 0x0000005fu, 0x00007385u, 0x00000c50u, 0x00007b9fu, 0x00000001u, 0x000200f9u, 0x00004751u, 0x000200f8u, + 0x0000474du, 0x00060052u, 0x0000005fu, 0x00007383u, 0x00000c0bu, 0x00007b9fu, 0x00000001u, 0x000200f9u, + 0x00004751u, 0x000200f8u, 0x00004751u, 0x000700f5u, 0x0000005fu, 0x00007ba4u, 0x00007383u, 0x0000474du, + 0x00007385u, 0x0000474fu, 0x000200f9u, 0x00004752u, 0x000200f8u, 0x00004752u, 0x000700f5u, 0x0000005fu, + 0x00007ba3u, 0x00007b9fu, 0x00004746u, 0x00007ba4u, 0x00004751u, 0x000200f9u, 0x00004753u, 0x000200f8u, + 0x00004753u, 0x000700f5u, 0x0000005fu, 0x00007ba2u, 0x00007b9au, 0x00004724u, 0x00007ba3u, 0x00004752u, + 0x00050050u, 0x00000880u, 0x0000bde4u, 0x00004703u, 0x00004703u, 0x000600a9u, 0x0000005fu, 0x0000bde5u, + 0x0000bde4u, 0x00000c6au, 0x00007ba2u, 0x0008000cu, 0x0000005fu, 0x00004758u, 0x00000001u, 0x0000002du, + 0x0000bde5u, 0x00000c6du, 0x00000c6eu, 0x000200f9u, 0x000046f3u, 0x000200f8u, 0x000046f3u, 0x000700f5u, + 0x0000005fu, 0x00007ba5u, 0x00004758u, 0x00004753u, 0x00004780u, 0x000046f0u, 0x000200f9u, 0x000023a4u, + 0x000200f8u, 0x0000237fu, 0x00070041u, 0x0000031bu, 0x0000238au, 0x00000319u, 0x00000208u, 0x00002367u, + 0x00000217u, 0x0004003du, 0x00000009u, 0x0000238bu, 0x0000238au, 0x0008004fu, 0x0000003cu, 0x0000238cu, + 0x0000238bu, 0x0000238bu, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c3u, 0x0000003cu, 0x0000238eu, + 0x0000238cu, 0x0000bda5u, 0x000300f7u, 0x00002398u, 0x00000000u, 0x000400fau, 0x00002252u, 0x00002390u, + 0x00002395u, 0x000200f8u, 0x00002395u, 0x0007004fu, 0x0000005fu, 0x000046d2u, 0x0000238eu, 0x0000238eu, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x00002398u, 0x000200f8u, 0x00002390u, 0x00050051u, 0x00000008u, + 0x00004653u, 0x0000238eu, 0x00000002u, 0x000500b3u, 0x0000005du, 0x00004655u, 0x00004653u, 0x00000208u, + 0x000500c7u, 0x00000008u, 0x00004657u, 0x00004653u, 0x00000c0bu, 0x0006000cu, 0x00000008u, 0x000046b4u, + 0x00000001u, 0x0000004au, 0x00004657u, 0x00050082u, 0x00000008u, 0x000046b5u, 0x00000288u, 0x000046b4u, + 0x0007000cu, 0x00000008u, 0x000046b6u, 0x00000001u, 0x00000027u, 0x000046b5u, 0x00000288u, 0x000500c4u, + 0x00000008u, 0x000046b9u, 0x00004657u, 0x000046b6u, 0x000500c7u, 0x00000008u, 0x000046bau, 0x000046b9u, + 0x00000b25u, 0x000500c7u, 0x00000008u, 0x000046bcu, 0x000046bau, 0x00000390u, 0x000500c3u, 0x00000008u, + 0x000046beu, 0x000046bau, 0x00000263u, 0x0003003eu, 0x000046afu, 0x00000be9u, 0x00050041u, 0x00000060u, + 0x000046bfu, 0x000046afu, 0x000046beu, 0x0004003du, 0x0000005fu, 0x000046c0u, 0x000046bfu, 0x00050051u, + 0x00000008u, 0x000046c5u, 0x000046c0u, 0x00000001u, 0x00050084u, 0x00000008u, 0x000046c7u, 0x000046c5u, + 0x000046bcu, 0x000500c3u, 0x00000008u, 0x000046c8u, 0x000046c7u, 0x0000026fu, 0x00050051u, 0x00000008u, + 0x000046cau, 0x000046c0u, 0x00000000u, 0x00050080u, 0x00000008u, 0x000046cbu, 0x000046c8u, 0x000046cau, + 0x0007004fu, 0x0000005fu, 0x0000465du, 0x0000238eu, 0x0000238eu, 0x00000000u, 0x00000001u, 0x00050050u, + 0x0000005fu, 0x00004660u, 0x000046cbu, 0x000046cbu, 0x00050084u, 0x0000005fu, 0x00004661u, 0x0000465du, + 0x00004660u, 0x000500c3u, 0x00000008u, 0x00004663u, 0x00000c1eu, 0x000046b6u, 0x0004007eu, 0x00000008u, + 0x00004664u, 0x00004663u, 0x000500c7u, 0x00000008u, 0x00004665u, 0x00000c1du, 0x00004664u, 0x00050050u, + 0x0000005fu, 0x00004668u, 0x00004665u, 0x00004665u, 0x000500c7u, 0x0000005fu, 0x00004669u, 0x00004661u, + 0x00004668u, 0x000500abu, 0x0000005du, 0x0000466bu, 0x000046b6u, 0x00000288u, 0x000300f7u, 0x00004676u, + 0x00000000u, 0x000400fau, 0x0000466bu, 0x0000466cu, 0x00004672u, 0x000200f8u, 0x00004672u, 0x000500c4u, + 0x0000005fu, 0x00004675u, 0x00004661u, 0x0000bda9u, 0x000200f9u, 0x00004676u, 0x000200f8u, 0x0000466cu, + 0x00050082u, 0x00000008u, 0x0000466fu, 0x00000282u, 0x000046b6u, 0x00050050u, 0x0000005fu, 0x00004670u, + 0x0000466fu, 0x0000466fu, 0x000500c3u, 0x0000005fu, 0x00004671u, 0x00004661u, 0x00004670u, 0x000200f9u, + 0x00004676u, 0x000200f8u, 0x00004676u, 0x000700f5u, 0x0000005fu, 0x00007baau, 0x00004671u, 0x0000466cu, + 0x00004675u, 0x00004672u, 0x000700f5u, 0x0000005fu, 0x00007ba8u, 0x00004671u, 0x0000466cu, 0x00004661u, + 0x00004672u, 0x000500abu, 0x00000880u, 0x00004678u, 0x00004669u, 0x00000c37u, 0x0004009au, 0x0000005du, + 0x00004679u, 0x00004678u, 0x000300f7u, 0x000046a5u, 0x00000000u, 0x000400fau, 0x00004679u, 0x0000467au, + 0x000046a5u, 0x000200f8u, 0x0000467au, 0x00050051u, 0x00000008u, 0x0000467cu, 0x00004669u, 0x00000000u, + 0x000500abu, 0x0000005du, 0x0000467eu, 0x0000467cu, 0x00004665u, 0x000300f7u, 0x00004683u, 0x00000000u, + 0x000400fau, 0x0000467eu, 0x0000467fu, 0x00004683u, 0x000200f8u, 0x0000467fu, 0x000500abu, 0x0000005du, + 0x00004682u, 0x0000467cu, 0x00000208u, 0x000200f9u, 0x00004683u, 0x000200f8u, 0x00004683u, 0x000700f5u, + 0x0000005du, 0x00004684u, 0x0000467eu, 0x0000467au, 0x00004682u, 0x0000467fu, 0x000300f7u, 0x0000468fu, + 0x00000000u, 0x000400fau, 0x00004684u, 0x00004685u, 0x0000468fu, 0x000200f8u, 0x00004685u, 0x00050051u, + 0x00000008u, 0x00004687u, 0x00007ba8u, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00004688u, 0x00004687u, + 0x00000c1eu, 0x000500aau, 0x0000005du, 0x00004689u, 0x00004688u, 0x00000208u, 0x000300f7u, 0x0000468eu, + 0x00000000u, 0x000400fau, 0x00004689u, 0x0000468au, 0x0000468cu, 0x000200f8u, 0x0000468cu, 0x00060052u, + 0x0000005fu, 0x0000736bu, 0x00000c50u, 0x00007baau, 0x00000000u, 0x000200f9u, 0x0000468eu, 0x000200f8u, + 0x0000468au, 0x00060052u, 0x0000005fu, 0x00007369u, 0x00000c0bu, 0x00007baau, 0x00000000u, 0x000200f9u, + 0x0000468eu, 0x000200f8u, 0x0000468eu, 0x000700f5u, 0x0000005fu, 0x00007bb0u, 0x00007369u, 0x0000468au, + 0x0000736bu, 0x0000468cu, 0x000200f9u, 0x0000468fu, 0x000200f8u, 0x0000468fu, 0x000700f5u, 0x0000005fu, + 0x00007bafu, 0x00007baau, 0x00004683u, 0x00007bb0u, 0x0000468eu, 0x00050051u, 0x00000008u, 0x00004691u, + 0x00004669u, 0x00000001u, 0x000500abu, 0x0000005du, 0x00004693u, 0x00004691u, 0x00004665u, 0x000300f7u, + 0x00004698u, 0x00000000u, 0x000400fau, 0x00004693u, 0x00004694u, 0x00004698u, 0x000200f8u, 0x00004694u, + 0x000500abu, 0x0000005du, 0x00004697u, 0x00004691u, 0x00000208u, 0x000200f9u, 0x00004698u, 0x000200f8u, + 0x00004698u, 0x000700f5u, 0x0000005du, 0x00004699u, 0x00004693u, 0x0000468fu, 0x00004697u, 0x00004694u, + 0x000300f7u, 0x000046a4u, 0x00000000u, 0x000400fau, 0x00004699u, 0x0000469au, 0x000046a4u, 0x000200f8u, + 0x0000469au, 0x00050051u, 0x00000008u, 0x0000469cu, 0x00007ba8u, 0x00000001u, 0x000500c7u, 0x00000008u, + 0x0000469du, 0x0000469cu, 0x00000c1eu, 0x000500aau, 0x0000005du, 0x0000469eu, 0x0000469du, 0x00000208u, + 0x000300f7u, 0x000046a3u, 0x00000000u, 0x000400fau, 0x0000469eu, 0x0000469fu, 0x000046a1u, 0x000200f8u, + 0x000046a1u, 0x00060052u, 0x0000005fu, 0x00007372u, 0x00000c50u, 0x00007bafu, 0x00000001u, 0x000200f9u, + 0x000046a3u, 0x000200f8u, 0x0000469fu, 0x00060052u, 0x0000005fu, 0x00007370u, 0x00000c0bu, 0x00007bafu, + 0x00000001u, 0x000200f9u, 0x000046a3u, 0x000200f8u, 0x000046a3u, 0x000700f5u, 0x0000005fu, 0x00007bb4u, + 0x00007370u, 0x0000469fu, 0x00007372u, 0x000046a1u, 0x000200f9u, 0x000046a4u, 0x000200f8u, 0x000046a4u, + 0x000700f5u, 0x0000005fu, 0x00007bb3u, 0x00007bafu, 0x00004698u, 0x00007bb4u, 0x000046a3u, 0x000200f9u, + 0x000046a5u, 0x000200f8u, 0x000046a5u, 0x000700f5u, 0x0000005fu, 0x00007bb2u, 0x00007baau, 0x00004676u, + 0x00007bb3u, 0x000046a4u, 0x00050050u, 0x00000880u, 0x0000bde6u, 0x00004655u, 0x00004655u, 0x000600a9u, + 0x0000005fu, 0x0000bde7u, 0x0000bde6u, 0x00000c6au, 0x00007bb2u, 0x0008000cu, 0x0000005fu, 0x000046aau, + 0x00000001u, 0x0000002du, 0x0000bde7u, 0x00000c6du, 0x00000c6eu, 0x000200f9u, 0x00002398u, 0x000200f8u, + 0x00002398u, 0x000700f5u, 0x0000005fu, 0x00007d8bu, 0x000046aau, 0x000046a5u, 0x000046d2u, 0x00002395u, + 0x000200f9u, 0x000023a4u, 0x000200f8u, 0x000023a4u, 0x000700f5u, 0x0000005fu, 0x00007d8au, 0x00007d8bu, + 0x00002398u, 0x00007ba5u, 0x000046f3u, 0x000200f9u, 0x000023a6u, 0x000200f8u, 0x000023a6u, 0x000700f5u, + 0x0000005fu, 0x00007d26u, 0x000076a8u, 0x0000235bu, 0x00007d8au, 0x000023a4u, 0x000600a9u, 0x00000006u, + 0x0000bde8u, 0x0000227cu, 0x0000772cu, 0x00007cc3u, 0x000600a9u, 0x0000005du, 0x0000bde9u, 0x0000227cu, + 0x00000563u, 0x00002279u, 0x000300f7u, 0x000023c8u, 0x00000000u, 0x000400fau, 0x0000bde9u, 0x000023a8u, + 0x000023c8u, 0x000200f8u, 0x000023a8u, 0x000400a8u, 0x0000005du, 0x000023abu, 0x00002288u, 0x000500a7u, + 0x0000005du, 0x000023acu, 0x00002282u, 0x000023abu, 0x000300f7u, 0x000023c7u, 0x00000000u, 0x000400fau, + 0x000023acu, 0x000023adu, 0x000023b2u, 0x000200f8u, 0x000023b2u, 0x00080041u, 0x0000027cu, 0x000023b5u, + 0x00000a16u, 0x00000208u, 0x00002008u, 0x0000021au, 0x0000bde8u, 0x0004003du, 0x0000022eu, 0x000023b6u, + 0x000023b5u, 0x00040071u, 0x00000006u, 0x000023b7u, 0x000023b6u, 0x00070041u, 0x00000270u, 0x000047bdu, + 0x000002d6u, 0x00000208u, 0x000023b7u, 0x00000208u, 0x0004003du, 0x00000006u, 0x000047beu, 0x000047bdu, + 0x00070041u, 0x00000270u, 0x000047c0u, 0x000002d6u, 0x00000208u, 0x000023b7u, 0x00000217u, 0x0004003du, + 0x00000006u, 0x000047c1u, 0x000047c0u, 0x00070041u, 0x00000270u, 0x000047c3u, 0x000002d6u, 0x00000208u, + 0x000023b7u, 0x0000021au, 0x0004003du, 0x00000006u, 0x000047c4u, 0x000047c3u, 0x00070041u, 0x00000270u, + 0x000047c6u, 0x000002d6u, 0x00000208u, 0x000023b7u, 0x0000021du, 0x0004003du, 0x00000006u, 0x000047c7u, + 0x000047c6u, 0x00070041u, 0x00000270u, 0x000047c9u, 0x000002d6u, 0x00000208u, 0x000023b7u, 0x00000220u, + 0x0004003du, 0x00000006u, 0x000047cau, 0x000047c9u, 0x00070041u, 0x00000270u, 0x000047ccu, 0x000002d6u, + 0x00000208u, 0x000023b7u, 0x00000223u, 0x0004003du, 0x00000006u, 0x000047cdu, 0x000047ccu, 0x00070041u, + 0x0000027cu, 0x000047cfu, 0x000002d6u, 0x00000208u, 0x000023b7u, 0x00000226u, 0x0004003du, 0x0000022eu, + 0x000047d0u, 0x000047cfu, 0x00040071u, 0x00000006u, 0x000047d1u, 0x000047d0u, 0x0004007cu, 0x00000008u, + 0x000047d2u, 0x000047d1u, 0x00070041u, 0x0000027cu, 0x000047d4u, 0x000002d6u, 0x00000208u, 0x000023b7u, + 0x00000229u, 0x0004003du, 0x0000022eu, 0x000047d5u, 0x000047d4u, 0x00040071u, 0x00000006u, 0x000047d6u, + 0x000047d5u, 0x0004007cu, 0x00000008u, 0x000047d7u, 0x000047d6u, 0x00070041u, 0x0000027cu, 0x000047d9u, + 0x000002d6u, 0x00000208u, 0x000023b7u, 0x00000263u, 0x0004003du, 0x0000022eu, 0x000047dau, 0x000047d9u, + 0x00040071u, 0x00000006u, 0x000047dbu, 0x000047dau, 0x0004007cu, 0x00000008u, 0x000047dcu, 0x000047dbu, + 0x00070041u, 0x0000027cu, 0x000047deu, 0x000002d6u, 0x00000208u, 0x000023b7u, 0x00000269u, 0x0004003du, + 0x0000022eu, 0x000047dfu, 0x000047deu, 0x00040071u, 0x00000006u, 0x000047e0u, 0x000047dfu, 0x0004007cu, + 0x00000008u, 0x000047e1u, 0x000047e0u, 0x00070041u, 0x0000027cu, 0x000047e3u, 0x000002d6u, 0x00000208u, + 0x000023b7u, 0x0000026fu, 0x0004003du, 0x0000022eu, 0x000047e4u, 0x000047e3u, 0x00040071u, 0x00000006u, + 0x000047e5u, 0x000047e4u, 0x0004007cu, 0x00000008u, 0x000047e6u, 0x000047e5u, 0x00070041u, 0x0000027cu, + 0x000047e8u, 0x000002d6u, 0x00000208u, 0x000023b7u, 0x00000274u, 0x0004003du, 0x0000022eu, 0x000047e9u, + 0x000047e8u, 0x00040071u, 0x00000006u, 0x000047eau, 0x000047e9u, 0x0004007cu, 0x00000008u, 0x000047ebu, + 0x000047eau, 0x00070041u, 0x0000027cu, 0x000047edu, 0x000002d6u, 0x00000208u, 0x000023b7u, 0x0000027bu, + 0x0004003du, 0x0000022eu, 0x000047eeu, 0x000047edu, 0x00040071u, 0x00000006u, 0x000047efu, 0x000047eeu, + 0x0004007cu, 0x00000008u, 0x000047f0u, 0x000047efu, 0x00070041u, 0x0000027cu, 0x000047f2u, 0x000002d6u, + 0x00000208u, 0x000023b7u, 0x00000282u, 0x0004003du, 0x0000022eu, 0x000047f3u, 0x000047f2u, 0x00040071u, + 0x00000006u, 0x000047f4u, 0x000047f3u, 0x0004007cu, 0x00000008u, 0x000047f5u, 0x000047f4u, 0x000500c7u, + 0x00000008u, 0x00004950u, 0x000047f5u, 0x00000217u, 0x000500abu, 0x0000005du, 0x00004951u, 0x00004950u, + 0x00000208u, 0x0004007cu, 0x00000008u, 0x00004954u, 0x000047beu, 0x0004007cu, 0x00000008u, 0x00004957u, + 0x000047c1u, 0x00050051u, 0x00000008u, 0x0000495bu, 0x00007d26u, 0x00000000u, 0x0008000cu, 0x00000008u, + 0x00004e24u, 0x00000001u, 0x0000002du, 0x0000495bu, 0x00000c50u, 0x00000c0bu, 0x000500b1u, 0x0000005du, + 0x00004e26u, 0x000047e6u, 0x00000274u, 0x000300f7u, 0x00004e32u, 0x00000000u, 0x000400fau, 0x00004e26u, + 0x00004e27u, 0x00004e2bu, 0x000200f8u, 0x00004e2bu, 0x00050082u, 0x00000008u, 0x00004e2du, 0x00000382u, + 0x000047e6u, 0x000500c4u, 0x00000008u, 0x00004e2fu, 0x00004e24u, 0x00004e2du, 0x000500c3u, 0x00000008u, + 0x00004e31u, 0x00004e2fu, 0x0000055eu, 0x000200f9u, 0x00004e32u, 0x000200f8u, 0x00004e27u, 0x000500c3u, + 0x00000008u, 0x00004e2au, 0x00004e24u, 0x000047e6u, 0x000200f9u, 0x00004e32u, 0x000200f8u, 0x00004e32u, + 0x000700f5u, 0x00000008u, 0x00007ddbu, 0x00004e2au, 0x00004e27u, 0x00004e31u, 0x00004e2bu, 0x000300f7u, + 0x00004e4eu, 0x00000000u, 0x000400fau, 0x00004951u, 0x00004e34u, 0x00004e49u, 0x000200f8u, 0x00004e49u, + 0x000500c4u, 0x00000008u, 0x00004e4bu, 0x00004954u, 0x0000021du, 0x00050082u, 0x00000008u, 0x00004e4du, + 0x00007ddbu, 0x00004e4bu, 0x000200f9u, 0x00004e4eu, 0x000200f8u, 0x00004e34u, 0x000500c3u, 0x00000008u, + 0x00004e36u, 0x00007ddbu, 0x0000021du, 0x000500afu, 0x0000005du, 0x00004e38u, 0x00004e36u, 0x00004957u, + 0x000300f7u, 0x00004e48u, 0x00000000u, 0x000400fau, 0x00004e38u, 0x00004e3au, 0x00004e42u, 0x000200f8u, + 0x00004e42u, 0x000500c4u, 0x00000008u, 0x00004e45u, 0x00004954u, 0x0000021du, 0x00050082u, 0x00000008u, + 0x00004e46u, 0x00007ddbu, 0x00004e45u, 0x0007000cu, 0x00000008u, 0x00004e47u, 0x00000001u, 0x0000002au, + 0x00004e46u, 0x00000208u, 0x000200f9u, 0x00004e48u, 0x000200f8u, 0x00004e3au, 0x000500c3u, 0x00000008u, + 0x00004e3cu, 0x00004957u, 0x0000021au, 0x000500c3u, 0x00000008u, 0x00004e3eu, 0x00004954u, 0x0000021au, + 0x00050082u, 0x00000008u, 0x00004e3fu, 0x00004e3cu, 0x00004e3eu, 0x000500c7u, 0x00000008u, 0x00004e40u, + 0x00004e3fu, 0x00001140u, 0x000500c4u, 0x00000008u, 0x00004e41u, 0x00004e40u, 0x00000223u, 0x000200f9u, + 0x00004e48u, 0x000200f8u, 0x00004e48u, 0x000700f5u, 0x00000008u, 0x00007dddu, 0x00004e41u, 0x00004e3au, + 0x00004e47u, 0x00004e42u, 0x000200f9u, 0x00004e4eu, 0x000200f8u, 0x00004e4eu, 0x000700f5u, 0x00000008u, + 0x00007ddcu, 0x00007dddu, 0x00004e48u, 0x00004e4du, 0x00004e49u, 0x000500c7u, 0x00000008u, 0x00004960u, + 0x000047f5u, 0x00000220u, 0x000500abu, 0x0000005du, 0x00004961u, 0x00004960u, 0x00000208u, 0x0004007cu, + 0x00000008u, 0x00004964u, 0x000047c4u, 0x0004007cu, 0x00000008u, 0x00004967u, 0x000047c7u, 0x00050051u, + 0x00000008u, 0x0000496bu, 0x00007d26u, 0x00000001u, 0x0008000cu, 0x00000008u, 0x00004e54u, 0x00000001u, + 0x0000002du, 0x0000496bu, 0x00000c50u, 0x00000c0bu, 0x000500b1u, 0x0000005du, 0x00004e56u, 0x000047f0u, + 0x00000274u, 0x000300f7u, 0x00004e62u, 0x00000000u, 0x000400fau, 0x00004e56u, 0x00004e57u, 0x00004e5bu, + 0x000200f8u, 0x00004e5bu, 0x00050082u, 0x00000008u, 0x00004e5du, 0x00000382u, 0x000047f0u, 0x000500c4u, + 0x00000008u, 0x00004e5fu, 0x00004e54u, 0x00004e5du, 0x000500c3u, 0x00000008u, 0x00004e61u, 0x00004e5fu, + 0x0000055eu, 0x000200f9u, 0x00004e62u, 0x000200f8u, 0x00004e57u, 0x000500c3u, 0x00000008u, 0x00004e5au, + 0x00004e54u, 0x000047f0u, 0x000200f9u, 0x00004e62u, 0x000200f8u, 0x00004e62u, 0x000700f5u, 0x00000008u, + 0x00007de1u, 0x00004e5au, 0x00004e57u, 0x00004e61u, 0x00004e5bu, 0x000300f7u, 0x00004e7eu, 0x00000000u, + 0x000400fau, 0x00004961u, 0x00004e64u, 0x00004e79u, 0x000200f8u, 0x00004e79u, 0x000500c4u, 0x00000008u, + 0x00004e7bu, 0x00004964u, 0x0000021du, 0x00050082u, 0x00000008u, 0x00004e7du, 0x00007de1u, 0x00004e7bu, + 0x000200f9u, 0x00004e7eu, 0x000200f8u, 0x00004e64u, 0x000500c3u, 0x00000008u, 0x00004e66u, 0x00007de1u, + 0x0000021du, 0x000500afu, 0x0000005du, 0x00004e68u, 0x00004e66u, 0x00004967u, 0x000300f7u, 0x00004e78u, + 0x00000000u, 0x000400fau, 0x00004e68u, 0x00004e6au, 0x00004e72u, 0x000200f8u, 0x00004e72u, 0x000500c4u, + 0x00000008u, 0x00004e75u, 0x00004964u, 0x0000021du, 0x00050082u, 0x00000008u, 0x00004e76u, 0x00007de1u, + 0x00004e75u, 0x0007000cu, 0x00000008u, 0x00004e77u, 0x00000001u, 0x0000002au, 0x00004e76u, 0x00000208u, + 0x000200f9u, 0x00004e78u, 0x000200f8u, 0x00004e6au, 0x000500c3u, 0x00000008u, 0x00004e6cu, 0x00004967u, + 0x0000021au, 0x000500c3u, 0x00000008u, 0x00004e6eu, 0x00004964u, 0x0000021au, 0x00050082u, 0x00000008u, + 0x00004e6fu, 0x00004e6cu, 0x00004e6eu, 0x000500c7u, 0x00000008u, 0x00004e70u, 0x00004e6fu, 0x00001140u, + 0x000500c4u, 0x00000008u, 0x00004e71u, 0x00004e70u, 0x00000223u, 0x000200f9u, 0x00004e78u, 0x000200f8u, + 0x00004e78u, 0x000700f5u, 0x00000008u, 0x00007de3u, 0x00004e71u, 0x00004e6au, 0x00004e77u, 0x00004e72u, + 0x000200f9u, 0x00004e7eu, 0x000200f8u, 0x00004e7eu, 0x000700f5u, 0x00000008u, 0x00007de2u, 0x00007de3u, + 0x00004e78u, 0x00004e7du, 0x00004e79u, 0x00050050u, 0x0000005fu, 0x0000bdc5u, 0x00007ddcu, 0x00007de2u, + 0x000500a6u, 0x0000005du, 0x00004970u, 0x00002249u, 0x00002243u, 0x000300f7u, 0x00004976u, 0x00000000u, + 0x000400fau, 0x00004970u, 0x00004971u, 0x00004975u, 0x000200f8u, 0x00004975u, 0x000200f9u, 0x00004976u, + 0x000200f8u, 0x00004971u, 0x000500c7u, 0x0000005fu, 0x00004974u, 0x0000bdc5u, 0x0000bdacu, 0x000200f9u, + 0x00004976u, 0x000200f8u, 0x00004976u, 0x000700f5u, 0x0000005fu, 0x00007de7u, 0x00004974u, 0x00004971u, + 0x00000c37u, 0x00004975u, 0x00050051u, 0x00000008u, 0x00004978u, 0x00007de7u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x0000497au, 0x00007de7u, 0x00000001u, 0x00050080u, 0x00000008u, 0x0000497bu, 0x00004978u, + 0x0000497au, 0x000500c3u, 0x0000005fu, 0x0000497eu, 0x0000bdc5u, 0x0000bdabu, 0x00050051u, 0x00000008u, + 0x00004981u, 0x0000497eu, 0x00000000u, 0x000500abu, 0x0000005du, 0x00004e85u, 0x000047e1u, 0x00000208u, + 0x000300f7u, 0x00004e9bu, 0x00000000u, 0x000400fau, 0x00004e85u, 0x00004e86u, 0x00004e9bu, 0x000200f8u, + 0x00004e86u, 0x000500c4u, 0x00000008u, 0x00004e89u, 0x00000217u, 0x000047e1u, 0x000500c7u, 0x00000008u, + 0x00004e8cu, 0x000047f5u, 0x0000021au, 0x000500abu, 0x0000005du, 0x00004e8du, 0x00004e8cu, 0x00000208u, + 0x000300f7u, 0x00004e96u, 0x00000000u, 0x000400fau, 0x00004e8du, 0x00004e8eu, 0x00004e96u, 0x000200f8u, + 0x00004e8eu, 0x000500c7u, 0x00000008u, 0x00004e91u, 0x00004981u, 0x00004e89u, 0x00050082u, 0x00000008u, + 0x00004e92u, 0x00004e91u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00004e93u, 0x00000001u, 0x0000002au, + 0x00004e92u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00004e95u, 0x00004981u, 0x00004e93u, 0x000200f9u, + 0x00004e96u, 0x000200f8u, 0x00004e96u, 0x000700f5u, 0x00000008u, 0x00007de9u, 0x00004981u, 0x00004e86u, + 0x00004e95u, 0x00004e8eu, 0x00050082u, 0x00000008u, 0x00004e98u, 0x00004e89u, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x00004e9au, 0x00007de9u, 0x00004e98u, 0x000200f9u, 0x00004e9bu, 0x000200f8u, 0x00004e9bu, + 0x000700f5u, 0x00000008u, 0x00007deau, 0x00004981u, 0x00004976u, 0x00004e9au, 0x00004e96u, 0x00050051u, + 0x00000008u, 0x00004985u, 0x0000497eu, 0x00000001u, 0x000500abu, 0x0000005du, 0x00004ea2u, 0x000047ebu, + 0x00000208u, 0x000300f7u, 0x00004eb8u, 0x00000000u, 0x000400fau, 0x00004ea2u, 0x00004ea3u, 0x00004eb8u, + 0x000200f8u, 0x00004ea3u, 0x000500c4u, 0x00000008u, 0x00004ea6u, 0x00000217u, 0x000047ebu, 0x000500c7u, + 0x00000008u, 0x00004ea9u, 0x000047f5u, 0x00000263u, 0x000500abu, 0x0000005du, 0x00004eaau, 0x00004ea9u, + 0x00000208u, 0x000300f7u, 0x00004eb3u, 0x00000000u, 0x000400fau, 0x00004eaau, 0x00004eabu, 0x00004eb3u, + 0x000200f8u, 0x00004eabu, 0x000500c7u, 0x00000008u, 0x00004eaeu, 0x00004985u, 0x00004ea6u, 0x00050082u, + 0x00000008u, 0x00004eafu, 0x00004eaeu, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00004eb0u, 0x00000001u, + 0x0000002au, 0x00004eafu, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00004eb2u, 0x00004985u, 0x00004eb0u, + 0x000200f9u, 0x00004eb3u, 0x000200f8u, 0x00004eb3u, 0x000700f5u, 0x00000008u, 0x00007dedu, 0x00004985u, + 0x00004ea3u, 0x00004eb2u, 0x00004eabu, 0x00050082u, 0x00000008u, 0x00004eb5u, 0x00004ea6u, 0x00000217u, + 0x000500c7u, 0x00000008u, 0x00004eb7u, 0x00007dedu, 0x00004eb5u, 0x000200f9u, 0x00004eb8u, 0x000200f8u, + 0x00004eb8u, 0x000700f5u, 0x00000008u, 0x00007deeu, 0x00004985u, 0x00004e9bu, 0x00004eb7u, 0x00004eb3u, + 0x00050080u, 0x00000008u, 0x00004989u, 0x00004981u, 0x00000217u, 0x000300f7u, 0x00004ed5u, 0x00000000u, + 0x000400fau, 0x00004e85u, 0x00004ec0u, 0x00004ed5u, 0x000200f8u, 0x00004ec0u, 0x000500c4u, 0x00000008u, + 0x00004ec3u, 0x00000217u, 0x000047e1u, 0x000500c7u, 0x00000008u, 0x00004ec6u, 0x000047f5u, 0x0000021au, + 0x000500abu, 0x0000005du, 0x00004ec7u, 0x00004ec6u, 0x00000208u, 0x000300f7u, 0x00004ed0u, 0x00000000u, + 0x000400fau, 0x00004ec7u, 0x00004ec8u, 0x00004ed0u, 0x000200f8u, 0x00004ec8u, 0x000500c7u, 0x00000008u, + 0x00004ecbu, 0x00004989u, 0x00004ec3u, 0x00050082u, 0x00000008u, 0x00004eccu, 0x00004ecbu, 0x00000217u, + 0x0007000cu, 0x00000008u, 0x00004ecdu, 0x00000001u, 0x0000002au, 0x00004eccu, 0x00000208u, 0x000500c6u, + 0x00000008u, 0x00004ecfu, 0x00004989u, 0x00004ecdu, 0x000200f9u, 0x00004ed0u, 0x000200f8u, 0x00004ed0u, + 0x000700f5u, 0x00000008u, 0x00007df1u, 0x00004989u, 0x00004ec0u, 0x00004ecfu, 0x00004ec8u, 0x00050082u, + 0x00000008u, 0x00004ed2u, 0x00004ec3u, 0x00000217u, 0x000500c7u, 0x00000008u, 0x00004ed4u, 0x00007df1u, + 0x00004ed2u, 0x000200f9u, 0x00004ed5u, 0x000200f8u, 0x00004ed5u, 0x000700f5u, 0x00000008u, 0x00007df2u, + 0x00004989u, 0x00004eb8u, 0x00004ed4u, 0x00004ed0u, 0x00050080u, 0x00000008u, 0x0000498eu, 0x00004985u, + 0x00000217u, 0x000300f7u, 0x00004ef2u, 0x00000000u, 0x000400fau, 0x00004ea2u, 0x00004eddu, 0x00004ef2u, + 0x000200f8u, 0x00004eddu, 0x000500c4u, 0x00000008u, 0x00004ee0u, 0x00000217u, 0x000047ebu, 0x000500c7u, + 0x00000008u, 0x00004ee3u, 0x000047f5u, 0x00000263u, 0x000500abu, 0x0000005du, 0x00004ee4u, 0x00004ee3u, + 0x00000208u, 0x000300f7u, 0x00004eedu, 0x00000000u, 0x000400fau, 0x00004ee4u, 0x00004ee5u, 0x00004eedu, + 0x000200f8u, 0x00004ee5u, 0x000500c7u, 0x00000008u, 0x00004ee8u, 0x0000498eu, 0x00004ee0u, 0x00050082u, + 0x00000008u, 0x00004ee9u, 0x00004ee8u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00004eeau, 0x00000001u, + 0x0000002au, 0x00004ee9u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00004eecu, 0x0000498eu, 0x00004eeau, + 0x000200f9u, 0x00004eedu, 0x000200f8u, 0x00004eedu, 0x000700f5u, 0x00000008u, 0x00007df5u, 0x0000498eu, + 0x00004eddu, 0x00004eecu, 0x00004ee5u, 0x00050082u, 0x00000008u, 0x00004eefu, 0x00004ee0u, 0x00000217u, + 0x000500c7u, 0x00000008u, 0x00004ef1u, 0x00007df5u, 0x00004eefu, 0x000200f9u, 0x00004ef2u, 0x000200f8u, + 0x00004ef2u, 0x000700f5u, 0x00000008u, 0x00007df6u, 0x0000498eu, 0x00004ed5u, 0x00004ef1u, 0x00004eedu, + 0x00050082u, 0x00000008u, 0x00004993u, 0x00007df6u, 0x00007deeu, 0x0007000cu, 0x00000008u, 0x00004994u, + 0x00000001u, 0x0000002au, 0x00004993u, 0x000013a0u, 0x000500c7u, 0x00000008u, 0x00004996u, 0x00007deeu, + 0x00000390u, 0x00050080u, 0x00000008u, 0x00004998u, 0x00004996u, 0x00004994u, 0x000500aau, 0x00000880u, + 0x0000499eu, 0x00007de7u, 0x000013acu, 0x00050051u, 0x0000005du, 0x0000499fu, 0x0000499eu, 0x00000000u, + 0x00050051u, 0x0000005du, 0x000049a0u, 0x0000499eu, 0x00000001u, 0x00070050u, 0x000005feu, 0x000049a1u, + 0x00002273u, 0x00002288u, 0x0000499fu, 0x000049a0u, 0x0004009bu, 0x0000005du, 0x000049a2u, 0x000049a1u, + 0x000500afu, 0x0000005du, 0x000049a4u, 0x0000497bu, 0x00000382u, 0x000600a9u, 0x00000008u, 0x0000bdeau, + 0x000049a2u, 0x00000208u, 0x0000497bu, 0x000500aau, 0x0000005du, 0x000049aau, 0x000047d2u, 0x00000217u, + 0x000500afu, 0x0000005du, 0x000049acu, 0x0000bdeau, 0x00000382u, 0x000300f7u, 0x000049b5u, 0x00000000u, + 0x000400fau, 0x000049acu, 0x000049adu, 0x000049b1u, 0x000200f8u, 0x000049b1u, 0x00050050u, 0x0000005fu, + 0x000049b4u, 0x00007deau, 0x00004996u, 0x000200f9u, 0x000049b5u, 0x000200f8u, 0x000049adu, 0x00050050u, + 0x0000005fu, 0x000049b0u, 0x00007df2u, 0x00004998u, 0x000200f9u, 0x000049b5u, 0x000200f8u, 0x000049b5u, + 0x000700f5u, 0x0000005fu, 0x00007e11u, 0x000049b0u, 0x000049adu, 0x000049b4u, 0x000049b1u, 0x000500c7u, + 0x00000008u, 0x000049b8u, 0x00007deau, 0x00000217u, 0x000500c4u, 0x00000008u, 0x000049b9u, 0x000049b8u, + 0x00000220u, 0x000500c3u, 0x00000008u, 0x000049bcu, 0x00004978u, 0x00000217u, 0x000500c5u, 0x00000008u, + 0x000049bdu, 0x000049b9u, 0x000049bcu, 0x000300f7u, 0x00004c81u, 0x00000000u, 0x000400fau, 0x00002243u, + 0x000049bfu, 0x00004a65u, 0x000200f8u, 0x00004a65u, 0x000300f7u, 0x00004c80u, 0x00000000u, 0x000d00fbu, + 0x000047d2u, 0x00004c80u, 0x00000000u, 0x00004a68u, 0x00000001u, 0x00004af0u, 0x00000002u, 0x00004b1eu, + 0x00000003u, 0x00004b91u, 0x00000004u, 0x00004c19u, 0x000200f8u, 0x00004c19u, 0x000300f7u, 0x00004c7fu, + 0x00000000u, 0x000700fbu, 0x000047d7u, 0x00004c1cu, 0x00000000u, 0x00004c3du, 0x00000001u, 0x00004c5eu, + 0x000200f8u, 0x00004c5eu, 0x0004007cu, 0x000000a6u, 0x00004c60u, 0x00007e11u, 0x00050051u, 0x00000006u, + 0x00005f76u, 0x00004c60u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005f77u, 0x000047cdu, 0x00005f76u, + 0x00050080u, 0x00000006u, 0x00005f78u, 0x000047cau, 0x00005f77u, 0x00050051u, 0x00000006u, 0x00005f7au, + 0x00004c60u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005f7cu, 0x00005f78u, 0x00005f7au, 0x000500c7u, + 0x00000006u, 0x00005f7eu, 0x00005f7cu, 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00005f82u, 0x00005f76u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005f83u, 0x00005f82u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00005f85u, 0x00005f7eu, 0x00005f83u, 0x000500c6u, 0x00000006u, 0x00005f87u, 0x00005f85u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00005f8au, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005f87u, + 0x0004003du, 0x0000022eu, 0x00005f8bu, 0x00005f8au, 0x00040071u, 0x00000006u, 0x00005f8cu, 0x00005f8bu, + 0x0004007cu, 0x00000008u, 0x00005f8eu, 0x00005f8cu, 0x00070050u, 0x00000009u, 0x00005f8fu, 0x00005f8eu, + 0x00005f8eu, 0x00005f8eu, 0x00005f8eu, 0x000300f7u, 0x00004c74u, 0x00000000u, 0x000400fau, 0x00002249u, + 0x00004c65u, 0x00004c74u, 0x000200f8u, 0x00004c65u, 0x00050050u, 0x0000005fu, 0x00004c68u, 0x00007df2u, + 0x00004996u, 0x0004007cu, 0x000000a6u, 0x00004c69u, 0x00004c68u, 0x00050051u, 0x00000006u, 0x00005f9au, + 0x00004c69u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005f9bu, 0x000047cdu, 0x00005f9au, 0x00050080u, + 0x00000006u, 0x00005f9cu, 0x000047cau, 0x00005f9bu, 0x00050051u, 0x00000006u, 0x00005f9eu, 0x00004c69u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005fa0u, 0x00005f9cu, 0x00005f9eu, 0x000500c7u, 0x00000006u, + 0x00005fa2u, 0x00005fa0u, 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00005fa6u, 0x00005f9au, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00005fa7u, 0x00005fa6u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005fa9u, + 0x00005fa2u, 0x00005fa7u, 0x000500c6u, 0x00000006u, 0x00005fabu, 0x00005fa9u, 0x00000490u, 0x00080041u, + 0x0000027cu, 0x00005faeu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005fabu, 0x0004003du, + 0x0000022eu, 0x00005fafu, 0x00005faeu, 0x00040071u, 0x00000006u, 0x00005fb0u, 0x00005fafu, 0x0004007cu, + 0x00000008u, 0x00005fb2u, 0x00005fb0u, 0x00070050u, 0x00000009u, 0x00005fb3u, 0x00005fb2u, 0x00005fb2u, + 0x00005fb2u, 0x00005fb2u, 0x00050050u, 0x0000005fu, 0x00004c6fu, 0x00007deau, 0x00004998u, 0x0004007cu, + 0x000000a6u, 0x00004c70u, 0x00004c6fu, 0x00050051u, 0x00000006u, 0x00005fbeu, 0x00004c70u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005fbfu, 0x000047cdu, 0x00005fbeu, 0x00050080u, 0x00000006u, 0x00005fc0u, + 0x000047cau, 0x00005fbfu, 0x00050051u, 0x00000006u, 0x00005fc2u, 0x00004c70u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00005fc4u, 0x00005fc0u, 0x00005fc2u, 0x000500c7u, 0x00000006u, 0x00005fc6u, 0x00005fc4u, + 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00005fcau, 0x00005fbeu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005fcbu, 0x00005fcau, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005fcdu, 0x00005fc6u, 0x00005fcbu, + 0x000500c6u, 0x00000006u, 0x00005fcfu, 0x00005fcdu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005fd2u, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005fcfu, 0x0004003du, 0x0000022eu, 0x00005fd3u, + 0x00005fd2u, 0x00040071u, 0x00000006u, 0x00005fd4u, 0x00005fd3u, 0x0004007cu, 0x00000008u, 0x00005fd6u, + 0x00005fd4u, 0x00070050u, 0x00000009u, 0x00005fd7u, 0x00005fd6u, 0x00005fd6u, 0x00005fd6u, 0x00005fd6u, + 0x000200f9u, 0x00004c74u, 0x000200f8u, 0x00004c74u, 0x000700f5u, 0x00000009u, 0x000081c1u, 0x000080ebu, + 0x00004c5eu, 0x00005fd7u, 0x00004c65u, 0x000700f5u, 0x00000009u, 0x000080c9u, 0x00007ff0u, 0x00004c5eu, + 0x00005fb3u, 0x00004c65u, 0x000300f7u, 0x00004c7eu, 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004c76u, + 0x00004c7eu, 0x000200f8u, 0x00004c76u, 0x00050050u, 0x0000005fu, 0x00004c79u, 0x00007df2u, 0x00004998u, + 0x0004007cu, 0x000000a6u, 0x00004c7au, 0x00004c79u, 0x00050051u, 0x00000006u, 0x00005fe2u, 0x00004c7au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005fe3u, 0x000047cdu, 0x00005fe2u, 0x00050080u, 0x00000006u, + 0x00005fe4u, 0x000047cau, 0x00005fe3u, 0x00050051u, 0x00000006u, 0x00005fe6u, 0x00004c7au, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005fe8u, 0x00005fe4u, 0x00005fe6u, 0x000500c7u, 0x00000006u, 0x00005feau, + 0x00005fe8u, 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00005feeu, 0x00005fe2u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00005fefu, 0x00005feeu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005ff1u, 0x00005feau, + 0x00005fefu, 0x000500c6u, 0x00000006u, 0x00005ff3u, 0x00005ff1u, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00005ff6u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005ff3u, 0x0004003du, 0x0000022eu, + 0x00005ff7u, 0x00005ff6u, 0x00040071u, 0x00000006u, 0x00005ff8u, 0x00005ff7u, 0x0004007cu, 0x00000008u, + 0x00005ffau, 0x00005ff8u, 0x00070050u, 0x00000009u, 0x00005ffbu, 0x00005ffau, 0x00005ffau, 0x00005ffau, + 0x00005ffau, 0x000200f9u, 0x00004c7eu, 0x000200f8u, 0x00004c7eu, 0x000700f5u, 0x00000009u, 0x000082b8u, + 0x000081e0u, 0x00004c74u, 0x00005ffbu, 0x00004c76u, 0x000200f9u, 0x00004c7fu, 0x000200f8u, 0x00004c3du, + 0x0004007cu, 0x000000a6u, 0x00004c3fu, 0x00007e11u, 0x00050051u, 0x00000006u, 0x00005eabu, 0x00004c3fu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005eacu, 0x000047cdu, 0x00005eabu, 0x00050080u, 0x00000006u, + 0x00005eadu, 0x000047cau, 0x00005eacu, 0x00050051u, 0x00000006u, 0x00005eafu, 0x00004c3fu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00005eb0u, 0x00005eafu, 0x00000217u, 0x00050080u, 0x00000006u, 0x00005eb2u, + 0x00005eadu, 0x00005eb0u, 0x000500c7u, 0x00000006u, 0x00005eb4u, 0x00005eb2u, 0x00000e59u, 0x000400c8u, + 0x00000006u, 0x00005eb7u, 0x00005eafu, 0x000500c7u, 0x00000006u, 0x00005eb8u, 0x00005eb7u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x00005eb9u, 0x00005eb8u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00005ebdu, + 0x00005eabu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005ebeu, 0x00005ebdu, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x00005ec0u, 0x00005eb4u, 0x00005ebeu, 0x000500c6u, 0x00000006u, 0x00005ec2u, 0x00005ec0u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005ec5u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00005ec2u, 0x0004003du, 0x0000022eu, 0x00005ec6u, 0x00005ec5u, 0x00040071u, 0x00000006u, 0x00005ec7u, + 0x00005ec6u, 0x000500c2u, 0x00000006u, 0x00005ecau, 0x00005ec7u, 0x00005eb9u, 0x000500c7u, 0x00000006u, + 0x00005ecbu, 0x00005ecau, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00005ecdu, 0x00005ecbu, 0x00000220u, + 0x000500c5u, 0x00000006u, 0x00005ecfu, 0x00005ecbu, 0x00005ecdu, 0x0004007cu, 0x00000008u, 0x00005ed1u, + 0x00005ecfu, 0x00070050u, 0x00000009u, 0x00005ed2u, 0x00005ed1u, 0x00005ed1u, 0x00005ed1u, 0x00005ed1u, + 0x000300f7u, 0x00004c53u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00004c44u, 0x00004c53u, 0x000200f8u, + 0x00004c44u, 0x00050050u, 0x0000005fu, 0x00004c47u, 0x00007df2u, 0x00004996u, 0x0004007cu, 0x000000a6u, + 0x00004c48u, 0x00004c47u, 0x00050051u, 0x00000006u, 0x00005edeu, 0x00004c48u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005edfu, 0x000047cdu, 0x00005edeu, 0x00050080u, 0x00000006u, 0x00005ee0u, 0x000047cau, + 0x00005edfu, 0x00050051u, 0x00000006u, 0x00005ee2u, 0x00004c48u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00005ee3u, 0x00005ee2u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00005ee5u, 0x00005ee0u, 0x00005ee3u, + 0x000500c7u, 0x00000006u, 0x00005ee7u, 0x00005ee5u, 0x00000e59u, 0x000400c8u, 0x00000006u, 0x00005eeau, + 0x00005ee2u, 0x000500c7u, 0x00000006u, 0x00005eebu, 0x00005eeau, 0x0000048au, 0x00050084u, 0x00000006u, + 0x00005eecu, 0x00005eebu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00005ef0u, 0x00005edeu, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00005ef1u, 0x00005ef0u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005ef3u, + 0x00005ee7u, 0x00005ef1u, 0x000500c6u, 0x00000006u, 0x00005ef5u, 0x00005ef3u, 0x00000490u, 0x00080041u, + 0x0000027cu, 0x00005ef8u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005ef5u, 0x0004003du, + 0x0000022eu, 0x00005ef9u, 0x00005ef8u, 0x00040071u, 0x00000006u, 0x00005efau, 0x00005ef9u, 0x000500c2u, + 0x00000006u, 0x00005efdu, 0x00005efau, 0x00005eecu, 0x000500c7u, 0x00000006u, 0x00005efeu, 0x00005efdu, + 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00005f00u, 0x00005efeu, 0x00000220u, 0x000500c5u, 0x00000006u, + 0x00005f02u, 0x00005efeu, 0x00005f00u, 0x0004007cu, 0x00000008u, 0x00005f04u, 0x00005f02u, 0x00070050u, + 0x00000009u, 0x00005f05u, 0x00005f04u, 0x00005f04u, 0x00005f04u, 0x00005f04u, 0x00050050u, 0x0000005fu, + 0x00004c4eu, 0x00007deau, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004c4fu, 0x00004c4eu, 0x00050051u, + 0x00000006u, 0x00005f11u, 0x00004c4fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005f12u, 0x000047cdu, + 0x00005f11u, 0x00050080u, 0x00000006u, 0x00005f13u, 0x000047cau, 0x00005f12u, 0x00050051u, 0x00000006u, + 0x00005f15u, 0x00004c4fu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005f16u, 0x00005f15u, 0x00000217u, + 0x00050080u, 0x00000006u, 0x00005f18u, 0x00005f13u, 0x00005f16u, 0x000500c7u, 0x00000006u, 0x00005f1au, + 0x00005f18u, 0x00000e59u, 0x000400c8u, 0x00000006u, 0x00005f1du, 0x00005f15u, 0x000500c7u, 0x00000006u, + 0x00005f1eu, 0x00005f1du, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005f1fu, 0x00005f1eu, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x00005f23u, 0x00005f11u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005f24u, + 0x00005f23u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005f26u, 0x00005f1au, 0x00005f24u, 0x000500c6u, + 0x00000006u, 0x00005f28u, 0x00005f26u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005f2bu, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00005f28u, 0x0004003du, 0x0000022eu, 0x00005f2cu, 0x00005f2bu, + 0x00040071u, 0x00000006u, 0x00005f2du, 0x00005f2cu, 0x000500c2u, 0x00000006u, 0x00005f30u, 0x00005f2du, + 0x00005f1fu, 0x000500c7u, 0x00000006u, 0x00005f31u, 0x00005f30u, 0x00000e7cu, 0x000500c4u, 0x00000006u, + 0x00005f33u, 0x00005f31u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005f35u, 0x00005f31u, 0x00005f33u, + 0x0004007cu, 0x00000008u, 0x00005f37u, 0x00005f35u, 0x00070050u, 0x00000009u, 0x00005f38u, 0x00005f37u, + 0x00005f37u, 0x00005f37u, 0x00005f37u, 0x000200f9u, 0x00004c53u, 0x000200f8u, 0x00004c53u, 0x000700f5u, + 0x00000009u, 0x000081bfu, 0x000080ebu, 0x00004c3du, 0x00005f38u, 0x00004c44u, 0x000700f5u, 0x00000009u, + 0x000080c7u, 0x00007ff0u, 0x00004c3du, 0x00005f05u, 0x00004c44u, 0x000300f7u, 0x00004c5du, 0x00000000u, + 0x000400fau, 0x000049a2u, 0x00004c55u, 0x00004c5du, 0x000200f8u, 0x00004c55u, 0x00050050u, 0x0000005fu, + 0x00004c58u, 0x00007df2u, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004c59u, 0x00004c58u, 0x00050051u, + 0x00000006u, 0x00005f44u, 0x00004c59u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005f45u, 0x000047cdu, + 0x00005f44u, 0x00050080u, 0x00000006u, 0x00005f46u, 0x000047cau, 0x00005f45u, 0x00050051u, 0x00000006u, + 0x00005f48u, 0x00004c59u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005f49u, 0x00005f48u, 0x00000217u, + 0x00050080u, 0x00000006u, 0x00005f4bu, 0x00005f46u, 0x00005f49u, 0x000500c7u, 0x00000006u, 0x00005f4du, + 0x00005f4bu, 0x00000e59u, 0x000400c8u, 0x00000006u, 0x00005f50u, 0x00005f48u, 0x000500c7u, 0x00000006u, + 0x00005f51u, 0x00005f50u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005f52u, 0x00005f51u, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x00005f56u, 0x00005f44u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005f57u, + 0x00005f56u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005f59u, 0x00005f4du, 0x00005f57u, 0x000500c6u, + 0x00000006u, 0x00005f5bu, 0x00005f59u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005f5eu, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00005f5bu, 0x0004003du, 0x0000022eu, 0x00005f5fu, 0x00005f5eu, + 0x00040071u, 0x00000006u, 0x00005f60u, 0x00005f5fu, 0x000500c2u, 0x00000006u, 0x00005f63u, 0x00005f60u, + 0x00005f52u, 0x000500c7u, 0x00000006u, 0x00005f64u, 0x00005f63u, 0x00000e7cu, 0x000500c4u, 0x00000006u, + 0x00005f66u, 0x00005f64u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005f68u, 0x00005f64u, 0x00005f66u, + 0x0004007cu, 0x00000008u, 0x00005f6au, 0x00005f68u, 0x00070050u, 0x00000009u, 0x00005f6bu, 0x00005f6au, + 0x00005f6au, 0x00005f6au, 0x00005f6au, 0x000200f9u, 0x00004c5du, 0x000200f8u, 0x00004c5du, 0x000700f5u, + 0x00000009u, 0x000082b6u, 0x000081e0u, 0x00004c53u, 0x00005f6bu, 0x00004c55u, 0x000200f9u, 0x00004c7fu, + 0x000200f8u, 0x00004c1cu, 0x0004007cu, 0x000000a6u, 0x00004c1eu, 0x00007e11u, 0x00050051u, 0x00000006u, + 0x00005dfeu, 0x00004c1eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005dffu, 0x000047cdu, 0x00005dfeu, + 0x00050080u, 0x00000006u, 0x00005e00u, 0x000047cau, 0x00005dffu, 0x00050051u, 0x00000006u, 0x00005e02u, + 0x00004c1eu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005e03u, 0x00005e02u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00005e05u, 0x00005e00u, 0x00005e03u, 0x000500c7u, 0x00000006u, 0x00005e07u, 0x00005e05u, + 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005e09u, 0x00005e07u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x00005e0cu, 0x00005dfeu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005e0du, 0x00005e0cu, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x00005e0fu, 0x00005e09u, 0x00005e0du, 0x000500c6u, 0x00000006u, 0x00005e11u, + 0x00005e0fu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005e14u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00005e11u, 0x0004003du, 0x00000230u, 0x00005e15u, 0x00005e14u, 0x00040071u, 0x00000006u, + 0x00005e16u, 0x00005e15u, 0x000500c2u, 0x00000006u, 0x00005e18u, 0x00005e16u, 0x00000263u, 0x0004007cu, + 0x00000008u, 0x00005e19u, 0x00005e18u, 0x000500c7u, 0x00000006u, 0x00005e1bu, 0x00005e16u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00005e1cu, 0x00005e1bu, 0x00050050u, 0x0000005fu, 0x00005e1du, 0x00005e19u, + 0x00005e1cu, 0x0009004fu, 0x00000009u, 0x00005e1eu, 0x00005e1du, 0x00005e1du, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004c32u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00004c23u, + 0x00004c32u, 0x000200f8u, 0x00004c23u, 0x00050050u, 0x0000005fu, 0x00004c26u, 0x00007df2u, 0x00004996u, + 0x0004007cu, 0x000000a6u, 0x00004c27u, 0x00004c26u, 0x00050051u, 0x00000006u, 0x00005e29u, 0x00004c27u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005e2au, 0x000047cdu, 0x00005e29u, 0x00050080u, 0x00000006u, + 0x00005e2bu, 0x000047cau, 0x00005e2au, 0x00050051u, 0x00000006u, 0x00005e2du, 0x00004c27u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00005e2eu, 0x00005e2du, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005e30u, + 0x00005e2bu, 0x00005e2eu, 0x000500c7u, 0x00000006u, 0x00005e32u, 0x00005e30u, 0x00000e59u, 0x000500c2u, + 0x00000006u, 0x00005e34u, 0x00005e32u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005e37u, 0x00005e29u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005e38u, 0x00005e37u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00005e3au, 0x00005e34u, 0x00005e38u, 0x000500c6u, 0x00000006u, 0x00005e3cu, 0x00005e3au, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00005e3fu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005e3cu, + 0x0004003du, 0x00000230u, 0x00005e40u, 0x00005e3fu, 0x00040071u, 0x00000006u, 0x00005e41u, 0x00005e40u, + 0x000500c2u, 0x00000006u, 0x00005e43u, 0x00005e41u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005e44u, + 0x00005e43u, 0x000500c7u, 0x00000006u, 0x00005e46u, 0x00005e41u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00005e47u, 0x00005e46u, 0x00050050u, 0x0000005fu, 0x00005e48u, 0x00005e44u, 0x00005e47u, 0x0009004fu, + 0x00000009u, 0x00005e49u, 0x00005e48u, 0x00005e48u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x00050050u, 0x0000005fu, 0x00004c2du, 0x00007deau, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004c2eu, + 0x00004c2du, 0x00050051u, 0x00000006u, 0x00005e54u, 0x00004c2eu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005e55u, 0x000047cdu, 0x00005e54u, 0x00050080u, 0x00000006u, 0x00005e56u, 0x000047cau, 0x00005e55u, + 0x00050051u, 0x00000006u, 0x00005e58u, 0x00004c2eu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005e59u, + 0x00005e58u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005e5bu, 0x00005e56u, 0x00005e59u, 0x000500c7u, + 0x00000006u, 0x00005e5du, 0x00005e5bu, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005e5fu, 0x00005e5du, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005e62u, 0x00005e54u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005e63u, 0x00005e62u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005e65u, 0x00005e5fu, 0x00005e63u, + 0x000500c6u, 0x00000006u, 0x00005e67u, 0x00005e65u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005e6au, + 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005e67u, 0x0004003du, 0x00000230u, 0x00005e6bu, + 0x00005e6au, 0x00040071u, 0x00000006u, 0x00005e6cu, 0x00005e6bu, 0x000500c2u, 0x00000006u, 0x00005e6eu, + 0x00005e6cu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005e6fu, 0x00005e6eu, 0x000500c7u, 0x00000006u, + 0x00005e71u, 0x00005e6cu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005e72u, 0x00005e71u, 0x00050050u, + 0x0000005fu, 0x00005e73u, 0x00005e6fu, 0x00005e72u, 0x0009004fu, 0x00000009u, 0x00005e74u, 0x00005e73u, + 0x00005e73u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004c32u, 0x000200f8u, + 0x00004c32u, 0x000700f5u, 0x00000009u, 0x000081bdu, 0x000080ebu, 0x00004c1cu, 0x00005e74u, 0x00004c23u, + 0x000700f5u, 0x00000009u, 0x000080c5u, 0x00007ff0u, 0x00004c1cu, 0x00005e49u, 0x00004c23u, 0x000300f7u, + 0x00004c3cu, 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004c34u, 0x00004c3cu, 0x000200f8u, 0x00004c34u, + 0x00050050u, 0x0000005fu, 0x00004c37u, 0x00007df2u, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004c38u, + 0x00004c37u, 0x00050051u, 0x00000006u, 0x00005e7fu, 0x00004c38u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005e80u, 0x000047cdu, 0x00005e7fu, 0x00050080u, 0x00000006u, 0x00005e81u, 0x000047cau, 0x00005e80u, + 0x00050051u, 0x00000006u, 0x00005e83u, 0x00004c38u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005e84u, + 0x00005e83u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005e86u, 0x00005e81u, 0x00005e84u, 0x000500c7u, + 0x00000006u, 0x00005e88u, 0x00005e86u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005e8au, 0x00005e88u, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005e8du, 0x00005e7fu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005e8eu, 0x00005e8du, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005e90u, 0x00005e8au, 0x00005e8eu, + 0x000500c6u, 0x00000006u, 0x00005e92u, 0x00005e90u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005e95u, + 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005e92u, 0x0004003du, 0x00000230u, 0x00005e96u, + 0x00005e95u, 0x00040071u, 0x00000006u, 0x00005e97u, 0x00005e96u, 0x000500c2u, 0x00000006u, 0x00005e99u, + 0x00005e97u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005e9au, 0x00005e99u, 0x000500c7u, 0x00000006u, + 0x00005e9cu, 0x00005e97u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005e9du, 0x00005e9cu, 0x00050050u, + 0x0000005fu, 0x00005e9eu, 0x00005e9au, 0x00005e9du, 0x0009004fu, 0x00000009u, 0x00005e9fu, 0x00005e9eu, + 0x00005e9eu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004c3cu, 0x000200f8u, + 0x00004c3cu, 0x000700f5u, 0x00000009u, 0x000082b4u, 0x000081e0u, 0x00004c32u, 0x00005e9fu, 0x00004c34u, + 0x000200f9u, 0x00004c7fu, 0x000200f8u, 0x00004c7fu, 0x000900f5u, 0x00000009u, 0x000082b3u, 0x000082b4u, + 0x00004c3cu, 0x000082b6u, 0x00004c5du, 0x000082b8u, 0x00004c7eu, 0x000900f5u, 0x00000009u, 0x000081bbu, + 0x000081bdu, 0x00004c3cu, 0x000081bfu, 0x00004c5du, 0x000081c1u, 0x00004c7eu, 0x000900f5u, 0x00000009u, + 0x000080c3u, 0x000080c5u, 0x00004c3cu, 0x000080c7u, 0x00004c5du, 0x000080c9u, 0x00004c7eu, 0x000900f5u, + 0x00000009u, 0x00007f56u, 0x00005e1eu, 0x00004c3cu, 0x00005ed2u, 0x00004c5du, 0x00005f8fu, 0x00004c7eu, + 0x000200f9u, 0x00004c80u, 0x000200f8u, 0x00004b91u, 0x000300f7u, 0x00004c18u, 0x00000000u, 0x000b00fbu, + 0x000047d7u, 0x00004c18u, 0x00000000u, 0x00004b94u, 0x00000001u, 0x00004bb5u, 0x00000002u, 0x00004bd6u, + 0x00000003u, 0x00004bf7u, 0x000200f8u, 0x00004bf7u, 0x0004007cu, 0x000000a6u, 0x00004bf9u, 0x00007e11u, + 0x00050051u, 0x00000006u, 0x00005d52u, 0x00004bf9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d53u, + 0x000047cdu, 0x00005d52u, 0x00050080u, 0x00000006u, 0x00005d54u, 0x000047cau, 0x00005d53u, 0x00050051u, + 0x00000006u, 0x00005d56u, 0x00004bf9u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005d57u, 0x00005d56u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005d59u, 0x00005d54u, 0x00005d57u, 0x000500c7u, 0x00000006u, + 0x00005d5bu, 0x00005d59u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005d5du, 0x00005d5bu, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00005d60u, 0x00005d52u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005d61u, + 0x00005d60u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005d63u, 0x00005d5du, 0x00005d61u, 0x000500c6u, + 0x00000006u, 0x00005d65u, 0x00005d63u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005d68u, 0x00000f3au, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00005d65u, 0x0004003du, 0x00000230u, 0x00005d69u, 0x00005d68u, + 0x00040071u, 0x00000006u, 0x00005d6au, 0x00005d69u, 0x000500c2u, 0x00000006u, 0x00005d6cu, 0x00005d6au, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005d6du, 0x00005d6cu, 0x000500c7u, 0x00000006u, 0x00005d6fu, + 0x00005d6au, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005d70u, 0x00005d6fu, 0x00050050u, 0x0000005fu, + 0x00005d71u, 0x00005d6du, 0x00005d70u, 0x0009004fu, 0x00000009u, 0x00005d72u, 0x00005d71u, 0x00005d71u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004c0du, 0x00000000u, 0x000400fau, + 0x00002249u, 0x00004bfeu, 0x00004c0du, 0x000200f8u, 0x00004bfeu, 0x00050050u, 0x0000005fu, 0x00004c01u, + 0x00007df2u, 0x00004996u, 0x0004007cu, 0x000000a6u, 0x00004c02u, 0x00004c01u, 0x00050051u, 0x00000006u, + 0x00005d7du, 0x00004c02u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d7eu, 0x000047cdu, 0x00005d7du, + 0x00050080u, 0x00000006u, 0x00005d7fu, 0x000047cau, 0x00005d7eu, 0x00050051u, 0x00000006u, 0x00005d81u, + 0x00004c02u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005d82u, 0x00005d81u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00005d84u, 0x00005d7fu, 0x00005d82u, 0x000500c7u, 0x00000006u, 0x00005d86u, 0x00005d84u, + 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005d88u, 0x00005d86u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x00005d8bu, 0x00005d7du, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005d8cu, 0x00005d8bu, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x00005d8eu, 0x00005d88u, 0x00005d8cu, 0x000500c6u, 0x00000006u, 0x00005d90u, + 0x00005d8eu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005d93u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00005d90u, 0x0004003du, 0x00000230u, 0x00005d94u, 0x00005d93u, 0x00040071u, 0x00000006u, + 0x00005d95u, 0x00005d94u, 0x000500c2u, 0x00000006u, 0x00005d97u, 0x00005d95u, 0x00000263u, 0x0004007cu, + 0x00000008u, 0x00005d98u, 0x00005d97u, 0x000500c7u, 0x00000006u, 0x00005d9au, 0x00005d95u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00005d9bu, 0x00005d9au, 0x00050050u, 0x0000005fu, 0x00005d9cu, 0x00005d98u, + 0x00005d9bu, 0x0009004fu, 0x00000009u, 0x00005d9du, 0x00005d9cu, 0x00005d9cu, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x00004c08u, 0x00007deau, 0x00004998u, 0x0004007cu, + 0x000000a6u, 0x00004c09u, 0x00004c08u, 0x00050051u, 0x00000006u, 0x00005da8u, 0x00004c09u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005da9u, 0x000047cdu, 0x00005da8u, 0x00050080u, 0x00000006u, 0x00005daau, + 0x000047cau, 0x00005da9u, 0x00050051u, 0x00000006u, 0x00005dacu, 0x00004c09u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005dadu, 0x00005dacu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005dafu, 0x00005daau, + 0x00005dadu, 0x000500c7u, 0x00000006u, 0x00005db1u, 0x00005dafu, 0x00000e59u, 0x000500c2u, 0x00000006u, + 0x00005db3u, 0x00005db1u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005db6u, 0x00005da8u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00005db7u, 0x00005db6u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005db9u, + 0x00005db3u, 0x00005db7u, 0x000500c6u, 0x00000006u, 0x00005dbbu, 0x00005db9u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00005dbeu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005dbbu, 0x0004003du, + 0x00000230u, 0x00005dbfu, 0x00005dbeu, 0x00040071u, 0x00000006u, 0x00005dc0u, 0x00005dbfu, 0x000500c2u, + 0x00000006u, 0x00005dc2u, 0x00005dc0u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005dc3u, 0x00005dc2u, + 0x000500c7u, 0x00000006u, 0x00005dc5u, 0x00005dc0u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005dc6u, + 0x00005dc5u, 0x00050050u, 0x0000005fu, 0x00005dc7u, 0x00005dc3u, 0x00005dc6u, 0x0009004fu, 0x00000009u, + 0x00005dc8u, 0x00005dc7u, 0x00005dc7u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00004c0du, 0x000200f8u, 0x00004c0du, 0x000700f5u, 0x00000009u, 0x000081bau, 0x000080ebu, 0x00004bf7u, + 0x00005dc8u, 0x00004bfeu, 0x000700f5u, 0x00000009u, 0x000080c2u, 0x00007ff0u, 0x00004bf7u, 0x00005d9du, + 0x00004bfeu, 0x000300f7u, 0x00004c17u, 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004c0fu, 0x00004c17u, + 0x000200f8u, 0x00004c0fu, 0x00050050u, 0x0000005fu, 0x00004c12u, 0x00007df2u, 0x00004998u, 0x0004007cu, + 0x000000a6u, 0x00004c13u, 0x00004c12u, 0x00050051u, 0x00000006u, 0x00005dd3u, 0x00004c13u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005dd4u, 0x000047cdu, 0x00005dd3u, 0x00050080u, 0x00000006u, 0x00005dd5u, + 0x000047cau, 0x00005dd4u, 0x00050051u, 0x00000006u, 0x00005dd7u, 0x00004c13u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005dd8u, 0x00005dd7u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005ddau, 0x00005dd5u, + 0x00005dd8u, 0x000500c7u, 0x00000006u, 0x00005ddcu, 0x00005ddau, 0x00000e59u, 0x000500c2u, 0x00000006u, + 0x00005ddeu, 0x00005ddcu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005de1u, 0x00005dd3u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00005de2u, 0x00005de1u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005de4u, + 0x00005ddeu, 0x00005de2u, 0x000500c6u, 0x00000006u, 0x00005de6u, 0x00005de4u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00005de9u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005de6u, 0x0004003du, + 0x00000230u, 0x00005deau, 0x00005de9u, 0x00040071u, 0x00000006u, 0x00005debu, 0x00005deau, 0x000500c2u, + 0x00000006u, 0x00005dedu, 0x00005debu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005deeu, 0x00005dedu, + 0x000500c7u, 0x00000006u, 0x00005df0u, 0x00005debu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005df1u, + 0x00005df0u, 0x00050050u, 0x0000005fu, 0x00005df2u, 0x00005deeu, 0x00005df1u, 0x0009004fu, 0x00000009u, + 0x00005df3u, 0x00005df2u, 0x00005df2u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00004c17u, 0x000200f8u, 0x00004c17u, 0x000700f5u, 0x00000009u, 0x000082b1u, 0x000081e0u, 0x00004c0du, + 0x00005df3u, 0x00004c0fu, 0x000200f9u, 0x00004c18u, 0x000200f8u, 0x00004bd6u, 0x0004007cu, 0x000000a6u, + 0x00004bd8u, 0x00007e11u, 0x00050051u, 0x00000006u, 0x00005c77u, 0x00004bd8u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005c78u, 0x000047cdu, 0x00005c77u, 0x00050080u, 0x00000006u, 0x00005c79u, 0x000047cau, + 0x00005c78u, 0x00050051u, 0x00000006u, 0x00005c7bu, 0x00004bd8u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00005c7cu, 0x00005c7bu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005c7eu, 0x00005c79u, 0x00005c7cu, + 0x000500c7u, 0x00000006u, 0x00005c80u, 0x00005c7eu, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005c82u, + 0x00005c80u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005c85u, 0x00005c77u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00005c86u, 0x00005c85u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005c88u, 0x00005c82u, + 0x00005c86u, 0x000500c6u, 0x00000006u, 0x00005c8au, 0x00005c88u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x00005c8du, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005c8au, 0x0004003du, 0x00000230u, + 0x00005c8eu, 0x00005c8du, 0x00040071u, 0x00000006u, 0x00005c8fu, 0x00005c8eu, 0x000500c2u, 0x00000006u, + 0x00005c97u, 0x00005c8fu, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005c99u, 0x00005c8fu, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00005c9bu, 0x00005c97u, 0x0004007cu, 0x00000008u, 0x00005ca1u, 0x00005c99u, + 0x00070050u, 0x00000009u, 0x00005ca2u, 0x00005c9bu, 0x00005c9bu, 0x00005c9bu, 0x00005ca1u, 0x000300f7u, + 0x00004becu, 0x00000000u, 0x000400fau, 0x00002249u, 0x00004bddu, 0x00004becu, 0x000200f8u, 0x00004bddu, + 0x00050050u, 0x0000005fu, 0x00004be0u, 0x00007df2u, 0x00004996u, 0x0004007cu, 0x000000a6u, 0x00004be1u, + 0x00004be0u, 0x00050051u, 0x00000006u, 0x00005caeu, 0x00004be1u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005cafu, 0x000047cdu, 0x00005caeu, 0x00050080u, 0x00000006u, 0x00005cb0u, 0x000047cau, 0x00005cafu, + 0x00050051u, 0x00000006u, 0x00005cb2u, 0x00004be1u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005cb3u, + 0x00005cb2u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005cb5u, 0x00005cb0u, 0x00005cb3u, 0x000500c7u, + 0x00000006u, 0x00005cb7u, 0x00005cb5u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005cb9u, 0x00005cb7u, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005cbcu, 0x00005caeu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005cbdu, 0x00005cbcu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005cbfu, 0x00005cb9u, 0x00005cbdu, + 0x000500c6u, 0x00000006u, 0x00005cc1u, 0x00005cbfu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005cc4u, + 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005cc1u, 0x0004003du, 0x00000230u, 0x00005cc5u, + 0x00005cc4u, 0x00040071u, 0x00000006u, 0x00005cc6u, 0x00005cc5u, 0x000500c2u, 0x00000006u, 0x00005cceu, + 0x00005cc6u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005cd0u, 0x00005cc6u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00005cd2u, 0x00005cceu, 0x0004007cu, 0x00000008u, 0x00005cd8u, 0x00005cd0u, 0x00070050u, + 0x00000009u, 0x00005cd9u, 0x00005cd2u, 0x00005cd2u, 0x00005cd2u, 0x00005cd8u, 0x00050050u, 0x0000005fu, + 0x00004be7u, 0x00007deau, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004be8u, 0x00004be7u, 0x00050051u, + 0x00000006u, 0x00005ce5u, 0x00004be8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005ce6u, 0x000047cdu, + 0x00005ce5u, 0x00050080u, 0x00000006u, 0x00005ce7u, 0x000047cau, 0x00005ce6u, 0x00050051u, 0x00000006u, + 0x00005ce9u, 0x00004be8u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005ceau, 0x00005ce9u, 0x000003c9u, + 0x00050080u, 0x00000006u, 0x00005cecu, 0x00005ce7u, 0x00005ceau, 0x000500c7u, 0x00000006u, 0x00005ceeu, + 0x00005cecu, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005cf0u, 0x00005ceeu, 0x00000217u, 0x000500c7u, + 0x00000006u, 0x00005cf3u, 0x00005ce5u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005cf4u, 0x00005cf3u, + 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005cf6u, 0x00005cf0u, 0x00005cf4u, 0x000500c6u, 0x00000006u, + 0x00005cf8u, 0x00005cf6u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005cfbu, 0x00000f3au, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00005cf8u, 0x0004003du, 0x00000230u, 0x00005cfcu, 0x00005cfbu, 0x00040071u, + 0x00000006u, 0x00005cfdu, 0x00005cfcu, 0x000500c2u, 0x00000006u, 0x00005d05u, 0x00005cfdu, 0x00000263u, + 0x000500c7u, 0x00000006u, 0x00005d07u, 0x00005cfdu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005d09u, + 0x00005d05u, 0x0004007cu, 0x00000008u, 0x00005d0fu, 0x00005d07u, 0x00070050u, 0x00000009u, 0x00005d10u, + 0x00005d09u, 0x00005d09u, 0x00005d09u, 0x00005d0fu, 0x000200f9u, 0x00004becu, 0x000200f8u, 0x00004becu, + 0x000700f5u, 0x00000009u, 0x000081b8u, 0x000080ebu, 0x00004bd6u, 0x00005d10u, 0x00004bddu, 0x000700f5u, + 0x00000009u, 0x000080c0u, 0x00007ff0u, 0x00004bd6u, 0x00005cd9u, 0x00004bddu, 0x000300f7u, 0x00004bf6u, + 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004beeu, 0x00004bf6u, 0x000200f8u, 0x00004beeu, 0x00050050u, + 0x0000005fu, 0x00004bf1u, 0x00007df2u, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004bf2u, 0x00004bf1u, + 0x00050051u, 0x00000006u, 0x00005d1cu, 0x00004bf2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d1du, + 0x000047cdu, 0x00005d1cu, 0x00050080u, 0x00000006u, 0x00005d1eu, 0x000047cau, 0x00005d1du, 0x00050051u, + 0x00000006u, 0x00005d20u, 0x00004bf2u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005d21u, 0x00005d20u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005d23u, 0x00005d1eu, 0x00005d21u, 0x000500c7u, 0x00000006u, + 0x00005d25u, 0x00005d23u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005d27u, 0x00005d25u, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00005d2au, 0x00005d1cu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005d2bu, + 0x00005d2au, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005d2du, 0x00005d27u, 0x00005d2bu, 0x000500c6u, + 0x00000006u, 0x00005d2fu, 0x00005d2du, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005d32u, 0x00000f3au, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00005d2fu, 0x0004003du, 0x00000230u, 0x00005d33u, 0x00005d32u, + 0x00040071u, 0x00000006u, 0x00005d34u, 0x00005d33u, 0x000500c2u, 0x00000006u, 0x00005d3cu, 0x00005d34u, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005d3eu, 0x00005d34u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00005d40u, 0x00005d3cu, 0x0004007cu, 0x00000008u, 0x00005d46u, 0x00005d3eu, 0x00070050u, 0x00000009u, + 0x00005d47u, 0x00005d40u, 0x00005d40u, 0x00005d40u, 0x00005d46u, 0x000200f9u, 0x00004bf6u, 0x000200f8u, + 0x00004bf6u, 0x000700f5u, 0x00000009u, 0x000082afu, 0x000081e0u, 0x00004becu, 0x00005d47u, 0x00004beeu, + 0x000200f9u, 0x00004c18u, 0x000200f8u, 0x00004bb5u, 0x0004007cu, 0x000000a6u, 0x00004bb7u, 0x00007e11u, + 0x00050051u, 0x00000006u, 0x00005b98u, 0x00004bb7u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b99u, + 0x000047cdu, 0x00005b98u, 0x00050080u, 0x00000006u, 0x00005b9au, 0x000047cau, 0x00005b99u, 0x00050051u, + 0x00000006u, 0x00005b9cu, 0x00004bb7u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005b9eu, 0x00005b9au, + 0x00005b9cu, 0x000500c7u, 0x00000006u, 0x00005ba0u, 0x00005b9eu, 0x00000e59u, 0x000500c7u, 0x00000006u, + 0x00005ba4u, 0x00005b98u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005ba5u, 0x00005ba4u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00005ba7u, 0x00005ba0u, 0x00005ba5u, 0x000500c6u, 0x00000006u, 0x00005ba9u, + 0x00005ba7u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005bacu, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00005ba9u, 0x0004003du, 0x0000022eu, 0x00005badu, 0x00005bacu, 0x00040071u, 0x00000006u, + 0x00005baeu, 0x00005badu, 0x000500c2u, 0x00000006u, 0x00005bb0u, 0x00005baeu, 0x00000220u, 0x000500c7u, + 0x00000006u, 0x00005bb2u, 0x00005baeu, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00005bb4u, 0x00005bb2u, + 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005bb6u, 0x00005bb2u, 0x00005bb4u, 0x000500c4u, 0x00000006u, + 0x00005bb8u, 0x00005bb0u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005bbau, 0x00005bb0u, 0x00005bb8u, + 0x0004007cu, 0x00000008u, 0x00005bbcu, 0x00005bbau, 0x0004007cu, 0x00000008u, 0x00005bc2u, 0x00005bb6u, + 0x00070050u, 0x00000009u, 0x00005bc3u, 0x00005bbcu, 0x00005bbcu, 0x00005bbcu, 0x00005bc2u, 0x000300f7u, + 0x00004bcbu, 0x00000000u, 0x000400fau, 0x00002249u, 0x00004bbcu, 0x00004bcbu, 0x000200f8u, 0x00004bbcu, + 0x00050050u, 0x0000005fu, 0x00004bbfu, 0x00007df2u, 0x00004996u, 0x0004007cu, 0x000000a6u, 0x00004bc0u, + 0x00004bbfu, 0x00050051u, 0x00000006u, 0x00005bd0u, 0x00004bc0u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005bd1u, 0x000047cdu, 0x00005bd0u, 0x00050080u, 0x00000006u, 0x00005bd2u, 0x000047cau, 0x00005bd1u, + 0x00050051u, 0x00000006u, 0x00005bd4u, 0x00004bc0u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005bd6u, + 0x00005bd2u, 0x00005bd4u, 0x000500c7u, 0x00000006u, 0x00005bd8u, 0x00005bd6u, 0x00000e59u, 0x000500c7u, + 0x00000006u, 0x00005bdcu, 0x00005bd0u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005bddu, 0x00005bdcu, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005bdfu, 0x00005bd8u, 0x00005bddu, 0x000500c6u, 0x00000006u, + 0x00005be1u, 0x00005bdfu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005be4u, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00005be1u, 0x0004003du, 0x0000022eu, 0x00005be5u, 0x00005be4u, 0x00040071u, + 0x00000006u, 0x00005be6u, 0x00005be5u, 0x000500c2u, 0x00000006u, 0x00005be8u, 0x00005be6u, 0x00000220u, + 0x000500c7u, 0x00000006u, 0x00005beau, 0x00005be6u, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00005becu, + 0x00005beau, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005beeu, 0x00005beau, 0x00005becu, 0x000500c4u, + 0x00000006u, 0x00005bf0u, 0x00005be8u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005bf2u, 0x00005be8u, + 0x00005bf0u, 0x0004007cu, 0x00000008u, 0x00005bf4u, 0x00005bf2u, 0x0004007cu, 0x00000008u, 0x00005bfau, + 0x00005beeu, 0x00070050u, 0x00000009u, 0x00005bfbu, 0x00005bf4u, 0x00005bf4u, 0x00005bf4u, 0x00005bfau, + 0x00050050u, 0x0000005fu, 0x00004bc6u, 0x00007deau, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004bc7u, + 0x00004bc6u, 0x00050051u, 0x00000006u, 0x00005c08u, 0x00004bc7u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005c09u, 0x000047cdu, 0x00005c08u, 0x00050080u, 0x00000006u, 0x00005c0au, 0x000047cau, 0x00005c09u, + 0x00050051u, 0x00000006u, 0x00005c0cu, 0x00004bc7u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005c0eu, + 0x00005c0au, 0x00005c0cu, 0x000500c7u, 0x00000006u, 0x00005c10u, 0x00005c0eu, 0x00000e59u, 0x000500c7u, + 0x00000006u, 0x00005c14u, 0x00005c08u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005c15u, 0x00005c14u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005c17u, 0x00005c10u, 0x00005c15u, 0x000500c6u, 0x00000006u, + 0x00005c19u, 0x00005c17u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005c1cu, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00005c19u, 0x0004003du, 0x0000022eu, 0x00005c1du, 0x00005c1cu, 0x00040071u, + 0x00000006u, 0x00005c1eu, 0x00005c1du, 0x000500c2u, 0x00000006u, 0x00005c20u, 0x00005c1eu, 0x00000220u, + 0x000500c7u, 0x00000006u, 0x00005c22u, 0x00005c1eu, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00005c24u, + 0x00005c22u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005c26u, 0x00005c22u, 0x00005c24u, 0x000500c4u, + 0x00000006u, 0x00005c28u, 0x00005c20u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005c2au, 0x00005c20u, + 0x00005c28u, 0x0004007cu, 0x00000008u, 0x00005c2cu, 0x00005c2au, 0x0004007cu, 0x00000008u, 0x00005c32u, + 0x00005c26u, 0x00070050u, 0x00000009u, 0x00005c33u, 0x00005c2cu, 0x00005c2cu, 0x00005c2cu, 0x00005c32u, + 0x000200f9u, 0x00004bcbu, 0x000200f8u, 0x00004bcbu, 0x000700f5u, 0x00000009u, 0x000081b6u, 0x000080ebu, + 0x00004bb5u, 0x00005c33u, 0x00004bbcu, 0x000700f5u, 0x00000009u, 0x000080beu, 0x00007ff0u, 0x00004bb5u, + 0x00005bfbu, 0x00004bbcu, 0x000300f7u, 0x00004bd5u, 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004bcdu, + 0x00004bd5u, 0x000200f8u, 0x00004bcdu, 0x00050050u, 0x0000005fu, 0x00004bd0u, 0x00007df2u, 0x00004998u, + 0x0004007cu, 0x000000a6u, 0x00004bd1u, 0x00004bd0u, 0x00050051u, 0x00000006u, 0x00005c40u, 0x00004bd1u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005c41u, 0x000047cdu, 0x00005c40u, 0x00050080u, 0x00000006u, + 0x00005c42u, 0x000047cau, 0x00005c41u, 0x00050051u, 0x00000006u, 0x00005c44u, 0x00004bd1u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005c46u, 0x00005c42u, 0x00005c44u, 0x000500c7u, 0x00000006u, 0x00005c48u, + 0x00005c46u, 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00005c4cu, 0x00005c40u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00005c4du, 0x00005c4cu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005c4fu, 0x00005c48u, + 0x00005c4du, 0x000500c6u, 0x00000006u, 0x00005c51u, 0x00005c4fu, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00005c54u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005c51u, 0x0004003du, 0x0000022eu, + 0x00005c55u, 0x00005c54u, 0x00040071u, 0x00000006u, 0x00005c56u, 0x00005c55u, 0x000500c2u, 0x00000006u, + 0x00005c58u, 0x00005c56u, 0x00000220u, 0x000500c7u, 0x00000006u, 0x00005c5au, 0x00005c56u, 0x00000e7cu, + 0x000500c4u, 0x00000006u, 0x00005c5cu, 0x00005c5au, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005c5eu, + 0x00005c5au, 0x00005c5cu, 0x000500c4u, 0x00000006u, 0x00005c60u, 0x00005c58u, 0x00000220u, 0x000500c5u, + 0x00000006u, 0x00005c62u, 0x00005c58u, 0x00005c60u, 0x0004007cu, 0x00000008u, 0x00005c64u, 0x00005c62u, + 0x0004007cu, 0x00000008u, 0x00005c6au, 0x00005c5eu, 0x00070050u, 0x00000009u, 0x00005c6bu, 0x00005c64u, + 0x00005c64u, 0x00005c64u, 0x00005c6au, 0x000200f9u, 0x00004bd5u, 0x000200f8u, 0x00004bd5u, 0x000700f5u, + 0x00000009u, 0x000082adu, 0x000081e0u, 0x00004bcbu, 0x00005c6bu, 0x00004bcdu, 0x000200f9u, 0x00004c18u, + 0x000200f8u, 0x00004b94u, 0x0004007cu, 0x000000a6u, 0x00004b96u, 0x00007e11u, 0x00050051u, 0x00000006u, + 0x00005a90u, 0x00004b96u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005a91u, 0x000047cdu, 0x00005a90u, + 0x00050080u, 0x00000006u, 0x00005a92u, 0x000047cau, 0x00005a91u, 0x00050051u, 0x00000006u, 0x00005a94u, + 0x00004b96u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005a95u, 0x00005a94u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x00005a97u, 0x00005a92u, 0x00005a95u, 0x000500c7u, 0x00000006u, 0x00005a99u, 0x00005a97u, + 0x00000e59u, 0x000400c8u, 0x00000006u, 0x00005a9cu, 0x00005a94u, 0x000500c7u, 0x00000006u, 0x00005a9du, + 0x00005a9cu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005a9eu, 0x00005a9du, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00005aa2u, 0x00005a90u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005aa3u, 0x00005aa2u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005aa5u, 0x00005a99u, 0x00005aa3u, 0x000500c6u, 0x00000006u, + 0x00005aa7u, 0x00005aa5u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005aaau, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00005aa7u, 0x0004003du, 0x0000022eu, 0x00005aabu, 0x00005aaau, 0x00040071u, + 0x00000006u, 0x00005aacu, 0x00005aabu, 0x000500c2u, 0x00000006u, 0x00005aafu, 0x00005aacu, 0x00005a9eu, + 0x000500c7u, 0x00000006u, 0x00005ab0u, 0x00005aafu, 0x00000e7cu, 0x000500c7u, 0x00000006u, 0x00005ab2u, + 0x00005ab0u, 0x00000eb3u, 0x000500c4u, 0x00000006u, 0x00005ab4u, 0x00005ab2u, 0x00000220u, 0x000500c4u, + 0x00000006u, 0x00005ab6u, 0x00005ab2u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00005ab7u, 0x00005ab4u, + 0x00005ab6u, 0x000500c2u, 0x00000006u, 0x00005ab9u, 0x00005ab2u, 0x0000021au, 0x000500c5u, 0x00000006u, + 0x00005abau, 0x00005ab7u, 0x00005ab9u, 0x0004007cu, 0x00000008u, 0x00005abcu, 0x00005abau, 0x000500c7u, + 0x00000006u, 0x00005ac2u, 0x00005ab0u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005ac3u, 0x00005ac2u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005ac4u, 0x00005ac3u, 0x00070050u, 0x00000009u, 0x00005ac5u, + 0x00005abcu, 0x00005abcu, 0x00005abcu, 0x00005ac4u, 0x000300f7u, 0x00004baau, 0x00000000u, 0x000400fau, + 0x00002249u, 0x00004b9bu, 0x00004baau, 0x000200f8u, 0x00004b9bu, 0x00050050u, 0x0000005fu, 0x00004b9eu, + 0x00007df2u, 0x00004996u, 0x0004007cu, 0x000000a6u, 0x00004b9fu, 0x00004b9eu, 0x00050051u, 0x00000006u, + 0x00005ad2u, 0x00004b9fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005ad3u, 0x000047cdu, 0x00005ad2u, + 0x00050080u, 0x00000006u, 0x00005ad4u, 0x000047cau, 0x00005ad3u, 0x00050051u, 0x00000006u, 0x00005ad6u, + 0x00004b9fu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005ad7u, 0x00005ad6u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x00005ad9u, 0x00005ad4u, 0x00005ad7u, 0x000500c7u, 0x00000006u, 0x00005adbu, 0x00005ad9u, + 0x00000e59u, 0x000400c8u, 0x00000006u, 0x00005adeu, 0x00005ad6u, 0x000500c7u, 0x00000006u, 0x00005adfu, + 0x00005adeu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005ae0u, 0x00005adfu, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00005ae4u, 0x00005ad2u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005ae5u, 0x00005ae4u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005ae7u, 0x00005adbu, 0x00005ae5u, 0x000500c6u, 0x00000006u, + 0x00005ae9u, 0x00005ae7u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005aecu, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00005ae9u, 0x0004003du, 0x0000022eu, 0x00005aedu, 0x00005aecu, 0x00040071u, + 0x00000006u, 0x00005aeeu, 0x00005aedu, 0x000500c2u, 0x00000006u, 0x00005af1u, 0x00005aeeu, 0x00005ae0u, + 0x000500c7u, 0x00000006u, 0x00005af2u, 0x00005af1u, 0x00000e7cu, 0x000500c7u, 0x00000006u, 0x00005af4u, + 0x00005af2u, 0x00000eb3u, 0x000500c4u, 0x00000006u, 0x00005af6u, 0x00005af4u, 0x00000220u, 0x000500c4u, + 0x00000006u, 0x00005af8u, 0x00005af4u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00005af9u, 0x00005af6u, + 0x00005af8u, 0x000500c2u, 0x00000006u, 0x00005afbu, 0x00005af4u, 0x0000021au, 0x000500c5u, 0x00000006u, + 0x00005afcu, 0x00005af9u, 0x00005afbu, 0x0004007cu, 0x00000008u, 0x00005afeu, 0x00005afcu, 0x000500c7u, + 0x00000006u, 0x00005b04u, 0x00005af2u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005b05u, 0x00005b04u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005b06u, 0x00005b05u, 0x00070050u, 0x00000009u, 0x00005b07u, + 0x00005afeu, 0x00005afeu, 0x00005afeu, 0x00005b06u, 0x00050050u, 0x0000005fu, 0x00004ba5u, 0x00007deau, + 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004ba6u, 0x00004ba5u, 0x00050051u, 0x00000006u, 0x00005b14u, + 0x00004ba6u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b15u, 0x000047cdu, 0x00005b14u, 0x00050080u, + 0x00000006u, 0x00005b16u, 0x000047cau, 0x00005b15u, 0x00050051u, 0x00000006u, 0x00005b18u, 0x00004ba6u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005b19u, 0x00005b18u, 0x00000217u, 0x00050080u, 0x00000006u, + 0x00005b1bu, 0x00005b16u, 0x00005b19u, 0x000500c7u, 0x00000006u, 0x00005b1du, 0x00005b1bu, 0x00000e59u, + 0x000400c8u, 0x00000006u, 0x00005b20u, 0x00005b18u, 0x000500c7u, 0x00000006u, 0x00005b21u, 0x00005b20u, + 0x0000048au, 0x00050084u, 0x00000006u, 0x00005b22u, 0x00005b21u, 0x00000706u, 0x000500c7u, 0x00000006u, + 0x00005b26u, 0x00005b14u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005b27u, 0x00005b26u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00005b29u, 0x00005b1du, 0x00005b27u, 0x000500c6u, 0x00000006u, 0x00005b2bu, + 0x00005b29u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005b2eu, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00005b2bu, 0x0004003du, 0x0000022eu, 0x00005b2fu, 0x00005b2eu, 0x00040071u, 0x00000006u, + 0x00005b30u, 0x00005b2fu, 0x000500c2u, 0x00000006u, 0x00005b33u, 0x00005b30u, 0x00005b22u, 0x000500c7u, + 0x00000006u, 0x00005b34u, 0x00005b33u, 0x00000e7cu, 0x000500c7u, 0x00000006u, 0x00005b36u, 0x00005b34u, + 0x00000eb3u, 0x000500c4u, 0x00000006u, 0x00005b38u, 0x00005b36u, 0x00000220u, 0x000500c4u, 0x00000006u, + 0x00005b3au, 0x00005b36u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00005b3bu, 0x00005b38u, 0x00005b3au, + 0x000500c2u, 0x00000006u, 0x00005b3du, 0x00005b36u, 0x0000021au, 0x000500c5u, 0x00000006u, 0x00005b3eu, + 0x00005b3bu, 0x00005b3du, 0x0004007cu, 0x00000008u, 0x00005b40u, 0x00005b3eu, 0x000500c7u, 0x00000006u, + 0x00005b46u, 0x00005b34u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005b47u, 0x00005b46u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00005b48u, 0x00005b47u, 0x00070050u, 0x00000009u, 0x00005b49u, 0x00005b40u, + 0x00005b40u, 0x00005b40u, 0x00005b48u, 0x000200f9u, 0x00004baau, 0x000200f8u, 0x00004baau, 0x000700f5u, + 0x00000009u, 0x000081b4u, 0x000080ebu, 0x00004b94u, 0x00005b49u, 0x00004b9bu, 0x000700f5u, 0x00000009u, + 0x000080bcu, 0x00007ff0u, 0x00004b94u, 0x00005b07u, 0x00004b9bu, 0x000300f7u, 0x00004bb4u, 0x00000000u, + 0x000400fau, 0x000049a2u, 0x00004bacu, 0x00004bb4u, 0x000200f8u, 0x00004bacu, 0x00050050u, 0x0000005fu, + 0x00004bafu, 0x00007df2u, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004bb0u, 0x00004bafu, 0x00050051u, + 0x00000006u, 0x00005b56u, 0x00004bb0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b57u, 0x000047cdu, + 0x00005b56u, 0x00050080u, 0x00000006u, 0x00005b58u, 0x000047cau, 0x00005b57u, 0x00050051u, 0x00000006u, + 0x00005b5au, 0x00004bb0u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005b5bu, 0x00005b5au, 0x00000217u, + 0x00050080u, 0x00000006u, 0x00005b5du, 0x00005b58u, 0x00005b5bu, 0x000500c7u, 0x00000006u, 0x00005b5fu, + 0x00005b5du, 0x00000e59u, 0x000400c8u, 0x00000006u, 0x00005b62u, 0x00005b5au, 0x000500c7u, 0x00000006u, + 0x00005b63u, 0x00005b62u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005b64u, 0x00005b63u, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x00005b68u, 0x00005b56u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005b69u, + 0x00005b68u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005b6bu, 0x00005b5fu, 0x00005b69u, 0x000500c6u, + 0x00000006u, 0x00005b6du, 0x00005b6bu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005b70u, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00005b6du, 0x0004003du, 0x0000022eu, 0x00005b71u, 0x00005b70u, + 0x00040071u, 0x00000006u, 0x00005b72u, 0x00005b71u, 0x000500c2u, 0x00000006u, 0x00005b75u, 0x00005b72u, + 0x00005b64u, 0x000500c7u, 0x00000006u, 0x00005b76u, 0x00005b75u, 0x00000e7cu, 0x000500c7u, 0x00000006u, + 0x00005b78u, 0x00005b76u, 0x00000eb3u, 0x000500c4u, 0x00000006u, 0x00005b7au, 0x00005b78u, 0x00000220u, + 0x000500c4u, 0x00000006u, 0x00005b7cu, 0x00005b78u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00005b7du, + 0x00005b7au, 0x00005b7cu, 0x000500c2u, 0x00000006u, 0x00005b7fu, 0x00005b78u, 0x0000021au, 0x000500c5u, + 0x00000006u, 0x00005b80u, 0x00005b7du, 0x00005b7fu, 0x0004007cu, 0x00000008u, 0x00005b82u, 0x00005b80u, + 0x000500c7u, 0x00000006u, 0x00005b88u, 0x00005b76u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005b89u, + 0x00005b88u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005b8au, 0x00005b89u, 0x00070050u, 0x00000009u, + 0x00005b8bu, 0x00005b82u, 0x00005b82u, 0x00005b82u, 0x00005b8au, 0x000200f9u, 0x00004bb4u, 0x000200f8u, + 0x00004bb4u, 0x000700f5u, 0x00000009u, 0x000082abu, 0x000081e0u, 0x00004baau, 0x00005b8bu, 0x00004bacu, + 0x000200f9u, 0x00004c18u, 0x000200f8u, 0x00004c18u, 0x000d00f5u, 0x00000009u, 0x000082aau, 0x000081e0u, + 0x00004b91u, 0x000082abu, 0x00004bb4u, 0x000082adu, 0x00004bd5u, 0x000082afu, 0x00004bf6u, 0x000082b1u, + 0x00004c17u, 0x000d00f5u, 0x00000009u, 0x000081b2u, 0x000080ebu, 0x00004b91u, 0x000081b4u, 0x00004bb4u, + 0x000081b6u, 0x00004bd5u, 0x000081b8u, 0x00004bf6u, 0x000081bau, 0x00004c17u, 0x000d00f5u, 0x00000009u, + 0x000080bau, 0x00007ff0u, 0x00004b91u, 0x000080bcu, 0x00004bb4u, 0x000080beu, 0x00004bd5u, 0x000080c0u, + 0x00004bf6u, 0x000080c2u, 0x00004c17u, 0x000d00f5u, 0x00000009u, 0x00007f4du, 0x00007e84u, 0x00004b91u, + 0x00005ac5u, 0x00004bb4u, 0x00005bc3u, 0x00004bd5u, 0x00005ca2u, 0x00004bf6u, 0x00005d72u, 0x00004c17u, + 0x000200f9u, 0x00004c80u, 0x000200f8u, 0x00004b1eu, 0x000300f7u, 0x00004b90u, 0x00000000u, 0x000700fbu, + 0x000047d7u, 0x00004b21u, 0x00000000u, 0x00004b42u, 0x00000001u, 0x00004b6fu, 0x000200f8u, 0x00004b6fu, + 0x0004007cu, 0x000000a6u, 0x00004b71u, 0x00007e11u, 0x00050051u, 0x00000006u, 0x000059feu, 0x00004b71u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000059ffu, 0x000047cdu, 0x000059feu, 0x00050080u, 0x00000006u, + 0x00005a00u, 0x000047cau, 0x000059ffu, 0x00050051u, 0x00000006u, 0x00005a02u, 0x00004b71u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005a04u, 0x00005a00u, 0x00005a02u, 0x000500c7u, 0x00000006u, 0x00005a06u, + 0x00005a04u, 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00005a0au, 0x000059feu, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00005a0bu, 0x00005a0au, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005a0du, 0x00005a06u, + 0x00005a0bu, 0x000500c6u, 0x00000006u, 0x00005a0fu, 0x00005a0du, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00005a12u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005a0fu, 0x0004003du, 0x0000022eu, + 0x00005a13u, 0x00005a12u, 0x00040071u, 0x00000006u, 0x00005a14u, 0x00005a13u, 0x0004007cu, 0x00000008u, + 0x00005a16u, 0x00005a14u, 0x00070050u, 0x00000009u, 0x00005a17u, 0x00005a16u, 0x00005a16u, 0x00005a16u, + 0x00005a16u, 0x000300f7u, 0x00004b85u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00004b76u, 0x00004b85u, + 0x000200f8u, 0x00004b76u, 0x00050050u, 0x0000005fu, 0x00004b79u, 0x00007df2u, 0x00004996u, 0x0004007cu, + 0x000000a6u, 0x00004b7au, 0x00004b79u, 0x00050051u, 0x00000006u, 0x00005a22u, 0x00004b7au, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005a23u, 0x000047cdu, 0x00005a22u, 0x00050080u, 0x00000006u, 0x00005a24u, + 0x000047cau, 0x00005a23u, 0x00050051u, 0x00000006u, 0x00005a26u, 0x00004b7au, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00005a28u, 0x00005a24u, 0x00005a26u, 0x000500c7u, 0x00000006u, 0x00005a2au, 0x00005a28u, + 0x00000e59u, 0x000500c7u, 0x00000006u, 0x00005a2eu, 0x00005a22u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005a2fu, 0x00005a2eu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005a31u, 0x00005a2au, 0x00005a2fu, + 0x000500c6u, 0x00000006u, 0x00005a33u, 0x00005a31u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005a36u, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005a33u, 0x0004003du, 0x0000022eu, 0x00005a37u, + 0x00005a36u, 0x00040071u, 0x00000006u, 0x00005a38u, 0x00005a37u, 0x0004007cu, 0x00000008u, 0x00005a3au, + 0x00005a38u, 0x00070050u, 0x00000009u, 0x00005a3bu, 0x00005a3au, 0x00005a3au, 0x00005a3au, 0x00005a3au, + 0x00050050u, 0x0000005fu, 0x00004b80u, 0x00007deau, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004b81u, + 0x00004b80u, 0x00050051u, 0x00000006u, 0x00005a46u, 0x00004b81u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005a47u, 0x000047cdu, 0x00005a46u, 0x00050080u, 0x00000006u, 0x00005a48u, 0x000047cau, 0x00005a47u, + 0x00050051u, 0x00000006u, 0x00005a4au, 0x00004b81u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005a4cu, + 0x00005a48u, 0x00005a4au, 0x000500c7u, 0x00000006u, 0x00005a4eu, 0x00005a4cu, 0x00000e59u, 0x000500c7u, + 0x00000006u, 0x00005a52u, 0x00005a46u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005a53u, 0x00005a52u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005a55u, 0x00005a4eu, 0x00005a53u, 0x000500c6u, 0x00000006u, + 0x00005a57u, 0x00005a55u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005a5au, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00005a57u, 0x0004003du, 0x0000022eu, 0x00005a5bu, 0x00005a5au, 0x00040071u, + 0x00000006u, 0x00005a5cu, 0x00005a5bu, 0x0004007cu, 0x00000008u, 0x00005a5eu, 0x00005a5cu, 0x00070050u, + 0x00000009u, 0x00005a5fu, 0x00005a5eu, 0x00005a5eu, 0x00005a5eu, 0x00005a5eu, 0x000200f9u, 0x00004b85u, + 0x000200f8u, 0x00004b85u, 0x000700f5u, 0x00000009u, 0x000081b1u, 0x000080ebu, 0x00004b6fu, 0x00005a5fu, + 0x00004b76u, 0x000700f5u, 0x00000009u, 0x000080b9u, 0x00007ff0u, 0x00004b6fu, 0x00005a3bu, 0x00004b76u, + 0x000300f7u, 0x00004b8fu, 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004b87u, 0x00004b8fu, 0x000200f8u, + 0x00004b87u, 0x00050050u, 0x0000005fu, 0x00004b8au, 0x00007df2u, 0x00004998u, 0x0004007cu, 0x000000a6u, + 0x00004b8bu, 0x00004b8au, 0x00050051u, 0x00000006u, 0x00005a6au, 0x00004b8bu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005a6bu, 0x000047cdu, 0x00005a6au, 0x00050080u, 0x00000006u, 0x00005a6cu, 0x000047cau, + 0x00005a6bu, 0x00050051u, 0x00000006u, 0x00005a6eu, 0x00004b8bu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005a70u, 0x00005a6cu, 0x00005a6eu, 0x000500c7u, 0x00000006u, 0x00005a72u, 0x00005a70u, 0x00000e59u, + 0x000500c7u, 0x00000006u, 0x00005a76u, 0x00005a6au, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005a77u, + 0x00005a76u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005a79u, 0x00005a72u, 0x00005a77u, 0x000500c6u, + 0x00000006u, 0x00005a7bu, 0x00005a79u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005a7eu, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00005a7bu, 0x0004003du, 0x0000022eu, 0x00005a7fu, 0x00005a7eu, + 0x00040071u, 0x00000006u, 0x00005a80u, 0x00005a7fu, 0x0004007cu, 0x00000008u, 0x00005a82u, 0x00005a80u, + 0x00070050u, 0x00000009u, 0x00005a83u, 0x00005a82u, 0x00005a82u, 0x00005a82u, 0x00005a82u, 0x000200f9u, + 0x00004b8fu, 0x000200f8u, 0x00004b8fu, 0x000700f5u, 0x00000009u, 0x000082a8u, 0x000081e0u, 0x00004b85u, + 0x00005a83u, 0x00004b87u, 0x000200f9u, 0x00004b90u, 0x000200f8u, 0x00004b42u, 0x0004007cu, 0x000000a6u, + 0x00004b44u, 0x00007e11u, 0x0004007cu, 0x00000006u, 0x00004b47u, 0x000047dcu, 0x00050051u, 0x00000006u, + 0x00005933u, 0x00004b44u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005934u, 0x000047cdu, 0x00005933u, + 0x00050080u, 0x00000006u, 0x00005935u, 0x000047cau, 0x00005934u, 0x00050051u, 0x00000006u, 0x00005937u, + 0x00004b44u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005938u, 0x00005937u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x0000593au, 0x00005935u, 0x00005938u, 0x000500c7u, 0x00000006u, 0x0000593cu, 0x0000593au, + 0x00000e59u, 0x000400c8u, 0x00000006u, 0x0000593fu, 0x00005937u, 0x000500c7u, 0x00000006u, 0x00005940u, + 0x0000593fu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005941u, 0x00005940u, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00005945u, 0x00005933u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005946u, 0x00005945u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005948u, 0x0000593cu, 0x00005946u, 0x000500c6u, 0x00000006u, + 0x0000594au, 0x00005948u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000594du, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x0000594au, 0x0004003du, 0x0000022eu, 0x0000594eu, 0x0000594du, 0x00040071u, + 0x00000006u, 0x0000594fu, 0x0000594eu, 0x000500c2u, 0x00000006u, 0x00005952u, 0x0000594fu, 0x00005941u, + 0x000500c7u, 0x00000006u, 0x00005953u, 0x00005952u, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x00005955u, + 0x00004b47u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005957u, 0x00005953u, 0x00005955u, 0x0004007cu, + 0x00000008u, 0x00005959u, 0x00005957u, 0x00070050u, 0x00000009u, 0x0000595au, 0x00005959u, 0x00005959u, + 0x00005959u, 0x00005959u, 0x000300f7u, 0x00004b61u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00004b4cu, + 0x00004b61u, 0x000200f8u, 0x00004b4cu, 0x00050050u, 0x0000005fu, 0x00004b4fu, 0x00007df2u, 0x00004996u, + 0x0004007cu, 0x000000a6u, 0x00004b50u, 0x00004b4fu, 0x00050051u, 0x00000006u, 0x00005966u, 0x00004b50u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005967u, 0x000047cdu, 0x00005966u, 0x00050080u, 0x00000006u, + 0x00005968u, 0x000047cau, 0x00005967u, 0x00050051u, 0x00000006u, 0x0000596au, 0x00004b50u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000596bu, 0x0000596au, 0x00000217u, 0x00050080u, 0x00000006u, 0x0000596du, + 0x00005968u, 0x0000596bu, 0x000500c7u, 0x00000006u, 0x0000596fu, 0x0000596du, 0x00000e59u, 0x000400c8u, + 0x00000006u, 0x00005972u, 0x0000596au, 0x000500c7u, 0x00000006u, 0x00005973u, 0x00005972u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x00005974u, 0x00005973u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00005978u, + 0x00005966u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005979u, 0x00005978u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x0000597bu, 0x0000596fu, 0x00005979u, 0x000500c6u, 0x00000006u, 0x0000597du, 0x0000597bu, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005980u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x0000597du, 0x0004003du, 0x0000022eu, 0x00005981u, 0x00005980u, 0x00040071u, 0x00000006u, 0x00005982u, + 0x00005981u, 0x000500c2u, 0x00000006u, 0x00005985u, 0x00005982u, 0x00005974u, 0x000500c7u, 0x00000006u, + 0x00005986u, 0x00005985u, 0x00000e7cu, 0x000500c5u, 0x00000006u, 0x0000598au, 0x00005986u, 0x00005955u, + 0x0004007cu, 0x00000008u, 0x0000598cu, 0x0000598au, 0x00070050u, 0x00000009u, 0x0000598du, 0x0000598cu, + 0x0000598cu, 0x0000598cu, 0x0000598cu, 0x00050050u, 0x0000005fu, 0x00004b59u, 0x00007deau, 0x00004998u, + 0x0004007cu, 0x000000a6u, 0x00004b5au, 0x00004b59u, 0x00050051u, 0x00000006u, 0x00005999u, 0x00004b5au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000599au, 0x000047cdu, 0x00005999u, 0x00050080u, 0x00000006u, + 0x0000599bu, 0x000047cau, 0x0000599au, 0x00050051u, 0x00000006u, 0x0000599du, 0x00004b5au, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000599eu, 0x0000599du, 0x00000217u, 0x00050080u, 0x00000006u, 0x000059a0u, + 0x0000599bu, 0x0000599eu, 0x000500c7u, 0x00000006u, 0x000059a2u, 0x000059a0u, 0x00000e59u, 0x000400c8u, + 0x00000006u, 0x000059a5u, 0x0000599du, 0x000500c7u, 0x00000006u, 0x000059a6u, 0x000059a5u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000059a7u, 0x000059a6u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000059abu, + 0x00005999u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000059acu, 0x000059abu, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000059aeu, 0x000059a2u, 0x000059acu, 0x000500c6u, 0x00000006u, 0x000059b0u, 0x000059aeu, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000059b3u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x000059b0u, 0x0004003du, 0x0000022eu, 0x000059b4u, 0x000059b3u, 0x00040071u, 0x00000006u, 0x000059b5u, + 0x000059b4u, 0x000500c2u, 0x00000006u, 0x000059b8u, 0x000059b5u, 0x000059a7u, 0x000500c7u, 0x00000006u, + 0x000059b9u, 0x000059b8u, 0x00000e7cu, 0x000500c5u, 0x00000006u, 0x000059bdu, 0x000059b9u, 0x00005955u, + 0x0004007cu, 0x00000008u, 0x000059bfu, 0x000059bdu, 0x00070050u, 0x00000009u, 0x000059c0u, 0x000059bfu, + 0x000059bfu, 0x000059bfu, 0x000059bfu, 0x000200f9u, 0x00004b61u, 0x000200f8u, 0x00004b61u, 0x000700f5u, + 0x00000009u, 0x000081afu, 0x000080ebu, 0x00004b42u, 0x000059c0u, 0x00004b4cu, 0x000700f5u, 0x00000009u, + 0x000080b7u, 0x00007ff0u, 0x00004b42u, 0x0000598du, 0x00004b4cu, 0x000300f7u, 0x00004b6eu, 0x00000000u, + 0x000400fau, 0x000049a2u, 0x00004b63u, 0x00004b6eu, 0x000200f8u, 0x00004b63u, 0x00050050u, 0x0000005fu, + 0x00004b66u, 0x00007df2u, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004b67u, 0x00004b66u, 0x00050051u, + 0x00000006u, 0x000059ccu, 0x00004b67u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000059cdu, 0x000047cdu, + 0x000059ccu, 0x00050080u, 0x00000006u, 0x000059ceu, 0x000047cau, 0x000059cdu, 0x00050051u, 0x00000006u, + 0x000059d0u, 0x00004b67u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000059d1u, 0x000059d0u, 0x00000217u, + 0x00050080u, 0x00000006u, 0x000059d3u, 0x000059ceu, 0x000059d1u, 0x000500c7u, 0x00000006u, 0x000059d5u, + 0x000059d3u, 0x00000e59u, 0x000400c8u, 0x00000006u, 0x000059d8u, 0x000059d0u, 0x000500c7u, 0x00000006u, + 0x000059d9u, 0x000059d8u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000059dau, 0x000059d9u, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x000059deu, 0x000059ccu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000059dfu, + 0x000059deu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000059e1u, 0x000059d5u, 0x000059dfu, 0x000500c6u, + 0x00000006u, 0x000059e3u, 0x000059e1u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000059e6u, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x000059e3u, 0x0004003du, 0x0000022eu, 0x000059e7u, 0x000059e6u, + 0x00040071u, 0x00000006u, 0x000059e8u, 0x000059e7u, 0x000500c2u, 0x00000006u, 0x000059ebu, 0x000059e8u, + 0x000059dau, 0x000500c7u, 0x00000006u, 0x000059ecu, 0x000059ebu, 0x00000e7cu, 0x000500c5u, 0x00000006u, + 0x000059f0u, 0x000059ecu, 0x00005955u, 0x0004007cu, 0x00000008u, 0x000059f2u, 0x000059f0u, 0x00070050u, + 0x00000009u, 0x000059f3u, 0x000059f2u, 0x000059f2u, 0x000059f2u, 0x000059f2u, 0x000200f9u, 0x00004b6eu, + 0x000200f8u, 0x00004b6eu, 0x000700f5u, 0x00000009u, 0x000082a6u, 0x000081e0u, 0x00004b61u, 0x000059f3u, + 0x00004b63u, 0x000200f9u, 0x00004b90u, 0x000200f8u, 0x00004b21u, 0x0004007cu, 0x000000a6u, 0x00004b23u, + 0x00007e11u, 0x00050051u, 0x00000006u, 0x00005886u, 0x00004b23u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005887u, 0x000047cdu, 0x00005886u, 0x00050080u, 0x00000006u, 0x00005888u, 0x000047cau, 0x00005887u, + 0x00050051u, 0x00000006u, 0x0000588au, 0x00004b23u, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000588bu, + 0x0000588au, 0x000003c9u, 0x00050080u, 0x00000006u, 0x0000588du, 0x00005888u, 0x0000588bu, 0x000500c7u, + 0x00000006u, 0x0000588fu, 0x0000588du, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005891u, 0x0000588fu, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005894u, 0x00005886u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005895u, 0x00005894u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005897u, 0x00005891u, 0x00005895u, + 0x000500c6u, 0x00000006u, 0x00005899u, 0x00005897u, 0x0000048au, 0x00080041u, 0x00000275u, 0x0000589cu, + 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005899u, 0x0004003du, 0x00000230u, 0x0000589du, + 0x0000589cu, 0x00040071u, 0x00000006u, 0x0000589eu, 0x0000589du, 0x000500c2u, 0x00000006u, 0x000058a0u, + 0x0000589eu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x000058a1u, 0x000058a0u, 0x000500c7u, 0x00000006u, + 0x000058a3u, 0x0000589eu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000058a4u, 0x000058a3u, 0x00050050u, + 0x0000005fu, 0x000058a5u, 0x000058a1u, 0x000058a4u, 0x0009004fu, 0x00000009u, 0x000058a6u, 0x000058a5u, + 0x000058a5u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004b37u, 0x00000000u, + 0x000400fau, 0x00002249u, 0x00004b28u, 0x00004b37u, 0x000200f8u, 0x00004b28u, 0x00050050u, 0x0000005fu, + 0x00004b2bu, 0x00007df2u, 0x00004996u, 0x0004007cu, 0x000000a6u, 0x00004b2cu, 0x00004b2bu, 0x00050051u, + 0x00000006u, 0x000058b1u, 0x00004b2cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000058b2u, 0x000047cdu, + 0x000058b1u, 0x00050080u, 0x00000006u, 0x000058b3u, 0x000047cau, 0x000058b2u, 0x00050051u, 0x00000006u, + 0x000058b5u, 0x00004b2cu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000058b6u, 0x000058b5u, 0x000003c9u, + 0x00050080u, 0x00000006u, 0x000058b8u, 0x000058b3u, 0x000058b6u, 0x000500c7u, 0x00000006u, 0x000058bau, + 0x000058b8u, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x000058bcu, 0x000058bau, 0x00000217u, 0x000500c7u, + 0x00000006u, 0x000058bfu, 0x000058b1u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000058c0u, 0x000058bfu, + 0x00000217u, 0x000500c6u, 0x00000006u, 0x000058c2u, 0x000058bcu, 0x000058c0u, 0x000500c6u, 0x00000006u, + 0x000058c4u, 0x000058c2u, 0x0000048au, 0x00080041u, 0x00000275u, 0x000058c7u, 0x00000f3au, 0x00000208u, + 0x00002232u, 0x00000208u, 0x000058c4u, 0x0004003du, 0x00000230u, 0x000058c8u, 0x000058c7u, 0x00040071u, + 0x00000006u, 0x000058c9u, 0x000058c8u, 0x000500c2u, 0x00000006u, 0x000058cbu, 0x000058c9u, 0x00000263u, + 0x0004007cu, 0x00000008u, 0x000058ccu, 0x000058cbu, 0x000500c7u, 0x00000006u, 0x000058ceu, 0x000058c9u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000058cfu, 0x000058ceu, 0x00050050u, 0x0000005fu, 0x000058d0u, + 0x000058ccu, 0x000058cfu, 0x0009004fu, 0x00000009u, 0x000058d1u, 0x000058d0u, 0x000058d0u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x00004b32u, 0x00007deau, 0x00004998u, + 0x0004007cu, 0x000000a6u, 0x00004b33u, 0x00004b32u, 0x00050051u, 0x00000006u, 0x000058dcu, 0x00004b33u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000058ddu, 0x000047cdu, 0x000058dcu, 0x00050080u, 0x00000006u, + 0x000058deu, 0x000047cau, 0x000058ddu, 0x00050051u, 0x00000006u, 0x000058e0u, 0x00004b33u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x000058e1u, 0x000058e0u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000058e3u, + 0x000058deu, 0x000058e1u, 0x000500c7u, 0x00000006u, 0x000058e5u, 0x000058e3u, 0x00000e59u, 0x000500c2u, + 0x00000006u, 0x000058e7u, 0x000058e5u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000058eau, 0x000058dcu, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x000058ebu, 0x000058eau, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x000058edu, 0x000058e7u, 0x000058ebu, 0x000500c6u, 0x00000006u, 0x000058efu, 0x000058edu, 0x0000048au, + 0x00080041u, 0x00000275u, 0x000058f2u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x000058efu, + 0x0004003du, 0x00000230u, 0x000058f3u, 0x000058f2u, 0x00040071u, 0x00000006u, 0x000058f4u, 0x000058f3u, + 0x000500c2u, 0x00000006u, 0x000058f6u, 0x000058f4u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x000058f7u, + 0x000058f6u, 0x000500c7u, 0x00000006u, 0x000058f9u, 0x000058f4u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x000058fau, 0x000058f9u, 0x00050050u, 0x0000005fu, 0x000058fbu, 0x000058f7u, 0x000058fau, 0x0009004fu, + 0x00000009u, 0x000058fcu, 0x000058fbu, 0x000058fbu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004b37u, 0x000200f8u, 0x00004b37u, 0x000700f5u, 0x00000009u, 0x000081adu, 0x000080ebu, + 0x00004b21u, 0x000058fcu, 0x00004b28u, 0x000700f5u, 0x00000009u, 0x000080b5u, 0x00007ff0u, 0x00004b21u, + 0x000058d1u, 0x00004b28u, 0x000300f7u, 0x00004b41u, 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004b39u, + 0x00004b41u, 0x000200f8u, 0x00004b39u, 0x00050050u, 0x0000005fu, 0x00004b3cu, 0x00007df2u, 0x00004998u, + 0x0004007cu, 0x000000a6u, 0x00004b3du, 0x00004b3cu, 0x00050051u, 0x00000006u, 0x00005907u, 0x00004b3du, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005908u, 0x000047cdu, 0x00005907u, 0x00050080u, 0x00000006u, + 0x00005909u, 0x000047cau, 0x00005908u, 0x00050051u, 0x00000006u, 0x0000590bu, 0x00004b3du, 0x00000000u, + 0x00050084u, 0x00000006u, 0x0000590cu, 0x0000590bu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x0000590eu, + 0x00005909u, 0x0000590cu, 0x000500c7u, 0x00000006u, 0x00005910u, 0x0000590eu, 0x00000e59u, 0x000500c2u, + 0x00000006u, 0x00005912u, 0x00005910u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005915u, 0x00005907u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005916u, 0x00005915u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00005918u, 0x00005912u, 0x00005916u, 0x000500c6u, 0x00000006u, 0x0000591au, 0x00005918u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x0000591du, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x0000591au, + 0x0004003du, 0x00000230u, 0x0000591eu, 0x0000591du, 0x00040071u, 0x00000006u, 0x0000591fu, 0x0000591eu, + 0x000500c2u, 0x00000006u, 0x00005921u, 0x0000591fu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005922u, + 0x00005921u, 0x000500c7u, 0x00000006u, 0x00005924u, 0x0000591fu, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00005925u, 0x00005924u, 0x00050050u, 0x0000005fu, 0x00005926u, 0x00005922u, 0x00005925u, 0x0009004fu, + 0x00000009u, 0x00005927u, 0x00005926u, 0x00005926u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004b41u, 0x000200f8u, 0x00004b41u, 0x000700f5u, 0x00000009u, 0x000082a4u, 0x000081e0u, + 0x00004b37u, 0x00005927u, 0x00004b39u, 0x000200f9u, 0x00004b90u, 0x000200f8u, 0x00004b90u, 0x000900f5u, + 0x00000009u, 0x000082a3u, 0x000082a4u, 0x00004b41u, 0x000082a6u, 0x00004b6eu, 0x000082a8u, 0x00004b8fu, + 0x000900f5u, 0x00000009u, 0x000081abu, 0x000081adu, 0x00004b41u, 0x000081afu, 0x00004b6eu, 0x000081b1u, + 0x00004b8fu, 0x000900f5u, 0x00000009u, 0x000080b3u, 0x000080b5u, 0x00004b41u, 0x000080b7u, 0x00004b6eu, + 0x000080b9u, 0x00004b8fu, 0x000900f5u, 0x00000009u, 0x00007f46u, 0x000058a6u, 0x00004b41u, 0x0000595au, + 0x00004b6eu, 0x00005a17u, 0x00004b8fu, 0x000200f9u, 0x00004c80u, 0x000200f8u, 0x00004af0u, 0x000500c3u, + 0x00000008u, 0x00004af2u, 0x00007deau, 0x00000217u, 0x0004007cu, 0x00000006u, 0x00004af3u, 0x00004af2u, + 0x00050082u, 0x00000008u, 0x00004af7u, 0x00007df2u, 0x00007deau, 0x00050080u, 0x00000008u, 0x00004af8u, + 0x00007df2u, 0x00004af7u, 0x000500c3u, 0x00000008u, 0x00004af9u, 0x00004af8u, 0x00000217u, 0x0004007cu, + 0x00000006u, 0x00004afau, 0x00004af9u, 0x00050050u, 0x0000005fu, 0x00004afdu, 0x00007deau, 0x00004996u, + 0x0004007cu, 0x000000a6u, 0x00004afeu, 0x00004afdu, 0x00050051u, 0x00000006u, 0x0000575cu, 0x00004afeu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000575du, 0x000047cdu, 0x0000575cu, 0x00050080u, 0x00000006u, + 0x0000575eu, 0x000047cau, 0x0000575du, 0x00050051u, 0x00000006u, 0x00005761u, 0x00004afeu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005762u, 0x0000575eu, 0x00005761u, 0x000500c7u, 0x00000006u, 0x00005764u, + 0x00005762u, 0x00000f0bu, 0x00050084u, 0x00000006u, 0x00005767u, 0x00004af3u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00005768u, 0x0000575eu, 0x00005767u, 0x000500c7u, 0x00000006u, 0x0000576au, 0x00005768u, + 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x0000576eu, 0x0000575cu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x0000576fu, 0x0000576eu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005771u, 0x00005764u, 0x0000576fu, + 0x000500c6u, 0x00000006u, 0x00005773u, 0x00005771u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00005775u, + 0x0000576au, 0x00000217u, 0x000500c4u, 0x00000006u, 0x00005779u, 0x0000576eu, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x0000577bu, 0x00005775u, 0x00005779u, 0x000500c6u, 0x00000006u, 0x0000577du, 0x0000577bu, + 0x0000048au, 0x000500c5u, 0x00000006u, 0x00005780u, 0x00005773u, 0x00000f34u, 0x00080041u, 0x0000027cu, + 0x00005781u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005780u, 0x0004003du, 0x0000022eu, + 0x00005782u, 0x00005781u, 0x00040071u, 0x00000006u, 0x00005783u, 0x00005782u, 0x0004007cu, 0x00000008u, + 0x00005784u, 0x00005783u, 0x00080041u, 0x00000275u, 0x00005787u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x0000577du, 0x0004003du, 0x00000230u, 0x00005788u, 0x00005787u, 0x00040071u, 0x00000006u, + 0x00005789u, 0x00005788u, 0x0004007cu, 0x00000008u, 0x0000578au, 0x00005789u, 0x000500c3u, 0x00000008u, + 0x0000578cu, 0x0000578au, 0x00000263u, 0x000500c7u, 0x00000008u, 0x0000578du, 0x0000578cu, 0x00000390u, + 0x000500c3u, 0x00000008u, 0x0000578fu, 0x0000578au, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00005790u, + 0x0000578fu, 0x00000390u, 0x00050082u, 0x00000008u, 0x00005792u, 0x0000578du, 0x00000628u, 0x00050082u, + 0x00000008u, 0x00005794u, 0x00005790u, 0x00000628u, 0x00070050u, 0x00000009u, 0x00005797u, 0x00005792u, + 0x00005794u, 0x00005784u, 0x00005784u, 0x000300f7u, 0x00004b1du, 0x00000000u, 0x000400fau, 0x00002249u, + 0x00004b04u, 0x00004b1du, 0x000200f8u, 0x00004b04u, 0x00050050u, 0x0000005fu, 0x00004b07u, 0x00007df2u, + 0x00004996u, 0x0004007cu, 0x000000a6u, 0x00004b08u, 0x00004b07u, 0x00050051u, 0x00000006u, 0x000057a8u, + 0x00004b08u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000057a9u, 0x000047cdu, 0x000057a8u, 0x00050080u, + 0x00000006u, 0x000057aau, 0x000047cau, 0x000057a9u, 0x00050051u, 0x00000006u, 0x000057adu, 0x00004b08u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x000057aeu, 0x000057aau, 0x000057adu, 0x000500c7u, 0x00000006u, + 0x000057b0u, 0x000057aeu, 0x00000f0bu, 0x00050084u, 0x00000006u, 0x000057b3u, 0x00004afau, 0x000003c9u, + 0x00050080u, 0x00000006u, 0x000057b4u, 0x000057aau, 0x000057b3u, 0x000500c7u, 0x00000006u, 0x000057b6u, + 0x000057b4u, 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x000057bau, 0x000057a8u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x000057bbu, 0x000057bau, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000057bdu, 0x000057b0u, + 0x000057bbu, 0x000500c6u, 0x00000006u, 0x000057bfu, 0x000057bdu, 0x00000490u, 0x000500c2u, 0x00000006u, + 0x000057c1u, 0x000057b6u, 0x00000217u, 0x000500c4u, 0x00000006u, 0x000057c5u, 0x000057bau, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x000057c7u, 0x000057c1u, 0x000057c5u, 0x000500c6u, 0x00000006u, 0x000057c9u, + 0x000057c7u, 0x0000048au, 0x000500c5u, 0x00000006u, 0x000057ccu, 0x000057bfu, 0x00000f34u, 0x00080041u, + 0x0000027cu, 0x000057cdu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x000057ccu, 0x0004003du, + 0x0000022eu, 0x000057ceu, 0x000057cdu, 0x00040071u, 0x00000006u, 0x000057cfu, 0x000057ceu, 0x0004007cu, + 0x00000008u, 0x000057d0u, 0x000057cfu, 0x00080041u, 0x00000275u, 0x000057d3u, 0x00000f3au, 0x00000208u, + 0x00002232u, 0x00000208u, 0x000057c9u, 0x0004003du, 0x00000230u, 0x000057d4u, 0x000057d3u, 0x00040071u, + 0x00000006u, 0x000057d5u, 0x000057d4u, 0x0004007cu, 0x00000008u, 0x000057d6u, 0x000057d5u, 0x000500c3u, + 0x00000008u, 0x000057d8u, 0x000057d6u, 0x00000263u, 0x000500c7u, 0x00000008u, 0x000057d9u, 0x000057d8u, + 0x00000390u, 0x000500c3u, 0x00000008u, 0x000057dbu, 0x000057d6u, 0x00000208u, 0x000500c7u, 0x00000008u, + 0x000057dcu, 0x000057dbu, 0x00000390u, 0x00050082u, 0x00000008u, 0x000057deu, 0x000057d9u, 0x00000628u, + 0x00050082u, 0x00000008u, 0x000057e0u, 0x000057dcu, 0x00000628u, 0x00070050u, 0x00000009u, 0x000057e3u, + 0x000057deu, 0x000057e0u, 0x000057d0u, 0x000057d0u, 0x00050050u, 0x0000005fu, 0x00004b0fu, 0x00007deau, + 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004b10u, 0x00004b0fu, 0x00050051u, 0x00000006u, 0x000057f4u, + 0x00004b10u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000057f5u, 0x000047cdu, 0x000057f4u, 0x00050080u, + 0x00000006u, 0x000057f6u, 0x000047cau, 0x000057f5u, 0x00050051u, 0x00000006u, 0x000057f9u, 0x00004b10u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x000057fau, 0x000057f6u, 0x000057f9u, 0x000500c7u, 0x00000006u, + 0x000057fcu, 0x000057fau, 0x00000f0bu, 0x00050080u, 0x00000006u, 0x00005800u, 0x000057f6u, 0x00005767u, + 0x000500c7u, 0x00000006u, 0x00005802u, 0x00005800u, 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x00005806u, + 0x000057f4u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005807u, 0x00005806u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x00005809u, 0x000057fcu, 0x00005807u, 0x000500c6u, 0x00000006u, 0x0000580bu, 0x00005809u, + 0x00000490u, 0x000500c2u, 0x00000006u, 0x0000580du, 0x00005802u, 0x00000217u, 0x000500c4u, 0x00000006u, + 0x00005811u, 0x00005806u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005813u, 0x0000580du, 0x00005811u, + 0x000500c6u, 0x00000006u, 0x00005815u, 0x00005813u, 0x0000048au, 0x000500c5u, 0x00000006u, 0x00005818u, + 0x0000580bu, 0x00000f34u, 0x00080041u, 0x0000027cu, 0x00005819u, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00005818u, 0x0004003du, 0x0000022eu, 0x0000581au, 0x00005819u, 0x00040071u, 0x00000006u, + 0x0000581bu, 0x0000581au, 0x0004007cu, 0x00000008u, 0x0000581cu, 0x0000581bu, 0x00080041u, 0x00000275u, + 0x0000581fu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005815u, 0x0004003du, 0x00000230u, + 0x00005820u, 0x0000581fu, 0x00040071u, 0x00000006u, 0x00005821u, 0x00005820u, 0x0004007cu, 0x00000008u, + 0x00005822u, 0x00005821u, 0x000500c3u, 0x00000008u, 0x00005824u, 0x00005822u, 0x00000263u, 0x000500c7u, + 0x00000008u, 0x00005825u, 0x00005824u, 0x00000390u, 0x000500c3u, 0x00000008u, 0x00005827u, 0x00005822u, + 0x00000208u, 0x000500c7u, 0x00000008u, 0x00005828u, 0x00005827u, 0x00000390u, 0x00050082u, 0x00000008u, + 0x0000582au, 0x00005825u, 0x00000628u, 0x00050082u, 0x00000008u, 0x0000582cu, 0x00005828u, 0x00000628u, + 0x00070050u, 0x00000009u, 0x0000582fu, 0x0000582au, 0x0000582cu, 0x0000581cu, 0x0000581cu, 0x00050050u, + 0x0000005fu, 0x00004b17u, 0x00007df2u, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004b18u, 0x00004b17u, + 0x00050051u, 0x00000006u, 0x00005840u, 0x00004b18u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005841u, + 0x000047cdu, 0x00005840u, 0x00050080u, 0x00000006u, 0x00005842u, 0x000047cau, 0x00005841u, 0x00050051u, + 0x00000006u, 0x00005845u, 0x00004b18u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005846u, 0x00005842u, + 0x00005845u, 0x000500c7u, 0x00000006u, 0x00005848u, 0x00005846u, 0x00000f0bu, 0x00050080u, 0x00000006u, + 0x0000584cu, 0x00005842u, 0x000057b3u, 0x000500c7u, 0x00000006u, 0x0000584eu, 0x0000584cu, 0x00000f0bu, + 0x000500c7u, 0x00000006u, 0x00005852u, 0x00005840u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005853u, + 0x00005852u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005855u, 0x00005848u, 0x00005853u, 0x000500c6u, + 0x00000006u, 0x00005857u, 0x00005855u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00005859u, 0x0000584eu, + 0x00000217u, 0x000500c4u, 0x00000006u, 0x0000585du, 0x00005852u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x0000585fu, 0x00005859u, 0x0000585du, 0x000500c6u, 0x00000006u, 0x00005861u, 0x0000585fu, 0x0000048au, + 0x000500c5u, 0x00000006u, 0x00005864u, 0x00005857u, 0x00000f34u, 0x00080041u, 0x0000027cu, 0x00005865u, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005864u, 0x0004003du, 0x0000022eu, 0x00005866u, + 0x00005865u, 0x00040071u, 0x00000006u, 0x00005867u, 0x00005866u, 0x0004007cu, 0x00000008u, 0x00005868u, + 0x00005867u, 0x00080041u, 0x00000275u, 0x0000586bu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00005861u, 0x0004003du, 0x00000230u, 0x0000586cu, 0x0000586bu, 0x00040071u, 0x00000006u, 0x0000586du, + 0x0000586cu, 0x0004007cu, 0x00000008u, 0x0000586eu, 0x0000586du, 0x000500c3u, 0x00000008u, 0x00005870u, + 0x0000586eu, 0x00000263u, 0x000500c7u, 0x00000008u, 0x00005871u, 0x00005870u, 0x00000390u, 0x000500c3u, + 0x00000008u, 0x00005873u, 0x0000586eu, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00005874u, 0x00005873u, + 0x00000390u, 0x00050082u, 0x00000008u, 0x00005876u, 0x00005871u, 0x00000628u, 0x00050082u, 0x00000008u, + 0x00005878u, 0x00005874u, 0x00000628u, 0x00070050u, 0x00000009u, 0x0000587bu, 0x00005876u, 0x00005878u, + 0x00005868u, 0x00005868u, 0x000200f9u, 0x00004b1du, 0x000200f8u, 0x00004b1du, 0x000700f5u, 0x00000009u, + 0x000082a2u, 0x000081e0u, 0x00004af0u, 0x0000587bu, 0x00004b04u, 0x000700f5u, 0x00000009u, 0x000081aau, + 0x000080ebu, 0x00004af0u, 0x0000582fu, 0x00004b04u, 0x000700f5u, 0x00000009u, 0x000080b2u, 0x00007ff0u, + 0x00004af0u, 0x000057e3u, 0x00004b04u, 0x000200f9u, 0x00004c80u, 0x000200f8u, 0x00004a68u, 0x000300f7u, + 0x00004aefu, 0x00000000u, 0x000b00fbu, 0x000047d7u, 0x00004aefu, 0x00000000u, 0x00004a6bu, 0x00000001u, + 0x00004a8cu, 0x00000002u, 0x00004aadu, 0x00000003u, 0x00004aceu, 0x000200f8u, 0x00004aceu, 0x0004007cu, + 0x000000a6u, 0x00004ad0u, 0x00007e11u, 0x00050051u, 0x00000006u, 0x0000567bu, 0x00004ad0u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000567cu, 0x000047cdu, 0x0000567bu, 0x00050080u, 0x00000006u, 0x0000567du, + 0x000047cau, 0x0000567cu, 0x00050051u, 0x00000006u, 0x0000567fu, 0x00004ad0u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005680u, 0x0000567fu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005682u, 0x0000567du, + 0x00005680u, 0x000500c7u, 0x00000006u, 0x00005684u, 0x00005682u, 0x00000f0bu, 0x000500c2u, 0x00000006u, + 0x00005686u, 0x00005684u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005689u, 0x0000567bu, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x0000568au, 0x00005689u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x0000568cu, + 0x00005686u, 0x0000568au, 0x000500c6u, 0x00000006u, 0x0000568eu, 0x0000568cu, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00005691u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x0000568eu, 0x0004003du, + 0x00000230u, 0x00005692u, 0x00005691u, 0x00040071u, 0x00000006u, 0x00005693u, 0x00005692u, 0x000500c5u, + 0x00000006u, 0x00005696u, 0x0000568eu, 0x00000f3cu, 0x00080041u, 0x00000275u, 0x00005697u, 0x00000f3au, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00005696u, 0x0004003du, 0x00000230u, 0x00005698u, 0x00005697u, + 0x00040071u, 0x00000006u, 0x00005699u, 0x00005698u, 0x000500c2u, 0x00000006u, 0x0000569bu, 0x00005693u, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x0000569cu, 0x0000569bu, 0x000500c7u, 0x00000006u, 0x0000569eu, + 0x00005693u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000569fu, 0x0000569eu, 0x000500c2u, 0x00000006u, + 0x000056a1u, 0x00005699u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x000056a2u, 0x000056a1u, 0x000500c7u, + 0x00000006u, 0x000056a4u, 0x00005699u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000056a5u, 0x000056a4u, + 0x00070050u, 0x00000009u, 0x000056a6u, 0x0000569cu, 0x0000569fu, 0x000056a2u, 0x000056a5u, 0x000300f7u, + 0x00004ae4u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00004ad5u, 0x00004ae4u, 0x000200f8u, 0x00004ad5u, + 0x00050050u, 0x0000005fu, 0x00004ad8u, 0x00007df2u, 0x00004996u, 0x0004007cu, 0x000000a6u, 0x00004ad9u, + 0x00004ad8u, 0x00050051u, 0x00000006u, 0x000056b2u, 0x00004ad9u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000056b3u, 0x000047cdu, 0x000056b2u, 0x00050080u, 0x00000006u, 0x000056b4u, 0x000047cau, 0x000056b3u, + 0x00050051u, 0x00000006u, 0x000056b6u, 0x00004ad9u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000056b7u, + 0x000056b6u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000056b9u, 0x000056b4u, 0x000056b7u, 0x000500c7u, + 0x00000006u, 0x000056bbu, 0x000056b9u, 0x00000f0bu, 0x000500c2u, 0x00000006u, 0x000056bdu, 0x000056bbu, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x000056c0u, 0x000056b2u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x000056c1u, 0x000056c0u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x000056c3u, 0x000056bdu, 0x000056c1u, + 0x000500c6u, 0x00000006u, 0x000056c5u, 0x000056c3u, 0x0000048au, 0x00080041u, 0x00000275u, 0x000056c8u, + 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x000056c5u, 0x0004003du, 0x00000230u, 0x000056c9u, + 0x000056c8u, 0x00040071u, 0x00000006u, 0x000056cau, 0x000056c9u, 0x000500c5u, 0x00000006u, 0x000056cdu, + 0x000056c5u, 0x00000f3cu, 0x00080041u, 0x00000275u, 0x000056ceu, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x000056cdu, 0x0004003du, 0x00000230u, 0x000056cfu, 0x000056ceu, 0x00040071u, 0x00000006u, + 0x000056d0u, 0x000056cfu, 0x000500c2u, 0x00000006u, 0x000056d2u, 0x000056cau, 0x00000263u, 0x0004007cu, + 0x00000008u, 0x000056d3u, 0x000056d2u, 0x000500c7u, 0x00000006u, 0x000056d5u, 0x000056cau, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x000056d6u, 0x000056d5u, 0x000500c2u, 0x00000006u, 0x000056d8u, 0x000056d0u, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x000056d9u, 0x000056d8u, 0x000500c7u, 0x00000006u, 0x000056dbu, + 0x000056d0u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000056dcu, 0x000056dbu, 0x00070050u, 0x00000009u, + 0x000056ddu, 0x000056d3u, 0x000056d6u, 0x000056d9u, 0x000056dcu, 0x00050050u, 0x0000005fu, 0x00004adfu, + 0x00007deau, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004ae0u, 0x00004adfu, 0x00050051u, 0x00000006u, + 0x000056e9u, 0x00004ae0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000056eau, 0x000047cdu, 0x000056e9u, + 0x00050080u, 0x00000006u, 0x000056ebu, 0x000047cau, 0x000056eau, 0x00050051u, 0x00000006u, 0x000056edu, + 0x00004ae0u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000056eeu, 0x000056edu, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x000056f0u, 0x000056ebu, 0x000056eeu, 0x000500c7u, 0x00000006u, 0x000056f2u, 0x000056f0u, + 0x00000f0bu, 0x000500c2u, 0x00000006u, 0x000056f4u, 0x000056f2u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x000056f7u, 0x000056e9u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000056f8u, 0x000056f7u, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x000056fau, 0x000056f4u, 0x000056f8u, 0x000500c6u, 0x00000006u, 0x000056fcu, + 0x000056fau, 0x0000048au, 0x00080041u, 0x00000275u, 0x000056ffu, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x000056fcu, 0x0004003du, 0x00000230u, 0x00005700u, 0x000056ffu, 0x00040071u, 0x00000006u, + 0x00005701u, 0x00005700u, 0x000500c5u, 0x00000006u, 0x00005704u, 0x000056fcu, 0x00000f3cu, 0x00080041u, + 0x00000275u, 0x00005705u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005704u, 0x0004003du, + 0x00000230u, 0x00005706u, 0x00005705u, 0x00040071u, 0x00000006u, 0x00005707u, 0x00005706u, 0x000500c2u, + 0x00000006u, 0x00005709u, 0x00005701u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x0000570au, 0x00005709u, + 0x000500c7u, 0x00000006u, 0x0000570cu, 0x00005701u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000570du, + 0x0000570cu, 0x000500c2u, 0x00000006u, 0x0000570fu, 0x00005707u, 0x00000263u, 0x0004007cu, 0x00000008u, + 0x00005710u, 0x0000570fu, 0x000500c7u, 0x00000006u, 0x00005712u, 0x00005707u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00005713u, 0x00005712u, 0x00070050u, 0x00000009u, 0x00005714u, 0x0000570au, 0x0000570du, + 0x00005710u, 0x00005713u, 0x000200f9u, 0x00004ae4u, 0x000200f8u, 0x00004ae4u, 0x000700f5u, 0x00000009u, + 0x000081a9u, 0x000080ebu, 0x00004aceu, 0x00005714u, 0x00004ad5u, 0x000700f5u, 0x00000009u, 0x000080b1u, + 0x00007ff0u, 0x00004aceu, 0x000056ddu, 0x00004ad5u, 0x000300f7u, 0x00004aeeu, 0x00000000u, 0x000400fau, + 0x000049a2u, 0x00004ae6u, 0x00004aeeu, 0x000200f8u, 0x00004ae6u, 0x00050050u, 0x0000005fu, 0x00004ae9u, + 0x00007df2u, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004aeau, 0x00004ae9u, 0x00050051u, 0x00000006u, + 0x00005720u, 0x00004aeau, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005721u, 0x000047cdu, 0x00005720u, + 0x00050080u, 0x00000006u, 0x00005722u, 0x000047cau, 0x00005721u, 0x00050051u, 0x00000006u, 0x00005724u, + 0x00004aeau, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005725u, 0x00005724u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00005727u, 0x00005722u, 0x00005725u, 0x000500c7u, 0x00000006u, 0x00005729u, 0x00005727u, + 0x00000f0bu, 0x000500c2u, 0x00000006u, 0x0000572bu, 0x00005729u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x0000572eu, 0x00005720u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000572fu, 0x0000572eu, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x00005731u, 0x0000572bu, 0x0000572fu, 0x000500c6u, 0x00000006u, 0x00005733u, + 0x00005731u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005736u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00005733u, 0x0004003du, 0x00000230u, 0x00005737u, 0x00005736u, 0x00040071u, 0x00000006u, + 0x00005738u, 0x00005737u, 0x000500c5u, 0x00000006u, 0x0000573bu, 0x00005733u, 0x00000f3cu, 0x00080041u, + 0x00000275u, 0x0000573cu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x0000573bu, 0x0004003du, + 0x00000230u, 0x0000573du, 0x0000573cu, 0x00040071u, 0x00000006u, 0x0000573eu, 0x0000573du, 0x000500c2u, + 0x00000006u, 0x00005740u, 0x00005738u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005741u, 0x00005740u, + 0x000500c7u, 0x00000006u, 0x00005743u, 0x00005738u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005744u, + 0x00005743u, 0x000500c2u, 0x00000006u, 0x00005746u, 0x0000573eu, 0x00000263u, 0x0004007cu, 0x00000008u, + 0x00005747u, 0x00005746u, 0x000500c7u, 0x00000006u, 0x00005749u, 0x0000573eu, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x0000574au, 0x00005749u, 0x00070050u, 0x00000009u, 0x0000574bu, 0x00005741u, 0x00005744u, + 0x00005747u, 0x0000574au, 0x000200f9u, 0x00004aeeu, 0x000200f8u, 0x00004aeeu, 0x000700f5u, 0x00000009u, + 0x000082a0u, 0x000081e0u, 0x00004ae4u, 0x0000574bu, 0x00004ae6u, 0x000200f9u, 0x00004aefu, 0x000200f8u, + 0x00004aadu, 0x0004007cu, 0x000000a6u, 0x00004aafu, 0x00007e11u, 0x00050051u, 0x00000006u, 0x00005577u, + 0x00004aafu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005578u, 0x000047cdu, 0x00005577u, 0x00050080u, + 0x00000006u, 0x00005579u, 0x000047cau, 0x00005578u, 0x00050051u, 0x00000006u, 0x0000557bu, 0x00004aafu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x0000557cu, 0x0000557bu, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x0000557eu, 0x00005579u, 0x0000557cu, 0x000500c7u, 0x00000006u, 0x00005580u, 0x0000557eu, 0x00000e59u, + 0x000500c2u, 0x00000006u, 0x00005582u, 0x00005580u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005585u, + 0x00005577u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005586u, 0x00005585u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00005588u, 0x00005582u, 0x00005586u, 0x000500c6u, 0x00000006u, 0x0000558au, 0x00005588u, + 0x0000048au, 0x00080041u, 0x00000275u, 0x0000558du, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x0000558au, 0x0004003du, 0x00000230u, 0x0000558eu, 0x0000558du, 0x00040071u, 0x00000006u, 0x0000558fu, + 0x0000558eu, 0x00060050u, 0x00000358u, 0x00005597u, 0x0000558fu, 0x0000558fu, 0x0000558fu, 0x000500c2u, + 0x00000358u, 0x00005598u, 0x00005597u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x0000559au, 0x00005598u, + 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x0000559du, 0x0000559au, 0x0000bdb0u, 0x000500c2u, 0x00000358u, + 0x000055a0u, 0x0000559au, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x000055a1u, 0x0000559du, 0x000055a0u, + 0x000500c7u, 0x00000006u, 0x000055a3u, 0x0000558fu, 0x0000048au, 0x00050084u, 0x00000006u, 0x000055a4u, + 0x000055a3u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000055a6u, 0x000055a1u, 0x0004007cu, 0x00000008u, + 0x000055a8u, 0x000055a4u, 0x00050051u, 0x00000008u, 0x000055a9u, 0x000055a6u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000055aau, 0x000055a6u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000055abu, 0x000055a6u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000055acu, 0x000055a9u, 0x000055aau, 0x000055abu, 0x000055a8u, + 0x000300f7u, 0x00004ac3u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00004ab4u, 0x00004ac3u, 0x000200f8u, + 0x00004ab4u, 0x00050050u, 0x0000005fu, 0x00004ab7u, 0x00007df2u, 0x00004996u, 0x0004007cu, 0x000000a6u, + 0x00004ab8u, 0x00004ab7u, 0x00050051u, 0x00000006u, 0x000055b8u, 0x00004ab8u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000055b9u, 0x000047cdu, 0x000055b8u, 0x00050080u, 0x00000006u, 0x000055bau, 0x000047cau, + 0x000055b9u, 0x00050051u, 0x00000006u, 0x000055bcu, 0x00004ab8u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000055bdu, 0x000055bcu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000055bfu, 0x000055bau, 0x000055bdu, + 0x000500c7u, 0x00000006u, 0x000055c1u, 0x000055bfu, 0x00000e59u, 0x000500c2u, 0x00000006u, 0x000055c3u, + 0x000055c1u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000055c6u, 0x000055b8u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x000055c7u, 0x000055c6u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x000055c9u, 0x000055c3u, + 0x000055c7u, 0x000500c6u, 0x00000006u, 0x000055cbu, 0x000055c9u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x000055ceu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x000055cbu, 0x0004003du, 0x00000230u, + 0x000055cfu, 0x000055ceu, 0x00040071u, 0x00000006u, 0x000055d0u, 0x000055cfu, 0x00060050u, 0x00000358u, + 0x000055d8u, 0x000055d0u, 0x000055d0u, 0x000055d0u, 0x000500c2u, 0x00000358u, 0x000055d9u, 0x000055d8u, + 0x00000e20u, 0x000500c7u, 0x00000358u, 0x000055dbu, 0x000055d9u, 0x0000bdafu, 0x000500c4u, 0x00000358u, + 0x000055deu, 0x000055dbu, 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x000055e1u, 0x000055dbu, 0x0000bdb1u, + 0x000500c5u, 0x00000358u, 0x000055e2u, 0x000055deu, 0x000055e1u, 0x000500c7u, 0x00000006u, 0x000055e4u, + 0x000055d0u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000055e5u, 0x000055e4u, 0x000006c7u, 0x0004007cu, + 0x0000003cu, 0x000055e7u, 0x000055e2u, 0x0004007cu, 0x00000008u, 0x000055e9u, 0x000055e5u, 0x00050051u, + 0x00000008u, 0x000055eau, 0x000055e7u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000055ebu, 0x000055e7u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x000055ecu, 0x000055e7u, 0x00000002u, 0x00070050u, 0x00000009u, + 0x000055edu, 0x000055eau, 0x000055ebu, 0x000055ecu, 0x000055e9u, 0x00050050u, 0x0000005fu, 0x00004abeu, + 0x00007deau, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004abfu, 0x00004abeu, 0x00050051u, 0x00000006u, + 0x000055f9u, 0x00004abfu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000055fau, 0x000047cdu, 0x000055f9u, + 0x00050080u, 0x00000006u, 0x000055fbu, 0x000047cau, 0x000055fau, 0x00050051u, 0x00000006u, 0x000055fdu, + 0x00004abfu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000055feu, 0x000055fdu, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00005600u, 0x000055fbu, 0x000055feu, 0x000500c7u, 0x00000006u, 0x00005602u, 0x00005600u, + 0x00000e59u, 0x000500c2u, 0x00000006u, 0x00005604u, 0x00005602u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x00005607u, 0x000055f9u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005608u, 0x00005607u, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x0000560au, 0x00005604u, 0x00005608u, 0x000500c6u, 0x00000006u, 0x0000560cu, + 0x0000560au, 0x0000048au, 0x00080041u, 0x00000275u, 0x0000560fu, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x0000560cu, 0x0004003du, 0x00000230u, 0x00005610u, 0x0000560fu, 0x00040071u, 0x00000006u, + 0x00005611u, 0x00005610u, 0x00060050u, 0x00000358u, 0x00005619u, 0x00005611u, 0x00005611u, 0x00005611u, + 0x000500c2u, 0x00000358u, 0x0000561au, 0x00005619u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x0000561cu, + 0x0000561au, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x0000561fu, 0x0000561cu, 0x0000bdb0u, 0x000500c2u, + 0x00000358u, 0x00005622u, 0x0000561cu, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00005623u, 0x0000561fu, + 0x00005622u, 0x000500c7u, 0x00000006u, 0x00005625u, 0x00005611u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x00005626u, 0x00005625u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005628u, 0x00005623u, 0x0004007cu, + 0x00000008u, 0x0000562au, 0x00005626u, 0x00050051u, 0x00000008u, 0x0000562bu, 0x00005628u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x0000562cu, 0x00005628u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000562du, + 0x00005628u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000562eu, 0x0000562bu, 0x0000562cu, 0x0000562du, + 0x0000562au, 0x000200f9u, 0x00004ac3u, 0x000200f8u, 0x00004ac3u, 0x000700f5u, 0x00000009u, 0x000081a7u, + 0x000080ebu, 0x00004aadu, 0x0000562eu, 0x00004ab4u, 0x000700f5u, 0x00000009u, 0x000080afu, 0x00007ff0u, + 0x00004aadu, 0x000055edu, 0x00004ab4u, 0x000300f7u, 0x00004acdu, 0x00000000u, 0x000400fau, 0x000049a2u, + 0x00004ac5u, 0x00004acdu, 0x000200f8u, 0x00004ac5u, 0x00050050u, 0x0000005fu, 0x00004ac8u, 0x00007df2u, + 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004ac9u, 0x00004ac8u, 0x00050051u, 0x00000006u, 0x0000563au, + 0x00004ac9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000563bu, 0x000047cdu, 0x0000563au, 0x00050080u, + 0x00000006u, 0x0000563cu, 0x000047cau, 0x0000563bu, 0x00050051u, 0x00000006u, 0x0000563eu, 0x00004ac9u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x0000563fu, 0x0000563eu, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00005641u, 0x0000563cu, 0x0000563fu, 0x000500c7u, 0x00000006u, 0x00005643u, 0x00005641u, 0x00000e59u, + 0x000500c2u, 0x00000006u, 0x00005645u, 0x00005643u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005648u, + 0x0000563au, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005649u, 0x00005648u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x0000564bu, 0x00005645u, 0x00005649u, 0x000500c6u, 0x00000006u, 0x0000564du, 0x0000564bu, + 0x0000048au, 0x00080041u, 0x00000275u, 0x00005650u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x0000564du, 0x0004003du, 0x00000230u, 0x00005651u, 0x00005650u, 0x00040071u, 0x00000006u, 0x00005652u, + 0x00005651u, 0x00060050u, 0x00000358u, 0x0000565au, 0x00005652u, 0x00005652u, 0x00005652u, 0x000500c2u, + 0x00000358u, 0x0000565bu, 0x0000565au, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x0000565du, 0x0000565bu, + 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00005660u, 0x0000565du, 0x0000bdb0u, 0x000500c2u, 0x00000358u, + 0x00005663u, 0x0000565du, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00005664u, 0x00005660u, 0x00005663u, + 0x000500c7u, 0x00000006u, 0x00005666u, 0x00005652u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005667u, + 0x00005666u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005669u, 0x00005664u, 0x0004007cu, 0x00000008u, + 0x0000566bu, 0x00005667u, 0x00050051u, 0x00000008u, 0x0000566cu, 0x00005669u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x0000566du, 0x00005669u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000566eu, 0x00005669u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x0000566fu, 0x0000566cu, 0x0000566du, 0x0000566eu, 0x0000566bu, + 0x000200f9u, 0x00004acdu, 0x000200f8u, 0x00004acdu, 0x000700f5u, 0x00000009u, 0x0000829eu, 0x000081e0u, + 0x00004ac3u, 0x0000566fu, 0x00004ac5u, 0x000200f9u, 0x00004aefu, 0x000200f8u, 0x00004a8cu, 0x0004007cu, + 0x000000a6u, 0x00004a8eu, 0x00007e11u, 0x00050051u, 0x00000006u, 0x000054e6u, 0x00004a8eu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000054e7u, 0x000047cdu, 0x000054e6u, 0x00050080u, 0x00000006u, 0x000054e8u, + 0x000047cau, 0x000054e7u, 0x00050051u, 0x00000006u, 0x000054eau, 0x00004a8eu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x000054ecu, 0x000054e8u, 0x000054eau, 0x000500c7u, 0x00000006u, 0x000054eeu, 0x000054ecu, + 0x00000e59u, 0x000500c7u, 0x00000006u, 0x000054f2u, 0x000054e6u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x000054f3u, 0x000054f2u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000054f5u, 0x000054eeu, 0x000054f3u, + 0x000500c6u, 0x00000006u, 0x000054f7u, 0x000054f5u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000054fau, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x000054f7u, 0x0004003du, 0x0000022eu, 0x000054fbu, + 0x000054fau, 0x00040071u, 0x00000006u, 0x000054fcu, 0x000054fbu, 0x0004007cu, 0x00000008u, 0x000054feu, + 0x000054fcu, 0x00070050u, 0x00000009u, 0x000054ffu, 0x000054feu, 0x000054feu, 0x000054feu, 0x000054feu, + 0x000300f7u, 0x00004aa2u, 0x00000000u, 0x000400fau, 0x00002249u, 0x00004a93u, 0x00004aa2u, 0x000200f8u, + 0x00004a93u, 0x00050050u, 0x0000005fu, 0x00004a96u, 0x00007df2u, 0x00004996u, 0x0004007cu, 0x000000a6u, + 0x00004a97u, 0x00004a96u, 0x00050051u, 0x00000006u, 0x0000550au, 0x00004a97u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000550bu, 0x000047cdu, 0x0000550au, 0x00050080u, 0x00000006u, 0x0000550cu, 0x000047cau, + 0x0000550bu, 0x00050051u, 0x00000006u, 0x0000550eu, 0x00004a97u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005510u, 0x0000550cu, 0x0000550eu, 0x000500c7u, 0x00000006u, 0x00005512u, 0x00005510u, 0x00000e59u, + 0x000500c7u, 0x00000006u, 0x00005516u, 0x0000550au, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005517u, + 0x00005516u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005519u, 0x00005512u, 0x00005517u, 0x000500c6u, + 0x00000006u, 0x0000551bu, 0x00005519u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000551eu, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x0000551bu, 0x0004003du, 0x0000022eu, 0x0000551fu, 0x0000551eu, + 0x00040071u, 0x00000006u, 0x00005520u, 0x0000551fu, 0x0004007cu, 0x00000008u, 0x00005522u, 0x00005520u, + 0x00070050u, 0x00000009u, 0x00005523u, 0x00005522u, 0x00005522u, 0x00005522u, 0x00005522u, 0x00050050u, + 0x0000005fu, 0x00004a9du, 0x00007deau, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004a9eu, 0x00004a9du, + 0x00050051u, 0x00000006u, 0x0000552eu, 0x00004a9eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000552fu, + 0x000047cdu, 0x0000552eu, 0x00050080u, 0x00000006u, 0x00005530u, 0x000047cau, 0x0000552fu, 0x00050051u, + 0x00000006u, 0x00005532u, 0x00004a9eu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005534u, 0x00005530u, + 0x00005532u, 0x000500c7u, 0x00000006u, 0x00005536u, 0x00005534u, 0x00000e59u, 0x000500c7u, 0x00000006u, + 0x0000553au, 0x0000552eu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000553bu, 0x0000553au, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x0000553du, 0x00005536u, 0x0000553bu, 0x000500c6u, 0x00000006u, 0x0000553fu, + 0x0000553du, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005542u, 0x00000e73u, 0x00000208u, 0x00002232u, + 0x00000208u, 0x0000553fu, 0x0004003du, 0x0000022eu, 0x00005543u, 0x00005542u, 0x00040071u, 0x00000006u, + 0x00005544u, 0x00005543u, 0x0004007cu, 0x00000008u, 0x00005546u, 0x00005544u, 0x00070050u, 0x00000009u, + 0x00005547u, 0x00005546u, 0x00005546u, 0x00005546u, 0x00005546u, 0x000200f9u, 0x00004aa2u, 0x000200f8u, + 0x00004aa2u, 0x000700f5u, 0x00000009u, 0x000081a5u, 0x000080ebu, 0x00004a8cu, 0x00005547u, 0x00004a93u, + 0x000700f5u, 0x00000009u, 0x000080adu, 0x00007ff0u, 0x00004a8cu, 0x00005523u, 0x00004a93u, 0x000300f7u, + 0x00004aacu, 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004aa4u, 0x00004aacu, 0x000200f8u, 0x00004aa4u, + 0x00050050u, 0x0000005fu, 0x00004aa7u, 0x00007df2u, 0x00004998u, 0x0004007cu, 0x000000a6u, 0x00004aa8u, + 0x00004aa7u, 0x00050051u, 0x00000006u, 0x00005552u, 0x00004aa8u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005553u, 0x000047cdu, 0x00005552u, 0x00050080u, 0x00000006u, 0x00005554u, 0x000047cau, 0x00005553u, + 0x00050051u, 0x00000006u, 0x00005556u, 0x00004aa8u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005558u, + 0x00005554u, 0x00005556u, 0x000500c7u, 0x00000006u, 0x0000555au, 0x00005558u, 0x00000e59u, 0x000500c7u, + 0x00000006u, 0x0000555eu, 0x00005552u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000555fu, 0x0000555eu, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005561u, 0x0000555au, 0x0000555fu, 0x000500c6u, 0x00000006u, + 0x00005563u, 0x00005561u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005566u, 0x00000e73u, 0x00000208u, + 0x00002232u, 0x00000208u, 0x00005563u, 0x0004003du, 0x0000022eu, 0x00005567u, 0x00005566u, 0x00040071u, + 0x00000006u, 0x00005568u, 0x00005567u, 0x0004007cu, 0x00000008u, 0x0000556au, 0x00005568u, 0x00070050u, + 0x00000009u, 0x0000556bu, 0x0000556au, 0x0000556au, 0x0000556au, 0x0000556au, 0x000200f9u, 0x00004aacu, + 0x000200f8u, 0x00004aacu, 0x000700f5u, 0x00000009u, 0x0000829cu, 0x000081e0u, 0x00004aa2u, 0x0000556bu, + 0x00004aa4u, 0x000200f9u, 0x00004aefu, 0x000200f8u, 0x00004a6bu, 0x0004007cu, 0x000000a6u, 0x00004a6du, + 0x00007e11u, 0x00050051u, 0x00000006u, 0x0000541bu, 0x00004a6du, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000541cu, 0x000047cdu, 0x0000541bu, 0x00050080u, 0x00000006u, 0x0000541du, 0x000047cau, 0x0000541cu, + 0x00050051u, 0x00000006u, 0x0000541fu, 0x00004a6du, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005420u, + 0x0000541fu, 0x00000217u, 0x00050080u, 0x00000006u, 0x00005422u, 0x0000541du, 0x00005420u, 0x000500c7u, + 0x00000006u, 0x00005424u, 0x00005422u, 0x00000e59u, 0x000400c8u, 0x00000006u, 0x00005427u, 0x0000541fu, + 0x000500c7u, 0x00000006u, 0x00005428u, 0x00005427u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005429u, + 0x00005428u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x0000542du, 0x0000541bu, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x0000542eu, 0x0000542du, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005430u, 0x00005424u, + 0x0000542eu, 0x000500c6u, 0x00000006u, 0x00005432u, 0x00005430u, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00005435u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005432u, 0x0004003du, 0x0000022eu, + 0x00005436u, 0x00005435u, 0x00040071u, 0x00000006u, 0x00005437u, 0x00005436u, 0x000500c2u, 0x00000006u, + 0x0000543au, 0x00005437u, 0x00005429u, 0x000500c7u, 0x00000006u, 0x0000543bu, 0x0000543au, 0x00000e7cu, + 0x000500c4u, 0x00000006u, 0x0000543du, 0x0000543bu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x0000543fu, + 0x0000543bu, 0x0000543du, 0x0004007cu, 0x00000008u, 0x00005441u, 0x0000543fu, 0x00070050u, 0x00000009u, + 0x00005442u, 0x00005441u, 0x00005441u, 0x00005441u, 0x00005441u, 0x000300f7u, 0x00004a81u, 0x00000000u, + 0x000400fau, 0x00002249u, 0x00004a72u, 0x00004a81u, 0x000200f8u, 0x00004a72u, 0x00050050u, 0x0000005fu, + 0x00004a75u, 0x00007df2u, 0x00004996u, 0x0004007cu, 0x000000a6u, 0x00004a76u, 0x00004a75u, 0x00050051u, + 0x00000006u, 0x0000544eu, 0x00004a76u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000544fu, 0x000047cdu, + 0x0000544eu, 0x00050080u, 0x00000006u, 0x00005450u, 0x000047cau, 0x0000544fu, 0x00050051u, 0x00000006u, + 0x00005452u, 0x00004a76u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005453u, 0x00005452u, 0x00000217u, + 0x00050080u, 0x00000006u, 0x00005455u, 0x00005450u, 0x00005453u, 0x000500c7u, 0x00000006u, 0x00005457u, + 0x00005455u, 0x00000e59u, 0x000400c8u, 0x00000006u, 0x0000545au, 0x00005452u, 0x000500c7u, 0x00000006u, + 0x0000545bu, 0x0000545au, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000545cu, 0x0000545bu, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x00005460u, 0x0000544eu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005461u, + 0x00005460u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005463u, 0x00005457u, 0x00005461u, 0x000500c6u, + 0x00000006u, 0x00005465u, 0x00005463u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005468u, 0x00000e73u, + 0x00000208u, 0x00002232u, 0x00000208u, 0x00005465u, 0x0004003du, 0x0000022eu, 0x00005469u, 0x00005468u, + 0x00040071u, 0x00000006u, 0x0000546au, 0x00005469u, 0x000500c2u, 0x00000006u, 0x0000546du, 0x0000546au, + 0x0000545cu, 0x000500c7u, 0x00000006u, 0x0000546eu, 0x0000546du, 0x00000e7cu, 0x000500c4u, 0x00000006u, + 0x00005470u, 0x0000546eu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005472u, 0x0000546eu, 0x00005470u, + 0x0004007cu, 0x00000008u, 0x00005474u, 0x00005472u, 0x00070050u, 0x00000009u, 0x00005475u, 0x00005474u, + 0x00005474u, 0x00005474u, 0x00005474u, 0x00050050u, 0x0000005fu, 0x00004a7cu, 0x00007deau, 0x00004998u, + 0x0004007cu, 0x000000a6u, 0x00004a7du, 0x00004a7cu, 0x00050051u, 0x00000006u, 0x00005481u, 0x00004a7du, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005482u, 0x000047cdu, 0x00005481u, 0x00050080u, 0x00000006u, + 0x00005483u, 0x000047cau, 0x00005482u, 0x00050051u, 0x00000006u, 0x00005485u, 0x00004a7du, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00005486u, 0x00005485u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00005488u, + 0x00005483u, 0x00005486u, 0x000500c7u, 0x00000006u, 0x0000548au, 0x00005488u, 0x00000e59u, 0x000400c8u, + 0x00000006u, 0x0000548du, 0x00005485u, 0x000500c7u, 0x00000006u, 0x0000548eu, 0x0000548du, 0x0000048au, + 0x00050084u, 0x00000006u, 0x0000548fu, 0x0000548eu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00005493u, + 0x00005481u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005494u, 0x00005493u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x00005496u, 0x0000548au, 0x00005494u, 0x000500c6u, 0x00000006u, 0x00005498u, 0x00005496u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000549bu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00005498u, 0x0004003du, 0x0000022eu, 0x0000549cu, 0x0000549bu, 0x00040071u, 0x00000006u, 0x0000549du, + 0x0000549cu, 0x000500c2u, 0x00000006u, 0x000054a0u, 0x0000549du, 0x0000548fu, 0x000500c7u, 0x00000006u, + 0x000054a1u, 0x000054a0u, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x000054a3u, 0x000054a1u, 0x00000220u, + 0x000500c5u, 0x00000006u, 0x000054a5u, 0x000054a1u, 0x000054a3u, 0x0004007cu, 0x00000008u, 0x000054a7u, + 0x000054a5u, 0x00070050u, 0x00000009u, 0x000054a8u, 0x000054a7u, 0x000054a7u, 0x000054a7u, 0x000054a7u, + 0x000200f9u, 0x00004a81u, 0x000200f8u, 0x00004a81u, 0x000700f5u, 0x00000009u, 0x000081a3u, 0x000080ebu, + 0x00004a6bu, 0x000054a8u, 0x00004a72u, 0x000700f5u, 0x00000009u, 0x000080abu, 0x00007ff0u, 0x00004a6bu, + 0x00005475u, 0x00004a72u, 0x000300f7u, 0x00004a8bu, 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004a83u, + 0x00004a8bu, 0x000200f8u, 0x00004a83u, 0x00050050u, 0x0000005fu, 0x00004a86u, 0x00007df2u, 0x00004998u, + 0x0004007cu, 0x000000a6u, 0x00004a87u, 0x00004a86u, 0x00050051u, 0x00000006u, 0x000054b4u, 0x00004a87u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000054b5u, 0x000047cdu, 0x000054b4u, 0x00050080u, 0x00000006u, + 0x000054b6u, 0x000047cau, 0x000054b5u, 0x00050051u, 0x00000006u, 0x000054b8u, 0x00004a87u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000054b9u, 0x000054b8u, 0x00000217u, 0x00050080u, 0x00000006u, 0x000054bbu, + 0x000054b6u, 0x000054b9u, 0x000500c7u, 0x00000006u, 0x000054bdu, 0x000054bbu, 0x00000e59u, 0x000400c8u, + 0x00000006u, 0x000054c0u, 0x000054b8u, 0x000500c7u, 0x00000006u, 0x000054c1u, 0x000054c0u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000054c2u, 0x000054c1u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000054c6u, + 0x000054b4u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000054c7u, 0x000054c6u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000054c9u, 0x000054bdu, 0x000054c7u, 0x000500c6u, 0x00000006u, 0x000054cbu, 0x000054c9u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000054ceu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x000054cbu, 0x0004003du, 0x0000022eu, 0x000054cfu, 0x000054ceu, 0x00040071u, 0x00000006u, 0x000054d0u, + 0x000054cfu, 0x000500c2u, 0x00000006u, 0x000054d3u, 0x000054d0u, 0x000054c2u, 0x000500c7u, 0x00000006u, + 0x000054d4u, 0x000054d3u, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x000054d6u, 0x000054d4u, 0x00000220u, + 0x000500c5u, 0x00000006u, 0x000054d8u, 0x000054d4u, 0x000054d6u, 0x0004007cu, 0x00000008u, 0x000054dau, + 0x000054d8u, 0x00070050u, 0x00000009u, 0x000054dbu, 0x000054dau, 0x000054dau, 0x000054dau, 0x000054dau, + 0x000200f9u, 0x00004a8bu, 0x000200f8u, 0x00004a8bu, 0x000700f5u, 0x00000009u, 0x0000829au, 0x000081e0u, + 0x00004a81u, 0x000054dbu, 0x00004a83u, 0x000200f9u, 0x00004aefu, 0x000200f8u, 0x00004aefu, 0x000d00f5u, + 0x00000009u, 0x00008299u, 0x000081e0u, 0x00004a68u, 0x0000829au, 0x00004a8bu, 0x0000829cu, 0x00004aacu, + 0x0000829eu, 0x00004acdu, 0x000082a0u, 0x00004aeeu, 0x000d00f5u, 0x00000009u, 0x000081a1u, 0x000080ebu, + 0x00004a68u, 0x000081a3u, 0x00004a8bu, 0x000081a5u, 0x00004aacu, 0x000081a7u, 0x00004acdu, 0x000081a9u, + 0x00004aeeu, 0x000d00f5u, 0x00000009u, 0x000080a9u, 0x00007ff0u, 0x00004a68u, 0x000080abu, 0x00004a8bu, + 0x000080adu, 0x00004aacu, 0x000080afu, 0x00004acdu, 0x000080b1u, 0x00004aeeu, 0x000d00f5u, 0x00000009u, + 0x00007f3cu, 0x00007e84u, 0x00004a68u, 0x00005442u, 0x00004a8bu, 0x000054ffu, 0x00004aacu, 0x000055acu, + 0x00004acdu, 0x000056a6u, 0x00004aeeu, 0x000200f9u, 0x00004c80u, 0x000200f8u, 0x00004c80u, 0x000f00f5u, + 0x00000009u, 0x00008298u, 0x000081e0u, 0x00004a65u, 0x00008299u, 0x00004aefu, 0x000082a2u, 0x00004b1du, + 0x000082a3u, 0x00004b90u, 0x000082aau, 0x00004c18u, 0x000082b3u, 0x00004c7fu, 0x000f00f5u, 0x00000009u, + 0x000081a0u, 0x000080ebu, 0x00004a65u, 0x000081a1u, 0x00004aefu, 0x000081aau, 0x00004b1du, 0x000081abu, + 0x00004b90u, 0x000081b2u, 0x00004c18u, 0x000081bbu, 0x00004c7fu, 0x000f00f5u, 0x00000009u, 0x000080a8u, + 0x00007ff0u, 0x00004a65u, 0x000080a9u, 0x00004aefu, 0x000080b2u, 0x00004b1du, 0x000080b3u, 0x00004b90u, + 0x000080bau, 0x00004c18u, 0x000080c3u, 0x00004c7fu, 0x000f00f5u, 0x00000009u, 0x00007f3bu, 0x00007e84u, + 0x00004a65u, 0x00007f3cu, 0x00004aefu, 0x00005797u, 0x00004b1du, 0x00007f46u, 0x00004b90u, 0x00007f4du, + 0x00004c18u, 0x00007f56u, 0x00004c7fu, 0x000200f9u, 0x00004c81u, 0x000200f8u, 0x000049bfu, 0x000400a8u, + 0x0000005du, 0x000049c1u, 0x00002249u, 0x000300f7u, 0x000049c8u, 0x00000000u, 0x000400fau, 0x000049c1u, + 0x000049c2u, 0x000049c8u, 0x000200f8u, 0x000049c2u, 0x00050050u, 0x0000005fu, 0x000049c5u, 0x00007deau, + 0x00004996u, 0x000200f9u, 0x000049c8u, 0x000200f8u, 0x000049c8u, 0x000700f5u, 0x0000005fu, 0x00007e37u, + 0x00007e11u, 0x000049bfu, 0x000049c5u, 0x000049c2u, 0x000600a9u, 0x00000008u, 0x0000bdebu, 0x000049c1u, + 0x00004996u, 0x00004998u, 0x000600a9u, 0x00000008u, 0x0000bdecu, 0x000049c1u, 0x00007deau, 0x00007df2u, + 0x000300f7u, 0x00004a64u, 0x00000000u, 0x000b00fbu, 0x000047d2u, 0x00004a64u, 0x00000000u, 0x000049cbu, + 0x00000002u, 0x000049cbu, 0x00000003u, 0x000049cbu, 0x00000004u, 0x000049cbu, 0x000200f8u, 0x000049cbu, + 0x000600a9u, 0x00000008u, 0x000049cfu, 0x000049a4u, 0x0000021au, 0x00000217u, 0x0004007cu, 0x00000006u, + 0x000049d0u, 0x000049cfu, 0x000300f7u, 0x00004a63u, 0x00000000u, 0x000700fbu, 0x000047d7u, 0x000049d3u, + 0x00000000u, 0x000049ffu, 0x00000001u, 0x00004a37u, 0x000200f8u, 0x00004a37u, 0x0004007cu, 0x000000a6u, + 0x00004a39u, 0x00007e37u, 0x000600a9u, 0x00000008u, 0x00004a3bu, 0x000049acu, 0x0000021du, 0x00000208u, + 0x0004007cu, 0x00000006u, 0x00004a3cu, 0x00004a3bu, 0x00050051u, 0x00000006u, 0x00005282u, 0x00004a39u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005283u, 0x000047cdu, 0x00005282u, 0x00050080u, 0x00000006u, + 0x00005284u, 0x000047cau, 0x00005283u, 0x00050051u, 0x00000006u, 0x00005286u, 0x00004a39u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005288u, 0x00005284u, 0x00005286u, 0x000500c7u, 0x00000006u, 0x0000528au, + 0x00005288u, 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x0000528eu, 0x00005282u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x0000528fu, 0x0000528eu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005291u, 0x0000528au, + 0x0000528fu, 0x000500c6u, 0x00000006u, 0x00005293u, 0x00005291u, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00005296u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005293u, 0x0004003du, 0x0000022eu, + 0x00005297u, 0x00005296u, 0x00040071u, 0x00000006u, 0x00005298u, 0x00005297u, 0x000500c4u, 0x00000006u, + 0x0000529au, 0x00005298u, 0x0000021au, 0x00050080u, 0x00000006u, 0x0000529cu, 0x0000529au, 0x00004a3cu, + 0x000500c6u, 0x00000006u, 0x0000529fu, 0x0000529cu, 0x000049d0u, 0x000500c5u, 0x00000006u, 0x000052a2u, + 0x00000f3cu, 0x0000529fu, 0x00080041u, 0x00000275u, 0x000052a3u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x000052a2u, 0x0004003du, 0x00000230u, 0x000052a4u, 0x000052a3u, 0x00040071u, 0x00000006u, + 0x000052a5u, 0x000052a4u, 0x000300f7u, 0x000052adu, 0x00000000u, 0x000400fau, 0x00002246u, 0x000052a7u, + 0x000052aau, 0x000200f8u, 0x000052aau, 0x00060050u, 0x00000358u, 0x000052c5u, 0x000052a5u, 0x000052a5u, + 0x000052a5u, 0x000500c2u, 0x00000358u, 0x000052c6u, 0x000052c5u, 0x00000e20u, 0x000500c7u, 0x00000358u, + 0x000052c8u, 0x000052c6u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x000052cbu, 0x000052c8u, 0x0000bdb0u, + 0x000500c2u, 0x00000358u, 0x000052ceu, 0x000052c8u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x000052cfu, + 0x000052cbu, 0x000052ceu, 0x000500c7u, 0x00000006u, 0x000052d1u, 0x000052a5u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x000052d2u, 0x000052d1u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000052d4u, 0x000052cfu, + 0x0004007cu, 0x00000008u, 0x000052d6u, 0x000052d2u, 0x00050051u, 0x00000008u, 0x000052d7u, 0x000052d4u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000052d8u, 0x000052d4u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000052d9u, 0x000052d4u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000052dau, 0x000052d7u, 0x000052d8u, + 0x000052d9u, 0x000052d6u, 0x000200f9u, 0x000052adu, 0x000200f8u, 0x000052a7u, 0x000500c2u, 0x00000006u, + 0x000052b4u, 0x000052a5u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000052b6u, 0x000052a5u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x000052b8u, 0x000052b4u, 0x0004007cu, 0x00000008u, 0x000052beu, 0x000052b6u, + 0x00070050u, 0x00000009u, 0x000052bfu, 0x000052b8u, 0x000052b8u, 0x000052b8u, 0x000052beu, 0x000200f9u, + 0x000052adu, 0x000200f8u, 0x000052adu, 0x000700f5u, 0x00000009u, 0x00007e38u, 0x000052bfu, 0x000052a7u, + 0x000052dau, 0x000052aau, 0x000300f7u, 0x00004a56u, 0x00000000u, 0x000400fau, 0x00002288u, 0x00004a43u, + 0x00004a56u, 0x000200f8u, 0x00004a43u, 0x00050050u, 0x0000005fu, 0x00004a46u, 0x0000bdecu, 0x00004996u, + 0x0004007cu, 0x000000a6u, 0x00004a47u, 0x00004a46u, 0x00050051u, 0x00000006u, 0x000052e9u, 0x00004a47u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000052eau, 0x000047cdu, 0x000052e9u, 0x00050080u, 0x00000006u, + 0x000052ebu, 0x000047cau, 0x000052eau, 0x00050051u, 0x00000006u, 0x000052edu, 0x00004a47u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x000052efu, 0x000052ebu, 0x000052edu, 0x000500c7u, 0x00000006u, 0x000052f1u, + 0x000052efu, 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x000052f5u, 0x000052e9u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x000052f6u, 0x000052f5u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000052f8u, 0x000052f1u, + 0x000052f6u, 0x000500c6u, 0x00000006u, 0x000052fau, 0x000052f8u, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x000052fdu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x000052fau, 0x0004003du, 0x0000022eu, + 0x000052feu, 0x000052fdu, 0x00040071u, 0x00000006u, 0x000052ffu, 0x000052feu, 0x000500c4u, 0x00000006u, + 0x00005301u, 0x000052ffu, 0x0000021au, 0x00050080u, 0x00000006u, 0x00005303u, 0x00005301u, 0x0000048au, + 0x000500c6u, 0x00000006u, 0x00005306u, 0x00005303u, 0x000049d0u, 0x000500c5u, 0x00000006u, 0x00005309u, + 0x00000f3cu, 0x00005306u, 0x00080041u, 0x00000275u, 0x0000530au, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00005309u, 0x0004003du, 0x00000230u, 0x0000530bu, 0x0000530au, 0x00040071u, 0x00000006u, + 0x0000530cu, 0x0000530bu, 0x000300f7u, 0x00005314u, 0x00000000u, 0x000400fau, 0x00002246u, 0x0000530eu, + 0x00005311u, 0x000200f8u, 0x00005311u, 0x00060050u, 0x00000358u, 0x0000532cu, 0x0000530cu, 0x0000530cu, + 0x0000530cu, 0x000500c2u, 0x00000358u, 0x0000532du, 0x0000532cu, 0x00000e20u, 0x000500c7u, 0x00000358u, + 0x0000532fu, 0x0000532du, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00005332u, 0x0000532fu, 0x0000bdb0u, + 0x000500c2u, 0x00000358u, 0x00005335u, 0x0000532fu, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00005336u, + 0x00005332u, 0x00005335u, 0x000500c7u, 0x00000006u, 0x00005338u, 0x0000530cu, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00005339u, 0x00005338u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000533bu, 0x00005336u, + 0x0004007cu, 0x00000008u, 0x0000533du, 0x00005339u, 0x00050051u, 0x00000008u, 0x0000533eu, 0x0000533bu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x0000533fu, 0x0000533bu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00005340u, 0x0000533bu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00005341u, 0x0000533eu, 0x0000533fu, + 0x00005340u, 0x0000533du, 0x000200f9u, 0x00005314u, 0x000200f8u, 0x0000530eu, 0x000500c2u, 0x00000006u, + 0x0000531bu, 0x0000530cu, 0x00000263u, 0x000500c7u, 0x00000006u, 0x0000531du, 0x0000530cu, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x0000531fu, 0x0000531bu, 0x0004007cu, 0x00000008u, 0x00005325u, 0x0000531du, + 0x00070050u, 0x00000009u, 0x00005326u, 0x0000531fu, 0x0000531fu, 0x0000531fu, 0x00005325u, 0x000200f9u, + 0x00005314u, 0x000200f8u, 0x00005314u, 0x000700f5u, 0x00000009u, 0x00007e3fu, 0x00005326u, 0x0000530eu, + 0x00005341u, 0x00005311u, 0x00050050u, 0x0000005fu, 0x00004a4fu, 0x00007deau, 0x0000bdebu, 0x0004007cu, + 0x000000a6u, 0x00004a50u, 0x00004a4fu, 0x00050051u, 0x00000006u, 0x00005350u, 0x00004a50u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005351u, 0x000047cdu, 0x00005350u, 0x00050080u, 0x00000006u, 0x00005352u, + 0x000047cau, 0x00005351u, 0x00050051u, 0x00000006u, 0x00005354u, 0x00004a50u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00005356u, 0x00005352u, 0x00005354u, 0x000500c7u, 0x00000006u, 0x00005358u, 0x00005356u, + 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x0000535cu, 0x00005350u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x0000535du, 0x0000535cu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000535fu, 0x00005358u, 0x0000535du, + 0x000500c6u, 0x00000006u, 0x00005361u, 0x0000535fu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005364u, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005361u, 0x0004003du, 0x0000022eu, 0x00005365u, + 0x00005364u, 0x00040071u, 0x00000006u, 0x00005366u, 0x00005365u, 0x000500c4u, 0x00000006u, 0x00005368u, + 0x00005366u, 0x0000021au, 0x00050080u, 0x00000006u, 0x0000536au, 0x00005368u, 0x000003c9u, 0x000500c6u, + 0x00000006u, 0x0000536du, 0x0000536au, 0x000049d0u, 0x000500c5u, 0x00000006u, 0x00005370u, 0x00000f3cu, + 0x0000536du, 0x00080041u, 0x00000275u, 0x00005371u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00005370u, 0x0004003du, 0x00000230u, 0x00005372u, 0x00005371u, 0x00040071u, 0x00000006u, 0x00005373u, + 0x00005372u, 0x000300f7u, 0x0000537bu, 0x00000000u, 0x000400fau, 0x00002246u, 0x00005375u, 0x00005378u, + 0x000200f8u, 0x00005378u, 0x00060050u, 0x00000358u, 0x00005393u, 0x00005373u, 0x00005373u, 0x00005373u, + 0x000500c2u, 0x00000358u, 0x00005394u, 0x00005393u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00005396u, + 0x00005394u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00005399u, 0x00005396u, 0x0000bdb0u, 0x000500c2u, + 0x00000358u, 0x0000539cu, 0x00005396u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x0000539du, 0x00005399u, + 0x0000539cu, 0x000500c7u, 0x00000006u, 0x0000539fu, 0x00005373u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x000053a0u, 0x0000539fu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000053a2u, 0x0000539du, 0x0004007cu, + 0x00000008u, 0x000053a4u, 0x000053a0u, 0x00050051u, 0x00000008u, 0x000053a5u, 0x000053a2u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000053a6u, 0x000053a2u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000053a7u, + 0x000053a2u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000053a8u, 0x000053a5u, 0x000053a6u, 0x000053a7u, + 0x000053a4u, 0x000200f9u, 0x0000537bu, 0x000200f8u, 0x00005375u, 0x000500c2u, 0x00000006u, 0x00005382u, + 0x00005373u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005384u, 0x00005373u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00005386u, 0x00005382u, 0x0004007cu, 0x00000008u, 0x0000538cu, 0x00005384u, 0x00070050u, + 0x00000009u, 0x0000538du, 0x00005386u, 0x00005386u, 0x00005386u, 0x0000538cu, 0x000200f9u, 0x0000537bu, + 0x000200f8u, 0x0000537bu, 0x000700f5u, 0x00000009u, 0x00007e44u, 0x0000538du, 0x00005375u, 0x000053a8u, + 0x00005378u, 0x000200f9u, 0x00004a56u, 0x000200f8u, 0x00004a56u, 0x000700f5u, 0x00000009u, 0x0000819du, + 0x000080ebu, 0x000052adu, 0x00007e44u, 0x0000537bu, 0x000700f5u, 0x00000009u, 0x000080a4u, 0x00007ff0u, + 0x000052adu, 0x00007e3fu, 0x0000537bu, 0x000300f7u, 0x00004a62u, 0x00000000u, 0x000400fau, 0x000049a2u, + 0x00004a58u, 0x00004a62u, 0x000200f8u, 0x00004a58u, 0x00050050u, 0x0000005fu, 0x00004a5bu, 0x0000bdecu, + 0x0000bdebu, 0x0004007cu, 0x000000a6u, 0x00004a5cu, 0x00004a5bu, 0x00050051u, 0x00000006u, 0x000053b7u, + 0x00004a5cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000053b8u, 0x000047cdu, 0x000053b7u, 0x00050080u, + 0x00000006u, 0x000053b9u, 0x000047cau, 0x000053b8u, 0x00050051u, 0x00000006u, 0x000053bbu, 0x00004a5cu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x000053bdu, 0x000053b9u, 0x000053bbu, 0x000500c7u, 0x00000006u, + 0x000053bfu, 0x000053bdu, 0x00000f0bu, 0x000500c7u, 0x00000006u, 0x000053c3u, 0x000053b7u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x000053c4u, 0x000053c3u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000053c6u, + 0x000053bfu, 0x000053c4u, 0x000500c6u, 0x00000006u, 0x000053c8u, 0x000053c6u, 0x00000490u, 0x00080041u, + 0x0000027cu, 0x000053cbu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x000053c8u, 0x0004003du, + 0x0000022eu, 0x000053ccu, 0x000053cbu, 0x00040071u, 0x00000006u, 0x000053cdu, 0x000053ccu, 0x000500c4u, + 0x00000006u, 0x000053cfu, 0x000053cdu, 0x0000021au, 0x00050080u, 0x00000006u, 0x000053d1u, 0x000053cfu, + 0x00000490u, 0x000500c6u, 0x00000006u, 0x000053d4u, 0x000053d1u, 0x000049d0u, 0x000500c5u, 0x00000006u, + 0x000053d7u, 0x00000f3cu, 0x000053d4u, 0x00080041u, 0x00000275u, 0x000053d8u, 0x00000f3au, 0x00000208u, + 0x00002232u, 0x00000208u, 0x000053d7u, 0x0004003du, 0x00000230u, 0x000053d9u, 0x000053d8u, 0x00040071u, + 0x00000006u, 0x000053dau, 0x000053d9u, 0x000300f7u, 0x000053e2u, 0x00000000u, 0x000400fau, 0x00002246u, + 0x000053dcu, 0x000053dfu, 0x000200f8u, 0x000053dfu, 0x00060050u, 0x00000358u, 0x000053fau, 0x000053dau, + 0x000053dau, 0x000053dau, 0x000500c2u, 0x00000358u, 0x000053fbu, 0x000053fau, 0x00000e20u, 0x000500c7u, + 0x00000358u, 0x000053fdu, 0x000053fbu, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00005400u, 0x000053fdu, + 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x00005403u, 0x000053fdu, 0x0000bdb1u, 0x000500c5u, 0x00000358u, + 0x00005404u, 0x00005400u, 0x00005403u, 0x000500c7u, 0x00000006u, 0x00005406u, 0x000053dau, 0x0000048au, + 0x00050084u, 0x00000006u, 0x00005407u, 0x00005406u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005409u, + 0x00005404u, 0x0004007cu, 0x00000008u, 0x0000540bu, 0x00005407u, 0x00050051u, 0x00000008u, 0x0000540cu, + 0x00005409u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000540du, 0x00005409u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x0000540eu, 0x00005409u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000540fu, 0x0000540cu, + 0x0000540du, 0x0000540eu, 0x0000540bu, 0x000200f9u, 0x000053e2u, 0x000200f8u, 0x000053dcu, 0x000500c2u, + 0x00000006u, 0x000053e9u, 0x000053dau, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000053ebu, 0x000053dau, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000053edu, 0x000053e9u, 0x0004007cu, 0x00000008u, 0x000053f3u, + 0x000053ebu, 0x00070050u, 0x00000009u, 0x000053f4u, 0x000053edu, 0x000053edu, 0x000053edu, 0x000053f3u, + 0x000200f9u, 0x000053e2u, 0x000200f8u, 0x000053e2u, 0x000700f5u, 0x00000009u, 0x00007e4au, 0x000053f4u, + 0x000053dcu, 0x0000540fu, 0x000053dfu, 0x000200f9u, 0x00004a62u, 0x000200f8u, 0x00004a62u, 0x000700f5u, + 0x00000009u, 0x00008293u, 0x000081e0u, 0x00004a56u, 0x00007e4au, 0x000053e2u, 0x000200f9u, 0x00004a63u, + 0x000200f8u, 0x000049ffu, 0x0004007cu, 0x000000a6u, 0x00004a01u, 0x00007e37u, 0x0004007cu, 0x00000006u, + 0x00004a04u, 0x000047dcu, 0x000600a9u, 0x00000008u, 0x00004a06u, 0x000049acu, 0x0000021du, 0x00000208u, + 0x0004007cu, 0x00000006u, 0x00004a07u, 0x00004a06u, 0x00050051u, 0x00000006u, 0x000050abu, 0x00004a01u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000050acu, 0x000047cdu, 0x000050abu, 0x00050080u, 0x00000006u, + 0x000050adu, 0x000047cau, 0x000050acu, 0x00050051u, 0x00000006u, 0x000050afu, 0x00004a01u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000050b0u, 0x000050afu, 0x00000217u, 0x00050080u, 0x00000006u, 0x000050b2u, + 0x000050adu, 0x000050b0u, 0x000500c7u, 0x00000006u, 0x000050b4u, 0x000050b2u, 0x00000f0bu, 0x000400c8u, + 0x00000006u, 0x000050b7u, 0x000050afu, 0x000500c7u, 0x00000006u, 0x000050b8u, 0x000050b7u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000050b9u, 0x000050b8u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000050bdu, + 0x000050abu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000050beu, 0x000050bdu, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000050c0u, 0x000050b4u, 0x000050beu, 0x000500c6u, 0x00000006u, 0x000050c2u, 0x000050c0u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000050c5u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x000050c2u, 0x0004003du, 0x0000022eu, 0x000050c6u, 0x000050c5u, 0x00040071u, 0x00000006u, 0x000050c7u, + 0x000050c6u, 0x000500c2u, 0x00000006u, 0x000050cau, 0x000050c7u, 0x000050b9u, 0x000500c7u, 0x00000006u, + 0x000050cbu, 0x000050cau, 0x00000e7cu, 0x000500c4u, 0x00000006u, 0x000050cdu, 0x00004a04u, 0x00000220u, + 0x000500c5u, 0x00000006u, 0x000050cfu, 0x000050cbu, 0x000050cdu, 0x000500c4u, 0x00000006u, 0x000050d1u, + 0x000050cfu, 0x0000021au, 0x00050080u, 0x00000006u, 0x000050d3u, 0x000050d1u, 0x00004a07u, 0x000500c6u, + 0x00000006u, 0x000050d6u, 0x000050d3u, 0x000049d0u, 0x000500c5u, 0x00000006u, 0x000050d9u, 0x00000f3cu, + 0x000050d6u, 0x00080041u, 0x00000275u, 0x000050dau, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x000050d9u, 0x0004003du, 0x00000230u, 0x000050dbu, 0x000050dau, 0x00040071u, 0x00000006u, 0x000050dcu, + 0x000050dbu, 0x000300f7u, 0x000050e4u, 0x00000000u, 0x000400fau, 0x00002246u, 0x000050deu, 0x000050e1u, + 0x000200f8u, 0x000050e1u, 0x00060050u, 0x00000358u, 0x000050fcu, 0x000050dcu, 0x000050dcu, 0x000050dcu, + 0x000500c2u, 0x00000358u, 0x000050fdu, 0x000050fcu, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x000050ffu, + 0x000050fdu, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00005102u, 0x000050ffu, 0x0000bdb0u, 0x000500c2u, + 0x00000358u, 0x00005105u, 0x000050ffu, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00005106u, 0x00005102u, + 0x00005105u, 0x000500c7u, 0x00000006u, 0x00005108u, 0x000050dcu, 0x0000048au, 0x00050084u, 0x00000006u, + 0x00005109u, 0x00005108u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000510bu, 0x00005106u, 0x0004007cu, + 0x00000008u, 0x0000510du, 0x00005109u, 0x00050051u, 0x00000008u, 0x0000510eu, 0x0000510bu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x0000510fu, 0x0000510bu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005110u, + 0x0000510bu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00005111u, 0x0000510eu, 0x0000510fu, 0x00005110u, + 0x0000510du, 0x000200f9u, 0x000050e4u, 0x000200f8u, 0x000050deu, 0x000500c2u, 0x00000006u, 0x000050ebu, + 0x000050dcu, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000050edu, 0x000050dcu, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000050efu, 0x000050ebu, 0x0004007cu, 0x00000008u, 0x000050f5u, 0x000050edu, 0x00070050u, + 0x00000009u, 0x000050f6u, 0x000050efu, 0x000050efu, 0x000050efu, 0x000050f5u, 0x000200f9u, 0x000050e4u, + 0x000200f8u, 0x000050e4u, 0x000700f5u, 0x00000009u, 0x00007e4bu, 0x000050f6u, 0x000050deu, 0x00005111u, + 0x000050e1u, 0x000300f7u, 0x00004a27u, 0x00000000u, 0x000400fau, 0x00002288u, 0x00004a0eu, 0x00004a27u, + 0x000200f8u, 0x00004a0eu, 0x00050050u, 0x0000005fu, 0x00004a11u, 0x0000bdecu, 0x00004996u, 0x0004007cu, + 0x000000a6u, 0x00004a12u, 0x00004a11u, 0x00050051u, 0x00000006u, 0x00005121u, 0x00004a12u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005122u, 0x000047cdu, 0x00005121u, 0x00050080u, 0x00000006u, 0x00005123u, + 0x000047cau, 0x00005122u, 0x00050051u, 0x00000006u, 0x00005125u, 0x00004a12u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00005126u, 0x00005125u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00005128u, 0x00005123u, + 0x00005126u, 0x000500c7u, 0x00000006u, 0x0000512au, 0x00005128u, 0x00000f0bu, 0x000400c8u, 0x00000006u, + 0x0000512du, 0x00005125u, 0x000500c7u, 0x00000006u, 0x0000512eu, 0x0000512du, 0x0000048au, 0x00050084u, + 0x00000006u, 0x0000512fu, 0x0000512eu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00005133u, 0x00005121u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005134u, 0x00005133u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00005136u, 0x0000512au, 0x00005134u, 0x000500c6u, 0x00000006u, 0x00005138u, 0x00005136u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x0000513bu, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005138u, + 0x0004003du, 0x0000022eu, 0x0000513cu, 0x0000513bu, 0x00040071u, 0x00000006u, 0x0000513du, 0x0000513cu, + 0x000500c2u, 0x00000006u, 0x00005140u, 0x0000513du, 0x0000512fu, 0x000500c7u, 0x00000006u, 0x00005141u, + 0x00005140u, 0x00000e7cu, 0x000500c5u, 0x00000006u, 0x00005145u, 0x00005141u, 0x000050cdu, 0x000500c4u, + 0x00000006u, 0x00005147u, 0x00005145u, 0x0000021au, 0x00050080u, 0x00000006u, 0x00005149u, 0x00005147u, + 0x0000048au, 0x000500c6u, 0x00000006u, 0x0000514cu, 0x00005149u, 0x000049d0u, 0x000500c5u, 0x00000006u, + 0x0000514fu, 0x00000f3cu, 0x0000514cu, 0x00080041u, 0x00000275u, 0x00005150u, 0x00000f3au, 0x00000208u, + 0x00002232u, 0x00000208u, 0x0000514fu, 0x0004003du, 0x00000230u, 0x00005151u, 0x00005150u, 0x00040071u, + 0x00000006u, 0x00005152u, 0x00005151u, 0x000300f7u, 0x0000515au, 0x00000000u, 0x000400fau, 0x00002246u, + 0x00005154u, 0x00005157u, 0x000200f8u, 0x00005157u, 0x00060050u, 0x00000358u, 0x00005172u, 0x00005152u, + 0x00005152u, 0x00005152u, 0x000500c2u, 0x00000358u, 0x00005173u, 0x00005172u, 0x00000e20u, 0x000500c7u, + 0x00000358u, 0x00005175u, 0x00005173u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00005178u, 0x00005175u, + 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x0000517bu, 0x00005175u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, + 0x0000517cu, 0x00005178u, 0x0000517bu, 0x000500c7u, 0x00000006u, 0x0000517eu, 0x00005152u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x0000517fu, 0x0000517eu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005181u, + 0x0000517cu, 0x0004007cu, 0x00000008u, 0x00005183u, 0x0000517fu, 0x00050051u, 0x00000008u, 0x00005184u, + 0x00005181u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005185u, 0x00005181u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x00005186u, 0x00005181u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00005187u, 0x00005184u, + 0x00005185u, 0x00005186u, 0x00005183u, 0x000200f9u, 0x0000515au, 0x000200f8u, 0x00005154u, 0x000500c2u, + 0x00000006u, 0x00005161u, 0x00005152u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005163u, 0x00005152u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005165u, 0x00005161u, 0x0004007cu, 0x00000008u, 0x0000516bu, + 0x00005163u, 0x00070050u, 0x00000009u, 0x0000516cu, 0x00005165u, 0x00005165u, 0x00005165u, 0x0000516bu, + 0x000200f9u, 0x0000515au, 0x000200f8u, 0x0000515au, 0x000700f5u, 0x00000009u, 0x00007e4eu, 0x0000516cu, + 0x00005154u, 0x00005187u, 0x00005157u, 0x00050050u, 0x0000005fu, 0x00004a1du, 0x00007deau, 0x0000bdebu, + 0x0004007cu, 0x000000a6u, 0x00004a1eu, 0x00004a1du, 0x00050051u, 0x00000006u, 0x00005197u, 0x00004a1eu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005198u, 0x000047cdu, 0x00005197u, 0x00050080u, 0x00000006u, + 0x00005199u, 0x000047cau, 0x00005198u, 0x00050051u, 0x00000006u, 0x0000519bu, 0x00004a1eu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000519cu, 0x0000519bu, 0x00000217u, 0x00050080u, 0x00000006u, 0x0000519eu, + 0x00005199u, 0x0000519cu, 0x000500c7u, 0x00000006u, 0x000051a0u, 0x0000519eu, 0x00000f0bu, 0x000400c8u, + 0x00000006u, 0x000051a3u, 0x0000519bu, 0x000500c7u, 0x00000006u, 0x000051a4u, 0x000051a3u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000051a5u, 0x000051a4u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000051a9u, + 0x00005197u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000051aau, 0x000051a9u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000051acu, 0x000051a0u, 0x000051aau, 0x000500c6u, 0x00000006u, 0x000051aeu, 0x000051acu, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000051b1u, 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, + 0x000051aeu, 0x0004003du, 0x0000022eu, 0x000051b2u, 0x000051b1u, 0x00040071u, 0x00000006u, 0x000051b3u, + 0x000051b2u, 0x000500c2u, 0x00000006u, 0x000051b6u, 0x000051b3u, 0x000051a5u, 0x000500c7u, 0x00000006u, + 0x000051b7u, 0x000051b6u, 0x00000e7cu, 0x000500c5u, 0x00000006u, 0x000051bbu, 0x000051b7u, 0x000050cdu, + 0x000500c4u, 0x00000006u, 0x000051bdu, 0x000051bbu, 0x0000021au, 0x00050080u, 0x00000006u, 0x000051bfu, + 0x000051bdu, 0x000003c9u, 0x000500c6u, 0x00000006u, 0x000051c2u, 0x000051bfu, 0x000049d0u, 0x000500c5u, + 0x00000006u, 0x000051c5u, 0x00000f3cu, 0x000051c2u, 0x00080041u, 0x00000275u, 0x000051c6u, 0x00000f3au, + 0x00000208u, 0x00002232u, 0x00000208u, 0x000051c5u, 0x0004003du, 0x00000230u, 0x000051c7u, 0x000051c6u, + 0x00040071u, 0x00000006u, 0x000051c8u, 0x000051c7u, 0x000300f7u, 0x000051d0u, 0x00000000u, 0x000400fau, + 0x00002246u, 0x000051cau, 0x000051cdu, 0x000200f8u, 0x000051cdu, 0x00060050u, 0x00000358u, 0x000051e8u, + 0x000051c8u, 0x000051c8u, 0x000051c8u, 0x000500c2u, 0x00000358u, 0x000051e9u, 0x000051e8u, 0x00000e20u, + 0x000500c7u, 0x00000358u, 0x000051ebu, 0x000051e9u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x000051eeu, + 0x000051ebu, 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x000051f1u, 0x000051ebu, 0x0000bdb1u, 0x000500c5u, + 0x00000358u, 0x000051f2u, 0x000051eeu, 0x000051f1u, 0x000500c7u, 0x00000006u, 0x000051f4u, 0x000051c8u, + 0x0000048au, 0x00050084u, 0x00000006u, 0x000051f5u, 0x000051f4u, 0x000006c7u, 0x0004007cu, 0x0000003cu, + 0x000051f7u, 0x000051f2u, 0x0004007cu, 0x00000008u, 0x000051f9u, 0x000051f5u, 0x00050051u, 0x00000008u, + 0x000051fau, 0x000051f7u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000051fbu, 0x000051f7u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x000051fcu, 0x000051f7u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000051fdu, + 0x000051fau, 0x000051fbu, 0x000051fcu, 0x000051f9u, 0x000200f9u, 0x000051d0u, 0x000200f8u, 0x000051cau, + 0x000500c2u, 0x00000006u, 0x000051d7u, 0x000051c8u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000051d9u, + 0x000051c8u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000051dbu, 0x000051d7u, 0x0004007cu, 0x00000008u, + 0x000051e1u, 0x000051d9u, 0x00070050u, 0x00000009u, 0x000051e2u, 0x000051dbu, 0x000051dbu, 0x000051dbu, + 0x000051e1u, 0x000200f9u, 0x000051d0u, 0x000200f8u, 0x000051d0u, 0x000700f5u, 0x00000009u, 0x00007e51u, + 0x000051e2u, 0x000051cau, 0x000051fdu, 0x000051cdu, 0x000200f9u, 0x00004a27u, 0x000200f8u, 0x00004a27u, + 0x000700f5u, 0x00000009u, 0x00008199u, 0x000080ebu, 0x000050e4u, 0x00007e51u, 0x000051d0u, 0x000700f5u, + 0x00000009u, 0x0000809fu, 0x00007ff0u, 0x000050e4u, 0x00007e4eu, 0x000051d0u, 0x000300f7u, 0x00004a36u, + 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004a29u, 0x00004a36u, 0x000200f8u, 0x00004a29u, 0x00050050u, + 0x0000005fu, 0x00004a2cu, 0x0000bdecu, 0x0000bdebu, 0x0004007cu, 0x000000a6u, 0x00004a2du, 0x00004a2cu, + 0x00050051u, 0x00000006u, 0x0000520du, 0x00004a2du, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000520eu, + 0x000047cdu, 0x0000520du, 0x00050080u, 0x00000006u, 0x0000520fu, 0x000047cau, 0x0000520eu, 0x00050051u, + 0x00000006u, 0x00005211u, 0x00004a2du, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005212u, 0x00005211u, + 0x00000217u, 0x00050080u, 0x00000006u, 0x00005214u, 0x0000520fu, 0x00005212u, 0x000500c7u, 0x00000006u, + 0x00005216u, 0x00005214u, 0x00000f0bu, 0x000400c8u, 0x00000006u, 0x00005219u, 0x00005211u, 0x000500c7u, + 0x00000006u, 0x0000521au, 0x00005219u, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000521bu, 0x0000521au, + 0x00000706u, 0x000500c7u, 0x00000006u, 0x0000521fu, 0x0000520du, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005220u, 0x0000521fu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005222u, 0x00005216u, 0x00005220u, + 0x000500c6u, 0x00000006u, 0x00005224u, 0x00005222u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005227u, + 0x00000e73u, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005224u, 0x0004003du, 0x0000022eu, 0x00005228u, + 0x00005227u, 0x00040071u, 0x00000006u, 0x00005229u, 0x00005228u, 0x000500c2u, 0x00000006u, 0x0000522cu, + 0x00005229u, 0x0000521bu, 0x000500c7u, 0x00000006u, 0x0000522du, 0x0000522cu, 0x00000e7cu, 0x000500c5u, + 0x00000006u, 0x00005231u, 0x0000522du, 0x000050cdu, 0x000500c4u, 0x00000006u, 0x00005233u, 0x00005231u, + 0x0000021au, 0x00050080u, 0x00000006u, 0x00005235u, 0x00005233u, 0x00000490u, 0x000500c6u, 0x00000006u, + 0x00005238u, 0x00005235u, 0x000049d0u, 0x000500c5u, 0x00000006u, 0x0000523bu, 0x00000f3cu, 0x00005238u, + 0x00080041u, 0x00000275u, 0x0000523cu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x0000523bu, + 0x0004003du, 0x00000230u, 0x0000523du, 0x0000523cu, 0x00040071u, 0x00000006u, 0x0000523eu, 0x0000523du, + 0x000300f7u, 0x00005246u, 0x00000000u, 0x000400fau, 0x00002246u, 0x00005240u, 0x00005243u, 0x000200f8u, + 0x00005243u, 0x00060050u, 0x00000358u, 0x0000525eu, 0x0000523eu, 0x0000523eu, 0x0000523eu, 0x000500c2u, + 0x00000358u, 0x0000525fu, 0x0000525eu, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00005261u, 0x0000525fu, + 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00005264u, 0x00005261u, 0x0000bdb0u, 0x000500c2u, 0x00000358u, + 0x00005267u, 0x00005261u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00005268u, 0x00005264u, 0x00005267u, + 0x000500c7u, 0x00000006u, 0x0000526au, 0x0000523eu, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000526bu, + 0x0000526au, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000526du, 0x00005268u, 0x0004007cu, 0x00000008u, + 0x0000526fu, 0x0000526bu, 0x00050051u, 0x00000008u, 0x00005270u, 0x0000526du, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00005271u, 0x0000526du, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005272u, 0x0000526du, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00005273u, 0x00005270u, 0x00005271u, 0x00005272u, 0x0000526fu, + 0x000200f9u, 0x00005246u, 0x000200f8u, 0x00005240u, 0x000500c2u, 0x00000006u, 0x0000524du, 0x0000523eu, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x0000524fu, 0x0000523eu, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00005251u, 0x0000524du, 0x0004007cu, 0x00000008u, 0x00005257u, 0x0000524fu, 0x00070050u, 0x00000009u, + 0x00005258u, 0x00005251u, 0x00005251u, 0x00005251u, 0x00005257u, 0x000200f9u, 0x00005246u, 0x000200f8u, + 0x00005246u, 0x000700f5u, 0x00000009u, 0x00007e57u, 0x00005258u, 0x00005240u, 0x00005273u, 0x00005243u, + 0x000200f9u, 0x00004a36u, 0x000200f8u, 0x00004a36u, 0x000700f5u, 0x00000009u, 0x0000828eu, 0x000081e0u, + 0x00004a27u, 0x00007e57u, 0x00005246u, 0x000200f9u, 0x00004a63u, 0x000200f8u, 0x000049d3u, 0x0004007cu, + 0x000000a6u, 0x000049d5u, 0x00007e37u, 0x000600a9u, 0x00000008u, 0x000049d7u, 0x000049acu, 0x0000021du, + 0x00000208u, 0x0004007cu, 0x00000006u, 0x000049d8u, 0x000049d7u, 0x00050051u, 0x00000006u, 0x00004f02u, + 0x000049d5u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004f03u, 0x000047cdu, 0x00004f02u, 0x00050080u, + 0x00000006u, 0x00004f04u, 0x000047cau, 0x00004f03u, 0x00050051u, 0x00000006u, 0x00004f06u, 0x000049d5u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00004f07u, 0x00004f06u, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00004f09u, 0x00004f04u, 0x00004f07u, 0x000500c7u, 0x00000006u, 0x00004f0bu, 0x00004f09u, 0x00000f0bu, + 0x000500c2u, 0x00000006u, 0x00004f0du, 0x00004f0bu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004f10u, + 0x00004f02u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004f11u, 0x00004f10u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00004f13u, 0x00004f0du, 0x00004f11u, 0x000500c6u, 0x00000006u, 0x00004f15u, 0x00004f13u, + 0x0000048au, 0x00080041u, 0x00000275u, 0x00004f18u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00004f15u, 0x0004003du, 0x00000230u, 0x00004f19u, 0x00004f18u, 0x00040071u, 0x00000006u, 0x00004f1au, + 0x00004f19u, 0x000500c2u, 0x00000006u, 0x00004f1cu, 0x00004f1au, 0x00000226u, 0x000500c7u, 0x00000006u, + 0x00004f1du, 0x00004f1cu, 0x00000fdau, 0x00050080u, 0x00000006u, 0x00004f1fu, 0x00004f1du, 0x000049d8u, + 0x000500c6u, 0x00000006u, 0x00004f22u, 0x00004f1fu, 0x000049d0u, 0x000500c5u, 0x00000006u, 0x00004f25u, + 0x00000f3cu, 0x00004f22u, 0x00080041u, 0x00000275u, 0x00004f26u, 0x00000f3au, 0x00000208u, 0x00002232u, + 0x00000208u, 0x00004f25u, 0x0004003du, 0x00000230u, 0x00004f27u, 0x00004f26u, 0x00040071u, 0x00000006u, + 0x00004f28u, 0x00004f27u, 0x000300f7u, 0x00004f30u, 0x00000000u, 0x000400fau, 0x00002246u, 0x00004f2au, + 0x00004f2du, 0x000200f8u, 0x00004f2du, 0x00060050u, 0x00000358u, 0x00004f48u, 0x00004f28u, 0x00004f28u, + 0x00004f28u, 0x000500c2u, 0x00000358u, 0x00004f49u, 0x00004f48u, 0x00000e20u, 0x000500c7u, 0x00000358u, + 0x00004f4bu, 0x00004f49u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00004f4eu, 0x00004f4bu, 0x0000bdb0u, + 0x000500c2u, 0x00000358u, 0x00004f51u, 0x00004f4bu, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00004f52u, + 0x00004f4eu, 0x00004f51u, 0x000500c7u, 0x00000006u, 0x00004f54u, 0x00004f28u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00004f55u, 0x00004f54u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00004f57u, 0x00004f52u, + 0x0004007cu, 0x00000008u, 0x00004f59u, 0x00004f55u, 0x00050051u, 0x00000008u, 0x00004f5au, 0x00004f57u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00004f5bu, 0x00004f57u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00004f5cu, 0x00004f57u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004f5du, 0x00004f5au, 0x00004f5bu, + 0x00004f5cu, 0x00004f59u, 0x000200f9u, 0x00004f30u, 0x000200f8u, 0x00004f2au, 0x000500c2u, 0x00000006u, + 0x00004f37u, 0x00004f28u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00004f39u, 0x00004f28u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00004f3bu, 0x00004f37u, 0x0004007cu, 0x00000008u, 0x00004f41u, 0x00004f39u, + 0x00070050u, 0x00000009u, 0x00004f42u, 0x00004f3bu, 0x00004f3bu, 0x00004f3bu, 0x00004f41u, 0x000200f9u, + 0x00004f30u, 0x000200f8u, 0x00004f30u, 0x000700f5u, 0x00000009u, 0x00007e58u, 0x00004f42u, 0x00004f2au, + 0x00004f5du, 0x00004f2du, 0x000300f7u, 0x000049f2u, 0x00000000u, 0x000400fau, 0x00002288u, 0x000049dfu, + 0x000049f2u, 0x000200f8u, 0x000049dfu, 0x00050050u, 0x0000005fu, 0x000049e2u, 0x0000bdecu, 0x00004996u, + 0x0004007cu, 0x000000a6u, 0x000049e3u, 0x000049e2u, 0x00050051u, 0x00000006u, 0x00004f6cu, 0x000049e3u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004f6du, 0x000047cdu, 0x00004f6cu, 0x00050080u, 0x00000006u, + 0x00004f6eu, 0x000047cau, 0x00004f6du, 0x00050051u, 0x00000006u, 0x00004f70u, 0x000049e3u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00004f71u, 0x00004f70u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004f73u, + 0x00004f6eu, 0x00004f71u, 0x000500c7u, 0x00000006u, 0x00004f75u, 0x00004f73u, 0x00000f0bu, 0x000500c2u, + 0x00000006u, 0x00004f77u, 0x00004f75u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004f7au, 0x00004f6cu, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004f7bu, 0x00004f7au, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00004f7du, 0x00004f77u, 0x00004f7bu, 0x000500c6u, 0x00000006u, 0x00004f7fu, 0x00004f7du, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00004f82u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004f7fu, + 0x0004003du, 0x00000230u, 0x00004f83u, 0x00004f82u, 0x00040071u, 0x00000006u, 0x00004f84u, 0x00004f83u, + 0x000500c2u, 0x00000006u, 0x00004f86u, 0x00004f84u, 0x00000226u, 0x000500c7u, 0x00000006u, 0x00004f87u, + 0x00004f86u, 0x00000fdau, 0x00050080u, 0x00000006u, 0x00004f89u, 0x00004f87u, 0x0000048au, 0x000500c6u, + 0x00000006u, 0x00004f8cu, 0x00004f89u, 0x000049d0u, 0x000500c5u, 0x00000006u, 0x00004f8fu, 0x00000f3cu, + 0x00004f8cu, 0x00080041u, 0x00000275u, 0x00004f90u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, + 0x00004f8fu, 0x0004003du, 0x00000230u, 0x00004f91u, 0x00004f90u, 0x00040071u, 0x00000006u, 0x00004f92u, + 0x00004f91u, 0x000300f7u, 0x00004f9au, 0x00000000u, 0x000400fau, 0x00002246u, 0x00004f94u, 0x00004f97u, + 0x000200f8u, 0x00004f97u, 0x00060050u, 0x00000358u, 0x00004fb2u, 0x00004f92u, 0x00004f92u, 0x00004f92u, + 0x000500c2u, 0x00000358u, 0x00004fb3u, 0x00004fb2u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00004fb5u, + 0x00004fb3u, 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x00004fb8u, 0x00004fb5u, 0x0000bdb0u, 0x000500c2u, + 0x00000358u, 0x00004fbbu, 0x00004fb5u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00004fbcu, 0x00004fb8u, + 0x00004fbbu, 0x000500c7u, 0x00000006u, 0x00004fbeu, 0x00004f92u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x00004fbfu, 0x00004fbeu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00004fc1u, 0x00004fbcu, 0x0004007cu, + 0x00000008u, 0x00004fc3u, 0x00004fbfu, 0x00050051u, 0x00000008u, 0x00004fc4u, 0x00004fc1u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00004fc5u, 0x00004fc1u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004fc6u, + 0x00004fc1u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004fc7u, 0x00004fc4u, 0x00004fc5u, 0x00004fc6u, + 0x00004fc3u, 0x000200f9u, 0x00004f9au, 0x000200f8u, 0x00004f94u, 0x000500c2u, 0x00000006u, 0x00004fa1u, + 0x00004f92u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00004fa3u, 0x00004f92u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00004fa5u, 0x00004fa1u, 0x0004007cu, 0x00000008u, 0x00004fabu, 0x00004fa3u, 0x00070050u, + 0x00000009u, 0x00004facu, 0x00004fa5u, 0x00004fa5u, 0x00004fa5u, 0x00004fabu, 0x000200f9u, 0x00004f9au, + 0x000200f8u, 0x00004f9au, 0x000700f5u, 0x00000009u, 0x00007e5bu, 0x00004facu, 0x00004f94u, 0x00004fc7u, + 0x00004f97u, 0x00050050u, 0x0000005fu, 0x000049ebu, 0x00007deau, 0x0000bdebu, 0x0004007cu, 0x000000a6u, + 0x000049ecu, 0x000049ebu, 0x00050051u, 0x00000006u, 0x00004fd6u, 0x000049ecu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004fd7u, 0x000047cdu, 0x00004fd6u, 0x00050080u, 0x00000006u, 0x00004fd8u, 0x000047cau, + 0x00004fd7u, 0x00050051u, 0x00000006u, 0x00004fdau, 0x000049ecu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00004fdbu, 0x00004fdau, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004fddu, 0x00004fd8u, 0x00004fdbu, + 0x000500c7u, 0x00000006u, 0x00004fdfu, 0x00004fddu, 0x00000f0bu, 0x000500c2u, 0x00000006u, 0x00004fe1u, + 0x00004fdfu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004fe4u, 0x00004fd6u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00004fe5u, 0x00004fe4u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004fe7u, 0x00004fe1u, + 0x00004fe5u, 0x000500c6u, 0x00000006u, 0x00004fe9u, 0x00004fe7u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x00004fecu, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004fe9u, 0x0004003du, 0x00000230u, + 0x00004fedu, 0x00004fecu, 0x00040071u, 0x00000006u, 0x00004feeu, 0x00004fedu, 0x000500c2u, 0x00000006u, + 0x00004ff0u, 0x00004feeu, 0x00000226u, 0x000500c7u, 0x00000006u, 0x00004ff1u, 0x00004ff0u, 0x00000fdau, + 0x00050080u, 0x00000006u, 0x00004ff3u, 0x00004ff1u, 0x000003c9u, 0x000500c6u, 0x00000006u, 0x00004ff6u, + 0x00004ff3u, 0x000049d0u, 0x000500c5u, 0x00000006u, 0x00004ff9u, 0x00000f3cu, 0x00004ff6u, 0x00080041u, + 0x00000275u, 0x00004ffau, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00004ff9u, 0x0004003du, + 0x00000230u, 0x00004ffbu, 0x00004ffau, 0x00040071u, 0x00000006u, 0x00004ffcu, 0x00004ffbu, 0x000300f7u, + 0x00005004u, 0x00000000u, 0x000400fau, 0x00002246u, 0x00004ffeu, 0x00005001u, 0x000200f8u, 0x00005001u, + 0x00060050u, 0x00000358u, 0x0000501cu, 0x00004ffcu, 0x00004ffcu, 0x00004ffcu, 0x000500c2u, 0x00000358u, + 0x0000501du, 0x0000501cu, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x0000501fu, 0x0000501du, 0x0000bdafu, + 0x000500c4u, 0x00000358u, 0x00005022u, 0x0000501fu, 0x0000bdb0u, 0x000500c2u, 0x00000358u, 0x00005025u, + 0x0000501fu, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00005026u, 0x00005022u, 0x00005025u, 0x000500c7u, + 0x00000006u, 0x00005028u, 0x00004ffcu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005029u, 0x00005028u, + 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000502bu, 0x00005026u, 0x0004007cu, 0x00000008u, 0x0000502du, + 0x00005029u, 0x00050051u, 0x00000008u, 0x0000502eu, 0x0000502bu, 0x00000000u, 0x00050051u, 0x00000008u, + 0x0000502fu, 0x0000502bu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005030u, 0x0000502bu, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00005031u, 0x0000502eu, 0x0000502fu, 0x00005030u, 0x0000502du, 0x000200f9u, + 0x00005004u, 0x000200f8u, 0x00004ffeu, 0x000500c2u, 0x00000006u, 0x0000500bu, 0x00004ffcu, 0x00000263u, + 0x000500c7u, 0x00000006u, 0x0000500du, 0x00004ffcu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000500fu, + 0x0000500bu, 0x0004007cu, 0x00000008u, 0x00005015u, 0x0000500du, 0x00070050u, 0x00000009u, 0x00005016u, + 0x0000500fu, 0x0000500fu, 0x0000500fu, 0x00005015u, 0x000200f9u, 0x00005004u, 0x000200f8u, 0x00005004u, + 0x000700f5u, 0x00000009u, 0x00007e5eu, 0x00005016u, 0x00004ffeu, 0x00005031u, 0x00005001u, 0x000200f9u, + 0x000049f2u, 0x000200f8u, 0x000049f2u, 0x000700f5u, 0x00000009u, 0x00008194u, 0x000080ebu, 0x00004f30u, + 0x00007e5eu, 0x00005004u, 0x000700f5u, 0x00000009u, 0x00008099u, 0x00007ff0u, 0x00004f30u, 0x00007e5bu, + 0x00005004u, 0x000300f7u, 0x000049feu, 0x00000000u, 0x000400fau, 0x000049a2u, 0x000049f4u, 0x000049feu, + 0x000200f8u, 0x000049f4u, 0x00050050u, 0x0000005fu, 0x000049f7u, 0x0000bdecu, 0x0000bdebu, 0x0004007cu, + 0x000000a6u, 0x000049f8u, 0x000049f7u, 0x00050051u, 0x00000006u, 0x00005040u, 0x000049f8u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005041u, 0x000047cdu, 0x00005040u, 0x00050080u, 0x00000006u, 0x00005042u, + 0x000047cau, 0x00005041u, 0x00050051u, 0x00000006u, 0x00005044u, 0x000049f8u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005045u, 0x00005044u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005047u, 0x00005042u, + 0x00005045u, 0x000500c7u, 0x00000006u, 0x00005049u, 0x00005047u, 0x00000f0bu, 0x000500c2u, 0x00000006u, + 0x0000504bu, 0x00005049u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x0000504eu, 0x00005040u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x0000504fu, 0x0000504eu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005051u, + 0x0000504bu, 0x0000504fu, 0x000500c6u, 0x00000006u, 0x00005053u, 0x00005051u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00005056u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005053u, 0x0004003du, + 0x00000230u, 0x00005057u, 0x00005056u, 0x00040071u, 0x00000006u, 0x00005058u, 0x00005057u, 0x000500c2u, + 0x00000006u, 0x0000505au, 0x00005058u, 0x00000226u, 0x000500c7u, 0x00000006u, 0x0000505bu, 0x0000505au, + 0x00000fdau, 0x00050080u, 0x00000006u, 0x0000505du, 0x0000505bu, 0x00000490u, 0x000500c6u, 0x00000006u, + 0x00005060u, 0x0000505du, 0x000049d0u, 0x000500c5u, 0x00000006u, 0x00005063u, 0x00000f3cu, 0x00005060u, + 0x00080041u, 0x00000275u, 0x00005064u, 0x00000f3au, 0x00000208u, 0x00002232u, 0x00000208u, 0x00005063u, + 0x0004003du, 0x00000230u, 0x00005065u, 0x00005064u, 0x00040071u, 0x00000006u, 0x00005066u, 0x00005065u, + 0x000300f7u, 0x0000506eu, 0x00000000u, 0x000400fau, 0x00002246u, 0x00005068u, 0x0000506bu, 0x000200f8u, + 0x0000506bu, 0x00060050u, 0x00000358u, 0x00005086u, 0x00005066u, 0x00005066u, 0x00005066u, 0x000500c2u, + 0x00000358u, 0x00005087u, 0x00005086u, 0x00000e20u, 0x000500c7u, 0x00000358u, 0x00005089u, 0x00005087u, + 0x0000bdafu, 0x000500c4u, 0x00000358u, 0x0000508cu, 0x00005089u, 0x0000bdb0u, 0x000500c2u, 0x00000358u, + 0x0000508fu, 0x00005089u, 0x0000bdb1u, 0x000500c5u, 0x00000358u, 0x00005090u, 0x0000508cu, 0x0000508fu, + 0x000500c7u, 0x00000006u, 0x00005092u, 0x00005066u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005093u, + 0x00005092u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005095u, 0x00005090u, 0x0004007cu, 0x00000008u, + 0x00005097u, 0x00005093u, 0x00050051u, 0x00000008u, 0x00005098u, 0x00005095u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00005099u, 0x00005095u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000509au, 0x00005095u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x0000509bu, 0x00005098u, 0x00005099u, 0x0000509au, 0x00005097u, + 0x000200f9u, 0x0000506eu, 0x000200f8u, 0x00005068u, 0x000500c2u, 0x00000006u, 0x00005075u, 0x00005066u, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005077u, 0x00005066u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00005079u, 0x00005075u, 0x0004007cu, 0x00000008u, 0x0000507fu, 0x00005077u, 0x00070050u, 0x00000009u, + 0x00005080u, 0x00005079u, 0x00005079u, 0x00005079u, 0x0000507fu, 0x000200f9u, 0x0000506eu, 0x000200f8u, + 0x0000506eu, 0x000700f5u, 0x00000009u, 0x00007e64u, 0x00005080u, 0x00005068u, 0x0000509bu, 0x0000506bu, + 0x000200f9u, 0x000049feu, 0x000200f8u, 0x000049feu, 0x000700f5u, 0x00000009u, 0x00008288u, 0x000081e0u, + 0x000049f2u, 0x00007e64u, 0x0000506eu, 0x000200f9u, 0x00004a63u, 0x000200f8u, 0x00004a63u, 0x000900f5u, + 0x00000009u, 0x00008287u, 0x00008288u, 0x000049feu, 0x0000828eu, 0x00004a36u, 0x00008293u, 0x00004a62u, + 0x000900f5u, 0x00000009u, 0x00008192u, 0x00008194u, 0x000049feu, 0x00008199u, 0x00004a36u, 0x0000819du, + 0x00004a62u, 0x000900f5u, 0x00000009u, 0x00008097u, 0x00008099u, 0x000049feu, 0x0000809fu, 0x00004a36u, + 0x000080a4u, 0x00004a62u, 0x000900f5u, 0x00000009u, 0x00007f2bu, 0x00007e58u, 0x000049feu, 0x00007e4bu, + 0x00004a36u, 0x00007e38u, 0x00004a62u, 0x000200f9u, 0x00004a64u, 0x000200f8u, 0x00004a64u, 0x000700f5u, + 0x00000009u, 0x000081c3u, 0x000081e0u, 0x000049c8u, 0x00008287u, 0x00004a63u, 0x000700f5u, 0x00000009u, + 0x000080ceu, 0x000080ebu, 0x000049c8u, 0x00008192u, 0x00004a63u, 0x000700f5u, 0x00000009u, 0x00007fd3u, + 0x00007ff0u, 0x000049c8u, 0x00008097u, 0x00004a63u, 0x000700f5u, 0x00000009u, 0x00007e67u, 0x00007e84u, + 0x000049c8u, 0x00007f2bu, 0x00004a63u, 0x000200f9u, 0x00004c81u, 0x000200f8u, 0x00004c81u, 0x000700f5u, + 0x00000009u, 0x000081c2u, 0x000081c3u, 0x00004a64u, 0x00008298u, 0x00004c80u, 0x000700f5u, 0x00000009u, + 0x000080cdu, 0x000080ceu, 0x00004a64u, 0x000081a0u, 0x00004c80u, 0x000700f5u, 0x00000009u, 0x00007fd2u, + 0x00007fd3u, 0x00004a64u, 0x000080a8u, 0x00004c80u, 0x000700f5u, 0x00000009u, 0x00007e66u, 0x00007e67u, + 0x00004a64u, 0x00007f3bu, 0x00004c80u, 0x000300f7u, 0x00004e14u, 0x00000000u, 0x000400fau, 0x00002282u, + 0x00004c83u, 0x00004d5cu, 0x000200f8u, 0x00004d5cu, 0x000300f7u, 0x00004e13u, 0x00000000u, 0x000400fau, + 0x000049aau, 0x00004d5eu, 0x00004dd1u, 0x000200f8u, 0x00004dd1u, 0x000300f7u, 0x00004e12u, 0x00000000u, + 0x000400fau, 0x000049a2u, 0x00004dd3u, 0x00004ddfu, 0x000200f8u, 0x00004ddfu, 0x000600a9u, 0x0000005du, + 0x0000bdedu, 0x00002288u, 0x00004970u, 0x00002288u, 0x000300f7u, 0x00004e11u, 0x00000000u, 0x000400fau, + 0x0000bdedu, 0x00004de7u, 0x00004e0fu, 0x000200f8u, 0x00004e0fu, 0x000200f9u, 0x00004e11u, 0x000200f8u, + 0x00004de7u, 0x000300f7u, 0x00004df1u, 0x00000000u, 0x000400fau, 0x000049acu, 0x00004deau, 0x00004defu, + 0x000200f8u, 0x00004defu, 0x000200f9u, 0x00004df1u, 0x000200f8u, 0x00004deau, 0x0007004fu, 0x0000005fu, + 0x00004decu, 0x00007de7u, 0x00007de7u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000005fu, 0x00004deeu, + 0x0000bdb5u, 0x00004decu, 0x000200f9u, 0x00004df1u, 0x000200f8u, 0x00004df1u, 0x000700f5u, 0x0000005fu, + 0x00007fcfu, 0x00004deeu, 0x00004deau, 0x00007de7u, 0x00004defu, 0x00050082u, 0x00000009u, 0x00004df8u, + 0x00007fd2u, 0x00007e66u, 0x00050051u, 0x00000008u, 0x00004dfau, 0x00007fcfu, 0x00000000u, 0x00070050u, + 0x00000009u, 0x00004dfbu, 0x00004dfau, 0x00004dfau, 0x00004dfau, 0x00004dfau, 0x00050084u, 0x00000009u, + 0x00004dfcu, 0x00004df8u, 0x00004dfbu, 0x00050082u, 0x00000009u, 0x00004dffu, 0x000080cdu, 0x00007e66u, + 0x00050051u, 0x00000008u, 0x00004e01u, 0x00007fcfu, 0x00000001u, 0x00070050u, 0x00000009u, 0x00004e02u, + 0x00004e01u, 0x00004e01u, 0x00004e01u, 0x00004e01u, 0x00050084u, 0x00000009u, 0x00004e03u, 0x00004dffu, + 0x00004e02u, 0x00050080u, 0x00000009u, 0x00004e05u, 0x00004dfcu, 0x00004e03u, 0x00050080u, 0x00000009u, + 0x00004e08u, 0x00004e05u, 0x0000bdb6u, 0x000500c3u, 0x00000009u, 0x00004e0bu, 0x00004e08u, 0x0000bdb7u, + 0x00050080u, 0x00000009u, 0x00004e0eu, 0x00004e0bu, 0x00007e66u, 0x000200f9u, 0x00004e11u, 0x000200f8u, + 0x00004e11u, 0x000700f5u, 0x00000009u, 0x000082fdu, 0x00004e0eu, 0x00004df1u, 0x00007e66u, 0x00004e0fu, + 0x000200f9u, 0x00004e12u, 0x000200f8u, 0x00004dd3u, 0x00050080u, 0x00000009u, 0x00004dd6u, 0x00007e66u, + 0x000080cdu, 0x00050080u, 0x00000009u, 0x00004dd8u, 0x00004dd6u, 0x00007fd2u, 0x00050080u, 0x00000009u, + 0x00004ddau, 0x00004dd8u, 0x000081c2u, 0x00050080u, 0x00000009u, 0x00004ddcu, 0x00004ddau, 0x0000bdb2u, + 0x000500c3u, 0x00000009u, 0x00004ddeu, 0x00004ddcu, 0x0000bdb2u, 0x000200f9u, 0x00004e12u, 0x000200f8u, + 0x00004e12u, 0x000700f5u, 0x00000009u, 0x000082fcu, 0x00004ddeu, 0x00004dd3u, 0x000082fdu, 0x00004e11u, + 0x000200f9u, 0x00004e13u, 0x000200f8u, 0x00004d5eu, 0x000300f7u, 0x00004dd0u, 0x00000000u, 0x000400fau, + 0x00002249u, 0x00004d60u, 0x00004dceu, 0x000200f8u, 0x00004dceu, 0x000200f9u, 0x00004dd0u, 0x000200f8u, + 0x00004d60u, 0x000300f7u, 0x00004dc6u, 0x00000000u, 0x000400fau, 0x00002288u, 0x00004d62u, 0x00004daau, + 0x000200f8u, 0x00004daau, 0x000300f7u, 0x00004db7u, 0x00000000u, 0x000400fau, 0x000049a4u, 0x00004db1u, + 0x00004db4u, 0x000200f8u, 0x00004db4u, 0x0007004fu, 0x0000005fu, 0x00004db6u, 0x00007e66u, 0x00007e66u, + 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004db7u, 0x000200f8u, 0x00004db1u, 0x0007004fu, 0x0000005fu, + 0x00004db3u, 0x000081c2u, 0x000081c2u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004db7u, 0x000200f8u, + 0x00004db7u, 0x000700f5u, 0x0000005fu, 0x000082bau, 0x00004db3u, 0x00004db1u, 0x00004db6u, 0x00004db4u, + 0x00050080u, 0x00000008u, 0x00004dbcu, 0x000049bdu, 0x0000497au, 0x000500afu, 0x0000005du, 0x00004dbdu, + 0x00004dbcu, 0x00000382u, 0x000300f7u, 0x00004dc4u, 0x00000000u, 0x000400fau, 0x00004dbdu, 0x00004dbeu, + 0x00004dc1u, 0x000200f8u, 0x00004dc1u, 0x0007004fu, 0x0000005fu, 0x00004dc3u, 0x00007e66u, 0x00007e66u, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004dc4u, 0x000200f8u, 0x00004dbeu, 0x0007004fu, 0x0000005fu, + 0x00004dc0u, 0x000081c2u, 0x000081c2u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004dc4u, 0x000200f8u, + 0x00004dc4u, 0x000700f5u, 0x0000005fu, 0x000082beu, 0x00004dc0u, 0x00004dbeu, 0x00004dc3u, 0x00004dc1u, + 0x000200f9u, 0x00004dc6u, 0x000200f8u, 0x00004d62u, 0x00050050u, 0x0000005fu, 0x00004d67u, 0x000049bdu, + 0x0000497au, 0x000500aau, 0x00000880u, 0x00004d68u, 0x00004d67u, 0x000013acu, 0x00050051u, 0x0000005du, + 0x00004d69u, 0x00004d68u, 0x00000000u, 0x00050051u, 0x0000005du, 0x00004d6au, 0x00004d68u, 0x00000001u, + 0x00060050u, 0x000003a6u, 0x00004d6bu, 0x00002273u, 0x00004d69u, 0x00004d6au, 0x0004009bu, 0x0000005du, + 0x00004d6cu, 0x00004d6bu, 0x000300f7u, 0x00004d8cu, 0x00000000u, 0x000400fau, 0x00004d6cu, 0x00004d6eu, + 0x00004d7eu, 0x000200f8u, 0x00004d7eu, 0x0007004fu, 0x0000005fu, 0x00004d84u, 0x00007e66u, 0x00007e66u, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00004d86u, 0x00007fd2u, 0x00007fd2u, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00004d88u, 0x000080cdu, 0x000080cdu, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x0000005fu, 0x00004d8au, 0x000081c2u, 0x000081c2u, 0x00000000u, 0x00000001u, 0x00050080u, + 0x00000008u, 0x00006007u, 0x000049bdu, 0x0000497au, 0x000500afu, 0x0000005du, 0x00006009u, 0x00006007u, + 0x00000382u, 0x00050050u, 0x00000880u, 0x0000600cu, 0x00006009u, 0x00006009u, 0x000600a9u, 0x0000005fu, + 0x0000600du, 0x0000600cu, 0x00004d8au, 0x00004d84u, 0x000300f7u, 0x00006017u, 0x00000000u, 0x000400fau, + 0x00006009u, 0x00006010u, 0x00006015u, 0x000200f8u, 0x00006015u, 0x000200f9u, 0x00006017u, 0x000200f8u, + 0x00006010u, 0x0007004fu, 0x0000005fu, 0x00006012u, 0x00004d67u, 0x00004d67u, 0x00000001u, 0x00000000u, + 0x00050082u, 0x0000005fu, 0x00006014u, 0x0000bdb5u, 0x00006012u, 0x000200f9u, 0x00006017u, 0x000200f8u, + 0x00006017u, 0x000700f5u, 0x0000005fu, 0x000082bfu, 0x00006014u, 0x00006010u, 0x00004d67u, 0x00006015u, + 0x00050082u, 0x0000005fu, 0x0000601eu, 0x00004d86u, 0x0000600du, 0x00050051u, 0x00000008u, 0x00006020u, + 0x000082bfu, 0x00000000u, 0x00050050u, 0x0000005fu, 0x00006021u, 0x00006020u, 0x00006020u, 0x00050084u, + 0x0000005fu, 0x00006022u, 0x0000601eu, 0x00006021u, 0x00050082u, 0x0000005fu, 0x00006025u, 0x00004d88u, + 0x0000600du, 0x00050051u, 0x00000008u, 0x00006027u, 0x000082bfu, 0x00000001u, 0x00050050u, 0x0000005fu, + 0x00006028u, 0x00006027u, 0x00006027u, 0x00050084u, 0x0000005fu, 0x00006029u, 0x00006025u, 0x00006028u, + 0x00050080u, 0x0000005fu, 0x0000602bu, 0x00006022u, 0x00006029u, 0x00050080u, 0x0000005fu, 0x0000602eu, + 0x0000602bu, 0x000013acu, 0x000500c3u, 0x0000005fu, 0x00006031u, 0x0000602eu, 0x0000bdabu, 0x00050080u, + 0x0000005fu, 0x00006034u, 0x00006031u, 0x0000600du, 0x000200f9u, 0x00004d8cu, 0x000200f8u, 0x00004d6eu, + 0x0007004fu, 0x0000005fu, 0x00004d70u, 0x00007e66u, 0x00007e66u, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x0000005fu, 0x00004d72u, 0x00007fd2u, 0x00007fd2u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000005fu, + 0x00004d73u, 0x00004d70u, 0x00004d72u, 0x0007004fu, 0x0000005fu, 0x00004d75u, 0x000081c2u, 0x000081c2u, + 0x00000000u, 0x00000001u, 0x00050080u, 0x0000005fu, 0x00004d76u, 0x00004d73u, 0x00004d75u, 0x0007004fu, + 0x0000005fu, 0x00004d78u, 0x000080cdu, 0x000080cdu, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000005fu, + 0x00004d79u, 0x00004d76u, 0x00004d78u, 0x00050080u, 0x0000005fu, 0x00004d7bu, 0x00004d79u, 0x0000bdb4u, + 0x000500c3u, 0x0000005fu, 0x00004d7du, 0x00004d7bu, 0x0000bdb4u, 0x000200f9u, 0x00004d8cu, 0x000200f8u, + 0x00004d8cu, 0x000700f5u, 0x0000005fu, 0x000082cdu, 0x00004d7du, 0x00004d6eu, 0x00006034u, 0x00006017u, + 0x000300f7u, 0x00004da9u, 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004d8eu, 0x00004d9eu, 0x000200f8u, + 0x00004d9eu, 0x0007004fu, 0x0000005fu, 0x00004da0u, 0x00007e66u, 0x00007e66u, 0x00000002u, 0x00000003u, + 0x0007004fu, 0x0000005fu, 0x00004da2u, 0x00007fd2u, 0x00007fd2u, 0x00000002u, 0x00000003u, 0x0007004fu, + 0x0000005fu, 0x00004da4u, 0x000080cdu, 0x000080cdu, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, + 0x00004da6u, 0x000081c2u, 0x000081c2u, 0x00000002u, 0x00000003u, 0x00050050u, 0x00000880u, 0x00006046u, + 0x000049a4u, 0x000049a4u, 0x000600a9u, 0x0000005fu, 0x00006047u, 0x00006046u, 0x00004da6u, 0x00004da0u, + 0x000300f7u, 0x00006051u, 0x00000000u, 0x000400fau, 0x000049a4u, 0x0000604au, 0x0000604fu, 0x000200f8u, + 0x0000604fu, 0x000200f9u, 0x00006051u, 0x000200f8u, 0x0000604au, 0x0007004fu, 0x0000005fu, 0x0000604cu, + 0x00007de7u, 0x00007de7u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000005fu, 0x0000604eu, 0x0000bdb5u, + 0x0000604cu, 0x000200f9u, 0x00006051u, 0x000200f8u, 0x00006051u, 0x000700f5u, 0x0000005fu, 0x000082cau, + 0x0000604eu, 0x0000604au, 0x00007de7u, 0x0000604fu, 0x00050082u, 0x0000005fu, 0x00006058u, 0x00004da2u, + 0x00006047u, 0x00050051u, 0x00000008u, 0x0000605au, 0x000082cau, 0x00000000u, 0x00050050u, 0x0000005fu, + 0x0000605bu, 0x0000605au, 0x0000605au, 0x00050084u, 0x0000005fu, 0x0000605cu, 0x00006058u, 0x0000605bu, + 0x00050082u, 0x0000005fu, 0x0000605fu, 0x00004da4u, 0x00006047u, 0x00050051u, 0x00000008u, 0x00006061u, + 0x000082cau, 0x00000001u, 0x00050050u, 0x0000005fu, 0x00006062u, 0x00006061u, 0x00006061u, 0x00050084u, + 0x0000005fu, 0x00006063u, 0x0000605fu, 0x00006062u, 0x00050080u, 0x0000005fu, 0x00006065u, 0x0000605cu, + 0x00006063u, 0x00050080u, 0x0000005fu, 0x00006068u, 0x00006065u, 0x000013acu, 0x000500c3u, 0x0000005fu, + 0x0000606bu, 0x00006068u, 0x0000bdabu, 0x00050080u, 0x0000005fu, 0x0000606eu, 0x0000606bu, 0x00006047u, + 0x000200f9u, 0x00004da9u, 0x000200f8u, 0x00004d8eu, 0x0007004fu, 0x0000005fu, 0x00004d90u, 0x00007e66u, + 0x00007e66u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, 0x00004d92u, 0x00007fd2u, 0x00007fd2u, + 0x00000002u, 0x00000003u, 0x00050080u, 0x0000005fu, 0x00004d93u, 0x00004d90u, 0x00004d92u, 0x0007004fu, + 0x0000005fu, 0x00004d95u, 0x000081c2u, 0x000081c2u, 0x00000002u, 0x00000003u, 0x00050080u, 0x0000005fu, + 0x00004d96u, 0x00004d93u, 0x00004d95u, 0x0007004fu, 0x0000005fu, 0x00004d98u, 0x000080cdu, 0x000080cdu, + 0x00000002u, 0x00000003u, 0x00050080u, 0x0000005fu, 0x00004d99u, 0x00004d96u, 0x00004d98u, 0x00050080u, + 0x0000005fu, 0x00004d9bu, 0x00004d99u, 0x0000bdb4u, 0x000500c3u, 0x0000005fu, 0x00004d9du, 0x00004d9bu, + 0x0000bdb4u, 0x000200f9u, 0x00004da9u, 0x000200f8u, 0x00004da9u, 0x000700f5u, 0x0000005fu, 0x000082d0u, + 0x00004d9du, 0x00004d8eu, 0x0000606eu, 0x00006051u, 0x000200f9u, 0x00004dc6u, 0x000200f8u, 0x00004dc6u, + 0x000700f5u, 0x0000005fu, 0x000082cfu, 0x000082d0u, 0x00004da9u, 0x000082bau, 0x00004dc4u, 0x000700f5u, + 0x0000005fu, 0x000082cbu, 0x000082cdu, 0x00004da9u, 0x000082beu, 0x00004dc4u, 0x00050051u, 0x00000008u, + 0x00004dc9u, 0x000082cbu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004dcau, 0x000082cbu, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00004dcbu, 0x000082cfu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004dccu, + 0x000082cfu, 0x00000001u, 0x00070050u, 0x00000009u, 0x00004dcdu, 0x00004dc9u, 0x00004dcau, 0x00004dcbu, + 0x00004dccu, 0x000200f9u, 0x00004dd0u, 0x000200f8u, 0x00004dd0u, 0x000700f5u, 0x00000009u, 0x000082fbu, + 0x00004dcdu, 0x00004dc6u, 0x00007e66u, 0x00004dceu, 0x000200f9u, 0x00004e13u, 0x000200f8u, 0x00004e13u, + 0x000700f5u, 0x00000009u, 0x000082fau, 0x000082fbu, 0x00004dd0u, 0x000082fcu, 0x00004e12u, 0x000200f9u, + 0x00004e14u, 0x000200f8u, 0x00004c83u, 0x000600cau, 0x00000009u, 0x00004c8au, 0x00007d8du, 0x00000208u, + 0x00000269u, 0x000300f7u, 0x00004d5bu, 0x00000000u, 0x000400fau, 0x00002249u, 0x00004c8cu, 0x00004d53u, + 0x000200f8u, 0x00004d53u, 0x00050051u, 0x00000008u, 0x00004d56u, 0x00004c8au, 0x00000002u, 0x00070050u, + 0x00000009u, 0x00004d5au, 0x00004d56u, 0x00004d56u, 0x00004d56u, 0x00004d56u, 0x000200f9u, 0x00004d5bu, + 0x000200f8u, 0x00004c8cu, 0x000300f7u, 0x00004c9bu, 0x00000000u, 0x000400fau, 0x000049aau, 0x00004c8eu, + 0x00004c99u, 0x000200f8u, 0x00004c99u, 0x000200f9u, 0x00004c9bu, 0x000200f8u, 0x00004c8eu, 0x00050050u, + 0x0000005fu, 0x00004c93u, 0x000049bdu, 0x0000497au, 0x000500aau, 0x00000880u, 0x00004c94u, 0x00004c93u, + 0x000013acu, 0x00050051u, 0x0000005du, 0x00004c95u, 0x00004c94u, 0x00000000u, 0x00050051u, 0x0000005du, + 0x00004c96u, 0x00004c94u, 0x00000001u, 0x00060050u, 0x000003a6u, 0x00004c97u, 0x00002273u, 0x00004c95u, + 0x00004c96u, 0x0004009bu, 0x0000005du, 0x00004c98u, 0x00004c97u, 0x000200f9u, 0x00004c9bu, 0x000200f8u, + 0x00004c9bu, 0x000700f5u, 0x0000005du, 0x000082d2u, 0x00004c98u, 0x00004c8eu, 0x000049a2u, 0x00004c99u, + 0x000300f7u, 0x00004cacu, 0x00000000u, 0x000400fau, 0x000049aau, 0x00004ca1u, 0x00004caau, 0x000200f8u, + 0x00004caau, 0x000200f9u, 0x00004cacu, 0x000200f8u, 0x00004ca1u, 0x00050080u, 0x00000008u, 0x00004ca5u, + 0x000049bdu, 0x0000497au, 0x000500afu, 0x0000005du, 0x00004ca6u, 0x00004ca5u, 0x00000382u, 0x000400a8u, + 0x0000005du, 0x00004ca8u, 0x000082d2u, 0x000500a7u, 0x0000005du, 0x00004ca9u, 0x00004ca6u, 0x00004ca8u, + 0x000200f9u, 0x00004cacu, 0x000200f8u, 0x00004cacu, 0x000700f5u, 0x0000005du, 0x000082d5u, 0x00004ca9u, + 0x00004ca1u, 0x000049acu, 0x00004caau, 0x000300f7u, 0x00004cb5u, 0x00000000u, 0x000400fau, 0x000082d5u, + 0x00004cafu, 0x00004cb2u, 0x000200f8u, 0x00004cb2u, 0x0007004fu, 0x0000005fu, 0x00004cb4u, 0x00004c8au, + 0x00004c8au, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004cb5u, 0x000200f8u, 0x00004cafu, 0x0007004fu, + 0x0000005fu, 0x00004cb1u, 0x00004c8au, 0x00004c8au, 0x00000001u, 0x00000000u, 0x000200f9u, 0x00004cb5u, + 0x000200f8u, 0x00004cb5u, 0x000700f5u, 0x0000005fu, 0x000082d6u, 0x00004cb1u, 0x00004cafu, 0x00004cb4u, + 0x00004cb2u, 0x000300f7u, 0x00004cbeu, 0x00000000u, 0x000400fau, 0x000049acu, 0x00004cb8u, 0x00004cbbu, + 0x000200f8u, 0x00004cbbu, 0x0007004fu, 0x0000005fu, 0x00004cbdu, 0x00004c8au, 0x00004c8au, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00004cbeu, 0x000200f8u, 0x00004cb8u, 0x0007004fu, 0x0000005fu, 0x00004cbau, + 0x00004c8au, 0x00004c8au, 0x00000001u, 0x00000000u, 0x000200f9u, 0x00004cbeu, 0x000200f8u, 0x00004cbeu, + 0x000700f5u, 0x0000005fu, 0x000082d7u, 0x00004cbau, 0x00004cb8u, 0x00004cbdu, 0x00004cbbu, 0x000300f7u, + 0x00004cfeu, 0x00000000u, 0x000400fau, 0x000082d2u, 0x00004cc1u, 0x00004cdfu, 0x000200f8u, 0x00004cdfu, + 0x000500a7u, 0x0000005du, 0x00004ce2u, 0x000082d5u, 0x000049aau, 0x000300f7u, 0x00004ce9u, 0x00000000u, + 0x000400fau, 0x00004ce2u, 0x00004ce3u, 0x00004ce6u, 0x000200f8u, 0x00004ce6u, 0x0007004fu, 0x0000005fu, + 0x00004ce8u, 0x00007e66u, 0x00007e66u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004ce9u, 0x000200f8u, + 0x00004ce3u, 0x0007004fu, 0x0000005fu, 0x00004ce5u, 0x000081c2u, 0x000081c2u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004ce9u, 0x000200f8u, 0x00004ce9u, 0x000700f5u, 0x0000005fu, 0x000082e0u, 0x00004ce5u, + 0x00004ce3u, 0x00004ce8u, 0x00004ce6u, 0x00050051u, 0x00000008u, 0x00004cecu, 0x000082d6u, 0x00000000u, + 0x0007004fu, 0x0000005fu, 0x00004ceeu, 0x00007fd2u, 0x00007fd2u, 0x00000000u, 0x00000001u, 0x00050082u, + 0x0000005fu, 0x00004cf0u, 0x00004ceeu, 0x000082e0u, 0x00050050u, 0x0000005fu, 0x00004cf1u, 0x00004cecu, + 0x00004cecu, 0x00050084u, 0x0000005fu, 0x00004cf2u, 0x00004cf1u, 0x00004cf0u, 0x00050051u, 0x00000008u, + 0x00004cf4u, 0x000082d6u, 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00004cf6u, 0x000080cdu, 0x000080cdu, + 0x00000000u, 0x00000001u, 0x00050082u, 0x0000005fu, 0x00004cf8u, 0x00004cf6u, 0x000082e0u, 0x00050050u, + 0x0000005fu, 0x00004cf9u, 0x00004cf4u, 0x00004cf4u, 0x00050084u, 0x0000005fu, 0x00004cfau, 0x00004cf9u, + 0x00004cf8u, 0x00050080u, 0x0000005fu, 0x00004cfbu, 0x00004cf2u, 0x00004cfau, 0x00050080u, 0x0000005fu, + 0x00004cfdu, 0x00004cfbu, 0x0000bdb9u, 0x000200f9u, 0x00004cfeu, 0x000200f8u, 0x00004cc1u, 0x00050051u, + 0x00000008u, 0x00004cc3u, 0x000082d6u, 0x00000000u, 0x0007004fu, 0x0000005fu, 0x00004cc5u, 0x000080cdu, + 0x000080cdu, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00004cc7u, 0x000081c2u, 0x000081c2u, + 0x00000000u, 0x00000001u, 0x00050082u, 0x0000005fu, 0x00004cc8u, 0x00004cc5u, 0x00004cc7u, 0x00050050u, + 0x0000005fu, 0x00004cc9u, 0x00004cc3u, 0x00004cc3u, 0x00050084u, 0x0000005fu, 0x00004ccau, 0x00004cc9u, + 0x00004cc8u, 0x00050051u, 0x00000008u, 0x00004cccu, 0x000082d6u, 0x00000001u, 0x0007004fu, 0x0000005fu, + 0x00004cceu, 0x00007fd2u, 0x00007fd2u, 0x00000000u, 0x00000001u, 0x00050082u, 0x0000005fu, 0x00004cd1u, + 0x00004cceu, 0x00004cc7u, 0x00050050u, 0x0000005fu, 0x00004cd2u, 0x00004cccu, 0x00004cccu, 0x00050084u, + 0x0000005fu, 0x00004cd3u, 0x00004cd2u, 0x00004cd1u, 0x00050080u, 0x0000005fu, 0x00004cd4u, 0x00004ccau, + 0x00004cd3u, 0x0007004fu, 0x0000005fu, 0x00004cd6u, 0x00007e66u, 0x00007e66u, 0x00000000u, 0x00000001u, + 0x00050082u, 0x0000005fu, 0x00004cd9u, 0x00004cd6u, 0x00004cc7u, 0x000500c4u, 0x0000005fu, 0x00004cdbu, + 0x00004cd9u, 0x0000bdb8u, 0x00050080u, 0x0000005fu, 0x00004cdcu, 0x00004cd4u, 0x00004cdbu, 0x00050080u, + 0x0000005fu, 0x00004cdeu, 0x00004cdcu, 0x0000bdb9u, 0x000200f9u, 0x00004cfeu, 0x000200f8u, 0x00004cfeu, + 0x000700f5u, 0x0000005fu, 0x000082f5u, 0x00004cdeu, 0x00004cc1u, 0x00004cfdu, 0x00004ce9u, 0x000300f7u, + 0x00004d3du, 0x00000000u, 0x000400fau, 0x000049a2u, 0x00004d00u, 0x00004d1eu, 0x000200f8u, 0x00004d1eu, + 0x000500a7u, 0x0000005du, 0x00004d21u, 0x000049acu, 0x000049aau, 0x000300f7u, 0x00004d28u, 0x00000000u, + 0x000400fau, 0x00004d21u, 0x00004d22u, 0x00004d25u, 0x000200f8u, 0x00004d25u, 0x0007004fu, 0x0000005fu, + 0x00004d27u, 0x00007e66u, 0x00007e66u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004d28u, 0x000200f8u, + 0x00004d22u, 0x0007004fu, 0x0000005fu, 0x00004d24u, 0x000081c2u, 0x000081c2u, 0x00000002u, 0x00000003u, + 0x000200f9u, 0x00004d28u, 0x000200f8u, 0x00004d28u, 0x000700f5u, 0x0000005fu, 0x000082efu, 0x00004d24u, + 0x00004d22u, 0x00004d27u, 0x00004d25u, 0x00050051u, 0x00000008u, 0x00004d2bu, 0x000082d7u, 0x00000000u, + 0x0007004fu, 0x0000005fu, 0x00004d2du, 0x00007fd2u, 0x00007fd2u, 0x00000002u, 0x00000003u, 0x00050082u, + 0x0000005fu, 0x00004d2fu, 0x00004d2du, 0x000082efu, 0x00050050u, 0x0000005fu, 0x00004d30u, 0x00004d2bu, + 0x00004d2bu, 0x00050084u, 0x0000005fu, 0x00004d31u, 0x00004d30u, 0x00004d2fu, 0x00050051u, 0x00000008u, + 0x00004d33u, 0x000082d7u, 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00004d35u, 0x000080cdu, 0x000080cdu, + 0x00000002u, 0x00000003u, 0x00050082u, 0x0000005fu, 0x00004d37u, 0x00004d35u, 0x000082efu, 0x00050050u, + 0x0000005fu, 0x00004d38u, 0x00004d33u, 0x00004d33u, 0x00050084u, 0x0000005fu, 0x00004d39u, 0x00004d38u, + 0x00004d37u, 0x00050080u, 0x0000005fu, 0x00004d3au, 0x00004d31u, 0x00004d39u, 0x00050080u, 0x0000005fu, + 0x00004d3cu, 0x00004d3au, 0x0000bdb9u, 0x000200f9u, 0x00004d3du, 0x000200f8u, 0x00004d00u, 0x00050051u, + 0x00000008u, 0x00004d02u, 0x000082d7u, 0x00000000u, 0x0007004fu, 0x0000005fu, 0x00004d04u, 0x000080cdu, + 0x000080cdu, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, 0x00004d06u, 0x000081c2u, 0x000081c2u, + 0x00000002u, 0x00000003u, 0x00050082u, 0x0000005fu, 0x00004d07u, 0x00004d04u, 0x00004d06u, 0x00050050u, + 0x0000005fu, 0x00004d08u, 0x00004d02u, 0x00004d02u, 0x00050084u, 0x0000005fu, 0x00004d09u, 0x00004d08u, + 0x00004d07u, 0x00050051u, 0x00000008u, 0x00004d0bu, 0x000082d7u, 0x00000001u, 0x0007004fu, 0x0000005fu, + 0x00004d0du, 0x00007fd2u, 0x00007fd2u, 0x00000002u, 0x00000003u, 0x00050082u, 0x0000005fu, 0x00004d10u, + 0x00004d0du, 0x00004d06u, 0x00050050u, 0x0000005fu, 0x00004d11u, 0x00004d0bu, 0x00004d0bu, 0x00050084u, + 0x0000005fu, 0x00004d12u, 0x00004d11u, 0x00004d10u, 0x00050080u, 0x0000005fu, 0x00004d13u, 0x00004d09u, + 0x00004d12u, 0x0007004fu, 0x0000005fu, 0x00004d15u, 0x00007e66u, 0x00007e66u, 0x00000002u, 0x00000003u, + 0x00050082u, 0x0000005fu, 0x00004d18u, 0x00004d15u, 0x00004d06u, 0x000500c4u, 0x0000005fu, 0x00004d1au, + 0x00004d18u, 0x0000bdb8u, 0x00050080u, 0x0000005fu, 0x00004d1bu, 0x00004d13u, 0x00004d1au, 0x00050080u, + 0x0000005fu, 0x00004d1du, 0x00004d1bu, 0x0000bdb9u, 0x000200f9u, 0x00004d3du, 0x000200f8u, 0x00004d3du, + 0x000700f5u, 0x0000005fu, 0x000082f7u, 0x00004d1du, 0x00004d00u, 0x00004d3cu, 0x00004d28u, 0x00050051u, + 0x00000008u, 0x00004d40u, 0x000082f5u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004d41u, 0x000082f5u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00004d42u, 0x000082f7u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00004d43u, 0x000082f7u, 0x00000001u, 0x00070050u, 0x00000009u, 0x00004d44u, 0x00004d40u, 0x00004d41u, + 0x00004d42u, 0x00004d43u, 0x000500c3u, 0x00000009u, 0x00004d47u, 0x00004d44u, 0x0000bdb3u, 0x00050051u, + 0x00000008u, 0x00004d49u, 0x00004c8au, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004d4bu, 0x00004d49u, + 0x00004d49u, 0x00004d49u, 0x00004d49u, 0x00050080u, 0x00000009u, 0x00004d4cu, 0x00004d47u, 0x00004d4bu, + 0x000200f9u, 0x00004d5bu, 0x000200f8u, 0x00004d5bu, 0x000700f5u, 0x00000009u, 0x000082f9u, 0x00004d4cu, + 0x00004d3du, 0x00004d5au, 0x00004d53u, 0x000200f9u, 0x00004e14u, 0x000200f8u, 0x00004e14u, 0x000700f5u, + 0x00000009u, 0x000082f8u, 0x000082f9u, 0x00004d5bu, 0x000082fau, 0x00004e13u, 0x000400a8u, 0x0000005du, + 0x00004e18u, 0x00002282u, 0x000500a7u, 0x0000005du, 0x00004e19u, 0x000023abu, 0x00004e18u, 0x000300f7u, + 0x00004e1eu, 0x00000000u, 0x000400fau, 0x00004e19u, 0x00004e1au, 0x00004e1eu, 0x000200f8u, 0x00004e1au, + 0x000600cau, 0x00000009u, 0x0000607du, 0x000082f8u, 0x00000208u, 0x00000269u, 0x00050051u, 0x00000008u, + 0x0000607fu, 0x0000607du, 0x00000002u, 0x00050051u, 0x00000008u, 0x00006081u, 0x00002a20u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00006083u, 0x0000607du, 0x00000001u, 0x00050084u, 0x00000008u, 0x00006084u, + 0x00006081u, 0x00006083u, 0x00050080u, 0x00000008u, 0x00006085u, 0x00006084u, 0x00000628u, 0x000500c3u, + 0x00000008u, 0x00006086u, 0x00006085u, 0x00000263u, 0x00050080u, 0x00000008u, 0x00006087u, 0x0000607fu, + 0x00006086u, 0x00050051u, 0x00000008u, 0x0000608bu, 0x00002a20u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x0000608du, 0x0000607du, 0x00000000u, 0x00050084u, 0x00000008u, 0x0000608eu, 0x0000608bu, 0x0000608du, + 0x00050051u, 0x00000008u, 0x00006090u, 0x00002a20u, 0x00000002u, 0x00050084u, 0x00000008u, 0x00006093u, + 0x00006090u, 0x00006083u, 0x00050080u, 0x00000008u, 0x00006094u, 0x0000608eu, 0x00006093u, 0x00050080u, + 0x00000008u, 0x00006095u, 0x00006094u, 0x00000628u, 0x000500c3u, 0x00000008u, 0x00006096u, 0x00006095u, + 0x00000263u, 0x00050080u, 0x00000008u, 0x00006097u, 0x0000607fu, 0x00006096u, 0x00050051u, 0x00000008u, + 0x0000609bu, 0x00002a20u, 0x00000003u, 0x00050084u, 0x00000008u, 0x0000609eu, 0x0000609bu, 0x0000608du, + 0x00050080u, 0x00000008u, 0x0000609fu, 0x0000609eu, 0x00000628u, 0x000500c3u, 0x00000008u, 0x000060a0u, + 0x0000609fu, 0x00000263u, 0x00050080u, 0x00000008u, 0x000060a1u, 0x0000607fu, 0x000060a0u, 0x00070050u, + 0x00000009u, 0x000060a8u, 0x00006087u, 0x00006097u, 0x000060a1u, 0x0000607fu, 0x000200f9u, 0x00004e1eu, + 0x000200f8u, 0x00004e1eu, 0x000700f5u, 0x00000009u, 0x000082feu, 0x000082f8u, 0x00004e14u, 0x000060a8u, + 0x00004e1au, 0x000200f9u, 0x000023c7u, 0x000200f8u, 0x000023adu, 0x000600cau, 0x00000009u, 0x0000478eu, + 0x00007d8du, 0x00000208u, 0x00000269u, 0x00050051u, 0x00000008u, 0x00004790u, 0x0000478eu, 0x00000002u, + 0x00050051u, 0x00000008u, 0x00004792u, 0x00002a20u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004794u, + 0x0000478eu, 0x00000001u, 0x00050084u, 0x00000008u, 0x00004795u, 0x00004792u, 0x00004794u, 0x00050080u, + 0x00000008u, 0x00004796u, 0x00004795u, 0x00000628u, 0x000500c3u, 0x00000008u, 0x00004797u, 0x00004796u, + 0x00000263u, 0x00050080u, 0x00000008u, 0x00004798u, 0x00004790u, 0x00004797u, 0x00050051u, 0x00000008u, + 0x0000479cu, 0x00002a20u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000479eu, 0x0000478eu, 0x00000000u, + 0x00050084u, 0x00000008u, 0x0000479fu, 0x0000479cu, 0x0000479eu, 0x00050051u, 0x00000008u, 0x000047a1u, + 0x00002a20u, 0x00000002u, 0x00050084u, 0x00000008u, 0x000047a4u, 0x000047a1u, 0x00004794u, 0x00050080u, + 0x00000008u, 0x000047a5u, 0x0000479fu, 0x000047a4u, 0x00050080u, 0x00000008u, 0x000047a6u, 0x000047a5u, + 0x00000628u, 0x000500c3u, 0x00000008u, 0x000047a7u, 0x000047a6u, 0x00000263u, 0x00050080u, 0x00000008u, + 0x000047a8u, 0x00004790u, 0x000047a7u, 0x00050051u, 0x00000008u, 0x000047acu, 0x00002a20u, 0x00000003u, + 0x00050084u, 0x00000008u, 0x000047afu, 0x000047acu, 0x0000479eu, 0x00050080u, 0x00000008u, 0x000047b0u, + 0x000047afu, 0x00000628u, 0x000500c3u, 0x00000008u, 0x000047b1u, 0x000047b0u, 0x00000263u, 0x00050080u, + 0x00000008u, 0x000047b2u, 0x00004790u, 0x000047b1u, 0x00070050u, 0x00000009u, 0x000047b9u, 0x00004798u, + 0x000047a8u, 0x000047b2u, 0x00004790u, 0x000200f9u, 0x000023c7u, 0x000200f8u, 0x000023c7u, 0x000700f5u, + 0x00000009u, 0x0000b865u, 0x000081e0u, 0x000023adu, 0x000081c2u, 0x00004e1eu, 0x000700f5u, 0x00000009u, + 0x0000b7bdu, 0x000080ebu, 0x000023adu, 0x000080cdu, 0x00004e1eu, 0x000700f5u, 0x00000009u, 0x0000b715u, + 0x00007ff0u, 0x000023adu, 0x00007fd2u, 0x00004e1eu, 0x000700f5u, 0x00000009u, 0x0000b66du, 0x00007e84u, + 0x000023adu, 0x00007e66u, 0x00004e1eu, 0x000700f5u, 0x00000009u, 0x00008633u, 0x000047b9u, 0x000023adu, + 0x000082feu, 0x00004e1eu, 0x000200f9u, 0x000023c8u, 0x000200f8u, 0x000023c8u, 0x000700f5u, 0x00000009u, + 0x0000b864u, 0x000081e0u, 0x000023a6u, 0x0000b865u, 0x000023c7u, 0x000700f5u, 0x00000009u, 0x0000b7bcu, + 0x000080ebu, 0x000023a6u, 0x0000b7bdu, 0x000023c7u, 0x000700f5u, 0x00000009u, 0x0000b714u, 0x00007ff0u, + 0x000023a6u, 0x0000b715u, 0x000023c7u, 0x000700f5u, 0x00000009u, 0x0000b66cu, 0x00007e84u, 0x000023a6u, + 0x0000b66du, 0x000023c7u, 0x000700f5u, 0x00000009u, 0x00008581u, 0x00008590u, 0x000023a6u, 0x00008633u, + 0x000023c7u, 0x000600a9u, 0x00000008u, 0x000023cbu, 0x00002264u, 0x00000217u, 0x00000208u, 0x000500c3u, + 0x00000008u, 0x000023ccu, 0x00007625u, 0x000023cbu, 0x000500c3u, 0x00000008u, 0x000023ceu, 0x000024d0u, + 0x0000021au, 0x000500c7u, 0x00000008u, 0x000023d0u, 0x000024d0u, 0x0000021du, 0x000500b1u, 0x0000005du, + 0x000060aeu, 0x000023ceu, 0x0000021au, 0x000300f7u, 0x000060c1u, 0x00000000u, 0x000400fau, 0x000060aeu, + 0x000060afu, 0x000060bau, 0x000200f8u, 0x000060bau, 0x000500aau, 0x0000005du, 0x000060bcu, 0x000023ceu, + 0x0000021au, 0x000300f7u, 0x000060c0u, 0x00000000u, 0x000400fau, 0x000060bcu, 0x000060bdu, 0x000060bfu, + 0x000200f8u, 0x000060bfu, 0x000200f9u, 0x000060c0u, 0x000200f8u, 0x000060bdu, 0x000500c7u, 0x00000008u, + 0x000060e9u, 0x00008400u, 0x0000038bu, 0x000200f9u, 0x000060c0u, 0x000200f8u, 0x000060c0u, 0x000700f5u, + 0x00000008u, 0x0000850au, 0x000060e9u, 0x000060bdu, 0x00000208u, 0x000060bfu, 0x000200f9u, 0x000060c1u, + 0x000200f8u, 0x000060afu, 0x000500c7u, 0x00000008u, 0x000060b2u, 0x000023ccu, 0x0000021du, 0x00050084u, + 0x00000008u, 0x000060b3u, 0x000060b2u, 0x00000220u, 0x000500c7u, 0x00000008u, 0x000060b5u, 0x00007627u, + 0x0000021du, 0x00050080u, 0x00000008u, 0x000060b6u, 0x000060b3u, 0x000060b5u, 0x0003003eu, 0x000060a9u, + 0x000003cdu, 0x00060041u, 0x0000003eu, 0x000060b7u, 0x000060a9u, 0x000023ceu, 0x000060b6u, 0x0004003du, + 0x00000008u, 0x000060b8u, 0x000060b7u, 0x00050084u, 0x00000008u, 0x000060b9u, 0x000060b8u, 0x000003d9u, + 0x000200f9u, 0x000060c1u, 0x000200f8u, 0x000060c1u, 0x000700f5u, 0x00000008u, 0x00008509u, 0x000060b9u, + 0x000060afu, 0x0000850au, 0x000060c0u, 0x000500aau, 0x0000005du, 0x000060c3u, 0x000023d0u, 0x0000021du, + 0x000300f7u, 0x000060e5u, 0x00000000u, 0x000400fau, 0x000060c3u, 0x000060c4u, 0x000060c5u, 0x000200f8u, + 0x000060c5u, 0x000500aau, 0x0000005du, 0x000060c7u, 0x000023d0u, 0x0000021au, 0x000300f7u, 0x000060e4u, + 0x00000000u, 0x000400fau, 0x000060c7u, 0x000060c8u, 0x000060cau, 0x000200f8u, 0x000060cau, 0x000500afu, + 0x0000005du, 0x000060ccu, 0x000023ceu, 0x0000021au, 0x000300f7u, 0x000060dbu, 0x00000000u, 0x000400fau, + 0x000060ccu, 0x000060cdu, 0x000060d8u, 0x000200f8u, 0x000060d8u, 0x000500c7u, 0x00000008u, 0x000060dau, + 0x00008509u, 0x00000229u, 0x000200f9u, 0x000060dbu, 0x000200f8u, 0x000060cdu, 0x000500c7u, 0x00000008u, + 0x000060cfu, 0x000023ceu, 0x00000217u, 0x000500c7u, 0x00000008u, 0x000060d1u, 0x000023ccu, 0x0000021du, + 0x00050084u, 0x00000008u, 0x000060d2u, 0x000060d1u, 0x00000220u, 0x000500c7u, 0x00000008u, 0x000060d4u, + 0x00007627u, 0x0000021du, 0x00050080u, 0x00000008u, 0x000060d5u, 0x000060d2u, 0x000060d4u, 0x0003003eu, + 0x000060abu, 0x000003cdu, 0x00060041u, 0x0000003eu, 0x000060d6u, 0x000060abu, 0x000060cfu, 0x000060d5u, + 0x0004003du, 0x00000008u, 0x000060d7u, 0x000060d6u, 0x000200f9u, 0x000060dbu, 0x000200f8u, 0x000060dbu, + 0x000700f5u, 0x00000008u, 0x0000850bu, 0x000060d7u, 0x000060cdu, 0x000060dau, 0x000060d8u, 0x000500aau, + 0x0000005du, 0x000060deu, 0x000023d0u, 0x00000217u, 0x000300f7u, 0x000060e3u, 0x00000000u, 0x000400fau, + 0x000060deu, 0x000060dfu, 0x000060e3u, 0x000200f8u, 0x000060dfu, 0x000400c8u, 0x00000008u, 0x000060e1u, + 0x0000850bu, 0x000500c7u, 0x00000008u, 0x000060e2u, 0x000060e1u, 0x00000229u, 0x000200f9u, 0x000060e3u, + 0x000200f8u, 0x000060e3u, 0x000700f5u, 0x00000008u, 0x00008514u, 0x0000850bu, 0x000060dbu, 0x000060e2u, + 0x000060dfu, 0x000200f9u, 0x000060e4u, 0x000200f8u, 0x000060c8u, 0x000500c7u, 0x00000008u, 0x000060edu, + 0x00008400u, 0x00000229u, 0x000200f9u, 0x000060e4u, 0x000200f8u, 0x000060e4u, 0x000700f5u, 0x00000008u, + 0x00008513u, 0x000060edu, 0x000060c8u, 0x00008514u, 0x000060e3u, 0x000200f9u, 0x000060e5u, 0x000200f8u, + 0x000060c4u, 0x000200f9u, 0x000060e5u, 0x000200f8u, 0x000060e5u, 0x000700f5u, 0x00000008u, 0x00008512u, + 0x00000208u, 0x000060c4u, 0x00008513u, 0x000060e4u, 0x000300f7u, 0x00002443u, 0x00000000u, 0x000400fau, + 0x00002261u, 0x000023d6u, 0x00002424u, 0x000200f8u, 0x00002424u, 0x000500c7u, 0x00000008u, 0x00006446u, + 0x00008400u, 0x00000229u, 0x000500c4u, 0x00000008u, 0x00006447u, 0x00006446u, 0x00000226u, 0x000500c5u, + 0x00000008u, 0x00006448u, 0x00006447u, 0x00000382u, 0x00050051u, 0x00000008u, 0x00006465u, 0x000024c5u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00006467u, 0x000024cau, 0x00000000u, 0x000300f7u, 0x000064c0u, + 0x00000000u, 0x000f00fbu, 0x00006465u, 0x000064a7u, 0x00000000u, 0x000064abu, 0x00000001u, 0x000064afu, + 0x00000002u, 0x000064b3u, 0x00000004u, 0x000064b7u, 0x00000007u, 0x000064bbu, 0x00000006u, 0x000064bfu, + 0x000200f8u, 0x000064bfu, 0x000200f9u, 0x000064c0u, 0x000200f8u, 0x000064bbu, 0x00060050u, 0x0000003cu, + 0x000064beu, 0x00006448u, 0x00006448u, 0x00006448u, 0x000200f9u, 0x000064c0u, 0x000200f8u, 0x000064b7u, + 0x0008004fu, 0x0000003cu, 0x000064bau, 0x00002a7bu, 0x00002a7bu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000064c0u, 0x000200f8u, 0x000064b3u, 0x0008004fu, 0x0000003cu, 0x000064b6u, 0x00008581u, + 0x00008581u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000064c0u, 0x000200f8u, 0x000064afu, + 0x0008004fu, 0x0000003cu, 0x000064b2u, 0x00007d8du, 0x00007d8du, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000064c0u, 0x000200f8u, 0x000064abu, 0x000200f9u, 0x000064c0u, 0x000200f8u, 0x000064a7u, + 0x0008004fu, 0x0000003cu, 0x000064aau, 0x000029f1u, 0x000029f1u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000064c0u, 0x000200f8u, 0x000064c0u, 0x001100f5u, 0x0000003cu, 0x00008860u, 0x000064aau, + 0x000064a7u, 0x0000093au, 0x000064abu, 0x000064b2u, 0x000064afu, 0x000064b6u, 0x000064b3u, 0x000064bau, + 0x000064b7u, 0x000064beu, 0x000064bbu, 0x00001a64u, 0x000064bfu, 0x000300f7u, 0x000064d2u, 0x00000000u, + 0x000d00fbu, 0x00006467u, 0x000064c2u, 0x00000000u, 0x000064c5u, 0x00000001u, 0x000064c8u, 0x00000002u, + 0x000064cbu, 0x00000004u, 0x000064ceu, 0x00000006u, 0x000064d1u, 0x000200f8u, 0x000064d1u, 0x000200f9u, + 0x000064d2u, 0x000200f8u, 0x000064ceu, 0x00050051u, 0x00000008u, 0x000064d0u, 0x00002a7bu, 0x00000003u, + 0x000200f9u, 0x000064d2u, 0x000200f8u, 0x000064cbu, 0x00050051u, 0x00000008u, 0x000064cdu, 0x00008581u, + 0x00000003u, 0x000200f9u, 0x000064d2u, 0x000200f8u, 0x000064c8u, 0x00050051u, 0x00000008u, 0x000064cau, + 0x00007d8du, 0x00000003u, 0x000200f9u, 0x000064d2u, 0x000200f8u, 0x000064c5u, 0x000200f9u, 0x000064d2u, + 0x000200f8u, 0x000064c2u, 0x00050051u, 0x00000008u, 0x000064c4u, 0x000029f1u, 0x00000003u, 0x000200f9u, + 0x000064d2u, 0x000200f8u, 0x000064d2u, 0x000f00f5u, 0x00000008u, 0x00008861u, 0x000064c4u, 0x000064c2u, + 0x00000208u, 0x000064c5u, 0x000064cau, 0x000064c8u, 0x000064cdu, 0x000064cbu, 0x000064d0u, 0x000064ceu, + 0x00001a63u, 0x000064d1u, 0x00050051u, 0x00000008u, 0x000064d5u, 0x00008860u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000064d6u, 0x00008860u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000064d7u, 0x00008860u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000064d8u, 0x000064d5u, 0x000064d6u, 0x000064d7u, 0x00008861u, + 0x00050051u, 0x00000008u, 0x0000646bu, 0x000024c5u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000646du, + 0x000024cau, 0x00000001u, 0x000300f7u, 0x000064fau, 0x00000000u, 0x000d00fbu, 0x0000646bu, 0x000064deu, + 0x00000000u, 0x000064e2u, 0x00000001u, 0x000064e6u, 0x00000002u, 0x000064eau, 0x00000004u, 0x000064eeu, + 0x00000007u, 0x000064f2u, 0x000200f8u, 0x000064f2u, 0x00050051u, 0x00000008u, 0x000064f4u, 0x000029f6u, + 0x00000001u, 0x000500c4u, 0x00000008u, 0x000064f5u, 0x000064f4u, 0x00000263u, 0x00050051u, 0x00000008u, + 0x000064f7u, 0x000029f6u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x000064f8u, 0x000064f5u, 0x000064f7u, + 0x00060050u, 0x0000003cu, 0x000064f9u, 0x000064f8u, 0x000064f8u, 0x000064f8u, 0x000200f9u, 0x000064fau, + 0x000200f8u, 0x000064eeu, 0x0008004fu, 0x0000003cu, 0x000064f1u, 0x00002a7bu, 0x00002a7bu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x000064fau, 0x000200f8u, 0x000064eau, 0x0008004fu, 0x0000003cu, + 0x000064edu, 0x00008581u, 0x00008581u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000064fau, + 0x000200f8u, 0x000064e6u, 0x0008004fu, 0x0000003cu, 0x000064e9u, 0x00007d8du, 0x00007d8du, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x000064fau, 0x000200f8u, 0x000064e2u, 0x000200f9u, 0x000064fau, + 0x000200f8u, 0x000064deu, 0x0008004fu, 0x0000003cu, 0x000064e1u, 0x000029f6u, 0x000029f6u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x000064fau, 0x000200f8u, 0x000064fau, 0x000f00f5u, 0x0000003cu, + 0x00008863u, 0x000064e1u, 0x000064deu, 0x0000093au, 0x000064e2u, 0x000064e9u, 0x000064e6u, 0x000064edu, + 0x000064eau, 0x000064f1u, 0x000064eeu, 0x000064f9u, 0x000064f2u, 0x000300f7u, 0x0000650cu, 0x00000000u, + 0x000d00fbu, 0x0000646du, 0x000064fcu, 0x00000000u, 0x000064ffu, 0x00000001u, 0x00006502u, 0x00000002u, + 0x00006505u, 0x00000004u, 0x00006508u, 0x00000006u, 0x0000650bu, 0x000200f8u, 0x0000650bu, 0x000200f9u, + 0x0000650cu, 0x000200f8u, 0x00006508u, 0x00050051u, 0x00000008u, 0x0000650au, 0x00002a7bu, 0x00000003u, + 0x000200f9u, 0x0000650cu, 0x000200f8u, 0x00006505u, 0x00050051u, 0x00000008u, 0x00006507u, 0x00008581u, + 0x00000003u, 0x000200f9u, 0x0000650cu, 0x000200f8u, 0x00006502u, 0x00050051u, 0x00000008u, 0x00006504u, + 0x00007d8du, 0x00000003u, 0x000200f9u, 0x0000650cu, 0x000200f8u, 0x000064ffu, 0x000200f9u, 0x0000650cu, + 0x000200f8u, 0x000064fcu, 0x00050051u, 0x00000008u, 0x000064feu, 0x000029f6u, 0x00000003u, 0x000200f9u, + 0x0000650cu, 0x000200f8u, 0x0000650cu, 0x000f00f5u, 0x00000008u, 0x00008864u, 0x000064feu, 0x000064fcu, + 0x00000208u, 0x000064ffu, 0x00006504u, 0x00006502u, 0x00006507u, 0x00006505u, 0x0000650au, 0x00006508u, + 0x00001a63u, 0x0000650bu, 0x00050051u, 0x00000008u, 0x0000650fu, 0x00008863u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00006510u, 0x00008863u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00006511u, 0x00008863u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00006512u, 0x0000650fu, 0x00006510u, 0x00006511u, 0x00008864u, + 0x00050051u, 0x00000008u, 0x00006471u, 0x000024c5u, 0x00000002u, 0x00050051u, 0x00000008u, 0x00006473u, + 0x000024cau, 0x00000002u, 0x000300f7u, 0x00006548u, 0x00000000u, 0x001700fbu, 0x00006471u, 0x00006518u, + 0x00000000u, 0x0000651cu, 0x00000007u, 0x00006520u, 0x00000001u, 0x00006524u, 0x00000002u, 0x00006528u, + 0x00000004u, 0x0000652cu, 0x00000008u, 0x00006530u, 0x00000009u, 0x00006534u, 0x0000000bu, 0x00006538u, + 0x0000000du, 0x0000653cu, 0x0000000fu, 0x00006540u, 0x000200f8u, 0x00006540u, 0x00050051u, 0x00000008u, + 0x00006542u, 0x000029fbu, 0x00000001u, 0x000500c4u, 0x00000008u, 0x00006543u, 0x00006542u, 0x00000263u, + 0x00050051u, 0x00000008u, 0x00006545u, 0x000029fbu, 0x00000002u, 0x000500c5u, 0x00000008u, 0x00006546u, + 0x00006543u, 0x00006545u, 0x00060050u, 0x0000003cu, 0x00006547u, 0x00006546u, 0x00006546u, 0x00006546u, + 0x000200f9u, 0x00006548u, 0x000200f8u, 0x0000653cu, 0x00060050u, 0x0000003cu, 0x0000653fu, 0x0000863du, + 0x0000863du, 0x0000863du, 0x000200f9u, 0x00006548u, 0x000200f8u, 0x00006538u, 0x0008004fu, 0x0000003cu, + 0x0000653bu, 0x00002a7bu, 0x00002a7bu, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x00006548u, + 0x000200f8u, 0x00006534u, 0x0008004fu, 0x0000003cu, 0x00006537u, 0x00008581u, 0x00008581u, 0x00000003u, + 0x00000003u, 0x00000003u, 0x000200f9u, 0x00006548u, 0x000200f8u, 0x00006530u, 0x0008004fu, 0x0000003cu, + 0x00006533u, 0x00007d8du, 0x00007d8du, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x00006548u, + 0x000200f8u, 0x0000652cu, 0x0008004fu, 0x0000003cu, 0x0000652fu, 0x00002a7bu, 0x00002a7bu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006548u, 0x000200f8u, 0x00006528u, 0x0008004fu, 0x0000003cu, + 0x0000652bu, 0x00008581u, 0x00008581u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006548u, + 0x000200f8u, 0x00006524u, 0x0008004fu, 0x0000003cu, 0x00006527u, 0x00007d8du, 0x00007d8du, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006548u, 0x000200f8u, 0x00006520u, 0x000200f9u, 0x00006548u, + 0x000200f8u, 0x0000651cu, 0x000200f9u, 0x00006548u, 0x000200f8u, 0x00006518u, 0x0008004fu, 0x0000003cu, + 0x0000651bu, 0x000029fbu, 0x000029fbu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006548u, + 0x000200f8u, 0x00006548u, 0x001900f5u, 0x0000003cu, 0x00008866u, 0x0000651bu, 0x00006518u, 0x0000093au, + 0x0000651cu, 0x0000093au, 0x00006520u, 0x00006527u, 0x00006524u, 0x0000652bu, 0x00006528u, 0x0000652fu, + 0x0000652cu, 0x00006533u, 0x00006530u, 0x00006537u, 0x00006534u, 0x0000653bu, 0x00006538u, 0x0000653fu, + 0x0000653cu, 0x00006547u, 0x00006540u, 0x000300f7u, 0x00006559u, 0x00000000u, 0x000b00fbu, 0x00006473u, + 0x0000654au, 0x00000000u, 0x0000654du, 0x00000001u, 0x00006550u, 0x00000002u, 0x00006553u, 0x00000004u, + 0x00006556u, 0x000200f8u, 0x00006556u, 0x00050051u, 0x00000008u, 0x00006558u, 0x00002a7bu, 0x00000003u, + 0x000200f9u, 0x00006559u, 0x000200f8u, 0x00006553u, 0x00050051u, 0x00000008u, 0x00006555u, 0x00008581u, + 0x00000003u, 0x000200f9u, 0x00006559u, 0x000200f8u, 0x00006550u, 0x00050051u, 0x00000008u, 0x00006552u, + 0x00007d8du, 0x00000003u, 0x000200f9u, 0x00006559u, 0x000200f8u, 0x0000654du, 0x000200f9u, 0x00006559u, + 0x000200f8u, 0x0000654au, 0x00050051u, 0x00000008u, 0x0000654cu, 0x000029fbu, 0x00000003u, 0x000200f9u, + 0x00006559u, 0x000200f8u, 0x00006559u, 0x000d00f5u, 0x00000008u, 0x00008867u, 0x0000654cu, 0x0000654au, + 0x0000863du, 0x0000654du, 0x00006552u, 0x00006550u, 0x00006555u, 0x00006553u, 0x00006558u, 0x00006556u, + 0x00050051u, 0x00000008u, 0x0000655cu, 0x00008866u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000655du, + 0x00008866u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000655eu, 0x00008866u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x0000655fu, 0x0000655cu, 0x0000655du, 0x0000655eu, 0x00008867u, 0x00050051u, 0x00000008u, + 0x00006477u, 0x000024c5u, 0x00000003u, 0x00050051u, 0x00000008u, 0x00006479u, 0x000024cau, 0x00000003u, + 0x000300f7u, 0x0000657au, 0x00000000u, 0x000d00fbu, 0x00006477u, 0x00006565u, 0x00000000u, 0x00006569u, + 0x00000001u, 0x0000656du, 0x00000002u, 0x00006571u, 0x00000004u, 0x00006575u, 0x00000006u, 0x00006579u, + 0x000200f8u, 0x00006579u, 0x000200f9u, 0x0000657au, 0x000200f8u, 0x00006575u, 0x0008004fu, 0x0000003cu, + 0x00006578u, 0x00002a7bu, 0x00002a7bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000657au, + 0x000200f8u, 0x00006571u, 0x0008004fu, 0x0000003cu, 0x00006574u, 0x00008581u, 0x00008581u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000657au, 0x000200f8u, 0x0000656du, 0x0008004fu, 0x0000003cu, + 0x00006570u, 0x00007d8du, 0x00007d8du, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000657au, + 0x000200f8u, 0x00006569u, 0x000200f9u, 0x0000657au, 0x000200f8u, 0x00006565u, 0x0008004fu, 0x0000003cu, + 0x00006568u, 0x00002a00u, 0x00002a00u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000657au, + 0x000200f8u, 0x0000657au, 0x000f00f5u, 0x0000003cu, 0x00008869u, 0x00006568u, 0x00006565u, 0x0000093au, + 0x00006569u, 0x00006570u, 0x0000656du, 0x00006574u, 0x00006571u, 0x00006578u, 0x00006575u, 0x00001a64u, + 0x00006579u, 0x000300f7u, 0x0000658cu, 0x00000000u, 0x000d00fbu, 0x00006479u, 0x0000657cu, 0x00000000u, + 0x0000657fu, 0x00000001u, 0x00006582u, 0x00000002u, 0x00006585u, 0x00000004u, 0x00006588u, 0x00000006u, + 0x0000658bu, 0x000200f8u, 0x0000658bu, 0x000200f9u, 0x0000658cu, 0x000200f8u, 0x00006588u, 0x00050051u, + 0x00000008u, 0x0000658au, 0x00002a7bu, 0x00000003u, 0x000200f9u, 0x0000658cu, 0x000200f8u, 0x00006585u, + 0x00050051u, 0x00000008u, 0x00006587u, 0x00008581u, 0x00000003u, 0x000200f9u, 0x0000658cu, 0x000200f8u, + 0x00006582u, 0x00050051u, 0x00000008u, 0x00006584u, 0x00007d8du, 0x00000003u, 0x000200f9u, 0x0000658cu, + 0x000200f8u, 0x0000657fu, 0x000200f9u, 0x0000658cu, 0x000200f8u, 0x0000657cu, 0x00050051u, 0x00000008u, + 0x0000657eu, 0x00002a00u, 0x00000003u, 0x000200f9u, 0x0000658cu, 0x000200f8u, 0x0000658cu, 0x000f00f5u, + 0x00000008u, 0x0000886au, 0x0000657eu, 0x0000657cu, 0x00000208u, 0x0000657fu, 0x00006584u, 0x00006582u, + 0x00006587u, 0x00006585u, 0x0000658au, 0x00006588u, 0x00001a63u, 0x0000658bu, 0x00050051u, 0x00000008u, + 0x0000658fu, 0x00008869u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006590u, 0x00008869u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00006591u, 0x00008869u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006592u, + 0x0000658fu, 0x00006590u, 0x00006591u, 0x0000886au, 0x000600cau, 0x00000009u, 0x0000659au, 0x0000655fu, + 0x00000208u, 0x00000269u, 0x00050082u, 0x00000009u, 0x000065bcu, 0x000064d8u, 0x0000bda8u, 0x000600cau, + 0x00000009u, 0x000065bdu, 0x000065bcu, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x000065bfu, + 0x000065bdu, 0x0000bda8u, 0x00050082u, 0x00000009u, 0x000065c4u, 0x00006512u, 0x0000bda8u, 0x000600cau, + 0x00000009u, 0x000065c5u, 0x000065c4u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x000065c7u, + 0x000065c5u, 0x0000bda8u, 0x00050082u, 0x00000009u, 0x000065ccu, 0x00006592u, 0x0000bda8u, 0x000600cau, + 0x00000009u, 0x000065cdu, 0x000065ccu, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x000065cfu, + 0x000065cdu, 0x0000bda8u, 0x00050082u, 0x00000009u, 0x000065a3u, 0x000065bfu, 0x000065c7u, 0x00050084u, + 0x00000009u, 0x000065a5u, 0x000065a3u, 0x0000659au, 0x00050080u, 0x00000009u, 0x000065a8u, 0x000065a5u, + 0x0000bda8u, 0x000500c3u, 0x00000009u, 0x000065abu, 0x000065a8u, 0x0000bdb3u, 0x00050080u, 0x00000009u, + 0x000065b7u, 0x000065abu, 0x000065cfu, 0x00050082u, 0x00000009u, 0x000065d4u, 0x000065b7u, 0x0000bda8u, + 0x000600cau, 0x00000009u, 0x000065d6u, 0x000065d4u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, + 0x000065d9u, 0x000065d6u, 0x0000bda8u, 0x0008000cu, 0x00000009u, 0x000065dbu, 0x00000001u, 0x0000002du, + 0x000065d9u, 0x00000616u, 0x00000af5u, 0x00050051u, 0x00000008u, 0x00006483u, 0x000065dbu, 0x00000003u, + 0x00050080u, 0x00000008u, 0x00006486u, 0x00006483u, 0x00000217u, 0x000500c3u, 0x00000008u, 0x00006487u, + 0x00006486u, 0x00000263u, 0x00050080u, 0x00000008u, 0x00006488u, 0x00006483u, 0x00006487u, 0x000300f7u, + 0x00006495u, 0x00000000u, 0x000400fau, 0x0000224cu, 0x0000648au, 0x00006492u, 0x000200f8u, 0x00006492u, + 0x000500c4u, 0x00000008u, 0x00006494u, 0x000022f2u, 0x00000223u, 0x000200f9u, 0x00006495u, 0x000200f8u, + 0x0000648au, 0x00050084u, 0x00000008u, 0x0000648du, 0x00006488u, 0x000022f2u, 0x00050080u, 0x00000008u, + 0x0000648eu, 0x0000648du, 0x00000220u, 0x000500c3u, 0x00000008u, 0x0000648fu, 0x0000648eu, 0x0000021du, + 0x000500c3u, 0x00000008u, 0x00006491u, 0x0000648fu, 0x00000223u, 0x000200f9u, 0x00006495u, 0x000200f8u, + 0x00006495u, 0x000700f5u, 0x00000008u, 0x00008879u, 0x00006491u, 0x0000648au, 0x000022f2u, 0x00006492u, + 0x000700f5u, 0x00000008u, 0x00008874u, 0x0000648fu, 0x0000648au, 0x00006494u, 0x00006492u, 0x000300f7u, + 0x0000649du, 0x00000000u, 0x000400fau, 0x0000224fu, 0x00006497u, 0x00006499u, 0x000200f8u, 0x00006499u, + 0x00050080u, 0x00000008u, 0x0000649cu, 0x00006488u, 0x00008512u, 0x000200f9u, 0x0000649du, 0x000200f8u, + 0x00006497u, 0x000200f9u, 0x0000649du, 0x000200f8u, 0x0000649du, 0x000700f5u, 0x00000008u, 0x00008875u, + 0x00008874u, 0x00006497u, 0x0000649cu, 0x00006499u, 0x0008000cu, 0x00000008u, 0x0000649fu, 0x00000001u, + 0x0000002du, 0x00008875u, 0x00000208u, 0x00000390u, 0x00050051u, 0x00000008u, 0x0000243cu, 0x000065dbu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x0000243du, 0x000065dbu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x0000243eu, 0x000065dbu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00002440u, 0x0000243cu, 0x0000243du, + 0x0000243eu, 0x0000649fu, 0x000200f9u, 0x00002443u, 0x000200f8u, 0x000023d6u, 0x000500c7u, 0x00000008u, + 0x000060f1u, 0x00008400u, 0x00000229u, 0x000500c4u, 0x00000008u, 0x000060f2u, 0x000060f1u, 0x00000226u, + 0x000500c5u, 0x00000008u, 0x000060f3u, 0x000060f2u, 0x00000382u, 0x00050051u, 0x00000008u, 0x00006111u, + 0x000024bbu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006113u, 0x000024c0u, 0x00000000u, 0x000300f7u, + 0x0000616cu, 0x00000000u, 0x000f00fbu, 0x00006111u, 0x00006153u, 0x00000000u, 0x00006157u, 0x00000001u, + 0x0000615bu, 0x00000002u, 0x0000615fu, 0x00000004u, 0x00006163u, 0x00000007u, 0x00006167u, 0x00000006u, + 0x0000616bu, 0x000200f8u, 0x0000616bu, 0x000200f9u, 0x0000616cu, 0x000200f8u, 0x00006167u, 0x00060050u, + 0x0000003cu, 0x0000616au, 0x000060f3u, 0x000060f3u, 0x000060f3u, 0x000200f9u, 0x0000616cu, 0x000200f8u, + 0x00006163u, 0x0008004fu, 0x0000003cu, 0x00006166u, 0x00002a7bu, 0x00002a7bu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x0000616cu, 0x000200f8u, 0x0000615fu, 0x0008004fu, 0x0000003cu, 0x00006162u, + 0x00008581u, 0x00008581u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000616cu, 0x000200f8u, + 0x0000615bu, 0x0008004fu, 0x0000003cu, 0x0000615eu, 0x00007d8du, 0x00007d8du, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x0000616cu, 0x000200f8u, 0x00006157u, 0x000200f9u, 0x0000616cu, 0x000200f8u, + 0x00006153u, 0x0008004fu, 0x0000003cu, 0x00006156u, 0x000029ddu, 0x000029ddu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x0000616cu, 0x000200f8u, 0x0000616cu, 0x001100f5u, 0x0000003cu, 0x0000887bu, + 0x00006156u, 0x00006153u, 0x0000093au, 0x00006157u, 0x0000615eu, 0x0000615bu, 0x00006162u, 0x0000615fu, + 0x00006166u, 0x00006163u, 0x0000616au, 0x00006167u, 0x00001a64u, 0x0000616bu, 0x000300f7u, 0x0000617eu, + 0x00000000u, 0x000d00fbu, 0x00006113u, 0x0000616eu, 0x00000000u, 0x00006171u, 0x00000001u, 0x00006174u, + 0x00000002u, 0x00006177u, 0x00000004u, 0x0000617au, 0x00000006u, 0x0000617du, 0x000200f8u, 0x0000617du, + 0x000200f9u, 0x0000617eu, 0x000200f8u, 0x0000617au, 0x00050051u, 0x00000008u, 0x0000617cu, 0x00002a7bu, + 0x00000003u, 0x000200f9u, 0x0000617eu, 0x000200f8u, 0x00006177u, 0x00050051u, 0x00000008u, 0x00006179u, + 0x00008581u, 0x00000003u, 0x000200f9u, 0x0000617eu, 0x000200f8u, 0x00006174u, 0x00050051u, 0x00000008u, + 0x00006176u, 0x00007d8du, 0x00000003u, 0x000200f9u, 0x0000617eu, 0x000200f8u, 0x00006171u, 0x000200f9u, + 0x0000617eu, 0x000200f8u, 0x0000616eu, 0x00050051u, 0x00000008u, 0x00006170u, 0x000029ddu, 0x00000003u, + 0x000200f9u, 0x0000617eu, 0x000200f8u, 0x0000617eu, 0x000f00f5u, 0x00000008u, 0x0000887cu, 0x00006170u, + 0x0000616eu, 0x00000208u, 0x00006171u, 0x00006176u, 0x00006174u, 0x00006179u, 0x00006177u, 0x0000617cu, + 0x0000617au, 0x00001a63u, 0x0000617du, 0x00050051u, 0x00000008u, 0x00006181u, 0x0000887bu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00006182u, 0x0000887bu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00006183u, + 0x0000887bu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006184u, 0x00006181u, 0x00006182u, 0x00006183u, + 0x0000887cu, 0x00050051u, 0x00000008u, 0x00006117u, 0x000024bbu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00006119u, 0x000024c0u, 0x00000001u, 0x000300f7u, 0x000061a6u, 0x00000000u, 0x000d00fbu, 0x00006117u, + 0x0000618au, 0x00000000u, 0x0000618eu, 0x00000001u, 0x00006192u, 0x00000002u, 0x00006196u, 0x00000004u, + 0x0000619au, 0x00000007u, 0x0000619eu, 0x000200f8u, 0x0000619eu, 0x00050051u, 0x00000008u, 0x000061a0u, + 0x000029e2u, 0x00000001u, 0x000500c4u, 0x00000008u, 0x000061a1u, 0x000061a0u, 0x00000263u, 0x00050051u, + 0x00000008u, 0x000061a3u, 0x000029e2u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x000061a4u, 0x000061a1u, + 0x000061a3u, 0x00060050u, 0x0000003cu, 0x000061a5u, 0x000061a4u, 0x000061a4u, 0x000061a4u, 0x000200f9u, + 0x000061a6u, 0x000200f8u, 0x0000619au, 0x0008004fu, 0x0000003cu, 0x0000619du, 0x00002a7bu, 0x00002a7bu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000061a6u, 0x000200f8u, 0x00006196u, 0x0008004fu, + 0x0000003cu, 0x00006199u, 0x00008581u, 0x00008581u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x000061a6u, 0x000200f8u, 0x00006192u, 0x0008004fu, 0x0000003cu, 0x00006195u, 0x00007d8du, 0x00007d8du, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000061a6u, 0x000200f8u, 0x0000618eu, 0x000200f9u, + 0x000061a6u, 0x000200f8u, 0x0000618au, 0x0008004fu, 0x0000003cu, 0x0000618du, 0x000029e2u, 0x000029e2u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000061a6u, 0x000200f8u, 0x000061a6u, 0x000f00f5u, + 0x0000003cu, 0x0000887eu, 0x0000618du, 0x0000618au, 0x0000093au, 0x0000618eu, 0x00006195u, 0x00006192u, + 0x00006199u, 0x00006196u, 0x0000619du, 0x0000619au, 0x000061a5u, 0x0000619eu, 0x000300f7u, 0x000061b8u, + 0x00000000u, 0x000d00fbu, 0x00006119u, 0x000061a8u, 0x00000000u, 0x000061abu, 0x00000001u, 0x000061aeu, + 0x00000002u, 0x000061b1u, 0x00000004u, 0x000061b4u, 0x00000006u, 0x000061b7u, 0x000200f8u, 0x000061b7u, + 0x000200f9u, 0x000061b8u, 0x000200f8u, 0x000061b4u, 0x00050051u, 0x00000008u, 0x000061b6u, 0x00002a7bu, + 0x00000003u, 0x000200f9u, 0x000061b8u, 0x000200f8u, 0x000061b1u, 0x00050051u, 0x00000008u, 0x000061b3u, + 0x00008581u, 0x00000003u, 0x000200f9u, 0x000061b8u, 0x000200f8u, 0x000061aeu, 0x00050051u, 0x00000008u, + 0x000061b0u, 0x00007d8du, 0x00000003u, 0x000200f9u, 0x000061b8u, 0x000200f8u, 0x000061abu, 0x000200f9u, + 0x000061b8u, 0x000200f8u, 0x000061a8u, 0x00050051u, 0x00000008u, 0x000061aau, 0x000029e2u, 0x00000003u, + 0x000200f9u, 0x000061b8u, 0x000200f8u, 0x000061b8u, 0x000f00f5u, 0x00000008u, 0x0000887fu, 0x000061aau, + 0x000061a8u, 0x00000208u, 0x000061abu, 0x000061b0u, 0x000061aeu, 0x000061b3u, 0x000061b1u, 0x000061b6u, + 0x000061b4u, 0x00001a63u, 0x000061b7u, 0x00050051u, 0x00000008u, 0x000061bbu, 0x0000887eu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000061bcu, 0x0000887eu, 0x00000001u, 0x00050051u, 0x00000008u, 0x000061bdu, + 0x0000887eu, 0x00000002u, 0x00070050u, 0x00000009u, 0x000061beu, 0x000061bbu, 0x000061bcu, 0x000061bdu, + 0x0000887fu, 0x00050051u, 0x00000008u, 0x0000611du, 0x000024bbu, 0x00000002u, 0x00050051u, 0x00000008u, + 0x0000611fu, 0x000024c0u, 0x00000002u, 0x000300f7u, 0x000061f4u, 0x00000000u, 0x001700fbu, 0x0000611du, + 0x000061c4u, 0x00000000u, 0x000061c8u, 0x00000007u, 0x000061ccu, 0x00000001u, 0x000061d0u, 0x00000002u, + 0x000061d4u, 0x00000004u, 0x000061d8u, 0x00000008u, 0x000061dcu, 0x00000009u, 0x000061e0u, 0x0000000bu, + 0x000061e4u, 0x0000000du, 0x000061e8u, 0x0000000fu, 0x000061ecu, 0x000200f8u, 0x000061ecu, 0x00050051u, + 0x00000008u, 0x000061eeu, 0x000029e7u, 0x00000001u, 0x000500c4u, 0x00000008u, 0x000061efu, 0x000061eeu, + 0x00000263u, 0x00050051u, 0x00000008u, 0x000061f1u, 0x000029e7u, 0x00000002u, 0x000500c5u, 0x00000008u, + 0x000061f2u, 0x000061efu, 0x000061f1u, 0x00060050u, 0x0000003cu, 0x000061f3u, 0x000061f2u, 0x000061f2u, + 0x000061f2u, 0x000200f9u, 0x000061f4u, 0x000200f8u, 0x000061e8u, 0x00060050u, 0x0000003cu, 0x000061ebu, + 0x0000863du, 0x0000863du, 0x0000863du, 0x000200f9u, 0x000061f4u, 0x000200f8u, 0x000061e4u, 0x0008004fu, + 0x0000003cu, 0x000061e7u, 0x00002a7bu, 0x00002a7bu, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, + 0x000061f4u, 0x000200f8u, 0x000061e0u, 0x0008004fu, 0x0000003cu, 0x000061e3u, 0x00008581u, 0x00008581u, + 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x000061f4u, 0x000200f8u, 0x000061dcu, 0x0008004fu, + 0x0000003cu, 0x000061dfu, 0x00007d8du, 0x00007d8du, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, + 0x000061f4u, 0x000200f8u, 0x000061d8u, 0x0008004fu, 0x0000003cu, 0x000061dbu, 0x00002a7bu, 0x00002a7bu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000061f4u, 0x000200f8u, 0x000061d4u, 0x0008004fu, + 0x0000003cu, 0x000061d7u, 0x00008581u, 0x00008581u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x000061f4u, 0x000200f8u, 0x000061d0u, 0x0008004fu, 0x0000003cu, 0x000061d3u, 0x00007d8du, 0x00007d8du, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000061f4u, 0x000200f8u, 0x000061ccu, 0x000200f9u, + 0x000061f4u, 0x000200f8u, 0x000061c8u, 0x000200f9u, 0x000061f4u, 0x000200f8u, 0x000061c4u, 0x0008004fu, + 0x0000003cu, 0x000061c7u, 0x000029e7u, 0x000029e7u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x000061f4u, 0x000200f8u, 0x000061f4u, 0x001900f5u, 0x0000003cu, 0x00008881u, 0x000061c7u, 0x000061c4u, + 0x0000093au, 0x000061c8u, 0x0000093au, 0x000061ccu, 0x000061d3u, 0x000061d0u, 0x000061d7u, 0x000061d4u, + 0x000061dbu, 0x000061d8u, 0x000061dfu, 0x000061dcu, 0x000061e3u, 0x000061e0u, 0x000061e7u, 0x000061e4u, + 0x000061ebu, 0x000061e8u, 0x000061f3u, 0x000061ecu, 0x000300f7u, 0x00006205u, 0x00000000u, 0x000b00fbu, + 0x0000611fu, 0x000061f6u, 0x00000000u, 0x000061f9u, 0x00000001u, 0x000061fcu, 0x00000002u, 0x000061ffu, + 0x00000004u, 0x00006202u, 0x000200f8u, 0x00006202u, 0x00050051u, 0x00000008u, 0x00006204u, 0x00002a7bu, + 0x00000003u, 0x000200f9u, 0x00006205u, 0x000200f8u, 0x000061ffu, 0x00050051u, 0x00000008u, 0x00006201u, + 0x00008581u, 0x00000003u, 0x000200f9u, 0x00006205u, 0x000200f8u, 0x000061fcu, 0x00050051u, 0x00000008u, + 0x000061feu, 0x00007d8du, 0x00000003u, 0x000200f9u, 0x00006205u, 0x000200f8u, 0x000061f9u, 0x000200f9u, + 0x00006205u, 0x000200f8u, 0x000061f6u, 0x00050051u, 0x00000008u, 0x000061f8u, 0x000029e7u, 0x00000003u, + 0x000200f9u, 0x00006205u, 0x000200f8u, 0x00006205u, 0x000d00f5u, 0x00000008u, 0x00008882u, 0x000061f8u, + 0x000061f6u, 0x0000863du, 0x000061f9u, 0x000061feu, 0x000061fcu, 0x00006201u, 0x000061ffu, 0x00006204u, + 0x00006202u, 0x00050051u, 0x00000008u, 0x00006208u, 0x00008881u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00006209u, 0x00008881u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000620au, 0x00008881u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x0000620bu, 0x00006208u, 0x00006209u, 0x0000620au, 0x00008882u, 0x00050051u, + 0x00000008u, 0x00006123u, 0x000024bbu, 0x00000003u, 0x00050051u, 0x00000008u, 0x00006125u, 0x000024c0u, + 0x00000003u, 0x000300f7u, 0x00006226u, 0x00000000u, 0x000d00fbu, 0x00006123u, 0x00006211u, 0x00000000u, + 0x00006215u, 0x00000001u, 0x00006219u, 0x00000002u, 0x0000621du, 0x00000004u, 0x00006221u, 0x00000006u, + 0x00006225u, 0x000200f8u, 0x00006225u, 0x000200f9u, 0x00006226u, 0x000200f8u, 0x00006221u, 0x0008004fu, + 0x0000003cu, 0x00006224u, 0x00002a7bu, 0x00002a7bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006226u, 0x000200f8u, 0x0000621du, 0x0008004fu, 0x0000003cu, 0x00006220u, 0x00008581u, 0x00008581u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006226u, 0x000200f8u, 0x00006219u, 0x0008004fu, + 0x0000003cu, 0x0000621cu, 0x00007d8du, 0x00007d8du, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006226u, 0x000200f8u, 0x00006215u, 0x000200f9u, 0x00006226u, 0x000200f8u, 0x00006211u, 0x0008004fu, + 0x0000003cu, 0x00006214u, 0x000029ecu, 0x000029ecu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006226u, 0x000200f8u, 0x00006226u, 0x000f00f5u, 0x0000003cu, 0x00008884u, 0x00006214u, 0x00006211u, + 0x0000093au, 0x00006215u, 0x0000621cu, 0x00006219u, 0x00006220u, 0x0000621du, 0x00006224u, 0x00006221u, + 0x00001a64u, 0x00006225u, 0x000300f7u, 0x00006238u, 0x00000000u, 0x000d00fbu, 0x00006125u, 0x00006228u, + 0x00000000u, 0x0000622bu, 0x00000001u, 0x0000622eu, 0x00000002u, 0x00006231u, 0x00000004u, 0x00006234u, + 0x00000006u, 0x00006237u, 0x000200f8u, 0x00006237u, 0x000200f9u, 0x00006238u, 0x000200f8u, 0x00006234u, + 0x00050051u, 0x00000008u, 0x00006236u, 0x00002a7bu, 0x00000003u, 0x000200f9u, 0x00006238u, 0x000200f8u, + 0x00006231u, 0x00050051u, 0x00000008u, 0x00006233u, 0x00008581u, 0x00000003u, 0x000200f9u, 0x00006238u, + 0x000200f8u, 0x0000622eu, 0x00050051u, 0x00000008u, 0x00006230u, 0x00007d8du, 0x00000003u, 0x000200f9u, + 0x00006238u, 0x000200f8u, 0x0000622bu, 0x000200f9u, 0x00006238u, 0x000200f8u, 0x00006228u, 0x00050051u, + 0x00000008u, 0x0000622au, 0x000029ecu, 0x00000003u, 0x000200f9u, 0x00006238u, 0x000200f8u, 0x00006238u, + 0x000f00f5u, 0x00000008u, 0x00008885u, 0x0000622au, 0x00006228u, 0x00000208u, 0x0000622bu, 0x00006230u, + 0x0000622eu, 0x00006233u, 0x00006231u, 0x00006236u, 0x00006234u, 0x00001a63u, 0x00006237u, 0x00050051u, + 0x00000008u, 0x0000623bu, 0x00008884u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000623cu, 0x00008884u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x0000623du, 0x00008884u, 0x00000002u, 0x00070050u, 0x00000009u, + 0x0000623eu, 0x0000623bu, 0x0000623cu, 0x0000623du, 0x00008885u, 0x000600cau, 0x00000009u, 0x00006246u, + 0x0000620bu, 0x00000208u, 0x00000269u, 0x00050082u, 0x00000009u, 0x00006268u, 0x00006184u, 0x0000bda8u, + 0x000600cau, 0x00000009u, 0x00006269u, 0x00006268u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, + 0x0000626bu, 0x00006269u, 0x0000bda8u, 0x00050082u, 0x00000009u, 0x00006270u, 0x000061beu, 0x0000bda8u, + 0x000600cau, 0x00000009u, 0x00006271u, 0x00006270u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, + 0x00006273u, 0x00006271u, 0x0000bda8u, 0x00050082u, 0x00000009u, 0x00006278u, 0x0000623eu, 0x0000bda8u, + 0x000600cau, 0x00000009u, 0x00006279u, 0x00006278u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, + 0x0000627bu, 0x00006279u, 0x0000bda8u, 0x00050082u, 0x00000009u, 0x0000624fu, 0x0000626bu, 0x00006273u, + 0x00050084u, 0x00000009u, 0x00006251u, 0x0000624fu, 0x00006246u, 0x00050080u, 0x00000009u, 0x00006254u, + 0x00006251u, 0x0000bda8u, 0x000500c3u, 0x00000009u, 0x00006257u, 0x00006254u, 0x0000bdb3u, 0x00050080u, + 0x00000009u, 0x00006263u, 0x00006257u, 0x0000627bu, 0x000300f7u, 0x0000614cu, 0x00000000u, 0x000400fau, + 0x0000226du, 0x0000612du, 0x0000614bu, 0x000200f8u, 0x0000614bu, 0x000200f9u, 0x0000614cu, 0x000200f8u, + 0x0000612du, 0x00050051u, 0x00000008u, 0x0000612fu, 0x00006263u, 0x00000003u, 0x00050082u, 0x00000008u, + 0x0000627fu, 0x0000612fu, 0x00000628u, 0x000600cau, 0x00000008u, 0x00006280u, 0x0000627fu, 0x00000208u, + 0x00000269u, 0x00050080u, 0x00000008u, 0x00006281u, 0x00006280u, 0x00000628u, 0x0008000cu, 0x00000008u, + 0x00006282u, 0x00000001u, 0x0000002du, 0x00006281u, 0x00000208u, 0x00000390u, 0x00050080u, 0x00000008u, + 0x00006133u, 0x00006282u, 0x00000217u, 0x000500c3u, 0x00000008u, 0x00006134u, 0x00006133u, 0x00000263u, + 0x00050080u, 0x00000008u, 0x00006135u, 0x00006282u, 0x00006134u, 0x000300f7u, 0x00006148u, 0x00000000u, + 0x000400fau, 0x0000224fu, 0x00006137u, 0x00006144u, 0x000200f8u, 0x00006144u, 0x00050080u, 0x00000008u, + 0x00006147u, 0x00006135u, 0x00008512u, 0x000200f9u, 0x00006148u, 0x000200f8u, 0x00006137u, 0x000300f7u, + 0x00006142u, 0x00000000u, 0x000400fau, 0x0000224cu, 0x00006139u, 0x0000613fu, 0x000200f8u, 0x0000613fu, + 0x000500c4u, 0x00000008u, 0x00006141u, 0x000022f2u, 0x00000223u, 0x000200f9u, 0x00006142u, 0x000200f8u, + 0x00006139u, 0x00050084u, 0x00000008u, 0x0000613cu, 0x00006135u, 0x000022f2u, 0x00050080u, 0x00000008u, + 0x0000613du, 0x0000613cu, 0x00000220u, 0x000500c3u, 0x00000008u, 0x0000613eu, 0x0000613du, 0x0000021du, + 0x000200f9u, 0x00006142u, 0x000200f8u, 0x00006142u, 0x000700f5u, 0x00000008u, 0x00008886u, 0x0000613eu, + 0x00006139u, 0x00006141u, 0x0000613fu, 0x000200f9u, 0x00006148u, 0x000200f8u, 0x00006148u, 0x000700f5u, + 0x00000008u, 0x00008887u, 0x00008886u, 0x00006142u, 0x00006147u, 0x00006144u, 0x0008000cu, 0x00000008u, + 0x0000614au, 0x00000001u, 0x0000002du, 0x00008887u, 0x00000208u, 0x00000390u, 0x000200f9u, 0x0000614cu, + 0x000200f8u, 0x0000614cu, 0x000700f5u, 0x00000008u, 0x00008888u, 0x0000614au, 0x00006148u, 0x00000208u, + 0x0000614bu, 0x000500c7u, 0x00000006u, 0x00002404u, 0x000024cdu, 0x00001f16u, 0x000500abu, 0x0000005du, + 0x00002405u, 0x00002404u, 0x00000379u, 0x000300f7u, 0x00002415u, 0x00000000u, 0x000400fau, 0x00002405u, + 0x00002406u, 0x00002415u, 0x000200f8u, 0x00002406u, 0x00050080u, 0x00000008u, 0x00002408u, 0x00007627u, + 0x00001140u, 0x0004007cu, 0x00000006u, 0x00002409u, 0x00002408u, 0x00050080u, 0x00000008u, 0x0000240bu, + 0x00007625u, 0x00000229u, 0x0004007cu, 0x00000006u, 0x0000240cu, 0x0000240bu, 0x00060041u, 0x00001d0fu, + 0x0000240eu, 0x00000ccfu, 0x00000208u, 0x0000021du, 0x0004003du, 0x00000006u, 0x0000240fu, 0x0000240eu, + 0x00050080u, 0x00000006u, 0x00002410u, 0x00002008u, 0x0000240fu, 0x00050080u, 0x00000006u, 0x00002411u, + 0x00002410u, 0x00000e1fu, 0x00060050u, 0x00000358u, 0x00006288u, 0x00002409u, 0x0000240cu, 0x00002411u, + 0x000500c2u, 0x00000358u, 0x0000628bu, 0x00006288u, 0x0000bda2u, 0x0008004fu, 0x00000358u, 0x0000628du, + 0x00006288u, 0x00006288u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000358u, 0x0000628eu, + 0x0000628bu, 0x0000628du, 0x00050084u, 0x00000358u, 0x00006290u, 0x0000628eu, 0x0000bda3u, 0x000500c2u, + 0x00000358u, 0x00006293u, 0x00006290u, 0x0000bda2u, 0x0008004fu, 0x00000358u, 0x00006295u, 0x00006290u, + 0x00006290u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000358u, 0x00006296u, 0x00006293u, + 0x00006295u, 0x00050084u, 0x00000358u, 0x00006298u, 0x00006296u, 0x0000bda3u, 0x000500c2u, 0x00000358u, + 0x0000629bu, 0x00006298u, 0x0000bda2u, 0x0008004fu, 0x00000358u, 0x0000629du, 0x00006298u, 0x00006298u, + 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000358u, 0x0000629eu, 0x0000629bu, 0x0000629du, + 0x00050084u, 0x00000358u, 0x000062a0u, 0x0000629eu, 0x0000bda3u, 0x00050051u, 0x00000006u, 0x000062a2u, + 0x000062a0u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000062a3u, 0x000062a2u, 0x0000037cu, 0x0004007cu, + 0x00000008u, 0x000062a4u, 0x000062a3u, 0x000500c7u, 0x00000008u, 0x000062a8u, 0x000062a4u, 0x00000229u, + 0x000500c4u, 0x00000008u, 0x000062a9u, 0x000062a8u, 0x00000226u, 0x000500c5u, 0x00000008u, 0x000062aau, + 0x000062a9u, 0x00000382u, 0x000200f9u, 0x00002415u, 0x000200f8u, 0x00002415u, 0x000700f5u, 0x00000008u, + 0x00008907u, 0x00008400u, 0x0000614cu, 0x000062a4u, 0x00002406u, 0x000700f5u, 0x00000008u, 0x000088c1u, + 0x000060f3u, 0x0000614cu, 0x000062aau, 0x00002406u, 0x00050051u, 0x00000008u, 0x000062c7u, 0x000024c5u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000062c9u, 0x000024cau, 0x00000000u, 0x000300f7u, 0x00006322u, + 0x00000000u, 0x000f00fbu, 0x000062c7u, 0x00006309u, 0x00000000u, 0x0000630du, 0x00000001u, 0x00006311u, + 0x00000002u, 0x00006315u, 0x00000004u, 0x00006319u, 0x00000007u, 0x0000631du, 0x00000006u, 0x00006321u, + 0x000200f8u, 0x00006321u, 0x000200f9u, 0x00006322u, 0x000200f8u, 0x0000631du, 0x00060050u, 0x0000003cu, + 0x00006320u, 0x000088c1u, 0x000088c1u, 0x000088c1u, 0x000200f9u, 0x00006322u, 0x000200f8u, 0x00006319u, + 0x0008004fu, 0x0000003cu, 0x0000631cu, 0x00002a7bu, 0x00002a7bu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00006322u, 0x000200f8u, 0x00006315u, 0x0008004fu, 0x0000003cu, 0x00006318u, 0x00007d8du, + 0x00007d8du, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006322u, 0x000200f8u, 0x00006311u, + 0x0008004fu, 0x0000003cu, 0x00006314u, 0x00008581u, 0x00008581u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00006322u, 0x000200f8u, 0x0000630du, 0x0008004fu, 0x0000003cu, 0x00006310u, 0x00006263u, + 0x00006263u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006322u, 0x000200f8u, 0x00006309u, + 0x0008004fu, 0x0000003cu, 0x0000630cu, 0x000029f1u, 0x000029f1u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00006322u, 0x000200f8u, 0x00006322u, 0x001100f5u, 0x0000003cu, 0x000088e1u, 0x0000630cu, + 0x00006309u, 0x00006310u, 0x0000630du, 0x00006314u, 0x00006311u, 0x00006318u, 0x00006315u, 0x0000631cu, + 0x00006319u, 0x00006320u, 0x0000631du, 0x00001a64u, 0x00006321u, 0x000300f7u, 0x00006334u, 0x00000000u, + 0x000d00fbu, 0x000062c9u, 0x00006324u, 0x00000000u, 0x00006327u, 0x00000001u, 0x0000632au, 0x00000002u, + 0x0000632du, 0x00000004u, 0x00006330u, 0x00000006u, 0x00006333u, 0x000200f8u, 0x00006333u, 0x000200f9u, + 0x00006334u, 0x000200f8u, 0x00006330u, 0x00050051u, 0x00000008u, 0x00006332u, 0x00002a7bu, 0x00000003u, + 0x000200f9u, 0x00006334u, 0x000200f8u, 0x0000632du, 0x00050051u, 0x00000008u, 0x0000632fu, 0x00007d8du, + 0x00000003u, 0x000200f9u, 0x00006334u, 0x000200f8u, 0x0000632au, 0x00050051u, 0x00000008u, 0x0000632cu, + 0x00008581u, 0x00000003u, 0x000200f9u, 0x00006334u, 0x000200f8u, 0x00006327u, 0x00050051u, 0x00000008u, + 0x00006329u, 0x00006263u, 0x00000003u, 0x000200f9u, 0x00006334u, 0x000200f8u, 0x00006324u, 0x00050051u, + 0x00000008u, 0x00006326u, 0x000029f1u, 0x00000003u, 0x000200f9u, 0x00006334u, 0x000200f8u, 0x00006334u, + 0x000f00f5u, 0x00000008u, 0x000088e2u, 0x00006326u, 0x00006324u, 0x00006329u, 0x00006327u, 0x0000632cu, + 0x0000632au, 0x0000632fu, 0x0000632du, 0x00006332u, 0x00006330u, 0x00001a63u, 0x00006333u, 0x00050051u, + 0x00000008u, 0x00006337u, 0x000088e1u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006338u, 0x000088e1u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00006339u, 0x000088e1u, 0x00000002u, 0x00070050u, 0x00000009u, + 0x0000633au, 0x00006337u, 0x00006338u, 0x00006339u, 0x000088e2u, 0x00050051u, 0x00000008u, 0x000062cdu, + 0x000024c5u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000062cfu, 0x000024cau, 0x00000001u, 0x000300f7u, + 0x0000635cu, 0x00000000u, 0x000d00fbu, 0x000062cdu, 0x00006340u, 0x00000000u, 0x00006344u, 0x00000001u, + 0x00006348u, 0x00000002u, 0x0000634cu, 0x00000004u, 0x00006350u, 0x00000007u, 0x00006354u, 0x000200f8u, + 0x00006354u, 0x00050051u, 0x00000008u, 0x00006356u, 0x000029f6u, 0x00000001u, 0x000500c4u, 0x00000008u, + 0x00006357u, 0x00006356u, 0x00000263u, 0x00050051u, 0x00000008u, 0x00006359u, 0x000029f6u, 0x00000002u, + 0x000500c5u, 0x00000008u, 0x0000635au, 0x00006357u, 0x00006359u, 0x00060050u, 0x0000003cu, 0x0000635bu, + 0x0000635au, 0x0000635au, 0x0000635au, 0x000200f9u, 0x0000635cu, 0x000200f8u, 0x00006350u, 0x0008004fu, + 0x0000003cu, 0x00006353u, 0x00002a7bu, 0x00002a7bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x0000635cu, 0x000200f8u, 0x0000634cu, 0x0008004fu, 0x0000003cu, 0x0000634fu, 0x00007d8du, 0x00007d8du, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000635cu, 0x000200f8u, 0x00006348u, 0x0008004fu, + 0x0000003cu, 0x0000634bu, 0x00008581u, 0x00008581u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x0000635cu, 0x000200f8u, 0x00006344u, 0x0008004fu, 0x0000003cu, 0x00006347u, 0x00006263u, 0x00006263u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000635cu, 0x000200f8u, 0x00006340u, 0x0008004fu, + 0x0000003cu, 0x00006343u, 0x000029f6u, 0x000029f6u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x0000635cu, 0x000200f8u, 0x0000635cu, 0x000f00f5u, 0x0000003cu, 0x000088e4u, 0x00006343u, 0x00006340u, + 0x00006347u, 0x00006344u, 0x0000634bu, 0x00006348u, 0x0000634fu, 0x0000634cu, 0x00006353u, 0x00006350u, + 0x0000635bu, 0x00006354u, 0x000300f7u, 0x0000636eu, 0x00000000u, 0x000d00fbu, 0x000062cfu, 0x0000635eu, + 0x00000000u, 0x00006361u, 0x00000001u, 0x00006364u, 0x00000002u, 0x00006367u, 0x00000004u, 0x0000636au, + 0x00000006u, 0x0000636du, 0x000200f8u, 0x0000636du, 0x000200f9u, 0x0000636eu, 0x000200f8u, 0x0000636au, + 0x00050051u, 0x00000008u, 0x0000636cu, 0x00002a7bu, 0x00000003u, 0x000200f9u, 0x0000636eu, 0x000200f8u, + 0x00006367u, 0x00050051u, 0x00000008u, 0x00006369u, 0x00007d8du, 0x00000003u, 0x000200f9u, 0x0000636eu, + 0x000200f8u, 0x00006364u, 0x00050051u, 0x00000008u, 0x00006366u, 0x00008581u, 0x00000003u, 0x000200f9u, + 0x0000636eu, 0x000200f8u, 0x00006361u, 0x00050051u, 0x00000008u, 0x00006363u, 0x00006263u, 0x00000003u, + 0x000200f9u, 0x0000636eu, 0x000200f8u, 0x0000635eu, 0x00050051u, 0x00000008u, 0x00006360u, 0x000029f6u, + 0x00000003u, 0x000200f9u, 0x0000636eu, 0x000200f8u, 0x0000636eu, 0x000f00f5u, 0x00000008u, 0x000088e5u, + 0x00006360u, 0x0000635eu, 0x00006363u, 0x00006361u, 0x00006366u, 0x00006364u, 0x00006369u, 0x00006367u, + 0x0000636cu, 0x0000636au, 0x00001a63u, 0x0000636du, 0x00050051u, 0x00000008u, 0x00006371u, 0x000088e4u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00006372u, 0x000088e4u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00006373u, 0x000088e4u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006374u, 0x00006371u, 0x00006372u, + 0x00006373u, 0x000088e5u, 0x00050051u, 0x00000008u, 0x000062d3u, 0x000024c5u, 0x00000002u, 0x00050051u, + 0x00000008u, 0x000062d5u, 0x000024cau, 0x00000002u, 0x000300f7u, 0x000063aau, 0x00000000u, 0x001700fbu, + 0x000062d3u, 0x0000637au, 0x00000000u, 0x0000637eu, 0x00000007u, 0x00006382u, 0x00000001u, 0x00006386u, + 0x00000002u, 0x0000638au, 0x00000004u, 0x0000638eu, 0x00000008u, 0x00006392u, 0x00000009u, 0x00006396u, + 0x0000000bu, 0x0000639au, 0x0000000du, 0x0000639eu, 0x0000000fu, 0x000063a2u, 0x000200f8u, 0x000063a2u, + 0x00050051u, 0x00000008u, 0x000063a4u, 0x000029fbu, 0x00000001u, 0x000500c4u, 0x00000008u, 0x000063a5u, + 0x000063a4u, 0x00000263u, 0x00050051u, 0x00000008u, 0x000063a7u, 0x000029fbu, 0x00000002u, 0x000500c5u, + 0x00000008u, 0x000063a8u, 0x000063a5u, 0x000063a7u, 0x00060050u, 0x0000003cu, 0x000063a9u, 0x000063a8u, + 0x000063a8u, 0x000063a8u, 0x000200f9u, 0x000063aau, 0x000200f8u, 0x0000639eu, 0x00060050u, 0x0000003cu, + 0x000063a1u, 0x0000863du, 0x0000863du, 0x0000863du, 0x000200f9u, 0x000063aau, 0x000200f8u, 0x0000639au, + 0x0008004fu, 0x0000003cu, 0x0000639du, 0x00002a7bu, 0x00002a7bu, 0x00000003u, 0x00000003u, 0x00000003u, + 0x000200f9u, 0x000063aau, 0x000200f8u, 0x00006396u, 0x0008004fu, 0x0000003cu, 0x00006399u, 0x00007d8du, + 0x00007d8du, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x000063aau, 0x000200f8u, 0x00006392u, + 0x0008004fu, 0x0000003cu, 0x00006395u, 0x00008581u, 0x00008581u, 0x00000003u, 0x00000003u, 0x00000003u, + 0x000200f9u, 0x000063aau, 0x000200f8u, 0x0000638eu, 0x0008004fu, 0x0000003cu, 0x00006391u, 0x00002a7bu, + 0x00002a7bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000063aau, 0x000200f8u, 0x0000638au, + 0x0008004fu, 0x0000003cu, 0x0000638du, 0x00007d8du, 0x00007d8du, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000063aau, 0x000200f8u, 0x00006386u, 0x0008004fu, 0x0000003cu, 0x00006389u, 0x00008581u, + 0x00008581u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000063aau, 0x000200f8u, 0x00006382u, + 0x0008004fu, 0x0000003cu, 0x00006385u, 0x00006263u, 0x00006263u, 0x00000003u, 0x00000003u, 0x00000003u, + 0x000200f9u, 0x000063aau, 0x000200f8u, 0x0000637eu, 0x0008004fu, 0x0000003cu, 0x00006381u, 0x00006263u, + 0x00006263u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000063aau, 0x000200f8u, 0x0000637au, + 0x0008004fu, 0x0000003cu, 0x0000637du, 0x000029fbu, 0x000029fbu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000063aau, 0x000200f8u, 0x000063aau, 0x001900f5u, 0x0000003cu, 0x000088e7u, 0x0000637du, + 0x0000637au, 0x00006381u, 0x0000637eu, 0x00006385u, 0x00006382u, 0x00006389u, 0x00006386u, 0x0000638du, + 0x0000638au, 0x00006391u, 0x0000638eu, 0x00006395u, 0x00006392u, 0x00006399u, 0x00006396u, 0x0000639du, + 0x0000639au, 0x000063a1u, 0x0000639eu, 0x000063a9u, 0x000063a2u, 0x000300f7u, 0x000063bbu, 0x00000000u, + 0x000b00fbu, 0x000062d5u, 0x000063acu, 0x00000000u, 0x000063afu, 0x00000001u, 0x000063b2u, 0x00000002u, + 0x000063b5u, 0x00000004u, 0x000063b8u, 0x000200f8u, 0x000063b8u, 0x00050051u, 0x00000008u, 0x000063bau, + 0x00002a7bu, 0x00000003u, 0x000200f9u, 0x000063bbu, 0x000200f8u, 0x000063b5u, 0x00050051u, 0x00000008u, + 0x000063b7u, 0x00007d8du, 0x00000003u, 0x000200f9u, 0x000063bbu, 0x000200f8u, 0x000063b2u, 0x00050051u, + 0x00000008u, 0x000063b4u, 0x00008581u, 0x00000003u, 0x000200f9u, 0x000063bbu, 0x000200f8u, 0x000063afu, + 0x000200f9u, 0x000063bbu, 0x000200f8u, 0x000063acu, 0x00050051u, 0x00000008u, 0x000063aeu, 0x000029fbu, + 0x00000003u, 0x000200f9u, 0x000063bbu, 0x000200f8u, 0x000063bbu, 0x000d00f5u, 0x00000008u, 0x000088e8u, + 0x000063aeu, 0x000063acu, 0x0000863du, 0x000063afu, 0x000063b4u, 0x000063b2u, 0x000063b7u, 0x000063b5u, + 0x000063bau, 0x000063b8u, 0x00050051u, 0x00000008u, 0x000063beu, 0x000088e7u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000063bfu, 0x000088e7u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000063c0u, 0x000088e7u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000063c1u, 0x000063beu, 0x000063bfu, 0x000063c0u, 0x000088e8u, + 0x00050051u, 0x00000008u, 0x000062d9u, 0x000024c5u, 0x00000003u, 0x00050051u, 0x00000008u, 0x000062dbu, + 0x000024cau, 0x00000003u, 0x000300f7u, 0x000063dcu, 0x00000000u, 0x000d00fbu, 0x000062d9u, 0x000063c7u, + 0x00000000u, 0x000063cbu, 0x00000001u, 0x000063cfu, 0x00000002u, 0x000063d3u, 0x00000004u, 0x000063d7u, + 0x00000006u, 0x000063dbu, 0x000200f8u, 0x000063dbu, 0x000200f9u, 0x000063dcu, 0x000200f8u, 0x000063d7u, + 0x0008004fu, 0x0000003cu, 0x000063dau, 0x00002a7bu, 0x00002a7bu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000063dcu, 0x000200f8u, 0x000063d3u, 0x0008004fu, 0x0000003cu, 0x000063d6u, 0x00007d8du, + 0x00007d8du, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000063dcu, 0x000200f8u, 0x000063cfu, + 0x0008004fu, 0x0000003cu, 0x000063d2u, 0x00008581u, 0x00008581u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000063dcu, 0x000200f8u, 0x000063cbu, 0x0008004fu, 0x0000003cu, 0x000063ceu, 0x00006263u, + 0x00006263u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000063dcu, 0x000200f8u, 0x000063c7u, + 0x0008004fu, 0x0000003cu, 0x000063cau, 0x00002a00u, 0x00002a00u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000063dcu, 0x000200f8u, 0x000063dcu, 0x000f00f5u, 0x0000003cu, 0x000088eau, 0x000063cau, + 0x000063c7u, 0x000063ceu, 0x000063cbu, 0x000063d2u, 0x000063cfu, 0x000063d6u, 0x000063d3u, 0x000063dau, + 0x000063d7u, 0x00001a64u, 0x000063dbu, 0x000300f7u, 0x000063eeu, 0x00000000u, 0x000d00fbu, 0x000062dbu, + 0x000063deu, 0x00000000u, 0x000063e1u, 0x00000001u, 0x000063e4u, 0x00000002u, 0x000063e7u, 0x00000004u, + 0x000063eau, 0x00000006u, 0x000063edu, 0x000200f8u, 0x000063edu, 0x000200f9u, 0x000063eeu, 0x000200f8u, + 0x000063eau, 0x00050051u, 0x00000008u, 0x000063ecu, 0x00002a7bu, 0x00000003u, 0x000200f9u, 0x000063eeu, + 0x000200f8u, 0x000063e7u, 0x00050051u, 0x00000008u, 0x000063e9u, 0x00007d8du, 0x00000003u, 0x000200f9u, + 0x000063eeu, 0x000200f8u, 0x000063e4u, 0x00050051u, 0x00000008u, 0x000063e6u, 0x00008581u, 0x00000003u, + 0x000200f9u, 0x000063eeu, 0x000200f8u, 0x000063e1u, 0x00050051u, 0x00000008u, 0x000063e3u, 0x00006263u, + 0x00000003u, 0x000200f9u, 0x000063eeu, 0x000200f8u, 0x000063deu, 0x00050051u, 0x00000008u, 0x000063e0u, + 0x00002a00u, 0x00000003u, 0x000200f9u, 0x000063eeu, 0x000200f8u, 0x000063eeu, 0x000f00f5u, 0x00000008u, + 0x000088ebu, 0x000063e0u, 0x000063deu, 0x000063e3u, 0x000063e1u, 0x000063e6u, 0x000063e4u, 0x000063e9u, + 0x000063e7u, 0x000063ecu, 0x000063eau, 0x00001a63u, 0x000063edu, 0x00050051u, 0x00000008u, 0x000063f1u, + 0x000088eau, 0x00000000u, 0x00050051u, 0x00000008u, 0x000063f2u, 0x000088eau, 0x00000001u, 0x00050051u, + 0x00000008u, 0x000063f3u, 0x000088eau, 0x00000002u, 0x00070050u, 0x00000009u, 0x000063f4u, 0x000063f1u, + 0x000063f2u, 0x000063f3u, 0x000088ebu, 0x000600cau, 0x00000009u, 0x000063fcu, 0x000063c1u, 0x00000208u, + 0x00000269u, 0x00050082u, 0x00000009u, 0x0000641eu, 0x0000633au, 0x0000bda8u, 0x000600cau, 0x00000009u, + 0x0000641fu, 0x0000641eu, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x00006421u, 0x0000641fu, + 0x0000bda8u, 0x00050082u, 0x00000009u, 0x00006426u, 0x00006374u, 0x0000bda8u, 0x000600cau, 0x00000009u, + 0x00006427u, 0x00006426u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x00006429u, 0x00006427u, + 0x0000bda8u, 0x00050082u, 0x00000009u, 0x0000642eu, 0x000063f4u, 0x0000bda8u, 0x000600cau, 0x00000009u, + 0x0000642fu, 0x0000642eu, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x00006431u, 0x0000642fu, + 0x0000bda8u, 0x00050082u, 0x00000009u, 0x00006405u, 0x00006421u, 0x00006429u, 0x00050084u, 0x00000009u, + 0x00006407u, 0x00006405u, 0x000063fcu, 0x00050080u, 0x00000009u, 0x0000640au, 0x00006407u, 0x0000bda8u, + 0x000500c3u, 0x00000009u, 0x0000640du, 0x0000640au, 0x0000bdb3u, 0x00050080u, 0x00000009u, 0x00006419u, + 0x0000640du, 0x00006431u, 0x00050082u, 0x00000009u, 0x00006436u, 0x00006419u, 0x0000bda8u, 0x000600cau, + 0x00000009u, 0x00006438u, 0x00006436u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x0000643bu, + 0x00006438u, 0x0000bda8u, 0x0008000cu, 0x00000009u, 0x0000643du, 0x00000001u, 0x0000002du, 0x0000643bu, + 0x00000616u, 0x00000af5u, 0x00050051u, 0x00000008u, 0x000062e5u, 0x0000643du, 0x00000003u, 0x00050080u, + 0x00000008u, 0x000062e8u, 0x000062e5u, 0x00000217u, 0x000500c3u, 0x00000008u, 0x000062e9u, 0x000062e8u, + 0x00000263u, 0x00050080u, 0x00000008u, 0x000062eau, 0x000062e5u, 0x000062e9u, 0x000300f7u, 0x000062f7u, + 0x00000000u, 0x000400fau, 0x0000224cu, 0x000062ecu, 0x000062f4u, 0x000200f8u, 0x000062f4u, 0x000500c4u, + 0x00000008u, 0x000062f6u, 0x000022f2u, 0x00000223u, 0x000200f9u, 0x000062f7u, 0x000200f8u, 0x000062ecu, + 0x00050084u, 0x00000008u, 0x000062efu, 0x000062eau, 0x000022f2u, 0x00050080u, 0x00000008u, 0x000062f0u, + 0x000062efu, 0x00000220u, 0x000500c3u, 0x00000008u, 0x000062f1u, 0x000062f0u, 0x0000021du, 0x000500c3u, + 0x00000008u, 0x000062f3u, 0x000062f1u, 0x00000223u, 0x000200f9u, 0x000062f7u, 0x000200f8u, 0x000062f7u, + 0x000700f5u, 0x00000008u, 0x000088fau, 0x000062f3u, 0x000062ecu, 0x000022f2u, 0x000062f4u, 0x000700f5u, + 0x00000008u, 0x000088f5u, 0x000062f1u, 0x000062ecu, 0x000062f6u, 0x000062f4u, 0x000300f7u, 0x000062ffu, + 0x00000000u, 0x000400fau, 0x0000224fu, 0x000062f9u, 0x000062fbu, 0x000200f8u, 0x000062fbu, 0x00050080u, + 0x00000008u, 0x000062feu, 0x000062eau, 0x00008512u, 0x000200f9u, 0x000062ffu, 0x000200f8u, 0x000062f9u, + 0x000200f9u, 0x000062ffu, 0x000200f8u, 0x000062ffu, 0x000700f5u, 0x00000008u, 0x000088f6u, 0x000088f5u, + 0x000062f9u, 0x000062feu, 0x000062fbu, 0x0008000cu, 0x00000008u, 0x00006301u, 0x00000001u, 0x0000002du, + 0x000088f6u, 0x00000208u, 0x00000390u, 0x00050051u, 0x00000008u, 0x0000241fu, 0x0000643du, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00002420u, 0x0000643du, 0x00000001u, 0x00050051u, 0x00000008u, 0x00002421u, + 0x0000643du, 0x00000002u, 0x00070050u, 0x00000009u, 0x00002423u, 0x0000241fu, 0x00002420u, 0x00002421u, + 0x00006301u, 0x000200f9u, 0x00002443u, 0x000200f8u, 0x00002443u, 0x000700f5u, 0x00000009u, 0x0000892cu, + 0x00002423u, 0x000062ffu, 0x00002440u, 0x0000649du, 0x000700f5u, 0x00000008u, 0x0000891eu, 0x00008888u, + 0x000062ffu, 0x0000649fu, 0x0000649du, 0x000700f5u, 0x00000008u, 0x000088fcu, 0x00008907u, 0x000062ffu, + 0x00008400u, 0x0000649du, 0x000700f5u, 0x00000008u, 0x000088fbu, 0x000088fau, 0x000062ffu, 0x00008879u, + 0x0000649du, 0x000500aau, 0x0000005du, 0x00002446u, 0x000088fbu, 0x00000208u, 0x000500a7u, 0x0000005du, + 0x00002447u, 0x0000225eu, 0x00002446u, 0x000300f7u, 0x00002449u, 0x00000000u, 0x000400fau, 0x00002447u, + 0x00002448u, 0x00002449u, 0x000200f8u, 0x00002448u, 0x000200f9u, 0x00002468u, 0x000200f8u, 0x00002449u, + 0x000300f7u, 0x00002458u, 0x00000000u, 0x000400fau, 0x0000226du, 0x0000244bu, 0x00002458u, 0x000200f8u, + 0x0000244bu, 0x000300f7u, 0x00002452u, 0x00000000u, 0x000400fau, 0x00002270u, 0x0000244du, 0x0000244fu, + 0x000200f8u, 0x0000244fu, 0x00050051u, 0x00000008u, 0x00002451u, 0x00002a0au, 0x00000003u, 0x000200f9u, + 0x00002452u, 0x000200f8u, 0x0000244du, 0x000500c7u, 0x00000008u, 0x000065e4u, 0x000088fcu, 0x00000390u, + 0x000200f9u, 0x00002452u, 0x000200f8u, 0x00002452u, 0x000700f5u, 0x00000008u, 0x0000892au, 0x000065e4u, + 0x0000244du, 0x00002451u, 0x0000244fu, 0x000500b1u, 0x0000005du, 0x00002455u, 0x0000891eu, 0x0000892au, + 0x000300f7u, 0x00002457u, 0x00000000u, 0x000400fau, 0x00002455u, 0x00002456u, 0x00002457u, 0x000200f8u, + 0x00002456u, 0x000200f9u, 0x00002468u, 0x000200f8u, 0x00002457u, 0x000200f9u, 0x00002458u, 0x000200f8u, + 0x00002458u, 0x000500c4u, 0x00000008u, 0x0000245cu, 0x00002cc9u, 0x00000269u, 0x000500c5u, 0x00000008u, + 0x0000245eu, 0x0000245cu, 0x00008509u, 0x00050051u, 0x00000008u, 0x00002463u, 0x00002a7bu, 0x00000003u, + 0x00050080u, 0x00000008u, 0x00002465u, 0x00002463u, 0x00008512u, 0x0007000cu, 0x00000008u, 0x00002466u, + 0x00000001u, 0x00000027u, 0x00002465u, 0x00000390u, 0x000200f9u, 0x00002468u, 0x000200f8u, 0x00002468u, + 0x001900f5u, 0x00000008u, 0x0000b9cau, 0x00008649u, 0x00002204u, 0x00008649u, 0x00002223u, 0x00008649u, + 0x000022a9u, 0x00008649u, 0x000022d4u, 0x00008649u, 0x000022d5u, 0x00008649u, 0x000022e3u, 0x00008649u, + 0x000022efu, 0x00008649u, 0x000022fbu, 0x0000863du, 0x00002448u, 0x0000863du, 0x00002456u, 0x0000863du, + 0x00002458u, 0x001900f5u, 0x00000009u, 0x0000b937u, 0x00008590u, 0x00002204u, 0x00008590u, 0x00002223u, + 0x00008590u, 0x000022a9u, 0x00008590u, 0x000022d4u, 0x00008590u, 0x000022d5u, 0x00008590u, 0x000022e3u, + 0x00008590u, 0x000022efu, 0x00008590u, 0x000022fbu, 0x00008581u, 0x00002448u, 0x00008581u, 0x00002456u, + 0x00008581u, 0x00002458u, 0x001900f5u, 0x00000008u, 0x0000b8c5u, 0x00008403u, 0x00002204u, 0x00008403u, + 0x00002223u, 0x00008400u, 0x000022a9u, 0x00008400u, 0x000022d4u, 0x00008400u, 0x000022d5u, 0x00008400u, + 0x000022e3u, 0x00008400u, 0x000022efu, 0x00008400u, 0x000022fbu, 0x000088fcu, 0x00002448u, 0x000088fcu, + 0x00002456u, 0x000088fcu, 0x00002458u, 0x001900f5u, 0x00000009u, 0x0000b81bu, 0x000081e0u, 0x00002204u, + 0x000081e0u, 0x00002223u, 0x000081e0u, 0x000022a9u, 0x000081e0u, 0x000022d4u, 0x000081e0u, 0x000022d5u, + 0x000081e0u, 0x000022e3u, 0x000081e0u, 0x000022efu, 0x000081e0u, 0x000022fbu, 0x0000b864u, 0x00002448u, + 0x0000b864u, 0x00002456u, 0x0000b864u, 0x00002458u, 0x001900f5u, 0x00000009u, 0x0000b773u, 0x000080ebu, + 0x00002204u, 0x000080ebu, 0x00002223u, 0x000080ebu, 0x000022a9u, 0x000080ebu, 0x000022d4u, 0x000080ebu, + 0x000022d5u, 0x000080ebu, 0x000022e3u, 0x000080ebu, 0x000022efu, 0x000080ebu, 0x000022fbu, 0x0000b7bcu, + 0x00002448u, 0x0000b7bcu, 0x00002456u, 0x0000b7bcu, 0x00002458u, 0x001900f5u, 0x00000009u, 0x0000b6cbu, + 0x00007ff0u, 0x00002204u, 0x00007ff0u, 0x00002223u, 0x00007ff0u, 0x000022a9u, 0x00007ff0u, 0x000022d4u, + 0x00007ff0u, 0x000022d5u, 0x00007ff0u, 0x000022e3u, 0x00007ff0u, 0x000022efu, 0x00007ff0u, 0x000022fbu, + 0x0000b714u, 0x00002448u, 0x0000b714u, 0x00002456u, 0x0000b714u, 0x00002458u, 0x001900f5u, 0x00000009u, + 0x0000b623u, 0x00007e84u, 0x00002204u, 0x00007e84u, 0x00002223u, 0x00007e84u, 0x000022a9u, 0x00007e84u, + 0x000022d4u, 0x00007e84u, 0x000022d5u, 0x00007e84u, 0x000022e3u, 0x00007e84u, 0x000022efu, 0x00007e84u, + 0x000022fbu, 0x0000b66cu, 0x00002448u, 0x0000b66cu, 0x00002456u, 0x0000b66cu, 0x00002458u, 0x001900f5u, + 0x00000009u, 0x0000b590u, 0x00007d9au, 0x00002204u, 0x00007d9au, 0x00002223u, 0x00007d9au, 0x000022a9u, + 0x00007d9au, 0x000022d4u, 0x00007d9au, 0x000022d5u, 0x00007d9au, 0x000022e3u, 0x00007d9au, 0x000022efu, + 0x00007d9au, 0x000022fbu, 0x00007d8du, 0x00002448u, 0x00007d8du, 0x00002456u, 0x00007d8du, 0x00002458u, + 0x001900f5u, 0x00000009u, 0x0000b46cu, 0x000079cdu, 0x00002204u, 0x000079cdu, 0x00002223u, 0x000079cdu, + 0x000022a9u, 0x000079cdu, 0x000022d4u, 0x000079cdu, 0x000022d5u, 0x000079cdu, 0x000022e3u, 0x000079cdu, + 0x000022efu, 0x000079cdu, 0x000022fbu, 0x0000b4b7u, 0x00002448u, 0x0000b4b7u, 0x00002456u, 0x0000b4b7u, + 0x00002458u, 0x001900f5u, 0x00000009u, 0x0000b34au, 0x00007952u, 0x00002204u, 0x00007952u, 0x00002223u, + 0x00007952u, 0x000022a9u, 0x00007952u, 0x000022d4u, 0x00007952u, 0x000022d5u, 0x00007952u, 0x000022e3u, + 0x00007952u, 0x000022efu, 0x00007952u, 0x000022fbu, 0x0000b395u, 0x00002448u, 0x0000b395u, 0x00002456u, + 0x0000b395u, 0x00002458u, 0x001900f5u, 0x00000009u, 0x0000b228u, 0x000078d1u, 0x00002204u, 0x000078d1u, + 0x00002223u, 0x000078d1u, 0x000022a9u, 0x000078d1u, 0x000022d4u, 0x000078d1u, 0x000022d5u, 0x000078d1u, + 0x000022e3u, 0x000078d1u, 0x000022efu, 0x000078d1u, 0x000022fbu, 0x0000b273u, 0x00002448u, 0x0000b273u, + 0x00002456u, 0x0000b273u, 0x00002458u, 0x001900f5u, 0x00000009u, 0x0000b106u, 0x000077dfu, 0x00002204u, + 0x000077dfu, 0x00002223u, 0x000077dfu, 0x000022a9u, 0x000077dfu, 0x000022d4u, 0x000077dfu, 0x000022d5u, + 0x000077dfu, 0x000022e3u, 0x000077dfu, 0x000022efu, 0x000077dfu, 0x000022fbu, 0x0000b151u, 0x00002448u, + 0x0000b151u, 0x00002456u, 0x0000b151u, 0x00002458u, 0x001900f5u, 0x0000005fu, 0x0000af84u, 0x000076ecu, + 0x00002204u, 0x000076ecu, 0x00002223u, 0x000076ecu, 0x000022a9u, 0x000076ecu, 0x000022d4u, 0x000076ecu, + 0x000022d5u, 0x000076ecu, 0x000022e3u, 0x000076ecu, 0x000022efu, 0x000076ecu, 0x000022fbu, 0x000076e1u, + 0x00002448u, 0x000076e1u, 0x00002456u, 0x000076e1u, 0x00002458u, 0x001900f5u, 0x0000005fu, 0x0000ae02u, + 0x000076c8u, 0x00002204u, 0x000076c8u, 0x00002223u, 0x000076c8u, 0x000022a9u, 0x000076c8u, 0x000022d4u, + 0x000076c8u, 0x000022d5u, 0x000076c8u, 0x000022e3u, 0x000076c8u, 0x000022efu, 0x000076c8u, 0x000022fbu, + 0x000076bdu, 0x00002448u, 0x000076bdu, 0x00002456u, 0x000076bdu, 0x00002458u, 0x001900f5u, 0x0000003cu, + 0x0000ac74u, 0x00007644u, 0x00002204u, 0x00007644u, 0x00002223u, 0x00007644u, 0x000022a9u, 0x00007644u, + 0x000022d4u, 0x00007644u, 0x000022d5u, 0x00007644u, 0x000022e3u, 0x00007644u, 0x000022efu, 0x00007644u, + 0x000022fbu, 0x0000763eu, 0x00002448u, 0x0000763eu, 0x00002456u, 0x0000763eu, 0x00002458u, 0x001900f5u, + 0x0000003cu, 0x0000aaddu, 0x00007635u, 0x00002204u, 0x00007635u, 0x00002223u, 0x00007635u, 0x000022a9u, + 0x00007635u, 0x000022d4u, 0x00007635u, 0x000022d5u, 0x00007635u, 0x000022e3u, 0x00007635u, 0x000022efu, + 0x00007635u, 0x000022fbu, 0x0000762fu, 0x00002448u, 0x0000762fu, 0x00002456u, 0x0000762fu, 0x00002458u, + 0x001900f5u, 0x00000009u, 0x00008d61u, 0x00008d63u, 0x00002204u, 0x00008d63u, 0x00002223u, 0x00008d63u, + 0x000022a9u, 0x00008d63u, 0x000022d4u, 0x00008d63u, 0x000022d5u, 0x00008d63u, 0x000022e3u, 0x00008d63u, + 0x000022efu, 0x00008d63u, 0x000022fbu, 0x00008d63u, 0x00002448u, 0x00008d63u, 0x00002456u, 0x0000892cu, + 0x00002458u, 0x001900f5u, 0x00000008u, 0x00008c1fu, 0x00008c21u, 0x00002204u, 0x00008c21u, 0x00002223u, + 0x00008c21u, 0x000022a9u, 0x0000896du, 0x000022d4u, 0x0000896du, 0x000022d5u, 0x00008c21u, 0x000022e3u, + 0x00008c21u, 0x000022efu, 0x00008c21u, 0x000022fbu, 0x00008c21u, 0x00002448u, 0x00008c21u, 0x00002456u, + 0x0000245eu, 0x00002458u, 0x001900f5u, 0x00000008u, 0x00008addu, 0x00008adfu, 0x00002204u, 0x00008adfu, + 0x00002223u, 0x00008adfu, 0x000022a9u, 0x00000382u, 0x000022d4u, 0x00000382u, 0x000022d5u, 0x00000627u, + 0x000022e3u, 0x00008adfu, 0x000022efu, 0x00008adfu, 0x000022fbu, 0x00008adfu, 0x00002448u, 0x00008adfu, + 0x00002456u, 0x000088fbu, 0x00002458u, 0x001900f5u, 0x00000008u, 0x00008970u, 0x00008972u, 0x00002204u, + 0x00008972u, 0x00002223u, 0x00008972u, 0x000022a9u, 0x00008972u, 0x000022d4u, 0x00008972u, 0x000022d5u, + 0x00008972u, 0x000022e3u, 0x00008972u, 0x000022efu, 0x00008972u, 0x000022fbu, 0x00008972u, 0x00002448u, + 0x00008972u, 0x00002456u, 0x00002466u, 0x00002458u, 0x001900f5u, 0x0000005du, 0x0000896fu, 0x00000548u, + 0x00002204u, 0x00000548u, 0x00002223u, 0x00000548u, 0x000022a9u, 0x00000548u, 0x000022d4u, 0x00000563u, + 0x000022d5u, 0x000022e4u, 0x000022e3u, 0x00000548u, 0x000022efu, 0x00000548u, 0x000022fbu, 0x00000548u, + 0x00002448u, 0x00000548u, 0x00002456u, 0x00000563u, 0x00002458u, 0x000300f7u, 0x00002014u, 0x00000000u, + 0x000400fau, 0x0000896fu, 0x00002013u, 0x00002014u, 0x000200f8u, 0x00002013u, 0x000500c7u, 0x00000008u, + 0x00002017u, 0x00008addu, 0x00000627u, 0x000500abu, 0x0000005du, 0x00002018u, 0x00002017u, 0x00000208u, + 0x000300f7u, 0x0000201au, 0x00000000u, 0x000400fau, 0x00002018u, 0x00002019u, 0x00002020u, 0x000200f8u, + 0x00002020u, 0x000500c7u, 0x00000008u, 0x00002023u, 0x00008addu, 0x00000382u, 0x000500abu, 0x0000005du, + 0x00002024u, 0x00002023u, 0x00000208u, 0x000300f7u, 0x00002026u, 0x00000000u, 0x000400fau, 0x00002024u, + 0x00002025u, 0x0000202eu, 0x000200f8u, 0x0000202eu, 0x000500c3u, 0x00000008u, 0x00006782u, 0x00008c1fu, + 0x00000269u, 0x000500c7u, 0x00000008u, 0x00006785u, 0x00008c1fu, 0x0000038bu, 0x00080041u, 0x0000027cu, + 0x0000678du, 0x00000a16u, 0x00000208u, 0x00002008u, 0x00000208u, 0x0000048au, 0x0004003du, 0x0000022eu, + 0x0000678eu, 0x0000678du, 0x00040071u, 0x00000006u, 0x0000678fu, 0x0000678eu, 0x00070041u, 0x00000239u, + 0x00006849u, 0x00000237u, 0x00000208u, 0x00002008u, 0x00000263u, 0x0004003du, 0x0000022fu, 0x0000684au, + 0x00006849u, 0x00040071u, 0x0000023cu, 0x0000684bu, 0x0000684au, 0x0004007cu, 0x00000009u, 0x0000684cu, + 0x0000684bu, 0x00070041u, 0x00000239u, 0x0000684eu, 0x00000237u, 0x00000208u, 0x00002008u, 0x00000269u, + 0x0004003du, 0x0000022fu, 0x0000684fu, 0x0000684eu, 0x00040071u, 0x0000023cu, 0x00006850u, 0x0000684fu, + 0x0004007cu, 0x00000009u, 0x00006851u, 0x00006850u, 0x00070041u, 0x00000275u, 0x00006856u, 0x00000237u, + 0x00000208u, 0x00002008u, 0x00000274u, 0x0004003du, 0x00000230u, 0x00006857u, 0x00006856u, 0x00040071u, + 0x00000006u, 0x00006858u, 0x00006857u, 0x0004007cu, 0x00000008u, 0x00006859u, 0x00006858u, 0x00070041u, + 0x0000027cu, 0x0000685bu, 0x00000237u, 0x00000208u, 0x00002008u, 0x0000027bu, 0x0004003du, 0x0000022eu, + 0x0000685cu, 0x0000685bu, 0x00040071u, 0x00000006u, 0x0000685du, 0x0000685cu, 0x0004007cu, 0x00000008u, + 0x0000685eu, 0x0000685du, 0x00070041u, 0x00000239u, 0x0000686cu, 0x000002b7u, 0x00000208u, 0x0000678fu, + 0x00000208u, 0x0004003du, 0x0000022fu, 0x0000686du, 0x0000686cu, 0x00040071u, 0x0000023cu, 0x0000686eu, + 0x0000686du, 0x0004007cu, 0x00000009u, 0x0000686fu, 0x0000686eu, 0x00070041u, 0x00000239u, 0x00006871u, + 0x000002b7u, 0x00000208u, 0x0000678fu, 0x00000217u, 0x0004003du, 0x0000022fu, 0x00006872u, 0x00006871u, + 0x00040071u, 0x0000023cu, 0x00006873u, 0x00006872u, 0x0004007cu, 0x00000009u, 0x00006874u, 0x00006873u, + 0x00070041u, 0x00000270u, 0x00006876u, 0x000002b7u, 0x00000208u, 0x0000678fu, 0x0000021au, 0x0004003du, + 0x00000006u, 0x00006877u, 0x00006876u, 0x00070041u, 0x0000027cu, 0x00006879u, 0x000002b7u, 0x00000208u, + 0x0000678fu, 0x0000021du, 0x0004003du, 0x0000022eu, 0x0000687au, 0x00006879u, 0x00040071u, 0x00000006u, + 0x0000687bu, 0x0000687au, 0x0004007cu, 0x00000008u, 0x0000687cu, 0x0000687bu, 0x00070041u, 0x0000027cu, + 0x0000687eu, 0x000002b7u, 0x00000208u, 0x0000678fu, 0x00000220u, 0x0004003du, 0x0000022eu, 0x0000687fu, + 0x0000687eu, 0x00040071u, 0x00000006u, 0x00006880u, 0x0000687fu, 0x0004007cu, 0x00000008u, 0x00006881u, + 0x00006880u, 0x000500c7u, 0x00000006u, 0x00006796u, 0x00006877u, 0x00000360u, 0x000500abu, 0x0000005du, + 0x00006797u, 0x00006796u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000679au, 0x00006877u, 0x0000048au, + 0x000500abu, 0x0000005du, 0x0000679bu, 0x0000679au, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000679eu, + 0x00006877u, 0x000003c9u, 0x000500abu, 0x0000005du, 0x0000679fu, 0x0000679eu, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x000067a2u, 0x00006877u, 0x0000037cu, 0x000500abu, 0x0000005du, 0x000067a3u, 0x000067a2u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x000067a6u, 0x00006877u, 0x00000a3cu, 0x000500abu, 0x0000005du, + 0x000067a7u, 0x000067a6u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x000067aau, 0x00006877u, 0x00000a42u, + 0x000500abu, 0x0000005du, 0x000067abu, 0x000067aau, 0x00000379u, 0x000500c7u, 0x00000006u, 0x000067aeu, + 0x00006877u, 0x00000a48u, 0x000500abu, 0x0000005du, 0x000067afu, 0x000067aeu, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x000067b2u, 0x00006877u, 0x00000a4eu, 0x000500abu, 0x0000005du, 0x000067b3u, 0x000067b2u, + 0x00000379u, 0x000300f7u, 0x0000688eu, 0x00000000u, 0x000400fau, 0x000067a3u, 0x00006889u, 0x0000688du, + 0x000200f8u, 0x0000688du, 0x000200f9u, 0x0000688eu, 0x000200f8u, 0x00006889u, 0x00050051u, 0x00000008u, + 0x0000688bu, 0x00008ed0u, 0x00000003u, 0x000500c7u, 0x00000008u, 0x0000688cu, 0x0000688bu, 0x0000092fu, + 0x000200f9u, 0x0000688eu, 0x000200f8u, 0x0000688eu, 0x000700f5u, 0x00000008u, 0x00009038u, 0x0000688cu, + 0x00006889u, 0x0000092fu, 0x0000688du, 0x000300f7u, 0x0000689fu, 0x00000000u, 0x000d00fbu, 0x0000065cu, + 0x0000689fu, 0x00000000u, 0x00006890u, 0x00000001u, 0x00006891u, 0x00000002u, 0x00006894u, 0x00000003u, + 0x00006899u, 0x00000004u, 0x0000689cu, 0x000200f8u, 0x0000689cu, 0x0008004fu, 0x0000003cu, 0x0000689eu, + 0x00008ed0u, 0x00008ed0u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000689fu, 0x000200f8u, + 0x00006899u, 0x0008004fu, 0x0000003cu, 0x0000689bu, 0x00008ed0u, 0x00008ed0u, 0x00000000u, 0x00000000u, + 0x00000000u, 0x000200f9u, 0x0000689fu, 0x000200f8u, 0x00006894u, 0x0008004fu, 0x0000003cu, 0x00006896u, + 0x00008ed0u, 0x00008ed0u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, 0x0000003cu, 0x00006898u, + 0x00006896u, 0x0000bdbau, 0x000200f9u, 0x0000689fu, 0x000200f8u, 0x00006891u, 0x0008004fu, 0x0000003cu, + 0x00006893u, 0x00008ed0u, 0x00008ed0u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000200f9u, 0x0000689fu, + 0x000200f8u, 0x00006890u, 0x000200f9u, 0x0000689fu, 0x000200f8u, 0x0000689fu, 0x000f00f5u, 0x00000008u, + 0x000091aau, 0x00009038u, 0x0000688eu, 0x0000092fu, 0x00006890u, 0x0000092fu, 0x00006891u, 0x00009038u, + 0x00006894u, 0x00009038u, 0x00006899u, 0x00009038u, 0x0000689cu, 0x000f00f5u, 0x0000003cu, 0x0000903au, + 0x0000903eu, 0x0000688eu, 0x0000093au, 0x00006890u, 0x00006893u, 0x00006891u, 0x00006898u, 0x00006894u, + 0x0000689bu, 0x00006899u, 0x0000689eu, 0x0000689cu, 0x00050051u, 0x00000008u, 0x000068a2u, 0x0000903au, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000068a3u, 0x0000903au, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000068a4u, 0x0000903au, 0x00000002u, 0x00070050u, 0x00000009u, 0x000068a5u, 0x000068a2u, 0x000068a3u, + 0x000068a4u, 0x000091aau, 0x000500c3u, 0x00000008u, 0x000067b8u, 0x000091aau, 0x00000223u, 0x00050080u, + 0x00000008u, 0x000068efu, 0x00008addu, 0x000067b8u, 0x000500afu, 0x0000005du, 0x000068f0u, 0x000068efu, + 0x00000263u, 0x000300f7u, 0x0000695au, 0x00000000u, 0x000400fau, 0x0000679bu, 0x000068bcu, 0x00006946u, + 0x000200f8u, 0x00006946u, 0x00050082u, 0x00000008u, 0x00006949u, 0x00000545u, 0x0000685eu, 0x0007000cu, + 0x00000008u, 0x0000694au, 0x00000001u, 0x00000027u, 0x00006949u, 0x00000220u, 0x00050050u, 0x0000005fu, + 0x0000bdc7u, 0x00000208u, 0x0000694au, 0x000400a8u, 0x0000005du, 0x00006951u, 0x00006797u, 0x000300f7u, + 0x00006957u, 0x00000000u, 0x000400fau, 0x00006951u, 0x00006952u, 0x00006957u, 0x000200f8u, 0x00006952u, + 0x000400a8u, 0x0000005du, 0x00006954u, 0x000068f0u, 0x000500a7u, 0x0000005du, 0x00006956u, 0x00006954u, + 0x000067afu, 0x000200f9u, 0x00006957u, 0x000200f8u, 0x00006957u, 0x000700f5u, 0x0000005du, 0x00006958u, + 0x00006797u, 0x00006946u, 0x00006956u, 0x00006952u, 0x000200f9u, 0x0000695au, 0x000200f8u, 0x000068bcu, + 0x000500c3u, 0x00000008u, 0x00006965u, 0x000091afu, 0x00000274u, 0x000500c7u, 0x00000008u, 0x00006967u, + 0x000091afu, 0x0000040fu, 0x00050082u, 0x00000008u, 0x00006969u, 0x00000226u, 0x00006965u, 0x0007000cu, + 0x00000008u, 0x0000696au, 0x00000001u, 0x0000002au, 0x00006969u, 0x00000208u, 0x000500c3u, 0x00000008u, + 0x0000696cu, 0x00000416u, 0x00006965u, 0x00050082u, 0x00000008u, 0x0000696du, 0x00000416u, 0x0000696cu, + 0x000500c4u, 0x00000008u, 0x00006970u, 0x00006967u, 0x0000696au, 0x00050080u, 0x00000008u, 0x00006972u, + 0x00006970u, 0x0000696du, 0x000500c4u, 0x00000008u, 0x00006976u, 0x00000217u, 0x0000931bu, 0x000500c7u, + 0x00000008u, 0x000068c3u, 0x00006965u, 0x00000545u, 0x00050082u, 0x00000008u, 0x000068c6u, 0x0000685eu, + 0x0000931bu, 0x0008000cu, 0x00000008u, 0x000068c7u, 0x00000001u, 0x0000002du, 0x000068c6u, 0x00000208u, + 0x00000220u, 0x00050082u, 0x00000008u, 0x000068cbu, 0x0000931bu, 0x0000685eu, 0x0008000cu, 0x00000008u, + 0x000068ccu, 0x00000001u, 0x0000002du, 0x000068cbu, 0x00000208u, 0x00000220u, 0x00050050u, 0x0000005fu, + 0x0000bdc8u, 0x000068c7u, 0x000068ccu, 0x000500b1u, 0x0000005du, 0x000068cfu, 0x000068c3u, 0x0000021du, + 0x000300f7u, 0x000068dbu, 0x00000000u, 0x000400fau, 0x000068cfu, 0x000068d0u, 0x000068dbu, 0x000200f8u, + 0x000068d0u, 0x000500abu, 0x0000005du, 0x000068d2u, 0x00006976u, 0x00000558u, 0x000300f7u, 0x000068dau, + 0x00000000u, 0x000400fau, 0x000068d2u, 0x000068d3u, 0x000068d9u, 0x000200f8u, 0x000068d9u, 0x000200f9u, + 0x000068dau, 0x000200f8u, 0x000068d3u, 0x000500c4u, 0x00000008u, 0x000068d5u, 0x00006976u, 0x00000217u, + 0x000500c3u, 0x00000008u, 0x000068d7u, 0x0000055eu, 0x000068c3u, 0x0007000cu, 0x00000008u, 0x000068d8u, + 0x00000001u, 0x0000002au, 0x000068d5u, 0x000068d7u, 0x000200f9u, 0x000068dau, 0x000200f8u, 0x000068dau, + 0x000700f5u, 0x00000008u, 0x000095f6u, 0x000068d8u, 0x000068d3u, 0x00000564u, 0x000068d9u, 0x000600a9u, + 0x0000005du, 0x0000bdeeu, 0x000068d2u, 0x00000548u, 0x00000563u, 0x000200f9u, 0x000068dbu, 0x000200f8u, + 0x000068dbu, 0x000700f5u, 0x0000005du, 0x000095f9u, 0x00000548u, 0x000068bcu, 0x0000bdeeu, 0x000068dau, + 0x000700f5u, 0x00000008u, 0x000095f5u, 0x00006976u, 0x000068bcu, 0x000095f6u, 0x000068dau, 0x000500c5u, + 0x00000008u, 0x000068deu, 0x00006859u, 0x000095f5u, 0x000500abu, 0x0000005du, 0x0000697au, 0x000068deu, + 0x00000208u, 0x000300f7u, 0x0000697fu, 0x00000000u, 0x000400fau, 0x0000697au, 0x0000697bu, 0x0000697fu, + 0x000200f8u, 0x0000697bu, 0x0006000cu, 0x00000008u, 0x0000697du, 0x00000001u, 0x0000004au, 0x000068deu, + 0x000500c4u, 0x00000008u, 0x0000697eu, 0x00000217u, 0x0000697du, 0x000200f9u, 0x0000697fu, 0x000200f8u, + 0x0000697fu, 0x000700f5u, 0x00000008u, 0x000095f7u, 0x000068deu, 0x000068dbu, 0x0000697eu, 0x0000697bu, + 0x000500c4u, 0x00000008u, 0x000068e2u, 0x000095f7u, 0x0000021du, 0x000400a8u, 0x0000005du, 0x000068e4u, + 0x000095f9u, 0x000300f7u, 0x000068ebu, 0x00000000u, 0x000400fau, 0x000068e4u, 0x000068e5u, 0x000068ebu, + 0x000200f8u, 0x000068e5u, 0x00050080u, 0x00000008u, 0x000068e8u, 0x00006782u, 0x000068e2u, 0x000500afu, + 0x0000005du, 0x000068eau, 0x000068e8u, 0x00006972u, 0x000200f9u, 0x000068ebu, 0x000200f8u, 0x000068ebu, + 0x000700f5u, 0x0000005du, 0x000068ecu, 0x000095f9u, 0x0000697fu, 0x000068eau, 0x000068e5u, 0x000400a8u, + 0x0000005du, 0x000068f2u, 0x00006797u, 0x000300f7u, 0x000068fau, 0x00000000u, 0x000400fau, 0x000068f2u, + 0x000068f3u, 0x000068fau, 0x000200f8u, 0x000068f3u, 0x000400a8u, 0x0000005du, 0x000068f5u, 0x000068f0u, + 0x000500a7u, 0x0000005du, 0x000068f7u, 0x000068f5u, 0x000067afu, 0x000500a7u, 0x0000005du, 0x000068f9u, + 0x000068f7u, 0x000068ecu, 0x000200f9u, 0x000068fau, 0x000200f8u, 0x000068fau, 0x000700f5u, 0x0000005du, + 0x000068fbu, 0x00006797u, 0x000068ebu, 0x000068f9u, 0x000068f3u, 0x000500aau, 0x0000005du, 0x000068feu, + 0x00006972u, 0x00000422u, 0x000500b1u, 0x0000005du, 0x00006901u, 0x00006782u, 0x00006972u, 0x00050082u, + 0x00000008u, 0x00006904u, 0x00006782u, 0x000068e2u, 0x000500b3u, 0x0000005du, 0x00006908u, 0x00006904u, + 0x00006972u, 0x000500a6u, 0x0000005du, 0x00006909u, 0x000095f9u, 0x00006908u, 0x000300f7u, 0x00006945u, + 0x00000000u, 0x000b00fbu, 0x00006881u, 0x00006945u, 0x00000000u, 0x0000690bu, 0x00000001u, 0x00006915u, + 0x00000002u, 0x0000693au, 0x00000003u, 0x0000693eu, 0x000200f8u, 0x0000693eu, 0x000500a7u, 0x0000005du, + 0x00006941u, 0x000068ecu, 0x00006909u, 0x000400a8u, 0x0000005du, 0x00006943u, 0x000068feu, 0x000500a7u, + 0x0000005du, 0x00006944u, 0x00006941u, 0x00006943u, 0x000200f9u, 0x00006945u, 0x000200f8u, 0x0000693au, + 0x000500a6u, 0x0000005du, 0x0000693du, 0x00006901u, 0x000068feu, 0x000200f9u, 0x00006945u, 0x000200f8u, + 0x00006915u, 0x000400a8u, 0x0000005du, 0x00006917u, 0x00006901u, 0x000400a8u, 0x0000005du, 0x00006919u, + 0x000068ecu, 0x000500a6u, 0x0000005du, 0x0000691au, 0x00006917u, 0x00006919u, 0x000400a8u, 0x0000005du, + 0x0000691cu, 0x000068f0u, 0x000500a6u, 0x0000005du, 0x0000691du, 0x0000691au, 0x0000691cu, 0x000300f7u, + 0x00006939u, 0x00000000u, 0x000400fau, 0x0000691du, 0x0000691eu, 0x00006928u, 0x000200f8u, 0x00006928u, + 0x000500c7u, 0x00000008u, 0x0000692au, 0x000095f7u, 0x00000564u, 0x0006000cu, 0x00000008u, 0x00006984u, + 0x00000001u, 0x0000004au, 0x0000692au, 0x0007000cu, 0x00000008u, 0x00006985u, 0x00000001u, 0x0000002au, + 0x00006984u, 0x00000208u, 0x000500c3u, 0x00000008u, 0x0000692eu, 0x00006972u, 0x00006985u, 0x000500c3u, + 0x00000008u, 0x00006931u, 0x00006782u, 0x00006985u, 0x00050082u, 0x00000008u, 0x00006932u, 0x0000692eu, + 0x00006931u, 0x000500c7u, 0x00000008u, 0x00006933u, 0x00006932u, 0x00000545u, 0x00050084u, 0x00000008u, + 0x00006936u, 0x00006933u, 0x00008addu, 0x000500c3u, 0x00000008u, 0x00006937u, 0x00006936u, 0x0000021du, + 0x0007000cu, 0x00000008u, 0x00006938u, 0x00000001u, 0x00000027u, 0x00006937u, 0x00000263u, 0x000200f9u, + 0x00006939u, 0x000200f8u, 0x0000691eu, 0x000400a8u, 0x0000005du, 0x00006920u, 0x000068feu, 0x000300f7u, + 0x00006926u, 0x00000000u, 0x000400fau, 0x00006920u, 0x00006921u, 0x00006926u, 0x000200f8u, 0x00006921u, + 0x000600a9u, 0x0000005du, 0x00006925u, 0x000068f0u, 0x00006901u, 0x00006909u, 0x000200f9u, 0x00006926u, + 0x000200f8u, 0x00006926u, 0x000700f5u, 0x0000005du, 0x00006927u, 0x000068feu, 0x0000691eu, 0x00006925u, + 0x00006921u, 0x000200f9u, 0x00006939u, 0x000200f8u, 0x00006939u, 0x000700f5u, 0x00000008u, 0x0000960au, + 0x00008addu, 0x00006926u, 0x00006938u, 0x00006928u, 0x000700f5u, 0x0000005du, 0x00009606u, 0x00006927u, + 0x00006926u, 0x00000563u, 0x00006928u, 0x000200f9u, 0x00006945u, 0x000200f8u, 0x0000690bu, 0x000400a8u, + 0x0000005du, 0x0000690du, 0x000068feu, 0x000300f7u, 0x00006913u, 0x00000000u, 0x000400fau, 0x0000690du, + 0x0000690eu, 0x00006913u, 0x000200f8u, 0x0000690eu, 0x000600a9u, 0x0000005du, 0x00006912u, 0x000068f0u, + 0x00006901u, 0x00006909u, 0x000200f9u, 0x00006913u, 0x000200f8u, 0x00006913u, 0x000700f5u, 0x0000005du, + 0x00006914u, 0x000068feu, 0x0000690bu, 0x00006912u, 0x0000690eu, 0x000200f9u, 0x00006945u, 0x000200f8u, + 0x00006945u, 0x000d00f5u, 0x00000008u, 0x00009608u, 0x00008addu, 0x000068fau, 0x00008addu, 0x00006913u, + 0x0000960au, 0x00006939u, 0x00008addu, 0x0000693au, 0x00008addu, 0x0000693eu, 0x000d00f5u, 0x0000005du, + 0x00009605u, 0x00000548u, 0x000068fau, 0x00006914u, 0x00006913u, 0x00009606u, 0x00006939u, 0x0000693du, + 0x0000693au, 0x00006944u, 0x0000693eu, 0x000200f9u, 0x0000695au, 0x000200f8u, 0x0000695au, 0x000700f5u, + 0x0000005fu, 0x00009617u, 0x0000bdc8u, 0x00006945u, 0x0000bdc7u, 0x00006957u, 0x000700f5u, 0x0000005du, + 0x0000960du, 0x000068fbu, 0x00006945u, 0x00006958u, 0x00006957u, 0x000700f5u, 0x00000008u, 0x00009607u, + 0x00009608u, 0x00006945u, 0x00008addu, 0x00006957u, 0x000700f5u, 0x0000005du, 0x00009604u, 0x00009605u, + 0x00006945u, 0x00000563u, 0x00006957u, 0x000300f7u, 0x000067d3u, 0x00000000u, 0x000400fau, 0x00009604u, + 0x000067cdu, 0x000067d3u, 0x000200f8u, 0x000067cdu, 0x000400a8u, 0x0000005du, 0x000067cfu, 0x000067afu, + 0x000500abu, 0x0000005du, 0x000067d1u, 0x00009607u, 0x00000208u, 0x000500a6u, 0x0000005du, 0x000067d2u, + 0x000067cfu, 0x000067d1u, 0x000200f9u, 0x000067d3u, 0x000200f8u, 0x000067d3u, 0x000700f5u, 0x0000005du, + 0x000067d4u, 0x00009604u, 0x0000695au, 0x000067d2u, 0x000067cdu, 0x000300f7u, 0x0000681du, 0x00000000u, + 0x000400fau, 0x000067d4u, 0x000067d5u, 0x0000681du, 0x000200f8u, 0x000067d5u, 0x000300f7u, 0x000067f2u, + 0x00000000u, 0x000400fau, 0x000067abu, 0x000067e1u, 0x000067f2u, 0x000200f8u, 0x000067e1u, 0x00050051u, + 0x00000008u, 0x00006992u, 0x0000686fu, 0x00000002u, 0x000300f7u, 0x000069a3u, 0x00000000u, 0x000b00fbu, + 0x00006992u, 0x000069a3u, 0x00000000u, 0x00006993u, 0x00000001u, 0x00006997u, 0x00000002u, 0x0000699bu, + 0x00000003u, 0x0000699fu, 0x000200f8u, 0x0000699fu, 0x0008004fu, 0x0000003cu, 0x000069a2u, 0x0000684cu, + 0x0000684cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069a3u, 0x000200f8u, 0x0000699bu, + 0x0008004fu, 0x0000003cu, 0x0000699eu, 0x00006851u, 0x00006851u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000069a3u, 0x000200f8u, 0x00006997u, 0x0008004fu, 0x0000003cu, 0x0000699au, 0x000068a5u, + 0x000068a5u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069a3u, 0x000200f8u, 0x00006993u, + 0x0008004fu, 0x0000003cu, 0x00006996u, 0x00008d61u, 0x00008d61u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000069a3u, 0x000200f8u, 0x000069a3u, 0x000d00f5u, 0x0000003cu, 0x00009ab9u, 0x00009ac5u, + 0x000067e1u, 0x00006996u, 0x00006993u, 0x0000699au, 0x00006997u, 0x0000699eu, 0x0000699bu, 0x000069a2u, + 0x0000699fu, 0x00050051u, 0x00000008u, 0x000069afu, 0x0000686fu, 0x00000000u, 0x000300f7u, 0x000069c0u, + 0x00000000u, 0x000b00fbu, 0x000069afu, 0x000069c0u, 0x00000000u, 0x000069b0u, 0x00000001u, 0x000069b4u, + 0x00000002u, 0x000069b8u, 0x00000003u, 0x000069bcu, 0x000200f8u, 0x000069bcu, 0x0008004fu, 0x0000003cu, + 0x000069bfu, 0x0000684cu, 0x0000684cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069c0u, + 0x000200f8u, 0x000069b8u, 0x0008004fu, 0x0000003cu, 0x000069bbu, 0x00006851u, 0x00006851u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069c0u, 0x000200f8u, 0x000069b4u, 0x0008004fu, 0x0000003cu, + 0x000069b7u, 0x000068a5u, 0x000068a5u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069c0u, + 0x000200f8u, 0x000069b0u, 0x0008004fu, 0x0000003cu, 0x000069b3u, 0x00008d61u, 0x00008d61u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069c0u, 0x000200f8u, 0x000069c0u, 0x000d00f5u, 0x0000003cu, + 0x00009930u, 0x0000993eu, 0x000069a3u, 0x000069b3u, 0x000069b0u, 0x000069b7u, 0x000069b4u, 0x000069bbu, + 0x000069b8u, 0x000069bfu, 0x000069bcu, 0x00050051u, 0x00000008u, 0x000069ddu, 0x0000686fu, 0x00000001u, + 0x000300f7u, 0x000069e8u, 0x00000000u, 0x000b00fbu, 0x000069ddu, 0x000069e8u, 0x00000000u, 0x000069deu, + 0x00000001u, 0x000069e1u, 0x00000002u, 0x000069e4u, 0x00000003u, 0x000069e7u, 0x000200f8u, 0x000069e7u, + 0x000200f9u, 0x000069e8u, 0x000200f8u, 0x000069e4u, 0x000200f9u, 0x000069e8u, 0x000200f8u, 0x000069e1u, + 0x00050051u, 0x00000008u, 0x000069e3u, 0x0000684cu, 0x00000003u, 0x000200f9u, 0x000069e8u, 0x000200f8u, + 0x000069deu, 0x00050051u, 0x00000008u, 0x000069e0u, 0x00008d61u, 0x00000003u, 0x000200f9u, 0x000069e8u, + 0x000200f8u, 0x000069e8u, 0x000d00f5u, 0x00000008u, 0x00009622u, 0x00009632u, 0x000069c0u, 0x000069e0u, + 0x000069deu, 0x000069e3u, 0x000069e1u, 0x00008970u, 0x000069e4u, 0x00000208u, 0x000069e7u, 0x00050051u, + 0x00000008u, 0x000069eau, 0x0000686fu, 0x00000003u, 0x000300f7u, 0x000069f4u, 0x00000000u, 0x000b00fbu, + 0x000069eau, 0x000069f4u, 0x00000000u, 0x000069ebu, 0x00000001u, 0x000069efu, 0x00000002u, 0x000069f2u, + 0x00000003u, 0x000069f3u, 0x000200f8u, 0x000069f3u, 0x000200f9u, 0x000069f4u, 0x000200f8u, 0x000069f2u, + 0x000200f9u, 0x000069f4u, 0x000200f8u, 0x000069efu, 0x000200f9u, 0x000069f4u, 0x000200f8u, 0x000069ebu, + 0x000400c8u, 0x00000008u, 0x000069edu, 0x00009622u, 0x000500c7u, 0x00000008u, 0x000069eeu, 0x000069edu, + 0x00000390u, 0x000200f9u, 0x000069f4u, 0x000200f8u, 0x000069f4u, 0x000d00f5u, 0x00000008u, 0x000097a7u, + 0x000097b8u, 0x000069e8u, 0x000069eeu, 0x000069ebu, 0x000091aau, 0x000069efu, 0x00000390u, 0x000069f2u, + 0x00000208u, 0x000069f3u, 0x000500c3u, 0x00000008u, 0x000069f6u, 0x00009622u, 0x0000021du, 0x000500c3u, + 0x00000008u, 0x000069f8u, 0x000097a7u, 0x0000021du, 0x000500aau, 0x0000005du, 0x000069fbu, 0x000069eau, + 0x00000217u, 0x000300f7u, 0x00006a07u, 0x00000000u, 0x000400fau, 0x000069fbu, 0x000069fcu, 0x00006a07u, + 0x000200f8u, 0x000069fcu, 0x00050051u, 0x00000008u, 0x000069ffu, 0x00009617u, 0x00000000u, 0x000500c3u, + 0x00000008u, 0x00006a00u, 0x000069f6u, 0x000069ffu, 0x000500c7u, 0x00000008u, 0x00006a01u, 0x00006a00u, + 0x000004d2u, 0x00050051u, 0x00000008u, 0x00006a04u, 0x00009617u, 0x00000001u, 0x000500c3u, 0x00000008u, + 0x00006a05u, 0x000069f8u, 0x00006a04u, 0x000500c5u, 0x00000008u, 0x00006a06u, 0x00006a05u, 0x0000021du, + 0x000200f9u, 0x00006a07u, 0x000200f8u, 0x00006a07u, 0x000700f5u, 0x00000008u, 0x00009c39u, 0x000069f8u, + 0x000069f4u, 0x00006a06u, 0x000069fcu, 0x000700f5u, 0x00000008u, 0x00009ab2u, 0x000069f6u, 0x000069f4u, + 0x00006a01u, 0x000069fcu, 0x00060050u, 0x0000003cu, 0x00006a0eu, 0x00009ab2u, 0x00009ab2u, 0x00009ab2u, + 0x00050084u, 0x0000003cu, 0x00006a0fu, 0x00009930u, 0x00006a0eu, 0x00050080u, 0x00000008u, 0x00006a16u, + 0x00009c39u, 0x00000217u, 0x00060050u, 0x0000003cu, 0x00006a17u, 0x00006a16u, 0x00006a16u, 0x00006a16u, + 0x00050084u, 0x0000003cu, 0x00006a18u, 0x00009ab9u, 0x00006a17u, 0x00050080u, 0x0000003cu, 0x00006a19u, + 0x00006a0fu, 0x00006a18u, 0x000500c3u, 0x0000003cu, 0x00006a21u, 0x00006a19u, 0x0000bdbeu, 0x000500c7u, + 0x0000003cu, 0x00006a54u, 0x00006a21u, 0x000003a2u, 0x00050051u, 0x00000008u, 0x000067ebu, 0x00006a54u, + 0x00000000u, 0x00060052u, 0x00000009u, 0x00007572u, 0x000067ebu, 0x00008d61u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000067edu, 0x00006a54u, 0x00000001u, 0x00060052u, 0x00000009u, 0x00007574u, 0x000067edu, + 0x00007572u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000067efu, 0x00006a54u, 0x00000002u, 0x00060052u, + 0x00000009u, 0x00007576u, 0x000067efu, 0x00007574u, 0x00000002u, 0x000200f9u, 0x000067f2u, 0x000200f8u, + 0x000067f2u, 0x000700f5u, 0x0000003cu, 0x0000bce4u, 0x00009ac5u, 0x000067d5u, 0x00009ab9u, 0x00006a07u, + 0x000700f5u, 0x0000003cu, 0x0000bcbdu, 0x0000993eu, 0x000067d5u, 0x00006a21u, 0x00006a07u, 0x000700f5u, + 0x00000008u, 0x0000bc95u, 0x000097b8u, 0x000067d5u, 0x00009c39u, 0x00006a07u, 0x000700f5u, 0x00000008u, + 0x0000bc6du, 0x00009632u, 0x000067d5u, 0x00009ab2u, 0x00006a07u, 0x000700f5u, 0x00000009u, 0x00009c48u, + 0x00008d61u, 0x000067d5u, 0x00007576u, 0x00006a07u, 0x00070050u, 0x000005feu, 0x0000bdefu, 0x000067abu, + 0x000067abu, 0x000067abu, 0x000067abu, 0x000600a9u, 0x00000009u, 0x0000bdf0u, 0x0000bdefu, 0x00006874u, + 0x0000686fu, 0x000300f7u, 0x00006b26u, 0x00000000u, 0x000300fbu, 0x00000379u, 0x00006a61u, 0x000200f8u, + 0x00006a61u, 0x00050051u, 0x00000008u, 0x00006a63u, 0x0000bdf0u, 0x00000002u, 0x000300f7u, 0x00006a74u, + 0x00000000u, 0x000b00fbu, 0x00006a63u, 0x00006a74u, 0x00000000u, 0x00006a64u, 0x00000001u, 0x00006a68u, + 0x00000002u, 0x00006a6cu, 0x00000003u, 0x00006a70u, 0x000200f8u, 0x00006a70u, 0x0008004fu, 0x0000003cu, + 0x00006a73u, 0x0000684cu, 0x0000684cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a74u, + 0x000200f8u, 0x00006a6cu, 0x0008004fu, 0x0000003cu, 0x00006a6fu, 0x00006851u, 0x00006851u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a74u, 0x000200f8u, 0x00006a68u, 0x0008004fu, 0x0000003cu, + 0x00006a6bu, 0x000068a5u, 0x000068a5u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a74u, + 0x000200f8u, 0x00006a64u, 0x0008004fu, 0x0000003cu, 0x00006a67u, 0x00009c48u, 0x00009c48u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a74u, 0x000200f8u, 0x00006a74u, 0x000d00f5u, 0x0000003cu, + 0x0000a108u, 0x0000a115u, 0x00006a61u, 0x00006a67u, 0x00006a64u, 0x00006a6bu, 0x00006a68u, 0x00006a6fu, + 0x00006a6cu, 0x00006a73u, 0x00006a70u, 0x000400a8u, 0x0000005du, 0x00006a79u, 0x000068f0u, 0x000500a7u, + 0x0000005du, 0x00006a7au, 0x000067a7u, 0x00006a79u, 0x000300f7u, 0x00006a7du, 0x00000000u, 0x000400fau, + 0x00006a7au, 0x00006a7bu, 0x00006a7du, 0x000200f8u, 0x00006a7bu, 0x000200f9u, 0x00006b26u, 0x000200f8u, + 0x00006a7du, 0x00050051u, 0x00000008u, 0x00006a80u, 0x0000bdf0u, 0x00000000u, 0x000300f7u, 0x00006a91u, + 0x00000000u, 0x000b00fbu, 0x00006a80u, 0x00006a91u, 0x00000000u, 0x00006a81u, 0x00000001u, 0x00006a85u, + 0x00000002u, 0x00006a89u, 0x00000003u, 0x00006a8du, 0x000200f8u, 0x00006a8du, 0x0008004fu, 0x0000003cu, + 0x00006a90u, 0x0000684cu, 0x0000684cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a91u, + 0x000200f8u, 0x00006a89u, 0x0008004fu, 0x0000003cu, 0x00006a8cu, 0x00006851u, 0x00006851u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a91u, 0x000200f8u, 0x00006a85u, 0x0008004fu, 0x0000003cu, + 0x00006a88u, 0x000068a5u, 0x000068a5u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a91u, + 0x000200f8u, 0x00006a81u, 0x0008004fu, 0x0000003cu, 0x00006a84u, 0x00009c48u, 0x00009c48u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a91u, 0x000200f8u, 0x00006a91u, 0x000d00f5u, 0x0000003cu, + 0x00009f72u, 0x00009f81u, 0x00006a7du, 0x00006a84u, 0x00006a81u, 0x00006a88u, 0x00006a85u, 0x00006a8cu, + 0x00006a89u, 0x00006a90u, 0x00006a8du, 0x000400a8u, 0x0000005du, 0x00006a95u, 0x0000960du, 0x000400a8u, + 0x0000005du, 0x00006a96u, 0x00006a95u, 0x000300f7u, 0x00006aa7u, 0x00000000u, 0x000400fau, 0x00006a96u, + 0x00006a97u, 0x00006aa7u, 0x000200f8u, 0x00006a97u, 0x00050051u, 0x00000008u, 0x00006a99u, 0x0000bdf0u, + 0x00000001u, 0x000500aau, 0x0000005du, 0x00006a9au, 0x00006a99u, 0x00000208u, 0x000300f7u, 0x00006a9fu, + 0x00000000u, 0x000400fau, 0x00006a9au, 0x00006a9bu, 0x00006a9fu, 0x000200f8u, 0x00006a9bu, 0x00050051u, + 0x00000008u, 0x00006a9du, 0x0000bdf0u, 0x00000003u, 0x000500aau, 0x0000005du, 0x00006a9eu, 0x00006a9du, + 0x00000208u, 0x000200f9u, 0x00006a9fu, 0x000200f8u, 0x00006a9fu, 0x000700f5u, 0x0000005du, 0x00006aa0u, + 0x00006a9au, 0x00006a97u, 0x00006a9eu, 0x00006a9bu, 0x000300f7u, 0x00006aa5u, 0x00000000u, 0x000400fau, + 0x00006aa0u, 0x00006aa1u, 0x00006aa5u, 0x000200f8u, 0x00006aa1u, 0x00050051u, 0x00000008u, 0x00006aa3u, + 0x00009c48u, 0x00000003u, 0x000500aau, 0x0000005du, 0x00006aa4u, 0x00006aa3u, 0x00000390u, 0x000200f9u, + 0x00006aa5u, 0x000200f8u, 0x00006aa5u, 0x000700f5u, 0x0000005du, 0x00006aa6u, 0x00006aa0u, 0x00006a9fu, + 0x00006aa4u, 0x00006aa1u, 0x000200f9u, 0x00006aa7u, 0x000200f8u, 0x00006aa7u, 0x000700f5u, 0x0000005du, + 0x00006aa8u, 0x00006a95u, 0x00006a91u, 0x00006aa6u, 0x00006aa5u, 0x000300f7u, 0x00006aabu, 0x00000000u, + 0x000400fau, 0x00006aa8u, 0x00006aa9u, 0x00006aabu, 0x000200f8u, 0x00006aa9u, 0x000200f9u, 0x00006b26u, + 0x000200f8u, 0x00006aabu, 0x00050051u, 0x00000008u, 0x00006aaeu, 0x0000bdf0u, 0x00000001u, 0x000300f7u, + 0x00006ab9u, 0x00000000u, 0x000b00fbu, 0x00006aaeu, 0x00006ab9u, 0x00000000u, 0x00006aafu, 0x00000001u, + 0x00006ab2u, 0x00000002u, 0x00006ab5u, 0x00000003u, 0x00006ab8u, 0x000200f8u, 0x00006ab8u, 0x000200f9u, + 0x00006ab9u, 0x000200f8u, 0x00006ab5u, 0x000200f9u, 0x00006ab9u, 0x000200f8u, 0x00006ab2u, 0x00050051u, + 0x00000008u, 0x00006ab4u, 0x0000684cu, 0x00000003u, 0x000200f9u, 0x00006ab9u, 0x000200f8u, 0x00006aafu, + 0x00050051u, 0x00000008u, 0x00006ab1u, 0x00009c48u, 0x00000003u, 0x000200f9u, 0x00006ab9u, 0x000200f8u, + 0x00006ab9u, 0x000d00f5u, 0x00000008u, 0x00009c4au, 0x00009c5bu, 0x00006aabu, 0x00006ab1u, 0x00006aafu, + 0x00006ab4u, 0x00006ab2u, 0x00008970u, 0x00006ab5u, 0x00000208u, 0x00006ab8u, 0x00050051u, 0x00000008u, + 0x00006abbu, 0x0000bdf0u, 0x00000003u, 0x000300f7u, 0x00006ac5u, 0x00000000u, 0x000b00fbu, 0x00006abbu, + 0x00006ac5u, 0x00000000u, 0x00006abcu, 0x00000001u, 0x00006ac0u, 0x00000002u, 0x00006ac3u, 0x00000003u, + 0x00006ac4u, 0x000200f8u, 0x00006ac4u, 0x000200f9u, 0x00006ac5u, 0x000200f8u, 0x00006ac3u, 0x000200f9u, + 0x00006ac5u, 0x000200f8u, 0x00006ac0u, 0x000200f9u, 0x00006ac5u, 0x000200f8u, 0x00006abcu, 0x000400c8u, + 0x00000008u, 0x00006abeu, 0x00009c4au, 0x000500c7u, 0x00000008u, 0x00006abfu, 0x00006abeu, 0x00000390u, + 0x000200f9u, 0x00006ac5u, 0x000200f8u, 0x00006ac5u, 0x000d00f5u, 0x00000008u, 0x00009ddcu, 0x00009deeu, + 0x00006ab9u, 0x00006abfu, 0x00006abcu, 0x000091aau, 0x00006ac0u, 0x00000390u, 0x00006ac3u, 0x00000208u, + 0x00006ac4u, 0x000500c3u, 0x00000008u, 0x00006ac7u, 0x00009c4au, 0x0000021du, 0x000500c3u, 0x00000008u, + 0x00006ac9u, 0x00009ddcu, 0x0000021du, 0x000500aau, 0x0000005du, 0x00006accu, 0x00006abbu, 0x00000217u, + 0x000300f7u, 0x00006ad8u, 0x00000000u, 0x000400fau, 0x00006accu, 0x00006acdu, 0x00006ad8u, 0x000200f8u, + 0x00006acdu, 0x00050051u, 0x00000008u, 0x00006ad0u, 0x00009617u, 0x00000000u, 0x000500c3u, 0x00000008u, + 0x00006ad1u, 0x00006ac7u, 0x00006ad0u, 0x000500c7u, 0x00000008u, 0x00006ad2u, 0x00006ad1u, 0x000004d2u, + 0x00050051u, 0x00000008u, 0x00006ad5u, 0x00009617u, 0x00000001u, 0x000500c3u, 0x00000008u, 0x00006ad6u, + 0x00006ac9u, 0x00006ad5u, 0x000500c5u, 0x00000008u, 0x00006ad7u, 0x00006ad6u, 0x0000021du, 0x000200f9u, + 0x00006ad8u, 0x000200f8u, 0x00006ad8u, 0x000700f5u, 0x00000008u, 0x0000a295u, 0x00006ac9u, 0x00006ac5u, + 0x00006ad7u, 0x00006acdu, 0x000700f5u, 0x00000008u, 0x0000a101u, 0x00006ac7u, 0x00006ac5u, 0x00006ad2u, + 0x00006acdu, 0x00060050u, 0x0000003cu, 0x00006adfu, 0x0000a101u, 0x0000a101u, 0x0000a101u, 0x00050084u, + 0x0000003cu, 0x00006ae0u, 0x00009f72u, 0x00006adfu, 0x00050080u, 0x00000008u, 0x00006ae7u, 0x0000a295u, + 0x00000217u, 0x00060050u, 0x0000003cu, 0x00006ae8u, 0x00006ae7u, 0x00006ae7u, 0x00006ae7u, 0x00050084u, + 0x0000003cu, 0x00006ae9u, 0x0000a108u, 0x00006ae8u, 0x00050080u, 0x0000003cu, 0x00006aeau, 0x00006ae0u, + 0x00006ae9u, 0x000500a6u, 0x0000005du, 0x00006aeeu, 0x00000548u, 0x00006797u, 0x000300f7u, 0x00006b22u, + 0x00000000u, 0x000400fau, 0x00006aeeu, 0x00006aefu, 0x00006af7u, 0x000200f8u, 0x00006af7u, 0x000500c3u, + 0x00000008u, 0x00006af9u, 0x0000a101u, 0x0000021au, 0x000500c3u, 0x00000008u, 0x00006afbu, 0x0000a295u, + 0x0000021au, 0x00050080u, 0x00000008u, 0x00006afcu, 0x00006af9u, 0x00006afbu, 0x00050080u, 0x00000008u, + 0x00006afdu, 0x00006afcu, 0x00000217u, 0x000500c3u, 0x0000003cu, 0x00006b00u, 0x00006aeau, 0x0000bdbfu, + 0x000500c7u, 0x0000003cu, 0x00006b03u, 0x00006b00u, 0x0000bdc0u, 0x0004003du, 0x00000507u, 0x00006b04u, + 0x00000509u, 0x000500c4u, 0x00000008u, 0x00006b06u, 0x00006afdu, 0x00000274u, 0x00050051u, 0x00000008u, + 0x00006b08u, 0x00006b03u, 0x00000000u, 0x000500c5u, 0x00000008u, 0x00006b09u, 0x00006b06u, 0x00006b08u, + 0x0005005fu, 0x0000023cu, 0x00006b0au, 0x00006b04u, 0x00006b09u, 0x00050051u, 0x00000006u, 0x00006b0bu, + 0x00006b0au, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00006b0cu, 0x00006b0bu, 0x00050051u, 0x00000008u, + 0x00006b12u, 0x00006b03u, 0x00000001u, 0x000500c5u, 0x00000008u, 0x00006b13u, 0x00006b06u, 0x00006b12u, + 0x0005005fu, 0x0000023cu, 0x00006b14u, 0x00006b04u, 0x00006b13u, 0x00050051u, 0x00000006u, 0x00006b15u, + 0x00006b14u, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00006b16u, 0x00006b15u, 0x00050051u, 0x00000008u, + 0x00006b1cu, 0x00006b03u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x00006b1du, 0x00006b06u, 0x00006b1cu, + 0x0005005fu, 0x0000023cu, 0x00006b1eu, 0x00006b04u, 0x00006b1du, 0x00050051u, 0x00000006u, 0x00006b1fu, + 0x00006b1eu, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00006b20u, 0x00006b1fu, 0x00060050u, 0x0000003cu, + 0x0000bdc9u, 0x00006b0cu, 0x00006b16u, 0x00006b20u, 0x000200f9u, 0x00006b22u, 0x000200f8u, 0x00006aefu, + 0x000500c3u, 0x0000003cu, 0x00006af2u, 0x00006aeau, 0x0000bdbeu, 0x000200f9u, 0x00006b22u, 0x000200f8u, + 0x00006b22u, 0x000700f5u, 0x0000003cu, 0x0000a296u, 0x00006af2u, 0x00006aefu, 0x0000bdc9u, 0x00006af7u, + 0x000500c7u, 0x0000003cu, 0x00006b25u, 0x0000a296u, 0x000003a2u, 0x000200f9u, 0x00006b26u, 0x000200f8u, + 0x00006b26u, 0x000900f5u, 0x0000003cu, 0x0000bd40u, 0x00009f81u, 0x00006a7bu, 0x00009f72u, 0x00006aa9u, + 0x0000a296u, 0x00006b22u, 0x000900f5u, 0x00000008u, 0x0000bd25u, 0x00009deeu, 0x00006a7bu, 0x00009deeu, + 0x00006aa9u, 0x0000a295u, 0x00006b22u, 0x000900f5u, 0x00000008u, 0x0000bd0au, 0x00009c5bu, 0x00006a7bu, + 0x00009c5bu, 0x00006aa9u, 0x0000a101u, 0x00006b22u, 0x000900f5u, 0x0000003cu, 0x0000a297u, 0x0000a108u, + 0x00006a7bu, 0x00009f72u, 0x00006aa9u, 0x00006b25u, 0x00006b22u, 0x000300f7u, 0x00006800u, 0x00000000u, + 0x000400fau, 0x000067b3u, 0x000067fcu, 0x00006800u, 0x000200f8u, 0x000067fcu, 0x00060050u, 0x0000003cu, + 0x00006b2fu, 0x00006785u, 0x00006785u, 0x00006785u, 0x000500c3u, 0x0000003cu, 0x00006b30u, 0x00006b2fu, + 0x00000397u, 0x000500c7u, 0x0000003cu, 0x00006b32u, 0x00006b30u, 0x0000bdbbu, 0x000500c7u, 0x0000003cu, + 0x00006b35u, 0x0000a297u, 0x0000bdbau, 0x00050080u, 0x0000003cu, 0x00006b37u, 0x00006b35u, 0x0000bdbcu, + 0x000500adu, 0x000003a6u, 0x00006b39u, 0x0000a297u, 0x000003a5u, 0x000600a9u, 0x0000003cu, 0x00006b3au, + 0x00006b39u, 0x000003a2u, 0x00006b37u, 0x000500c7u, 0x0000003cu, 0x00006b3eu, 0x0000a297u, 0x0000bdbbu, + 0x00050082u, 0x0000003cu, 0x00006b3fu, 0x00006b32u, 0x00006b3eu, 0x000500c3u, 0x0000003cu, 0x00006b41u, + 0x00006b3fu, 0x0000bdbdu, 0x00050082u, 0x0000003cu, 0x00006b44u, 0x00006b3au, 0x0000a297u, 0x000500c7u, + 0x0000003cu, 0x00006b48u, 0x00006b44u, 0x00006b41u, 0x00050080u, 0x0000003cu, 0x00006b49u, 0x0000a297u, + 0x00006b48u, 0x000500c7u, 0x0000003cu, 0x00006b4cu, 0x00006b49u, 0x000003a2u, 0x000200f9u, 0x00006800u, + 0x000200f8u, 0x00006800u, 0x000700f5u, 0x0000003cu, 0x0000a2b6u, 0x0000a297u, 0x00006b26u, 0x00006b4cu, + 0x000067fcu, 0x000300f7u, 0x00006b69u, 0x00000000u, 0x000b00fbu, 0x0000687cu, 0x00006b69u, 0x00000000u, + 0x00006b55u, 0x00000001u, 0x00006b61u, 0x00000002u, 0x00006b66u, 0x00000003u, 0x00006b67u, 0x000200f8u, + 0x00006b67u, 0x000200f9u, 0x00006b69u, 0x000200f8u, 0x00006b66u, 0x000200f9u, 0x00006b69u, 0x000200f8u, + 0x00006b61u, 0x00050080u, 0x00000008u, 0x00006b64u, 0x00009607u, 0x000067b8u, 0x000500c7u, 0x00000008u, + 0x00006b65u, 0x00006b64u, 0x00000229u, 0x000200f9u, 0x00006b69u, 0x000200f8u, 0x00006b55u, 0x000300f7u, + 0x00006b60u, 0x00000000u, 0x000400fau, 0x0000960du, 0x00006b57u, 0x00006b5cu, 0x000200f8u, 0x00006b5cu, + 0x00050082u, 0x00000008u, 0x00006b5eu, 0x00009607u, 0x00000217u, 0x000500c7u, 0x00000008u, 0x00006b5fu, + 0x00006b5eu, 0x00000229u, 0x000200f9u, 0x00006b60u, 0x000200f8u, 0x00006b57u, 0x00050080u, 0x00000008u, + 0x00006b5au, 0x000067b8u, 0x00009607u, 0x0007000cu, 0x00000008u, 0x00006b5bu, 0x00000001u, 0x00000027u, + 0x00000229u, 0x00006b5au, 0x000200f9u, 0x00006b60u, 0x000200f8u, 0x00006b60u, 0x000700f5u, 0x00000008u, + 0x0000a2b4u, 0x00006b5bu, 0x00006b57u, 0x00006b5fu, 0x00006b5cu, 0x000200f9u, 0x00006b69u, 0x000200f8u, + 0x00006b69u, 0x000d00f5u, 0x00000008u, 0x0000a2b3u, 0x00000208u, 0x00006800u, 0x0000a2b4u, 0x00006b60u, + 0x00006b65u, 0x00006b61u, 0x00000229u, 0x00006b66u, 0x000067b8u, 0x00006b67u, 0x000500c4u, 0x00000008u, + 0x00006809u, 0x0000a2b3u, 0x00000223u, 0x00050051u, 0x00000008u, 0x0000680au, 0x0000a2b6u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x0000680bu, 0x0000a2b6u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000680cu, + 0x0000a2b6u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000680du, 0x0000680au, 0x0000680bu, 0x0000680cu, + 0x00006809u, 0x000300f7u, 0x00006b77u, 0x00000000u, 0x000400fau, 0x00000953u, 0x00006b6cu, 0x00006b75u, + 0x000200f8u, 0x00006b75u, 0x000200f9u, 0x00006b77u, 0x000200f8u, 0x00006b6cu, 0x00060052u, 0x00000009u, + 0x0000758eu, 0x0000680au, 0x00008ed0u, 0x00000000u, 0x00060052u, 0x00000009u, 0x00007590u, 0x0000680bu, + 0x0000758eu, 0x00000001u, 0x00060052u, 0x00000009u, 0x00007592u, 0x0000680cu, 0x00007590u, 0x00000002u, + 0x000200f9u, 0x00006b77u, 0x000200f8u, 0x00006b77u, 0x000700f5u, 0x00000009u, 0x0000a2e1u, 0x00007592u, + 0x00006b6cu, 0x0000680du, 0x00006b75u, 0x000300f7u, 0x0000681cu, 0x00000000u, 0x000400fau, 0x0000679fu, + 0x00006810u, 0x00006818u, 0x000200f8u, 0x00006818u, 0x000300f7u, 0x0000681bu, 0x00000000u, 0x000400fau, + 0x00000854u, 0x00006819u, 0x0000681bu, 0x000200f8u, 0x00006819u, 0x000300f7u, 0x00006bf2u, 0x00000000u, + 0x000700fbu, 0x0000065cu, 0x00006bf2u, 0x00000002u, 0x00006bbfu, 0x00000003u, 0x00006bdcu, 0x000200f8u, + 0x00006bdcu, 0x0007004fu, 0x0000005fu, 0x00006bdeu, 0x0000a2e1u, 0x0000a2e1u, 0x00000000u, 0x00000003u, + 0x0004007cu, 0x000000a6u, 0x00006bdfu, 0x00006bdeu, 0x00050051u, 0x00000006u, 0x00006be1u, 0x00006bdfu, + 0x00000000u, 0x000500c4u, 0x00000006u, 0x00006be2u, 0x00006be1u, 0x00000360u, 0x00050051u, 0x00000006u, + 0x00006be4u, 0x00006bdfu, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00006be5u, 0x00006be2u, 0x00006be4u, + 0x000500c7u, 0x00000006u, 0x00006be7u, 0x00006be5u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00006be8u, + 0x00006be7u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00006beau, 0x00006be5u, 0x000003c9u, 0x0004007cu, + 0x00000008u, 0x00006bebu, 0x00006beau, 0x000500c7u, 0x00000006u, 0x00006bedu, 0x00006be5u, 0x00000490u, + 0x000500c4u, 0x00000006u, 0x00006beeu, 0x00006bedu, 0x000003c9u, 0x000500c5u, 0x00000006u, 0x00006bf0u, + 0x00006beeu, 0x00006be8u, 0x0004007cu, 0x00000008u, 0x00006bf1u, 0x00006bf0u, 0x000200f9u, 0x00006bf2u, + 0x000200f8u, 0x00006bbfu, 0x00050051u, 0x00000008u, 0x00006bc1u, 0x0000a2e1u, 0x00000003u, 0x000500c3u, + 0x00000008u, 0x00006bc2u, 0x00006bc1u, 0x0000021du, 0x00050051u, 0x00000008u, 0x00006bc4u, 0x0000a2e1u, + 0x00000002u, 0x000500c7u, 0x00000008u, 0x00006bc5u, 0x00006bc4u, 0x00000263u, 0x000500c5u, 0x00000008u, + 0x00006bc6u, 0x00006bc2u, 0x00006bc5u, 0x00050051u, 0x00000008u, 0x00006bc8u, 0x0000a2e1u, 0x00000000u, + 0x0004007cu, 0x00000006u, 0x00006bc9u, 0x00006bc8u, 0x000500c7u, 0x00000006u, 0x00006bcau, 0x00006bc9u, + 0x000006a0u, 0x000500c4u, 0x00000006u, 0x00006bcbu, 0x00006bcau, 0x000006f9u, 0x00050051u, 0x00000008u, + 0x00006bcdu, 0x0000a2e1u, 0x00000001u, 0x0004007cu, 0x00000006u, 0x00006bceu, 0x00006bcdu, 0x000500c7u, + 0x00000006u, 0x00006bcfu, 0x00006bceu, 0x000006a0u, 0x000500c4u, 0x00000006u, 0x00006bd0u, 0x00006bcfu, + 0x0000048au, 0x000500c5u, 0x00000006u, 0x00006bd2u, 0x00006bcbu, 0x00006bd0u, 0x0004007cu, 0x00000006u, + 0x00006bd5u, 0x00006bc4u, 0x000500c7u, 0x00000006u, 0x00006bd6u, 0x00006bd5u, 0x000006a0u, 0x000500c2u, + 0x00000006u, 0x00006bd7u, 0x00006bd6u, 0x00000706u, 0x000500c5u, 0x00000006u, 0x00006bd9u, 0x00006bd2u, + 0x00006bd7u, 0x0004007cu, 0x00000008u, 0x00006bdbu, 0x00006bd9u, 0x000200f9u, 0x00006bf2u, 0x000200f8u, + 0x00006bf2u, 0x000900f5u, 0x00000008u, 0x0000bc22u, 0x0000931bu, 0x00006819u, 0x00006bc6u, 0x00006bbfu, + 0x00006bf1u, 0x00006bdcu, 0x000900f5u, 0x00000008u, 0x0000bbe4u, 0x000091afu, 0x00006819u, 0x00006bdbu, + 0x00006bbfu, 0x00006bebu, 0x00006bdcu, 0x000200f9u, 0x0000681bu, 0x000200f8u, 0x0000681bu, 0x000700f5u, + 0x00000008u, 0x0000bc04u, 0x0000931bu, 0x00006818u, 0x0000bc22u, 0x00006bf2u, 0x000700f5u, 0x00000008u, + 0x0000bbc6u, 0x000091afu, 0x00006818u, 0x0000bbe4u, 0x00006bf2u, 0x000200f9u, 0x0000681cu, 0x000200f8u, + 0x00006810u, 0x00050082u, 0x00000008u, 0x00006b7fu, 0x00000422u, 0x00006782u, 0x0007000cu, 0x00000008u, + 0x00006b80u, 0x00000001u, 0x0000002au, 0x00006b7fu, 0x00000217u, 0x0006000cu, 0x00000008u, 0x00006b82u, + 0x00000001u, 0x0000004au, 0x00006b80u, 0x00050082u, 0x00000008u, 0x00006b83u, 0x00000427u, 0x00006b82u, + 0x0008000cu, 0x00000008u, 0x00006b85u, 0x00000001u, 0x0000002du, 0x00006b83u, 0x00000208u, 0x00000229u, + 0x00050082u, 0x00000008u, 0x00006b87u, 0x00000226u, 0x00006b85u, 0x0007000cu, 0x00000008u, 0x00006b88u, + 0x00000001u, 0x0000002au, 0x00006b87u, 0x00000208u, 0x000500c3u, 0x00000008u, 0x00006b8bu, 0x00006782u, + 0x00006b88u, 0x000500c7u, 0x00000008u, 0x00006b8cu, 0x00006b8bu, 0x0000040fu, 0x000500c4u, 0x00000008u, + 0x00006b8eu, 0x00006b85u, 0x00000274u, 0x00050080u, 0x00000008u, 0x00006b90u, 0x00006b8eu, 0x00006b8cu, + 0x000300f7u, 0x00006817u, 0x00000000u, 0x000400fau, 0x00000854u, 0x00006815u, 0x00006817u, 0x000200f8u, + 0x00006815u, 0x0004007cu, 0x00000006u, 0x00006b94u, 0x00006b90u, 0x000500c4u, 0x00000006u, 0x00006b95u, + 0x00006b94u, 0x00000706u, 0x0004007cu, 0x00000006u, 0x00006b97u, 0x0000685eu, 0x000500c5u, 0x00000006u, + 0x00006b98u, 0x00006b95u, 0x00006b97u, 0x000300f7u, 0x00006bb9u, 0x00000000u, 0x000700fbu, 0x0000065cu, + 0x00006bb9u, 0x00000002u, 0x00006b99u, 0x00000003u, 0x00006baeu, 0x000200f8u, 0x00006baeu, 0x000500c2u, + 0x00000006u, 0x00006bb0u, 0x00006b98u, 0x00000733u, 0x000500c7u, 0x00000006u, 0x00006bb1u, 0x00006bb0u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00006bb2u, 0x00006bb1u, 0x00060052u, 0x00000009u, 0x0000759cu, + 0x00006bb2u, 0x0000a2e1u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006bb5u, 0x00006b98u, 0x000003c9u, + 0x000500c7u, 0x00000006u, 0x00006bb6u, 0x00006bb5u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00006bb7u, + 0x00006bb6u, 0x00060052u, 0x00000009u, 0x0000759eu, 0x00006bb7u, 0x0000759cu, 0x00000003u, 0x000200f9u, + 0x00006bb9u, 0x000200f8u, 0x00006b99u, 0x000500c2u, 0x00000006u, 0x00006b9bu, 0x00006b98u, 0x00000733u, + 0x000500c7u, 0x00000006u, 0x00006b9cu, 0x00006b9bu, 0x000006a0u, 0x0004007cu, 0x00000008u, 0x00006b9du, + 0x00006b9cu, 0x000500c2u, 0x00000006u, 0x00006ba0u, 0x00006b98u, 0x00000739u, 0x000500c7u, 0x00000006u, + 0x00006ba1u, 0x00006ba0u, 0x000006a0u, 0x0004007cu, 0x00000008u, 0x00006ba2u, 0x00006ba1u, 0x000500c2u, + 0x00000006u, 0x00006ba5u, 0x00006b98u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00006ba6u, 0x00006ba5u, + 0x000006a0u, 0x0004007cu, 0x00000008u, 0x00006ba7u, 0x00006ba6u, 0x000500c7u, 0x00000006u, 0x00006baau, + 0x00006b98u, 0x00000744u, 0x000500c4u, 0x00000006u, 0x00006babu, 0x00006baau, 0x00000739u, 0x0004007cu, + 0x00000008u, 0x00006bacu, 0x00006babu, 0x00070050u, 0x00000009u, 0x0000bdcau, 0x00006b9du, 0x00006ba2u, + 0x00006ba7u, 0x00006bacu, 0x000200f9u, 0x00006bb9u, 0x000200f8u, 0x00006bb9u, 0x000900f5u, 0x00000009u, + 0x0000bb66u, 0x0000a2e1u, 0x00006815u, 0x0000bdcau, 0x00006b99u, 0x0000759eu, 0x00006baeu, 0x000200f9u, + 0x00006817u, 0x000200f8u, 0x00006817u, 0x000700f5u, 0x00000009u, 0x0000bb65u, 0x0000a2e1u, 0x00006810u, + 0x0000bb66u, 0x00006bb9u, 0x000200f9u, 0x0000681cu, 0x000200f8u, 0x0000681cu, 0x000700f5u, 0x00000008u, + 0x0000bc01u, 0x0000685eu, 0x00006817u, 0x0000bc04u, 0x0000681bu, 0x000700f5u, 0x00000008u, 0x0000bbc3u, + 0x00006b90u, 0x00006817u, 0x0000bbc6u, 0x0000681bu, 0x000700f5u, 0x00000009u, 0x0000bb64u, 0x0000bb65u, + 0x00006817u, 0x0000a2e1u, 0x0000681bu, 0x000600a9u, 0x0000005du, 0x0000bdf1u, 0x0000679fu, 0x00000563u, + 0x0000a789u, 0x000200f9u, 0x0000681du, 0x000200f8u, 0x0000681du, 0x000700f5u, 0x0000003cu, 0x0000bd54u, + 0x0000a115u, 0x000067d3u, 0x0000a108u, 0x0000681cu, 0x000700f5u, 0x0000003cu, 0x0000bd3au, 0x00009f81u, + 0x000067d3u, 0x0000bd40u, 0x0000681cu, 0x000700f5u, 0x00000008u, 0x0000bd1fu, 0x00009deeu, 0x000067d3u, + 0x0000bd25u, 0x0000681cu, 0x000700f5u, 0x00000008u, 0x0000bd04u, 0x00009c5bu, 0x000067d3u, 0x0000bd0au, + 0x0000681cu, 0x000700f5u, 0x0000003cu, 0x0000bcdcu, 0x00009ac5u, 0x000067d3u, 0x0000bce4u, 0x0000681cu, + 0x000700f5u, 0x0000003cu, 0x0000bcb5u, 0x0000993eu, 0x000067d3u, 0x0000bcbdu, 0x0000681cu, 0x000700f5u, + 0x00000008u, 0x0000bc8du, 0x000097b8u, 0x000067d3u, 0x0000bc95u, 0x0000681cu, 0x000700f5u, 0x00000008u, + 0x0000bc65u, 0x00009632u, 0x000067d3u, 0x0000bc6du, 0x0000681cu, 0x000700f5u, 0x00000008u, 0x0000bbf4u, + 0x0000931bu, 0x000067d3u, 0x0000bc01u, 0x0000681cu, 0x000700f5u, 0x00000008u, 0x0000bbb6u, 0x000091afu, + 0x000067d3u, 0x0000bbc3u, 0x0000681cu, 0x000700f5u, 0x00000009u, 0x0000bb63u, 0x00008ed0u, 0x000067d3u, + 0x0000bb64u, 0x0000681cu, 0x000700f5u, 0x0000005du, 0x0000a902u, 0x0000a789u, 0x000067d3u, 0x0000bdf1u, + 0x0000681cu, 0x000600a9u, 0x0000005du, 0x0000bdf2u, 0x000067d4u, 0x00000563u, 0x0000a603u, 0x000200f9u, + 0x00002026u, 0x000200f8u, 0x00002025u, 0x0004007cu, 0x00000006u, 0x00002029u, 0x00008c1fu, 0x000300f7u, + 0x000066e5u, 0x00000000u, 0x000900fbu, 0x0000065cu, 0x000066e5u, 0x00000000u, 0x000066c6u, 0x00000001u, + 0x000066c7u, 0x00000002u, 0x000066ceu, 0x000200f8u, 0x000066ceu, 0x000500c2u, 0x00000006u, 0x000066d0u, + 0x00002029u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000066d1u, 0x000066d0u, 0x000006a0u, 0x000500c2u, + 0x00000006u, 0x000066d3u, 0x00002029u, 0x0000021du, 0x000500c7u, 0x00000006u, 0x000066d4u, 0x000066d3u, + 0x000006a0u, 0x000500c4u, 0x00000006u, 0x000066d6u, 0x00002029u, 0x0000021au, 0x000500c7u, 0x00000006u, + 0x000066d7u, 0x000066d6u, 0x000006a0u, 0x000500c7u, 0x00000006u, 0x000066d9u, 0x00002029u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000066dau, 0x000066d9u, 0x0000097cu, 0x0004007cu, 0x00000008u, 0x000066dcu, + 0x000066d1u, 0x0004007cu, 0x00000008u, 0x000066deu, 0x000066d4u, 0x0004007cu, 0x00000008u, 0x000066e0u, + 0x000066d7u, 0x0004007cu, 0x00000008u, 0x000066e2u, 0x000066dau, 0x00070050u, 0x00000009u, 0x000066e3u, + 0x000066dcu, 0x000066deu, 0x000066e0u, 0x000066e2u, 0x000300f7u, 0x00006702u, 0x00000000u, 0x000400fau, + 0x00000953u, 0x000066f7u, 0x00006700u, 0x000200f8u, 0x00006700u, 0x000200f9u, 0x00006702u, 0x000200f8u, + 0x000066f7u, 0x00060052u, 0x00000009u, 0x00007545u, 0x000066dcu, 0x00008ed0u, 0x00000000u, 0x00060052u, + 0x00000009u, 0x00007547u, 0x000066deu, 0x00007545u, 0x00000001u, 0x00060052u, 0x00000009u, 0x00007549u, + 0x000066e0u, 0x00007547u, 0x00000002u, 0x000200f9u, 0x00006702u, 0x000200f8u, 0x00006702u, 0x000700f5u, + 0x00000009u, 0x0000a2e4u, 0x00007549u, 0x000066f7u, 0x000066e3u, 0x00006700u, 0x000200f9u, 0x000066e5u, + 0x000200f8u, 0x000066c7u, 0x000500c7u, 0x00000006u, 0x000066c9u, 0x00002029u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000066cbu, 0x000066c9u, 0x00070050u, 0x00000009u, 0x000066ccu, 0x000066cbu, 0x000066cbu, + 0x000066cbu, 0x000066cbu, 0x000300f7u, 0x000066f5u, 0x00000000u, 0x000400fau, 0x00000953u, 0x000066eau, + 0x000066f3u, 0x000200f8u, 0x000066f3u, 0x000200f9u, 0x000066f5u, 0x000200f8u, 0x000066eau, 0x00060052u, + 0x00000009u, 0x0000753fu, 0x000066cbu, 0x00008ed0u, 0x00000000u, 0x00060052u, 0x00000009u, 0x00007541u, + 0x000066cbu, 0x0000753fu, 0x00000001u, 0x00060052u, 0x00000009u, 0x00007543u, 0x000066cbu, 0x00007541u, + 0x00000002u, 0x000200f9u, 0x000066f5u, 0x000200f8u, 0x000066f5u, 0x000700f5u, 0x00000009u, 0x0000a2e3u, + 0x00007543u, 0x000066eau, 0x000066ccu, 0x000066f3u, 0x000200f9u, 0x000066e5u, 0x000200f8u, 0x000066c6u, + 0x000200f9u, 0x000066e5u, 0x000200f8u, 0x000066e5u, 0x000b00f5u, 0x0000005du, 0x0000a774u, 0x0000a603u, + 0x00002025u, 0x00000563u, 0x000066c6u, 0x00000563u, 0x000066f5u, 0x00000563u, 0x00006702u, 0x000b00f5u, + 0x00000009u, 0x0000a2e2u, 0x00008ed0u, 0x00002025u, 0x00000616u, 0x000066c6u, 0x0000a2e3u, 0x000066f5u, + 0x0000a2e4u, 0x00006702u, 0x000300f7u, 0x000066e8u, 0x00000000u, 0x000400fau, 0x00000854u, 0x000066e6u, + 0x000066e8u, 0x000200f8u, 0x000066e6u, 0x000300f7u, 0x0000673bu, 0x00000000u, 0x000700fbu, 0x0000065cu, + 0x0000673bu, 0x00000002u, 0x00006708u, 0x00000003u, 0x00006725u, 0x000200f8u, 0x00006725u, 0x0007004fu, + 0x0000005fu, 0x00006727u, 0x0000a2e2u, 0x0000a2e2u, 0x00000000u, 0x00000003u, 0x0004007cu, 0x000000a6u, + 0x00006728u, 0x00006727u, 0x00050051u, 0x00000006u, 0x0000672au, 0x00006728u, 0x00000000u, 0x000500c4u, + 0x00000006u, 0x0000672bu, 0x0000672au, 0x00000360u, 0x00050051u, 0x00000006u, 0x0000672du, 0x00006728u, + 0x00000001u, 0x000500c5u, 0x00000006u, 0x0000672eu, 0x0000672bu, 0x0000672du, 0x000500c7u, 0x00000006u, + 0x00006730u, 0x0000672eu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00006731u, 0x00006730u, 0x00000490u, + 0x000500c2u, 0x00000006u, 0x00006733u, 0x0000672eu, 0x000003c9u, 0x0004007cu, 0x00000008u, 0x00006734u, + 0x00006733u, 0x000500c7u, 0x00000006u, 0x00006736u, 0x0000672eu, 0x00000490u, 0x000500c4u, 0x00000006u, + 0x00006737u, 0x00006736u, 0x000003c9u, 0x000500c5u, 0x00000006u, 0x00006739u, 0x00006737u, 0x00006731u, + 0x0004007cu, 0x00000008u, 0x0000673au, 0x00006739u, 0x000200f9u, 0x0000673bu, 0x000200f8u, 0x00006708u, + 0x00050051u, 0x00000008u, 0x0000670au, 0x0000a2e2u, 0x00000003u, 0x000500c3u, 0x00000008u, 0x0000670bu, + 0x0000670au, 0x0000021du, 0x00050051u, 0x00000008u, 0x0000670du, 0x0000a2e2u, 0x00000002u, 0x000500c7u, + 0x00000008u, 0x0000670eu, 0x0000670du, 0x00000263u, 0x000500c5u, 0x00000008u, 0x0000670fu, 0x0000670bu, + 0x0000670eu, 0x00050051u, 0x00000008u, 0x00006711u, 0x0000a2e2u, 0x00000000u, 0x0004007cu, 0x00000006u, + 0x00006712u, 0x00006711u, 0x000500c7u, 0x00000006u, 0x00006713u, 0x00006712u, 0x000006a0u, 0x000500c4u, + 0x00000006u, 0x00006714u, 0x00006713u, 0x000006f9u, 0x00050051u, 0x00000008u, 0x00006716u, 0x0000a2e2u, + 0x00000001u, 0x0004007cu, 0x00000006u, 0x00006717u, 0x00006716u, 0x000500c7u, 0x00000006u, 0x00006718u, + 0x00006717u, 0x000006a0u, 0x000500c4u, 0x00000006u, 0x00006719u, 0x00006718u, 0x0000048au, 0x000500c5u, + 0x00000006u, 0x0000671bu, 0x00006714u, 0x00006719u, 0x0004007cu, 0x00000006u, 0x0000671eu, 0x0000670du, + 0x000500c7u, 0x00000006u, 0x0000671fu, 0x0000671eu, 0x000006a0u, 0x000500c2u, 0x00000006u, 0x00006720u, + 0x0000671fu, 0x00000706u, 0x000500c5u, 0x00000006u, 0x00006722u, 0x0000671bu, 0x00006720u, 0x0004007cu, + 0x00000008u, 0x00006724u, 0x00006722u, 0x000200f9u, 0x0000673bu, 0x000200f8u, 0x0000673bu, 0x000900f5u, + 0x00000008u, 0x0000bbf3u, 0x0000931bu, 0x000066e6u, 0x0000670fu, 0x00006708u, 0x0000673au, 0x00006725u, + 0x000900f5u, 0x00000008u, 0x0000bbb5u, 0x000091afu, 0x000066e6u, 0x00006724u, 0x00006708u, 0x00006734u, + 0x00006725u, 0x000200f9u, 0x000066e8u, 0x000200f8u, 0x000066e8u, 0x000700f5u, 0x00000008u, 0x0000bbefu, + 0x0000931bu, 0x000066e5u, 0x0000bbf3u, 0x0000673bu, 0x000700f5u, 0x00000008u, 0x0000bbb1u, 0x000091afu, + 0x000066e5u, 0x0000bbb5u, 0x0000673bu, 0x000200f9u, 0x00002026u, 0x000200f8u, 0x00002026u, 0x000700f5u, + 0x0000003cu, 0x0000bd4eu, 0x0000a115u, 0x000066e8u, 0x0000bd54u, 0x0000681du, 0x000700f5u, 0x0000003cu, + 0x0000bd34u, 0x00009f81u, 0x000066e8u, 0x0000bd3au, 0x0000681du, 0x000700f5u, 0x00000008u, 0x0000bd19u, + 0x00009deeu, 0x000066e8u, 0x0000bd1fu, 0x0000681du, 0x000700f5u, 0x00000008u, 0x0000bcfeu, 0x00009c5bu, + 0x000066e8u, 0x0000bd04u, 0x0000681du, 0x000700f5u, 0x0000003cu, 0x0000bcd6u, 0x00009ac5u, 0x000066e8u, + 0x0000bcdcu, 0x0000681du, 0x000700f5u, 0x0000003cu, 0x0000bcafu, 0x0000993eu, 0x000066e8u, 0x0000bcb5u, + 0x0000681du, 0x000700f5u, 0x00000008u, 0x0000bc87u, 0x000097b8u, 0x000066e8u, 0x0000bc8du, 0x0000681du, + 0x000700f5u, 0x00000008u, 0x0000bc5fu, 0x00009632u, 0x000066e8u, 0x0000bc65u, 0x0000681du, 0x000700f5u, + 0x00000008u, 0x0000bbeeu, 0x0000bbefu, 0x000066e8u, 0x0000bbf4u, 0x0000681du, 0x000700f5u, 0x00000008u, + 0x0000bbb0u, 0x0000bbb1u, 0x000066e8u, 0x0000bbb6u, 0x0000681du, 0x000700f5u, 0x0000003cu, 0x0000bb72u, + 0x0000903eu, 0x000066e8u, 0x0000903au, 0x0000681du, 0x000700f5u, 0x00000009u, 0x0000bb60u, 0x0000a2e2u, + 0x000066e8u, 0x0000bb63u, 0x0000681du, 0x000700f5u, 0x0000005du, 0x0000a8fcu, 0x0000a789u, 0x000066e8u, + 0x0000a902u, 0x0000681du, 0x000700f5u, 0x0000005du, 0x0000a772u, 0x0000a774u, 0x000066e8u, 0x0000bdf2u, + 0x0000681du, 0x000200f9u, 0x0000201au, 0x000200f8u, 0x00002019u, 0x00070041u, 0x00000270u, 0x0000201du, + 0x00000237u, 0x00000208u, 0x00002008u, 0x0000026fu, 0x0004003du, 0x00000006u, 0x0000201eu, 0x0000201du, + 0x000300f7u, 0x0000664eu, 0x00000000u, 0x000b00fbu, 0x0000065cu, 0x0000664eu, 0x00000004u, 0x000065f4u, + 0x00000002u, 0x0000660bu, 0x00000003u, 0x00006628u, 0x00000001u, 0x00006641u, 0x000200f8u, 0x00006641u, + 0x000500c7u, 0x00000006u, 0x00006643u, 0x0000a2e9u, 0x00000490u, 0x000500c6u, 0x00000006u, 0x00006644u, + 0x00006643u, 0x00000490u, 0x00050084u, 0x00000006u, 0x00006645u, 0x00006644u, 0x00000360u, 0x000500c2u, + 0x00000006u, 0x00006647u, 0x0000201eu, 0x00006645u, 0x000500c7u, 0x00000006u, 0x00006649u, 0x00006647u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000664bu, 0x00006649u, 0x00070050u, 0x00000009u, 0x0000664cu, + 0x0000664bu, 0x0000664bu, 0x0000664bu, 0x0000664bu, 0x000300f7u, 0x00006685u, 0x00000000u, 0x000400fau, + 0x00000953u, 0x0000667au, 0x00006683u, 0x000200f8u, 0x00006683u, 0x000200f9u, 0x00006685u, 0x000200f8u, + 0x0000667au, 0x00060052u, 0x00000009u, 0x00007532u, 0x0000664bu, 0x00008ed0u, 0x00000000u, 0x00060052u, + 0x00000009u, 0x00007534u, 0x0000664bu, 0x00007532u, 0x00000001u, 0x00060052u, 0x00000009u, 0x00007536u, + 0x0000664bu, 0x00007534u, 0x00000002u, 0x000200f9u, 0x00006685u, 0x000200f8u, 0x00006685u, 0x000700f5u, + 0x00000009u, 0x0000a458u, 0x00007536u, 0x0000667au, 0x0000664cu, 0x00006683u, 0x000200f9u, 0x0000664eu, + 0x000200f8u, 0x00006628u, 0x000500c7u, 0x00000006u, 0x0000662au, 0x0000a2e9u, 0x0000048au, 0x000500c6u, + 0x00000006u, 0x0000662bu, 0x0000662au, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000662cu, 0x0000662bu, + 0x0000037cu, 0x000500c2u, 0x00000006u, 0x0000662eu, 0x0000201eu, 0x0000662cu, 0x000500c7u, 0x00000006u, + 0x00006630u, 0x0000662eu, 0x00000782u, 0x000500c2u, 0x00000006u, 0x00006632u, 0x00006630u, 0x00000360u, + 0x000500c7u, 0x00000006u, 0x00006633u, 0x00006632u, 0x000006c7u, 0x000500c2u, 0x00000006u, 0x00006635u, + 0x00006630u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00006636u, 0x00006635u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00006638u, 0x00006633u, 0x0004007cu, 0x00000008u, 0x0000663eu, 0x00006636u, 0x00070050u, + 0x00000009u, 0x0000663fu, 0x00006638u, 0x00006638u, 0x00006638u, 0x0000663eu, 0x000300f7u, 0x00006678u, + 0x00000000u, 0x000400fau, 0x00000953u, 0x0000666du, 0x00006676u, 0x000200f8u, 0x00006676u, 0x000200f9u, + 0x00006678u, 0x000200f8u, 0x0000666du, 0x00060052u, 0x00000009u, 0x0000752cu, 0x00006638u, 0x00008ed0u, + 0x00000000u, 0x00060052u, 0x00000009u, 0x0000752eu, 0x00006638u, 0x0000752cu, 0x00000001u, 0x00060052u, + 0x00000009u, 0x00007530u, 0x00006638u, 0x0000752eu, 0x00000002u, 0x000200f9u, 0x00006678u, 0x000200f8u, + 0x00006678u, 0x000700f5u, 0x00000009u, 0x0000a457u, 0x00007530u, 0x0000666du, 0x0000663fu, 0x00006676u, + 0x000200f9u, 0x0000664eu, 0x000200f8u, 0x0000660bu, 0x000500c7u, 0x00000006u, 0x0000660du, 0x0000a2e9u, + 0x0000048au, 0x000500c6u, 0x00000006u, 0x0000660eu, 0x0000660du, 0x0000048au, 0x00050084u, 0x00000006u, + 0x0000660fu, 0x0000660eu, 0x0000037cu, 0x000500c2u, 0x00000006u, 0x00006611u, 0x0000201eu, 0x0000660fu, + 0x000500c2u, 0x00000006u, 0x00006613u, 0x00006611u, 0x00000360u, 0x000500c7u, 0x00000006u, 0x00006614u, + 0x00006613u, 0x000006a0u, 0x000500c2u, 0x00000006u, 0x00006616u, 0x00006611u, 0x00000490u, 0x000500c7u, + 0x00000006u, 0x00006617u, 0x00006616u, 0x000006a0u, 0x000500c4u, 0x00000006u, 0x00006619u, 0x00006611u, + 0x000003c9u, 0x000500c7u, 0x00000006u, 0x0000661au, 0x00006619u, 0x000006a0u, 0x000500c7u, 0x00000006u, + 0x0000661cu, 0x00006611u, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000661du, 0x0000661cu, 0x0000097cu, + 0x0004007cu, 0x00000008u, 0x0000661fu, 0x00006614u, 0x0004007cu, 0x00000008u, 0x00006621u, 0x00006617u, + 0x0004007cu, 0x00000008u, 0x00006623u, 0x0000661au, 0x0004007cu, 0x00000008u, 0x00006625u, 0x0000661du, + 0x00070050u, 0x00000009u, 0x00006626u, 0x0000661fu, 0x00006621u, 0x00006623u, 0x00006625u, 0x000300f7u, + 0x0000666bu, 0x00000000u, 0x000400fau, 0x00000953u, 0x00006660u, 0x00006669u, 0x000200f8u, 0x00006669u, + 0x000200f9u, 0x0000666bu, 0x000200f8u, 0x00006660u, 0x00060052u, 0x00000009u, 0x00007526u, 0x0000661fu, + 0x00008ed0u, 0x00000000u, 0x00060052u, 0x00000009u, 0x00007528u, 0x00006621u, 0x00007526u, 0x00000001u, + 0x00060052u, 0x00000009u, 0x0000752au, 0x00006623u, 0x00007528u, 0x00000002u, 0x000200f9u, 0x0000666bu, + 0x000200f8u, 0x0000666bu, 0x000700f5u, 0x00000009u, 0x0000a456u, 0x0000752au, 0x00006660u, 0x00006626u, + 0x00006669u, 0x000200f9u, 0x0000664eu, 0x000200f8u, 0x000065f4u, 0x000500c2u, 0x00000006u, 0x000065f6u, + 0x0000201eu, 0x000006e1u, 0x000500c7u, 0x00000006u, 0x000065f7u, 0x000065f6u, 0x000006c7u, 0x000500c2u, + 0x00000006u, 0x000065f9u, 0x0000201eu, 0x0000037cu, 0x000500c7u, 0x00000006u, 0x000065fau, 0x000065f9u, + 0x000006c7u, 0x000500c2u, 0x00000006u, 0x000065fcu, 0x0000201eu, 0x00000360u, 0x000500c7u, 0x00000006u, + 0x000065fdu, 0x000065fcu, 0x000006c7u, 0x000500c2u, 0x00000006u, 0x000065ffu, 0x0000201eu, 0x00000379u, + 0x000500c7u, 0x00000006u, 0x00006600u, 0x000065ffu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00006602u, + 0x000065f7u, 0x0004007cu, 0x00000008u, 0x00006604u, 0x000065fau, 0x0004007cu, 0x00000008u, 0x00006606u, + 0x000065fdu, 0x0004007cu, 0x00000008u, 0x00006608u, 0x00006600u, 0x00070050u, 0x00000009u, 0x00006609u, + 0x00006602u, 0x00006604u, 0x00006606u, 0x00006608u, 0x000300f7u, 0x0000665eu, 0x00000000u, 0x000400fau, + 0x00000953u, 0x00006653u, 0x0000665cu, 0x000200f8u, 0x0000665cu, 0x000200f9u, 0x0000665eu, 0x000200f8u, + 0x00006653u, 0x00060052u, 0x00000009u, 0x00007520u, 0x00006602u, 0x00008ed0u, 0x00000000u, 0x00060052u, + 0x00000009u, 0x00007522u, 0x00006604u, 0x00007520u, 0x00000001u, 0x00060052u, 0x00000009u, 0x00007524u, + 0x00006606u, 0x00007522u, 0x00000002u, 0x000200f9u, 0x0000665eu, 0x000200f8u, 0x0000665eu, 0x000700f5u, + 0x00000009u, 0x0000a455u, 0x00007524u, 0x00006653u, 0x00006609u, 0x0000665cu, 0x000200f9u, 0x0000664eu, + 0x000200f8u, 0x0000664eu, 0x000d00f5u, 0x0000005du, 0x0000a770u, 0x0000a603u, 0x00002019u, 0x00000563u, + 0x0000665eu, 0x00000563u, 0x0000666bu, 0x00000563u, 0x00006678u, 0x00000563u, 0x00006685u, 0x000d00f5u, + 0x00000009u, 0x0000a454u, 0x00008ed0u, 0x00002019u, 0x0000a455u, 0x0000665eu, 0x0000a456u, 0x0000666bu, + 0x0000a457u, 0x00006678u, 0x0000a458u, 0x00006685u, 0x000300f7u, 0x00006651u, 0x00000000u, 0x000400fau, + 0x00000854u, 0x0000664fu, 0x00006651u, 0x000200f8u, 0x0000664fu, 0x000300f7u, 0x000066beu, 0x00000000u, + 0x000700fbu, 0x0000065cu, 0x000066beu, 0x00000002u, 0x0000668bu, 0x00000003u, 0x000066a8u, 0x000200f8u, + 0x000066a8u, 0x0007004fu, 0x0000005fu, 0x000066aau, 0x0000a454u, 0x0000a454u, 0x00000000u, 0x00000003u, + 0x0004007cu, 0x000000a6u, 0x000066abu, 0x000066aau, 0x00050051u, 0x00000006u, 0x000066adu, 0x000066abu, + 0x00000000u, 0x000500c4u, 0x00000006u, 0x000066aeu, 0x000066adu, 0x00000360u, 0x00050051u, 0x00000006u, + 0x000066b0u, 0x000066abu, 0x00000001u, 0x000500c5u, 0x00000006u, 0x000066b1u, 0x000066aeu, 0x000066b0u, + 0x000500c7u, 0x00000006u, 0x000066b3u, 0x000066b1u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000066b4u, + 0x000066b3u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x000066b6u, 0x000066b1u, 0x000003c9u, 0x0004007cu, + 0x00000008u, 0x000066b7u, 0x000066b6u, 0x000500c7u, 0x00000006u, 0x000066b9u, 0x000066b1u, 0x00000490u, + 0x000500c4u, 0x00000006u, 0x000066bau, 0x000066b9u, 0x000003c9u, 0x000500c5u, 0x00000006u, 0x000066bcu, + 0x000066bau, 0x000066b4u, 0x0004007cu, 0x00000008u, 0x000066bdu, 0x000066bcu, 0x000200f9u, 0x000066beu, + 0x000200f8u, 0x0000668bu, 0x00050051u, 0x00000008u, 0x0000668du, 0x0000a454u, 0x00000003u, 0x000500c3u, + 0x00000008u, 0x0000668eu, 0x0000668du, 0x0000021du, 0x00050051u, 0x00000008u, 0x00006690u, 0x0000a454u, + 0x00000002u, 0x000500c7u, 0x00000008u, 0x00006691u, 0x00006690u, 0x00000263u, 0x000500c5u, 0x00000008u, + 0x00006692u, 0x0000668eu, 0x00006691u, 0x00050051u, 0x00000008u, 0x00006694u, 0x0000a454u, 0x00000000u, + 0x0004007cu, 0x00000006u, 0x00006695u, 0x00006694u, 0x000500c7u, 0x00000006u, 0x00006696u, 0x00006695u, + 0x000006a0u, 0x000500c4u, 0x00000006u, 0x00006697u, 0x00006696u, 0x000006f9u, 0x00050051u, 0x00000008u, + 0x00006699u, 0x0000a454u, 0x00000001u, 0x0004007cu, 0x00000006u, 0x0000669au, 0x00006699u, 0x000500c7u, + 0x00000006u, 0x0000669bu, 0x0000669au, 0x000006a0u, 0x000500c4u, 0x00000006u, 0x0000669cu, 0x0000669bu, + 0x0000048au, 0x000500c5u, 0x00000006u, 0x0000669eu, 0x00006697u, 0x0000669cu, 0x0004007cu, 0x00000006u, + 0x000066a1u, 0x00006690u, 0x000500c7u, 0x00000006u, 0x000066a2u, 0x000066a1u, 0x000006a0u, 0x000500c2u, + 0x00000006u, 0x000066a3u, 0x000066a2u, 0x00000706u, 0x000500c5u, 0x00000006u, 0x000066a5u, 0x0000669eu, + 0x000066a3u, 0x0004007cu, 0x00000008u, 0x000066a7u, 0x000066a5u, 0x000200f9u, 0x000066beu, 0x000200f8u, + 0x000066beu, 0x000900f5u, 0x00000008u, 0x0000bbedu, 0x0000931bu, 0x0000664fu, 0x00006692u, 0x0000668bu, + 0x000066bdu, 0x000066a8u, 0x000900f5u, 0x00000008u, 0x0000bbafu, 0x000091afu, 0x0000664fu, 0x000066a7u, + 0x0000668bu, 0x000066b7u, 0x000066a8u, 0x000200f9u, 0x00006651u, 0x000200f8u, 0x00006651u, 0x000700f5u, + 0x00000008u, 0x0000bbe7u, 0x0000931bu, 0x0000664eu, 0x0000bbedu, 0x000066beu, 0x000700f5u, 0x00000008u, + 0x0000bba9u, 0x000091afu, 0x0000664eu, 0x0000bbafu, 0x000066beu, 0x000200f9u, 0x0000201au, 0x000200f8u, + 0x0000201au, 0x000700f5u, 0x0000003cu, 0x0000bd46u, 0x0000a115u, 0x00006651u, 0x0000bd4eu, 0x00002026u, + 0x000700f5u, 0x0000003cu, 0x0000bd2cu, 0x00009f81u, 0x00006651u, 0x0000bd34u, 0x00002026u, 0x000700f5u, + 0x00000008u, 0x0000bd11u, 0x00009deeu, 0x00006651u, 0x0000bd19u, 0x00002026u, 0x000700f5u, 0x00000008u, + 0x0000bcf6u, 0x00009c5bu, 0x00006651u, 0x0000bcfeu, 0x00002026u, 0x000700f5u, 0x0000003cu, 0x0000bcceu, + 0x00009ac5u, 0x00006651u, 0x0000bcd6u, 0x00002026u, 0x000700f5u, 0x0000003cu, 0x0000bca7u, 0x0000993eu, + 0x00006651u, 0x0000bcafu, 0x00002026u, 0x000700f5u, 0x00000008u, 0x0000bc7fu, 0x000097b8u, 0x00006651u, + 0x0000bc87u, 0x00002026u, 0x000700f5u, 0x00000008u, 0x0000bc57u, 0x00009632u, 0x00006651u, 0x0000bc5fu, + 0x00002026u, 0x000700f5u, 0x00000008u, 0x0000bbe6u, 0x0000bbe7u, 0x00006651u, 0x0000bbeeu, 0x00002026u, + 0x000700f5u, 0x00000008u, 0x0000bba8u, 0x0000bba9u, 0x00006651u, 0x0000bbb0u, 0x00002026u, 0x000700f5u, + 0x0000003cu, 0x0000bb6au, 0x0000903eu, 0x00006651u, 0x0000bb72u, 0x00002026u, 0x000700f5u, 0x00000009u, + 0x0000bb5du, 0x0000a454u, 0x00006651u, 0x0000bb60u, 0x00002026u, 0x000700f5u, 0x0000005du, 0x0000a8f4u, + 0x0000a789u, 0x00006651u, 0x0000a8fcu, 0x00002026u, 0x000700f5u, 0x0000005du, 0x0000a76eu, 0x0000a770u, + 0x00006651u, 0x0000a772u, 0x00002026u, 0x000200f9u, 0x00002014u, 0x000200f8u, 0x00002014u, 0x000700f5u, + 0x0000003cu, 0x0000bd45u, 0x0000a115u, 0x00002468u, 0x0000bd46u, 0x0000201au, 0x000700f5u, 0x0000003cu, + 0x0000bd2bu, 0x00009f81u, 0x00002468u, 0x0000bd2cu, 0x0000201au, 0x000700f5u, 0x00000008u, 0x0000bd10u, + 0x00009deeu, 0x00002468u, 0x0000bd11u, 0x0000201au, 0x000700f5u, 0x00000008u, 0x0000bcf5u, 0x00009c5bu, + 0x00002468u, 0x0000bcf6u, 0x0000201au, 0x000700f5u, 0x0000003cu, 0x0000bccdu, 0x00009ac5u, 0x00002468u, + 0x0000bcceu, 0x0000201au, 0x000700f5u, 0x0000003cu, 0x0000bca6u, 0x0000993eu, 0x00002468u, 0x0000bca7u, + 0x0000201au, 0x000700f5u, 0x00000008u, 0x0000bc7eu, 0x000097b8u, 0x00002468u, 0x0000bc7fu, 0x0000201au, + 0x000700f5u, 0x00000008u, 0x0000bc56u, 0x00009632u, 0x00002468u, 0x0000bc57u, 0x0000201au, 0x000700f5u, + 0x00000008u, 0x0000bbe5u, 0x0000931bu, 0x00002468u, 0x0000bbe6u, 0x0000201au, 0x000700f5u, 0x00000008u, + 0x0000bba7u, 0x000091afu, 0x00002468u, 0x0000bba8u, 0x0000201au, 0x000700f5u, 0x0000003cu, 0x0000bb69u, + 0x0000903eu, 0x00002468u, 0x0000bb6au, 0x0000201au, 0x000700f5u, 0x00000009u, 0x0000bb5cu, 0x00008ed0u, + 0x00002468u, 0x0000bb5du, 0x0000201au, 0x000700f5u, 0x0000005du, 0x0000a78au, 0x0000a789u, 0x00002468u, + 0x0000a8f4u, 0x0000201au, 0x000700f5u, 0x0000005du, 0x0000a604u, 0x0000a603u, 0x00002468u, 0x0000a76eu, + 0x0000201au, 0x000200f9u, 0x00001ff6u, 0x000200f8u, 0x00001ff6u, 0x000200f9u, 0x00001ff3u, 0x000200f8u, + 0x00001ff5u, 0x000200f9u, 0x00001fdcu, 0x000200f8u, 0x00001fdcu, 0x000200f9u, 0x00001fd9u, 0x000200f8u, + 0x00001fdbu, 0x000500aeu, 0x00000880u, 0x00006c02u, 0x00001fcbu, 0x00002073u, 0x0004009au, 0x0000005du, + 0x00006c03u, 0x00006c02u, 0x000600a9u, 0x0000005du, 0x0000bdf3u, 0x00006c03u, 0x00000548u, 0x000075ecu, + 0x000600a9u, 0x0000005du, 0x0000bdf4u, 0x00006c03u, 0x00000548u, 0x000075cfu, 0x000500c2u, 0x00000006u, + 0x00006c07u, 0x00001fceu, 0x0000084bu, 0x00050050u, 0x000000a6u, 0x00006c09u, 0x000008f4u, 0x000008f4u, + 0x000500c7u, 0x000000a6u, 0x00006c0au, 0x00001fcbu, 0x00006c09u, 0x00050050u, 0x0000005fu, 0x00006c0cu, + 0x0000084bu, 0x0000084bu, 0x000500c2u, 0x000000a6u, 0x00006c0du, 0x00001fcbu, 0x00006c0cu, 0x00050051u, + 0x00000006u, 0x00006c0fu, 0x00006c0au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006c10u, 0x00006c0fu, + 0x000008fdu, 0x00050051u, 0x00000006u, 0x00006c12u, 0x00006c0au, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00006c13u, 0x00006c10u, 0x00006c12u, 0x00050051u, 0x00000006u, 0x00006c17u, 0x00006c0du, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00006c18u, 0x00006c07u, 0x00006c17u, 0x00050080u, 0x00000006u, 0x00006c19u, + 0x00001fd4u, 0x00006c18u, 0x00050051u, 0x00000006u, 0x00006c1bu, 0x00006c0du, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00006c1cu, 0x00006c19u, 0x00006c1bu, 0x000300f7u, 0x00006ce3u, 0x00000000u, 0x000400fau, + 0x0000bdf4u, 0x00006c3bu, 0x00006ce3u, 0x000200f8u, 0x00006c3bu, 0x000300f7u, 0x00006ce2u, 0x00000000u, + 0x000d00fbu, 0x0000065cu, 0x00006ce2u, 0x00000000u, 0x00006c3cu, 0x00000001u, 0x00006c52u, 0x00000002u, + 0x00006c6cu, 0x00000003u, 0x00006c9au, 0x00000004u, 0x00006cb6u, 0x000200f8u, 0x00006cb6u, 0x000500c7u, + 0x00000006u, 0x00006cb8u, 0x00006c1cu, 0x000006cfu, 0x00050084u, 0x00000006u, 0x00006cbau, 0x00006c13u, + 0x0000081bu, 0x00050080u, 0x00000006u, 0x00006cbcu, 0x00006cb8u, 0x00006cbau, 0x0004007cu, 0x0000023cu, + 0x00006cbeu, 0x000075d4u, 0x00050051u, 0x00000006u, 0x00006cc0u, 0x00006cbeu, 0x00000000u, 0x000500c4u, + 0x00000006u, 0x00006cc1u, 0x00006cc0u, 0x000006e1u, 0x00050051u, 0x00000006u, 0x00006cc3u, 0x00006cbeu, + 0x00000001u, 0x000500c4u, 0x00000006u, 0x00006cc4u, 0x00006cc3u, 0x0000037cu, 0x000500c5u, 0x00000006u, + 0x00006cc5u, 0x00006cc1u, 0x00006cc4u, 0x00050051u, 0x00000006u, 0x00006cc7u, 0x00006cbeu, 0x00000002u, + 0x000500c4u, 0x00000006u, 0x00006cc8u, 0x00006cc7u, 0x00000360u, 0x000500c5u, 0x00000006u, 0x00006cc9u, + 0x00006cc5u, 0x00006cc8u, 0x00050051u, 0x00000006u, 0x00006ccbu, 0x00006cbeu, 0x00000003u, 0x000500c4u, + 0x00000006u, 0x00006cccu, 0x00006ccbu, 0x00000379u, 0x000500c5u, 0x00000006u, 0x00006ccdu, 0x00006cc9u, + 0x00006cccu, 0x00060041u, 0x00000270u, 0x00006cd0u, 0x000006dbu, 0x00000208u, 0x00006cbcu, 0x0003003eu, + 0x00006cd0u, 0x00006ccdu, 0x00050084u, 0x00000006u, 0x00006cd2u, 0x000003c9u, 0x00006cbcu, 0x00050051u, + 0x00000008u, 0x00006cd4u, 0x000075d4u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00006cd5u, 0x00006cd4u, + 0x00000217u, 0x00050084u, 0x00000008u, 0x00006cd6u, 0x00006cd5u, 0x0000021du, 0x00040071u, 0x0000022eu, + 0x00006cd7u, 0x00006cd6u, 0x00060041u, 0x0000027cu, 0x00006cd8u, 0x0000067du, 0x00000208u, 0x00006cd2u, + 0x0003003eu, 0x00006cd8u, 0x00006cd7u, 0x00050080u, 0x00000006u, 0x00006cdbu, 0x00006cd2u, 0x0000048au, + 0x00050051u, 0x00000008u, 0x00006cddu, 0x000075d4u, 0x00000003u, 0x000500c7u, 0x00000008u, 0x00006cdeu, + 0x00006cddu, 0x00000217u, 0x00050084u, 0x00000008u, 0x00006cdfu, 0x00006cdeu, 0x0000021du, 0x00040071u, + 0x0000022eu, 0x00006ce0u, 0x00006cdfu, 0x00060041u, 0x0000027cu, 0x00006ce1u, 0x0000067du, 0x00000208u, + 0x00006cdbu, 0x0003003eu, 0x00006ce1u, 0x00006ce0u, 0x000200f9u, 0x00006ce2u, 0x000200f8u, 0x00006c9au, + 0x000500c7u, 0x00000006u, 0x00006c9cu, 0x00006c1cu, 0x00000686u, 0x00050084u, 0x00000006u, 0x00006c9eu, + 0x00006c13u, 0x000007fcu, 0x00050080u, 0x00000006u, 0x00006ca0u, 0x00006c9cu, 0x00006c9eu, 0x0007004fu, + 0x0000005fu, 0x00006ca2u, 0x000075d4u, 0x000075d4u, 0x00000000u, 0x00000003u, 0x0004007cu, 0x000000a6u, + 0x00006ca3u, 0x00006ca2u, 0x00050051u, 0x00000006u, 0x00006ca5u, 0x00006ca3u, 0x00000000u, 0x000500c4u, + 0x00000006u, 0x00006ca6u, 0x00006ca5u, 0x00000360u, 0x00050051u, 0x00000006u, 0x00006ca8u, 0x00006ca3u, + 0x00000001u, 0x000500c5u, 0x00000006u, 0x00006ca9u, 0x00006ca6u, 0x00006ca8u, 0x000500c6u, 0x00000006u, + 0x00006cabu, 0x00006ca0u, 0x0000048au, 0x00040071u, 0x00000230u, 0x00006cadu, 0x00006ca9u, 0x00060041u, + 0x00000275u, 0x00006caeu, 0x00000692u, 0x00000208u, 0x00006cabu, 0x0003003eu, 0x00006caeu, 0x00006cadu, + 0x000500c7u, 0x00000006u, 0x00006cb2u, 0x00006ca8u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00006cb3u, + 0x00006cb2u, 0x00000490u, 0x00040071u, 0x0000022eu, 0x00006cb4u, 0x00006cb3u, 0x00060041u, 0x0000027cu, + 0x00006cb5u, 0x0000067du, 0x00000208u, 0x00006ca0u, 0x0003003eu, 0x00006cb5u, 0x00006cb4u, 0x000200f9u, + 0x00006ce2u, 0x000200f8u, 0x00006c6cu, 0x000500c7u, 0x00000006u, 0x00006c6eu, 0x00006c1cu, 0x00000686u, + 0x00050084u, 0x00000006u, 0x00006c70u, 0x00006c13u, 0x000007c9u, 0x00050080u, 0x00000006u, 0x00006c72u, + 0x00006c6eu, 0x00006c70u, 0x0004007cu, 0x0000023cu, 0x00006c74u, 0x000075d4u, 0x0008004fu, 0x00000358u, + 0x00006c76u, 0x00006c74u, 0x00006c74u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, 0x00000358u, + 0x00006c78u, 0x00006c76u, 0x0000bda0u, 0x00050051u, 0x00000006u, 0x00006c7au, 0x00006c78u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00006c7cu, 0x00006c78u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00006c7eu, + 0x00006c78u, 0x00000002u, 0x00050051u, 0x00000006u, 0x00006c80u, 0x00006c74u, 0x00000003u, 0x000500c2u, + 0x00000006u, 0x00006c81u, 0x00006c80u, 0x00000739u, 0x000500c4u, 0x00000006u, 0x00006c84u, 0x00006c7au, + 0x00000360u, 0x000500c4u, 0x00000006u, 0x00006c87u, 0x00006c7cu, 0x00000490u, 0x000500c5u, 0x00000006u, + 0x00006c88u, 0x00006c84u, 0x00006c87u, 0x000500c2u, 0x00000006u, 0x00006c8bu, 0x00006c7eu, 0x000003c9u, + 0x000500c5u, 0x00000006u, 0x00006c8cu, 0x00006c88u, 0x00006c8bu, 0x000500c2u, 0x00000006u, 0x00006c8eu, + 0x00006c81u, 0x000003c9u, 0x000500c5u, 0x00000006u, 0x00006c8fu, 0x00006c8cu, 0x00006c8eu, 0x000500c6u, + 0x00000006u, 0x00006c91u, 0x00006c72u, 0x0000048au, 0x00040071u, 0x00000230u, 0x00006c93u, 0x00006c8fu, + 0x00060041u, 0x00000275u, 0x00006c94u, 0x00000692u, 0x00000208u, 0x00006c91u, 0x0003003eu, 0x00006c94u, + 0x00006c93u, 0x000500c7u, 0x00000006u, 0x00006c97u, 0x00006c81u, 0x00000490u, 0x00040071u, 0x0000022eu, + 0x00006c98u, 0x00006c97u, 0x00060041u, 0x0000027cu, 0x00006c99u, 0x0000067du, 0x00000208u, 0x00006c72u, + 0x0003003eu, 0x00006c99u, 0x00006c98u, 0x000200f9u, 0x00006ce2u, 0x000200f8u, 0x00006c52u, 0x000500c7u, + 0x00000006u, 0x00006c54u, 0x00006c1cu, 0x00000663u, 0x00050084u, 0x00000006u, 0x00006c56u, 0x00006c13u, + 0x00000662u, 0x00050080u, 0x00000006u, 0x00006c58u, 0x00006c54u, 0x00006c56u, 0x000500c6u, 0x00000006u, + 0x00006c5au, 0x00006c58u, 0x00000490u, 0x00050051u, 0x00000008u, 0x00006c5cu, 0x000075d4u, 0x00000000u, + 0x00040071u, 0x0000022eu, 0x00006c5du, 0x00006c5cu, 0x00060041u, 0x0000027cu, 0x00006c5eu, 0x0000066eu, + 0x00000208u, 0x00006c5au, 0x0003003eu, 0x00006c5eu, 0x00006c5du, 0x000500c7u, 0x00000006u, 0x00006c60u, + 0x00006c58u, 0x0000048au, 0x000500abu, 0x0000005du, 0x00006c61u, 0x00006c60u, 0x00000379u, 0x000300f7u, + 0x00006c6bu, 0x00000000u, 0x000400fau, 0x00006c61u, 0x00006c62u, 0x00006c6bu, 0x000200f8u, 0x00006c62u, + 0x000500c2u, 0x00000006u, 0x00006c64u, 0x00006c58u, 0x0000048au, 0x000500c7u, 0x00000008u, 0x00006c67u, + 0x00006c5cu, 0x00000217u, 0x00050084u, 0x00000008u, 0x00006c68u, 0x00006c67u, 0x0000021du, 0x00040071u, + 0x0000022eu, 0x00006c69u, 0x00006c68u, 0x00060041u, 0x0000027cu, 0x00006c6au, 0x0000067du, 0x00000208u, + 0x00006c64u, 0x0003003eu, 0x00006c6au, 0x00006c69u, 0x000200f9u, 0x00006c6bu, 0x000200f8u, 0x00006c6bu, + 0x000200f9u, 0x00006ce2u, 0x000200f8u, 0x00006c3cu, 0x000500c7u, 0x00000006u, 0x00006c3eu, 0x00006c1cu, + 0x00000663u, 0x00050084u, 0x00000006u, 0x00006c40u, 0x00006c13u, 0x00000662u, 0x00050080u, 0x00000006u, + 0x00006c42u, 0x00006c3eu, 0x00006c40u, 0x000500c6u, 0x00000006u, 0x00006c44u, 0x00006c42u, 0x00000490u, + 0x00060041u, 0x0000027cu, 0x00006c46u, 0x0000066eu, 0x00000208u, 0x00006c44u, 0x0003003eu, 0x00006c46u, + 0x0000bdc1u, 0x000500c7u, 0x00000006u, 0x00006c48u, 0x00006c42u, 0x0000048au, 0x000500abu, 0x0000005du, + 0x00006c49u, 0x00006c48u, 0x00000379u, 0x000300f7u, 0x00006c51u, 0x00000000u, 0x000400fau, 0x00006c49u, + 0x00006c4au, 0x00006c51u, 0x000200f8u, 0x00006c4au, 0x000500c2u, 0x00000006u, 0x00006c4cu, 0x00006c42u, + 0x0000048au, 0x00050051u, 0x00000008u, 0x00006c4eu, 0x000075d4u, 0x00000003u, 0x00040071u, 0x0000022eu, + 0x00006c4fu, 0x00006c4eu, 0x00060041u, 0x0000027cu, 0x00006c50u, 0x0000067du, 0x00000208u, 0x00006c4cu, + 0x0003003eu, 0x00006c50u, 0x00006c4fu, 0x000200f9u, 0x00006c51u, 0x000200f8u, 0x00006c51u, 0x000200f9u, + 0x00006ce2u, 0x000200f8u, 0x00006ce2u, 0x000f00f5u, 0x00000006u, 0x000075d9u, 0x00006c1cu, 0x00006c3bu, + 0x00006c42u, 0x00006c51u, 0x00006c58u, 0x00006c6bu, 0x00006c72u, 0x00006c6cu, 0x00006ca0u, 0x00006c9au, + 0x00006cbcu, 0x00006cb6u, 0x000200f9u, 0x00006ce3u, 0x000200f8u, 0x00006ce3u, 0x000700f5u, 0x00000006u, + 0x000075d8u, 0x00006c1cu, 0x00001fdbu, 0x000075d9u, 0x00006ce2u, 0x000300f7u, 0x00006ce7u, 0x00000000u, + 0x000400fau, 0x0000084du, 0x00006ce4u, 0x00006ce7u, 0x000200f8u, 0x00006ce4u, 0x000300e1u, 0x0000048au, + 0x00000850u, 0x000300f7u, 0x00006cfcu, 0x00000000u, 0x000400fau, 0x0000bdf4u, 0x00006ceau, 0x00006cfcu, + 0x000200f8u, 0x00006ceau, 0x000300f7u, 0x00006cfbu, 0x00000000u, 0x000d00fbu, 0x0000065cu, 0x00006cfbu, + 0x00000000u, 0x00006cebu, 0x00000001u, 0x00006cebu, 0x00000002u, 0x00006cf1u, 0x00000003u, 0x00006cf1u, + 0x00000004u, 0x00006cf7u, 0x000200f8u, 0x00006cf7u, 0x00050080u, 0x00000006u, 0x00006cf9u, 0x000075d8u, + 0x00000787u, 0x00060041u, 0x00000270u, 0x00006cfau, 0x000006dbu, 0x00000208u, 0x00006cf9u, 0x0003003eu, + 0x00006cfau, 0x00000789u, 0x000200f9u, 0x00006cfbu, 0x000200f8u, 0x00006cf1u, 0x000500c6u, 0x00000006u, + 0x00006cf3u, 0x000075d8u, 0x0000048au, 0x00050080u, 0x00000006u, 0x00006cf4u, 0x00006cf3u, 0x00000780u, + 0x00060041u, 0x00000275u, 0x00006cf6u, 0x00000692u, 0x00000208u, 0x00006cf4u, 0x0003003eu, 0x00006cf6u, + 0x0000bdc3u, 0x000200f9u, 0x00006cfbu, 0x000200f8u, 0x00006cebu, 0x000500c6u, 0x00000006u, 0x00006cedu, + 0x000075d8u, 0x00000490u, 0x00050080u, 0x00000006u, 0x00006ceeu, 0x00006cedu, 0x00000662u, 0x00060041u, + 0x0000027cu, 0x00006cf0u, 0x0000066eu, 0x00000208u, 0x00006ceeu, 0x0003003eu, 0x00006cf0u, 0x0000bdc2u, + 0x000200f9u, 0x00006cfbu, 0x000200f8u, 0x00006cfbu, 0x000200f9u, 0x00006cfcu, 0x000200f8u, 0x00006cfcu, + 0x000200f9u, 0x00006ce7u, 0x000200f8u, 0x00006ce7u, 0x00050080u, 0x00000006u, 0x00006c25u, 0x00001fd7u, + 0x00006c18u, 0x00050080u, 0x00000006u, 0x00006c28u, 0x00006c25u, 0x00006c1bu, 0x000300f7u, 0x00006d20u, + 0x00000000u, 0x000400fau, 0x00000855u, 0x00006cfeu, 0x00006d20u, 0x000200f8u, 0x00006cfeu, 0x000300f7u, + 0x00006d15u, 0x00000000u, 0x000400fau, 0x0000bdf3u, 0x00006d00u, 0x00006d15u, 0x000200f8u, 0x00006d00u, + 0x000500c7u, 0x00000006u, 0x00006d02u, 0x00006c28u, 0x00000686u, 0x00050084u, 0x00000006u, 0x00006d04u, + 0x00006c13u, 0x0000085fu, 0x00050080u, 0x00000006u, 0x00006d06u, 0x00006d02u, 0x00006d04u, 0x000500c6u, + 0x00000006u, 0x00006d08u, 0x00006d06u, 0x0000048au, 0x000500c4u, 0x00000008u, 0x00006d0au, 0x000075fau, + 0x0000021au, 0x000500c3u, 0x00000008u, 0x00006d0cu, 0x00007607u, 0x0000021au, 0x000500c5u, 0x00000008u, + 0x00006d0du, 0x00006d0au, 0x00006d0cu, 0x00040071u, 0x00000230u, 0x00006d0eu, 0x00006d0du, 0x00060041u, + 0x00000275u, 0x00006d0fu, 0x00000692u, 0x00000208u, 0x00006d08u, 0x0003003eu, 0x00006d0fu, 0x00006d0eu, + 0x000500c7u, 0x00000008u, 0x00006d12u, 0x00007607u, 0x0000021du, 0x00040071u, 0x0000022eu, 0x00006d13u, + 0x00006d12u, 0x00060041u, 0x0000027cu, 0x00006d14u, 0x0000067du, 0x00000208u, 0x00006d06u, 0x0003003eu, + 0x00006d14u, 0x00006d13u, 0x000200f9u, 0x00006d15u, 0x000200f8u, 0x00006d15u, 0x000700f5u, 0x00000006u, + 0x00007611u, 0x00006c28u, 0x00006cfeu, 0x00006d06u, 0x00006d00u, 0x000300f7u, 0x00006d1fu, 0x00000000u, + 0x000400fau, 0x0000084du, 0x00006d16u, 0x00006d1fu, 0x000200f8u, 0x00006d16u, 0x000300e1u, 0x0000048au, + 0x00000850u, 0x000300f7u, 0x00006d1eu, 0x00000000u, 0x000400fau, 0x0000bdf3u, 0x00006d18u, 0x00006d1eu, + 0x000200f8u, 0x00006d18u, 0x000500c6u, 0x00000006u, 0x00006d1au, 0x00007611u, 0x0000048au, 0x00050080u, + 0x00000006u, 0x00006d1bu, 0x00006d1au, 0x00000878u, 0x00060041u, 0x00000275u, 0x00006d1du, 0x00000692u, + 0x00000208u, 0x00006d1bu, 0x0003003eu, 0x00006d1du, 0x0000bdc3u, 0x000200f9u, 0x00006d1eu, 0x000200f8u, + 0x00006d1eu, 0x000200f9u, 0x00006d1fu, 0x000200f8u, 0x00006d1fu, 0x000200f9u, 0x00006d20u, 0x000200f8u, + 0x00006d20u, 0x000300f7u, 0x00006c30u, 0x00000000u, 0x000400fau, 0x00000920u, 0x00006c2cu, 0x00006c30u, + 0x000200f8u, 0x00006c2cu, 0x000500c2u, 0x00000006u, 0x00006d27u, 0x00006c17u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00006d29u, 0x00006c07u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00006d2au, 0x00006d29u, + 0x000003c9u, 0x00050084u, 0x00000006u, 0x00006d2bu, 0x00006d27u, 0x00006d2au, 0x000500c2u, 0x00000006u, + 0x00006d2eu, 0x00006c1bu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00006d2fu, 0x00006d2bu, 0x00006d2eu, + 0x000500c7u, 0x000000a6u, 0x00006d32u, 0x00006c0du, 0x0000bda1u, 0x000600a9u, 0x00000006u, 0x00006d34u, + 0x0000bdf4u, 0x0000048au, 0x00000379u, 0x000600a9u, 0x00000006u, 0x00006d36u, 0x0000bdf3u, 0x0000048au, + 0x00000379u, 0x00050084u, 0x00000006u, 0x00006d37u, 0x000003c9u, 0x00006d36u, 0x00050080u, 0x00000006u, + 0x00006d38u, 0x00006d34u, 0x00006d37u, 0x00050051u, 0x00000006u, 0x00006d3au, 0x00006d32u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00006d3cu, 0x00006d32u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006d3du, + 0x00006d3cu, 0x00000706u, 0x00050080u, 0x00000006u, 0x00006d3eu, 0x00006d3au, 0x00006d3du, 0x00050084u, + 0x00000006u, 0x00006d3fu, 0x000003c9u, 0x00006d3eu, 0x000500c4u, 0x00000006u, 0x00006d41u, 0x00006d38u, + 0x00006d3fu, 0x000500abu, 0x0000005du, 0x00006d43u, 0x00006d41u, 0x00000379u, 0x000300f7u, 0x00006d4au, + 0x00000000u, 0x000400fau, 0x00006d43u, 0x00006d44u, 0x00006d4au, 0x000200f8u, 0x00006d44u, 0x00050080u, + 0x00000006u, 0x00006d46u, 0x000008e0u, 0x00006d2fu, 0x00060041u, 0x00000270u, 0x00006d47u, 0x000006dbu, + 0x00000208u, 0x00006d46u, 0x000700f1u, 0x00000006u, 0x00006d49u, 0x00006d47u, 0x0000048au, 0x00000379u, + 0x00006d41u, 0x000200f9u, 0x00006d4au, 0x000200f8u, 0x00006d4au, 0x000200f9u, 0x00006c30u, 0x000200f8u, + 0x00006c30u, 0x000200f9u, 0x0000205bu, 0x000200f8u, 0x0000205bu, 0x000100fdu, 0x00010038u, 0x07230203u, + 0x00010300u, 0x000d000bu, 0x0000be14u, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x0000002eu, + 0x00020011u, 0x0000003du, 0x00020011u, 0x0000003fu, 0x00020011u, 0x00000040u, 0x00020011u, 0x00001151u, + 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, + 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, + 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00001fa2u, + 0x00001facu, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, 0x00050048u, + 0x00000209u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000209u, 0x00000001u, 0x00000023u, + 0x00000010u, 0x00050048u, 0x00000209u, 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, 0x00000209u, + 0x00000003u, 0x00000023u, 0x00000030u, 0x00050048u, 0x00000209u, 0x00000004u, 0x00000023u, 0x00000040u, + 0x00050048u, 0x00000209u, 0x00000005u, 0x00000023u, 0x00000050u, 0x00050048u, 0x00000209u, 0x00000006u, + 0x00000023u, 0x00000060u, 0x00050048u, 0x00000209u, 0x00000007u, 0x00000023u, 0x00000070u, 0x00040047u, + 0x0000020au, 0x00000006u, 0x00000080u, 0x00040048u, 0x0000020bu, 0x00000000u, 0x00000018u, 0x00050048u, + 0x0000020bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000020bu, 0x00000002u, 0x00040047u, + 0x0000020du, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000020du, 0x00000021u, 0x00000001u, 0x00050048u, + 0x00000233u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000233u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x00000233u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000233u, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000233u, 0x00000004u, 0x00000023u, 0x00000010u, + 0x00050048u, 0x00000233u, 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, 0x00000233u, 0x00000006u, + 0x00000023u, 0x00000018u, 0x00050048u, 0x00000233u, 0x00000007u, 0x00000023u, 0x0000001cu, 0x00050048u, + 0x00000233u, 0x00000008u, 0x00000023u, 0x00000020u, 0x00050048u, 0x00000233u, 0x00000009u, 0x00000023u, + 0x00000024u, 0x00050048u, 0x00000233u, 0x0000000au, 0x00000023u, 0x00000028u, 0x00050048u, 0x00000233u, + 0x0000000bu, 0x00000023u, 0x0000002cu, 0x00050048u, 0x00000233u, 0x0000000cu, 0x00000023u, 0x0000002eu, + 0x00050048u, 0x00000233u, 0x0000000du, 0x00000023u, 0x0000002fu, 0x00050048u, 0x00000233u, 0x0000000eu, + 0x00000023u, 0x00000030u, 0x00040047u, 0x00000234u, 0x00000006u, 0x00000038u, 0x00040048u, 0x00000235u, + 0x00000000u, 0x00000018u, 0x00050048u, 0x00000235u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000235u, 0x00000002u, 0x00040047u, 0x00000237u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000237u, + 0x00000021u, 0x00000002u, 0x00050048u, 0x00000290u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x00000290u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000290u, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x00000290u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000290u, + 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000290u, 0x00000005u, 0x00000023u, 0x00000014u, + 0x00050048u, 0x00000290u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x00000290u, 0x00000007u, + 0x00000023u, 0x0000001cu, 0x00040047u, 0x00000291u, 0x00000006u, 0x00000020u, 0x00040048u, 0x00000292u, + 0x00000000u, 0x00000018u, 0x00050048u, 0x00000292u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000292u, 0x00000002u, 0x00040047u, 0x00000294u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000294u, + 0x00000021u, 0x00000004u, 0x00050048u, 0x000002b3u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x000002b3u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000002b3u, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x000002b3u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000002b3u, + 0x00000004u, 0x00000023u, 0x0000000du, 0x00050048u, 0x000002b3u, 0x00000005u, 0x00000023u, 0x0000000eu, + 0x00050048u, 0x000002b3u, 0x00000006u, 0x00000023u, 0x0000000fu, 0x00040047u, 0x000002b4u, 0x00000006u, + 0x00000010u, 0x00040048u, 0x000002b5u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000002b5u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x000002b5u, 0x00000002u, 0x00040047u, 0x000002b7u, 0x00000022u, + 0x00000001u, 0x00040047u, 0x000002b7u, 0x00000021u, 0x00000005u, 0x00050048u, 0x000002d2u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x000002d2u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x000002d2u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000002d2u, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00050048u, 0x000002d2u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000002d2u, + 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, 0x000002d2u, 0x00000006u, 0x00000023u, 0x00000018u, + 0x00050048u, 0x000002d2u, 0x00000007u, 0x00000023u, 0x00000019u, 0x00050048u, 0x000002d2u, 0x00000008u, + 0x00000023u, 0x0000001au, 0x00050048u, 0x000002d2u, 0x00000009u, 0x00000023u, 0x0000001bu, 0x00050048u, + 0x000002d2u, 0x0000000au, 0x00000023u, 0x0000001cu, 0x00050048u, 0x000002d2u, 0x0000000bu, 0x00000023u, + 0x0000001du, 0x00050048u, 0x000002d2u, 0x0000000cu, 0x00000023u, 0x0000001eu, 0x00050048u, 0x000002d2u, + 0x0000000du, 0x00000023u, 0x0000001fu, 0x00040047u, 0x000002d3u, 0x00000006u, 0x00000020u, 0x00040048u, + 0x000002d4u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000002d4u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000002d4u, 0x00000002u, 0x00040047u, 0x000002d6u, 0x00000022u, 0x00000001u, 0x00040047u, + 0x000002d6u, 0x00000021u, 0x00000007u, 0x00050048u, 0x00000315u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00050048u, 0x00000315u, 0x00000001u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000315u, 0x00000002u, + 0x00000023u, 0x00000020u, 0x00050048u, 0x00000315u, 0x00000003u, 0x00000023u, 0x00000028u, 0x00050048u, + 0x00000315u, 0x00000004u, 0x00000023u, 0x00000030u, 0x00050048u, 0x00000315u, 0x00000005u, 0x00000023u, + 0x00000034u, 0x00050048u, 0x00000315u, 0x00000006u, 0x00000023u, 0x00000038u, 0x00050048u, 0x00000315u, + 0x00000007u, 0x00000023u, 0x0000003cu, 0x00050048u, 0x00000315u, 0x00000008u, 0x00000023u, 0x0000003eu, + 0x00040047u, 0x00000316u, 0x00000006u, 0x00000040u, 0x00040048u, 0x00000317u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x00000317u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000317u, 0x00000002u, + 0x00040047u, 0x00000319u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000319u, 0x00000021u, 0x00000008u, + 0x00050048u, 0x00000342u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000342u, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x00000342u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, + 0x00000342u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00040047u, 0x00000343u, 0x00000006u, 0x00000010u, + 0x00040048u, 0x00000344u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000344u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000344u, 0x00000002u, 0x00040047u, 0x00000346u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000346u, 0x00000021u, 0x00000009u, 0x00040047u, 0x00000509u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000509u, 0x00000021u, 0x0000000au, 0x00040047u, 0x0000065cu, 0x00000001u, 0x00000001u, + 0x00040047u, 0x00000662u, 0x00000001u, 0x00000000u, 0x00040047u, 0x0000066bu, 0x00000006u, 0x00000001u, + 0x00050048u, 0x0000066cu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000066cu, 0x00000002u, + 0x00040047u, 0x0000066eu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000066eu, 0x00000021u, 0x00000000u, + 0x00040047u, 0x0000067au, 0x00000006u, 0x00000001u, 0x00050048u, 0x0000067bu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000067bu, 0x00000002u, 0x00040047u, 0x0000067du, 0x00000022u, 0x00000000u, + 0x00040047u, 0x0000067du, 0x00000021u, 0x00000001u, 0x00040047u, 0x0000068fu, 0x00000006u, 0x00000002u, + 0x00050048u, 0x00000690u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000690u, 0x00000002u, + 0x00040047u, 0x00000692u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000692u, 0x00000021u, 0x00000000u, + 0x00040047u, 0x000006d8u, 0x00000006u, 0x00000004u, 0x00050048u, 0x000006d9u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000006d9u, 0x00000002u, 0x00040047u, 0x000006dbu, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000006dbu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000848u, 0x00000001u, 0x00000007u, + 0x00040047u, 0x00000854u, 0x00000001u, 0x00000002u, 0x00040047u, 0x00000a1fu, 0x00000006u, 0x00000001u, + 0x00050048u, 0x00000a20u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000a20u, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x00000a20u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, + 0x00000a21u, 0x00000006u, 0x00000010u, 0x00040048u, 0x00000a22u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000a22u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000a22u, 0x00000002u, 0x00040047u, + 0x00000a24u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000a24u, 0x00000021u, 0x00000006u, 0x00050048u, + 0x00000cdau, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000cdau, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x00000cdau, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000cdau, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000cdbu, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x00000cdbu, 0x00000002u, 0x00040047u, 0x00000cddu, 0x00000022u, 0x00000002u, 0x00040047u, + 0x00000cddu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000e7cu, 0x00000006u, 0x00000001u, 0x00050048u, + 0x00000e7du, 0x00000000u, 0x00000023u, 0x00000000u, 0x00040047u, 0x00000e7eu, 0x00000006u, 0x00001000u, + 0x00040048u, 0x00000e7fu, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000e7fu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000e7fu, 0x00000002u, 0x00040047u, 0x00000e81u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x00000e81u, 0x00000021u, 0x00000002u, 0x00040047u, 0x00000f43u, 0x00000006u, 0x00000002u, + 0x00050048u, 0x00000f44u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00040047u, 0x00000f45u, 0x00000006u, + 0x00001000u, 0x00040048u, 0x00000f46u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000f46u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000f46u, 0x00000002u, 0x00040047u, 0x00000f48u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000f48u, 0x00000021u, 0x00000002u, 0x00050048u, 0x00001c4eu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x00001c4eu, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x00001c4eu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00001c4eu, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00050048u, 0x00001c4eu, 0x00000004u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x00001c4eu, + 0x00000005u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00001c4eu, 0x00000006u, 0x00000023u, 0x00000014u, + 0x00050048u, 0x00001c4eu, 0x00000007u, 0x00000023u, 0x00000018u, 0x00050048u, 0x00001c4eu, 0x00000008u, + 0x00000023u, 0x0000001cu, 0x00050048u, 0x00001c4eu, 0x00000009u, 0x00000023u, 0x0000001eu, 0x00050048u, + 0x00001c4eu, 0x0000000au, 0x00000023u, 0x0000001fu, 0x00040047u, 0x00001c4fu, 0x00000006u, 0x00000020u, + 0x00040048u, 0x00001c50u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00001c50u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00001c50u, 0x00000002u, 0x00040047u, 0x00001c52u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00001c52u, 0x00000021u, 0x00000000u, 0x00040047u, 0x00001fa2u, 0x0000000bu, 0x0000001cu, + 0x00040047u, 0x00001facu, 0x0000000bu, 0x0000001au, 0x00040047u, 0x00001fb5u, 0x00000001u, 0x00000006u, + 0x00040047u, 0x00001fb6u, 0x00000001u, 0x00000003u, 0x00040047u, 0x00001fb7u, 0x00000001u, 0x00000004u, + 0x00040047u, 0x00001fb8u, 0x0000000bu, 0x00000019u, 0x00040047u, 0x00001fc0u, 0x00000001u, 0x00000005u, + 0x00040047u, 0x00001fc4u, 0x00000006u, 0x00000004u, 0x00040048u, 0x00001fc5u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x00001fc5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00001fc5u, 0x00000002u, + 0x00040047u, 0x00001fc7u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00001fc7u, 0x00000021u, 0x0000000cu, + 0x00050048u, 0x00001fcbu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00001fcbu, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x00001fcbu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, + 0x00001fcbu, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00001fcbu, 0x00000004u, 0x00000023u, + 0x00000010u, 0x00030047u, 0x00001fcbu, 0x00000002u, 0x00040047u, 0x00001ff8u, 0x00000006u, 0x00000004u, + 0x00040048u, 0x00001ff9u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00001ff9u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00001ff9u, 0x00000002u, 0x00040047u, 0x00001ffbu, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00001ffbu, 0x00000021u, 0x0000000bu, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, + 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x00040015u, 0x00000008u, 0x00000020u, + 0x00000001u, 0x00040017u, 0x00000009u, 0x00000008u, 0x00000004u, 0x00040017u, 0x0000003cu, 0x00000008u, + 0x00000003u, 0x00040020u, 0x0000003eu, 0x00000007u, 0x00000008u, 0x00020014u, 0x0000005du, 0x00040017u, + 0x0000005fu, 0x00000008u, 0x00000002u, 0x00040020u, 0x00000060u, 0x00000007u, 0x0000005fu, 0x00040017u, + 0x000000a6u, 0x00000006u, 0x00000002u, 0x0004002bu, 0x00000008u, 0x00000208u, 0x00000000u, 0x000a001eu, + 0x00000209u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, + 0x00000009u, 0x0003001du, 0x0000020au, 0x00000209u, 0x0003001eu, 0x0000020bu, 0x0000020au, 0x00040020u, + 0x0000020cu, 0x0000000cu, 0x0000020bu, 0x0004003bu, 0x0000020cu, 0x0000020du, 0x0000000cu, 0x00040020u, + 0x0000020fu, 0x0000000cu, 0x00000209u, 0x0004002bu, 0x00000008u, 0x00000217u, 0x00000001u, 0x0004002bu, + 0x00000008u, 0x0000021au, 0x00000002u, 0x0004002bu, 0x00000008u, 0x0000021du, 0x00000003u, 0x0004002bu, + 0x00000008u, 0x00000220u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x00000223u, 0x00000005u, 0x0004002bu, + 0x00000008u, 0x00000226u, 0x00000006u, 0x0004002bu, 0x00000008u, 0x00000229u, 0x00000007u, 0x00040015u, + 0x0000022eu, 0x00000008u, 0x00000000u, 0x00040017u, 0x0000022fu, 0x0000022eu, 0x00000004u, 0x00040015u, + 0x00000230u, 0x00000010u, 0x00000000u, 0x00040015u, 0x00000231u, 0x00000010u, 0x00000001u, 0x00040017u, + 0x00000232u, 0x00000231u, 0x00000004u, 0x0011001eu, 0x00000233u, 0x0000022fu, 0x0000022fu, 0x0000022fu, + 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x00000006u, + 0x00000230u, 0x0000022eu, 0x0000022eu, 0x00000232u, 0x0003001du, 0x00000234u, 0x00000233u, 0x0003001eu, + 0x00000235u, 0x00000234u, 0x00040020u, 0x00000236u, 0x0000000cu, 0x00000235u, 0x0004003bu, 0x00000236u, + 0x00000237u, 0x0000000cu, 0x00040020u, 0x00000239u, 0x0000000cu, 0x0000022fu, 0x00040017u, 0x0000023cu, + 0x00000006u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x00000263u, 0x00000008u, 0x0004002bu, 0x00000008u, + 0x00000269u, 0x00000009u, 0x0004002bu, 0x00000008u, 0x0000026fu, 0x0000000au, 0x00040020u, 0x00000270u, + 0x0000000cu, 0x00000006u, 0x0004002bu, 0x00000008u, 0x00000274u, 0x0000000bu, 0x00040020u, 0x00000275u, + 0x0000000cu, 0x00000230u, 0x0004002bu, 0x00000008u, 0x0000027bu, 0x0000000cu, 0x00040020u, 0x0000027cu, + 0x0000000cu, 0x0000022eu, 0x0004002bu, 0x00000008u, 0x00000282u, 0x0000000du, 0x0004002bu, 0x00000008u, + 0x00000288u, 0x0000000eu, 0x00040020u, 0x00000289u, 0x0000000cu, 0x00000232u, 0x000a001eu, 0x00000290u, + 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x0000022fu, 0x00000006u, 0x00000008u, 0x00000008u, 0x00000008u, + 0x0003001du, 0x00000291u, 0x00000290u, 0x0003001eu, 0x00000292u, 0x00000291u, 0x00040020u, 0x00000293u, + 0x0000000cu, 0x00000292u, 0x0004003bu, 0x00000293u, 0x00000294u, 0x0000000cu, 0x00040020u, 0x000002adu, + 0x0000000cu, 0x00000008u, 0x0009001eu, 0x000002b3u, 0x0000022fu, 0x0000022fu, 0x00000006u, 0x0000022eu, + 0x0000022eu, 0x0000022eu, 0x0000022eu, 0x0003001du, 0x000002b4u, 0x000002b3u, 0x0003001eu, 0x000002b5u, + 0x000002b4u, 0x00040020u, 0x000002b6u, 0x0000000cu, 0x000002b5u, 0x0004003bu, 0x000002b6u, 0x000002b7u, + 0x0000000cu, 0x0010001eu, 0x000002d2u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00000006u, 0x0000022eu, 0x0000022eu, 0x0000022eu, 0x0000022eu, 0x0000022eu, 0x0000022eu, 0x0000022eu, + 0x0000022eu, 0x0003001du, 0x000002d3u, 0x000002d2u, 0x0003001eu, 0x000002d4u, 0x000002d3u, 0x00040020u, + 0x000002d5u, 0x0000000cu, 0x000002d4u, 0x0004003bu, 0x000002d5u, 0x000002d6u, 0x0000000cu, 0x00040017u, + 0x00000314u, 0x00000230u, 0x00000004u, 0x000b001eu, 0x00000315u, 0x00000009u, 0x00000009u, 0x00000314u, + 0x00000314u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000231u, 0x00000230u, 0x0003001du, 0x00000316u, + 0x00000315u, 0x0003001eu, 0x00000317u, 0x00000316u, 0x00040020u, 0x00000318u, 0x0000000cu, 0x00000317u, + 0x0004003bu, 0x00000318u, 0x00000319u, 0x0000000cu, 0x00040020u, 0x0000031bu, 0x0000000cu, 0x00000009u, + 0x00040020u, 0x00000322u, 0x0000000cu, 0x00000314u, 0x00040020u, 0x00000336u, 0x0000000cu, 0x00000231u, + 0x0006001eu, 0x00000342u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, 0x00000343u, + 0x00000342u, 0x0003001eu, 0x00000344u, 0x00000343u, 0x00040020u, 0x00000345u, 0x0000000cu, 0x00000344u, + 0x0004003bu, 0x00000345u, 0x00000346u, 0x0000000cu, 0x00040020u, 0x00000348u, 0x0000000cu, 0x00000342u, + 0x00040017u, 0x00000358u, 0x00000006u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x00000360u, 0x00000008u, + 0x0004002bu, 0x00000006u, 0x00000366u, 0x41c64e6du, 0x0004002bu, 0x00000006u, 0x00000379u, 0x00000000u, + 0x0004002bu, 0x00000006u, 0x0000037cu, 0x00000010u, 0x0004002bu, 0x00000008u, 0x00000382u, 0x00000020u, + 0x0004002bu, 0x00000008u, 0x0000038bu, 0x000001ffu, 0x0004002bu, 0x00000008u, 0x00000390u, 0x000000ffu, + 0x0006002cu, 0x0000003cu, 0x00000397u, 0x00000208u, 0x0000021du, 0x00000226u, 0x0004002bu, 0x00000008u, + 0x0000039du, 0x000000f8u, 0x0006002cu, 0x0000003cu, 0x000003a2u, 0x00000390u, 0x00000390u, 0x00000390u, + 0x0004002bu, 0x00000008u, 0x000003a4u, 0x000000f7u, 0x0006002cu, 0x0000003cu, 0x000003a5u, 0x000003a4u, + 0x000003a4u, 0x000003a4u, 0x00040017u, 0x000003a6u, 0x0000005du, 0x00000003u, 0x0004002bu, 0x00000008u, + 0x000003afu, 0x0000001fu, 0x0004001cu, 0x000003c8u, 0x00000008u, 0x0000037cu, 0x0004002bu, 0x00000006u, + 0x000003c9u, 0x00000002u, 0x0004001cu, 0x000003cau, 0x000003c8u, 0x000003c9u, 0x0013002cu, 0x000003c8u, + 0x000003cbu, 0x00000208u, 0x00000226u, 0x00000217u, 0x00000229u, 0x00000220u, 0x0000021au, 0x00000223u, + 0x0000021du, 0x0000021du, 0x00000223u, 0x0000021au, 0x00000220u, 0x00000229u, 0x00000217u, 0x00000226u, + 0x00000208u, 0x0013002cu, 0x000003c8u, 0x000003ccu, 0x00000208u, 0x00000220u, 0x00000217u, 0x00000223u, + 0x00000220u, 0x00000208u, 0x00000223u, 0x00000217u, 0x0000021du, 0x00000229u, 0x0000021au, 0x00000226u, + 0x00000229u, 0x0000021du, 0x00000226u, 0x0000021au, 0x0005002cu, 0x000003cau, 0x000003cdu, 0x000003cbu, + 0x000003ccu, 0x00040020u, 0x000003d5u, 0x00000007u, 0x000003cau, 0x0004002bu, 0x00000008u, 0x000003d9u, + 0x00000049u, 0x0004002bu, 0x00000008u, 0x0000040fu, 0x000007ffu, 0x0004002bu, 0x00000008u, 0x00000416u, + 0x00040000u, 0x0004002bu, 0x00000008u, 0x00000422u, 0x0003ffffu, 0x0004002bu, 0x00000008u, 0x00000427u, + 0x00000011u, 0x0004002bu, 0x00000006u, 0x0000048au, 0x00000001u, 0x0004002bu, 0x00000006u, 0x00000490u, + 0x00000003u, 0x0004002bu, 0x00000008u, 0x000004d2u, 0x0000003cu, 0x00090019u, 0x00000507u, 0x00000006u, + 0x00000005u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, 0x00000508u, + 0x00000000u, 0x00000507u, 0x0004003bu, 0x00000508u, 0x00000509u, 0x00000000u, 0x0004002bu, 0x00000008u, + 0x00000545u, 0x0000000fu, 0x0003002au, 0x0000005du, 0x00000548u, 0x0004002bu, 0x00000008u, 0x00000558u, + 0x00008000u, 0x0004002bu, 0x00000008u, 0x0000055eu, 0x00000010u, 0x00030029u, 0x0000005du, 0x00000563u, + 0x0004002bu, 0x00000008u, 0x00000564u, 0x0000ffffu, 0x0007002cu, 0x00000009u, 0x000005f9u, 0x00000208u, + 0x00000220u, 0x0000021au, 0x00000226u, 0x00040017u, 0x000005feu, 0x0000005du, 0x00000004u, 0x0007002cu, + 0x00000009u, 0x00000616u, 0x00000208u, 0x00000208u, 0x00000208u, 0x00000208u, 0x0007002cu, 0x00000009u, + 0x00000617u, 0x00000217u, 0x00000217u, 0x00000217u, 0x00000217u, 0x0007002cu, 0x00000009u, 0x00000624u, + 0x00000217u, 0x0000021au, 0x00000220u, 0x00000263u, 0x0004002bu, 0x00000008u, 0x00000627u, 0x00000040u, + 0x0004002bu, 0x00000008u, 0x00000628u, 0x00000080u, 0x0007002cu, 0x00000009u, 0x00000629u, 0x0000055eu, + 0x00000382u, 0x00000627u, 0x00000628u, 0x00040032u, 0x00000008u, 0x0000065cu, 0x00000000u, 0x00040032u, + 0x00000006u, 0x00000662u, 0x00000000u, 0x00060034u, 0x00000006u, 0x00000663u, 0x00000082u, 0x00000662u, + 0x0000048au, 0x0003001du, 0x0000066bu, 0x0000022eu, 0x0003001eu, 0x0000066cu, 0x0000066bu, 0x00040020u, + 0x0000066du, 0x0000000cu, 0x0000066cu, 0x0004003bu, 0x0000066du, 0x0000066eu, 0x0000000cu, 0x0003001du, + 0x0000067au, 0x0000022eu, 0x0003001eu, 0x0000067bu, 0x0000067au, 0x00040020u, 0x0000067cu, 0x0000000cu, + 0x0000067bu, 0x0004003bu, 0x0000067cu, 0x0000067du, 0x0000000cu, 0x00060034u, 0x00000006u, 0x00000686u, + 0x000000c2u, 0x00000663u, 0x0000048au, 0x00060034u, 0x00000006u, 0x0000068au, 0x000000c2u, 0x00000662u, + 0x00000217u, 0x0003001du, 0x0000068fu, 0x00000230u, 0x0003001eu, 0x00000690u, 0x0000068fu, 0x00040020u, + 0x00000691u, 0x0000000cu, 0x00000690u, 0x0004003bu, 0x00000691u, 0x00000692u, 0x0000000cu, 0x0004002bu, + 0x00000006u, 0x000006a0u, 0x000000f8u, 0x00060034u, 0x00000006u, 0x000006b8u, 0x000000c2u, 0x00000662u, + 0x00000217u, 0x0004002bu, 0x00000006u, 0x000006c7u, 0x000000ffu, 0x00060034u, 0x00000006u, 0x000006cfu, + 0x000000c2u, 0x00000663u, 0x000003c9u, 0x00060034u, 0x00000006u, 0x000006d3u, 0x000000c2u, 0x00000662u, + 0x0000021au, 0x0003001du, 0x000006d8u, 0x00000006u, 0x0003001eu, 0x000006d9u, 0x000006d8u, 0x00040020u, + 0x000006dau, 0x0000000cu, 0x000006d9u, 0x0004003bu, 0x000006dau, 0x000006dbu, 0x0000000cu, 0x0004002bu, + 0x00000006u, 0x000006e1u, 0x00000018u, 0x0007002cu, 0x0000023cu, 0x000006e2u, 0x000006e1u, 0x0000037cu, + 0x00000360u, 0x00000379u, 0x0007002cu, 0x0000023cu, 0x000006e4u, 0x000006c7u, 0x000006c7u, 0x000006c7u, + 0x000006c7u, 0x0004002bu, 0x00000006u, 0x000006f9u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x00000706u, + 0x00000004u, 0x0004002bu, 0x00000006u, 0x00000733u, 0x0000000au, 0x0004002bu, 0x00000006u, 0x00000739u, + 0x00000005u, 0x0004002bu, 0x00000006u, 0x00000744u, 0x00000007u, 0x00060034u, 0x00000006u, 0x0000075bu, + 0x000000c2u, 0x00000662u, 0x00000217u, 0x00060034u, 0x00000006u, 0x00000780u, 0x000000c2u, 0x00000662u, + 0x0000048au, 0x0004002bu, 0x00000006u, 0x00000782u, 0x0000ffffu, 0x00060034u, 0x00000006u, 0x00000787u, + 0x000000c2u, 0x00000662u, 0x000003c9u, 0x0004002bu, 0x00000006u, 0x00000789u, 0xffffffffu, 0x00060034u, + 0x00000006u, 0x000007c9u, 0x000000c2u, 0x00000662u, 0x00000217u, 0x00060034u, 0x00000006u, 0x000007fcu, + 0x000000c2u, 0x00000662u, 0x00000217u, 0x00060034u, 0x00000006u, 0x0000081bu, 0x000000c2u, 0x00000662u, + 0x0000021au, 0x00040032u, 0x00000008u, 0x00000848u, 0x00000000u, 0x00060034u, 0x00000008u, 0x00000849u, + 0x000000c7u, 0x00000848u, 0x00000217u, 0x00060034u, 0x0000005du, 0x0000084au, 0x000000abu, 0x00000849u, + 0x00000208u, 0x00060034u, 0x00000008u, 0x0000084bu, 0x000000c3u, 0x00000848u, 0x00000217u, 0x00060034u, + 0x0000005du, 0x0000084cu, 0x000000aau, 0x0000084bu, 0x00000208u, 0x00060034u, 0x0000005du, 0x0000084du, + 0x000000a7u, 0x0000084au, 0x0000084cu, 0x0004002bu, 0x00000006u, 0x00000850u, 0x00000048u, 0x00030031u, + 0x0000005du, 0x00000854u, 0x00050034u, 0x0000005du, 0x00000855u, 0x000000a8u, 0x00000854u, 0x00060034u, + 0x00000006u, 0x0000085fu, 0x000000c2u, 0x00000662u, 0x00000217u, 0x00060034u, 0x00000006u, 0x00000878u, + 0x000000c2u, 0x00000662u, 0x0000048au, 0x00040017u, 0x00000880u, 0x0000005du, 0x00000002u, 0x00060034u, + 0x00000008u, 0x00000887u, 0x000000c4u, 0x00000217u, 0x0000084bu, 0x00060034u, 0x00000008u, 0x00000888u, + 0x00000082u, 0x00000887u, 0x00000217u, 0x00060034u, 0x00000006u, 0x00000889u, 0x00000080u, 0x00000888u, + 0x00000379u, 0x00060034u, 0x00000006u, 0x00000892u, 0x00000080u, 0x00000887u, 0x00000379u, 0x00060034u, + 0x00000008u, 0x000008eau, 0x00000084u, 0x00000887u, 0x00000887u, 0x00060034u, 0x00000006u, 0x000008ebu, + 0x00000080u, 0x000008eau, 0x00000379u, 0x00060034u, 0x00000006u, 0x000008ecu, 0x000000c2u, 0x00000662u, + 0x0000021au, 0x00060034u, 0x00000006u, 0x000008edu, 0x00000084u, 0x000008ebu, 0x000008ecu, 0x00060034u, + 0x00000008u, 0x00000901u, 0x00000082u, 0x00000887u, 0x00000217u, 0x00060034u, 0x00000006u, 0x00000902u, + 0x00000080u, 0x00000901u, 0x00000379u, 0x00060034u, 0x00000006u, 0x0000090bu, 0x00000080u, 0x00000887u, + 0x00000379u, 0x00060034u, 0x0000005du, 0x0000092du, 0x000000abu, 0x0000084bu, 0x00000208u, 0x00060034u, + 0x0000005du, 0x0000092eu, 0x000000a7u, 0x0000084au, 0x0000092du, 0x0004002bu, 0x00000008u, 0x0000093du, + 0x000000e0u, 0x0006002cu, 0x0000003cu, 0x00000948u, 0x00000208u, 0x00000208u, 0x00000208u, 0x00060034u, + 0x0000005du, 0x00000961u, 0x000000aau, 0x0000065cu, 0x00000208u, 0x0004002bu, 0x00000006u, 0x0000098au, + 0x000000e0u, 0x0004001cu, 0x00000a1fu, 0x0000022eu, 0x00000360u, 0x0005001eu, 0x00000a20u, 0x0000022fu, + 0x0000022fu, 0x00000a1fu, 0x0003001du, 0x00000a21u, 0x00000a20u, 0x0003001eu, 0x00000a22u, 0x00000a21u, + 0x00040020u, 0x00000a23u, 0x0000000cu, 0x00000a22u, 0x0004003bu, 0x00000a23u, 0x00000a24u, 0x0000000cu, + 0x0004002bu, 0x00000006u, 0x00000a4au, 0x00000020u, 0x0004002bu, 0x00000006u, 0x00000a50u, 0x00000040u, + 0x0004002bu, 0x00000006u, 0x00000a56u, 0x00000080u, 0x0004002bu, 0x00000006u, 0x00000a5cu, 0x00000100u, + 0x0007002cu, 0x00000009u, 0x00000b03u, 0x00000390u, 0x00000390u, 0x00000390u, 0x00000390u, 0x0004002bu, + 0x00000008u, 0x00000b1du, 0x00020000u, 0x0004002bu, 0x00000008u, 0x00000b33u, 0x00003fffu, 0x0004001cu, + 0x00000b39u, 0x0000005fu, 0x00000a50u, 0x0004002bu, 0x00000008u, 0x00000b3au, 0x00004000u, 0x0004002bu, + 0x00000008u, 0x00000b3bu, 0xfffffc10u, 0x0005002cu, 0x0000005fu, 0x00000b3cu, 0x00000b3au, 0x00000b3bu, + 0x0004002bu, 0x00000008u, 0x00000b3du, 0x00003f04u, 0x0004002bu, 0x00000008u, 0x00000b3eu, 0xfffffc30u, + 0x0005002cu, 0x0000005fu, 0x00000b3fu, 0x00000b3du, 0x00000b3eu, 0x0004002bu, 0x00000008u, 0x00000b40u, + 0x00003e10u, 0x0004002bu, 0x00000008u, 0x00000b41u, 0xfffffc48u, 0x0005002cu, 0x0000005fu, 0x00000b42u, + 0x00000b40u, 0x00000b41u, 0x0004002bu, 0x00000008u, 0x00000b43u, 0x00003d22u, 0x0004002bu, 0x00000008u, + 0x00000b44u, 0xfffffc68u, 0x0005002cu, 0x0000005fu, 0x00000b45u, 0x00000b43u, 0x00000b44u, 0x0004002bu, + 0x00000008u, 0x00000b46u, 0x00003c3cu, 0x0004002bu, 0x00000008u, 0x00000b47u, 0xfffffc84u, 0x0005002cu, + 0x0000005fu, 0x00000b48u, 0x00000b46u, 0x00000b47u, 0x0004002bu, 0x00000008u, 0x00000b49u, 0x00003b5du, + 0x0004002bu, 0x00000008u, 0x00000b4au, 0xfffffc98u, 0x0005002cu, 0x0000005fu, 0x00000b4bu, 0x00000b49u, + 0x00000b4au, 0x0004002bu, 0x00000008u, 0x00000b4cu, 0x00003a83u, 0x0004002bu, 0x00000008u, 0x00000b4du, + 0xfffffcb8u, 0x0005002cu, 0x0000005fu, 0x00000b4eu, 0x00000b4cu, 0x00000b4du, 0x0004002bu, 0x00000008u, + 0x00000b4fu, 0x000039b1u, 0x0004002bu, 0x00000008u, 0x00000b50u, 0xfffffcccu, 0x0005002cu, 0x0000005fu, + 0x00000b51u, 0x00000b4fu, 0x00000b50u, 0x0004002bu, 0x00000008u, 0x00000b52u, 0x000038e4u, 0x0004002bu, + 0x00000008u, 0x00000b53u, 0xfffffce0u, 0x0005002cu, 0x0000005fu, 0x00000b54u, 0x00000b52u, 0x00000b53u, + 0x0004002bu, 0x00000008u, 0x00000b55u, 0x0000381cu, 0x0004002bu, 0x00000008u, 0x00000b56u, 0xfffffcf8u, + 0x0005002cu, 0x0000005fu, 0x00000b57u, 0x00000b55u, 0x00000b56u, 0x0004002bu, 0x00000008u, 0x00000b58u, + 0x0000375au, 0x0004002bu, 0x00000008u, 0x00000b59u, 0xfffffd0cu, 0x0005002cu, 0x0000005fu, 0x00000b5au, + 0x00000b58u, 0x00000b59u, 0x0004002bu, 0x00000008u, 0x00000b5bu, 0x0000369du, 0x0004002bu, 0x00000008u, + 0x00000b5cu, 0xfffffd20u, 0x0005002cu, 0x0000005fu, 0x00000b5du, 0x00000b5bu, 0x00000b5cu, 0x0004002bu, + 0x00000008u, 0x00000b5eu, 0x000035e5u, 0x0004002bu, 0x00000008u, 0x00000b5fu, 0xfffffd34u, 0x0005002cu, + 0x0000005fu, 0x00000b60u, 0x00000b5eu, 0x00000b5fu, 0x0004002bu, 0x00000008u, 0x00000b61u, 0x00003532u, + 0x0004002bu, 0x00000008u, 0x00000b62u, 0xfffffd44u, 0x0005002cu, 0x0000005fu, 0x00000b63u, 0x00000b61u, + 0x00000b62u, 0x0004002bu, 0x00000008u, 0x00000b64u, 0x00003483u, 0x0004002bu, 0x00000008u, 0x00000b65u, + 0xfffffd58u, 0x0005002cu, 0x0000005fu, 0x00000b66u, 0x00000b64u, 0x00000b65u, 0x0004002bu, 0x00000008u, + 0x00000b67u, 0x000033d9u, 0x0004002bu, 0x00000008u, 0x00000b68u, 0xfffffd68u, 0x0005002cu, 0x0000005fu, + 0x00000b69u, 0x00000b67u, 0x00000b68u, 0x0004002bu, 0x00000008u, 0x00000b6au, 0x00003333u, 0x0004002bu, + 0x00000008u, 0x00000b6bu, 0xfffffd78u, 0x0005002cu, 0x0000005fu, 0x00000b6cu, 0x00000b6au, 0x00000b6bu, + 0x0004002bu, 0x00000008u, 0x00000b6du, 0x00003291u, 0x0004002bu, 0x00000008u, 0x00000b6eu, 0xfffffd8cu, + 0x0005002cu, 0x0000005fu, 0x00000b6fu, 0x00000b6du, 0x00000b6eu, 0x0004002bu, 0x00000008u, 0x00000b70u, + 0x000031f4u, 0x0004002bu, 0x00000008u, 0x00000b71u, 0xfffffd94u, 0x0005002cu, 0x0000005fu, 0x00000b72u, + 0x00000b70u, 0x00000b71u, 0x0004002bu, 0x00000008u, 0x00000b73u, 0x00003159u, 0x0004002bu, 0x00000008u, + 0x00000b74u, 0xfffffda8u, 0x0005002cu, 0x0000005fu, 0x00000b75u, 0x00000b73u, 0x00000b74u, 0x0004002bu, + 0x00000008u, 0x00000b76u, 0x000030c3u, 0x0004002bu, 0x00000008u, 0x00000b77u, 0xfffffdb4u, 0x0005002cu, + 0x0000005fu, 0x00000b78u, 0x00000b76u, 0x00000b77u, 0x0004002bu, 0x00000008u, 0x00000b79u, 0x00003030u, + 0x0004002bu, 0x00000008u, 0x00000b7au, 0xfffffdc4u, 0x0005002cu, 0x0000005fu, 0x00000b7bu, 0x00000b79u, + 0x00000b7au, 0x0004002bu, 0x00000008u, 0x00000b7cu, 0x00002fa1u, 0x0004002bu, 0x00000008u, 0x00000b7du, + 0xfffffdd0u, 0x0005002cu, 0x0000005fu, 0x00000b7eu, 0x00000b7cu, 0x00000b7du, 0x0004002bu, 0x00000008u, + 0x00000b7fu, 0x00002f15u, 0x0004002bu, 0x00000008u, 0x00000b80u, 0xfffffddcu, 0x0005002cu, 0x0000005fu, + 0x00000b81u, 0x00000b7fu, 0x00000b80u, 0x0004002bu, 0x00000008u, 0x00000b82u, 0x00002e8cu, 0x0004002bu, + 0x00000008u, 0x00000b83u, 0xfffffde8u, 0x0005002cu, 0x0000005fu, 0x00000b84u, 0x00000b82u, 0x00000b83u, + 0x0004002bu, 0x00000008u, 0x00000b85u, 0x00002e06u, 0x0004002bu, 0x00000008u, 0x00000b86u, 0xfffffdf4u, + 0x0005002cu, 0x0000005fu, 0x00000b87u, 0x00000b85u, 0x00000b86u, 0x0004002bu, 0x00000008u, 0x00000b88u, + 0x00002d83u, 0x0004002bu, 0x00000008u, 0x00000b89u, 0xfffffe00u, 0x0005002cu, 0x0000005fu, 0x00000b8au, + 0x00000b88u, 0x00000b89u, 0x0004002bu, 0x00000008u, 0x00000b8bu, 0x00002d03u, 0x0004002bu, 0x00000008u, + 0x00000b8cu, 0xfffffe0cu, 0x0005002cu, 0x0000005fu, 0x00000b8du, 0x00000b8bu, 0x00000b8cu, 0x0004002bu, + 0x00000008u, 0x00000b8eu, 0x00002c86u, 0x0004002bu, 0x00000008u, 0x00000b8fu, 0xfffffe14u, 0x0005002cu, + 0x0000005fu, 0x00000b90u, 0x00000b8eu, 0x00000b8fu, 0x0004002bu, 0x00000008u, 0x00000b91u, 0x00002c0bu, + 0x0004002bu, 0x00000008u, 0x00000b92u, 0xfffffe20u, 0x0005002cu, 0x0000005fu, 0x00000b93u, 0x00000b91u, + 0x00000b92u, 0x0004002bu, 0x00000008u, 0x00000b94u, 0x00002b93u, 0x0004002bu, 0x00000008u, 0x00000b95u, + 0xfffffe2cu, 0x0005002cu, 0x0000005fu, 0x00000b96u, 0x00000b94u, 0x00000b95u, 0x0004002bu, 0x00000008u, + 0x00000b97u, 0x00002b1eu, 0x0004002bu, 0x00000008u, 0x00000b98u, 0xfffffe34u, 0x0005002cu, 0x0000005fu, + 0x00000b99u, 0x00000b97u, 0x00000b98u, 0x0004002bu, 0x00000008u, 0x00000b9au, 0x00002aabu, 0x0004002bu, + 0x00000008u, 0x00000b9bu, 0xfffffe3cu, 0x0005002cu, 0x0000005fu, 0x00000b9cu, 0x00000b9au, 0x00000b9bu, + 0x0004002bu, 0x00000008u, 0x00000b9du, 0x00002a3au, 0x0004002bu, 0x00000008u, 0x00000b9eu, 0xfffffe48u, + 0x0005002cu, 0x0000005fu, 0x00000b9fu, 0x00000b9du, 0x00000b9eu, 0x0004002bu, 0x00000008u, 0x00000ba0u, + 0x000029ccu, 0x0004002bu, 0x00000008u, 0x00000ba1u, 0xfffffe50u, 0x0005002cu, 0x0000005fu, 0x00000ba2u, + 0x00000ba0u, 0x00000ba1u, 0x0004002bu, 0x00000008u, 0x00000ba3u, 0x00002960u, 0x0004002bu, 0x00000008u, + 0x00000ba4u, 0xfffffe58u, 0x0005002cu, 0x0000005fu, 0x00000ba5u, 0x00000ba3u, 0x00000ba4u, 0x0004002bu, + 0x00000008u, 0x00000ba6u, 0x000028f6u, 0x0004002bu, 0x00000008u, 0x00000ba7u, 0xfffffe60u, 0x0005002cu, + 0x0000005fu, 0x00000ba8u, 0x00000ba6u, 0x00000ba7u, 0x0004002bu, 0x00000008u, 0x00000ba9u, 0x0000288eu, + 0x0004002bu, 0x00000008u, 0x00000baau, 0xfffffe68u, 0x0005002cu, 0x0000005fu, 0x00000babu, 0x00000ba9u, + 0x00000baau, 0x0004002bu, 0x00000008u, 0x00000bacu, 0x00002828u, 0x0004002bu, 0x00000008u, 0x00000badu, + 0xfffffe70u, 0x0005002cu, 0x0000005fu, 0x00000baeu, 0x00000bacu, 0x00000badu, 0x0004002bu, 0x00000008u, + 0x00000bafu, 0x000027c4u, 0x0004002bu, 0x00000008u, 0x00000bb0u, 0xfffffe78u, 0x0005002cu, 0x0000005fu, + 0x00000bb1u, 0x00000bafu, 0x00000bb0u, 0x0004002bu, 0x00000008u, 0x00000bb2u, 0x00002762u, 0x0004002bu, + 0x00000008u, 0x00000bb3u, 0xfffffe80u, 0x0005002cu, 0x0000005fu, 0x00000bb4u, 0x00000bb2u, 0x00000bb3u, + 0x0004002bu, 0x00000008u, 0x00000bb5u, 0x00002702u, 0x0004002bu, 0x00000008u, 0x00000bb6u, 0xfffffe88u, + 0x0005002cu, 0x0000005fu, 0x00000bb7u, 0x00000bb5u, 0x00000bb6u, 0x0004002bu, 0x00000008u, 0x00000bb8u, + 0x000026a4u, 0x0004002bu, 0x00000008u, 0x00000bb9u, 0xfffffe90u, 0x0005002cu, 0x0000005fu, 0x00000bbau, + 0x00000bb8u, 0x00000bb9u, 0x0004002bu, 0x00000008u, 0x00000bbbu, 0x00002648u, 0x0004002bu, 0x00000008u, + 0x00000bbcu, 0xfffffe94u, 0x0005002cu, 0x0000005fu, 0x00000bbdu, 0x00000bbbu, 0x00000bbcu, 0x0004002bu, + 0x00000008u, 0x00000bbeu, 0x000025edu, 0x0004002bu, 0x00000008u, 0x00000bbfu, 0xfffffe9cu, 0x0005002cu, + 0x0000005fu, 0x00000bc0u, 0x00000bbeu, 0x00000bbfu, 0x0004002bu, 0x00000008u, 0x00000bc1u, 0x00002594u, + 0x0004002bu, 0x00000008u, 0x00000bc2u, 0xfffffea4u, 0x0005002cu, 0x0000005fu, 0x00000bc3u, 0x00000bc1u, + 0x00000bc2u, 0x0004002bu, 0x00000008u, 0x00000bc4u, 0x0000253du, 0x0004002bu, 0x00000008u, 0x00000bc5u, + 0xfffffea8u, 0x0005002cu, 0x0000005fu, 0x00000bc6u, 0x00000bc4u, 0x00000bc5u, 0x0004002bu, 0x00000008u, + 0x00000bc7u, 0x000024e7u, 0x0004002bu, 0x00000008u, 0x00000bc8u, 0xfffffeacu, 0x0005002cu, 0x0000005fu, + 0x00000bc9u, 0x00000bc7u, 0x00000bc8u, 0x0004002bu, 0x00000008u, 0x00000bcau, 0x00002492u, 0x0004002bu, + 0x00000008u, 0x00000bcbu, 0xfffffeb4u, 0x0005002cu, 0x0000005fu, 0x00000bccu, 0x00000bcau, 0x00000bcbu, + 0x0004002bu, 0x00000008u, 0x00000bcdu, 0x0000243fu, 0x0004002bu, 0x00000008u, 0x00000bceu, 0xfffffebcu, + 0x0005002cu, 0x0000005fu, 0x00000bcfu, 0x00000bcdu, 0x00000bceu, 0x0004002bu, 0x00000008u, 0x00000bd0u, + 0x000023eeu, 0x0004002bu, 0x00000008u, 0x00000bd1u, 0xfffffec0u, 0x0005002cu, 0x0000005fu, 0x00000bd2u, + 0x00000bd0u, 0x00000bd1u, 0x0004002bu, 0x00000008u, 0x00000bd3u, 0x0000239eu, 0x0004002bu, 0x00000008u, + 0x00000bd4u, 0xfffffec4u, 0x0005002cu, 0x0000005fu, 0x00000bd5u, 0x00000bd3u, 0x00000bd4u, 0x0004002bu, + 0x00000008u, 0x00000bd6u, 0x0000234fu, 0x0004002bu, 0x00000008u, 0x00000bd7u, 0xfffffeccu, 0x0005002cu, + 0x0000005fu, 0x00000bd8u, 0x00000bd6u, 0x00000bd7u, 0x0004002bu, 0x00000008u, 0x00000bd9u, 0x00002302u, + 0x0004002bu, 0x00000008u, 0x00000bdau, 0xfffffed0u, 0x0005002cu, 0x0000005fu, 0x00000bdbu, 0x00000bd9u, + 0x00000bdau, 0x0004002bu, 0x00000008u, 0x00000bdcu, 0x000022b6u, 0x0004002bu, 0x00000008u, 0x00000bddu, + 0xfffffed8u, 0x0005002cu, 0x0000005fu, 0x00000bdeu, 0x00000bdcu, 0x00000bddu, 0x0004002bu, 0x00000008u, + 0x00000bdfu, 0x0000226cu, 0x0005002cu, 0x0000005fu, 0x00000be0u, 0x00000bdfu, 0x00000bddu, 0x0004002bu, + 0x00000008u, 0x00000be1u, 0x00002222u, 0x0004002bu, 0x00000008u, 0x00000be2u, 0xfffffee0u, 0x0005002cu, + 0x0000005fu, 0x00000be3u, 0x00000be1u, 0x00000be2u, 0x0004002bu, 0x00000008u, 0x00000be4u, 0x000021dau, + 0x0004002bu, 0x00000008u, 0x00000be5u, 0xfffffee4u, 0x0005002cu, 0x0000005fu, 0x00000be6u, 0x00000be4u, + 0x00000be5u, 0x0004002bu, 0x00000008u, 0x00000be7u, 0x00002193u, 0x0004002bu, 0x00000008u, 0x00000be8u, + 0xfffffee8u, 0x0005002cu, 0x0000005fu, 0x00000be9u, 0x00000be7u, 0x00000be8u, 0x0004002bu, 0x00000008u, + 0x00000beau, 0x0000214du, 0x0004002bu, 0x00000008u, 0x00000bebu, 0xfffffeecu, 0x0005002cu, 0x0000005fu, + 0x00000becu, 0x00000beau, 0x00000bebu, 0x0004002bu, 0x00000008u, 0x00000bedu, 0x00002108u, 0x0004002bu, + 0x00000008u, 0x00000beeu, 0xfffffef4u, 0x0005002cu, 0x0000005fu, 0x00000befu, 0x00000bedu, 0x00000beeu, + 0x0004002bu, 0x00000008u, 0x00000bf0u, 0x000020c5u, 0x0005002cu, 0x0000005fu, 0x00000bf1u, 0x00000bf0u, + 0x00000beeu, 0x0004002bu, 0x00000008u, 0x00000bf2u, 0x00002082u, 0x0004002bu, 0x00000008u, 0x00000bf3u, + 0xfffffefcu, 0x0005002cu, 0x0000005fu, 0x00000bf4u, 0x00000bf2u, 0x00000bf3u, 0x0004002bu, 0x00000008u, + 0x00000bf5u, 0x00002041u, 0x0005002cu, 0x0000005fu, 0x00000bf6u, 0x00000bf5u, 0x00000bf3u, 0x0043002cu, + 0x00000b39u, 0x00000bf7u, 0x00000b3cu, 0x00000b3fu, 0x00000b42u, 0x00000b45u, 0x00000b48u, 0x00000b4bu, + 0x00000b4eu, 0x00000b51u, 0x00000b54u, 0x00000b57u, 0x00000b5au, 0x00000b5du, 0x00000b60u, 0x00000b63u, + 0x00000b66u, 0x00000b69u, 0x00000b6cu, 0x00000b6fu, 0x00000b72u, 0x00000b75u, 0x00000b78u, 0x00000b7bu, + 0x00000b7eu, 0x00000b81u, 0x00000b84u, 0x00000b87u, 0x00000b8au, 0x00000b8du, 0x00000b90u, 0x00000b93u, + 0x00000b96u, 0x00000b99u, 0x00000b9cu, 0x00000b9fu, 0x00000ba2u, 0x00000ba5u, 0x00000ba8u, 0x00000babu, + 0x00000baeu, 0x00000bb1u, 0x00000bb4u, 0x00000bb7u, 0x00000bbau, 0x00000bbdu, 0x00000bc0u, 0x00000bc3u, + 0x00000bc6u, 0x00000bc9u, 0x00000bccu, 0x00000bcfu, 0x00000bd2u, 0x00000bd5u, 0x00000bd8u, 0x00000bdbu, + 0x00000bdeu, 0x00000be0u, 0x00000be3u, 0x00000be6u, 0x00000be9u, 0x00000becu, 0x00000befu, 0x00000bf1u, + 0x00000bf4u, 0x00000bf6u, 0x00040020u, 0x00000bfau, 0x00000007u, 0x00000b39u, 0x0004002bu, 0x00000008u, + 0x00000c19u, 0x00007fffu, 0x0004002bu, 0x00000008u, 0x00000c2bu, 0x3fffffffu, 0x0004002bu, 0x00000008u, + 0x00000c2cu, 0x20000000u, 0x0005002cu, 0x0000005fu, 0x00000c45u, 0x00000208u, 0x00000208u, 0x0004002bu, + 0x00000008u, 0x00000c5eu, 0xffff8000u, 0x0005002cu, 0x0000005fu, 0x00000c78u, 0x00000c19u, 0x00000c19u, + 0x0004002bu, 0x00000008u, 0x00000c7au, 0xffff0000u, 0x0005002cu, 0x0000005fu, 0x00000c7bu, 0x00000c7au, + 0x00000c7au, 0x0005002cu, 0x0000005fu, 0x00000c7cu, 0x00000564u, 0x00000564u, 0x0004002bu, 0x00000008u, + 0x00000c81u, 0xffffffe0u, 0x00060034u, 0x00000008u, 0x00000ca1u, 0x00000080u, 0x0000021au, 0x0000084bu, + 0x00060034u, 0x00000008u, 0x00000cbeu, 0x00000080u, 0x00000220u, 0x0000084bu, 0x0006001eu, 0x00000cdau, + 0x00000008u, 0x00000008u, 0x00000008u, 0x00000006u, 0x0003001eu, 0x00000cdbu, 0x00000cdau, 0x00040020u, + 0x00000cdcu, 0x00000002u, 0x00000cdbu, 0x0004003bu, 0x00000cdcu, 0x00000cddu, 0x00000002u, 0x00040020u, + 0x00000cdeu, 0x00000002u, 0x00000008u, 0x0004002bu, 0x00000008u, 0x00000cebu, 0xffffffffu, 0x00060034u, + 0x0000005du, 0x00000d4au, 0x000000adu, 0x00000887u, 0x00000217u, 0x00060034u, 0x00000008u, 0x00000da0u, + 0x00000082u, 0x00000887u, 0x00000217u, 0x00060034u, 0x00000008u, 0x00000db4u, 0x00000080u, 0x0000021au, + 0x0000084bu, 0x00060034u, 0x00000008u, 0x00000dc4u, 0x00000080u, 0x00000223u, 0x0000084bu, 0x0005002cu, + 0x0000005fu, 0x00000de9u, 0x00000208u, 0x00000217u, 0x0004002bu, 0x00000006u, 0x00000e2du, 0x0000000bu, + 0x0006002cu, 0x00000358u, 0x00000e2eu, 0x00000e2du, 0x000006f9u, 0x0000048au, 0x0004002bu, 0x00000006u, + 0x00000e30u, 0x0000001fu, 0x0004002bu, 0x00000006u, 0x00000e67u, 0x00000fffu, 0x0004002bu, 0x00000006u, + 0x00000e7bu, 0x00001000u, 0x0004001cu, 0x00000e7cu, 0x0000022eu, 0x00000e7bu, 0x0003001eu, 0x00000e7du, + 0x00000e7cu, 0x0003001du, 0x00000e7eu, 0x00000e7du, 0x0003001eu, 0x00000e7fu, 0x00000e7eu, 0x00040020u, + 0x00000e80u, 0x0000000cu, 0x00000e7fu, 0x0004003bu, 0x00000e80u, 0x00000e81u, 0x0000000cu, 0x0004002bu, + 0x00000006u, 0x00000e8au, 0x0000000fu, 0x0004002bu, 0x00000006u, 0x00000ec1u, 0x0000000eu, 0x0004002bu, + 0x00000006u, 0x00000f19u, 0x000007ffu, 0x0004002bu, 0x00000006u, 0x00000f42u, 0x00000800u, 0x0004001cu, + 0x00000f43u, 0x00000230u, 0x00000f42u, 0x0003001eu, 0x00000f44u, 0x00000f43u, 0x0003001du, 0x00000f45u, + 0x00000f44u, 0x0003001eu, 0x00000f46u, 0x00000f45u, 0x00040020u, 0x00000f47u, 0x0000000cu, 0x00000f46u, + 0x0004003bu, 0x00000f47u, 0x00000f48u, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000f4au, 0x00000400u, + 0x0004002bu, 0x00000006u, 0x00000fe8u, 0xfffffffcu, 0x0004002bu, 0x00000008u, 0x0000114eu, 0x000003ffu, + 0x0004002bu, 0x00000006u, 0x000011bbu, 0x00001fffu, 0x0004002bu, 0x00000006u, 0x00001261u, 0x0000000cu, + 0x0004002bu, 0x00000008u, 0x00001284u, 0x00000400u, 0x0004002bu, 0x00000008u, 0x000013aeu, 0xffffff01u, + 0x0005002cu, 0x0000005fu, 0x000013bau, 0x0000055eu, 0x0000055eu, 0x0004002bu, 0x00000008u, 0x000019d6u, + 0xffffff00u, 0x0004002bu, 0x00000008u, 0x00001a71u, 0x00000100u, 0x0006002cu, 0x0000003cu, 0x00001a72u, + 0x00001a71u, 0x00001a71u, 0x00001a71u, 0x00060034u, 0x00000008u, 0x00001c46u, 0x00000082u, 0x00000887u, + 0x00000217u, 0x000d001eu, 0x00001c4eu, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000231u, 0x00000231u, + 0x00000008u, 0x00000008u, 0x00000008u, 0x00000231u, 0x0000022eu, 0x0000022eu, 0x0003001du, 0x00001c4fu, + 0x00001c4eu, 0x0003001eu, 0x00001c50u, 0x00001c4fu, 0x00040020u, 0x00001c51u, 0x0000000cu, 0x00001c50u, + 0x0004003bu, 0x00001c51u, 0x00001c52u, 0x0000000cu, 0x00060034u, 0x0000005du, 0x00001c57u, 0x000000adu, + 0x00000887u, 0x00000217u, 0x00060034u, 0x00000008u, 0x00001c5fu, 0x00000082u, 0x00000887u, 0x00000217u, + 0x00050034u, 0x00000008u, 0x00001c60u, 0x000000c8u, 0x00001c5fu, 0x00060034u, 0x00000008u, 0x00001c63u, + 0x00000082u, 0x00000887u, 0x00000217u, 0x00050034u, 0x00000008u, 0x00001c64u, 0x000000c8u, 0x00001c63u, + 0x0004002bu, 0x00000006u, 0x00001cafu, 0x00004000u, 0x0004002bu, 0x00000006u, 0x00001cc0u, 0x00000200u, + 0x0004002bu, 0x00000006u, 0x00001cddu, 0x00002000u, 0x0004002bu, 0x00000006u, 0x00001ce2u, 0x00008000u, + 0x0004002bu, 0x00000006u, 0x00001ce7u, 0x00010000u, 0x0004002bu, 0x00000006u, 0x00001cecu, 0x00020000u, + 0x0004002bu, 0x00000006u, 0x00001cf1u, 0x00040000u, 0x0004002bu, 0x00000006u, 0x00001cf6u, 0x00080000u, + 0x0004002bu, 0x00000006u, 0x00001cfbu, 0x00200000u, 0x0004002bu, 0x00000006u, 0x00001d00u, 0x00100000u, + 0x0004002bu, 0x00000006u, 0x00001d05u, 0x00400000u, 0x0004002bu, 0x00000006u, 0x00001d0au, 0x00800000u, + 0x0004002bu, 0x00000006u, 0x00001d0fu, 0x01000000u, 0x0004002bu, 0x00000006u, 0x00001d13u, 0x10000000u, + 0x00040020u, 0x00001d1du, 0x00000002u, 0x00000006u, 0x00060034u, 0x0000005du, 0x00001dcau, 0x000000adu, + 0x00000887u, 0x00000217u, 0x0004002bu, 0x00000006u, 0x00001f24u, 0x02000000u, 0x00040020u, 0x00001fa1u, + 0x00000001u, 0x00000358u, 0x0004003bu, 0x00001fa1u, 0x00001fa2u, 0x00000001u, 0x00040020u, 0x00001fa3u, + 0x00000001u, 0x00000006u, 0x0004003bu, 0x00001fa1u, 0x00001facu, 0x00000001u, 0x00040032u, 0x00000008u, + 0x00001fb5u, 0x00000400u, 0x00040032u, 0x00000006u, 0x00001fb6u, 0x00000001u, 0x00040032u, 0x00000006u, + 0x00001fb7u, 0x00000001u, 0x00060033u, 0x00000358u, 0x00001fb8u, 0x00001fb6u, 0x00001fb7u, 0x0000048au, + 0x00060034u, 0x00000006u, 0x00001fb9u, 0x00000051u, 0x00001fb8u, 0x00000000u, 0x00060034u, 0x00000008u, + 0x00001fbau, 0x00000080u, 0x00001fb9u, 0x00000379u, 0x00060034u, 0x00000008u, 0x00001fbbu, 0x00000087u, + 0x00001fb5u, 0x00001fbau, 0x00040032u, 0x00000008u, 0x00001fc0u, 0x00000100u, 0x00060034u, 0x00000008u, + 0x00001fc1u, 0x00000087u, 0x00001fc0u, 0x00000382u, 0x0003001du, 0x00001fc4u, 0x00000006u, 0x0003001eu, + 0x00001fc5u, 0x00001fc4u, 0x00040020u, 0x00001fc6u, 0x0000000cu, 0x00001fc5u, 0x0004003bu, 0x00001fc6u, + 0x00001fc7u, 0x0000000cu, 0x0007001eu, 0x00001fcbu, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00000006u, 0x00040020u, 0x00001fccu, 0x00000009u, 0x00001fcbu, 0x0004003bu, 0x00001fccu, 0x00001fcdu, + 0x00000009u, 0x00040020u, 0x00001fceu, 0x00000009u, 0x00000006u, 0x0003001du, 0x00001ff8u, 0x00000006u, + 0x0003001eu, 0x00001ff9u, 0x00001ff8u, 0x00040020u, 0x00001ffau, 0x0000000cu, 0x00001ff9u, 0x0004003bu, + 0x00001ffau, 0x00001ffbu, 0x0000000cu, 0x00030001u, 0x00000009u, 0x000075f2u, 0x00030001u, 0x00000008u, + 0x00007618u, 0x00030001u, 0x0000003cu, 0x00007656u, 0x00030001u, 0x0000005fu, 0x000076e9u, 0x00030001u, + 0x00000006u, 0x0000a308u, 0x0006002cu, 0x00000358u, 0x0000bdbeu, 0x000006a0u, 0x000006a0u, 0x000006a0u, + 0x0005002cu, 0x000000a6u, 0x0000bdbfu, 0x00000490u, 0x00000490u, 0x0006002cu, 0x00000358u, 0x0000bdc0u, + 0x00000360u, 0x00000360u, 0x00000360u, 0x0006002cu, 0x00000358u, 0x0000bdc1u, 0x00000366u, 0x00000366u, + 0x00000366u, 0x0006002cu, 0x0000003cu, 0x0000bdc2u, 0x00000c81u, 0x00000c81u, 0x00000c81u, 0x0006002cu, + 0x0000003cu, 0x0000bdc3u, 0x0000055eu, 0x0000055eu, 0x0000055eu, 0x0007002cu, 0x00000009u, 0x0000bdc4u, + 0x00000c81u, 0x00000c81u, 0x00000c81u, 0x00000c81u, 0x0007002cu, 0x00000009u, 0x0000bdc5u, 0x00000288u, + 0x00000288u, 0x00000288u, 0x00000288u, 0x0007002cu, 0x00000009u, 0x0000bdc6u, 0x00000628u, 0x00000628u, + 0x00000628u, 0x00000628u, 0x0005002cu, 0x0000005fu, 0x0000bdc7u, 0x00000217u, 0x00000217u, 0x0006002cu, + 0x0000003cu, 0x0000bdc8u, 0x00000c5eu, 0x00000c5eu, 0x00000c5eu, 0x0005002cu, 0x0000005fu, 0x0000bdc9u, + 0x00000223u, 0x00000223u, 0x0005002cu, 0x0000005fu, 0x0000bdcau, 0x000003afu, 0x000003afu, 0x0005002cu, + 0x000000a6u, 0x0000bdcbu, 0x000011bbu, 0x000011bbu, 0x0005002cu, 0x000000a6u, 0x0000bdccu, 0x000003c9u, + 0x000003c9u, 0x0006002cu, 0x00000358u, 0x0000bdcdu, 0x00000e30u, 0x00000e30u, 0x00000e30u, 0x0006002cu, + 0x00000358u, 0x0000bdceu, 0x00000490u, 0x00000490u, 0x00000490u, 0x0006002cu, 0x00000358u, 0x0000bdcfu, + 0x000003c9u, 0x000003c9u, 0x000003c9u, 0x0007002cu, 0x00000009u, 0x0000bdd0u, 0x0000021au, 0x0000021au, + 0x0000021au, 0x0000021au, 0x0007002cu, 0x00000009u, 0x0000bdd1u, 0x00000263u, 0x00000263u, 0x00000263u, + 0x00000263u, 0x0005002cu, 0x0000005fu, 0x0000bdd2u, 0x0000021au, 0x0000021au, 0x0005002cu, 0x0000005fu, + 0x0000bdd3u, 0x00000382u, 0x00000382u, 0x0007002cu, 0x00000009u, 0x0000bdd4u, 0x0000055eu, 0x0000055eu, + 0x0000055eu, 0x0000055eu, 0x0007002cu, 0x00000009u, 0x0000bdd5u, 0x00000223u, 0x00000223u, 0x00000223u, + 0x00000223u, 0x0005002cu, 0x0000005fu, 0x0000bdd6u, 0x00000226u, 0x00000226u, 0x0005002cu, 0x0000005fu, + 0x0000bdd7u, 0x00000628u, 0x00000628u, 0x0006002cu, 0x0000003cu, 0x0000bdd8u, 0x0000039du, 0x0000039du, + 0x0000039du, 0x0006002cu, 0x0000003cu, 0x0000bdd9u, 0x00000229u, 0x00000229u, 0x00000229u, 0x0006002cu, + 0x0000003cu, 0x0000bddau, 0x00000263u, 0x00000263u, 0x00000263u, 0x0006002cu, 0x0000003cu, 0x0000bddbu, + 0x000003afu, 0x000003afu, 0x000003afu, 0x0006002cu, 0x0000003cu, 0x0000bddcu, 0x00000223u, 0x00000223u, + 0x00000223u, 0x0006002cu, 0x0000003cu, 0x0000bdddu, 0x0000021au, 0x0000021au, 0x0000021au, 0x0006002cu, + 0x0000003cu, 0x0000bddeu, 0x0000040fu, 0x0000040fu, 0x0000040fu, 0x0004002bu, 0x0000022eu, 0x0000bddfu, + 0x00000000u, 0x0004002bu, 0x0000022eu, 0x0000bde0u, 0x000000ffu, 0x0004002bu, 0x00000230u, 0x0000bde1u, + 0x0000ffffu, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, + 0x0004003bu, 0x000003d5u, 0x000060b7u, 0x00000007u, 0x0004003bu, 0x000003d5u, 0x000060b9u, 0x00000007u, + 0x0004003bu, 0x00000bfau, 0x0000476bu, 0x00000007u, 0x0004003bu, 0x00000bfau, 0x000046bdu, 0x00000007u, + 0x0004003bu, 0x00000bfau, 0x00002ca0u, 0x00000007u, 0x0004003bu, 0x00000bfau, 0x00002c18u, 0x00000007u, + 0x0004003bu, 0x00000bfau, 0x00002b90u, 0x00000007u, 0x0004003bu, 0x00000bfau, 0x000025aau, 0x00000007u, + 0x000300f7u, 0x00002069u, 0x00000000u, 0x000300fbu, 0x00000379u, 0x0000206au, 0x000200f8u, 0x0000206au, + 0x00050041u, 0x00001fa3u, 0x00001fa4u, 0x00001fa2u, 0x00000379u, 0x0004003du, 0x00000006u, 0x00001fa5u, + 0x00001fa4u, 0x0004007cu, 0x00000008u, 0x00001fa6u, 0x00001fa5u, 0x00050041u, 0x00001fa3u, 0x00001fa8u, + 0x00001fa2u, 0x0000048au, 0x0004003du, 0x00000006u, 0x00001fa9u, 0x00001fa8u, 0x0004007cu, 0x00000008u, + 0x00001faau, 0x00001fa9u, 0x0004003du, 0x00000358u, 0x00001fadu, 0x00001facu, 0x0007004fu, 0x000000a6u, + 0x00001faeu, 0x00001fadu, 0x00001fadu, 0x00000000u, 0x00000001u, 0x0004007cu, 0x0000005fu, 0x00001fafu, + 0x00001faeu, 0x00050051u, 0x00000008u, 0x00001fb2u, 0x00001fafu, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00001fb4u, 0x00001fafu, 0x00000001u, 0x00050084u, 0x00000008u, 0x00001fbcu, 0x00001fb4u, 0x00001fbbu, + 0x00050080u, 0x00000008u, 0x00001fbdu, 0x00001fb2u, 0x00001fbcu, 0x00050084u, 0x00000008u, 0x00001fc2u, + 0x00001fbdu, 0x00001fc1u, 0x00060041u, 0x00000270u, 0x00001fc9u, 0x00001fc7u, 0x00000208u, 0x00001fbdu, + 0x0004003du, 0x00000006u, 0x00001fcau, 0x00001fc9u, 0x00050041u, 0x00001fceu, 0x00001fcfu, 0x00001fcdu, + 0x00000220u, 0x0004003du, 0x00000006u, 0x00001fd0u, 0x00001fcfu, 0x000500c7u, 0x00000006u, 0x00001fd1u, + 0x00001fcau, 0x00001fd0u, 0x000500aau, 0x0000005du, 0x00001fd3u, 0x00001fd1u, 0x00000379u, 0x000300f7u, + 0x00001fd5u, 0x00000000u, 0x000400fau, 0x00001fd3u, 0x00001fd4u, 0x00001fd5u, 0x000200f8u, 0x00001fd4u, + 0x000200f9u, 0x00002069u, 0x000200f8u, 0x00001fd5u, 0x0004003du, 0x00000358u, 0x00001fd8u, 0x00001fa2u, + 0x0007004fu, 0x000000a6u, 0x00001fd9u, 0x00001fd8u, 0x00001fd8u, 0x00000000u, 0x00000001u, 0x00050041u, + 0x00001fceu, 0x00001fdbu, 0x00001fcdu, 0x0000021au, 0x0004003du, 0x00000006u, 0x00001fdcu, 0x00001fdbu, + 0x00050041u, 0x00001fceu, 0x00001fdeu, 0x00001fcdu, 0x0000021du, 0x0004003du, 0x00000006u, 0x00001fdfu, + 0x00001fdeu, 0x00050041u, 0x00001fceu, 0x00001fe1u, 0x00001fcdu, 0x00000208u, 0x0004003du, 0x00000006u, + 0x00001fe2u, 0x00001fe1u, 0x00050041u, 0x00001fceu, 0x00001fe4u, 0x00001fcdu, 0x00000217u, 0x0004003du, + 0x00000006u, 0x00001fe5u, 0x00001fe4u, 0x00050050u, 0x000000a6u, 0x00002081u, 0x00001fdcu, 0x00001fdfu, + 0x000500b0u, 0x00000880u, 0x00002082u, 0x00001fd9u, 0x00002081u, 0x0004009bu, 0x0000005du, 0x00002083u, + 0x00002082u, 0x000300f7u, 0x000020acu, 0x00000000u, 0x000400fau, 0x00002083u, 0x00002084u, 0x000020acu, + 0x000200f8u, 0x00002084u, 0x00050050u, 0x000000a6u, 0x00002086u, 0x00000889u, 0x00000889u, 0x000500c7u, + 0x000000a6u, 0x00002087u, 0x00001fd9u, 0x00002086u, 0x00050050u, 0x0000005fu, 0x00002089u, 0x0000084bu, + 0x0000084bu, 0x000500c2u, 0x000000a6u, 0x0000208au, 0x00001fd9u, 0x00002089u, 0x00050051u, 0x00000006u, + 0x0000208cu, 0x00002087u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000208du, 0x0000208cu, 0x00000892u, + 0x00050051u, 0x00000006u, 0x0000208fu, 0x00002087u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00002090u, + 0x0000208du, 0x0000208fu, 0x000500c2u, 0x00000006u, 0x00002093u, 0x00001fdcu, 0x0000084bu, 0x00050051u, + 0x00000006u, 0x00002095u, 0x0000208au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00002096u, 0x00002093u, + 0x00002095u, 0x00050080u, 0x00000006u, 0x00002097u, 0x00001fe2u, 0x00002096u, 0x00050051u, 0x00000006u, + 0x00002099u, 0x0000208au, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000209au, 0x00002097u, 0x00002099u, + 0x000300f7u, 0x00002116u, 0x00000000u, 0x000d00fbu, 0x0000065cu, 0x00002116u, 0x00000000u, 0x000020b3u, + 0x00000001u, 0x000020b3u, 0x00000002u, 0x000020cau, 0x00000003u, 0x000020f0u, 0x00000004u, 0x00002107u, + 0x000200f8u, 0x00002107u, 0x000500c7u, 0x00000006u, 0x00002109u, 0x0000209au, 0x000006cfu, 0x00050084u, + 0x00000006u, 0x0000210bu, 0x00002090u, 0x000006d3u, 0x00050080u, 0x00000006u, 0x0000210du, 0x00002109u, + 0x0000210bu, 0x00060041u, 0x00000270u, 0x0000210fu, 0x000006dbu, 0x00000208u, 0x0000210du, 0x0004003du, + 0x00000006u, 0x00002110u, 0x0000210fu, 0x00070050u, 0x0000023cu, 0x00002112u, 0x00002110u, 0x00002110u, + 0x00002110u, 0x00002110u, 0x000500c2u, 0x0000023cu, 0x00002113u, 0x00002112u, 0x000006e2u, 0x000500c7u, + 0x0000023cu, 0x00002114u, 0x00002113u, 0x000006e4u, 0x0004007cu, 0x00000009u, 0x00002115u, 0x00002114u, + 0x000200f9u, 0x00002116u, 0x000200f8u, 0x000020f0u, 0x000500c7u, 0x00000006u, 0x000020f2u, 0x0000209au, + 0x00000686u, 0x00050084u, 0x00000006u, 0x000020f4u, 0x00002090u, 0x000006b8u, 0x00050080u, 0x00000006u, + 0x000020f6u, 0x000020f2u, 0x000020f4u, 0x000500c6u, 0x00000006u, 0x000020f8u, 0x000020f6u, 0x0000048au, + 0x00060041u, 0x00000275u, 0x000020f9u, 0x00000692u, 0x00000208u, 0x000020f8u, 0x0004003du, 0x00000230u, + 0x000020fau, 0x000020f9u, 0x00040071u, 0x00000006u, 0x000020fbu, 0x000020fau, 0x000500c2u, 0x00000006u, + 0x000020fdu, 0x000020fbu, 0x00000360u, 0x0004007cu, 0x00000008u, 0x000020feu, 0x000020fdu, 0x000500c7u, + 0x00000006u, 0x00002101u, 0x000020fbu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00002102u, 0x00002101u, + 0x00070050u, 0x00000009u, 0x00002106u, 0x000020feu, 0x000020feu, 0x000020feu, 0x00002102u, 0x000200f9u, + 0x00002116u, 0x000200f8u, 0x000020cau, 0x000500c7u, 0x00000006u, 0x000020ccu, 0x0000209au, 0x00000686u, + 0x00050084u, 0x00000006u, 0x000020ceu, 0x00002090u, 0x0000068au, 0x00050080u, 0x00000006u, 0x000020d0u, + 0x000020ccu, 0x000020ceu, 0x000500c6u, 0x00000006u, 0x000020d2u, 0x000020d0u, 0x0000048au, 0x00060041u, + 0x00000275u, 0x000020d3u, 0x00000692u, 0x00000208u, 0x000020d2u, 0x0004003du, 0x00000230u, 0x000020d4u, + 0x000020d3u, 0x00040071u, 0x00000006u, 0x000020d5u, 0x000020d4u, 0x000500c2u, 0x00000006u, 0x000020d7u, + 0x000020d5u, 0x00000360u, 0x000500c2u, 0x00000006u, 0x000020d9u, 0x000020d5u, 0x00000490u, 0x000500c4u, + 0x00000006u, 0x000020dbu, 0x000020d5u, 0x000003c9u, 0x00060050u, 0x00000358u, 0x000020dcu, 0x000020d7u, + 0x000020d9u, 0x000020dbu, 0x000500c7u, 0x00000358u, 0x000020deu, 0x000020dcu, 0x0000bdbeu, 0x0004007cu, + 0x0000003cu, 0x000020e0u, 0x000020deu, 0x00060041u, 0x0000027cu, 0x000020e2u, 0x0000067du, 0x00000208u, + 0x000020d0u, 0x0004003du, 0x0000022eu, 0x000020e3u, 0x000020e2u, 0x00040071u, 0x00000006u, 0x000020e4u, + 0x000020e3u, 0x0004007cu, 0x00000008u, 0x000020e5u, 0x000020e4u, 0x000500c4u, 0x00000008u, 0x000020e6u, + 0x000020e5u, 0x00000223u, 0x000500c7u, 0x00000006u, 0x000020e8u, 0x000020d5u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x000020e9u, 0x000020e8u, 0x00000229u, 0x0004007cu, 0x00000008u, 0x000020eau, 0x000020e9u, + 0x000500c5u, 0x00000008u, 0x000020ebu, 0x000020e6u, 0x000020eau, 0x00050051u, 0x00000008u, 0x000020ecu, + 0x000020e0u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000020edu, 0x000020e0u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x000020eeu, 0x000020e0u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000020efu, 0x000020ecu, + 0x000020edu, 0x000020eeu, 0x000020ebu, 0x000200f9u, 0x00002116u, 0x000200f8u, 0x000020b3u, 0x000500c7u, + 0x00000006u, 0x000020b5u, 0x0000209au, 0x00000663u, 0x00050084u, 0x00000006u, 0x000020b7u, 0x00002090u, + 0x00000662u, 0x00050080u, 0x00000006u, 0x000020b9u, 0x000020b5u, 0x000020b7u, 0x000500c6u, 0x00000006u, + 0x000020bbu, 0x000020b9u, 0x00000490u, 0x00060041u, 0x0000027cu, 0x000020bcu, 0x0000066eu, 0x00000208u, + 0x000020bbu, 0x0004003du, 0x0000022eu, 0x000020bdu, 0x000020bcu, 0x00040071u, 0x00000006u, 0x000020beu, + 0x000020bdu, 0x0004007cu, 0x00000008u, 0x000020bfu, 0x000020beu, 0x000500c2u, 0x00000006u, 0x000020c4u, + 0x000020b9u, 0x00000217u, 0x00060041u, 0x0000027cu, 0x000020c5u, 0x0000067du, 0x00000208u, 0x000020c4u, + 0x0004003du, 0x0000022eu, 0x000020c6u, 0x000020c5u, 0x00040071u, 0x00000006u, 0x000020c7u, 0x000020c6u, + 0x0004007cu, 0x00000008u, 0x000020c8u, 0x000020c7u, 0x00070050u, 0x00000009u, 0x000020c9u, 0x000020bfu, + 0x000020bfu, 0x000020bfu, 0x000020c8u, 0x000200f9u, 0x00002116u, 0x000200f8u, 0x00002116u, 0x000d00f5u, + 0x00000009u, 0x000075f3u, 0x000075f2u, 0x00002084u, 0x000020c9u, 0x000020b3u, 0x000020efu, 0x000020cau, + 0x00002106u, 0x000020f0u, 0x00002115u, 0x00002107u, 0x00050080u, 0x00000006u, 0x000020a5u, 0x00001fe5u, + 0x00002096u, 0x00050080u, 0x00000006u, 0x000020a8u, 0x000020a5u, 0x00002099u, 0x000500c7u, 0x00000006u, + 0x0000211au, 0x000020a8u, 0x00000686u, 0x00050084u, 0x00000006u, 0x0000211cu, 0x00002090u, 0x0000075bu, + 0x00050080u, 0x00000006u, 0x0000211eu, 0x0000211au, 0x0000211cu, 0x000500c6u, 0x00000006u, 0x00002120u, + 0x0000211eu, 0x0000048au, 0x00060041u, 0x00000275u, 0x00002121u, 0x00000692u, 0x00000208u, 0x00002120u, + 0x0004003du, 0x00000230u, 0x00002122u, 0x00002121u, 0x00040071u, 0x00000006u, 0x00002123u, 0x00002122u, + 0x0004007cu, 0x00000008u, 0x00002124u, 0x00002123u, 0x000500c3u, 0x00000008u, 0x00002126u, 0x00002124u, + 0x0000021au, 0x00060041u, 0x0000027cu, 0x00002128u, 0x0000067du, 0x00000208u, 0x0000211eu, 0x0004003du, + 0x0000022eu, 0x00002129u, 0x00002128u, 0x00040071u, 0x00000006u, 0x0000212au, 0x00002129u, 0x0004007cu, + 0x00000008u, 0x0000212bu, 0x0000212au, 0x000500c7u, 0x00000008u, 0x0000212du, 0x00002124u, 0x0000021du, + 0x000500c4u, 0x00000008u, 0x0000212eu, 0x0000212du, 0x0000021au, 0x000500c5u, 0x00000008u, 0x0000212fu, + 0x0000212bu, 0x0000212eu, 0x000200f9u, 0x000020acu, 0x000200f8u, 0x000020acu, 0x000700f5u, 0x00000006u, + 0x0000a307u, 0x0000a308u, 0x00001fd5u, 0x0000209au, 0x00002116u, 0x000700f5u, 0x00000008u, 0x00007624u, + 0x00007618u, 0x00001fd5u, 0x0000212fu, 0x00002116u, 0x000700f5u, 0x00000008u, 0x00007617u, 0x00007618u, + 0x00001fd5u, 0x00002126u, 0x00002116u, 0x000700f5u, 0x00000009u, 0x000075f1u, 0x000075f2u, 0x00001fd5u, + 0x000075f3u, 0x00002116u, 0x000200f9u, 0x00001fe7u, 0x000200f8u, 0x00001fe7u, 0x000700f5u, 0x00000008u, + 0x00007623u, 0x00007624u, 0x000020acu, 0x00009339u, 0x00001feau, 0x000700f5u, 0x00000008u, 0x00007616u, + 0x00007617u, 0x000020acu, 0x000091cdu, 0x00001feau, 0x000700f5u, 0x0000005du, 0x00007608u, 0x00000548u, + 0x000020acu, 0x0000a7a7u, 0x00001feau, 0x000700f5u, 0x00000009u, 0x000075f0u, 0x000075f1u, 0x000020acu, + 0x00008eeeu, 0x00001feau, 0x000700f5u, 0x0000005du, 0x000075ebu, 0x00000548u, 0x000020acu, 0x0000a621u, + 0x00001feau, 0x000700f5u, 0x00000006u, 0x000075e5u, 0x00001fd1u, 0x000020acu, 0x00001ff6u, 0x00001feau, + 0x000700f5u, 0x0000003cu, 0x0000a134u, 0x00007656u, 0x000020acu, 0x0000a133u, 0x00001feau, 0x000700f5u, + 0x0000003cu, 0x00009fa0u, 0x00007656u, 0x000020acu, 0x00009f9fu, 0x00001feau, 0x000700f5u, 0x00000008u, + 0x00009e0du, 0x00007618u, 0x000020acu, 0x00009e0cu, 0x00001feau, 0x000700f5u, 0x00000008u, 0x00009c7au, + 0x00007618u, 0x000020acu, 0x00009c79u, 0x00001feau, 0x000700f5u, 0x0000003cu, 0x00009ae4u, 0x00007656u, + 0x000020acu, 0x00009ae3u, 0x00001feau, 0x000700f5u, 0x0000003cu, 0x0000995du, 0x00007656u, 0x000020acu, + 0x0000995cu, 0x00001feau, 0x000700f5u, 0x00000008u, 0x000097d7u, 0x00007618u, 0x000020acu, 0x000097d6u, + 0x00001feau, 0x000700f5u, 0x00000008u, 0x00009651u, 0x00007618u, 0x000020acu, 0x00009650u, 0x00001feau, + 0x000700f5u, 0x0000003cu, 0x0000905du, 0x00007656u, 0x000020acu, 0x0000905cu, 0x00001feau, 0x000700f5u, + 0x00000009u, 0x00008d82u, 0x000075f2u, 0x000020acu, 0x00008d81u, 0x00001feau, 0x000700f5u, 0x00000008u, + 0x00008c40u, 0x00007618u, 0x000020acu, 0x00008c3fu, 0x00001feau, 0x000700f5u, 0x00000008u, 0x00008afeu, + 0x00007618u, 0x000020acu, 0x00008afdu, 0x00001feau, 0x000700f5u, 0x00000008u, 0x00008991u, 0x00007618u, + 0x000020acu, 0x00008990u, 0x00001feau, 0x000700f5u, 0x00000008u, 0x00008668u, 0x00007618u, 0x000020acu, + 0x00008667u, 0x00001feau, 0x000700f5u, 0x00000009u, 0x000085afu, 0x000075f2u, 0x000020acu, 0x000085aeu, + 0x00001feau, 0x000700f5u, 0x00000008u, 0x00008422u, 0x00000208u, 0x000020acu, 0x00008421u, 0x00001feau, + 0x000700f5u, 0x00000009u, 0x000081ffu, 0x000075f2u, 0x000020acu, 0x000081feu, 0x00001feau, 0x000700f5u, + 0x00000009u, 0x0000810au, 0x000075f2u, 0x000020acu, 0x00008109u, 0x00001feau, 0x000700f5u, 0x00000009u, + 0x0000800fu, 0x000075f2u, 0x000020acu, 0x0000800eu, 0x00001feau, 0x000700f5u, 0x00000009u, 0x00007ea3u, + 0x000075f2u, 0x000020acu, 0x00007ea2u, 0x00001feau, 0x000700f5u, 0x00000009u, 0x00007db9u, 0x000075f2u, + 0x000020acu, 0x00007db8u, 0x00001feau, 0x000700f5u, 0x00000009u, 0x000079ecu, 0x000075f2u, 0x000020acu, + 0x000079ebu, 0x00001feau, 0x000700f5u, 0x00000009u, 0x00007971u, 0x000075f2u, 0x000020acu, 0x00007970u, + 0x00001feau, 0x000700f5u, 0x00000009u, 0x000078f0u, 0x000075f2u, 0x000020acu, 0x000078efu, 0x00001feau, + 0x000700f5u, 0x00000009u, 0x000077feu, 0x000075f2u, 0x000020acu, 0x000077fdu, 0x00001feau, 0x000700f5u, + 0x0000005fu, 0x0000770bu, 0x000076e9u, 0x000020acu, 0x0000770au, 0x00001feau, 0x000700f5u, 0x0000005fu, + 0x000076e7u, 0x000076e9u, 0x000020acu, 0x000076e6u, 0x00001feau, 0x000700f5u, 0x0000003cu, 0x00007663u, + 0x00007656u, 0x000020acu, 0x00007662u, 0x00001feau, 0x000700f5u, 0x0000003cu, 0x00007654u, 0x00007656u, + 0x000020acu, 0x00007653u, 0x00001feau, 0x000500abu, 0x0000005du, 0x00001fedu, 0x000075e5u, 0x00000379u, + 0x000400f6u, 0x00001fe9u, 0x00001feau, 0x00000000u, 0x000400fau, 0x00001fedu, 0x00001fe8u, 0x00001fe9u, + 0x000200f8u, 0x00001fe8u, 0x0006000cu, 0x00000008u, 0x00001ff0u, 0x00000001u, 0x00000049u, 0x000075e5u, + 0x000500c4u, 0x00000008u, 0x00001ff2u, 0x00000217u, 0x00001ff0u, 0x0004007cu, 0x00000006u, 0x00001ff3u, + 0x00001ff2u, 0x000400c8u, 0x00000006u, 0x00001ff4u, 0x00001ff3u, 0x000500c7u, 0x00000006u, 0x00001ff6u, + 0x000075e5u, 0x00001ff4u, 0x00050080u, 0x00000008u, 0x00001ffeu, 0x00001fc2u, 0x00001ff0u, 0x00060041u, + 0x00000270u, 0x00001fffu, 0x00001ffbu, 0x00000208u, 0x00001ffeu, 0x0004003du, 0x00000006u, 0x00002000u, + 0x00001fffu, 0x000200f9u, 0x00002001u, 0x000200f8u, 0x00002001u, 0x000700f5u, 0x0000003cu, 0x0000a133u, + 0x0000a134u, 0x00001fe8u, 0x0000bd63u, 0x00002004u, 0x000700f5u, 0x0000003cu, 0x00009f9fu, 0x00009fa0u, + 0x00001fe8u, 0x0000bd49u, 0x00002004u, 0x000700f5u, 0x00000008u, 0x00009e0cu, 0x00009e0du, 0x00001fe8u, + 0x0000bd2eu, 0x00002004u, 0x000700f5u, 0x00000008u, 0x00009c79u, 0x00009c7au, 0x00001fe8u, 0x0000bd13u, + 0x00002004u, 0x000700f5u, 0x0000003cu, 0x00009ae3u, 0x00009ae4u, 0x00001fe8u, 0x0000bcebu, 0x00002004u, + 0x000700f5u, 0x0000003cu, 0x0000995cu, 0x0000995du, 0x00001fe8u, 0x0000bcc4u, 0x00002004u, 0x000700f5u, + 0x00000008u, 0x000097d6u, 0x000097d7u, 0x00001fe8u, 0x0000bc9cu, 0x00002004u, 0x000700f5u, 0x00000008u, + 0x00009650u, 0x00009651u, 0x00001fe8u, 0x0000bc74u, 0x00002004u, 0x000700f5u, 0x00000008u, 0x00009339u, + 0x00007623u, 0x00001fe8u, 0x0000bc03u, 0x00002004u, 0x000700f5u, 0x00000008u, 0x000091cdu, 0x00007616u, + 0x00001fe8u, 0x0000bbc5u, 0x00002004u, 0x000700f5u, 0x0000003cu, 0x0000905cu, 0x0000905du, 0x00001fe8u, + 0x0000bb87u, 0x00002004u, 0x000700f5u, 0x00000009u, 0x00008eeeu, 0x000075f0u, 0x00001fe8u, 0x0000bb7au, + 0x00002004u, 0x000700f5u, 0x00000009u, 0x00008d81u, 0x00008d82u, 0x00001fe8u, 0x00008d7fu, 0x00002004u, + 0x000700f5u, 0x00000008u, 0x00008c3fu, 0x00008c40u, 0x00001fe8u, 0x00008c3du, 0x00002004u, 0x000700f5u, + 0x00000008u, 0x00008afdu, 0x00008afeu, 0x00001fe8u, 0x00008afbu, 0x00002004u, 0x000700f5u, 0x00000008u, + 0x00008990u, 0x00008991u, 0x00001fe8u, 0x0000898eu, 0x00002004u, 0x000700f5u, 0x00000008u, 0x00008667u, + 0x00008668u, 0x00001fe8u, 0x0000b9e8u, 0x00002004u, 0x000700f5u, 0x00000009u, 0x000085aeu, 0x000085afu, + 0x00001fe8u, 0x0000b955u, 0x00002004u, 0x000700f5u, 0x00000008u, 0x00008421u, 0x00008422u, 0x00001fe8u, + 0x0000b8e3u, 0x00002004u, 0x000700f5u, 0x00000009u, 0x000081feu, 0x000081ffu, 0x00001fe8u, 0x0000b839u, + 0x00002004u, 0x000700f5u, 0x00000009u, 0x00008109u, 0x0000810au, 0x00001fe8u, 0x0000b791u, 0x00002004u, + 0x000700f5u, 0x00000009u, 0x0000800eu, 0x0000800fu, 0x00001fe8u, 0x0000b6e9u, 0x00002004u, 0x000700f5u, + 0x00000009u, 0x00007ea2u, 0x00007ea3u, 0x00001fe8u, 0x0000b641u, 0x00002004u, 0x000700f5u, 0x00000009u, + 0x00007db8u, 0x00007db9u, 0x00001fe8u, 0x0000b5aeu, 0x00002004u, 0x000700f5u, 0x00000009u, 0x000079ebu, + 0x000079ecu, 0x00001fe8u, 0x0000b48au, 0x00002004u, 0x000700f5u, 0x00000009u, 0x00007970u, 0x00007971u, + 0x00001fe8u, 0x0000b368u, 0x00002004u, 0x000700f5u, 0x00000009u, 0x000078efu, 0x000078f0u, 0x00001fe8u, + 0x0000b246u, 0x00002004u, 0x000700f5u, 0x00000009u, 0x000077fdu, 0x000077feu, 0x00001fe8u, 0x0000b124u, + 0x00002004u, 0x000700f5u, 0x0000005fu, 0x0000770au, 0x0000770bu, 0x00001fe8u, 0x0000afa2u, 0x00002004u, + 0x000700f5u, 0x0000005fu, 0x000076e6u, 0x000076e7u, 0x00001fe8u, 0x0000ae20u, 0x00002004u, 0x000700f5u, + 0x0000003cu, 0x00007662u, 0x00007663u, 0x00001fe8u, 0x0000ac92u, 0x00002004u, 0x000700f5u, 0x0000003cu, + 0x00007653u, 0x00007654u, 0x00001fe8u, 0x0000aafbu, 0x00002004u, 0x000700f5u, 0x00000006u, 0x00007640u, + 0x00002000u, 0x00001fe8u, 0x00002010u, 0x00002004u, 0x000700f5u, 0x0000005du, 0x0000a7a7u, 0x00007608u, + 0x00001fe8u, 0x0000a7a8u, 0x00002004u, 0x000700f5u, 0x0000005du, 0x0000a621u, 0x000075ebu, 0x00001fe8u, + 0x0000a622u, 0x00002004u, 0x000500abu, 0x0000005du, 0x00002007u, 0x00007640u, 0x00000379u, 0x000400f6u, + 0x00002003u, 0x00002004u, 0x00000000u, 0x000400fau, 0x00002007u, 0x00002002u, 0x00002003u, 0x000200f8u, + 0x00002002u, 0x0006000cu, 0x00000008u, 0x0000200au, 0x00000001u, 0x00000049u, 0x00007640u, 0x000500c4u, + 0x00000008u, 0x0000200cu, 0x00000217u, 0x0000200au, 0x0004007cu, 0x00000006u, 0x0000200du, 0x0000200cu, + 0x000400c8u, 0x00000006u, 0x0000200eu, 0x0000200du, 0x000500c7u, 0x00000006u, 0x00002010u, 0x00007640u, + 0x0000200eu, 0x00050084u, 0x00000008u, 0x00002014u, 0x00000382u, 0x00001ff0u, 0x00050080u, 0x00000008u, + 0x00002015u, 0x0000200au, 0x00002014u, 0x0004007cu, 0x00000006u, 0x00002016u, 0x00002015u, 0x000300f7u, + 0x00002476u, 0x00000000u, 0x000300fbu, 0x00000379u, 0x00002200u, 0x000200f8u, 0x00002200u, 0x00060041u, + 0x00000348u, 0x0000247cu, 0x00000346u, 0x00000208u, 0x00002016u, 0x0004003du, 0x00000342u, 0x0000247du, + 0x0000247cu, 0x00050051u, 0x00000008u, 0x0000247eu, 0x0000247du, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00002480u, 0x0000247du, 0x00000001u, 0x00050051u, 0x00000008u, 0x00002482u, 0x0000247du, 0x00000002u, + 0x00050084u, 0x00000008u, 0x00002206u, 0x00000887u, 0x00002480u, 0x000500b1u, 0x0000005du, 0x00002207u, + 0x00001faau, 0x00002206u, 0x000400a8u, 0x0000005du, 0x00002208u, 0x00002207u, 0x000300f7u, 0x00002210u, + 0x00000000u, 0x000400fau, 0x00002208u, 0x00002209u, 0x00002210u, 0x000200f8u, 0x00002209u, 0x00050084u, + 0x00000008u, 0x0000220du, 0x00002482u, 0x00000887u, 0x00050080u, 0x00000008u, 0x0000220eu, 0x0000220du, + 0x00001c46u, 0x000500adu, 0x0000005du, 0x0000220fu, 0x00001faau, 0x0000220eu, 0x000200f9u, 0x00002210u, + 0x000200f8u, 0x00002210u, 0x000700f5u, 0x0000005du, 0x00002211u, 0x00002207u, 0x00002200u, 0x0000220fu, + 0x00002209u, 0x000300f7u, 0x00002213u, 0x00000000u, 0x000400fau, 0x00002211u, 0x00002212u, 0x00002213u, + 0x000200f8u, 0x00002212u, 0x000200f9u, 0x00002476u, 0x000200f8u, 0x00002213u, 0x00070041u, 0x0000027cu, + 0x00002215u, 0x00001c52u, 0x00000208u, 0x00002016u, 0x00000269u, 0x0004003du, 0x0000022eu, 0x00002216u, + 0x00002215u, 0x00040071u, 0x00000006u, 0x00002217u, 0x00002216u, 0x000300f7u, 0x00002222u, 0x00000000u, + 0x000400fau, 0x00001c57u, 0x00002218u, 0x00002222u, 0x000200f8u, 0x00002218u, 0x000500c7u, 0x00000006u, + 0x0000221au, 0x00002217u, 0x00000a4au, 0x000500abu, 0x0000005du, 0x0000221bu, 0x0000221au, 0x00000379u, + 0x000300f7u, 0x00002221u, 0x00000000u, 0x000400fau, 0x0000221bu, 0x0000221cu, 0x00002221u, 0x000200f8u, + 0x0000221cu, 0x000500c7u, 0x00000008u, 0x0000221eu, 0x00001fa6u, 0x00001c60u, 0x000500c7u, 0x00000008u, + 0x00002220u, 0x00001faau, 0x00001c64u, 0x000200f9u, 0x00002221u, 0x000200f8u, 0x00002221u, 0x000700f5u, + 0x00000008u, 0x00007646u, 0x00001fa6u, 0x00002218u, 0x0000221eu, 0x0000221cu, 0x000700f5u, 0x00000008u, + 0x00007644u, 0x00001faau, 0x00002218u, 0x00002220u, 0x0000221cu, 0x000200f9u, 0x00002222u, 0x000200f8u, + 0x00002222u, 0x000700f5u, 0x00000008u, 0x00007645u, 0x00001fa6u, 0x00002213u, 0x00007646u, 0x00002221u, + 0x000700f5u, 0x00000008u, 0x00007643u, 0x00001faau, 0x00002213u, 0x00007644u, 0x00002221u, 0x00050084u, + 0x00000008u, 0x00002225u, 0x00000887u, 0x0000247eu, 0x00050082u, 0x00000008u, 0x0000222au, 0x00007643u, + 0x00002206u, 0x00050080u, 0x00000008u, 0x0000222bu, 0x00002225u, 0x0000222au, 0x0004007cu, 0x00000006u, + 0x0000222cu, 0x0000222bu, 0x00070041u, 0x0000031bu, 0x0000248au, 0x00000319u, 0x00000208u, 0x0000222cu, + 0x00000208u, 0x0004003du, 0x00000009u, 0x0000248bu, 0x0000248au, 0x00070041u, 0x0000031bu, 0x0000248du, + 0x00000319u, 0x00000208u, 0x0000222cu, 0x00000217u, 0x0004003du, 0x00000009u, 0x0000248eu, 0x0000248du, + 0x00070041u, 0x00000322u, 0x00002490u, 0x00000319u, 0x00000208u, 0x0000222cu, 0x0000021au, 0x0004003du, + 0x00000314u, 0x00002491u, 0x00002490u, 0x00040071u, 0x0000023cu, 0x00002492u, 0x00002491u, 0x0004007cu, + 0x00000009u, 0x00002493u, 0x00002492u, 0x00070041u, 0x00000322u, 0x00002495u, 0x00000319u, 0x00000208u, + 0x0000222cu, 0x0000021du, 0x0004003du, 0x00000314u, 0x00002496u, 0x00002495u, 0x00040071u, 0x0000023cu, + 0x00002497u, 0x00002496u, 0x0004007cu, 0x00000009u, 0x00002498u, 0x00002497u, 0x00070041u, 0x000002adu, + 0x0000249au, 0x00000319u, 0x00000208u, 0x0000222cu, 0x00000220u, 0x0004003du, 0x00000008u, 0x0000249bu, + 0x0000249au, 0x00070041u, 0x000002adu, 0x0000249du, 0x00000319u, 0x00000208u, 0x0000222cu, 0x00000223u, + 0x0004003du, 0x00000008u, 0x0000249eu, 0x0000249du, 0x00070041u, 0x000002adu, 0x000024a0u, 0x00000319u, + 0x00000208u, 0x0000222cu, 0x00000226u, 0x0004003du, 0x00000008u, 0x000024a1u, 0x000024a0u, 0x00070041u, + 0x00000336u, 0x000024a3u, 0x00000319u, 0x00000208u, 0x0000222cu, 0x00000229u, 0x0004003du, 0x00000231u, + 0x000024a4u, 0x000024a3u, 0x00040072u, 0x00000008u, 0x000024a5u, 0x000024a4u, 0x00070041u, 0x00000275u, + 0x000024a7u, 0x00000319u, 0x00000208u, 0x0000222cu, 0x00000263u, 0x0004003du, 0x00000230u, 0x000024a8u, + 0x000024a7u, 0x00040071u, 0x00000006u, 0x000024a9u, 0x000024a8u, 0x0004007cu, 0x00000008u, 0x000024aau, + 0x000024a9u, 0x000500aau, 0x0000005du, 0x00002230u, 0x000024aau, 0x00000208u, 0x000300f7u, 0x00002232u, + 0x00000000u, 0x000400fau, 0x00002230u, 0x00002231u, 0x00002232u, 0x000200f8u, 0x00002231u, 0x000200f9u, + 0x00002476u, 0x000200f8u, 0x00002232u, 0x00070041u, 0x0000027cu, 0x00002234u, 0x00001c52u, 0x00000208u, + 0x00002016u, 0x0000026fu, 0x0004003du, 0x0000022eu, 0x00002235u, 0x00002234u, 0x00040071u, 0x00000006u, + 0x00002236u, 0x00002235u, 0x00060041u, 0x0000020fu, 0x000024b0u, 0x0000020du, 0x00000208u, 0x00002016u, + 0x0004003du, 0x00000209u, 0x000024b1u, 0x000024b0u, 0x00050051u, 0x00000009u, 0x000024b4u, 0x000024b1u, + 0x00000001u, 0x00050051u, 0x00000009u, 0x000024b8u, 0x000024b1u, 0x00000003u, 0x00050051u, 0x00000009u, + 0x000024bcu, 0x000024b1u, 0x00000005u, 0x00050051u, 0x00000009u, 0x000024c0u, 0x000024b1u, 0x00000007u, + 0x00070041u, 0x00000239u, 0x0000223au, 0x00000a24u, 0x00000208u, 0x00002016u, 0x00000208u, 0x0004003du, + 0x0000022fu, 0x0000223bu, 0x0000223au, 0x00040071u, 0x0000023cu, 0x0000223cu, 0x0000223bu, 0x00050051u, + 0x00000006u, 0x0000223eu, 0x0000223cu, 0x00000000u, 0x00050051u, 0x00000006u, 0x00002240u, 0x0000223cu, + 0x00000002u, 0x00070041u, 0x00000239u, 0x000024c6u, 0x00000294u, 0x00000208u, 0x0000223eu, 0x00000208u, + 0x0004003du, 0x0000022fu, 0x000024c7u, 0x000024c6u, 0x00040071u, 0x0000023cu, 0x000024c8u, 0x000024c7u, + 0x0004007cu, 0x00000009u, 0x000024c9u, 0x000024c8u, 0x00070041u, 0x00000239u, 0x000024cbu, 0x00000294u, + 0x00000208u, 0x0000223eu, 0x00000217u, 0x0004003du, 0x0000022fu, 0x000024ccu, 0x000024cbu, 0x00040071u, + 0x0000023cu, 0x000024cdu, 0x000024ccu, 0x0004007cu, 0x00000009u, 0x000024ceu, 0x000024cdu, 0x00070041u, + 0x00000239u, 0x000024d0u, 0x00000294u, 0x00000208u, 0x0000223eu, 0x0000021au, 0x0004003du, 0x0000022fu, + 0x000024d1u, 0x000024d0u, 0x00040071u, 0x0000023cu, 0x000024d2u, 0x000024d1u, 0x0004007cu, 0x00000009u, + 0x000024d3u, 0x000024d2u, 0x00070041u, 0x00000239u, 0x000024d5u, 0x00000294u, 0x00000208u, 0x0000223eu, + 0x0000021du, 0x0004003du, 0x0000022fu, 0x000024d6u, 0x000024d5u, 0x00040071u, 0x0000023cu, 0x000024d7u, + 0x000024d6u, 0x0004007cu, 0x00000009u, 0x000024d8u, 0x000024d7u, 0x00070041u, 0x00000270u, 0x000024dau, + 0x00000294u, 0x00000208u, 0x0000223eu, 0x00000220u, 0x0004003du, 0x00000006u, 0x000024dbu, 0x000024dau, + 0x00070041u, 0x000002adu, 0x000024ddu, 0x00000294u, 0x00000208u, 0x0000223eu, 0x00000223u, 0x0004003du, + 0x00000008u, 0x000024deu, 0x000024ddu, 0x000500c7u, 0x00000006u, 0x00002250u, 0x000024dbu, 0x0000037cu, + 0x000500abu, 0x0000005du, 0x00002251u, 0x00002250u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002253u, + 0x000024dbu, 0x00000a4au, 0x000500abu, 0x0000005du, 0x00002254u, 0x00002253u, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x00002256u, 0x000024dbu, 0x00001cafu, 0x000500abu, 0x0000005du, 0x00002257u, 0x00002256u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002259u, 0x000024dbu, 0x00000a50u, 0x000500abu, 0x0000005du, + 0x0000225au, 0x00002259u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000225cu, 0x000024dbu, 0x00000a56u, + 0x000500abu, 0x0000005du, 0x0000225du, 0x0000225cu, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000225fu, + 0x000024dbu, 0x00000360u, 0x000500abu, 0x0000005du, 0x00002260u, 0x0000225fu, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x00002262u, 0x000024dbu, 0x00001cc0u, 0x000500abu, 0x0000005du, 0x00002263u, 0x00002262u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002265u, 0x000024dbu, 0x00000f4au, 0x000500abu, 0x0000005du, + 0x00002266u, 0x00002265u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002268u, 0x000024dbu, 0x00000f42u, + 0x000500abu, 0x0000005du, 0x00002269u, 0x00002268u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000226bu, + 0x000024dbu, 0x00000706u, 0x000500abu, 0x0000005du, 0x0000226cu, 0x0000226bu, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x0000226eu, 0x000024dbu, 0x00000a5cu, 0x000500abu, 0x0000005du, 0x0000226fu, 0x0000226eu, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002271u, 0x000024dbu, 0x0000048au, 0x000500abu, 0x0000005du, + 0x00002272u, 0x00002271u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002274u, 0x000024dbu, 0x00000e7bu, + 0x000500abu, 0x0000005du, 0x00002275u, 0x00002274u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002277u, + 0x000024dbu, 0x00001cddu, 0x000500abu, 0x0000005du, 0x00002278u, 0x00002277u, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x0000227au, 0x000024dbu, 0x00001ce2u, 0x000500abu, 0x0000005du, 0x0000227bu, 0x0000227au, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000227du, 0x000024dbu, 0x00001ce7u, 0x000500abu, 0x0000005du, + 0x0000227eu, 0x0000227du, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002280u, 0x000024dbu, 0x00001cecu, + 0x000500abu, 0x0000005du, 0x00002281u, 0x00002280u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002283u, + 0x000024dbu, 0x00001cf1u, 0x000500abu, 0x0000005du, 0x00002284u, 0x00002283u, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x00002286u, 0x000024dbu, 0x00001cf6u, 0x000500abu, 0x0000005du, 0x00002287u, 0x00002286u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002289u, 0x000024dbu, 0x00001cfbu, 0x000500abu, 0x0000005du, + 0x0000228au, 0x00002289u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000228cu, 0x000024dbu, 0x00001d00u, + 0x000500abu, 0x0000005du, 0x0000228du, 0x0000228cu, 0x00000379u, 0x000500c7u, 0x00000006u, 0x0000228fu, + 0x000024dbu, 0x00001d05u, 0x000500abu, 0x0000005du, 0x00002290u, 0x0000228fu, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x00002292u, 0x000024dbu, 0x00001d0au, 0x000500abu, 0x0000005du, 0x00002293u, 0x00002292u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002295u, 0x000024dbu, 0x00001d0fu, 0x000500abu, 0x0000005du, + 0x00002296u, 0x00002295u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00002298u, 0x000024dbu, 0x00001d13u, + 0x000500abu, 0x0000005du, 0x00002299u, 0x00002298u, 0x00000379u, 0x000300f7u, 0x000022a4u, 0x00000000u, + 0x000400fau, 0x00002299u, 0x0000229au, 0x000022a4u, 0x000200f8u, 0x0000229au, 0x0004007cu, 0x00000006u, + 0x0000229cu, 0x00007645u, 0x0004007cu, 0x00000006u, 0x0000229eu, 0x00007643u, 0x00060041u, 0x00001d1du, + 0x000022a0u, 0x00000cddu, 0x00000208u, 0x0000021du, 0x0004003du, 0x00000006u, 0x000022a1u, 0x000022a0u, + 0x00050080u, 0x00000006u, 0x000022a2u, 0x00002016u, 0x000022a1u, 0x00060050u, 0x00000358u, 0x000024e5u, + 0x0000229cu, 0x0000229eu, 0x000022a2u, 0x000500c2u, 0x00000358u, 0x000024e8u, 0x000024e5u, 0x0000bdc0u, + 0x0008004fu, 0x00000358u, 0x000024eau, 0x000024e5u, 0x000024e5u, 0x00000001u, 0x00000002u, 0x00000000u, + 0x000500c6u, 0x00000358u, 0x000024ebu, 0x000024e8u, 0x000024eau, 0x00050084u, 0x00000358u, 0x000024edu, + 0x000024ebu, 0x0000bdc1u, 0x000500c2u, 0x00000358u, 0x000024f0u, 0x000024edu, 0x0000bdc0u, 0x0008004fu, + 0x00000358u, 0x000024f2u, 0x000024edu, 0x000024edu, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, + 0x00000358u, 0x000024f3u, 0x000024f0u, 0x000024f2u, 0x00050084u, 0x00000358u, 0x000024f5u, 0x000024f3u, + 0x0000bdc1u, 0x000500c2u, 0x00000358u, 0x000024f8u, 0x000024f5u, 0x0000bdc0u, 0x0008004fu, 0x00000358u, + 0x000024fau, 0x000024f5u, 0x000024f5u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000358u, + 0x000024fbu, 0x000024f8u, 0x000024fau, 0x00050084u, 0x00000358u, 0x000024fdu, 0x000024fbu, 0x0000bdc1u, + 0x00050051u, 0x00000006u, 0x000024ffu, 0x000024fdu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00002500u, + 0x000024ffu, 0x0000037cu, 0x0004007cu, 0x00000008u, 0x00002501u, 0x00002500u, 0x000200f9u, 0x000022a4u, + 0x000200f8u, 0x000022a4u, 0x000700f5u, 0x00000008u, 0x0000841eu, 0x00008421u, 0x00002232u, 0x00002501u, + 0x0000229au, 0x000500c7u, 0x00000006u, 0x000022a6u, 0x00002217u, 0x0000048au, 0x000500abu, 0x0000005du, + 0x000022a7u, 0x000022a6u, 0x00000379u, 0x000300f7u, 0x000022f4u, 0x00000000u, 0x000400fau, 0x00002278u, + 0x000022a9u, 0x000022e4u, 0x000200f8u, 0x000022e4u, 0x000300f7u, 0x000022f3u, 0x00000000u, 0x000400fau, + 0x00002275u, 0x000022e6u, 0x000022f3u, 0x000200f8u, 0x000022e6u, 0x000500afu, 0x0000005du, 0x000022ebu, + 0x00007645u, 0x0000249eu, 0x000300f7u, 0x000022f1u, 0x00000000u, 0x000400fau, 0x000022ebu, 0x000022ecu, + 0x000022f1u, 0x000200f8u, 0x000022ecu, 0x000500b3u, 0x0000005du, 0x000022f0u, 0x00007645u, 0x000024a1u, + 0x000200f9u, 0x000022f1u, 0x000200f8u, 0x000022f1u, 0x000700f5u, 0x0000005du, 0x000022f2u, 0x000022ebu, + 0x000022e6u, 0x000022f0u, 0x000022ecu, 0x000200f9u, 0x00002476u, 0x000200f8u, 0x000022f3u, 0x000200f9u, + 0x000022f4u, 0x000200f8u, 0x000022a9u, 0x000500afu, 0x0000005du, 0x000022adu, 0x00007645u, 0x0000249eu, + 0x000300f7u, 0x000022b3u, 0x00000000u, 0x000400fau, 0x000022adu, 0x000022aeu, 0x000022b3u, 0x000200f8u, + 0x000022aeu, 0x000500b3u, 0x0000005du, 0x000022b2u, 0x00007645u, 0x000024a1u, 0x000200f9u, 0x000022b3u, + 0x000200f8u, 0x000022b3u, 0x000700f5u, 0x0000005du, 0x000022b4u, 0x000022adu, 0x000022a9u, 0x000022b2u, + 0x000022aeu, 0x000400a8u, 0x0000005du, 0x000022b6u, 0x000022b4u, 0x000300f7u, 0x000022b8u, 0x00000000u, + 0x000400fau, 0x000022b6u, 0x000022b7u, 0x000022b8u, 0x000200f8u, 0x000022b7u, 0x000200f9u, 0x00002476u, + 0x000200f8u, 0x000022b8u, 0x000300f7u, 0x00002517u, 0x00000000u, 0x000400fau, 0x000022a7u, 0x0000250du, + 0x00002512u, 0x000200f8u, 0x00002512u, 0x00050082u, 0x00000008u, 0x00002516u, 0x000024a1u, 0x00007645u, + 0x000200f9u, 0x00002517u, 0x000200f8u, 0x0000250du, 0x00050082u, 0x00000008u, 0x00002511u, 0x00007645u, + 0x0000249eu, 0x000200f9u, 0x00002517u, 0x000200f8u, 0x00002517u, 0x000700f5u, 0x00000008u, 0x0000894fu, + 0x00002511u, 0x0000250du, 0x00002516u, 0x00002512u, 0x000500c3u, 0x00000008u, 0x0000251au, 0x0000894fu, + 0x0000084bu, 0x00060041u, 0x00000cdeu, 0x0000251cu, 0x00000cddu, 0x00000208u, 0x00000217u, 0x0004003du, + 0x00000008u, 0x0000251du, 0x0000251cu, 0x000500c7u, 0x00000008u, 0x0000251eu, 0x0000251au, 0x0000251du, + 0x00050082u, 0x00000008u, 0x00002521u, 0x0000251au, 0x0000251eu, 0x00060041u, 0x00000cdeu, 0x00002523u, + 0x00000cddu, 0x00000208u, 0x00000208u, 0x0004003du, 0x00000008u, 0x00002524u, 0x00002523u, 0x000500c3u, + 0x00000008u, 0x00002525u, 0x0000251au, 0x00002524u, 0x000600a9u, 0x00000008u, 0x00002527u, 0x000022a7u, + 0x00000217u, 0x00000cebu, 0x00050084u, 0x00000008u, 0x00002528u, 0x00002525u, 0x00002527u, 0x0008004fu, + 0x0000003cu, 0x0000252bu, 0x0000248eu, 0x0000248eu, 0x00000000u, 0x00000001u, 0x00000003u, 0x0008004fu, + 0x0000003cu, 0x0000252du, 0x000024bcu, 0x000024bcu, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, + 0x0000003cu, 0x0000252fu, 0x0000252du, 0x0000bdc2u, 0x00060050u, 0x0000003cu, 0x00002531u, 0x00002528u, + 0x00002528u, 0x00002528u, 0x00050084u, 0x0000003cu, 0x00002532u, 0x0000252fu, 0x00002531u, 0x00050080u, + 0x0000003cu, 0x00002533u, 0x0000252bu, 0x00002532u, 0x000300f7u, 0x00002541u, 0x00000000u, 0x000400fau, + 0x00002260u, 0x00002535u, 0x0000253cu, 0x000200f8u, 0x0000253cu, 0x000500c3u, 0x0000003cu, 0x0000253fu, + 0x00002533u, 0x0000bdc3u, 0x0007004fu, 0x0000005fu, 0x000025cdu, 0x0000253fu, 0x0000253fu, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00002541u, 0x000200f8u, 0x00002535u, 0x000500c3u, 0x0000003cu, 0x00002538u, + 0x00002533u, 0x0000bdc3u, 0x00050051u, 0x00000008u, 0x0000254eu, 0x00002538u, 0x00000002u, 0x000500b3u, + 0x0000005du, 0x00002550u, 0x0000254eu, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00002552u, 0x0000254eu, + 0x00000c19u, 0x0006000cu, 0x00000008u, 0x000025afu, 0x00000001u, 0x0000004au, 0x00002552u, 0x00050082u, + 0x00000008u, 0x000025b0u, 0x00000288u, 0x000025afu, 0x0007000cu, 0x00000008u, 0x000025b1u, 0x00000001u, + 0x00000027u, 0x000025b0u, 0x00000288u, 0x000500c4u, 0x00000008u, 0x000025b4u, 0x00002552u, 0x000025b1u, + 0x000500c7u, 0x00000008u, 0x000025b5u, 0x000025b4u, 0x00000b33u, 0x000500c7u, 0x00000008u, 0x000025b7u, + 0x000025b5u, 0x00000390u, 0x000500c3u, 0x00000008u, 0x000025b9u, 0x000025b5u, 0x00000263u, 0x0003003eu, + 0x000025aau, 0x00000bf7u, 0x00050041u, 0x00000060u, 0x000025bau, 0x000025aau, 0x000025b9u, 0x0004003du, + 0x0000005fu, 0x000025bbu, 0x000025bau, 0x00050051u, 0x00000008u, 0x000025c0u, 0x000025bbu, 0x00000001u, + 0x00050084u, 0x00000008u, 0x000025c2u, 0x000025c0u, 0x000025b7u, 0x000500c3u, 0x00000008u, 0x000025c3u, + 0x000025c2u, 0x0000026fu, 0x00050051u, 0x00000008u, 0x000025c5u, 0x000025bbu, 0x00000000u, 0x00050080u, + 0x00000008u, 0x000025c6u, 0x000025c3u, 0x000025c5u, 0x0007004fu, 0x0000005fu, 0x00002558u, 0x00002538u, + 0x00002538u, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x0000255bu, 0x000025c6u, 0x000025c6u, + 0x00050084u, 0x0000005fu, 0x0000255cu, 0x00002558u, 0x0000255bu, 0x000500c3u, 0x00000008u, 0x0000255eu, + 0x00000c2cu, 0x000025b1u, 0x0004007eu, 0x00000008u, 0x0000255fu, 0x0000255eu, 0x000500c7u, 0x00000008u, + 0x00002560u, 0x00000c2bu, 0x0000255fu, 0x00050050u, 0x0000005fu, 0x00002563u, 0x00002560u, 0x00002560u, + 0x000500c7u, 0x0000005fu, 0x00002564u, 0x0000255cu, 0x00002563u, 0x000500abu, 0x0000005du, 0x00002566u, + 0x000025b1u, 0x00000288u, 0x000300f7u, 0x00002571u, 0x00000000u, 0x000400fau, 0x00002566u, 0x00002567u, + 0x0000256du, 0x000200f8u, 0x0000256du, 0x000500c4u, 0x0000005fu, 0x00002570u, 0x0000255cu, 0x0000bdc7u, + 0x000200f9u, 0x00002571u, 0x000200f8u, 0x00002567u, 0x00050082u, 0x00000008u, 0x0000256au, 0x00000282u, + 0x000025b1u, 0x00050050u, 0x0000005fu, 0x0000256bu, 0x0000256au, 0x0000256au, 0x000500c3u, 0x0000005fu, + 0x0000256cu, 0x0000255cu, 0x0000256bu, 0x000200f9u, 0x00002571u, 0x000200f8u, 0x00002571u, 0x000700f5u, + 0x0000005fu, 0x00008953u, 0x0000256cu, 0x00002567u, 0x00002570u, 0x0000256du, 0x000700f5u, 0x0000005fu, + 0x00008951u, 0x0000256cu, 0x00002567u, 0x0000255cu, 0x0000256du, 0x000500abu, 0x00000880u, 0x00002573u, + 0x00002564u, 0x00000c45u, 0x0004009au, 0x0000005du, 0x00002574u, 0x00002573u, 0x000300f7u, 0x000025a0u, + 0x00000000u, 0x000400fau, 0x00002574u, 0x00002575u, 0x000025a0u, 0x000200f8u, 0x00002575u, 0x00050051u, + 0x00000008u, 0x00002577u, 0x00002564u, 0x00000000u, 0x000500abu, 0x0000005du, 0x00002579u, 0x00002577u, + 0x00002560u, 0x000300f7u, 0x0000257eu, 0x00000000u, 0x000400fau, 0x00002579u, 0x0000257au, 0x0000257eu, + 0x000200f8u, 0x0000257au, 0x000500abu, 0x0000005du, 0x0000257du, 0x00002577u, 0x00000208u, 0x000200f9u, + 0x0000257eu, 0x000200f8u, 0x0000257eu, 0x000700f5u, 0x0000005du, 0x0000257fu, 0x00002579u, 0x00002575u, + 0x0000257du, 0x0000257au, 0x000300f7u, 0x0000258au, 0x00000000u, 0x000400fau, 0x0000257fu, 0x00002580u, + 0x0000258au, 0x000200f8u, 0x00002580u, 0x00050051u, 0x00000008u, 0x00002582u, 0x00008951u, 0x00000000u, + 0x000500c7u, 0x00000008u, 0x00002583u, 0x00002582u, 0x00000c2cu, 0x000500aau, 0x0000005du, 0x00002584u, + 0x00002583u, 0x00000208u, 0x000300f7u, 0x00002589u, 0x00000000u, 0x000400fau, 0x00002584u, 0x00002585u, + 0x00002587u, 0x000200f8u, 0x00002587u, 0x00060052u, 0x0000005fu, 0x000071e7u, 0x00000c5eu, 0x00008953u, + 0x00000000u, 0x000200f9u, 0x00002589u, 0x000200f8u, 0x00002585u, 0x00060052u, 0x0000005fu, 0x000071e5u, + 0x00000c19u, 0x00008953u, 0x00000000u, 0x000200f9u, 0x00002589u, 0x000200f8u, 0x00002589u, 0x000700f5u, + 0x0000005fu, 0x00008959u, 0x000071e5u, 0x00002585u, 0x000071e7u, 0x00002587u, 0x000200f9u, 0x0000258au, + 0x000200f8u, 0x0000258au, 0x000700f5u, 0x0000005fu, 0x00008958u, 0x00008953u, 0x0000257eu, 0x00008959u, + 0x00002589u, 0x00050051u, 0x00000008u, 0x0000258cu, 0x00002564u, 0x00000001u, 0x000500abu, 0x0000005du, + 0x0000258eu, 0x0000258cu, 0x00002560u, 0x000300f7u, 0x00002593u, 0x00000000u, 0x000400fau, 0x0000258eu, + 0x0000258fu, 0x00002593u, 0x000200f8u, 0x0000258fu, 0x000500abu, 0x0000005du, 0x00002592u, 0x0000258cu, + 0x00000208u, 0x000200f9u, 0x00002593u, 0x000200f8u, 0x00002593u, 0x000700f5u, 0x0000005du, 0x00002594u, + 0x0000258eu, 0x0000258au, 0x00002592u, 0x0000258fu, 0x000300f7u, 0x0000259fu, 0x00000000u, 0x000400fau, + 0x00002594u, 0x00002595u, 0x0000259fu, 0x000200f8u, 0x00002595u, 0x00050051u, 0x00000008u, 0x00002597u, + 0x00008951u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00002598u, 0x00002597u, 0x00000c2cu, 0x000500aau, + 0x0000005du, 0x00002599u, 0x00002598u, 0x00000208u, 0x000300f7u, 0x0000259eu, 0x00000000u, 0x000400fau, + 0x00002599u, 0x0000259au, 0x0000259cu, 0x000200f8u, 0x0000259cu, 0x00060052u, 0x0000005fu, 0x000071eeu, + 0x00000c5eu, 0x00008958u, 0x00000001u, 0x000200f9u, 0x0000259eu, 0x000200f8u, 0x0000259au, 0x00060052u, + 0x0000005fu, 0x000071ecu, 0x00000c19u, 0x00008958u, 0x00000001u, 0x000200f9u, 0x0000259eu, 0x000200f8u, + 0x0000259eu, 0x000700f5u, 0x0000005fu, 0x0000895du, 0x000071ecu, 0x0000259au, 0x000071eeu, 0x0000259cu, + 0x000200f9u, 0x0000259fu, 0x000200f8u, 0x0000259fu, 0x000700f5u, 0x0000005fu, 0x0000895cu, 0x00008958u, + 0x00002593u, 0x0000895du, 0x0000259eu, 0x000200f9u, 0x000025a0u, 0x000200f8u, 0x000025a0u, 0x000700f5u, + 0x0000005fu, 0x0000895bu, 0x00008953u, 0x00002571u, 0x0000895cu, 0x0000259fu, 0x00050050u, 0x00000880u, + 0x0000bde9u, 0x00002550u, 0x00002550u, 0x000600a9u, 0x0000005fu, 0x0000bdeau, 0x0000bde9u, 0x00000c78u, + 0x0000895bu, 0x0008000cu, 0x0000005fu, 0x000025a5u, 0x00000001u, 0x0000002du, 0x0000bdeau, 0x00000c7bu, + 0x00000c7cu, 0x000200f9u, 0x00002541u, 0x000200f8u, 0x00002541u, 0x000700f5u, 0x0000005fu, 0x0000895eu, + 0x000025a5u, 0x000025a0u, 0x000025cdu, 0x0000253cu, 0x000500c7u, 0x00000006u, 0x000022c3u, 0x00002236u, + 0x00000744u, 0x00080041u, 0x0000027cu, 0x000022c6u, 0x00000a24u, 0x00000208u, 0x00002016u, 0x0000021au, + 0x000022c3u, 0x0004003du, 0x0000022eu, 0x000022c7u, 0x000022c6u, 0x00040071u, 0x00000006u, 0x000022c8u, + 0x000022c7u, 0x00070041u, 0x00000270u, 0x000025d1u, 0x000002d6u, 0x00000208u, 0x000022c8u, 0x00000208u, + 0x0004003du, 0x00000006u, 0x000025d2u, 0x000025d1u, 0x00070041u, 0x00000270u, 0x000025d7u, 0x000002d6u, + 0x00000208u, 0x000022c8u, 0x0000021au, 0x0004003du, 0x00000006u, 0x000025d8u, 0x000025d7u, 0x00070041u, + 0x00000270u, 0x000025ddu, 0x000002d6u, 0x00000208u, 0x000022c8u, 0x00000220u, 0x0004003du, 0x00000006u, + 0x000025deu, 0x000025ddu, 0x00070041u, 0x00000270u, 0x000025e0u, 0x000002d6u, 0x00000208u, 0x000022c8u, + 0x00000223u, 0x0004003du, 0x00000006u, 0x000025e1u, 0x000025e0u, 0x00070041u, 0x0000027cu, 0x000025e8u, + 0x000002d6u, 0x00000208u, 0x000022c8u, 0x00000229u, 0x0004003du, 0x0000022eu, 0x000025e9u, 0x000025e8u, + 0x00040071u, 0x00000006u, 0x000025eau, 0x000025e9u, 0x0004007cu, 0x00000008u, 0x000025ebu, 0x000025eau, + 0x00070041u, 0x0000027cu, 0x000025edu, 0x000002d6u, 0x00000208u, 0x000022c8u, 0x00000263u, 0x0004003du, + 0x0000022eu, 0x000025eeu, 0x000025edu, 0x00040071u, 0x00000006u, 0x000025efu, 0x000025eeu, 0x0004007cu, + 0x00000008u, 0x000025f0u, 0x000025efu, 0x00070041u, 0x0000027cu, 0x000025f2u, 0x000002d6u, 0x00000208u, + 0x000022c8u, 0x00000269u, 0x0004003du, 0x0000022eu, 0x000025f3u, 0x000025f2u, 0x00040071u, 0x00000006u, + 0x000025f4u, 0x000025f3u, 0x0004007cu, 0x00000008u, 0x000025f5u, 0x000025f4u, 0x00070041u, 0x0000027cu, + 0x000025f7u, 0x000002d6u, 0x00000208u, 0x000022c8u, 0x0000026fu, 0x0004003du, 0x0000022eu, 0x000025f8u, + 0x000025f7u, 0x00040071u, 0x00000006u, 0x000025f9u, 0x000025f8u, 0x0004007cu, 0x00000008u, 0x000025fau, + 0x000025f9u, 0x00070041u, 0x0000027cu, 0x000025fcu, 0x000002d6u, 0x00000208u, 0x000022c8u, 0x00000274u, + 0x0004003du, 0x0000022eu, 0x000025fdu, 0x000025fcu, 0x00040071u, 0x00000006u, 0x000025feu, 0x000025fdu, + 0x0004007cu, 0x00000008u, 0x000025ffu, 0x000025feu, 0x00070041u, 0x0000027cu, 0x00002601u, 0x000002d6u, + 0x00000208u, 0x000022c8u, 0x0000027bu, 0x0004003du, 0x0000022eu, 0x00002602u, 0x00002601u, 0x00040071u, + 0x00000006u, 0x00002603u, 0x00002602u, 0x0004007cu, 0x00000008u, 0x00002604u, 0x00002603u, 0x00070041u, + 0x0000027cu, 0x00002606u, 0x000002d6u, 0x00000208u, 0x000022c8u, 0x00000282u, 0x0004003du, 0x0000022eu, + 0x00002607u, 0x00002606u, 0x00040071u, 0x00000006u, 0x00002608u, 0x00002607u, 0x0004007cu, 0x00000008u, + 0x00002609u, 0x00002608u, 0x0004007cu, 0x00000008u, 0x00002622u, 0x000025d2u, 0x00050051u, 0x00000008u, + 0x00002626u, 0x0000895eu, 0x00000000u, 0x0008000cu, 0x00000008u, 0x0000265cu, 0x00000001u, 0x0000002du, + 0x00002626u, 0x00000c5eu, 0x00000c19u, 0x000500b1u, 0x0000005du, 0x0000265eu, 0x000025fau, 0x00000274u, + 0x000300f7u, 0x0000266au, 0x00000000u, 0x000400fau, 0x0000265eu, 0x0000265fu, 0x00002663u, 0x000200f8u, + 0x00002663u, 0x00050082u, 0x00000008u, 0x00002665u, 0x00000382u, 0x000025fau, 0x000500c4u, 0x00000008u, + 0x00002667u, 0x0000265cu, 0x00002665u, 0x000500c3u, 0x00000008u, 0x00002669u, 0x00002667u, 0x0000055eu, + 0x000200f9u, 0x0000266au, 0x000200f8u, 0x0000265fu, 0x000500c3u, 0x00000008u, 0x00002662u, 0x0000265cu, + 0x000025fau, 0x000200f9u, 0x0000266au, 0x000200f8u, 0x0000266au, 0x000700f5u, 0x00000008u, 0x0000895fu, + 0x00002662u, 0x0000265fu, 0x00002669u, 0x00002663u, 0x000500c4u, 0x00000008u, 0x0000266cu, 0x00002622u, + 0x0000021du, 0x00050082u, 0x00000008u, 0x0000266eu, 0x0000895fu, 0x0000266cu, 0x0004007cu, 0x00000008u, + 0x0000262bu, 0x000025d8u, 0x00050051u, 0x00000008u, 0x0000262fu, 0x0000895eu, 0x00000001u, 0x0008000cu, + 0x00000008u, 0x00002673u, 0x00000001u, 0x0000002du, 0x0000262fu, 0x00000c5eu, 0x00000c19u, 0x000500b1u, + 0x0000005du, 0x00002675u, 0x00002604u, 0x00000274u, 0x000300f7u, 0x00002681u, 0x00000000u, 0x000400fau, + 0x00002675u, 0x00002676u, 0x0000267au, 0x000200f8u, 0x0000267au, 0x00050082u, 0x00000008u, 0x0000267cu, + 0x00000382u, 0x00002604u, 0x000500c4u, 0x00000008u, 0x0000267eu, 0x00002673u, 0x0000267cu, 0x000500c3u, + 0x00000008u, 0x00002680u, 0x0000267eu, 0x0000055eu, 0x000200f9u, 0x00002681u, 0x000200f8u, 0x00002676u, + 0x000500c3u, 0x00000008u, 0x00002679u, 0x00002673u, 0x00002604u, 0x000200f9u, 0x00002681u, 0x000200f8u, + 0x00002681u, 0x000700f5u, 0x00000008u, 0x00008961u, 0x00002679u, 0x00002676u, 0x00002680u, 0x0000267au, + 0x000500c4u, 0x00000008u, 0x00002683u, 0x0000262bu, 0x0000021du, 0x00050082u, 0x00000008u, 0x00002685u, + 0x00008961u, 0x00002683u, 0x00050050u, 0x0000005fu, 0x0000bde4u, 0x0000266eu, 0x00002685u, 0x000500c3u, + 0x0000005fu, 0x00002634u, 0x0000bde4u, 0x0000bdc9u, 0x00060041u, 0x00000cdeu, 0x00002635u, 0x00000cddu, + 0x00000208u, 0x0000021au, 0x0004003du, 0x00000008u, 0x00002636u, 0x00002635u, 0x000500aau, 0x0000005du, + 0x00002637u, 0x00002636u, 0x00000208u, 0x000300f7u, 0x00002657u, 0x00000000u, 0x000400fau, 0x00002637u, + 0x00002638u, 0x00002639u, 0x000200f8u, 0x00002639u, 0x000500aau, 0x0000005du, 0x0000263cu, 0x00002636u, + 0x00000217u, 0x000300f7u, 0x00002656u, 0x00000000u, 0x000400fau, 0x0000263cu, 0x0000263du, 0x0000264eu, + 0x000200f8u, 0x0000264eu, 0x000500b1u, 0x0000005du, 0x00002835u, 0x00002521u, 0x0000021au, 0x000300f7u, + 0x0000283bu, 0x00000000u, 0x000400fau, 0x00002835u, 0x00002837u, 0x0000283bu, 0x000200f8u, 0x00002837u, + 0x000500abu, 0x0000005du, 0x0000283au, 0x000025ebu, 0x0000021au, 0x000200f9u, 0x0000283bu, 0x000200f8u, + 0x0000283bu, 0x000700f5u, 0x0000005du, 0x0000283cu, 0x00002835u, 0x0000264eu, 0x0000283au, 0x00002837u, + 0x000400a8u, 0x0000005du, 0x0000283eu, 0x00002251u, 0x000500a7u, 0x0000005du, 0x0000283fu, 0x0000283cu, + 0x0000283eu, 0x0007000cu, 0x00000008u, 0x00002842u, 0x00000001u, 0x00000027u, 0x000025ebu, 0x0000021au, + 0x000500aau, 0x0000005du, 0x00002845u, 0x000025ebu, 0x0000021du, 0x000500a6u, 0x0000005du, 0x00002848u, + 0x00002845u, 0x00002251u, 0x000600a9u, 0x00000008u, 0x00002849u, 0x00002848u, 0x0000114eu, 0x0000040fu, + 0x000300f7u, 0x0000292bu, 0x00000000u, 0x000400fau, 0x0000283fu, 0x0000284bu, 0x000028cau, 0x000200f8u, + 0x000028cau, 0x00050051u, 0x00000008u, 0x000028cdu, 0x00002634u, 0x00000000u, 0x00050080u, 0x00000008u, + 0x000028ceu, 0x000028cdu, 0x00002521u, 0x000500abu, 0x0000005du, 0x00002974u, 0x000025f5u, 0x00000208u, + 0x000300f7u, 0x0000298au, 0x00000000u, 0x000400fau, 0x00002974u, 0x00002975u, 0x0000298au, 0x000200f8u, + 0x00002975u, 0x000500c4u, 0x00000008u, 0x00002978u, 0x00000217u, 0x000025f5u, 0x000500c7u, 0x00000008u, + 0x0000297bu, 0x00002609u, 0x0000021au, 0x000500abu, 0x0000005du, 0x0000297cu, 0x0000297bu, 0x00000208u, + 0x000300f7u, 0x00002985u, 0x00000000u, 0x000400fau, 0x0000297cu, 0x0000297du, 0x00002985u, 0x000200f8u, + 0x0000297du, 0x000500c7u, 0x00000008u, 0x00002980u, 0x000028ceu, 0x00002978u, 0x00050082u, 0x00000008u, + 0x00002981u, 0x00002980u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00002982u, 0x00000001u, 0x0000002au, + 0x00002981u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00002984u, 0x000028ceu, 0x00002982u, 0x000200f9u, + 0x00002985u, 0x000200f8u, 0x00002985u, 0x000700f5u, 0x00000008u, 0x00008964u, 0x000028ceu, 0x00002975u, + 0x00002984u, 0x0000297du, 0x00050082u, 0x00000008u, 0x00002987u, 0x00002978u, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x00002989u, 0x00008964u, 0x00002987u, 0x000200f9u, 0x0000298au, 0x000200f8u, 0x0000298au, + 0x000700f5u, 0x00000008u, 0x00008965u, 0x000028ceu, 0x000028cau, 0x00002989u, 0x00002985u, 0x00050051u, + 0x00000008u, 0x000028d6u, 0x00002634u, 0x00000001u, 0x000500abu, 0x0000005du, 0x00002991u, 0x000025ffu, + 0x00000208u, 0x000300f7u, 0x000029a7u, 0x00000000u, 0x000400fau, 0x00002991u, 0x00002992u, 0x000029a7u, + 0x000200f8u, 0x00002992u, 0x000500c4u, 0x00000008u, 0x00002995u, 0x00000217u, 0x000025ffu, 0x000500c7u, + 0x00000008u, 0x00002998u, 0x00002609u, 0x00000263u, 0x000500abu, 0x0000005du, 0x00002999u, 0x00002998u, + 0x00000208u, 0x000300f7u, 0x000029a2u, 0x00000000u, 0x000400fau, 0x00002999u, 0x0000299au, 0x000029a2u, + 0x000200f8u, 0x0000299au, 0x000500c7u, 0x00000008u, 0x0000299du, 0x000028d6u, 0x00002995u, 0x00050082u, + 0x00000008u, 0x0000299eu, 0x0000299du, 0x00000217u, 0x0007000cu, 0x00000008u, 0x0000299fu, 0x00000001u, + 0x0000002au, 0x0000299eu, 0x00000208u, 0x000500c6u, 0x00000008u, 0x000029a1u, 0x000028d6u, 0x0000299fu, + 0x000200f9u, 0x000029a2u, 0x000200f8u, 0x000029a2u, 0x000700f5u, 0x00000008u, 0x00008968u, 0x000028d6u, + 0x00002992u, 0x000029a1u, 0x0000299au, 0x00050082u, 0x00000008u, 0x000029a4u, 0x00002995u, 0x00000217u, + 0x000500c7u, 0x00000008u, 0x000029a6u, 0x00008968u, 0x000029a4u, 0x000200f9u, 0x000029a7u, 0x000200f8u, + 0x000029a7u, 0x000700f5u, 0x00000008u, 0x00008969u, 0x000028d6u, 0x0000298au, 0x000029a6u, 0x000029a2u, + 0x0004007cu, 0x00000006u, 0x000028ddu, 0x00008969u, 0x00050084u, 0x00000006u, 0x000028deu, 0x000025e1u, + 0x000028ddu, 0x00050080u, 0x00000006u, 0x000028dfu, 0x000025deu, 0x000028deu, 0x00050084u, 0x00000006u, + 0x000028e1u, 0x000028dfu, 0x000003c9u, 0x000500c4u, 0x00000008u, 0x000028e4u, 0x00008965u, 0x00002842u, + 0x0004007cu, 0x00000006u, 0x000028e5u, 0x000028e4u, 0x00050080u, 0x00000006u, 0x000028e6u, 0x000028e1u, + 0x000028e5u, 0x000500c7u, 0x00000006u, 0x000028e7u, 0x000028e6u, 0x000011bbu, 0x000500c7u, 0x00000006u, + 0x000028eau, 0x000028ddu, 0x0000048au, 0x00050084u, 0x00000006u, 0x000028ebu, 0x000028eau, 0x00000360u, + 0x000500c6u, 0x00000006u, 0x000028edu, 0x000028e7u, 0x000028ebu, 0x000500c2u, 0x00000006u, 0x000028efu, + 0x000028edu, 0x000003c9u, 0x0004007cu, 0x00000006u, 0x000028f1u, 0x00002849u, 0x000500c7u, 0x00000006u, + 0x000028f3u, 0x000028efu, 0x000028f1u, 0x000500c6u, 0x00000006u, 0x000028f6u, 0x000028f3u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x000028f7u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000028f6u, + 0x0004003du, 0x00000230u, 0x000028f8u, 0x000028f7u, 0x00040071u, 0x00000006u, 0x000028f9u, 0x000028f8u, + 0x0004007cu, 0x00000008u, 0x000028fau, 0x000028f9u, 0x000300f7u, 0x0000292au, 0x00000000u, 0x000400fau, + 0x00002251u, 0x000028fcu, 0x0000292au, 0x000200f8u, 0x000028fcu, 0x000500aau, 0x0000005du, 0x000028ffu, + 0x000025ebu, 0x00000208u, 0x000300f7u, 0x00002921u, 0x00000000u, 0x000400fau, 0x000028ffu, 0x00002900u, + 0x00002913u, 0x000200f8u, 0x00002913u, 0x000500c7u, 0x00000006u, 0x00002915u, 0x000028edu, 0x000003c9u, + 0x00050084u, 0x00000006u, 0x00002916u, 0x00000706u, 0x00002915u, 0x00050082u, 0x00000006u, 0x00002917u, + 0x00000360u, 0x00002916u, 0x000500c3u, 0x00000008u, 0x00002919u, 0x000028fau, 0x00002917u, 0x000500c7u, + 0x00000008u, 0x0000291bu, 0x00002919u, 0x00000390u, 0x000500c4u, 0x00000008u, 0x0000291du, 0x0000291bu, + 0x0000021au, 0x00050080u, 0x00000008u, 0x00002920u, 0x0000291du, 0x00002521u, 0x000200f9u, 0x00002921u, + 0x000200f8u, 0x00002900u, 0x000500c7u, 0x00000006u, 0x00002902u, 0x000028edu, 0x00000490u, 0x00050084u, + 0x00000006u, 0x00002903u, 0x00000706u, 0x00002902u, 0x00050082u, 0x00000006u, 0x00002904u, 0x00001261u, + 0x00002903u, 0x000500c3u, 0x00000008u, 0x00002906u, 0x000028fau, 0x00002904u, 0x000500c7u, 0x00000008u, + 0x00002908u, 0x00002906u, 0x00000545u, 0x000500c4u, 0x00000008u, 0x0000290bu, 0x000025f0u, 0x00000220u, + 0x000500c5u, 0x00000008u, 0x0000290du, 0x00002908u, 0x0000290bu, 0x000500c4u, 0x00000008u, 0x0000290fu, + 0x0000290du, 0x0000021au, 0x00050080u, 0x00000008u, 0x00002912u, 0x0000290fu, 0x00002521u, 0x000200f9u, + 0x00002921u, 0x000200f8u, 0x00002921u, 0x000700f5u, 0x00000008u, 0x0000896au, 0x00002912u, 0x00002900u, + 0x00002920u, 0x00002913u, 0x000500c5u, 0x00000008u, 0x00002924u, 0x0000896au, 0x00001284u, 0x000500c6u, + 0x00000008u, 0x00002925u, 0x00002924u, 0x00000217u, 0x00080041u, 0x00000275u, 0x00002926u, 0x00000f48u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00002925u, 0x0004003du, 0x00000230u, 0x00002927u, 0x00002926u, + 0x00040071u, 0x00000006u, 0x00002928u, 0x00002927u, 0x0004007cu, 0x00000008u, 0x00002929u, 0x00002928u, + 0x000200f9u, 0x0000292au, 0x000200f8u, 0x0000292au, 0x000700f5u, 0x00000008u, 0x00008976u, 0x000028fau, + 0x000029a7u, 0x00002929u, 0x00002921u, 0x000200f9u, 0x0000292bu, 0x000200f8u, 0x0000284bu, 0x00050084u, + 0x00000008u, 0x0000284du, 0x0000021au, 0x00002521u, 0x00050051u, 0x00000008u, 0x0000284fu, 0x00002634u, + 0x00000000u, 0x00050080u, 0x00000008u, 0x00002850u, 0x0000284fu, 0x0000284du, 0x00050050u, 0x0000005fu, + 0x00002932u, 0x00002850u, 0x00002850u, 0x00050080u, 0x0000005fu, 0x00002933u, 0x00002932u, 0x00000de9u, + 0x000500abu, 0x0000005du, 0x00002936u, 0x000025f5u, 0x00000208u, 0x000300f7u, 0x00002950u, 0x00000000u, + 0x000400fau, 0x00002936u, 0x00002937u, 0x00002950u, 0x000200f8u, 0x00002937u, 0x000500c4u, 0x00000008u, + 0x0000293au, 0x00000217u, 0x000025f5u, 0x000500c7u, 0x00000008u, 0x0000293du, 0x00002609u, 0x0000021au, + 0x000500abu, 0x0000005du, 0x0000293eu, 0x0000293du, 0x00000208u, 0x000300f7u, 0x0000294au, 0x00000000u, + 0x000400fau, 0x0000293eu, 0x0000293fu, 0x0000294au, 0x000200f8u, 0x0000293fu, 0x00050050u, 0x0000005fu, + 0x00002942u, 0x0000293au, 0x0000293au, 0x000500c7u, 0x0000005fu, 0x00002943u, 0x00002933u, 0x00002942u, + 0x00050082u, 0x0000005fu, 0x00002945u, 0x00002943u, 0x0000bdc7u, 0x0007000cu, 0x0000005fu, 0x00002947u, + 0x00000001u, 0x0000002au, 0x00002945u, 0x00000c45u, 0x000500c6u, 0x0000005fu, 0x00002949u, 0x00002933u, + 0x00002947u, 0x000200f9u, 0x0000294au, 0x000200f8u, 0x0000294au, 0x000700f5u, 0x0000005fu, 0x0000896bu, + 0x00002933u, 0x00002937u, 0x00002949u, 0x0000293fu, 0x00050082u, 0x00000008u, 0x0000294cu, 0x0000293au, + 0x00000217u, 0x00050050u, 0x0000005fu, 0x0000294eu, 0x0000294cu, 0x0000294cu, 0x000500c7u, 0x0000005fu, + 0x0000294fu, 0x0000896bu, 0x0000294eu, 0x000200f9u, 0x00002950u, 0x000200f8u, 0x00002950u, 0x000700f5u, + 0x0000005fu, 0x0000896cu, 0x00002933u, 0x0000284bu, 0x0000294fu, 0x0000294au, 0x00050051u, 0x00000008u, + 0x00002858u, 0x00002634u, 0x00000001u, 0x000500abu, 0x0000005du, 0x00002957u, 0x000025ffu, 0x00000208u, + 0x000300f7u, 0x0000296du, 0x00000000u, 0x000400fau, 0x00002957u, 0x00002958u, 0x0000296du, 0x000200f8u, + 0x00002958u, 0x000500c4u, 0x00000008u, 0x0000295bu, 0x00000217u, 0x000025ffu, 0x000500c7u, 0x00000008u, + 0x0000295eu, 0x00002609u, 0x00000263u, 0x000500abu, 0x0000005du, 0x0000295fu, 0x0000295eu, 0x00000208u, + 0x000300f7u, 0x00002968u, 0x00000000u, 0x000400fau, 0x0000295fu, 0x00002960u, 0x00002968u, 0x000200f8u, + 0x00002960u, 0x000500c7u, 0x00000008u, 0x00002963u, 0x00002858u, 0x0000295bu, 0x00050082u, 0x00000008u, + 0x00002964u, 0x00002963u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00002965u, 0x00000001u, 0x0000002au, + 0x00002964u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00002967u, 0x00002858u, 0x00002965u, 0x000200f9u, + 0x00002968u, 0x000200f8u, 0x00002968u, 0x000700f5u, 0x00000008u, 0x0000896fu, 0x00002858u, 0x00002958u, + 0x00002967u, 0x00002960u, 0x00050082u, 0x00000008u, 0x0000296au, 0x0000295bu, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x0000296cu, 0x0000896fu, 0x0000296au, 0x000200f9u, 0x0000296du, 0x000200f8u, 0x0000296du, + 0x000700f5u, 0x00000008u, 0x00008970u, 0x00002858u, 0x00002950u, 0x0000296cu, 0x00002968u, 0x0004007cu, + 0x00000006u, 0x0000285fu, 0x00008970u, 0x00050084u, 0x00000006u, 0x00002860u, 0x000025e1u, 0x0000285fu, + 0x00050080u, 0x00000006u, 0x00002861u, 0x000025deu, 0x00002860u, 0x00050084u, 0x00000006u, 0x00002863u, + 0x00002861u, 0x000003c9u, 0x00050050u, 0x0000005fu, 0x00002866u, 0x00002842u, 0x00002842u, 0x000500c4u, + 0x0000005fu, 0x00002867u, 0x0000896cu, 0x00002866u, 0x0004007cu, 0x000000a6u, 0x00002868u, 0x00002867u, + 0x00050050u, 0x000000a6u, 0x00002869u, 0x00002863u, 0x00002863u, 0x00050080u, 0x000000a6u, 0x0000286au, + 0x00002869u, 0x00002868u, 0x000500c7u, 0x000000a6u, 0x0000286cu, 0x0000286au, 0x0000bdcbu, 0x000500c7u, + 0x00000006u, 0x0000286fu, 0x0000285fu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00002870u, 0x0000286fu, + 0x00000360u, 0x00050050u, 0x000000a6u, 0x00002872u, 0x00002870u, 0x00002870u, 0x000500c6u, 0x000000a6u, + 0x00002873u, 0x0000286cu, 0x00002872u, 0x000500c2u, 0x000000a6u, 0x00002876u, 0x00002873u, 0x0000bdccu, + 0x0004007cu, 0x00000006u, 0x00002878u, 0x00002849u, 0x00050050u, 0x000000a6u, 0x0000287au, 0x00002878u, + 0x00002878u, 0x000500c7u, 0x000000a6u, 0x0000287bu, 0x00002876u, 0x0000287au, 0x00050051u, 0x00000006u, + 0x0000287eu, 0x0000287bu, 0x00000000u, 0x000500c6u, 0x00000006u, 0x0000287fu, 0x0000287eu, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00002880u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000287fu, + 0x0004003du, 0x00000230u, 0x00002881u, 0x00002880u, 0x00040071u, 0x00000006u, 0x00002882u, 0x00002881u, + 0x0004007cu, 0x00000008u, 0x00002883u, 0x00002882u, 0x00050051u, 0x00000006u, 0x00002886u, 0x0000287bu, + 0x00000001u, 0x000500c6u, 0x00000006u, 0x00002887u, 0x00002886u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x00002888u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00002887u, 0x0004003du, 0x00000230u, + 0x00002889u, 0x00002888u, 0x00040071u, 0x00000006u, 0x0000288au, 0x00002889u, 0x0004007cu, 0x00000008u, + 0x0000288bu, 0x0000288au, 0x000500aau, 0x0000005du, 0x0000288eu, 0x000025ebu, 0x00000217u, 0x000300f7u, + 0x000028c5u, 0x00000000u, 0x000400fau, 0x0000288eu, 0x0000288fu, 0x000028a4u, 0x000200f8u, 0x000028a4u, + 0x000500aau, 0x0000005du, 0x000028a7u, 0x000025ebu, 0x00000208u, 0x000300f7u, 0x000028c4u, 0x00000000u, + 0x000400fau, 0x000028a7u, 0x000028a8u, 0x000028bfu, 0x000200f8u, 0x000028bfu, 0x000500c3u, 0x00000008u, + 0x000028c1u, 0x00002883u, 0x00000263u, 0x000500c3u, 0x00000008u, 0x000028c3u, 0x0000288bu, 0x00000263u, + 0x000200f9u, 0x000028c4u, 0x000200f8u, 0x000028a8u, 0x00050051u, 0x00000006u, 0x000028aau, 0x00002873u, + 0x00000000u, 0x000500c7u, 0x00000006u, 0x000028abu, 0x000028aau, 0x00000490u, 0x0004007cu, 0x00000008u, + 0x000028acu, 0x000028abu, 0x00050084u, 0x00000008u, 0x000028adu, 0x00000220u, 0x000028acu, 0x00050082u, + 0x00000008u, 0x000028aeu, 0x0000027bu, 0x000028adu, 0x000500c3u, 0x00000008u, 0x000028b0u, 0x00002883u, + 0x000028aeu, 0x00050051u, 0x00000006u, 0x000028b2u, 0x00002873u, 0x00000001u, 0x000500c7u, 0x00000006u, + 0x000028b3u, 0x000028b2u, 0x00000490u, 0x0004007cu, 0x00000008u, 0x000028b4u, 0x000028b3u, 0x00050084u, + 0x00000008u, 0x000028b5u, 0x00000220u, 0x000028b4u, 0x00050082u, 0x00000008u, 0x000028b6u, 0x0000027bu, + 0x000028b5u, 0x000500c3u, 0x00000008u, 0x000028b8u, 0x0000288bu, 0x000028b6u, 0x000500c7u, 0x00000008u, + 0x000028bau, 0x000028b0u, 0x00000545u, 0x00050084u, 0x00000008u, 0x000028bbu, 0x000028bau, 0x00000427u, + 0x000500c7u, 0x00000008u, 0x000028bdu, 0x000028b8u, 0x00000545u, 0x00050084u, 0x00000008u, 0x000028beu, + 0x000028bdu, 0x00000427u, 0x000200f9u, 0x000028c4u, 0x000200f8u, 0x000028c4u, 0x000700f5u, 0x00000008u, + 0x00008974u, 0x000028beu, 0x000028a8u, 0x000028c3u, 0x000028bfu, 0x000700f5u, 0x00000008u, 0x00008972u, + 0x000028bbu, 0x000028a8u, 0x000028c1u, 0x000028bfu, 0x000200f9u, 0x000028c5u, 0x000200f8u, 0x0000288fu, + 0x00050051u, 0x00000006u, 0x00002891u, 0x00002873u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x00002892u, + 0x00002891u, 0x000003c9u, 0x0004007cu, 0x00000008u, 0x00002893u, 0x00002892u, 0x00050084u, 0x00000008u, + 0x00002894u, 0x00000220u, 0x00002893u, 0x00050082u, 0x00000008u, 0x00002895u, 0x00000263u, 0x00002894u, + 0x000500c3u, 0x00000008u, 0x00002897u, 0x00002883u, 0x00002895u, 0x00050051u, 0x00000006u, 0x00002899u, + 0x00002873u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x0000289au, 0x00002899u, 0x000003c9u, 0x0004007cu, + 0x00000008u, 0x0000289bu, 0x0000289au, 0x00050084u, 0x00000008u, 0x0000289cu, 0x00000220u, 0x0000289bu, + 0x00050082u, 0x00000008u, 0x0000289du, 0x00000263u, 0x0000289cu, 0x000500c3u, 0x00000008u, 0x0000289fu, + 0x0000288bu, 0x0000289du, 0x000500c7u, 0x00000008u, 0x000028a1u, 0x00002897u, 0x00000390u, 0x000500c7u, + 0x00000008u, 0x000028a3u, 0x0000289fu, 0x00000390u, 0x000200f9u, 0x000028c5u, 0x000200f8u, 0x000028c5u, + 0x000700f5u, 0x00000008u, 0x00008973u, 0x000028a3u, 0x0000288fu, 0x00008974u, 0x000028c4u, 0x000700f5u, + 0x00000008u, 0x00008971u, 0x000028a1u, 0x0000288fu, 0x00008972u, 0x000028c4u, 0x000500c4u, 0x00000008u, + 0x000028c7u, 0x00008971u, 0x00000263u, 0x000500c5u, 0x00000008u, 0x000028c9u, 0x000028c7u, 0x00008973u, + 0x000200f9u, 0x0000292bu, 0x000200f8u, 0x0000292bu, 0x000700f5u, 0x00000008u, 0x00008975u, 0x000028c9u, + 0x000028c5u, 0x00008976u, 0x0000292au, 0x000200f9u, 0x00002656u, 0x000200f8u, 0x0000263du, 0x000500c3u, + 0x00000008u, 0x0000263fu, 0x00002521u, 0x00000217u, 0x000500b1u, 0x0000005du, 0x000026a4u, 0x0000263fu, + 0x0000021au, 0x000300f7u, 0x000026aau, 0x00000000u, 0x000400fau, 0x000026a4u, 0x000026a6u, 0x000026aau, + 0x000200f8u, 0x000026a6u, 0x000500abu, 0x0000005du, 0x000026a9u, 0x000025ebu, 0x0000021au, 0x000200f9u, + 0x000026aau, 0x000200f8u, 0x000026aau, 0x000700f5u, 0x0000005du, 0x000026abu, 0x000026a4u, 0x0000263du, + 0x000026a9u, 0x000026a6u, 0x000400a8u, 0x0000005du, 0x000026adu, 0x00002251u, 0x000500a7u, 0x0000005du, + 0x000026aeu, 0x000026abu, 0x000026adu, 0x0007000cu, 0x00000008u, 0x000026b1u, 0x00000001u, 0x00000027u, + 0x000025ebu, 0x0000021au, 0x000500aau, 0x0000005du, 0x000026b4u, 0x000025ebu, 0x0000021du, 0x000500a6u, + 0x0000005du, 0x000026b7u, 0x000026b4u, 0x00002251u, 0x000600a9u, 0x00000008u, 0x000026b8u, 0x000026b7u, + 0x0000114eu, 0x0000040fu, 0x000300f7u, 0x0000279au, 0x00000000u, 0x000400fau, 0x000026aeu, 0x000026bau, + 0x00002739u, 0x000200f8u, 0x00002739u, 0x00050051u, 0x00000008u, 0x0000273cu, 0x00002634u, 0x00000000u, + 0x00050080u, 0x00000008u, 0x0000273du, 0x0000273cu, 0x0000263fu, 0x000500abu, 0x0000005du, 0x000027e3u, + 0x000025f5u, 0x00000208u, 0x000300f7u, 0x000027f9u, 0x00000000u, 0x000400fau, 0x000027e3u, 0x000027e4u, + 0x000027f9u, 0x000200f8u, 0x000027e4u, 0x000500c4u, 0x00000008u, 0x000027e7u, 0x00000217u, 0x000025f5u, + 0x000500c7u, 0x00000008u, 0x000027eau, 0x00002609u, 0x0000021au, 0x000500abu, 0x0000005du, 0x000027ebu, + 0x000027eau, 0x00000208u, 0x000300f7u, 0x000027f4u, 0x00000000u, 0x000400fau, 0x000027ebu, 0x000027ecu, + 0x000027f4u, 0x000200f8u, 0x000027ecu, 0x000500c7u, 0x00000008u, 0x000027efu, 0x0000273du, 0x000027e7u, + 0x00050082u, 0x00000008u, 0x000027f0u, 0x000027efu, 0x00000217u, 0x0007000cu, 0x00000008u, 0x000027f1u, + 0x00000001u, 0x0000002au, 0x000027f0u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x000027f3u, 0x0000273du, + 0x000027f1u, 0x000200f9u, 0x000027f4u, 0x000200f8u, 0x000027f4u, 0x000700f5u, 0x00000008u, 0x00008978u, + 0x0000273du, 0x000027e4u, 0x000027f3u, 0x000027ecu, 0x00050082u, 0x00000008u, 0x000027f6u, 0x000027e7u, + 0x00000217u, 0x000500c7u, 0x00000008u, 0x000027f8u, 0x00008978u, 0x000027f6u, 0x000200f9u, 0x000027f9u, + 0x000200f8u, 0x000027f9u, 0x000700f5u, 0x00000008u, 0x00008979u, 0x0000273du, 0x00002739u, 0x000027f8u, + 0x000027f4u, 0x00050051u, 0x00000008u, 0x00002745u, 0x00002634u, 0x00000001u, 0x000500abu, 0x0000005du, + 0x00002800u, 0x000025ffu, 0x00000208u, 0x000300f7u, 0x00002816u, 0x00000000u, 0x000400fau, 0x00002800u, + 0x00002801u, 0x00002816u, 0x000200f8u, 0x00002801u, 0x000500c4u, 0x00000008u, 0x00002804u, 0x00000217u, + 0x000025ffu, 0x000500c7u, 0x00000008u, 0x00002807u, 0x00002609u, 0x00000263u, 0x000500abu, 0x0000005du, + 0x00002808u, 0x00002807u, 0x00000208u, 0x000300f7u, 0x00002811u, 0x00000000u, 0x000400fau, 0x00002808u, + 0x00002809u, 0x00002811u, 0x000200f8u, 0x00002809u, 0x000500c7u, 0x00000008u, 0x0000280cu, 0x00002745u, + 0x00002804u, 0x00050082u, 0x00000008u, 0x0000280du, 0x0000280cu, 0x00000217u, 0x0007000cu, 0x00000008u, + 0x0000280eu, 0x00000001u, 0x0000002au, 0x0000280du, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00002810u, + 0x00002745u, 0x0000280eu, 0x000200f9u, 0x00002811u, 0x000200f8u, 0x00002811u, 0x000700f5u, 0x00000008u, + 0x0000897cu, 0x00002745u, 0x00002801u, 0x00002810u, 0x00002809u, 0x00050082u, 0x00000008u, 0x00002813u, + 0x00002804u, 0x00000217u, 0x000500c7u, 0x00000008u, 0x00002815u, 0x0000897cu, 0x00002813u, 0x000200f9u, + 0x00002816u, 0x000200f8u, 0x00002816u, 0x000700f5u, 0x00000008u, 0x0000897du, 0x00002745u, 0x000027f9u, + 0x00002815u, 0x00002811u, 0x0004007cu, 0x00000006u, 0x0000274cu, 0x0000897du, 0x00050084u, 0x00000006u, + 0x0000274du, 0x000025e1u, 0x0000274cu, 0x00050080u, 0x00000006u, 0x0000274eu, 0x000025deu, 0x0000274du, + 0x00050084u, 0x00000006u, 0x00002750u, 0x0000274eu, 0x000003c9u, 0x000500c4u, 0x00000008u, 0x00002753u, + 0x00008979u, 0x000026b1u, 0x0004007cu, 0x00000006u, 0x00002754u, 0x00002753u, 0x00050080u, 0x00000006u, + 0x00002755u, 0x00002750u, 0x00002754u, 0x000500c7u, 0x00000006u, 0x00002756u, 0x00002755u, 0x000011bbu, + 0x000500c7u, 0x00000006u, 0x00002759u, 0x0000274cu, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000275au, + 0x00002759u, 0x00000360u, 0x000500c6u, 0x00000006u, 0x0000275cu, 0x00002756u, 0x0000275au, 0x000500c2u, + 0x00000006u, 0x0000275eu, 0x0000275cu, 0x000003c9u, 0x0004007cu, 0x00000006u, 0x00002760u, 0x000026b8u, + 0x000500c7u, 0x00000006u, 0x00002762u, 0x0000275eu, 0x00002760u, 0x000500c6u, 0x00000006u, 0x00002765u, + 0x00002762u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00002766u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00002765u, 0x0004003du, 0x00000230u, 0x00002767u, 0x00002766u, 0x00040071u, 0x00000006u, + 0x00002768u, 0x00002767u, 0x0004007cu, 0x00000008u, 0x00002769u, 0x00002768u, 0x000300f7u, 0x00002799u, + 0x00000000u, 0x000400fau, 0x00002251u, 0x0000276bu, 0x00002799u, 0x000200f8u, 0x0000276bu, 0x000500aau, + 0x0000005du, 0x0000276eu, 0x000025ebu, 0x00000208u, 0x000300f7u, 0x00002790u, 0x00000000u, 0x000400fau, + 0x0000276eu, 0x0000276fu, 0x00002782u, 0x000200f8u, 0x00002782u, 0x000500c7u, 0x00000006u, 0x00002784u, + 0x0000275cu, 0x000003c9u, 0x00050084u, 0x00000006u, 0x00002785u, 0x00000706u, 0x00002784u, 0x00050082u, + 0x00000006u, 0x00002786u, 0x00000360u, 0x00002785u, 0x000500c3u, 0x00000008u, 0x00002788u, 0x00002769u, + 0x00002786u, 0x000500c7u, 0x00000008u, 0x0000278au, 0x00002788u, 0x00000390u, 0x000500c4u, 0x00000008u, + 0x0000278cu, 0x0000278au, 0x0000021au, 0x00050080u, 0x00000008u, 0x0000278fu, 0x0000278cu, 0x0000263fu, + 0x000200f9u, 0x00002790u, 0x000200f8u, 0x0000276fu, 0x000500c7u, 0x00000006u, 0x00002771u, 0x0000275cu, + 0x00000490u, 0x00050084u, 0x00000006u, 0x00002772u, 0x00000706u, 0x00002771u, 0x00050082u, 0x00000006u, + 0x00002773u, 0x00001261u, 0x00002772u, 0x000500c3u, 0x00000008u, 0x00002775u, 0x00002769u, 0x00002773u, + 0x000500c7u, 0x00000008u, 0x00002777u, 0x00002775u, 0x00000545u, 0x000500c4u, 0x00000008u, 0x0000277au, + 0x000025f0u, 0x00000220u, 0x000500c5u, 0x00000008u, 0x0000277cu, 0x00002777u, 0x0000277au, 0x000500c4u, + 0x00000008u, 0x0000277eu, 0x0000277cu, 0x0000021au, 0x00050080u, 0x00000008u, 0x00002781u, 0x0000277eu, + 0x0000263fu, 0x000200f9u, 0x00002790u, 0x000200f8u, 0x00002790u, 0x000700f5u, 0x00000008u, 0x0000897eu, + 0x00002781u, 0x0000276fu, 0x0000278fu, 0x00002782u, 0x000500c5u, 0x00000008u, 0x00002793u, 0x0000897eu, + 0x00001284u, 0x000500c6u, 0x00000008u, 0x00002794u, 0x00002793u, 0x00000217u, 0x00080041u, 0x00000275u, + 0x00002795u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00002794u, 0x0004003du, 0x00000230u, + 0x00002796u, 0x00002795u, 0x00040071u, 0x00000006u, 0x00002797u, 0x00002796u, 0x0004007cu, 0x00000008u, + 0x00002798u, 0x00002797u, 0x000200f9u, 0x00002799u, 0x000200f8u, 0x00002799u, 0x000700f5u, 0x00000008u, + 0x0000898au, 0x00002769u, 0x00002816u, 0x00002798u, 0x00002790u, 0x000200f9u, 0x0000279au, 0x000200f8u, + 0x000026bau, 0x00050084u, 0x00000008u, 0x000026bcu, 0x0000021au, 0x0000263fu, 0x00050051u, 0x00000008u, + 0x000026beu, 0x00002634u, 0x00000000u, 0x00050080u, 0x00000008u, 0x000026bfu, 0x000026beu, 0x000026bcu, + 0x00050050u, 0x0000005fu, 0x000027a1u, 0x000026bfu, 0x000026bfu, 0x00050080u, 0x0000005fu, 0x000027a2u, + 0x000027a1u, 0x00000de9u, 0x000500abu, 0x0000005du, 0x000027a5u, 0x000025f5u, 0x00000208u, 0x000300f7u, + 0x000027bfu, 0x00000000u, 0x000400fau, 0x000027a5u, 0x000027a6u, 0x000027bfu, 0x000200f8u, 0x000027a6u, + 0x000500c4u, 0x00000008u, 0x000027a9u, 0x00000217u, 0x000025f5u, 0x000500c7u, 0x00000008u, 0x000027acu, + 0x00002609u, 0x0000021au, 0x000500abu, 0x0000005du, 0x000027adu, 0x000027acu, 0x00000208u, 0x000300f7u, + 0x000027b9u, 0x00000000u, 0x000400fau, 0x000027adu, 0x000027aeu, 0x000027b9u, 0x000200f8u, 0x000027aeu, + 0x00050050u, 0x0000005fu, 0x000027b1u, 0x000027a9u, 0x000027a9u, 0x000500c7u, 0x0000005fu, 0x000027b2u, + 0x000027a2u, 0x000027b1u, 0x00050082u, 0x0000005fu, 0x000027b4u, 0x000027b2u, 0x0000bdc7u, 0x0007000cu, + 0x0000005fu, 0x000027b6u, 0x00000001u, 0x0000002au, 0x000027b4u, 0x00000c45u, 0x000500c6u, 0x0000005fu, + 0x000027b8u, 0x000027a2u, 0x000027b6u, 0x000200f9u, 0x000027b9u, 0x000200f8u, 0x000027b9u, 0x000700f5u, + 0x0000005fu, 0x0000897fu, 0x000027a2u, 0x000027a6u, 0x000027b8u, 0x000027aeu, 0x00050082u, 0x00000008u, + 0x000027bbu, 0x000027a9u, 0x00000217u, 0x00050050u, 0x0000005fu, 0x000027bdu, 0x000027bbu, 0x000027bbu, + 0x000500c7u, 0x0000005fu, 0x000027beu, 0x0000897fu, 0x000027bdu, 0x000200f9u, 0x000027bfu, 0x000200f8u, + 0x000027bfu, 0x000700f5u, 0x0000005fu, 0x00008980u, 0x000027a2u, 0x000026bau, 0x000027beu, 0x000027b9u, + 0x00050051u, 0x00000008u, 0x000026c7u, 0x00002634u, 0x00000001u, 0x000500abu, 0x0000005du, 0x000027c6u, + 0x000025ffu, 0x00000208u, 0x000300f7u, 0x000027dcu, 0x00000000u, 0x000400fau, 0x000027c6u, 0x000027c7u, + 0x000027dcu, 0x000200f8u, 0x000027c7u, 0x000500c4u, 0x00000008u, 0x000027cau, 0x00000217u, 0x000025ffu, + 0x000500c7u, 0x00000008u, 0x000027cdu, 0x00002609u, 0x00000263u, 0x000500abu, 0x0000005du, 0x000027ceu, + 0x000027cdu, 0x00000208u, 0x000300f7u, 0x000027d7u, 0x00000000u, 0x000400fau, 0x000027ceu, 0x000027cfu, + 0x000027d7u, 0x000200f8u, 0x000027cfu, 0x000500c7u, 0x00000008u, 0x000027d2u, 0x000026c7u, 0x000027cau, + 0x00050082u, 0x00000008u, 0x000027d3u, 0x000027d2u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x000027d4u, + 0x00000001u, 0x0000002au, 0x000027d3u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x000027d6u, 0x000026c7u, + 0x000027d4u, 0x000200f9u, 0x000027d7u, 0x000200f8u, 0x000027d7u, 0x000700f5u, 0x00000008u, 0x00008983u, + 0x000026c7u, 0x000027c7u, 0x000027d6u, 0x000027cfu, 0x00050082u, 0x00000008u, 0x000027d9u, 0x000027cau, + 0x00000217u, 0x000500c7u, 0x00000008u, 0x000027dbu, 0x00008983u, 0x000027d9u, 0x000200f9u, 0x000027dcu, + 0x000200f8u, 0x000027dcu, 0x000700f5u, 0x00000008u, 0x00008984u, 0x000026c7u, 0x000027bfu, 0x000027dbu, + 0x000027d7u, 0x0004007cu, 0x00000006u, 0x000026ceu, 0x00008984u, 0x00050084u, 0x00000006u, 0x000026cfu, + 0x000025e1u, 0x000026ceu, 0x00050080u, 0x00000006u, 0x000026d0u, 0x000025deu, 0x000026cfu, 0x00050084u, + 0x00000006u, 0x000026d2u, 0x000026d0u, 0x000003c9u, 0x00050050u, 0x0000005fu, 0x000026d5u, 0x000026b1u, + 0x000026b1u, 0x000500c4u, 0x0000005fu, 0x000026d6u, 0x00008980u, 0x000026d5u, 0x0004007cu, 0x000000a6u, + 0x000026d7u, 0x000026d6u, 0x00050050u, 0x000000a6u, 0x000026d8u, 0x000026d2u, 0x000026d2u, 0x00050080u, + 0x000000a6u, 0x000026d9u, 0x000026d8u, 0x000026d7u, 0x000500c7u, 0x000000a6u, 0x000026dbu, 0x000026d9u, + 0x0000bdcbu, 0x000500c7u, 0x00000006u, 0x000026deu, 0x000026ceu, 0x0000048au, 0x00050084u, 0x00000006u, + 0x000026dfu, 0x000026deu, 0x00000360u, 0x00050050u, 0x000000a6u, 0x000026e1u, 0x000026dfu, 0x000026dfu, + 0x000500c6u, 0x000000a6u, 0x000026e2u, 0x000026dbu, 0x000026e1u, 0x000500c2u, 0x000000a6u, 0x000026e5u, + 0x000026e2u, 0x0000bdccu, 0x0004007cu, 0x00000006u, 0x000026e7u, 0x000026b8u, 0x00050050u, 0x000000a6u, + 0x000026e9u, 0x000026e7u, 0x000026e7u, 0x000500c7u, 0x000000a6u, 0x000026eau, 0x000026e5u, 0x000026e9u, + 0x00050051u, 0x00000006u, 0x000026edu, 0x000026eau, 0x00000000u, 0x000500c6u, 0x00000006u, 0x000026eeu, + 0x000026edu, 0x0000048au, 0x00080041u, 0x00000275u, 0x000026efu, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x000026eeu, 0x0004003du, 0x00000230u, 0x000026f0u, 0x000026efu, 0x00040071u, 0x00000006u, + 0x000026f1u, 0x000026f0u, 0x0004007cu, 0x00000008u, 0x000026f2u, 0x000026f1u, 0x00050051u, 0x00000006u, + 0x000026f5u, 0x000026eau, 0x00000001u, 0x000500c6u, 0x00000006u, 0x000026f6u, 0x000026f5u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x000026f7u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000026f6u, + 0x0004003du, 0x00000230u, 0x000026f8u, 0x000026f7u, 0x00040071u, 0x00000006u, 0x000026f9u, 0x000026f8u, + 0x0004007cu, 0x00000008u, 0x000026fau, 0x000026f9u, 0x000500aau, 0x0000005du, 0x000026fdu, 0x000025ebu, + 0x00000217u, 0x000300f7u, 0x00002734u, 0x00000000u, 0x000400fau, 0x000026fdu, 0x000026feu, 0x00002713u, + 0x000200f8u, 0x00002713u, 0x000500aau, 0x0000005du, 0x00002716u, 0x000025ebu, 0x00000208u, 0x000300f7u, + 0x00002733u, 0x00000000u, 0x000400fau, 0x00002716u, 0x00002717u, 0x0000272eu, 0x000200f8u, 0x0000272eu, + 0x000500c3u, 0x00000008u, 0x00002730u, 0x000026f2u, 0x00000263u, 0x000500c3u, 0x00000008u, 0x00002732u, + 0x000026fau, 0x00000263u, 0x000200f9u, 0x00002733u, 0x000200f8u, 0x00002717u, 0x00050051u, 0x00000006u, + 0x00002719u, 0x000026e2u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x0000271au, 0x00002719u, 0x00000490u, + 0x0004007cu, 0x00000008u, 0x0000271bu, 0x0000271au, 0x00050084u, 0x00000008u, 0x0000271cu, 0x00000220u, + 0x0000271bu, 0x00050082u, 0x00000008u, 0x0000271du, 0x0000027bu, 0x0000271cu, 0x000500c3u, 0x00000008u, + 0x0000271fu, 0x000026f2u, 0x0000271du, 0x00050051u, 0x00000006u, 0x00002721u, 0x000026e2u, 0x00000001u, + 0x000500c7u, 0x00000006u, 0x00002722u, 0x00002721u, 0x00000490u, 0x0004007cu, 0x00000008u, 0x00002723u, + 0x00002722u, 0x00050084u, 0x00000008u, 0x00002724u, 0x00000220u, 0x00002723u, 0x00050082u, 0x00000008u, + 0x00002725u, 0x0000027bu, 0x00002724u, 0x000500c3u, 0x00000008u, 0x00002727u, 0x000026fau, 0x00002725u, + 0x000500c7u, 0x00000008u, 0x00002729u, 0x0000271fu, 0x00000545u, 0x00050084u, 0x00000008u, 0x0000272au, + 0x00002729u, 0x00000427u, 0x000500c7u, 0x00000008u, 0x0000272cu, 0x00002727u, 0x00000545u, 0x00050084u, + 0x00000008u, 0x0000272du, 0x0000272cu, 0x00000427u, 0x000200f9u, 0x00002733u, 0x000200f8u, 0x00002733u, + 0x000700f5u, 0x00000008u, 0x00008988u, 0x0000272du, 0x00002717u, 0x00002732u, 0x0000272eu, 0x000700f5u, + 0x00000008u, 0x00008986u, 0x0000272au, 0x00002717u, 0x00002730u, 0x0000272eu, 0x000200f9u, 0x00002734u, + 0x000200f8u, 0x000026feu, 0x00050051u, 0x00000006u, 0x00002700u, 0x000026e2u, 0x00000000u, 0x000500c7u, + 0x00000006u, 0x00002701u, 0x00002700u, 0x000003c9u, 0x0004007cu, 0x00000008u, 0x00002702u, 0x00002701u, + 0x00050084u, 0x00000008u, 0x00002703u, 0x00000220u, 0x00002702u, 0x00050082u, 0x00000008u, 0x00002704u, + 0x00000263u, 0x00002703u, 0x000500c3u, 0x00000008u, 0x00002706u, 0x000026f2u, 0x00002704u, 0x00050051u, + 0x00000006u, 0x00002708u, 0x000026e2u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x00002709u, 0x00002708u, + 0x000003c9u, 0x0004007cu, 0x00000008u, 0x0000270au, 0x00002709u, 0x00050084u, 0x00000008u, 0x0000270bu, + 0x00000220u, 0x0000270au, 0x00050082u, 0x00000008u, 0x0000270cu, 0x00000263u, 0x0000270bu, 0x000500c3u, + 0x00000008u, 0x0000270eu, 0x000026fau, 0x0000270cu, 0x000500c7u, 0x00000008u, 0x00002710u, 0x00002706u, + 0x00000390u, 0x000500c7u, 0x00000008u, 0x00002712u, 0x0000270eu, 0x00000390u, 0x000200f9u, 0x00002734u, + 0x000200f8u, 0x00002734u, 0x000700f5u, 0x00000008u, 0x00008987u, 0x00002712u, 0x000026feu, 0x00008988u, + 0x00002733u, 0x000700f5u, 0x00000008u, 0x00008985u, 0x00002710u, 0x000026feu, 0x00008986u, 0x00002733u, + 0x000500c4u, 0x00000008u, 0x00002736u, 0x00008985u, 0x00000263u, 0x000500c5u, 0x00000008u, 0x00002738u, + 0x00002736u, 0x00008987u, 0x000200f9u, 0x0000279au, 0x000200f8u, 0x0000279au, 0x000700f5u, 0x00000008u, + 0x00008989u, 0x00002738u, 0x00002734u, 0x0000898au, 0x00002799u, 0x000500c7u, 0x00000008u, 0x00002647u, + 0x00002521u, 0x00000217u, 0x00050084u, 0x00000008u, 0x00002648u, 0x00000263u, 0x00002647u, 0x00050082u, + 0x00000008u, 0x00002649u, 0x00000263u, 0x00002648u, 0x000500c3u, 0x00000008u, 0x0000264bu, 0x00008989u, + 0x00002649u, 0x000500c7u, 0x00000008u, 0x0000264du, 0x0000264bu, 0x00000390u, 0x000200f9u, 0x00002656u, + 0x000200f8u, 0x00002656u, 0x000700f5u, 0x00000008u, 0x0000898cu, 0x0000264du, 0x0000279au, 0x00008975u, + 0x0000292bu, 0x000200f9u, 0x00002657u, 0x000200f8u, 0x00002638u, 0x000200f9u, 0x00002657u, 0x000200f8u, + 0x00002657u, 0x000700f5u, 0x00000008u, 0x0000898bu, 0x00000208u, 0x00002638u, 0x0000898cu, 0x00002656u, + 0x000300f7u, 0x000022dau, 0x00000000u, 0x000400fau, 0x0000227bu, 0x000022d6u, 0x000022dau, 0x000200f8u, + 0x000022d6u, 0x000500aau, 0x0000005du, 0x000022d9u, 0x00002636u, 0x0000021au, 0x000200f9u, 0x000022dau, + 0x000200f8u, 0x000022dau, 0x000700f5u, 0x0000005du, 0x000022dbu, 0x0000227bu, 0x00002657u, 0x000022d9u, + 0x000022d6u, 0x000300f7u, 0x000022e0u, 0x00000000u, 0x000400fau, 0x000022dbu, 0x000022dcu, 0x000022e0u, + 0x000200f8u, 0x000022dcu, 0x000500c7u, 0x00000008u, 0x000022deu, 0x0000898bu, 0x00000217u, 0x000500aau, + 0x0000005du, 0x000022dfu, 0x000022deu, 0x00000208u, 0x000200f9u, 0x000022e0u, 0x000200f8u, 0x000022e0u, + 0x000700f5u, 0x0000005du, 0x000022e1u, 0x000022dbu, 0x000022dau, 0x000022dfu, 0x000022dcu, 0x000300f7u, + 0x000022e3u, 0x00000000u, 0x000400fau, 0x000022e1u, 0x000022e2u, 0x000022e3u, 0x000200f8u, 0x000022e2u, + 0x000200f9u, 0x00002476u, 0x000200f8u, 0x000022e3u, 0x000200f9u, 0x00002476u, 0x000200f8u, 0x000022f4u, + 0x000500c4u, 0x00000008u, 0x000029b5u, 0x00007645u, 0x0000021du, 0x00070050u, 0x00000009u, 0x000029b6u, + 0x000029b5u, 0x000029b5u, 0x000029b5u, 0x000029b5u, 0x00050080u, 0x00000009u, 0x000029b7u, 0x000005f9u, + 0x000029b6u, 0x0009004fu, 0x00000009u, 0x000029bau, 0x00002493u, 0x00002493u, 0x00000000u, 0x00000000u, + 0x00000001u, 0x00000001u, 0x000500b1u, 0x000005feu, 0x000029bbu, 0x000029b7u, 0x000029bau, 0x0009004fu, + 0x00000009u, 0x000029beu, 0x00002493u, 0x00002493u, 0x00000002u, 0x00000002u, 0x00000003u, 0x00000003u, + 0x000500b1u, 0x000005feu, 0x000029bfu, 0x000029b7u, 0x000029beu, 0x0009004fu, 0x00000009u, 0x000029c2u, + 0x00002498u, 0x00002498u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000001u, 0x000500afu, 0x000005feu, + 0x000029c3u, 0x000029b7u, 0x000029c2u, 0x0009004fu, 0x00000009u, 0x000029c6u, 0x00002498u, 0x00002498u, + 0x00000002u, 0x00000002u, 0x00000003u, 0x00000003u, 0x000500afu, 0x000005feu, 0x000029c7u, 0x000029b7u, + 0x000029c6u, 0x000600a9u, 0x00000009u, 0x000029c9u, 0x000029bbu, 0x00000617u, 0x00000616u, 0x000600a9u, + 0x00000009u, 0x000029cbu, 0x000029c3u, 0x00000617u, 0x00000616u, 0x000500c5u, 0x00000009u, 0x000029ccu, + 0x000029c9u, 0x000029cbu, 0x000600a9u, 0x00000009u, 0x000029ceu, 0x000029bfu, 0x00000617u, 0x00000616u, + 0x000600a9u, 0x00000009u, 0x000029d0u, 0x000029c7u, 0x00000617u, 0x00000616u, 0x000500c5u, 0x00000009u, + 0x000029d1u, 0x000029ceu, 0x000029d0u, 0x00050084u, 0x00000009u, 0x000029d3u, 0x000029ccu, 0x00000624u, + 0x00050084u, 0x00000009u, 0x000029d5u, 0x000029d1u, 0x00000629u, 0x00050080u, 0x00000009u, 0x000029d6u, + 0x000029d3u, 0x000029d5u, 0x00050051u, 0x00000008u, 0x000029d8u, 0x000029d6u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000029dau, 0x000029d6u, 0x00000001u, 0x000500c5u, 0x00000008u, 0x000029dbu, 0x000029d8u, + 0x000029dau, 0x00050051u, 0x00000008u, 0x000029ddu, 0x000029d6u, 0x00000002u, 0x00050051u, 0x00000008u, + 0x000029dfu, 0x000029d6u, 0x00000003u, 0x000500c5u, 0x00000008u, 0x000029e0u, 0x000029ddu, 0x000029dfu, + 0x000500c5u, 0x00000008u, 0x000029e1u, 0x000029dbu, 0x000029e0u, 0x000400c8u, 0x00000008u, 0x000029e3u, + 0x000029e1u, 0x000500c7u, 0x00000008u, 0x000029e4u, 0x000029e3u, 0x00000390u, 0x000500aau, 0x0000005du, + 0x000022fcu, 0x000029e4u, 0x00000208u, 0x000300f7u, 0x000022feu, 0x00000000u, 0x000400fau, 0x000022fcu, + 0x000022fdu, 0x000022feu, 0x000200f8u, 0x000022fdu, 0x000200f9u, 0x00002476u, 0x000200f8u, 0x000022feu, + 0x000400cdu, 0x00000008u, 0x00002300u, 0x000029e4u, 0x000400a8u, 0x0000005du, 0x00002302u, 0x0000226cu, + 0x000300f7u, 0x00002307u, 0x00000000u, 0x000400fau, 0x00002302u, 0x00002303u, 0x00002307u, 0x000200f8u, + 0x00002303u, 0x000500c7u, 0x00000008u, 0x00002305u, 0x000029e4u, 0x00000217u, 0x000500aau, 0x0000005du, + 0x00002306u, 0x00002305u, 0x00000208u, 0x000200f9u, 0x00002307u, 0x000200f8u, 0x00002307u, 0x000700f5u, + 0x0000005du, 0x00002308u, 0x00002302u, 0x000022feu, 0x00002306u, 0x00002303u, 0x000300f7u, 0x0000230au, + 0x00000000u, 0x000400fau, 0x00002308u, 0x00002309u, 0x0000230au, 0x000200f8u, 0x00002309u, 0x000200f9u, + 0x00002476u, 0x000200f8u, 0x0000230au, 0x00070041u, 0x00000239u, 0x000029e8u, 0x00000237u, 0x00000208u, + 0x00002016u, 0x00000208u, 0x0004003du, 0x0000022fu, 0x000029e9u, 0x000029e8u, 0x00040071u, 0x0000023cu, + 0x000029eau, 0x000029e9u, 0x0004007cu, 0x00000009u, 0x000029ebu, 0x000029eau, 0x00070041u, 0x00000239u, + 0x000029edu, 0x00000237u, 0x00000208u, 0x00002016u, 0x00000217u, 0x0004003du, 0x0000022fu, 0x000029eeu, + 0x000029edu, 0x00040071u, 0x0000023cu, 0x000029efu, 0x000029eeu, 0x0004007cu, 0x00000009u, 0x000029f0u, + 0x000029efu, 0x00070041u, 0x00000239u, 0x000029f2u, 0x00000237u, 0x00000208u, 0x00002016u, 0x0000021au, + 0x0004003du, 0x0000022fu, 0x000029f3u, 0x000029f2u, 0x00040071u, 0x0000023cu, 0x000029f4u, 0x000029f3u, + 0x0004007cu, 0x00000009u, 0x000029f5u, 0x000029f4u, 0x00070041u, 0x00000239u, 0x000029f7u, 0x00000237u, + 0x00000208u, 0x00002016u, 0x0000021du, 0x0004003du, 0x0000022fu, 0x000029f8u, 0x000029f7u, 0x00040071u, + 0x0000023cu, 0x000029f9u, 0x000029f8u, 0x0004007cu, 0x00000009u, 0x000029fau, 0x000029f9u, 0x00070041u, + 0x00000239u, 0x000029fcu, 0x00000237u, 0x00000208u, 0x00002016u, 0x00000220u, 0x0004003du, 0x0000022fu, + 0x000029fdu, 0x000029fcu, 0x00040071u, 0x0000023cu, 0x000029feu, 0x000029fdu, 0x0004007cu, 0x00000009u, + 0x000029ffu, 0x000029feu, 0x00070041u, 0x00000239u, 0x00002a01u, 0x00000237u, 0x00000208u, 0x00002016u, + 0x00000223u, 0x0004003du, 0x0000022fu, 0x00002a02u, 0x00002a01u, 0x00040071u, 0x0000023cu, 0x00002a03u, + 0x00002a02u, 0x0004007cu, 0x00000009u, 0x00002a04u, 0x00002a03u, 0x00070041u, 0x00000239u, 0x00002a06u, + 0x00000237u, 0x00000208u, 0x00002016u, 0x00000226u, 0x0004003du, 0x0000022fu, 0x00002a07u, 0x00002a06u, + 0x00040071u, 0x0000023cu, 0x00002a08u, 0x00002a07u, 0x0004007cu, 0x00000009u, 0x00002a09u, 0x00002a08u, + 0x00070041u, 0x00000239u, 0x00002a0bu, 0x00000237u, 0x00000208u, 0x00002016u, 0x00000229u, 0x0004003du, + 0x0000022fu, 0x00002a0cu, 0x00002a0bu, 0x00040071u, 0x0000023cu, 0x00002a0du, 0x00002a0cu, 0x0004007cu, + 0x00000009u, 0x00002a0eu, 0x00002a0du, 0x00070041u, 0x00000239u, 0x00002a15u, 0x00000237u, 0x00000208u, + 0x00002016u, 0x00000269u, 0x0004003du, 0x0000022fu, 0x00002a16u, 0x00002a15u, 0x00040071u, 0x0000023cu, + 0x00002a17u, 0x00002a16u, 0x0004007cu, 0x00000009u, 0x00002a18u, 0x00002a17u, 0x00070041u, 0x0000027cu, + 0x00002a27u, 0x00000237u, 0x00000208u, 0x00002016u, 0x00000282u, 0x0004003du, 0x0000022eu, 0x00002a28u, + 0x00002a27u, 0x00040071u, 0x00000006u, 0x00002a29u, 0x00002a28u, 0x0004007cu, 0x00000008u, 0x00002a2au, + 0x00002a29u, 0x00070041u, 0x00000289u, 0x00002a2cu, 0x00000237u, 0x00000208u, 0x00002016u, 0x00000288u, + 0x0004003du, 0x00000232u, 0x00002a2du, 0x00002a2cu, 0x00040072u, 0x00000009u, 0x00002a2eu, 0x00002a2du, + 0x00050082u, 0x00000008u, 0x00002310u, 0x00007645u, 0x0000249bu, 0x000600a9u, 0x00000008u, 0x00002312u, + 0x000022a7u, 0x00000217u, 0x00000cebu, 0x000500c7u, 0x00000009u, 0x00002a39u, 0x000024b4u, 0x0000bdc4u, + 0x00070050u, 0x00000009u, 0x00002a3au, 0x0000084bu, 0x0000084bu, 0x0000084bu, 0x0000084bu, 0x000500c3u, + 0x00000009u, 0x00002a3bu, 0x00002a39u, 0x00002a3au, 0x00070050u, 0x00000009u, 0x00002a3du, 0x00002310u, + 0x00002310u, 0x00002310u, 0x00002310u, 0x00050084u, 0x00000009u, 0x00002a3eu, 0x00002a3bu, 0x00002a3du, + 0x00050080u, 0x00000009u, 0x00002a40u, 0x0000248bu, 0x00002a3eu, 0x000500c3u, 0x00000009u, 0x00002a43u, + 0x00002a40u, 0x0000bdc5u, 0x0006000cu, 0x00000008u, 0x00002a4au, 0x00000001u, 0x00000049u, 0x000029e4u, + 0x000500c3u, 0x00000008u, 0x00002a4cu, 0x00002a4au, 0x00000217u, 0x000500c7u, 0x00000008u, 0x00002a4eu, + 0x00002a4au, 0x00000217u, 0x000500c4u, 0x00000008u, 0x00002a4fu, 0x00002a4eu, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x00002a51u, 0x00002a4cu, 0x00000217u, 0x00050080u, 0x00000008u, 0x00002a52u, 0x00002a4fu, + 0x00002a51u, 0x00070050u, 0x00000009u, 0x00002a54u, 0x00000ca1u, 0x00000ca1u, 0x00000ca1u, 0x00000ca1u, + 0x000500c4u, 0x00000009u, 0x00002a55u, 0x00002a43u, 0x00002a54u, 0x000500c3u, 0x00000009u, 0x00002a59u, + 0x000024b4u, 0x0000bdc5u, 0x00070050u, 0x00000009u, 0x00002a5fu, 0x00002a52u, 0x00002a52u, 0x00002a52u, + 0x00002a52u, 0x00050084u, 0x00000009u, 0x00002a60u, 0x00002a5fu, 0x00002a59u, 0x000500c3u, 0x00000009u, + 0x00002a64u, 0x000024b8u, 0x0000bdc5u, 0x00070050u, 0x00000009u, 0x00002a6au, 0x00002a4cu, 0x00002a4cu, + 0x00002a4cu, 0x00002a4cu, 0x00050084u, 0x00000009u, 0x00002a6bu, 0x00002a6au, 0x00002a64u, 0x00050080u, + 0x00000009u, 0x00002a6cu, 0x00002a60u, 0x00002a6bu, 0x00050080u, 0x00000009u, 0x00002a6eu, 0x00002a55u, + 0x00002a6cu, 0x00070050u, 0x00000009u, 0x00002a70u, 0x00000cbeu, 0x00000cbeu, 0x00000cbeu, 0x00000cbeu, + 0x000500c3u, 0x00000009u, 0x00002a71u, 0x00002a6eu, 0x00002a70u, 0x00050082u, 0x00000009u, 0x00002a82u, + 0x00002a71u, 0x0000bdc6u, 0x000600cau, 0x00000009u, 0x00002a84u, 0x00002a82u, 0x00000208u, 0x00000269u, + 0x00050080u, 0x00000009u, 0x00002a87u, 0x00002a84u, 0x0000bdc6u, 0x0008000cu, 0x00000009u, 0x00002a89u, + 0x00000001u, 0x0000002du, 0x00002a87u, 0x00000616u, 0x00000b03u, 0x000500a7u, 0x0000005du, 0x0000231eu, + 0x00001dcau, 0x0000228du, 0x000300f7u, 0x00002327u, 0x00000000u, 0x000400fau, 0x0000231eu, 0x0000231fu, + 0x00002327u, 0x000200f8u, 0x0000231fu, 0x000500c7u, 0x00000006u, 0x00002321u, 0x00002217u, 0x00000a50u, + 0x000500abu, 0x0000005du, 0x00002322u, 0x00002321u, 0x00000379u, 0x000300f7u, 0x00002326u, 0x00000000u, + 0x000400fau, 0x00002322u, 0x00002323u, 0x00002326u, 0x000200f8u, 0x00002323u, 0x00050084u, 0x00000008u, + 0x00002325u, 0x00002312u, 0x00000887u, 0x000200f9u, 0x00002326u, 0x000200f8u, 0x00002326u, 0x000700f5u, + 0x00000008u, 0x0000764au, 0x00002312u, 0x0000231fu, 0x00002325u, 0x00002323u, 0x000200f9u, 0x00002327u, + 0x000200f8u, 0x00002327u, 0x000700f5u, 0x00000008u, 0x00007649u, 0x00002312u, 0x0000230au, 0x0000764au, + 0x00002326u, 0x0008004fu, 0x0000003cu, 0x00002aa2u, 0x0000248eu, 0x0000248eu, 0x00000000u, 0x00000001u, + 0x00000003u, 0x0008004fu, 0x0000003cu, 0x00002aa4u, 0x000024bcu, 0x000024bcu, 0x00000000u, 0x00000001u, + 0x00000003u, 0x000500c7u, 0x0000003cu, 0x00002aa6u, 0x00002aa4u, 0x0000bdc2u, 0x00060050u, 0x0000003cu, + 0x00002aa7u, 0x0000084bu, 0x0000084bu, 0x0000084bu, 0x000500c3u, 0x0000003cu, 0x00002aa8u, 0x00002aa6u, + 0x00002aa7u, 0x00060050u, 0x0000003cu, 0x00002aaau, 0x00002310u, 0x00002310u, 0x00002310u, 0x00050084u, + 0x0000003cu, 0x00002aabu, 0x00002aa8u, 0x00002aaau, 0x00050080u, 0x0000003cu, 0x00002aacu, 0x00002aa2u, + 0x00002aabu, 0x000300f7u, 0x00002ad1u, 0x00000000u, 0x000400fau, 0x0000228du, 0x00002aaeu, 0x00002ad1u, + 0x000200f8u, 0x00002aaeu, 0x00060050u, 0x0000003cu, 0x00002ab7u, 0x00007649u, 0x00007649u, 0x00007649u, + 0x00050084u, 0x0000003cu, 0x00002ab8u, 0x00002ab7u, 0x00002aa8u, 0x00050080u, 0x0000003cu, 0x00002ab9u, + 0x00002aacu, 0x00002ab8u, 0x000300f7u, 0x00002ad0u, 0x00000000u, 0x000400fau, 0x00000d4au, 0x00002abau, + 0x00002ac7u, 0x000200f8u, 0x00002ac7u, 0x0008004fu, 0x0000003cu, 0x00002acau, 0x000024c0u, 0x000024c0u, + 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, 0x0000003cu, 0x00002accu, 0x00002acau, 0x0000bdc8u, + 0x000500c3u, 0x0000003cu, 0x00002aceu, 0x00002accu, 0x00002aa7u, 0x00050080u, 0x0000003cu, 0x00002acfu, + 0x00002aacu, 0x00002aceu, 0x000200f9u, 0x00002ad0u, 0x000200f8u, 0x00002abau, 0x0006000cu, 0x00000008u, + 0x00002abdu, 0x00000001u, 0x00000005u, 0x00007649u, 0x0008004fu, 0x0000003cu, 0x00002abfu, 0x000024c0u, + 0x000024c0u, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, 0x0000003cu, 0x00002ac1u, 0x00002abfu, + 0x0000bdc8u, 0x000500c3u, 0x0000003cu, 0x00002ac3u, 0x00002ac1u, 0x00002aa7u, 0x00060050u, 0x0000003cu, + 0x00002ac4u, 0x00002abdu, 0x00002abdu, 0x00002abdu, 0x00050084u, 0x0000003cu, 0x00002ac5u, 0x00002ac4u, + 0x00002ac3u, 0x00050080u, 0x0000003cu, 0x00002ac6u, 0x00002aacu, 0x00002ac5u, 0x000200f9u, 0x00002ad0u, + 0x000200f8u, 0x00002ad0u, 0x000700f5u, 0x0000003cu, 0x00007669u, 0x00002ac6u, 0x00002abau, 0x00002acfu, + 0x00002ac7u, 0x000200f9u, 0x00002ad1u, 0x000200f8u, 0x00002ad1u, 0x000700f5u, 0x0000003cu, 0x0000765cu, + 0x00007662u, 0x00002327u, 0x00007669u, 0x00002ad0u, 0x000700f5u, 0x0000003cu, 0x0000764du, 0x00007653u, + 0x00002327u, 0x00002ab9u, 0x00002ad0u, 0x000300f7u, 0x00002af9u, 0x00000000u, 0x000400fau, 0x00002260u, + 0x00002ad3u, 0x00002ae9u, 0x000200f8u, 0x00002ae9u, 0x000500c3u, 0x0000003cu, 0x00002aecu, 0x00002aacu, + 0x0000bdc3u, 0x0007004fu, 0x0000005fu, 0x00002cc3u, 0x00002aecu, 0x00002aecu, 0x00000000u, 0x00000001u, + 0x000300f7u, 0x00002af8u, 0x00000000u, 0x000400fau, 0x0000228du, 0x00002aefu, 0x00002af8u, 0x000200f8u, + 0x00002aefu, 0x000500c3u, 0x0000003cu, 0x00002af2u, 0x0000764du, 0x0000bdc3u, 0x0007004fu, 0x0000005fu, + 0x00002cc7u, 0x00002af2u, 0x00002af2u, 0x00000000u, 0x00000001u, 0x000500c3u, 0x0000003cu, 0x00002af6u, + 0x0000765cu, 0x0000bdc3u, 0x0007004fu, 0x0000005fu, 0x00002ccbu, 0x00002af6u, 0x00002af6u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00002af8u, 0x000200f8u, 0x00002af8u, 0x000700f5u, 0x0000005fu, 0x00007718u, + 0x0000770au, 0x00002ae9u, 0x00002ccbu, 0x00002aefu, 0x000700f5u, 0x0000005fu, 0x000076feu, 0x000076e6u, + 0x00002ae9u, 0x00002cc7u, 0x00002aefu, 0x000200f9u, 0x00002af9u, 0x000200f8u, 0x00002ad3u, 0x000500c3u, + 0x0000003cu, 0x00002ad6u, 0x00002aacu, 0x0000bdc3u, 0x00050051u, 0x00000008u, 0x00002b34u, 0x00002ad6u, + 0x00000002u, 0x000500b3u, 0x0000005du, 0x00002b36u, 0x00002b34u, 0x00000208u, 0x000500c7u, 0x00000008u, + 0x00002b38u, 0x00002b34u, 0x00000c19u, 0x0006000cu, 0x00000008u, 0x00002b95u, 0x00000001u, 0x0000004au, + 0x00002b38u, 0x00050082u, 0x00000008u, 0x00002b96u, 0x00000288u, 0x00002b95u, 0x0007000cu, 0x00000008u, + 0x00002b97u, 0x00000001u, 0x00000027u, 0x00002b96u, 0x00000288u, 0x000500c4u, 0x00000008u, 0x00002b9au, + 0x00002b38u, 0x00002b97u, 0x000500c7u, 0x00000008u, 0x00002b9bu, 0x00002b9au, 0x00000b33u, 0x000500c7u, + 0x00000008u, 0x00002b9du, 0x00002b9bu, 0x00000390u, 0x000500c3u, 0x00000008u, 0x00002b9fu, 0x00002b9bu, + 0x00000263u, 0x0003003eu, 0x00002b90u, 0x00000bf7u, 0x00050041u, 0x00000060u, 0x00002ba0u, 0x00002b90u, + 0x00002b9fu, 0x0004003du, 0x0000005fu, 0x00002ba1u, 0x00002ba0u, 0x00050051u, 0x00000008u, 0x00002ba6u, + 0x00002ba1u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00002ba8u, 0x00002ba6u, 0x00002b9du, 0x000500c3u, + 0x00000008u, 0x00002ba9u, 0x00002ba8u, 0x0000026fu, 0x00050051u, 0x00000008u, 0x00002babu, 0x00002ba1u, + 0x00000000u, 0x00050080u, 0x00000008u, 0x00002bacu, 0x00002ba9u, 0x00002babu, 0x0007004fu, 0x0000005fu, + 0x00002b3eu, 0x00002ad6u, 0x00002ad6u, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x00002b41u, + 0x00002bacu, 0x00002bacu, 0x00050084u, 0x0000005fu, 0x00002b42u, 0x00002b3eu, 0x00002b41u, 0x000500c3u, + 0x00000008u, 0x00002b44u, 0x00000c2cu, 0x00002b97u, 0x0004007eu, 0x00000008u, 0x00002b45u, 0x00002b44u, + 0x000500c7u, 0x00000008u, 0x00002b46u, 0x00000c2bu, 0x00002b45u, 0x00050050u, 0x0000005fu, 0x00002b49u, + 0x00002b46u, 0x00002b46u, 0x000500c7u, 0x0000005fu, 0x00002b4au, 0x00002b42u, 0x00002b49u, 0x000500abu, + 0x0000005du, 0x00002b4cu, 0x00002b97u, 0x00000288u, 0x000300f7u, 0x00002b57u, 0x00000000u, 0x000400fau, + 0x00002b4cu, 0x00002b4du, 0x00002b53u, 0x000200f8u, 0x00002b53u, 0x000500c4u, 0x0000005fu, 0x00002b56u, + 0x00002b42u, 0x0000bdc7u, 0x000200f9u, 0x00002b57u, 0x000200f8u, 0x00002b4du, 0x00050082u, 0x00000008u, + 0x00002b50u, 0x00000282u, 0x00002b97u, 0x00050050u, 0x0000005fu, 0x00002b51u, 0x00002b50u, 0x00002b50u, + 0x000500c3u, 0x0000005fu, 0x00002b52u, 0x00002b42u, 0x00002b51u, 0x000200f9u, 0x00002b57u, 0x000200f8u, + 0x00002b57u, 0x000700f5u, 0x0000005fu, 0x0000766fu, 0x00002b52u, 0x00002b4du, 0x00002b56u, 0x00002b53u, + 0x000700f5u, 0x0000005fu, 0x0000766du, 0x00002b52u, 0x00002b4du, 0x00002b42u, 0x00002b53u, 0x000500abu, + 0x00000880u, 0x00002b59u, 0x00002b4au, 0x00000c45u, 0x0004009au, 0x0000005du, 0x00002b5au, 0x00002b59u, + 0x000300f7u, 0x00002b86u, 0x00000000u, 0x000400fau, 0x00002b5au, 0x00002b5bu, 0x00002b86u, 0x000200f8u, + 0x00002b5bu, 0x00050051u, 0x00000008u, 0x00002b5du, 0x00002b4au, 0x00000000u, 0x000500abu, 0x0000005du, + 0x00002b5fu, 0x00002b5du, 0x00002b46u, 0x000300f7u, 0x00002b64u, 0x00000000u, 0x000400fau, 0x00002b5fu, + 0x00002b60u, 0x00002b64u, 0x000200f8u, 0x00002b60u, 0x000500abu, 0x0000005du, 0x00002b63u, 0x00002b5du, + 0x00000208u, 0x000200f9u, 0x00002b64u, 0x000200f8u, 0x00002b64u, 0x000700f5u, 0x0000005du, 0x00002b65u, + 0x00002b5fu, 0x00002b5bu, 0x00002b63u, 0x00002b60u, 0x000300f7u, 0x00002b70u, 0x00000000u, 0x000400fau, + 0x00002b65u, 0x00002b66u, 0x00002b70u, 0x000200f8u, 0x00002b66u, 0x00050051u, 0x00000008u, 0x00002b68u, + 0x0000766du, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00002b69u, 0x00002b68u, 0x00000c2cu, 0x000500aau, + 0x0000005du, 0x00002b6au, 0x00002b69u, 0x00000208u, 0x000300f7u, 0x00002b6fu, 0x00000000u, 0x000400fau, + 0x00002b6au, 0x00002b6bu, 0x00002b6du, 0x000200f8u, 0x00002b6du, 0x00060052u, 0x0000005fu, 0x00007224u, + 0x00000c5eu, 0x0000766fu, 0x00000000u, 0x000200f9u, 0x00002b6fu, 0x000200f8u, 0x00002b6bu, 0x00060052u, + 0x0000005fu, 0x00007222u, 0x00000c19u, 0x0000766fu, 0x00000000u, 0x000200f9u, 0x00002b6fu, 0x000200f8u, + 0x00002b6fu, 0x000700f5u, 0x0000005fu, 0x00007675u, 0x00007222u, 0x00002b6bu, 0x00007224u, 0x00002b6du, + 0x000200f9u, 0x00002b70u, 0x000200f8u, 0x00002b70u, 0x000700f5u, 0x0000005fu, 0x00007674u, 0x0000766fu, + 0x00002b64u, 0x00007675u, 0x00002b6fu, 0x000600a9u, 0x0000005du, 0x0000bdebu, 0x00002b65u, 0x00000563u, + 0x00000548u, 0x00050051u, 0x00000008u, 0x00002b72u, 0x00002b4au, 0x00000001u, 0x000500abu, 0x0000005du, + 0x00002b74u, 0x00002b72u, 0x00002b46u, 0x000300f7u, 0x00002b79u, 0x00000000u, 0x000400fau, 0x00002b74u, + 0x00002b75u, 0x00002b79u, 0x000200f8u, 0x00002b75u, 0x000500abu, 0x0000005du, 0x00002b78u, 0x00002b72u, + 0x00000208u, 0x000200f9u, 0x00002b79u, 0x000200f8u, 0x00002b79u, 0x000700f5u, 0x0000005du, 0x00002b7au, + 0x00002b74u, 0x00002b70u, 0x00002b78u, 0x00002b75u, 0x000300f7u, 0x00002b85u, 0x00000000u, 0x000400fau, + 0x00002b7au, 0x00002b7bu, 0x00002b85u, 0x000200f8u, 0x00002b7bu, 0x00050051u, 0x00000008u, 0x00002b7du, + 0x0000766du, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00002b7eu, 0x00002b7du, 0x00000c2cu, 0x000500aau, + 0x0000005du, 0x00002b7fu, 0x00002b7eu, 0x00000208u, 0x000300f7u, 0x00002b84u, 0x00000000u, 0x000400fau, + 0x00002b7fu, 0x00002b80u, 0x00002b82u, 0x000200f8u, 0x00002b82u, 0x00060052u, 0x0000005fu, 0x0000722bu, + 0x00000c5eu, 0x00007674u, 0x00000001u, 0x000200f9u, 0x00002b84u, 0x000200f8u, 0x00002b80u, 0x00060052u, + 0x0000005fu, 0x00007229u, 0x00000c19u, 0x00007674u, 0x00000001u, 0x000200f9u, 0x00002b84u, 0x000200f8u, + 0x00002b84u, 0x000700f5u, 0x0000005fu, 0x00007679u, 0x00007229u, 0x00002b80u, 0x0000722bu, 0x00002b82u, + 0x000200f9u, 0x00002b85u, 0x000200f8u, 0x00002b85u, 0x000700f5u, 0x0000005fu, 0x00007678u, 0x00007674u, + 0x00002b79u, 0x00007679u, 0x00002b84u, 0x000600a9u, 0x0000005du, 0x0000bdecu, 0x00002b7au, 0x00000563u, + 0x0000bdebu, 0x000200f9u, 0x00002b86u, 0x000200f8u, 0x00002b86u, 0x000700f5u, 0x0000005du, 0x0000767bu, + 0x00000548u, 0x00002b57u, 0x0000bdecu, 0x00002b85u, 0x000700f5u, 0x0000005fu, 0x00007677u, 0x0000766fu, + 0x00002b57u, 0x00007678u, 0x00002b85u, 0x000600a9u, 0x0000005du, 0x0000bdedu, 0x00002b36u, 0x00000563u, + 0x0000767bu, 0x00050050u, 0x00000880u, 0x0000bdeeu, 0x00002b36u, 0x00002b36u, 0x000600a9u, 0x0000005fu, + 0x0000bdefu, 0x0000bdeeu, 0x00000c78u, 0x00007677u, 0x0008000cu, 0x0000005fu, 0x00002b8bu, 0x00000001u, + 0x0000002du, 0x0000bdefu, 0x00000c7bu, 0x00000c7cu, 0x000300f7u, 0x00002ae8u, 0x00000000u, 0x000400fau, + 0x0000228du, 0x00002adbu, 0x00002ae8u, 0x000200f8u, 0x00002adbu, 0x000500c3u, 0x0000003cu, 0x00002adeu, + 0x0000764du, 0x0000bdc3u, 0x00050051u, 0x00000008u, 0x00002bbcu, 0x00002adeu, 0x00000002u, 0x000500b3u, + 0x0000005du, 0x00002bbeu, 0x00002bbcu, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00002bc0u, 0x00002bbcu, + 0x00000c19u, 0x0006000cu, 0x00000008u, 0x00002c1du, 0x00000001u, 0x0000004au, 0x00002bc0u, 0x00050082u, + 0x00000008u, 0x00002c1eu, 0x00000288u, 0x00002c1du, 0x0007000cu, 0x00000008u, 0x00002c1fu, 0x00000001u, + 0x00000027u, 0x00002c1eu, 0x00000288u, 0x000500c4u, 0x00000008u, 0x00002c22u, 0x00002bc0u, 0x00002c1fu, + 0x000500c7u, 0x00000008u, 0x00002c23u, 0x00002c22u, 0x00000b33u, 0x000500c7u, 0x00000008u, 0x00002c25u, + 0x00002c23u, 0x00000390u, 0x000500c3u, 0x00000008u, 0x00002c27u, 0x00002c23u, 0x00000263u, 0x0003003eu, + 0x00002c18u, 0x00000bf7u, 0x00050041u, 0x00000060u, 0x00002c28u, 0x00002c18u, 0x00002c27u, 0x0004003du, + 0x0000005fu, 0x00002c29u, 0x00002c28u, 0x00050051u, 0x00000008u, 0x00002c2eu, 0x00002c29u, 0x00000001u, + 0x00050084u, 0x00000008u, 0x00002c30u, 0x00002c2eu, 0x00002c25u, 0x000500c3u, 0x00000008u, 0x00002c31u, + 0x00002c30u, 0x0000026fu, 0x00050051u, 0x00000008u, 0x00002c33u, 0x00002c29u, 0x00000000u, 0x00050080u, + 0x00000008u, 0x00002c34u, 0x00002c31u, 0x00002c33u, 0x0007004fu, 0x0000005fu, 0x00002bc6u, 0x00002adeu, + 0x00002adeu, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x00002bc9u, 0x00002c34u, 0x00002c34u, + 0x00050084u, 0x0000005fu, 0x00002bcau, 0x00002bc6u, 0x00002bc9u, 0x000500c3u, 0x00000008u, 0x00002bccu, + 0x00000c2cu, 0x00002c1fu, 0x0004007eu, 0x00000008u, 0x00002bcdu, 0x00002bccu, 0x000500c7u, 0x00000008u, + 0x00002bceu, 0x00000c2bu, 0x00002bcdu, 0x00050050u, 0x0000005fu, 0x00002bd1u, 0x00002bceu, 0x00002bceu, + 0x000500c7u, 0x0000005fu, 0x00002bd2u, 0x00002bcau, 0x00002bd1u, 0x000500abu, 0x0000005du, 0x00002bd4u, + 0x00002c1fu, 0x00000288u, 0x000300f7u, 0x00002bdfu, 0x00000000u, 0x000400fau, 0x00002bd4u, 0x00002bd5u, + 0x00002bdbu, 0x000200f8u, 0x00002bdbu, 0x000500c4u, 0x0000005fu, 0x00002bdeu, 0x00002bcau, 0x0000bdc7u, + 0x000200f9u, 0x00002bdfu, 0x000200f8u, 0x00002bd5u, 0x00050082u, 0x00000008u, 0x00002bd8u, 0x00000282u, + 0x00002c1fu, 0x00050050u, 0x0000005fu, 0x00002bd9u, 0x00002bd8u, 0x00002bd8u, 0x000500c3u, 0x0000005fu, + 0x00002bdau, 0x00002bcau, 0x00002bd9u, 0x000200f9u, 0x00002bdfu, 0x000200f8u, 0x00002bdfu, 0x000700f5u, + 0x0000005fu, 0x0000768du, 0x00002bdau, 0x00002bd5u, 0x00002bdeu, 0x00002bdbu, 0x000700f5u, 0x0000005fu, + 0x0000768bu, 0x00002bdau, 0x00002bd5u, 0x00002bcau, 0x00002bdbu, 0x000500abu, 0x00000880u, 0x00002be1u, + 0x00002bd2u, 0x00000c45u, 0x0004009au, 0x0000005du, 0x00002be2u, 0x00002be1u, 0x000300f7u, 0x00002c0eu, + 0x00000000u, 0x000400fau, 0x00002be2u, 0x00002be3u, 0x00002c0eu, 0x000200f8u, 0x00002be3u, 0x00050051u, + 0x00000008u, 0x00002be5u, 0x00002bd2u, 0x00000000u, 0x000500abu, 0x0000005du, 0x00002be7u, 0x00002be5u, + 0x00002bceu, 0x000300f7u, 0x00002becu, 0x00000000u, 0x000400fau, 0x00002be7u, 0x00002be8u, 0x00002becu, + 0x000200f8u, 0x00002be8u, 0x000500abu, 0x0000005du, 0x00002bebu, 0x00002be5u, 0x00000208u, 0x000200f9u, + 0x00002becu, 0x000200f8u, 0x00002becu, 0x000700f5u, 0x0000005du, 0x00002bedu, 0x00002be7u, 0x00002be3u, + 0x00002bebu, 0x00002be8u, 0x000300f7u, 0x00002bf8u, 0x00000000u, 0x000400fau, 0x00002bedu, 0x00002beeu, + 0x00002bf8u, 0x000200f8u, 0x00002beeu, 0x00050051u, 0x00000008u, 0x00002bf0u, 0x0000768bu, 0x00000000u, + 0x000500c7u, 0x00000008u, 0x00002bf1u, 0x00002bf0u, 0x00000c2cu, 0x000500aau, 0x0000005du, 0x00002bf2u, + 0x00002bf1u, 0x00000208u, 0x000300f7u, 0x00002bf7u, 0x00000000u, 0x000400fau, 0x00002bf2u, 0x00002bf3u, + 0x00002bf5u, 0x000200f8u, 0x00002bf5u, 0x00060052u, 0x0000005fu, 0x00007237u, 0x00000c5eu, 0x0000768du, + 0x00000000u, 0x000200f9u, 0x00002bf7u, 0x000200f8u, 0x00002bf3u, 0x00060052u, 0x0000005fu, 0x00007235u, + 0x00000c19u, 0x0000768du, 0x00000000u, 0x000200f9u, 0x00002bf7u, 0x000200f8u, 0x00002bf7u, 0x000700f5u, + 0x0000005fu, 0x00007693u, 0x00007235u, 0x00002bf3u, 0x00007237u, 0x00002bf5u, 0x000200f9u, 0x00002bf8u, + 0x000200f8u, 0x00002bf8u, 0x000700f5u, 0x0000005fu, 0x00007692u, 0x0000768du, 0x00002becu, 0x00007693u, + 0x00002bf7u, 0x000600a9u, 0x0000005du, 0x0000bdf0u, 0x00002bedu, 0x00000563u, 0x0000bdedu, 0x00050051u, + 0x00000008u, 0x00002bfau, 0x00002bd2u, 0x00000001u, 0x000500abu, 0x0000005du, 0x00002bfcu, 0x00002bfau, + 0x00002bceu, 0x000300f7u, 0x00002c01u, 0x00000000u, 0x000400fau, 0x00002bfcu, 0x00002bfdu, 0x00002c01u, + 0x000200f8u, 0x00002bfdu, 0x000500abu, 0x0000005du, 0x00002c00u, 0x00002bfau, 0x00000208u, 0x000200f9u, + 0x00002c01u, 0x000200f8u, 0x00002c01u, 0x000700f5u, 0x0000005du, 0x00002c02u, 0x00002bfcu, 0x00002bf8u, + 0x00002c00u, 0x00002bfdu, 0x000300f7u, 0x00002c0du, 0x00000000u, 0x000400fau, 0x00002c02u, 0x00002c03u, + 0x00002c0du, 0x000200f8u, 0x00002c03u, 0x00050051u, 0x00000008u, 0x00002c05u, 0x0000768bu, 0x00000001u, + 0x000500c7u, 0x00000008u, 0x00002c06u, 0x00002c05u, 0x00000c2cu, 0x000500aau, 0x0000005du, 0x00002c07u, + 0x00002c06u, 0x00000208u, 0x000300f7u, 0x00002c0cu, 0x00000000u, 0x000400fau, 0x00002c07u, 0x00002c08u, + 0x00002c0au, 0x000200f8u, 0x00002c0au, 0x00060052u, 0x0000005fu, 0x0000723eu, 0x00000c5eu, 0x00007692u, + 0x00000001u, 0x000200f9u, 0x00002c0cu, 0x000200f8u, 0x00002c08u, 0x00060052u, 0x0000005fu, 0x0000723cu, + 0x00000c19u, 0x00007692u, 0x00000001u, 0x000200f9u, 0x00002c0cu, 0x000200f8u, 0x00002c0cu, 0x000700f5u, + 0x0000005fu, 0x00007697u, 0x0000723cu, 0x00002c08u, 0x0000723eu, 0x00002c0au, 0x000200f9u, 0x00002c0du, + 0x000200f8u, 0x00002c0du, 0x000700f5u, 0x0000005fu, 0x00007696u, 0x00007692u, 0x00002c01u, 0x00007697u, + 0x00002c0cu, 0x000600a9u, 0x0000005du, 0x0000bdf1u, 0x00002c02u, 0x00000563u, 0x0000bdf0u, 0x000200f9u, + 0x00002c0eu, 0x000200f8u, 0x00002c0eu, 0x000700f5u, 0x0000005du, 0x00007699u, 0x0000bdedu, 0x00002bdfu, + 0x0000bdf1u, 0x00002c0du, 0x000700f5u, 0x0000005fu, 0x00007695u, 0x0000768du, 0x00002bdfu, 0x00007696u, + 0x00002c0du, 0x000600a9u, 0x0000005du, 0x0000bdf2u, 0x00002bbeu, 0x00000563u, 0x00007699u, 0x00050050u, + 0x00000880u, 0x0000bdf3u, 0x00002bbeu, 0x00002bbeu, 0x000600a9u, 0x0000005fu, 0x0000bdf4u, 0x0000bdf3u, + 0x00000c78u, 0x00007695u, 0x0008000cu, 0x0000005fu, 0x00002c13u, 0x00000001u, 0x0000002du, 0x0000bdf4u, + 0x00000c7bu, 0x00000c7cu, 0x000500c3u, 0x0000003cu, 0x00002ae4u, 0x0000765cu, 0x0000bdc3u, 0x00050051u, + 0x00000008u, 0x00002c44u, 0x00002ae4u, 0x00000002u, 0x000500b3u, 0x0000005du, 0x00002c46u, 0x00002c44u, + 0x00000208u, 0x000500c7u, 0x00000008u, 0x00002c48u, 0x00002c44u, 0x00000c19u, 0x0006000cu, 0x00000008u, + 0x00002ca5u, 0x00000001u, 0x0000004au, 0x00002c48u, 0x00050082u, 0x00000008u, 0x00002ca6u, 0x00000288u, + 0x00002ca5u, 0x0007000cu, 0x00000008u, 0x00002ca7u, 0x00000001u, 0x00000027u, 0x00002ca6u, 0x00000288u, + 0x000500c4u, 0x00000008u, 0x00002caau, 0x00002c48u, 0x00002ca7u, 0x000500c7u, 0x00000008u, 0x00002cabu, + 0x00002caau, 0x00000b33u, 0x000500c7u, 0x00000008u, 0x00002cadu, 0x00002cabu, 0x00000390u, 0x000500c3u, + 0x00000008u, 0x00002cafu, 0x00002cabu, 0x00000263u, 0x0003003eu, 0x00002ca0u, 0x00000bf7u, 0x00050041u, + 0x00000060u, 0x00002cb0u, 0x00002ca0u, 0x00002cafu, 0x0004003du, 0x0000005fu, 0x00002cb1u, 0x00002cb0u, + 0x00050051u, 0x00000008u, 0x00002cb6u, 0x00002cb1u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00002cb8u, + 0x00002cb6u, 0x00002cadu, 0x000500c3u, 0x00000008u, 0x00002cb9u, 0x00002cb8u, 0x0000026fu, 0x00050051u, + 0x00000008u, 0x00002cbbu, 0x00002cb1u, 0x00000000u, 0x00050080u, 0x00000008u, 0x00002cbcu, 0x00002cb9u, + 0x00002cbbu, 0x0007004fu, 0x0000005fu, 0x00002c4eu, 0x00002ae4u, 0x00002ae4u, 0x00000000u, 0x00000001u, + 0x00050050u, 0x0000005fu, 0x00002c51u, 0x00002cbcu, 0x00002cbcu, 0x00050084u, 0x0000005fu, 0x00002c52u, + 0x00002c4eu, 0x00002c51u, 0x000500c3u, 0x00000008u, 0x00002c54u, 0x00000c2cu, 0x00002ca7u, 0x0004007eu, + 0x00000008u, 0x00002c55u, 0x00002c54u, 0x000500c7u, 0x00000008u, 0x00002c56u, 0x00000c2bu, 0x00002c55u, + 0x00050050u, 0x0000005fu, 0x00002c59u, 0x00002c56u, 0x00002c56u, 0x000500c7u, 0x0000005fu, 0x00002c5au, + 0x00002c52u, 0x00002c59u, 0x000500abu, 0x0000005du, 0x00002c5cu, 0x00002ca7u, 0x00000288u, 0x000300f7u, + 0x00002c67u, 0x00000000u, 0x000400fau, 0x00002c5cu, 0x00002c5du, 0x00002c63u, 0x000200f8u, 0x00002c63u, + 0x000500c4u, 0x0000005fu, 0x00002c66u, 0x00002c52u, 0x0000bdc7u, 0x000200f9u, 0x00002c67u, 0x000200f8u, + 0x00002c5du, 0x00050082u, 0x00000008u, 0x00002c60u, 0x00000282u, 0x00002ca7u, 0x00050050u, 0x0000005fu, + 0x00002c61u, 0x00002c60u, 0x00002c60u, 0x000500c3u, 0x0000005fu, 0x00002c62u, 0x00002c52u, 0x00002c61u, + 0x000200f9u, 0x00002c67u, 0x000200f8u, 0x00002c67u, 0x000700f5u, 0x0000005fu, 0x000076b4u, 0x00002c62u, + 0x00002c5du, 0x00002c66u, 0x00002c63u, 0x000700f5u, 0x0000005fu, 0x000076b2u, 0x00002c62u, 0x00002c5du, + 0x00002c52u, 0x00002c63u, 0x000500abu, 0x00000880u, 0x00002c69u, 0x00002c5au, 0x00000c45u, 0x0004009au, + 0x0000005du, 0x00002c6au, 0x00002c69u, 0x000300f7u, 0x00002c96u, 0x00000000u, 0x000400fau, 0x00002c6au, + 0x00002c6bu, 0x00002c96u, 0x000200f8u, 0x00002c6bu, 0x00050051u, 0x00000008u, 0x00002c6du, 0x00002c5au, + 0x00000000u, 0x000500abu, 0x0000005du, 0x00002c6fu, 0x00002c6du, 0x00002c56u, 0x000300f7u, 0x00002c74u, + 0x00000000u, 0x000400fau, 0x00002c6fu, 0x00002c70u, 0x00002c74u, 0x000200f8u, 0x00002c70u, 0x000500abu, + 0x0000005du, 0x00002c73u, 0x00002c6du, 0x00000208u, 0x000200f9u, 0x00002c74u, 0x000200f8u, 0x00002c74u, + 0x000700f5u, 0x0000005du, 0x00002c75u, 0x00002c6fu, 0x00002c6bu, 0x00002c73u, 0x00002c70u, 0x000300f7u, + 0x00002c80u, 0x00000000u, 0x000400fau, 0x00002c75u, 0x00002c76u, 0x00002c80u, 0x000200f8u, 0x00002c76u, + 0x00050051u, 0x00000008u, 0x00002c78u, 0x000076b2u, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00002c79u, + 0x00002c78u, 0x00000c2cu, 0x000500aau, 0x0000005du, 0x00002c7au, 0x00002c79u, 0x00000208u, 0x000300f7u, + 0x00002c7fu, 0x00000000u, 0x000400fau, 0x00002c7au, 0x00002c7bu, 0x00002c7du, 0x000200f8u, 0x00002c7du, + 0x00060052u, 0x0000005fu, 0x0000724au, 0x00000c5eu, 0x000076b4u, 0x00000000u, 0x000200f9u, 0x00002c7fu, + 0x000200f8u, 0x00002c7bu, 0x00060052u, 0x0000005fu, 0x00007248u, 0x00000c19u, 0x000076b4u, 0x00000000u, + 0x000200f9u, 0x00002c7fu, 0x000200f8u, 0x00002c7fu, 0x000700f5u, 0x0000005fu, 0x000076bau, 0x00007248u, + 0x00002c7bu, 0x0000724au, 0x00002c7du, 0x000200f9u, 0x00002c80u, 0x000200f8u, 0x00002c80u, 0x000700f5u, + 0x0000005fu, 0x000076b9u, 0x000076b4u, 0x00002c74u, 0x000076bau, 0x00002c7fu, 0x000600a9u, 0x0000005du, + 0x0000bdf5u, 0x00002c75u, 0x00000563u, 0x0000bdf2u, 0x00050051u, 0x00000008u, 0x00002c82u, 0x00002c5au, + 0x00000001u, 0x000500abu, 0x0000005du, 0x00002c84u, 0x00002c82u, 0x00002c56u, 0x000300f7u, 0x00002c89u, + 0x00000000u, 0x000400fau, 0x00002c84u, 0x00002c85u, 0x00002c89u, 0x000200f8u, 0x00002c85u, 0x000500abu, + 0x0000005du, 0x00002c88u, 0x00002c82u, 0x00000208u, 0x000200f9u, 0x00002c89u, 0x000200f8u, 0x00002c89u, + 0x000700f5u, 0x0000005du, 0x00002c8au, 0x00002c84u, 0x00002c80u, 0x00002c88u, 0x00002c85u, 0x000300f7u, + 0x00002c95u, 0x00000000u, 0x000400fau, 0x00002c8au, 0x00002c8bu, 0x00002c95u, 0x000200f8u, 0x00002c8bu, + 0x00050051u, 0x00000008u, 0x00002c8du, 0x000076b2u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00002c8eu, + 0x00002c8du, 0x00000c2cu, 0x000500aau, 0x0000005du, 0x00002c8fu, 0x00002c8eu, 0x00000208u, 0x000300f7u, + 0x00002c94u, 0x00000000u, 0x000400fau, 0x00002c8fu, 0x00002c90u, 0x00002c92u, 0x000200f8u, 0x00002c92u, + 0x00060052u, 0x0000005fu, 0x00007251u, 0x00000c5eu, 0x000076b9u, 0x00000001u, 0x000200f9u, 0x00002c94u, + 0x000200f8u, 0x00002c90u, 0x00060052u, 0x0000005fu, 0x0000724fu, 0x00000c19u, 0x000076b9u, 0x00000001u, + 0x000200f9u, 0x00002c94u, 0x000200f8u, 0x00002c94u, 0x000700f5u, 0x0000005fu, 0x000076beu, 0x0000724fu, + 0x00002c90u, 0x00007251u, 0x00002c92u, 0x000200f9u, 0x00002c95u, 0x000200f8u, 0x00002c95u, 0x000700f5u, + 0x0000005fu, 0x000076bdu, 0x000076b9u, 0x00002c89u, 0x000076beu, 0x00002c94u, 0x000600a9u, 0x0000005du, + 0x0000bdf6u, 0x00002c8au, 0x00000563u, 0x0000bdf5u, 0x000200f9u, 0x00002c96u, 0x000200f8u, 0x00002c96u, + 0x000700f5u, 0x0000005du, 0x000076c0u, 0x0000bdf2u, 0x00002c67u, 0x0000bdf6u, 0x00002c95u, 0x000700f5u, + 0x0000005fu, 0x000076bcu, 0x000076b4u, 0x00002c67u, 0x000076bdu, 0x00002c95u, 0x000600a9u, 0x0000005du, + 0x0000bdf7u, 0x00002c46u, 0x00000563u, 0x000076c0u, 0x00050050u, 0x00000880u, 0x0000bdf8u, 0x00002c46u, + 0x00002c46u, 0x000600a9u, 0x0000005fu, 0x0000bdf9u, 0x0000bdf8u, 0x00000c78u, 0x000076bcu, 0x0008000cu, + 0x0000005fu, 0x00002c9bu, 0x00000001u, 0x0000002du, 0x0000bdf9u, 0x00000c7bu, 0x00000c7cu, 0x000200f9u, + 0x00002ae8u, 0x000200f8u, 0x00002ae8u, 0x000700f5u, 0x0000005du, 0x0000771au, 0x0000bdedu, 0x00002b86u, + 0x0000bdf7u, 0x00002c96u, 0x000700f5u, 0x0000005fu, 0x00007700u, 0x0000770au, 0x00002b86u, 0x00002c9bu, + 0x00002c96u, 0x000700f5u, 0x0000005fu, 0x000076dcu, 0x000076e6u, 0x00002b86u, 0x00002c13u, 0x00002c96u, + 0x000200f9u, 0x00002af9u, 0x000200f8u, 0x00002af9u, 0x000700f5u, 0x0000005du, 0x00007719u, 0x0000771au, + 0x00002ae8u, 0x00000548u, 0x00002af8u, 0x000700f5u, 0x0000005fu, 0x000076ffu, 0x00007700u, 0x00002ae8u, + 0x00007718u, 0x00002af8u, 0x000700f5u, 0x0000005fu, 0x000076dbu, 0x000076dcu, 0x00002ae8u, 0x000076feu, + 0x00002af8u, 0x000700f5u, 0x0000005fu, 0x000076c6u, 0x00002b8bu, 0x00002ae8u, 0x00002cc3u, 0x00002af8u, + 0x00050051u, 0x00000008u, 0x00002afbu, 0x0000248eu, 0x00000002u, 0x00050051u, 0x00000008u, 0x00002afdu, + 0x000024bcu, 0x00000002u, 0x000500c3u, 0x00000008u, 0x00002affu, 0x00002310u, 0x0000084bu, 0x00050084u, + 0x00000008u, 0x00002b00u, 0x00002afdu, 0x00002affu, 0x00050080u, 0x00000008u, 0x00002b01u, 0x00002afbu, + 0x00002b00u, 0x000500c3u, 0x00000008u, 0x00002b04u, 0x00002afdu, 0x0000084bu, 0x000500c7u, 0x00000008u, + 0x00002b06u, 0x00002310u, 0x00000da0u, 0x00050084u, 0x00000008u, 0x00002b07u, 0x00002b04u, 0x00002b06u, + 0x00050080u, 0x00000008u, 0x00002b08u, 0x00002b01u, 0x00002b07u, 0x000500c3u, 0x00000008u, 0x00002b0au, + 0x00002b08u, 0x0000026fu, 0x000500c4u, 0x00000008u, 0x00002b16u, 0x00002b0au, 0x00000db4u, 0x000500c3u, + 0x00000008u, 0x00002b1au, 0x00002afdu, 0x0000026fu, 0x00050084u, 0x00000008u, 0x00002b1bu, 0x00002a52u, + 0x00002b1au, 0x00050051u, 0x00000008u, 0x00002b1eu, 0x000024c0u, 0x00000002u, 0x000500c3u, 0x00000008u, + 0x00002b1fu, 0x00002b1eu, 0x0000026fu, 0x00050084u, 0x00000008u, 0x00002b20u, 0x00002a4cu, 0x00002b1fu, + 0x00050080u, 0x00000008u, 0x00002b21u, 0x00002b1bu, 0x00002b20u, 0x00050080u, 0x00000008u, 0x00002b23u, + 0x00002b16u, 0x00002b21u, 0x000500c3u, 0x00000008u, 0x00002b25u, 0x00002b23u, 0x00000dc4u, 0x00050082u, + 0x00000008u, 0x00002ccfu, 0x00002b25u, 0x00000b1du, 0x000500c4u, 0x00000008u, 0x00002cd1u, 0x00002ccfu, + 0x00000282u, 0x000500c3u, 0x00000008u, 0x00002cd3u, 0x00002cd1u, 0x00000282u, 0x00050080u, 0x00000008u, + 0x00002cd5u, 0x00002cd3u, 0x00000b1du, 0x0008000cu, 0x00000008u, 0x00002cd7u, 0x00000001u, 0x0000002du, + 0x00002cd5u, 0x00000208u, 0x00000422u, 0x000500c7u, 0x00000006u, 0x0000233bu, 0x00002236u, 0x00000744u, + 0x00050080u, 0x00000006u, 0x0000233du, 0x0000233bu, 0x0000048au, 0x000500c7u, 0x00000006u, 0x0000233eu, + 0x0000233du, 0x00000744u, 0x000500c2u, 0x00000006u, 0x00002340u, 0x00002236u, 0x00000490u, 0x000300f7u, + 0x00002354u, 0x00000000u, 0x000400fau, 0x0000228du, 0x00002344u, 0x00002354u, 0x000200f8u, 0x00002344u, + 0x000300f7u, 0x00002d33u, 0x00000000u, 0x000400fau, 0x00007719u, 0x00002ce2u, 0x00002ce3u, 0x000200f8u, + 0x00002ce3u, 0x00050082u, 0x0000005fu, 0x00002ce6u, 0x000076dbu, 0x000076c6u, 0x000500c3u, 0x0000005fu, + 0x00002ce9u, 0x00002ce6u, 0x0000bdcau, 0x000500c6u, 0x0000005fu, 0x00002cebu, 0x00002ce6u, 0x00002ce9u, + 0x00050082u, 0x0000005fu, 0x00002ceeu, 0x000076ffu, 0x000076c6u, 0x000500c3u, 0x0000005fu, 0x00002cf1u, + 0x00002ceeu, 0x0000bdcau, 0x000500c6u, 0x0000005fu, 0x00002cf3u, 0x00002ceeu, 0x00002cf1u, 0x0007000cu, + 0x0000005fu, 0x00002cf6u, 0x00000001u, 0x0000002au, 0x00002cebu, 0x00002cf3u, 0x00050051u, 0x00000008u, + 0x00002cf8u, 0x00002cf6u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00002cfau, 0x00002cf6u, 0x00000001u, + 0x0007000cu, 0x00000008u, 0x00002cfbu, 0x00000001u, 0x0000002au, 0x00002cf8u, 0x00002cfau, 0x000500afu, + 0x0000005du, 0x00002cfdu, 0x00002cfbu, 0x00000b3au, 0x000300f7u, 0x00002d32u, 0x00000000u, 0x000400fau, + 0x00002cfdu, 0x00002cfeu, 0x00002d00u, 0x000200f8u, 0x00002d00u, 0x000500b1u, 0x0000005du, 0x00002d02u, + 0x00002cfbu, 0x00000382u, 0x000300f7u, 0x00002d31u, 0x00000000u, 0x000400fau, 0x00002d02u, 0x00002d03u, + 0x00002d17u, 0x000200f8u, 0x00002d17u, 0x000500c3u, 0x00000008u, 0x00002d19u, 0x00002cfbu, 0x00000223u, + 0x0006000cu, 0x00000008u, 0x00002d1au, 0x00000001u, 0x0000004au, 0x00002d19u, 0x0007000cu, 0x00000008u, + 0x00002d1bu, 0x00000001u, 0x0000002au, 0x00002d1au, 0x00000208u, 0x0004007cu, 0x00000006u, 0x00002d1du, + 0x00002d1bu, 0x000500aeu, 0x0000005du, 0x00002d1fu, 0x00002d1du, 0x00002340u, 0x000400a8u, 0x0000005du, + 0x00002d22u, 0x00002266u, 0x000500a7u, 0x0000005du, 0x00002d23u, 0x00002d1fu, 0x00002d22u, 0x000400a8u, + 0x0000005du, 0x00002d25u, 0x00002269u, 0x000500a7u, 0x0000005du, 0x00002d26u, 0x00002d23u, 0x00002d25u, + 0x000300f7u, 0x00002d30u, 0x00000000u, 0x000400fau, 0x00002d26u, 0x00002d27u, 0x00002d28u, 0x000200f8u, + 0x00002d28u, 0x000500c4u, 0x00000008u, 0x00002d2au, 0x00002cfbu, 0x0000021du, 0x000500c3u, 0x00000008u, + 0x00002d2cu, 0x00002d2au, 0x00002d1bu, 0x000500c7u, 0x00000008u, 0x00002d2du, 0x00002d2cu, 0x00000390u, + 0x000200f9u, 0x00002d30u, 0x000200f8u, 0x00002d27u, 0x000200f9u, 0x00002d30u, 0x000200f8u, 0x00002d30u, + 0x000700f5u, 0x00000008u, 0x00007745u, 0x00000390u, 0x00002d27u, 0x00002d2du, 0x00002d28u, 0x000600a9u, + 0x00000006u, 0x0000bdfau, 0x00002d26u, 0x00000379u, 0x00002d1du, 0x000200f9u, 0x00002d31u, 0x000200f8u, + 0x00002d03u, 0x000500aau, 0x0000005du, 0x00002d05u, 0x00002340u, 0x00000379u, 0x000400a8u, 0x0000005du, + 0x00002d07u, 0x00002266u, 0x000400a8u, 0x0000005du, 0x00002d09u, 0x00002269u, 0x000500a7u, 0x0000005du, + 0x00002d0au, 0x00002d07u, 0x00002d09u, 0x000300f7u, 0x00002d16u, 0x00000000u, 0x000400fau, 0x00002d0au, + 0x00002d0bu, 0x00002d0eu, 0x000200f8u, 0x00002d0eu, 0x0007000cu, 0x00000008u, 0x00002d11u, 0x00000001u, + 0x0000002au, 0x00002a2au, 0x00002cfbu, 0x000500c4u, 0x00000008u, 0x00002d12u, 0x00002d11u, 0x0000021du, + 0x000600a9u, 0x00000008u, 0x00002d14u, 0x00002266u, 0x000019d6u, 0x00000208u, 0x00050080u, 0x00000008u, + 0x00002d15u, 0x00002d12u, 0x00002d14u, 0x000200f9u, 0x00002d16u, 0x000200f8u, 0x00002d0bu, 0x000600a9u, + 0x00000008u, 0x00002d0du, 0x00002d05u, 0x00000390u, 0x00000208u, 0x000200f9u, 0x00002d16u, 0x000200f8u, + 0x00002d16u, 0x000700f5u, 0x00000008u, 0x00007744u, 0x00002d0du, 0x00002d0bu, 0x00002d15u, 0x00002d0eu, + 0x000200f9u, 0x00002d31u, 0x000200f8u, 0x00002d31u, 0x000700f5u, 0x00000008u, 0x00007743u, 0x00007744u, + 0x00002d16u, 0x00007745u, 0x00002d30u, 0x000700f5u, 0x00000006u, 0x0000772au, 0x00000379u, 0x00002d16u, + 0x0000bdfau, 0x00002d30u, 0x000700f5u, 0x0000005du, 0x0000771eu, 0x00002d05u, 0x00002d16u, 0x00002d1fu, + 0x00002d30u, 0x000600a9u, 0x0000005du, 0x0000bdfbu, 0x00002d02u, 0x00000563u, 0x00000548u, 0x000200f9u, + 0x00002d32u, 0x000200f8u, 0x00002cfeu, 0x000200f9u, 0x00002d32u, 0x000200f8u, 0x00002d32u, 0x000700f5u, + 0x00000008u, 0x00007742u, 0x00000390u, 0x00002cfeu, 0x00007743u, 0x00002d31u, 0x000700f5u, 0x0000005du, + 0x00007730u, 0x00000548u, 0x00002cfeu, 0x0000bdfbu, 0x00002d31u, 0x000700f5u, 0x00000006u, 0x00007729u, + 0x00002340u, 0x00002cfeu, 0x0000772au, 0x00002d31u, 0x000700f5u, 0x0000005du, 0x0000771du, 0x00000563u, + 0x00002cfeu, 0x0000771eu, 0x00002d31u, 0x000200f9u, 0x00002d33u, 0x000200f8u, 0x00002ce2u, 0x000200f9u, + 0x00002d33u, 0x000200f8u, 0x00002d33u, 0x000700f5u, 0x00000008u, 0x00007741u, 0x00000390u, 0x00002ce2u, + 0x00007742u, 0x00002d32u, 0x000700f5u, 0x0000005du, 0x0000772fu, 0x00000548u, 0x00002ce2u, 0x00007730u, + 0x00002d32u, 0x000700f5u, 0x00000006u, 0x00007728u, 0x00000379u, 0x00002ce2u, 0x00007729u, 0x00002d32u, + 0x000700f5u, 0x0000005du, 0x0000771cu, 0x00000563u, 0x00002ce2u, 0x0000771du, 0x00002d32u, 0x000300f7u, + 0x00002d65u, 0x00000000u, 0x000400fau, 0x00002263u, 0x00002d35u, 0x00002d65u, 0x000200f8u, 0x00002d35u, + 0x000600a9u, 0x00000006u, 0x0000bdfcu, 0x0000771cu, 0x00002340u, 0x00007728u, 0x000400a8u, 0x0000005du, + 0x00002d3bu, 0x00002269u, 0x000300f7u, 0x00002d64u, 0x00000000u, 0x000400fau, 0x00002d3bu, 0x00002d3cu, + 0x00002d51u, 0x000200f8u, 0x00002d51u, 0x00050080u, 0x00000006u, 0x00002d54u, 0x0000233bu, 0x0000bdfcu, + 0x000500a6u, 0x0000005du, 0x00002d57u, 0x0000771cu, 0x0000772fu, 0x000600a9u, 0x00000008u, 0x00002d58u, + 0x00002d57u, 0x00000217u, 0x0000021au, 0x0004007cu, 0x00000006u, 0x00002d59u, 0x00002d58u, 0x00050080u, + 0x00000006u, 0x00002d5au, 0x00002d54u, 0x00002d59u, 0x000500c7u, 0x00000006u, 0x00002d5bu, 0x00002d5au, + 0x00000744u, 0x000600a9u, 0x00000008u, 0x00002d60u, 0x0000772fu, 0x00000208u, 0x00000217u, 0x0004007cu, + 0x00000006u, 0x00002d61u, 0x00002d60u, 0x00050080u, 0x00000006u, 0x00002d62u, 0x00002d54u, 0x00002d61u, + 0x000500c7u, 0x00000006u, 0x00002d63u, 0x00002d62u, 0x00000744u, 0x000200f9u, 0x00002d64u, 0x000200f8u, + 0x00002d3cu, 0x00050080u, 0x00000006u, 0x00002d3fu, 0x0000233bu, 0x0000bdfcu, 0x000500c7u, 0x00000006u, + 0x00002d40u, 0x00002d3fu, 0x00000744u, 0x000400a8u, 0x0000005du, 0x00002d42u, 0x0000771cu, 0x000300f7u, + 0x00002d48u, 0x00000000u, 0x000400fau, 0x00002d42u, 0x00002d43u, 0x00002d48u, 0x000200f8u, 0x00002d43u, + 0x000400a8u, 0x0000005du, 0x00002d45u, 0x00002266u, 0x000500a7u, 0x0000005du, 0x00002d47u, 0x00002d45u, + 0x0000772fu, 0x000200f9u, 0x00002d48u, 0x000200f8u, 0x00002d48u, 0x000700f5u, 0x0000005du, 0x00002d49u, + 0x0000771cu, 0x00002d3cu, 0x00002d47u, 0x00002d43u, 0x000300f7u, 0x00002d50u, 0x00000000u, 0x000400fau, + 0x00002d49u, 0x00002d4au, 0x00002d4cu, 0x000200f8u, 0x00002d4cu, 0x00050080u, 0x00000006u, 0x00002d4eu, + 0x00002d40u, 0x0000048au, 0x000500c7u, 0x00000006u, 0x00002d4fu, 0x00002d4eu, 0x00000744u, 0x000200f9u, + 0x00002d50u, 0x000200f8u, 0x00002d4au, 0x000200f9u, 0x00002d50u, 0x000200f8u, 0x00002d50u, 0x000700f5u, + 0x00000006u, 0x0000773fu, 0x00002d40u, 0x00002d4au, 0x00002d4fu, 0x00002d4cu, 0x000200f9u, 0x00002d64u, + 0x000200f8u, 0x00002d64u, 0x000700f5u, 0x00000006u, 0x0000773eu, 0x0000773fu, 0x00002d50u, 0x00002d5bu, + 0x00002d51u, 0x000700f5u, 0x00000006u, 0x00007736u, 0x00002d40u, 0x00002d50u, 0x00002d63u, 0x00002d51u, + 0x000200f9u, 0x00002d65u, 0x000200f8u, 0x00002d65u, 0x000700f5u, 0x00000006u, 0x00007738u, 0x0000233eu, + 0x00002d33u, 0x0000773eu, 0x00002d64u, 0x000700f5u, 0x00000006u, 0x00007735u, 0x0000233bu, 0x00002d33u, + 0x00007736u, 0x00002d64u, 0x000200f9u, 0x00002354u, 0x000200f8u, 0x00002354u, 0x000700f5u, 0x00000008u, + 0x0000865bu, 0x00008667u, 0x00002af9u, 0x00007741u, 0x00002d65u, 0x000700f5u, 0x00000006u, 0x00007ce1u, + 0x0000233eu, 0x00002af9u, 0x00007738u, 0x00002d65u, 0x000700f5u, 0x00000006u, 0x0000774au, 0x0000233bu, + 0x00002af9u, 0x00007735u, 0x00002d65u, 0x000300f7u, 0x00002369u, 0x00000000u, 0x000400fau, 0x00002284u, + 0x00002356u, 0x00002369u, 0x000200f8u, 0x00002356u, 0x00080041u, 0x0000027cu, 0x00002359u, 0x00000a24u, + 0x00000208u, 0x00002016u, 0x0000021au, 0x0000774au, 0x0004003du, 0x0000022eu, 0x0000235au, 0x00002359u, + 0x00040071u, 0x00000006u, 0x0000235bu, 0x0000235au, 0x00070041u, 0x00000270u, 0x00002d69u, 0x000002d6u, + 0x00000208u, 0x0000235bu, 0x00000208u, 0x0004003du, 0x00000006u, 0x00002d6au, 0x00002d69u, 0x00070041u, + 0x00000270u, 0x00002d6cu, 0x000002d6u, 0x00000208u, 0x0000235bu, 0x00000217u, 0x0004003du, 0x00000006u, + 0x00002d6du, 0x00002d6cu, 0x00070041u, 0x00000270u, 0x00002d6fu, 0x000002d6u, 0x00000208u, 0x0000235bu, + 0x0000021au, 0x0004003du, 0x00000006u, 0x00002d70u, 0x00002d6fu, 0x00070041u, 0x00000270u, 0x00002d72u, + 0x000002d6u, 0x00000208u, 0x0000235bu, 0x0000021du, 0x0004003du, 0x00000006u, 0x00002d73u, 0x00002d72u, + 0x00070041u, 0x00000270u, 0x00002d75u, 0x000002d6u, 0x00000208u, 0x0000235bu, 0x00000220u, 0x0004003du, + 0x00000006u, 0x00002d76u, 0x00002d75u, 0x00070041u, 0x00000270u, 0x00002d78u, 0x000002d6u, 0x00000208u, + 0x0000235bu, 0x00000223u, 0x0004003du, 0x00000006u, 0x00002d79u, 0x00002d78u, 0x00070041u, 0x0000027cu, + 0x00002d7bu, 0x000002d6u, 0x00000208u, 0x0000235bu, 0x00000226u, 0x0004003du, 0x0000022eu, 0x00002d7cu, + 0x00002d7bu, 0x00040071u, 0x00000006u, 0x00002d7du, 0x00002d7cu, 0x0004007cu, 0x00000008u, 0x00002d7eu, + 0x00002d7du, 0x00070041u, 0x0000027cu, 0x00002d80u, 0x000002d6u, 0x00000208u, 0x0000235bu, 0x00000229u, + 0x0004003du, 0x0000022eu, 0x00002d81u, 0x00002d80u, 0x00040071u, 0x00000006u, 0x00002d82u, 0x00002d81u, + 0x0004007cu, 0x00000008u, 0x00002d83u, 0x00002d82u, 0x00070041u, 0x0000027cu, 0x00002d85u, 0x000002d6u, + 0x00000208u, 0x0000235bu, 0x00000263u, 0x0004003du, 0x0000022eu, 0x00002d86u, 0x00002d85u, 0x00040071u, + 0x00000006u, 0x00002d87u, 0x00002d86u, 0x0004007cu, 0x00000008u, 0x00002d88u, 0x00002d87u, 0x00070041u, + 0x0000027cu, 0x00002d8au, 0x000002d6u, 0x00000208u, 0x0000235bu, 0x00000269u, 0x0004003du, 0x0000022eu, + 0x00002d8bu, 0x00002d8au, 0x00040071u, 0x00000006u, 0x00002d8cu, 0x00002d8bu, 0x0004007cu, 0x00000008u, + 0x00002d8du, 0x00002d8cu, 0x00070041u, 0x0000027cu, 0x00002d8fu, 0x000002d6u, 0x00000208u, 0x0000235bu, + 0x0000026fu, 0x0004003du, 0x0000022eu, 0x00002d90u, 0x00002d8fu, 0x00040071u, 0x00000006u, 0x00002d91u, + 0x00002d90u, 0x0004007cu, 0x00000008u, 0x00002d92u, 0x00002d91u, 0x00070041u, 0x0000027cu, 0x00002d94u, + 0x000002d6u, 0x00000208u, 0x0000235bu, 0x00000274u, 0x0004003du, 0x0000022eu, 0x00002d95u, 0x00002d94u, + 0x00040071u, 0x00000006u, 0x00002d96u, 0x00002d95u, 0x0004007cu, 0x00000008u, 0x00002d97u, 0x00002d96u, + 0x00070041u, 0x0000027cu, 0x00002d99u, 0x000002d6u, 0x00000208u, 0x0000235bu, 0x0000027bu, 0x0004003du, + 0x0000022eu, 0x00002d9au, 0x00002d99u, 0x00040071u, 0x00000006u, 0x00002d9bu, 0x00002d9au, 0x0004007cu, + 0x00000008u, 0x00002d9cu, 0x00002d9bu, 0x00070041u, 0x0000027cu, 0x00002d9eu, 0x000002d6u, 0x00000208u, + 0x0000235bu, 0x00000282u, 0x0004003du, 0x0000022eu, 0x00002d9fu, 0x00002d9eu, 0x00040071u, 0x00000006u, + 0x00002da0u, 0x00002d9fu, 0x0004007cu, 0x00000008u, 0x00002da1u, 0x00002da0u, 0x000500c7u, 0x00000008u, + 0x00002efcu, 0x00002da1u, 0x00000217u, 0x000500abu, 0x0000005du, 0x00002efdu, 0x00002efcu, 0x00000208u, + 0x0004007cu, 0x00000008u, 0x00002f00u, 0x00002d6au, 0x0004007cu, 0x00000008u, 0x00002f03u, 0x00002d6du, + 0x00050051u, 0x00000008u, 0x00002f07u, 0x000076c6u, 0x00000000u, 0x0008000cu, 0x00000008u, 0x000033d0u, + 0x00000001u, 0x0000002du, 0x00002f07u, 0x00000c5eu, 0x00000c19u, 0x000500b1u, 0x0000005du, 0x000033d2u, + 0x00002d92u, 0x00000274u, 0x000300f7u, 0x000033deu, 0x00000000u, 0x000400fau, 0x000033d2u, 0x000033d3u, + 0x000033d7u, 0x000200f8u, 0x000033d7u, 0x00050082u, 0x00000008u, 0x000033d9u, 0x00000382u, 0x00002d92u, + 0x000500c4u, 0x00000008u, 0x000033dbu, 0x000033d0u, 0x000033d9u, 0x000500c3u, 0x00000008u, 0x000033ddu, + 0x000033dbu, 0x0000055eu, 0x000200f9u, 0x000033deu, 0x000200f8u, 0x000033d3u, 0x000500c3u, 0x00000008u, + 0x000033d6u, 0x000033d0u, 0x00002d92u, 0x000200f9u, 0x000033deu, 0x000200f8u, 0x000033deu, 0x000700f5u, + 0x00000008u, 0x00007756u, 0x000033d6u, 0x000033d3u, 0x000033ddu, 0x000033d7u, 0x000300f7u, 0x000033fau, + 0x00000000u, 0x000400fau, 0x00002efdu, 0x000033e0u, 0x000033f5u, 0x000200f8u, 0x000033f5u, 0x000500c4u, + 0x00000008u, 0x000033f7u, 0x00002f00u, 0x0000021du, 0x00050082u, 0x00000008u, 0x000033f9u, 0x00007756u, + 0x000033f7u, 0x000200f9u, 0x000033fau, 0x000200f8u, 0x000033e0u, 0x000500c3u, 0x00000008u, 0x000033e2u, + 0x00007756u, 0x0000021du, 0x000500afu, 0x0000005du, 0x000033e4u, 0x000033e2u, 0x00002f03u, 0x000300f7u, + 0x000033f4u, 0x00000000u, 0x000400fau, 0x000033e4u, 0x000033e6u, 0x000033eeu, 0x000200f8u, 0x000033eeu, + 0x000500c4u, 0x00000008u, 0x000033f1u, 0x00002f00u, 0x0000021du, 0x00050082u, 0x00000008u, 0x000033f2u, + 0x00007756u, 0x000033f1u, 0x0007000cu, 0x00000008u, 0x000033f3u, 0x00000001u, 0x0000002au, 0x000033f2u, + 0x00000208u, 0x000200f9u, 0x000033f4u, 0x000200f8u, 0x000033e6u, 0x000500c3u, 0x00000008u, 0x000033e8u, + 0x00002f03u, 0x0000021au, 0x000500c3u, 0x00000008u, 0x000033eau, 0x00002f00u, 0x0000021au, 0x00050082u, + 0x00000008u, 0x000033ebu, 0x000033e8u, 0x000033eau, 0x000500c7u, 0x00000008u, 0x000033ecu, 0x000033ebu, + 0x0000114eu, 0x000500c4u, 0x00000008u, 0x000033edu, 0x000033ecu, 0x00000223u, 0x000200f9u, 0x000033f4u, + 0x000200f8u, 0x000033f4u, 0x000700f5u, 0x00000008u, 0x00007758u, 0x000033edu, 0x000033e6u, 0x000033f3u, + 0x000033eeu, 0x000200f9u, 0x000033fau, 0x000200f8u, 0x000033fau, 0x000700f5u, 0x00000008u, 0x00007757u, + 0x00007758u, 0x000033f4u, 0x000033f9u, 0x000033f5u, 0x000500c7u, 0x00000008u, 0x00002f0cu, 0x00002da1u, + 0x00000220u, 0x000500abu, 0x0000005du, 0x00002f0du, 0x00002f0cu, 0x00000208u, 0x0004007cu, 0x00000008u, + 0x00002f10u, 0x00002d70u, 0x0004007cu, 0x00000008u, 0x00002f13u, 0x00002d73u, 0x00050051u, 0x00000008u, + 0x00002f17u, 0x000076c6u, 0x00000001u, 0x0008000cu, 0x00000008u, 0x00003400u, 0x00000001u, 0x0000002du, + 0x00002f17u, 0x00000c5eu, 0x00000c19u, 0x000500b1u, 0x0000005du, 0x00003402u, 0x00002d9cu, 0x00000274u, + 0x000300f7u, 0x0000340eu, 0x00000000u, 0x000400fau, 0x00003402u, 0x00003403u, 0x00003407u, 0x000200f8u, + 0x00003407u, 0x00050082u, 0x00000008u, 0x00003409u, 0x00000382u, 0x00002d9cu, 0x000500c4u, 0x00000008u, + 0x0000340bu, 0x00003400u, 0x00003409u, 0x000500c3u, 0x00000008u, 0x0000340du, 0x0000340bu, 0x0000055eu, + 0x000200f9u, 0x0000340eu, 0x000200f8u, 0x00003403u, 0x000500c3u, 0x00000008u, 0x00003406u, 0x00003400u, + 0x00002d9cu, 0x000200f9u, 0x0000340eu, 0x000200f8u, 0x0000340eu, 0x000700f5u, 0x00000008u, 0x0000775cu, + 0x00003406u, 0x00003403u, 0x0000340du, 0x00003407u, 0x000300f7u, 0x0000342au, 0x00000000u, 0x000400fau, + 0x00002f0du, 0x00003410u, 0x00003425u, 0x000200f8u, 0x00003425u, 0x000500c4u, 0x00000008u, 0x00003427u, + 0x00002f10u, 0x0000021du, 0x00050082u, 0x00000008u, 0x00003429u, 0x0000775cu, 0x00003427u, 0x000200f9u, + 0x0000342au, 0x000200f8u, 0x00003410u, 0x000500c3u, 0x00000008u, 0x00003412u, 0x0000775cu, 0x0000021du, + 0x000500afu, 0x0000005du, 0x00003414u, 0x00003412u, 0x00002f13u, 0x000300f7u, 0x00003424u, 0x00000000u, + 0x000400fau, 0x00003414u, 0x00003416u, 0x0000341eu, 0x000200f8u, 0x0000341eu, 0x000500c4u, 0x00000008u, + 0x00003421u, 0x00002f10u, 0x0000021du, 0x00050082u, 0x00000008u, 0x00003422u, 0x0000775cu, 0x00003421u, + 0x0007000cu, 0x00000008u, 0x00003423u, 0x00000001u, 0x0000002au, 0x00003422u, 0x00000208u, 0x000200f9u, + 0x00003424u, 0x000200f8u, 0x00003416u, 0x000500c3u, 0x00000008u, 0x00003418u, 0x00002f13u, 0x0000021au, + 0x000500c3u, 0x00000008u, 0x0000341au, 0x00002f10u, 0x0000021au, 0x00050082u, 0x00000008u, 0x0000341bu, + 0x00003418u, 0x0000341au, 0x000500c7u, 0x00000008u, 0x0000341cu, 0x0000341bu, 0x0000114eu, 0x000500c4u, + 0x00000008u, 0x0000341du, 0x0000341cu, 0x00000223u, 0x000200f9u, 0x00003424u, 0x000200f8u, 0x00003424u, + 0x000700f5u, 0x00000008u, 0x0000775eu, 0x0000341du, 0x00003416u, 0x00003423u, 0x0000341eu, 0x000200f9u, + 0x0000342au, 0x000200f8u, 0x0000342au, 0x000700f5u, 0x00000008u, 0x0000775du, 0x0000775eu, 0x00003424u, + 0x00003429u, 0x00003425u, 0x00050050u, 0x0000005fu, 0x0000bde2u, 0x00007757u, 0x0000775du, 0x000500a6u, + 0x0000005du, 0x00002f1cu, 0x00002257u, 0x00002251u, 0x000300f7u, 0x00002f22u, 0x00000000u, 0x000400fau, + 0x00002f1cu, 0x00002f1du, 0x00002f21u, 0x000200f8u, 0x00002f21u, 0x000200f9u, 0x00002f22u, 0x000200f8u, + 0x00002f1du, 0x000500c7u, 0x0000005fu, 0x00002f20u, 0x0000bde2u, 0x0000bdcau, 0x000200f9u, 0x00002f22u, + 0x000200f8u, 0x00002f22u, 0x000700f5u, 0x0000005fu, 0x00007762u, 0x00002f20u, 0x00002f1du, 0x00000c45u, + 0x00002f21u, 0x00050051u, 0x00000008u, 0x00002f24u, 0x00007762u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00002f26u, 0x00007762u, 0x00000001u, 0x00050080u, 0x00000008u, 0x00002f27u, 0x00002f24u, 0x00002f26u, + 0x000500c3u, 0x0000005fu, 0x00002f2au, 0x0000bde2u, 0x0000bdc9u, 0x00050051u, 0x00000008u, 0x00002f2du, + 0x00002f2au, 0x00000000u, 0x000500abu, 0x0000005du, 0x00003431u, 0x00002d8du, 0x00000208u, 0x000300f7u, + 0x00003447u, 0x00000000u, 0x000400fau, 0x00003431u, 0x00003432u, 0x00003447u, 0x000200f8u, 0x00003432u, + 0x000500c4u, 0x00000008u, 0x00003435u, 0x00000217u, 0x00002d8du, 0x000500c7u, 0x00000008u, 0x00003438u, + 0x00002da1u, 0x0000021au, 0x000500abu, 0x0000005du, 0x00003439u, 0x00003438u, 0x00000208u, 0x000300f7u, + 0x00003442u, 0x00000000u, 0x000400fau, 0x00003439u, 0x0000343au, 0x00003442u, 0x000200f8u, 0x0000343au, + 0x000500c7u, 0x00000008u, 0x0000343du, 0x00002f2du, 0x00003435u, 0x00050082u, 0x00000008u, 0x0000343eu, + 0x0000343du, 0x00000217u, 0x0007000cu, 0x00000008u, 0x0000343fu, 0x00000001u, 0x0000002au, 0x0000343eu, + 0x00000208u, 0x000500c6u, 0x00000008u, 0x00003441u, 0x00002f2du, 0x0000343fu, 0x000200f9u, 0x00003442u, + 0x000200f8u, 0x00003442u, 0x000700f5u, 0x00000008u, 0x00007764u, 0x00002f2du, 0x00003432u, 0x00003441u, + 0x0000343au, 0x00050082u, 0x00000008u, 0x00003444u, 0x00003435u, 0x00000217u, 0x000500c7u, 0x00000008u, + 0x00003446u, 0x00007764u, 0x00003444u, 0x000200f9u, 0x00003447u, 0x000200f8u, 0x00003447u, 0x000700f5u, + 0x00000008u, 0x00007765u, 0x00002f2du, 0x00002f22u, 0x00003446u, 0x00003442u, 0x00050051u, 0x00000008u, + 0x00002f31u, 0x00002f2au, 0x00000001u, 0x000500abu, 0x0000005du, 0x0000344eu, 0x00002d97u, 0x00000208u, + 0x000300f7u, 0x00003464u, 0x00000000u, 0x000400fau, 0x0000344eu, 0x0000344fu, 0x00003464u, 0x000200f8u, + 0x0000344fu, 0x000500c4u, 0x00000008u, 0x00003452u, 0x00000217u, 0x00002d97u, 0x000500c7u, 0x00000008u, + 0x00003455u, 0x00002da1u, 0x00000263u, 0x000500abu, 0x0000005du, 0x00003456u, 0x00003455u, 0x00000208u, + 0x000300f7u, 0x0000345fu, 0x00000000u, 0x000400fau, 0x00003456u, 0x00003457u, 0x0000345fu, 0x000200f8u, + 0x00003457u, 0x000500c7u, 0x00000008u, 0x0000345au, 0x00002f31u, 0x00003452u, 0x00050082u, 0x00000008u, + 0x0000345bu, 0x0000345au, 0x00000217u, 0x0007000cu, 0x00000008u, 0x0000345cu, 0x00000001u, 0x0000002au, + 0x0000345bu, 0x00000208u, 0x000500c6u, 0x00000008u, 0x0000345eu, 0x00002f31u, 0x0000345cu, 0x000200f9u, + 0x0000345fu, 0x000200f8u, 0x0000345fu, 0x000700f5u, 0x00000008u, 0x00007768u, 0x00002f31u, 0x0000344fu, + 0x0000345eu, 0x00003457u, 0x00050082u, 0x00000008u, 0x00003461u, 0x00003452u, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x00003463u, 0x00007768u, 0x00003461u, 0x000200f9u, 0x00003464u, 0x000200f8u, 0x00003464u, + 0x000700f5u, 0x00000008u, 0x00007769u, 0x00002f31u, 0x00003447u, 0x00003463u, 0x0000345fu, 0x00050080u, + 0x00000008u, 0x00002f35u, 0x00002f2du, 0x00000217u, 0x000300f7u, 0x00003481u, 0x00000000u, 0x000400fau, + 0x00003431u, 0x0000346cu, 0x00003481u, 0x000200f8u, 0x0000346cu, 0x000500c4u, 0x00000008u, 0x0000346fu, + 0x00000217u, 0x00002d8du, 0x000500c7u, 0x00000008u, 0x00003472u, 0x00002da1u, 0x0000021au, 0x000500abu, + 0x0000005du, 0x00003473u, 0x00003472u, 0x00000208u, 0x000300f7u, 0x0000347cu, 0x00000000u, 0x000400fau, + 0x00003473u, 0x00003474u, 0x0000347cu, 0x000200f8u, 0x00003474u, 0x000500c7u, 0x00000008u, 0x00003477u, + 0x00002f35u, 0x0000346fu, 0x00050082u, 0x00000008u, 0x00003478u, 0x00003477u, 0x00000217u, 0x0007000cu, + 0x00000008u, 0x00003479u, 0x00000001u, 0x0000002au, 0x00003478u, 0x00000208u, 0x000500c6u, 0x00000008u, + 0x0000347bu, 0x00002f35u, 0x00003479u, 0x000200f9u, 0x0000347cu, 0x000200f8u, 0x0000347cu, 0x000700f5u, + 0x00000008u, 0x0000776cu, 0x00002f35u, 0x0000346cu, 0x0000347bu, 0x00003474u, 0x00050082u, 0x00000008u, + 0x0000347eu, 0x0000346fu, 0x00000217u, 0x000500c7u, 0x00000008u, 0x00003480u, 0x0000776cu, 0x0000347eu, + 0x000200f9u, 0x00003481u, 0x000200f8u, 0x00003481u, 0x000700f5u, 0x00000008u, 0x0000776du, 0x00002f35u, + 0x00003464u, 0x00003480u, 0x0000347cu, 0x00050080u, 0x00000008u, 0x00002f3au, 0x00002f31u, 0x00000217u, + 0x000300f7u, 0x0000349eu, 0x00000000u, 0x000400fau, 0x0000344eu, 0x00003489u, 0x0000349eu, 0x000200f8u, + 0x00003489u, 0x000500c4u, 0x00000008u, 0x0000348cu, 0x00000217u, 0x00002d97u, 0x000500c7u, 0x00000008u, + 0x0000348fu, 0x00002da1u, 0x00000263u, 0x000500abu, 0x0000005du, 0x00003490u, 0x0000348fu, 0x00000208u, + 0x000300f7u, 0x00003499u, 0x00000000u, 0x000400fau, 0x00003490u, 0x00003491u, 0x00003499u, 0x000200f8u, + 0x00003491u, 0x000500c7u, 0x00000008u, 0x00003494u, 0x00002f3au, 0x0000348cu, 0x00050082u, 0x00000008u, + 0x00003495u, 0x00003494u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00003496u, 0x00000001u, 0x0000002au, + 0x00003495u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00003498u, 0x00002f3au, 0x00003496u, 0x000200f9u, + 0x00003499u, 0x000200f8u, 0x00003499u, 0x000700f5u, 0x00000008u, 0x00007770u, 0x00002f3au, 0x00003489u, + 0x00003498u, 0x00003491u, 0x00050082u, 0x00000008u, 0x0000349bu, 0x0000348cu, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x0000349du, 0x00007770u, 0x0000349bu, 0x000200f9u, 0x0000349eu, 0x000200f8u, 0x0000349eu, + 0x000700f5u, 0x00000008u, 0x00007771u, 0x00002f3au, 0x00003481u, 0x0000349du, 0x00003499u, 0x00050082u, + 0x00000008u, 0x00002f3fu, 0x00007771u, 0x00007769u, 0x0007000cu, 0x00000008u, 0x00002f40u, 0x00000001u, + 0x0000002au, 0x00002f3fu, 0x000013aeu, 0x000500c7u, 0x00000008u, 0x00002f42u, 0x00007769u, 0x00000390u, + 0x00050080u, 0x00000008u, 0x00002f44u, 0x00002f42u, 0x00002f40u, 0x000500aau, 0x00000880u, 0x00002f4au, + 0x00007762u, 0x000013bau, 0x00050051u, 0x0000005du, 0x00002f4bu, 0x00002f4au, 0x00000000u, 0x00050051u, + 0x0000005du, 0x00002f4cu, 0x00002f4au, 0x00000001u, 0x00070050u, 0x000005feu, 0x00002f4du, 0x00002281u, + 0x00002293u, 0x00002f4bu, 0x00002f4cu, 0x0004009bu, 0x0000005du, 0x00002f4eu, 0x00002f4du, 0x000500afu, + 0x0000005du, 0x00002f50u, 0x00002f27u, 0x00000382u, 0x000600a9u, 0x00000008u, 0x0000bdfdu, 0x00002f4eu, + 0x00000208u, 0x00002f27u, 0x000500aau, 0x0000005du, 0x00002f56u, 0x00002d7eu, 0x00000217u, 0x000500afu, + 0x0000005du, 0x00002f58u, 0x0000bdfdu, 0x00000382u, 0x000300f7u, 0x00002f61u, 0x00000000u, 0x000400fau, + 0x00002f58u, 0x00002f59u, 0x00002f5du, 0x000200f8u, 0x00002f5du, 0x00050050u, 0x0000005fu, 0x00002f60u, + 0x00007765u, 0x00002f42u, 0x000200f9u, 0x00002f61u, 0x000200f8u, 0x00002f59u, 0x00050050u, 0x0000005fu, + 0x00002f5cu, 0x0000776du, 0x00002f44u, 0x000200f9u, 0x00002f61u, 0x000200f8u, 0x00002f61u, 0x000700f5u, + 0x0000005fu, 0x0000778cu, 0x00002f5cu, 0x00002f59u, 0x00002f60u, 0x00002f5du, 0x000500c7u, 0x00000008u, + 0x00002f64u, 0x00007765u, 0x00000217u, 0x000500c4u, 0x00000008u, 0x00002f65u, 0x00002f64u, 0x00000220u, + 0x000500c3u, 0x00000008u, 0x00002f68u, 0x00002f24u, 0x00000217u, 0x000500c5u, 0x00000008u, 0x00002f69u, + 0x00002f65u, 0x00002f68u, 0x000300f7u, 0x0000322du, 0x00000000u, 0x000400fau, 0x00002251u, 0x00002f6bu, + 0x00003011u, 0x000200f8u, 0x00003011u, 0x000300f7u, 0x0000322cu, 0x00000000u, 0x000d00fbu, 0x00002d7eu, + 0x0000322cu, 0x00000000u, 0x00003014u, 0x00000001u, 0x0000309cu, 0x00000002u, 0x000030cau, 0x00000003u, + 0x0000313du, 0x00000004u, 0x000031c5u, 0x000200f8u, 0x000031c5u, 0x000300f7u, 0x0000322bu, 0x00000000u, + 0x000700fbu, 0x00002d83u, 0x000031c8u, 0x00000000u, 0x000031e9u, 0x00000001u, 0x0000320au, 0x000200f8u, + 0x0000320au, 0x0004007cu, 0x000000a6u, 0x0000320cu, 0x0000778cu, 0x00050051u, 0x00000006u, 0x00004522u, + 0x0000320cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004523u, 0x00002d79u, 0x00004522u, 0x00050080u, + 0x00000006u, 0x00004524u, 0x00002d76u, 0x00004523u, 0x00050051u, 0x00000006u, 0x00004526u, 0x0000320cu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00004528u, 0x00004524u, 0x00004526u, 0x000500c7u, 0x00000006u, + 0x0000452au, 0x00004528u, 0x00000e67u, 0x000500c7u, 0x00000006u, 0x0000452eu, 0x00004522u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x0000452fu, 0x0000452eu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004531u, + 0x0000452au, 0x0000452fu, 0x000500c6u, 0x00000006u, 0x00004533u, 0x00004531u, 0x00000490u, 0x00080041u, + 0x0000027cu, 0x00004536u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00004533u, 0x0004003du, + 0x0000022eu, 0x00004537u, 0x00004536u, 0x00040071u, 0x00000006u, 0x00004538u, 0x00004537u, 0x0004007cu, + 0x00000008u, 0x0000453au, 0x00004538u, 0x00070050u, 0x00000009u, 0x0000453bu, 0x0000453au, 0x0000453au, + 0x0000453au, 0x0000453au, 0x000300f7u, 0x00003220u, 0x00000000u, 0x000400fau, 0x00002257u, 0x00003211u, + 0x00003220u, 0x000200f8u, 0x00003211u, 0x00050050u, 0x0000005fu, 0x00003214u, 0x0000776du, 0x00002f42u, + 0x0004007cu, 0x000000a6u, 0x00003215u, 0x00003214u, 0x00050051u, 0x00000006u, 0x00004546u, 0x00003215u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004547u, 0x00002d79u, 0x00004546u, 0x00050080u, 0x00000006u, + 0x00004548u, 0x00002d76u, 0x00004547u, 0x00050051u, 0x00000006u, 0x0000454au, 0x00003215u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x0000454cu, 0x00004548u, 0x0000454au, 0x000500c7u, 0x00000006u, 0x0000454eu, + 0x0000454cu, 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00004552u, 0x00004546u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00004553u, 0x00004552u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004555u, 0x0000454eu, + 0x00004553u, 0x000500c6u, 0x00000006u, 0x00004557u, 0x00004555u, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x0000455au, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00004557u, 0x0004003du, 0x0000022eu, + 0x0000455bu, 0x0000455au, 0x00040071u, 0x00000006u, 0x0000455cu, 0x0000455bu, 0x0004007cu, 0x00000008u, + 0x0000455eu, 0x0000455cu, 0x00070050u, 0x00000009u, 0x0000455fu, 0x0000455eu, 0x0000455eu, 0x0000455eu, + 0x0000455eu, 0x00050050u, 0x0000005fu, 0x0000321bu, 0x00007765u, 0x00002f44u, 0x0004007cu, 0x000000a6u, + 0x0000321cu, 0x0000321bu, 0x00050051u, 0x00000006u, 0x0000456au, 0x0000321cu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000456bu, 0x00002d79u, 0x0000456au, 0x00050080u, 0x00000006u, 0x0000456cu, 0x00002d76u, + 0x0000456bu, 0x00050051u, 0x00000006u, 0x0000456eu, 0x0000321cu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00004570u, 0x0000456cu, 0x0000456eu, 0x000500c7u, 0x00000006u, 0x00004572u, 0x00004570u, 0x00000e67u, + 0x000500c7u, 0x00000006u, 0x00004576u, 0x0000456au, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004577u, + 0x00004576u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004579u, 0x00004572u, 0x00004577u, 0x000500c6u, + 0x00000006u, 0x0000457bu, 0x00004579u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000457eu, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x0000457bu, 0x0004003du, 0x0000022eu, 0x0000457fu, 0x0000457eu, + 0x00040071u, 0x00000006u, 0x00004580u, 0x0000457fu, 0x0004007cu, 0x00000008u, 0x00004582u, 0x00004580u, + 0x00070050u, 0x00000009u, 0x00004583u, 0x00004582u, 0x00004582u, 0x00004582u, 0x00004582u, 0x000200f9u, + 0x00003220u, 0x000200f8u, 0x00003220u, 0x000700f5u, 0x00000009u, 0x000079ceu, 0x00007970u, 0x0000320au, + 0x00004583u, 0x00003211u, 0x000700f5u, 0x00000009u, 0x00007950u, 0x000078efu, 0x0000320au, 0x0000455fu, + 0x00003211u, 0x000300f7u, 0x0000322au, 0x00000000u, 0x000400fau, 0x00002f4eu, 0x00003222u, 0x0000322au, + 0x000200f8u, 0x00003222u, 0x00050050u, 0x0000005fu, 0x00003225u, 0x0000776du, 0x00002f44u, 0x0004007cu, + 0x000000a6u, 0x00003226u, 0x00003225u, 0x00050051u, 0x00000006u, 0x0000458eu, 0x00003226u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000458fu, 0x00002d79u, 0x0000458eu, 0x00050080u, 0x00000006u, 0x00004590u, + 0x00002d76u, 0x0000458fu, 0x00050051u, 0x00000006u, 0x00004592u, 0x00003226u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00004594u, 0x00004590u, 0x00004592u, 0x000500c7u, 0x00000006u, 0x00004596u, 0x00004594u, + 0x00000e67u, 0x000500c7u, 0x00000006u, 0x0000459au, 0x0000458eu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x0000459bu, 0x0000459au, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000459du, 0x00004596u, 0x0000459bu, + 0x000500c6u, 0x00000006u, 0x0000459fu, 0x0000459du, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000045a2u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000459fu, 0x0004003du, 0x0000022eu, 0x000045a3u, + 0x000045a2u, 0x00040071u, 0x00000006u, 0x000045a4u, 0x000045a3u, 0x0004007cu, 0x00000008u, 0x000045a6u, + 0x000045a4u, 0x00070050u, 0x00000009u, 0x000045a7u, 0x000045a6u, 0x000045a6u, 0x000045a6u, 0x000045a6u, + 0x000200f9u, 0x0000322au, 0x000200f8u, 0x0000322au, 0x000700f5u, 0x00000009u, 0x00007a4bu, 0x000079ebu, + 0x00003220u, 0x000045a7u, 0x00003222u, 0x000200f9u, 0x0000322bu, 0x000200f8u, 0x000031e9u, 0x0004007cu, + 0x000000a6u, 0x000031ebu, 0x0000778cu, 0x00050051u, 0x00000006u, 0x00004457u, 0x000031ebu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00004458u, 0x00002d79u, 0x00004457u, 0x00050080u, 0x00000006u, 0x00004459u, + 0x00002d76u, 0x00004458u, 0x00050051u, 0x00000006u, 0x0000445bu, 0x000031ebu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x0000445cu, 0x0000445bu, 0x00000217u, 0x00050080u, 0x00000006u, 0x0000445eu, 0x00004459u, + 0x0000445cu, 0x000500c7u, 0x00000006u, 0x00004460u, 0x0000445eu, 0x00000e67u, 0x000400c8u, 0x00000006u, + 0x00004463u, 0x0000445bu, 0x000500c7u, 0x00000006u, 0x00004464u, 0x00004463u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00004465u, 0x00004464u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00004469u, 0x00004457u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000446au, 0x00004469u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x0000446cu, 0x00004460u, 0x0000446au, 0x000500c6u, 0x00000006u, 0x0000446eu, 0x0000446cu, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00004471u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000446eu, + 0x0004003du, 0x0000022eu, 0x00004472u, 0x00004471u, 0x00040071u, 0x00000006u, 0x00004473u, 0x00004472u, + 0x000500c2u, 0x00000006u, 0x00004476u, 0x00004473u, 0x00004465u, 0x000500c7u, 0x00000006u, 0x00004477u, + 0x00004476u, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00004479u, 0x00004477u, 0x00000220u, 0x000500c5u, + 0x00000006u, 0x0000447bu, 0x00004477u, 0x00004479u, 0x0004007cu, 0x00000008u, 0x0000447du, 0x0000447bu, + 0x00070050u, 0x00000009u, 0x0000447eu, 0x0000447du, 0x0000447du, 0x0000447du, 0x0000447du, 0x000300f7u, + 0x000031ffu, 0x00000000u, 0x000400fau, 0x00002257u, 0x000031f0u, 0x000031ffu, 0x000200f8u, 0x000031f0u, + 0x00050050u, 0x0000005fu, 0x000031f3u, 0x0000776du, 0x00002f42u, 0x0004007cu, 0x000000a6u, 0x000031f4u, + 0x000031f3u, 0x00050051u, 0x00000006u, 0x0000448au, 0x000031f4u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000448bu, 0x00002d79u, 0x0000448au, 0x00050080u, 0x00000006u, 0x0000448cu, 0x00002d76u, 0x0000448bu, + 0x00050051u, 0x00000006u, 0x0000448eu, 0x000031f4u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000448fu, + 0x0000448eu, 0x00000217u, 0x00050080u, 0x00000006u, 0x00004491u, 0x0000448cu, 0x0000448fu, 0x000500c7u, + 0x00000006u, 0x00004493u, 0x00004491u, 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00004496u, 0x0000448eu, + 0x000500c7u, 0x00000006u, 0x00004497u, 0x00004496u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00004498u, + 0x00004497u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x0000449cu, 0x0000448au, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x0000449du, 0x0000449cu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000449fu, 0x00004493u, + 0x0000449du, 0x000500c6u, 0x00000006u, 0x000044a1u, 0x0000449fu, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x000044a4u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000044a1u, 0x0004003du, 0x0000022eu, + 0x000044a5u, 0x000044a4u, 0x00040071u, 0x00000006u, 0x000044a6u, 0x000044a5u, 0x000500c2u, 0x00000006u, + 0x000044a9u, 0x000044a6u, 0x00004498u, 0x000500c7u, 0x00000006u, 0x000044aau, 0x000044a9u, 0x00000e8au, + 0x000500c4u, 0x00000006u, 0x000044acu, 0x000044aau, 0x00000220u, 0x000500c5u, 0x00000006u, 0x000044aeu, + 0x000044aau, 0x000044acu, 0x0004007cu, 0x00000008u, 0x000044b0u, 0x000044aeu, 0x00070050u, 0x00000009u, + 0x000044b1u, 0x000044b0u, 0x000044b0u, 0x000044b0u, 0x000044b0u, 0x00050050u, 0x0000005fu, 0x000031fau, + 0x00007765u, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x000031fbu, 0x000031fau, 0x00050051u, 0x00000006u, + 0x000044bdu, 0x000031fbu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000044beu, 0x00002d79u, 0x000044bdu, + 0x00050080u, 0x00000006u, 0x000044bfu, 0x00002d76u, 0x000044beu, 0x00050051u, 0x00000006u, 0x000044c1u, + 0x000031fbu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000044c2u, 0x000044c1u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x000044c4u, 0x000044bfu, 0x000044c2u, 0x000500c7u, 0x00000006u, 0x000044c6u, 0x000044c4u, + 0x00000e67u, 0x000400c8u, 0x00000006u, 0x000044c9u, 0x000044c1u, 0x000500c7u, 0x00000006u, 0x000044cau, + 0x000044c9u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000044cbu, 0x000044cau, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x000044cfu, 0x000044bdu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000044d0u, 0x000044cfu, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x000044d2u, 0x000044c6u, 0x000044d0u, 0x000500c6u, 0x00000006u, + 0x000044d4u, 0x000044d2u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000044d7u, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x000044d4u, 0x0004003du, 0x0000022eu, 0x000044d8u, 0x000044d7u, 0x00040071u, + 0x00000006u, 0x000044d9u, 0x000044d8u, 0x000500c2u, 0x00000006u, 0x000044dcu, 0x000044d9u, 0x000044cbu, + 0x000500c7u, 0x00000006u, 0x000044ddu, 0x000044dcu, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x000044dfu, + 0x000044ddu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x000044e1u, 0x000044ddu, 0x000044dfu, 0x0004007cu, + 0x00000008u, 0x000044e3u, 0x000044e1u, 0x00070050u, 0x00000009u, 0x000044e4u, 0x000044e3u, 0x000044e3u, + 0x000044e3u, 0x000044e3u, 0x000200f9u, 0x000031ffu, 0x000200f8u, 0x000031ffu, 0x000700f5u, 0x00000009u, + 0x000079ccu, 0x00007970u, 0x000031e9u, 0x000044e4u, 0x000031f0u, 0x000700f5u, 0x00000009u, 0x0000794eu, + 0x000078efu, 0x000031e9u, 0x000044b1u, 0x000031f0u, 0x000300f7u, 0x00003209u, 0x00000000u, 0x000400fau, + 0x00002f4eu, 0x00003201u, 0x00003209u, 0x000200f8u, 0x00003201u, 0x00050050u, 0x0000005fu, 0x00003204u, + 0x0000776du, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x00003205u, 0x00003204u, 0x00050051u, 0x00000006u, + 0x000044f0u, 0x00003205u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000044f1u, 0x00002d79u, 0x000044f0u, + 0x00050080u, 0x00000006u, 0x000044f2u, 0x00002d76u, 0x000044f1u, 0x00050051u, 0x00000006u, 0x000044f4u, + 0x00003205u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000044f5u, 0x000044f4u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x000044f7u, 0x000044f2u, 0x000044f5u, 0x000500c7u, 0x00000006u, 0x000044f9u, 0x000044f7u, + 0x00000e67u, 0x000400c8u, 0x00000006u, 0x000044fcu, 0x000044f4u, 0x000500c7u, 0x00000006u, 0x000044fdu, + 0x000044fcu, 0x0000048au, 0x00050084u, 0x00000006u, 0x000044feu, 0x000044fdu, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00004502u, 0x000044f0u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004503u, 0x00004502u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004505u, 0x000044f9u, 0x00004503u, 0x000500c6u, 0x00000006u, + 0x00004507u, 0x00004505u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000450au, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00004507u, 0x0004003du, 0x0000022eu, 0x0000450bu, 0x0000450au, 0x00040071u, + 0x00000006u, 0x0000450cu, 0x0000450bu, 0x000500c2u, 0x00000006u, 0x0000450fu, 0x0000450cu, 0x000044feu, + 0x000500c7u, 0x00000006u, 0x00004510u, 0x0000450fu, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00004512u, + 0x00004510u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00004514u, 0x00004510u, 0x00004512u, 0x0004007cu, + 0x00000008u, 0x00004516u, 0x00004514u, 0x00070050u, 0x00000009u, 0x00004517u, 0x00004516u, 0x00004516u, + 0x00004516u, 0x00004516u, 0x000200f9u, 0x00003209u, 0x000200f8u, 0x00003209u, 0x000700f5u, 0x00000009u, + 0x00007a49u, 0x000079ebu, 0x000031ffu, 0x00004517u, 0x00003201u, 0x000200f9u, 0x0000322bu, 0x000200f8u, + 0x000031c8u, 0x0004007cu, 0x000000a6u, 0x000031cau, 0x0000778cu, 0x00050051u, 0x00000006u, 0x000043aau, + 0x000031cau, 0x00000001u, 0x00050084u, 0x00000006u, 0x000043abu, 0x00002d79u, 0x000043aau, 0x00050080u, + 0x00000006u, 0x000043acu, 0x00002d76u, 0x000043abu, 0x00050051u, 0x00000006u, 0x000043aeu, 0x000031cau, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000043afu, 0x000043aeu, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x000043b1u, 0x000043acu, 0x000043afu, 0x000500c7u, 0x00000006u, 0x000043b3u, 0x000043b1u, 0x00000e67u, + 0x000500c2u, 0x00000006u, 0x000043b5u, 0x000043b3u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000043b8u, + 0x000043aau, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000043b9u, 0x000043b8u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x000043bbu, 0x000043b5u, 0x000043b9u, 0x000500c6u, 0x00000006u, 0x000043bdu, 0x000043bbu, + 0x0000048au, 0x00080041u, 0x00000275u, 0x000043c0u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x000043bdu, 0x0004003du, 0x00000230u, 0x000043c1u, 0x000043c0u, 0x00040071u, 0x00000006u, 0x000043c2u, + 0x000043c1u, 0x000500c2u, 0x00000006u, 0x000043c4u, 0x000043c2u, 0x00000263u, 0x0004007cu, 0x00000008u, + 0x000043c5u, 0x000043c4u, 0x000500c7u, 0x00000006u, 0x000043c7u, 0x000043c2u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000043c8u, 0x000043c7u, 0x00050050u, 0x0000005fu, 0x000043c9u, 0x000043c5u, 0x000043c8u, + 0x0009004fu, 0x00000009u, 0x000043cau, 0x000043c9u, 0x000043c9u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000300f7u, 0x000031deu, 0x00000000u, 0x000400fau, 0x00002257u, 0x000031cfu, 0x000031deu, + 0x000200f8u, 0x000031cfu, 0x00050050u, 0x0000005fu, 0x000031d2u, 0x0000776du, 0x00002f42u, 0x0004007cu, + 0x000000a6u, 0x000031d3u, 0x000031d2u, 0x00050051u, 0x00000006u, 0x000043d5u, 0x000031d3u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000043d6u, 0x00002d79u, 0x000043d5u, 0x00050080u, 0x00000006u, 0x000043d7u, + 0x00002d76u, 0x000043d6u, 0x00050051u, 0x00000006u, 0x000043d9u, 0x000031d3u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x000043dau, 0x000043d9u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000043dcu, 0x000043d7u, + 0x000043dau, 0x000500c7u, 0x00000006u, 0x000043deu, 0x000043dcu, 0x00000e67u, 0x000500c2u, 0x00000006u, + 0x000043e0u, 0x000043deu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000043e3u, 0x000043d5u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x000043e4u, 0x000043e3u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x000043e6u, + 0x000043e0u, 0x000043e4u, 0x000500c6u, 0x00000006u, 0x000043e8u, 0x000043e6u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x000043ebu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000043e8u, 0x0004003du, + 0x00000230u, 0x000043ecu, 0x000043ebu, 0x00040071u, 0x00000006u, 0x000043edu, 0x000043ecu, 0x000500c2u, + 0x00000006u, 0x000043efu, 0x000043edu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x000043f0u, 0x000043efu, + 0x000500c7u, 0x00000006u, 0x000043f2u, 0x000043edu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000043f3u, + 0x000043f2u, 0x00050050u, 0x0000005fu, 0x000043f4u, 0x000043f0u, 0x000043f3u, 0x0009004fu, 0x00000009u, + 0x000043f5u, 0x000043f4u, 0x000043f4u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, + 0x0000005fu, 0x000031d9u, 0x00007765u, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x000031dau, 0x000031d9u, + 0x00050051u, 0x00000006u, 0x00004400u, 0x000031dau, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004401u, + 0x00002d79u, 0x00004400u, 0x00050080u, 0x00000006u, 0x00004402u, 0x00002d76u, 0x00004401u, 0x00050051u, + 0x00000006u, 0x00004404u, 0x000031dau, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004405u, 0x00004404u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004407u, 0x00004402u, 0x00004405u, 0x000500c7u, 0x00000006u, + 0x00004409u, 0x00004407u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x0000440bu, 0x00004409u, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x0000440eu, 0x00004400u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000440fu, + 0x0000440eu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004411u, 0x0000440bu, 0x0000440fu, 0x000500c6u, + 0x00000006u, 0x00004413u, 0x00004411u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00004416u, 0x00000f48u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00004413u, 0x0004003du, 0x00000230u, 0x00004417u, 0x00004416u, + 0x00040071u, 0x00000006u, 0x00004418u, 0x00004417u, 0x000500c2u, 0x00000006u, 0x0000441au, 0x00004418u, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x0000441bu, 0x0000441au, 0x000500c7u, 0x00000006u, 0x0000441du, + 0x00004418u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000441eu, 0x0000441du, 0x00050050u, 0x0000005fu, + 0x0000441fu, 0x0000441bu, 0x0000441eu, 0x0009004fu, 0x00000009u, 0x00004420u, 0x0000441fu, 0x0000441fu, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000031deu, 0x000200f8u, 0x000031deu, + 0x000700f5u, 0x00000009u, 0x000079cau, 0x00007970u, 0x000031c8u, 0x00004420u, 0x000031cfu, 0x000700f5u, + 0x00000009u, 0x0000794cu, 0x000078efu, 0x000031c8u, 0x000043f5u, 0x000031cfu, 0x000300f7u, 0x000031e8u, + 0x00000000u, 0x000400fau, 0x00002f4eu, 0x000031e0u, 0x000031e8u, 0x000200f8u, 0x000031e0u, 0x00050050u, + 0x0000005fu, 0x000031e3u, 0x0000776du, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x000031e4u, 0x000031e3u, + 0x00050051u, 0x00000006u, 0x0000442bu, 0x000031e4u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000442cu, + 0x00002d79u, 0x0000442bu, 0x00050080u, 0x00000006u, 0x0000442du, 0x00002d76u, 0x0000442cu, 0x00050051u, + 0x00000006u, 0x0000442fu, 0x000031e4u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004430u, 0x0000442fu, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004432u, 0x0000442du, 0x00004430u, 0x000500c7u, 0x00000006u, + 0x00004434u, 0x00004432u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00004436u, 0x00004434u, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00004439u, 0x0000442bu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000443au, + 0x00004439u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x0000443cu, 0x00004436u, 0x0000443au, 0x000500c6u, + 0x00000006u, 0x0000443eu, 0x0000443cu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00004441u, 0x00000f48u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x0000443eu, 0x0004003du, 0x00000230u, 0x00004442u, 0x00004441u, + 0x00040071u, 0x00000006u, 0x00004443u, 0x00004442u, 0x000500c2u, 0x00000006u, 0x00004445u, 0x00004443u, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x00004446u, 0x00004445u, 0x000500c7u, 0x00000006u, 0x00004448u, + 0x00004443u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00004449u, 0x00004448u, 0x00050050u, 0x0000005fu, + 0x0000444au, 0x00004446u, 0x00004449u, 0x0009004fu, 0x00000009u, 0x0000444bu, 0x0000444au, 0x0000444au, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000031e8u, 0x000200f8u, 0x000031e8u, + 0x000700f5u, 0x00000009u, 0x00007a47u, 0x000079ebu, 0x000031deu, 0x0000444bu, 0x000031e0u, 0x000200f9u, + 0x0000322bu, 0x000200f8u, 0x0000322bu, 0x000900f5u, 0x00000009u, 0x00007a46u, 0x00007a47u, 0x000031e8u, + 0x00007a49u, 0x00003209u, 0x00007a4bu, 0x0000322au, 0x000900f5u, 0x00000009u, 0x000079c8u, 0x000079cau, + 0x000031e8u, 0x000079ccu, 0x00003209u, 0x000079ceu, 0x0000322au, 0x000900f5u, 0x00000009u, 0x0000794au, + 0x0000794cu, 0x000031e8u, 0x0000794eu, 0x00003209u, 0x00007950u, 0x0000322au, 0x000900f5u, 0x00000009u, + 0x00007857u, 0x000043cau, 0x000031e8u, 0x0000447eu, 0x00003209u, 0x0000453bu, 0x0000322au, 0x000200f9u, + 0x0000322cu, 0x000200f8u, 0x0000313du, 0x000300f7u, 0x000031c4u, 0x00000000u, 0x000b00fbu, 0x00002d83u, + 0x000031c4u, 0x00000000u, 0x00003140u, 0x00000001u, 0x00003161u, 0x00000002u, 0x00003182u, 0x00000003u, + 0x000031a3u, 0x000200f8u, 0x000031a3u, 0x0004007cu, 0x000000a6u, 0x000031a5u, 0x0000778cu, 0x00050051u, + 0x00000006u, 0x000042feu, 0x000031a5u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000042ffu, 0x00002d79u, + 0x000042feu, 0x00050080u, 0x00000006u, 0x00004300u, 0x00002d76u, 0x000042ffu, 0x00050051u, 0x00000006u, + 0x00004302u, 0x000031a5u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004303u, 0x00004302u, 0x000003c9u, + 0x00050080u, 0x00000006u, 0x00004305u, 0x00004300u, 0x00004303u, 0x000500c7u, 0x00000006u, 0x00004307u, + 0x00004305u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00004309u, 0x00004307u, 0x00000217u, 0x000500c7u, + 0x00000006u, 0x0000430cu, 0x000042feu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000430du, 0x0000430cu, + 0x00000217u, 0x000500c6u, 0x00000006u, 0x0000430fu, 0x00004309u, 0x0000430du, 0x000500c6u, 0x00000006u, + 0x00004311u, 0x0000430fu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00004314u, 0x00000f48u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00004311u, 0x0004003du, 0x00000230u, 0x00004315u, 0x00004314u, 0x00040071u, + 0x00000006u, 0x00004316u, 0x00004315u, 0x000500c2u, 0x00000006u, 0x00004318u, 0x00004316u, 0x00000263u, + 0x0004007cu, 0x00000008u, 0x00004319u, 0x00004318u, 0x000500c7u, 0x00000006u, 0x0000431bu, 0x00004316u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000431cu, 0x0000431bu, 0x00050050u, 0x0000005fu, 0x0000431du, + 0x00004319u, 0x0000431cu, 0x0009004fu, 0x00000009u, 0x0000431eu, 0x0000431du, 0x0000431du, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x000031b9u, 0x00000000u, 0x000400fau, 0x00002257u, + 0x000031aau, 0x000031b9u, 0x000200f8u, 0x000031aau, 0x00050050u, 0x0000005fu, 0x000031adu, 0x0000776du, + 0x00002f42u, 0x0004007cu, 0x000000a6u, 0x000031aeu, 0x000031adu, 0x00050051u, 0x00000006u, 0x00004329u, + 0x000031aeu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000432au, 0x00002d79u, 0x00004329u, 0x00050080u, + 0x00000006u, 0x0000432bu, 0x00002d76u, 0x0000432au, 0x00050051u, 0x00000006u, 0x0000432du, 0x000031aeu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x0000432eu, 0x0000432du, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00004330u, 0x0000432bu, 0x0000432eu, 0x000500c7u, 0x00000006u, 0x00004332u, 0x00004330u, 0x00000e67u, + 0x000500c2u, 0x00000006u, 0x00004334u, 0x00004332u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004337u, + 0x00004329u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004338u, 0x00004337u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x0000433au, 0x00004334u, 0x00004338u, 0x000500c6u, 0x00000006u, 0x0000433cu, 0x0000433au, + 0x0000048au, 0x00080041u, 0x00000275u, 0x0000433fu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x0000433cu, 0x0004003du, 0x00000230u, 0x00004340u, 0x0000433fu, 0x00040071u, 0x00000006u, 0x00004341u, + 0x00004340u, 0x000500c2u, 0x00000006u, 0x00004343u, 0x00004341u, 0x00000263u, 0x0004007cu, 0x00000008u, + 0x00004344u, 0x00004343u, 0x000500c7u, 0x00000006u, 0x00004346u, 0x00004341u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00004347u, 0x00004346u, 0x00050050u, 0x0000005fu, 0x00004348u, 0x00004344u, 0x00004347u, + 0x0009004fu, 0x00000009u, 0x00004349u, 0x00004348u, 0x00004348u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x00050050u, 0x0000005fu, 0x000031b4u, 0x00007765u, 0x00002f44u, 0x0004007cu, 0x000000a6u, + 0x000031b5u, 0x000031b4u, 0x00050051u, 0x00000006u, 0x00004354u, 0x000031b5u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004355u, 0x00002d79u, 0x00004354u, 0x00050080u, 0x00000006u, 0x00004356u, 0x00002d76u, + 0x00004355u, 0x00050051u, 0x00000006u, 0x00004358u, 0x000031b5u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00004359u, 0x00004358u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x0000435bu, 0x00004356u, 0x00004359u, + 0x000500c7u, 0x00000006u, 0x0000435du, 0x0000435bu, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x0000435fu, + 0x0000435du, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004362u, 0x00004354u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00004363u, 0x00004362u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004365u, 0x0000435fu, + 0x00004363u, 0x000500c6u, 0x00000006u, 0x00004367u, 0x00004365u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x0000436au, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00004367u, 0x0004003du, 0x00000230u, + 0x0000436bu, 0x0000436au, 0x00040071u, 0x00000006u, 0x0000436cu, 0x0000436bu, 0x000500c2u, 0x00000006u, + 0x0000436eu, 0x0000436cu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x0000436fu, 0x0000436eu, 0x000500c7u, + 0x00000006u, 0x00004371u, 0x0000436cu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00004372u, 0x00004371u, + 0x00050050u, 0x0000005fu, 0x00004373u, 0x0000436fu, 0x00004372u, 0x0009004fu, 0x00000009u, 0x00004374u, + 0x00004373u, 0x00004373u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000031b9u, + 0x000200f8u, 0x000031b9u, 0x000700f5u, 0x00000009u, 0x000079c7u, 0x00007970u, 0x000031a3u, 0x00004374u, + 0x000031aau, 0x000700f5u, 0x00000009u, 0x00007949u, 0x000078efu, 0x000031a3u, 0x00004349u, 0x000031aau, + 0x000300f7u, 0x000031c3u, 0x00000000u, 0x000400fau, 0x00002f4eu, 0x000031bbu, 0x000031c3u, 0x000200f8u, + 0x000031bbu, 0x00050050u, 0x0000005fu, 0x000031beu, 0x0000776du, 0x00002f44u, 0x0004007cu, 0x000000a6u, + 0x000031bfu, 0x000031beu, 0x00050051u, 0x00000006u, 0x0000437fu, 0x000031bfu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004380u, 0x00002d79u, 0x0000437fu, 0x00050080u, 0x00000006u, 0x00004381u, 0x00002d76u, + 0x00004380u, 0x00050051u, 0x00000006u, 0x00004383u, 0x000031bfu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00004384u, 0x00004383u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004386u, 0x00004381u, 0x00004384u, + 0x000500c7u, 0x00000006u, 0x00004388u, 0x00004386u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x0000438au, + 0x00004388u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x0000438du, 0x0000437fu, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x0000438eu, 0x0000438du, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004390u, 0x0000438au, + 0x0000438eu, 0x000500c6u, 0x00000006u, 0x00004392u, 0x00004390u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x00004395u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00004392u, 0x0004003du, 0x00000230u, + 0x00004396u, 0x00004395u, 0x00040071u, 0x00000006u, 0x00004397u, 0x00004396u, 0x000500c2u, 0x00000006u, + 0x00004399u, 0x00004397u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x0000439au, 0x00004399u, 0x000500c7u, + 0x00000006u, 0x0000439cu, 0x00004397u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000439du, 0x0000439cu, + 0x00050050u, 0x0000005fu, 0x0000439eu, 0x0000439au, 0x0000439du, 0x0009004fu, 0x00000009u, 0x0000439fu, + 0x0000439eu, 0x0000439eu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000031c3u, + 0x000200f8u, 0x000031c3u, 0x000700f5u, 0x00000009u, 0x00007a44u, 0x000079ebu, 0x000031b9u, 0x0000439fu, + 0x000031bbu, 0x000200f9u, 0x000031c4u, 0x000200f8u, 0x00003182u, 0x0004007cu, 0x000000a6u, 0x00003184u, + 0x0000778cu, 0x00050051u, 0x00000006u, 0x00004223u, 0x00003184u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004224u, 0x00002d79u, 0x00004223u, 0x00050080u, 0x00000006u, 0x00004225u, 0x00002d76u, 0x00004224u, + 0x00050051u, 0x00000006u, 0x00004227u, 0x00003184u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004228u, + 0x00004227u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x0000422au, 0x00004225u, 0x00004228u, 0x000500c7u, + 0x00000006u, 0x0000422cu, 0x0000422au, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x0000422eu, 0x0000422cu, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004231u, 0x00004223u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00004232u, 0x00004231u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004234u, 0x0000422eu, 0x00004232u, + 0x000500c6u, 0x00000006u, 0x00004236u, 0x00004234u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00004239u, + 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00004236u, 0x0004003du, 0x00000230u, 0x0000423au, + 0x00004239u, 0x00040071u, 0x00000006u, 0x0000423bu, 0x0000423au, 0x000500c2u, 0x00000006u, 0x00004243u, + 0x0000423bu, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00004245u, 0x0000423bu, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00004247u, 0x00004243u, 0x0004007cu, 0x00000008u, 0x0000424du, 0x00004245u, 0x00070050u, + 0x00000009u, 0x0000424eu, 0x00004247u, 0x00004247u, 0x00004247u, 0x0000424du, 0x000300f7u, 0x00003198u, + 0x00000000u, 0x000400fau, 0x00002257u, 0x00003189u, 0x00003198u, 0x000200f8u, 0x00003189u, 0x00050050u, + 0x0000005fu, 0x0000318cu, 0x0000776du, 0x00002f42u, 0x0004007cu, 0x000000a6u, 0x0000318du, 0x0000318cu, + 0x00050051u, 0x00000006u, 0x0000425au, 0x0000318du, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000425bu, + 0x00002d79u, 0x0000425au, 0x00050080u, 0x00000006u, 0x0000425cu, 0x00002d76u, 0x0000425bu, 0x00050051u, + 0x00000006u, 0x0000425eu, 0x0000318du, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000425fu, 0x0000425eu, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004261u, 0x0000425cu, 0x0000425fu, 0x000500c7u, 0x00000006u, + 0x00004263u, 0x00004261u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00004265u, 0x00004263u, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00004268u, 0x0000425au, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004269u, + 0x00004268u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x0000426bu, 0x00004265u, 0x00004269u, 0x000500c6u, + 0x00000006u, 0x0000426du, 0x0000426bu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00004270u, 0x00000f48u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x0000426du, 0x0004003du, 0x00000230u, 0x00004271u, 0x00004270u, + 0x00040071u, 0x00000006u, 0x00004272u, 0x00004271u, 0x000500c2u, 0x00000006u, 0x0000427au, 0x00004272u, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x0000427cu, 0x00004272u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x0000427eu, 0x0000427au, 0x0004007cu, 0x00000008u, 0x00004284u, 0x0000427cu, 0x00070050u, 0x00000009u, + 0x00004285u, 0x0000427eu, 0x0000427eu, 0x0000427eu, 0x00004284u, 0x00050050u, 0x0000005fu, 0x00003193u, + 0x00007765u, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x00003194u, 0x00003193u, 0x00050051u, 0x00000006u, + 0x00004291u, 0x00003194u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004292u, 0x00002d79u, 0x00004291u, + 0x00050080u, 0x00000006u, 0x00004293u, 0x00002d76u, 0x00004292u, 0x00050051u, 0x00000006u, 0x00004295u, + 0x00003194u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004296u, 0x00004295u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00004298u, 0x00004293u, 0x00004296u, 0x000500c7u, 0x00000006u, 0x0000429au, 0x00004298u, + 0x00000e67u, 0x000500c2u, 0x00000006u, 0x0000429cu, 0x0000429au, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x0000429fu, 0x00004291u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000042a0u, 0x0000429fu, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x000042a2u, 0x0000429cu, 0x000042a0u, 0x000500c6u, 0x00000006u, 0x000042a4u, + 0x000042a2u, 0x0000048au, 0x00080041u, 0x00000275u, 0x000042a7u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x000042a4u, 0x0004003du, 0x00000230u, 0x000042a8u, 0x000042a7u, 0x00040071u, 0x00000006u, + 0x000042a9u, 0x000042a8u, 0x000500c2u, 0x00000006u, 0x000042b1u, 0x000042a9u, 0x00000263u, 0x000500c7u, + 0x00000006u, 0x000042b3u, 0x000042a9u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000042b5u, 0x000042b1u, + 0x0004007cu, 0x00000008u, 0x000042bbu, 0x000042b3u, 0x00070050u, 0x00000009u, 0x000042bcu, 0x000042b5u, + 0x000042b5u, 0x000042b5u, 0x000042bbu, 0x000200f9u, 0x00003198u, 0x000200f8u, 0x00003198u, 0x000700f5u, + 0x00000009u, 0x000079c5u, 0x00007970u, 0x00003182u, 0x000042bcu, 0x00003189u, 0x000700f5u, 0x00000009u, + 0x00007947u, 0x000078efu, 0x00003182u, 0x00004285u, 0x00003189u, 0x000300f7u, 0x000031a2u, 0x00000000u, + 0x000400fau, 0x00002f4eu, 0x0000319au, 0x000031a2u, 0x000200f8u, 0x0000319au, 0x00050050u, 0x0000005fu, + 0x0000319du, 0x0000776du, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x0000319eu, 0x0000319du, 0x00050051u, + 0x00000006u, 0x000042c8u, 0x0000319eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000042c9u, 0x00002d79u, + 0x000042c8u, 0x00050080u, 0x00000006u, 0x000042cau, 0x00002d76u, 0x000042c9u, 0x00050051u, 0x00000006u, + 0x000042ccu, 0x0000319eu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000042cdu, 0x000042ccu, 0x000003c9u, + 0x00050080u, 0x00000006u, 0x000042cfu, 0x000042cau, 0x000042cdu, 0x000500c7u, 0x00000006u, 0x000042d1u, + 0x000042cfu, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x000042d3u, 0x000042d1u, 0x00000217u, 0x000500c7u, + 0x00000006u, 0x000042d6u, 0x000042c8u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000042d7u, 0x000042d6u, + 0x00000217u, 0x000500c6u, 0x00000006u, 0x000042d9u, 0x000042d3u, 0x000042d7u, 0x000500c6u, 0x00000006u, + 0x000042dbu, 0x000042d9u, 0x0000048au, 0x00080041u, 0x00000275u, 0x000042deu, 0x00000f48u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x000042dbu, 0x0004003du, 0x00000230u, 0x000042dfu, 0x000042deu, 0x00040071u, + 0x00000006u, 0x000042e0u, 0x000042dfu, 0x000500c2u, 0x00000006u, 0x000042e8u, 0x000042e0u, 0x00000263u, + 0x000500c7u, 0x00000006u, 0x000042eau, 0x000042e0u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000042ecu, + 0x000042e8u, 0x0004007cu, 0x00000008u, 0x000042f2u, 0x000042eau, 0x00070050u, 0x00000009u, 0x000042f3u, + 0x000042ecu, 0x000042ecu, 0x000042ecu, 0x000042f2u, 0x000200f9u, 0x000031a2u, 0x000200f8u, 0x000031a2u, + 0x000700f5u, 0x00000009u, 0x00007a42u, 0x000079ebu, 0x00003198u, 0x000042f3u, 0x0000319au, 0x000200f9u, + 0x000031c4u, 0x000200f8u, 0x00003161u, 0x0004007cu, 0x000000a6u, 0x00003163u, 0x0000778cu, 0x00050051u, + 0x00000006u, 0x00004144u, 0x00003163u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004145u, 0x00002d79u, + 0x00004144u, 0x00050080u, 0x00000006u, 0x00004146u, 0x00002d76u, 0x00004145u, 0x00050051u, 0x00000006u, + 0x00004148u, 0x00003163u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000414au, 0x00004146u, 0x00004148u, + 0x000500c7u, 0x00000006u, 0x0000414cu, 0x0000414au, 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00004150u, + 0x00004144u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004151u, 0x00004150u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x00004153u, 0x0000414cu, 0x00004151u, 0x000500c6u, 0x00000006u, 0x00004155u, 0x00004153u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x00004158u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00004155u, 0x0004003du, 0x0000022eu, 0x00004159u, 0x00004158u, 0x00040071u, 0x00000006u, 0x0000415au, + 0x00004159u, 0x000500c2u, 0x00000006u, 0x0000415cu, 0x0000415au, 0x00000220u, 0x000500c7u, 0x00000006u, + 0x0000415eu, 0x0000415au, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00004160u, 0x0000415eu, 0x00000220u, + 0x000500c5u, 0x00000006u, 0x00004162u, 0x0000415eu, 0x00004160u, 0x000500c4u, 0x00000006u, 0x00004164u, + 0x0000415cu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00004166u, 0x0000415cu, 0x00004164u, 0x0004007cu, + 0x00000008u, 0x00004168u, 0x00004166u, 0x0004007cu, 0x00000008u, 0x0000416eu, 0x00004162u, 0x00070050u, + 0x00000009u, 0x0000416fu, 0x00004168u, 0x00004168u, 0x00004168u, 0x0000416eu, 0x000300f7u, 0x00003177u, + 0x00000000u, 0x000400fau, 0x00002257u, 0x00003168u, 0x00003177u, 0x000200f8u, 0x00003168u, 0x00050050u, + 0x0000005fu, 0x0000316bu, 0x0000776du, 0x00002f42u, 0x0004007cu, 0x000000a6u, 0x0000316cu, 0x0000316bu, + 0x00050051u, 0x00000006u, 0x0000417cu, 0x0000316cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000417du, + 0x00002d79u, 0x0000417cu, 0x00050080u, 0x00000006u, 0x0000417eu, 0x00002d76u, 0x0000417du, 0x00050051u, + 0x00000006u, 0x00004180u, 0x0000316cu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004182u, 0x0000417eu, + 0x00004180u, 0x000500c7u, 0x00000006u, 0x00004184u, 0x00004182u, 0x00000e67u, 0x000500c7u, 0x00000006u, + 0x00004188u, 0x0000417cu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004189u, 0x00004188u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x0000418bu, 0x00004184u, 0x00004189u, 0x000500c6u, 0x00000006u, 0x0000418du, + 0x0000418bu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00004190u, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x0000418du, 0x0004003du, 0x0000022eu, 0x00004191u, 0x00004190u, 0x00040071u, 0x00000006u, + 0x00004192u, 0x00004191u, 0x000500c2u, 0x00000006u, 0x00004194u, 0x00004192u, 0x00000220u, 0x000500c7u, + 0x00000006u, 0x00004196u, 0x00004192u, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00004198u, 0x00004196u, + 0x00000220u, 0x000500c5u, 0x00000006u, 0x0000419au, 0x00004196u, 0x00004198u, 0x000500c4u, 0x00000006u, + 0x0000419cu, 0x00004194u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x0000419eu, 0x00004194u, 0x0000419cu, + 0x0004007cu, 0x00000008u, 0x000041a0u, 0x0000419eu, 0x0004007cu, 0x00000008u, 0x000041a6u, 0x0000419au, + 0x00070050u, 0x00000009u, 0x000041a7u, 0x000041a0u, 0x000041a0u, 0x000041a0u, 0x000041a6u, 0x00050050u, + 0x0000005fu, 0x00003172u, 0x00007765u, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x00003173u, 0x00003172u, + 0x00050051u, 0x00000006u, 0x000041b4u, 0x00003173u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000041b5u, + 0x00002d79u, 0x000041b4u, 0x00050080u, 0x00000006u, 0x000041b6u, 0x00002d76u, 0x000041b5u, 0x00050051u, + 0x00000006u, 0x000041b8u, 0x00003173u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000041bau, 0x000041b6u, + 0x000041b8u, 0x000500c7u, 0x00000006u, 0x000041bcu, 0x000041bau, 0x00000e67u, 0x000500c7u, 0x00000006u, + 0x000041c0u, 0x000041b4u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000041c1u, 0x000041c0u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x000041c3u, 0x000041bcu, 0x000041c1u, 0x000500c6u, 0x00000006u, 0x000041c5u, + 0x000041c3u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000041c8u, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x000041c5u, 0x0004003du, 0x0000022eu, 0x000041c9u, 0x000041c8u, 0x00040071u, 0x00000006u, + 0x000041cau, 0x000041c9u, 0x000500c2u, 0x00000006u, 0x000041ccu, 0x000041cau, 0x00000220u, 0x000500c7u, + 0x00000006u, 0x000041ceu, 0x000041cau, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x000041d0u, 0x000041ceu, + 0x00000220u, 0x000500c5u, 0x00000006u, 0x000041d2u, 0x000041ceu, 0x000041d0u, 0x000500c4u, 0x00000006u, + 0x000041d4u, 0x000041ccu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x000041d6u, 0x000041ccu, 0x000041d4u, + 0x0004007cu, 0x00000008u, 0x000041d8u, 0x000041d6u, 0x0004007cu, 0x00000008u, 0x000041deu, 0x000041d2u, + 0x00070050u, 0x00000009u, 0x000041dfu, 0x000041d8u, 0x000041d8u, 0x000041d8u, 0x000041deu, 0x000200f9u, + 0x00003177u, 0x000200f8u, 0x00003177u, 0x000700f5u, 0x00000009u, 0x000079c3u, 0x00007970u, 0x00003161u, + 0x000041dfu, 0x00003168u, 0x000700f5u, 0x00000009u, 0x00007945u, 0x000078efu, 0x00003161u, 0x000041a7u, + 0x00003168u, 0x000300f7u, 0x00003181u, 0x00000000u, 0x000400fau, 0x00002f4eu, 0x00003179u, 0x00003181u, + 0x000200f8u, 0x00003179u, 0x00050050u, 0x0000005fu, 0x0000317cu, 0x0000776du, 0x00002f44u, 0x0004007cu, + 0x000000a6u, 0x0000317du, 0x0000317cu, 0x00050051u, 0x00000006u, 0x000041ecu, 0x0000317du, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000041edu, 0x00002d79u, 0x000041ecu, 0x00050080u, 0x00000006u, 0x000041eeu, + 0x00002d76u, 0x000041edu, 0x00050051u, 0x00000006u, 0x000041f0u, 0x0000317du, 0x00000000u, 0x00050080u, + 0x00000006u, 0x000041f2u, 0x000041eeu, 0x000041f0u, 0x000500c7u, 0x00000006u, 0x000041f4u, 0x000041f2u, + 0x00000e67u, 0x000500c7u, 0x00000006u, 0x000041f8u, 0x000041ecu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x000041f9u, 0x000041f8u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000041fbu, 0x000041f4u, 0x000041f9u, + 0x000500c6u, 0x00000006u, 0x000041fdu, 0x000041fbu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00004200u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000041fdu, 0x0004003du, 0x0000022eu, 0x00004201u, + 0x00004200u, 0x00040071u, 0x00000006u, 0x00004202u, 0x00004201u, 0x000500c2u, 0x00000006u, 0x00004204u, + 0x00004202u, 0x00000220u, 0x000500c7u, 0x00000006u, 0x00004206u, 0x00004202u, 0x00000e8au, 0x000500c4u, + 0x00000006u, 0x00004208u, 0x00004206u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x0000420au, 0x00004206u, + 0x00004208u, 0x000500c4u, 0x00000006u, 0x0000420cu, 0x00004204u, 0x00000220u, 0x000500c5u, 0x00000006u, + 0x0000420eu, 0x00004204u, 0x0000420cu, 0x0004007cu, 0x00000008u, 0x00004210u, 0x0000420eu, 0x0004007cu, + 0x00000008u, 0x00004216u, 0x0000420au, 0x00070050u, 0x00000009u, 0x00004217u, 0x00004210u, 0x00004210u, + 0x00004210u, 0x00004216u, 0x000200f9u, 0x00003181u, 0x000200f8u, 0x00003181u, 0x000700f5u, 0x00000009u, + 0x00007a40u, 0x000079ebu, 0x00003177u, 0x00004217u, 0x00003179u, 0x000200f9u, 0x000031c4u, 0x000200f8u, + 0x00003140u, 0x0004007cu, 0x000000a6u, 0x00003142u, 0x0000778cu, 0x00050051u, 0x00000006u, 0x0000403cu, + 0x00003142u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000403du, 0x00002d79u, 0x0000403cu, 0x00050080u, + 0x00000006u, 0x0000403eu, 0x00002d76u, 0x0000403du, 0x00050051u, 0x00000006u, 0x00004040u, 0x00003142u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004041u, 0x00004040u, 0x00000217u, 0x00050080u, 0x00000006u, + 0x00004043u, 0x0000403eu, 0x00004041u, 0x000500c7u, 0x00000006u, 0x00004045u, 0x00004043u, 0x00000e67u, + 0x000400c8u, 0x00000006u, 0x00004048u, 0x00004040u, 0x000500c7u, 0x00000006u, 0x00004049u, 0x00004048u, + 0x0000048au, 0x00050084u, 0x00000006u, 0x0000404au, 0x00004049u, 0x00000706u, 0x000500c7u, 0x00000006u, + 0x0000404eu, 0x0000403cu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000404fu, 0x0000404eu, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00004051u, 0x00004045u, 0x0000404fu, 0x000500c6u, 0x00000006u, 0x00004053u, + 0x00004051u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00004056u, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00004053u, 0x0004003du, 0x0000022eu, 0x00004057u, 0x00004056u, 0x00040071u, 0x00000006u, + 0x00004058u, 0x00004057u, 0x000500c2u, 0x00000006u, 0x0000405bu, 0x00004058u, 0x0000404au, 0x000500c7u, + 0x00000006u, 0x0000405cu, 0x0000405bu, 0x00000e8au, 0x000500c7u, 0x00000006u, 0x0000405eu, 0x0000405cu, + 0x00000ec1u, 0x000500c4u, 0x00000006u, 0x00004060u, 0x0000405eu, 0x00000220u, 0x000500c4u, 0x00000006u, + 0x00004062u, 0x0000405eu, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00004063u, 0x00004060u, 0x00004062u, + 0x000500c2u, 0x00000006u, 0x00004065u, 0x0000405eu, 0x0000021au, 0x000500c5u, 0x00000006u, 0x00004066u, + 0x00004063u, 0x00004065u, 0x0004007cu, 0x00000008u, 0x00004068u, 0x00004066u, 0x000500c7u, 0x00000006u, + 0x0000406eu, 0x0000405cu, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000406fu, 0x0000406eu, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00004070u, 0x0000406fu, 0x00070050u, 0x00000009u, 0x00004071u, 0x00004068u, + 0x00004068u, 0x00004068u, 0x00004070u, 0x000300f7u, 0x00003156u, 0x00000000u, 0x000400fau, 0x00002257u, + 0x00003147u, 0x00003156u, 0x000200f8u, 0x00003147u, 0x00050050u, 0x0000005fu, 0x0000314au, 0x0000776du, + 0x00002f42u, 0x0004007cu, 0x000000a6u, 0x0000314bu, 0x0000314au, 0x00050051u, 0x00000006u, 0x0000407eu, + 0x0000314bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000407fu, 0x00002d79u, 0x0000407eu, 0x00050080u, + 0x00000006u, 0x00004080u, 0x00002d76u, 0x0000407fu, 0x00050051u, 0x00000006u, 0x00004082u, 0x0000314bu, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004083u, 0x00004082u, 0x00000217u, 0x00050080u, 0x00000006u, + 0x00004085u, 0x00004080u, 0x00004083u, 0x000500c7u, 0x00000006u, 0x00004087u, 0x00004085u, 0x00000e67u, + 0x000400c8u, 0x00000006u, 0x0000408au, 0x00004082u, 0x000500c7u, 0x00000006u, 0x0000408bu, 0x0000408au, + 0x0000048au, 0x00050084u, 0x00000006u, 0x0000408cu, 0x0000408bu, 0x00000706u, 0x000500c7u, 0x00000006u, + 0x00004090u, 0x0000407eu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004091u, 0x00004090u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00004093u, 0x00004087u, 0x00004091u, 0x000500c6u, 0x00000006u, 0x00004095u, + 0x00004093u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00004098u, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00004095u, 0x0004003du, 0x0000022eu, 0x00004099u, 0x00004098u, 0x00040071u, 0x00000006u, + 0x0000409au, 0x00004099u, 0x000500c2u, 0x00000006u, 0x0000409du, 0x0000409au, 0x0000408cu, 0x000500c7u, + 0x00000006u, 0x0000409eu, 0x0000409du, 0x00000e8au, 0x000500c7u, 0x00000006u, 0x000040a0u, 0x0000409eu, + 0x00000ec1u, 0x000500c4u, 0x00000006u, 0x000040a2u, 0x000040a0u, 0x00000220u, 0x000500c4u, 0x00000006u, + 0x000040a4u, 0x000040a0u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x000040a5u, 0x000040a2u, 0x000040a4u, + 0x000500c2u, 0x00000006u, 0x000040a7u, 0x000040a0u, 0x0000021au, 0x000500c5u, 0x00000006u, 0x000040a8u, + 0x000040a5u, 0x000040a7u, 0x0004007cu, 0x00000008u, 0x000040aau, 0x000040a8u, 0x000500c7u, 0x00000006u, + 0x000040b0u, 0x0000409eu, 0x0000048au, 0x00050084u, 0x00000006u, 0x000040b1u, 0x000040b0u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x000040b2u, 0x000040b1u, 0x00070050u, 0x00000009u, 0x000040b3u, 0x000040aau, + 0x000040aau, 0x000040aau, 0x000040b2u, 0x00050050u, 0x0000005fu, 0x00003151u, 0x00007765u, 0x00002f44u, + 0x0004007cu, 0x000000a6u, 0x00003152u, 0x00003151u, 0x00050051u, 0x00000006u, 0x000040c0u, 0x00003152u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000040c1u, 0x00002d79u, 0x000040c0u, 0x00050080u, 0x00000006u, + 0x000040c2u, 0x00002d76u, 0x000040c1u, 0x00050051u, 0x00000006u, 0x000040c4u, 0x00003152u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000040c5u, 0x000040c4u, 0x00000217u, 0x00050080u, 0x00000006u, 0x000040c7u, + 0x000040c2u, 0x000040c5u, 0x000500c7u, 0x00000006u, 0x000040c9u, 0x000040c7u, 0x00000e67u, 0x000400c8u, + 0x00000006u, 0x000040ccu, 0x000040c4u, 0x000500c7u, 0x00000006u, 0x000040cdu, 0x000040ccu, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000040ceu, 0x000040cdu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000040d2u, + 0x000040c0u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000040d3u, 0x000040d2u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000040d5u, 0x000040c9u, 0x000040d3u, 0x000500c6u, 0x00000006u, 0x000040d7u, 0x000040d5u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000040dau, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x000040d7u, 0x0004003du, 0x0000022eu, 0x000040dbu, 0x000040dau, 0x00040071u, 0x00000006u, 0x000040dcu, + 0x000040dbu, 0x000500c2u, 0x00000006u, 0x000040dfu, 0x000040dcu, 0x000040ceu, 0x000500c7u, 0x00000006u, + 0x000040e0u, 0x000040dfu, 0x00000e8au, 0x000500c7u, 0x00000006u, 0x000040e2u, 0x000040e0u, 0x00000ec1u, + 0x000500c4u, 0x00000006u, 0x000040e4u, 0x000040e2u, 0x00000220u, 0x000500c4u, 0x00000006u, 0x000040e6u, + 0x000040e2u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x000040e7u, 0x000040e4u, 0x000040e6u, 0x000500c2u, + 0x00000006u, 0x000040e9u, 0x000040e2u, 0x0000021au, 0x000500c5u, 0x00000006u, 0x000040eau, 0x000040e7u, + 0x000040e9u, 0x0004007cu, 0x00000008u, 0x000040ecu, 0x000040eau, 0x000500c7u, 0x00000006u, 0x000040f2u, + 0x000040e0u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000040f3u, 0x000040f2u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000040f4u, 0x000040f3u, 0x00070050u, 0x00000009u, 0x000040f5u, 0x000040ecu, 0x000040ecu, + 0x000040ecu, 0x000040f4u, 0x000200f9u, 0x00003156u, 0x000200f8u, 0x00003156u, 0x000700f5u, 0x00000009u, + 0x000079c1u, 0x00007970u, 0x00003140u, 0x000040f5u, 0x00003147u, 0x000700f5u, 0x00000009u, 0x00007943u, + 0x000078efu, 0x00003140u, 0x000040b3u, 0x00003147u, 0x000300f7u, 0x00003160u, 0x00000000u, 0x000400fau, + 0x00002f4eu, 0x00003158u, 0x00003160u, 0x000200f8u, 0x00003158u, 0x00050050u, 0x0000005fu, 0x0000315bu, + 0x0000776du, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x0000315cu, 0x0000315bu, 0x00050051u, 0x00000006u, + 0x00004102u, 0x0000315cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004103u, 0x00002d79u, 0x00004102u, + 0x00050080u, 0x00000006u, 0x00004104u, 0x00002d76u, 0x00004103u, 0x00050051u, 0x00000006u, 0x00004106u, + 0x0000315cu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004107u, 0x00004106u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x00004109u, 0x00004104u, 0x00004107u, 0x000500c7u, 0x00000006u, 0x0000410bu, 0x00004109u, + 0x00000e67u, 0x000400c8u, 0x00000006u, 0x0000410eu, 0x00004106u, 0x000500c7u, 0x00000006u, 0x0000410fu, + 0x0000410eu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00004110u, 0x0000410fu, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00004114u, 0x00004102u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004115u, 0x00004114u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004117u, 0x0000410bu, 0x00004115u, 0x000500c6u, 0x00000006u, + 0x00004119u, 0x00004117u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000411cu, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00004119u, 0x0004003du, 0x0000022eu, 0x0000411du, 0x0000411cu, 0x00040071u, + 0x00000006u, 0x0000411eu, 0x0000411du, 0x000500c2u, 0x00000006u, 0x00004121u, 0x0000411eu, 0x00004110u, + 0x000500c7u, 0x00000006u, 0x00004122u, 0x00004121u, 0x00000e8au, 0x000500c7u, 0x00000006u, 0x00004124u, + 0x00004122u, 0x00000ec1u, 0x000500c4u, 0x00000006u, 0x00004126u, 0x00004124u, 0x00000220u, 0x000500c4u, + 0x00000006u, 0x00004128u, 0x00004124u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00004129u, 0x00004126u, + 0x00004128u, 0x000500c2u, 0x00000006u, 0x0000412bu, 0x00004124u, 0x0000021au, 0x000500c5u, 0x00000006u, + 0x0000412cu, 0x00004129u, 0x0000412bu, 0x0004007cu, 0x00000008u, 0x0000412eu, 0x0000412cu, 0x000500c7u, + 0x00000006u, 0x00004134u, 0x00004122u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00004135u, 0x00004134u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00004136u, 0x00004135u, 0x00070050u, 0x00000009u, 0x00004137u, + 0x0000412eu, 0x0000412eu, 0x0000412eu, 0x00004136u, 0x000200f9u, 0x00003160u, 0x000200f8u, 0x00003160u, + 0x000700f5u, 0x00000009u, 0x00007a3eu, 0x000079ebu, 0x00003156u, 0x00004137u, 0x00003158u, 0x000200f9u, + 0x000031c4u, 0x000200f8u, 0x000031c4u, 0x000d00f5u, 0x00000009u, 0x00007a3du, 0x000079ebu, 0x0000313du, + 0x00007a3eu, 0x00003160u, 0x00007a40u, 0x00003181u, 0x00007a42u, 0x000031a2u, 0x00007a44u, 0x000031c3u, + 0x000d00f5u, 0x00000009u, 0x000079bfu, 0x00007970u, 0x0000313du, 0x000079c1u, 0x00003160u, 0x000079c3u, + 0x00003181u, 0x000079c5u, 0x000031a2u, 0x000079c7u, 0x000031c3u, 0x000d00f5u, 0x00000009u, 0x00007941u, + 0x000078efu, 0x0000313du, 0x00007943u, 0x00003160u, 0x00007945u, 0x00003181u, 0x00007947u, 0x000031a2u, + 0x00007949u, 0x000031c3u, 0x000d00f5u, 0x00000009u, 0x0000784eu, 0x000077fdu, 0x0000313du, 0x00004071u, + 0x00003160u, 0x0000416fu, 0x00003181u, 0x0000424eu, 0x000031a2u, 0x0000431eu, 0x000031c3u, 0x000200f9u, + 0x0000322cu, 0x000200f8u, 0x000030cau, 0x000300f7u, 0x0000313cu, 0x00000000u, 0x000700fbu, 0x00002d83u, + 0x000030cdu, 0x00000000u, 0x000030eeu, 0x00000001u, 0x0000311bu, 0x000200f8u, 0x0000311bu, 0x0004007cu, + 0x000000a6u, 0x0000311du, 0x0000778cu, 0x00050051u, 0x00000006u, 0x00003faau, 0x0000311du, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003fabu, 0x00002d79u, 0x00003faau, 0x00050080u, 0x00000006u, 0x00003facu, + 0x00002d76u, 0x00003fabu, 0x00050051u, 0x00000006u, 0x00003faeu, 0x0000311du, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003fb0u, 0x00003facu, 0x00003faeu, 0x000500c7u, 0x00000006u, 0x00003fb2u, 0x00003fb0u, + 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00003fb6u, 0x00003faau, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00003fb7u, 0x00003fb6u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003fb9u, 0x00003fb2u, 0x00003fb7u, + 0x000500c6u, 0x00000006u, 0x00003fbbu, 0x00003fb9u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003fbeu, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003fbbu, 0x0004003du, 0x0000022eu, 0x00003fbfu, + 0x00003fbeu, 0x00040071u, 0x00000006u, 0x00003fc0u, 0x00003fbfu, 0x0004007cu, 0x00000008u, 0x00003fc2u, + 0x00003fc0u, 0x00070050u, 0x00000009u, 0x00003fc3u, 0x00003fc2u, 0x00003fc2u, 0x00003fc2u, 0x00003fc2u, + 0x000300f7u, 0x00003131u, 0x00000000u, 0x000400fau, 0x00002257u, 0x00003122u, 0x00003131u, 0x000200f8u, + 0x00003122u, 0x00050050u, 0x0000005fu, 0x00003125u, 0x0000776du, 0x00002f42u, 0x0004007cu, 0x000000a6u, + 0x00003126u, 0x00003125u, 0x00050051u, 0x00000006u, 0x00003fceu, 0x00003126u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003fcfu, 0x00002d79u, 0x00003fceu, 0x00050080u, 0x00000006u, 0x00003fd0u, 0x00002d76u, + 0x00003fcfu, 0x00050051u, 0x00000006u, 0x00003fd2u, 0x00003126u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003fd4u, 0x00003fd0u, 0x00003fd2u, 0x000500c7u, 0x00000006u, 0x00003fd6u, 0x00003fd4u, 0x00000e67u, + 0x000500c7u, 0x00000006u, 0x00003fdau, 0x00003fceu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003fdbu, + 0x00003fdau, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003fddu, 0x00003fd6u, 0x00003fdbu, 0x000500c6u, + 0x00000006u, 0x00003fdfu, 0x00003fddu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003fe2u, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00003fdfu, 0x0004003du, 0x0000022eu, 0x00003fe3u, 0x00003fe2u, + 0x00040071u, 0x00000006u, 0x00003fe4u, 0x00003fe3u, 0x0004007cu, 0x00000008u, 0x00003fe6u, 0x00003fe4u, + 0x00070050u, 0x00000009u, 0x00003fe7u, 0x00003fe6u, 0x00003fe6u, 0x00003fe6u, 0x00003fe6u, 0x00050050u, + 0x0000005fu, 0x0000312cu, 0x00007765u, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x0000312du, 0x0000312cu, + 0x00050051u, 0x00000006u, 0x00003ff2u, 0x0000312du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003ff3u, + 0x00002d79u, 0x00003ff2u, 0x00050080u, 0x00000006u, 0x00003ff4u, 0x00002d76u, 0x00003ff3u, 0x00050051u, + 0x00000006u, 0x00003ff6u, 0x0000312du, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003ff8u, 0x00003ff4u, + 0x00003ff6u, 0x000500c7u, 0x00000006u, 0x00003ffau, 0x00003ff8u, 0x00000e67u, 0x000500c7u, 0x00000006u, + 0x00003ffeu, 0x00003ff2u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003fffu, 0x00003ffeu, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00004001u, 0x00003ffau, 0x00003fffu, 0x000500c6u, 0x00000006u, 0x00004003u, + 0x00004001u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00004006u, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00004003u, 0x0004003du, 0x0000022eu, 0x00004007u, 0x00004006u, 0x00040071u, 0x00000006u, + 0x00004008u, 0x00004007u, 0x0004007cu, 0x00000008u, 0x0000400au, 0x00004008u, 0x00070050u, 0x00000009u, + 0x0000400bu, 0x0000400au, 0x0000400au, 0x0000400au, 0x0000400au, 0x000200f9u, 0x00003131u, 0x000200f8u, + 0x00003131u, 0x000700f5u, 0x00000009u, 0x000079beu, 0x00007970u, 0x0000311bu, 0x0000400bu, 0x00003122u, + 0x000700f5u, 0x00000009u, 0x00007940u, 0x000078efu, 0x0000311bu, 0x00003fe7u, 0x00003122u, 0x000300f7u, + 0x0000313bu, 0x00000000u, 0x000400fau, 0x00002f4eu, 0x00003133u, 0x0000313bu, 0x000200f8u, 0x00003133u, + 0x00050050u, 0x0000005fu, 0x00003136u, 0x0000776du, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x00003137u, + 0x00003136u, 0x00050051u, 0x00000006u, 0x00004016u, 0x00003137u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004017u, 0x00002d79u, 0x00004016u, 0x00050080u, 0x00000006u, 0x00004018u, 0x00002d76u, 0x00004017u, + 0x00050051u, 0x00000006u, 0x0000401au, 0x00003137u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000401cu, + 0x00004018u, 0x0000401au, 0x000500c7u, 0x00000006u, 0x0000401eu, 0x0000401cu, 0x00000e67u, 0x000500c7u, + 0x00000006u, 0x00004022u, 0x00004016u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004023u, 0x00004022u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00004025u, 0x0000401eu, 0x00004023u, 0x000500c6u, 0x00000006u, + 0x00004027u, 0x00004025u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000402au, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00004027u, 0x0004003du, 0x0000022eu, 0x0000402bu, 0x0000402au, 0x00040071u, + 0x00000006u, 0x0000402cu, 0x0000402bu, 0x0004007cu, 0x00000008u, 0x0000402eu, 0x0000402cu, 0x00070050u, + 0x00000009u, 0x0000402fu, 0x0000402eu, 0x0000402eu, 0x0000402eu, 0x0000402eu, 0x000200f9u, 0x0000313bu, + 0x000200f8u, 0x0000313bu, 0x000700f5u, 0x00000009u, 0x00007a3bu, 0x000079ebu, 0x00003131u, 0x0000402fu, + 0x00003133u, 0x000200f9u, 0x0000313cu, 0x000200f8u, 0x000030eeu, 0x0004007cu, 0x000000a6u, 0x000030f0u, + 0x0000778cu, 0x0004007cu, 0x00000006u, 0x000030f3u, 0x00002d88u, 0x00050051u, 0x00000006u, 0x00003edfu, + 0x000030f0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003ee0u, 0x00002d79u, 0x00003edfu, 0x00050080u, + 0x00000006u, 0x00003ee1u, 0x00002d76u, 0x00003ee0u, 0x00050051u, 0x00000006u, 0x00003ee3u, 0x000030f0u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003ee4u, 0x00003ee3u, 0x00000217u, 0x00050080u, 0x00000006u, + 0x00003ee6u, 0x00003ee1u, 0x00003ee4u, 0x000500c7u, 0x00000006u, 0x00003ee8u, 0x00003ee6u, 0x00000e67u, + 0x000400c8u, 0x00000006u, 0x00003eebu, 0x00003ee3u, 0x000500c7u, 0x00000006u, 0x00003eecu, 0x00003eebu, + 0x0000048au, 0x00050084u, 0x00000006u, 0x00003eedu, 0x00003eecu, 0x00000706u, 0x000500c7u, 0x00000006u, + 0x00003ef1u, 0x00003edfu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003ef2u, 0x00003ef1u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00003ef4u, 0x00003ee8u, 0x00003ef2u, 0x000500c6u, 0x00000006u, 0x00003ef6u, + 0x00003ef4u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003ef9u, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00003ef6u, 0x0004003du, 0x0000022eu, 0x00003efau, 0x00003ef9u, 0x00040071u, 0x00000006u, + 0x00003efbu, 0x00003efau, 0x000500c2u, 0x00000006u, 0x00003efeu, 0x00003efbu, 0x00003eedu, 0x000500c7u, + 0x00000006u, 0x00003effu, 0x00003efeu, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00003f01u, 0x000030f3u, + 0x00000220u, 0x000500c5u, 0x00000006u, 0x00003f03u, 0x00003effu, 0x00003f01u, 0x0004007cu, 0x00000008u, + 0x00003f05u, 0x00003f03u, 0x00070050u, 0x00000009u, 0x00003f06u, 0x00003f05u, 0x00003f05u, 0x00003f05u, + 0x00003f05u, 0x000300f7u, 0x0000310du, 0x00000000u, 0x000400fau, 0x00002257u, 0x000030f8u, 0x0000310du, + 0x000200f8u, 0x000030f8u, 0x00050050u, 0x0000005fu, 0x000030fbu, 0x0000776du, 0x00002f42u, 0x0004007cu, + 0x000000a6u, 0x000030fcu, 0x000030fbu, 0x00050051u, 0x00000006u, 0x00003f12u, 0x000030fcu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003f13u, 0x00002d79u, 0x00003f12u, 0x00050080u, 0x00000006u, 0x00003f14u, + 0x00002d76u, 0x00003f13u, 0x00050051u, 0x00000006u, 0x00003f16u, 0x000030fcu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003f17u, 0x00003f16u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00003f19u, 0x00003f14u, + 0x00003f17u, 0x000500c7u, 0x00000006u, 0x00003f1bu, 0x00003f19u, 0x00000e67u, 0x000400c8u, 0x00000006u, + 0x00003f1eu, 0x00003f16u, 0x000500c7u, 0x00000006u, 0x00003f1fu, 0x00003f1eu, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003f20u, 0x00003f1fu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003f24u, 0x00003f12u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003f25u, 0x00003f24u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003f27u, 0x00003f1bu, 0x00003f25u, 0x000500c6u, 0x00000006u, 0x00003f29u, 0x00003f27u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00003f2cu, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003f29u, + 0x0004003du, 0x0000022eu, 0x00003f2du, 0x00003f2cu, 0x00040071u, 0x00000006u, 0x00003f2eu, 0x00003f2du, + 0x000500c2u, 0x00000006u, 0x00003f31u, 0x00003f2eu, 0x00003f20u, 0x000500c7u, 0x00000006u, 0x00003f32u, + 0x00003f31u, 0x00000e8au, 0x000500c5u, 0x00000006u, 0x00003f36u, 0x00003f32u, 0x00003f01u, 0x0004007cu, + 0x00000008u, 0x00003f38u, 0x00003f36u, 0x00070050u, 0x00000009u, 0x00003f39u, 0x00003f38u, 0x00003f38u, + 0x00003f38u, 0x00003f38u, 0x00050050u, 0x0000005fu, 0x00003105u, 0x00007765u, 0x00002f44u, 0x0004007cu, + 0x000000a6u, 0x00003106u, 0x00003105u, 0x00050051u, 0x00000006u, 0x00003f45u, 0x00003106u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003f46u, 0x00002d79u, 0x00003f45u, 0x00050080u, 0x00000006u, 0x00003f47u, + 0x00002d76u, 0x00003f46u, 0x00050051u, 0x00000006u, 0x00003f49u, 0x00003106u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003f4au, 0x00003f49u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00003f4cu, 0x00003f47u, + 0x00003f4au, 0x000500c7u, 0x00000006u, 0x00003f4eu, 0x00003f4cu, 0x00000e67u, 0x000400c8u, 0x00000006u, + 0x00003f51u, 0x00003f49u, 0x000500c7u, 0x00000006u, 0x00003f52u, 0x00003f51u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003f53u, 0x00003f52u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003f57u, 0x00003f45u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003f58u, 0x00003f57u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003f5au, 0x00003f4eu, 0x00003f58u, 0x000500c6u, 0x00000006u, 0x00003f5cu, 0x00003f5au, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00003f5fu, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003f5cu, + 0x0004003du, 0x0000022eu, 0x00003f60u, 0x00003f5fu, 0x00040071u, 0x00000006u, 0x00003f61u, 0x00003f60u, + 0x000500c2u, 0x00000006u, 0x00003f64u, 0x00003f61u, 0x00003f53u, 0x000500c7u, 0x00000006u, 0x00003f65u, + 0x00003f64u, 0x00000e8au, 0x000500c5u, 0x00000006u, 0x00003f69u, 0x00003f65u, 0x00003f01u, 0x0004007cu, + 0x00000008u, 0x00003f6bu, 0x00003f69u, 0x00070050u, 0x00000009u, 0x00003f6cu, 0x00003f6bu, 0x00003f6bu, + 0x00003f6bu, 0x00003f6bu, 0x000200f9u, 0x0000310du, 0x000200f8u, 0x0000310du, 0x000700f5u, 0x00000009u, + 0x000079bcu, 0x00007970u, 0x000030eeu, 0x00003f6cu, 0x000030f8u, 0x000700f5u, 0x00000009u, 0x0000793eu, + 0x000078efu, 0x000030eeu, 0x00003f39u, 0x000030f8u, 0x000300f7u, 0x0000311au, 0x00000000u, 0x000400fau, + 0x00002f4eu, 0x0000310fu, 0x0000311au, 0x000200f8u, 0x0000310fu, 0x00050050u, 0x0000005fu, 0x00003112u, + 0x0000776du, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x00003113u, 0x00003112u, 0x00050051u, 0x00000006u, + 0x00003f78u, 0x00003113u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003f79u, 0x00002d79u, 0x00003f78u, + 0x00050080u, 0x00000006u, 0x00003f7au, 0x00002d76u, 0x00003f79u, 0x00050051u, 0x00000006u, 0x00003f7cu, + 0x00003113u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003f7du, 0x00003f7cu, 0x00000217u, 0x00050080u, + 0x00000006u, 0x00003f7fu, 0x00003f7au, 0x00003f7du, 0x000500c7u, 0x00000006u, 0x00003f81u, 0x00003f7fu, + 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00003f84u, 0x00003f7cu, 0x000500c7u, 0x00000006u, 0x00003f85u, + 0x00003f84u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003f86u, 0x00003f85u, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00003f8au, 0x00003f78u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003f8bu, 0x00003f8au, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003f8du, 0x00003f81u, 0x00003f8bu, 0x000500c6u, 0x00000006u, + 0x00003f8fu, 0x00003f8du, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003f92u, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00003f8fu, 0x0004003du, 0x0000022eu, 0x00003f93u, 0x00003f92u, 0x00040071u, + 0x00000006u, 0x00003f94u, 0x00003f93u, 0x000500c2u, 0x00000006u, 0x00003f97u, 0x00003f94u, 0x00003f86u, + 0x000500c7u, 0x00000006u, 0x00003f98u, 0x00003f97u, 0x00000e8au, 0x000500c5u, 0x00000006u, 0x00003f9cu, + 0x00003f98u, 0x00003f01u, 0x0004007cu, 0x00000008u, 0x00003f9eu, 0x00003f9cu, 0x00070050u, 0x00000009u, + 0x00003f9fu, 0x00003f9eu, 0x00003f9eu, 0x00003f9eu, 0x00003f9eu, 0x000200f9u, 0x0000311au, 0x000200f8u, + 0x0000311au, 0x000700f5u, 0x00000009u, 0x00007a39u, 0x000079ebu, 0x0000310du, 0x00003f9fu, 0x0000310fu, + 0x000200f9u, 0x0000313cu, 0x000200f8u, 0x000030cdu, 0x0004007cu, 0x000000a6u, 0x000030cfu, 0x0000778cu, + 0x00050051u, 0x00000006u, 0x00003e32u, 0x000030cfu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003e33u, + 0x00002d79u, 0x00003e32u, 0x00050080u, 0x00000006u, 0x00003e34u, 0x00002d76u, 0x00003e33u, 0x00050051u, + 0x00000006u, 0x00003e36u, 0x000030cfu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003e37u, 0x00003e36u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003e39u, 0x00003e34u, 0x00003e37u, 0x000500c7u, 0x00000006u, + 0x00003e3bu, 0x00003e39u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00003e3du, 0x00003e3bu, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00003e40u, 0x00003e32u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003e41u, + 0x00003e40u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003e43u, 0x00003e3du, 0x00003e41u, 0x000500c6u, + 0x00000006u, 0x00003e45u, 0x00003e43u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00003e48u, 0x00000f48u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00003e45u, 0x0004003du, 0x00000230u, 0x00003e49u, 0x00003e48u, + 0x00040071u, 0x00000006u, 0x00003e4au, 0x00003e49u, 0x000500c2u, 0x00000006u, 0x00003e4cu, 0x00003e4au, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003e4du, 0x00003e4cu, 0x000500c7u, 0x00000006u, 0x00003e4fu, + 0x00003e4au, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003e50u, 0x00003e4fu, 0x00050050u, 0x0000005fu, + 0x00003e51u, 0x00003e4du, 0x00003e50u, 0x0009004fu, 0x00000009u, 0x00003e52u, 0x00003e51u, 0x00003e51u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x000030e3u, 0x00000000u, 0x000400fau, + 0x00002257u, 0x000030d4u, 0x000030e3u, 0x000200f8u, 0x000030d4u, 0x00050050u, 0x0000005fu, 0x000030d7u, + 0x0000776du, 0x00002f42u, 0x0004007cu, 0x000000a6u, 0x000030d8u, 0x000030d7u, 0x00050051u, 0x00000006u, + 0x00003e5du, 0x000030d8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003e5eu, 0x00002d79u, 0x00003e5du, + 0x00050080u, 0x00000006u, 0x00003e5fu, 0x00002d76u, 0x00003e5eu, 0x00050051u, 0x00000006u, 0x00003e61u, + 0x000030d8u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003e62u, 0x00003e61u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00003e64u, 0x00003e5fu, 0x00003e62u, 0x000500c7u, 0x00000006u, 0x00003e66u, 0x00003e64u, + 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00003e68u, 0x00003e66u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x00003e6bu, 0x00003e5du, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003e6cu, 0x00003e6bu, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x00003e6eu, 0x00003e68u, 0x00003e6cu, 0x000500c6u, 0x00000006u, 0x00003e70u, + 0x00003e6eu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00003e73u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00003e70u, 0x0004003du, 0x00000230u, 0x00003e74u, 0x00003e73u, 0x00040071u, 0x00000006u, + 0x00003e75u, 0x00003e74u, 0x000500c2u, 0x00000006u, 0x00003e77u, 0x00003e75u, 0x00000263u, 0x0004007cu, + 0x00000008u, 0x00003e78u, 0x00003e77u, 0x000500c7u, 0x00000006u, 0x00003e7au, 0x00003e75u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00003e7bu, 0x00003e7au, 0x00050050u, 0x0000005fu, 0x00003e7cu, 0x00003e78u, + 0x00003e7bu, 0x0009004fu, 0x00000009u, 0x00003e7du, 0x00003e7cu, 0x00003e7cu, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x000030deu, 0x00007765u, 0x00002f44u, 0x0004007cu, + 0x000000a6u, 0x000030dfu, 0x000030deu, 0x00050051u, 0x00000006u, 0x00003e88u, 0x000030dfu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003e89u, 0x00002d79u, 0x00003e88u, 0x00050080u, 0x00000006u, 0x00003e8au, + 0x00002d76u, 0x00003e89u, 0x00050051u, 0x00000006u, 0x00003e8cu, 0x000030dfu, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003e8du, 0x00003e8cu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003e8fu, 0x00003e8au, + 0x00003e8du, 0x000500c7u, 0x00000006u, 0x00003e91u, 0x00003e8fu, 0x00000e67u, 0x000500c2u, 0x00000006u, + 0x00003e93u, 0x00003e91u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003e96u, 0x00003e88u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00003e97u, 0x00003e96u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003e99u, + 0x00003e93u, 0x00003e97u, 0x000500c6u, 0x00000006u, 0x00003e9bu, 0x00003e99u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00003e9eu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003e9bu, 0x0004003du, + 0x00000230u, 0x00003e9fu, 0x00003e9eu, 0x00040071u, 0x00000006u, 0x00003ea0u, 0x00003e9fu, 0x000500c2u, + 0x00000006u, 0x00003ea2u, 0x00003ea0u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003ea3u, 0x00003ea2u, + 0x000500c7u, 0x00000006u, 0x00003ea5u, 0x00003ea0u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003ea6u, + 0x00003ea5u, 0x00050050u, 0x0000005fu, 0x00003ea7u, 0x00003ea3u, 0x00003ea6u, 0x0009004fu, 0x00000009u, + 0x00003ea8u, 0x00003ea7u, 0x00003ea7u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x000030e3u, 0x000200f8u, 0x000030e3u, 0x000700f5u, 0x00000009u, 0x000079bau, 0x00007970u, 0x000030cdu, + 0x00003ea8u, 0x000030d4u, 0x000700f5u, 0x00000009u, 0x0000793cu, 0x000078efu, 0x000030cdu, 0x00003e7du, + 0x000030d4u, 0x000300f7u, 0x000030edu, 0x00000000u, 0x000400fau, 0x00002f4eu, 0x000030e5u, 0x000030edu, + 0x000200f8u, 0x000030e5u, 0x00050050u, 0x0000005fu, 0x000030e8u, 0x0000776du, 0x00002f44u, 0x0004007cu, + 0x000000a6u, 0x000030e9u, 0x000030e8u, 0x00050051u, 0x00000006u, 0x00003eb3u, 0x000030e9u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003eb4u, 0x00002d79u, 0x00003eb3u, 0x00050080u, 0x00000006u, 0x00003eb5u, + 0x00002d76u, 0x00003eb4u, 0x00050051u, 0x00000006u, 0x00003eb7u, 0x000030e9u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003eb8u, 0x00003eb7u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003ebau, 0x00003eb5u, + 0x00003eb8u, 0x000500c7u, 0x00000006u, 0x00003ebcu, 0x00003ebau, 0x00000e67u, 0x000500c2u, 0x00000006u, + 0x00003ebeu, 0x00003ebcu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003ec1u, 0x00003eb3u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00003ec2u, 0x00003ec1u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003ec4u, + 0x00003ebeu, 0x00003ec2u, 0x000500c6u, 0x00000006u, 0x00003ec6u, 0x00003ec4u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00003ec9u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003ec6u, 0x0004003du, + 0x00000230u, 0x00003ecau, 0x00003ec9u, 0x00040071u, 0x00000006u, 0x00003ecbu, 0x00003ecau, 0x000500c2u, + 0x00000006u, 0x00003ecdu, 0x00003ecbu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003eceu, 0x00003ecdu, + 0x000500c7u, 0x00000006u, 0x00003ed0u, 0x00003ecbu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003ed1u, + 0x00003ed0u, 0x00050050u, 0x0000005fu, 0x00003ed2u, 0x00003eceu, 0x00003ed1u, 0x0009004fu, 0x00000009u, + 0x00003ed3u, 0x00003ed2u, 0x00003ed2u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x000030edu, 0x000200f8u, 0x000030edu, 0x000700f5u, 0x00000009u, 0x00007a37u, 0x000079ebu, 0x000030e3u, + 0x00003ed3u, 0x000030e5u, 0x000200f9u, 0x0000313cu, 0x000200f8u, 0x0000313cu, 0x000900f5u, 0x00000009u, + 0x00007a36u, 0x00007a37u, 0x000030edu, 0x00007a39u, 0x0000311au, 0x00007a3bu, 0x0000313bu, 0x000900f5u, + 0x00000009u, 0x000079b8u, 0x000079bau, 0x000030edu, 0x000079bcu, 0x0000311au, 0x000079beu, 0x0000313bu, + 0x000900f5u, 0x00000009u, 0x0000793au, 0x0000793cu, 0x000030edu, 0x0000793eu, 0x0000311au, 0x00007940u, + 0x0000313bu, 0x000900f5u, 0x00000009u, 0x00007847u, 0x00003e52u, 0x000030edu, 0x00003f06u, 0x0000311au, + 0x00003fc3u, 0x0000313bu, 0x000200f9u, 0x0000322cu, 0x000200f8u, 0x0000309cu, 0x000500c3u, 0x00000008u, + 0x0000309eu, 0x00007765u, 0x00000217u, 0x0004007cu, 0x00000006u, 0x0000309fu, 0x0000309eu, 0x00050082u, + 0x00000008u, 0x000030a3u, 0x0000776du, 0x00007765u, 0x00050080u, 0x00000008u, 0x000030a4u, 0x0000776du, + 0x000030a3u, 0x000500c3u, 0x00000008u, 0x000030a5u, 0x000030a4u, 0x00000217u, 0x0004007cu, 0x00000006u, + 0x000030a6u, 0x000030a5u, 0x00050050u, 0x0000005fu, 0x000030a9u, 0x00007765u, 0x00002f42u, 0x0004007cu, + 0x000000a6u, 0x000030aau, 0x000030a9u, 0x00050051u, 0x00000006u, 0x00003d08u, 0x000030aau, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003d09u, 0x00002d79u, 0x00003d08u, 0x00050080u, 0x00000006u, 0x00003d0au, + 0x00002d76u, 0x00003d09u, 0x00050051u, 0x00000006u, 0x00003d0du, 0x000030aau, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003d0eu, 0x00003d0au, 0x00003d0du, 0x000500c7u, 0x00000006u, 0x00003d10u, 0x00003d0eu, + 0x00000f19u, 0x00050084u, 0x00000006u, 0x00003d13u, 0x0000309fu, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00003d14u, 0x00003d0au, 0x00003d13u, 0x000500c7u, 0x00000006u, 0x00003d16u, 0x00003d14u, 0x00000f19u, + 0x000500c7u, 0x00000006u, 0x00003d1au, 0x00003d08u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003d1bu, + 0x00003d1au, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003d1du, 0x00003d10u, 0x00003d1bu, 0x000500c6u, + 0x00000006u, 0x00003d1fu, 0x00003d1du, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00003d21u, 0x00003d16u, + 0x00000217u, 0x000500c4u, 0x00000006u, 0x00003d25u, 0x00003d1au, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00003d27u, 0x00003d21u, 0x00003d25u, 0x000500c6u, 0x00000006u, 0x00003d29u, 0x00003d27u, 0x0000048au, + 0x000500c5u, 0x00000006u, 0x00003d2cu, 0x00003d1fu, 0x00000f42u, 0x00080041u, 0x0000027cu, 0x00003d2du, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003d2cu, 0x0004003du, 0x0000022eu, 0x00003d2eu, + 0x00003d2du, 0x00040071u, 0x00000006u, 0x00003d2fu, 0x00003d2eu, 0x0004007cu, 0x00000008u, 0x00003d30u, + 0x00003d2fu, 0x00080041u, 0x00000275u, 0x00003d33u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00003d29u, 0x0004003du, 0x00000230u, 0x00003d34u, 0x00003d33u, 0x00040071u, 0x00000006u, 0x00003d35u, + 0x00003d34u, 0x0004007cu, 0x00000008u, 0x00003d36u, 0x00003d35u, 0x000500c3u, 0x00000008u, 0x00003d38u, + 0x00003d36u, 0x00000263u, 0x000500c7u, 0x00000008u, 0x00003d39u, 0x00003d38u, 0x00000390u, 0x000500c3u, + 0x00000008u, 0x00003d3bu, 0x00003d36u, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00003d3cu, 0x00003d3bu, + 0x00000390u, 0x00050082u, 0x00000008u, 0x00003d3eu, 0x00003d39u, 0x00000628u, 0x00050082u, 0x00000008u, + 0x00003d40u, 0x00003d3cu, 0x00000628u, 0x00070050u, 0x00000009u, 0x00003d43u, 0x00003d3eu, 0x00003d40u, + 0x00003d30u, 0x00003d30u, 0x000300f7u, 0x000030c9u, 0x00000000u, 0x000400fau, 0x00002257u, 0x000030b0u, + 0x000030c9u, 0x000200f8u, 0x000030b0u, 0x00050050u, 0x0000005fu, 0x000030b3u, 0x0000776du, 0x00002f42u, + 0x0004007cu, 0x000000a6u, 0x000030b4u, 0x000030b3u, 0x00050051u, 0x00000006u, 0x00003d54u, 0x000030b4u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d55u, 0x00002d79u, 0x00003d54u, 0x00050080u, 0x00000006u, + 0x00003d56u, 0x00002d76u, 0x00003d55u, 0x00050051u, 0x00000006u, 0x00003d59u, 0x000030b4u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00003d5au, 0x00003d56u, 0x00003d59u, 0x000500c7u, 0x00000006u, 0x00003d5cu, + 0x00003d5au, 0x00000f19u, 0x00050084u, 0x00000006u, 0x00003d5fu, 0x000030a6u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00003d60u, 0x00003d56u, 0x00003d5fu, 0x000500c7u, 0x00000006u, 0x00003d62u, 0x00003d60u, + 0x00000f19u, 0x000500c7u, 0x00000006u, 0x00003d66u, 0x00003d54u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00003d67u, 0x00003d66u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003d69u, 0x00003d5cu, 0x00003d67u, + 0x000500c6u, 0x00000006u, 0x00003d6bu, 0x00003d69u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00003d6du, + 0x00003d62u, 0x00000217u, 0x000500c4u, 0x00000006u, 0x00003d71u, 0x00003d66u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00003d73u, 0x00003d6du, 0x00003d71u, 0x000500c6u, 0x00000006u, 0x00003d75u, 0x00003d73u, + 0x0000048au, 0x000500c5u, 0x00000006u, 0x00003d78u, 0x00003d6bu, 0x00000f42u, 0x00080041u, 0x0000027cu, + 0x00003d79u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003d78u, 0x0004003du, 0x0000022eu, + 0x00003d7au, 0x00003d79u, 0x00040071u, 0x00000006u, 0x00003d7bu, 0x00003d7au, 0x0004007cu, 0x00000008u, + 0x00003d7cu, 0x00003d7bu, 0x00080041u, 0x00000275u, 0x00003d7fu, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00003d75u, 0x0004003du, 0x00000230u, 0x00003d80u, 0x00003d7fu, 0x00040071u, 0x00000006u, + 0x00003d81u, 0x00003d80u, 0x0004007cu, 0x00000008u, 0x00003d82u, 0x00003d81u, 0x000500c3u, 0x00000008u, + 0x00003d84u, 0x00003d82u, 0x00000263u, 0x000500c7u, 0x00000008u, 0x00003d85u, 0x00003d84u, 0x00000390u, + 0x000500c3u, 0x00000008u, 0x00003d87u, 0x00003d82u, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00003d88u, + 0x00003d87u, 0x00000390u, 0x00050082u, 0x00000008u, 0x00003d8au, 0x00003d85u, 0x00000628u, 0x00050082u, + 0x00000008u, 0x00003d8cu, 0x00003d88u, 0x00000628u, 0x00070050u, 0x00000009u, 0x00003d8fu, 0x00003d8au, + 0x00003d8cu, 0x00003d7cu, 0x00003d7cu, 0x00050050u, 0x0000005fu, 0x000030bbu, 0x00007765u, 0x00002f44u, + 0x0004007cu, 0x000000a6u, 0x000030bcu, 0x000030bbu, 0x00050051u, 0x00000006u, 0x00003da0u, 0x000030bcu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003da1u, 0x00002d79u, 0x00003da0u, 0x00050080u, 0x00000006u, + 0x00003da2u, 0x00002d76u, 0x00003da1u, 0x00050051u, 0x00000006u, 0x00003da5u, 0x000030bcu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00003da6u, 0x00003da2u, 0x00003da5u, 0x000500c7u, 0x00000006u, 0x00003da8u, + 0x00003da6u, 0x00000f19u, 0x00050080u, 0x00000006u, 0x00003dacu, 0x00003da2u, 0x00003d13u, 0x000500c7u, + 0x00000006u, 0x00003daeu, 0x00003dacu, 0x00000f19u, 0x000500c7u, 0x00000006u, 0x00003db2u, 0x00003da0u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003db3u, 0x00003db2u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003db5u, 0x00003da8u, 0x00003db3u, 0x000500c6u, 0x00000006u, 0x00003db7u, 0x00003db5u, 0x00000490u, + 0x000500c2u, 0x00000006u, 0x00003db9u, 0x00003daeu, 0x00000217u, 0x000500c4u, 0x00000006u, 0x00003dbdu, + 0x00003db2u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003dbfu, 0x00003db9u, 0x00003dbdu, 0x000500c6u, + 0x00000006u, 0x00003dc1u, 0x00003dbfu, 0x0000048au, 0x000500c5u, 0x00000006u, 0x00003dc4u, 0x00003db7u, + 0x00000f42u, 0x00080041u, 0x0000027cu, 0x00003dc5u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00003dc4u, 0x0004003du, 0x0000022eu, 0x00003dc6u, 0x00003dc5u, 0x00040071u, 0x00000006u, 0x00003dc7u, + 0x00003dc6u, 0x0004007cu, 0x00000008u, 0x00003dc8u, 0x00003dc7u, 0x00080041u, 0x00000275u, 0x00003dcbu, + 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003dc1u, 0x0004003du, 0x00000230u, 0x00003dccu, + 0x00003dcbu, 0x00040071u, 0x00000006u, 0x00003dcdu, 0x00003dccu, 0x0004007cu, 0x00000008u, 0x00003dceu, + 0x00003dcdu, 0x000500c3u, 0x00000008u, 0x00003dd0u, 0x00003dceu, 0x00000263u, 0x000500c7u, 0x00000008u, + 0x00003dd1u, 0x00003dd0u, 0x00000390u, 0x000500c3u, 0x00000008u, 0x00003dd3u, 0x00003dceu, 0x00000208u, + 0x000500c7u, 0x00000008u, 0x00003dd4u, 0x00003dd3u, 0x00000390u, 0x00050082u, 0x00000008u, 0x00003dd6u, + 0x00003dd1u, 0x00000628u, 0x00050082u, 0x00000008u, 0x00003dd8u, 0x00003dd4u, 0x00000628u, 0x00070050u, + 0x00000009u, 0x00003ddbu, 0x00003dd6u, 0x00003dd8u, 0x00003dc8u, 0x00003dc8u, 0x00050050u, 0x0000005fu, + 0x000030c3u, 0x0000776du, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x000030c4u, 0x000030c3u, 0x00050051u, + 0x00000006u, 0x00003decu, 0x000030c4u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003dedu, 0x00002d79u, + 0x00003decu, 0x00050080u, 0x00000006u, 0x00003deeu, 0x00002d76u, 0x00003dedu, 0x00050051u, 0x00000006u, + 0x00003df1u, 0x000030c4u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003df2u, 0x00003deeu, 0x00003df1u, + 0x000500c7u, 0x00000006u, 0x00003df4u, 0x00003df2u, 0x00000f19u, 0x00050080u, 0x00000006u, 0x00003df8u, + 0x00003deeu, 0x00003d5fu, 0x000500c7u, 0x00000006u, 0x00003dfau, 0x00003df8u, 0x00000f19u, 0x000500c7u, + 0x00000006u, 0x00003dfeu, 0x00003decu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003dffu, 0x00003dfeu, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003e01u, 0x00003df4u, 0x00003dffu, 0x000500c6u, 0x00000006u, + 0x00003e03u, 0x00003e01u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00003e05u, 0x00003dfau, 0x00000217u, + 0x000500c4u, 0x00000006u, 0x00003e09u, 0x00003dfeu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003e0bu, + 0x00003e05u, 0x00003e09u, 0x000500c6u, 0x00000006u, 0x00003e0du, 0x00003e0bu, 0x0000048au, 0x000500c5u, + 0x00000006u, 0x00003e10u, 0x00003e03u, 0x00000f42u, 0x00080041u, 0x0000027cu, 0x00003e11u, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00003e10u, 0x0004003du, 0x0000022eu, 0x00003e12u, 0x00003e11u, + 0x00040071u, 0x00000006u, 0x00003e13u, 0x00003e12u, 0x0004007cu, 0x00000008u, 0x00003e14u, 0x00003e13u, + 0x00080041u, 0x00000275u, 0x00003e17u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003e0du, + 0x0004003du, 0x00000230u, 0x00003e18u, 0x00003e17u, 0x00040071u, 0x00000006u, 0x00003e19u, 0x00003e18u, + 0x0004007cu, 0x00000008u, 0x00003e1au, 0x00003e19u, 0x000500c3u, 0x00000008u, 0x00003e1cu, 0x00003e1au, + 0x00000263u, 0x000500c7u, 0x00000008u, 0x00003e1du, 0x00003e1cu, 0x00000390u, 0x000500c3u, 0x00000008u, + 0x00003e1fu, 0x00003e1au, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00003e20u, 0x00003e1fu, 0x00000390u, + 0x00050082u, 0x00000008u, 0x00003e22u, 0x00003e1du, 0x00000628u, 0x00050082u, 0x00000008u, 0x00003e24u, + 0x00003e20u, 0x00000628u, 0x00070050u, 0x00000009u, 0x00003e27u, 0x00003e22u, 0x00003e24u, 0x00003e14u, + 0x00003e14u, 0x000200f9u, 0x000030c9u, 0x000200f8u, 0x000030c9u, 0x000700f5u, 0x00000009u, 0x00007a35u, + 0x000079ebu, 0x0000309cu, 0x00003e27u, 0x000030b0u, 0x000700f5u, 0x00000009u, 0x000079b7u, 0x00007970u, + 0x0000309cu, 0x00003ddbu, 0x000030b0u, 0x000700f5u, 0x00000009u, 0x00007939u, 0x000078efu, 0x0000309cu, + 0x00003d8fu, 0x000030b0u, 0x000200f9u, 0x0000322cu, 0x000200f8u, 0x00003014u, 0x000300f7u, 0x0000309bu, + 0x00000000u, 0x000b00fbu, 0x00002d83u, 0x0000309bu, 0x00000000u, 0x00003017u, 0x00000001u, 0x00003038u, + 0x00000002u, 0x00003059u, 0x00000003u, 0x0000307au, 0x000200f8u, 0x0000307au, 0x0004007cu, 0x000000a6u, + 0x0000307cu, 0x0000778cu, 0x00050051u, 0x00000006u, 0x00003c27u, 0x0000307cu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003c28u, 0x00002d79u, 0x00003c27u, 0x00050080u, 0x00000006u, 0x00003c29u, 0x00002d76u, + 0x00003c28u, 0x00050051u, 0x00000006u, 0x00003c2bu, 0x0000307cu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003c2cu, 0x00003c2bu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003c2eu, 0x00003c29u, 0x00003c2cu, + 0x000500c7u, 0x00000006u, 0x00003c30u, 0x00003c2eu, 0x00000f19u, 0x000500c2u, 0x00000006u, 0x00003c32u, + 0x00003c30u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003c35u, 0x00003c27u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00003c36u, 0x00003c35u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003c38u, 0x00003c32u, + 0x00003c36u, 0x000500c6u, 0x00000006u, 0x00003c3au, 0x00003c38u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x00003c3du, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003c3au, 0x0004003du, 0x00000230u, + 0x00003c3eu, 0x00003c3du, 0x00040071u, 0x00000006u, 0x00003c3fu, 0x00003c3eu, 0x000500c5u, 0x00000006u, + 0x00003c42u, 0x00003c3au, 0x00000f4au, 0x00080041u, 0x00000275u, 0x00003c43u, 0x00000f48u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00003c42u, 0x0004003du, 0x00000230u, 0x00003c44u, 0x00003c43u, 0x00040071u, + 0x00000006u, 0x00003c45u, 0x00003c44u, 0x000500c2u, 0x00000006u, 0x00003c47u, 0x00003c3fu, 0x00000263u, + 0x0004007cu, 0x00000008u, 0x00003c48u, 0x00003c47u, 0x000500c7u, 0x00000006u, 0x00003c4au, 0x00003c3fu, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003c4bu, 0x00003c4au, 0x000500c2u, 0x00000006u, 0x00003c4du, + 0x00003c45u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003c4eu, 0x00003c4du, 0x000500c7u, 0x00000006u, + 0x00003c50u, 0x00003c45u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003c51u, 0x00003c50u, 0x00070050u, + 0x00000009u, 0x00003c52u, 0x00003c48u, 0x00003c4bu, 0x00003c4eu, 0x00003c51u, 0x000300f7u, 0x00003090u, + 0x00000000u, 0x000400fau, 0x00002257u, 0x00003081u, 0x00003090u, 0x000200f8u, 0x00003081u, 0x00050050u, + 0x0000005fu, 0x00003084u, 0x0000776du, 0x00002f42u, 0x0004007cu, 0x000000a6u, 0x00003085u, 0x00003084u, + 0x00050051u, 0x00000006u, 0x00003c5eu, 0x00003085u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003c5fu, + 0x00002d79u, 0x00003c5eu, 0x00050080u, 0x00000006u, 0x00003c60u, 0x00002d76u, 0x00003c5fu, 0x00050051u, + 0x00000006u, 0x00003c62u, 0x00003085u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c63u, 0x00003c62u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003c65u, 0x00003c60u, 0x00003c63u, 0x000500c7u, 0x00000006u, + 0x00003c67u, 0x00003c65u, 0x00000f19u, 0x000500c2u, 0x00000006u, 0x00003c69u, 0x00003c67u, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00003c6cu, 0x00003c5eu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003c6du, + 0x00003c6cu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003c6fu, 0x00003c69u, 0x00003c6du, 0x000500c6u, + 0x00000006u, 0x00003c71u, 0x00003c6fu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00003c74u, 0x00000f48u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00003c71u, 0x0004003du, 0x00000230u, 0x00003c75u, 0x00003c74u, + 0x00040071u, 0x00000006u, 0x00003c76u, 0x00003c75u, 0x000500c5u, 0x00000006u, 0x00003c79u, 0x00003c71u, + 0x00000f4au, 0x00080041u, 0x00000275u, 0x00003c7au, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00003c79u, 0x0004003du, 0x00000230u, 0x00003c7bu, 0x00003c7au, 0x00040071u, 0x00000006u, 0x00003c7cu, + 0x00003c7bu, 0x000500c2u, 0x00000006u, 0x00003c7eu, 0x00003c76u, 0x00000263u, 0x0004007cu, 0x00000008u, + 0x00003c7fu, 0x00003c7eu, 0x000500c7u, 0x00000006u, 0x00003c81u, 0x00003c76u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00003c82u, 0x00003c81u, 0x000500c2u, 0x00000006u, 0x00003c84u, 0x00003c7cu, 0x00000263u, + 0x0004007cu, 0x00000008u, 0x00003c85u, 0x00003c84u, 0x000500c7u, 0x00000006u, 0x00003c87u, 0x00003c7cu, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003c88u, 0x00003c87u, 0x00070050u, 0x00000009u, 0x00003c89u, + 0x00003c7fu, 0x00003c82u, 0x00003c85u, 0x00003c88u, 0x00050050u, 0x0000005fu, 0x0000308bu, 0x00007765u, + 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x0000308cu, 0x0000308bu, 0x00050051u, 0x00000006u, 0x00003c95u, + 0x0000308cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003c96u, 0x00002d79u, 0x00003c95u, 0x00050080u, + 0x00000006u, 0x00003c97u, 0x00002d76u, 0x00003c96u, 0x00050051u, 0x00000006u, 0x00003c99u, 0x0000308cu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c9au, 0x00003c99u, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00003c9cu, 0x00003c97u, 0x00003c9au, 0x000500c7u, 0x00000006u, 0x00003c9eu, 0x00003c9cu, 0x00000f19u, + 0x000500c2u, 0x00000006u, 0x00003ca0u, 0x00003c9eu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003ca3u, + 0x00003c95u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003ca4u, 0x00003ca3u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00003ca6u, 0x00003ca0u, 0x00003ca4u, 0x000500c6u, 0x00000006u, 0x00003ca8u, 0x00003ca6u, + 0x0000048au, 0x00080041u, 0x00000275u, 0x00003cabu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00003ca8u, 0x0004003du, 0x00000230u, 0x00003cacu, 0x00003cabu, 0x00040071u, 0x00000006u, 0x00003cadu, + 0x00003cacu, 0x000500c5u, 0x00000006u, 0x00003cb0u, 0x00003ca8u, 0x00000f4au, 0x00080041u, 0x00000275u, + 0x00003cb1u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003cb0u, 0x0004003du, 0x00000230u, + 0x00003cb2u, 0x00003cb1u, 0x00040071u, 0x00000006u, 0x00003cb3u, 0x00003cb2u, 0x000500c2u, 0x00000006u, + 0x00003cb5u, 0x00003cadu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003cb6u, 0x00003cb5u, 0x000500c7u, + 0x00000006u, 0x00003cb8u, 0x00003cadu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003cb9u, 0x00003cb8u, + 0x000500c2u, 0x00000006u, 0x00003cbbu, 0x00003cb3u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003cbcu, + 0x00003cbbu, 0x000500c7u, 0x00000006u, 0x00003cbeu, 0x00003cb3u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00003cbfu, 0x00003cbeu, 0x00070050u, 0x00000009u, 0x00003cc0u, 0x00003cb6u, 0x00003cb9u, 0x00003cbcu, + 0x00003cbfu, 0x000200f9u, 0x00003090u, 0x000200f8u, 0x00003090u, 0x000700f5u, 0x00000009u, 0x000079b6u, + 0x00007970u, 0x0000307au, 0x00003cc0u, 0x00003081u, 0x000700f5u, 0x00000009u, 0x00007938u, 0x000078efu, + 0x0000307au, 0x00003c89u, 0x00003081u, 0x000300f7u, 0x0000309au, 0x00000000u, 0x000400fau, 0x00002f4eu, + 0x00003092u, 0x0000309au, 0x000200f8u, 0x00003092u, 0x00050050u, 0x0000005fu, 0x00003095u, 0x0000776du, + 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x00003096u, 0x00003095u, 0x00050051u, 0x00000006u, 0x00003cccu, + 0x00003096u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003ccdu, 0x00002d79u, 0x00003cccu, 0x00050080u, + 0x00000006u, 0x00003cceu, 0x00002d76u, 0x00003ccdu, 0x00050051u, 0x00000006u, 0x00003cd0u, 0x00003096u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003cd1u, 0x00003cd0u, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00003cd3u, 0x00003cceu, 0x00003cd1u, 0x000500c7u, 0x00000006u, 0x00003cd5u, 0x00003cd3u, 0x00000f19u, + 0x000500c2u, 0x00000006u, 0x00003cd7u, 0x00003cd5u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003cdau, + 0x00003cccu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003cdbu, 0x00003cdau, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00003cddu, 0x00003cd7u, 0x00003cdbu, 0x000500c6u, 0x00000006u, 0x00003cdfu, 0x00003cddu, + 0x0000048au, 0x00080041u, 0x00000275u, 0x00003ce2u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00003cdfu, 0x0004003du, 0x00000230u, 0x00003ce3u, 0x00003ce2u, 0x00040071u, 0x00000006u, 0x00003ce4u, + 0x00003ce3u, 0x000500c5u, 0x00000006u, 0x00003ce7u, 0x00003cdfu, 0x00000f4au, 0x00080041u, 0x00000275u, + 0x00003ce8u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003ce7u, 0x0004003du, 0x00000230u, + 0x00003ce9u, 0x00003ce8u, 0x00040071u, 0x00000006u, 0x00003ceau, 0x00003ce9u, 0x000500c2u, 0x00000006u, + 0x00003cecu, 0x00003ce4u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003cedu, 0x00003cecu, 0x000500c7u, + 0x00000006u, 0x00003cefu, 0x00003ce4u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003cf0u, 0x00003cefu, + 0x000500c2u, 0x00000006u, 0x00003cf2u, 0x00003ceau, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00003cf3u, + 0x00003cf2u, 0x000500c7u, 0x00000006u, 0x00003cf5u, 0x00003ceau, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00003cf6u, 0x00003cf5u, 0x00070050u, 0x00000009u, 0x00003cf7u, 0x00003cedu, 0x00003cf0u, 0x00003cf3u, + 0x00003cf6u, 0x000200f9u, 0x0000309au, 0x000200f8u, 0x0000309au, 0x000700f5u, 0x00000009u, 0x00007a33u, + 0x000079ebu, 0x00003090u, 0x00003cf7u, 0x00003092u, 0x000200f9u, 0x0000309bu, 0x000200f8u, 0x00003059u, + 0x0004007cu, 0x000000a6u, 0x0000305bu, 0x0000778cu, 0x00050051u, 0x00000006u, 0x00003b23u, 0x0000305bu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003b24u, 0x00002d79u, 0x00003b23u, 0x00050080u, 0x00000006u, + 0x00003b25u, 0x00002d76u, 0x00003b24u, 0x00050051u, 0x00000006u, 0x00003b27u, 0x0000305bu, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003b28u, 0x00003b27u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003b2au, + 0x00003b25u, 0x00003b28u, 0x000500c7u, 0x00000006u, 0x00003b2cu, 0x00003b2au, 0x00000e67u, 0x000500c2u, + 0x00000006u, 0x00003b2eu, 0x00003b2cu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003b31u, 0x00003b23u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003b32u, 0x00003b31u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00003b34u, 0x00003b2eu, 0x00003b32u, 0x000500c6u, 0x00000006u, 0x00003b36u, 0x00003b34u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00003b39u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003b36u, + 0x0004003du, 0x00000230u, 0x00003b3au, 0x00003b39u, 0x00040071u, 0x00000006u, 0x00003b3bu, 0x00003b3au, + 0x00060050u, 0x00000358u, 0x00003b43u, 0x00003b3bu, 0x00003b3bu, 0x00003b3bu, 0x000500c2u, 0x00000358u, + 0x00003b44u, 0x00003b43u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x00003b46u, 0x00003b44u, 0x0000bdcdu, + 0x000500c4u, 0x00000358u, 0x00003b49u, 0x00003b46u, 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x00003b4cu, + 0x00003b46u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00003b4du, 0x00003b49u, 0x00003b4cu, 0x000500c7u, + 0x00000006u, 0x00003b4fu, 0x00003b3bu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003b50u, 0x00003b4fu, + 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003b52u, 0x00003b4du, 0x0004007cu, 0x00000008u, 0x00003b54u, + 0x00003b50u, 0x00050051u, 0x00000008u, 0x00003b55u, 0x00003b52u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00003b56u, 0x00003b52u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003b57u, 0x00003b52u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00003b58u, 0x00003b55u, 0x00003b56u, 0x00003b57u, 0x00003b54u, 0x000300f7u, + 0x0000306fu, 0x00000000u, 0x000400fau, 0x00002257u, 0x00003060u, 0x0000306fu, 0x000200f8u, 0x00003060u, + 0x00050050u, 0x0000005fu, 0x00003063u, 0x0000776du, 0x00002f42u, 0x0004007cu, 0x000000a6u, 0x00003064u, + 0x00003063u, 0x00050051u, 0x00000006u, 0x00003b64u, 0x00003064u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003b65u, 0x00002d79u, 0x00003b64u, 0x00050080u, 0x00000006u, 0x00003b66u, 0x00002d76u, 0x00003b65u, + 0x00050051u, 0x00000006u, 0x00003b68u, 0x00003064u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003b69u, + 0x00003b68u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003b6bu, 0x00003b66u, 0x00003b69u, 0x000500c7u, + 0x00000006u, 0x00003b6du, 0x00003b6bu, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00003b6fu, 0x00003b6du, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003b72u, 0x00003b64u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00003b73u, 0x00003b72u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003b75u, 0x00003b6fu, 0x00003b73u, + 0x000500c6u, 0x00000006u, 0x00003b77u, 0x00003b75u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00003b7au, + 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003b77u, 0x0004003du, 0x00000230u, 0x00003b7bu, + 0x00003b7au, 0x00040071u, 0x00000006u, 0x00003b7cu, 0x00003b7bu, 0x00060050u, 0x00000358u, 0x00003b84u, + 0x00003b7cu, 0x00003b7cu, 0x00003b7cu, 0x000500c2u, 0x00000358u, 0x00003b85u, 0x00003b84u, 0x00000e2eu, + 0x000500c7u, 0x00000358u, 0x00003b87u, 0x00003b85u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00003b8au, + 0x00003b87u, 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x00003b8du, 0x00003b87u, 0x0000bdcfu, 0x000500c5u, + 0x00000358u, 0x00003b8eu, 0x00003b8au, 0x00003b8du, 0x000500c7u, 0x00000006u, 0x00003b90u, 0x00003b7cu, + 0x0000048au, 0x00050084u, 0x00000006u, 0x00003b91u, 0x00003b90u, 0x000006c7u, 0x0004007cu, 0x0000003cu, + 0x00003b93u, 0x00003b8eu, 0x0004007cu, 0x00000008u, 0x00003b95u, 0x00003b91u, 0x00050051u, 0x00000008u, + 0x00003b96u, 0x00003b93u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00003b97u, 0x00003b93u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00003b98u, 0x00003b93u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00003b99u, + 0x00003b96u, 0x00003b97u, 0x00003b98u, 0x00003b95u, 0x00050050u, 0x0000005fu, 0x0000306au, 0x00007765u, + 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x0000306bu, 0x0000306au, 0x00050051u, 0x00000006u, 0x00003ba5u, + 0x0000306bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003ba6u, 0x00002d79u, 0x00003ba5u, 0x00050080u, + 0x00000006u, 0x00003ba7u, 0x00002d76u, 0x00003ba6u, 0x00050051u, 0x00000006u, 0x00003ba9u, 0x0000306bu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003baau, 0x00003ba9u, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00003bacu, 0x00003ba7u, 0x00003baau, 0x000500c7u, 0x00000006u, 0x00003baeu, 0x00003bacu, 0x00000e67u, + 0x000500c2u, 0x00000006u, 0x00003bb0u, 0x00003baeu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003bb3u, + 0x00003ba5u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003bb4u, 0x00003bb3u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00003bb6u, 0x00003bb0u, 0x00003bb4u, 0x000500c6u, 0x00000006u, 0x00003bb8u, 0x00003bb6u, + 0x0000048au, 0x00080041u, 0x00000275u, 0x00003bbbu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00003bb8u, 0x0004003du, 0x00000230u, 0x00003bbcu, 0x00003bbbu, 0x00040071u, 0x00000006u, 0x00003bbdu, + 0x00003bbcu, 0x00060050u, 0x00000358u, 0x00003bc5u, 0x00003bbdu, 0x00003bbdu, 0x00003bbdu, 0x000500c2u, + 0x00000358u, 0x00003bc6u, 0x00003bc5u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x00003bc8u, 0x00003bc6u, + 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00003bcbu, 0x00003bc8u, 0x0000bdceu, 0x000500c2u, 0x00000358u, + 0x00003bceu, 0x00003bc8u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00003bcfu, 0x00003bcbu, 0x00003bceu, + 0x000500c7u, 0x00000006u, 0x00003bd1u, 0x00003bbdu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003bd2u, + 0x00003bd1u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003bd4u, 0x00003bcfu, 0x0004007cu, 0x00000008u, + 0x00003bd6u, 0x00003bd2u, 0x00050051u, 0x00000008u, 0x00003bd7u, 0x00003bd4u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00003bd8u, 0x00003bd4u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003bd9u, 0x00003bd4u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00003bdau, 0x00003bd7u, 0x00003bd8u, 0x00003bd9u, 0x00003bd6u, + 0x000200f9u, 0x0000306fu, 0x000200f8u, 0x0000306fu, 0x000700f5u, 0x00000009u, 0x000079b4u, 0x00007970u, + 0x00003059u, 0x00003bdau, 0x00003060u, 0x000700f5u, 0x00000009u, 0x00007936u, 0x000078efu, 0x00003059u, + 0x00003b99u, 0x00003060u, 0x000300f7u, 0x00003079u, 0x00000000u, 0x000400fau, 0x00002f4eu, 0x00003071u, + 0x00003079u, 0x000200f8u, 0x00003071u, 0x00050050u, 0x0000005fu, 0x00003074u, 0x0000776du, 0x00002f44u, + 0x0004007cu, 0x000000a6u, 0x00003075u, 0x00003074u, 0x00050051u, 0x00000006u, 0x00003be6u, 0x00003075u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003be7u, 0x00002d79u, 0x00003be6u, 0x00050080u, 0x00000006u, + 0x00003be8u, 0x00002d76u, 0x00003be7u, 0x00050051u, 0x00000006u, 0x00003beau, 0x00003075u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003bebu, 0x00003beau, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003bedu, + 0x00003be8u, 0x00003bebu, 0x000500c7u, 0x00000006u, 0x00003befu, 0x00003bedu, 0x00000e67u, 0x000500c2u, + 0x00000006u, 0x00003bf1u, 0x00003befu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003bf4u, 0x00003be6u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003bf5u, 0x00003bf4u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00003bf7u, 0x00003bf1u, 0x00003bf5u, 0x000500c6u, 0x00000006u, 0x00003bf9u, 0x00003bf7u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00003bfcu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003bf9u, + 0x0004003du, 0x00000230u, 0x00003bfdu, 0x00003bfcu, 0x00040071u, 0x00000006u, 0x00003bfeu, 0x00003bfdu, + 0x00060050u, 0x00000358u, 0x00003c06u, 0x00003bfeu, 0x00003bfeu, 0x00003bfeu, 0x000500c2u, 0x00000358u, + 0x00003c07u, 0x00003c06u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x00003c09u, 0x00003c07u, 0x0000bdcdu, + 0x000500c4u, 0x00000358u, 0x00003c0cu, 0x00003c09u, 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x00003c0fu, + 0x00003c09u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00003c10u, 0x00003c0cu, 0x00003c0fu, 0x000500c7u, + 0x00000006u, 0x00003c12u, 0x00003bfeu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003c13u, 0x00003c12u, + 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003c15u, 0x00003c10u, 0x0004007cu, 0x00000008u, 0x00003c17u, + 0x00003c13u, 0x00050051u, 0x00000008u, 0x00003c18u, 0x00003c15u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00003c19u, 0x00003c15u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003c1au, 0x00003c15u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00003c1bu, 0x00003c18u, 0x00003c19u, 0x00003c1au, 0x00003c17u, 0x000200f9u, + 0x00003079u, 0x000200f8u, 0x00003079u, 0x000700f5u, 0x00000009u, 0x00007a31u, 0x000079ebu, 0x0000306fu, + 0x00003c1bu, 0x00003071u, 0x000200f9u, 0x0000309bu, 0x000200f8u, 0x00003038u, 0x0004007cu, 0x000000a6u, + 0x0000303au, 0x0000778cu, 0x00050051u, 0x00000006u, 0x00003a92u, 0x0000303au, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003a93u, 0x00002d79u, 0x00003a92u, 0x00050080u, 0x00000006u, 0x00003a94u, 0x00002d76u, + 0x00003a93u, 0x00050051u, 0x00000006u, 0x00003a96u, 0x0000303au, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003a98u, 0x00003a94u, 0x00003a96u, 0x000500c7u, 0x00000006u, 0x00003a9au, 0x00003a98u, 0x00000e67u, + 0x000500c7u, 0x00000006u, 0x00003a9eu, 0x00003a92u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003a9fu, + 0x00003a9eu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003aa1u, 0x00003a9au, 0x00003a9fu, 0x000500c6u, + 0x00000006u, 0x00003aa3u, 0x00003aa1u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003aa6u, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00003aa3u, 0x0004003du, 0x0000022eu, 0x00003aa7u, 0x00003aa6u, + 0x00040071u, 0x00000006u, 0x00003aa8u, 0x00003aa7u, 0x0004007cu, 0x00000008u, 0x00003aaau, 0x00003aa8u, + 0x00070050u, 0x00000009u, 0x00003aabu, 0x00003aaau, 0x00003aaau, 0x00003aaau, 0x00003aaau, 0x000300f7u, + 0x0000304eu, 0x00000000u, 0x000400fau, 0x00002257u, 0x0000303fu, 0x0000304eu, 0x000200f8u, 0x0000303fu, + 0x00050050u, 0x0000005fu, 0x00003042u, 0x0000776du, 0x00002f42u, 0x0004007cu, 0x000000a6u, 0x00003043u, + 0x00003042u, 0x00050051u, 0x00000006u, 0x00003ab6u, 0x00003043u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003ab7u, 0x00002d79u, 0x00003ab6u, 0x00050080u, 0x00000006u, 0x00003ab8u, 0x00002d76u, 0x00003ab7u, + 0x00050051u, 0x00000006u, 0x00003abau, 0x00003043u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003abcu, + 0x00003ab8u, 0x00003abau, 0x000500c7u, 0x00000006u, 0x00003abeu, 0x00003abcu, 0x00000e67u, 0x000500c7u, + 0x00000006u, 0x00003ac2u, 0x00003ab6u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003ac3u, 0x00003ac2u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003ac5u, 0x00003abeu, 0x00003ac3u, 0x000500c6u, 0x00000006u, + 0x00003ac7u, 0x00003ac5u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003acau, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00003ac7u, 0x0004003du, 0x0000022eu, 0x00003acbu, 0x00003acau, 0x00040071u, + 0x00000006u, 0x00003accu, 0x00003acbu, 0x0004007cu, 0x00000008u, 0x00003aceu, 0x00003accu, 0x00070050u, + 0x00000009u, 0x00003acfu, 0x00003aceu, 0x00003aceu, 0x00003aceu, 0x00003aceu, 0x00050050u, 0x0000005fu, + 0x00003049u, 0x00007765u, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x0000304au, 0x00003049u, 0x00050051u, + 0x00000006u, 0x00003adau, 0x0000304au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003adbu, 0x00002d79u, + 0x00003adau, 0x00050080u, 0x00000006u, 0x00003adcu, 0x00002d76u, 0x00003adbu, 0x00050051u, 0x00000006u, + 0x00003adeu, 0x0000304au, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003ae0u, 0x00003adcu, 0x00003adeu, + 0x000500c7u, 0x00000006u, 0x00003ae2u, 0x00003ae0u, 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00003ae6u, + 0x00003adau, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003ae7u, 0x00003ae6u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x00003ae9u, 0x00003ae2u, 0x00003ae7u, 0x000500c6u, 0x00000006u, 0x00003aebu, 0x00003ae9u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003aeeu, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00003aebu, 0x0004003du, 0x0000022eu, 0x00003aefu, 0x00003aeeu, 0x00040071u, 0x00000006u, 0x00003af0u, + 0x00003aefu, 0x0004007cu, 0x00000008u, 0x00003af2u, 0x00003af0u, 0x00070050u, 0x00000009u, 0x00003af3u, + 0x00003af2u, 0x00003af2u, 0x00003af2u, 0x00003af2u, 0x000200f9u, 0x0000304eu, 0x000200f8u, 0x0000304eu, + 0x000700f5u, 0x00000009u, 0x000079b2u, 0x00007970u, 0x00003038u, 0x00003af3u, 0x0000303fu, 0x000700f5u, + 0x00000009u, 0x00007934u, 0x000078efu, 0x00003038u, 0x00003acfu, 0x0000303fu, 0x000300f7u, 0x00003058u, + 0x00000000u, 0x000400fau, 0x00002f4eu, 0x00003050u, 0x00003058u, 0x000200f8u, 0x00003050u, 0x00050050u, + 0x0000005fu, 0x00003053u, 0x0000776du, 0x00002f44u, 0x0004007cu, 0x000000a6u, 0x00003054u, 0x00003053u, + 0x00050051u, 0x00000006u, 0x00003afeu, 0x00003054u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003affu, + 0x00002d79u, 0x00003afeu, 0x00050080u, 0x00000006u, 0x00003b00u, 0x00002d76u, 0x00003affu, 0x00050051u, + 0x00000006u, 0x00003b02u, 0x00003054u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003b04u, 0x00003b00u, + 0x00003b02u, 0x000500c7u, 0x00000006u, 0x00003b06u, 0x00003b04u, 0x00000e67u, 0x000500c7u, 0x00000006u, + 0x00003b0au, 0x00003afeu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003b0bu, 0x00003b0au, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00003b0du, 0x00003b06u, 0x00003b0bu, 0x000500c6u, 0x00000006u, 0x00003b0fu, + 0x00003b0du, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003b12u, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00003b0fu, 0x0004003du, 0x0000022eu, 0x00003b13u, 0x00003b12u, 0x00040071u, 0x00000006u, + 0x00003b14u, 0x00003b13u, 0x0004007cu, 0x00000008u, 0x00003b16u, 0x00003b14u, 0x00070050u, 0x00000009u, + 0x00003b17u, 0x00003b16u, 0x00003b16u, 0x00003b16u, 0x00003b16u, 0x000200f9u, 0x00003058u, 0x000200f8u, + 0x00003058u, 0x000700f5u, 0x00000009u, 0x00007a2fu, 0x000079ebu, 0x0000304eu, 0x00003b17u, 0x00003050u, + 0x000200f9u, 0x0000309bu, 0x000200f8u, 0x00003017u, 0x0004007cu, 0x000000a6u, 0x00003019u, 0x0000778cu, + 0x00050051u, 0x00000006u, 0x000039c7u, 0x00003019u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000039c8u, + 0x00002d79u, 0x000039c7u, 0x00050080u, 0x00000006u, 0x000039c9u, 0x00002d76u, 0x000039c8u, 0x00050051u, + 0x00000006u, 0x000039cbu, 0x00003019u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000039ccu, 0x000039cbu, + 0x00000217u, 0x00050080u, 0x00000006u, 0x000039ceu, 0x000039c9u, 0x000039ccu, 0x000500c7u, 0x00000006u, + 0x000039d0u, 0x000039ceu, 0x00000e67u, 0x000400c8u, 0x00000006u, 0x000039d3u, 0x000039cbu, 0x000500c7u, + 0x00000006u, 0x000039d4u, 0x000039d3u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000039d5u, 0x000039d4u, + 0x00000706u, 0x000500c7u, 0x00000006u, 0x000039d9u, 0x000039c7u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x000039dau, 0x000039d9u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000039dcu, 0x000039d0u, 0x000039dau, + 0x000500c6u, 0x00000006u, 0x000039deu, 0x000039dcu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000039e1u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000039deu, 0x0004003du, 0x0000022eu, 0x000039e2u, + 0x000039e1u, 0x00040071u, 0x00000006u, 0x000039e3u, 0x000039e2u, 0x000500c2u, 0x00000006u, 0x000039e6u, + 0x000039e3u, 0x000039d5u, 0x000500c7u, 0x00000006u, 0x000039e7u, 0x000039e6u, 0x00000e8au, 0x000500c4u, + 0x00000006u, 0x000039e9u, 0x000039e7u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x000039ebu, 0x000039e7u, + 0x000039e9u, 0x0004007cu, 0x00000008u, 0x000039edu, 0x000039ebu, 0x00070050u, 0x00000009u, 0x000039eeu, + 0x000039edu, 0x000039edu, 0x000039edu, 0x000039edu, 0x000300f7u, 0x0000302du, 0x00000000u, 0x000400fau, + 0x00002257u, 0x0000301eu, 0x0000302du, 0x000200f8u, 0x0000301eu, 0x00050050u, 0x0000005fu, 0x00003021u, + 0x0000776du, 0x00002f42u, 0x0004007cu, 0x000000a6u, 0x00003022u, 0x00003021u, 0x00050051u, 0x00000006u, + 0x000039fau, 0x00003022u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000039fbu, 0x00002d79u, 0x000039fau, + 0x00050080u, 0x00000006u, 0x000039fcu, 0x00002d76u, 0x000039fbu, 0x00050051u, 0x00000006u, 0x000039feu, + 0x00003022u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000039ffu, 0x000039feu, 0x00000217u, 0x00050080u, + 0x00000006u, 0x00003a01u, 0x000039fcu, 0x000039ffu, 0x000500c7u, 0x00000006u, 0x00003a03u, 0x00003a01u, + 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00003a06u, 0x000039feu, 0x000500c7u, 0x00000006u, 0x00003a07u, + 0x00003a06u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003a08u, 0x00003a07u, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00003a0cu, 0x000039fau, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003a0du, 0x00003a0cu, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003a0fu, 0x00003a03u, 0x00003a0du, 0x000500c6u, 0x00000006u, + 0x00003a11u, 0x00003a0fu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003a14u, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00003a11u, 0x0004003du, 0x0000022eu, 0x00003a15u, 0x00003a14u, 0x00040071u, + 0x00000006u, 0x00003a16u, 0x00003a15u, 0x000500c2u, 0x00000006u, 0x00003a19u, 0x00003a16u, 0x00003a08u, + 0x000500c7u, 0x00000006u, 0x00003a1au, 0x00003a19u, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00003a1cu, + 0x00003a1au, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00003a1eu, 0x00003a1au, 0x00003a1cu, 0x0004007cu, + 0x00000008u, 0x00003a20u, 0x00003a1eu, 0x00070050u, 0x00000009u, 0x00003a21u, 0x00003a20u, 0x00003a20u, + 0x00003a20u, 0x00003a20u, 0x00050050u, 0x0000005fu, 0x00003028u, 0x00007765u, 0x00002f44u, 0x0004007cu, + 0x000000a6u, 0x00003029u, 0x00003028u, 0x00050051u, 0x00000006u, 0x00003a2du, 0x00003029u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003a2eu, 0x00002d79u, 0x00003a2du, 0x00050080u, 0x00000006u, 0x00003a2fu, + 0x00002d76u, 0x00003a2eu, 0x00050051u, 0x00000006u, 0x00003a31u, 0x00003029u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003a32u, 0x00003a31u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00003a34u, 0x00003a2fu, + 0x00003a32u, 0x000500c7u, 0x00000006u, 0x00003a36u, 0x00003a34u, 0x00000e67u, 0x000400c8u, 0x00000006u, + 0x00003a39u, 0x00003a31u, 0x000500c7u, 0x00000006u, 0x00003a3au, 0x00003a39u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003a3bu, 0x00003a3au, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003a3fu, 0x00003a2du, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003a40u, 0x00003a3fu, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003a42u, 0x00003a36u, 0x00003a40u, 0x000500c6u, 0x00000006u, 0x00003a44u, 0x00003a42u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00003a47u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003a44u, + 0x0004003du, 0x0000022eu, 0x00003a48u, 0x00003a47u, 0x00040071u, 0x00000006u, 0x00003a49u, 0x00003a48u, + 0x000500c2u, 0x00000006u, 0x00003a4cu, 0x00003a49u, 0x00003a3bu, 0x000500c7u, 0x00000006u, 0x00003a4du, + 0x00003a4cu, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00003a4fu, 0x00003a4du, 0x00000220u, 0x000500c5u, + 0x00000006u, 0x00003a51u, 0x00003a4du, 0x00003a4fu, 0x0004007cu, 0x00000008u, 0x00003a53u, 0x00003a51u, + 0x00070050u, 0x00000009u, 0x00003a54u, 0x00003a53u, 0x00003a53u, 0x00003a53u, 0x00003a53u, 0x000200f9u, + 0x0000302du, 0x000200f8u, 0x0000302du, 0x000700f5u, 0x00000009u, 0x000079b0u, 0x00007970u, 0x00003017u, + 0x00003a54u, 0x0000301eu, 0x000700f5u, 0x00000009u, 0x00007932u, 0x000078efu, 0x00003017u, 0x00003a21u, + 0x0000301eu, 0x000300f7u, 0x00003037u, 0x00000000u, 0x000400fau, 0x00002f4eu, 0x0000302fu, 0x00003037u, + 0x000200f8u, 0x0000302fu, 0x00050050u, 0x0000005fu, 0x00003032u, 0x0000776du, 0x00002f44u, 0x0004007cu, + 0x000000a6u, 0x00003033u, 0x00003032u, 0x00050051u, 0x00000006u, 0x00003a60u, 0x00003033u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003a61u, 0x00002d79u, 0x00003a60u, 0x00050080u, 0x00000006u, 0x00003a62u, + 0x00002d76u, 0x00003a61u, 0x00050051u, 0x00000006u, 0x00003a64u, 0x00003033u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003a65u, 0x00003a64u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00003a67u, 0x00003a62u, + 0x00003a65u, 0x000500c7u, 0x00000006u, 0x00003a69u, 0x00003a67u, 0x00000e67u, 0x000400c8u, 0x00000006u, + 0x00003a6cu, 0x00003a64u, 0x000500c7u, 0x00000006u, 0x00003a6du, 0x00003a6cu, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003a6eu, 0x00003a6du, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003a72u, 0x00003a60u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003a73u, 0x00003a72u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003a75u, 0x00003a69u, 0x00003a73u, 0x000500c6u, 0x00000006u, 0x00003a77u, 0x00003a75u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00003a7au, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003a77u, + 0x0004003du, 0x0000022eu, 0x00003a7bu, 0x00003a7au, 0x00040071u, 0x00000006u, 0x00003a7cu, 0x00003a7bu, + 0x000500c2u, 0x00000006u, 0x00003a7fu, 0x00003a7cu, 0x00003a6eu, 0x000500c7u, 0x00000006u, 0x00003a80u, + 0x00003a7fu, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00003a82u, 0x00003a80u, 0x00000220u, 0x000500c5u, + 0x00000006u, 0x00003a84u, 0x00003a80u, 0x00003a82u, 0x0004007cu, 0x00000008u, 0x00003a86u, 0x00003a84u, + 0x00070050u, 0x00000009u, 0x00003a87u, 0x00003a86u, 0x00003a86u, 0x00003a86u, 0x00003a86u, 0x000200f9u, + 0x00003037u, 0x000200f8u, 0x00003037u, 0x000700f5u, 0x00000009u, 0x00007a2du, 0x000079ebu, 0x0000302du, + 0x00003a87u, 0x0000302fu, 0x000200f9u, 0x0000309bu, 0x000200f8u, 0x0000309bu, 0x000d00f5u, 0x00000009u, + 0x00007a2cu, 0x000079ebu, 0x00003014u, 0x00007a2du, 0x00003037u, 0x00007a2fu, 0x00003058u, 0x00007a31u, + 0x00003079u, 0x00007a33u, 0x0000309au, 0x000d00f5u, 0x00000009u, 0x000079aeu, 0x00007970u, 0x00003014u, + 0x000079b0u, 0x00003037u, 0x000079b2u, 0x00003058u, 0x000079b4u, 0x00003079u, 0x000079b6u, 0x0000309au, + 0x000d00f5u, 0x00000009u, 0x00007930u, 0x000078efu, 0x00003014u, 0x00007932u, 0x00003037u, 0x00007934u, + 0x00003058u, 0x00007936u, 0x00003079u, 0x00007938u, 0x0000309au, 0x000d00f5u, 0x00000009u, 0x0000783du, + 0x000077fdu, 0x00003014u, 0x000039eeu, 0x00003037u, 0x00003aabu, 0x00003058u, 0x00003b58u, 0x00003079u, + 0x00003c52u, 0x0000309au, 0x000200f9u, 0x0000322cu, 0x000200f8u, 0x0000322cu, 0x000f00f5u, 0x00000009u, + 0x00007a2bu, 0x000079ebu, 0x00003011u, 0x00007a2cu, 0x0000309bu, 0x00007a35u, 0x000030c9u, 0x00007a36u, + 0x0000313cu, 0x00007a3du, 0x000031c4u, 0x00007a46u, 0x0000322bu, 0x000f00f5u, 0x00000009u, 0x000079adu, + 0x00007970u, 0x00003011u, 0x000079aeu, 0x0000309bu, 0x000079b7u, 0x000030c9u, 0x000079b8u, 0x0000313cu, + 0x000079bfu, 0x000031c4u, 0x000079c8u, 0x0000322bu, 0x000f00f5u, 0x00000009u, 0x0000792fu, 0x000078efu, + 0x00003011u, 0x00007930u, 0x0000309bu, 0x00007939u, 0x000030c9u, 0x0000793au, 0x0000313cu, 0x00007941u, + 0x000031c4u, 0x0000794au, 0x0000322bu, 0x000f00f5u, 0x00000009u, 0x0000783cu, 0x000077fdu, 0x00003011u, + 0x0000783du, 0x0000309bu, 0x00003d43u, 0x000030c9u, 0x00007847u, 0x0000313cu, 0x0000784eu, 0x000031c4u, + 0x00007857u, 0x0000322bu, 0x000200f9u, 0x0000322du, 0x000200f8u, 0x00002f6bu, 0x000400a8u, 0x0000005du, + 0x00002f6du, 0x00002257u, 0x000300f7u, 0x00002f74u, 0x00000000u, 0x000400fau, 0x00002f6du, 0x00002f6eu, + 0x00002f74u, 0x000200f8u, 0x00002f6eu, 0x00050050u, 0x0000005fu, 0x00002f71u, 0x00007765u, 0x00002f42u, + 0x000200f9u, 0x00002f74u, 0x000200f8u, 0x00002f74u, 0x000700f5u, 0x0000005fu, 0x000077b2u, 0x0000778cu, + 0x00002f6bu, 0x00002f71u, 0x00002f6eu, 0x000600a9u, 0x00000008u, 0x0000bdfeu, 0x00002f6du, 0x00002f42u, + 0x00002f44u, 0x000600a9u, 0x00000008u, 0x0000bdffu, 0x00002f6du, 0x00007765u, 0x0000776du, 0x000300f7u, + 0x00003010u, 0x00000000u, 0x000b00fbu, 0x00002d7eu, 0x00003010u, 0x00000000u, 0x00002f77u, 0x00000002u, + 0x00002f77u, 0x00000003u, 0x00002f77u, 0x00000004u, 0x00002f77u, 0x000200f8u, 0x00002f77u, 0x000600a9u, + 0x00000008u, 0x00002f7bu, 0x00002f50u, 0x0000021au, 0x00000217u, 0x0004007cu, 0x00000006u, 0x00002f7cu, + 0x00002f7bu, 0x000300f7u, 0x0000300fu, 0x00000000u, 0x000700fbu, 0x00002d83u, 0x00002f7fu, 0x00000000u, + 0x00002fabu, 0x00000001u, 0x00002fe3u, 0x000200f8u, 0x00002fe3u, 0x0004007cu, 0x000000a6u, 0x00002fe5u, + 0x000077b2u, 0x000600a9u, 0x00000008u, 0x00002fe7u, 0x00002f58u, 0x0000021du, 0x00000208u, 0x0004007cu, + 0x00000006u, 0x00002fe8u, 0x00002fe7u, 0x00050051u, 0x00000006u, 0x0000382eu, 0x00002fe5u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000382fu, 0x00002d79u, 0x0000382eu, 0x00050080u, 0x00000006u, 0x00003830u, + 0x00002d76u, 0x0000382fu, 0x00050051u, 0x00000006u, 0x00003832u, 0x00002fe5u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003834u, 0x00003830u, 0x00003832u, 0x000500c7u, 0x00000006u, 0x00003836u, 0x00003834u, + 0x00000f19u, 0x000500c7u, 0x00000006u, 0x0000383au, 0x0000382eu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x0000383bu, 0x0000383au, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000383du, 0x00003836u, 0x0000383bu, + 0x000500c6u, 0x00000006u, 0x0000383fu, 0x0000383du, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003842u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000383fu, 0x0004003du, 0x0000022eu, 0x00003843u, + 0x00003842u, 0x00040071u, 0x00000006u, 0x00003844u, 0x00003843u, 0x000500c4u, 0x00000006u, 0x00003846u, + 0x00003844u, 0x0000021au, 0x00050080u, 0x00000006u, 0x00003848u, 0x00003846u, 0x00002fe8u, 0x000500c6u, + 0x00000006u, 0x0000384bu, 0x00003848u, 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x0000384eu, 0x00000f4au, + 0x0000384bu, 0x00080041u, 0x00000275u, 0x0000384fu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x0000384eu, 0x0004003du, 0x00000230u, 0x00003850u, 0x0000384fu, 0x00040071u, 0x00000006u, 0x00003851u, + 0x00003850u, 0x000300f7u, 0x00003859u, 0x00000000u, 0x000400fau, 0x00002254u, 0x00003853u, 0x00003856u, + 0x000200f8u, 0x00003856u, 0x00060050u, 0x00000358u, 0x00003871u, 0x00003851u, 0x00003851u, 0x00003851u, + 0x000500c2u, 0x00000358u, 0x00003872u, 0x00003871u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x00003874u, + 0x00003872u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00003877u, 0x00003874u, 0x0000bdceu, 0x000500c2u, + 0x00000358u, 0x0000387au, 0x00003874u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x0000387bu, 0x00003877u, + 0x0000387au, 0x000500c7u, 0x00000006u, 0x0000387du, 0x00003851u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x0000387eu, 0x0000387du, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003880u, 0x0000387bu, 0x0004007cu, + 0x00000008u, 0x00003882u, 0x0000387eu, 0x00050051u, 0x00000008u, 0x00003883u, 0x00003880u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00003884u, 0x00003880u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003885u, + 0x00003880u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00003886u, 0x00003883u, 0x00003884u, 0x00003885u, + 0x00003882u, 0x000200f9u, 0x00003859u, 0x000200f8u, 0x00003853u, 0x000500c2u, 0x00000006u, 0x00003860u, + 0x00003851u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003862u, 0x00003851u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00003864u, 0x00003860u, 0x0004007cu, 0x00000008u, 0x0000386au, 0x00003862u, 0x00070050u, + 0x00000009u, 0x0000386bu, 0x00003864u, 0x00003864u, 0x00003864u, 0x0000386au, 0x000200f9u, 0x00003859u, + 0x000200f8u, 0x00003859u, 0x000700f5u, 0x00000009u, 0x000077b3u, 0x0000386bu, 0x00003853u, 0x00003886u, + 0x00003856u, 0x000300f7u, 0x00003002u, 0x00000000u, 0x000400fau, 0x00002293u, 0x00002fefu, 0x00003002u, + 0x000200f8u, 0x00002fefu, 0x00050050u, 0x0000005fu, 0x00002ff2u, 0x0000bdffu, 0x00002f42u, 0x0004007cu, + 0x000000a6u, 0x00002ff3u, 0x00002ff2u, 0x00050051u, 0x00000006u, 0x00003895u, 0x00002ff3u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003896u, 0x00002d79u, 0x00003895u, 0x00050080u, 0x00000006u, 0x00003897u, + 0x00002d76u, 0x00003896u, 0x00050051u, 0x00000006u, 0x00003899u, 0x00002ff3u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x0000389bu, 0x00003897u, 0x00003899u, 0x000500c7u, 0x00000006u, 0x0000389du, 0x0000389bu, + 0x00000f19u, 0x000500c7u, 0x00000006u, 0x000038a1u, 0x00003895u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x000038a2u, 0x000038a1u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000038a4u, 0x0000389du, 0x000038a2u, + 0x000500c6u, 0x00000006u, 0x000038a6u, 0x000038a4u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000038a9u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000038a6u, 0x0004003du, 0x0000022eu, 0x000038aau, + 0x000038a9u, 0x00040071u, 0x00000006u, 0x000038abu, 0x000038aau, 0x000500c4u, 0x00000006u, 0x000038adu, + 0x000038abu, 0x0000021au, 0x00050080u, 0x00000006u, 0x000038afu, 0x000038adu, 0x0000048au, 0x000500c6u, + 0x00000006u, 0x000038b2u, 0x000038afu, 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x000038b5u, 0x00000f4au, + 0x000038b2u, 0x00080041u, 0x00000275u, 0x000038b6u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x000038b5u, 0x0004003du, 0x00000230u, 0x000038b7u, 0x000038b6u, 0x00040071u, 0x00000006u, 0x000038b8u, + 0x000038b7u, 0x000300f7u, 0x000038c0u, 0x00000000u, 0x000400fau, 0x00002254u, 0x000038bau, 0x000038bdu, + 0x000200f8u, 0x000038bdu, 0x00060050u, 0x00000358u, 0x000038d8u, 0x000038b8u, 0x000038b8u, 0x000038b8u, + 0x000500c2u, 0x00000358u, 0x000038d9u, 0x000038d8u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x000038dbu, + 0x000038d9u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x000038deu, 0x000038dbu, 0x0000bdceu, 0x000500c2u, + 0x00000358u, 0x000038e1u, 0x000038dbu, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x000038e2u, 0x000038deu, + 0x000038e1u, 0x000500c7u, 0x00000006u, 0x000038e4u, 0x000038b8u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x000038e5u, 0x000038e4u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000038e7u, 0x000038e2u, 0x0004007cu, + 0x00000008u, 0x000038e9u, 0x000038e5u, 0x00050051u, 0x00000008u, 0x000038eau, 0x000038e7u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000038ebu, 0x000038e7u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000038ecu, + 0x000038e7u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000038edu, 0x000038eau, 0x000038ebu, 0x000038ecu, + 0x000038e9u, 0x000200f9u, 0x000038c0u, 0x000200f8u, 0x000038bau, 0x000500c2u, 0x00000006u, 0x000038c7u, + 0x000038b8u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000038c9u, 0x000038b8u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000038cbu, 0x000038c7u, 0x0004007cu, 0x00000008u, 0x000038d1u, 0x000038c9u, 0x00070050u, + 0x00000009u, 0x000038d2u, 0x000038cbu, 0x000038cbu, 0x000038cbu, 0x000038d1u, 0x000200f9u, 0x000038c0u, + 0x000200f8u, 0x000038c0u, 0x000700f5u, 0x00000009u, 0x000077bau, 0x000038d2u, 0x000038bau, 0x000038edu, + 0x000038bdu, 0x00050050u, 0x0000005fu, 0x00002ffbu, 0x00007765u, 0x0000bdfeu, 0x0004007cu, 0x000000a6u, + 0x00002ffcu, 0x00002ffbu, 0x00050051u, 0x00000006u, 0x000038fcu, 0x00002ffcu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000038fdu, 0x00002d79u, 0x000038fcu, 0x00050080u, 0x00000006u, 0x000038feu, 0x00002d76u, + 0x000038fdu, 0x00050051u, 0x00000006u, 0x00003900u, 0x00002ffcu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003902u, 0x000038feu, 0x00003900u, 0x000500c7u, 0x00000006u, 0x00003904u, 0x00003902u, 0x00000f19u, + 0x000500c7u, 0x00000006u, 0x00003908u, 0x000038fcu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003909u, + 0x00003908u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000390bu, 0x00003904u, 0x00003909u, 0x000500c6u, + 0x00000006u, 0x0000390du, 0x0000390bu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00003910u, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x0000390du, 0x0004003du, 0x0000022eu, 0x00003911u, 0x00003910u, + 0x00040071u, 0x00000006u, 0x00003912u, 0x00003911u, 0x000500c4u, 0x00000006u, 0x00003914u, 0x00003912u, + 0x0000021au, 0x00050080u, 0x00000006u, 0x00003916u, 0x00003914u, 0x000003c9u, 0x000500c6u, 0x00000006u, + 0x00003919u, 0x00003916u, 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x0000391cu, 0x00000f4au, 0x00003919u, + 0x00080041u, 0x00000275u, 0x0000391du, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000391cu, + 0x0004003du, 0x00000230u, 0x0000391eu, 0x0000391du, 0x00040071u, 0x00000006u, 0x0000391fu, 0x0000391eu, + 0x000300f7u, 0x00003927u, 0x00000000u, 0x000400fau, 0x00002254u, 0x00003921u, 0x00003924u, 0x000200f8u, + 0x00003924u, 0x00060050u, 0x00000358u, 0x0000393fu, 0x0000391fu, 0x0000391fu, 0x0000391fu, 0x000500c2u, + 0x00000358u, 0x00003940u, 0x0000393fu, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x00003942u, 0x00003940u, + 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00003945u, 0x00003942u, 0x0000bdceu, 0x000500c2u, 0x00000358u, + 0x00003948u, 0x00003942u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00003949u, 0x00003945u, 0x00003948u, + 0x000500c7u, 0x00000006u, 0x0000394bu, 0x0000391fu, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000394cu, + 0x0000394bu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000394eu, 0x00003949u, 0x0004007cu, 0x00000008u, + 0x00003950u, 0x0000394cu, 0x00050051u, 0x00000008u, 0x00003951u, 0x0000394eu, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00003952u, 0x0000394eu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003953u, 0x0000394eu, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00003954u, 0x00003951u, 0x00003952u, 0x00003953u, 0x00003950u, + 0x000200f9u, 0x00003927u, 0x000200f8u, 0x00003921u, 0x000500c2u, 0x00000006u, 0x0000392eu, 0x0000391fu, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003930u, 0x0000391fu, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00003932u, 0x0000392eu, 0x0004007cu, 0x00000008u, 0x00003938u, 0x00003930u, 0x00070050u, 0x00000009u, + 0x00003939u, 0x00003932u, 0x00003932u, 0x00003932u, 0x00003938u, 0x000200f9u, 0x00003927u, 0x000200f8u, + 0x00003927u, 0x000700f5u, 0x00000009u, 0x000077bfu, 0x00003939u, 0x00003921u, 0x00003954u, 0x00003924u, + 0x000200f9u, 0x00003002u, 0x000200f8u, 0x00003002u, 0x000700f5u, 0x00000009u, 0x000079aau, 0x00007970u, + 0x00003859u, 0x000077bfu, 0x00003927u, 0x000700f5u, 0x00000009u, 0x0000792bu, 0x000078efu, 0x00003859u, + 0x000077bau, 0x00003927u, 0x000300f7u, 0x0000300eu, 0x00000000u, 0x000400fau, 0x00002f4eu, 0x00003004u, + 0x0000300eu, 0x000200f8u, 0x00003004u, 0x00050050u, 0x0000005fu, 0x00003007u, 0x0000bdffu, 0x0000bdfeu, + 0x0004007cu, 0x000000a6u, 0x00003008u, 0x00003007u, 0x00050051u, 0x00000006u, 0x00003963u, 0x00003008u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003964u, 0x00002d79u, 0x00003963u, 0x00050080u, 0x00000006u, + 0x00003965u, 0x00002d76u, 0x00003964u, 0x00050051u, 0x00000006u, 0x00003967u, 0x00003008u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00003969u, 0x00003965u, 0x00003967u, 0x000500c7u, 0x00000006u, 0x0000396bu, + 0x00003969u, 0x00000f19u, 0x000500c7u, 0x00000006u, 0x0000396fu, 0x00003963u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00003970u, 0x0000396fu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00003972u, 0x0000396bu, + 0x00003970u, 0x000500c6u, 0x00000006u, 0x00003974u, 0x00003972u, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00003977u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003974u, 0x0004003du, 0x0000022eu, + 0x00003978u, 0x00003977u, 0x00040071u, 0x00000006u, 0x00003979u, 0x00003978u, 0x000500c4u, 0x00000006u, + 0x0000397bu, 0x00003979u, 0x0000021au, 0x00050080u, 0x00000006u, 0x0000397du, 0x0000397bu, 0x00000490u, + 0x000500c6u, 0x00000006u, 0x00003980u, 0x0000397du, 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x00003983u, + 0x00000f4au, 0x00003980u, 0x00080041u, 0x00000275u, 0x00003984u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00003983u, 0x0004003du, 0x00000230u, 0x00003985u, 0x00003984u, 0x00040071u, 0x00000006u, + 0x00003986u, 0x00003985u, 0x000300f7u, 0x0000398eu, 0x00000000u, 0x000400fau, 0x00002254u, 0x00003988u, + 0x0000398bu, 0x000200f8u, 0x0000398bu, 0x00060050u, 0x00000358u, 0x000039a6u, 0x00003986u, 0x00003986u, + 0x00003986u, 0x000500c2u, 0x00000358u, 0x000039a7u, 0x000039a6u, 0x00000e2eu, 0x000500c7u, 0x00000358u, + 0x000039a9u, 0x000039a7u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x000039acu, 0x000039a9u, 0x0000bdceu, + 0x000500c2u, 0x00000358u, 0x000039afu, 0x000039a9u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x000039b0u, + 0x000039acu, 0x000039afu, 0x000500c7u, 0x00000006u, 0x000039b2u, 0x00003986u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x000039b3u, 0x000039b2u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000039b5u, 0x000039b0u, + 0x0004007cu, 0x00000008u, 0x000039b7u, 0x000039b3u, 0x00050051u, 0x00000008u, 0x000039b8u, 0x000039b5u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000039b9u, 0x000039b5u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000039bau, 0x000039b5u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000039bbu, 0x000039b8u, 0x000039b9u, + 0x000039bau, 0x000039b7u, 0x000200f9u, 0x0000398eu, 0x000200f8u, 0x00003988u, 0x000500c2u, 0x00000006u, + 0x00003995u, 0x00003986u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003997u, 0x00003986u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00003999u, 0x00003995u, 0x0004007cu, 0x00000008u, 0x0000399fu, 0x00003997u, + 0x00070050u, 0x00000009u, 0x000039a0u, 0x00003999u, 0x00003999u, 0x00003999u, 0x0000399fu, 0x000200f9u, + 0x0000398eu, 0x000200f8u, 0x0000398eu, 0x000700f5u, 0x00000009u, 0x000077c5u, 0x000039a0u, 0x00003988u, + 0x000039bbu, 0x0000398bu, 0x000200f9u, 0x0000300eu, 0x000200f8u, 0x0000300eu, 0x000700f5u, 0x00000009u, + 0x00007a26u, 0x000079ebu, 0x00003002u, 0x000077c5u, 0x0000398eu, 0x000200f9u, 0x0000300fu, 0x000200f8u, + 0x00002fabu, 0x0004007cu, 0x000000a6u, 0x00002fadu, 0x000077b2u, 0x0004007cu, 0x00000006u, 0x00002fb0u, + 0x00002d88u, 0x000600a9u, 0x00000008u, 0x00002fb2u, 0x00002f58u, 0x0000021du, 0x00000208u, 0x0004007cu, + 0x00000006u, 0x00002fb3u, 0x00002fb2u, 0x00050051u, 0x00000006u, 0x00003657u, 0x00002fadu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003658u, 0x00002d79u, 0x00003657u, 0x00050080u, 0x00000006u, 0x00003659u, + 0x00002d76u, 0x00003658u, 0x00050051u, 0x00000006u, 0x0000365bu, 0x00002fadu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x0000365cu, 0x0000365bu, 0x00000217u, 0x00050080u, 0x00000006u, 0x0000365eu, 0x00003659u, + 0x0000365cu, 0x000500c7u, 0x00000006u, 0x00003660u, 0x0000365eu, 0x00000f19u, 0x000400c8u, 0x00000006u, + 0x00003663u, 0x0000365bu, 0x000500c7u, 0x00000006u, 0x00003664u, 0x00003663u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003665u, 0x00003664u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003669u, 0x00003657u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000366au, 0x00003669u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x0000366cu, 0x00003660u, 0x0000366au, 0x000500c6u, 0x00000006u, 0x0000366eu, 0x0000366cu, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00003671u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000366eu, + 0x0004003du, 0x0000022eu, 0x00003672u, 0x00003671u, 0x00040071u, 0x00000006u, 0x00003673u, 0x00003672u, + 0x000500c2u, 0x00000006u, 0x00003676u, 0x00003673u, 0x00003665u, 0x000500c7u, 0x00000006u, 0x00003677u, + 0x00003676u, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00003679u, 0x00002fb0u, 0x00000220u, 0x000500c5u, + 0x00000006u, 0x0000367bu, 0x00003677u, 0x00003679u, 0x000500c4u, 0x00000006u, 0x0000367du, 0x0000367bu, + 0x0000021au, 0x00050080u, 0x00000006u, 0x0000367fu, 0x0000367du, 0x00002fb3u, 0x000500c6u, 0x00000006u, + 0x00003682u, 0x0000367fu, 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x00003685u, 0x00000f4au, 0x00003682u, + 0x00080041u, 0x00000275u, 0x00003686u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003685u, + 0x0004003du, 0x00000230u, 0x00003687u, 0x00003686u, 0x00040071u, 0x00000006u, 0x00003688u, 0x00003687u, + 0x000300f7u, 0x00003690u, 0x00000000u, 0x000400fau, 0x00002254u, 0x0000368au, 0x0000368du, 0x000200f8u, + 0x0000368du, 0x00060050u, 0x00000358u, 0x000036a8u, 0x00003688u, 0x00003688u, 0x00003688u, 0x000500c2u, + 0x00000358u, 0x000036a9u, 0x000036a8u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x000036abu, 0x000036a9u, + 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x000036aeu, 0x000036abu, 0x0000bdceu, 0x000500c2u, 0x00000358u, + 0x000036b1u, 0x000036abu, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x000036b2u, 0x000036aeu, 0x000036b1u, + 0x000500c7u, 0x00000006u, 0x000036b4u, 0x00003688u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000036b5u, + 0x000036b4u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000036b7u, 0x000036b2u, 0x0004007cu, 0x00000008u, + 0x000036b9u, 0x000036b5u, 0x00050051u, 0x00000008u, 0x000036bau, 0x000036b7u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000036bbu, 0x000036b7u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000036bcu, 0x000036b7u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000036bdu, 0x000036bau, 0x000036bbu, 0x000036bcu, 0x000036b9u, + 0x000200f9u, 0x00003690u, 0x000200f8u, 0x0000368au, 0x000500c2u, 0x00000006u, 0x00003697u, 0x00003688u, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003699u, 0x00003688u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x0000369bu, 0x00003697u, 0x0004007cu, 0x00000008u, 0x000036a1u, 0x00003699u, 0x00070050u, 0x00000009u, + 0x000036a2u, 0x0000369bu, 0x0000369bu, 0x0000369bu, 0x000036a1u, 0x000200f9u, 0x00003690u, 0x000200f8u, + 0x00003690u, 0x000700f5u, 0x00000009u, 0x000077c6u, 0x000036a2u, 0x0000368au, 0x000036bdu, 0x0000368du, + 0x000300f7u, 0x00002fd3u, 0x00000000u, 0x000400fau, 0x00002293u, 0x00002fbau, 0x00002fd3u, 0x000200f8u, + 0x00002fbau, 0x00050050u, 0x0000005fu, 0x00002fbdu, 0x0000bdffu, 0x00002f42u, 0x0004007cu, 0x000000a6u, + 0x00002fbeu, 0x00002fbdu, 0x00050051u, 0x00000006u, 0x000036cdu, 0x00002fbeu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000036ceu, 0x00002d79u, 0x000036cdu, 0x00050080u, 0x00000006u, 0x000036cfu, 0x00002d76u, + 0x000036ceu, 0x00050051u, 0x00000006u, 0x000036d1u, 0x00002fbeu, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x000036d2u, 0x000036d1u, 0x00000217u, 0x00050080u, 0x00000006u, 0x000036d4u, 0x000036cfu, 0x000036d2u, + 0x000500c7u, 0x00000006u, 0x000036d6u, 0x000036d4u, 0x00000f19u, 0x000400c8u, 0x00000006u, 0x000036d9u, + 0x000036d1u, 0x000500c7u, 0x00000006u, 0x000036dau, 0x000036d9u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x000036dbu, 0x000036dau, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000036dfu, 0x000036cdu, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x000036e0u, 0x000036dfu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000036e2u, + 0x000036d6u, 0x000036e0u, 0x000500c6u, 0x00000006u, 0x000036e4u, 0x000036e2u, 0x00000490u, 0x00080041u, + 0x0000027cu, 0x000036e7u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000036e4u, 0x0004003du, + 0x0000022eu, 0x000036e8u, 0x000036e7u, 0x00040071u, 0x00000006u, 0x000036e9u, 0x000036e8u, 0x000500c2u, + 0x00000006u, 0x000036ecu, 0x000036e9u, 0x000036dbu, 0x000500c7u, 0x00000006u, 0x000036edu, 0x000036ecu, + 0x00000e8au, 0x000500c5u, 0x00000006u, 0x000036f1u, 0x000036edu, 0x00003679u, 0x000500c4u, 0x00000006u, + 0x000036f3u, 0x000036f1u, 0x0000021au, 0x00050080u, 0x00000006u, 0x000036f5u, 0x000036f3u, 0x0000048au, + 0x000500c6u, 0x00000006u, 0x000036f8u, 0x000036f5u, 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x000036fbu, + 0x00000f4au, 0x000036f8u, 0x00080041u, 0x00000275u, 0x000036fcu, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x000036fbu, 0x0004003du, 0x00000230u, 0x000036fdu, 0x000036fcu, 0x00040071u, 0x00000006u, + 0x000036feu, 0x000036fdu, 0x000300f7u, 0x00003706u, 0x00000000u, 0x000400fau, 0x00002254u, 0x00003700u, + 0x00003703u, 0x000200f8u, 0x00003703u, 0x00060050u, 0x00000358u, 0x0000371eu, 0x000036feu, 0x000036feu, + 0x000036feu, 0x000500c2u, 0x00000358u, 0x0000371fu, 0x0000371eu, 0x00000e2eu, 0x000500c7u, 0x00000358u, + 0x00003721u, 0x0000371fu, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00003724u, 0x00003721u, 0x0000bdceu, + 0x000500c2u, 0x00000358u, 0x00003727u, 0x00003721u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00003728u, + 0x00003724u, 0x00003727u, 0x000500c7u, 0x00000006u, 0x0000372au, 0x000036feu, 0x0000048au, 0x00050084u, + 0x00000006u, 0x0000372bu, 0x0000372au, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000372du, 0x00003728u, + 0x0004007cu, 0x00000008u, 0x0000372fu, 0x0000372bu, 0x00050051u, 0x00000008u, 0x00003730u, 0x0000372du, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00003731u, 0x0000372du, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00003732u, 0x0000372du, 0x00000002u, 0x00070050u, 0x00000009u, 0x00003733u, 0x00003730u, 0x00003731u, + 0x00003732u, 0x0000372fu, 0x000200f9u, 0x00003706u, 0x000200f8u, 0x00003700u, 0x000500c2u, 0x00000006u, + 0x0000370du, 0x000036feu, 0x00000263u, 0x000500c7u, 0x00000006u, 0x0000370fu, 0x000036feu, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00003711u, 0x0000370du, 0x0004007cu, 0x00000008u, 0x00003717u, 0x0000370fu, + 0x00070050u, 0x00000009u, 0x00003718u, 0x00003711u, 0x00003711u, 0x00003711u, 0x00003717u, 0x000200f9u, + 0x00003706u, 0x000200f8u, 0x00003706u, 0x000700f5u, 0x00000009u, 0x000077c9u, 0x00003718u, 0x00003700u, + 0x00003733u, 0x00003703u, 0x00050050u, 0x0000005fu, 0x00002fc9u, 0x00007765u, 0x0000bdfeu, 0x0004007cu, + 0x000000a6u, 0x00002fcau, 0x00002fc9u, 0x00050051u, 0x00000006u, 0x00003743u, 0x00002fcau, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003744u, 0x00002d79u, 0x00003743u, 0x00050080u, 0x00000006u, 0x00003745u, + 0x00002d76u, 0x00003744u, 0x00050051u, 0x00000006u, 0x00003747u, 0x00002fcau, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003748u, 0x00003747u, 0x00000217u, 0x00050080u, 0x00000006u, 0x0000374au, 0x00003745u, + 0x00003748u, 0x000500c7u, 0x00000006u, 0x0000374cu, 0x0000374au, 0x00000f19u, 0x000400c8u, 0x00000006u, + 0x0000374fu, 0x00003747u, 0x000500c7u, 0x00000006u, 0x00003750u, 0x0000374fu, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00003751u, 0x00003750u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00003755u, 0x00003743u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00003756u, 0x00003755u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00003758u, 0x0000374cu, 0x00003756u, 0x000500c6u, 0x00000006u, 0x0000375au, 0x00003758u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x0000375du, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000375au, + 0x0004003du, 0x0000022eu, 0x0000375eu, 0x0000375du, 0x00040071u, 0x00000006u, 0x0000375fu, 0x0000375eu, + 0x000500c2u, 0x00000006u, 0x00003762u, 0x0000375fu, 0x00003751u, 0x000500c7u, 0x00000006u, 0x00003763u, + 0x00003762u, 0x00000e8au, 0x000500c5u, 0x00000006u, 0x00003767u, 0x00003763u, 0x00003679u, 0x000500c4u, + 0x00000006u, 0x00003769u, 0x00003767u, 0x0000021au, 0x00050080u, 0x00000006u, 0x0000376bu, 0x00003769u, + 0x000003c9u, 0x000500c6u, 0x00000006u, 0x0000376eu, 0x0000376bu, 0x00002f7cu, 0x000500c5u, 0x00000006u, + 0x00003771u, 0x00000f4au, 0x0000376eu, 0x00080041u, 0x00000275u, 0x00003772u, 0x00000f48u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00003771u, 0x0004003du, 0x00000230u, 0x00003773u, 0x00003772u, 0x00040071u, + 0x00000006u, 0x00003774u, 0x00003773u, 0x000300f7u, 0x0000377cu, 0x00000000u, 0x000400fau, 0x00002254u, + 0x00003776u, 0x00003779u, 0x000200f8u, 0x00003779u, 0x00060050u, 0x00000358u, 0x00003794u, 0x00003774u, + 0x00003774u, 0x00003774u, 0x000500c2u, 0x00000358u, 0x00003795u, 0x00003794u, 0x00000e2eu, 0x000500c7u, + 0x00000358u, 0x00003797u, 0x00003795u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x0000379au, 0x00003797u, + 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x0000379du, 0x00003797u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, + 0x0000379eu, 0x0000379au, 0x0000379du, 0x000500c7u, 0x00000006u, 0x000037a0u, 0x00003774u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000037a1u, 0x000037a0u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000037a3u, + 0x0000379eu, 0x0004007cu, 0x00000008u, 0x000037a5u, 0x000037a1u, 0x00050051u, 0x00000008u, 0x000037a6u, + 0x000037a3u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000037a7u, 0x000037a3u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x000037a8u, 0x000037a3u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000037a9u, 0x000037a6u, + 0x000037a7u, 0x000037a8u, 0x000037a5u, 0x000200f9u, 0x0000377cu, 0x000200f8u, 0x00003776u, 0x000500c2u, + 0x00000006u, 0x00003783u, 0x00003774u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00003785u, 0x00003774u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003787u, 0x00003783u, 0x0004007cu, 0x00000008u, 0x0000378du, + 0x00003785u, 0x00070050u, 0x00000009u, 0x0000378eu, 0x00003787u, 0x00003787u, 0x00003787u, 0x0000378du, + 0x000200f9u, 0x0000377cu, 0x000200f8u, 0x0000377cu, 0x000700f5u, 0x00000009u, 0x000077ccu, 0x0000378eu, + 0x00003776u, 0x000037a9u, 0x00003779u, 0x000200f9u, 0x00002fd3u, 0x000200f8u, 0x00002fd3u, 0x000700f5u, + 0x00000009u, 0x000079a6u, 0x00007970u, 0x00003690u, 0x000077ccu, 0x0000377cu, 0x000700f5u, 0x00000009u, + 0x00007926u, 0x000078efu, 0x00003690u, 0x000077c9u, 0x0000377cu, 0x000300f7u, 0x00002fe2u, 0x00000000u, + 0x000400fau, 0x00002f4eu, 0x00002fd5u, 0x00002fe2u, 0x000200f8u, 0x00002fd5u, 0x00050050u, 0x0000005fu, + 0x00002fd8u, 0x0000bdffu, 0x0000bdfeu, 0x0004007cu, 0x000000a6u, 0x00002fd9u, 0x00002fd8u, 0x00050051u, + 0x00000006u, 0x000037b9u, 0x00002fd9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000037bau, 0x00002d79u, + 0x000037b9u, 0x00050080u, 0x00000006u, 0x000037bbu, 0x00002d76u, 0x000037bau, 0x00050051u, 0x00000006u, + 0x000037bdu, 0x00002fd9u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000037beu, 0x000037bdu, 0x00000217u, + 0x00050080u, 0x00000006u, 0x000037c0u, 0x000037bbu, 0x000037beu, 0x000500c7u, 0x00000006u, 0x000037c2u, + 0x000037c0u, 0x00000f19u, 0x000400c8u, 0x00000006u, 0x000037c5u, 0x000037bdu, 0x000500c7u, 0x00000006u, + 0x000037c6u, 0x000037c5u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000037c7u, 0x000037c6u, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x000037cbu, 0x000037b9u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000037ccu, + 0x000037cbu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000037ceu, 0x000037c2u, 0x000037ccu, 0x000500c6u, + 0x00000006u, 0x000037d0u, 0x000037ceu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000037d3u, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x000037d0u, 0x0004003du, 0x0000022eu, 0x000037d4u, 0x000037d3u, + 0x00040071u, 0x00000006u, 0x000037d5u, 0x000037d4u, 0x000500c2u, 0x00000006u, 0x000037d8u, 0x000037d5u, + 0x000037c7u, 0x000500c7u, 0x00000006u, 0x000037d9u, 0x000037d8u, 0x00000e8au, 0x000500c5u, 0x00000006u, + 0x000037ddu, 0x000037d9u, 0x00003679u, 0x000500c4u, 0x00000006u, 0x000037dfu, 0x000037ddu, 0x0000021au, + 0x00050080u, 0x00000006u, 0x000037e1u, 0x000037dfu, 0x00000490u, 0x000500c6u, 0x00000006u, 0x000037e4u, + 0x000037e1u, 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x000037e7u, 0x00000f4au, 0x000037e4u, 0x00080041u, + 0x00000275u, 0x000037e8u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000037e7u, 0x0004003du, + 0x00000230u, 0x000037e9u, 0x000037e8u, 0x00040071u, 0x00000006u, 0x000037eau, 0x000037e9u, 0x000300f7u, + 0x000037f2u, 0x00000000u, 0x000400fau, 0x00002254u, 0x000037ecu, 0x000037efu, 0x000200f8u, 0x000037efu, + 0x00060050u, 0x00000358u, 0x0000380au, 0x000037eau, 0x000037eau, 0x000037eau, 0x000500c2u, 0x00000358u, + 0x0000380bu, 0x0000380au, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x0000380du, 0x0000380bu, 0x0000bdcdu, + 0x000500c4u, 0x00000358u, 0x00003810u, 0x0000380du, 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x00003813u, + 0x0000380du, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00003814u, 0x00003810u, 0x00003813u, 0x000500c7u, + 0x00000006u, 0x00003816u, 0x000037eau, 0x0000048au, 0x00050084u, 0x00000006u, 0x00003817u, 0x00003816u, + 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003819u, 0x00003814u, 0x0004007cu, 0x00000008u, 0x0000381bu, + 0x00003817u, 0x00050051u, 0x00000008u, 0x0000381cu, 0x00003819u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x0000381du, 0x00003819u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000381eu, 0x00003819u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x0000381fu, 0x0000381cu, 0x0000381du, 0x0000381eu, 0x0000381bu, 0x000200f9u, + 0x000037f2u, 0x000200f8u, 0x000037ecu, 0x000500c2u, 0x00000006u, 0x000037f9u, 0x000037eau, 0x00000263u, + 0x000500c7u, 0x00000006u, 0x000037fbu, 0x000037eau, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000037fdu, + 0x000037f9u, 0x0004007cu, 0x00000008u, 0x00003803u, 0x000037fbu, 0x00070050u, 0x00000009u, 0x00003804u, + 0x000037fdu, 0x000037fdu, 0x000037fdu, 0x00003803u, 0x000200f9u, 0x000037f2u, 0x000200f8u, 0x000037f2u, + 0x000700f5u, 0x00000009u, 0x000077d2u, 0x00003804u, 0x000037ecu, 0x0000381fu, 0x000037efu, 0x000200f9u, + 0x00002fe2u, 0x000200f8u, 0x00002fe2u, 0x000700f5u, 0x00000009u, 0x00007a21u, 0x000079ebu, 0x00002fd3u, + 0x000077d2u, 0x000037f2u, 0x000200f9u, 0x0000300fu, 0x000200f8u, 0x00002f7fu, 0x0004007cu, 0x000000a6u, + 0x00002f81u, 0x000077b2u, 0x000600a9u, 0x00000008u, 0x00002f83u, 0x00002f58u, 0x0000021du, 0x00000208u, + 0x0004007cu, 0x00000006u, 0x00002f84u, 0x00002f83u, 0x00050051u, 0x00000006u, 0x000034aeu, 0x00002f81u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000034afu, 0x00002d79u, 0x000034aeu, 0x00050080u, 0x00000006u, + 0x000034b0u, 0x00002d76u, 0x000034afu, 0x00050051u, 0x00000006u, 0x000034b2u, 0x00002f81u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x000034b3u, 0x000034b2u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000034b5u, + 0x000034b0u, 0x000034b3u, 0x000500c7u, 0x00000006u, 0x000034b7u, 0x000034b5u, 0x00000f19u, 0x000500c2u, + 0x00000006u, 0x000034b9u, 0x000034b7u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000034bcu, 0x000034aeu, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x000034bdu, 0x000034bcu, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x000034bfu, 0x000034b9u, 0x000034bdu, 0x000500c6u, 0x00000006u, 0x000034c1u, 0x000034bfu, 0x0000048au, + 0x00080041u, 0x00000275u, 0x000034c4u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000034c1u, + 0x0004003du, 0x00000230u, 0x000034c5u, 0x000034c4u, 0x00040071u, 0x00000006u, 0x000034c6u, 0x000034c5u, + 0x000500c2u, 0x00000006u, 0x000034c8u, 0x000034c6u, 0x00000226u, 0x000500c7u, 0x00000006u, 0x000034c9u, + 0x000034c8u, 0x00000fe8u, 0x00050080u, 0x00000006u, 0x000034cbu, 0x000034c9u, 0x00002f84u, 0x000500c6u, + 0x00000006u, 0x000034ceu, 0x000034cbu, 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x000034d1u, 0x00000f4au, + 0x000034ceu, 0x00080041u, 0x00000275u, 0x000034d2u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x000034d1u, 0x0004003du, 0x00000230u, 0x000034d3u, 0x000034d2u, 0x00040071u, 0x00000006u, 0x000034d4u, + 0x000034d3u, 0x000300f7u, 0x000034dcu, 0x00000000u, 0x000400fau, 0x00002254u, 0x000034d6u, 0x000034d9u, + 0x000200f8u, 0x000034d9u, 0x00060050u, 0x00000358u, 0x000034f4u, 0x000034d4u, 0x000034d4u, 0x000034d4u, + 0x000500c2u, 0x00000358u, 0x000034f5u, 0x000034f4u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x000034f7u, + 0x000034f5u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x000034fau, 0x000034f7u, 0x0000bdceu, 0x000500c2u, + 0x00000358u, 0x000034fdu, 0x000034f7u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x000034feu, 0x000034fau, + 0x000034fdu, 0x000500c7u, 0x00000006u, 0x00003500u, 0x000034d4u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x00003501u, 0x00003500u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003503u, 0x000034feu, 0x0004007cu, + 0x00000008u, 0x00003505u, 0x00003501u, 0x00050051u, 0x00000008u, 0x00003506u, 0x00003503u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00003507u, 0x00003503u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003508u, + 0x00003503u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00003509u, 0x00003506u, 0x00003507u, 0x00003508u, + 0x00003505u, 0x000200f9u, 0x000034dcu, 0x000200f8u, 0x000034d6u, 0x000500c2u, 0x00000006u, 0x000034e3u, + 0x000034d4u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000034e5u, 0x000034d4u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000034e7u, 0x000034e3u, 0x0004007cu, 0x00000008u, 0x000034edu, 0x000034e5u, 0x00070050u, + 0x00000009u, 0x000034eeu, 0x000034e7u, 0x000034e7u, 0x000034e7u, 0x000034edu, 0x000200f9u, 0x000034dcu, + 0x000200f8u, 0x000034dcu, 0x000700f5u, 0x00000009u, 0x000077d3u, 0x000034eeu, 0x000034d6u, 0x00003509u, + 0x000034d9u, 0x000300f7u, 0x00002f9eu, 0x00000000u, 0x000400fau, 0x00002293u, 0x00002f8bu, 0x00002f9eu, + 0x000200f8u, 0x00002f8bu, 0x00050050u, 0x0000005fu, 0x00002f8eu, 0x0000bdffu, 0x00002f42u, 0x0004007cu, + 0x000000a6u, 0x00002f8fu, 0x00002f8eu, 0x00050051u, 0x00000006u, 0x00003518u, 0x00002f8fu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003519u, 0x00002d79u, 0x00003518u, 0x00050080u, 0x00000006u, 0x0000351au, + 0x00002d76u, 0x00003519u, 0x00050051u, 0x00000006u, 0x0000351cu, 0x00002f8fu, 0x00000000u, 0x00050084u, + 0x00000006u, 0x0000351du, 0x0000351cu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x0000351fu, 0x0000351au, + 0x0000351du, 0x000500c7u, 0x00000006u, 0x00003521u, 0x0000351fu, 0x00000f19u, 0x000500c2u, 0x00000006u, + 0x00003523u, 0x00003521u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003526u, 0x00003518u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00003527u, 0x00003526u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003529u, + 0x00003523u, 0x00003527u, 0x000500c6u, 0x00000006u, 0x0000352bu, 0x00003529u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x0000352eu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000352bu, 0x0004003du, + 0x00000230u, 0x0000352fu, 0x0000352eu, 0x00040071u, 0x00000006u, 0x00003530u, 0x0000352fu, 0x000500c2u, + 0x00000006u, 0x00003532u, 0x00003530u, 0x00000226u, 0x000500c7u, 0x00000006u, 0x00003533u, 0x00003532u, + 0x00000fe8u, 0x00050080u, 0x00000006u, 0x00003535u, 0x00003533u, 0x0000048au, 0x000500c6u, 0x00000006u, + 0x00003538u, 0x00003535u, 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x0000353bu, 0x00000f4au, 0x00003538u, + 0x00080041u, 0x00000275u, 0x0000353cu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000353bu, + 0x0004003du, 0x00000230u, 0x0000353du, 0x0000353cu, 0x00040071u, 0x00000006u, 0x0000353eu, 0x0000353du, + 0x000300f7u, 0x00003546u, 0x00000000u, 0x000400fau, 0x00002254u, 0x00003540u, 0x00003543u, 0x000200f8u, + 0x00003543u, 0x00060050u, 0x00000358u, 0x0000355eu, 0x0000353eu, 0x0000353eu, 0x0000353eu, 0x000500c2u, + 0x00000358u, 0x0000355fu, 0x0000355eu, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x00003561u, 0x0000355fu, + 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00003564u, 0x00003561u, 0x0000bdceu, 0x000500c2u, 0x00000358u, + 0x00003567u, 0x00003561u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00003568u, 0x00003564u, 0x00003567u, + 0x000500c7u, 0x00000006u, 0x0000356au, 0x0000353eu, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000356bu, + 0x0000356au, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000356du, 0x00003568u, 0x0004007cu, 0x00000008u, + 0x0000356fu, 0x0000356bu, 0x00050051u, 0x00000008u, 0x00003570u, 0x0000356du, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00003571u, 0x0000356du, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003572u, 0x0000356du, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00003573u, 0x00003570u, 0x00003571u, 0x00003572u, 0x0000356fu, + 0x000200f9u, 0x00003546u, 0x000200f8u, 0x00003540u, 0x000500c2u, 0x00000006u, 0x0000354du, 0x0000353eu, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x0000354fu, 0x0000353eu, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00003551u, 0x0000354du, 0x0004007cu, 0x00000008u, 0x00003557u, 0x0000354fu, 0x00070050u, 0x00000009u, + 0x00003558u, 0x00003551u, 0x00003551u, 0x00003551u, 0x00003557u, 0x000200f9u, 0x00003546u, 0x000200f8u, + 0x00003546u, 0x000700f5u, 0x00000009u, 0x000077d6u, 0x00003558u, 0x00003540u, 0x00003573u, 0x00003543u, + 0x00050050u, 0x0000005fu, 0x00002f97u, 0x00007765u, 0x0000bdfeu, 0x0004007cu, 0x000000a6u, 0x00002f98u, + 0x00002f97u, 0x00050051u, 0x00000006u, 0x00003582u, 0x00002f98u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003583u, 0x00002d79u, 0x00003582u, 0x00050080u, 0x00000006u, 0x00003584u, 0x00002d76u, 0x00003583u, + 0x00050051u, 0x00000006u, 0x00003586u, 0x00002f98u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003587u, + 0x00003586u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00003589u, 0x00003584u, 0x00003587u, 0x000500c7u, + 0x00000006u, 0x0000358bu, 0x00003589u, 0x00000f19u, 0x000500c2u, 0x00000006u, 0x0000358du, 0x0000358bu, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00003590u, 0x00003582u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00003591u, 0x00003590u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00003593u, 0x0000358du, 0x00003591u, + 0x000500c6u, 0x00000006u, 0x00003595u, 0x00003593u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00003598u, + 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00003595u, 0x0004003du, 0x00000230u, 0x00003599u, + 0x00003598u, 0x00040071u, 0x00000006u, 0x0000359au, 0x00003599u, 0x000500c2u, 0x00000006u, 0x0000359cu, + 0x0000359au, 0x00000226u, 0x000500c7u, 0x00000006u, 0x0000359du, 0x0000359cu, 0x00000fe8u, 0x00050080u, + 0x00000006u, 0x0000359fu, 0x0000359du, 0x000003c9u, 0x000500c6u, 0x00000006u, 0x000035a2u, 0x0000359fu, + 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x000035a5u, 0x00000f4au, 0x000035a2u, 0x00080041u, 0x00000275u, + 0x000035a6u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000035a5u, 0x0004003du, 0x00000230u, + 0x000035a7u, 0x000035a6u, 0x00040071u, 0x00000006u, 0x000035a8u, 0x000035a7u, 0x000300f7u, 0x000035b0u, + 0x00000000u, 0x000400fau, 0x00002254u, 0x000035aau, 0x000035adu, 0x000200f8u, 0x000035adu, 0x00060050u, + 0x00000358u, 0x000035c8u, 0x000035a8u, 0x000035a8u, 0x000035a8u, 0x000500c2u, 0x00000358u, 0x000035c9u, + 0x000035c8u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x000035cbu, 0x000035c9u, 0x0000bdcdu, 0x000500c4u, + 0x00000358u, 0x000035ceu, 0x000035cbu, 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x000035d1u, 0x000035cbu, + 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x000035d2u, 0x000035ceu, 0x000035d1u, 0x000500c7u, 0x00000006u, + 0x000035d4u, 0x000035a8u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000035d5u, 0x000035d4u, 0x000006c7u, + 0x0004007cu, 0x0000003cu, 0x000035d7u, 0x000035d2u, 0x0004007cu, 0x00000008u, 0x000035d9u, 0x000035d5u, + 0x00050051u, 0x00000008u, 0x000035dau, 0x000035d7u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000035dbu, + 0x000035d7u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000035dcu, 0x000035d7u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x000035ddu, 0x000035dau, 0x000035dbu, 0x000035dcu, 0x000035d9u, 0x000200f9u, 0x000035b0u, + 0x000200f8u, 0x000035aau, 0x000500c2u, 0x00000006u, 0x000035b7u, 0x000035a8u, 0x00000263u, 0x000500c7u, + 0x00000006u, 0x000035b9u, 0x000035a8u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000035bbu, 0x000035b7u, + 0x0004007cu, 0x00000008u, 0x000035c1u, 0x000035b9u, 0x00070050u, 0x00000009u, 0x000035c2u, 0x000035bbu, + 0x000035bbu, 0x000035bbu, 0x000035c1u, 0x000200f9u, 0x000035b0u, 0x000200f8u, 0x000035b0u, 0x000700f5u, + 0x00000009u, 0x000077d9u, 0x000035c2u, 0x000035aau, 0x000035ddu, 0x000035adu, 0x000200f9u, 0x00002f9eu, + 0x000200f8u, 0x00002f9eu, 0x000700f5u, 0x00000009u, 0x000079a1u, 0x00007970u, 0x000034dcu, 0x000077d9u, + 0x000035b0u, 0x000700f5u, 0x00000009u, 0x00007920u, 0x000078efu, 0x000034dcu, 0x000077d6u, 0x000035b0u, + 0x000300f7u, 0x00002faau, 0x00000000u, 0x000400fau, 0x00002f4eu, 0x00002fa0u, 0x00002faau, 0x000200f8u, + 0x00002fa0u, 0x00050050u, 0x0000005fu, 0x00002fa3u, 0x0000bdffu, 0x0000bdfeu, 0x0004007cu, 0x000000a6u, + 0x00002fa4u, 0x00002fa3u, 0x00050051u, 0x00000006u, 0x000035ecu, 0x00002fa4u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000035edu, 0x00002d79u, 0x000035ecu, 0x00050080u, 0x00000006u, 0x000035eeu, 0x00002d76u, + 0x000035edu, 0x00050051u, 0x00000006u, 0x000035f0u, 0x00002fa4u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000035f1u, 0x000035f0u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000035f3u, 0x000035eeu, 0x000035f1u, + 0x000500c7u, 0x00000006u, 0x000035f5u, 0x000035f3u, 0x00000f19u, 0x000500c2u, 0x00000006u, 0x000035f7u, + 0x000035f5u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000035fau, 0x000035ecu, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x000035fbu, 0x000035fau, 0x00000217u, 0x000500c6u, 0x00000006u, 0x000035fdu, 0x000035f7u, + 0x000035fbu, 0x000500c6u, 0x00000006u, 0x000035ffu, 0x000035fdu, 0x0000048au, 0x00080041u, 0x00000275u, + 0x00003602u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000035ffu, 0x0004003du, 0x00000230u, + 0x00003603u, 0x00003602u, 0x00040071u, 0x00000006u, 0x00003604u, 0x00003603u, 0x000500c2u, 0x00000006u, + 0x00003606u, 0x00003604u, 0x00000226u, 0x000500c7u, 0x00000006u, 0x00003607u, 0x00003606u, 0x00000fe8u, + 0x00050080u, 0x00000006u, 0x00003609u, 0x00003607u, 0x00000490u, 0x000500c6u, 0x00000006u, 0x0000360cu, + 0x00003609u, 0x00002f7cu, 0x000500c5u, 0x00000006u, 0x0000360fu, 0x00000f4au, 0x0000360cu, 0x00080041u, + 0x00000275u, 0x00003610u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000360fu, 0x0004003du, + 0x00000230u, 0x00003611u, 0x00003610u, 0x00040071u, 0x00000006u, 0x00003612u, 0x00003611u, 0x000300f7u, + 0x0000361au, 0x00000000u, 0x000400fau, 0x00002254u, 0x00003614u, 0x00003617u, 0x000200f8u, 0x00003617u, + 0x00060050u, 0x00000358u, 0x00003632u, 0x00003612u, 0x00003612u, 0x00003612u, 0x000500c2u, 0x00000358u, + 0x00003633u, 0x00003632u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x00003635u, 0x00003633u, 0x0000bdcdu, + 0x000500c4u, 0x00000358u, 0x00003638u, 0x00003635u, 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x0000363bu, + 0x00003635u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x0000363cu, 0x00003638u, 0x0000363bu, 0x000500c7u, + 0x00000006u, 0x0000363eu, 0x00003612u, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000363fu, 0x0000363eu, + 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00003641u, 0x0000363cu, 0x0004007cu, 0x00000008u, 0x00003643u, + 0x0000363fu, 0x00050051u, 0x00000008u, 0x00003644u, 0x00003641u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00003645u, 0x00003641u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003646u, 0x00003641u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00003647u, 0x00003644u, 0x00003645u, 0x00003646u, 0x00003643u, 0x000200f9u, + 0x0000361au, 0x000200f8u, 0x00003614u, 0x000500c2u, 0x00000006u, 0x00003621u, 0x00003612u, 0x00000263u, + 0x000500c7u, 0x00000006u, 0x00003623u, 0x00003612u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00003625u, + 0x00003621u, 0x0004007cu, 0x00000008u, 0x0000362bu, 0x00003623u, 0x00070050u, 0x00000009u, 0x0000362cu, + 0x00003625u, 0x00003625u, 0x00003625u, 0x0000362bu, 0x000200f9u, 0x0000361au, 0x000200f8u, 0x0000361au, + 0x000700f5u, 0x00000009u, 0x000077dfu, 0x0000362cu, 0x00003614u, 0x00003647u, 0x00003617u, 0x000200f9u, + 0x00002faau, 0x000200f8u, 0x00002faau, 0x000700f5u, 0x00000009u, 0x00007a1bu, 0x000079ebu, 0x00002f9eu, + 0x000077dfu, 0x0000361au, 0x000200f9u, 0x0000300fu, 0x000200f8u, 0x0000300fu, 0x000900f5u, 0x00000009u, + 0x00007a1au, 0x00007a1bu, 0x00002faau, 0x00007a21u, 0x00002fe2u, 0x00007a26u, 0x0000300eu, 0x000900f5u, + 0x00000009u, 0x0000799fu, 0x000079a1u, 0x00002faau, 0x000079a6u, 0x00002fe2u, 0x000079aau, 0x0000300eu, + 0x000900f5u, 0x00000009u, 0x0000791eu, 0x00007920u, 0x00002faau, 0x00007926u, 0x00002fe2u, 0x0000792bu, + 0x0000300eu, 0x000900f5u, 0x00000009u, 0x0000782cu, 0x000077d3u, 0x00002faau, 0x000077c6u, 0x00002fe2u, + 0x000077b3u, 0x0000300eu, 0x000200f9u, 0x00003010u, 0x000200f8u, 0x00003010u, 0x000700f5u, 0x00000009u, + 0x000079d0u, 0x000079ebu, 0x00002f74u, 0x00007a1au, 0x0000300fu, 0x000700f5u, 0x00000009u, 0x00007955u, + 0x00007970u, 0x00002f74u, 0x0000799fu, 0x0000300fu, 0x000700f5u, 0x00000009u, 0x000078d4u, 0x000078efu, + 0x00002f74u, 0x0000791eu, 0x0000300fu, 0x000700f5u, 0x00000009u, 0x000077e2u, 0x000077fdu, 0x00002f74u, + 0x0000782cu, 0x0000300fu, 0x000200f9u, 0x0000322du, 0x000200f8u, 0x0000322du, 0x000700f5u, 0x00000009u, + 0x000079cfu, 0x000079d0u, 0x00003010u, 0x00007a2bu, 0x0000322cu, 0x000700f5u, 0x00000009u, 0x00007954u, + 0x00007955u, 0x00003010u, 0x000079adu, 0x0000322cu, 0x000700f5u, 0x00000009u, 0x000078d3u, 0x000078d4u, + 0x00003010u, 0x0000792fu, 0x0000322cu, 0x000700f5u, 0x00000009u, 0x000077e1u, 0x000077e2u, 0x00003010u, + 0x0000783cu, 0x0000322cu, 0x000300f7u, 0x000033bfu, 0x00000000u, 0x000400fau, 0x00002f56u, 0x0000330au, + 0x0000337du, 0x000200f8u, 0x0000337du, 0x000300f7u, 0x000033beu, 0x00000000u, 0x000400fau, 0x00002f4eu, + 0x0000337fu, 0x0000338bu, 0x000200f8u, 0x0000338bu, 0x000600a9u, 0x0000005du, 0x0000be00u, 0x00002293u, + 0x00002f1cu, 0x00002293u, 0x000300f7u, 0x000033bdu, 0x00000000u, 0x000400fau, 0x0000be00u, 0x00003393u, + 0x000033bbu, 0x000200f8u, 0x000033bbu, 0x000200f9u, 0x000033bdu, 0x000200f8u, 0x00003393u, 0x000300f7u, + 0x0000339du, 0x00000000u, 0x000400fau, 0x00002f58u, 0x00003396u, 0x0000339bu, 0x000200f8u, 0x0000339bu, + 0x000200f9u, 0x0000339du, 0x000200f8u, 0x00003396u, 0x0007004fu, 0x0000005fu, 0x00003398u, 0x00007762u, + 0x00007762u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000005fu, 0x0000339au, 0x0000bdd3u, 0x00003398u, + 0x000200f9u, 0x0000339du, 0x000200f8u, 0x0000339du, 0x000700f5u, 0x0000005fu, 0x000078d0u, 0x0000339au, + 0x00003396u, 0x00007762u, 0x0000339bu, 0x00050082u, 0x00000009u, 0x000033a4u, 0x000078d3u, 0x000077e1u, + 0x00050051u, 0x00000008u, 0x000033a6u, 0x000078d0u, 0x00000000u, 0x00070050u, 0x00000009u, 0x000033a7u, + 0x000033a6u, 0x000033a6u, 0x000033a6u, 0x000033a6u, 0x00050084u, 0x00000009u, 0x000033a8u, 0x000033a4u, + 0x000033a7u, 0x00050082u, 0x00000009u, 0x000033abu, 0x00007954u, 0x000077e1u, 0x00050051u, 0x00000008u, + 0x000033adu, 0x000078d0u, 0x00000001u, 0x00070050u, 0x00000009u, 0x000033aeu, 0x000033adu, 0x000033adu, + 0x000033adu, 0x000033adu, 0x00050084u, 0x00000009u, 0x000033afu, 0x000033abu, 0x000033aeu, 0x00050080u, + 0x00000009u, 0x000033b1u, 0x000033a8u, 0x000033afu, 0x00050080u, 0x00000009u, 0x000033b4u, 0x000033b1u, + 0x0000bdd4u, 0x000500c3u, 0x00000009u, 0x000033b7u, 0x000033b4u, 0x0000bdd5u, 0x00050080u, 0x00000009u, + 0x000033bau, 0x000033b7u, 0x000077e1u, 0x000200f9u, 0x000033bdu, 0x000200f8u, 0x000033bdu, 0x000700f5u, + 0x00000009u, 0x00007a90u, 0x000033bau, 0x0000339du, 0x000077e1u, 0x000033bbu, 0x000200f9u, 0x000033beu, + 0x000200f8u, 0x0000337fu, 0x00050080u, 0x00000009u, 0x00003382u, 0x000077e1u, 0x00007954u, 0x00050080u, + 0x00000009u, 0x00003384u, 0x00003382u, 0x000078d3u, 0x00050080u, 0x00000009u, 0x00003386u, 0x00003384u, + 0x000079cfu, 0x00050080u, 0x00000009u, 0x00003388u, 0x00003386u, 0x0000bdd0u, 0x000500c3u, 0x00000009u, + 0x0000338au, 0x00003388u, 0x0000bdd0u, 0x000200f9u, 0x000033beu, 0x000200f8u, 0x000033beu, 0x000700f5u, + 0x00000009u, 0x00007a8fu, 0x0000338au, 0x0000337fu, 0x00007a90u, 0x000033bdu, 0x000200f9u, 0x000033bfu, + 0x000200f8u, 0x0000330au, 0x000300f7u, 0x0000337cu, 0x00000000u, 0x000400fau, 0x00002257u, 0x0000330cu, + 0x0000337au, 0x000200f8u, 0x0000337au, 0x000200f9u, 0x0000337cu, 0x000200f8u, 0x0000330cu, 0x000300f7u, + 0x00003372u, 0x00000000u, 0x000400fau, 0x00002293u, 0x0000330eu, 0x00003356u, 0x000200f8u, 0x00003356u, + 0x000300f7u, 0x00003363u, 0x00000000u, 0x000400fau, 0x00002f50u, 0x0000335du, 0x00003360u, 0x000200f8u, + 0x00003360u, 0x0007004fu, 0x0000005fu, 0x00003362u, 0x000077e1u, 0x000077e1u, 0x00000002u, 0x00000003u, + 0x000200f9u, 0x00003363u, 0x000200f8u, 0x0000335du, 0x0007004fu, 0x0000005fu, 0x0000335fu, 0x000079cfu, + 0x000079cfu, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00003363u, 0x000200f8u, 0x00003363u, 0x000700f5u, + 0x0000005fu, 0x00007a4du, 0x0000335fu, 0x0000335du, 0x00003362u, 0x00003360u, 0x00050080u, 0x00000008u, + 0x00003368u, 0x00002f69u, 0x00002f26u, 0x000500afu, 0x0000005du, 0x00003369u, 0x00003368u, 0x00000382u, + 0x000300f7u, 0x00003370u, 0x00000000u, 0x000400fau, 0x00003369u, 0x0000336au, 0x0000336du, 0x000200f8u, + 0x0000336du, 0x0007004fu, 0x0000005fu, 0x0000336fu, 0x000077e1u, 0x000077e1u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00003370u, 0x000200f8u, 0x0000336au, 0x0007004fu, 0x0000005fu, 0x0000336cu, 0x000079cfu, + 0x000079cfu, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003370u, 0x000200f8u, 0x00003370u, 0x000700f5u, + 0x0000005fu, 0x00007a51u, 0x0000336cu, 0x0000336au, 0x0000336fu, 0x0000336du, 0x000200f9u, 0x00003372u, + 0x000200f8u, 0x0000330eu, 0x00050050u, 0x0000005fu, 0x00003313u, 0x00002f69u, 0x00002f26u, 0x000500aau, + 0x00000880u, 0x00003314u, 0x00003313u, 0x000013bau, 0x00050051u, 0x0000005du, 0x00003315u, 0x00003314u, + 0x00000000u, 0x00050051u, 0x0000005du, 0x00003316u, 0x00003314u, 0x00000001u, 0x00060050u, 0x000003a6u, + 0x00003317u, 0x00002281u, 0x00003315u, 0x00003316u, 0x0004009bu, 0x0000005du, 0x00003318u, 0x00003317u, + 0x000300f7u, 0x00003338u, 0x00000000u, 0x000400fau, 0x00003318u, 0x0000331au, 0x0000332au, 0x000200f8u, + 0x0000332au, 0x0007004fu, 0x0000005fu, 0x00003330u, 0x000077e1u, 0x000077e1u, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x0000005fu, 0x00003332u, 0x000078d3u, 0x000078d3u, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x0000005fu, 0x00003334u, 0x00007954u, 0x00007954u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000005fu, + 0x00003336u, 0x000079cfu, 0x000079cfu, 0x00000000u, 0x00000001u, 0x00050080u, 0x00000008u, 0x000045b3u, + 0x00002f69u, 0x00002f26u, 0x000500afu, 0x0000005du, 0x000045b5u, 0x000045b3u, 0x00000382u, 0x00050050u, + 0x00000880u, 0x000045b8u, 0x000045b5u, 0x000045b5u, 0x000600a9u, 0x0000005fu, 0x000045b9u, 0x000045b8u, + 0x00003336u, 0x00003330u, 0x000300f7u, 0x000045c3u, 0x00000000u, 0x000400fau, 0x000045b5u, 0x000045bcu, + 0x000045c1u, 0x000200f8u, 0x000045c1u, 0x000200f9u, 0x000045c3u, 0x000200f8u, 0x000045bcu, 0x0007004fu, + 0x0000005fu, 0x000045beu, 0x00003313u, 0x00003313u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000005fu, + 0x000045c0u, 0x0000bdd3u, 0x000045beu, 0x000200f9u, 0x000045c3u, 0x000200f8u, 0x000045c3u, 0x000700f5u, + 0x0000005fu, 0x00007a52u, 0x000045c0u, 0x000045bcu, 0x00003313u, 0x000045c1u, 0x00050082u, 0x0000005fu, + 0x000045cau, 0x00003332u, 0x000045b9u, 0x00050051u, 0x00000008u, 0x000045ccu, 0x00007a52u, 0x00000000u, + 0x00050050u, 0x0000005fu, 0x000045cdu, 0x000045ccu, 0x000045ccu, 0x00050084u, 0x0000005fu, 0x000045ceu, + 0x000045cau, 0x000045cdu, 0x00050082u, 0x0000005fu, 0x000045d1u, 0x00003334u, 0x000045b9u, 0x00050051u, + 0x00000008u, 0x000045d3u, 0x00007a52u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x000045d4u, 0x000045d3u, + 0x000045d3u, 0x00050084u, 0x0000005fu, 0x000045d5u, 0x000045d1u, 0x000045d4u, 0x00050080u, 0x0000005fu, + 0x000045d7u, 0x000045ceu, 0x000045d5u, 0x00050080u, 0x0000005fu, 0x000045dau, 0x000045d7u, 0x000013bau, + 0x000500c3u, 0x0000005fu, 0x000045ddu, 0x000045dau, 0x0000bdc9u, 0x00050080u, 0x0000005fu, 0x000045e0u, + 0x000045ddu, 0x000045b9u, 0x000200f9u, 0x00003338u, 0x000200f8u, 0x0000331au, 0x0007004fu, 0x0000005fu, + 0x0000331cu, 0x000077e1u, 0x000077e1u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000005fu, 0x0000331eu, + 0x000078d3u, 0x000078d3u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000005fu, 0x0000331fu, 0x0000331cu, + 0x0000331eu, 0x0007004fu, 0x0000005fu, 0x00003321u, 0x000079cfu, 0x000079cfu, 0x00000000u, 0x00000001u, + 0x00050080u, 0x0000005fu, 0x00003322u, 0x0000331fu, 0x00003321u, 0x0007004fu, 0x0000005fu, 0x00003324u, + 0x00007954u, 0x00007954u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000005fu, 0x00003325u, 0x00003322u, + 0x00003324u, 0x00050080u, 0x0000005fu, 0x00003327u, 0x00003325u, 0x0000bdd2u, 0x000500c3u, 0x0000005fu, + 0x00003329u, 0x00003327u, 0x0000bdd2u, 0x000200f9u, 0x00003338u, 0x000200f8u, 0x00003338u, 0x000700f5u, + 0x0000005fu, 0x00007a60u, 0x00003329u, 0x0000331au, 0x000045e0u, 0x000045c3u, 0x000300f7u, 0x00003355u, + 0x00000000u, 0x000400fau, 0x00002f4eu, 0x0000333au, 0x0000334au, 0x000200f8u, 0x0000334au, 0x0007004fu, + 0x0000005fu, 0x0000334cu, 0x000077e1u, 0x000077e1u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, + 0x0000334eu, 0x000078d3u, 0x000078d3u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, 0x00003350u, + 0x00007954u, 0x00007954u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, 0x00003352u, 0x000079cfu, + 0x000079cfu, 0x00000002u, 0x00000003u, 0x00050050u, 0x00000880u, 0x000045f2u, 0x00002f50u, 0x00002f50u, + 0x000600a9u, 0x0000005fu, 0x000045f3u, 0x000045f2u, 0x00003352u, 0x0000334cu, 0x000300f7u, 0x000045fdu, + 0x00000000u, 0x000400fau, 0x00002f50u, 0x000045f6u, 0x000045fbu, 0x000200f8u, 0x000045fbu, 0x000200f9u, + 0x000045fdu, 0x000200f8u, 0x000045f6u, 0x0007004fu, 0x0000005fu, 0x000045f8u, 0x00007762u, 0x00007762u, + 0x00000001u, 0x00000000u, 0x00050082u, 0x0000005fu, 0x000045fau, 0x0000bdd3u, 0x000045f8u, 0x000200f9u, + 0x000045fdu, 0x000200f8u, 0x000045fdu, 0x000700f5u, 0x0000005fu, 0x00007a5du, 0x000045fau, 0x000045f6u, + 0x00007762u, 0x000045fbu, 0x00050082u, 0x0000005fu, 0x00004604u, 0x0000334eu, 0x000045f3u, 0x00050051u, + 0x00000008u, 0x00004606u, 0x00007a5du, 0x00000000u, 0x00050050u, 0x0000005fu, 0x00004607u, 0x00004606u, + 0x00004606u, 0x00050084u, 0x0000005fu, 0x00004608u, 0x00004604u, 0x00004607u, 0x00050082u, 0x0000005fu, + 0x0000460bu, 0x00003350u, 0x000045f3u, 0x00050051u, 0x00000008u, 0x0000460du, 0x00007a5du, 0x00000001u, + 0x00050050u, 0x0000005fu, 0x0000460eu, 0x0000460du, 0x0000460du, 0x00050084u, 0x0000005fu, 0x0000460fu, + 0x0000460bu, 0x0000460eu, 0x00050080u, 0x0000005fu, 0x00004611u, 0x00004608u, 0x0000460fu, 0x00050080u, + 0x0000005fu, 0x00004614u, 0x00004611u, 0x000013bau, 0x000500c3u, 0x0000005fu, 0x00004617u, 0x00004614u, + 0x0000bdc9u, 0x00050080u, 0x0000005fu, 0x0000461au, 0x00004617u, 0x000045f3u, 0x000200f9u, 0x00003355u, + 0x000200f8u, 0x0000333au, 0x0007004fu, 0x0000005fu, 0x0000333cu, 0x000077e1u, 0x000077e1u, 0x00000002u, + 0x00000003u, 0x0007004fu, 0x0000005fu, 0x0000333eu, 0x000078d3u, 0x000078d3u, 0x00000002u, 0x00000003u, + 0x00050080u, 0x0000005fu, 0x0000333fu, 0x0000333cu, 0x0000333eu, 0x0007004fu, 0x0000005fu, 0x00003341u, + 0x000079cfu, 0x000079cfu, 0x00000002u, 0x00000003u, 0x00050080u, 0x0000005fu, 0x00003342u, 0x0000333fu, + 0x00003341u, 0x0007004fu, 0x0000005fu, 0x00003344u, 0x00007954u, 0x00007954u, 0x00000002u, 0x00000003u, + 0x00050080u, 0x0000005fu, 0x00003345u, 0x00003342u, 0x00003344u, 0x00050080u, 0x0000005fu, 0x00003347u, + 0x00003345u, 0x0000bdd2u, 0x000500c3u, 0x0000005fu, 0x00003349u, 0x00003347u, 0x0000bdd2u, 0x000200f9u, + 0x00003355u, 0x000200f8u, 0x00003355u, 0x000700f5u, 0x0000005fu, 0x00007a63u, 0x00003349u, 0x0000333au, + 0x0000461au, 0x000045fdu, 0x000200f9u, 0x00003372u, 0x000200f8u, 0x00003372u, 0x000700f5u, 0x0000005fu, + 0x00007a62u, 0x00007a63u, 0x00003355u, 0x00007a4du, 0x00003370u, 0x000700f5u, 0x0000005fu, 0x00007a5eu, + 0x00007a60u, 0x00003355u, 0x00007a51u, 0x00003370u, 0x00050051u, 0x00000008u, 0x00003375u, 0x00007a5eu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00003376u, 0x00007a5eu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00003377u, 0x00007a62u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00003378u, 0x00007a62u, 0x00000001u, + 0x00070050u, 0x00000009u, 0x00003379u, 0x00003375u, 0x00003376u, 0x00003377u, 0x00003378u, 0x000200f9u, + 0x0000337cu, 0x000200f8u, 0x0000337cu, 0x000700f5u, 0x00000009u, 0x00007a8eu, 0x00003379u, 0x00003372u, + 0x000077e1u, 0x0000337au, 0x000200f9u, 0x000033bfu, 0x000200f8u, 0x000033bfu, 0x000700f5u, 0x00000009u, + 0x00007a8du, 0x00007a8eu, 0x0000337cu, 0x00007a8fu, 0x000033beu, 0x000400a8u, 0x0000005du, 0x000033c2u, + 0x00002293u, 0x000500a7u, 0x0000005du, 0x000033c5u, 0x000033c2u, 0x00000563u, 0x000300f7u, 0x000033cau, + 0x00000000u, 0x000400fau, 0x000033c5u, 0x000033c6u, 0x000033cau, 0x000200f8u, 0x000033c6u, 0x000600cau, + 0x00000009u, 0x00004629u, 0x00007a8du, 0x00000208u, 0x00000269u, 0x00050051u, 0x00000008u, 0x0000462bu, + 0x00004629u, 0x00000002u, 0x00050051u, 0x00000008u, 0x0000462du, 0x00002a2eu, 0x00000000u, 0x00050051u, + 0x00000008u, 0x0000462fu, 0x00004629u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00004630u, 0x0000462du, + 0x0000462fu, 0x00050080u, 0x00000008u, 0x00004631u, 0x00004630u, 0x00000628u, 0x000500c3u, 0x00000008u, + 0x00004632u, 0x00004631u, 0x00000263u, 0x00050080u, 0x00000008u, 0x00004633u, 0x0000462bu, 0x00004632u, + 0x00050051u, 0x00000008u, 0x00004637u, 0x00002a2eu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004639u, + 0x00004629u, 0x00000000u, 0x00050084u, 0x00000008u, 0x0000463au, 0x00004637u, 0x00004639u, 0x00050051u, + 0x00000008u, 0x0000463cu, 0x00002a2eu, 0x00000002u, 0x00050084u, 0x00000008u, 0x0000463fu, 0x0000463cu, + 0x0000462fu, 0x00050080u, 0x00000008u, 0x00004640u, 0x0000463au, 0x0000463fu, 0x00050080u, 0x00000008u, + 0x00004641u, 0x00004640u, 0x00000628u, 0x000500c3u, 0x00000008u, 0x00004642u, 0x00004641u, 0x00000263u, + 0x00050080u, 0x00000008u, 0x00004643u, 0x0000462bu, 0x00004642u, 0x00050051u, 0x00000008u, 0x00004647u, + 0x00002a2eu, 0x00000003u, 0x00050084u, 0x00000008u, 0x0000464au, 0x00004647u, 0x00004639u, 0x00050080u, + 0x00000008u, 0x0000464bu, 0x0000464au, 0x00000628u, 0x000500c3u, 0x00000008u, 0x0000464cu, 0x0000464bu, + 0x00000263u, 0x00050080u, 0x00000008u, 0x0000464du, 0x0000462bu, 0x0000464cu, 0x00070050u, 0x00000009u, + 0x00004654u, 0x00004633u, 0x00004643u, 0x0000464du, 0x0000462bu, 0x000200f9u, 0x000033cau, 0x000200f8u, + 0x000033cau, 0x000700f5u, 0x00000009u, 0x00007a91u, 0x00007a8du, 0x000033bfu, 0x00004654u, 0x000033c6u, + 0x000200f9u, 0x00002369u, 0x000200f8u, 0x00002369u, 0x000700f5u, 0x00000009u, 0x0000b4d5u, 0x000079ebu, + 0x00002354u, 0x000079cfu, 0x000033cau, 0x000700f5u, 0x00000009u, 0x0000b3b3u, 0x00007970u, 0x00002354u, + 0x00007954u, 0x000033cau, 0x000700f5u, 0x00000009u, 0x0000b291u, 0x000078efu, 0x00002354u, 0x000078d3u, + 0x000033cau, 0x000700f5u, 0x00000009u, 0x0000b16fu, 0x000077fdu, 0x00002354u, 0x000077e1u, 0x000033cau, + 0x000700f5u, 0x00000009u, 0x00007dabu, 0x00007db8u, 0x00002354u, 0x00007a91u, 0x000033cau, 0x000300f7u, + 0x000023b4u, 0x00000000u, 0x000400fau, 0x0000228au, 0x0000236bu, 0x000023b4u, 0x000200f8u, 0x0000236bu, + 0x00050080u, 0x00000008u, 0x00002374u, 0x0000222au, 0x00000217u, 0x00050080u, 0x00000008u, 0x00002375u, + 0x00002225u, 0x00002374u, 0x00070041u, 0x00000275u, 0x00002376u, 0x00000319u, 0x00000208u, 0x00002375u, + 0x00000263u, 0x0004003du, 0x00000230u, 0x00002377u, 0x00002376u, 0x00040071u, 0x00000006u, 0x00002378u, + 0x00002377u, 0x000500abu, 0x0000005du, 0x00002379u, 0x00002378u, 0x00000379u, 0x000500afu, 0x0000005du, + 0x0000237cu, 0x000024a5u, 0x00000263u, 0x000600a9u, 0x00000008u, 0x0000be01u, 0x000022a7u, 0x000024a1u, + 0x0000249eu, 0x000500aau, 0x0000005du, 0x00002387u, 0x00007645u, 0x0000be01u, 0x000500a7u, 0x0000005du, + 0x0000238au, 0x00002387u, 0x0000237cu, 0x000500a7u, 0x0000005du, 0x0000238cu, 0x0000238au, 0x00002379u, + 0x000300f7u, 0x000023b2u, 0x00000000u, 0x000400fau, 0x0000238cu, 0x0000238du, 0x000023a7u, 0x000200f8u, + 0x000023a7u, 0x00050084u, 0x00000008u, 0x000023aau, 0x00002312u, 0x00000887u, 0x00050080u, 0x00000008u, + 0x000023abu, 0x00002310u, 0x000023aau, 0x00060050u, 0x0000003cu, 0x000046f2u, 0x000023abu, 0x000023abu, + 0x000023abu, 0x00050084u, 0x0000003cu, 0x000046f3u, 0x00002aa8u, 0x000046f2u, 0x00050080u, 0x0000003cu, + 0x000046f4u, 0x00002aa2u, 0x000046f3u, 0x000500c3u, 0x0000003cu, 0x000046f7u, 0x000046f4u, 0x0000bdc3u, + 0x000300f7u, 0x00004701u, 0x00000000u, 0x000400fau, 0x00002260u, 0x000046f9u, 0x000046feu, 0x000200f8u, + 0x000046feu, 0x0007004fu, 0x0000005fu, 0x0000478eu, 0x000046f7u, 0x000046f7u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004701u, 0x000200f8u, 0x000046f9u, 0x00050051u, 0x00000008u, 0x0000470fu, 0x000046f7u, + 0x00000002u, 0x000500b3u, 0x0000005du, 0x00004711u, 0x0000470fu, 0x00000208u, 0x000500c7u, 0x00000008u, + 0x00004713u, 0x0000470fu, 0x00000c19u, 0x0006000cu, 0x00000008u, 0x00004770u, 0x00000001u, 0x0000004au, + 0x00004713u, 0x00050082u, 0x00000008u, 0x00004771u, 0x00000288u, 0x00004770u, 0x0007000cu, 0x00000008u, + 0x00004772u, 0x00000001u, 0x00000027u, 0x00004771u, 0x00000288u, 0x000500c4u, 0x00000008u, 0x00004775u, + 0x00004713u, 0x00004772u, 0x000500c7u, 0x00000008u, 0x00004776u, 0x00004775u, 0x00000b33u, 0x000500c7u, + 0x00000008u, 0x00004778u, 0x00004776u, 0x00000390u, 0x000500c3u, 0x00000008u, 0x0000477au, 0x00004776u, + 0x00000263u, 0x0003003eu, 0x0000476bu, 0x00000bf7u, 0x00050041u, 0x00000060u, 0x0000477bu, 0x0000476bu, + 0x0000477au, 0x0004003du, 0x0000005fu, 0x0000477cu, 0x0000477bu, 0x00050051u, 0x00000008u, 0x00004781u, + 0x0000477cu, 0x00000001u, 0x00050084u, 0x00000008u, 0x00004783u, 0x00004781u, 0x00004778u, 0x000500c3u, + 0x00000008u, 0x00004784u, 0x00004783u, 0x0000026fu, 0x00050051u, 0x00000008u, 0x00004786u, 0x0000477cu, + 0x00000000u, 0x00050080u, 0x00000008u, 0x00004787u, 0x00004784u, 0x00004786u, 0x0007004fu, 0x0000005fu, + 0x00004719u, 0x000046f7u, 0x000046f7u, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x0000471cu, + 0x00004787u, 0x00004787u, 0x00050084u, 0x0000005fu, 0x0000471du, 0x00004719u, 0x0000471cu, 0x000500c3u, + 0x00000008u, 0x0000471fu, 0x00000c2cu, 0x00004772u, 0x0004007eu, 0x00000008u, 0x00004720u, 0x0000471fu, + 0x000500c7u, 0x00000008u, 0x00004721u, 0x00000c2bu, 0x00004720u, 0x00050050u, 0x0000005fu, 0x00004724u, + 0x00004721u, 0x00004721u, 0x000500c7u, 0x0000005fu, 0x00004725u, 0x0000471du, 0x00004724u, 0x000500abu, + 0x0000005du, 0x00004727u, 0x00004772u, 0x00000288u, 0x000300f7u, 0x00004732u, 0x00000000u, 0x000400fau, + 0x00004727u, 0x00004728u, 0x0000472eu, 0x000200f8u, 0x0000472eu, 0x000500c4u, 0x0000005fu, 0x00004731u, + 0x0000471du, 0x0000bdc7u, 0x000200f9u, 0x00004732u, 0x000200f8u, 0x00004728u, 0x00050082u, 0x00000008u, + 0x0000472bu, 0x00000282u, 0x00004772u, 0x00050050u, 0x0000005fu, 0x0000472cu, 0x0000472bu, 0x0000472bu, + 0x000500c3u, 0x0000005fu, 0x0000472du, 0x0000471du, 0x0000472cu, 0x000200f9u, 0x00004732u, 0x000200f8u, + 0x00004732u, 0x000700f5u, 0x0000005fu, 0x00007bb8u, 0x0000472du, 0x00004728u, 0x00004731u, 0x0000472eu, + 0x000700f5u, 0x0000005fu, 0x00007bb6u, 0x0000472du, 0x00004728u, 0x0000471du, 0x0000472eu, 0x000500abu, + 0x00000880u, 0x00004734u, 0x00004725u, 0x00000c45u, 0x0004009au, 0x0000005du, 0x00004735u, 0x00004734u, + 0x000300f7u, 0x00004761u, 0x00000000u, 0x000400fau, 0x00004735u, 0x00004736u, 0x00004761u, 0x000200f8u, + 0x00004736u, 0x00050051u, 0x00000008u, 0x00004738u, 0x00004725u, 0x00000000u, 0x000500abu, 0x0000005du, + 0x0000473au, 0x00004738u, 0x00004721u, 0x000300f7u, 0x0000473fu, 0x00000000u, 0x000400fau, 0x0000473au, + 0x0000473bu, 0x0000473fu, 0x000200f8u, 0x0000473bu, 0x000500abu, 0x0000005du, 0x0000473eu, 0x00004738u, + 0x00000208u, 0x000200f9u, 0x0000473fu, 0x000200f8u, 0x0000473fu, 0x000700f5u, 0x0000005du, 0x00004740u, + 0x0000473au, 0x00004736u, 0x0000473eu, 0x0000473bu, 0x000300f7u, 0x0000474bu, 0x00000000u, 0x000400fau, + 0x00004740u, 0x00004741u, 0x0000474bu, 0x000200f8u, 0x00004741u, 0x00050051u, 0x00000008u, 0x00004743u, + 0x00007bb6u, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00004744u, 0x00004743u, 0x00000c2cu, 0x000500aau, + 0x0000005du, 0x00004745u, 0x00004744u, 0x00000208u, 0x000300f7u, 0x0000474au, 0x00000000u, 0x000400fau, + 0x00004745u, 0x00004746u, 0x00004748u, 0x000200f8u, 0x00004748u, 0x00060052u, 0x0000005fu, 0x0000739au, + 0x00000c5eu, 0x00007bb8u, 0x00000000u, 0x000200f9u, 0x0000474au, 0x000200f8u, 0x00004746u, 0x00060052u, + 0x0000005fu, 0x00007398u, 0x00000c19u, 0x00007bb8u, 0x00000000u, 0x000200f9u, 0x0000474au, 0x000200f8u, + 0x0000474au, 0x000700f5u, 0x0000005fu, 0x00007bbeu, 0x00007398u, 0x00004746u, 0x0000739au, 0x00004748u, + 0x000200f9u, 0x0000474bu, 0x000200f8u, 0x0000474bu, 0x000700f5u, 0x0000005fu, 0x00007bbdu, 0x00007bb8u, + 0x0000473fu, 0x00007bbeu, 0x0000474au, 0x00050051u, 0x00000008u, 0x0000474du, 0x00004725u, 0x00000001u, + 0x000500abu, 0x0000005du, 0x0000474fu, 0x0000474du, 0x00004721u, 0x000300f7u, 0x00004754u, 0x00000000u, + 0x000400fau, 0x0000474fu, 0x00004750u, 0x00004754u, 0x000200f8u, 0x00004750u, 0x000500abu, 0x0000005du, + 0x00004753u, 0x0000474du, 0x00000208u, 0x000200f9u, 0x00004754u, 0x000200f8u, 0x00004754u, 0x000700f5u, + 0x0000005du, 0x00004755u, 0x0000474fu, 0x0000474bu, 0x00004753u, 0x00004750u, 0x000300f7u, 0x00004760u, + 0x00000000u, 0x000400fau, 0x00004755u, 0x00004756u, 0x00004760u, 0x000200f8u, 0x00004756u, 0x00050051u, + 0x00000008u, 0x00004758u, 0x00007bb6u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00004759u, 0x00004758u, + 0x00000c2cu, 0x000500aau, 0x0000005du, 0x0000475au, 0x00004759u, 0x00000208u, 0x000300f7u, 0x0000475fu, + 0x00000000u, 0x000400fau, 0x0000475au, 0x0000475bu, 0x0000475du, 0x000200f8u, 0x0000475du, 0x00060052u, + 0x0000005fu, 0x000073a1u, 0x00000c5eu, 0x00007bbdu, 0x00000001u, 0x000200f9u, 0x0000475fu, 0x000200f8u, + 0x0000475bu, 0x00060052u, 0x0000005fu, 0x0000739fu, 0x00000c19u, 0x00007bbdu, 0x00000001u, 0x000200f9u, + 0x0000475fu, 0x000200f8u, 0x0000475fu, 0x000700f5u, 0x0000005fu, 0x00007bc2u, 0x0000739fu, 0x0000475bu, + 0x000073a1u, 0x0000475du, 0x000200f9u, 0x00004760u, 0x000200f8u, 0x00004760u, 0x000700f5u, 0x0000005fu, + 0x00007bc1u, 0x00007bbdu, 0x00004754u, 0x00007bc2u, 0x0000475fu, 0x000200f9u, 0x00004761u, 0x000200f8u, + 0x00004761u, 0x000700f5u, 0x0000005fu, 0x00007bc0u, 0x00007bb8u, 0x00004732u, 0x00007bc1u, 0x00004760u, + 0x00050050u, 0x00000880u, 0x0000be02u, 0x00004711u, 0x00004711u, 0x000600a9u, 0x0000005fu, 0x0000be03u, + 0x0000be02u, 0x00000c78u, 0x00007bc0u, 0x0008000cu, 0x0000005fu, 0x00004766u, 0x00000001u, 0x0000002du, + 0x0000be03u, 0x00000c7bu, 0x00000c7cu, 0x000200f9u, 0x00004701u, 0x000200f8u, 0x00004701u, 0x000700f5u, + 0x0000005fu, 0x00007bc3u, 0x00004766u, 0x00004761u, 0x0000478eu, 0x000046feu, 0x000200f9u, 0x000023b2u, + 0x000200f8u, 0x0000238du, 0x00070041u, 0x0000031bu, 0x00002398u, 0x00000319u, 0x00000208u, 0x00002375u, + 0x00000217u, 0x0004003du, 0x00000009u, 0x00002399u, 0x00002398u, 0x0008004fu, 0x0000003cu, 0x0000239au, + 0x00002399u, 0x00002399u, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c3u, 0x0000003cu, 0x0000239cu, + 0x0000239au, 0x0000bdc3u, 0x000300f7u, 0x000023a6u, 0x00000000u, 0x000400fau, 0x00002260u, 0x0000239eu, + 0x000023a3u, 0x000200f8u, 0x000023a3u, 0x0007004fu, 0x0000005fu, 0x000046e0u, 0x0000239cu, 0x0000239cu, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x000023a6u, 0x000200f8u, 0x0000239eu, 0x00050051u, 0x00000008u, + 0x00004661u, 0x0000239cu, 0x00000002u, 0x000500b3u, 0x0000005du, 0x00004663u, 0x00004661u, 0x00000208u, + 0x000500c7u, 0x00000008u, 0x00004665u, 0x00004661u, 0x00000c19u, 0x0006000cu, 0x00000008u, 0x000046c2u, + 0x00000001u, 0x0000004au, 0x00004665u, 0x00050082u, 0x00000008u, 0x000046c3u, 0x00000288u, 0x000046c2u, + 0x0007000cu, 0x00000008u, 0x000046c4u, 0x00000001u, 0x00000027u, 0x000046c3u, 0x00000288u, 0x000500c4u, + 0x00000008u, 0x000046c7u, 0x00004665u, 0x000046c4u, 0x000500c7u, 0x00000008u, 0x000046c8u, 0x000046c7u, + 0x00000b33u, 0x000500c7u, 0x00000008u, 0x000046cau, 0x000046c8u, 0x00000390u, 0x000500c3u, 0x00000008u, + 0x000046ccu, 0x000046c8u, 0x00000263u, 0x0003003eu, 0x000046bdu, 0x00000bf7u, 0x00050041u, 0x00000060u, + 0x000046cdu, 0x000046bdu, 0x000046ccu, 0x0004003du, 0x0000005fu, 0x000046ceu, 0x000046cdu, 0x00050051u, + 0x00000008u, 0x000046d3u, 0x000046ceu, 0x00000001u, 0x00050084u, 0x00000008u, 0x000046d5u, 0x000046d3u, + 0x000046cau, 0x000500c3u, 0x00000008u, 0x000046d6u, 0x000046d5u, 0x0000026fu, 0x00050051u, 0x00000008u, + 0x000046d8u, 0x000046ceu, 0x00000000u, 0x00050080u, 0x00000008u, 0x000046d9u, 0x000046d6u, 0x000046d8u, + 0x0007004fu, 0x0000005fu, 0x0000466bu, 0x0000239cu, 0x0000239cu, 0x00000000u, 0x00000001u, 0x00050050u, + 0x0000005fu, 0x0000466eu, 0x000046d9u, 0x000046d9u, 0x00050084u, 0x0000005fu, 0x0000466fu, 0x0000466bu, + 0x0000466eu, 0x000500c3u, 0x00000008u, 0x00004671u, 0x00000c2cu, 0x000046c4u, 0x0004007eu, 0x00000008u, + 0x00004672u, 0x00004671u, 0x000500c7u, 0x00000008u, 0x00004673u, 0x00000c2bu, 0x00004672u, 0x00050050u, + 0x0000005fu, 0x00004676u, 0x00004673u, 0x00004673u, 0x000500c7u, 0x0000005fu, 0x00004677u, 0x0000466fu, + 0x00004676u, 0x000500abu, 0x0000005du, 0x00004679u, 0x000046c4u, 0x00000288u, 0x000300f7u, 0x00004684u, + 0x00000000u, 0x000400fau, 0x00004679u, 0x0000467au, 0x00004680u, 0x000200f8u, 0x00004680u, 0x000500c4u, + 0x0000005fu, 0x00004683u, 0x0000466fu, 0x0000bdc7u, 0x000200f9u, 0x00004684u, 0x000200f8u, 0x0000467au, + 0x00050082u, 0x00000008u, 0x0000467du, 0x00000282u, 0x000046c4u, 0x00050050u, 0x0000005fu, 0x0000467eu, + 0x0000467du, 0x0000467du, 0x000500c3u, 0x0000005fu, 0x0000467fu, 0x0000466fu, 0x0000467eu, 0x000200f9u, + 0x00004684u, 0x000200f8u, 0x00004684u, 0x000700f5u, 0x0000005fu, 0x00007bc8u, 0x0000467fu, 0x0000467au, + 0x00004683u, 0x00004680u, 0x000700f5u, 0x0000005fu, 0x00007bc6u, 0x0000467fu, 0x0000467au, 0x0000466fu, + 0x00004680u, 0x000500abu, 0x00000880u, 0x00004686u, 0x00004677u, 0x00000c45u, 0x0004009au, 0x0000005du, + 0x00004687u, 0x00004686u, 0x000300f7u, 0x000046b3u, 0x00000000u, 0x000400fau, 0x00004687u, 0x00004688u, + 0x000046b3u, 0x000200f8u, 0x00004688u, 0x00050051u, 0x00000008u, 0x0000468au, 0x00004677u, 0x00000000u, + 0x000500abu, 0x0000005du, 0x0000468cu, 0x0000468au, 0x00004673u, 0x000300f7u, 0x00004691u, 0x00000000u, + 0x000400fau, 0x0000468cu, 0x0000468du, 0x00004691u, 0x000200f8u, 0x0000468du, 0x000500abu, 0x0000005du, + 0x00004690u, 0x0000468au, 0x00000208u, 0x000200f9u, 0x00004691u, 0x000200f8u, 0x00004691u, 0x000700f5u, + 0x0000005du, 0x00004692u, 0x0000468cu, 0x00004688u, 0x00004690u, 0x0000468du, 0x000300f7u, 0x0000469du, + 0x00000000u, 0x000400fau, 0x00004692u, 0x00004693u, 0x0000469du, 0x000200f8u, 0x00004693u, 0x00050051u, + 0x00000008u, 0x00004695u, 0x00007bc6u, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00004696u, 0x00004695u, + 0x00000c2cu, 0x000500aau, 0x0000005du, 0x00004697u, 0x00004696u, 0x00000208u, 0x000300f7u, 0x0000469cu, + 0x00000000u, 0x000400fau, 0x00004697u, 0x00004698u, 0x0000469au, 0x000200f8u, 0x0000469au, 0x00060052u, + 0x0000005fu, 0x00007387u, 0x00000c5eu, 0x00007bc8u, 0x00000000u, 0x000200f9u, 0x0000469cu, 0x000200f8u, + 0x00004698u, 0x00060052u, 0x0000005fu, 0x00007385u, 0x00000c19u, 0x00007bc8u, 0x00000000u, 0x000200f9u, + 0x0000469cu, 0x000200f8u, 0x0000469cu, 0x000700f5u, 0x0000005fu, 0x00007bceu, 0x00007385u, 0x00004698u, + 0x00007387u, 0x0000469au, 0x000200f9u, 0x0000469du, 0x000200f8u, 0x0000469du, 0x000700f5u, 0x0000005fu, + 0x00007bcdu, 0x00007bc8u, 0x00004691u, 0x00007bceu, 0x0000469cu, 0x00050051u, 0x00000008u, 0x0000469fu, + 0x00004677u, 0x00000001u, 0x000500abu, 0x0000005du, 0x000046a1u, 0x0000469fu, 0x00004673u, 0x000300f7u, + 0x000046a6u, 0x00000000u, 0x000400fau, 0x000046a1u, 0x000046a2u, 0x000046a6u, 0x000200f8u, 0x000046a2u, + 0x000500abu, 0x0000005du, 0x000046a5u, 0x0000469fu, 0x00000208u, 0x000200f9u, 0x000046a6u, 0x000200f8u, + 0x000046a6u, 0x000700f5u, 0x0000005du, 0x000046a7u, 0x000046a1u, 0x0000469du, 0x000046a5u, 0x000046a2u, + 0x000300f7u, 0x000046b2u, 0x00000000u, 0x000400fau, 0x000046a7u, 0x000046a8u, 0x000046b2u, 0x000200f8u, + 0x000046a8u, 0x00050051u, 0x00000008u, 0x000046aau, 0x00007bc6u, 0x00000001u, 0x000500c7u, 0x00000008u, + 0x000046abu, 0x000046aau, 0x00000c2cu, 0x000500aau, 0x0000005du, 0x000046acu, 0x000046abu, 0x00000208u, + 0x000300f7u, 0x000046b1u, 0x00000000u, 0x000400fau, 0x000046acu, 0x000046adu, 0x000046afu, 0x000200f8u, + 0x000046afu, 0x00060052u, 0x0000005fu, 0x0000738eu, 0x00000c5eu, 0x00007bcdu, 0x00000001u, 0x000200f9u, + 0x000046b1u, 0x000200f8u, 0x000046adu, 0x00060052u, 0x0000005fu, 0x0000738cu, 0x00000c19u, 0x00007bcdu, + 0x00000001u, 0x000200f9u, 0x000046b1u, 0x000200f8u, 0x000046b1u, 0x000700f5u, 0x0000005fu, 0x00007bd2u, + 0x0000738cu, 0x000046adu, 0x0000738eu, 0x000046afu, 0x000200f9u, 0x000046b2u, 0x000200f8u, 0x000046b2u, + 0x000700f5u, 0x0000005fu, 0x00007bd1u, 0x00007bcdu, 0x000046a6u, 0x00007bd2u, 0x000046b1u, 0x000200f9u, + 0x000046b3u, 0x000200f8u, 0x000046b3u, 0x000700f5u, 0x0000005fu, 0x00007bd0u, 0x00007bc8u, 0x00004684u, + 0x00007bd1u, 0x000046b2u, 0x00050050u, 0x00000880u, 0x0000be04u, 0x00004663u, 0x00004663u, 0x000600a9u, + 0x0000005fu, 0x0000be05u, 0x0000be04u, 0x00000c78u, 0x00007bd0u, 0x0008000cu, 0x0000005fu, 0x000046b8u, + 0x00000001u, 0x0000002du, 0x0000be05u, 0x00000c7bu, 0x00000c7cu, 0x000200f9u, 0x000023a6u, 0x000200f8u, + 0x000023a6u, 0x000700f5u, 0x0000005fu, 0x00007da9u, 0x000046b8u, 0x000046b3u, 0x000046e0u, 0x000023a3u, + 0x000200f9u, 0x000023b2u, 0x000200f8u, 0x000023b2u, 0x000700f5u, 0x0000005fu, 0x00007da8u, 0x00007da9u, + 0x000023a6u, 0x00007bc3u, 0x00004701u, 0x000200f9u, 0x000023b4u, 0x000200f8u, 0x000023b4u, 0x000700f5u, + 0x0000005fu, 0x00007d44u, 0x000076c6u, 0x00002369u, 0x00007da8u, 0x000023b2u, 0x000600a9u, 0x00000006u, + 0x0000be06u, 0x0000228au, 0x0000774au, 0x00007ce1u, 0x000600a9u, 0x0000005du, 0x0000be07u, 0x0000228au, + 0x00000563u, 0x00002287u, 0x000300f7u, 0x000023d6u, 0x00000000u, 0x000400fau, 0x0000be07u, 0x000023b6u, + 0x000023d6u, 0x000200f8u, 0x000023b6u, 0x000400a8u, 0x0000005du, 0x000023b9u, 0x00002296u, 0x000500a7u, + 0x0000005du, 0x000023bau, 0x00002290u, 0x000023b9u, 0x000300f7u, 0x000023d5u, 0x00000000u, 0x000400fau, + 0x000023bau, 0x000023bbu, 0x000023c0u, 0x000200f8u, 0x000023c0u, 0x00080041u, 0x0000027cu, 0x000023c3u, + 0x00000a24u, 0x00000208u, 0x00002016u, 0x0000021au, 0x0000be06u, 0x0004003du, 0x0000022eu, 0x000023c4u, + 0x000023c3u, 0x00040071u, 0x00000006u, 0x000023c5u, 0x000023c4u, 0x00070041u, 0x00000270u, 0x000047cbu, + 0x000002d6u, 0x00000208u, 0x000023c5u, 0x00000208u, 0x0004003du, 0x00000006u, 0x000047ccu, 0x000047cbu, + 0x00070041u, 0x00000270u, 0x000047ceu, 0x000002d6u, 0x00000208u, 0x000023c5u, 0x00000217u, 0x0004003du, + 0x00000006u, 0x000047cfu, 0x000047ceu, 0x00070041u, 0x00000270u, 0x000047d1u, 0x000002d6u, 0x00000208u, + 0x000023c5u, 0x0000021au, 0x0004003du, 0x00000006u, 0x000047d2u, 0x000047d1u, 0x00070041u, 0x00000270u, + 0x000047d4u, 0x000002d6u, 0x00000208u, 0x000023c5u, 0x0000021du, 0x0004003du, 0x00000006u, 0x000047d5u, + 0x000047d4u, 0x00070041u, 0x00000270u, 0x000047d7u, 0x000002d6u, 0x00000208u, 0x000023c5u, 0x00000220u, + 0x0004003du, 0x00000006u, 0x000047d8u, 0x000047d7u, 0x00070041u, 0x00000270u, 0x000047dau, 0x000002d6u, + 0x00000208u, 0x000023c5u, 0x00000223u, 0x0004003du, 0x00000006u, 0x000047dbu, 0x000047dau, 0x00070041u, + 0x0000027cu, 0x000047ddu, 0x000002d6u, 0x00000208u, 0x000023c5u, 0x00000226u, 0x0004003du, 0x0000022eu, + 0x000047deu, 0x000047ddu, 0x00040071u, 0x00000006u, 0x000047dfu, 0x000047deu, 0x0004007cu, 0x00000008u, + 0x000047e0u, 0x000047dfu, 0x00070041u, 0x0000027cu, 0x000047e2u, 0x000002d6u, 0x00000208u, 0x000023c5u, + 0x00000229u, 0x0004003du, 0x0000022eu, 0x000047e3u, 0x000047e2u, 0x00040071u, 0x00000006u, 0x000047e4u, + 0x000047e3u, 0x0004007cu, 0x00000008u, 0x000047e5u, 0x000047e4u, 0x00070041u, 0x0000027cu, 0x000047e7u, + 0x000002d6u, 0x00000208u, 0x000023c5u, 0x00000263u, 0x0004003du, 0x0000022eu, 0x000047e8u, 0x000047e7u, + 0x00040071u, 0x00000006u, 0x000047e9u, 0x000047e8u, 0x0004007cu, 0x00000008u, 0x000047eau, 0x000047e9u, + 0x00070041u, 0x0000027cu, 0x000047ecu, 0x000002d6u, 0x00000208u, 0x000023c5u, 0x00000269u, 0x0004003du, + 0x0000022eu, 0x000047edu, 0x000047ecu, 0x00040071u, 0x00000006u, 0x000047eeu, 0x000047edu, 0x0004007cu, + 0x00000008u, 0x000047efu, 0x000047eeu, 0x00070041u, 0x0000027cu, 0x000047f1u, 0x000002d6u, 0x00000208u, + 0x000023c5u, 0x0000026fu, 0x0004003du, 0x0000022eu, 0x000047f2u, 0x000047f1u, 0x00040071u, 0x00000006u, + 0x000047f3u, 0x000047f2u, 0x0004007cu, 0x00000008u, 0x000047f4u, 0x000047f3u, 0x00070041u, 0x0000027cu, + 0x000047f6u, 0x000002d6u, 0x00000208u, 0x000023c5u, 0x00000274u, 0x0004003du, 0x0000022eu, 0x000047f7u, + 0x000047f6u, 0x00040071u, 0x00000006u, 0x000047f8u, 0x000047f7u, 0x0004007cu, 0x00000008u, 0x000047f9u, + 0x000047f8u, 0x00070041u, 0x0000027cu, 0x000047fbu, 0x000002d6u, 0x00000208u, 0x000023c5u, 0x0000027bu, + 0x0004003du, 0x0000022eu, 0x000047fcu, 0x000047fbu, 0x00040071u, 0x00000006u, 0x000047fdu, 0x000047fcu, + 0x0004007cu, 0x00000008u, 0x000047feu, 0x000047fdu, 0x00070041u, 0x0000027cu, 0x00004800u, 0x000002d6u, + 0x00000208u, 0x000023c5u, 0x00000282u, 0x0004003du, 0x0000022eu, 0x00004801u, 0x00004800u, 0x00040071u, + 0x00000006u, 0x00004802u, 0x00004801u, 0x0004007cu, 0x00000008u, 0x00004803u, 0x00004802u, 0x000500c7u, + 0x00000008u, 0x0000495eu, 0x00004803u, 0x00000217u, 0x000500abu, 0x0000005du, 0x0000495fu, 0x0000495eu, + 0x00000208u, 0x0004007cu, 0x00000008u, 0x00004962u, 0x000047ccu, 0x0004007cu, 0x00000008u, 0x00004965u, + 0x000047cfu, 0x00050051u, 0x00000008u, 0x00004969u, 0x00007d44u, 0x00000000u, 0x0008000cu, 0x00000008u, + 0x00004e32u, 0x00000001u, 0x0000002du, 0x00004969u, 0x00000c5eu, 0x00000c19u, 0x000500b1u, 0x0000005du, + 0x00004e34u, 0x000047f4u, 0x00000274u, 0x000300f7u, 0x00004e40u, 0x00000000u, 0x000400fau, 0x00004e34u, + 0x00004e35u, 0x00004e39u, 0x000200f8u, 0x00004e39u, 0x00050082u, 0x00000008u, 0x00004e3bu, 0x00000382u, + 0x000047f4u, 0x000500c4u, 0x00000008u, 0x00004e3du, 0x00004e32u, 0x00004e3bu, 0x000500c3u, 0x00000008u, + 0x00004e3fu, 0x00004e3du, 0x0000055eu, 0x000200f9u, 0x00004e40u, 0x000200f8u, 0x00004e35u, 0x000500c3u, + 0x00000008u, 0x00004e38u, 0x00004e32u, 0x000047f4u, 0x000200f9u, 0x00004e40u, 0x000200f8u, 0x00004e40u, + 0x000700f5u, 0x00000008u, 0x00007df9u, 0x00004e38u, 0x00004e35u, 0x00004e3fu, 0x00004e39u, 0x000300f7u, + 0x00004e5cu, 0x00000000u, 0x000400fau, 0x0000495fu, 0x00004e42u, 0x00004e57u, 0x000200f8u, 0x00004e57u, + 0x000500c4u, 0x00000008u, 0x00004e59u, 0x00004962u, 0x0000021du, 0x00050082u, 0x00000008u, 0x00004e5bu, + 0x00007df9u, 0x00004e59u, 0x000200f9u, 0x00004e5cu, 0x000200f8u, 0x00004e42u, 0x000500c3u, 0x00000008u, + 0x00004e44u, 0x00007df9u, 0x0000021du, 0x000500afu, 0x0000005du, 0x00004e46u, 0x00004e44u, 0x00004965u, + 0x000300f7u, 0x00004e56u, 0x00000000u, 0x000400fau, 0x00004e46u, 0x00004e48u, 0x00004e50u, 0x000200f8u, + 0x00004e50u, 0x000500c4u, 0x00000008u, 0x00004e53u, 0x00004962u, 0x0000021du, 0x00050082u, 0x00000008u, + 0x00004e54u, 0x00007df9u, 0x00004e53u, 0x0007000cu, 0x00000008u, 0x00004e55u, 0x00000001u, 0x0000002au, + 0x00004e54u, 0x00000208u, 0x000200f9u, 0x00004e56u, 0x000200f8u, 0x00004e48u, 0x000500c3u, 0x00000008u, + 0x00004e4au, 0x00004965u, 0x0000021au, 0x000500c3u, 0x00000008u, 0x00004e4cu, 0x00004962u, 0x0000021au, + 0x00050082u, 0x00000008u, 0x00004e4du, 0x00004e4au, 0x00004e4cu, 0x000500c7u, 0x00000008u, 0x00004e4eu, + 0x00004e4du, 0x0000114eu, 0x000500c4u, 0x00000008u, 0x00004e4fu, 0x00004e4eu, 0x00000223u, 0x000200f9u, + 0x00004e56u, 0x000200f8u, 0x00004e56u, 0x000700f5u, 0x00000008u, 0x00007dfbu, 0x00004e4fu, 0x00004e48u, + 0x00004e55u, 0x00004e50u, 0x000200f9u, 0x00004e5cu, 0x000200f8u, 0x00004e5cu, 0x000700f5u, 0x00000008u, + 0x00007dfau, 0x00007dfbu, 0x00004e56u, 0x00004e5bu, 0x00004e57u, 0x000500c7u, 0x00000008u, 0x0000496eu, + 0x00004803u, 0x00000220u, 0x000500abu, 0x0000005du, 0x0000496fu, 0x0000496eu, 0x00000208u, 0x0004007cu, + 0x00000008u, 0x00004972u, 0x000047d2u, 0x0004007cu, 0x00000008u, 0x00004975u, 0x000047d5u, 0x00050051u, + 0x00000008u, 0x00004979u, 0x00007d44u, 0x00000001u, 0x0008000cu, 0x00000008u, 0x00004e62u, 0x00000001u, + 0x0000002du, 0x00004979u, 0x00000c5eu, 0x00000c19u, 0x000500b1u, 0x0000005du, 0x00004e64u, 0x000047feu, + 0x00000274u, 0x000300f7u, 0x00004e70u, 0x00000000u, 0x000400fau, 0x00004e64u, 0x00004e65u, 0x00004e69u, + 0x000200f8u, 0x00004e69u, 0x00050082u, 0x00000008u, 0x00004e6bu, 0x00000382u, 0x000047feu, 0x000500c4u, + 0x00000008u, 0x00004e6du, 0x00004e62u, 0x00004e6bu, 0x000500c3u, 0x00000008u, 0x00004e6fu, 0x00004e6du, + 0x0000055eu, 0x000200f9u, 0x00004e70u, 0x000200f8u, 0x00004e65u, 0x000500c3u, 0x00000008u, 0x00004e68u, + 0x00004e62u, 0x000047feu, 0x000200f9u, 0x00004e70u, 0x000200f8u, 0x00004e70u, 0x000700f5u, 0x00000008u, + 0x00007dffu, 0x00004e68u, 0x00004e65u, 0x00004e6fu, 0x00004e69u, 0x000300f7u, 0x00004e8cu, 0x00000000u, + 0x000400fau, 0x0000496fu, 0x00004e72u, 0x00004e87u, 0x000200f8u, 0x00004e87u, 0x000500c4u, 0x00000008u, + 0x00004e89u, 0x00004972u, 0x0000021du, 0x00050082u, 0x00000008u, 0x00004e8bu, 0x00007dffu, 0x00004e89u, + 0x000200f9u, 0x00004e8cu, 0x000200f8u, 0x00004e72u, 0x000500c3u, 0x00000008u, 0x00004e74u, 0x00007dffu, + 0x0000021du, 0x000500afu, 0x0000005du, 0x00004e76u, 0x00004e74u, 0x00004975u, 0x000300f7u, 0x00004e86u, + 0x00000000u, 0x000400fau, 0x00004e76u, 0x00004e78u, 0x00004e80u, 0x000200f8u, 0x00004e80u, 0x000500c4u, + 0x00000008u, 0x00004e83u, 0x00004972u, 0x0000021du, 0x00050082u, 0x00000008u, 0x00004e84u, 0x00007dffu, + 0x00004e83u, 0x0007000cu, 0x00000008u, 0x00004e85u, 0x00000001u, 0x0000002au, 0x00004e84u, 0x00000208u, + 0x000200f9u, 0x00004e86u, 0x000200f8u, 0x00004e78u, 0x000500c3u, 0x00000008u, 0x00004e7au, 0x00004975u, + 0x0000021au, 0x000500c3u, 0x00000008u, 0x00004e7cu, 0x00004972u, 0x0000021au, 0x00050082u, 0x00000008u, + 0x00004e7du, 0x00004e7au, 0x00004e7cu, 0x000500c7u, 0x00000008u, 0x00004e7eu, 0x00004e7du, 0x0000114eu, + 0x000500c4u, 0x00000008u, 0x00004e7fu, 0x00004e7eu, 0x00000223u, 0x000200f9u, 0x00004e86u, 0x000200f8u, + 0x00004e86u, 0x000700f5u, 0x00000008u, 0x00007e01u, 0x00004e7fu, 0x00004e78u, 0x00004e85u, 0x00004e80u, + 0x000200f9u, 0x00004e8cu, 0x000200f8u, 0x00004e8cu, 0x000700f5u, 0x00000008u, 0x00007e00u, 0x00007e01u, + 0x00004e86u, 0x00004e8bu, 0x00004e87u, 0x00050050u, 0x0000005fu, 0x0000bde3u, 0x00007dfau, 0x00007e00u, + 0x000500a6u, 0x0000005du, 0x0000497eu, 0x00002257u, 0x00002251u, 0x000300f7u, 0x00004984u, 0x00000000u, + 0x000400fau, 0x0000497eu, 0x0000497fu, 0x00004983u, 0x000200f8u, 0x00004983u, 0x000200f9u, 0x00004984u, + 0x000200f8u, 0x0000497fu, 0x000500c7u, 0x0000005fu, 0x00004982u, 0x0000bde3u, 0x0000bdcau, 0x000200f9u, + 0x00004984u, 0x000200f8u, 0x00004984u, 0x000700f5u, 0x0000005fu, 0x00007e05u, 0x00004982u, 0x0000497fu, + 0x00000c45u, 0x00004983u, 0x00050051u, 0x00000008u, 0x00004986u, 0x00007e05u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00004988u, 0x00007e05u, 0x00000001u, 0x00050080u, 0x00000008u, 0x00004989u, 0x00004986u, + 0x00004988u, 0x000500c3u, 0x0000005fu, 0x0000498cu, 0x0000bde3u, 0x0000bdc9u, 0x00050051u, 0x00000008u, + 0x0000498fu, 0x0000498cu, 0x00000000u, 0x000500abu, 0x0000005du, 0x00004e93u, 0x000047efu, 0x00000208u, + 0x000300f7u, 0x00004ea9u, 0x00000000u, 0x000400fau, 0x00004e93u, 0x00004e94u, 0x00004ea9u, 0x000200f8u, + 0x00004e94u, 0x000500c4u, 0x00000008u, 0x00004e97u, 0x00000217u, 0x000047efu, 0x000500c7u, 0x00000008u, + 0x00004e9au, 0x00004803u, 0x0000021au, 0x000500abu, 0x0000005du, 0x00004e9bu, 0x00004e9au, 0x00000208u, + 0x000300f7u, 0x00004ea4u, 0x00000000u, 0x000400fau, 0x00004e9bu, 0x00004e9cu, 0x00004ea4u, 0x000200f8u, + 0x00004e9cu, 0x000500c7u, 0x00000008u, 0x00004e9fu, 0x0000498fu, 0x00004e97u, 0x00050082u, 0x00000008u, + 0x00004ea0u, 0x00004e9fu, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00004ea1u, 0x00000001u, 0x0000002au, + 0x00004ea0u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00004ea3u, 0x0000498fu, 0x00004ea1u, 0x000200f9u, + 0x00004ea4u, 0x000200f8u, 0x00004ea4u, 0x000700f5u, 0x00000008u, 0x00007e07u, 0x0000498fu, 0x00004e94u, + 0x00004ea3u, 0x00004e9cu, 0x00050082u, 0x00000008u, 0x00004ea6u, 0x00004e97u, 0x00000217u, 0x000500c7u, + 0x00000008u, 0x00004ea8u, 0x00007e07u, 0x00004ea6u, 0x000200f9u, 0x00004ea9u, 0x000200f8u, 0x00004ea9u, + 0x000700f5u, 0x00000008u, 0x00007e08u, 0x0000498fu, 0x00004984u, 0x00004ea8u, 0x00004ea4u, 0x00050051u, + 0x00000008u, 0x00004993u, 0x0000498cu, 0x00000001u, 0x000500abu, 0x0000005du, 0x00004eb0u, 0x000047f9u, + 0x00000208u, 0x000300f7u, 0x00004ec6u, 0x00000000u, 0x000400fau, 0x00004eb0u, 0x00004eb1u, 0x00004ec6u, + 0x000200f8u, 0x00004eb1u, 0x000500c4u, 0x00000008u, 0x00004eb4u, 0x00000217u, 0x000047f9u, 0x000500c7u, + 0x00000008u, 0x00004eb7u, 0x00004803u, 0x00000263u, 0x000500abu, 0x0000005du, 0x00004eb8u, 0x00004eb7u, + 0x00000208u, 0x000300f7u, 0x00004ec1u, 0x00000000u, 0x000400fau, 0x00004eb8u, 0x00004eb9u, 0x00004ec1u, + 0x000200f8u, 0x00004eb9u, 0x000500c7u, 0x00000008u, 0x00004ebcu, 0x00004993u, 0x00004eb4u, 0x00050082u, + 0x00000008u, 0x00004ebdu, 0x00004ebcu, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00004ebeu, 0x00000001u, + 0x0000002au, 0x00004ebdu, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00004ec0u, 0x00004993u, 0x00004ebeu, + 0x000200f9u, 0x00004ec1u, 0x000200f8u, 0x00004ec1u, 0x000700f5u, 0x00000008u, 0x00007e0bu, 0x00004993u, + 0x00004eb1u, 0x00004ec0u, 0x00004eb9u, 0x00050082u, 0x00000008u, 0x00004ec3u, 0x00004eb4u, 0x00000217u, + 0x000500c7u, 0x00000008u, 0x00004ec5u, 0x00007e0bu, 0x00004ec3u, 0x000200f9u, 0x00004ec6u, 0x000200f8u, + 0x00004ec6u, 0x000700f5u, 0x00000008u, 0x00007e0cu, 0x00004993u, 0x00004ea9u, 0x00004ec5u, 0x00004ec1u, + 0x00050080u, 0x00000008u, 0x00004997u, 0x0000498fu, 0x00000217u, 0x000300f7u, 0x00004ee3u, 0x00000000u, + 0x000400fau, 0x00004e93u, 0x00004eceu, 0x00004ee3u, 0x000200f8u, 0x00004eceu, 0x000500c4u, 0x00000008u, + 0x00004ed1u, 0x00000217u, 0x000047efu, 0x000500c7u, 0x00000008u, 0x00004ed4u, 0x00004803u, 0x0000021au, + 0x000500abu, 0x0000005du, 0x00004ed5u, 0x00004ed4u, 0x00000208u, 0x000300f7u, 0x00004edeu, 0x00000000u, + 0x000400fau, 0x00004ed5u, 0x00004ed6u, 0x00004edeu, 0x000200f8u, 0x00004ed6u, 0x000500c7u, 0x00000008u, + 0x00004ed9u, 0x00004997u, 0x00004ed1u, 0x00050082u, 0x00000008u, 0x00004edau, 0x00004ed9u, 0x00000217u, + 0x0007000cu, 0x00000008u, 0x00004edbu, 0x00000001u, 0x0000002au, 0x00004edau, 0x00000208u, 0x000500c6u, + 0x00000008u, 0x00004eddu, 0x00004997u, 0x00004edbu, 0x000200f9u, 0x00004edeu, 0x000200f8u, 0x00004edeu, + 0x000700f5u, 0x00000008u, 0x00007e0fu, 0x00004997u, 0x00004eceu, 0x00004eddu, 0x00004ed6u, 0x00050082u, + 0x00000008u, 0x00004ee0u, 0x00004ed1u, 0x00000217u, 0x000500c7u, 0x00000008u, 0x00004ee2u, 0x00007e0fu, + 0x00004ee0u, 0x000200f9u, 0x00004ee3u, 0x000200f8u, 0x00004ee3u, 0x000700f5u, 0x00000008u, 0x00007e10u, + 0x00004997u, 0x00004ec6u, 0x00004ee2u, 0x00004edeu, 0x00050080u, 0x00000008u, 0x0000499cu, 0x00004993u, + 0x00000217u, 0x000300f7u, 0x00004f00u, 0x00000000u, 0x000400fau, 0x00004eb0u, 0x00004eebu, 0x00004f00u, + 0x000200f8u, 0x00004eebu, 0x000500c4u, 0x00000008u, 0x00004eeeu, 0x00000217u, 0x000047f9u, 0x000500c7u, + 0x00000008u, 0x00004ef1u, 0x00004803u, 0x00000263u, 0x000500abu, 0x0000005du, 0x00004ef2u, 0x00004ef1u, + 0x00000208u, 0x000300f7u, 0x00004efbu, 0x00000000u, 0x000400fau, 0x00004ef2u, 0x00004ef3u, 0x00004efbu, + 0x000200f8u, 0x00004ef3u, 0x000500c7u, 0x00000008u, 0x00004ef6u, 0x0000499cu, 0x00004eeeu, 0x00050082u, + 0x00000008u, 0x00004ef7u, 0x00004ef6u, 0x00000217u, 0x0007000cu, 0x00000008u, 0x00004ef8u, 0x00000001u, + 0x0000002au, 0x00004ef7u, 0x00000208u, 0x000500c6u, 0x00000008u, 0x00004efau, 0x0000499cu, 0x00004ef8u, + 0x000200f9u, 0x00004efbu, 0x000200f8u, 0x00004efbu, 0x000700f5u, 0x00000008u, 0x00007e13u, 0x0000499cu, + 0x00004eebu, 0x00004efau, 0x00004ef3u, 0x00050082u, 0x00000008u, 0x00004efdu, 0x00004eeeu, 0x00000217u, + 0x000500c7u, 0x00000008u, 0x00004effu, 0x00007e13u, 0x00004efdu, 0x000200f9u, 0x00004f00u, 0x000200f8u, + 0x00004f00u, 0x000700f5u, 0x00000008u, 0x00007e14u, 0x0000499cu, 0x00004ee3u, 0x00004effu, 0x00004efbu, + 0x00050082u, 0x00000008u, 0x000049a1u, 0x00007e14u, 0x00007e0cu, 0x0007000cu, 0x00000008u, 0x000049a2u, + 0x00000001u, 0x0000002au, 0x000049a1u, 0x000013aeu, 0x000500c7u, 0x00000008u, 0x000049a4u, 0x00007e0cu, + 0x00000390u, 0x00050080u, 0x00000008u, 0x000049a6u, 0x000049a4u, 0x000049a2u, 0x000500aau, 0x00000880u, + 0x000049acu, 0x00007e05u, 0x000013bau, 0x00050051u, 0x0000005du, 0x000049adu, 0x000049acu, 0x00000000u, + 0x00050051u, 0x0000005du, 0x000049aeu, 0x000049acu, 0x00000001u, 0x00070050u, 0x000005feu, 0x000049afu, + 0x00002281u, 0x00002296u, 0x000049adu, 0x000049aeu, 0x0004009bu, 0x0000005du, 0x000049b0u, 0x000049afu, + 0x000500afu, 0x0000005du, 0x000049b2u, 0x00004989u, 0x00000382u, 0x000600a9u, 0x00000008u, 0x0000be08u, + 0x000049b0u, 0x00000208u, 0x00004989u, 0x000500aau, 0x0000005du, 0x000049b8u, 0x000047e0u, 0x00000217u, + 0x000500afu, 0x0000005du, 0x000049bau, 0x0000be08u, 0x00000382u, 0x000300f7u, 0x000049c3u, 0x00000000u, + 0x000400fau, 0x000049bau, 0x000049bbu, 0x000049bfu, 0x000200f8u, 0x000049bfu, 0x00050050u, 0x0000005fu, + 0x000049c2u, 0x00007e08u, 0x000049a4u, 0x000200f9u, 0x000049c3u, 0x000200f8u, 0x000049bbu, 0x00050050u, + 0x0000005fu, 0x000049beu, 0x00007e10u, 0x000049a6u, 0x000200f9u, 0x000049c3u, 0x000200f8u, 0x000049c3u, + 0x000700f5u, 0x0000005fu, 0x00007e2fu, 0x000049beu, 0x000049bbu, 0x000049c2u, 0x000049bfu, 0x000500c7u, + 0x00000008u, 0x000049c6u, 0x00007e08u, 0x00000217u, 0x000500c4u, 0x00000008u, 0x000049c7u, 0x000049c6u, + 0x00000220u, 0x000500c3u, 0x00000008u, 0x000049cau, 0x00004986u, 0x00000217u, 0x000500c5u, 0x00000008u, + 0x000049cbu, 0x000049c7u, 0x000049cau, 0x000300f7u, 0x00004c8fu, 0x00000000u, 0x000400fau, 0x00002251u, + 0x000049cdu, 0x00004a73u, 0x000200f8u, 0x00004a73u, 0x000300f7u, 0x00004c8eu, 0x00000000u, 0x000d00fbu, + 0x000047e0u, 0x00004c8eu, 0x00000000u, 0x00004a76u, 0x00000001u, 0x00004afeu, 0x00000002u, 0x00004b2cu, + 0x00000003u, 0x00004b9fu, 0x00000004u, 0x00004c27u, 0x000200f8u, 0x00004c27u, 0x000300f7u, 0x00004c8du, + 0x00000000u, 0x000700fbu, 0x000047e5u, 0x00004c2au, 0x00000000u, 0x00004c4bu, 0x00000001u, 0x00004c6cu, + 0x000200f8u, 0x00004c6cu, 0x0004007cu, 0x000000a6u, 0x00004c6eu, 0x00007e2fu, 0x00050051u, 0x00000006u, + 0x00005f84u, 0x00004c6eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005f85u, 0x000047dbu, 0x00005f84u, + 0x00050080u, 0x00000006u, 0x00005f86u, 0x000047d8u, 0x00005f85u, 0x00050051u, 0x00000006u, 0x00005f88u, + 0x00004c6eu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005f8au, 0x00005f86u, 0x00005f88u, 0x000500c7u, + 0x00000006u, 0x00005f8cu, 0x00005f8au, 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00005f90u, 0x00005f84u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005f91u, 0x00005f90u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00005f93u, 0x00005f8cu, 0x00005f91u, 0x000500c6u, 0x00000006u, 0x00005f95u, 0x00005f93u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00005f98u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005f95u, + 0x0004003du, 0x0000022eu, 0x00005f99u, 0x00005f98u, 0x00040071u, 0x00000006u, 0x00005f9au, 0x00005f99u, + 0x0004007cu, 0x00000008u, 0x00005f9cu, 0x00005f9au, 0x00070050u, 0x00000009u, 0x00005f9du, 0x00005f9cu, + 0x00005f9cu, 0x00005f9cu, 0x00005f9cu, 0x000300f7u, 0x00004c82u, 0x00000000u, 0x000400fau, 0x00002257u, + 0x00004c73u, 0x00004c82u, 0x000200f8u, 0x00004c73u, 0x00050050u, 0x0000005fu, 0x00004c76u, 0x00007e10u, + 0x000049a4u, 0x0004007cu, 0x000000a6u, 0x00004c77u, 0x00004c76u, 0x00050051u, 0x00000006u, 0x00005fa8u, + 0x00004c77u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005fa9u, 0x000047dbu, 0x00005fa8u, 0x00050080u, + 0x00000006u, 0x00005faau, 0x000047d8u, 0x00005fa9u, 0x00050051u, 0x00000006u, 0x00005facu, 0x00004c77u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005faeu, 0x00005faau, 0x00005facu, 0x000500c7u, 0x00000006u, + 0x00005fb0u, 0x00005faeu, 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00005fb4u, 0x00005fa8u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00005fb5u, 0x00005fb4u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005fb7u, + 0x00005fb0u, 0x00005fb5u, 0x000500c6u, 0x00000006u, 0x00005fb9u, 0x00005fb7u, 0x00000490u, 0x00080041u, + 0x0000027cu, 0x00005fbcu, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005fb9u, 0x0004003du, + 0x0000022eu, 0x00005fbdu, 0x00005fbcu, 0x00040071u, 0x00000006u, 0x00005fbeu, 0x00005fbdu, 0x0004007cu, + 0x00000008u, 0x00005fc0u, 0x00005fbeu, 0x00070050u, 0x00000009u, 0x00005fc1u, 0x00005fc0u, 0x00005fc0u, + 0x00005fc0u, 0x00005fc0u, 0x00050050u, 0x0000005fu, 0x00004c7du, 0x00007e08u, 0x000049a6u, 0x0004007cu, + 0x000000a6u, 0x00004c7eu, 0x00004c7du, 0x00050051u, 0x00000006u, 0x00005fccu, 0x00004c7eu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005fcdu, 0x000047dbu, 0x00005fccu, 0x00050080u, 0x00000006u, 0x00005fceu, + 0x000047d8u, 0x00005fcdu, 0x00050051u, 0x00000006u, 0x00005fd0u, 0x00004c7eu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00005fd2u, 0x00005fceu, 0x00005fd0u, 0x000500c7u, 0x00000006u, 0x00005fd4u, 0x00005fd2u, + 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00005fd8u, 0x00005fccu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005fd9u, 0x00005fd8u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005fdbu, 0x00005fd4u, 0x00005fd9u, + 0x000500c6u, 0x00000006u, 0x00005fddu, 0x00005fdbu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005fe0u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005fddu, 0x0004003du, 0x0000022eu, 0x00005fe1u, + 0x00005fe0u, 0x00040071u, 0x00000006u, 0x00005fe2u, 0x00005fe1u, 0x0004007cu, 0x00000008u, 0x00005fe4u, + 0x00005fe2u, 0x00070050u, 0x00000009u, 0x00005fe5u, 0x00005fe4u, 0x00005fe4u, 0x00005fe4u, 0x00005fe4u, + 0x000200f9u, 0x00004c82u, 0x000200f8u, 0x00004c82u, 0x000700f5u, 0x00000009u, 0x000081dfu, 0x00008109u, + 0x00004c6cu, 0x00005fe5u, 0x00004c73u, 0x000700f5u, 0x00000009u, 0x000080e7u, 0x0000800eu, 0x00004c6cu, + 0x00005fc1u, 0x00004c73u, 0x000300f7u, 0x00004c8cu, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004c84u, + 0x00004c8cu, 0x000200f8u, 0x00004c84u, 0x00050050u, 0x0000005fu, 0x00004c87u, 0x00007e10u, 0x000049a6u, + 0x0004007cu, 0x000000a6u, 0x00004c88u, 0x00004c87u, 0x00050051u, 0x00000006u, 0x00005ff0u, 0x00004c88u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005ff1u, 0x000047dbu, 0x00005ff0u, 0x00050080u, 0x00000006u, + 0x00005ff2u, 0x000047d8u, 0x00005ff1u, 0x00050051u, 0x00000006u, 0x00005ff4u, 0x00004c88u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005ff6u, 0x00005ff2u, 0x00005ff4u, 0x000500c7u, 0x00000006u, 0x00005ff8u, + 0x00005ff6u, 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00005ffcu, 0x00005ff0u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00005ffdu, 0x00005ffcu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005fffu, 0x00005ff8u, + 0x00005ffdu, 0x000500c6u, 0x00000006u, 0x00006001u, 0x00005fffu, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00006004u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00006001u, 0x0004003du, 0x0000022eu, + 0x00006005u, 0x00006004u, 0x00040071u, 0x00000006u, 0x00006006u, 0x00006005u, 0x0004007cu, 0x00000008u, + 0x00006008u, 0x00006006u, 0x00070050u, 0x00000009u, 0x00006009u, 0x00006008u, 0x00006008u, 0x00006008u, + 0x00006008u, 0x000200f9u, 0x00004c8cu, 0x000200f8u, 0x00004c8cu, 0x000700f5u, 0x00000009u, 0x000082d6u, + 0x000081feu, 0x00004c82u, 0x00006009u, 0x00004c84u, 0x000200f9u, 0x00004c8du, 0x000200f8u, 0x00004c4bu, + 0x0004007cu, 0x000000a6u, 0x00004c4du, 0x00007e2fu, 0x00050051u, 0x00000006u, 0x00005eb9u, 0x00004c4du, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005ebau, 0x000047dbu, 0x00005eb9u, 0x00050080u, 0x00000006u, + 0x00005ebbu, 0x000047d8u, 0x00005ebau, 0x00050051u, 0x00000006u, 0x00005ebdu, 0x00004c4du, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00005ebeu, 0x00005ebdu, 0x00000217u, 0x00050080u, 0x00000006u, 0x00005ec0u, + 0x00005ebbu, 0x00005ebeu, 0x000500c7u, 0x00000006u, 0x00005ec2u, 0x00005ec0u, 0x00000e67u, 0x000400c8u, + 0x00000006u, 0x00005ec5u, 0x00005ebdu, 0x000500c7u, 0x00000006u, 0x00005ec6u, 0x00005ec5u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x00005ec7u, 0x00005ec6u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00005ecbu, + 0x00005eb9u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005eccu, 0x00005ecbu, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x00005eceu, 0x00005ec2u, 0x00005eccu, 0x000500c6u, 0x00000006u, 0x00005ed0u, 0x00005eceu, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005ed3u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00005ed0u, 0x0004003du, 0x0000022eu, 0x00005ed4u, 0x00005ed3u, 0x00040071u, 0x00000006u, 0x00005ed5u, + 0x00005ed4u, 0x000500c2u, 0x00000006u, 0x00005ed8u, 0x00005ed5u, 0x00005ec7u, 0x000500c7u, 0x00000006u, + 0x00005ed9u, 0x00005ed8u, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00005edbu, 0x00005ed9u, 0x00000220u, + 0x000500c5u, 0x00000006u, 0x00005eddu, 0x00005ed9u, 0x00005edbu, 0x0004007cu, 0x00000008u, 0x00005edfu, + 0x00005eddu, 0x00070050u, 0x00000009u, 0x00005ee0u, 0x00005edfu, 0x00005edfu, 0x00005edfu, 0x00005edfu, + 0x000300f7u, 0x00004c61u, 0x00000000u, 0x000400fau, 0x00002257u, 0x00004c52u, 0x00004c61u, 0x000200f8u, + 0x00004c52u, 0x00050050u, 0x0000005fu, 0x00004c55u, 0x00007e10u, 0x000049a4u, 0x0004007cu, 0x000000a6u, + 0x00004c56u, 0x00004c55u, 0x00050051u, 0x00000006u, 0x00005eecu, 0x00004c56u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005eedu, 0x000047dbu, 0x00005eecu, 0x00050080u, 0x00000006u, 0x00005eeeu, 0x000047d8u, + 0x00005eedu, 0x00050051u, 0x00000006u, 0x00005ef0u, 0x00004c56u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00005ef1u, 0x00005ef0u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00005ef3u, 0x00005eeeu, 0x00005ef1u, + 0x000500c7u, 0x00000006u, 0x00005ef5u, 0x00005ef3u, 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00005ef8u, + 0x00005ef0u, 0x000500c7u, 0x00000006u, 0x00005ef9u, 0x00005ef8u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x00005efau, 0x00005ef9u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00005efeu, 0x00005eecu, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00005effu, 0x00005efeu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005f01u, + 0x00005ef5u, 0x00005effu, 0x000500c6u, 0x00000006u, 0x00005f03u, 0x00005f01u, 0x00000490u, 0x00080041u, + 0x0000027cu, 0x00005f06u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005f03u, 0x0004003du, + 0x0000022eu, 0x00005f07u, 0x00005f06u, 0x00040071u, 0x00000006u, 0x00005f08u, 0x00005f07u, 0x000500c2u, + 0x00000006u, 0x00005f0bu, 0x00005f08u, 0x00005efau, 0x000500c7u, 0x00000006u, 0x00005f0cu, 0x00005f0bu, + 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00005f0eu, 0x00005f0cu, 0x00000220u, 0x000500c5u, 0x00000006u, + 0x00005f10u, 0x00005f0cu, 0x00005f0eu, 0x0004007cu, 0x00000008u, 0x00005f12u, 0x00005f10u, 0x00070050u, + 0x00000009u, 0x00005f13u, 0x00005f12u, 0x00005f12u, 0x00005f12u, 0x00005f12u, 0x00050050u, 0x0000005fu, + 0x00004c5cu, 0x00007e08u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004c5du, 0x00004c5cu, 0x00050051u, + 0x00000006u, 0x00005f1fu, 0x00004c5du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005f20u, 0x000047dbu, + 0x00005f1fu, 0x00050080u, 0x00000006u, 0x00005f21u, 0x000047d8u, 0x00005f20u, 0x00050051u, 0x00000006u, + 0x00005f23u, 0x00004c5du, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005f24u, 0x00005f23u, 0x00000217u, + 0x00050080u, 0x00000006u, 0x00005f26u, 0x00005f21u, 0x00005f24u, 0x000500c7u, 0x00000006u, 0x00005f28u, + 0x00005f26u, 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00005f2bu, 0x00005f23u, 0x000500c7u, 0x00000006u, + 0x00005f2cu, 0x00005f2bu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005f2du, 0x00005f2cu, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x00005f31u, 0x00005f1fu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005f32u, + 0x00005f31u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005f34u, 0x00005f28u, 0x00005f32u, 0x000500c6u, + 0x00000006u, 0x00005f36u, 0x00005f34u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005f39u, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00005f36u, 0x0004003du, 0x0000022eu, 0x00005f3au, 0x00005f39u, + 0x00040071u, 0x00000006u, 0x00005f3bu, 0x00005f3au, 0x000500c2u, 0x00000006u, 0x00005f3eu, 0x00005f3bu, + 0x00005f2du, 0x000500c7u, 0x00000006u, 0x00005f3fu, 0x00005f3eu, 0x00000e8au, 0x000500c4u, 0x00000006u, + 0x00005f41u, 0x00005f3fu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005f43u, 0x00005f3fu, 0x00005f41u, + 0x0004007cu, 0x00000008u, 0x00005f45u, 0x00005f43u, 0x00070050u, 0x00000009u, 0x00005f46u, 0x00005f45u, + 0x00005f45u, 0x00005f45u, 0x00005f45u, 0x000200f9u, 0x00004c61u, 0x000200f8u, 0x00004c61u, 0x000700f5u, + 0x00000009u, 0x000081ddu, 0x00008109u, 0x00004c4bu, 0x00005f46u, 0x00004c52u, 0x000700f5u, 0x00000009u, + 0x000080e5u, 0x0000800eu, 0x00004c4bu, 0x00005f13u, 0x00004c52u, 0x000300f7u, 0x00004c6bu, 0x00000000u, + 0x000400fau, 0x000049b0u, 0x00004c63u, 0x00004c6bu, 0x000200f8u, 0x00004c63u, 0x00050050u, 0x0000005fu, + 0x00004c66u, 0x00007e10u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004c67u, 0x00004c66u, 0x00050051u, + 0x00000006u, 0x00005f52u, 0x00004c67u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005f53u, 0x000047dbu, + 0x00005f52u, 0x00050080u, 0x00000006u, 0x00005f54u, 0x000047d8u, 0x00005f53u, 0x00050051u, 0x00000006u, + 0x00005f56u, 0x00004c67u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005f57u, 0x00005f56u, 0x00000217u, + 0x00050080u, 0x00000006u, 0x00005f59u, 0x00005f54u, 0x00005f57u, 0x000500c7u, 0x00000006u, 0x00005f5bu, + 0x00005f59u, 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00005f5eu, 0x00005f56u, 0x000500c7u, 0x00000006u, + 0x00005f5fu, 0x00005f5eu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005f60u, 0x00005f5fu, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x00005f64u, 0x00005f52u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005f65u, + 0x00005f64u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005f67u, 0x00005f5bu, 0x00005f65u, 0x000500c6u, + 0x00000006u, 0x00005f69u, 0x00005f67u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005f6cu, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00005f69u, 0x0004003du, 0x0000022eu, 0x00005f6du, 0x00005f6cu, + 0x00040071u, 0x00000006u, 0x00005f6eu, 0x00005f6du, 0x000500c2u, 0x00000006u, 0x00005f71u, 0x00005f6eu, + 0x00005f60u, 0x000500c7u, 0x00000006u, 0x00005f72u, 0x00005f71u, 0x00000e8au, 0x000500c4u, 0x00000006u, + 0x00005f74u, 0x00005f72u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005f76u, 0x00005f72u, 0x00005f74u, + 0x0004007cu, 0x00000008u, 0x00005f78u, 0x00005f76u, 0x00070050u, 0x00000009u, 0x00005f79u, 0x00005f78u, + 0x00005f78u, 0x00005f78u, 0x00005f78u, 0x000200f9u, 0x00004c6bu, 0x000200f8u, 0x00004c6bu, 0x000700f5u, + 0x00000009u, 0x000082d4u, 0x000081feu, 0x00004c61u, 0x00005f79u, 0x00004c63u, 0x000200f9u, 0x00004c8du, + 0x000200f8u, 0x00004c2au, 0x0004007cu, 0x000000a6u, 0x00004c2cu, 0x00007e2fu, 0x00050051u, 0x00000006u, + 0x00005e0cu, 0x00004c2cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005e0du, 0x000047dbu, 0x00005e0cu, + 0x00050080u, 0x00000006u, 0x00005e0eu, 0x000047d8u, 0x00005e0du, 0x00050051u, 0x00000006u, 0x00005e10u, + 0x00004c2cu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005e11u, 0x00005e10u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00005e13u, 0x00005e0eu, 0x00005e11u, 0x000500c7u, 0x00000006u, 0x00005e15u, 0x00005e13u, + 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00005e17u, 0x00005e15u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x00005e1au, 0x00005e0cu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005e1bu, 0x00005e1au, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x00005e1du, 0x00005e17u, 0x00005e1bu, 0x000500c6u, 0x00000006u, 0x00005e1fu, + 0x00005e1du, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005e22u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00005e1fu, 0x0004003du, 0x00000230u, 0x00005e23u, 0x00005e22u, 0x00040071u, 0x00000006u, + 0x00005e24u, 0x00005e23u, 0x000500c2u, 0x00000006u, 0x00005e26u, 0x00005e24u, 0x00000263u, 0x0004007cu, + 0x00000008u, 0x00005e27u, 0x00005e26u, 0x000500c7u, 0x00000006u, 0x00005e29u, 0x00005e24u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00005e2au, 0x00005e29u, 0x00050050u, 0x0000005fu, 0x00005e2bu, 0x00005e27u, + 0x00005e2au, 0x0009004fu, 0x00000009u, 0x00005e2cu, 0x00005e2bu, 0x00005e2bu, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004c40u, 0x00000000u, 0x000400fau, 0x00002257u, 0x00004c31u, + 0x00004c40u, 0x000200f8u, 0x00004c31u, 0x00050050u, 0x0000005fu, 0x00004c34u, 0x00007e10u, 0x000049a4u, + 0x0004007cu, 0x000000a6u, 0x00004c35u, 0x00004c34u, 0x00050051u, 0x00000006u, 0x00005e37u, 0x00004c35u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005e38u, 0x000047dbu, 0x00005e37u, 0x00050080u, 0x00000006u, + 0x00005e39u, 0x000047d8u, 0x00005e38u, 0x00050051u, 0x00000006u, 0x00005e3bu, 0x00004c35u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00005e3cu, 0x00005e3bu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005e3eu, + 0x00005e39u, 0x00005e3cu, 0x000500c7u, 0x00000006u, 0x00005e40u, 0x00005e3eu, 0x00000e67u, 0x000500c2u, + 0x00000006u, 0x00005e42u, 0x00005e40u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005e45u, 0x00005e37u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005e46u, 0x00005e45u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00005e48u, 0x00005e42u, 0x00005e46u, 0x000500c6u, 0x00000006u, 0x00005e4au, 0x00005e48u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00005e4du, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005e4au, + 0x0004003du, 0x00000230u, 0x00005e4eu, 0x00005e4du, 0x00040071u, 0x00000006u, 0x00005e4fu, 0x00005e4eu, + 0x000500c2u, 0x00000006u, 0x00005e51u, 0x00005e4fu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005e52u, + 0x00005e51u, 0x000500c7u, 0x00000006u, 0x00005e54u, 0x00005e4fu, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00005e55u, 0x00005e54u, 0x00050050u, 0x0000005fu, 0x00005e56u, 0x00005e52u, 0x00005e55u, 0x0009004fu, + 0x00000009u, 0x00005e57u, 0x00005e56u, 0x00005e56u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x00050050u, 0x0000005fu, 0x00004c3bu, 0x00007e08u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004c3cu, + 0x00004c3bu, 0x00050051u, 0x00000006u, 0x00005e62u, 0x00004c3cu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005e63u, 0x000047dbu, 0x00005e62u, 0x00050080u, 0x00000006u, 0x00005e64u, 0x000047d8u, 0x00005e63u, + 0x00050051u, 0x00000006u, 0x00005e66u, 0x00004c3cu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005e67u, + 0x00005e66u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005e69u, 0x00005e64u, 0x00005e67u, 0x000500c7u, + 0x00000006u, 0x00005e6bu, 0x00005e69u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00005e6du, 0x00005e6bu, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005e70u, 0x00005e62u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005e71u, 0x00005e70u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005e73u, 0x00005e6du, 0x00005e71u, + 0x000500c6u, 0x00000006u, 0x00005e75u, 0x00005e73u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005e78u, + 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005e75u, 0x0004003du, 0x00000230u, 0x00005e79u, + 0x00005e78u, 0x00040071u, 0x00000006u, 0x00005e7au, 0x00005e79u, 0x000500c2u, 0x00000006u, 0x00005e7cu, + 0x00005e7au, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005e7du, 0x00005e7cu, 0x000500c7u, 0x00000006u, + 0x00005e7fu, 0x00005e7au, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005e80u, 0x00005e7fu, 0x00050050u, + 0x0000005fu, 0x00005e81u, 0x00005e7du, 0x00005e80u, 0x0009004fu, 0x00000009u, 0x00005e82u, 0x00005e81u, + 0x00005e81u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004c40u, 0x000200f8u, + 0x00004c40u, 0x000700f5u, 0x00000009u, 0x000081dbu, 0x00008109u, 0x00004c2au, 0x00005e82u, 0x00004c31u, + 0x000700f5u, 0x00000009u, 0x000080e3u, 0x0000800eu, 0x00004c2au, 0x00005e57u, 0x00004c31u, 0x000300f7u, + 0x00004c4au, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004c42u, 0x00004c4au, 0x000200f8u, 0x00004c42u, + 0x00050050u, 0x0000005fu, 0x00004c45u, 0x00007e10u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004c46u, + 0x00004c45u, 0x00050051u, 0x00000006u, 0x00005e8du, 0x00004c46u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005e8eu, 0x000047dbu, 0x00005e8du, 0x00050080u, 0x00000006u, 0x00005e8fu, 0x000047d8u, 0x00005e8eu, + 0x00050051u, 0x00000006u, 0x00005e91u, 0x00004c46u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005e92u, + 0x00005e91u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005e94u, 0x00005e8fu, 0x00005e92u, 0x000500c7u, + 0x00000006u, 0x00005e96u, 0x00005e94u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00005e98u, 0x00005e96u, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005e9bu, 0x00005e8du, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005e9cu, 0x00005e9bu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005e9eu, 0x00005e98u, 0x00005e9cu, + 0x000500c6u, 0x00000006u, 0x00005ea0u, 0x00005e9eu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005ea3u, + 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005ea0u, 0x0004003du, 0x00000230u, 0x00005ea4u, + 0x00005ea3u, 0x00040071u, 0x00000006u, 0x00005ea5u, 0x00005ea4u, 0x000500c2u, 0x00000006u, 0x00005ea7u, + 0x00005ea5u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005ea8u, 0x00005ea7u, 0x000500c7u, 0x00000006u, + 0x00005eaau, 0x00005ea5u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005eabu, 0x00005eaau, 0x00050050u, + 0x0000005fu, 0x00005eacu, 0x00005ea8u, 0x00005eabu, 0x0009004fu, 0x00000009u, 0x00005eadu, 0x00005eacu, + 0x00005eacu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004c4au, 0x000200f8u, + 0x00004c4au, 0x000700f5u, 0x00000009u, 0x000082d2u, 0x000081feu, 0x00004c40u, 0x00005eadu, 0x00004c42u, + 0x000200f9u, 0x00004c8du, 0x000200f8u, 0x00004c8du, 0x000900f5u, 0x00000009u, 0x000082d1u, 0x000082d2u, + 0x00004c4au, 0x000082d4u, 0x00004c6bu, 0x000082d6u, 0x00004c8cu, 0x000900f5u, 0x00000009u, 0x000081d9u, + 0x000081dbu, 0x00004c4au, 0x000081ddu, 0x00004c6bu, 0x000081dfu, 0x00004c8cu, 0x000900f5u, 0x00000009u, + 0x000080e1u, 0x000080e3u, 0x00004c4au, 0x000080e5u, 0x00004c6bu, 0x000080e7u, 0x00004c8cu, 0x000900f5u, + 0x00000009u, 0x00007f74u, 0x00005e2cu, 0x00004c4au, 0x00005ee0u, 0x00004c6bu, 0x00005f9du, 0x00004c8cu, + 0x000200f9u, 0x00004c8eu, 0x000200f8u, 0x00004b9fu, 0x000300f7u, 0x00004c26u, 0x00000000u, 0x000b00fbu, + 0x000047e5u, 0x00004c26u, 0x00000000u, 0x00004ba2u, 0x00000001u, 0x00004bc3u, 0x00000002u, 0x00004be4u, + 0x00000003u, 0x00004c05u, 0x000200f8u, 0x00004c05u, 0x0004007cu, 0x000000a6u, 0x00004c07u, 0x00007e2fu, + 0x00050051u, 0x00000006u, 0x00005d60u, 0x00004c07u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d61u, + 0x000047dbu, 0x00005d60u, 0x00050080u, 0x00000006u, 0x00005d62u, 0x000047d8u, 0x00005d61u, 0x00050051u, + 0x00000006u, 0x00005d64u, 0x00004c07u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005d65u, 0x00005d64u, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005d67u, 0x00005d62u, 0x00005d65u, 0x000500c7u, 0x00000006u, + 0x00005d69u, 0x00005d67u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00005d6bu, 0x00005d69u, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00005d6eu, 0x00005d60u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005d6fu, + 0x00005d6eu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005d71u, 0x00005d6bu, 0x00005d6fu, 0x000500c6u, + 0x00000006u, 0x00005d73u, 0x00005d71u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005d76u, 0x00000f48u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00005d73u, 0x0004003du, 0x00000230u, 0x00005d77u, 0x00005d76u, + 0x00040071u, 0x00000006u, 0x00005d78u, 0x00005d77u, 0x000500c2u, 0x00000006u, 0x00005d7au, 0x00005d78u, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005d7bu, 0x00005d7au, 0x000500c7u, 0x00000006u, 0x00005d7du, + 0x00005d78u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005d7eu, 0x00005d7du, 0x00050050u, 0x0000005fu, + 0x00005d7fu, 0x00005d7bu, 0x00005d7eu, 0x0009004fu, 0x00000009u, 0x00005d80u, 0x00005d7fu, 0x00005d7fu, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004c1bu, 0x00000000u, 0x000400fau, + 0x00002257u, 0x00004c0cu, 0x00004c1bu, 0x000200f8u, 0x00004c0cu, 0x00050050u, 0x0000005fu, 0x00004c0fu, + 0x00007e10u, 0x000049a4u, 0x0004007cu, 0x000000a6u, 0x00004c10u, 0x00004c0fu, 0x00050051u, 0x00000006u, + 0x00005d8bu, 0x00004c10u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d8cu, 0x000047dbu, 0x00005d8bu, + 0x00050080u, 0x00000006u, 0x00005d8du, 0x000047d8u, 0x00005d8cu, 0x00050051u, 0x00000006u, 0x00005d8fu, + 0x00004c10u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005d90u, 0x00005d8fu, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00005d92u, 0x00005d8du, 0x00005d90u, 0x000500c7u, 0x00000006u, 0x00005d94u, 0x00005d92u, + 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00005d96u, 0x00005d94u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x00005d99u, 0x00005d8bu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005d9au, 0x00005d99u, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x00005d9cu, 0x00005d96u, 0x00005d9au, 0x000500c6u, 0x00000006u, 0x00005d9eu, + 0x00005d9cu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005da1u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00005d9eu, 0x0004003du, 0x00000230u, 0x00005da2u, 0x00005da1u, 0x00040071u, 0x00000006u, + 0x00005da3u, 0x00005da2u, 0x000500c2u, 0x00000006u, 0x00005da5u, 0x00005da3u, 0x00000263u, 0x0004007cu, + 0x00000008u, 0x00005da6u, 0x00005da5u, 0x000500c7u, 0x00000006u, 0x00005da8u, 0x00005da3u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00005da9u, 0x00005da8u, 0x00050050u, 0x0000005fu, 0x00005daau, 0x00005da6u, + 0x00005da9u, 0x0009004fu, 0x00000009u, 0x00005dabu, 0x00005daau, 0x00005daau, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x00004c16u, 0x00007e08u, 0x000049a6u, 0x0004007cu, + 0x000000a6u, 0x00004c17u, 0x00004c16u, 0x00050051u, 0x00000006u, 0x00005db6u, 0x00004c17u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005db7u, 0x000047dbu, 0x00005db6u, 0x00050080u, 0x00000006u, 0x00005db8u, + 0x000047d8u, 0x00005db7u, 0x00050051u, 0x00000006u, 0x00005dbau, 0x00004c17u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005dbbu, 0x00005dbau, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005dbdu, 0x00005db8u, + 0x00005dbbu, 0x000500c7u, 0x00000006u, 0x00005dbfu, 0x00005dbdu, 0x00000e67u, 0x000500c2u, 0x00000006u, + 0x00005dc1u, 0x00005dbfu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005dc4u, 0x00005db6u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00005dc5u, 0x00005dc4u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005dc7u, + 0x00005dc1u, 0x00005dc5u, 0x000500c6u, 0x00000006u, 0x00005dc9u, 0x00005dc7u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00005dccu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005dc9u, 0x0004003du, + 0x00000230u, 0x00005dcdu, 0x00005dccu, 0x00040071u, 0x00000006u, 0x00005dceu, 0x00005dcdu, 0x000500c2u, + 0x00000006u, 0x00005dd0u, 0x00005dceu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005dd1u, 0x00005dd0u, + 0x000500c7u, 0x00000006u, 0x00005dd3u, 0x00005dceu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005dd4u, + 0x00005dd3u, 0x00050050u, 0x0000005fu, 0x00005dd5u, 0x00005dd1u, 0x00005dd4u, 0x0009004fu, 0x00000009u, + 0x00005dd6u, 0x00005dd5u, 0x00005dd5u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00004c1bu, 0x000200f8u, 0x00004c1bu, 0x000700f5u, 0x00000009u, 0x000081d8u, 0x00008109u, 0x00004c05u, + 0x00005dd6u, 0x00004c0cu, 0x000700f5u, 0x00000009u, 0x000080e0u, 0x0000800eu, 0x00004c05u, 0x00005dabu, + 0x00004c0cu, 0x000300f7u, 0x00004c25u, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004c1du, 0x00004c25u, + 0x000200f8u, 0x00004c1du, 0x00050050u, 0x0000005fu, 0x00004c20u, 0x00007e10u, 0x000049a6u, 0x0004007cu, + 0x000000a6u, 0x00004c21u, 0x00004c20u, 0x00050051u, 0x00000006u, 0x00005de1u, 0x00004c21u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005de2u, 0x000047dbu, 0x00005de1u, 0x00050080u, 0x00000006u, 0x00005de3u, + 0x000047d8u, 0x00005de2u, 0x00050051u, 0x00000006u, 0x00005de5u, 0x00004c21u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005de6u, 0x00005de5u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005de8u, 0x00005de3u, + 0x00005de6u, 0x000500c7u, 0x00000006u, 0x00005deau, 0x00005de8u, 0x00000e67u, 0x000500c2u, 0x00000006u, + 0x00005decu, 0x00005deau, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005defu, 0x00005de1u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00005df0u, 0x00005defu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005df2u, + 0x00005decu, 0x00005df0u, 0x000500c6u, 0x00000006u, 0x00005df4u, 0x00005df2u, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00005df7u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005df4u, 0x0004003du, + 0x00000230u, 0x00005df8u, 0x00005df7u, 0x00040071u, 0x00000006u, 0x00005df9u, 0x00005df8u, 0x000500c2u, + 0x00000006u, 0x00005dfbu, 0x00005df9u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005dfcu, 0x00005dfbu, + 0x000500c7u, 0x00000006u, 0x00005dfeu, 0x00005df9u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005dffu, + 0x00005dfeu, 0x00050050u, 0x0000005fu, 0x00005e00u, 0x00005dfcu, 0x00005dffu, 0x0009004fu, 0x00000009u, + 0x00005e01u, 0x00005e00u, 0x00005e00u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00004c25u, 0x000200f8u, 0x00004c25u, 0x000700f5u, 0x00000009u, 0x000082cfu, 0x000081feu, 0x00004c1bu, + 0x00005e01u, 0x00004c1du, 0x000200f9u, 0x00004c26u, 0x000200f8u, 0x00004be4u, 0x0004007cu, 0x000000a6u, + 0x00004be6u, 0x00007e2fu, 0x00050051u, 0x00000006u, 0x00005c85u, 0x00004be6u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005c86u, 0x000047dbu, 0x00005c85u, 0x00050080u, 0x00000006u, 0x00005c87u, 0x000047d8u, + 0x00005c86u, 0x00050051u, 0x00000006u, 0x00005c89u, 0x00004be6u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00005c8au, 0x00005c89u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005c8cu, 0x00005c87u, 0x00005c8au, + 0x000500c7u, 0x00000006u, 0x00005c8eu, 0x00005c8cu, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00005c90u, + 0x00005c8eu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005c93u, 0x00005c85u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00005c94u, 0x00005c93u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005c96u, 0x00005c90u, + 0x00005c94u, 0x000500c6u, 0x00000006u, 0x00005c98u, 0x00005c96u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x00005c9bu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005c98u, 0x0004003du, 0x00000230u, + 0x00005c9cu, 0x00005c9bu, 0x00040071u, 0x00000006u, 0x00005c9du, 0x00005c9cu, 0x000500c2u, 0x00000006u, + 0x00005ca5u, 0x00005c9du, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005ca7u, 0x00005c9du, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00005ca9u, 0x00005ca5u, 0x0004007cu, 0x00000008u, 0x00005cafu, 0x00005ca7u, + 0x00070050u, 0x00000009u, 0x00005cb0u, 0x00005ca9u, 0x00005ca9u, 0x00005ca9u, 0x00005cafu, 0x000300f7u, + 0x00004bfau, 0x00000000u, 0x000400fau, 0x00002257u, 0x00004bebu, 0x00004bfau, 0x000200f8u, 0x00004bebu, + 0x00050050u, 0x0000005fu, 0x00004beeu, 0x00007e10u, 0x000049a4u, 0x0004007cu, 0x000000a6u, 0x00004befu, + 0x00004beeu, 0x00050051u, 0x00000006u, 0x00005cbcu, 0x00004befu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005cbdu, 0x000047dbu, 0x00005cbcu, 0x00050080u, 0x00000006u, 0x00005cbeu, 0x000047d8u, 0x00005cbdu, + 0x00050051u, 0x00000006u, 0x00005cc0u, 0x00004befu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005cc1u, + 0x00005cc0u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005cc3u, 0x00005cbeu, 0x00005cc1u, 0x000500c7u, + 0x00000006u, 0x00005cc5u, 0x00005cc3u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00005cc7u, 0x00005cc5u, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005ccau, 0x00005cbcu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005ccbu, 0x00005ccau, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005ccdu, 0x00005cc7u, 0x00005ccbu, + 0x000500c6u, 0x00000006u, 0x00005ccfu, 0x00005ccdu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005cd2u, + 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005ccfu, 0x0004003du, 0x00000230u, 0x00005cd3u, + 0x00005cd2u, 0x00040071u, 0x00000006u, 0x00005cd4u, 0x00005cd3u, 0x000500c2u, 0x00000006u, 0x00005cdcu, + 0x00005cd4u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005cdeu, 0x00005cd4u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00005ce0u, 0x00005cdcu, 0x0004007cu, 0x00000008u, 0x00005ce6u, 0x00005cdeu, 0x00070050u, + 0x00000009u, 0x00005ce7u, 0x00005ce0u, 0x00005ce0u, 0x00005ce0u, 0x00005ce6u, 0x00050050u, 0x0000005fu, + 0x00004bf5u, 0x00007e08u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004bf6u, 0x00004bf5u, 0x00050051u, + 0x00000006u, 0x00005cf3u, 0x00004bf6u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005cf4u, 0x000047dbu, + 0x00005cf3u, 0x00050080u, 0x00000006u, 0x00005cf5u, 0x000047d8u, 0x00005cf4u, 0x00050051u, 0x00000006u, + 0x00005cf7u, 0x00004bf6u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005cf8u, 0x00005cf7u, 0x000003c9u, + 0x00050080u, 0x00000006u, 0x00005cfau, 0x00005cf5u, 0x00005cf8u, 0x000500c7u, 0x00000006u, 0x00005cfcu, + 0x00005cfau, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00005cfeu, 0x00005cfcu, 0x00000217u, 0x000500c7u, + 0x00000006u, 0x00005d01u, 0x00005cf3u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005d02u, 0x00005d01u, + 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005d04u, 0x00005cfeu, 0x00005d02u, 0x000500c6u, 0x00000006u, + 0x00005d06u, 0x00005d04u, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005d09u, 0x00000f48u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00005d06u, 0x0004003du, 0x00000230u, 0x00005d0au, 0x00005d09u, 0x00040071u, + 0x00000006u, 0x00005d0bu, 0x00005d0au, 0x000500c2u, 0x00000006u, 0x00005d13u, 0x00005d0bu, 0x00000263u, + 0x000500c7u, 0x00000006u, 0x00005d15u, 0x00005d0bu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005d17u, + 0x00005d13u, 0x0004007cu, 0x00000008u, 0x00005d1du, 0x00005d15u, 0x00070050u, 0x00000009u, 0x00005d1eu, + 0x00005d17u, 0x00005d17u, 0x00005d17u, 0x00005d1du, 0x000200f9u, 0x00004bfau, 0x000200f8u, 0x00004bfau, + 0x000700f5u, 0x00000009u, 0x000081d6u, 0x00008109u, 0x00004be4u, 0x00005d1eu, 0x00004bebu, 0x000700f5u, + 0x00000009u, 0x000080deu, 0x0000800eu, 0x00004be4u, 0x00005ce7u, 0x00004bebu, 0x000300f7u, 0x00004c04u, + 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004bfcu, 0x00004c04u, 0x000200f8u, 0x00004bfcu, 0x00050050u, + 0x0000005fu, 0x00004bffu, 0x00007e10u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004c00u, 0x00004bffu, + 0x00050051u, 0x00000006u, 0x00005d2au, 0x00004c00u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d2bu, + 0x000047dbu, 0x00005d2au, 0x00050080u, 0x00000006u, 0x00005d2cu, 0x000047d8u, 0x00005d2bu, 0x00050051u, + 0x00000006u, 0x00005d2eu, 0x00004c00u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005d2fu, 0x00005d2eu, + 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005d31u, 0x00005d2cu, 0x00005d2fu, 0x000500c7u, 0x00000006u, + 0x00005d33u, 0x00005d31u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00005d35u, 0x00005d33u, 0x00000217u, + 0x000500c7u, 0x00000006u, 0x00005d38u, 0x00005d2au, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005d39u, + 0x00005d38u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005d3bu, 0x00005d35u, 0x00005d39u, 0x000500c6u, + 0x00000006u, 0x00005d3du, 0x00005d3bu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005d40u, 0x00000f48u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00005d3du, 0x0004003du, 0x00000230u, 0x00005d41u, 0x00005d40u, + 0x00040071u, 0x00000006u, 0x00005d42u, 0x00005d41u, 0x000500c2u, 0x00000006u, 0x00005d4au, 0x00005d42u, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005d4cu, 0x00005d42u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00005d4eu, 0x00005d4au, 0x0004007cu, 0x00000008u, 0x00005d54u, 0x00005d4cu, 0x00070050u, 0x00000009u, + 0x00005d55u, 0x00005d4eu, 0x00005d4eu, 0x00005d4eu, 0x00005d54u, 0x000200f9u, 0x00004c04u, 0x000200f8u, + 0x00004c04u, 0x000700f5u, 0x00000009u, 0x000082cdu, 0x000081feu, 0x00004bfau, 0x00005d55u, 0x00004bfcu, + 0x000200f9u, 0x00004c26u, 0x000200f8u, 0x00004bc3u, 0x0004007cu, 0x000000a6u, 0x00004bc5u, 0x00007e2fu, + 0x00050051u, 0x00000006u, 0x00005ba6u, 0x00004bc5u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005ba7u, + 0x000047dbu, 0x00005ba6u, 0x00050080u, 0x00000006u, 0x00005ba8u, 0x000047d8u, 0x00005ba7u, 0x00050051u, + 0x00000006u, 0x00005baau, 0x00004bc5u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005bacu, 0x00005ba8u, + 0x00005baau, 0x000500c7u, 0x00000006u, 0x00005baeu, 0x00005bacu, 0x00000e67u, 0x000500c7u, 0x00000006u, + 0x00005bb2u, 0x00005ba6u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005bb3u, 0x00005bb2u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00005bb5u, 0x00005baeu, 0x00005bb3u, 0x000500c6u, 0x00000006u, 0x00005bb7u, + 0x00005bb5u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005bbau, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00005bb7u, 0x0004003du, 0x0000022eu, 0x00005bbbu, 0x00005bbau, 0x00040071u, 0x00000006u, + 0x00005bbcu, 0x00005bbbu, 0x000500c2u, 0x00000006u, 0x00005bbeu, 0x00005bbcu, 0x00000220u, 0x000500c7u, + 0x00000006u, 0x00005bc0u, 0x00005bbcu, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00005bc2u, 0x00005bc0u, + 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005bc4u, 0x00005bc0u, 0x00005bc2u, 0x000500c4u, 0x00000006u, + 0x00005bc6u, 0x00005bbeu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005bc8u, 0x00005bbeu, 0x00005bc6u, + 0x0004007cu, 0x00000008u, 0x00005bcau, 0x00005bc8u, 0x0004007cu, 0x00000008u, 0x00005bd0u, 0x00005bc4u, + 0x00070050u, 0x00000009u, 0x00005bd1u, 0x00005bcau, 0x00005bcau, 0x00005bcau, 0x00005bd0u, 0x000300f7u, + 0x00004bd9u, 0x00000000u, 0x000400fau, 0x00002257u, 0x00004bcau, 0x00004bd9u, 0x000200f8u, 0x00004bcau, + 0x00050050u, 0x0000005fu, 0x00004bcdu, 0x00007e10u, 0x000049a4u, 0x0004007cu, 0x000000a6u, 0x00004bceu, + 0x00004bcdu, 0x00050051u, 0x00000006u, 0x00005bdeu, 0x00004bceu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005bdfu, 0x000047dbu, 0x00005bdeu, 0x00050080u, 0x00000006u, 0x00005be0u, 0x000047d8u, 0x00005bdfu, + 0x00050051u, 0x00000006u, 0x00005be2u, 0x00004bceu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005be4u, + 0x00005be0u, 0x00005be2u, 0x000500c7u, 0x00000006u, 0x00005be6u, 0x00005be4u, 0x00000e67u, 0x000500c7u, + 0x00000006u, 0x00005beau, 0x00005bdeu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005bebu, 0x00005beau, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005bedu, 0x00005be6u, 0x00005bebu, 0x000500c6u, 0x00000006u, + 0x00005befu, 0x00005bedu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005bf2u, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00005befu, 0x0004003du, 0x0000022eu, 0x00005bf3u, 0x00005bf2u, 0x00040071u, + 0x00000006u, 0x00005bf4u, 0x00005bf3u, 0x000500c2u, 0x00000006u, 0x00005bf6u, 0x00005bf4u, 0x00000220u, + 0x000500c7u, 0x00000006u, 0x00005bf8u, 0x00005bf4u, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00005bfau, + 0x00005bf8u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005bfcu, 0x00005bf8u, 0x00005bfau, 0x000500c4u, + 0x00000006u, 0x00005bfeu, 0x00005bf6u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005c00u, 0x00005bf6u, + 0x00005bfeu, 0x0004007cu, 0x00000008u, 0x00005c02u, 0x00005c00u, 0x0004007cu, 0x00000008u, 0x00005c08u, + 0x00005bfcu, 0x00070050u, 0x00000009u, 0x00005c09u, 0x00005c02u, 0x00005c02u, 0x00005c02u, 0x00005c08u, + 0x00050050u, 0x0000005fu, 0x00004bd4u, 0x00007e08u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004bd5u, + 0x00004bd4u, 0x00050051u, 0x00000006u, 0x00005c16u, 0x00004bd5u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005c17u, 0x000047dbu, 0x00005c16u, 0x00050080u, 0x00000006u, 0x00005c18u, 0x000047d8u, 0x00005c17u, + 0x00050051u, 0x00000006u, 0x00005c1au, 0x00004bd5u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005c1cu, + 0x00005c18u, 0x00005c1au, 0x000500c7u, 0x00000006u, 0x00005c1eu, 0x00005c1cu, 0x00000e67u, 0x000500c7u, + 0x00000006u, 0x00005c22u, 0x00005c16u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005c23u, 0x00005c22u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005c25u, 0x00005c1eu, 0x00005c23u, 0x000500c6u, 0x00000006u, + 0x00005c27u, 0x00005c25u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005c2au, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00005c27u, 0x0004003du, 0x0000022eu, 0x00005c2bu, 0x00005c2au, 0x00040071u, + 0x00000006u, 0x00005c2cu, 0x00005c2bu, 0x000500c2u, 0x00000006u, 0x00005c2eu, 0x00005c2cu, 0x00000220u, + 0x000500c7u, 0x00000006u, 0x00005c30u, 0x00005c2cu, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00005c32u, + 0x00005c30u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005c34u, 0x00005c30u, 0x00005c32u, 0x000500c4u, + 0x00000006u, 0x00005c36u, 0x00005c2eu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005c38u, 0x00005c2eu, + 0x00005c36u, 0x0004007cu, 0x00000008u, 0x00005c3au, 0x00005c38u, 0x0004007cu, 0x00000008u, 0x00005c40u, + 0x00005c34u, 0x00070050u, 0x00000009u, 0x00005c41u, 0x00005c3au, 0x00005c3au, 0x00005c3au, 0x00005c40u, + 0x000200f9u, 0x00004bd9u, 0x000200f8u, 0x00004bd9u, 0x000700f5u, 0x00000009u, 0x000081d4u, 0x00008109u, + 0x00004bc3u, 0x00005c41u, 0x00004bcau, 0x000700f5u, 0x00000009u, 0x000080dcu, 0x0000800eu, 0x00004bc3u, + 0x00005c09u, 0x00004bcau, 0x000300f7u, 0x00004be3u, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004bdbu, + 0x00004be3u, 0x000200f8u, 0x00004bdbu, 0x00050050u, 0x0000005fu, 0x00004bdeu, 0x00007e10u, 0x000049a6u, + 0x0004007cu, 0x000000a6u, 0x00004bdfu, 0x00004bdeu, 0x00050051u, 0x00000006u, 0x00005c4eu, 0x00004bdfu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005c4fu, 0x000047dbu, 0x00005c4eu, 0x00050080u, 0x00000006u, + 0x00005c50u, 0x000047d8u, 0x00005c4fu, 0x00050051u, 0x00000006u, 0x00005c52u, 0x00004bdfu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005c54u, 0x00005c50u, 0x00005c52u, 0x000500c7u, 0x00000006u, 0x00005c56u, + 0x00005c54u, 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00005c5au, 0x00005c4eu, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00005c5bu, 0x00005c5au, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005c5du, 0x00005c56u, + 0x00005c5bu, 0x000500c6u, 0x00000006u, 0x00005c5fu, 0x00005c5du, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00005c62u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005c5fu, 0x0004003du, 0x0000022eu, + 0x00005c63u, 0x00005c62u, 0x00040071u, 0x00000006u, 0x00005c64u, 0x00005c63u, 0x000500c2u, 0x00000006u, + 0x00005c66u, 0x00005c64u, 0x00000220u, 0x000500c7u, 0x00000006u, 0x00005c68u, 0x00005c64u, 0x00000e8au, + 0x000500c4u, 0x00000006u, 0x00005c6au, 0x00005c68u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005c6cu, + 0x00005c68u, 0x00005c6au, 0x000500c4u, 0x00000006u, 0x00005c6eu, 0x00005c66u, 0x00000220u, 0x000500c5u, + 0x00000006u, 0x00005c70u, 0x00005c66u, 0x00005c6eu, 0x0004007cu, 0x00000008u, 0x00005c72u, 0x00005c70u, + 0x0004007cu, 0x00000008u, 0x00005c78u, 0x00005c6cu, 0x00070050u, 0x00000009u, 0x00005c79u, 0x00005c72u, + 0x00005c72u, 0x00005c72u, 0x00005c78u, 0x000200f9u, 0x00004be3u, 0x000200f8u, 0x00004be3u, 0x000700f5u, + 0x00000009u, 0x000082cbu, 0x000081feu, 0x00004bd9u, 0x00005c79u, 0x00004bdbu, 0x000200f9u, 0x00004c26u, + 0x000200f8u, 0x00004ba2u, 0x0004007cu, 0x000000a6u, 0x00004ba4u, 0x00007e2fu, 0x00050051u, 0x00000006u, + 0x00005a9eu, 0x00004ba4u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005a9fu, 0x000047dbu, 0x00005a9eu, + 0x00050080u, 0x00000006u, 0x00005aa0u, 0x000047d8u, 0x00005a9fu, 0x00050051u, 0x00000006u, 0x00005aa2u, + 0x00004ba4u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005aa3u, 0x00005aa2u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x00005aa5u, 0x00005aa0u, 0x00005aa3u, 0x000500c7u, 0x00000006u, 0x00005aa7u, 0x00005aa5u, + 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00005aaau, 0x00005aa2u, 0x000500c7u, 0x00000006u, 0x00005aabu, + 0x00005aaau, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005aacu, 0x00005aabu, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00005ab0u, 0x00005a9eu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005ab1u, 0x00005ab0u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005ab3u, 0x00005aa7u, 0x00005ab1u, 0x000500c6u, 0x00000006u, + 0x00005ab5u, 0x00005ab3u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005ab8u, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00005ab5u, 0x0004003du, 0x0000022eu, 0x00005ab9u, 0x00005ab8u, 0x00040071u, + 0x00000006u, 0x00005abau, 0x00005ab9u, 0x000500c2u, 0x00000006u, 0x00005abdu, 0x00005abau, 0x00005aacu, + 0x000500c7u, 0x00000006u, 0x00005abeu, 0x00005abdu, 0x00000e8au, 0x000500c7u, 0x00000006u, 0x00005ac0u, + 0x00005abeu, 0x00000ec1u, 0x000500c4u, 0x00000006u, 0x00005ac2u, 0x00005ac0u, 0x00000220u, 0x000500c4u, + 0x00000006u, 0x00005ac4u, 0x00005ac0u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00005ac5u, 0x00005ac2u, + 0x00005ac4u, 0x000500c2u, 0x00000006u, 0x00005ac7u, 0x00005ac0u, 0x0000021au, 0x000500c5u, 0x00000006u, + 0x00005ac8u, 0x00005ac5u, 0x00005ac7u, 0x0004007cu, 0x00000008u, 0x00005acau, 0x00005ac8u, 0x000500c7u, + 0x00000006u, 0x00005ad0u, 0x00005abeu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005ad1u, 0x00005ad0u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005ad2u, 0x00005ad1u, 0x00070050u, 0x00000009u, 0x00005ad3u, + 0x00005acau, 0x00005acau, 0x00005acau, 0x00005ad2u, 0x000300f7u, 0x00004bb8u, 0x00000000u, 0x000400fau, + 0x00002257u, 0x00004ba9u, 0x00004bb8u, 0x000200f8u, 0x00004ba9u, 0x00050050u, 0x0000005fu, 0x00004bacu, + 0x00007e10u, 0x000049a4u, 0x0004007cu, 0x000000a6u, 0x00004badu, 0x00004bacu, 0x00050051u, 0x00000006u, + 0x00005ae0u, 0x00004badu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005ae1u, 0x000047dbu, 0x00005ae0u, + 0x00050080u, 0x00000006u, 0x00005ae2u, 0x000047d8u, 0x00005ae1u, 0x00050051u, 0x00000006u, 0x00005ae4u, + 0x00004badu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005ae5u, 0x00005ae4u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x00005ae7u, 0x00005ae2u, 0x00005ae5u, 0x000500c7u, 0x00000006u, 0x00005ae9u, 0x00005ae7u, + 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00005aecu, 0x00005ae4u, 0x000500c7u, 0x00000006u, 0x00005aedu, + 0x00005aecu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005aeeu, 0x00005aedu, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00005af2u, 0x00005ae0u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005af3u, 0x00005af2u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005af5u, 0x00005ae9u, 0x00005af3u, 0x000500c6u, 0x00000006u, + 0x00005af7u, 0x00005af5u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005afau, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00005af7u, 0x0004003du, 0x0000022eu, 0x00005afbu, 0x00005afau, 0x00040071u, + 0x00000006u, 0x00005afcu, 0x00005afbu, 0x000500c2u, 0x00000006u, 0x00005affu, 0x00005afcu, 0x00005aeeu, + 0x000500c7u, 0x00000006u, 0x00005b00u, 0x00005affu, 0x00000e8au, 0x000500c7u, 0x00000006u, 0x00005b02u, + 0x00005b00u, 0x00000ec1u, 0x000500c4u, 0x00000006u, 0x00005b04u, 0x00005b02u, 0x00000220u, 0x000500c4u, + 0x00000006u, 0x00005b06u, 0x00005b02u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00005b07u, 0x00005b04u, + 0x00005b06u, 0x000500c2u, 0x00000006u, 0x00005b09u, 0x00005b02u, 0x0000021au, 0x000500c5u, 0x00000006u, + 0x00005b0au, 0x00005b07u, 0x00005b09u, 0x0004007cu, 0x00000008u, 0x00005b0cu, 0x00005b0au, 0x000500c7u, + 0x00000006u, 0x00005b12u, 0x00005b00u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005b13u, 0x00005b12u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005b14u, 0x00005b13u, 0x00070050u, 0x00000009u, 0x00005b15u, + 0x00005b0cu, 0x00005b0cu, 0x00005b0cu, 0x00005b14u, 0x00050050u, 0x0000005fu, 0x00004bb3u, 0x00007e08u, + 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004bb4u, 0x00004bb3u, 0x00050051u, 0x00000006u, 0x00005b22u, + 0x00004bb4u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b23u, 0x000047dbu, 0x00005b22u, 0x00050080u, + 0x00000006u, 0x00005b24u, 0x000047d8u, 0x00005b23u, 0x00050051u, 0x00000006u, 0x00005b26u, 0x00004bb4u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005b27u, 0x00005b26u, 0x00000217u, 0x00050080u, 0x00000006u, + 0x00005b29u, 0x00005b24u, 0x00005b27u, 0x000500c7u, 0x00000006u, 0x00005b2bu, 0x00005b29u, 0x00000e67u, + 0x000400c8u, 0x00000006u, 0x00005b2eu, 0x00005b26u, 0x000500c7u, 0x00000006u, 0x00005b2fu, 0x00005b2eu, + 0x0000048au, 0x00050084u, 0x00000006u, 0x00005b30u, 0x00005b2fu, 0x00000706u, 0x000500c7u, 0x00000006u, + 0x00005b34u, 0x00005b22u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005b35u, 0x00005b34u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x00005b37u, 0x00005b2bu, 0x00005b35u, 0x000500c6u, 0x00000006u, 0x00005b39u, + 0x00005b37u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005b3cu, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00005b39u, 0x0004003du, 0x0000022eu, 0x00005b3du, 0x00005b3cu, 0x00040071u, 0x00000006u, + 0x00005b3eu, 0x00005b3du, 0x000500c2u, 0x00000006u, 0x00005b41u, 0x00005b3eu, 0x00005b30u, 0x000500c7u, + 0x00000006u, 0x00005b42u, 0x00005b41u, 0x00000e8au, 0x000500c7u, 0x00000006u, 0x00005b44u, 0x00005b42u, + 0x00000ec1u, 0x000500c4u, 0x00000006u, 0x00005b46u, 0x00005b44u, 0x00000220u, 0x000500c4u, 0x00000006u, + 0x00005b48u, 0x00005b44u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00005b49u, 0x00005b46u, 0x00005b48u, + 0x000500c2u, 0x00000006u, 0x00005b4bu, 0x00005b44u, 0x0000021au, 0x000500c5u, 0x00000006u, 0x00005b4cu, + 0x00005b49u, 0x00005b4bu, 0x0004007cu, 0x00000008u, 0x00005b4eu, 0x00005b4cu, 0x000500c7u, 0x00000006u, + 0x00005b54u, 0x00005b42u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005b55u, 0x00005b54u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00005b56u, 0x00005b55u, 0x00070050u, 0x00000009u, 0x00005b57u, 0x00005b4eu, + 0x00005b4eu, 0x00005b4eu, 0x00005b56u, 0x000200f9u, 0x00004bb8u, 0x000200f8u, 0x00004bb8u, 0x000700f5u, + 0x00000009u, 0x000081d2u, 0x00008109u, 0x00004ba2u, 0x00005b57u, 0x00004ba9u, 0x000700f5u, 0x00000009u, + 0x000080dau, 0x0000800eu, 0x00004ba2u, 0x00005b15u, 0x00004ba9u, 0x000300f7u, 0x00004bc2u, 0x00000000u, + 0x000400fau, 0x000049b0u, 0x00004bbau, 0x00004bc2u, 0x000200f8u, 0x00004bbau, 0x00050050u, 0x0000005fu, + 0x00004bbdu, 0x00007e10u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004bbeu, 0x00004bbdu, 0x00050051u, + 0x00000006u, 0x00005b64u, 0x00004bbeu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b65u, 0x000047dbu, + 0x00005b64u, 0x00050080u, 0x00000006u, 0x00005b66u, 0x000047d8u, 0x00005b65u, 0x00050051u, 0x00000006u, + 0x00005b68u, 0x00004bbeu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005b69u, 0x00005b68u, 0x00000217u, + 0x00050080u, 0x00000006u, 0x00005b6bu, 0x00005b66u, 0x00005b69u, 0x000500c7u, 0x00000006u, 0x00005b6du, + 0x00005b6bu, 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00005b70u, 0x00005b68u, 0x000500c7u, 0x00000006u, + 0x00005b71u, 0x00005b70u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005b72u, 0x00005b71u, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x00005b76u, 0x00005b64u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005b77u, + 0x00005b76u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005b79u, 0x00005b6du, 0x00005b77u, 0x000500c6u, + 0x00000006u, 0x00005b7bu, 0x00005b79u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005b7eu, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00005b7bu, 0x0004003du, 0x0000022eu, 0x00005b7fu, 0x00005b7eu, + 0x00040071u, 0x00000006u, 0x00005b80u, 0x00005b7fu, 0x000500c2u, 0x00000006u, 0x00005b83u, 0x00005b80u, + 0x00005b72u, 0x000500c7u, 0x00000006u, 0x00005b84u, 0x00005b83u, 0x00000e8au, 0x000500c7u, 0x00000006u, + 0x00005b86u, 0x00005b84u, 0x00000ec1u, 0x000500c4u, 0x00000006u, 0x00005b88u, 0x00005b86u, 0x00000220u, + 0x000500c4u, 0x00000006u, 0x00005b8au, 0x00005b86u, 0x00000217u, 0x000500c5u, 0x00000006u, 0x00005b8bu, + 0x00005b88u, 0x00005b8au, 0x000500c2u, 0x00000006u, 0x00005b8du, 0x00005b86u, 0x0000021au, 0x000500c5u, + 0x00000006u, 0x00005b8eu, 0x00005b8bu, 0x00005b8du, 0x0004007cu, 0x00000008u, 0x00005b90u, 0x00005b8eu, + 0x000500c7u, 0x00000006u, 0x00005b96u, 0x00005b84u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005b97u, + 0x00005b96u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005b98u, 0x00005b97u, 0x00070050u, 0x00000009u, + 0x00005b99u, 0x00005b90u, 0x00005b90u, 0x00005b90u, 0x00005b98u, 0x000200f9u, 0x00004bc2u, 0x000200f8u, + 0x00004bc2u, 0x000700f5u, 0x00000009u, 0x000082c9u, 0x000081feu, 0x00004bb8u, 0x00005b99u, 0x00004bbau, + 0x000200f9u, 0x00004c26u, 0x000200f8u, 0x00004c26u, 0x000d00f5u, 0x00000009u, 0x000082c8u, 0x000081feu, + 0x00004b9fu, 0x000082c9u, 0x00004bc2u, 0x000082cbu, 0x00004be3u, 0x000082cdu, 0x00004c04u, 0x000082cfu, + 0x00004c25u, 0x000d00f5u, 0x00000009u, 0x000081d0u, 0x00008109u, 0x00004b9fu, 0x000081d2u, 0x00004bc2u, + 0x000081d4u, 0x00004be3u, 0x000081d6u, 0x00004c04u, 0x000081d8u, 0x00004c25u, 0x000d00f5u, 0x00000009u, + 0x000080d8u, 0x0000800eu, 0x00004b9fu, 0x000080dau, 0x00004bc2u, 0x000080dcu, 0x00004be3u, 0x000080deu, + 0x00004c04u, 0x000080e0u, 0x00004c25u, 0x000d00f5u, 0x00000009u, 0x00007f6bu, 0x00007ea2u, 0x00004b9fu, + 0x00005ad3u, 0x00004bc2u, 0x00005bd1u, 0x00004be3u, 0x00005cb0u, 0x00004c04u, 0x00005d80u, 0x00004c25u, + 0x000200f9u, 0x00004c8eu, 0x000200f8u, 0x00004b2cu, 0x000300f7u, 0x00004b9eu, 0x00000000u, 0x000700fbu, + 0x000047e5u, 0x00004b2fu, 0x00000000u, 0x00004b50u, 0x00000001u, 0x00004b7du, 0x000200f8u, 0x00004b7du, + 0x0004007cu, 0x000000a6u, 0x00004b7fu, 0x00007e2fu, 0x00050051u, 0x00000006u, 0x00005a0cu, 0x00004b7fu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005a0du, 0x000047dbu, 0x00005a0cu, 0x00050080u, 0x00000006u, + 0x00005a0eu, 0x000047d8u, 0x00005a0du, 0x00050051u, 0x00000006u, 0x00005a10u, 0x00004b7fu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005a12u, 0x00005a0eu, 0x00005a10u, 0x000500c7u, 0x00000006u, 0x00005a14u, + 0x00005a12u, 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00005a18u, 0x00005a0cu, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00005a19u, 0x00005a18u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005a1bu, 0x00005a14u, + 0x00005a19u, 0x000500c6u, 0x00000006u, 0x00005a1du, 0x00005a1bu, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00005a20u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005a1du, 0x0004003du, 0x0000022eu, + 0x00005a21u, 0x00005a20u, 0x00040071u, 0x00000006u, 0x00005a22u, 0x00005a21u, 0x0004007cu, 0x00000008u, + 0x00005a24u, 0x00005a22u, 0x00070050u, 0x00000009u, 0x00005a25u, 0x00005a24u, 0x00005a24u, 0x00005a24u, + 0x00005a24u, 0x000300f7u, 0x00004b93u, 0x00000000u, 0x000400fau, 0x00002257u, 0x00004b84u, 0x00004b93u, + 0x000200f8u, 0x00004b84u, 0x00050050u, 0x0000005fu, 0x00004b87u, 0x00007e10u, 0x000049a4u, 0x0004007cu, + 0x000000a6u, 0x00004b88u, 0x00004b87u, 0x00050051u, 0x00000006u, 0x00005a30u, 0x00004b88u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005a31u, 0x000047dbu, 0x00005a30u, 0x00050080u, 0x00000006u, 0x00005a32u, + 0x000047d8u, 0x00005a31u, 0x00050051u, 0x00000006u, 0x00005a34u, 0x00004b88u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00005a36u, 0x00005a32u, 0x00005a34u, 0x000500c7u, 0x00000006u, 0x00005a38u, 0x00005a36u, + 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00005a3cu, 0x00005a30u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005a3du, 0x00005a3cu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005a3fu, 0x00005a38u, 0x00005a3du, + 0x000500c6u, 0x00000006u, 0x00005a41u, 0x00005a3fu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005a44u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005a41u, 0x0004003du, 0x0000022eu, 0x00005a45u, + 0x00005a44u, 0x00040071u, 0x00000006u, 0x00005a46u, 0x00005a45u, 0x0004007cu, 0x00000008u, 0x00005a48u, + 0x00005a46u, 0x00070050u, 0x00000009u, 0x00005a49u, 0x00005a48u, 0x00005a48u, 0x00005a48u, 0x00005a48u, + 0x00050050u, 0x0000005fu, 0x00004b8eu, 0x00007e08u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004b8fu, + 0x00004b8eu, 0x00050051u, 0x00000006u, 0x00005a54u, 0x00004b8fu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005a55u, 0x000047dbu, 0x00005a54u, 0x00050080u, 0x00000006u, 0x00005a56u, 0x000047d8u, 0x00005a55u, + 0x00050051u, 0x00000006u, 0x00005a58u, 0x00004b8fu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005a5au, + 0x00005a56u, 0x00005a58u, 0x000500c7u, 0x00000006u, 0x00005a5cu, 0x00005a5au, 0x00000e67u, 0x000500c7u, + 0x00000006u, 0x00005a60u, 0x00005a54u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005a61u, 0x00005a60u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005a63u, 0x00005a5cu, 0x00005a61u, 0x000500c6u, 0x00000006u, + 0x00005a65u, 0x00005a63u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005a68u, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00005a65u, 0x0004003du, 0x0000022eu, 0x00005a69u, 0x00005a68u, 0x00040071u, + 0x00000006u, 0x00005a6au, 0x00005a69u, 0x0004007cu, 0x00000008u, 0x00005a6cu, 0x00005a6au, 0x00070050u, + 0x00000009u, 0x00005a6du, 0x00005a6cu, 0x00005a6cu, 0x00005a6cu, 0x00005a6cu, 0x000200f9u, 0x00004b93u, + 0x000200f8u, 0x00004b93u, 0x000700f5u, 0x00000009u, 0x000081cfu, 0x00008109u, 0x00004b7du, 0x00005a6du, + 0x00004b84u, 0x000700f5u, 0x00000009u, 0x000080d7u, 0x0000800eu, 0x00004b7du, 0x00005a49u, 0x00004b84u, + 0x000300f7u, 0x00004b9du, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004b95u, 0x00004b9du, 0x000200f8u, + 0x00004b95u, 0x00050050u, 0x0000005fu, 0x00004b98u, 0x00007e10u, 0x000049a6u, 0x0004007cu, 0x000000a6u, + 0x00004b99u, 0x00004b98u, 0x00050051u, 0x00000006u, 0x00005a78u, 0x00004b99u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005a79u, 0x000047dbu, 0x00005a78u, 0x00050080u, 0x00000006u, 0x00005a7au, 0x000047d8u, + 0x00005a79u, 0x00050051u, 0x00000006u, 0x00005a7cu, 0x00004b99u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005a7eu, 0x00005a7au, 0x00005a7cu, 0x000500c7u, 0x00000006u, 0x00005a80u, 0x00005a7eu, 0x00000e67u, + 0x000500c7u, 0x00000006u, 0x00005a84u, 0x00005a78u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005a85u, + 0x00005a84u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005a87u, 0x00005a80u, 0x00005a85u, 0x000500c6u, + 0x00000006u, 0x00005a89u, 0x00005a87u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005a8cu, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00005a89u, 0x0004003du, 0x0000022eu, 0x00005a8du, 0x00005a8cu, + 0x00040071u, 0x00000006u, 0x00005a8eu, 0x00005a8du, 0x0004007cu, 0x00000008u, 0x00005a90u, 0x00005a8eu, + 0x00070050u, 0x00000009u, 0x00005a91u, 0x00005a90u, 0x00005a90u, 0x00005a90u, 0x00005a90u, 0x000200f9u, + 0x00004b9du, 0x000200f8u, 0x00004b9du, 0x000700f5u, 0x00000009u, 0x000082c6u, 0x000081feu, 0x00004b93u, + 0x00005a91u, 0x00004b95u, 0x000200f9u, 0x00004b9eu, 0x000200f8u, 0x00004b50u, 0x0004007cu, 0x000000a6u, + 0x00004b52u, 0x00007e2fu, 0x0004007cu, 0x00000006u, 0x00004b55u, 0x000047eau, 0x00050051u, 0x00000006u, + 0x00005941u, 0x00004b52u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005942u, 0x000047dbu, 0x00005941u, + 0x00050080u, 0x00000006u, 0x00005943u, 0x000047d8u, 0x00005942u, 0x00050051u, 0x00000006u, 0x00005945u, + 0x00004b52u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005946u, 0x00005945u, 0x00000217u, 0x00050080u, + 0x00000006u, 0x00005948u, 0x00005943u, 0x00005946u, 0x000500c7u, 0x00000006u, 0x0000594au, 0x00005948u, + 0x00000e67u, 0x000400c8u, 0x00000006u, 0x0000594du, 0x00005945u, 0x000500c7u, 0x00000006u, 0x0000594eu, + 0x0000594du, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000594fu, 0x0000594eu, 0x00000706u, 0x000500c7u, + 0x00000006u, 0x00005953u, 0x00005941u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005954u, 0x00005953u, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005956u, 0x0000594au, 0x00005954u, 0x000500c6u, 0x00000006u, + 0x00005958u, 0x00005956u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000595bu, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00005958u, 0x0004003du, 0x0000022eu, 0x0000595cu, 0x0000595bu, 0x00040071u, + 0x00000006u, 0x0000595du, 0x0000595cu, 0x000500c2u, 0x00000006u, 0x00005960u, 0x0000595du, 0x0000594fu, + 0x000500c7u, 0x00000006u, 0x00005961u, 0x00005960u, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x00005963u, + 0x00004b55u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005965u, 0x00005961u, 0x00005963u, 0x0004007cu, + 0x00000008u, 0x00005967u, 0x00005965u, 0x00070050u, 0x00000009u, 0x00005968u, 0x00005967u, 0x00005967u, + 0x00005967u, 0x00005967u, 0x000300f7u, 0x00004b6fu, 0x00000000u, 0x000400fau, 0x00002257u, 0x00004b5au, + 0x00004b6fu, 0x000200f8u, 0x00004b5au, 0x00050050u, 0x0000005fu, 0x00004b5du, 0x00007e10u, 0x000049a4u, + 0x0004007cu, 0x000000a6u, 0x00004b5eu, 0x00004b5du, 0x00050051u, 0x00000006u, 0x00005974u, 0x00004b5eu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005975u, 0x000047dbu, 0x00005974u, 0x00050080u, 0x00000006u, + 0x00005976u, 0x000047d8u, 0x00005975u, 0x00050051u, 0x00000006u, 0x00005978u, 0x00004b5eu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00005979u, 0x00005978u, 0x00000217u, 0x00050080u, 0x00000006u, 0x0000597bu, + 0x00005976u, 0x00005979u, 0x000500c7u, 0x00000006u, 0x0000597du, 0x0000597bu, 0x00000e67u, 0x000400c8u, + 0x00000006u, 0x00005980u, 0x00005978u, 0x000500c7u, 0x00000006u, 0x00005981u, 0x00005980u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x00005982u, 0x00005981u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00005986u, + 0x00005974u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005987u, 0x00005986u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x00005989u, 0x0000597du, 0x00005987u, 0x000500c6u, 0x00000006u, 0x0000598bu, 0x00005989u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000598eu, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x0000598bu, 0x0004003du, 0x0000022eu, 0x0000598fu, 0x0000598eu, 0x00040071u, 0x00000006u, 0x00005990u, + 0x0000598fu, 0x000500c2u, 0x00000006u, 0x00005993u, 0x00005990u, 0x00005982u, 0x000500c7u, 0x00000006u, + 0x00005994u, 0x00005993u, 0x00000e8au, 0x000500c5u, 0x00000006u, 0x00005998u, 0x00005994u, 0x00005963u, + 0x0004007cu, 0x00000008u, 0x0000599au, 0x00005998u, 0x00070050u, 0x00000009u, 0x0000599bu, 0x0000599au, + 0x0000599au, 0x0000599au, 0x0000599au, 0x00050050u, 0x0000005fu, 0x00004b67u, 0x00007e08u, 0x000049a6u, + 0x0004007cu, 0x000000a6u, 0x00004b68u, 0x00004b67u, 0x00050051u, 0x00000006u, 0x000059a7u, 0x00004b68u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000059a8u, 0x000047dbu, 0x000059a7u, 0x00050080u, 0x00000006u, + 0x000059a9u, 0x000047d8u, 0x000059a8u, 0x00050051u, 0x00000006u, 0x000059abu, 0x00004b68u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000059acu, 0x000059abu, 0x00000217u, 0x00050080u, 0x00000006u, 0x000059aeu, + 0x000059a9u, 0x000059acu, 0x000500c7u, 0x00000006u, 0x000059b0u, 0x000059aeu, 0x00000e67u, 0x000400c8u, + 0x00000006u, 0x000059b3u, 0x000059abu, 0x000500c7u, 0x00000006u, 0x000059b4u, 0x000059b3u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000059b5u, 0x000059b4u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000059b9u, + 0x000059a7u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000059bau, 0x000059b9u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000059bcu, 0x000059b0u, 0x000059bau, 0x000500c6u, 0x00000006u, 0x000059beu, 0x000059bcu, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000059c1u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x000059beu, 0x0004003du, 0x0000022eu, 0x000059c2u, 0x000059c1u, 0x00040071u, 0x00000006u, 0x000059c3u, + 0x000059c2u, 0x000500c2u, 0x00000006u, 0x000059c6u, 0x000059c3u, 0x000059b5u, 0x000500c7u, 0x00000006u, + 0x000059c7u, 0x000059c6u, 0x00000e8au, 0x000500c5u, 0x00000006u, 0x000059cbu, 0x000059c7u, 0x00005963u, + 0x0004007cu, 0x00000008u, 0x000059cdu, 0x000059cbu, 0x00070050u, 0x00000009u, 0x000059ceu, 0x000059cdu, + 0x000059cdu, 0x000059cdu, 0x000059cdu, 0x000200f9u, 0x00004b6fu, 0x000200f8u, 0x00004b6fu, 0x000700f5u, + 0x00000009u, 0x000081cdu, 0x00008109u, 0x00004b50u, 0x000059ceu, 0x00004b5au, 0x000700f5u, 0x00000009u, + 0x000080d5u, 0x0000800eu, 0x00004b50u, 0x0000599bu, 0x00004b5au, 0x000300f7u, 0x00004b7cu, 0x00000000u, + 0x000400fau, 0x000049b0u, 0x00004b71u, 0x00004b7cu, 0x000200f8u, 0x00004b71u, 0x00050050u, 0x0000005fu, + 0x00004b74u, 0x00007e10u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004b75u, 0x00004b74u, 0x00050051u, + 0x00000006u, 0x000059dau, 0x00004b75u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000059dbu, 0x000047dbu, + 0x000059dau, 0x00050080u, 0x00000006u, 0x000059dcu, 0x000047d8u, 0x000059dbu, 0x00050051u, 0x00000006u, + 0x000059deu, 0x00004b75u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000059dfu, 0x000059deu, 0x00000217u, + 0x00050080u, 0x00000006u, 0x000059e1u, 0x000059dcu, 0x000059dfu, 0x000500c7u, 0x00000006u, 0x000059e3u, + 0x000059e1u, 0x00000e67u, 0x000400c8u, 0x00000006u, 0x000059e6u, 0x000059deu, 0x000500c7u, 0x00000006u, + 0x000059e7u, 0x000059e6u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000059e8u, 0x000059e7u, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x000059ecu, 0x000059dau, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000059edu, + 0x000059ecu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000059efu, 0x000059e3u, 0x000059edu, 0x000500c6u, + 0x00000006u, 0x000059f1u, 0x000059efu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x000059f4u, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x000059f1u, 0x0004003du, 0x0000022eu, 0x000059f5u, 0x000059f4u, + 0x00040071u, 0x00000006u, 0x000059f6u, 0x000059f5u, 0x000500c2u, 0x00000006u, 0x000059f9u, 0x000059f6u, + 0x000059e8u, 0x000500c7u, 0x00000006u, 0x000059fau, 0x000059f9u, 0x00000e8au, 0x000500c5u, 0x00000006u, + 0x000059feu, 0x000059fau, 0x00005963u, 0x0004007cu, 0x00000008u, 0x00005a00u, 0x000059feu, 0x00070050u, + 0x00000009u, 0x00005a01u, 0x00005a00u, 0x00005a00u, 0x00005a00u, 0x00005a00u, 0x000200f9u, 0x00004b7cu, + 0x000200f8u, 0x00004b7cu, 0x000700f5u, 0x00000009u, 0x000082c4u, 0x000081feu, 0x00004b6fu, 0x00005a01u, + 0x00004b71u, 0x000200f9u, 0x00004b9eu, 0x000200f8u, 0x00004b2fu, 0x0004007cu, 0x000000a6u, 0x00004b31u, + 0x00007e2fu, 0x00050051u, 0x00000006u, 0x00005894u, 0x00004b31u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005895u, 0x000047dbu, 0x00005894u, 0x00050080u, 0x00000006u, 0x00005896u, 0x000047d8u, 0x00005895u, + 0x00050051u, 0x00000006u, 0x00005898u, 0x00004b31u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005899u, + 0x00005898u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x0000589bu, 0x00005896u, 0x00005899u, 0x000500c7u, + 0x00000006u, 0x0000589du, 0x0000589bu, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x0000589fu, 0x0000589du, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x000058a2u, 0x00005894u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x000058a3u, 0x000058a2u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x000058a5u, 0x0000589fu, 0x000058a3u, + 0x000500c6u, 0x00000006u, 0x000058a7u, 0x000058a5u, 0x0000048au, 0x00080041u, 0x00000275u, 0x000058aau, + 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000058a7u, 0x0004003du, 0x00000230u, 0x000058abu, + 0x000058aau, 0x00040071u, 0x00000006u, 0x000058acu, 0x000058abu, 0x000500c2u, 0x00000006u, 0x000058aeu, + 0x000058acu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x000058afu, 0x000058aeu, 0x000500c7u, 0x00000006u, + 0x000058b1u, 0x000058acu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000058b2u, 0x000058b1u, 0x00050050u, + 0x0000005fu, 0x000058b3u, 0x000058afu, 0x000058b2u, 0x0009004fu, 0x00000009u, 0x000058b4u, 0x000058b3u, + 0x000058b3u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004b45u, 0x00000000u, + 0x000400fau, 0x00002257u, 0x00004b36u, 0x00004b45u, 0x000200f8u, 0x00004b36u, 0x00050050u, 0x0000005fu, + 0x00004b39u, 0x00007e10u, 0x000049a4u, 0x0004007cu, 0x000000a6u, 0x00004b3au, 0x00004b39u, 0x00050051u, + 0x00000006u, 0x000058bfu, 0x00004b3au, 0x00000001u, 0x00050084u, 0x00000006u, 0x000058c0u, 0x000047dbu, + 0x000058bfu, 0x00050080u, 0x00000006u, 0x000058c1u, 0x000047d8u, 0x000058c0u, 0x00050051u, 0x00000006u, + 0x000058c3u, 0x00004b3au, 0x00000000u, 0x00050084u, 0x00000006u, 0x000058c4u, 0x000058c3u, 0x000003c9u, + 0x00050080u, 0x00000006u, 0x000058c6u, 0x000058c1u, 0x000058c4u, 0x000500c7u, 0x00000006u, 0x000058c8u, + 0x000058c6u, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x000058cau, 0x000058c8u, 0x00000217u, 0x000500c7u, + 0x00000006u, 0x000058cdu, 0x000058bfu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000058ceu, 0x000058cdu, + 0x00000217u, 0x000500c6u, 0x00000006u, 0x000058d0u, 0x000058cau, 0x000058ceu, 0x000500c6u, 0x00000006u, + 0x000058d2u, 0x000058d0u, 0x0000048au, 0x00080041u, 0x00000275u, 0x000058d5u, 0x00000f48u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x000058d2u, 0x0004003du, 0x00000230u, 0x000058d6u, 0x000058d5u, 0x00040071u, + 0x00000006u, 0x000058d7u, 0x000058d6u, 0x000500c2u, 0x00000006u, 0x000058d9u, 0x000058d7u, 0x00000263u, + 0x0004007cu, 0x00000008u, 0x000058dau, 0x000058d9u, 0x000500c7u, 0x00000006u, 0x000058dcu, 0x000058d7u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000058ddu, 0x000058dcu, 0x00050050u, 0x0000005fu, 0x000058deu, + 0x000058dau, 0x000058ddu, 0x0009004fu, 0x00000009u, 0x000058dfu, 0x000058deu, 0x000058deu, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x00004b40u, 0x00007e08u, 0x000049a6u, + 0x0004007cu, 0x000000a6u, 0x00004b41u, 0x00004b40u, 0x00050051u, 0x00000006u, 0x000058eau, 0x00004b41u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000058ebu, 0x000047dbu, 0x000058eau, 0x00050080u, 0x00000006u, + 0x000058ecu, 0x000047d8u, 0x000058ebu, 0x00050051u, 0x00000006u, 0x000058eeu, 0x00004b41u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x000058efu, 0x000058eeu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000058f1u, + 0x000058ecu, 0x000058efu, 0x000500c7u, 0x00000006u, 0x000058f3u, 0x000058f1u, 0x00000e67u, 0x000500c2u, + 0x00000006u, 0x000058f5u, 0x000058f3u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000058f8u, 0x000058eau, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x000058f9u, 0x000058f8u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x000058fbu, 0x000058f5u, 0x000058f9u, 0x000500c6u, 0x00000006u, 0x000058fdu, 0x000058fbu, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00005900u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000058fdu, + 0x0004003du, 0x00000230u, 0x00005901u, 0x00005900u, 0x00040071u, 0x00000006u, 0x00005902u, 0x00005901u, + 0x000500c2u, 0x00000006u, 0x00005904u, 0x00005902u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005905u, + 0x00005904u, 0x000500c7u, 0x00000006u, 0x00005907u, 0x00005902u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00005908u, 0x00005907u, 0x00050050u, 0x0000005fu, 0x00005909u, 0x00005905u, 0x00005908u, 0x0009004fu, + 0x00000009u, 0x0000590au, 0x00005909u, 0x00005909u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004b45u, 0x000200f8u, 0x00004b45u, 0x000700f5u, 0x00000009u, 0x000081cbu, 0x00008109u, + 0x00004b2fu, 0x0000590au, 0x00004b36u, 0x000700f5u, 0x00000009u, 0x000080d3u, 0x0000800eu, 0x00004b2fu, + 0x000058dfu, 0x00004b36u, 0x000300f7u, 0x00004b4fu, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004b47u, + 0x00004b4fu, 0x000200f8u, 0x00004b47u, 0x00050050u, 0x0000005fu, 0x00004b4au, 0x00007e10u, 0x000049a6u, + 0x0004007cu, 0x000000a6u, 0x00004b4bu, 0x00004b4au, 0x00050051u, 0x00000006u, 0x00005915u, 0x00004b4bu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005916u, 0x000047dbu, 0x00005915u, 0x00050080u, 0x00000006u, + 0x00005917u, 0x000047d8u, 0x00005916u, 0x00050051u, 0x00000006u, 0x00005919u, 0x00004b4bu, 0x00000000u, + 0x00050084u, 0x00000006u, 0x0000591au, 0x00005919u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x0000591cu, + 0x00005917u, 0x0000591au, 0x000500c7u, 0x00000006u, 0x0000591eu, 0x0000591cu, 0x00000e67u, 0x000500c2u, + 0x00000006u, 0x00005920u, 0x0000591eu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005923u, 0x00005915u, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005924u, 0x00005923u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00005926u, 0x00005920u, 0x00005924u, 0x000500c6u, 0x00000006u, 0x00005928u, 0x00005926u, 0x0000048au, + 0x00080041u, 0x00000275u, 0x0000592bu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005928u, + 0x0004003du, 0x00000230u, 0x0000592cu, 0x0000592bu, 0x00040071u, 0x00000006u, 0x0000592du, 0x0000592cu, + 0x000500c2u, 0x00000006u, 0x0000592fu, 0x0000592du, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005930u, + 0x0000592fu, 0x000500c7u, 0x00000006u, 0x00005932u, 0x0000592du, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00005933u, 0x00005932u, 0x00050050u, 0x0000005fu, 0x00005934u, 0x00005930u, 0x00005933u, 0x0009004fu, + 0x00000009u, 0x00005935u, 0x00005934u, 0x00005934u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004b4fu, 0x000200f8u, 0x00004b4fu, 0x000700f5u, 0x00000009u, 0x000082c2u, 0x000081feu, + 0x00004b45u, 0x00005935u, 0x00004b47u, 0x000200f9u, 0x00004b9eu, 0x000200f8u, 0x00004b9eu, 0x000900f5u, + 0x00000009u, 0x000082c1u, 0x000082c2u, 0x00004b4fu, 0x000082c4u, 0x00004b7cu, 0x000082c6u, 0x00004b9du, + 0x000900f5u, 0x00000009u, 0x000081c9u, 0x000081cbu, 0x00004b4fu, 0x000081cdu, 0x00004b7cu, 0x000081cfu, + 0x00004b9du, 0x000900f5u, 0x00000009u, 0x000080d1u, 0x000080d3u, 0x00004b4fu, 0x000080d5u, 0x00004b7cu, + 0x000080d7u, 0x00004b9du, 0x000900f5u, 0x00000009u, 0x00007f64u, 0x000058b4u, 0x00004b4fu, 0x00005968u, + 0x00004b7cu, 0x00005a25u, 0x00004b9du, 0x000200f9u, 0x00004c8eu, 0x000200f8u, 0x00004afeu, 0x000500c3u, + 0x00000008u, 0x00004b00u, 0x00007e08u, 0x00000217u, 0x0004007cu, 0x00000006u, 0x00004b01u, 0x00004b00u, + 0x00050082u, 0x00000008u, 0x00004b05u, 0x00007e10u, 0x00007e08u, 0x00050080u, 0x00000008u, 0x00004b06u, + 0x00007e10u, 0x00004b05u, 0x000500c3u, 0x00000008u, 0x00004b07u, 0x00004b06u, 0x00000217u, 0x0004007cu, + 0x00000006u, 0x00004b08u, 0x00004b07u, 0x00050050u, 0x0000005fu, 0x00004b0bu, 0x00007e08u, 0x000049a4u, + 0x0004007cu, 0x000000a6u, 0x00004b0cu, 0x00004b0bu, 0x00050051u, 0x00000006u, 0x0000576au, 0x00004b0cu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000576bu, 0x000047dbu, 0x0000576au, 0x00050080u, 0x00000006u, + 0x0000576cu, 0x000047d8u, 0x0000576bu, 0x00050051u, 0x00000006u, 0x0000576fu, 0x00004b0cu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005770u, 0x0000576cu, 0x0000576fu, 0x000500c7u, 0x00000006u, 0x00005772u, + 0x00005770u, 0x00000f19u, 0x00050084u, 0x00000006u, 0x00005775u, 0x00004b01u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00005776u, 0x0000576cu, 0x00005775u, 0x000500c7u, 0x00000006u, 0x00005778u, 0x00005776u, + 0x00000f19u, 0x000500c7u, 0x00000006u, 0x0000577cu, 0x0000576au, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x0000577du, 0x0000577cu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000577fu, 0x00005772u, 0x0000577du, + 0x000500c6u, 0x00000006u, 0x00005781u, 0x0000577fu, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00005783u, + 0x00005778u, 0x00000217u, 0x000500c4u, 0x00000006u, 0x00005787u, 0x0000577cu, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00005789u, 0x00005783u, 0x00005787u, 0x000500c6u, 0x00000006u, 0x0000578bu, 0x00005789u, + 0x0000048au, 0x000500c5u, 0x00000006u, 0x0000578eu, 0x00005781u, 0x00000f42u, 0x00080041u, 0x0000027cu, + 0x0000578fu, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000578eu, 0x0004003du, 0x0000022eu, + 0x00005790u, 0x0000578fu, 0x00040071u, 0x00000006u, 0x00005791u, 0x00005790u, 0x0004007cu, 0x00000008u, + 0x00005792u, 0x00005791u, 0x00080041u, 0x00000275u, 0x00005795u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x0000578bu, 0x0004003du, 0x00000230u, 0x00005796u, 0x00005795u, 0x00040071u, 0x00000006u, + 0x00005797u, 0x00005796u, 0x0004007cu, 0x00000008u, 0x00005798u, 0x00005797u, 0x000500c3u, 0x00000008u, + 0x0000579au, 0x00005798u, 0x00000263u, 0x000500c7u, 0x00000008u, 0x0000579bu, 0x0000579au, 0x00000390u, + 0x000500c3u, 0x00000008u, 0x0000579du, 0x00005798u, 0x00000208u, 0x000500c7u, 0x00000008u, 0x0000579eu, + 0x0000579du, 0x00000390u, 0x00050082u, 0x00000008u, 0x000057a0u, 0x0000579bu, 0x00000628u, 0x00050082u, + 0x00000008u, 0x000057a2u, 0x0000579eu, 0x00000628u, 0x00070050u, 0x00000009u, 0x000057a5u, 0x000057a0u, + 0x000057a2u, 0x00005792u, 0x00005792u, 0x000300f7u, 0x00004b2bu, 0x00000000u, 0x000400fau, 0x00002257u, + 0x00004b12u, 0x00004b2bu, 0x000200f8u, 0x00004b12u, 0x00050050u, 0x0000005fu, 0x00004b15u, 0x00007e10u, + 0x000049a4u, 0x0004007cu, 0x000000a6u, 0x00004b16u, 0x00004b15u, 0x00050051u, 0x00000006u, 0x000057b6u, + 0x00004b16u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000057b7u, 0x000047dbu, 0x000057b6u, 0x00050080u, + 0x00000006u, 0x000057b8u, 0x000047d8u, 0x000057b7u, 0x00050051u, 0x00000006u, 0x000057bbu, 0x00004b16u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x000057bcu, 0x000057b8u, 0x000057bbu, 0x000500c7u, 0x00000006u, + 0x000057beu, 0x000057bcu, 0x00000f19u, 0x00050084u, 0x00000006u, 0x000057c1u, 0x00004b08u, 0x000003c9u, + 0x00050080u, 0x00000006u, 0x000057c2u, 0x000057b8u, 0x000057c1u, 0x000500c7u, 0x00000006u, 0x000057c4u, + 0x000057c2u, 0x00000f19u, 0x000500c7u, 0x00000006u, 0x000057c8u, 0x000057b6u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x000057c9u, 0x000057c8u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000057cbu, 0x000057beu, + 0x000057c9u, 0x000500c6u, 0x00000006u, 0x000057cdu, 0x000057cbu, 0x00000490u, 0x000500c2u, 0x00000006u, + 0x000057cfu, 0x000057c4u, 0x00000217u, 0x000500c4u, 0x00000006u, 0x000057d3u, 0x000057c8u, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x000057d5u, 0x000057cfu, 0x000057d3u, 0x000500c6u, 0x00000006u, 0x000057d7u, + 0x000057d5u, 0x0000048au, 0x000500c5u, 0x00000006u, 0x000057dau, 0x000057cdu, 0x00000f42u, 0x00080041u, + 0x0000027cu, 0x000057dbu, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000057dau, 0x0004003du, + 0x0000022eu, 0x000057dcu, 0x000057dbu, 0x00040071u, 0x00000006u, 0x000057ddu, 0x000057dcu, 0x0004007cu, + 0x00000008u, 0x000057deu, 0x000057ddu, 0x00080041u, 0x00000275u, 0x000057e1u, 0x00000f48u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x000057d7u, 0x0004003du, 0x00000230u, 0x000057e2u, 0x000057e1u, 0x00040071u, + 0x00000006u, 0x000057e3u, 0x000057e2u, 0x0004007cu, 0x00000008u, 0x000057e4u, 0x000057e3u, 0x000500c3u, + 0x00000008u, 0x000057e6u, 0x000057e4u, 0x00000263u, 0x000500c7u, 0x00000008u, 0x000057e7u, 0x000057e6u, + 0x00000390u, 0x000500c3u, 0x00000008u, 0x000057e9u, 0x000057e4u, 0x00000208u, 0x000500c7u, 0x00000008u, + 0x000057eau, 0x000057e9u, 0x00000390u, 0x00050082u, 0x00000008u, 0x000057ecu, 0x000057e7u, 0x00000628u, + 0x00050082u, 0x00000008u, 0x000057eeu, 0x000057eau, 0x00000628u, 0x00070050u, 0x00000009u, 0x000057f1u, + 0x000057ecu, 0x000057eeu, 0x000057deu, 0x000057deu, 0x00050050u, 0x0000005fu, 0x00004b1du, 0x00007e08u, + 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004b1eu, 0x00004b1du, 0x00050051u, 0x00000006u, 0x00005802u, + 0x00004b1eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005803u, 0x000047dbu, 0x00005802u, 0x00050080u, + 0x00000006u, 0x00005804u, 0x000047d8u, 0x00005803u, 0x00050051u, 0x00000006u, 0x00005807u, 0x00004b1eu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005808u, 0x00005804u, 0x00005807u, 0x000500c7u, 0x00000006u, + 0x0000580au, 0x00005808u, 0x00000f19u, 0x00050080u, 0x00000006u, 0x0000580eu, 0x00005804u, 0x00005775u, + 0x000500c7u, 0x00000006u, 0x00005810u, 0x0000580eu, 0x00000f19u, 0x000500c7u, 0x00000006u, 0x00005814u, + 0x00005802u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005815u, 0x00005814u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x00005817u, 0x0000580au, 0x00005815u, 0x000500c6u, 0x00000006u, 0x00005819u, 0x00005817u, + 0x00000490u, 0x000500c2u, 0x00000006u, 0x0000581bu, 0x00005810u, 0x00000217u, 0x000500c4u, 0x00000006u, + 0x0000581fu, 0x00005814u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00005821u, 0x0000581bu, 0x0000581fu, + 0x000500c6u, 0x00000006u, 0x00005823u, 0x00005821u, 0x0000048au, 0x000500c5u, 0x00000006u, 0x00005826u, + 0x00005819u, 0x00000f42u, 0x00080041u, 0x0000027cu, 0x00005827u, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00005826u, 0x0004003du, 0x0000022eu, 0x00005828u, 0x00005827u, 0x00040071u, 0x00000006u, + 0x00005829u, 0x00005828u, 0x0004007cu, 0x00000008u, 0x0000582au, 0x00005829u, 0x00080041u, 0x00000275u, + 0x0000582du, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005823u, 0x0004003du, 0x00000230u, + 0x0000582eu, 0x0000582du, 0x00040071u, 0x00000006u, 0x0000582fu, 0x0000582eu, 0x0004007cu, 0x00000008u, + 0x00005830u, 0x0000582fu, 0x000500c3u, 0x00000008u, 0x00005832u, 0x00005830u, 0x00000263u, 0x000500c7u, + 0x00000008u, 0x00005833u, 0x00005832u, 0x00000390u, 0x000500c3u, 0x00000008u, 0x00005835u, 0x00005830u, + 0x00000208u, 0x000500c7u, 0x00000008u, 0x00005836u, 0x00005835u, 0x00000390u, 0x00050082u, 0x00000008u, + 0x00005838u, 0x00005833u, 0x00000628u, 0x00050082u, 0x00000008u, 0x0000583au, 0x00005836u, 0x00000628u, + 0x00070050u, 0x00000009u, 0x0000583du, 0x00005838u, 0x0000583au, 0x0000582au, 0x0000582au, 0x00050050u, + 0x0000005fu, 0x00004b25u, 0x00007e10u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004b26u, 0x00004b25u, + 0x00050051u, 0x00000006u, 0x0000584eu, 0x00004b26u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000584fu, + 0x000047dbu, 0x0000584eu, 0x00050080u, 0x00000006u, 0x00005850u, 0x000047d8u, 0x0000584fu, 0x00050051u, + 0x00000006u, 0x00005853u, 0x00004b26u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005854u, 0x00005850u, + 0x00005853u, 0x000500c7u, 0x00000006u, 0x00005856u, 0x00005854u, 0x00000f19u, 0x00050080u, 0x00000006u, + 0x0000585au, 0x00005850u, 0x000057c1u, 0x000500c7u, 0x00000006u, 0x0000585cu, 0x0000585au, 0x00000f19u, + 0x000500c7u, 0x00000006u, 0x00005860u, 0x0000584eu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005861u, + 0x00005860u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005863u, 0x00005856u, 0x00005861u, 0x000500c6u, + 0x00000006u, 0x00005865u, 0x00005863u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00005867u, 0x0000585cu, + 0x00000217u, 0x000500c4u, 0x00000006u, 0x0000586bu, 0x00005860u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x0000586du, 0x00005867u, 0x0000586bu, 0x000500c6u, 0x00000006u, 0x0000586fu, 0x0000586du, 0x0000048au, + 0x000500c5u, 0x00000006u, 0x00005872u, 0x00005865u, 0x00000f42u, 0x00080041u, 0x0000027cu, 0x00005873u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005872u, 0x0004003du, 0x0000022eu, 0x00005874u, + 0x00005873u, 0x00040071u, 0x00000006u, 0x00005875u, 0x00005874u, 0x0004007cu, 0x00000008u, 0x00005876u, + 0x00005875u, 0x00080041u, 0x00000275u, 0x00005879u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x0000586fu, 0x0004003du, 0x00000230u, 0x0000587au, 0x00005879u, 0x00040071u, 0x00000006u, 0x0000587bu, + 0x0000587au, 0x0004007cu, 0x00000008u, 0x0000587cu, 0x0000587bu, 0x000500c3u, 0x00000008u, 0x0000587eu, + 0x0000587cu, 0x00000263u, 0x000500c7u, 0x00000008u, 0x0000587fu, 0x0000587eu, 0x00000390u, 0x000500c3u, + 0x00000008u, 0x00005881u, 0x0000587cu, 0x00000208u, 0x000500c7u, 0x00000008u, 0x00005882u, 0x00005881u, + 0x00000390u, 0x00050082u, 0x00000008u, 0x00005884u, 0x0000587fu, 0x00000628u, 0x00050082u, 0x00000008u, + 0x00005886u, 0x00005882u, 0x00000628u, 0x00070050u, 0x00000009u, 0x00005889u, 0x00005884u, 0x00005886u, + 0x00005876u, 0x00005876u, 0x000200f9u, 0x00004b2bu, 0x000200f8u, 0x00004b2bu, 0x000700f5u, 0x00000009u, + 0x000082c0u, 0x000081feu, 0x00004afeu, 0x00005889u, 0x00004b12u, 0x000700f5u, 0x00000009u, 0x000081c8u, + 0x00008109u, 0x00004afeu, 0x0000583du, 0x00004b12u, 0x000700f5u, 0x00000009u, 0x000080d0u, 0x0000800eu, + 0x00004afeu, 0x000057f1u, 0x00004b12u, 0x000200f9u, 0x00004c8eu, 0x000200f8u, 0x00004a76u, 0x000300f7u, + 0x00004afdu, 0x00000000u, 0x000b00fbu, 0x000047e5u, 0x00004afdu, 0x00000000u, 0x00004a79u, 0x00000001u, + 0x00004a9au, 0x00000002u, 0x00004abbu, 0x00000003u, 0x00004adcu, 0x000200f8u, 0x00004adcu, 0x0004007cu, + 0x000000a6u, 0x00004adeu, 0x00007e2fu, 0x00050051u, 0x00000006u, 0x00005689u, 0x00004adeu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000568au, 0x000047dbu, 0x00005689u, 0x00050080u, 0x00000006u, 0x0000568bu, + 0x000047d8u, 0x0000568au, 0x00050051u, 0x00000006u, 0x0000568du, 0x00004adeu, 0x00000000u, 0x00050084u, + 0x00000006u, 0x0000568eu, 0x0000568du, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005690u, 0x0000568bu, + 0x0000568eu, 0x000500c7u, 0x00000006u, 0x00005692u, 0x00005690u, 0x00000f19u, 0x000500c2u, 0x00000006u, + 0x00005694u, 0x00005692u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005697u, 0x00005689u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x00005698u, 0x00005697u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x0000569au, + 0x00005694u, 0x00005698u, 0x000500c6u, 0x00000006u, 0x0000569cu, 0x0000569au, 0x0000048au, 0x00080041u, + 0x00000275u, 0x0000569fu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000569cu, 0x0004003du, + 0x00000230u, 0x000056a0u, 0x0000569fu, 0x00040071u, 0x00000006u, 0x000056a1u, 0x000056a0u, 0x000500c5u, + 0x00000006u, 0x000056a4u, 0x0000569cu, 0x00000f4au, 0x00080041u, 0x00000275u, 0x000056a5u, 0x00000f48u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x000056a4u, 0x0004003du, 0x00000230u, 0x000056a6u, 0x000056a5u, + 0x00040071u, 0x00000006u, 0x000056a7u, 0x000056a6u, 0x000500c2u, 0x00000006u, 0x000056a9u, 0x000056a1u, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x000056aau, 0x000056a9u, 0x000500c7u, 0x00000006u, 0x000056acu, + 0x000056a1u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000056adu, 0x000056acu, 0x000500c2u, 0x00000006u, + 0x000056afu, 0x000056a7u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x000056b0u, 0x000056afu, 0x000500c7u, + 0x00000006u, 0x000056b2u, 0x000056a7u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000056b3u, 0x000056b2u, + 0x00070050u, 0x00000009u, 0x000056b4u, 0x000056aau, 0x000056adu, 0x000056b0u, 0x000056b3u, 0x000300f7u, + 0x00004af2u, 0x00000000u, 0x000400fau, 0x00002257u, 0x00004ae3u, 0x00004af2u, 0x000200f8u, 0x00004ae3u, + 0x00050050u, 0x0000005fu, 0x00004ae6u, 0x00007e10u, 0x000049a4u, 0x0004007cu, 0x000000a6u, 0x00004ae7u, + 0x00004ae6u, 0x00050051u, 0x00000006u, 0x000056c0u, 0x00004ae7u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000056c1u, 0x000047dbu, 0x000056c0u, 0x00050080u, 0x00000006u, 0x000056c2u, 0x000047d8u, 0x000056c1u, + 0x00050051u, 0x00000006u, 0x000056c4u, 0x00004ae7u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000056c5u, + 0x000056c4u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000056c7u, 0x000056c2u, 0x000056c5u, 0x000500c7u, + 0x00000006u, 0x000056c9u, 0x000056c7u, 0x00000f19u, 0x000500c2u, 0x00000006u, 0x000056cbu, 0x000056c9u, + 0x00000217u, 0x000500c7u, 0x00000006u, 0x000056ceu, 0x000056c0u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x000056cfu, 0x000056ceu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x000056d1u, 0x000056cbu, 0x000056cfu, + 0x000500c6u, 0x00000006u, 0x000056d3u, 0x000056d1u, 0x0000048au, 0x00080041u, 0x00000275u, 0x000056d6u, + 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000056d3u, 0x0004003du, 0x00000230u, 0x000056d7u, + 0x000056d6u, 0x00040071u, 0x00000006u, 0x000056d8u, 0x000056d7u, 0x000500c5u, 0x00000006u, 0x000056dbu, + 0x000056d3u, 0x00000f4au, 0x00080041u, 0x00000275u, 0x000056dcu, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x000056dbu, 0x0004003du, 0x00000230u, 0x000056ddu, 0x000056dcu, 0x00040071u, 0x00000006u, + 0x000056deu, 0x000056ddu, 0x000500c2u, 0x00000006u, 0x000056e0u, 0x000056d8u, 0x00000263u, 0x0004007cu, + 0x00000008u, 0x000056e1u, 0x000056e0u, 0x000500c7u, 0x00000006u, 0x000056e3u, 0x000056d8u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x000056e4u, 0x000056e3u, 0x000500c2u, 0x00000006u, 0x000056e6u, 0x000056deu, + 0x00000263u, 0x0004007cu, 0x00000008u, 0x000056e7u, 0x000056e6u, 0x000500c7u, 0x00000006u, 0x000056e9u, + 0x000056deu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000056eau, 0x000056e9u, 0x00070050u, 0x00000009u, + 0x000056ebu, 0x000056e1u, 0x000056e4u, 0x000056e7u, 0x000056eau, 0x00050050u, 0x0000005fu, 0x00004aedu, + 0x00007e08u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004aeeu, 0x00004aedu, 0x00050051u, 0x00000006u, + 0x000056f7u, 0x00004aeeu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000056f8u, 0x000047dbu, 0x000056f7u, + 0x00050080u, 0x00000006u, 0x000056f9u, 0x000047d8u, 0x000056f8u, 0x00050051u, 0x00000006u, 0x000056fbu, + 0x00004aeeu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000056fcu, 0x000056fbu, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x000056feu, 0x000056f9u, 0x000056fcu, 0x000500c7u, 0x00000006u, 0x00005700u, 0x000056feu, + 0x00000f19u, 0x000500c2u, 0x00000006u, 0x00005702u, 0x00005700u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x00005705u, 0x000056f7u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005706u, 0x00005705u, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x00005708u, 0x00005702u, 0x00005706u, 0x000500c6u, 0x00000006u, 0x0000570au, + 0x00005708u, 0x0000048au, 0x00080041u, 0x00000275u, 0x0000570du, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x0000570au, 0x0004003du, 0x00000230u, 0x0000570eu, 0x0000570du, 0x00040071u, 0x00000006u, + 0x0000570fu, 0x0000570eu, 0x000500c5u, 0x00000006u, 0x00005712u, 0x0000570au, 0x00000f4au, 0x00080041u, + 0x00000275u, 0x00005713u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005712u, 0x0004003du, + 0x00000230u, 0x00005714u, 0x00005713u, 0x00040071u, 0x00000006u, 0x00005715u, 0x00005714u, 0x000500c2u, + 0x00000006u, 0x00005717u, 0x0000570fu, 0x00000263u, 0x0004007cu, 0x00000008u, 0x00005718u, 0x00005717u, + 0x000500c7u, 0x00000006u, 0x0000571au, 0x0000570fu, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000571bu, + 0x0000571au, 0x000500c2u, 0x00000006u, 0x0000571du, 0x00005715u, 0x00000263u, 0x0004007cu, 0x00000008u, + 0x0000571eu, 0x0000571du, 0x000500c7u, 0x00000006u, 0x00005720u, 0x00005715u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00005721u, 0x00005720u, 0x00070050u, 0x00000009u, 0x00005722u, 0x00005718u, 0x0000571bu, + 0x0000571eu, 0x00005721u, 0x000200f9u, 0x00004af2u, 0x000200f8u, 0x00004af2u, 0x000700f5u, 0x00000009u, + 0x000081c7u, 0x00008109u, 0x00004adcu, 0x00005722u, 0x00004ae3u, 0x000700f5u, 0x00000009u, 0x000080cfu, + 0x0000800eu, 0x00004adcu, 0x000056ebu, 0x00004ae3u, 0x000300f7u, 0x00004afcu, 0x00000000u, 0x000400fau, + 0x000049b0u, 0x00004af4u, 0x00004afcu, 0x000200f8u, 0x00004af4u, 0x00050050u, 0x0000005fu, 0x00004af7u, + 0x00007e10u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004af8u, 0x00004af7u, 0x00050051u, 0x00000006u, + 0x0000572eu, 0x00004af8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000572fu, 0x000047dbu, 0x0000572eu, + 0x00050080u, 0x00000006u, 0x00005730u, 0x000047d8u, 0x0000572fu, 0x00050051u, 0x00000006u, 0x00005732u, + 0x00004af8u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005733u, 0x00005732u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00005735u, 0x00005730u, 0x00005733u, 0x000500c7u, 0x00000006u, 0x00005737u, 0x00005735u, + 0x00000f19u, 0x000500c2u, 0x00000006u, 0x00005739u, 0x00005737u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x0000573cu, 0x0000572eu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000573du, 0x0000573cu, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x0000573fu, 0x00005739u, 0x0000573du, 0x000500c6u, 0x00000006u, 0x00005741u, + 0x0000573fu, 0x0000048au, 0x00080041u, 0x00000275u, 0x00005744u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00005741u, 0x0004003du, 0x00000230u, 0x00005745u, 0x00005744u, 0x00040071u, 0x00000006u, + 0x00005746u, 0x00005745u, 0x000500c5u, 0x00000006u, 0x00005749u, 0x00005741u, 0x00000f4au, 0x00080041u, + 0x00000275u, 0x0000574au, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005749u, 0x0004003du, + 0x00000230u, 0x0000574bu, 0x0000574au, 0x00040071u, 0x00000006u, 0x0000574cu, 0x0000574bu, 0x000500c2u, + 0x00000006u, 0x0000574eu, 0x00005746u, 0x00000263u, 0x0004007cu, 0x00000008u, 0x0000574fu, 0x0000574eu, + 0x000500c7u, 0x00000006u, 0x00005751u, 0x00005746u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005752u, + 0x00005751u, 0x000500c2u, 0x00000006u, 0x00005754u, 0x0000574cu, 0x00000263u, 0x0004007cu, 0x00000008u, + 0x00005755u, 0x00005754u, 0x000500c7u, 0x00000006u, 0x00005757u, 0x0000574cu, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00005758u, 0x00005757u, 0x00070050u, 0x00000009u, 0x00005759u, 0x0000574fu, 0x00005752u, + 0x00005755u, 0x00005758u, 0x000200f9u, 0x00004afcu, 0x000200f8u, 0x00004afcu, 0x000700f5u, 0x00000009u, + 0x000082beu, 0x000081feu, 0x00004af2u, 0x00005759u, 0x00004af4u, 0x000200f9u, 0x00004afdu, 0x000200f8u, + 0x00004abbu, 0x0004007cu, 0x000000a6u, 0x00004abdu, 0x00007e2fu, 0x00050051u, 0x00000006u, 0x00005585u, + 0x00004abdu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005586u, 0x000047dbu, 0x00005585u, 0x00050080u, + 0x00000006u, 0x00005587u, 0x000047d8u, 0x00005586u, 0x00050051u, 0x00000006u, 0x00005589u, 0x00004abdu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x0000558au, 0x00005589u, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x0000558cu, 0x00005587u, 0x0000558au, 0x000500c7u, 0x00000006u, 0x0000558eu, 0x0000558cu, 0x00000e67u, + 0x000500c2u, 0x00000006u, 0x00005590u, 0x0000558eu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005593u, + 0x00005585u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005594u, 0x00005593u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00005596u, 0x00005590u, 0x00005594u, 0x000500c6u, 0x00000006u, 0x00005598u, 0x00005596u, + 0x0000048au, 0x00080041u, 0x00000275u, 0x0000559bu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00005598u, 0x0004003du, 0x00000230u, 0x0000559cu, 0x0000559bu, 0x00040071u, 0x00000006u, 0x0000559du, + 0x0000559cu, 0x00060050u, 0x00000358u, 0x000055a5u, 0x0000559du, 0x0000559du, 0x0000559du, 0x000500c2u, + 0x00000358u, 0x000055a6u, 0x000055a5u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x000055a8u, 0x000055a6u, + 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x000055abu, 0x000055a8u, 0x0000bdceu, 0x000500c2u, 0x00000358u, + 0x000055aeu, 0x000055a8u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x000055afu, 0x000055abu, 0x000055aeu, + 0x000500c7u, 0x00000006u, 0x000055b1u, 0x0000559du, 0x0000048au, 0x00050084u, 0x00000006u, 0x000055b2u, + 0x000055b1u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000055b4u, 0x000055afu, 0x0004007cu, 0x00000008u, + 0x000055b6u, 0x000055b2u, 0x00050051u, 0x00000008u, 0x000055b7u, 0x000055b4u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000055b8u, 0x000055b4u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000055b9u, 0x000055b4u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000055bau, 0x000055b7u, 0x000055b8u, 0x000055b9u, 0x000055b6u, + 0x000300f7u, 0x00004ad1u, 0x00000000u, 0x000400fau, 0x00002257u, 0x00004ac2u, 0x00004ad1u, 0x000200f8u, + 0x00004ac2u, 0x00050050u, 0x0000005fu, 0x00004ac5u, 0x00007e10u, 0x000049a4u, 0x0004007cu, 0x000000a6u, + 0x00004ac6u, 0x00004ac5u, 0x00050051u, 0x00000006u, 0x000055c6u, 0x00004ac6u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000055c7u, 0x000047dbu, 0x000055c6u, 0x00050080u, 0x00000006u, 0x000055c8u, 0x000047d8u, + 0x000055c7u, 0x00050051u, 0x00000006u, 0x000055cau, 0x00004ac6u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000055cbu, 0x000055cau, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000055cdu, 0x000055c8u, 0x000055cbu, + 0x000500c7u, 0x00000006u, 0x000055cfu, 0x000055cdu, 0x00000e67u, 0x000500c2u, 0x00000006u, 0x000055d1u, + 0x000055cfu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x000055d4u, 0x000055c6u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x000055d5u, 0x000055d4u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x000055d7u, 0x000055d1u, + 0x000055d5u, 0x000500c6u, 0x00000006u, 0x000055d9u, 0x000055d7u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x000055dcu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000055d9u, 0x0004003du, 0x00000230u, + 0x000055ddu, 0x000055dcu, 0x00040071u, 0x00000006u, 0x000055deu, 0x000055ddu, 0x00060050u, 0x00000358u, + 0x000055e6u, 0x000055deu, 0x000055deu, 0x000055deu, 0x000500c2u, 0x00000358u, 0x000055e7u, 0x000055e6u, + 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x000055e9u, 0x000055e7u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, + 0x000055ecu, 0x000055e9u, 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x000055efu, 0x000055e9u, 0x0000bdcfu, + 0x000500c5u, 0x00000358u, 0x000055f0u, 0x000055ecu, 0x000055efu, 0x000500c7u, 0x00000006u, 0x000055f2u, + 0x000055deu, 0x0000048au, 0x00050084u, 0x00000006u, 0x000055f3u, 0x000055f2u, 0x000006c7u, 0x0004007cu, + 0x0000003cu, 0x000055f5u, 0x000055f0u, 0x0004007cu, 0x00000008u, 0x000055f7u, 0x000055f3u, 0x00050051u, + 0x00000008u, 0x000055f8u, 0x000055f5u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000055f9u, 0x000055f5u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x000055fau, 0x000055f5u, 0x00000002u, 0x00070050u, 0x00000009u, + 0x000055fbu, 0x000055f8u, 0x000055f9u, 0x000055fau, 0x000055f7u, 0x00050050u, 0x0000005fu, 0x00004accu, + 0x00007e08u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004acdu, 0x00004accu, 0x00050051u, 0x00000006u, + 0x00005607u, 0x00004acdu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005608u, 0x000047dbu, 0x00005607u, + 0x00050080u, 0x00000006u, 0x00005609u, 0x000047d8u, 0x00005608u, 0x00050051u, 0x00000006u, 0x0000560bu, + 0x00004acdu, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000560cu, 0x0000560bu, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x0000560eu, 0x00005609u, 0x0000560cu, 0x000500c7u, 0x00000006u, 0x00005610u, 0x0000560eu, + 0x00000e67u, 0x000500c2u, 0x00000006u, 0x00005612u, 0x00005610u, 0x00000217u, 0x000500c7u, 0x00000006u, + 0x00005615u, 0x00005607u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005616u, 0x00005615u, 0x00000217u, + 0x000500c6u, 0x00000006u, 0x00005618u, 0x00005612u, 0x00005616u, 0x000500c6u, 0x00000006u, 0x0000561au, + 0x00005618u, 0x0000048au, 0x00080041u, 0x00000275u, 0x0000561du, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x0000561au, 0x0004003du, 0x00000230u, 0x0000561eu, 0x0000561du, 0x00040071u, 0x00000006u, + 0x0000561fu, 0x0000561eu, 0x00060050u, 0x00000358u, 0x00005627u, 0x0000561fu, 0x0000561fu, 0x0000561fu, + 0x000500c2u, 0x00000358u, 0x00005628u, 0x00005627u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x0000562au, + 0x00005628u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x0000562du, 0x0000562au, 0x0000bdceu, 0x000500c2u, + 0x00000358u, 0x00005630u, 0x0000562au, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00005631u, 0x0000562du, + 0x00005630u, 0x000500c7u, 0x00000006u, 0x00005633u, 0x0000561fu, 0x0000048au, 0x00050084u, 0x00000006u, + 0x00005634u, 0x00005633u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005636u, 0x00005631u, 0x0004007cu, + 0x00000008u, 0x00005638u, 0x00005634u, 0x00050051u, 0x00000008u, 0x00005639u, 0x00005636u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x0000563au, 0x00005636u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000563bu, + 0x00005636u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000563cu, 0x00005639u, 0x0000563au, 0x0000563bu, + 0x00005638u, 0x000200f9u, 0x00004ad1u, 0x000200f8u, 0x00004ad1u, 0x000700f5u, 0x00000009u, 0x000081c5u, + 0x00008109u, 0x00004abbu, 0x0000563cu, 0x00004ac2u, 0x000700f5u, 0x00000009u, 0x000080cdu, 0x0000800eu, + 0x00004abbu, 0x000055fbu, 0x00004ac2u, 0x000300f7u, 0x00004adbu, 0x00000000u, 0x000400fau, 0x000049b0u, + 0x00004ad3u, 0x00004adbu, 0x000200f8u, 0x00004ad3u, 0x00050050u, 0x0000005fu, 0x00004ad6u, 0x00007e10u, + 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004ad7u, 0x00004ad6u, 0x00050051u, 0x00000006u, 0x00005648u, + 0x00004ad7u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005649u, 0x000047dbu, 0x00005648u, 0x00050080u, + 0x00000006u, 0x0000564au, 0x000047d8u, 0x00005649u, 0x00050051u, 0x00000006u, 0x0000564cu, 0x00004ad7u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x0000564du, 0x0000564cu, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x0000564fu, 0x0000564au, 0x0000564du, 0x000500c7u, 0x00000006u, 0x00005651u, 0x0000564fu, 0x00000e67u, + 0x000500c2u, 0x00000006u, 0x00005653u, 0x00005651u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00005656u, + 0x00005648u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005657u, 0x00005656u, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00005659u, 0x00005653u, 0x00005657u, 0x000500c6u, 0x00000006u, 0x0000565bu, 0x00005659u, + 0x0000048au, 0x00080041u, 0x00000275u, 0x0000565eu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x0000565bu, 0x0004003du, 0x00000230u, 0x0000565fu, 0x0000565eu, 0x00040071u, 0x00000006u, 0x00005660u, + 0x0000565fu, 0x00060050u, 0x00000358u, 0x00005668u, 0x00005660u, 0x00005660u, 0x00005660u, 0x000500c2u, + 0x00000358u, 0x00005669u, 0x00005668u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x0000566bu, 0x00005669u, + 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x0000566eu, 0x0000566bu, 0x0000bdceu, 0x000500c2u, 0x00000358u, + 0x00005671u, 0x0000566bu, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00005672u, 0x0000566eu, 0x00005671u, + 0x000500c7u, 0x00000006u, 0x00005674u, 0x00005660u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005675u, + 0x00005674u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005677u, 0x00005672u, 0x0004007cu, 0x00000008u, + 0x00005679u, 0x00005675u, 0x00050051u, 0x00000008u, 0x0000567au, 0x00005677u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x0000567bu, 0x00005677u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000567cu, 0x00005677u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x0000567du, 0x0000567au, 0x0000567bu, 0x0000567cu, 0x00005679u, + 0x000200f9u, 0x00004adbu, 0x000200f8u, 0x00004adbu, 0x000700f5u, 0x00000009u, 0x000082bcu, 0x000081feu, + 0x00004ad1u, 0x0000567du, 0x00004ad3u, 0x000200f9u, 0x00004afdu, 0x000200f8u, 0x00004a9au, 0x0004007cu, + 0x000000a6u, 0x00004a9cu, 0x00007e2fu, 0x00050051u, 0x00000006u, 0x000054f4u, 0x00004a9cu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000054f5u, 0x000047dbu, 0x000054f4u, 0x00050080u, 0x00000006u, 0x000054f6u, + 0x000047d8u, 0x000054f5u, 0x00050051u, 0x00000006u, 0x000054f8u, 0x00004a9cu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x000054fau, 0x000054f6u, 0x000054f8u, 0x000500c7u, 0x00000006u, 0x000054fcu, 0x000054fau, + 0x00000e67u, 0x000500c7u, 0x00000006u, 0x00005500u, 0x000054f4u, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x00005501u, 0x00005500u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005503u, 0x000054fcu, 0x00005501u, + 0x000500c6u, 0x00000006u, 0x00005505u, 0x00005503u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005508u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005505u, 0x0004003du, 0x0000022eu, 0x00005509u, + 0x00005508u, 0x00040071u, 0x00000006u, 0x0000550au, 0x00005509u, 0x0004007cu, 0x00000008u, 0x0000550cu, + 0x0000550au, 0x00070050u, 0x00000009u, 0x0000550du, 0x0000550cu, 0x0000550cu, 0x0000550cu, 0x0000550cu, + 0x000300f7u, 0x00004ab0u, 0x00000000u, 0x000400fau, 0x00002257u, 0x00004aa1u, 0x00004ab0u, 0x000200f8u, + 0x00004aa1u, 0x00050050u, 0x0000005fu, 0x00004aa4u, 0x00007e10u, 0x000049a4u, 0x0004007cu, 0x000000a6u, + 0x00004aa5u, 0x00004aa4u, 0x00050051u, 0x00000006u, 0x00005518u, 0x00004aa5u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005519u, 0x000047dbu, 0x00005518u, 0x00050080u, 0x00000006u, 0x0000551au, 0x000047d8u, + 0x00005519u, 0x00050051u, 0x00000006u, 0x0000551cu, 0x00004aa5u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x0000551eu, 0x0000551au, 0x0000551cu, 0x000500c7u, 0x00000006u, 0x00005520u, 0x0000551eu, 0x00000e67u, + 0x000500c7u, 0x00000006u, 0x00005524u, 0x00005518u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005525u, + 0x00005524u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005527u, 0x00005520u, 0x00005525u, 0x000500c6u, + 0x00000006u, 0x00005529u, 0x00005527u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x0000552cu, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00005529u, 0x0004003du, 0x0000022eu, 0x0000552du, 0x0000552cu, + 0x00040071u, 0x00000006u, 0x0000552eu, 0x0000552du, 0x0004007cu, 0x00000008u, 0x00005530u, 0x0000552eu, + 0x00070050u, 0x00000009u, 0x00005531u, 0x00005530u, 0x00005530u, 0x00005530u, 0x00005530u, 0x00050050u, + 0x0000005fu, 0x00004aabu, 0x00007e08u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004aacu, 0x00004aabu, + 0x00050051u, 0x00000006u, 0x0000553cu, 0x00004aacu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000553du, + 0x000047dbu, 0x0000553cu, 0x00050080u, 0x00000006u, 0x0000553eu, 0x000047d8u, 0x0000553du, 0x00050051u, + 0x00000006u, 0x00005540u, 0x00004aacu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005542u, 0x0000553eu, + 0x00005540u, 0x000500c7u, 0x00000006u, 0x00005544u, 0x00005542u, 0x00000e67u, 0x000500c7u, 0x00000006u, + 0x00005548u, 0x0000553cu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005549u, 0x00005548u, 0x0000021au, + 0x000500c6u, 0x00000006u, 0x0000554bu, 0x00005544u, 0x00005549u, 0x000500c6u, 0x00000006u, 0x0000554du, + 0x0000554bu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005550u, 0x00000e81u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x0000554du, 0x0004003du, 0x0000022eu, 0x00005551u, 0x00005550u, 0x00040071u, 0x00000006u, + 0x00005552u, 0x00005551u, 0x0004007cu, 0x00000008u, 0x00005554u, 0x00005552u, 0x00070050u, 0x00000009u, + 0x00005555u, 0x00005554u, 0x00005554u, 0x00005554u, 0x00005554u, 0x000200f9u, 0x00004ab0u, 0x000200f8u, + 0x00004ab0u, 0x000700f5u, 0x00000009u, 0x000081c3u, 0x00008109u, 0x00004a9au, 0x00005555u, 0x00004aa1u, + 0x000700f5u, 0x00000009u, 0x000080cbu, 0x0000800eu, 0x00004a9au, 0x00005531u, 0x00004aa1u, 0x000300f7u, + 0x00004abau, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004ab2u, 0x00004abau, 0x000200f8u, 0x00004ab2u, + 0x00050050u, 0x0000005fu, 0x00004ab5u, 0x00007e10u, 0x000049a6u, 0x0004007cu, 0x000000a6u, 0x00004ab6u, + 0x00004ab5u, 0x00050051u, 0x00000006u, 0x00005560u, 0x00004ab6u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005561u, 0x000047dbu, 0x00005560u, 0x00050080u, 0x00000006u, 0x00005562u, 0x000047d8u, 0x00005561u, + 0x00050051u, 0x00000006u, 0x00005564u, 0x00004ab6u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005566u, + 0x00005562u, 0x00005564u, 0x000500c7u, 0x00000006u, 0x00005568u, 0x00005566u, 0x00000e67u, 0x000500c7u, + 0x00000006u, 0x0000556cu, 0x00005560u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000556du, 0x0000556cu, + 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000556fu, 0x00005568u, 0x0000556du, 0x000500c6u, 0x00000006u, + 0x00005571u, 0x0000556fu, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005574u, 0x00000e81u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x00005571u, 0x0004003du, 0x0000022eu, 0x00005575u, 0x00005574u, 0x00040071u, + 0x00000006u, 0x00005576u, 0x00005575u, 0x0004007cu, 0x00000008u, 0x00005578u, 0x00005576u, 0x00070050u, + 0x00000009u, 0x00005579u, 0x00005578u, 0x00005578u, 0x00005578u, 0x00005578u, 0x000200f9u, 0x00004abau, + 0x000200f8u, 0x00004abau, 0x000700f5u, 0x00000009u, 0x000082bau, 0x000081feu, 0x00004ab0u, 0x00005579u, + 0x00004ab2u, 0x000200f9u, 0x00004afdu, 0x000200f8u, 0x00004a79u, 0x0004007cu, 0x000000a6u, 0x00004a7bu, + 0x00007e2fu, 0x00050051u, 0x00000006u, 0x00005429u, 0x00004a7bu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000542au, 0x000047dbu, 0x00005429u, 0x00050080u, 0x00000006u, 0x0000542bu, 0x000047d8u, 0x0000542au, + 0x00050051u, 0x00000006u, 0x0000542du, 0x00004a7bu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000542eu, + 0x0000542du, 0x00000217u, 0x00050080u, 0x00000006u, 0x00005430u, 0x0000542bu, 0x0000542eu, 0x000500c7u, + 0x00000006u, 0x00005432u, 0x00005430u, 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00005435u, 0x0000542du, + 0x000500c7u, 0x00000006u, 0x00005436u, 0x00005435u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005437u, + 0x00005436u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x0000543bu, 0x00005429u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x0000543cu, 0x0000543bu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000543eu, 0x00005432u, + 0x0000543cu, 0x000500c6u, 0x00000006u, 0x00005440u, 0x0000543eu, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x00005443u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005440u, 0x0004003du, 0x0000022eu, + 0x00005444u, 0x00005443u, 0x00040071u, 0x00000006u, 0x00005445u, 0x00005444u, 0x000500c2u, 0x00000006u, + 0x00005448u, 0x00005445u, 0x00005437u, 0x000500c7u, 0x00000006u, 0x00005449u, 0x00005448u, 0x00000e8au, + 0x000500c4u, 0x00000006u, 0x0000544bu, 0x00005449u, 0x00000220u, 0x000500c5u, 0x00000006u, 0x0000544du, + 0x00005449u, 0x0000544bu, 0x0004007cu, 0x00000008u, 0x0000544fu, 0x0000544du, 0x00070050u, 0x00000009u, + 0x00005450u, 0x0000544fu, 0x0000544fu, 0x0000544fu, 0x0000544fu, 0x000300f7u, 0x00004a8fu, 0x00000000u, + 0x000400fau, 0x00002257u, 0x00004a80u, 0x00004a8fu, 0x000200f8u, 0x00004a80u, 0x00050050u, 0x0000005fu, + 0x00004a83u, 0x00007e10u, 0x000049a4u, 0x0004007cu, 0x000000a6u, 0x00004a84u, 0x00004a83u, 0x00050051u, + 0x00000006u, 0x0000545cu, 0x00004a84u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000545du, 0x000047dbu, + 0x0000545cu, 0x00050080u, 0x00000006u, 0x0000545eu, 0x000047d8u, 0x0000545du, 0x00050051u, 0x00000006u, + 0x00005460u, 0x00004a84u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005461u, 0x00005460u, 0x00000217u, + 0x00050080u, 0x00000006u, 0x00005463u, 0x0000545eu, 0x00005461u, 0x000500c7u, 0x00000006u, 0x00005465u, + 0x00005463u, 0x00000e67u, 0x000400c8u, 0x00000006u, 0x00005468u, 0x00005460u, 0x000500c7u, 0x00000006u, + 0x00005469u, 0x00005468u, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000546au, 0x00005469u, 0x00000706u, + 0x000500c7u, 0x00000006u, 0x0000546eu, 0x0000545cu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x0000546fu, + 0x0000546eu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005471u, 0x00005465u, 0x0000546fu, 0x000500c6u, + 0x00000006u, 0x00005473u, 0x00005471u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005476u, 0x00000e81u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x00005473u, 0x0004003du, 0x0000022eu, 0x00005477u, 0x00005476u, + 0x00040071u, 0x00000006u, 0x00005478u, 0x00005477u, 0x000500c2u, 0x00000006u, 0x0000547bu, 0x00005478u, + 0x0000546au, 0x000500c7u, 0x00000006u, 0x0000547cu, 0x0000547bu, 0x00000e8au, 0x000500c4u, 0x00000006u, + 0x0000547eu, 0x0000547cu, 0x00000220u, 0x000500c5u, 0x00000006u, 0x00005480u, 0x0000547cu, 0x0000547eu, + 0x0004007cu, 0x00000008u, 0x00005482u, 0x00005480u, 0x00070050u, 0x00000009u, 0x00005483u, 0x00005482u, + 0x00005482u, 0x00005482u, 0x00005482u, 0x00050050u, 0x0000005fu, 0x00004a8au, 0x00007e08u, 0x000049a6u, + 0x0004007cu, 0x000000a6u, 0x00004a8bu, 0x00004a8au, 0x00050051u, 0x00000006u, 0x0000548fu, 0x00004a8bu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005490u, 0x000047dbu, 0x0000548fu, 0x00050080u, 0x00000006u, + 0x00005491u, 0x000047d8u, 0x00005490u, 0x00050051u, 0x00000006u, 0x00005493u, 0x00004a8bu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00005494u, 0x00005493u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00005496u, + 0x00005491u, 0x00005494u, 0x000500c7u, 0x00000006u, 0x00005498u, 0x00005496u, 0x00000e67u, 0x000400c8u, + 0x00000006u, 0x0000549bu, 0x00005493u, 0x000500c7u, 0x00000006u, 0x0000549cu, 0x0000549bu, 0x0000048au, + 0x00050084u, 0x00000006u, 0x0000549du, 0x0000549cu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000054a1u, + 0x0000548fu, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000054a2u, 0x000054a1u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000054a4u, 0x00005498u, 0x000054a2u, 0x000500c6u, 0x00000006u, 0x000054a6u, 0x000054a4u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000054a9u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x000054a6u, 0x0004003du, 0x0000022eu, 0x000054aau, 0x000054a9u, 0x00040071u, 0x00000006u, 0x000054abu, + 0x000054aau, 0x000500c2u, 0x00000006u, 0x000054aeu, 0x000054abu, 0x0000549du, 0x000500c7u, 0x00000006u, + 0x000054afu, 0x000054aeu, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x000054b1u, 0x000054afu, 0x00000220u, + 0x000500c5u, 0x00000006u, 0x000054b3u, 0x000054afu, 0x000054b1u, 0x0004007cu, 0x00000008u, 0x000054b5u, + 0x000054b3u, 0x00070050u, 0x00000009u, 0x000054b6u, 0x000054b5u, 0x000054b5u, 0x000054b5u, 0x000054b5u, + 0x000200f9u, 0x00004a8fu, 0x000200f8u, 0x00004a8fu, 0x000700f5u, 0x00000009u, 0x000081c1u, 0x00008109u, + 0x00004a79u, 0x000054b6u, 0x00004a80u, 0x000700f5u, 0x00000009u, 0x000080c9u, 0x0000800eu, 0x00004a79u, + 0x00005483u, 0x00004a80u, 0x000300f7u, 0x00004a99u, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004a91u, + 0x00004a99u, 0x000200f8u, 0x00004a91u, 0x00050050u, 0x0000005fu, 0x00004a94u, 0x00007e10u, 0x000049a6u, + 0x0004007cu, 0x000000a6u, 0x00004a95u, 0x00004a94u, 0x00050051u, 0x00000006u, 0x000054c2u, 0x00004a95u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000054c3u, 0x000047dbu, 0x000054c2u, 0x00050080u, 0x00000006u, + 0x000054c4u, 0x000047d8u, 0x000054c3u, 0x00050051u, 0x00000006u, 0x000054c6u, 0x00004a95u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000054c7u, 0x000054c6u, 0x00000217u, 0x00050080u, 0x00000006u, 0x000054c9u, + 0x000054c4u, 0x000054c7u, 0x000500c7u, 0x00000006u, 0x000054cbu, 0x000054c9u, 0x00000e67u, 0x000400c8u, + 0x00000006u, 0x000054ceu, 0x000054c6u, 0x000500c7u, 0x00000006u, 0x000054cfu, 0x000054ceu, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000054d0u, 0x000054cfu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000054d4u, + 0x000054c2u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000054d5u, 0x000054d4u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000054d7u, 0x000054cbu, 0x000054d5u, 0x000500c6u, 0x00000006u, 0x000054d9u, 0x000054d7u, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000054dcu, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x000054d9u, 0x0004003du, 0x0000022eu, 0x000054ddu, 0x000054dcu, 0x00040071u, 0x00000006u, 0x000054deu, + 0x000054ddu, 0x000500c2u, 0x00000006u, 0x000054e1u, 0x000054deu, 0x000054d0u, 0x000500c7u, 0x00000006u, + 0x000054e2u, 0x000054e1u, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x000054e4u, 0x000054e2u, 0x00000220u, + 0x000500c5u, 0x00000006u, 0x000054e6u, 0x000054e2u, 0x000054e4u, 0x0004007cu, 0x00000008u, 0x000054e8u, + 0x000054e6u, 0x00070050u, 0x00000009u, 0x000054e9u, 0x000054e8u, 0x000054e8u, 0x000054e8u, 0x000054e8u, + 0x000200f9u, 0x00004a99u, 0x000200f8u, 0x00004a99u, 0x000700f5u, 0x00000009u, 0x000082b8u, 0x000081feu, + 0x00004a8fu, 0x000054e9u, 0x00004a91u, 0x000200f9u, 0x00004afdu, 0x000200f8u, 0x00004afdu, 0x000d00f5u, + 0x00000009u, 0x000082b7u, 0x000081feu, 0x00004a76u, 0x000082b8u, 0x00004a99u, 0x000082bau, 0x00004abau, + 0x000082bcu, 0x00004adbu, 0x000082beu, 0x00004afcu, 0x000d00f5u, 0x00000009u, 0x000081bfu, 0x00008109u, + 0x00004a76u, 0x000081c1u, 0x00004a99u, 0x000081c3u, 0x00004abau, 0x000081c5u, 0x00004adbu, 0x000081c7u, + 0x00004afcu, 0x000d00f5u, 0x00000009u, 0x000080c7u, 0x0000800eu, 0x00004a76u, 0x000080c9u, 0x00004a99u, + 0x000080cbu, 0x00004abau, 0x000080cdu, 0x00004adbu, 0x000080cfu, 0x00004afcu, 0x000d00f5u, 0x00000009u, + 0x00007f5au, 0x00007ea2u, 0x00004a76u, 0x00005450u, 0x00004a99u, 0x0000550du, 0x00004abau, 0x000055bau, + 0x00004adbu, 0x000056b4u, 0x00004afcu, 0x000200f9u, 0x00004c8eu, 0x000200f8u, 0x00004c8eu, 0x000f00f5u, + 0x00000009u, 0x000082b6u, 0x000081feu, 0x00004a73u, 0x000082b7u, 0x00004afdu, 0x000082c0u, 0x00004b2bu, + 0x000082c1u, 0x00004b9eu, 0x000082c8u, 0x00004c26u, 0x000082d1u, 0x00004c8du, 0x000f00f5u, 0x00000009u, + 0x000081beu, 0x00008109u, 0x00004a73u, 0x000081bfu, 0x00004afdu, 0x000081c8u, 0x00004b2bu, 0x000081c9u, + 0x00004b9eu, 0x000081d0u, 0x00004c26u, 0x000081d9u, 0x00004c8du, 0x000f00f5u, 0x00000009u, 0x000080c6u, + 0x0000800eu, 0x00004a73u, 0x000080c7u, 0x00004afdu, 0x000080d0u, 0x00004b2bu, 0x000080d1u, 0x00004b9eu, + 0x000080d8u, 0x00004c26u, 0x000080e1u, 0x00004c8du, 0x000f00f5u, 0x00000009u, 0x00007f59u, 0x00007ea2u, + 0x00004a73u, 0x00007f5au, 0x00004afdu, 0x000057a5u, 0x00004b2bu, 0x00007f64u, 0x00004b9eu, 0x00007f6bu, + 0x00004c26u, 0x00007f74u, 0x00004c8du, 0x000200f9u, 0x00004c8fu, 0x000200f8u, 0x000049cdu, 0x000400a8u, + 0x0000005du, 0x000049cfu, 0x00002257u, 0x000300f7u, 0x000049d6u, 0x00000000u, 0x000400fau, 0x000049cfu, + 0x000049d0u, 0x000049d6u, 0x000200f8u, 0x000049d0u, 0x00050050u, 0x0000005fu, 0x000049d3u, 0x00007e08u, + 0x000049a4u, 0x000200f9u, 0x000049d6u, 0x000200f8u, 0x000049d6u, 0x000700f5u, 0x0000005fu, 0x00007e55u, + 0x00007e2fu, 0x000049cdu, 0x000049d3u, 0x000049d0u, 0x000600a9u, 0x00000008u, 0x0000be09u, 0x000049cfu, + 0x000049a4u, 0x000049a6u, 0x000600a9u, 0x00000008u, 0x0000be0au, 0x000049cfu, 0x00007e08u, 0x00007e10u, + 0x000300f7u, 0x00004a72u, 0x00000000u, 0x000b00fbu, 0x000047e0u, 0x00004a72u, 0x00000000u, 0x000049d9u, + 0x00000002u, 0x000049d9u, 0x00000003u, 0x000049d9u, 0x00000004u, 0x000049d9u, 0x000200f8u, 0x000049d9u, + 0x000600a9u, 0x00000008u, 0x000049ddu, 0x000049b2u, 0x0000021au, 0x00000217u, 0x0004007cu, 0x00000006u, + 0x000049deu, 0x000049ddu, 0x000300f7u, 0x00004a71u, 0x00000000u, 0x000700fbu, 0x000047e5u, 0x000049e1u, + 0x00000000u, 0x00004a0du, 0x00000001u, 0x00004a45u, 0x000200f8u, 0x00004a45u, 0x0004007cu, 0x000000a6u, + 0x00004a47u, 0x00007e55u, 0x000600a9u, 0x00000008u, 0x00004a49u, 0x000049bau, 0x0000021du, 0x00000208u, + 0x0004007cu, 0x00000006u, 0x00004a4au, 0x00004a49u, 0x00050051u, 0x00000006u, 0x00005290u, 0x00004a47u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005291u, 0x000047dbu, 0x00005290u, 0x00050080u, 0x00000006u, + 0x00005292u, 0x000047d8u, 0x00005291u, 0x00050051u, 0x00000006u, 0x00005294u, 0x00004a47u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005296u, 0x00005292u, 0x00005294u, 0x000500c7u, 0x00000006u, 0x00005298u, + 0x00005296u, 0x00000f19u, 0x000500c7u, 0x00000006u, 0x0000529cu, 0x00005290u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x0000529du, 0x0000529cu, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000529fu, 0x00005298u, + 0x0000529du, 0x000500c6u, 0x00000006u, 0x000052a1u, 0x0000529fu, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x000052a4u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000052a1u, 0x0004003du, 0x0000022eu, + 0x000052a5u, 0x000052a4u, 0x00040071u, 0x00000006u, 0x000052a6u, 0x000052a5u, 0x000500c4u, 0x00000006u, + 0x000052a8u, 0x000052a6u, 0x0000021au, 0x00050080u, 0x00000006u, 0x000052aau, 0x000052a8u, 0x00004a4au, + 0x000500c6u, 0x00000006u, 0x000052adu, 0x000052aau, 0x000049deu, 0x000500c5u, 0x00000006u, 0x000052b0u, + 0x00000f4au, 0x000052adu, 0x00080041u, 0x00000275u, 0x000052b1u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x000052b0u, 0x0004003du, 0x00000230u, 0x000052b2u, 0x000052b1u, 0x00040071u, 0x00000006u, + 0x000052b3u, 0x000052b2u, 0x000300f7u, 0x000052bbu, 0x00000000u, 0x000400fau, 0x00002254u, 0x000052b5u, + 0x000052b8u, 0x000200f8u, 0x000052b8u, 0x00060050u, 0x00000358u, 0x000052d3u, 0x000052b3u, 0x000052b3u, + 0x000052b3u, 0x000500c2u, 0x00000358u, 0x000052d4u, 0x000052d3u, 0x00000e2eu, 0x000500c7u, 0x00000358u, + 0x000052d6u, 0x000052d4u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x000052d9u, 0x000052d6u, 0x0000bdceu, + 0x000500c2u, 0x00000358u, 0x000052dcu, 0x000052d6u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x000052ddu, + 0x000052d9u, 0x000052dcu, 0x000500c7u, 0x00000006u, 0x000052dfu, 0x000052b3u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x000052e0u, 0x000052dfu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000052e2u, 0x000052ddu, + 0x0004007cu, 0x00000008u, 0x000052e4u, 0x000052e0u, 0x00050051u, 0x00000008u, 0x000052e5u, 0x000052e2u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000052e6u, 0x000052e2u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000052e7u, 0x000052e2u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000052e8u, 0x000052e5u, 0x000052e6u, + 0x000052e7u, 0x000052e4u, 0x000200f9u, 0x000052bbu, 0x000200f8u, 0x000052b5u, 0x000500c2u, 0x00000006u, + 0x000052c2u, 0x000052b3u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000052c4u, 0x000052b3u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x000052c6u, 0x000052c2u, 0x0004007cu, 0x00000008u, 0x000052ccu, 0x000052c4u, + 0x00070050u, 0x00000009u, 0x000052cdu, 0x000052c6u, 0x000052c6u, 0x000052c6u, 0x000052ccu, 0x000200f9u, + 0x000052bbu, 0x000200f8u, 0x000052bbu, 0x000700f5u, 0x00000009u, 0x00007e56u, 0x000052cdu, 0x000052b5u, + 0x000052e8u, 0x000052b8u, 0x000300f7u, 0x00004a64u, 0x00000000u, 0x000400fau, 0x00002296u, 0x00004a51u, + 0x00004a64u, 0x000200f8u, 0x00004a51u, 0x00050050u, 0x0000005fu, 0x00004a54u, 0x0000be0au, 0x000049a4u, + 0x0004007cu, 0x000000a6u, 0x00004a55u, 0x00004a54u, 0x00050051u, 0x00000006u, 0x000052f7u, 0x00004a55u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000052f8u, 0x000047dbu, 0x000052f7u, 0x00050080u, 0x00000006u, + 0x000052f9u, 0x000047d8u, 0x000052f8u, 0x00050051u, 0x00000006u, 0x000052fbu, 0x00004a55u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x000052fdu, 0x000052f9u, 0x000052fbu, 0x000500c7u, 0x00000006u, 0x000052ffu, + 0x000052fdu, 0x00000f19u, 0x000500c7u, 0x00000006u, 0x00005303u, 0x000052f7u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00005304u, 0x00005303u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005306u, 0x000052ffu, + 0x00005304u, 0x000500c6u, 0x00000006u, 0x00005308u, 0x00005306u, 0x00000490u, 0x00080041u, 0x0000027cu, + 0x0000530bu, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005308u, 0x0004003du, 0x0000022eu, + 0x0000530cu, 0x0000530bu, 0x00040071u, 0x00000006u, 0x0000530du, 0x0000530cu, 0x000500c4u, 0x00000006u, + 0x0000530fu, 0x0000530du, 0x0000021au, 0x00050080u, 0x00000006u, 0x00005311u, 0x0000530fu, 0x0000048au, + 0x000500c6u, 0x00000006u, 0x00005314u, 0x00005311u, 0x000049deu, 0x000500c5u, 0x00000006u, 0x00005317u, + 0x00000f4au, 0x00005314u, 0x00080041u, 0x00000275u, 0x00005318u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00005317u, 0x0004003du, 0x00000230u, 0x00005319u, 0x00005318u, 0x00040071u, 0x00000006u, + 0x0000531au, 0x00005319u, 0x000300f7u, 0x00005322u, 0x00000000u, 0x000400fau, 0x00002254u, 0x0000531cu, + 0x0000531fu, 0x000200f8u, 0x0000531fu, 0x00060050u, 0x00000358u, 0x0000533au, 0x0000531au, 0x0000531au, + 0x0000531au, 0x000500c2u, 0x00000358u, 0x0000533bu, 0x0000533au, 0x00000e2eu, 0x000500c7u, 0x00000358u, + 0x0000533du, 0x0000533bu, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00005340u, 0x0000533du, 0x0000bdceu, + 0x000500c2u, 0x00000358u, 0x00005343u, 0x0000533du, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00005344u, + 0x00005340u, 0x00005343u, 0x000500c7u, 0x00000006u, 0x00005346u, 0x0000531au, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00005347u, 0x00005346u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005349u, 0x00005344u, + 0x0004007cu, 0x00000008u, 0x0000534bu, 0x00005347u, 0x00050051u, 0x00000008u, 0x0000534cu, 0x00005349u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x0000534du, 0x00005349u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x0000534eu, 0x00005349u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000534fu, 0x0000534cu, 0x0000534du, + 0x0000534eu, 0x0000534bu, 0x000200f9u, 0x00005322u, 0x000200f8u, 0x0000531cu, 0x000500c2u, 0x00000006u, + 0x00005329u, 0x0000531au, 0x00000263u, 0x000500c7u, 0x00000006u, 0x0000532bu, 0x0000531au, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x0000532du, 0x00005329u, 0x0004007cu, 0x00000008u, 0x00005333u, 0x0000532bu, + 0x00070050u, 0x00000009u, 0x00005334u, 0x0000532du, 0x0000532du, 0x0000532du, 0x00005333u, 0x000200f9u, + 0x00005322u, 0x000200f8u, 0x00005322u, 0x000700f5u, 0x00000009u, 0x00007e5du, 0x00005334u, 0x0000531cu, + 0x0000534fu, 0x0000531fu, 0x00050050u, 0x0000005fu, 0x00004a5du, 0x00007e08u, 0x0000be09u, 0x0004007cu, + 0x000000a6u, 0x00004a5eu, 0x00004a5du, 0x00050051u, 0x00000006u, 0x0000535eu, 0x00004a5eu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000535fu, 0x000047dbu, 0x0000535eu, 0x00050080u, 0x00000006u, 0x00005360u, + 0x000047d8u, 0x0000535fu, 0x00050051u, 0x00000006u, 0x00005362u, 0x00004a5eu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00005364u, 0x00005360u, 0x00005362u, 0x000500c7u, 0x00000006u, 0x00005366u, 0x00005364u, + 0x00000f19u, 0x000500c7u, 0x00000006u, 0x0000536au, 0x0000535eu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x0000536bu, 0x0000536au, 0x0000021au, 0x000500c6u, 0x00000006u, 0x0000536du, 0x00005366u, 0x0000536bu, + 0x000500c6u, 0x00000006u, 0x0000536fu, 0x0000536du, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005372u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x0000536fu, 0x0004003du, 0x0000022eu, 0x00005373u, + 0x00005372u, 0x00040071u, 0x00000006u, 0x00005374u, 0x00005373u, 0x000500c4u, 0x00000006u, 0x00005376u, + 0x00005374u, 0x0000021au, 0x00050080u, 0x00000006u, 0x00005378u, 0x00005376u, 0x000003c9u, 0x000500c6u, + 0x00000006u, 0x0000537bu, 0x00005378u, 0x000049deu, 0x000500c5u, 0x00000006u, 0x0000537eu, 0x00000f4au, + 0x0000537bu, 0x00080041u, 0x00000275u, 0x0000537fu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x0000537eu, 0x0004003du, 0x00000230u, 0x00005380u, 0x0000537fu, 0x00040071u, 0x00000006u, 0x00005381u, + 0x00005380u, 0x000300f7u, 0x00005389u, 0x00000000u, 0x000400fau, 0x00002254u, 0x00005383u, 0x00005386u, + 0x000200f8u, 0x00005386u, 0x00060050u, 0x00000358u, 0x000053a1u, 0x00005381u, 0x00005381u, 0x00005381u, + 0x000500c2u, 0x00000358u, 0x000053a2u, 0x000053a1u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x000053a4u, + 0x000053a2u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x000053a7u, 0x000053a4u, 0x0000bdceu, 0x000500c2u, + 0x00000358u, 0x000053aau, 0x000053a4u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x000053abu, 0x000053a7u, + 0x000053aau, 0x000500c7u, 0x00000006u, 0x000053adu, 0x00005381u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x000053aeu, 0x000053adu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000053b0u, 0x000053abu, 0x0004007cu, + 0x00000008u, 0x000053b2u, 0x000053aeu, 0x00050051u, 0x00000008u, 0x000053b3u, 0x000053b0u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000053b4u, 0x000053b0u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000053b5u, + 0x000053b0u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000053b6u, 0x000053b3u, 0x000053b4u, 0x000053b5u, + 0x000053b2u, 0x000200f9u, 0x00005389u, 0x000200f8u, 0x00005383u, 0x000500c2u, 0x00000006u, 0x00005390u, + 0x00005381u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005392u, 0x00005381u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00005394u, 0x00005390u, 0x0004007cu, 0x00000008u, 0x0000539au, 0x00005392u, 0x00070050u, + 0x00000009u, 0x0000539bu, 0x00005394u, 0x00005394u, 0x00005394u, 0x0000539au, 0x000200f9u, 0x00005389u, + 0x000200f8u, 0x00005389u, 0x000700f5u, 0x00000009u, 0x00007e62u, 0x0000539bu, 0x00005383u, 0x000053b6u, + 0x00005386u, 0x000200f9u, 0x00004a64u, 0x000200f8u, 0x00004a64u, 0x000700f5u, 0x00000009u, 0x000081bbu, + 0x00008109u, 0x000052bbu, 0x00007e62u, 0x00005389u, 0x000700f5u, 0x00000009u, 0x000080c2u, 0x0000800eu, + 0x000052bbu, 0x00007e5du, 0x00005389u, 0x000300f7u, 0x00004a70u, 0x00000000u, 0x000400fau, 0x000049b0u, + 0x00004a66u, 0x00004a70u, 0x000200f8u, 0x00004a66u, 0x00050050u, 0x0000005fu, 0x00004a69u, 0x0000be0au, + 0x0000be09u, 0x0004007cu, 0x000000a6u, 0x00004a6au, 0x00004a69u, 0x00050051u, 0x00000006u, 0x000053c5u, + 0x00004a6au, 0x00000001u, 0x00050084u, 0x00000006u, 0x000053c6u, 0x000047dbu, 0x000053c5u, 0x00050080u, + 0x00000006u, 0x000053c7u, 0x000047d8u, 0x000053c6u, 0x00050051u, 0x00000006u, 0x000053c9u, 0x00004a6au, + 0x00000000u, 0x00050080u, 0x00000006u, 0x000053cbu, 0x000053c7u, 0x000053c9u, 0x000500c7u, 0x00000006u, + 0x000053cdu, 0x000053cbu, 0x00000f19u, 0x000500c7u, 0x00000006u, 0x000053d1u, 0x000053c5u, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x000053d2u, 0x000053d1u, 0x0000021au, 0x000500c6u, 0x00000006u, 0x000053d4u, + 0x000053cdu, 0x000053d2u, 0x000500c6u, 0x00000006u, 0x000053d6u, 0x000053d4u, 0x00000490u, 0x00080041u, + 0x0000027cu, 0x000053d9u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x000053d6u, 0x0004003du, + 0x0000022eu, 0x000053dau, 0x000053d9u, 0x00040071u, 0x00000006u, 0x000053dbu, 0x000053dau, 0x000500c4u, + 0x00000006u, 0x000053ddu, 0x000053dbu, 0x0000021au, 0x00050080u, 0x00000006u, 0x000053dfu, 0x000053ddu, + 0x00000490u, 0x000500c6u, 0x00000006u, 0x000053e2u, 0x000053dfu, 0x000049deu, 0x000500c5u, 0x00000006u, + 0x000053e5u, 0x00000f4au, 0x000053e2u, 0x00080041u, 0x00000275u, 0x000053e6u, 0x00000f48u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x000053e5u, 0x0004003du, 0x00000230u, 0x000053e7u, 0x000053e6u, 0x00040071u, + 0x00000006u, 0x000053e8u, 0x000053e7u, 0x000300f7u, 0x000053f0u, 0x00000000u, 0x000400fau, 0x00002254u, + 0x000053eau, 0x000053edu, 0x000200f8u, 0x000053edu, 0x00060050u, 0x00000358u, 0x00005408u, 0x000053e8u, + 0x000053e8u, 0x000053e8u, 0x000500c2u, 0x00000358u, 0x00005409u, 0x00005408u, 0x00000e2eu, 0x000500c7u, + 0x00000358u, 0x0000540bu, 0x00005409u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x0000540eu, 0x0000540bu, + 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x00005411u, 0x0000540bu, 0x0000bdcfu, 0x000500c5u, 0x00000358u, + 0x00005412u, 0x0000540eu, 0x00005411u, 0x000500c7u, 0x00000006u, 0x00005414u, 0x000053e8u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x00005415u, 0x00005414u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005417u, + 0x00005412u, 0x0004007cu, 0x00000008u, 0x00005419u, 0x00005415u, 0x00050051u, 0x00000008u, 0x0000541au, + 0x00005417u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000541bu, 0x00005417u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x0000541cu, 0x00005417u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000541du, 0x0000541au, + 0x0000541bu, 0x0000541cu, 0x00005419u, 0x000200f9u, 0x000053f0u, 0x000200f8u, 0x000053eau, 0x000500c2u, + 0x00000006u, 0x000053f7u, 0x000053e8u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000053f9u, 0x000053e8u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000053fbu, 0x000053f7u, 0x0004007cu, 0x00000008u, 0x00005401u, + 0x000053f9u, 0x00070050u, 0x00000009u, 0x00005402u, 0x000053fbu, 0x000053fbu, 0x000053fbu, 0x00005401u, + 0x000200f9u, 0x000053f0u, 0x000200f8u, 0x000053f0u, 0x000700f5u, 0x00000009u, 0x00007e68u, 0x00005402u, + 0x000053eau, 0x0000541du, 0x000053edu, 0x000200f9u, 0x00004a70u, 0x000200f8u, 0x00004a70u, 0x000700f5u, + 0x00000009u, 0x000082b1u, 0x000081feu, 0x00004a64u, 0x00007e68u, 0x000053f0u, 0x000200f9u, 0x00004a71u, + 0x000200f8u, 0x00004a0du, 0x0004007cu, 0x000000a6u, 0x00004a0fu, 0x00007e55u, 0x0004007cu, 0x00000006u, + 0x00004a12u, 0x000047eau, 0x000600a9u, 0x00000008u, 0x00004a14u, 0x000049bau, 0x0000021du, 0x00000208u, + 0x0004007cu, 0x00000006u, 0x00004a15u, 0x00004a14u, 0x00050051u, 0x00000006u, 0x000050b9u, 0x00004a0fu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000050bau, 0x000047dbu, 0x000050b9u, 0x00050080u, 0x00000006u, + 0x000050bbu, 0x000047d8u, 0x000050bau, 0x00050051u, 0x00000006u, 0x000050bdu, 0x00004a0fu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000050beu, 0x000050bdu, 0x00000217u, 0x00050080u, 0x00000006u, 0x000050c0u, + 0x000050bbu, 0x000050beu, 0x000500c7u, 0x00000006u, 0x000050c2u, 0x000050c0u, 0x00000f19u, 0x000400c8u, + 0x00000006u, 0x000050c5u, 0x000050bdu, 0x000500c7u, 0x00000006u, 0x000050c6u, 0x000050c5u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000050c7u, 0x000050c6u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000050cbu, + 0x000050b9u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000050ccu, 0x000050cbu, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000050ceu, 0x000050c2u, 0x000050ccu, 0x000500c6u, 0x00000006u, 0x000050d0u, 0x000050ceu, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000050d3u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x000050d0u, 0x0004003du, 0x0000022eu, 0x000050d4u, 0x000050d3u, 0x00040071u, 0x00000006u, 0x000050d5u, + 0x000050d4u, 0x000500c2u, 0x00000006u, 0x000050d8u, 0x000050d5u, 0x000050c7u, 0x000500c7u, 0x00000006u, + 0x000050d9u, 0x000050d8u, 0x00000e8au, 0x000500c4u, 0x00000006u, 0x000050dbu, 0x00004a12u, 0x00000220u, + 0x000500c5u, 0x00000006u, 0x000050ddu, 0x000050d9u, 0x000050dbu, 0x000500c4u, 0x00000006u, 0x000050dfu, + 0x000050ddu, 0x0000021au, 0x00050080u, 0x00000006u, 0x000050e1u, 0x000050dfu, 0x00004a15u, 0x000500c6u, + 0x00000006u, 0x000050e4u, 0x000050e1u, 0x000049deu, 0x000500c5u, 0x00000006u, 0x000050e7u, 0x00000f4au, + 0x000050e4u, 0x00080041u, 0x00000275u, 0x000050e8u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x000050e7u, 0x0004003du, 0x00000230u, 0x000050e9u, 0x000050e8u, 0x00040071u, 0x00000006u, 0x000050eau, + 0x000050e9u, 0x000300f7u, 0x000050f2u, 0x00000000u, 0x000400fau, 0x00002254u, 0x000050ecu, 0x000050efu, + 0x000200f8u, 0x000050efu, 0x00060050u, 0x00000358u, 0x0000510au, 0x000050eau, 0x000050eau, 0x000050eau, + 0x000500c2u, 0x00000358u, 0x0000510bu, 0x0000510au, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x0000510du, + 0x0000510bu, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00005110u, 0x0000510du, 0x0000bdceu, 0x000500c2u, + 0x00000358u, 0x00005113u, 0x0000510du, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00005114u, 0x00005110u, + 0x00005113u, 0x000500c7u, 0x00000006u, 0x00005116u, 0x000050eau, 0x0000048au, 0x00050084u, 0x00000006u, + 0x00005117u, 0x00005116u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005119u, 0x00005114u, 0x0004007cu, + 0x00000008u, 0x0000511bu, 0x00005117u, 0x00050051u, 0x00000008u, 0x0000511cu, 0x00005119u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x0000511du, 0x00005119u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000511eu, + 0x00005119u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000511fu, 0x0000511cu, 0x0000511du, 0x0000511eu, + 0x0000511bu, 0x000200f9u, 0x000050f2u, 0x000200f8u, 0x000050ecu, 0x000500c2u, 0x00000006u, 0x000050f9u, + 0x000050eau, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000050fbu, 0x000050eau, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000050fdu, 0x000050f9u, 0x0004007cu, 0x00000008u, 0x00005103u, 0x000050fbu, 0x00070050u, + 0x00000009u, 0x00005104u, 0x000050fdu, 0x000050fdu, 0x000050fdu, 0x00005103u, 0x000200f9u, 0x000050f2u, + 0x000200f8u, 0x000050f2u, 0x000700f5u, 0x00000009u, 0x00007e69u, 0x00005104u, 0x000050ecu, 0x0000511fu, + 0x000050efu, 0x000300f7u, 0x00004a35u, 0x00000000u, 0x000400fau, 0x00002296u, 0x00004a1cu, 0x00004a35u, + 0x000200f8u, 0x00004a1cu, 0x00050050u, 0x0000005fu, 0x00004a1fu, 0x0000be0au, 0x000049a4u, 0x0004007cu, + 0x000000a6u, 0x00004a20u, 0x00004a1fu, 0x00050051u, 0x00000006u, 0x0000512fu, 0x00004a20u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005130u, 0x000047dbu, 0x0000512fu, 0x00050080u, 0x00000006u, 0x00005131u, + 0x000047d8u, 0x00005130u, 0x00050051u, 0x00000006u, 0x00005133u, 0x00004a20u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00005134u, 0x00005133u, 0x00000217u, 0x00050080u, 0x00000006u, 0x00005136u, 0x00005131u, + 0x00005134u, 0x000500c7u, 0x00000006u, 0x00005138u, 0x00005136u, 0x00000f19u, 0x000400c8u, 0x00000006u, + 0x0000513bu, 0x00005133u, 0x000500c7u, 0x00000006u, 0x0000513cu, 0x0000513bu, 0x0000048au, 0x00050084u, + 0x00000006u, 0x0000513du, 0x0000513cu, 0x00000706u, 0x000500c7u, 0x00000006u, 0x00005141u, 0x0000512fu, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00005142u, 0x00005141u, 0x0000021au, 0x000500c6u, 0x00000006u, + 0x00005144u, 0x00005138u, 0x00005142u, 0x000500c6u, 0x00000006u, 0x00005146u, 0x00005144u, 0x00000490u, + 0x00080041u, 0x0000027cu, 0x00005149u, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005146u, + 0x0004003du, 0x0000022eu, 0x0000514au, 0x00005149u, 0x00040071u, 0x00000006u, 0x0000514bu, 0x0000514au, + 0x000500c2u, 0x00000006u, 0x0000514eu, 0x0000514bu, 0x0000513du, 0x000500c7u, 0x00000006u, 0x0000514fu, + 0x0000514eu, 0x00000e8au, 0x000500c5u, 0x00000006u, 0x00005153u, 0x0000514fu, 0x000050dbu, 0x000500c4u, + 0x00000006u, 0x00005155u, 0x00005153u, 0x0000021au, 0x00050080u, 0x00000006u, 0x00005157u, 0x00005155u, + 0x0000048au, 0x000500c6u, 0x00000006u, 0x0000515au, 0x00005157u, 0x000049deu, 0x000500c5u, 0x00000006u, + 0x0000515du, 0x00000f4au, 0x0000515au, 0x00080041u, 0x00000275u, 0x0000515eu, 0x00000f48u, 0x00000208u, + 0x00002240u, 0x00000208u, 0x0000515du, 0x0004003du, 0x00000230u, 0x0000515fu, 0x0000515eu, 0x00040071u, + 0x00000006u, 0x00005160u, 0x0000515fu, 0x000300f7u, 0x00005168u, 0x00000000u, 0x000400fau, 0x00002254u, + 0x00005162u, 0x00005165u, 0x000200f8u, 0x00005165u, 0x00060050u, 0x00000358u, 0x00005180u, 0x00005160u, + 0x00005160u, 0x00005160u, 0x000500c2u, 0x00000358u, 0x00005181u, 0x00005180u, 0x00000e2eu, 0x000500c7u, + 0x00000358u, 0x00005183u, 0x00005181u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00005186u, 0x00005183u, + 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x00005189u, 0x00005183u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, + 0x0000518au, 0x00005186u, 0x00005189u, 0x000500c7u, 0x00000006u, 0x0000518cu, 0x00005160u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x0000518du, 0x0000518cu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000518fu, + 0x0000518au, 0x0004007cu, 0x00000008u, 0x00005191u, 0x0000518du, 0x00050051u, 0x00000008u, 0x00005192u, + 0x0000518fu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005193u, 0x0000518fu, 0x00000001u, 0x00050051u, + 0x00000008u, 0x00005194u, 0x0000518fu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00005195u, 0x00005192u, + 0x00005193u, 0x00005194u, 0x00005191u, 0x000200f9u, 0x00005168u, 0x000200f8u, 0x00005162u, 0x000500c2u, + 0x00000006u, 0x0000516fu, 0x00005160u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005171u, 0x00005160u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00005173u, 0x0000516fu, 0x0004007cu, 0x00000008u, 0x00005179u, + 0x00005171u, 0x00070050u, 0x00000009u, 0x0000517au, 0x00005173u, 0x00005173u, 0x00005173u, 0x00005179u, + 0x000200f9u, 0x00005168u, 0x000200f8u, 0x00005168u, 0x000700f5u, 0x00000009u, 0x00007e6cu, 0x0000517au, + 0x00005162u, 0x00005195u, 0x00005165u, 0x00050050u, 0x0000005fu, 0x00004a2bu, 0x00007e08u, 0x0000be09u, + 0x0004007cu, 0x000000a6u, 0x00004a2cu, 0x00004a2bu, 0x00050051u, 0x00000006u, 0x000051a5u, 0x00004a2cu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000051a6u, 0x000047dbu, 0x000051a5u, 0x00050080u, 0x00000006u, + 0x000051a7u, 0x000047d8u, 0x000051a6u, 0x00050051u, 0x00000006u, 0x000051a9u, 0x00004a2cu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000051aau, 0x000051a9u, 0x00000217u, 0x00050080u, 0x00000006u, 0x000051acu, + 0x000051a7u, 0x000051aau, 0x000500c7u, 0x00000006u, 0x000051aeu, 0x000051acu, 0x00000f19u, 0x000400c8u, + 0x00000006u, 0x000051b1u, 0x000051a9u, 0x000500c7u, 0x00000006u, 0x000051b2u, 0x000051b1u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000051b3u, 0x000051b2u, 0x00000706u, 0x000500c7u, 0x00000006u, 0x000051b7u, + 0x000051a5u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x000051b8u, 0x000051b7u, 0x0000021au, 0x000500c6u, + 0x00000006u, 0x000051bau, 0x000051aeu, 0x000051b8u, 0x000500c6u, 0x00000006u, 0x000051bcu, 0x000051bau, + 0x00000490u, 0x00080041u, 0x0000027cu, 0x000051bfu, 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x000051bcu, 0x0004003du, 0x0000022eu, 0x000051c0u, 0x000051bfu, 0x00040071u, 0x00000006u, 0x000051c1u, + 0x000051c0u, 0x000500c2u, 0x00000006u, 0x000051c4u, 0x000051c1u, 0x000051b3u, 0x000500c7u, 0x00000006u, + 0x000051c5u, 0x000051c4u, 0x00000e8au, 0x000500c5u, 0x00000006u, 0x000051c9u, 0x000051c5u, 0x000050dbu, + 0x000500c4u, 0x00000006u, 0x000051cbu, 0x000051c9u, 0x0000021au, 0x00050080u, 0x00000006u, 0x000051cdu, + 0x000051cbu, 0x000003c9u, 0x000500c6u, 0x00000006u, 0x000051d0u, 0x000051cdu, 0x000049deu, 0x000500c5u, + 0x00000006u, 0x000051d3u, 0x00000f4au, 0x000051d0u, 0x00080041u, 0x00000275u, 0x000051d4u, 0x00000f48u, + 0x00000208u, 0x00002240u, 0x00000208u, 0x000051d3u, 0x0004003du, 0x00000230u, 0x000051d5u, 0x000051d4u, + 0x00040071u, 0x00000006u, 0x000051d6u, 0x000051d5u, 0x000300f7u, 0x000051deu, 0x00000000u, 0x000400fau, + 0x00002254u, 0x000051d8u, 0x000051dbu, 0x000200f8u, 0x000051dbu, 0x00060050u, 0x00000358u, 0x000051f6u, + 0x000051d6u, 0x000051d6u, 0x000051d6u, 0x000500c2u, 0x00000358u, 0x000051f7u, 0x000051f6u, 0x00000e2eu, + 0x000500c7u, 0x00000358u, 0x000051f9u, 0x000051f7u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x000051fcu, + 0x000051f9u, 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x000051ffu, 0x000051f9u, 0x0000bdcfu, 0x000500c5u, + 0x00000358u, 0x00005200u, 0x000051fcu, 0x000051ffu, 0x000500c7u, 0x00000006u, 0x00005202u, 0x000051d6u, + 0x0000048au, 0x00050084u, 0x00000006u, 0x00005203u, 0x00005202u, 0x000006c7u, 0x0004007cu, 0x0000003cu, + 0x00005205u, 0x00005200u, 0x0004007cu, 0x00000008u, 0x00005207u, 0x00005203u, 0x00050051u, 0x00000008u, + 0x00005208u, 0x00005205u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005209u, 0x00005205u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x0000520au, 0x00005205u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000520bu, + 0x00005208u, 0x00005209u, 0x0000520au, 0x00005207u, 0x000200f9u, 0x000051deu, 0x000200f8u, 0x000051d8u, + 0x000500c2u, 0x00000006u, 0x000051e5u, 0x000051d6u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000051e7u, + 0x000051d6u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x000051e9u, 0x000051e5u, 0x0004007cu, 0x00000008u, + 0x000051efu, 0x000051e7u, 0x00070050u, 0x00000009u, 0x000051f0u, 0x000051e9u, 0x000051e9u, 0x000051e9u, + 0x000051efu, 0x000200f9u, 0x000051deu, 0x000200f8u, 0x000051deu, 0x000700f5u, 0x00000009u, 0x00007e6fu, + 0x000051f0u, 0x000051d8u, 0x0000520bu, 0x000051dbu, 0x000200f9u, 0x00004a35u, 0x000200f8u, 0x00004a35u, + 0x000700f5u, 0x00000009u, 0x000081b7u, 0x00008109u, 0x000050f2u, 0x00007e6fu, 0x000051deu, 0x000700f5u, + 0x00000009u, 0x000080bdu, 0x0000800eu, 0x000050f2u, 0x00007e6cu, 0x000051deu, 0x000300f7u, 0x00004a44u, + 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004a37u, 0x00004a44u, 0x000200f8u, 0x00004a37u, 0x00050050u, + 0x0000005fu, 0x00004a3au, 0x0000be0au, 0x0000be09u, 0x0004007cu, 0x000000a6u, 0x00004a3bu, 0x00004a3au, + 0x00050051u, 0x00000006u, 0x0000521bu, 0x00004a3bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000521cu, + 0x000047dbu, 0x0000521bu, 0x00050080u, 0x00000006u, 0x0000521du, 0x000047d8u, 0x0000521cu, 0x00050051u, + 0x00000006u, 0x0000521fu, 0x00004a3bu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005220u, 0x0000521fu, + 0x00000217u, 0x00050080u, 0x00000006u, 0x00005222u, 0x0000521du, 0x00005220u, 0x000500c7u, 0x00000006u, + 0x00005224u, 0x00005222u, 0x00000f19u, 0x000400c8u, 0x00000006u, 0x00005227u, 0x0000521fu, 0x000500c7u, + 0x00000006u, 0x00005228u, 0x00005227u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005229u, 0x00005228u, + 0x00000706u, 0x000500c7u, 0x00000006u, 0x0000522du, 0x0000521bu, 0x0000048au, 0x000500c4u, 0x00000006u, + 0x0000522eu, 0x0000522du, 0x0000021au, 0x000500c6u, 0x00000006u, 0x00005230u, 0x00005224u, 0x0000522eu, + 0x000500c6u, 0x00000006u, 0x00005232u, 0x00005230u, 0x00000490u, 0x00080041u, 0x0000027cu, 0x00005235u, + 0x00000e81u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005232u, 0x0004003du, 0x0000022eu, 0x00005236u, + 0x00005235u, 0x00040071u, 0x00000006u, 0x00005237u, 0x00005236u, 0x000500c2u, 0x00000006u, 0x0000523au, + 0x00005237u, 0x00005229u, 0x000500c7u, 0x00000006u, 0x0000523bu, 0x0000523au, 0x00000e8au, 0x000500c5u, + 0x00000006u, 0x0000523fu, 0x0000523bu, 0x000050dbu, 0x000500c4u, 0x00000006u, 0x00005241u, 0x0000523fu, + 0x0000021au, 0x00050080u, 0x00000006u, 0x00005243u, 0x00005241u, 0x00000490u, 0x000500c6u, 0x00000006u, + 0x00005246u, 0x00005243u, 0x000049deu, 0x000500c5u, 0x00000006u, 0x00005249u, 0x00000f4au, 0x00005246u, + 0x00080041u, 0x00000275u, 0x0000524au, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005249u, + 0x0004003du, 0x00000230u, 0x0000524bu, 0x0000524au, 0x00040071u, 0x00000006u, 0x0000524cu, 0x0000524bu, + 0x000300f7u, 0x00005254u, 0x00000000u, 0x000400fau, 0x00002254u, 0x0000524eu, 0x00005251u, 0x000200f8u, + 0x00005251u, 0x00060050u, 0x00000358u, 0x0000526cu, 0x0000524cu, 0x0000524cu, 0x0000524cu, 0x000500c2u, + 0x00000358u, 0x0000526du, 0x0000526cu, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x0000526fu, 0x0000526du, + 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00005272u, 0x0000526fu, 0x0000bdceu, 0x000500c2u, 0x00000358u, + 0x00005275u, 0x0000526fu, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00005276u, 0x00005272u, 0x00005275u, + 0x000500c7u, 0x00000006u, 0x00005278u, 0x0000524cu, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005279u, + 0x00005278u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x0000527bu, 0x00005276u, 0x0004007cu, 0x00000008u, + 0x0000527du, 0x00005279u, 0x00050051u, 0x00000008u, 0x0000527eu, 0x0000527bu, 0x00000000u, 0x00050051u, + 0x00000008u, 0x0000527fu, 0x0000527bu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005280u, 0x0000527bu, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00005281u, 0x0000527eu, 0x0000527fu, 0x00005280u, 0x0000527du, + 0x000200f9u, 0x00005254u, 0x000200f8u, 0x0000524eu, 0x000500c2u, 0x00000006u, 0x0000525bu, 0x0000524cu, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x0000525du, 0x0000524cu, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x0000525fu, 0x0000525bu, 0x0004007cu, 0x00000008u, 0x00005265u, 0x0000525du, 0x00070050u, 0x00000009u, + 0x00005266u, 0x0000525fu, 0x0000525fu, 0x0000525fu, 0x00005265u, 0x000200f9u, 0x00005254u, 0x000200f8u, + 0x00005254u, 0x000700f5u, 0x00000009u, 0x00007e75u, 0x00005266u, 0x0000524eu, 0x00005281u, 0x00005251u, + 0x000200f9u, 0x00004a44u, 0x000200f8u, 0x00004a44u, 0x000700f5u, 0x00000009u, 0x000082acu, 0x000081feu, + 0x00004a35u, 0x00007e75u, 0x00005254u, 0x000200f9u, 0x00004a71u, 0x000200f8u, 0x000049e1u, 0x0004007cu, + 0x000000a6u, 0x000049e3u, 0x00007e55u, 0x000600a9u, 0x00000008u, 0x000049e5u, 0x000049bau, 0x0000021du, + 0x00000208u, 0x0004007cu, 0x00000006u, 0x000049e6u, 0x000049e5u, 0x00050051u, 0x00000006u, 0x00004f10u, + 0x000049e3u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004f11u, 0x000047dbu, 0x00004f10u, 0x00050080u, + 0x00000006u, 0x00004f12u, 0x000047d8u, 0x00004f11u, 0x00050051u, 0x00000006u, 0x00004f14u, 0x000049e3u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00004f15u, 0x00004f14u, 0x000003c9u, 0x00050080u, 0x00000006u, + 0x00004f17u, 0x00004f12u, 0x00004f15u, 0x000500c7u, 0x00000006u, 0x00004f19u, 0x00004f17u, 0x00000f19u, + 0x000500c2u, 0x00000006u, 0x00004f1bu, 0x00004f19u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004f1eu, + 0x00004f10u, 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004f1fu, 0x00004f1eu, 0x00000217u, 0x000500c6u, + 0x00000006u, 0x00004f21u, 0x00004f1bu, 0x00004f1fu, 0x000500c6u, 0x00000006u, 0x00004f23u, 0x00004f21u, + 0x0000048au, 0x00080041u, 0x00000275u, 0x00004f26u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00004f23u, 0x0004003du, 0x00000230u, 0x00004f27u, 0x00004f26u, 0x00040071u, 0x00000006u, 0x00004f28u, + 0x00004f27u, 0x000500c2u, 0x00000006u, 0x00004f2au, 0x00004f28u, 0x00000226u, 0x000500c7u, 0x00000006u, + 0x00004f2bu, 0x00004f2au, 0x00000fe8u, 0x00050080u, 0x00000006u, 0x00004f2du, 0x00004f2bu, 0x000049e6u, + 0x000500c6u, 0x00000006u, 0x00004f30u, 0x00004f2du, 0x000049deu, 0x000500c5u, 0x00000006u, 0x00004f33u, + 0x00000f4au, 0x00004f30u, 0x00080041u, 0x00000275u, 0x00004f34u, 0x00000f48u, 0x00000208u, 0x00002240u, + 0x00000208u, 0x00004f33u, 0x0004003du, 0x00000230u, 0x00004f35u, 0x00004f34u, 0x00040071u, 0x00000006u, + 0x00004f36u, 0x00004f35u, 0x000300f7u, 0x00004f3eu, 0x00000000u, 0x000400fau, 0x00002254u, 0x00004f38u, + 0x00004f3bu, 0x000200f8u, 0x00004f3bu, 0x00060050u, 0x00000358u, 0x00004f56u, 0x00004f36u, 0x00004f36u, + 0x00004f36u, 0x000500c2u, 0x00000358u, 0x00004f57u, 0x00004f56u, 0x00000e2eu, 0x000500c7u, 0x00000358u, + 0x00004f59u, 0x00004f57u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00004f5cu, 0x00004f59u, 0x0000bdceu, + 0x000500c2u, 0x00000358u, 0x00004f5fu, 0x00004f59u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00004f60u, + 0x00004f5cu, 0x00004f5fu, 0x000500c7u, 0x00000006u, 0x00004f62u, 0x00004f36u, 0x0000048au, 0x00050084u, + 0x00000006u, 0x00004f63u, 0x00004f62u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00004f65u, 0x00004f60u, + 0x0004007cu, 0x00000008u, 0x00004f67u, 0x00004f63u, 0x00050051u, 0x00000008u, 0x00004f68u, 0x00004f65u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00004f69u, 0x00004f65u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00004f6au, 0x00004f65u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004f6bu, 0x00004f68u, 0x00004f69u, + 0x00004f6au, 0x00004f67u, 0x000200f9u, 0x00004f3eu, 0x000200f8u, 0x00004f38u, 0x000500c2u, 0x00000006u, + 0x00004f45u, 0x00004f36u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00004f47u, 0x00004f36u, 0x000006c7u, + 0x0004007cu, 0x00000008u, 0x00004f49u, 0x00004f45u, 0x0004007cu, 0x00000008u, 0x00004f4fu, 0x00004f47u, + 0x00070050u, 0x00000009u, 0x00004f50u, 0x00004f49u, 0x00004f49u, 0x00004f49u, 0x00004f4fu, 0x000200f9u, + 0x00004f3eu, 0x000200f8u, 0x00004f3eu, 0x000700f5u, 0x00000009u, 0x00007e76u, 0x00004f50u, 0x00004f38u, + 0x00004f6bu, 0x00004f3bu, 0x000300f7u, 0x00004a00u, 0x00000000u, 0x000400fau, 0x00002296u, 0x000049edu, + 0x00004a00u, 0x000200f8u, 0x000049edu, 0x00050050u, 0x0000005fu, 0x000049f0u, 0x0000be0au, 0x000049a4u, + 0x0004007cu, 0x000000a6u, 0x000049f1u, 0x000049f0u, 0x00050051u, 0x00000006u, 0x00004f7au, 0x000049f1u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004f7bu, 0x000047dbu, 0x00004f7au, 0x00050080u, 0x00000006u, + 0x00004f7cu, 0x000047d8u, 0x00004f7bu, 0x00050051u, 0x00000006u, 0x00004f7eu, 0x000049f1u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00004f7fu, 0x00004f7eu, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004f81u, + 0x00004f7cu, 0x00004f7fu, 0x000500c7u, 0x00000006u, 0x00004f83u, 0x00004f81u, 0x00000f19u, 0x000500c2u, + 0x00000006u, 0x00004f85u, 0x00004f83u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004f88u, 0x00004f7au, + 0x0000048au, 0x000500c4u, 0x00000006u, 0x00004f89u, 0x00004f88u, 0x00000217u, 0x000500c6u, 0x00000006u, + 0x00004f8bu, 0x00004f85u, 0x00004f89u, 0x000500c6u, 0x00000006u, 0x00004f8du, 0x00004f8bu, 0x0000048au, + 0x00080041u, 0x00000275u, 0x00004f90u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00004f8du, + 0x0004003du, 0x00000230u, 0x00004f91u, 0x00004f90u, 0x00040071u, 0x00000006u, 0x00004f92u, 0x00004f91u, + 0x000500c2u, 0x00000006u, 0x00004f94u, 0x00004f92u, 0x00000226u, 0x000500c7u, 0x00000006u, 0x00004f95u, + 0x00004f94u, 0x00000fe8u, 0x00050080u, 0x00000006u, 0x00004f97u, 0x00004f95u, 0x0000048au, 0x000500c6u, + 0x00000006u, 0x00004f9au, 0x00004f97u, 0x000049deu, 0x000500c5u, 0x00000006u, 0x00004f9du, 0x00000f4au, + 0x00004f9au, 0x00080041u, 0x00000275u, 0x00004f9eu, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, + 0x00004f9du, 0x0004003du, 0x00000230u, 0x00004f9fu, 0x00004f9eu, 0x00040071u, 0x00000006u, 0x00004fa0u, + 0x00004f9fu, 0x000300f7u, 0x00004fa8u, 0x00000000u, 0x000400fau, 0x00002254u, 0x00004fa2u, 0x00004fa5u, + 0x000200f8u, 0x00004fa5u, 0x00060050u, 0x00000358u, 0x00004fc0u, 0x00004fa0u, 0x00004fa0u, 0x00004fa0u, + 0x000500c2u, 0x00000358u, 0x00004fc1u, 0x00004fc0u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x00004fc3u, + 0x00004fc1u, 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x00004fc6u, 0x00004fc3u, 0x0000bdceu, 0x000500c2u, + 0x00000358u, 0x00004fc9u, 0x00004fc3u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00004fcau, 0x00004fc6u, + 0x00004fc9u, 0x000500c7u, 0x00000006u, 0x00004fccu, 0x00004fa0u, 0x0000048au, 0x00050084u, 0x00000006u, + 0x00004fcdu, 0x00004fccu, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00004fcfu, 0x00004fcau, 0x0004007cu, + 0x00000008u, 0x00004fd1u, 0x00004fcdu, 0x00050051u, 0x00000008u, 0x00004fd2u, 0x00004fcfu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00004fd3u, 0x00004fcfu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004fd4u, + 0x00004fcfu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004fd5u, 0x00004fd2u, 0x00004fd3u, 0x00004fd4u, + 0x00004fd1u, 0x000200f9u, 0x00004fa8u, 0x000200f8u, 0x00004fa2u, 0x000500c2u, 0x00000006u, 0x00004fafu, + 0x00004fa0u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x00004fb1u, 0x00004fa0u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00004fb3u, 0x00004fafu, 0x0004007cu, 0x00000008u, 0x00004fb9u, 0x00004fb1u, 0x00070050u, + 0x00000009u, 0x00004fbau, 0x00004fb3u, 0x00004fb3u, 0x00004fb3u, 0x00004fb9u, 0x000200f9u, 0x00004fa8u, + 0x000200f8u, 0x00004fa8u, 0x000700f5u, 0x00000009u, 0x00007e79u, 0x00004fbau, 0x00004fa2u, 0x00004fd5u, + 0x00004fa5u, 0x00050050u, 0x0000005fu, 0x000049f9u, 0x00007e08u, 0x0000be09u, 0x0004007cu, 0x000000a6u, + 0x000049fau, 0x000049f9u, 0x00050051u, 0x00000006u, 0x00004fe4u, 0x000049fau, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004fe5u, 0x000047dbu, 0x00004fe4u, 0x00050080u, 0x00000006u, 0x00004fe6u, 0x000047d8u, + 0x00004fe5u, 0x00050051u, 0x00000006u, 0x00004fe8u, 0x000049fau, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00004fe9u, 0x00004fe8u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00004febu, 0x00004fe6u, 0x00004fe9u, + 0x000500c7u, 0x00000006u, 0x00004fedu, 0x00004febu, 0x00000f19u, 0x000500c2u, 0x00000006u, 0x00004fefu, + 0x00004fedu, 0x00000217u, 0x000500c7u, 0x00000006u, 0x00004ff2u, 0x00004fe4u, 0x0000048au, 0x000500c4u, + 0x00000006u, 0x00004ff3u, 0x00004ff2u, 0x00000217u, 0x000500c6u, 0x00000006u, 0x00004ff5u, 0x00004fefu, + 0x00004ff3u, 0x000500c6u, 0x00000006u, 0x00004ff7u, 0x00004ff5u, 0x0000048au, 0x00080041u, 0x00000275u, + 0x00004ffau, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00004ff7u, 0x0004003du, 0x00000230u, + 0x00004ffbu, 0x00004ffau, 0x00040071u, 0x00000006u, 0x00004ffcu, 0x00004ffbu, 0x000500c2u, 0x00000006u, + 0x00004ffeu, 0x00004ffcu, 0x00000226u, 0x000500c7u, 0x00000006u, 0x00004fffu, 0x00004ffeu, 0x00000fe8u, + 0x00050080u, 0x00000006u, 0x00005001u, 0x00004fffu, 0x000003c9u, 0x000500c6u, 0x00000006u, 0x00005004u, + 0x00005001u, 0x000049deu, 0x000500c5u, 0x00000006u, 0x00005007u, 0x00000f4au, 0x00005004u, 0x00080041u, + 0x00000275u, 0x00005008u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005007u, 0x0004003du, + 0x00000230u, 0x00005009u, 0x00005008u, 0x00040071u, 0x00000006u, 0x0000500au, 0x00005009u, 0x000300f7u, + 0x00005012u, 0x00000000u, 0x000400fau, 0x00002254u, 0x0000500cu, 0x0000500fu, 0x000200f8u, 0x0000500fu, + 0x00060050u, 0x00000358u, 0x0000502au, 0x0000500au, 0x0000500au, 0x0000500au, 0x000500c2u, 0x00000358u, + 0x0000502bu, 0x0000502au, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x0000502du, 0x0000502bu, 0x0000bdcdu, + 0x000500c4u, 0x00000358u, 0x00005030u, 0x0000502du, 0x0000bdceu, 0x000500c2u, 0x00000358u, 0x00005033u, + 0x0000502du, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x00005034u, 0x00005030u, 0x00005033u, 0x000500c7u, + 0x00000006u, 0x00005036u, 0x0000500au, 0x0000048au, 0x00050084u, 0x00000006u, 0x00005037u, 0x00005036u, + 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x00005039u, 0x00005034u, 0x0004007cu, 0x00000008u, 0x0000503bu, + 0x00005037u, 0x00050051u, 0x00000008u, 0x0000503cu, 0x00005039u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x0000503du, 0x00005039u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000503eu, 0x00005039u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x0000503fu, 0x0000503cu, 0x0000503du, 0x0000503eu, 0x0000503bu, 0x000200f9u, + 0x00005012u, 0x000200f8u, 0x0000500cu, 0x000500c2u, 0x00000006u, 0x00005019u, 0x0000500au, 0x00000263u, + 0x000500c7u, 0x00000006u, 0x0000501bu, 0x0000500au, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x0000501du, + 0x00005019u, 0x0004007cu, 0x00000008u, 0x00005023u, 0x0000501bu, 0x00070050u, 0x00000009u, 0x00005024u, + 0x0000501du, 0x0000501du, 0x0000501du, 0x00005023u, 0x000200f9u, 0x00005012u, 0x000200f8u, 0x00005012u, + 0x000700f5u, 0x00000009u, 0x00007e7cu, 0x00005024u, 0x0000500cu, 0x0000503fu, 0x0000500fu, 0x000200f9u, + 0x00004a00u, 0x000200f8u, 0x00004a00u, 0x000700f5u, 0x00000009u, 0x000081b2u, 0x00008109u, 0x00004f3eu, + 0x00007e7cu, 0x00005012u, 0x000700f5u, 0x00000009u, 0x000080b7u, 0x0000800eu, 0x00004f3eu, 0x00007e79u, + 0x00005012u, 0x000300f7u, 0x00004a0cu, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004a02u, 0x00004a0cu, + 0x000200f8u, 0x00004a02u, 0x00050050u, 0x0000005fu, 0x00004a05u, 0x0000be0au, 0x0000be09u, 0x0004007cu, + 0x000000a6u, 0x00004a06u, 0x00004a05u, 0x00050051u, 0x00000006u, 0x0000504eu, 0x00004a06u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000504fu, 0x000047dbu, 0x0000504eu, 0x00050080u, 0x00000006u, 0x00005050u, + 0x000047d8u, 0x0000504fu, 0x00050051u, 0x00000006u, 0x00005052u, 0x00004a06u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005053u, 0x00005052u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00005055u, 0x00005050u, + 0x00005053u, 0x000500c7u, 0x00000006u, 0x00005057u, 0x00005055u, 0x00000f19u, 0x000500c2u, 0x00000006u, + 0x00005059u, 0x00005057u, 0x00000217u, 0x000500c7u, 0x00000006u, 0x0000505cu, 0x0000504eu, 0x0000048au, + 0x000500c4u, 0x00000006u, 0x0000505du, 0x0000505cu, 0x00000217u, 0x000500c6u, 0x00000006u, 0x0000505fu, + 0x00005059u, 0x0000505du, 0x000500c6u, 0x00000006u, 0x00005061u, 0x0000505fu, 0x0000048au, 0x00080041u, + 0x00000275u, 0x00005064u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005061u, 0x0004003du, + 0x00000230u, 0x00005065u, 0x00005064u, 0x00040071u, 0x00000006u, 0x00005066u, 0x00005065u, 0x000500c2u, + 0x00000006u, 0x00005068u, 0x00005066u, 0x00000226u, 0x000500c7u, 0x00000006u, 0x00005069u, 0x00005068u, + 0x00000fe8u, 0x00050080u, 0x00000006u, 0x0000506bu, 0x00005069u, 0x00000490u, 0x000500c6u, 0x00000006u, + 0x0000506eu, 0x0000506bu, 0x000049deu, 0x000500c5u, 0x00000006u, 0x00005071u, 0x00000f4au, 0x0000506eu, + 0x00080041u, 0x00000275u, 0x00005072u, 0x00000f48u, 0x00000208u, 0x00002240u, 0x00000208u, 0x00005071u, + 0x0004003du, 0x00000230u, 0x00005073u, 0x00005072u, 0x00040071u, 0x00000006u, 0x00005074u, 0x00005073u, + 0x000300f7u, 0x0000507cu, 0x00000000u, 0x000400fau, 0x00002254u, 0x00005076u, 0x00005079u, 0x000200f8u, + 0x00005079u, 0x00060050u, 0x00000358u, 0x00005094u, 0x00005074u, 0x00005074u, 0x00005074u, 0x000500c2u, + 0x00000358u, 0x00005095u, 0x00005094u, 0x00000e2eu, 0x000500c7u, 0x00000358u, 0x00005097u, 0x00005095u, + 0x0000bdcdu, 0x000500c4u, 0x00000358u, 0x0000509au, 0x00005097u, 0x0000bdceu, 0x000500c2u, 0x00000358u, + 0x0000509du, 0x00005097u, 0x0000bdcfu, 0x000500c5u, 0x00000358u, 0x0000509eu, 0x0000509au, 0x0000509du, + 0x000500c7u, 0x00000006u, 0x000050a0u, 0x00005074u, 0x0000048au, 0x00050084u, 0x00000006u, 0x000050a1u, + 0x000050a0u, 0x000006c7u, 0x0004007cu, 0x0000003cu, 0x000050a3u, 0x0000509eu, 0x0004007cu, 0x00000008u, + 0x000050a5u, 0x000050a1u, 0x00050051u, 0x00000008u, 0x000050a6u, 0x000050a3u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000050a7u, 0x000050a3u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000050a8u, 0x000050a3u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000050a9u, 0x000050a6u, 0x000050a7u, 0x000050a8u, 0x000050a5u, + 0x000200f9u, 0x0000507cu, 0x000200f8u, 0x00005076u, 0x000500c2u, 0x00000006u, 0x00005083u, 0x00005074u, + 0x00000263u, 0x000500c7u, 0x00000006u, 0x00005085u, 0x00005074u, 0x000006c7u, 0x0004007cu, 0x00000008u, + 0x00005087u, 0x00005083u, 0x0004007cu, 0x00000008u, 0x0000508du, 0x00005085u, 0x00070050u, 0x00000009u, + 0x0000508eu, 0x00005087u, 0x00005087u, 0x00005087u, 0x0000508du, 0x000200f9u, 0x0000507cu, 0x000200f8u, + 0x0000507cu, 0x000700f5u, 0x00000009u, 0x00007e82u, 0x0000508eu, 0x00005076u, 0x000050a9u, 0x00005079u, + 0x000200f9u, 0x00004a0cu, 0x000200f8u, 0x00004a0cu, 0x000700f5u, 0x00000009u, 0x000082a6u, 0x000081feu, + 0x00004a00u, 0x00007e82u, 0x0000507cu, 0x000200f9u, 0x00004a71u, 0x000200f8u, 0x00004a71u, 0x000900f5u, + 0x00000009u, 0x000082a5u, 0x000082a6u, 0x00004a0cu, 0x000082acu, 0x00004a44u, 0x000082b1u, 0x00004a70u, + 0x000900f5u, 0x00000009u, 0x000081b0u, 0x000081b2u, 0x00004a0cu, 0x000081b7u, 0x00004a44u, 0x000081bbu, + 0x00004a70u, 0x000900f5u, 0x00000009u, 0x000080b5u, 0x000080b7u, 0x00004a0cu, 0x000080bdu, 0x00004a44u, + 0x000080c2u, 0x00004a70u, 0x000900f5u, 0x00000009u, 0x00007f49u, 0x00007e76u, 0x00004a0cu, 0x00007e69u, + 0x00004a44u, 0x00007e56u, 0x00004a70u, 0x000200f9u, 0x00004a72u, 0x000200f8u, 0x00004a72u, 0x000700f5u, + 0x00000009u, 0x000081e1u, 0x000081feu, 0x000049d6u, 0x000082a5u, 0x00004a71u, 0x000700f5u, 0x00000009u, + 0x000080ecu, 0x00008109u, 0x000049d6u, 0x000081b0u, 0x00004a71u, 0x000700f5u, 0x00000009u, 0x00007ff1u, + 0x0000800eu, 0x000049d6u, 0x000080b5u, 0x00004a71u, 0x000700f5u, 0x00000009u, 0x00007e85u, 0x00007ea2u, + 0x000049d6u, 0x00007f49u, 0x00004a71u, 0x000200f9u, 0x00004c8fu, 0x000200f8u, 0x00004c8fu, 0x000700f5u, + 0x00000009u, 0x000081e0u, 0x000081e1u, 0x00004a72u, 0x000082b6u, 0x00004c8eu, 0x000700f5u, 0x00000009u, + 0x000080ebu, 0x000080ecu, 0x00004a72u, 0x000081beu, 0x00004c8eu, 0x000700f5u, 0x00000009u, 0x00007ff0u, + 0x00007ff1u, 0x00004a72u, 0x000080c6u, 0x00004c8eu, 0x000700f5u, 0x00000009u, 0x00007e84u, 0x00007e85u, + 0x00004a72u, 0x00007f59u, 0x00004c8eu, 0x000300f7u, 0x00004e22u, 0x00000000u, 0x000400fau, 0x00002290u, + 0x00004c91u, 0x00004d6au, 0x000200f8u, 0x00004d6au, 0x000300f7u, 0x00004e21u, 0x00000000u, 0x000400fau, + 0x000049b8u, 0x00004d6cu, 0x00004ddfu, 0x000200f8u, 0x00004ddfu, 0x000300f7u, 0x00004e20u, 0x00000000u, + 0x000400fau, 0x000049b0u, 0x00004de1u, 0x00004dedu, 0x000200f8u, 0x00004dedu, 0x000600a9u, 0x0000005du, + 0x0000be0bu, 0x00002296u, 0x0000497eu, 0x00002296u, 0x000300f7u, 0x00004e1fu, 0x00000000u, 0x000400fau, + 0x0000be0bu, 0x00004df5u, 0x00004e1du, 0x000200f8u, 0x00004e1du, 0x000200f9u, 0x00004e1fu, 0x000200f8u, + 0x00004df5u, 0x000300f7u, 0x00004dffu, 0x00000000u, 0x000400fau, 0x000049bau, 0x00004df8u, 0x00004dfdu, + 0x000200f8u, 0x00004dfdu, 0x000200f9u, 0x00004dffu, 0x000200f8u, 0x00004df8u, 0x0007004fu, 0x0000005fu, + 0x00004dfau, 0x00007e05u, 0x00007e05u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000005fu, 0x00004dfcu, + 0x0000bdd3u, 0x00004dfau, 0x000200f9u, 0x00004dffu, 0x000200f8u, 0x00004dffu, 0x000700f5u, 0x0000005fu, + 0x00007fedu, 0x00004dfcu, 0x00004df8u, 0x00007e05u, 0x00004dfdu, 0x00050082u, 0x00000009u, 0x00004e06u, + 0x00007ff0u, 0x00007e84u, 0x00050051u, 0x00000008u, 0x00004e08u, 0x00007fedu, 0x00000000u, 0x00070050u, + 0x00000009u, 0x00004e09u, 0x00004e08u, 0x00004e08u, 0x00004e08u, 0x00004e08u, 0x00050084u, 0x00000009u, + 0x00004e0au, 0x00004e06u, 0x00004e09u, 0x00050082u, 0x00000009u, 0x00004e0du, 0x000080ebu, 0x00007e84u, + 0x00050051u, 0x00000008u, 0x00004e0fu, 0x00007fedu, 0x00000001u, 0x00070050u, 0x00000009u, 0x00004e10u, + 0x00004e0fu, 0x00004e0fu, 0x00004e0fu, 0x00004e0fu, 0x00050084u, 0x00000009u, 0x00004e11u, 0x00004e0du, + 0x00004e10u, 0x00050080u, 0x00000009u, 0x00004e13u, 0x00004e0au, 0x00004e11u, 0x00050080u, 0x00000009u, + 0x00004e16u, 0x00004e13u, 0x0000bdd4u, 0x000500c3u, 0x00000009u, 0x00004e19u, 0x00004e16u, 0x0000bdd5u, + 0x00050080u, 0x00000009u, 0x00004e1cu, 0x00004e19u, 0x00007e84u, 0x000200f9u, 0x00004e1fu, 0x000200f8u, + 0x00004e1fu, 0x000700f5u, 0x00000009u, 0x0000831bu, 0x00004e1cu, 0x00004dffu, 0x00007e84u, 0x00004e1du, + 0x000200f9u, 0x00004e20u, 0x000200f8u, 0x00004de1u, 0x00050080u, 0x00000009u, 0x00004de4u, 0x00007e84u, + 0x000080ebu, 0x00050080u, 0x00000009u, 0x00004de6u, 0x00004de4u, 0x00007ff0u, 0x00050080u, 0x00000009u, + 0x00004de8u, 0x00004de6u, 0x000081e0u, 0x00050080u, 0x00000009u, 0x00004deau, 0x00004de8u, 0x0000bdd0u, + 0x000500c3u, 0x00000009u, 0x00004decu, 0x00004deau, 0x0000bdd0u, 0x000200f9u, 0x00004e20u, 0x000200f8u, + 0x00004e20u, 0x000700f5u, 0x00000009u, 0x0000831au, 0x00004decu, 0x00004de1u, 0x0000831bu, 0x00004e1fu, + 0x000200f9u, 0x00004e21u, 0x000200f8u, 0x00004d6cu, 0x000300f7u, 0x00004ddeu, 0x00000000u, 0x000400fau, + 0x00002257u, 0x00004d6eu, 0x00004ddcu, 0x000200f8u, 0x00004ddcu, 0x000200f9u, 0x00004ddeu, 0x000200f8u, + 0x00004d6eu, 0x000300f7u, 0x00004dd4u, 0x00000000u, 0x000400fau, 0x00002296u, 0x00004d70u, 0x00004db8u, + 0x000200f8u, 0x00004db8u, 0x000300f7u, 0x00004dc5u, 0x00000000u, 0x000400fau, 0x000049b2u, 0x00004dbfu, + 0x00004dc2u, 0x000200f8u, 0x00004dc2u, 0x0007004fu, 0x0000005fu, 0x00004dc4u, 0x00007e84u, 0x00007e84u, + 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004dc5u, 0x000200f8u, 0x00004dbfu, 0x0007004fu, 0x0000005fu, + 0x00004dc1u, 0x000081e0u, 0x000081e0u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004dc5u, 0x000200f8u, + 0x00004dc5u, 0x000700f5u, 0x0000005fu, 0x000082d8u, 0x00004dc1u, 0x00004dbfu, 0x00004dc4u, 0x00004dc2u, + 0x00050080u, 0x00000008u, 0x00004dcau, 0x000049cbu, 0x00004988u, 0x000500afu, 0x0000005du, 0x00004dcbu, + 0x00004dcau, 0x00000382u, 0x000300f7u, 0x00004dd2u, 0x00000000u, 0x000400fau, 0x00004dcbu, 0x00004dccu, + 0x00004dcfu, 0x000200f8u, 0x00004dcfu, 0x0007004fu, 0x0000005fu, 0x00004dd1u, 0x00007e84u, 0x00007e84u, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004dd2u, 0x000200f8u, 0x00004dccu, 0x0007004fu, 0x0000005fu, + 0x00004dceu, 0x000081e0u, 0x000081e0u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004dd2u, 0x000200f8u, + 0x00004dd2u, 0x000700f5u, 0x0000005fu, 0x000082dcu, 0x00004dceu, 0x00004dccu, 0x00004dd1u, 0x00004dcfu, + 0x000200f9u, 0x00004dd4u, 0x000200f8u, 0x00004d70u, 0x00050050u, 0x0000005fu, 0x00004d75u, 0x000049cbu, + 0x00004988u, 0x000500aau, 0x00000880u, 0x00004d76u, 0x00004d75u, 0x000013bau, 0x00050051u, 0x0000005du, + 0x00004d77u, 0x00004d76u, 0x00000000u, 0x00050051u, 0x0000005du, 0x00004d78u, 0x00004d76u, 0x00000001u, + 0x00060050u, 0x000003a6u, 0x00004d79u, 0x00002281u, 0x00004d77u, 0x00004d78u, 0x0004009bu, 0x0000005du, + 0x00004d7au, 0x00004d79u, 0x000300f7u, 0x00004d9au, 0x00000000u, 0x000400fau, 0x00004d7au, 0x00004d7cu, + 0x00004d8cu, 0x000200f8u, 0x00004d8cu, 0x0007004fu, 0x0000005fu, 0x00004d92u, 0x00007e84u, 0x00007e84u, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00004d94u, 0x00007ff0u, 0x00007ff0u, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00004d96u, 0x000080ebu, 0x000080ebu, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x0000005fu, 0x00004d98u, 0x000081e0u, 0x000081e0u, 0x00000000u, 0x00000001u, 0x00050080u, + 0x00000008u, 0x00006015u, 0x000049cbu, 0x00004988u, 0x000500afu, 0x0000005du, 0x00006017u, 0x00006015u, + 0x00000382u, 0x00050050u, 0x00000880u, 0x0000601au, 0x00006017u, 0x00006017u, 0x000600a9u, 0x0000005fu, + 0x0000601bu, 0x0000601au, 0x00004d98u, 0x00004d92u, 0x000300f7u, 0x00006025u, 0x00000000u, 0x000400fau, + 0x00006017u, 0x0000601eu, 0x00006023u, 0x000200f8u, 0x00006023u, 0x000200f9u, 0x00006025u, 0x000200f8u, + 0x0000601eu, 0x0007004fu, 0x0000005fu, 0x00006020u, 0x00004d75u, 0x00004d75u, 0x00000001u, 0x00000000u, + 0x00050082u, 0x0000005fu, 0x00006022u, 0x0000bdd3u, 0x00006020u, 0x000200f9u, 0x00006025u, 0x000200f8u, + 0x00006025u, 0x000700f5u, 0x0000005fu, 0x000082ddu, 0x00006022u, 0x0000601eu, 0x00004d75u, 0x00006023u, + 0x00050082u, 0x0000005fu, 0x0000602cu, 0x00004d94u, 0x0000601bu, 0x00050051u, 0x00000008u, 0x0000602eu, + 0x000082ddu, 0x00000000u, 0x00050050u, 0x0000005fu, 0x0000602fu, 0x0000602eu, 0x0000602eu, 0x00050084u, + 0x0000005fu, 0x00006030u, 0x0000602cu, 0x0000602fu, 0x00050082u, 0x0000005fu, 0x00006033u, 0x00004d96u, + 0x0000601bu, 0x00050051u, 0x00000008u, 0x00006035u, 0x000082ddu, 0x00000001u, 0x00050050u, 0x0000005fu, + 0x00006036u, 0x00006035u, 0x00006035u, 0x00050084u, 0x0000005fu, 0x00006037u, 0x00006033u, 0x00006036u, + 0x00050080u, 0x0000005fu, 0x00006039u, 0x00006030u, 0x00006037u, 0x00050080u, 0x0000005fu, 0x0000603cu, + 0x00006039u, 0x000013bau, 0x000500c3u, 0x0000005fu, 0x0000603fu, 0x0000603cu, 0x0000bdc9u, 0x00050080u, + 0x0000005fu, 0x00006042u, 0x0000603fu, 0x0000601bu, 0x000200f9u, 0x00004d9au, 0x000200f8u, 0x00004d7cu, + 0x0007004fu, 0x0000005fu, 0x00004d7eu, 0x00007e84u, 0x00007e84u, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x0000005fu, 0x00004d80u, 0x00007ff0u, 0x00007ff0u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000005fu, + 0x00004d81u, 0x00004d7eu, 0x00004d80u, 0x0007004fu, 0x0000005fu, 0x00004d83u, 0x000081e0u, 0x000081e0u, + 0x00000000u, 0x00000001u, 0x00050080u, 0x0000005fu, 0x00004d84u, 0x00004d81u, 0x00004d83u, 0x0007004fu, + 0x0000005fu, 0x00004d86u, 0x000080ebu, 0x000080ebu, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000005fu, + 0x00004d87u, 0x00004d84u, 0x00004d86u, 0x00050080u, 0x0000005fu, 0x00004d89u, 0x00004d87u, 0x0000bdd2u, + 0x000500c3u, 0x0000005fu, 0x00004d8bu, 0x00004d89u, 0x0000bdd2u, 0x000200f9u, 0x00004d9au, 0x000200f8u, + 0x00004d9au, 0x000700f5u, 0x0000005fu, 0x000082ebu, 0x00004d8bu, 0x00004d7cu, 0x00006042u, 0x00006025u, + 0x000300f7u, 0x00004db7u, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004d9cu, 0x00004dacu, 0x000200f8u, + 0x00004dacu, 0x0007004fu, 0x0000005fu, 0x00004daeu, 0x00007e84u, 0x00007e84u, 0x00000002u, 0x00000003u, + 0x0007004fu, 0x0000005fu, 0x00004db0u, 0x00007ff0u, 0x00007ff0u, 0x00000002u, 0x00000003u, 0x0007004fu, + 0x0000005fu, 0x00004db2u, 0x000080ebu, 0x000080ebu, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, + 0x00004db4u, 0x000081e0u, 0x000081e0u, 0x00000002u, 0x00000003u, 0x00050050u, 0x00000880u, 0x00006054u, + 0x000049b2u, 0x000049b2u, 0x000600a9u, 0x0000005fu, 0x00006055u, 0x00006054u, 0x00004db4u, 0x00004daeu, + 0x000300f7u, 0x0000605fu, 0x00000000u, 0x000400fau, 0x000049b2u, 0x00006058u, 0x0000605du, 0x000200f8u, + 0x0000605du, 0x000200f9u, 0x0000605fu, 0x000200f8u, 0x00006058u, 0x0007004fu, 0x0000005fu, 0x0000605au, + 0x00007e05u, 0x00007e05u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000005fu, 0x0000605cu, 0x0000bdd3u, + 0x0000605au, 0x000200f9u, 0x0000605fu, 0x000200f8u, 0x0000605fu, 0x000700f5u, 0x0000005fu, 0x000082e8u, + 0x0000605cu, 0x00006058u, 0x00007e05u, 0x0000605du, 0x00050082u, 0x0000005fu, 0x00006066u, 0x00004db0u, + 0x00006055u, 0x00050051u, 0x00000008u, 0x00006068u, 0x000082e8u, 0x00000000u, 0x00050050u, 0x0000005fu, + 0x00006069u, 0x00006068u, 0x00006068u, 0x00050084u, 0x0000005fu, 0x0000606au, 0x00006066u, 0x00006069u, + 0x00050082u, 0x0000005fu, 0x0000606du, 0x00004db2u, 0x00006055u, 0x00050051u, 0x00000008u, 0x0000606fu, + 0x000082e8u, 0x00000001u, 0x00050050u, 0x0000005fu, 0x00006070u, 0x0000606fu, 0x0000606fu, 0x00050084u, + 0x0000005fu, 0x00006071u, 0x0000606du, 0x00006070u, 0x00050080u, 0x0000005fu, 0x00006073u, 0x0000606au, + 0x00006071u, 0x00050080u, 0x0000005fu, 0x00006076u, 0x00006073u, 0x000013bau, 0x000500c3u, 0x0000005fu, + 0x00006079u, 0x00006076u, 0x0000bdc9u, 0x00050080u, 0x0000005fu, 0x0000607cu, 0x00006079u, 0x00006055u, + 0x000200f9u, 0x00004db7u, 0x000200f8u, 0x00004d9cu, 0x0007004fu, 0x0000005fu, 0x00004d9eu, 0x00007e84u, + 0x00007e84u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, 0x00004da0u, 0x00007ff0u, 0x00007ff0u, + 0x00000002u, 0x00000003u, 0x00050080u, 0x0000005fu, 0x00004da1u, 0x00004d9eu, 0x00004da0u, 0x0007004fu, + 0x0000005fu, 0x00004da3u, 0x000081e0u, 0x000081e0u, 0x00000002u, 0x00000003u, 0x00050080u, 0x0000005fu, + 0x00004da4u, 0x00004da1u, 0x00004da3u, 0x0007004fu, 0x0000005fu, 0x00004da6u, 0x000080ebu, 0x000080ebu, + 0x00000002u, 0x00000003u, 0x00050080u, 0x0000005fu, 0x00004da7u, 0x00004da4u, 0x00004da6u, 0x00050080u, + 0x0000005fu, 0x00004da9u, 0x00004da7u, 0x0000bdd2u, 0x000500c3u, 0x0000005fu, 0x00004dabu, 0x00004da9u, + 0x0000bdd2u, 0x000200f9u, 0x00004db7u, 0x000200f8u, 0x00004db7u, 0x000700f5u, 0x0000005fu, 0x000082eeu, + 0x00004dabu, 0x00004d9cu, 0x0000607cu, 0x0000605fu, 0x000200f9u, 0x00004dd4u, 0x000200f8u, 0x00004dd4u, + 0x000700f5u, 0x0000005fu, 0x000082edu, 0x000082eeu, 0x00004db7u, 0x000082d8u, 0x00004dd2u, 0x000700f5u, + 0x0000005fu, 0x000082e9u, 0x000082ebu, 0x00004db7u, 0x000082dcu, 0x00004dd2u, 0x00050051u, 0x00000008u, + 0x00004dd7u, 0x000082e9u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004dd8u, 0x000082e9u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00004dd9u, 0x000082edu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004ddau, + 0x000082edu, 0x00000001u, 0x00070050u, 0x00000009u, 0x00004ddbu, 0x00004dd7u, 0x00004dd8u, 0x00004dd9u, + 0x00004ddau, 0x000200f9u, 0x00004ddeu, 0x000200f8u, 0x00004ddeu, 0x000700f5u, 0x00000009u, 0x00008319u, + 0x00004ddbu, 0x00004dd4u, 0x00007e84u, 0x00004ddcu, 0x000200f9u, 0x00004e21u, 0x000200f8u, 0x00004e21u, + 0x000700f5u, 0x00000009u, 0x00008318u, 0x00008319u, 0x00004ddeu, 0x0000831au, 0x00004e20u, 0x000200f9u, + 0x00004e22u, 0x000200f8u, 0x00004c91u, 0x000600cau, 0x00000009u, 0x00004c98u, 0x00007dabu, 0x00000208u, + 0x00000269u, 0x000300f7u, 0x00004d69u, 0x00000000u, 0x000400fau, 0x00002257u, 0x00004c9au, 0x00004d61u, + 0x000200f8u, 0x00004d61u, 0x00050051u, 0x00000008u, 0x00004d64u, 0x00004c98u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x00004d68u, 0x00004d64u, 0x00004d64u, 0x00004d64u, 0x00004d64u, 0x000200f9u, 0x00004d69u, + 0x000200f8u, 0x00004c9au, 0x000300f7u, 0x00004ca9u, 0x00000000u, 0x000400fau, 0x000049b8u, 0x00004c9cu, + 0x00004ca7u, 0x000200f8u, 0x00004ca7u, 0x000200f9u, 0x00004ca9u, 0x000200f8u, 0x00004c9cu, 0x00050050u, + 0x0000005fu, 0x00004ca1u, 0x000049cbu, 0x00004988u, 0x000500aau, 0x00000880u, 0x00004ca2u, 0x00004ca1u, + 0x000013bau, 0x00050051u, 0x0000005du, 0x00004ca3u, 0x00004ca2u, 0x00000000u, 0x00050051u, 0x0000005du, + 0x00004ca4u, 0x00004ca2u, 0x00000001u, 0x00060050u, 0x000003a6u, 0x00004ca5u, 0x00002281u, 0x00004ca3u, + 0x00004ca4u, 0x0004009bu, 0x0000005du, 0x00004ca6u, 0x00004ca5u, 0x000200f9u, 0x00004ca9u, 0x000200f8u, + 0x00004ca9u, 0x000700f5u, 0x0000005du, 0x000082f0u, 0x00004ca6u, 0x00004c9cu, 0x000049b0u, 0x00004ca7u, + 0x000300f7u, 0x00004cbau, 0x00000000u, 0x000400fau, 0x000049b8u, 0x00004cafu, 0x00004cb8u, 0x000200f8u, + 0x00004cb8u, 0x000200f9u, 0x00004cbau, 0x000200f8u, 0x00004cafu, 0x00050080u, 0x00000008u, 0x00004cb3u, + 0x000049cbu, 0x00004988u, 0x000500afu, 0x0000005du, 0x00004cb4u, 0x00004cb3u, 0x00000382u, 0x000400a8u, + 0x0000005du, 0x00004cb6u, 0x000082f0u, 0x000500a7u, 0x0000005du, 0x00004cb7u, 0x00004cb4u, 0x00004cb6u, + 0x000200f9u, 0x00004cbau, 0x000200f8u, 0x00004cbau, 0x000700f5u, 0x0000005du, 0x000082f3u, 0x00004cb7u, + 0x00004cafu, 0x000049bau, 0x00004cb8u, 0x000300f7u, 0x00004cc3u, 0x00000000u, 0x000400fau, 0x000082f3u, + 0x00004cbdu, 0x00004cc0u, 0x000200f8u, 0x00004cc0u, 0x0007004fu, 0x0000005fu, 0x00004cc2u, 0x00004c98u, + 0x00004c98u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004cc3u, 0x000200f8u, 0x00004cbdu, 0x0007004fu, + 0x0000005fu, 0x00004cbfu, 0x00004c98u, 0x00004c98u, 0x00000001u, 0x00000000u, 0x000200f9u, 0x00004cc3u, + 0x000200f8u, 0x00004cc3u, 0x000700f5u, 0x0000005fu, 0x000082f4u, 0x00004cbfu, 0x00004cbdu, 0x00004cc2u, + 0x00004cc0u, 0x000300f7u, 0x00004cccu, 0x00000000u, 0x000400fau, 0x000049bau, 0x00004cc6u, 0x00004cc9u, + 0x000200f8u, 0x00004cc9u, 0x0007004fu, 0x0000005fu, 0x00004ccbu, 0x00004c98u, 0x00004c98u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00004cccu, 0x000200f8u, 0x00004cc6u, 0x0007004fu, 0x0000005fu, 0x00004cc8u, + 0x00004c98u, 0x00004c98u, 0x00000001u, 0x00000000u, 0x000200f9u, 0x00004cccu, 0x000200f8u, 0x00004cccu, + 0x000700f5u, 0x0000005fu, 0x000082f5u, 0x00004cc8u, 0x00004cc6u, 0x00004ccbu, 0x00004cc9u, 0x000300f7u, + 0x00004d0cu, 0x00000000u, 0x000400fau, 0x000082f0u, 0x00004ccfu, 0x00004cedu, 0x000200f8u, 0x00004cedu, + 0x000500a7u, 0x0000005du, 0x00004cf0u, 0x000082f3u, 0x000049b8u, 0x000300f7u, 0x00004cf7u, 0x00000000u, + 0x000400fau, 0x00004cf0u, 0x00004cf1u, 0x00004cf4u, 0x000200f8u, 0x00004cf4u, 0x0007004fu, 0x0000005fu, + 0x00004cf6u, 0x00007e84u, 0x00007e84u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004cf7u, 0x000200f8u, + 0x00004cf1u, 0x0007004fu, 0x0000005fu, 0x00004cf3u, 0x000081e0u, 0x000081e0u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004cf7u, 0x000200f8u, 0x00004cf7u, 0x000700f5u, 0x0000005fu, 0x000082feu, 0x00004cf3u, + 0x00004cf1u, 0x00004cf6u, 0x00004cf4u, 0x00050051u, 0x00000008u, 0x00004cfau, 0x000082f4u, 0x00000000u, + 0x0007004fu, 0x0000005fu, 0x00004cfcu, 0x00007ff0u, 0x00007ff0u, 0x00000000u, 0x00000001u, 0x00050082u, + 0x0000005fu, 0x00004cfeu, 0x00004cfcu, 0x000082feu, 0x00050050u, 0x0000005fu, 0x00004cffu, 0x00004cfau, + 0x00004cfau, 0x00050084u, 0x0000005fu, 0x00004d00u, 0x00004cffu, 0x00004cfeu, 0x00050051u, 0x00000008u, + 0x00004d02u, 0x000082f4u, 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00004d04u, 0x000080ebu, 0x000080ebu, + 0x00000000u, 0x00000001u, 0x00050082u, 0x0000005fu, 0x00004d06u, 0x00004d04u, 0x000082feu, 0x00050050u, + 0x0000005fu, 0x00004d07u, 0x00004d02u, 0x00004d02u, 0x00050084u, 0x0000005fu, 0x00004d08u, 0x00004d07u, + 0x00004d06u, 0x00050080u, 0x0000005fu, 0x00004d09u, 0x00004d00u, 0x00004d08u, 0x00050080u, 0x0000005fu, + 0x00004d0bu, 0x00004d09u, 0x0000bdd7u, 0x000200f9u, 0x00004d0cu, 0x000200f8u, 0x00004ccfu, 0x00050051u, + 0x00000008u, 0x00004cd1u, 0x000082f4u, 0x00000000u, 0x0007004fu, 0x0000005fu, 0x00004cd3u, 0x000080ebu, + 0x000080ebu, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00004cd5u, 0x000081e0u, 0x000081e0u, + 0x00000000u, 0x00000001u, 0x00050082u, 0x0000005fu, 0x00004cd6u, 0x00004cd3u, 0x00004cd5u, 0x00050050u, + 0x0000005fu, 0x00004cd7u, 0x00004cd1u, 0x00004cd1u, 0x00050084u, 0x0000005fu, 0x00004cd8u, 0x00004cd7u, + 0x00004cd6u, 0x00050051u, 0x00000008u, 0x00004cdau, 0x000082f4u, 0x00000001u, 0x0007004fu, 0x0000005fu, + 0x00004cdcu, 0x00007ff0u, 0x00007ff0u, 0x00000000u, 0x00000001u, 0x00050082u, 0x0000005fu, 0x00004cdfu, + 0x00004cdcu, 0x00004cd5u, 0x00050050u, 0x0000005fu, 0x00004ce0u, 0x00004cdau, 0x00004cdau, 0x00050084u, + 0x0000005fu, 0x00004ce1u, 0x00004ce0u, 0x00004cdfu, 0x00050080u, 0x0000005fu, 0x00004ce2u, 0x00004cd8u, + 0x00004ce1u, 0x0007004fu, 0x0000005fu, 0x00004ce4u, 0x00007e84u, 0x00007e84u, 0x00000000u, 0x00000001u, + 0x00050082u, 0x0000005fu, 0x00004ce7u, 0x00004ce4u, 0x00004cd5u, 0x000500c4u, 0x0000005fu, 0x00004ce9u, + 0x00004ce7u, 0x0000bdd6u, 0x00050080u, 0x0000005fu, 0x00004ceau, 0x00004ce2u, 0x00004ce9u, 0x00050080u, + 0x0000005fu, 0x00004cecu, 0x00004ceau, 0x0000bdd7u, 0x000200f9u, 0x00004d0cu, 0x000200f8u, 0x00004d0cu, + 0x000700f5u, 0x0000005fu, 0x00008313u, 0x00004cecu, 0x00004ccfu, 0x00004d0bu, 0x00004cf7u, 0x000300f7u, + 0x00004d4bu, 0x00000000u, 0x000400fau, 0x000049b0u, 0x00004d0eu, 0x00004d2cu, 0x000200f8u, 0x00004d2cu, + 0x000500a7u, 0x0000005du, 0x00004d2fu, 0x000049bau, 0x000049b8u, 0x000300f7u, 0x00004d36u, 0x00000000u, + 0x000400fau, 0x00004d2fu, 0x00004d30u, 0x00004d33u, 0x000200f8u, 0x00004d33u, 0x0007004fu, 0x0000005fu, + 0x00004d35u, 0x00007e84u, 0x00007e84u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004d36u, 0x000200f8u, + 0x00004d30u, 0x0007004fu, 0x0000005fu, 0x00004d32u, 0x000081e0u, 0x000081e0u, 0x00000002u, 0x00000003u, + 0x000200f9u, 0x00004d36u, 0x000200f8u, 0x00004d36u, 0x000700f5u, 0x0000005fu, 0x0000830du, 0x00004d32u, + 0x00004d30u, 0x00004d35u, 0x00004d33u, 0x00050051u, 0x00000008u, 0x00004d39u, 0x000082f5u, 0x00000000u, + 0x0007004fu, 0x0000005fu, 0x00004d3bu, 0x00007ff0u, 0x00007ff0u, 0x00000002u, 0x00000003u, 0x00050082u, + 0x0000005fu, 0x00004d3du, 0x00004d3bu, 0x0000830du, 0x00050050u, 0x0000005fu, 0x00004d3eu, 0x00004d39u, + 0x00004d39u, 0x00050084u, 0x0000005fu, 0x00004d3fu, 0x00004d3eu, 0x00004d3du, 0x00050051u, 0x00000008u, + 0x00004d41u, 0x000082f5u, 0x00000001u, 0x0007004fu, 0x0000005fu, 0x00004d43u, 0x000080ebu, 0x000080ebu, + 0x00000002u, 0x00000003u, 0x00050082u, 0x0000005fu, 0x00004d45u, 0x00004d43u, 0x0000830du, 0x00050050u, + 0x0000005fu, 0x00004d46u, 0x00004d41u, 0x00004d41u, 0x00050084u, 0x0000005fu, 0x00004d47u, 0x00004d46u, + 0x00004d45u, 0x00050080u, 0x0000005fu, 0x00004d48u, 0x00004d3fu, 0x00004d47u, 0x00050080u, 0x0000005fu, + 0x00004d4au, 0x00004d48u, 0x0000bdd7u, 0x000200f9u, 0x00004d4bu, 0x000200f8u, 0x00004d0eu, 0x00050051u, + 0x00000008u, 0x00004d10u, 0x000082f5u, 0x00000000u, 0x0007004fu, 0x0000005fu, 0x00004d12u, 0x000080ebu, + 0x000080ebu, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000005fu, 0x00004d14u, 0x000081e0u, 0x000081e0u, + 0x00000002u, 0x00000003u, 0x00050082u, 0x0000005fu, 0x00004d15u, 0x00004d12u, 0x00004d14u, 0x00050050u, + 0x0000005fu, 0x00004d16u, 0x00004d10u, 0x00004d10u, 0x00050084u, 0x0000005fu, 0x00004d17u, 0x00004d16u, + 0x00004d15u, 0x00050051u, 0x00000008u, 0x00004d19u, 0x000082f5u, 0x00000001u, 0x0007004fu, 0x0000005fu, + 0x00004d1bu, 0x00007ff0u, 0x00007ff0u, 0x00000002u, 0x00000003u, 0x00050082u, 0x0000005fu, 0x00004d1eu, + 0x00004d1bu, 0x00004d14u, 0x00050050u, 0x0000005fu, 0x00004d1fu, 0x00004d19u, 0x00004d19u, 0x00050084u, + 0x0000005fu, 0x00004d20u, 0x00004d1fu, 0x00004d1eu, 0x00050080u, 0x0000005fu, 0x00004d21u, 0x00004d17u, + 0x00004d20u, 0x0007004fu, 0x0000005fu, 0x00004d23u, 0x00007e84u, 0x00007e84u, 0x00000002u, 0x00000003u, + 0x00050082u, 0x0000005fu, 0x00004d26u, 0x00004d23u, 0x00004d14u, 0x000500c4u, 0x0000005fu, 0x00004d28u, + 0x00004d26u, 0x0000bdd6u, 0x00050080u, 0x0000005fu, 0x00004d29u, 0x00004d21u, 0x00004d28u, 0x00050080u, + 0x0000005fu, 0x00004d2bu, 0x00004d29u, 0x0000bdd7u, 0x000200f9u, 0x00004d4bu, 0x000200f8u, 0x00004d4bu, + 0x000700f5u, 0x0000005fu, 0x00008315u, 0x00004d2bu, 0x00004d0eu, 0x00004d4au, 0x00004d36u, 0x00050051u, + 0x00000008u, 0x00004d4eu, 0x00008313u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004d4fu, 0x00008313u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00004d50u, 0x00008315u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00004d51u, 0x00008315u, 0x00000001u, 0x00070050u, 0x00000009u, 0x00004d52u, 0x00004d4eu, 0x00004d4fu, + 0x00004d50u, 0x00004d51u, 0x000500c3u, 0x00000009u, 0x00004d55u, 0x00004d52u, 0x0000bdd1u, 0x00050051u, + 0x00000008u, 0x00004d57u, 0x00004c98u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004d59u, 0x00004d57u, + 0x00004d57u, 0x00004d57u, 0x00004d57u, 0x00050080u, 0x00000009u, 0x00004d5au, 0x00004d55u, 0x00004d59u, + 0x000200f9u, 0x00004d69u, 0x000200f8u, 0x00004d69u, 0x000700f5u, 0x00000009u, 0x00008317u, 0x00004d5au, + 0x00004d4bu, 0x00004d68u, 0x00004d61u, 0x000200f9u, 0x00004e22u, 0x000200f8u, 0x00004e22u, 0x000700f5u, + 0x00000009u, 0x00008316u, 0x00008317u, 0x00004d69u, 0x00008318u, 0x00004e21u, 0x000400a8u, 0x0000005du, + 0x00004e26u, 0x00002290u, 0x000500a7u, 0x0000005du, 0x00004e27u, 0x000023b9u, 0x00004e26u, 0x000300f7u, + 0x00004e2cu, 0x00000000u, 0x000400fau, 0x00004e27u, 0x00004e28u, 0x00004e2cu, 0x000200f8u, 0x00004e28u, + 0x000600cau, 0x00000009u, 0x0000608bu, 0x00008316u, 0x00000208u, 0x00000269u, 0x00050051u, 0x00000008u, + 0x0000608du, 0x0000608bu, 0x00000002u, 0x00050051u, 0x00000008u, 0x0000608fu, 0x00002a2eu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00006091u, 0x0000608bu, 0x00000001u, 0x00050084u, 0x00000008u, 0x00006092u, + 0x0000608fu, 0x00006091u, 0x00050080u, 0x00000008u, 0x00006093u, 0x00006092u, 0x00000628u, 0x000500c3u, + 0x00000008u, 0x00006094u, 0x00006093u, 0x00000263u, 0x00050080u, 0x00000008u, 0x00006095u, 0x0000608du, + 0x00006094u, 0x00050051u, 0x00000008u, 0x00006099u, 0x00002a2eu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x0000609bu, 0x0000608bu, 0x00000000u, 0x00050084u, 0x00000008u, 0x0000609cu, 0x00006099u, 0x0000609bu, + 0x00050051u, 0x00000008u, 0x0000609eu, 0x00002a2eu, 0x00000002u, 0x00050084u, 0x00000008u, 0x000060a1u, + 0x0000609eu, 0x00006091u, 0x00050080u, 0x00000008u, 0x000060a2u, 0x0000609cu, 0x000060a1u, 0x00050080u, + 0x00000008u, 0x000060a3u, 0x000060a2u, 0x00000628u, 0x000500c3u, 0x00000008u, 0x000060a4u, 0x000060a3u, + 0x00000263u, 0x00050080u, 0x00000008u, 0x000060a5u, 0x0000608du, 0x000060a4u, 0x00050051u, 0x00000008u, + 0x000060a9u, 0x00002a2eu, 0x00000003u, 0x00050084u, 0x00000008u, 0x000060acu, 0x000060a9u, 0x0000609bu, + 0x00050080u, 0x00000008u, 0x000060adu, 0x000060acu, 0x00000628u, 0x000500c3u, 0x00000008u, 0x000060aeu, + 0x000060adu, 0x00000263u, 0x00050080u, 0x00000008u, 0x000060afu, 0x0000608du, 0x000060aeu, 0x00070050u, + 0x00000009u, 0x000060b6u, 0x00006095u, 0x000060a5u, 0x000060afu, 0x0000608du, 0x000200f9u, 0x00004e2cu, + 0x000200f8u, 0x00004e2cu, 0x000700f5u, 0x00000009u, 0x0000831cu, 0x00008316u, 0x00004e22u, 0x000060b6u, + 0x00004e28u, 0x000200f9u, 0x000023d5u, 0x000200f8u, 0x000023bbu, 0x000600cau, 0x00000009u, 0x0000479cu, + 0x00007dabu, 0x00000208u, 0x00000269u, 0x00050051u, 0x00000008u, 0x0000479eu, 0x0000479cu, 0x00000002u, + 0x00050051u, 0x00000008u, 0x000047a0u, 0x00002a2eu, 0x00000000u, 0x00050051u, 0x00000008u, 0x000047a2u, + 0x0000479cu, 0x00000001u, 0x00050084u, 0x00000008u, 0x000047a3u, 0x000047a0u, 0x000047a2u, 0x00050080u, + 0x00000008u, 0x000047a4u, 0x000047a3u, 0x00000628u, 0x000500c3u, 0x00000008u, 0x000047a5u, 0x000047a4u, + 0x00000263u, 0x00050080u, 0x00000008u, 0x000047a6u, 0x0000479eu, 0x000047a5u, 0x00050051u, 0x00000008u, + 0x000047aau, 0x00002a2eu, 0x00000001u, 0x00050051u, 0x00000008u, 0x000047acu, 0x0000479cu, 0x00000000u, + 0x00050084u, 0x00000008u, 0x000047adu, 0x000047aau, 0x000047acu, 0x00050051u, 0x00000008u, 0x000047afu, + 0x00002a2eu, 0x00000002u, 0x00050084u, 0x00000008u, 0x000047b2u, 0x000047afu, 0x000047a2u, 0x00050080u, + 0x00000008u, 0x000047b3u, 0x000047adu, 0x000047b2u, 0x00050080u, 0x00000008u, 0x000047b4u, 0x000047b3u, + 0x00000628u, 0x000500c3u, 0x00000008u, 0x000047b5u, 0x000047b4u, 0x00000263u, 0x00050080u, 0x00000008u, + 0x000047b6u, 0x0000479eu, 0x000047b5u, 0x00050051u, 0x00000008u, 0x000047bau, 0x00002a2eu, 0x00000003u, + 0x00050084u, 0x00000008u, 0x000047bdu, 0x000047bau, 0x000047acu, 0x00050080u, 0x00000008u, 0x000047beu, + 0x000047bdu, 0x00000628u, 0x000500c3u, 0x00000008u, 0x000047bfu, 0x000047beu, 0x00000263u, 0x00050080u, + 0x00000008u, 0x000047c0u, 0x0000479eu, 0x000047bfu, 0x00070050u, 0x00000009u, 0x000047c7u, 0x000047a6u, + 0x000047b6u, 0x000047c0u, 0x0000479eu, 0x000200f9u, 0x000023d5u, 0x000200f8u, 0x000023d5u, 0x000700f5u, + 0x00000009u, 0x0000b883u, 0x000081feu, 0x000023bbu, 0x000081e0u, 0x00004e2cu, 0x000700f5u, 0x00000009u, + 0x0000b7dbu, 0x00008109u, 0x000023bbu, 0x000080ebu, 0x00004e2cu, 0x000700f5u, 0x00000009u, 0x0000b733u, + 0x0000800eu, 0x000023bbu, 0x00007ff0u, 0x00004e2cu, 0x000700f5u, 0x00000009u, 0x0000b68bu, 0x00007ea2u, + 0x000023bbu, 0x00007e84u, 0x00004e2cu, 0x000700f5u, 0x00000009u, 0x00008651u, 0x000047c7u, 0x000023bbu, + 0x0000831cu, 0x00004e2cu, 0x000200f9u, 0x000023d6u, 0x000200f8u, 0x000023d6u, 0x000700f5u, 0x00000009u, + 0x0000b882u, 0x000081feu, 0x000023b4u, 0x0000b883u, 0x000023d5u, 0x000700f5u, 0x00000009u, 0x0000b7dau, + 0x00008109u, 0x000023b4u, 0x0000b7dbu, 0x000023d5u, 0x000700f5u, 0x00000009u, 0x0000b732u, 0x0000800eu, + 0x000023b4u, 0x0000b733u, 0x000023d5u, 0x000700f5u, 0x00000009u, 0x0000b68au, 0x00007ea2u, 0x000023b4u, + 0x0000b68bu, 0x000023d5u, 0x000700f5u, 0x00000009u, 0x0000859fu, 0x000085aeu, 0x000023b4u, 0x00008651u, + 0x000023d5u, 0x000600a9u, 0x00000008u, 0x000023d9u, 0x00002272u, 0x00000217u, 0x00000208u, 0x000500c3u, + 0x00000008u, 0x000023dau, 0x00007643u, 0x000023d9u, 0x000500c3u, 0x00000008u, 0x000023dcu, 0x000024deu, + 0x0000021au, 0x000500c7u, 0x00000008u, 0x000023deu, 0x000024deu, 0x0000021du, 0x000500b1u, 0x0000005du, + 0x000060bcu, 0x000023dcu, 0x0000021au, 0x000300f7u, 0x000060cfu, 0x00000000u, 0x000400fau, 0x000060bcu, + 0x000060bdu, 0x000060c8u, 0x000200f8u, 0x000060c8u, 0x000500aau, 0x0000005du, 0x000060cau, 0x000023dcu, + 0x0000021au, 0x000300f7u, 0x000060ceu, 0x00000000u, 0x000400fau, 0x000060cau, 0x000060cbu, 0x000060cdu, + 0x000200f8u, 0x000060cdu, 0x000200f9u, 0x000060ceu, 0x000200f8u, 0x000060cbu, 0x000500c7u, 0x00000008u, + 0x000060f7u, 0x0000841eu, 0x0000038bu, 0x000200f9u, 0x000060ceu, 0x000200f8u, 0x000060ceu, 0x000700f5u, + 0x00000008u, 0x00008528u, 0x000060f7u, 0x000060cbu, 0x00000208u, 0x000060cdu, 0x000200f9u, 0x000060cfu, + 0x000200f8u, 0x000060bdu, 0x000500c7u, 0x00000008u, 0x000060c0u, 0x000023dau, 0x0000021du, 0x00050084u, + 0x00000008u, 0x000060c1u, 0x000060c0u, 0x00000220u, 0x000500c7u, 0x00000008u, 0x000060c3u, 0x00007645u, + 0x0000021du, 0x00050080u, 0x00000008u, 0x000060c4u, 0x000060c1u, 0x000060c3u, 0x0003003eu, 0x000060b7u, + 0x000003cdu, 0x00060041u, 0x0000003eu, 0x000060c5u, 0x000060b7u, 0x000023dcu, 0x000060c4u, 0x0004003du, + 0x00000008u, 0x000060c6u, 0x000060c5u, 0x00050084u, 0x00000008u, 0x000060c7u, 0x000060c6u, 0x000003d9u, + 0x000200f9u, 0x000060cfu, 0x000200f8u, 0x000060cfu, 0x000700f5u, 0x00000008u, 0x00008527u, 0x000060c7u, + 0x000060bdu, 0x00008528u, 0x000060ceu, 0x000500aau, 0x0000005du, 0x000060d1u, 0x000023deu, 0x0000021du, + 0x000300f7u, 0x000060f3u, 0x00000000u, 0x000400fau, 0x000060d1u, 0x000060d2u, 0x000060d3u, 0x000200f8u, + 0x000060d3u, 0x000500aau, 0x0000005du, 0x000060d5u, 0x000023deu, 0x0000021au, 0x000300f7u, 0x000060f2u, + 0x00000000u, 0x000400fau, 0x000060d5u, 0x000060d6u, 0x000060d8u, 0x000200f8u, 0x000060d8u, 0x000500afu, + 0x0000005du, 0x000060dau, 0x000023dcu, 0x0000021au, 0x000300f7u, 0x000060e9u, 0x00000000u, 0x000400fau, + 0x000060dau, 0x000060dbu, 0x000060e6u, 0x000200f8u, 0x000060e6u, 0x000500c7u, 0x00000008u, 0x000060e8u, + 0x00008527u, 0x00000229u, 0x000200f9u, 0x000060e9u, 0x000200f8u, 0x000060dbu, 0x000500c7u, 0x00000008u, + 0x000060ddu, 0x000023dcu, 0x00000217u, 0x000500c7u, 0x00000008u, 0x000060dfu, 0x000023dau, 0x0000021du, + 0x00050084u, 0x00000008u, 0x000060e0u, 0x000060dfu, 0x00000220u, 0x000500c7u, 0x00000008u, 0x000060e2u, + 0x00007645u, 0x0000021du, 0x00050080u, 0x00000008u, 0x000060e3u, 0x000060e0u, 0x000060e2u, 0x0003003eu, + 0x000060b9u, 0x000003cdu, 0x00060041u, 0x0000003eu, 0x000060e4u, 0x000060b9u, 0x000060ddu, 0x000060e3u, + 0x0004003du, 0x00000008u, 0x000060e5u, 0x000060e4u, 0x000200f9u, 0x000060e9u, 0x000200f8u, 0x000060e9u, + 0x000700f5u, 0x00000008u, 0x00008529u, 0x000060e5u, 0x000060dbu, 0x000060e8u, 0x000060e6u, 0x000500aau, + 0x0000005du, 0x000060ecu, 0x000023deu, 0x00000217u, 0x000300f7u, 0x000060f1u, 0x00000000u, 0x000400fau, + 0x000060ecu, 0x000060edu, 0x000060f1u, 0x000200f8u, 0x000060edu, 0x000400c8u, 0x00000008u, 0x000060efu, + 0x00008529u, 0x000500c7u, 0x00000008u, 0x000060f0u, 0x000060efu, 0x00000229u, 0x000200f9u, 0x000060f1u, + 0x000200f8u, 0x000060f1u, 0x000700f5u, 0x00000008u, 0x00008532u, 0x00008529u, 0x000060e9u, 0x000060f0u, + 0x000060edu, 0x000200f9u, 0x000060f2u, 0x000200f8u, 0x000060d6u, 0x000500c7u, 0x00000008u, 0x000060fbu, + 0x0000841eu, 0x00000229u, 0x000200f9u, 0x000060f2u, 0x000200f8u, 0x000060f2u, 0x000700f5u, 0x00000008u, + 0x00008531u, 0x000060fbu, 0x000060d6u, 0x00008532u, 0x000060f1u, 0x000200f9u, 0x000060f3u, 0x000200f8u, + 0x000060d2u, 0x000200f9u, 0x000060f3u, 0x000200f8u, 0x000060f3u, 0x000700f5u, 0x00000008u, 0x00008530u, + 0x00000208u, 0x000060d2u, 0x00008531u, 0x000060f2u, 0x000300f7u, 0x00002451u, 0x00000000u, 0x000400fau, + 0x0000226fu, 0x000023e4u, 0x00002432u, 0x000200f8u, 0x00002432u, 0x000500c7u, 0x00000008u, 0x00006454u, + 0x0000841eu, 0x00000229u, 0x000500c4u, 0x00000008u, 0x00006455u, 0x00006454u, 0x00000226u, 0x000500c5u, + 0x00000008u, 0x00006456u, 0x00006455u, 0x00000382u, 0x00050051u, 0x00000008u, 0x00006473u, 0x000024d3u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00006475u, 0x000024d8u, 0x00000000u, 0x000300f7u, 0x000064ceu, + 0x00000000u, 0x000f00fbu, 0x00006473u, 0x000064b5u, 0x00000000u, 0x000064b9u, 0x00000001u, 0x000064bdu, + 0x00000002u, 0x000064c1u, 0x00000004u, 0x000064c5u, 0x00000007u, 0x000064c9u, 0x00000006u, 0x000064cdu, + 0x000200f8u, 0x000064cdu, 0x000200f9u, 0x000064ceu, 0x000200f8u, 0x000064c9u, 0x00060050u, 0x0000003cu, + 0x000064ccu, 0x00006456u, 0x00006456u, 0x00006456u, 0x000200f9u, 0x000064ceu, 0x000200f8u, 0x000064c5u, + 0x0008004fu, 0x0000003cu, 0x000064c8u, 0x00002a89u, 0x00002a89u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000064ceu, 0x000200f8u, 0x000064c1u, 0x0008004fu, 0x0000003cu, 0x000064c4u, 0x0000859fu, + 0x0000859fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000064ceu, 0x000200f8u, 0x000064bdu, + 0x0008004fu, 0x0000003cu, 0x000064c0u, 0x00007dabu, 0x00007dabu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000064ceu, 0x000200f8u, 0x000064b9u, 0x000200f9u, 0x000064ceu, 0x000200f8u, 0x000064b5u, + 0x0008004fu, 0x0000003cu, 0x000064b8u, 0x000029ffu, 0x000029ffu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000064ceu, 0x000200f8u, 0x000064ceu, 0x001100f5u, 0x0000003cu, 0x0000887eu, 0x000064b8u, + 0x000064b5u, 0x00000948u, 0x000064b9u, 0x000064c0u, 0x000064bdu, 0x000064c4u, 0x000064c1u, 0x000064c8u, + 0x000064c5u, 0x000064ccu, 0x000064c9u, 0x00001a72u, 0x000064cdu, 0x000300f7u, 0x000064e0u, 0x00000000u, + 0x000d00fbu, 0x00006475u, 0x000064d0u, 0x00000000u, 0x000064d3u, 0x00000001u, 0x000064d6u, 0x00000002u, + 0x000064d9u, 0x00000004u, 0x000064dcu, 0x00000006u, 0x000064dfu, 0x000200f8u, 0x000064dfu, 0x000200f9u, + 0x000064e0u, 0x000200f8u, 0x000064dcu, 0x00050051u, 0x00000008u, 0x000064deu, 0x00002a89u, 0x00000003u, + 0x000200f9u, 0x000064e0u, 0x000200f8u, 0x000064d9u, 0x00050051u, 0x00000008u, 0x000064dbu, 0x0000859fu, + 0x00000003u, 0x000200f9u, 0x000064e0u, 0x000200f8u, 0x000064d6u, 0x00050051u, 0x00000008u, 0x000064d8u, + 0x00007dabu, 0x00000003u, 0x000200f9u, 0x000064e0u, 0x000200f8u, 0x000064d3u, 0x000200f9u, 0x000064e0u, + 0x000200f8u, 0x000064d0u, 0x00050051u, 0x00000008u, 0x000064d2u, 0x000029ffu, 0x00000003u, 0x000200f9u, + 0x000064e0u, 0x000200f8u, 0x000064e0u, 0x000f00f5u, 0x00000008u, 0x0000887fu, 0x000064d2u, 0x000064d0u, + 0x00000208u, 0x000064d3u, 0x000064d8u, 0x000064d6u, 0x000064dbu, 0x000064d9u, 0x000064deu, 0x000064dcu, + 0x00001a71u, 0x000064dfu, 0x00050051u, 0x00000008u, 0x000064e3u, 0x0000887eu, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000064e4u, 0x0000887eu, 0x00000001u, 0x00050051u, 0x00000008u, 0x000064e5u, 0x0000887eu, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000064e6u, 0x000064e3u, 0x000064e4u, 0x000064e5u, 0x0000887fu, + 0x00050051u, 0x00000008u, 0x00006479u, 0x000024d3u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000647bu, + 0x000024d8u, 0x00000001u, 0x000300f7u, 0x00006508u, 0x00000000u, 0x000d00fbu, 0x00006479u, 0x000064ecu, + 0x00000000u, 0x000064f0u, 0x00000001u, 0x000064f4u, 0x00000002u, 0x000064f8u, 0x00000004u, 0x000064fcu, + 0x00000007u, 0x00006500u, 0x000200f8u, 0x00006500u, 0x00050051u, 0x00000008u, 0x00006502u, 0x00002a04u, + 0x00000001u, 0x000500c4u, 0x00000008u, 0x00006503u, 0x00006502u, 0x00000263u, 0x00050051u, 0x00000008u, + 0x00006505u, 0x00002a04u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x00006506u, 0x00006503u, 0x00006505u, + 0x00060050u, 0x0000003cu, 0x00006507u, 0x00006506u, 0x00006506u, 0x00006506u, 0x000200f9u, 0x00006508u, + 0x000200f8u, 0x000064fcu, 0x0008004fu, 0x0000003cu, 0x000064ffu, 0x00002a89u, 0x00002a89u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006508u, 0x000200f8u, 0x000064f8u, 0x0008004fu, 0x0000003cu, + 0x000064fbu, 0x0000859fu, 0x0000859fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006508u, + 0x000200f8u, 0x000064f4u, 0x0008004fu, 0x0000003cu, 0x000064f7u, 0x00007dabu, 0x00007dabu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006508u, 0x000200f8u, 0x000064f0u, 0x000200f9u, 0x00006508u, + 0x000200f8u, 0x000064ecu, 0x0008004fu, 0x0000003cu, 0x000064efu, 0x00002a04u, 0x00002a04u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006508u, 0x000200f8u, 0x00006508u, 0x000f00f5u, 0x0000003cu, + 0x00008881u, 0x000064efu, 0x000064ecu, 0x00000948u, 0x000064f0u, 0x000064f7u, 0x000064f4u, 0x000064fbu, + 0x000064f8u, 0x000064ffu, 0x000064fcu, 0x00006507u, 0x00006500u, 0x000300f7u, 0x0000651au, 0x00000000u, + 0x000d00fbu, 0x0000647bu, 0x0000650au, 0x00000000u, 0x0000650du, 0x00000001u, 0x00006510u, 0x00000002u, + 0x00006513u, 0x00000004u, 0x00006516u, 0x00000006u, 0x00006519u, 0x000200f8u, 0x00006519u, 0x000200f9u, + 0x0000651au, 0x000200f8u, 0x00006516u, 0x00050051u, 0x00000008u, 0x00006518u, 0x00002a89u, 0x00000003u, + 0x000200f9u, 0x0000651au, 0x000200f8u, 0x00006513u, 0x00050051u, 0x00000008u, 0x00006515u, 0x0000859fu, + 0x00000003u, 0x000200f9u, 0x0000651au, 0x000200f8u, 0x00006510u, 0x00050051u, 0x00000008u, 0x00006512u, + 0x00007dabu, 0x00000003u, 0x000200f9u, 0x0000651au, 0x000200f8u, 0x0000650du, 0x000200f9u, 0x0000651au, + 0x000200f8u, 0x0000650au, 0x00050051u, 0x00000008u, 0x0000650cu, 0x00002a04u, 0x00000003u, 0x000200f9u, + 0x0000651au, 0x000200f8u, 0x0000651au, 0x000f00f5u, 0x00000008u, 0x00008882u, 0x0000650cu, 0x0000650au, + 0x00000208u, 0x0000650du, 0x00006512u, 0x00006510u, 0x00006515u, 0x00006513u, 0x00006518u, 0x00006516u, + 0x00001a71u, 0x00006519u, 0x00050051u, 0x00000008u, 0x0000651du, 0x00008881u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x0000651eu, 0x00008881u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000651fu, 0x00008881u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00006520u, 0x0000651du, 0x0000651eu, 0x0000651fu, 0x00008882u, + 0x00050051u, 0x00000008u, 0x0000647fu, 0x000024d3u, 0x00000002u, 0x00050051u, 0x00000008u, 0x00006481u, + 0x000024d8u, 0x00000002u, 0x000300f7u, 0x00006556u, 0x00000000u, 0x001700fbu, 0x0000647fu, 0x00006526u, + 0x00000000u, 0x0000652au, 0x00000007u, 0x0000652eu, 0x00000001u, 0x00006532u, 0x00000002u, 0x00006536u, + 0x00000004u, 0x0000653au, 0x00000008u, 0x0000653eu, 0x00000009u, 0x00006542u, 0x0000000bu, 0x00006546u, + 0x0000000du, 0x0000654au, 0x0000000fu, 0x0000654eu, 0x000200f8u, 0x0000654eu, 0x00050051u, 0x00000008u, + 0x00006550u, 0x00002a09u, 0x00000001u, 0x000500c4u, 0x00000008u, 0x00006551u, 0x00006550u, 0x00000263u, + 0x00050051u, 0x00000008u, 0x00006553u, 0x00002a09u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x00006554u, + 0x00006551u, 0x00006553u, 0x00060050u, 0x0000003cu, 0x00006555u, 0x00006554u, 0x00006554u, 0x00006554u, + 0x000200f9u, 0x00006556u, 0x000200f8u, 0x0000654au, 0x00060050u, 0x0000003cu, 0x0000654du, 0x0000865bu, + 0x0000865bu, 0x0000865bu, 0x000200f9u, 0x00006556u, 0x000200f8u, 0x00006546u, 0x0008004fu, 0x0000003cu, + 0x00006549u, 0x00002a89u, 0x00002a89u, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x00006556u, + 0x000200f8u, 0x00006542u, 0x0008004fu, 0x0000003cu, 0x00006545u, 0x0000859fu, 0x0000859fu, 0x00000003u, + 0x00000003u, 0x00000003u, 0x000200f9u, 0x00006556u, 0x000200f8u, 0x0000653eu, 0x0008004fu, 0x0000003cu, + 0x00006541u, 0x00007dabu, 0x00007dabu, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x00006556u, + 0x000200f8u, 0x0000653au, 0x0008004fu, 0x0000003cu, 0x0000653du, 0x00002a89u, 0x00002a89u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006556u, 0x000200f8u, 0x00006536u, 0x0008004fu, 0x0000003cu, + 0x00006539u, 0x0000859fu, 0x0000859fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006556u, + 0x000200f8u, 0x00006532u, 0x0008004fu, 0x0000003cu, 0x00006535u, 0x00007dabu, 0x00007dabu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006556u, 0x000200f8u, 0x0000652eu, 0x000200f9u, 0x00006556u, + 0x000200f8u, 0x0000652au, 0x000200f9u, 0x00006556u, 0x000200f8u, 0x00006526u, 0x0008004fu, 0x0000003cu, + 0x00006529u, 0x00002a09u, 0x00002a09u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006556u, + 0x000200f8u, 0x00006556u, 0x001900f5u, 0x0000003cu, 0x00008884u, 0x00006529u, 0x00006526u, 0x00000948u, + 0x0000652au, 0x00000948u, 0x0000652eu, 0x00006535u, 0x00006532u, 0x00006539u, 0x00006536u, 0x0000653du, + 0x0000653au, 0x00006541u, 0x0000653eu, 0x00006545u, 0x00006542u, 0x00006549u, 0x00006546u, 0x0000654du, + 0x0000654au, 0x00006555u, 0x0000654eu, 0x000300f7u, 0x00006567u, 0x00000000u, 0x000b00fbu, 0x00006481u, + 0x00006558u, 0x00000000u, 0x0000655bu, 0x00000001u, 0x0000655eu, 0x00000002u, 0x00006561u, 0x00000004u, + 0x00006564u, 0x000200f8u, 0x00006564u, 0x00050051u, 0x00000008u, 0x00006566u, 0x00002a89u, 0x00000003u, + 0x000200f9u, 0x00006567u, 0x000200f8u, 0x00006561u, 0x00050051u, 0x00000008u, 0x00006563u, 0x0000859fu, + 0x00000003u, 0x000200f9u, 0x00006567u, 0x000200f8u, 0x0000655eu, 0x00050051u, 0x00000008u, 0x00006560u, + 0x00007dabu, 0x00000003u, 0x000200f9u, 0x00006567u, 0x000200f8u, 0x0000655bu, 0x000200f9u, 0x00006567u, + 0x000200f8u, 0x00006558u, 0x00050051u, 0x00000008u, 0x0000655au, 0x00002a09u, 0x00000003u, 0x000200f9u, + 0x00006567u, 0x000200f8u, 0x00006567u, 0x000d00f5u, 0x00000008u, 0x00008885u, 0x0000655au, 0x00006558u, + 0x0000865bu, 0x0000655bu, 0x00006560u, 0x0000655eu, 0x00006563u, 0x00006561u, 0x00006566u, 0x00006564u, + 0x00050051u, 0x00000008u, 0x0000656au, 0x00008884u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000656bu, + 0x00008884u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000656cu, 0x00008884u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x0000656du, 0x0000656au, 0x0000656bu, 0x0000656cu, 0x00008885u, 0x00050051u, 0x00000008u, + 0x00006485u, 0x000024d3u, 0x00000003u, 0x00050051u, 0x00000008u, 0x00006487u, 0x000024d8u, 0x00000003u, + 0x000300f7u, 0x00006588u, 0x00000000u, 0x000d00fbu, 0x00006485u, 0x00006573u, 0x00000000u, 0x00006577u, + 0x00000001u, 0x0000657bu, 0x00000002u, 0x0000657fu, 0x00000004u, 0x00006583u, 0x00000006u, 0x00006587u, + 0x000200f8u, 0x00006587u, 0x000200f9u, 0x00006588u, 0x000200f8u, 0x00006583u, 0x0008004fu, 0x0000003cu, + 0x00006586u, 0x00002a89u, 0x00002a89u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006588u, + 0x000200f8u, 0x0000657fu, 0x0008004fu, 0x0000003cu, 0x00006582u, 0x0000859fu, 0x0000859fu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006588u, 0x000200f8u, 0x0000657bu, 0x0008004fu, 0x0000003cu, + 0x0000657eu, 0x00007dabu, 0x00007dabu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006588u, + 0x000200f8u, 0x00006577u, 0x000200f9u, 0x00006588u, 0x000200f8u, 0x00006573u, 0x0008004fu, 0x0000003cu, + 0x00006576u, 0x00002a0eu, 0x00002a0eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006588u, + 0x000200f8u, 0x00006588u, 0x000f00f5u, 0x0000003cu, 0x00008887u, 0x00006576u, 0x00006573u, 0x00000948u, + 0x00006577u, 0x0000657eu, 0x0000657bu, 0x00006582u, 0x0000657fu, 0x00006586u, 0x00006583u, 0x00001a72u, + 0x00006587u, 0x000300f7u, 0x0000659au, 0x00000000u, 0x000d00fbu, 0x00006487u, 0x0000658au, 0x00000000u, + 0x0000658du, 0x00000001u, 0x00006590u, 0x00000002u, 0x00006593u, 0x00000004u, 0x00006596u, 0x00000006u, + 0x00006599u, 0x000200f8u, 0x00006599u, 0x000200f9u, 0x0000659au, 0x000200f8u, 0x00006596u, 0x00050051u, + 0x00000008u, 0x00006598u, 0x00002a89u, 0x00000003u, 0x000200f9u, 0x0000659au, 0x000200f8u, 0x00006593u, + 0x00050051u, 0x00000008u, 0x00006595u, 0x0000859fu, 0x00000003u, 0x000200f9u, 0x0000659au, 0x000200f8u, + 0x00006590u, 0x00050051u, 0x00000008u, 0x00006592u, 0x00007dabu, 0x00000003u, 0x000200f9u, 0x0000659au, + 0x000200f8u, 0x0000658du, 0x000200f9u, 0x0000659au, 0x000200f8u, 0x0000658au, 0x00050051u, 0x00000008u, + 0x0000658cu, 0x00002a0eu, 0x00000003u, 0x000200f9u, 0x0000659au, 0x000200f8u, 0x0000659au, 0x000f00f5u, + 0x00000008u, 0x00008888u, 0x0000658cu, 0x0000658au, 0x00000208u, 0x0000658du, 0x00006592u, 0x00006590u, + 0x00006595u, 0x00006593u, 0x00006598u, 0x00006596u, 0x00001a71u, 0x00006599u, 0x00050051u, 0x00000008u, + 0x0000659du, 0x00008887u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000659eu, 0x00008887u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x0000659fu, 0x00008887u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000065a0u, + 0x0000659du, 0x0000659eu, 0x0000659fu, 0x00008888u, 0x000600cau, 0x00000009u, 0x000065a8u, 0x0000656du, + 0x00000208u, 0x00000269u, 0x00050082u, 0x00000009u, 0x000065cau, 0x000064e6u, 0x0000bdc6u, 0x000600cau, + 0x00000009u, 0x000065cbu, 0x000065cau, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x000065cdu, + 0x000065cbu, 0x0000bdc6u, 0x00050082u, 0x00000009u, 0x000065d2u, 0x00006520u, 0x0000bdc6u, 0x000600cau, + 0x00000009u, 0x000065d3u, 0x000065d2u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x000065d5u, + 0x000065d3u, 0x0000bdc6u, 0x00050082u, 0x00000009u, 0x000065dau, 0x000065a0u, 0x0000bdc6u, 0x000600cau, + 0x00000009u, 0x000065dbu, 0x000065dau, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x000065ddu, + 0x000065dbu, 0x0000bdc6u, 0x00050082u, 0x00000009u, 0x000065b1u, 0x000065cdu, 0x000065d5u, 0x00050084u, + 0x00000009u, 0x000065b3u, 0x000065b1u, 0x000065a8u, 0x00050080u, 0x00000009u, 0x000065b6u, 0x000065b3u, + 0x0000bdc6u, 0x000500c3u, 0x00000009u, 0x000065b9u, 0x000065b6u, 0x0000bdd1u, 0x00050080u, 0x00000009u, + 0x000065c5u, 0x000065b9u, 0x000065ddu, 0x00050082u, 0x00000009u, 0x000065e2u, 0x000065c5u, 0x0000bdc6u, + 0x000600cau, 0x00000009u, 0x000065e4u, 0x000065e2u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, + 0x000065e7u, 0x000065e4u, 0x0000bdc6u, 0x0008000cu, 0x00000009u, 0x000065e9u, 0x00000001u, 0x0000002du, + 0x000065e7u, 0x00000616u, 0x00000b03u, 0x00050051u, 0x00000008u, 0x00006491u, 0x000065e9u, 0x00000003u, + 0x00050080u, 0x00000008u, 0x00006494u, 0x00006491u, 0x00000217u, 0x000500c3u, 0x00000008u, 0x00006495u, + 0x00006494u, 0x00000263u, 0x00050080u, 0x00000008u, 0x00006496u, 0x00006491u, 0x00006495u, 0x000300f7u, + 0x000064a3u, 0x00000000u, 0x000400fau, 0x0000225au, 0x00006498u, 0x000064a0u, 0x000200f8u, 0x000064a0u, + 0x000500c4u, 0x00000008u, 0x000064a2u, 0x00002300u, 0x00000223u, 0x000200f9u, 0x000064a3u, 0x000200f8u, + 0x00006498u, 0x00050084u, 0x00000008u, 0x0000649bu, 0x00006496u, 0x00002300u, 0x00050080u, 0x00000008u, + 0x0000649cu, 0x0000649bu, 0x00000220u, 0x000500c3u, 0x00000008u, 0x0000649du, 0x0000649cu, 0x0000021du, + 0x000500c3u, 0x00000008u, 0x0000649fu, 0x0000649du, 0x00000223u, 0x000200f9u, 0x000064a3u, 0x000200f8u, + 0x000064a3u, 0x000700f5u, 0x00000008u, 0x00008897u, 0x0000649fu, 0x00006498u, 0x00002300u, 0x000064a0u, + 0x000700f5u, 0x00000008u, 0x00008892u, 0x0000649du, 0x00006498u, 0x000064a2u, 0x000064a0u, 0x000300f7u, + 0x000064abu, 0x00000000u, 0x000400fau, 0x0000225du, 0x000064a5u, 0x000064a7u, 0x000200f8u, 0x000064a7u, + 0x00050080u, 0x00000008u, 0x000064aau, 0x00006496u, 0x00008530u, 0x000200f9u, 0x000064abu, 0x000200f8u, + 0x000064a5u, 0x000200f9u, 0x000064abu, 0x000200f8u, 0x000064abu, 0x000700f5u, 0x00000008u, 0x00008893u, + 0x00008892u, 0x000064a5u, 0x000064aau, 0x000064a7u, 0x0008000cu, 0x00000008u, 0x000064adu, 0x00000001u, + 0x0000002du, 0x00008893u, 0x00000208u, 0x00000390u, 0x00050051u, 0x00000008u, 0x0000244au, 0x000065e9u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x0000244bu, 0x000065e9u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x0000244cu, 0x000065e9u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000244eu, 0x0000244au, 0x0000244bu, + 0x0000244cu, 0x000064adu, 0x000200f9u, 0x00002451u, 0x000200f8u, 0x000023e4u, 0x000500c7u, 0x00000008u, + 0x000060ffu, 0x0000841eu, 0x00000229u, 0x000500c4u, 0x00000008u, 0x00006100u, 0x000060ffu, 0x00000226u, + 0x000500c5u, 0x00000008u, 0x00006101u, 0x00006100u, 0x00000382u, 0x00050051u, 0x00000008u, 0x0000611fu, + 0x000024c9u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006121u, 0x000024ceu, 0x00000000u, 0x000300f7u, + 0x0000617au, 0x00000000u, 0x000f00fbu, 0x0000611fu, 0x00006161u, 0x00000000u, 0x00006165u, 0x00000001u, + 0x00006169u, 0x00000002u, 0x0000616du, 0x00000004u, 0x00006171u, 0x00000007u, 0x00006175u, 0x00000006u, + 0x00006179u, 0x000200f8u, 0x00006179u, 0x000200f9u, 0x0000617au, 0x000200f8u, 0x00006175u, 0x00060050u, + 0x0000003cu, 0x00006178u, 0x00006101u, 0x00006101u, 0x00006101u, 0x000200f9u, 0x0000617au, 0x000200f8u, + 0x00006171u, 0x0008004fu, 0x0000003cu, 0x00006174u, 0x00002a89u, 0x00002a89u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x0000617au, 0x000200f8u, 0x0000616du, 0x0008004fu, 0x0000003cu, 0x00006170u, + 0x0000859fu, 0x0000859fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000617au, 0x000200f8u, + 0x00006169u, 0x0008004fu, 0x0000003cu, 0x0000616cu, 0x00007dabu, 0x00007dabu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x0000617au, 0x000200f8u, 0x00006165u, 0x000200f9u, 0x0000617au, 0x000200f8u, + 0x00006161u, 0x0008004fu, 0x0000003cu, 0x00006164u, 0x000029ebu, 0x000029ebu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x0000617au, 0x000200f8u, 0x0000617au, 0x001100f5u, 0x0000003cu, 0x00008899u, + 0x00006164u, 0x00006161u, 0x00000948u, 0x00006165u, 0x0000616cu, 0x00006169u, 0x00006170u, 0x0000616du, + 0x00006174u, 0x00006171u, 0x00006178u, 0x00006175u, 0x00001a72u, 0x00006179u, 0x000300f7u, 0x0000618cu, + 0x00000000u, 0x000d00fbu, 0x00006121u, 0x0000617cu, 0x00000000u, 0x0000617fu, 0x00000001u, 0x00006182u, + 0x00000002u, 0x00006185u, 0x00000004u, 0x00006188u, 0x00000006u, 0x0000618bu, 0x000200f8u, 0x0000618bu, + 0x000200f9u, 0x0000618cu, 0x000200f8u, 0x00006188u, 0x00050051u, 0x00000008u, 0x0000618au, 0x00002a89u, + 0x00000003u, 0x000200f9u, 0x0000618cu, 0x000200f8u, 0x00006185u, 0x00050051u, 0x00000008u, 0x00006187u, + 0x0000859fu, 0x00000003u, 0x000200f9u, 0x0000618cu, 0x000200f8u, 0x00006182u, 0x00050051u, 0x00000008u, + 0x00006184u, 0x00007dabu, 0x00000003u, 0x000200f9u, 0x0000618cu, 0x000200f8u, 0x0000617fu, 0x000200f9u, + 0x0000618cu, 0x000200f8u, 0x0000617cu, 0x00050051u, 0x00000008u, 0x0000617eu, 0x000029ebu, 0x00000003u, + 0x000200f9u, 0x0000618cu, 0x000200f8u, 0x0000618cu, 0x000f00f5u, 0x00000008u, 0x0000889au, 0x0000617eu, + 0x0000617cu, 0x00000208u, 0x0000617fu, 0x00006184u, 0x00006182u, 0x00006187u, 0x00006185u, 0x0000618au, + 0x00006188u, 0x00001a71u, 0x0000618bu, 0x00050051u, 0x00000008u, 0x0000618fu, 0x00008899u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00006190u, 0x00008899u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00006191u, + 0x00008899u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006192u, 0x0000618fu, 0x00006190u, 0x00006191u, + 0x0000889au, 0x00050051u, 0x00000008u, 0x00006125u, 0x000024c9u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00006127u, 0x000024ceu, 0x00000001u, 0x000300f7u, 0x000061b4u, 0x00000000u, 0x000d00fbu, 0x00006125u, + 0x00006198u, 0x00000000u, 0x0000619cu, 0x00000001u, 0x000061a0u, 0x00000002u, 0x000061a4u, 0x00000004u, + 0x000061a8u, 0x00000007u, 0x000061acu, 0x000200f8u, 0x000061acu, 0x00050051u, 0x00000008u, 0x000061aeu, + 0x000029f0u, 0x00000001u, 0x000500c4u, 0x00000008u, 0x000061afu, 0x000061aeu, 0x00000263u, 0x00050051u, + 0x00000008u, 0x000061b1u, 0x000029f0u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x000061b2u, 0x000061afu, + 0x000061b1u, 0x00060050u, 0x0000003cu, 0x000061b3u, 0x000061b2u, 0x000061b2u, 0x000061b2u, 0x000200f9u, + 0x000061b4u, 0x000200f8u, 0x000061a8u, 0x0008004fu, 0x0000003cu, 0x000061abu, 0x00002a89u, 0x00002a89u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000061b4u, 0x000200f8u, 0x000061a4u, 0x0008004fu, + 0x0000003cu, 0x000061a7u, 0x0000859fu, 0x0000859fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x000061b4u, 0x000200f8u, 0x000061a0u, 0x0008004fu, 0x0000003cu, 0x000061a3u, 0x00007dabu, 0x00007dabu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000061b4u, 0x000200f8u, 0x0000619cu, 0x000200f9u, + 0x000061b4u, 0x000200f8u, 0x00006198u, 0x0008004fu, 0x0000003cu, 0x0000619bu, 0x000029f0u, 0x000029f0u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000061b4u, 0x000200f8u, 0x000061b4u, 0x000f00f5u, + 0x0000003cu, 0x0000889cu, 0x0000619bu, 0x00006198u, 0x00000948u, 0x0000619cu, 0x000061a3u, 0x000061a0u, + 0x000061a7u, 0x000061a4u, 0x000061abu, 0x000061a8u, 0x000061b3u, 0x000061acu, 0x000300f7u, 0x000061c6u, + 0x00000000u, 0x000d00fbu, 0x00006127u, 0x000061b6u, 0x00000000u, 0x000061b9u, 0x00000001u, 0x000061bcu, + 0x00000002u, 0x000061bfu, 0x00000004u, 0x000061c2u, 0x00000006u, 0x000061c5u, 0x000200f8u, 0x000061c5u, + 0x000200f9u, 0x000061c6u, 0x000200f8u, 0x000061c2u, 0x00050051u, 0x00000008u, 0x000061c4u, 0x00002a89u, + 0x00000003u, 0x000200f9u, 0x000061c6u, 0x000200f8u, 0x000061bfu, 0x00050051u, 0x00000008u, 0x000061c1u, + 0x0000859fu, 0x00000003u, 0x000200f9u, 0x000061c6u, 0x000200f8u, 0x000061bcu, 0x00050051u, 0x00000008u, + 0x000061beu, 0x00007dabu, 0x00000003u, 0x000200f9u, 0x000061c6u, 0x000200f8u, 0x000061b9u, 0x000200f9u, + 0x000061c6u, 0x000200f8u, 0x000061b6u, 0x00050051u, 0x00000008u, 0x000061b8u, 0x000029f0u, 0x00000003u, + 0x000200f9u, 0x000061c6u, 0x000200f8u, 0x000061c6u, 0x000f00f5u, 0x00000008u, 0x0000889du, 0x000061b8u, + 0x000061b6u, 0x00000208u, 0x000061b9u, 0x000061beu, 0x000061bcu, 0x000061c1u, 0x000061bfu, 0x000061c4u, + 0x000061c2u, 0x00001a71u, 0x000061c5u, 0x00050051u, 0x00000008u, 0x000061c9u, 0x0000889cu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000061cau, 0x0000889cu, 0x00000001u, 0x00050051u, 0x00000008u, 0x000061cbu, + 0x0000889cu, 0x00000002u, 0x00070050u, 0x00000009u, 0x000061ccu, 0x000061c9u, 0x000061cau, 0x000061cbu, + 0x0000889du, 0x00050051u, 0x00000008u, 0x0000612bu, 0x000024c9u, 0x00000002u, 0x00050051u, 0x00000008u, + 0x0000612du, 0x000024ceu, 0x00000002u, 0x000300f7u, 0x00006202u, 0x00000000u, 0x001700fbu, 0x0000612bu, + 0x000061d2u, 0x00000000u, 0x000061d6u, 0x00000007u, 0x000061dau, 0x00000001u, 0x000061deu, 0x00000002u, + 0x000061e2u, 0x00000004u, 0x000061e6u, 0x00000008u, 0x000061eau, 0x00000009u, 0x000061eeu, 0x0000000bu, + 0x000061f2u, 0x0000000du, 0x000061f6u, 0x0000000fu, 0x000061fau, 0x000200f8u, 0x000061fau, 0x00050051u, + 0x00000008u, 0x000061fcu, 0x000029f5u, 0x00000001u, 0x000500c4u, 0x00000008u, 0x000061fdu, 0x000061fcu, + 0x00000263u, 0x00050051u, 0x00000008u, 0x000061ffu, 0x000029f5u, 0x00000002u, 0x000500c5u, 0x00000008u, + 0x00006200u, 0x000061fdu, 0x000061ffu, 0x00060050u, 0x0000003cu, 0x00006201u, 0x00006200u, 0x00006200u, + 0x00006200u, 0x000200f9u, 0x00006202u, 0x000200f8u, 0x000061f6u, 0x00060050u, 0x0000003cu, 0x000061f9u, + 0x0000865bu, 0x0000865bu, 0x0000865bu, 0x000200f9u, 0x00006202u, 0x000200f8u, 0x000061f2u, 0x0008004fu, + 0x0000003cu, 0x000061f5u, 0x00002a89u, 0x00002a89u, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, + 0x00006202u, 0x000200f8u, 0x000061eeu, 0x0008004fu, 0x0000003cu, 0x000061f1u, 0x0000859fu, 0x0000859fu, + 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x00006202u, 0x000200f8u, 0x000061eau, 0x0008004fu, + 0x0000003cu, 0x000061edu, 0x00007dabu, 0x00007dabu, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, + 0x00006202u, 0x000200f8u, 0x000061e6u, 0x0008004fu, 0x0000003cu, 0x000061e9u, 0x00002a89u, 0x00002a89u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006202u, 0x000200f8u, 0x000061e2u, 0x0008004fu, + 0x0000003cu, 0x000061e5u, 0x0000859fu, 0x0000859fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006202u, 0x000200f8u, 0x000061deu, 0x0008004fu, 0x0000003cu, 0x000061e1u, 0x00007dabu, 0x00007dabu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006202u, 0x000200f8u, 0x000061dau, 0x000200f9u, + 0x00006202u, 0x000200f8u, 0x000061d6u, 0x000200f9u, 0x00006202u, 0x000200f8u, 0x000061d2u, 0x0008004fu, + 0x0000003cu, 0x000061d5u, 0x000029f5u, 0x000029f5u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006202u, 0x000200f8u, 0x00006202u, 0x001900f5u, 0x0000003cu, 0x0000889fu, 0x000061d5u, 0x000061d2u, + 0x00000948u, 0x000061d6u, 0x00000948u, 0x000061dau, 0x000061e1u, 0x000061deu, 0x000061e5u, 0x000061e2u, + 0x000061e9u, 0x000061e6u, 0x000061edu, 0x000061eau, 0x000061f1u, 0x000061eeu, 0x000061f5u, 0x000061f2u, + 0x000061f9u, 0x000061f6u, 0x00006201u, 0x000061fau, 0x000300f7u, 0x00006213u, 0x00000000u, 0x000b00fbu, + 0x0000612du, 0x00006204u, 0x00000000u, 0x00006207u, 0x00000001u, 0x0000620au, 0x00000002u, 0x0000620du, + 0x00000004u, 0x00006210u, 0x000200f8u, 0x00006210u, 0x00050051u, 0x00000008u, 0x00006212u, 0x00002a89u, + 0x00000003u, 0x000200f9u, 0x00006213u, 0x000200f8u, 0x0000620du, 0x00050051u, 0x00000008u, 0x0000620fu, + 0x0000859fu, 0x00000003u, 0x000200f9u, 0x00006213u, 0x000200f8u, 0x0000620au, 0x00050051u, 0x00000008u, + 0x0000620cu, 0x00007dabu, 0x00000003u, 0x000200f9u, 0x00006213u, 0x000200f8u, 0x00006207u, 0x000200f9u, + 0x00006213u, 0x000200f8u, 0x00006204u, 0x00050051u, 0x00000008u, 0x00006206u, 0x000029f5u, 0x00000003u, + 0x000200f9u, 0x00006213u, 0x000200f8u, 0x00006213u, 0x000d00f5u, 0x00000008u, 0x000088a0u, 0x00006206u, + 0x00006204u, 0x0000865bu, 0x00006207u, 0x0000620cu, 0x0000620au, 0x0000620fu, 0x0000620du, 0x00006212u, + 0x00006210u, 0x00050051u, 0x00000008u, 0x00006216u, 0x0000889fu, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00006217u, 0x0000889fu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00006218u, 0x0000889fu, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00006219u, 0x00006216u, 0x00006217u, 0x00006218u, 0x000088a0u, 0x00050051u, + 0x00000008u, 0x00006131u, 0x000024c9u, 0x00000003u, 0x00050051u, 0x00000008u, 0x00006133u, 0x000024ceu, + 0x00000003u, 0x000300f7u, 0x00006234u, 0x00000000u, 0x000d00fbu, 0x00006131u, 0x0000621fu, 0x00000000u, + 0x00006223u, 0x00000001u, 0x00006227u, 0x00000002u, 0x0000622bu, 0x00000004u, 0x0000622fu, 0x00000006u, + 0x00006233u, 0x000200f8u, 0x00006233u, 0x000200f9u, 0x00006234u, 0x000200f8u, 0x0000622fu, 0x0008004fu, + 0x0000003cu, 0x00006232u, 0x00002a89u, 0x00002a89u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006234u, 0x000200f8u, 0x0000622bu, 0x0008004fu, 0x0000003cu, 0x0000622eu, 0x0000859fu, 0x0000859fu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006234u, 0x000200f8u, 0x00006227u, 0x0008004fu, + 0x0000003cu, 0x0000622au, 0x00007dabu, 0x00007dabu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006234u, 0x000200f8u, 0x00006223u, 0x000200f9u, 0x00006234u, 0x000200f8u, 0x0000621fu, 0x0008004fu, + 0x0000003cu, 0x00006222u, 0x000029fau, 0x000029fau, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006234u, 0x000200f8u, 0x00006234u, 0x000f00f5u, 0x0000003cu, 0x000088a2u, 0x00006222u, 0x0000621fu, + 0x00000948u, 0x00006223u, 0x0000622au, 0x00006227u, 0x0000622eu, 0x0000622bu, 0x00006232u, 0x0000622fu, + 0x00001a72u, 0x00006233u, 0x000300f7u, 0x00006246u, 0x00000000u, 0x000d00fbu, 0x00006133u, 0x00006236u, + 0x00000000u, 0x00006239u, 0x00000001u, 0x0000623cu, 0x00000002u, 0x0000623fu, 0x00000004u, 0x00006242u, + 0x00000006u, 0x00006245u, 0x000200f8u, 0x00006245u, 0x000200f9u, 0x00006246u, 0x000200f8u, 0x00006242u, + 0x00050051u, 0x00000008u, 0x00006244u, 0x00002a89u, 0x00000003u, 0x000200f9u, 0x00006246u, 0x000200f8u, + 0x0000623fu, 0x00050051u, 0x00000008u, 0x00006241u, 0x0000859fu, 0x00000003u, 0x000200f9u, 0x00006246u, + 0x000200f8u, 0x0000623cu, 0x00050051u, 0x00000008u, 0x0000623eu, 0x00007dabu, 0x00000003u, 0x000200f9u, + 0x00006246u, 0x000200f8u, 0x00006239u, 0x000200f9u, 0x00006246u, 0x000200f8u, 0x00006236u, 0x00050051u, + 0x00000008u, 0x00006238u, 0x000029fau, 0x00000003u, 0x000200f9u, 0x00006246u, 0x000200f8u, 0x00006246u, + 0x000f00f5u, 0x00000008u, 0x000088a3u, 0x00006238u, 0x00006236u, 0x00000208u, 0x00006239u, 0x0000623eu, + 0x0000623cu, 0x00006241u, 0x0000623fu, 0x00006244u, 0x00006242u, 0x00001a71u, 0x00006245u, 0x00050051u, + 0x00000008u, 0x00006249u, 0x000088a2u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000624au, 0x000088a2u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x0000624bu, 0x000088a2u, 0x00000002u, 0x00070050u, 0x00000009u, + 0x0000624cu, 0x00006249u, 0x0000624au, 0x0000624bu, 0x000088a3u, 0x000600cau, 0x00000009u, 0x00006254u, + 0x00006219u, 0x00000208u, 0x00000269u, 0x00050082u, 0x00000009u, 0x00006276u, 0x00006192u, 0x0000bdc6u, + 0x000600cau, 0x00000009u, 0x00006277u, 0x00006276u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, + 0x00006279u, 0x00006277u, 0x0000bdc6u, 0x00050082u, 0x00000009u, 0x0000627eu, 0x000061ccu, 0x0000bdc6u, + 0x000600cau, 0x00000009u, 0x0000627fu, 0x0000627eu, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, + 0x00006281u, 0x0000627fu, 0x0000bdc6u, 0x00050082u, 0x00000009u, 0x00006286u, 0x0000624cu, 0x0000bdc6u, + 0x000600cau, 0x00000009u, 0x00006287u, 0x00006286u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, + 0x00006289u, 0x00006287u, 0x0000bdc6u, 0x00050082u, 0x00000009u, 0x0000625du, 0x00006279u, 0x00006281u, + 0x00050084u, 0x00000009u, 0x0000625fu, 0x0000625du, 0x00006254u, 0x00050080u, 0x00000009u, 0x00006262u, + 0x0000625fu, 0x0000bdc6u, 0x000500c3u, 0x00000009u, 0x00006265u, 0x00006262u, 0x0000bdd1u, 0x00050080u, + 0x00000009u, 0x00006271u, 0x00006265u, 0x00006289u, 0x000300f7u, 0x0000615au, 0x00000000u, 0x000400fau, + 0x0000227bu, 0x0000613bu, 0x00006159u, 0x000200f8u, 0x00006159u, 0x000200f9u, 0x0000615au, 0x000200f8u, + 0x0000613bu, 0x00050051u, 0x00000008u, 0x0000613du, 0x00006271u, 0x00000003u, 0x00050082u, 0x00000008u, + 0x0000628du, 0x0000613du, 0x00000628u, 0x000600cau, 0x00000008u, 0x0000628eu, 0x0000628du, 0x00000208u, + 0x00000269u, 0x00050080u, 0x00000008u, 0x0000628fu, 0x0000628eu, 0x00000628u, 0x0008000cu, 0x00000008u, + 0x00006290u, 0x00000001u, 0x0000002du, 0x0000628fu, 0x00000208u, 0x00000390u, 0x00050080u, 0x00000008u, + 0x00006141u, 0x00006290u, 0x00000217u, 0x000500c3u, 0x00000008u, 0x00006142u, 0x00006141u, 0x00000263u, + 0x00050080u, 0x00000008u, 0x00006143u, 0x00006290u, 0x00006142u, 0x000300f7u, 0x00006156u, 0x00000000u, + 0x000400fau, 0x0000225du, 0x00006145u, 0x00006152u, 0x000200f8u, 0x00006152u, 0x00050080u, 0x00000008u, + 0x00006155u, 0x00006143u, 0x00008530u, 0x000200f9u, 0x00006156u, 0x000200f8u, 0x00006145u, 0x000300f7u, + 0x00006150u, 0x00000000u, 0x000400fau, 0x0000225au, 0x00006147u, 0x0000614du, 0x000200f8u, 0x0000614du, + 0x000500c4u, 0x00000008u, 0x0000614fu, 0x00002300u, 0x00000223u, 0x000200f9u, 0x00006150u, 0x000200f8u, + 0x00006147u, 0x00050084u, 0x00000008u, 0x0000614au, 0x00006143u, 0x00002300u, 0x00050080u, 0x00000008u, + 0x0000614bu, 0x0000614au, 0x00000220u, 0x000500c3u, 0x00000008u, 0x0000614cu, 0x0000614bu, 0x0000021du, + 0x000200f9u, 0x00006150u, 0x000200f8u, 0x00006150u, 0x000700f5u, 0x00000008u, 0x000088a4u, 0x0000614cu, + 0x00006147u, 0x0000614fu, 0x0000614du, 0x000200f9u, 0x00006156u, 0x000200f8u, 0x00006156u, 0x000700f5u, + 0x00000008u, 0x000088a5u, 0x000088a4u, 0x00006150u, 0x00006155u, 0x00006152u, 0x0008000cu, 0x00000008u, + 0x00006158u, 0x00000001u, 0x0000002du, 0x000088a5u, 0x00000208u, 0x00000390u, 0x000200f9u, 0x0000615au, + 0x000200f8u, 0x0000615au, 0x000700f5u, 0x00000008u, 0x000088a6u, 0x00006158u, 0x00006156u, 0x00000208u, + 0x00006159u, 0x000500c7u, 0x00000006u, 0x00002412u, 0x000024dbu, 0x00001f24u, 0x000500abu, 0x0000005du, + 0x00002413u, 0x00002412u, 0x00000379u, 0x000300f7u, 0x00002423u, 0x00000000u, 0x000400fau, 0x00002413u, + 0x00002414u, 0x00002423u, 0x000200f8u, 0x00002414u, 0x00050080u, 0x00000008u, 0x00002416u, 0x00007645u, + 0x0000114eu, 0x0004007cu, 0x00000006u, 0x00002417u, 0x00002416u, 0x00050080u, 0x00000008u, 0x00002419u, + 0x00007643u, 0x00000229u, 0x0004007cu, 0x00000006u, 0x0000241au, 0x00002419u, 0x00060041u, 0x00001d1du, + 0x0000241cu, 0x00000cddu, 0x00000208u, 0x0000021du, 0x0004003du, 0x00000006u, 0x0000241du, 0x0000241cu, + 0x00050080u, 0x00000006u, 0x0000241eu, 0x00002016u, 0x0000241du, 0x00050080u, 0x00000006u, 0x0000241fu, + 0x0000241eu, 0x00000e2du, 0x00060050u, 0x00000358u, 0x00006296u, 0x00002417u, 0x0000241au, 0x0000241fu, + 0x000500c2u, 0x00000358u, 0x00006299u, 0x00006296u, 0x0000bdc0u, 0x0008004fu, 0x00000358u, 0x0000629bu, + 0x00006296u, 0x00006296u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000358u, 0x0000629cu, + 0x00006299u, 0x0000629bu, 0x00050084u, 0x00000358u, 0x0000629eu, 0x0000629cu, 0x0000bdc1u, 0x000500c2u, + 0x00000358u, 0x000062a1u, 0x0000629eu, 0x0000bdc0u, 0x0008004fu, 0x00000358u, 0x000062a3u, 0x0000629eu, + 0x0000629eu, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000358u, 0x000062a4u, 0x000062a1u, + 0x000062a3u, 0x00050084u, 0x00000358u, 0x000062a6u, 0x000062a4u, 0x0000bdc1u, 0x000500c2u, 0x00000358u, + 0x000062a9u, 0x000062a6u, 0x0000bdc0u, 0x0008004fu, 0x00000358u, 0x000062abu, 0x000062a6u, 0x000062a6u, + 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000358u, 0x000062acu, 0x000062a9u, 0x000062abu, + 0x00050084u, 0x00000358u, 0x000062aeu, 0x000062acu, 0x0000bdc1u, 0x00050051u, 0x00000006u, 0x000062b0u, + 0x000062aeu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000062b1u, 0x000062b0u, 0x0000037cu, 0x0004007cu, + 0x00000008u, 0x000062b2u, 0x000062b1u, 0x000500c7u, 0x00000008u, 0x000062b6u, 0x000062b2u, 0x00000229u, + 0x000500c4u, 0x00000008u, 0x000062b7u, 0x000062b6u, 0x00000226u, 0x000500c5u, 0x00000008u, 0x000062b8u, + 0x000062b7u, 0x00000382u, 0x000200f9u, 0x00002423u, 0x000200f8u, 0x00002423u, 0x000700f5u, 0x00000008u, + 0x00008925u, 0x0000841eu, 0x0000615au, 0x000062b2u, 0x00002414u, 0x000700f5u, 0x00000008u, 0x000088dfu, + 0x00006101u, 0x0000615au, 0x000062b8u, 0x00002414u, 0x00050051u, 0x00000008u, 0x000062d5u, 0x000024d3u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000062d7u, 0x000024d8u, 0x00000000u, 0x000300f7u, 0x00006330u, + 0x00000000u, 0x000f00fbu, 0x000062d5u, 0x00006317u, 0x00000000u, 0x0000631bu, 0x00000001u, 0x0000631fu, + 0x00000002u, 0x00006323u, 0x00000004u, 0x00006327u, 0x00000007u, 0x0000632bu, 0x00000006u, 0x0000632fu, + 0x000200f8u, 0x0000632fu, 0x000200f9u, 0x00006330u, 0x000200f8u, 0x0000632bu, 0x00060050u, 0x0000003cu, + 0x0000632eu, 0x000088dfu, 0x000088dfu, 0x000088dfu, 0x000200f9u, 0x00006330u, 0x000200f8u, 0x00006327u, + 0x0008004fu, 0x0000003cu, 0x0000632au, 0x00002a89u, 0x00002a89u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00006330u, 0x000200f8u, 0x00006323u, 0x0008004fu, 0x0000003cu, 0x00006326u, 0x00007dabu, + 0x00007dabu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006330u, 0x000200f8u, 0x0000631fu, + 0x0008004fu, 0x0000003cu, 0x00006322u, 0x0000859fu, 0x0000859fu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00006330u, 0x000200f8u, 0x0000631bu, 0x0008004fu, 0x0000003cu, 0x0000631eu, 0x00006271u, + 0x00006271u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006330u, 0x000200f8u, 0x00006317u, + 0x0008004fu, 0x0000003cu, 0x0000631au, 0x000029ffu, 0x000029ffu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00006330u, 0x000200f8u, 0x00006330u, 0x001100f5u, 0x0000003cu, 0x000088ffu, 0x0000631au, + 0x00006317u, 0x0000631eu, 0x0000631bu, 0x00006322u, 0x0000631fu, 0x00006326u, 0x00006323u, 0x0000632au, + 0x00006327u, 0x0000632eu, 0x0000632bu, 0x00001a72u, 0x0000632fu, 0x000300f7u, 0x00006342u, 0x00000000u, + 0x000d00fbu, 0x000062d7u, 0x00006332u, 0x00000000u, 0x00006335u, 0x00000001u, 0x00006338u, 0x00000002u, + 0x0000633bu, 0x00000004u, 0x0000633eu, 0x00000006u, 0x00006341u, 0x000200f8u, 0x00006341u, 0x000200f9u, + 0x00006342u, 0x000200f8u, 0x0000633eu, 0x00050051u, 0x00000008u, 0x00006340u, 0x00002a89u, 0x00000003u, + 0x000200f9u, 0x00006342u, 0x000200f8u, 0x0000633bu, 0x00050051u, 0x00000008u, 0x0000633du, 0x00007dabu, + 0x00000003u, 0x000200f9u, 0x00006342u, 0x000200f8u, 0x00006338u, 0x00050051u, 0x00000008u, 0x0000633au, + 0x0000859fu, 0x00000003u, 0x000200f9u, 0x00006342u, 0x000200f8u, 0x00006335u, 0x00050051u, 0x00000008u, + 0x00006337u, 0x00006271u, 0x00000003u, 0x000200f9u, 0x00006342u, 0x000200f8u, 0x00006332u, 0x00050051u, + 0x00000008u, 0x00006334u, 0x000029ffu, 0x00000003u, 0x000200f9u, 0x00006342u, 0x000200f8u, 0x00006342u, + 0x000f00f5u, 0x00000008u, 0x00008900u, 0x00006334u, 0x00006332u, 0x00006337u, 0x00006335u, 0x0000633au, + 0x00006338u, 0x0000633du, 0x0000633bu, 0x00006340u, 0x0000633eu, 0x00001a71u, 0x00006341u, 0x00050051u, + 0x00000008u, 0x00006345u, 0x000088ffu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006346u, 0x000088ffu, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00006347u, 0x000088ffu, 0x00000002u, 0x00070050u, 0x00000009u, + 0x00006348u, 0x00006345u, 0x00006346u, 0x00006347u, 0x00008900u, 0x00050051u, 0x00000008u, 0x000062dbu, + 0x000024d3u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000062ddu, 0x000024d8u, 0x00000001u, 0x000300f7u, + 0x0000636au, 0x00000000u, 0x000d00fbu, 0x000062dbu, 0x0000634eu, 0x00000000u, 0x00006352u, 0x00000001u, + 0x00006356u, 0x00000002u, 0x0000635au, 0x00000004u, 0x0000635eu, 0x00000007u, 0x00006362u, 0x000200f8u, + 0x00006362u, 0x00050051u, 0x00000008u, 0x00006364u, 0x00002a04u, 0x00000001u, 0x000500c4u, 0x00000008u, + 0x00006365u, 0x00006364u, 0x00000263u, 0x00050051u, 0x00000008u, 0x00006367u, 0x00002a04u, 0x00000002u, + 0x000500c5u, 0x00000008u, 0x00006368u, 0x00006365u, 0x00006367u, 0x00060050u, 0x0000003cu, 0x00006369u, + 0x00006368u, 0x00006368u, 0x00006368u, 0x000200f9u, 0x0000636au, 0x000200f8u, 0x0000635eu, 0x0008004fu, + 0x0000003cu, 0x00006361u, 0x00002a89u, 0x00002a89u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x0000636au, 0x000200f8u, 0x0000635au, 0x0008004fu, 0x0000003cu, 0x0000635du, 0x00007dabu, 0x00007dabu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000636au, 0x000200f8u, 0x00006356u, 0x0008004fu, + 0x0000003cu, 0x00006359u, 0x0000859fu, 0x0000859fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x0000636au, 0x000200f8u, 0x00006352u, 0x0008004fu, 0x0000003cu, 0x00006355u, 0x00006271u, 0x00006271u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000636au, 0x000200f8u, 0x0000634eu, 0x0008004fu, + 0x0000003cu, 0x00006351u, 0x00002a04u, 0x00002a04u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x0000636au, 0x000200f8u, 0x0000636au, 0x000f00f5u, 0x0000003cu, 0x00008902u, 0x00006351u, 0x0000634eu, + 0x00006355u, 0x00006352u, 0x00006359u, 0x00006356u, 0x0000635du, 0x0000635au, 0x00006361u, 0x0000635eu, + 0x00006369u, 0x00006362u, 0x000300f7u, 0x0000637cu, 0x00000000u, 0x000d00fbu, 0x000062ddu, 0x0000636cu, + 0x00000000u, 0x0000636fu, 0x00000001u, 0x00006372u, 0x00000002u, 0x00006375u, 0x00000004u, 0x00006378u, + 0x00000006u, 0x0000637bu, 0x000200f8u, 0x0000637bu, 0x000200f9u, 0x0000637cu, 0x000200f8u, 0x00006378u, + 0x00050051u, 0x00000008u, 0x0000637au, 0x00002a89u, 0x00000003u, 0x000200f9u, 0x0000637cu, 0x000200f8u, + 0x00006375u, 0x00050051u, 0x00000008u, 0x00006377u, 0x00007dabu, 0x00000003u, 0x000200f9u, 0x0000637cu, + 0x000200f8u, 0x00006372u, 0x00050051u, 0x00000008u, 0x00006374u, 0x0000859fu, 0x00000003u, 0x000200f9u, + 0x0000637cu, 0x000200f8u, 0x0000636fu, 0x00050051u, 0x00000008u, 0x00006371u, 0x00006271u, 0x00000003u, + 0x000200f9u, 0x0000637cu, 0x000200f8u, 0x0000636cu, 0x00050051u, 0x00000008u, 0x0000636eu, 0x00002a04u, + 0x00000003u, 0x000200f9u, 0x0000637cu, 0x000200f8u, 0x0000637cu, 0x000f00f5u, 0x00000008u, 0x00008903u, + 0x0000636eu, 0x0000636cu, 0x00006371u, 0x0000636fu, 0x00006374u, 0x00006372u, 0x00006377u, 0x00006375u, + 0x0000637au, 0x00006378u, 0x00001a71u, 0x0000637bu, 0x00050051u, 0x00000008u, 0x0000637fu, 0x00008902u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00006380u, 0x00008902u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00006381u, 0x00008902u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006382u, 0x0000637fu, 0x00006380u, + 0x00006381u, 0x00008903u, 0x00050051u, 0x00000008u, 0x000062e1u, 0x000024d3u, 0x00000002u, 0x00050051u, + 0x00000008u, 0x000062e3u, 0x000024d8u, 0x00000002u, 0x000300f7u, 0x000063b8u, 0x00000000u, 0x001700fbu, + 0x000062e1u, 0x00006388u, 0x00000000u, 0x0000638cu, 0x00000007u, 0x00006390u, 0x00000001u, 0x00006394u, + 0x00000002u, 0x00006398u, 0x00000004u, 0x0000639cu, 0x00000008u, 0x000063a0u, 0x00000009u, 0x000063a4u, + 0x0000000bu, 0x000063a8u, 0x0000000du, 0x000063acu, 0x0000000fu, 0x000063b0u, 0x000200f8u, 0x000063b0u, + 0x00050051u, 0x00000008u, 0x000063b2u, 0x00002a09u, 0x00000001u, 0x000500c4u, 0x00000008u, 0x000063b3u, + 0x000063b2u, 0x00000263u, 0x00050051u, 0x00000008u, 0x000063b5u, 0x00002a09u, 0x00000002u, 0x000500c5u, + 0x00000008u, 0x000063b6u, 0x000063b3u, 0x000063b5u, 0x00060050u, 0x0000003cu, 0x000063b7u, 0x000063b6u, + 0x000063b6u, 0x000063b6u, 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x000063acu, 0x00060050u, 0x0000003cu, + 0x000063afu, 0x0000865bu, 0x0000865bu, 0x0000865bu, 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x000063a8u, + 0x0008004fu, 0x0000003cu, 0x000063abu, 0x00002a89u, 0x00002a89u, 0x00000003u, 0x00000003u, 0x00000003u, + 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x000063a4u, 0x0008004fu, 0x0000003cu, 0x000063a7u, 0x00007dabu, + 0x00007dabu, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x000063a0u, + 0x0008004fu, 0x0000003cu, 0x000063a3u, 0x0000859fu, 0x0000859fu, 0x00000003u, 0x00000003u, 0x00000003u, + 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x0000639cu, 0x0008004fu, 0x0000003cu, 0x0000639fu, 0x00002a89u, + 0x00002a89u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x00006398u, + 0x0008004fu, 0x0000003cu, 0x0000639bu, 0x00007dabu, 0x00007dabu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x00006394u, 0x0008004fu, 0x0000003cu, 0x00006397u, 0x0000859fu, + 0x0000859fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x00006390u, + 0x0008004fu, 0x0000003cu, 0x00006393u, 0x00006271u, 0x00006271u, 0x00000003u, 0x00000003u, 0x00000003u, + 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x0000638cu, 0x0008004fu, 0x0000003cu, 0x0000638fu, 0x00006271u, + 0x00006271u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x00006388u, + 0x0008004fu, 0x0000003cu, 0x0000638bu, 0x00002a09u, 0x00002a09u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000063b8u, 0x000200f8u, 0x000063b8u, 0x001900f5u, 0x0000003cu, 0x00008905u, 0x0000638bu, + 0x00006388u, 0x0000638fu, 0x0000638cu, 0x00006393u, 0x00006390u, 0x00006397u, 0x00006394u, 0x0000639bu, + 0x00006398u, 0x0000639fu, 0x0000639cu, 0x000063a3u, 0x000063a0u, 0x000063a7u, 0x000063a4u, 0x000063abu, + 0x000063a8u, 0x000063afu, 0x000063acu, 0x000063b7u, 0x000063b0u, 0x000300f7u, 0x000063c9u, 0x00000000u, + 0x000b00fbu, 0x000062e3u, 0x000063bau, 0x00000000u, 0x000063bdu, 0x00000001u, 0x000063c0u, 0x00000002u, + 0x000063c3u, 0x00000004u, 0x000063c6u, 0x000200f8u, 0x000063c6u, 0x00050051u, 0x00000008u, 0x000063c8u, + 0x00002a89u, 0x00000003u, 0x000200f9u, 0x000063c9u, 0x000200f8u, 0x000063c3u, 0x00050051u, 0x00000008u, + 0x000063c5u, 0x00007dabu, 0x00000003u, 0x000200f9u, 0x000063c9u, 0x000200f8u, 0x000063c0u, 0x00050051u, + 0x00000008u, 0x000063c2u, 0x0000859fu, 0x00000003u, 0x000200f9u, 0x000063c9u, 0x000200f8u, 0x000063bdu, + 0x000200f9u, 0x000063c9u, 0x000200f8u, 0x000063bau, 0x00050051u, 0x00000008u, 0x000063bcu, 0x00002a09u, + 0x00000003u, 0x000200f9u, 0x000063c9u, 0x000200f8u, 0x000063c9u, 0x000d00f5u, 0x00000008u, 0x00008906u, + 0x000063bcu, 0x000063bau, 0x0000865bu, 0x000063bdu, 0x000063c2u, 0x000063c0u, 0x000063c5u, 0x000063c3u, + 0x000063c8u, 0x000063c6u, 0x00050051u, 0x00000008u, 0x000063ccu, 0x00008905u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000063cdu, 0x00008905u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000063ceu, 0x00008905u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000063cfu, 0x000063ccu, 0x000063cdu, 0x000063ceu, 0x00008906u, + 0x00050051u, 0x00000008u, 0x000062e7u, 0x000024d3u, 0x00000003u, 0x00050051u, 0x00000008u, 0x000062e9u, + 0x000024d8u, 0x00000003u, 0x000300f7u, 0x000063eau, 0x00000000u, 0x000d00fbu, 0x000062e7u, 0x000063d5u, + 0x00000000u, 0x000063d9u, 0x00000001u, 0x000063ddu, 0x00000002u, 0x000063e1u, 0x00000004u, 0x000063e5u, + 0x00000006u, 0x000063e9u, 0x000200f8u, 0x000063e9u, 0x000200f9u, 0x000063eau, 0x000200f8u, 0x000063e5u, + 0x0008004fu, 0x0000003cu, 0x000063e8u, 0x00002a89u, 0x00002a89u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000063eau, 0x000200f8u, 0x000063e1u, 0x0008004fu, 0x0000003cu, 0x000063e4u, 0x00007dabu, + 0x00007dabu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000063eau, 0x000200f8u, 0x000063ddu, + 0x0008004fu, 0x0000003cu, 0x000063e0u, 0x0000859fu, 0x0000859fu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000063eau, 0x000200f8u, 0x000063d9u, 0x0008004fu, 0x0000003cu, 0x000063dcu, 0x00006271u, + 0x00006271u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000063eau, 0x000200f8u, 0x000063d5u, + 0x0008004fu, 0x0000003cu, 0x000063d8u, 0x00002a0eu, 0x00002a0eu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000063eau, 0x000200f8u, 0x000063eau, 0x000f00f5u, 0x0000003cu, 0x00008908u, 0x000063d8u, + 0x000063d5u, 0x000063dcu, 0x000063d9u, 0x000063e0u, 0x000063ddu, 0x000063e4u, 0x000063e1u, 0x000063e8u, + 0x000063e5u, 0x00001a72u, 0x000063e9u, 0x000300f7u, 0x000063fcu, 0x00000000u, 0x000d00fbu, 0x000062e9u, + 0x000063ecu, 0x00000000u, 0x000063efu, 0x00000001u, 0x000063f2u, 0x00000002u, 0x000063f5u, 0x00000004u, + 0x000063f8u, 0x00000006u, 0x000063fbu, 0x000200f8u, 0x000063fbu, 0x000200f9u, 0x000063fcu, 0x000200f8u, + 0x000063f8u, 0x00050051u, 0x00000008u, 0x000063fau, 0x00002a89u, 0x00000003u, 0x000200f9u, 0x000063fcu, + 0x000200f8u, 0x000063f5u, 0x00050051u, 0x00000008u, 0x000063f7u, 0x00007dabu, 0x00000003u, 0x000200f9u, + 0x000063fcu, 0x000200f8u, 0x000063f2u, 0x00050051u, 0x00000008u, 0x000063f4u, 0x0000859fu, 0x00000003u, + 0x000200f9u, 0x000063fcu, 0x000200f8u, 0x000063efu, 0x00050051u, 0x00000008u, 0x000063f1u, 0x00006271u, + 0x00000003u, 0x000200f9u, 0x000063fcu, 0x000200f8u, 0x000063ecu, 0x00050051u, 0x00000008u, 0x000063eeu, + 0x00002a0eu, 0x00000003u, 0x000200f9u, 0x000063fcu, 0x000200f8u, 0x000063fcu, 0x000f00f5u, 0x00000008u, + 0x00008909u, 0x000063eeu, 0x000063ecu, 0x000063f1u, 0x000063efu, 0x000063f4u, 0x000063f2u, 0x000063f7u, + 0x000063f5u, 0x000063fau, 0x000063f8u, 0x00001a71u, 0x000063fbu, 0x00050051u, 0x00000008u, 0x000063ffu, + 0x00008908u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006400u, 0x00008908u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x00006401u, 0x00008908u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006402u, 0x000063ffu, + 0x00006400u, 0x00006401u, 0x00008909u, 0x000600cau, 0x00000009u, 0x0000640au, 0x000063cfu, 0x00000208u, + 0x00000269u, 0x00050082u, 0x00000009u, 0x0000642cu, 0x00006348u, 0x0000bdc6u, 0x000600cau, 0x00000009u, + 0x0000642du, 0x0000642cu, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x0000642fu, 0x0000642du, + 0x0000bdc6u, 0x00050082u, 0x00000009u, 0x00006434u, 0x00006382u, 0x0000bdc6u, 0x000600cau, 0x00000009u, + 0x00006435u, 0x00006434u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x00006437u, 0x00006435u, + 0x0000bdc6u, 0x00050082u, 0x00000009u, 0x0000643cu, 0x00006402u, 0x0000bdc6u, 0x000600cau, 0x00000009u, + 0x0000643du, 0x0000643cu, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x0000643fu, 0x0000643du, + 0x0000bdc6u, 0x00050082u, 0x00000009u, 0x00006413u, 0x0000642fu, 0x00006437u, 0x00050084u, 0x00000009u, + 0x00006415u, 0x00006413u, 0x0000640au, 0x00050080u, 0x00000009u, 0x00006418u, 0x00006415u, 0x0000bdc6u, + 0x000500c3u, 0x00000009u, 0x0000641bu, 0x00006418u, 0x0000bdd1u, 0x00050080u, 0x00000009u, 0x00006427u, + 0x0000641bu, 0x0000643fu, 0x00050082u, 0x00000009u, 0x00006444u, 0x00006427u, 0x0000bdc6u, 0x000600cau, + 0x00000009u, 0x00006446u, 0x00006444u, 0x00000208u, 0x00000269u, 0x00050080u, 0x00000009u, 0x00006449u, + 0x00006446u, 0x0000bdc6u, 0x0008000cu, 0x00000009u, 0x0000644bu, 0x00000001u, 0x0000002du, 0x00006449u, + 0x00000616u, 0x00000b03u, 0x00050051u, 0x00000008u, 0x000062f3u, 0x0000644bu, 0x00000003u, 0x00050080u, + 0x00000008u, 0x000062f6u, 0x000062f3u, 0x00000217u, 0x000500c3u, 0x00000008u, 0x000062f7u, 0x000062f6u, + 0x00000263u, 0x00050080u, 0x00000008u, 0x000062f8u, 0x000062f3u, 0x000062f7u, 0x000300f7u, 0x00006305u, + 0x00000000u, 0x000400fau, 0x0000225au, 0x000062fau, 0x00006302u, 0x000200f8u, 0x00006302u, 0x000500c4u, + 0x00000008u, 0x00006304u, 0x00002300u, 0x00000223u, 0x000200f9u, 0x00006305u, 0x000200f8u, 0x000062fau, + 0x00050084u, 0x00000008u, 0x000062fdu, 0x000062f8u, 0x00002300u, 0x00050080u, 0x00000008u, 0x000062feu, + 0x000062fdu, 0x00000220u, 0x000500c3u, 0x00000008u, 0x000062ffu, 0x000062feu, 0x0000021du, 0x000500c3u, + 0x00000008u, 0x00006301u, 0x000062ffu, 0x00000223u, 0x000200f9u, 0x00006305u, 0x000200f8u, 0x00006305u, + 0x000700f5u, 0x00000008u, 0x00008918u, 0x00006301u, 0x000062fau, 0x00002300u, 0x00006302u, 0x000700f5u, + 0x00000008u, 0x00008913u, 0x000062ffu, 0x000062fau, 0x00006304u, 0x00006302u, 0x000300f7u, 0x0000630du, + 0x00000000u, 0x000400fau, 0x0000225du, 0x00006307u, 0x00006309u, 0x000200f8u, 0x00006309u, 0x00050080u, + 0x00000008u, 0x0000630cu, 0x000062f8u, 0x00008530u, 0x000200f9u, 0x0000630du, 0x000200f8u, 0x00006307u, + 0x000200f9u, 0x0000630du, 0x000200f8u, 0x0000630du, 0x000700f5u, 0x00000008u, 0x00008914u, 0x00008913u, + 0x00006307u, 0x0000630cu, 0x00006309u, 0x0008000cu, 0x00000008u, 0x0000630fu, 0x00000001u, 0x0000002du, + 0x00008914u, 0x00000208u, 0x00000390u, 0x00050051u, 0x00000008u, 0x0000242du, 0x0000644bu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x0000242eu, 0x0000644bu, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000242fu, + 0x0000644bu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00002431u, 0x0000242du, 0x0000242eu, 0x0000242fu, + 0x0000630fu, 0x000200f9u, 0x00002451u, 0x000200f8u, 0x00002451u, 0x000700f5u, 0x00000009u, 0x0000894au, + 0x00002431u, 0x0000630du, 0x0000244eu, 0x000064abu, 0x000700f5u, 0x00000008u, 0x0000893cu, 0x000088a6u, + 0x0000630du, 0x000064adu, 0x000064abu, 0x000700f5u, 0x00000008u, 0x0000891au, 0x00008925u, 0x0000630du, + 0x0000841eu, 0x000064abu, 0x000700f5u, 0x00000008u, 0x00008919u, 0x00008918u, 0x0000630du, 0x00008897u, + 0x000064abu, 0x000500aau, 0x0000005du, 0x00002454u, 0x00008919u, 0x00000208u, 0x000500a7u, 0x0000005du, + 0x00002455u, 0x0000226cu, 0x00002454u, 0x000300f7u, 0x00002457u, 0x00000000u, 0x000400fau, 0x00002455u, + 0x00002456u, 0x00002457u, 0x000200f8u, 0x00002456u, 0x000200f9u, 0x00002476u, 0x000200f8u, 0x00002457u, + 0x000300f7u, 0x00002466u, 0x00000000u, 0x000400fau, 0x0000227bu, 0x00002459u, 0x00002466u, 0x000200f8u, + 0x00002459u, 0x000300f7u, 0x00002460u, 0x00000000u, 0x000400fau, 0x0000227eu, 0x0000245bu, 0x0000245du, + 0x000200f8u, 0x0000245du, 0x00050051u, 0x00000008u, 0x0000245fu, 0x00002a18u, 0x00000003u, 0x000200f9u, + 0x00002460u, 0x000200f8u, 0x0000245bu, 0x000500c7u, 0x00000008u, 0x000065f2u, 0x0000891au, 0x00000390u, + 0x000200f9u, 0x00002460u, 0x000200f8u, 0x00002460u, 0x000700f5u, 0x00000008u, 0x00008948u, 0x000065f2u, + 0x0000245bu, 0x0000245fu, 0x0000245du, 0x000500b1u, 0x0000005du, 0x00002463u, 0x0000893cu, 0x00008948u, + 0x000300f7u, 0x00002465u, 0x00000000u, 0x000400fau, 0x00002463u, 0x00002464u, 0x00002465u, 0x000200f8u, + 0x00002464u, 0x000200f9u, 0x00002476u, 0x000200f8u, 0x00002465u, 0x000200f9u, 0x00002466u, 0x000200f8u, + 0x00002466u, 0x000500c4u, 0x00000008u, 0x0000246au, 0x00002cd7u, 0x00000269u, 0x000500c5u, 0x00000008u, + 0x0000246cu, 0x0000246au, 0x00008527u, 0x00050051u, 0x00000008u, 0x00002471u, 0x00002a89u, 0x00000003u, + 0x00050080u, 0x00000008u, 0x00002473u, 0x00002471u, 0x00008530u, 0x0007000cu, 0x00000008u, 0x00002474u, + 0x00000001u, 0x00000027u, 0x00002473u, 0x00000390u, 0x000200f9u, 0x00002476u, 0x000200f8u, 0x00002476u, + 0x001900f5u, 0x00000008u, 0x0000b9e8u, 0x00008667u, 0x00002212u, 0x00008667u, 0x00002231u, 0x00008667u, + 0x000022b7u, 0x00008667u, 0x000022e2u, 0x00008667u, 0x000022e3u, 0x00008667u, 0x000022f1u, 0x00008667u, + 0x000022fdu, 0x00008667u, 0x00002309u, 0x0000865bu, 0x00002456u, 0x0000865bu, 0x00002464u, 0x0000865bu, + 0x00002466u, 0x001900f5u, 0x00000009u, 0x0000b955u, 0x000085aeu, 0x00002212u, 0x000085aeu, 0x00002231u, + 0x000085aeu, 0x000022b7u, 0x000085aeu, 0x000022e2u, 0x000085aeu, 0x000022e3u, 0x000085aeu, 0x000022f1u, + 0x000085aeu, 0x000022fdu, 0x000085aeu, 0x00002309u, 0x0000859fu, 0x00002456u, 0x0000859fu, 0x00002464u, + 0x0000859fu, 0x00002466u, 0x001900f5u, 0x00000008u, 0x0000b8e3u, 0x00008421u, 0x00002212u, 0x00008421u, + 0x00002231u, 0x0000841eu, 0x000022b7u, 0x0000841eu, 0x000022e2u, 0x0000841eu, 0x000022e3u, 0x0000841eu, + 0x000022f1u, 0x0000841eu, 0x000022fdu, 0x0000841eu, 0x00002309u, 0x0000891au, 0x00002456u, 0x0000891au, + 0x00002464u, 0x0000891au, 0x00002466u, 0x001900f5u, 0x00000009u, 0x0000b839u, 0x000081feu, 0x00002212u, + 0x000081feu, 0x00002231u, 0x000081feu, 0x000022b7u, 0x000081feu, 0x000022e2u, 0x000081feu, 0x000022e3u, + 0x000081feu, 0x000022f1u, 0x000081feu, 0x000022fdu, 0x000081feu, 0x00002309u, 0x0000b882u, 0x00002456u, + 0x0000b882u, 0x00002464u, 0x0000b882u, 0x00002466u, 0x001900f5u, 0x00000009u, 0x0000b791u, 0x00008109u, + 0x00002212u, 0x00008109u, 0x00002231u, 0x00008109u, 0x000022b7u, 0x00008109u, 0x000022e2u, 0x00008109u, + 0x000022e3u, 0x00008109u, 0x000022f1u, 0x00008109u, 0x000022fdu, 0x00008109u, 0x00002309u, 0x0000b7dau, + 0x00002456u, 0x0000b7dau, 0x00002464u, 0x0000b7dau, 0x00002466u, 0x001900f5u, 0x00000009u, 0x0000b6e9u, + 0x0000800eu, 0x00002212u, 0x0000800eu, 0x00002231u, 0x0000800eu, 0x000022b7u, 0x0000800eu, 0x000022e2u, + 0x0000800eu, 0x000022e3u, 0x0000800eu, 0x000022f1u, 0x0000800eu, 0x000022fdu, 0x0000800eu, 0x00002309u, + 0x0000b732u, 0x00002456u, 0x0000b732u, 0x00002464u, 0x0000b732u, 0x00002466u, 0x001900f5u, 0x00000009u, + 0x0000b641u, 0x00007ea2u, 0x00002212u, 0x00007ea2u, 0x00002231u, 0x00007ea2u, 0x000022b7u, 0x00007ea2u, + 0x000022e2u, 0x00007ea2u, 0x000022e3u, 0x00007ea2u, 0x000022f1u, 0x00007ea2u, 0x000022fdu, 0x00007ea2u, + 0x00002309u, 0x0000b68au, 0x00002456u, 0x0000b68au, 0x00002464u, 0x0000b68au, 0x00002466u, 0x001900f5u, + 0x00000009u, 0x0000b5aeu, 0x00007db8u, 0x00002212u, 0x00007db8u, 0x00002231u, 0x00007db8u, 0x000022b7u, + 0x00007db8u, 0x000022e2u, 0x00007db8u, 0x000022e3u, 0x00007db8u, 0x000022f1u, 0x00007db8u, 0x000022fdu, + 0x00007db8u, 0x00002309u, 0x00007dabu, 0x00002456u, 0x00007dabu, 0x00002464u, 0x00007dabu, 0x00002466u, + 0x001900f5u, 0x00000009u, 0x0000b48au, 0x000079ebu, 0x00002212u, 0x000079ebu, 0x00002231u, 0x000079ebu, + 0x000022b7u, 0x000079ebu, 0x000022e2u, 0x000079ebu, 0x000022e3u, 0x000079ebu, 0x000022f1u, 0x000079ebu, + 0x000022fdu, 0x000079ebu, 0x00002309u, 0x0000b4d5u, 0x00002456u, 0x0000b4d5u, 0x00002464u, 0x0000b4d5u, + 0x00002466u, 0x001900f5u, 0x00000009u, 0x0000b368u, 0x00007970u, 0x00002212u, 0x00007970u, 0x00002231u, + 0x00007970u, 0x000022b7u, 0x00007970u, 0x000022e2u, 0x00007970u, 0x000022e3u, 0x00007970u, 0x000022f1u, + 0x00007970u, 0x000022fdu, 0x00007970u, 0x00002309u, 0x0000b3b3u, 0x00002456u, 0x0000b3b3u, 0x00002464u, + 0x0000b3b3u, 0x00002466u, 0x001900f5u, 0x00000009u, 0x0000b246u, 0x000078efu, 0x00002212u, 0x000078efu, + 0x00002231u, 0x000078efu, 0x000022b7u, 0x000078efu, 0x000022e2u, 0x000078efu, 0x000022e3u, 0x000078efu, + 0x000022f1u, 0x000078efu, 0x000022fdu, 0x000078efu, 0x00002309u, 0x0000b291u, 0x00002456u, 0x0000b291u, + 0x00002464u, 0x0000b291u, 0x00002466u, 0x001900f5u, 0x00000009u, 0x0000b124u, 0x000077fdu, 0x00002212u, + 0x000077fdu, 0x00002231u, 0x000077fdu, 0x000022b7u, 0x000077fdu, 0x000022e2u, 0x000077fdu, 0x000022e3u, + 0x000077fdu, 0x000022f1u, 0x000077fdu, 0x000022fdu, 0x000077fdu, 0x00002309u, 0x0000b16fu, 0x00002456u, + 0x0000b16fu, 0x00002464u, 0x0000b16fu, 0x00002466u, 0x001900f5u, 0x0000005fu, 0x0000afa2u, 0x0000770au, + 0x00002212u, 0x0000770au, 0x00002231u, 0x0000770au, 0x000022b7u, 0x0000770au, 0x000022e2u, 0x0000770au, + 0x000022e3u, 0x0000770au, 0x000022f1u, 0x0000770au, 0x000022fdu, 0x0000770au, 0x00002309u, 0x000076ffu, + 0x00002456u, 0x000076ffu, 0x00002464u, 0x000076ffu, 0x00002466u, 0x001900f5u, 0x0000005fu, 0x0000ae20u, + 0x000076e6u, 0x00002212u, 0x000076e6u, 0x00002231u, 0x000076e6u, 0x000022b7u, 0x000076e6u, 0x000022e2u, + 0x000076e6u, 0x000022e3u, 0x000076e6u, 0x000022f1u, 0x000076e6u, 0x000022fdu, 0x000076e6u, 0x00002309u, + 0x000076dbu, 0x00002456u, 0x000076dbu, 0x00002464u, 0x000076dbu, 0x00002466u, 0x001900f5u, 0x0000003cu, + 0x0000ac92u, 0x00007662u, 0x00002212u, 0x00007662u, 0x00002231u, 0x00007662u, 0x000022b7u, 0x00007662u, + 0x000022e2u, 0x00007662u, 0x000022e3u, 0x00007662u, 0x000022f1u, 0x00007662u, 0x000022fdu, 0x00007662u, + 0x00002309u, 0x0000765cu, 0x00002456u, 0x0000765cu, 0x00002464u, 0x0000765cu, 0x00002466u, 0x001900f5u, + 0x0000003cu, 0x0000aafbu, 0x00007653u, 0x00002212u, 0x00007653u, 0x00002231u, 0x00007653u, 0x000022b7u, + 0x00007653u, 0x000022e2u, 0x00007653u, 0x000022e3u, 0x00007653u, 0x000022f1u, 0x00007653u, 0x000022fdu, + 0x00007653u, 0x00002309u, 0x0000764du, 0x00002456u, 0x0000764du, 0x00002464u, 0x0000764du, 0x00002466u, + 0x001900f5u, 0x00000009u, 0x00008d7fu, 0x00008d81u, 0x00002212u, 0x00008d81u, 0x00002231u, 0x00008d81u, + 0x000022b7u, 0x00008d81u, 0x000022e2u, 0x00008d81u, 0x000022e3u, 0x00008d81u, 0x000022f1u, 0x00008d81u, + 0x000022fdu, 0x00008d81u, 0x00002309u, 0x00008d81u, 0x00002456u, 0x00008d81u, 0x00002464u, 0x0000894au, + 0x00002466u, 0x001900f5u, 0x00000008u, 0x00008c3du, 0x00008c3fu, 0x00002212u, 0x00008c3fu, 0x00002231u, + 0x00008c3fu, 0x000022b7u, 0x0000898bu, 0x000022e2u, 0x0000898bu, 0x000022e3u, 0x00008c3fu, 0x000022f1u, + 0x00008c3fu, 0x000022fdu, 0x00008c3fu, 0x00002309u, 0x00008c3fu, 0x00002456u, 0x00008c3fu, 0x00002464u, + 0x0000246cu, 0x00002466u, 0x001900f5u, 0x00000008u, 0x00008afbu, 0x00008afdu, 0x00002212u, 0x00008afdu, + 0x00002231u, 0x00008afdu, 0x000022b7u, 0x00000382u, 0x000022e2u, 0x00000382u, 0x000022e3u, 0x00000627u, + 0x000022f1u, 0x00008afdu, 0x000022fdu, 0x00008afdu, 0x00002309u, 0x00008afdu, 0x00002456u, 0x00008afdu, + 0x00002464u, 0x00008919u, 0x00002466u, 0x001900f5u, 0x00000008u, 0x0000898eu, 0x00008990u, 0x00002212u, + 0x00008990u, 0x00002231u, 0x00008990u, 0x000022b7u, 0x00008990u, 0x000022e2u, 0x00008990u, 0x000022e3u, + 0x00008990u, 0x000022f1u, 0x00008990u, 0x000022fdu, 0x00008990u, 0x00002309u, 0x00008990u, 0x00002456u, + 0x00008990u, 0x00002464u, 0x00002474u, 0x00002466u, 0x001900f5u, 0x0000005du, 0x0000898du, 0x00000548u, + 0x00002212u, 0x00000548u, 0x00002231u, 0x00000548u, 0x000022b7u, 0x00000548u, 0x000022e2u, 0x00000563u, + 0x000022e3u, 0x000022f2u, 0x000022f1u, 0x00000548u, 0x000022fdu, 0x00000548u, 0x00002309u, 0x00000548u, + 0x00002456u, 0x00000548u, 0x00002464u, 0x00000563u, 0x00002466u, 0x000300f7u, 0x00002022u, 0x00000000u, + 0x000400fau, 0x0000898du, 0x00002021u, 0x00002022u, 0x000200f8u, 0x00002021u, 0x000500c7u, 0x00000008u, + 0x00002025u, 0x00008afbu, 0x00000627u, 0x000500abu, 0x0000005du, 0x00002026u, 0x00002025u, 0x00000208u, + 0x000300f7u, 0x00002028u, 0x00000000u, 0x000400fau, 0x00002026u, 0x00002027u, 0x0000202eu, 0x000200f8u, + 0x0000202eu, 0x000500c7u, 0x00000008u, 0x00002031u, 0x00008afbu, 0x00000382u, 0x000500abu, 0x0000005du, + 0x00002032u, 0x00002031u, 0x00000208u, 0x000300f7u, 0x00002034u, 0x00000000u, 0x000400fau, 0x00002032u, + 0x00002033u, 0x0000203cu, 0x000200f8u, 0x0000203cu, 0x000500c3u, 0x00000008u, 0x00006790u, 0x00008c3du, + 0x00000269u, 0x000500c7u, 0x00000008u, 0x00006793u, 0x00008c3du, 0x0000038bu, 0x00080041u, 0x0000027cu, + 0x0000679bu, 0x00000a24u, 0x00000208u, 0x00002016u, 0x00000208u, 0x0000048au, 0x0004003du, 0x0000022eu, + 0x0000679cu, 0x0000679bu, 0x00040071u, 0x00000006u, 0x0000679du, 0x0000679cu, 0x00070041u, 0x00000239u, + 0x00006857u, 0x00000237u, 0x00000208u, 0x00002016u, 0x00000263u, 0x0004003du, 0x0000022fu, 0x00006858u, + 0x00006857u, 0x00040071u, 0x0000023cu, 0x00006859u, 0x00006858u, 0x0004007cu, 0x00000009u, 0x0000685au, + 0x00006859u, 0x00070041u, 0x00000239u, 0x0000685cu, 0x00000237u, 0x00000208u, 0x00002016u, 0x00000269u, + 0x0004003du, 0x0000022fu, 0x0000685du, 0x0000685cu, 0x00040071u, 0x0000023cu, 0x0000685eu, 0x0000685du, + 0x0004007cu, 0x00000009u, 0x0000685fu, 0x0000685eu, 0x00070041u, 0x00000275u, 0x00006864u, 0x00000237u, + 0x00000208u, 0x00002016u, 0x00000274u, 0x0004003du, 0x00000230u, 0x00006865u, 0x00006864u, 0x00040071u, + 0x00000006u, 0x00006866u, 0x00006865u, 0x0004007cu, 0x00000008u, 0x00006867u, 0x00006866u, 0x00070041u, + 0x0000027cu, 0x00006869u, 0x00000237u, 0x00000208u, 0x00002016u, 0x0000027bu, 0x0004003du, 0x0000022eu, + 0x0000686au, 0x00006869u, 0x00040071u, 0x00000006u, 0x0000686bu, 0x0000686au, 0x0004007cu, 0x00000008u, + 0x0000686cu, 0x0000686bu, 0x00070041u, 0x00000239u, 0x0000687au, 0x000002b7u, 0x00000208u, 0x0000679du, + 0x00000208u, 0x0004003du, 0x0000022fu, 0x0000687bu, 0x0000687au, 0x00040071u, 0x0000023cu, 0x0000687cu, + 0x0000687bu, 0x0004007cu, 0x00000009u, 0x0000687du, 0x0000687cu, 0x00070041u, 0x00000239u, 0x0000687fu, + 0x000002b7u, 0x00000208u, 0x0000679du, 0x00000217u, 0x0004003du, 0x0000022fu, 0x00006880u, 0x0000687fu, + 0x00040071u, 0x0000023cu, 0x00006881u, 0x00006880u, 0x0004007cu, 0x00000009u, 0x00006882u, 0x00006881u, + 0x00070041u, 0x00000270u, 0x00006884u, 0x000002b7u, 0x00000208u, 0x0000679du, 0x0000021au, 0x0004003du, + 0x00000006u, 0x00006885u, 0x00006884u, 0x00070041u, 0x0000027cu, 0x00006887u, 0x000002b7u, 0x00000208u, + 0x0000679du, 0x0000021du, 0x0004003du, 0x0000022eu, 0x00006888u, 0x00006887u, 0x00040071u, 0x00000006u, + 0x00006889u, 0x00006888u, 0x0004007cu, 0x00000008u, 0x0000688au, 0x00006889u, 0x00070041u, 0x0000027cu, + 0x0000688cu, 0x000002b7u, 0x00000208u, 0x0000679du, 0x00000220u, 0x0004003du, 0x0000022eu, 0x0000688du, + 0x0000688cu, 0x00040071u, 0x00000006u, 0x0000688eu, 0x0000688du, 0x0004007cu, 0x00000008u, 0x0000688fu, + 0x0000688eu, 0x000500c7u, 0x00000006u, 0x000067a4u, 0x00006885u, 0x00000360u, 0x000500abu, 0x0000005du, + 0x000067a5u, 0x000067a4u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x000067a8u, 0x00006885u, 0x0000048au, + 0x000500abu, 0x0000005du, 0x000067a9u, 0x000067a8u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x000067acu, + 0x00006885u, 0x000003c9u, 0x000500abu, 0x0000005du, 0x000067adu, 0x000067acu, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x000067b0u, 0x00006885u, 0x0000037cu, 0x000500abu, 0x0000005du, 0x000067b1u, 0x000067b0u, + 0x00000379u, 0x000500c7u, 0x00000006u, 0x000067b4u, 0x00006885u, 0x00000a4au, 0x000500abu, 0x0000005du, + 0x000067b5u, 0x000067b4u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x000067b8u, 0x00006885u, 0x00000a50u, + 0x000500abu, 0x0000005du, 0x000067b9u, 0x000067b8u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x000067bcu, + 0x00006885u, 0x00000a56u, 0x000500abu, 0x0000005du, 0x000067bdu, 0x000067bcu, 0x00000379u, 0x000500c7u, + 0x00000006u, 0x000067c0u, 0x00006885u, 0x00000a5cu, 0x000500abu, 0x0000005du, 0x000067c1u, 0x000067c0u, + 0x00000379u, 0x000300f7u, 0x0000689cu, 0x00000000u, 0x000400fau, 0x000067b1u, 0x00006897u, 0x0000689bu, + 0x000200f8u, 0x0000689bu, 0x000200f9u, 0x0000689cu, 0x000200f8u, 0x00006897u, 0x00050051u, 0x00000008u, + 0x00006899u, 0x00008eeeu, 0x00000003u, 0x000500c7u, 0x00000008u, 0x0000689au, 0x00006899u, 0x0000093du, + 0x000200f9u, 0x0000689cu, 0x000200f8u, 0x0000689cu, 0x000700f5u, 0x00000008u, 0x00009056u, 0x0000689au, + 0x00006897u, 0x0000093du, 0x0000689bu, 0x000300f7u, 0x000068adu, 0x00000000u, 0x000d00fbu, 0x0000065cu, + 0x000068adu, 0x00000000u, 0x0000689eu, 0x00000001u, 0x0000689fu, 0x00000002u, 0x000068a2u, 0x00000003u, + 0x000068a7u, 0x00000004u, 0x000068aau, 0x000200f8u, 0x000068aau, 0x0008004fu, 0x0000003cu, 0x000068acu, + 0x00008eeeu, 0x00008eeeu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000068adu, 0x000200f8u, + 0x000068a7u, 0x0008004fu, 0x0000003cu, 0x000068a9u, 0x00008eeeu, 0x00008eeeu, 0x00000000u, 0x00000000u, + 0x00000000u, 0x000200f9u, 0x000068adu, 0x000200f8u, 0x000068a2u, 0x0008004fu, 0x0000003cu, 0x000068a4u, + 0x00008eeeu, 0x00008eeeu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, 0x0000003cu, 0x000068a6u, + 0x000068a4u, 0x0000bdd8u, 0x000200f9u, 0x000068adu, 0x000200f8u, 0x0000689fu, 0x0008004fu, 0x0000003cu, + 0x000068a1u, 0x00008eeeu, 0x00008eeeu, 0x00000000u, 0x00000000u, 0x00000000u, 0x000200f9u, 0x000068adu, + 0x000200f8u, 0x0000689eu, 0x000200f9u, 0x000068adu, 0x000200f8u, 0x000068adu, 0x000f00f5u, 0x00000008u, + 0x000091c8u, 0x00009056u, 0x0000689cu, 0x0000093du, 0x0000689eu, 0x0000093du, 0x0000689fu, 0x00009056u, + 0x000068a2u, 0x00009056u, 0x000068a7u, 0x00009056u, 0x000068aau, 0x000f00f5u, 0x0000003cu, 0x00009058u, + 0x0000905cu, 0x0000689cu, 0x00000948u, 0x0000689eu, 0x000068a1u, 0x0000689fu, 0x000068a6u, 0x000068a2u, + 0x000068a9u, 0x000068a7u, 0x000068acu, 0x000068aau, 0x00050051u, 0x00000008u, 0x000068b0u, 0x00009058u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000068b1u, 0x00009058u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000068b2u, 0x00009058u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000068b3u, 0x000068b0u, 0x000068b1u, + 0x000068b2u, 0x000091c8u, 0x000500c3u, 0x00000008u, 0x000067c6u, 0x000091c8u, 0x00000223u, 0x00050080u, + 0x00000008u, 0x000068fdu, 0x00008afbu, 0x000067c6u, 0x000500afu, 0x0000005du, 0x000068feu, 0x000068fdu, + 0x00000263u, 0x000300f7u, 0x00006968u, 0x00000000u, 0x000400fau, 0x000067a9u, 0x000068cau, 0x00006954u, + 0x000200f8u, 0x00006954u, 0x00050082u, 0x00000008u, 0x00006957u, 0x00000545u, 0x0000686cu, 0x0007000cu, + 0x00000008u, 0x00006958u, 0x00000001u, 0x00000027u, 0x00006957u, 0x00000220u, 0x00050050u, 0x0000005fu, + 0x0000bde5u, 0x00000208u, 0x00006958u, 0x000400a8u, 0x0000005du, 0x0000695fu, 0x000067a5u, 0x000300f7u, + 0x00006965u, 0x00000000u, 0x000400fau, 0x0000695fu, 0x00006960u, 0x00006965u, 0x000200f8u, 0x00006960u, + 0x000400a8u, 0x0000005du, 0x00006962u, 0x000068feu, 0x000500a7u, 0x0000005du, 0x00006964u, 0x00006962u, + 0x000067bdu, 0x000200f9u, 0x00006965u, 0x000200f8u, 0x00006965u, 0x000700f5u, 0x0000005du, 0x00006966u, + 0x000067a5u, 0x00006954u, 0x00006964u, 0x00006960u, 0x000200f9u, 0x00006968u, 0x000200f8u, 0x000068cau, + 0x000500c3u, 0x00000008u, 0x00006973u, 0x000091cdu, 0x00000274u, 0x000500c7u, 0x00000008u, 0x00006975u, + 0x000091cdu, 0x0000040fu, 0x00050082u, 0x00000008u, 0x00006977u, 0x00000226u, 0x00006973u, 0x0007000cu, + 0x00000008u, 0x00006978u, 0x00000001u, 0x0000002au, 0x00006977u, 0x00000208u, 0x000500c3u, 0x00000008u, + 0x0000697au, 0x00000416u, 0x00006973u, 0x00050082u, 0x00000008u, 0x0000697bu, 0x00000416u, 0x0000697au, + 0x000500c4u, 0x00000008u, 0x0000697eu, 0x00006975u, 0x00006978u, 0x00050080u, 0x00000008u, 0x00006980u, + 0x0000697eu, 0x0000697bu, 0x000500c4u, 0x00000008u, 0x00006984u, 0x00000217u, 0x00009339u, 0x000500c7u, + 0x00000008u, 0x000068d1u, 0x00006973u, 0x00000545u, 0x00050082u, 0x00000008u, 0x000068d4u, 0x0000686cu, + 0x00009339u, 0x0008000cu, 0x00000008u, 0x000068d5u, 0x00000001u, 0x0000002du, 0x000068d4u, 0x00000208u, + 0x00000220u, 0x00050082u, 0x00000008u, 0x000068d9u, 0x00009339u, 0x0000686cu, 0x0008000cu, 0x00000008u, + 0x000068dau, 0x00000001u, 0x0000002du, 0x000068d9u, 0x00000208u, 0x00000220u, 0x00050050u, 0x0000005fu, + 0x0000bde6u, 0x000068d5u, 0x000068dau, 0x000500b1u, 0x0000005du, 0x000068ddu, 0x000068d1u, 0x0000021du, + 0x000300f7u, 0x000068e9u, 0x00000000u, 0x000400fau, 0x000068ddu, 0x000068deu, 0x000068e9u, 0x000200f8u, + 0x000068deu, 0x000500abu, 0x0000005du, 0x000068e0u, 0x00006984u, 0x00000558u, 0x000300f7u, 0x000068e8u, + 0x00000000u, 0x000400fau, 0x000068e0u, 0x000068e1u, 0x000068e7u, 0x000200f8u, 0x000068e7u, 0x000200f9u, + 0x000068e8u, 0x000200f8u, 0x000068e1u, 0x000500c4u, 0x00000008u, 0x000068e3u, 0x00006984u, 0x00000217u, + 0x000500c3u, 0x00000008u, 0x000068e5u, 0x0000055eu, 0x000068d1u, 0x0007000cu, 0x00000008u, 0x000068e6u, + 0x00000001u, 0x0000002au, 0x000068e3u, 0x000068e5u, 0x000200f9u, 0x000068e8u, 0x000200f8u, 0x000068e8u, + 0x000700f5u, 0x00000008u, 0x00009614u, 0x000068e6u, 0x000068e1u, 0x00000564u, 0x000068e7u, 0x000600a9u, + 0x0000005du, 0x0000be0cu, 0x000068e0u, 0x00000548u, 0x00000563u, 0x000200f9u, 0x000068e9u, 0x000200f8u, + 0x000068e9u, 0x000700f5u, 0x0000005du, 0x00009617u, 0x00000548u, 0x000068cau, 0x0000be0cu, 0x000068e8u, + 0x000700f5u, 0x00000008u, 0x00009613u, 0x00006984u, 0x000068cau, 0x00009614u, 0x000068e8u, 0x000500c5u, + 0x00000008u, 0x000068ecu, 0x00006867u, 0x00009613u, 0x000500abu, 0x0000005du, 0x00006988u, 0x000068ecu, + 0x00000208u, 0x000300f7u, 0x0000698du, 0x00000000u, 0x000400fau, 0x00006988u, 0x00006989u, 0x0000698du, + 0x000200f8u, 0x00006989u, 0x0006000cu, 0x00000008u, 0x0000698bu, 0x00000001u, 0x0000004au, 0x000068ecu, + 0x000500c4u, 0x00000008u, 0x0000698cu, 0x00000217u, 0x0000698bu, 0x000200f9u, 0x0000698du, 0x000200f8u, + 0x0000698du, 0x000700f5u, 0x00000008u, 0x00009615u, 0x000068ecu, 0x000068e9u, 0x0000698cu, 0x00006989u, + 0x000500c4u, 0x00000008u, 0x000068f0u, 0x00009615u, 0x0000021du, 0x000400a8u, 0x0000005du, 0x000068f2u, + 0x00009617u, 0x000300f7u, 0x000068f9u, 0x00000000u, 0x000400fau, 0x000068f2u, 0x000068f3u, 0x000068f9u, + 0x000200f8u, 0x000068f3u, 0x00050080u, 0x00000008u, 0x000068f6u, 0x00006790u, 0x000068f0u, 0x000500afu, + 0x0000005du, 0x000068f8u, 0x000068f6u, 0x00006980u, 0x000200f9u, 0x000068f9u, 0x000200f8u, 0x000068f9u, + 0x000700f5u, 0x0000005du, 0x000068fau, 0x00009617u, 0x0000698du, 0x000068f8u, 0x000068f3u, 0x000400a8u, + 0x0000005du, 0x00006900u, 0x000067a5u, 0x000300f7u, 0x00006908u, 0x00000000u, 0x000400fau, 0x00006900u, + 0x00006901u, 0x00006908u, 0x000200f8u, 0x00006901u, 0x000400a8u, 0x0000005du, 0x00006903u, 0x000068feu, + 0x000500a7u, 0x0000005du, 0x00006905u, 0x00006903u, 0x000067bdu, 0x000500a7u, 0x0000005du, 0x00006907u, + 0x00006905u, 0x000068fau, 0x000200f9u, 0x00006908u, 0x000200f8u, 0x00006908u, 0x000700f5u, 0x0000005du, + 0x00006909u, 0x000067a5u, 0x000068f9u, 0x00006907u, 0x00006901u, 0x000500aau, 0x0000005du, 0x0000690cu, + 0x00006980u, 0x00000422u, 0x000500b1u, 0x0000005du, 0x0000690fu, 0x00006790u, 0x00006980u, 0x00050082u, + 0x00000008u, 0x00006912u, 0x00006790u, 0x000068f0u, 0x000500b3u, 0x0000005du, 0x00006916u, 0x00006912u, + 0x00006980u, 0x000500a6u, 0x0000005du, 0x00006917u, 0x00009617u, 0x00006916u, 0x000300f7u, 0x00006953u, + 0x00000000u, 0x000b00fbu, 0x0000688fu, 0x00006953u, 0x00000000u, 0x00006919u, 0x00000001u, 0x00006923u, + 0x00000002u, 0x00006948u, 0x00000003u, 0x0000694cu, 0x000200f8u, 0x0000694cu, 0x000500a7u, 0x0000005du, + 0x0000694fu, 0x000068fau, 0x00006917u, 0x000400a8u, 0x0000005du, 0x00006951u, 0x0000690cu, 0x000500a7u, + 0x0000005du, 0x00006952u, 0x0000694fu, 0x00006951u, 0x000200f9u, 0x00006953u, 0x000200f8u, 0x00006948u, + 0x000500a6u, 0x0000005du, 0x0000694bu, 0x0000690fu, 0x0000690cu, 0x000200f9u, 0x00006953u, 0x000200f8u, + 0x00006923u, 0x000400a8u, 0x0000005du, 0x00006925u, 0x0000690fu, 0x000400a8u, 0x0000005du, 0x00006927u, + 0x000068fau, 0x000500a6u, 0x0000005du, 0x00006928u, 0x00006925u, 0x00006927u, 0x000400a8u, 0x0000005du, + 0x0000692au, 0x000068feu, 0x000500a6u, 0x0000005du, 0x0000692bu, 0x00006928u, 0x0000692au, 0x000300f7u, + 0x00006947u, 0x00000000u, 0x000400fau, 0x0000692bu, 0x0000692cu, 0x00006936u, 0x000200f8u, 0x00006936u, + 0x000500c7u, 0x00000008u, 0x00006938u, 0x00009615u, 0x00000564u, 0x0006000cu, 0x00000008u, 0x00006992u, + 0x00000001u, 0x0000004au, 0x00006938u, 0x0007000cu, 0x00000008u, 0x00006993u, 0x00000001u, 0x0000002au, + 0x00006992u, 0x00000208u, 0x000500c3u, 0x00000008u, 0x0000693cu, 0x00006980u, 0x00006993u, 0x000500c3u, + 0x00000008u, 0x0000693fu, 0x00006790u, 0x00006993u, 0x00050082u, 0x00000008u, 0x00006940u, 0x0000693cu, + 0x0000693fu, 0x000500c7u, 0x00000008u, 0x00006941u, 0x00006940u, 0x00000545u, 0x00050084u, 0x00000008u, + 0x00006944u, 0x00006941u, 0x00008afbu, 0x000500c3u, 0x00000008u, 0x00006945u, 0x00006944u, 0x0000021du, + 0x0007000cu, 0x00000008u, 0x00006946u, 0x00000001u, 0x00000027u, 0x00006945u, 0x00000263u, 0x000200f9u, + 0x00006947u, 0x000200f8u, 0x0000692cu, 0x000400a8u, 0x0000005du, 0x0000692eu, 0x0000690cu, 0x000300f7u, + 0x00006934u, 0x00000000u, 0x000400fau, 0x0000692eu, 0x0000692fu, 0x00006934u, 0x000200f8u, 0x0000692fu, + 0x000600a9u, 0x0000005du, 0x00006933u, 0x000068feu, 0x0000690fu, 0x00006917u, 0x000200f9u, 0x00006934u, + 0x000200f8u, 0x00006934u, 0x000700f5u, 0x0000005du, 0x00006935u, 0x0000690cu, 0x0000692cu, 0x00006933u, + 0x0000692fu, 0x000200f9u, 0x00006947u, 0x000200f8u, 0x00006947u, 0x000700f5u, 0x00000008u, 0x00009628u, + 0x00008afbu, 0x00006934u, 0x00006946u, 0x00006936u, 0x000700f5u, 0x0000005du, 0x00009624u, 0x00006935u, + 0x00006934u, 0x00000563u, 0x00006936u, 0x000200f9u, 0x00006953u, 0x000200f8u, 0x00006919u, 0x000400a8u, + 0x0000005du, 0x0000691bu, 0x0000690cu, 0x000300f7u, 0x00006921u, 0x00000000u, 0x000400fau, 0x0000691bu, + 0x0000691cu, 0x00006921u, 0x000200f8u, 0x0000691cu, 0x000600a9u, 0x0000005du, 0x00006920u, 0x000068feu, + 0x0000690fu, 0x00006917u, 0x000200f9u, 0x00006921u, 0x000200f8u, 0x00006921u, 0x000700f5u, 0x0000005du, + 0x00006922u, 0x0000690cu, 0x00006919u, 0x00006920u, 0x0000691cu, 0x000200f9u, 0x00006953u, 0x000200f8u, + 0x00006953u, 0x000d00f5u, 0x00000008u, 0x00009626u, 0x00008afbu, 0x00006908u, 0x00008afbu, 0x00006921u, + 0x00009628u, 0x00006947u, 0x00008afbu, 0x00006948u, 0x00008afbu, 0x0000694cu, 0x000d00f5u, 0x0000005du, + 0x00009623u, 0x00000548u, 0x00006908u, 0x00006922u, 0x00006921u, 0x00009624u, 0x00006947u, 0x0000694bu, + 0x00006948u, 0x00006952u, 0x0000694cu, 0x000200f9u, 0x00006968u, 0x000200f8u, 0x00006968u, 0x000700f5u, + 0x0000005fu, 0x00009635u, 0x0000bde6u, 0x00006953u, 0x0000bde5u, 0x00006965u, 0x000700f5u, 0x0000005du, + 0x0000962bu, 0x00006909u, 0x00006953u, 0x00006966u, 0x00006965u, 0x000700f5u, 0x00000008u, 0x00009625u, + 0x00009626u, 0x00006953u, 0x00008afbu, 0x00006965u, 0x000700f5u, 0x0000005du, 0x00009622u, 0x00009623u, + 0x00006953u, 0x00000563u, 0x00006965u, 0x000300f7u, 0x000067e1u, 0x00000000u, 0x000400fau, 0x00009622u, + 0x000067dbu, 0x000067e1u, 0x000200f8u, 0x000067dbu, 0x000400a8u, 0x0000005du, 0x000067ddu, 0x000067bdu, + 0x000500abu, 0x0000005du, 0x000067dfu, 0x00009625u, 0x00000208u, 0x000500a6u, 0x0000005du, 0x000067e0u, + 0x000067ddu, 0x000067dfu, 0x000200f9u, 0x000067e1u, 0x000200f8u, 0x000067e1u, 0x000700f5u, 0x0000005du, + 0x000067e2u, 0x00009622u, 0x00006968u, 0x000067e0u, 0x000067dbu, 0x000300f7u, 0x0000682bu, 0x00000000u, + 0x000400fau, 0x000067e2u, 0x000067e3u, 0x0000682bu, 0x000200f8u, 0x000067e3u, 0x000300f7u, 0x00006800u, + 0x00000000u, 0x000400fau, 0x000067b9u, 0x000067efu, 0x00006800u, 0x000200f8u, 0x000067efu, 0x00050051u, + 0x00000008u, 0x000069a0u, 0x0000687du, 0x00000002u, 0x000300f7u, 0x000069b1u, 0x00000000u, 0x000b00fbu, + 0x000069a0u, 0x000069b1u, 0x00000000u, 0x000069a1u, 0x00000001u, 0x000069a5u, 0x00000002u, 0x000069a9u, + 0x00000003u, 0x000069adu, 0x000200f8u, 0x000069adu, 0x0008004fu, 0x0000003cu, 0x000069b0u, 0x0000685au, + 0x0000685au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069b1u, 0x000200f8u, 0x000069a9u, + 0x0008004fu, 0x0000003cu, 0x000069acu, 0x0000685fu, 0x0000685fu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000069b1u, 0x000200f8u, 0x000069a5u, 0x0008004fu, 0x0000003cu, 0x000069a8u, 0x000068b3u, + 0x000068b3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069b1u, 0x000200f8u, 0x000069a1u, + 0x0008004fu, 0x0000003cu, 0x000069a4u, 0x00008d7fu, 0x00008d7fu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x000069b1u, 0x000200f8u, 0x000069b1u, 0x000d00f5u, 0x0000003cu, 0x00009ad7u, 0x00009ae3u, + 0x000067efu, 0x000069a4u, 0x000069a1u, 0x000069a8u, 0x000069a5u, 0x000069acu, 0x000069a9u, 0x000069b0u, + 0x000069adu, 0x00050051u, 0x00000008u, 0x000069bdu, 0x0000687du, 0x00000000u, 0x000300f7u, 0x000069ceu, + 0x00000000u, 0x000b00fbu, 0x000069bdu, 0x000069ceu, 0x00000000u, 0x000069beu, 0x00000001u, 0x000069c2u, + 0x00000002u, 0x000069c6u, 0x00000003u, 0x000069cau, 0x000200f8u, 0x000069cau, 0x0008004fu, 0x0000003cu, + 0x000069cdu, 0x0000685au, 0x0000685au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069ceu, + 0x000200f8u, 0x000069c6u, 0x0008004fu, 0x0000003cu, 0x000069c9u, 0x0000685fu, 0x0000685fu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069ceu, 0x000200f8u, 0x000069c2u, 0x0008004fu, 0x0000003cu, + 0x000069c5u, 0x000068b3u, 0x000068b3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069ceu, + 0x000200f8u, 0x000069beu, 0x0008004fu, 0x0000003cu, 0x000069c1u, 0x00008d7fu, 0x00008d7fu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x000069ceu, 0x000200f8u, 0x000069ceu, 0x000d00f5u, 0x0000003cu, + 0x0000994eu, 0x0000995cu, 0x000069b1u, 0x000069c1u, 0x000069beu, 0x000069c5u, 0x000069c2u, 0x000069c9u, + 0x000069c6u, 0x000069cdu, 0x000069cau, 0x00050051u, 0x00000008u, 0x000069ebu, 0x0000687du, 0x00000001u, + 0x000300f7u, 0x000069f6u, 0x00000000u, 0x000b00fbu, 0x000069ebu, 0x000069f6u, 0x00000000u, 0x000069ecu, + 0x00000001u, 0x000069efu, 0x00000002u, 0x000069f2u, 0x00000003u, 0x000069f5u, 0x000200f8u, 0x000069f5u, + 0x000200f9u, 0x000069f6u, 0x000200f8u, 0x000069f2u, 0x000200f9u, 0x000069f6u, 0x000200f8u, 0x000069efu, + 0x00050051u, 0x00000008u, 0x000069f1u, 0x0000685au, 0x00000003u, 0x000200f9u, 0x000069f6u, 0x000200f8u, + 0x000069ecu, 0x00050051u, 0x00000008u, 0x000069eeu, 0x00008d7fu, 0x00000003u, 0x000200f9u, 0x000069f6u, + 0x000200f8u, 0x000069f6u, 0x000d00f5u, 0x00000008u, 0x00009640u, 0x00009650u, 0x000069ceu, 0x000069eeu, + 0x000069ecu, 0x000069f1u, 0x000069efu, 0x0000898eu, 0x000069f2u, 0x00000208u, 0x000069f5u, 0x00050051u, + 0x00000008u, 0x000069f8u, 0x0000687du, 0x00000003u, 0x000300f7u, 0x00006a02u, 0x00000000u, 0x000b00fbu, + 0x000069f8u, 0x00006a02u, 0x00000000u, 0x000069f9u, 0x00000001u, 0x000069fdu, 0x00000002u, 0x00006a00u, + 0x00000003u, 0x00006a01u, 0x000200f8u, 0x00006a01u, 0x000200f9u, 0x00006a02u, 0x000200f8u, 0x00006a00u, + 0x000200f9u, 0x00006a02u, 0x000200f8u, 0x000069fdu, 0x000200f9u, 0x00006a02u, 0x000200f8u, 0x000069f9u, + 0x000400c8u, 0x00000008u, 0x000069fbu, 0x00009640u, 0x000500c7u, 0x00000008u, 0x000069fcu, 0x000069fbu, + 0x00000390u, 0x000200f9u, 0x00006a02u, 0x000200f8u, 0x00006a02u, 0x000d00f5u, 0x00000008u, 0x000097c5u, + 0x000097d6u, 0x000069f6u, 0x000069fcu, 0x000069f9u, 0x000091c8u, 0x000069fdu, 0x00000390u, 0x00006a00u, + 0x00000208u, 0x00006a01u, 0x000500c3u, 0x00000008u, 0x00006a04u, 0x00009640u, 0x0000021du, 0x000500c3u, + 0x00000008u, 0x00006a06u, 0x000097c5u, 0x0000021du, 0x000500aau, 0x0000005du, 0x00006a09u, 0x000069f8u, + 0x00000217u, 0x000300f7u, 0x00006a15u, 0x00000000u, 0x000400fau, 0x00006a09u, 0x00006a0au, 0x00006a15u, + 0x000200f8u, 0x00006a0au, 0x00050051u, 0x00000008u, 0x00006a0du, 0x00009635u, 0x00000000u, 0x000500c3u, + 0x00000008u, 0x00006a0eu, 0x00006a04u, 0x00006a0du, 0x000500c7u, 0x00000008u, 0x00006a0fu, 0x00006a0eu, + 0x000004d2u, 0x00050051u, 0x00000008u, 0x00006a12u, 0x00009635u, 0x00000001u, 0x000500c3u, 0x00000008u, + 0x00006a13u, 0x00006a06u, 0x00006a12u, 0x000500c5u, 0x00000008u, 0x00006a14u, 0x00006a13u, 0x0000021du, + 0x000200f9u, 0x00006a15u, 0x000200f8u, 0x00006a15u, 0x000700f5u, 0x00000008u, 0x00009c57u, 0x00006a06u, + 0x00006a02u, 0x00006a14u, 0x00006a0au, 0x000700f5u, 0x00000008u, 0x00009ad0u, 0x00006a04u, 0x00006a02u, + 0x00006a0fu, 0x00006a0au, 0x00060050u, 0x0000003cu, 0x00006a1cu, 0x00009ad0u, 0x00009ad0u, 0x00009ad0u, + 0x00050084u, 0x0000003cu, 0x00006a1du, 0x0000994eu, 0x00006a1cu, 0x00050080u, 0x00000008u, 0x00006a24u, + 0x00009c57u, 0x00000217u, 0x00060050u, 0x0000003cu, 0x00006a25u, 0x00006a24u, 0x00006a24u, 0x00006a24u, + 0x00050084u, 0x0000003cu, 0x00006a26u, 0x00009ad7u, 0x00006a25u, 0x00050080u, 0x0000003cu, 0x00006a27u, + 0x00006a1du, 0x00006a26u, 0x000500c3u, 0x0000003cu, 0x00006a2fu, 0x00006a27u, 0x0000bddcu, 0x000500c7u, + 0x0000003cu, 0x00006a62u, 0x00006a2fu, 0x000003a2u, 0x00050051u, 0x00000008u, 0x000067f9u, 0x00006a62u, + 0x00000000u, 0x00060052u, 0x00000009u, 0x0000758eu, 0x000067f9u, 0x00008d7fu, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000067fbu, 0x00006a62u, 0x00000001u, 0x00060052u, 0x00000009u, 0x00007590u, 0x000067fbu, + 0x0000758eu, 0x00000001u, 0x00050051u, 0x00000008u, 0x000067fdu, 0x00006a62u, 0x00000002u, 0x00060052u, + 0x00000009u, 0x00007592u, 0x000067fdu, 0x00007590u, 0x00000002u, 0x000200f9u, 0x00006800u, 0x000200f8u, + 0x00006800u, 0x000700f5u, 0x0000003cu, 0x0000bd02u, 0x00009ae3u, 0x000067e3u, 0x00009ad7u, 0x00006a15u, + 0x000700f5u, 0x0000003cu, 0x0000bcdbu, 0x0000995cu, 0x000067e3u, 0x00006a2fu, 0x00006a15u, 0x000700f5u, + 0x00000008u, 0x0000bcb3u, 0x000097d6u, 0x000067e3u, 0x00009c57u, 0x00006a15u, 0x000700f5u, 0x00000008u, + 0x0000bc8bu, 0x00009650u, 0x000067e3u, 0x00009ad0u, 0x00006a15u, 0x000700f5u, 0x00000009u, 0x00009c66u, + 0x00008d7fu, 0x000067e3u, 0x00007592u, 0x00006a15u, 0x00070050u, 0x000005feu, 0x0000be0du, 0x000067b9u, + 0x000067b9u, 0x000067b9u, 0x000067b9u, 0x000600a9u, 0x00000009u, 0x0000be0eu, 0x0000be0du, 0x00006882u, + 0x0000687du, 0x000300f7u, 0x00006b34u, 0x00000000u, 0x000300fbu, 0x00000379u, 0x00006a6fu, 0x000200f8u, + 0x00006a6fu, 0x00050051u, 0x00000008u, 0x00006a71u, 0x0000be0eu, 0x00000002u, 0x000300f7u, 0x00006a82u, + 0x00000000u, 0x000b00fbu, 0x00006a71u, 0x00006a82u, 0x00000000u, 0x00006a72u, 0x00000001u, 0x00006a76u, + 0x00000002u, 0x00006a7au, 0x00000003u, 0x00006a7eu, 0x000200f8u, 0x00006a7eu, 0x0008004fu, 0x0000003cu, + 0x00006a81u, 0x0000685au, 0x0000685au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a82u, + 0x000200f8u, 0x00006a7au, 0x0008004fu, 0x0000003cu, 0x00006a7du, 0x0000685fu, 0x0000685fu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a82u, 0x000200f8u, 0x00006a76u, 0x0008004fu, 0x0000003cu, + 0x00006a79u, 0x000068b3u, 0x000068b3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a82u, + 0x000200f8u, 0x00006a72u, 0x0008004fu, 0x0000003cu, 0x00006a75u, 0x00009c66u, 0x00009c66u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a82u, 0x000200f8u, 0x00006a82u, 0x000d00f5u, 0x0000003cu, + 0x0000a126u, 0x0000a133u, 0x00006a6fu, 0x00006a75u, 0x00006a72u, 0x00006a79u, 0x00006a76u, 0x00006a7du, + 0x00006a7au, 0x00006a81u, 0x00006a7eu, 0x000400a8u, 0x0000005du, 0x00006a87u, 0x000068feu, 0x000500a7u, + 0x0000005du, 0x00006a88u, 0x000067b5u, 0x00006a87u, 0x000300f7u, 0x00006a8bu, 0x00000000u, 0x000400fau, + 0x00006a88u, 0x00006a89u, 0x00006a8bu, 0x000200f8u, 0x00006a89u, 0x000200f9u, 0x00006b34u, 0x000200f8u, + 0x00006a8bu, 0x00050051u, 0x00000008u, 0x00006a8eu, 0x0000be0eu, 0x00000000u, 0x000300f7u, 0x00006a9fu, + 0x00000000u, 0x000b00fbu, 0x00006a8eu, 0x00006a9fu, 0x00000000u, 0x00006a8fu, 0x00000001u, 0x00006a93u, + 0x00000002u, 0x00006a97u, 0x00000003u, 0x00006a9bu, 0x000200f8u, 0x00006a9bu, 0x0008004fu, 0x0000003cu, + 0x00006a9eu, 0x0000685au, 0x0000685au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a9fu, + 0x000200f8u, 0x00006a97u, 0x0008004fu, 0x0000003cu, 0x00006a9au, 0x0000685fu, 0x0000685fu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a9fu, 0x000200f8u, 0x00006a93u, 0x0008004fu, 0x0000003cu, + 0x00006a96u, 0x000068b3u, 0x000068b3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a9fu, + 0x000200f8u, 0x00006a8fu, 0x0008004fu, 0x0000003cu, 0x00006a92u, 0x00009c66u, 0x00009c66u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006a9fu, 0x000200f8u, 0x00006a9fu, 0x000d00f5u, 0x0000003cu, + 0x00009f90u, 0x00009f9fu, 0x00006a8bu, 0x00006a92u, 0x00006a8fu, 0x00006a96u, 0x00006a93u, 0x00006a9au, + 0x00006a97u, 0x00006a9eu, 0x00006a9bu, 0x000400a8u, 0x0000005du, 0x00006aa3u, 0x0000962bu, 0x000400a8u, + 0x0000005du, 0x00006aa4u, 0x00006aa3u, 0x000300f7u, 0x00006ab5u, 0x00000000u, 0x000400fau, 0x00006aa4u, + 0x00006aa5u, 0x00006ab5u, 0x000200f8u, 0x00006aa5u, 0x00050051u, 0x00000008u, 0x00006aa7u, 0x0000be0eu, + 0x00000001u, 0x000500aau, 0x0000005du, 0x00006aa8u, 0x00006aa7u, 0x00000208u, 0x000300f7u, 0x00006aadu, + 0x00000000u, 0x000400fau, 0x00006aa8u, 0x00006aa9u, 0x00006aadu, 0x000200f8u, 0x00006aa9u, 0x00050051u, + 0x00000008u, 0x00006aabu, 0x0000be0eu, 0x00000003u, 0x000500aau, 0x0000005du, 0x00006aacu, 0x00006aabu, + 0x00000208u, 0x000200f9u, 0x00006aadu, 0x000200f8u, 0x00006aadu, 0x000700f5u, 0x0000005du, 0x00006aaeu, + 0x00006aa8u, 0x00006aa5u, 0x00006aacu, 0x00006aa9u, 0x000300f7u, 0x00006ab3u, 0x00000000u, 0x000400fau, + 0x00006aaeu, 0x00006aafu, 0x00006ab3u, 0x000200f8u, 0x00006aafu, 0x00050051u, 0x00000008u, 0x00006ab1u, + 0x00009c66u, 0x00000003u, 0x000500aau, 0x0000005du, 0x00006ab2u, 0x00006ab1u, 0x00000390u, 0x000200f9u, + 0x00006ab3u, 0x000200f8u, 0x00006ab3u, 0x000700f5u, 0x0000005du, 0x00006ab4u, 0x00006aaeu, 0x00006aadu, + 0x00006ab2u, 0x00006aafu, 0x000200f9u, 0x00006ab5u, 0x000200f8u, 0x00006ab5u, 0x000700f5u, 0x0000005du, + 0x00006ab6u, 0x00006aa3u, 0x00006a9fu, 0x00006ab4u, 0x00006ab3u, 0x000300f7u, 0x00006ab9u, 0x00000000u, + 0x000400fau, 0x00006ab6u, 0x00006ab7u, 0x00006ab9u, 0x000200f8u, 0x00006ab7u, 0x000200f9u, 0x00006b34u, + 0x000200f8u, 0x00006ab9u, 0x00050051u, 0x00000008u, 0x00006abcu, 0x0000be0eu, 0x00000001u, 0x000300f7u, + 0x00006ac7u, 0x00000000u, 0x000b00fbu, 0x00006abcu, 0x00006ac7u, 0x00000000u, 0x00006abdu, 0x00000001u, + 0x00006ac0u, 0x00000002u, 0x00006ac3u, 0x00000003u, 0x00006ac6u, 0x000200f8u, 0x00006ac6u, 0x000200f9u, + 0x00006ac7u, 0x000200f8u, 0x00006ac3u, 0x000200f9u, 0x00006ac7u, 0x000200f8u, 0x00006ac0u, 0x00050051u, + 0x00000008u, 0x00006ac2u, 0x0000685au, 0x00000003u, 0x000200f9u, 0x00006ac7u, 0x000200f8u, 0x00006abdu, + 0x00050051u, 0x00000008u, 0x00006abfu, 0x00009c66u, 0x00000003u, 0x000200f9u, 0x00006ac7u, 0x000200f8u, + 0x00006ac7u, 0x000d00f5u, 0x00000008u, 0x00009c68u, 0x00009c79u, 0x00006ab9u, 0x00006abfu, 0x00006abdu, + 0x00006ac2u, 0x00006ac0u, 0x0000898eu, 0x00006ac3u, 0x00000208u, 0x00006ac6u, 0x00050051u, 0x00000008u, + 0x00006ac9u, 0x0000be0eu, 0x00000003u, 0x000300f7u, 0x00006ad3u, 0x00000000u, 0x000b00fbu, 0x00006ac9u, + 0x00006ad3u, 0x00000000u, 0x00006acau, 0x00000001u, 0x00006aceu, 0x00000002u, 0x00006ad1u, 0x00000003u, + 0x00006ad2u, 0x000200f8u, 0x00006ad2u, 0x000200f9u, 0x00006ad3u, 0x000200f8u, 0x00006ad1u, 0x000200f9u, + 0x00006ad3u, 0x000200f8u, 0x00006aceu, 0x000200f9u, 0x00006ad3u, 0x000200f8u, 0x00006acau, 0x000400c8u, + 0x00000008u, 0x00006accu, 0x00009c68u, 0x000500c7u, 0x00000008u, 0x00006acdu, 0x00006accu, 0x00000390u, + 0x000200f9u, 0x00006ad3u, 0x000200f8u, 0x00006ad3u, 0x000d00f5u, 0x00000008u, 0x00009dfau, 0x00009e0cu, + 0x00006ac7u, 0x00006acdu, 0x00006acau, 0x000091c8u, 0x00006aceu, 0x00000390u, 0x00006ad1u, 0x00000208u, + 0x00006ad2u, 0x000500c3u, 0x00000008u, 0x00006ad5u, 0x00009c68u, 0x0000021du, 0x000500c3u, 0x00000008u, + 0x00006ad7u, 0x00009dfau, 0x0000021du, 0x000500aau, 0x0000005du, 0x00006adau, 0x00006ac9u, 0x00000217u, + 0x000300f7u, 0x00006ae6u, 0x00000000u, 0x000400fau, 0x00006adau, 0x00006adbu, 0x00006ae6u, 0x000200f8u, + 0x00006adbu, 0x00050051u, 0x00000008u, 0x00006adeu, 0x00009635u, 0x00000000u, 0x000500c3u, 0x00000008u, + 0x00006adfu, 0x00006ad5u, 0x00006adeu, 0x000500c7u, 0x00000008u, 0x00006ae0u, 0x00006adfu, 0x000004d2u, + 0x00050051u, 0x00000008u, 0x00006ae3u, 0x00009635u, 0x00000001u, 0x000500c3u, 0x00000008u, 0x00006ae4u, + 0x00006ad7u, 0x00006ae3u, 0x000500c5u, 0x00000008u, 0x00006ae5u, 0x00006ae4u, 0x0000021du, 0x000200f9u, + 0x00006ae6u, 0x000200f8u, 0x00006ae6u, 0x000700f5u, 0x00000008u, 0x0000a2b3u, 0x00006ad7u, 0x00006ad3u, + 0x00006ae5u, 0x00006adbu, 0x000700f5u, 0x00000008u, 0x0000a11fu, 0x00006ad5u, 0x00006ad3u, 0x00006ae0u, + 0x00006adbu, 0x00060050u, 0x0000003cu, 0x00006aedu, 0x0000a11fu, 0x0000a11fu, 0x0000a11fu, 0x00050084u, + 0x0000003cu, 0x00006aeeu, 0x00009f90u, 0x00006aedu, 0x00050080u, 0x00000008u, 0x00006af5u, 0x0000a2b3u, + 0x00000217u, 0x00060050u, 0x0000003cu, 0x00006af6u, 0x00006af5u, 0x00006af5u, 0x00006af5u, 0x00050084u, + 0x0000003cu, 0x00006af7u, 0x0000a126u, 0x00006af6u, 0x00050080u, 0x0000003cu, 0x00006af8u, 0x00006aeeu, + 0x00006af7u, 0x000500a6u, 0x0000005du, 0x00006afcu, 0x00000548u, 0x000067a5u, 0x000300f7u, 0x00006b30u, + 0x00000000u, 0x000400fau, 0x00006afcu, 0x00006afdu, 0x00006b05u, 0x000200f8u, 0x00006b05u, 0x000500c3u, + 0x00000008u, 0x00006b07u, 0x0000a11fu, 0x0000021au, 0x000500c3u, 0x00000008u, 0x00006b09u, 0x0000a2b3u, + 0x0000021au, 0x00050080u, 0x00000008u, 0x00006b0au, 0x00006b07u, 0x00006b09u, 0x00050080u, 0x00000008u, + 0x00006b0bu, 0x00006b0au, 0x00000217u, 0x000500c3u, 0x0000003cu, 0x00006b0eu, 0x00006af8u, 0x0000bdddu, + 0x000500c7u, 0x0000003cu, 0x00006b11u, 0x00006b0eu, 0x0000bddeu, 0x0004003du, 0x00000507u, 0x00006b12u, + 0x00000509u, 0x000500c4u, 0x00000008u, 0x00006b14u, 0x00006b0bu, 0x00000274u, 0x00050051u, 0x00000008u, + 0x00006b16u, 0x00006b11u, 0x00000000u, 0x000500c5u, 0x00000008u, 0x00006b17u, 0x00006b14u, 0x00006b16u, + 0x0005005fu, 0x0000023cu, 0x00006b18u, 0x00006b12u, 0x00006b17u, 0x00050051u, 0x00000006u, 0x00006b19u, + 0x00006b18u, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00006b1au, 0x00006b19u, 0x00050051u, 0x00000008u, + 0x00006b20u, 0x00006b11u, 0x00000001u, 0x000500c5u, 0x00000008u, 0x00006b21u, 0x00006b14u, 0x00006b20u, + 0x0005005fu, 0x0000023cu, 0x00006b22u, 0x00006b12u, 0x00006b21u, 0x00050051u, 0x00000006u, 0x00006b23u, + 0x00006b22u, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00006b24u, 0x00006b23u, 0x00050051u, 0x00000008u, + 0x00006b2au, 0x00006b11u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x00006b2bu, 0x00006b14u, 0x00006b2au, + 0x0005005fu, 0x0000023cu, 0x00006b2cu, 0x00006b12u, 0x00006b2bu, 0x00050051u, 0x00000006u, 0x00006b2du, + 0x00006b2cu, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00006b2eu, 0x00006b2du, 0x00060050u, 0x0000003cu, + 0x0000bde7u, 0x00006b1au, 0x00006b24u, 0x00006b2eu, 0x000200f9u, 0x00006b30u, 0x000200f8u, 0x00006afdu, + 0x000500c3u, 0x0000003cu, 0x00006b00u, 0x00006af8u, 0x0000bddcu, 0x000200f9u, 0x00006b30u, 0x000200f8u, + 0x00006b30u, 0x000700f5u, 0x0000003cu, 0x0000a2b4u, 0x00006b00u, 0x00006afdu, 0x0000bde7u, 0x00006b05u, + 0x000500c7u, 0x0000003cu, 0x00006b33u, 0x0000a2b4u, 0x000003a2u, 0x000200f9u, 0x00006b34u, 0x000200f8u, + 0x00006b34u, 0x000900f5u, 0x0000003cu, 0x0000bd5eu, 0x00009f9fu, 0x00006a89u, 0x00009f90u, 0x00006ab7u, + 0x0000a2b4u, 0x00006b30u, 0x000900f5u, 0x00000008u, 0x0000bd43u, 0x00009e0cu, 0x00006a89u, 0x00009e0cu, + 0x00006ab7u, 0x0000a2b3u, 0x00006b30u, 0x000900f5u, 0x00000008u, 0x0000bd28u, 0x00009c79u, 0x00006a89u, + 0x00009c79u, 0x00006ab7u, 0x0000a11fu, 0x00006b30u, 0x000900f5u, 0x0000003cu, 0x0000a2b5u, 0x0000a126u, + 0x00006a89u, 0x00009f90u, 0x00006ab7u, 0x00006b33u, 0x00006b30u, 0x000300f7u, 0x0000680eu, 0x00000000u, + 0x000400fau, 0x000067c1u, 0x0000680au, 0x0000680eu, 0x000200f8u, 0x0000680au, 0x00060050u, 0x0000003cu, + 0x00006b3du, 0x00006793u, 0x00006793u, 0x00006793u, 0x000500c3u, 0x0000003cu, 0x00006b3eu, 0x00006b3du, + 0x00000397u, 0x000500c7u, 0x0000003cu, 0x00006b40u, 0x00006b3eu, 0x0000bdd9u, 0x000500c7u, 0x0000003cu, + 0x00006b43u, 0x0000a2b5u, 0x0000bdd8u, 0x00050080u, 0x0000003cu, 0x00006b45u, 0x00006b43u, 0x0000bddau, + 0x000500adu, 0x000003a6u, 0x00006b47u, 0x0000a2b5u, 0x000003a5u, 0x000600a9u, 0x0000003cu, 0x00006b48u, + 0x00006b47u, 0x000003a2u, 0x00006b45u, 0x000500c7u, 0x0000003cu, 0x00006b4cu, 0x0000a2b5u, 0x0000bdd9u, + 0x00050082u, 0x0000003cu, 0x00006b4du, 0x00006b40u, 0x00006b4cu, 0x000500c3u, 0x0000003cu, 0x00006b4fu, + 0x00006b4du, 0x0000bddbu, 0x00050082u, 0x0000003cu, 0x00006b52u, 0x00006b48u, 0x0000a2b5u, 0x000500c7u, + 0x0000003cu, 0x00006b56u, 0x00006b52u, 0x00006b4fu, 0x00050080u, 0x0000003cu, 0x00006b57u, 0x0000a2b5u, + 0x00006b56u, 0x000500c7u, 0x0000003cu, 0x00006b5au, 0x00006b57u, 0x000003a2u, 0x000200f9u, 0x0000680eu, + 0x000200f8u, 0x0000680eu, 0x000700f5u, 0x0000003cu, 0x0000a2d4u, 0x0000a2b5u, 0x00006b34u, 0x00006b5au, + 0x0000680au, 0x000300f7u, 0x00006b77u, 0x00000000u, 0x000b00fbu, 0x0000688au, 0x00006b77u, 0x00000000u, + 0x00006b63u, 0x00000001u, 0x00006b6fu, 0x00000002u, 0x00006b74u, 0x00000003u, 0x00006b75u, 0x000200f8u, + 0x00006b75u, 0x000200f9u, 0x00006b77u, 0x000200f8u, 0x00006b74u, 0x000200f9u, 0x00006b77u, 0x000200f8u, + 0x00006b6fu, 0x00050080u, 0x00000008u, 0x00006b72u, 0x00009625u, 0x000067c6u, 0x000500c7u, 0x00000008u, + 0x00006b73u, 0x00006b72u, 0x00000229u, 0x000200f9u, 0x00006b77u, 0x000200f8u, 0x00006b63u, 0x000300f7u, + 0x00006b6eu, 0x00000000u, 0x000400fau, 0x0000962bu, 0x00006b65u, 0x00006b6au, 0x000200f8u, 0x00006b6au, + 0x00050082u, 0x00000008u, 0x00006b6cu, 0x00009625u, 0x00000217u, 0x000500c7u, 0x00000008u, 0x00006b6du, + 0x00006b6cu, 0x00000229u, 0x000200f9u, 0x00006b6eu, 0x000200f8u, 0x00006b65u, 0x00050080u, 0x00000008u, + 0x00006b68u, 0x000067c6u, 0x00009625u, 0x0007000cu, 0x00000008u, 0x00006b69u, 0x00000001u, 0x00000027u, + 0x00000229u, 0x00006b68u, 0x000200f9u, 0x00006b6eu, 0x000200f8u, 0x00006b6eu, 0x000700f5u, 0x00000008u, + 0x0000a2d2u, 0x00006b69u, 0x00006b65u, 0x00006b6du, 0x00006b6au, 0x000200f9u, 0x00006b77u, 0x000200f8u, + 0x00006b77u, 0x000d00f5u, 0x00000008u, 0x0000a2d1u, 0x00000208u, 0x0000680eu, 0x0000a2d2u, 0x00006b6eu, + 0x00006b73u, 0x00006b6fu, 0x00000229u, 0x00006b74u, 0x000067c6u, 0x00006b75u, 0x000500c4u, 0x00000008u, + 0x00006817u, 0x0000a2d1u, 0x00000223u, 0x00050051u, 0x00000008u, 0x00006818u, 0x0000a2d4u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00006819u, 0x0000a2d4u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000681au, + 0x0000a2d4u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000681bu, 0x00006818u, 0x00006819u, 0x0000681au, + 0x00006817u, 0x000300f7u, 0x00006b85u, 0x00000000u, 0x000400fau, 0x00000961u, 0x00006b7au, 0x00006b83u, + 0x000200f8u, 0x00006b83u, 0x000200f9u, 0x00006b85u, 0x000200f8u, 0x00006b7au, 0x00060052u, 0x00000009u, + 0x000075aau, 0x00006818u, 0x00008eeeu, 0x00000000u, 0x00060052u, 0x00000009u, 0x000075acu, 0x00006819u, + 0x000075aau, 0x00000001u, 0x00060052u, 0x00000009u, 0x000075aeu, 0x0000681au, 0x000075acu, 0x00000002u, + 0x000200f9u, 0x00006b85u, 0x000200f8u, 0x00006b85u, 0x000700f5u, 0x00000009u, 0x0000a2ffu, 0x000075aeu, + 0x00006b7au, 0x0000681bu, 0x00006b83u, 0x000300f7u, 0x0000682au, 0x00000000u, 0x000400fau, 0x000067adu, + 0x0000681eu, 0x00006826u, 0x000200f8u, 0x00006826u, 0x000300f7u, 0x00006829u, 0x00000000u, 0x000400fau, + 0x00000854u, 0x00006827u, 0x00006829u, 0x000200f8u, 0x00006827u, 0x000300f7u, 0x00006c00u, 0x00000000u, + 0x000700fbu, 0x0000065cu, 0x00006c00u, 0x00000002u, 0x00006bcdu, 0x00000003u, 0x00006beau, 0x000200f8u, + 0x00006beau, 0x0007004fu, 0x0000005fu, 0x00006becu, 0x0000a2ffu, 0x0000a2ffu, 0x00000000u, 0x00000003u, + 0x0004007cu, 0x000000a6u, 0x00006bedu, 0x00006becu, 0x00050051u, 0x00000006u, 0x00006befu, 0x00006bedu, + 0x00000000u, 0x000500c4u, 0x00000006u, 0x00006bf0u, 0x00006befu, 0x00000360u, 0x00050051u, 0x00000006u, + 0x00006bf2u, 0x00006bedu, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00006bf3u, 0x00006bf0u, 0x00006bf2u, + 0x000500c7u, 0x00000006u, 0x00006bf5u, 0x00006bf3u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00006bf6u, + 0x00006bf5u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00006bf8u, 0x00006bf3u, 0x000003c9u, 0x0004007cu, + 0x00000008u, 0x00006bf9u, 0x00006bf8u, 0x000500c7u, 0x00000006u, 0x00006bfbu, 0x00006bf3u, 0x00000490u, + 0x000500c4u, 0x00000006u, 0x00006bfcu, 0x00006bfbu, 0x000003c9u, 0x000500c5u, 0x00000006u, 0x00006bfeu, + 0x00006bfcu, 0x00006bf6u, 0x0004007cu, 0x00000008u, 0x00006bffu, 0x00006bfeu, 0x000200f9u, 0x00006c00u, + 0x000200f8u, 0x00006bcdu, 0x00050051u, 0x00000008u, 0x00006bcfu, 0x0000a2ffu, 0x00000003u, 0x000500c3u, + 0x00000008u, 0x00006bd0u, 0x00006bcfu, 0x0000021du, 0x00050051u, 0x00000008u, 0x00006bd2u, 0x0000a2ffu, + 0x00000002u, 0x000500c7u, 0x00000008u, 0x00006bd3u, 0x00006bd2u, 0x00000263u, 0x000500c5u, 0x00000008u, + 0x00006bd4u, 0x00006bd0u, 0x00006bd3u, 0x00050051u, 0x00000008u, 0x00006bd6u, 0x0000a2ffu, 0x00000000u, + 0x0004007cu, 0x00000006u, 0x00006bd7u, 0x00006bd6u, 0x000500c7u, 0x00000006u, 0x00006bd8u, 0x00006bd7u, + 0x000006a0u, 0x000500c4u, 0x00000006u, 0x00006bd9u, 0x00006bd8u, 0x000006f9u, 0x00050051u, 0x00000008u, + 0x00006bdbu, 0x0000a2ffu, 0x00000001u, 0x0004007cu, 0x00000006u, 0x00006bdcu, 0x00006bdbu, 0x000500c7u, + 0x00000006u, 0x00006bddu, 0x00006bdcu, 0x000006a0u, 0x000500c4u, 0x00000006u, 0x00006bdeu, 0x00006bddu, + 0x0000048au, 0x000500c5u, 0x00000006u, 0x00006be0u, 0x00006bd9u, 0x00006bdeu, 0x0004007cu, 0x00000006u, + 0x00006be3u, 0x00006bd2u, 0x000500c7u, 0x00000006u, 0x00006be4u, 0x00006be3u, 0x000006a0u, 0x000500c2u, + 0x00000006u, 0x00006be5u, 0x00006be4u, 0x00000706u, 0x000500c5u, 0x00000006u, 0x00006be7u, 0x00006be0u, + 0x00006be5u, 0x0004007cu, 0x00000008u, 0x00006be9u, 0x00006be7u, 0x000200f9u, 0x00006c00u, 0x000200f8u, + 0x00006c00u, 0x000900f5u, 0x00000008u, 0x0000bc40u, 0x00009339u, 0x00006827u, 0x00006bd4u, 0x00006bcdu, + 0x00006bffu, 0x00006beau, 0x000900f5u, 0x00000008u, 0x0000bc02u, 0x000091cdu, 0x00006827u, 0x00006be9u, + 0x00006bcdu, 0x00006bf9u, 0x00006beau, 0x000200f9u, 0x00006829u, 0x000200f8u, 0x00006829u, 0x000700f5u, + 0x00000008u, 0x0000bc22u, 0x00009339u, 0x00006826u, 0x0000bc40u, 0x00006c00u, 0x000700f5u, 0x00000008u, + 0x0000bbe4u, 0x000091cdu, 0x00006826u, 0x0000bc02u, 0x00006c00u, 0x000200f9u, 0x0000682au, 0x000200f8u, + 0x0000681eu, 0x00050082u, 0x00000008u, 0x00006b8du, 0x00000422u, 0x00006790u, 0x0007000cu, 0x00000008u, + 0x00006b8eu, 0x00000001u, 0x0000002au, 0x00006b8du, 0x00000217u, 0x0006000cu, 0x00000008u, 0x00006b90u, + 0x00000001u, 0x0000004au, 0x00006b8eu, 0x00050082u, 0x00000008u, 0x00006b91u, 0x00000427u, 0x00006b90u, + 0x0008000cu, 0x00000008u, 0x00006b93u, 0x00000001u, 0x0000002du, 0x00006b91u, 0x00000208u, 0x00000229u, + 0x00050082u, 0x00000008u, 0x00006b95u, 0x00000226u, 0x00006b93u, 0x0007000cu, 0x00000008u, 0x00006b96u, + 0x00000001u, 0x0000002au, 0x00006b95u, 0x00000208u, 0x000500c3u, 0x00000008u, 0x00006b99u, 0x00006790u, + 0x00006b96u, 0x000500c7u, 0x00000008u, 0x00006b9au, 0x00006b99u, 0x0000040fu, 0x000500c4u, 0x00000008u, + 0x00006b9cu, 0x00006b93u, 0x00000274u, 0x00050080u, 0x00000008u, 0x00006b9eu, 0x00006b9cu, 0x00006b9au, + 0x000300f7u, 0x00006825u, 0x00000000u, 0x000400fau, 0x00000854u, 0x00006823u, 0x00006825u, 0x000200f8u, + 0x00006823u, 0x0004007cu, 0x00000006u, 0x00006ba2u, 0x00006b9eu, 0x000500c4u, 0x00000006u, 0x00006ba3u, + 0x00006ba2u, 0x00000706u, 0x0004007cu, 0x00000006u, 0x00006ba5u, 0x0000686cu, 0x000500c5u, 0x00000006u, + 0x00006ba6u, 0x00006ba3u, 0x00006ba5u, 0x000300f7u, 0x00006bc7u, 0x00000000u, 0x000700fbu, 0x0000065cu, + 0x00006bc7u, 0x00000002u, 0x00006ba7u, 0x00000003u, 0x00006bbcu, 0x000200f8u, 0x00006bbcu, 0x000500c2u, + 0x00000006u, 0x00006bbeu, 0x00006ba6u, 0x00000733u, 0x000500c7u, 0x00000006u, 0x00006bbfu, 0x00006bbeu, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00006bc0u, 0x00006bbfu, 0x00060052u, 0x00000009u, 0x000075b8u, + 0x00006bc0u, 0x0000a2ffu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006bc3u, 0x00006ba6u, 0x000003c9u, + 0x000500c7u, 0x00000006u, 0x00006bc4u, 0x00006bc3u, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00006bc5u, + 0x00006bc4u, 0x00060052u, 0x00000009u, 0x000075bau, 0x00006bc5u, 0x000075b8u, 0x00000003u, 0x000200f9u, + 0x00006bc7u, 0x000200f8u, 0x00006ba7u, 0x000500c2u, 0x00000006u, 0x00006ba9u, 0x00006ba6u, 0x00000733u, + 0x000500c7u, 0x00000006u, 0x00006baau, 0x00006ba9u, 0x000006a0u, 0x0004007cu, 0x00000008u, 0x00006babu, + 0x00006baau, 0x000500c2u, 0x00000006u, 0x00006baeu, 0x00006ba6u, 0x00000739u, 0x000500c7u, 0x00000006u, + 0x00006bafu, 0x00006baeu, 0x000006a0u, 0x0004007cu, 0x00000008u, 0x00006bb0u, 0x00006bafu, 0x000500c2u, + 0x00000006u, 0x00006bb3u, 0x00006ba6u, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00006bb4u, 0x00006bb3u, + 0x000006a0u, 0x0004007cu, 0x00000008u, 0x00006bb5u, 0x00006bb4u, 0x000500c7u, 0x00000006u, 0x00006bb8u, + 0x00006ba6u, 0x00000744u, 0x000500c4u, 0x00000006u, 0x00006bb9u, 0x00006bb8u, 0x00000739u, 0x0004007cu, + 0x00000008u, 0x00006bbau, 0x00006bb9u, 0x00070050u, 0x00000009u, 0x0000bde8u, 0x00006babu, 0x00006bb0u, + 0x00006bb5u, 0x00006bbau, 0x000200f9u, 0x00006bc7u, 0x000200f8u, 0x00006bc7u, 0x000900f5u, 0x00000009u, + 0x0000bb84u, 0x0000a2ffu, 0x00006823u, 0x0000bde8u, 0x00006ba7u, 0x000075bau, 0x00006bbcu, 0x000200f9u, + 0x00006825u, 0x000200f8u, 0x00006825u, 0x000700f5u, 0x00000009u, 0x0000bb83u, 0x0000a2ffu, 0x0000681eu, + 0x0000bb84u, 0x00006bc7u, 0x000200f9u, 0x0000682au, 0x000200f8u, 0x0000682au, 0x000700f5u, 0x00000008u, + 0x0000bc1fu, 0x0000686cu, 0x00006825u, 0x0000bc22u, 0x00006829u, 0x000700f5u, 0x00000008u, 0x0000bbe1u, + 0x00006b9eu, 0x00006825u, 0x0000bbe4u, 0x00006829u, 0x000700f5u, 0x00000009u, 0x0000bb82u, 0x0000bb83u, + 0x00006825u, 0x0000a2ffu, 0x00006829u, 0x000600a9u, 0x0000005du, 0x0000be0fu, 0x000067adu, 0x00000563u, + 0x0000a7a7u, 0x000200f9u, 0x0000682bu, 0x000200f8u, 0x0000682bu, 0x000700f5u, 0x0000003cu, 0x0000bd72u, + 0x0000a133u, 0x000067e1u, 0x0000a126u, 0x0000682au, 0x000700f5u, 0x0000003cu, 0x0000bd58u, 0x00009f9fu, + 0x000067e1u, 0x0000bd5eu, 0x0000682au, 0x000700f5u, 0x00000008u, 0x0000bd3du, 0x00009e0cu, 0x000067e1u, + 0x0000bd43u, 0x0000682au, 0x000700f5u, 0x00000008u, 0x0000bd22u, 0x00009c79u, 0x000067e1u, 0x0000bd28u, + 0x0000682au, 0x000700f5u, 0x0000003cu, 0x0000bcfau, 0x00009ae3u, 0x000067e1u, 0x0000bd02u, 0x0000682au, + 0x000700f5u, 0x0000003cu, 0x0000bcd3u, 0x0000995cu, 0x000067e1u, 0x0000bcdbu, 0x0000682au, 0x000700f5u, + 0x00000008u, 0x0000bcabu, 0x000097d6u, 0x000067e1u, 0x0000bcb3u, 0x0000682au, 0x000700f5u, 0x00000008u, + 0x0000bc83u, 0x00009650u, 0x000067e1u, 0x0000bc8bu, 0x0000682au, 0x000700f5u, 0x00000008u, 0x0000bc12u, + 0x00009339u, 0x000067e1u, 0x0000bc1fu, 0x0000682au, 0x000700f5u, 0x00000008u, 0x0000bbd4u, 0x000091cdu, + 0x000067e1u, 0x0000bbe1u, 0x0000682au, 0x000700f5u, 0x00000009u, 0x0000bb81u, 0x00008eeeu, 0x000067e1u, + 0x0000bb82u, 0x0000682au, 0x000700f5u, 0x0000005du, 0x0000a920u, 0x0000a7a7u, 0x000067e1u, 0x0000be0fu, + 0x0000682au, 0x000600a9u, 0x0000005du, 0x0000be10u, 0x000067e2u, 0x00000563u, 0x0000a621u, 0x000200f9u, + 0x00002034u, 0x000200f8u, 0x00002033u, 0x0004007cu, 0x00000006u, 0x00002037u, 0x00008c3du, 0x000300f7u, + 0x000066f3u, 0x00000000u, 0x000900fbu, 0x0000065cu, 0x000066f3u, 0x00000000u, 0x000066d4u, 0x00000001u, + 0x000066d5u, 0x00000002u, 0x000066dcu, 0x000200f8u, 0x000066dcu, 0x000500c2u, 0x00000006u, 0x000066deu, + 0x00002037u, 0x00000263u, 0x000500c7u, 0x00000006u, 0x000066dfu, 0x000066deu, 0x000006a0u, 0x000500c2u, + 0x00000006u, 0x000066e1u, 0x00002037u, 0x0000021du, 0x000500c7u, 0x00000006u, 0x000066e2u, 0x000066e1u, + 0x000006a0u, 0x000500c4u, 0x00000006u, 0x000066e4u, 0x00002037u, 0x0000021au, 0x000500c7u, 0x00000006u, + 0x000066e5u, 0x000066e4u, 0x000006a0u, 0x000500c7u, 0x00000006u, 0x000066e7u, 0x00002037u, 0x0000048au, + 0x00050084u, 0x00000006u, 0x000066e8u, 0x000066e7u, 0x0000098au, 0x0004007cu, 0x00000008u, 0x000066eau, + 0x000066dfu, 0x0004007cu, 0x00000008u, 0x000066ecu, 0x000066e2u, 0x0004007cu, 0x00000008u, 0x000066eeu, + 0x000066e5u, 0x0004007cu, 0x00000008u, 0x000066f0u, 0x000066e8u, 0x00070050u, 0x00000009u, 0x000066f1u, + 0x000066eau, 0x000066ecu, 0x000066eeu, 0x000066f0u, 0x000300f7u, 0x00006710u, 0x00000000u, 0x000400fau, + 0x00000961u, 0x00006705u, 0x0000670eu, 0x000200f8u, 0x0000670eu, 0x000200f9u, 0x00006710u, 0x000200f8u, + 0x00006705u, 0x00060052u, 0x00000009u, 0x00007561u, 0x000066eau, 0x00008eeeu, 0x00000000u, 0x00060052u, + 0x00000009u, 0x00007563u, 0x000066ecu, 0x00007561u, 0x00000001u, 0x00060052u, 0x00000009u, 0x00007565u, + 0x000066eeu, 0x00007563u, 0x00000002u, 0x000200f9u, 0x00006710u, 0x000200f8u, 0x00006710u, 0x000700f5u, + 0x00000009u, 0x0000a302u, 0x00007565u, 0x00006705u, 0x000066f1u, 0x0000670eu, 0x000200f9u, 0x000066f3u, + 0x000200f8u, 0x000066d5u, 0x000500c7u, 0x00000006u, 0x000066d7u, 0x00002037u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x000066d9u, 0x000066d7u, 0x00070050u, 0x00000009u, 0x000066dau, 0x000066d9u, 0x000066d9u, + 0x000066d9u, 0x000066d9u, 0x000300f7u, 0x00006703u, 0x00000000u, 0x000400fau, 0x00000961u, 0x000066f8u, + 0x00006701u, 0x000200f8u, 0x00006701u, 0x000200f9u, 0x00006703u, 0x000200f8u, 0x000066f8u, 0x00060052u, + 0x00000009u, 0x0000755bu, 0x000066d9u, 0x00008eeeu, 0x00000000u, 0x00060052u, 0x00000009u, 0x0000755du, + 0x000066d9u, 0x0000755bu, 0x00000001u, 0x00060052u, 0x00000009u, 0x0000755fu, 0x000066d9u, 0x0000755du, + 0x00000002u, 0x000200f9u, 0x00006703u, 0x000200f8u, 0x00006703u, 0x000700f5u, 0x00000009u, 0x0000a301u, + 0x0000755fu, 0x000066f8u, 0x000066dau, 0x00006701u, 0x000200f9u, 0x000066f3u, 0x000200f8u, 0x000066d4u, + 0x000200f9u, 0x000066f3u, 0x000200f8u, 0x000066f3u, 0x000b00f5u, 0x0000005du, 0x0000a792u, 0x0000a621u, + 0x00002033u, 0x00000563u, 0x000066d4u, 0x00000563u, 0x00006703u, 0x00000563u, 0x00006710u, 0x000b00f5u, + 0x00000009u, 0x0000a300u, 0x00008eeeu, 0x00002033u, 0x00000616u, 0x000066d4u, 0x0000a301u, 0x00006703u, + 0x0000a302u, 0x00006710u, 0x000300f7u, 0x000066f6u, 0x00000000u, 0x000400fau, 0x00000854u, 0x000066f4u, + 0x000066f6u, 0x000200f8u, 0x000066f4u, 0x000300f7u, 0x00006749u, 0x00000000u, 0x000700fbu, 0x0000065cu, + 0x00006749u, 0x00000002u, 0x00006716u, 0x00000003u, 0x00006733u, 0x000200f8u, 0x00006733u, 0x0007004fu, + 0x0000005fu, 0x00006735u, 0x0000a300u, 0x0000a300u, 0x00000000u, 0x00000003u, 0x0004007cu, 0x000000a6u, + 0x00006736u, 0x00006735u, 0x00050051u, 0x00000006u, 0x00006738u, 0x00006736u, 0x00000000u, 0x000500c4u, + 0x00000006u, 0x00006739u, 0x00006738u, 0x00000360u, 0x00050051u, 0x00000006u, 0x0000673bu, 0x00006736u, + 0x00000001u, 0x000500c5u, 0x00000006u, 0x0000673cu, 0x00006739u, 0x0000673bu, 0x000500c7u, 0x00000006u, + 0x0000673eu, 0x0000673cu, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000673fu, 0x0000673eu, 0x00000490u, + 0x000500c2u, 0x00000006u, 0x00006741u, 0x0000673cu, 0x000003c9u, 0x0004007cu, 0x00000008u, 0x00006742u, + 0x00006741u, 0x000500c7u, 0x00000006u, 0x00006744u, 0x0000673cu, 0x00000490u, 0x000500c4u, 0x00000006u, + 0x00006745u, 0x00006744u, 0x000003c9u, 0x000500c5u, 0x00000006u, 0x00006747u, 0x00006745u, 0x0000673fu, + 0x0004007cu, 0x00000008u, 0x00006748u, 0x00006747u, 0x000200f9u, 0x00006749u, 0x000200f8u, 0x00006716u, + 0x00050051u, 0x00000008u, 0x00006718u, 0x0000a300u, 0x00000003u, 0x000500c3u, 0x00000008u, 0x00006719u, + 0x00006718u, 0x0000021du, 0x00050051u, 0x00000008u, 0x0000671bu, 0x0000a300u, 0x00000002u, 0x000500c7u, + 0x00000008u, 0x0000671cu, 0x0000671bu, 0x00000263u, 0x000500c5u, 0x00000008u, 0x0000671du, 0x00006719u, + 0x0000671cu, 0x00050051u, 0x00000008u, 0x0000671fu, 0x0000a300u, 0x00000000u, 0x0004007cu, 0x00000006u, + 0x00006720u, 0x0000671fu, 0x000500c7u, 0x00000006u, 0x00006721u, 0x00006720u, 0x000006a0u, 0x000500c4u, + 0x00000006u, 0x00006722u, 0x00006721u, 0x000006f9u, 0x00050051u, 0x00000008u, 0x00006724u, 0x0000a300u, + 0x00000001u, 0x0004007cu, 0x00000006u, 0x00006725u, 0x00006724u, 0x000500c7u, 0x00000006u, 0x00006726u, + 0x00006725u, 0x000006a0u, 0x000500c4u, 0x00000006u, 0x00006727u, 0x00006726u, 0x0000048au, 0x000500c5u, + 0x00000006u, 0x00006729u, 0x00006722u, 0x00006727u, 0x0004007cu, 0x00000006u, 0x0000672cu, 0x0000671bu, + 0x000500c7u, 0x00000006u, 0x0000672du, 0x0000672cu, 0x000006a0u, 0x000500c2u, 0x00000006u, 0x0000672eu, + 0x0000672du, 0x00000706u, 0x000500c5u, 0x00000006u, 0x00006730u, 0x00006729u, 0x0000672eu, 0x0004007cu, + 0x00000008u, 0x00006732u, 0x00006730u, 0x000200f9u, 0x00006749u, 0x000200f8u, 0x00006749u, 0x000900f5u, + 0x00000008u, 0x0000bc11u, 0x00009339u, 0x000066f4u, 0x0000671du, 0x00006716u, 0x00006748u, 0x00006733u, + 0x000900f5u, 0x00000008u, 0x0000bbd3u, 0x000091cdu, 0x000066f4u, 0x00006732u, 0x00006716u, 0x00006742u, + 0x00006733u, 0x000200f9u, 0x000066f6u, 0x000200f8u, 0x000066f6u, 0x000700f5u, 0x00000008u, 0x0000bc0du, + 0x00009339u, 0x000066f3u, 0x0000bc11u, 0x00006749u, 0x000700f5u, 0x00000008u, 0x0000bbcfu, 0x000091cdu, + 0x000066f3u, 0x0000bbd3u, 0x00006749u, 0x000200f9u, 0x00002034u, 0x000200f8u, 0x00002034u, 0x000700f5u, + 0x0000003cu, 0x0000bd6cu, 0x0000a133u, 0x000066f6u, 0x0000bd72u, 0x0000682bu, 0x000700f5u, 0x0000003cu, + 0x0000bd52u, 0x00009f9fu, 0x000066f6u, 0x0000bd58u, 0x0000682bu, 0x000700f5u, 0x00000008u, 0x0000bd37u, + 0x00009e0cu, 0x000066f6u, 0x0000bd3du, 0x0000682bu, 0x000700f5u, 0x00000008u, 0x0000bd1cu, 0x00009c79u, + 0x000066f6u, 0x0000bd22u, 0x0000682bu, 0x000700f5u, 0x0000003cu, 0x0000bcf4u, 0x00009ae3u, 0x000066f6u, + 0x0000bcfau, 0x0000682bu, 0x000700f5u, 0x0000003cu, 0x0000bccdu, 0x0000995cu, 0x000066f6u, 0x0000bcd3u, + 0x0000682bu, 0x000700f5u, 0x00000008u, 0x0000bca5u, 0x000097d6u, 0x000066f6u, 0x0000bcabu, 0x0000682bu, + 0x000700f5u, 0x00000008u, 0x0000bc7du, 0x00009650u, 0x000066f6u, 0x0000bc83u, 0x0000682bu, 0x000700f5u, + 0x00000008u, 0x0000bc0cu, 0x0000bc0du, 0x000066f6u, 0x0000bc12u, 0x0000682bu, 0x000700f5u, 0x00000008u, + 0x0000bbceu, 0x0000bbcfu, 0x000066f6u, 0x0000bbd4u, 0x0000682bu, 0x000700f5u, 0x0000003cu, 0x0000bb90u, + 0x0000905cu, 0x000066f6u, 0x00009058u, 0x0000682bu, 0x000700f5u, 0x00000009u, 0x0000bb7eu, 0x0000a300u, + 0x000066f6u, 0x0000bb81u, 0x0000682bu, 0x000700f5u, 0x0000005du, 0x0000a91au, 0x0000a7a7u, 0x000066f6u, + 0x0000a920u, 0x0000682bu, 0x000700f5u, 0x0000005du, 0x0000a790u, 0x0000a792u, 0x000066f6u, 0x0000be10u, + 0x0000682bu, 0x000200f9u, 0x00002028u, 0x000200f8u, 0x00002027u, 0x00070041u, 0x00000270u, 0x0000202bu, + 0x00000237u, 0x00000208u, 0x00002016u, 0x0000026fu, 0x0004003du, 0x00000006u, 0x0000202cu, 0x0000202bu, + 0x000300f7u, 0x0000665cu, 0x00000000u, 0x000b00fbu, 0x0000065cu, 0x0000665cu, 0x00000004u, 0x00006602u, + 0x00000002u, 0x00006619u, 0x00000003u, 0x00006636u, 0x00000001u, 0x0000664fu, 0x000200f8u, 0x0000664fu, + 0x000500c7u, 0x00000006u, 0x00006651u, 0x0000a307u, 0x00000490u, 0x000500c6u, 0x00000006u, 0x00006652u, + 0x00006651u, 0x00000490u, 0x00050084u, 0x00000006u, 0x00006653u, 0x00006652u, 0x00000360u, 0x000500c2u, + 0x00000006u, 0x00006655u, 0x0000202cu, 0x00006653u, 0x000500c7u, 0x00000006u, 0x00006657u, 0x00006655u, + 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00006659u, 0x00006657u, 0x00070050u, 0x00000009u, 0x0000665au, + 0x00006659u, 0x00006659u, 0x00006659u, 0x00006659u, 0x000300f7u, 0x00006693u, 0x00000000u, 0x000400fau, + 0x00000961u, 0x00006688u, 0x00006691u, 0x000200f8u, 0x00006691u, 0x000200f9u, 0x00006693u, 0x000200f8u, + 0x00006688u, 0x00060052u, 0x00000009u, 0x0000754eu, 0x00006659u, 0x00008eeeu, 0x00000000u, 0x00060052u, + 0x00000009u, 0x00007550u, 0x00006659u, 0x0000754eu, 0x00000001u, 0x00060052u, 0x00000009u, 0x00007552u, + 0x00006659u, 0x00007550u, 0x00000002u, 0x000200f9u, 0x00006693u, 0x000200f8u, 0x00006693u, 0x000700f5u, + 0x00000009u, 0x0000a476u, 0x00007552u, 0x00006688u, 0x0000665au, 0x00006691u, 0x000200f9u, 0x0000665cu, + 0x000200f8u, 0x00006636u, 0x000500c7u, 0x00000006u, 0x00006638u, 0x0000a307u, 0x0000048au, 0x000500c6u, + 0x00000006u, 0x00006639u, 0x00006638u, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000663au, 0x00006639u, + 0x0000037cu, 0x000500c2u, 0x00000006u, 0x0000663cu, 0x0000202cu, 0x0000663au, 0x000500c7u, 0x00000006u, + 0x0000663eu, 0x0000663cu, 0x00000782u, 0x000500c2u, 0x00000006u, 0x00006640u, 0x0000663eu, 0x00000360u, + 0x000500c7u, 0x00000006u, 0x00006641u, 0x00006640u, 0x000006c7u, 0x000500c2u, 0x00000006u, 0x00006643u, + 0x0000663eu, 0x00000379u, 0x000500c7u, 0x00000006u, 0x00006644u, 0x00006643u, 0x000006c7u, 0x0004007cu, + 0x00000008u, 0x00006646u, 0x00006641u, 0x0004007cu, 0x00000008u, 0x0000664cu, 0x00006644u, 0x00070050u, + 0x00000009u, 0x0000664du, 0x00006646u, 0x00006646u, 0x00006646u, 0x0000664cu, 0x000300f7u, 0x00006686u, + 0x00000000u, 0x000400fau, 0x00000961u, 0x0000667bu, 0x00006684u, 0x000200f8u, 0x00006684u, 0x000200f9u, + 0x00006686u, 0x000200f8u, 0x0000667bu, 0x00060052u, 0x00000009u, 0x00007548u, 0x00006646u, 0x00008eeeu, + 0x00000000u, 0x00060052u, 0x00000009u, 0x0000754au, 0x00006646u, 0x00007548u, 0x00000001u, 0x00060052u, + 0x00000009u, 0x0000754cu, 0x00006646u, 0x0000754au, 0x00000002u, 0x000200f9u, 0x00006686u, 0x000200f8u, + 0x00006686u, 0x000700f5u, 0x00000009u, 0x0000a475u, 0x0000754cu, 0x0000667bu, 0x0000664du, 0x00006684u, + 0x000200f9u, 0x0000665cu, 0x000200f8u, 0x00006619u, 0x000500c7u, 0x00000006u, 0x0000661bu, 0x0000a307u, + 0x0000048au, 0x000500c6u, 0x00000006u, 0x0000661cu, 0x0000661bu, 0x0000048au, 0x00050084u, 0x00000006u, + 0x0000661du, 0x0000661cu, 0x0000037cu, 0x000500c2u, 0x00000006u, 0x0000661fu, 0x0000202cu, 0x0000661du, + 0x000500c2u, 0x00000006u, 0x00006621u, 0x0000661fu, 0x00000360u, 0x000500c7u, 0x00000006u, 0x00006622u, + 0x00006621u, 0x000006a0u, 0x000500c2u, 0x00000006u, 0x00006624u, 0x0000661fu, 0x00000490u, 0x000500c7u, + 0x00000006u, 0x00006625u, 0x00006624u, 0x000006a0u, 0x000500c4u, 0x00000006u, 0x00006627u, 0x0000661fu, + 0x000003c9u, 0x000500c7u, 0x00000006u, 0x00006628u, 0x00006627u, 0x000006a0u, 0x000500c7u, 0x00000006u, + 0x0000662au, 0x0000661fu, 0x0000048au, 0x00050084u, 0x00000006u, 0x0000662bu, 0x0000662au, 0x0000098au, + 0x0004007cu, 0x00000008u, 0x0000662du, 0x00006622u, 0x0004007cu, 0x00000008u, 0x0000662fu, 0x00006625u, + 0x0004007cu, 0x00000008u, 0x00006631u, 0x00006628u, 0x0004007cu, 0x00000008u, 0x00006633u, 0x0000662bu, + 0x00070050u, 0x00000009u, 0x00006634u, 0x0000662du, 0x0000662fu, 0x00006631u, 0x00006633u, 0x000300f7u, + 0x00006679u, 0x00000000u, 0x000400fau, 0x00000961u, 0x0000666eu, 0x00006677u, 0x000200f8u, 0x00006677u, + 0x000200f9u, 0x00006679u, 0x000200f8u, 0x0000666eu, 0x00060052u, 0x00000009u, 0x00007542u, 0x0000662du, + 0x00008eeeu, 0x00000000u, 0x00060052u, 0x00000009u, 0x00007544u, 0x0000662fu, 0x00007542u, 0x00000001u, + 0x00060052u, 0x00000009u, 0x00007546u, 0x00006631u, 0x00007544u, 0x00000002u, 0x000200f9u, 0x00006679u, + 0x000200f8u, 0x00006679u, 0x000700f5u, 0x00000009u, 0x0000a474u, 0x00007546u, 0x0000666eu, 0x00006634u, + 0x00006677u, 0x000200f9u, 0x0000665cu, 0x000200f8u, 0x00006602u, 0x000500c2u, 0x00000006u, 0x00006604u, + 0x0000202cu, 0x000006e1u, 0x000500c7u, 0x00000006u, 0x00006605u, 0x00006604u, 0x000006c7u, 0x000500c2u, + 0x00000006u, 0x00006607u, 0x0000202cu, 0x0000037cu, 0x000500c7u, 0x00000006u, 0x00006608u, 0x00006607u, + 0x000006c7u, 0x000500c2u, 0x00000006u, 0x0000660au, 0x0000202cu, 0x00000360u, 0x000500c7u, 0x00000006u, + 0x0000660bu, 0x0000660au, 0x000006c7u, 0x000500c2u, 0x00000006u, 0x0000660du, 0x0000202cu, 0x00000379u, + 0x000500c7u, 0x00000006u, 0x0000660eu, 0x0000660du, 0x000006c7u, 0x0004007cu, 0x00000008u, 0x00006610u, + 0x00006605u, 0x0004007cu, 0x00000008u, 0x00006612u, 0x00006608u, 0x0004007cu, 0x00000008u, 0x00006614u, + 0x0000660bu, 0x0004007cu, 0x00000008u, 0x00006616u, 0x0000660eu, 0x00070050u, 0x00000009u, 0x00006617u, + 0x00006610u, 0x00006612u, 0x00006614u, 0x00006616u, 0x000300f7u, 0x0000666cu, 0x00000000u, 0x000400fau, + 0x00000961u, 0x00006661u, 0x0000666au, 0x000200f8u, 0x0000666au, 0x000200f9u, 0x0000666cu, 0x000200f8u, + 0x00006661u, 0x00060052u, 0x00000009u, 0x0000753cu, 0x00006610u, 0x00008eeeu, 0x00000000u, 0x00060052u, + 0x00000009u, 0x0000753eu, 0x00006612u, 0x0000753cu, 0x00000001u, 0x00060052u, 0x00000009u, 0x00007540u, + 0x00006614u, 0x0000753eu, 0x00000002u, 0x000200f9u, 0x0000666cu, 0x000200f8u, 0x0000666cu, 0x000700f5u, + 0x00000009u, 0x0000a473u, 0x00007540u, 0x00006661u, 0x00006617u, 0x0000666au, 0x000200f9u, 0x0000665cu, + 0x000200f8u, 0x0000665cu, 0x000d00f5u, 0x0000005du, 0x0000a78eu, 0x0000a621u, 0x00002027u, 0x00000563u, + 0x0000666cu, 0x00000563u, 0x00006679u, 0x00000563u, 0x00006686u, 0x00000563u, 0x00006693u, 0x000d00f5u, + 0x00000009u, 0x0000a472u, 0x00008eeeu, 0x00002027u, 0x0000a473u, 0x0000666cu, 0x0000a474u, 0x00006679u, + 0x0000a475u, 0x00006686u, 0x0000a476u, 0x00006693u, 0x000300f7u, 0x0000665fu, 0x00000000u, 0x000400fau, + 0x00000854u, 0x0000665du, 0x0000665fu, 0x000200f8u, 0x0000665du, 0x000300f7u, 0x000066ccu, 0x00000000u, + 0x000700fbu, 0x0000065cu, 0x000066ccu, 0x00000002u, 0x00006699u, 0x00000003u, 0x000066b6u, 0x000200f8u, + 0x000066b6u, 0x0007004fu, 0x0000005fu, 0x000066b8u, 0x0000a472u, 0x0000a472u, 0x00000000u, 0x00000003u, + 0x0004007cu, 0x000000a6u, 0x000066b9u, 0x000066b8u, 0x00050051u, 0x00000006u, 0x000066bbu, 0x000066b9u, + 0x00000000u, 0x000500c4u, 0x00000006u, 0x000066bcu, 0x000066bbu, 0x00000360u, 0x00050051u, 0x00000006u, + 0x000066beu, 0x000066b9u, 0x00000001u, 0x000500c5u, 0x00000006u, 0x000066bfu, 0x000066bcu, 0x000066beu, + 0x000500c7u, 0x00000006u, 0x000066c1u, 0x000066bfu, 0x0000048au, 0x00050084u, 0x00000006u, 0x000066c2u, + 0x000066c1u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x000066c4u, 0x000066bfu, 0x000003c9u, 0x0004007cu, + 0x00000008u, 0x000066c5u, 0x000066c4u, 0x000500c7u, 0x00000006u, 0x000066c7u, 0x000066bfu, 0x00000490u, + 0x000500c4u, 0x00000006u, 0x000066c8u, 0x000066c7u, 0x000003c9u, 0x000500c5u, 0x00000006u, 0x000066cau, + 0x000066c8u, 0x000066c2u, 0x0004007cu, 0x00000008u, 0x000066cbu, 0x000066cau, 0x000200f9u, 0x000066ccu, + 0x000200f8u, 0x00006699u, 0x00050051u, 0x00000008u, 0x0000669bu, 0x0000a472u, 0x00000003u, 0x000500c3u, + 0x00000008u, 0x0000669cu, 0x0000669bu, 0x0000021du, 0x00050051u, 0x00000008u, 0x0000669eu, 0x0000a472u, + 0x00000002u, 0x000500c7u, 0x00000008u, 0x0000669fu, 0x0000669eu, 0x00000263u, 0x000500c5u, 0x00000008u, + 0x000066a0u, 0x0000669cu, 0x0000669fu, 0x00050051u, 0x00000008u, 0x000066a2u, 0x0000a472u, 0x00000000u, + 0x0004007cu, 0x00000006u, 0x000066a3u, 0x000066a2u, 0x000500c7u, 0x00000006u, 0x000066a4u, 0x000066a3u, + 0x000006a0u, 0x000500c4u, 0x00000006u, 0x000066a5u, 0x000066a4u, 0x000006f9u, 0x00050051u, 0x00000008u, + 0x000066a7u, 0x0000a472u, 0x00000001u, 0x0004007cu, 0x00000006u, 0x000066a8u, 0x000066a7u, 0x000500c7u, + 0x00000006u, 0x000066a9u, 0x000066a8u, 0x000006a0u, 0x000500c4u, 0x00000006u, 0x000066aau, 0x000066a9u, + 0x0000048au, 0x000500c5u, 0x00000006u, 0x000066acu, 0x000066a5u, 0x000066aau, 0x0004007cu, 0x00000006u, + 0x000066afu, 0x0000669eu, 0x000500c7u, 0x00000006u, 0x000066b0u, 0x000066afu, 0x000006a0u, 0x000500c2u, + 0x00000006u, 0x000066b1u, 0x000066b0u, 0x00000706u, 0x000500c5u, 0x00000006u, 0x000066b3u, 0x000066acu, + 0x000066b1u, 0x0004007cu, 0x00000008u, 0x000066b5u, 0x000066b3u, 0x000200f9u, 0x000066ccu, 0x000200f8u, + 0x000066ccu, 0x000900f5u, 0x00000008u, 0x0000bc0bu, 0x00009339u, 0x0000665du, 0x000066a0u, 0x00006699u, + 0x000066cbu, 0x000066b6u, 0x000900f5u, 0x00000008u, 0x0000bbcdu, 0x000091cdu, 0x0000665du, 0x000066b5u, + 0x00006699u, 0x000066c5u, 0x000066b6u, 0x000200f9u, 0x0000665fu, 0x000200f8u, 0x0000665fu, 0x000700f5u, + 0x00000008u, 0x0000bc05u, 0x00009339u, 0x0000665cu, 0x0000bc0bu, 0x000066ccu, 0x000700f5u, 0x00000008u, + 0x0000bbc7u, 0x000091cdu, 0x0000665cu, 0x0000bbcdu, 0x000066ccu, 0x000200f9u, 0x00002028u, 0x000200f8u, + 0x00002028u, 0x000700f5u, 0x0000003cu, 0x0000bd64u, 0x0000a133u, 0x0000665fu, 0x0000bd6cu, 0x00002034u, + 0x000700f5u, 0x0000003cu, 0x0000bd4au, 0x00009f9fu, 0x0000665fu, 0x0000bd52u, 0x00002034u, 0x000700f5u, + 0x00000008u, 0x0000bd2fu, 0x00009e0cu, 0x0000665fu, 0x0000bd37u, 0x00002034u, 0x000700f5u, 0x00000008u, + 0x0000bd14u, 0x00009c79u, 0x0000665fu, 0x0000bd1cu, 0x00002034u, 0x000700f5u, 0x0000003cu, 0x0000bcecu, + 0x00009ae3u, 0x0000665fu, 0x0000bcf4u, 0x00002034u, 0x000700f5u, 0x0000003cu, 0x0000bcc5u, 0x0000995cu, + 0x0000665fu, 0x0000bccdu, 0x00002034u, 0x000700f5u, 0x00000008u, 0x0000bc9du, 0x000097d6u, 0x0000665fu, + 0x0000bca5u, 0x00002034u, 0x000700f5u, 0x00000008u, 0x0000bc75u, 0x00009650u, 0x0000665fu, 0x0000bc7du, + 0x00002034u, 0x000700f5u, 0x00000008u, 0x0000bc04u, 0x0000bc05u, 0x0000665fu, 0x0000bc0cu, 0x00002034u, + 0x000700f5u, 0x00000008u, 0x0000bbc6u, 0x0000bbc7u, 0x0000665fu, 0x0000bbceu, 0x00002034u, 0x000700f5u, + 0x0000003cu, 0x0000bb88u, 0x0000905cu, 0x0000665fu, 0x0000bb90u, 0x00002034u, 0x000700f5u, 0x00000009u, + 0x0000bb7bu, 0x0000a472u, 0x0000665fu, 0x0000bb7eu, 0x00002034u, 0x000700f5u, 0x0000005du, 0x0000a912u, + 0x0000a7a7u, 0x0000665fu, 0x0000a91au, 0x00002034u, 0x000700f5u, 0x0000005du, 0x0000a78cu, 0x0000a78eu, + 0x0000665fu, 0x0000a790u, 0x00002034u, 0x000200f9u, 0x00002022u, 0x000200f8u, 0x00002022u, 0x000700f5u, + 0x0000003cu, 0x0000bd63u, 0x0000a133u, 0x00002476u, 0x0000bd64u, 0x00002028u, 0x000700f5u, 0x0000003cu, + 0x0000bd49u, 0x00009f9fu, 0x00002476u, 0x0000bd4au, 0x00002028u, 0x000700f5u, 0x00000008u, 0x0000bd2eu, + 0x00009e0cu, 0x00002476u, 0x0000bd2fu, 0x00002028u, 0x000700f5u, 0x00000008u, 0x0000bd13u, 0x00009c79u, + 0x00002476u, 0x0000bd14u, 0x00002028u, 0x000700f5u, 0x0000003cu, 0x0000bcebu, 0x00009ae3u, 0x00002476u, + 0x0000bcecu, 0x00002028u, 0x000700f5u, 0x0000003cu, 0x0000bcc4u, 0x0000995cu, 0x00002476u, 0x0000bcc5u, + 0x00002028u, 0x000700f5u, 0x00000008u, 0x0000bc9cu, 0x000097d6u, 0x00002476u, 0x0000bc9du, 0x00002028u, + 0x000700f5u, 0x00000008u, 0x0000bc74u, 0x00009650u, 0x00002476u, 0x0000bc75u, 0x00002028u, 0x000700f5u, + 0x00000008u, 0x0000bc03u, 0x00009339u, 0x00002476u, 0x0000bc04u, 0x00002028u, 0x000700f5u, 0x00000008u, + 0x0000bbc5u, 0x000091cdu, 0x00002476u, 0x0000bbc6u, 0x00002028u, 0x000700f5u, 0x0000003cu, 0x0000bb87u, + 0x0000905cu, 0x00002476u, 0x0000bb88u, 0x00002028u, 0x000700f5u, 0x00000009u, 0x0000bb7au, 0x00008eeeu, + 0x00002476u, 0x0000bb7bu, 0x00002028u, 0x000700f5u, 0x0000005du, 0x0000a7a8u, 0x0000a7a7u, 0x00002476u, + 0x0000a912u, 0x00002028u, 0x000700f5u, 0x0000005du, 0x0000a622u, 0x0000a621u, 0x00002476u, 0x0000a78cu, + 0x00002028u, 0x000200f9u, 0x00002004u, 0x000200f8u, 0x00002004u, 0x000200f9u, 0x00002001u, 0x000200f8u, + 0x00002003u, 0x000200f9u, 0x00001feau, 0x000200f8u, 0x00001feau, 0x000200f9u, 0x00001fe7u, 0x000200f8u, + 0x00001fe9u, 0x000500aeu, 0x00000880u, 0x00006c10u, 0x00001fd9u, 0x00002081u, 0x0004009au, 0x0000005du, + 0x00006c11u, 0x00006c10u, 0x000600a9u, 0x0000005du, 0x0000be11u, 0x00006c11u, 0x00000548u, 0x00007608u, + 0x000600a9u, 0x0000005du, 0x0000be12u, 0x00006c11u, 0x00000548u, 0x000075ebu, 0x000500c2u, 0x00000006u, + 0x00006c15u, 0x00001fdcu, 0x0000084bu, 0x00050050u, 0x000000a6u, 0x00006c17u, 0x00000902u, 0x00000902u, + 0x000500c7u, 0x000000a6u, 0x00006c18u, 0x00001fd9u, 0x00006c17u, 0x00050050u, 0x0000005fu, 0x00006c1au, + 0x0000084bu, 0x0000084bu, 0x000500c2u, 0x000000a6u, 0x00006c1bu, 0x00001fd9u, 0x00006c1au, 0x00050051u, + 0x00000006u, 0x00006c1du, 0x00006c18u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006c1eu, 0x00006c1du, + 0x0000090bu, 0x00050051u, 0x00000006u, 0x00006c20u, 0x00006c18u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00006c21u, 0x00006c1eu, 0x00006c20u, 0x00050051u, 0x00000006u, 0x00006c25u, 0x00006c1bu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00006c26u, 0x00006c15u, 0x00006c25u, 0x00050080u, 0x00000006u, 0x00006c27u, + 0x00001fe2u, 0x00006c26u, 0x00050051u, 0x00000006u, 0x00006c29u, 0x00006c1bu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00006c2au, 0x00006c27u, 0x00006c29u, 0x000300f7u, 0x00006cf1u, 0x00000000u, 0x000400fau, + 0x0000be12u, 0x00006c49u, 0x00006cf1u, 0x000200f8u, 0x00006c49u, 0x000300f7u, 0x00006cf0u, 0x00000000u, + 0x000d00fbu, 0x0000065cu, 0x00006cf0u, 0x00000000u, 0x00006c4au, 0x00000001u, 0x00006c60u, 0x00000002u, + 0x00006c7au, 0x00000003u, 0x00006ca8u, 0x00000004u, 0x00006cc4u, 0x000200f8u, 0x00006cc4u, 0x000500c7u, + 0x00000006u, 0x00006cc6u, 0x00006c2au, 0x000006cfu, 0x00050084u, 0x00000006u, 0x00006cc8u, 0x00006c21u, + 0x0000081bu, 0x00050080u, 0x00000006u, 0x00006ccau, 0x00006cc6u, 0x00006cc8u, 0x0004007cu, 0x0000023cu, + 0x00006cccu, 0x000075f0u, 0x00050051u, 0x00000006u, 0x00006cceu, 0x00006cccu, 0x00000000u, 0x000500c4u, + 0x00000006u, 0x00006ccfu, 0x00006cceu, 0x000006e1u, 0x00050051u, 0x00000006u, 0x00006cd1u, 0x00006cccu, + 0x00000001u, 0x000500c4u, 0x00000006u, 0x00006cd2u, 0x00006cd1u, 0x0000037cu, 0x000500c5u, 0x00000006u, + 0x00006cd3u, 0x00006ccfu, 0x00006cd2u, 0x00050051u, 0x00000006u, 0x00006cd5u, 0x00006cccu, 0x00000002u, + 0x000500c4u, 0x00000006u, 0x00006cd6u, 0x00006cd5u, 0x00000360u, 0x000500c5u, 0x00000006u, 0x00006cd7u, + 0x00006cd3u, 0x00006cd6u, 0x00050051u, 0x00000006u, 0x00006cd9u, 0x00006cccu, 0x00000003u, 0x000500c4u, + 0x00000006u, 0x00006cdau, 0x00006cd9u, 0x00000379u, 0x000500c5u, 0x00000006u, 0x00006cdbu, 0x00006cd7u, + 0x00006cdau, 0x00060041u, 0x00000270u, 0x00006cdeu, 0x000006dbu, 0x00000208u, 0x00006ccau, 0x0003003eu, + 0x00006cdeu, 0x00006cdbu, 0x00050084u, 0x00000006u, 0x00006ce0u, 0x000003c9u, 0x00006ccau, 0x00050051u, + 0x00000008u, 0x00006ce2u, 0x000075f0u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00006ce3u, 0x00006ce2u, + 0x00000217u, 0x00050084u, 0x00000008u, 0x00006ce4u, 0x00006ce3u, 0x0000021du, 0x00040071u, 0x0000022eu, + 0x00006ce5u, 0x00006ce4u, 0x00060041u, 0x0000027cu, 0x00006ce6u, 0x0000067du, 0x00000208u, 0x00006ce0u, + 0x0003003eu, 0x00006ce6u, 0x00006ce5u, 0x00050080u, 0x00000006u, 0x00006ce9u, 0x00006ce0u, 0x0000048au, + 0x00050051u, 0x00000008u, 0x00006cebu, 0x000075f0u, 0x00000003u, 0x000500c7u, 0x00000008u, 0x00006cecu, + 0x00006cebu, 0x00000217u, 0x00050084u, 0x00000008u, 0x00006cedu, 0x00006cecu, 0x0000021du, 0x00040071u, + 0x0000022eu, 0x00006ceeu, 0x00006cedu, 0x00060041u, 0x0000027cu, 0x00006cefu, 0x0000067du, 0x00000208u, + 0x00006ce9u, 0x0003003eu, 0x00006cefu, 0x00006ceeu, 0x000200f9u, 0x00006cf0u, 0x000200f8u, 0x00006ca8u, + 0x000500c7u, 0x00000006u, 0x00006caau, 0x00006c2au, 0x00000686u, 0x00050084u, 0x00000006u, 0x00006cacu, + 0x00006c21u, 0x000007fcu, 0x00050080u, 0x00000006u, 0x00006caeu, 0x00006caau, 0x00006cacu, 0x0007004fu, + 0x0000005fu, 0x00006cb0u, 0x000075f0u, 0x000075f0u, 0x00000000u, 0x00000003u, 0x0004007cu, 0x000000a6u, + 0x00006cb1u, 0x00006cb0u, 0x00050051u, 0x00000006u, 0x00006cb3u, 0x00006cb1u, 0x00000000u, 0x000500c4u, + 0x00000006u, 0x00006cb4u, 0x00006cb3u, 0x00000360u, 0x00050051u, 0x00000006u, 0x00006cb6u, 0x00006cb1u, + 0x00000001u, 0x000500c5u, 0x00000006u, 0x00006cb7u, 0x00006cb4u, 0x00006cb6u, 0x000500c6u, 0x00000006u, + 0x00006cb9u, 0x00006caeu, 0x0000048au, 0x00040071u, 0x00000230u, 0x00006cbbu, 0x00006cb7u, 0x00060041u, + 0x00000275u, 0x00006cbcu, 0x00000692u, 0x00000208u, 0x00006cb9u, 0x0003003eu, 0x00006cbcu, 0x00006cbbu, + 0x000500c7u, 0x00000006u, 0x00006cc0u, 0x00006cb6u, 0x0000048au, 0x00050084u, 0x00000006u, 0x00006cc1u, + 0x00006cc0u, 0x00000490u, 0x00040071u, 0x0000022eu, 0x00006cc2u, 0x00006cc1u, 0x00060041u, 0x0000027cu, + 0x00006cc3u, 0x0000067du, 0x00000208u, 0x00006caeu, 0x0003003eu, 0x00006cc3u, 0x00006cc2u, 0x000200f9u, + 0x00006cf0u, 0x000200f8u, 0x00006c7au, 0x000500c7u, 0x00000006u, 0x00006c7cu, 0x00006c2au, 0x00000686u, + 0x00050084u, 0x00000006u, 0x00006c7eu, 0x00006c21u, 0x000007c9u, 0x00050080u, 0x00000006u, 0x00006c80u, + 0x00006c7cu, 0x00006c7eu, 0x0004007cu, 0x0000023cu, 0x00006c82u, 0x000075f0u, 0x0008004fu, 0x00000358u, + 0x00006c84u, 0x00006c82u, 0x00006c82u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, 0x00000358u, + 0x00006c86u, 0x00006c84u, 0x0000bdbeu, 0x00050051u, 0x00000006u, 0x00006c88u, 0x00006c86u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00006c8au, 0x00006c86u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00006c8cu, + 0x00006c86u, 0x00000002u, 0x00050051u, 0x00000006u, 0x00006c8eu, 0x00006c82u, 0x00000003u, 0x000500c2u, + 0x00000006u, 0x00006c8fu, 0x00006c8eu, 0x00000739u, 0x000500c4u, 0x00000006u, 0x00006c92u, 0x00006c88u, + 0x00000360u, 0x000500c4u, 0x00000006u, 0x00006c95u, 0x00006c8au, 0x00000490u, 0x000500c5u, 0x00000006u, + 0x00006c96u, 0x00006c92u, 0x00006c95u, 0x000500c2u, 0x00000006u, 0x00006c99u, 0x00006c8cu, 0x000003c9u, + 0x000500c5u, 0x00000006u, 0x00006c9au, 0x00006c96u, 0x00006c99u, 0x000500c2u, 0x00000006u, 0x00006c9cu, + 0x00006c8fu, 0x000003c9u, 0x000500c5u, 0x00000006u, 0x00006c9du, 0x00006c9au, 0x00006c9cu, 0x000500c6u, + 0x00000006u, 0x00006c9fu, 0x00006c80u, 0x0000048au, 0x00040071u, 0x00000230u, 0x00006ca1u, 0x00006c9du, + 0x00060041u, 0x00000275u, 0x00006ca2u, 0x00000692u, 0x00000208u, 0x00006c9fu, 0x0003003eu, 0x00006ca2u, + 0x00006ca1u, 0x000500c7u, 0x00000006u, 0x00006ca5u, 0x00006c8fu, 0x00000490u, 0x00040071u, 0x0000022eu, + 0x00006ca6u, 0x00006ca5u, 0x00060041u, 0x0000027cu, 0x00006ca7u, 0x0000067du, 0x00000208u, 0x00006c80u, + 0x0003003eu, 0x00006ca7u, 0x00006ca6u, 0x000200f9u, 0x00006cf0u, 0x000200f8u, 0x00006c60u, 0x000500c7u, + 0x00000006u, 0x00006c62u, 0x00006c2au, 0x00000663u, 0x00050084u, 0x00000006u, 0x00006c64u, 0x00006c21u, + 0x00000662u, 0x00050080u, 0x00000006u, 0x00006c66u, 0x00006c62u, 0x00006c64u, 0x000500c6u, 0x00000006u, + 0x00006c68u, 0x00006c66u, 0x00000490u, 0x00050051u, 0x00000008u, 0x00006c6au, 0x000075f0u, 0x00000000u, + 0x00040071u, 0x0000022eu, 0x00006c6bu, 0x00006c6au, 0x00060041u, 0x0000027cu, 0x00006c6cu, 0x0000066eu, + 0x00000208u, 0x00006c68u, 0x0003003eu, 0x00006c6cu, 0x00006c6bu, 0x000500c7u, 0x00000006u, 0x00006c6eu, + 0x00006c66u, 0x0000048au, 0x000500abu, 0x0000005du, 0x00006c6fu, 0x00006c6eu, 0x00000379u, 0x000300f7u, + 0x00006c79u, 0x00000000u, 0x000400fau, 0x00006c6fu, 0x00006c70u, 0x00006c79u, 0x000200f8u, 0x00006c70u, + 0x000500c2u, 0x00000006u, 0x00006c72u, 0x00006c66u, 0x0000048au, 0x000500c7u, 0x00000008u, 0x00006c75u, + 0x00006c6au, 0x00000217u, 0x00050084u, 0x00000008u, 0x00006c76u, 0x00006c75u, 0x0000021du, 0x00040071u, + 0x0000022eu, 0x00006c77u, 0x00006c76u, 0x00060041u, 0x0000027cu, 0x00006c78u, 0x0000067du, 0x00000208u, + 0x00006c72u, 0x0003003eu, 0x00006c78u, 0x00006c77u, 0x000200f9u, 0x00006c79u, 0x000200f8u, 0x00006c79u, + 0x000200f9u, 0x00006cf0u, 0x000200f8u, 0x00006c4au, 0x000500c7u, 0x00000006u, 0x00006c4cu, 0x00006c2au, + 0x00000663u, 0x00050084u, 0x00000006u, 0x00006c4eu, 0x00006c21u, 0x00000662u, 0x00050080u, 0x00000006u, + 0x00006c50u, 0x00006c4cu, 0x00006c4eu, 0x000500c6u, 0x00000006u, 0x00006c52u, 0x00006c50u, 0x00000490u, + 0x00060041u, 0x0000027cu, 0x00006c54u, 0x0000066eu, 0x00000208u, 0x00006c52u, 0x0003003eu, 0x00006c54u, + 0x0000bddfu, 0x000500c7u, 0x00000006u, 0x00006c56u, 0x00006c50u, 0x0000048au, 0x000500abu, 0x0000005du, + 0x00006c57u, 0x00006c56u, 0x00000379u, 0x000300f7u, 0x00006c5fu, 0x00000000u, 0x000400fau, 0x00006c57u, + 0x00006c58u, 0x00006c5fu, 0x000200f8u, 0x00006c58u, 0x000500c2u, 0x00000006u, 0x00006c5au, 0x00006c50u, + 0x0000048au, 0x00050051u, 0x00000008u, 0x00006c5cu, 0x000075f0u, 0x00000003u, 0x00040071u, 0x0000022eu, + 0x00006c5du, 0x00006c5cu, 0x00060041u, 0x0000027cu, 0x00006c5eu, 0x0000067du, 0x00000208u, 0x00006c5au, + 0x0003003eu, 0x00006c5eu, 0x00006c5du, 0x000200f9u, 0x00006c5fu, 0x000200f8u, 0x00006c5fu, 0x000200f9u, + 0x00006cf0u, 0x000200f8u, 0x00006cf0u, 0x000f00f5u, 0x00000006u, 0x000075f5u, 0x00006c2au, 0x00006c49u, + 0x00006c50u, 0x00006c5fu, 0x00006c66u, 0x00006c79u, 0x00006c80u, 0x00006c7au, 0x00006caeu, 0x00006ca8u, + 0x00006ccau, 0x00006cc4u, 0x000200f9u, 0x00006cf1u, 0x000200f8u, 0x00006cf1u, 0x000700f5u, 0x00000006u, + 0x000075f4u, 0x00006c2au, 0x00001fe9u, 0x000075f5u, 0x00006cf0u, 0x000300f7u, 0x00006cf5u, 0x00000000u, + 0x000400fau, 0x0000084du, 0x00006cf2u, 0x00006cf5u, 0x000200f8u, 0x00006cf2u, 0x000300e1u, 0x0000048au, + 0x00000850u, 0x000300f7u, 0x00006d0au, 0x00000000u, 0x000400fau, 0x0000be12u, 0x00006cf8u, 0x00006d0au, + 0x000200f8u, 0x00006cf8u, 0x000300f7u, 0x00006d09u, 0x00000000u, 0x000d00fbu, 0x0000065cu, 0x00006d09u, + 0x00000000u, 0x00006cf9u, 0x00000001u, 0x00006cf9u, 0x00000002u, 0x00006cffu, 0x00000003u, 0x00006cffu, + 0x00000004u, 0x00006d05u, 0x000200f8u, 0x00006d05u, 0x00050080u, 0x00000006u, 0x00006d07u, 0x000075f4u, + 0x00000787u, 0x00060041u, 0x00000270u, 0x00006d08u, 0x000006dbu, 0x00000208u, 0x00006d07u, 0x0003003eu, + 0x00006d08u, 0x00000789u, 0x000200f9u, 0x00006d09u, 0x000200f8u, 0x00006cffu, 0x000500c6u, 0x00000006u, + 0x00006d01u, 0x000075f4u, 0x0000048au, 0x00050080u, 0x00000006u, 0x00006d02u, 0x00006d01u, 0x00000780u, + 0x00060041u, 0x00000275u, 0x00006d04u, 0x00000692u, 0x00000208u, 0x00006d02u, 0x0003003eu, 0x00006d04u, + 0x0000bde1u, 0x000200f9u, 0x00006d09u, 0x000200f8u, 0x00006cf9u, 0x000500c6u, 0x00000006u, 0x00006cfbu, + 0x000075f4u, 0x00000490u, 0x00050080u, 0x00000006u, 0x00006cfcu, 0x00006cfbu, 0x00000662u, 0x00060041u, + 0x0000027cu, 0x00006cfeu, 0x0000066eu, 0x00000208u, 0x00006cfcu, 0x0003003eu, 0x00006cfeu, 0x0000bde0u, + 0x000200f9u, 0x00006d09u, 0x000200f8u, 0x00006d09u, 0x000200f9u, 0x00006d0au, 0x000200f8u, 0x00006d0au, + 0x000200f9u, 0x00006cf5u, 0x000200f8u, 0x00006cf5u, 0x00050080u, 0x00000006u, 0x00006c33u, 0x00001fe5u, + 0x00006c26u, 0x00050080u, 0x00000006u, 0x00006c36u, 0x00006c33u, 0x00006c29u, 0x000300f7u, 0x00006d2eu, + 0x00000000u, 0x000400fau, 0x00000855u, 0x00006d0cu, 0x00006d2eu, 0x000200f8u, 0x00006d0cu, 0x000300f7u, + 0x00006d23u, 0x00000000u, 0x000400fau, 0x0000be11u, 0x00006d0eu, 0x00006d23u, 0x000200f8u, 0x00006d0eu, + 0x000500c7u, 0x00000006u, 0x00006d10u, 0x00006c36u, 0x00000686u, 0x00050084u, 0x00000006u, 0x00006d12u, + 0x00006c21u, 0x0000085fu, 0x00050080u, 0x00000006u, 0x00006d14u, 0x00006d10u, 0x00006d12u, 0x000500c6u, + 0x00000006u, 0x00006d16u, 0x00006d14u, 0x0000048au, 0x000500c4u, 0x00000008u, 0x00006d18u, 0x00007616u, + 0x0000021au, 0x000500c3u, 0x00000008u, 0x00006d1au, 0x00007623u, 0x0000021au, 0x000500c5u, 0x00000008u, + 0x00006d1bu, 0x00006d18u, 0x00006d1au, 0x00040071u, 0x00000230u, 0x00006d1cu, 0x00006d1bu, 0x00060041u, + 0x00000275u, 0x00006d1du, 0x00000692u, 0x00000208u, 0x00006d16u, 0x0003003eu, 0x00006d1du, 0x00006d1cu, + 0x000500c7u, 0x00000008u, 0x00006d20u, 0x00007623u, 0x0000021du, 0x00040071u, 0x0000022eu, 0x00006d21u, + 0x00006d20u, 0x00060041u, 0x0000027cu, 0x00006d22u, 0x0000067du, 0x00000208u, 0x00006d14u, 0x0003003eu, + 0x00006d22u, 0x00006d21u, 0x000200f9u, 0x00006d23u, 0x000200f8u, 0x00006d23u, 0x000700f5u, 0x00000006u, + 0x0000762du, 0x00006c36u, 0x00006d0cu, 0x00006d14u, 0x00006d0eu, 0x000300f7u, 0x00006d2du, 0x00000000u, + 0x000400fau, 0x0000084du, 0x00006d24u, 0x00006d2du, 0x000200f8u, 0x00006d24u, 0x000300e1u, 0x0000048au, + 0x00000850u, 0x000300f7u, 0x00006d2cu, 0x00000000u, 0x000400fau, 0x0000be11u, 0x00006d26u, 0x00006d2cu, + 0x000200f8u, 0x00006d26u, 0x000500c6u, 0x00000006u, 0x00006d28u, 0x0000762du, 0x0000048au, 0x00050080u, + 0x00000006u, 0x00006d29u, 0x00006d28u, 0x00000878u, 0x00060041u, 0x00000275u, 0x00006d2bu, 0x00000692u, + 0x00000208u, 0x00006d29u, 0x0003003eu, 0x00006d2bu, 0x0000bde1u, 0x000200f9u, 0x00006d2cu, 0x000200f8u, + 0x00006d2cu, 0x000200f9u, 0x00006d2du, 0x000200f8u, 0x00006d2du, 0x000200f9u, 0x00006d2eu, 0x000200f8u, + 0x00006d2eu, 0x000300f7u, 0x00006c3eu, 0x00000000u, 0x000400fau, 0x0000092eu, 0x00006c3au, 0x00006c3eu, + 0x000200f8u, 0x00006c3au, 0x000500c2u, 0x00000006u, 0x00006d37u, 0x00006c25u, 0x000003c9u, 0x00050080u, + 0x00000006u, 0x00006d39u, 0x00006c15u, 0x00000490u, 0x000500c2u, 0x00000006u, 0x00006d3au, 0x00006d39u, + 0x000003c9u, 0x00050084u, 0x00000006u, 0x00006d3bu, 0x00006d37u, 0x00006d3au, 0x000500c2u, 0x00000006u, + 0x00006d3eu, 0x00006c29u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x00006d3fu, 0x00006d3bu, 0x00006d3eu, + 0x000500c7u, 0x000000a6u, 0x00006d42u, 0x00006c1bu, 0x0000bdbfu, 0x000600a9u, 0x00000006u, 0x00006d44u, + 0x0000be12u, 0x0000048au, 0x00000379u, 0x000600a9u, 0x00000006u, 0x00006d46u, 0x0000be11u, 0x0000048au, + 0x00000379u, 0x00050084u, 0x00000006u, 0x00006d47u, 0x000003c9u, 0x00006d46u, 0x00050080u, 0x00000006u, + 0x00006d48u, 0x00006d44u, 0x00006d47u, 0x00050051u, 0x00000006u, 0x00006d4au, 0x00006d42u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00006d4cu, 0x00006d42u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006d4du, + 0x00006d4cu, 0x00000706u, 0x00050080u, 0x00000006u, 0x00006d4eu, 0x00006d4au, 0x00006d4du, 0x00050084u, + 0x00000006u, 0x00006d4fu, 0x000003c9u, 0x00006d4eu, 0x000500c4u, 0x00000006u, 0x00006d51u, 0x00006d48u, + 0x00006d4fu, 0x000200f9u, 0x00006d52u, 0x000200f8u, 0x00006d52u, 0x000700f5u, 0x0000005du, 0x0000763fu, + 0x00000563u, 0x00006c3au, 0x0000be13u, 0x00006d64u, 0x000400f6u, 0x00006d66u, 0x00006d64u, 0x00000000u, + 0x000200f9u, 0x00006d53u, 0x000200f8u, 0x00006d53u, 0x00050152u, 0x00000006u, 0x00006d55u, 0x00000490u, + 0x00006d3fu, 0x000500aau, 0x0000005du, 0x00006d57u, 0x00006d55u, 0x00006d3fu, 0x000300f7u, 0x00006d63u, + 0x00000000u, 0x000400fau, 0x00006d57u, 0x00006d58u, 0x00006d63u, 0x000200f8u, 0x00006d58u, 0x00060168u, + 0x00000006u, 0x00006d5au, 0x00000490u, 0x00000000u, 0x00006d51u, 0x0004014du, 0x0000005du, 0x00006d5bu, + 0x00000490u, 0x000300f7u, 0x00006d62u, 0x00000000u, 0x000400fau, 0x00006d5bu, 0x00006d5cu, 0x00006d62u, + 0x000200f8u, 0x00006d5cu, 0x00050080u, 0x00000006u, 0x00006d5eu, 0x000008edu, 0x00006d3fu, 0x00060041u, + 0x00000270u, 0x00006d5fu, 0x000006dbu, 0x00000208u, 0x00006d5eu, 0x000700f1u, 0x00000006u, 0x00006d61u, + 0x00006d5fu, 0x0000048au, 0x00000379u, 0x00006d5au, 0x000200f9u, 0x00006d62u, 0x000200f8u, 0x00006d62u, + 0x000200f9u, 0x00006d63u, 0x000200f8u, 0x00006d63u, 0x000600a9u, 0x0000005du, 0x0000be13u, 0x00006d57u, + 0x00000548u, 0x0000763fu, 0x000200f9u, 0x00006d64u, 0x000200f8u, 0x00006d64u, 0x000400fau, 0x0000be13u, + 0x00006d52u, 0x00006d66u, 0x000200f8u, 0x00006d66u, 0x000200f9u, 0x00006c3eu, 0x000200f8u, 0x00006c3eu, + 0x000200f9u, 0x00002069u, 0x000200f8u, 0x00002069u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, + 0x000d000bu, 0x0000c262u, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x00000016u, 0x00020011u, + 0x00000027u, 0x00020011u, 0x0000002eu, 0x00020011u, 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, + 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, + 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0007000fu, + 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00002068u, 0x00002072u, 0x00060010u, 0x00000004u, + 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, 0x00050048u, 0x00000220u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x00000220u, 0x00000001u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000220u, + 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, 0x00000220u, 0x00000003u, 0x00000023u, 0x00000030u, + 0x00050048u, 0x00000220u, 0x00000004u, 0x00000023u, 0x00000040u, 0x00050048u, 0x00000220u, 0x00000005u, + 0x00000023u, 0x00000050u, 0x00050048u, 0x00000220u, 0x00000006u, 0x00000023u, 0x00000060u, 0x00050048u, + 0x00000220u, 0x00000007u, 0x00000023u, 0x00000070u, 0x00040047u, 0x00000221u, 0x00000006u, 0x00000080u, + 0x00040048u, 0x00000222u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000222u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000222u, 0x00000002u, 0x00040047u, 0x00000224u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000224u, 0x00000021u, 0x00000001u, 0x00050048u, 0x00000246u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x00000246u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000246u, + 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000246u, 0x00000003u, 0x00000023u, 0x0000000cu, + 0x00050048u, 0x00000246u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000246u, 0x00000005u, + 0x00000023u, 0x00000014u, 0x00050048u, 0x00000246u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, + 0x00000246u, 0x00000007u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x00000246u, 0x00000008u, 0x00000023u, + 0x00000020u, 0x00050048u, 0x00000246u, 0x00000009u, 0x00000023u, 0x00000024u, 0x00050048u, 0x00000246u, + 0x0000000au, 0x00000023u, 0x00000028u, 0x00050048u, 0x00000246u, 0x0000000bu, 0x00000023u, 0x0000002cu, + 0x00050048u, 0x00000246u, 0x0000000cu, 0x00000023u, 0x0000002eu, 0x00050048u, 0x00000246u, 0x0000000du, + 0x00000023u, 0x0000002fu, 0x00050048u, 0x00000246u, 0x0000000eu, 0x00000023u, 0x00000030u, 0x00040047u, + 0x00000247u, 0x00000006u, 0x00000038u, 0x00040048u, 0x00000248u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000248u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000248u, 0x00000002u, 0x00040047u, + 0x0000024au, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000024au, 0x00000021u, 0x00000002u, 0x00050048u, + 0x00000279u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000279u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x00000279u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000279u, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000279u, 0x00000004u, 0x00000023u, 0x00000010u, + 0x00050048u, 0x00000279u, 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, 0x00000279u, 0x00000006u, + 0x00000023u, 0x00000018u, 0x00050048u, 0x00000279u, 0x00000007u, 0x00000023u, 0x0000001cu, 0x00040047u, + 0x0000027au, 0x00000006u, 0x00000020u, 0x00040048u, 0x0000027bu, 0x00000000u, 0x00000018u, 0x00050048u, + 0x0000027bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000027bu, 0x00000002u, 0x00040047u, + 0x0000027du, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000027du, 0x00000021u, 0x00000004u, 0x00050048u, + 0x00000297u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000297u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x00000297u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000297u, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000297u, 0x00000004u, 0x00000023u, 0x0000000du, + 0x00050048u, 0x00000297u, 0x00000005u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x00000297u, 0x00000006u, + 0x00000023u, 0x0000000fu, 0x00040047u, 0x00000298u, 0x00000006u, 0x00000010u, 0x00040048u, 0x00000299u, + 0x00000000u, 0x00000018u, 0x00050048u, 0x00000299u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000299u, 0x00000002u, 0x00040047u, 0x0000029bu, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000029bu, + 0x00000021u, 0x00000005u, 0x00050048u, 0x000002b3u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x000002b3u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000002b3u, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x000002b3u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000002b3u, + 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000002b3u, 0x00000005u, 0x00000023u, 0x00000014u, + 0x00050048u, 0x000002b3u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000002b3u, 0x00000007u, + 0x00000023u, 0x00000019u, 0x00050048u, 0x000002b3u, 0x00000008u, 0x00000023u, 0x0000001au, 0x00050048u, + 0x000002b3u, 0x00000009u, 0x00000023u, 0x0000001bu, 0x00050048u, 0x000002b3u, 0x0000000au, 0x00000023u, + 0x0000001cu, 0x00050048u, 0x000002b3u, 0x0000000bu, 0x00000023u, 0x0000001du, 0x00050048u, 0x000002b3u, + 0x0000000cu, 0x00000023u, 0x0000001eu, 0x00050048u, 0x000002b3u, 0x0000000du, 0x00000023u, 0x0000001fu, + 0x00040047u, 0x000002b4u, 0x00000006u, 0x00000020u, 0x00040048u, 0x000002b5u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x000002b5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002b5u, 0x00000002u, + 0x00040047u, 0x000002b7u, 0x00000022u, 0x00000001u, 0x00040047u, 0x000002b7u, 0x00000021u, 0x00000007u, + 0x00050048u, 0x000002dcu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000002dcu, 0x00000001u, + 0x00000023u, 0x00000010u, 0x00050048u, 0x000002dcu, 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, + 0x000002dcu, 0x00000003u, 0x00000023u, 0x00000028u, 0x00050048u, 0x000002dcu, 0x00000004u, 0x00000023u, + 0x00000030u, 0x00050048u, 0x000002dcu, 0x00000005u, 0x00000023u, 0x00000034u, 0x00050048u, 0x000002dcu, + 0x00000006u, 0x00000023u, 0x00000038u, 0x00050048u, 0x000002dcu, 0x00000007u, 0x00000023u, 0x0000003cu, + 0x00050048u, 0x000002dcu, 0x00000008u, 0x00000023u, 0x0000003eu, 0x00040047u, 0x000002ddu, 0x00000006u, + 0x00000040u, 0x00040048u, 0x000002deu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000002deu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x000002deu, 0x00000002u, 0x00040047u, 0x000002e0u, 0x00000022u, + 0x00000001u, 0x00040047u, 0x000002e0u, 0x00000021u, 0x00000008u, 0x00050048u, 0x000002fbu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x000002fbu, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x000002fbu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000002fbu, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00040047u, 0x000002fcu, 0x00000006u, 0x00000010u, 0x00040048u, 0x000002fdu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x000002fdu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002fdu, + 0x00000002u, 0x00040047u, 0x000002ffu, 0x00000022u, 0x00000001u, 0x00040047u, 0x000002ffu, 0x00000021u, + 0x00000009u, 0x00040047u, 0x000004f4u, 0x00000022u, 0x00000001u, 0x00040047u, 0x000004f4u, 0x00000021u, + 0x0000000au, 0x00040047u, 0x00000661u, 0x00000001u, 0x00000001u, 0x00040047u, 0x00000667u, 0x00000001u, + 0x00000000u, 0x00040047u, 0x00000670u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000671u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000671u, 0x00000002u, 0x00040047u, 0x00000673u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000673u, 0x00000021u, 0x00000000u, 0x00040047u, 0x0000067eu, 0x00000006u, + 0x00000001u, 0x00050048u, 0x0000067fu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000067fu, + 0x00000002u, 0x00040047u, 0x00000681u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000681u, 0x00000021u, + 0x00000001u, 0x00040047u, 0x00000691u, 0x00000006u, 0x00000002u, 0x00050048u, 0x00000692u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000692u, 0x00000002u, 0x00040047u, 0x00000694u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000694u, 0x00000021u, 0x00000000u, 0x00040047u, 0x000006d9u, 0x00000006u, + 0x00000004u, 0x00050048u, 0x000006dau, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000006dau, + 0x00000002u, 0x00040047u, 0x000006dcu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000006dcu, 0x00000021u, + 0x00000000u, 0x00040047u, 0x0000084cu, 0x00000001u, 0x00000007u, 0x00040047u, 0x00000858u, 0x00000001u, + 0x00000002u, 0x00040047u, 0x00000a1au, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000a1bu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x00000a1bu, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x00000a1bu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, 0x00000a1cu, 0x00000006u, 0x00000010u, + 0x00040048u, 0x00000a1du, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000a1du, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000a1du, 0x00000002u, 0x00040047u, 0x00000a1fu, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000a1fu, 0x00000021u, 0x00000006u, 0x00050048u, 0x00000cd6u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x00000cd6u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000cd6u, + 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000cd6u, 0x00000003u, 0x00000023u, 0x0000000cu, + 0x00050048u, 0x00000cd7u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000cd7u, 0x00000002u, + 0x00040047u, 0x00000cd9u, 0x00000022u, 0x00000002u, 0x00040047u, 0x00000cd9u, 0x00000021u, 0x00000000u, + 0x00040047u, 0x00000e8au, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000e8bu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00040047u, 0x00000e8cu, 0x00000006u, 0x00001000u, 0x00040048u, 0x00000e8du, 0x00000000u, + 0x00000018u, 0x00050048u, 0x00000e8du, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000e8du, + 0x00000002u, 0x00040047u, 0x00000e8fu, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000e8fu, 0x00000021u, + 0x00000002u, 0x00040047u, 0x00000f57u, 0x00000006u, 0x00000002u, 0x00050048u, 0x00000f58u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00040047u, 0x00000f59u, 0x00000006u, 0x00001000u, 0x00040048u, 0x00000f5au, + 0x00000000u, 0x00000018u, 0x00050048u, 0x00000f5au, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000f5au, 0x00000002u, 0x00040047u, 0x00000f5cu, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000f5cu, + 0x00000021u, 0x00000002u, 0x00050048u, 0x00001d0cu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x00001d0cu, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00001d0cu, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x00001d0cu, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00001d0cu, + 0x00000004u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x00001d0cu, 0x00000005u, 0x00000023u, 0x00000010u, + 0x00050048u, 0x00001d0cu, 0x00000006u, 0x00000023u, 0x00000014u, 0x00050048u, 0x00001d0cu, 0x00000007u, + 0x00000023u, 0x00000018u, 0x00050048u, 0x00001d0cu, 0x00000008u, 0x00000023u, 0x0000001cu, 0x00050048u, + 0x00001d0cu, 0x00000009u, 0x00000023u, 0x0000001eu, 0x00050048u, 0x00001d0cu, 0x0000000au, 0x00000023u, + 0x0000001fu, 0x00040047u, 0x00001d0du, 0x00000006u, 0x00000020u, 0x00040048u, 0x00001d0eu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x00001d0eu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00001d0eu, + 0x00000002u, 0x00040047u, 0x00001d10u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00001d10u, 0x00000021u, + 0x00000000u, 0x00040047u, 0x00002068u, 0x0000000bu, 0x0000001cu, 0x00040047u, 0x00002072u, 0x0000000bu, + 0x0000001au, 0x00040047u, 0x0000207bu, 0x00000001u, 0x00000006u, 0x00040047u, 0x0000207cu, 0x00000001u, + 0x00000003u, 0x00040047u, 0x0000207du, 0x00000001u, 0x00000004u, 0x00040047u, 0x0000207eu, 0x0000000bu, + 0x00000019u, 0x00040047u, 0x00002086u, 0x00000001u, 0x00000005u, 0x00040047u, 0x0000208au, 0x00000006u, + 0x00000004u, 0x00040048u, 0x0000208bu, 0x00000000u, 0x00000018u, 0x00050048u, 0x0000208bu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x0000208bu, 0x00000002u, 0x00040047u, 0x0000208du, 0x00000022u, + 0x00000001u, 0x00040047u, 0x0000208du, 0x00000021u, 0x0000000cu, 0x00050048u, 0x00002091u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x00002091u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x00002091u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00002091u, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00050048u, 0x00002091u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00030047u, 0x00002091u, + 0x00000002u, 0x00040047u, 0x000020beu, 0x00000006u, 0x00000004u, 0x00040048u, 0x000020bfu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x000020bfu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000020bfu, + 0x00000002u, 0x00040047u, 0x000020c1u, 0x00000022u, 0x00000001u, 0x00040047u, 0x000020c1u, 0x00000021u, + 0x0000000bu, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, + 0x00000020u, 0x00000000u, 0x00040015u, 0x00000008u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000009u, + 0x00000008u, 0x00000004u, 0x00040015u, 0x0000000fu, 0x00000008u, 0x00000000u, 0x00040017u, 0x00000010u, + 0x0000000fu, 0x00000004u, 0x00040015u, 0x00000011u, 0x00000010u, 0x00000000u, 0x00040015u, 0x00000012u, + 0x00000010u, 0x00000001u, 0x00040017u, 0x00000013u, 0x00000012u, 0x00000004u, 0x00040017u, 0x00000028u, + 0x00000011u, 0x00000004u, 0x00040017u, 0x00000044u, 0x00000008u, 0x00000003u, 0x00040017u, 0x00000047u, + 0x0000000fu, 0x00000003u, 0x00020014u, 0x00000069u, 0x00040017u, 0x0000006bu, 0x0000000fu, 0x00000002u, + 0x00040020u, 0x0000007bu, 0x00000007u, 0x0000000fu, 0x00040017u, 0x000000b4u, 0x00000006u, 0x00000002u, + 0x00040017u, 0x000000f2u, 0x00000008u, 0x00000002u, 0x00040017u, 0x000001b1u, 0x00000012u, 0x00000002u, + 0x00040020u, 0x000001b2u, 0x00000007u, 0x000001b1u, 0x0004002bu, 0x00000011u, 0x0000021fu, 0x00000000u, + 0x000a001eu, 0x00000220u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, + 0x00000009u, 0x00000009u, 0x0003001du, 0x00000221u, 0x00000220u, 0x0003001eu, 0x00000222u, 0x00000221u, + 0x00040020u, 0x00000223u, 0x0000000cu, 0x00000222u, 0x0004003bu, 0x00000223u, 0x00000224u, 0x0000000cu, + 0x0004002bu, 0x00000008u, 0x00000225u, 0x00000000u, 0x00040020u, 0x00000227u, 0x0000000cu, 0x00000220u, + 0x0004002bu, 0x00000008u, 0x0000022fu, 0x00000001u, 0x0004002bu, 0x00000008u, 0x00000232u, 0x00000002u, + 0x0004002bu, 0x00000008u, 0x00000235u, 0x00000003u, 0x0004002bu, 0x00000008u, 0x00000238u, 0x00000004u, + 0x0004002bu, 0x00000008u, 0x0000023bu, 0x00000005u, 0x0004002bu, 0x00000008u, 0x0000023eu, 0x00000006u, + 0x0004002bu, 0x00000008u, 0x00000241u, 0x00000007u, 0x0011001eu, 0x00000246u, 0x00000010u, 0x00000010u, + 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, + 0x00000006u, 0x00000011u, 0x0000000fu, 0x0000000fu, 0x00000013u, 0x0003001du, 0x00000247u, 0x00000246u, + 0x0003001eu, 0x00000248u, 0x00000247u, 0x00040020u, 0x00000249u, 0x0000000cu, 0x00000248u, 0x0004003bu, + 0x00000249u, 0x0000024au, 0x0000000cu, 0x00040020u, 0x0000024cu, 0x0000000cu, 0x00000246u, 0x0004002bu, + 0x00000008u, 0x00000262u, 0x00000008u, 0x0004002bu, 0x00000008u, 0x00000265u, 0x00000009u, 0x0004002bu, + 0x00000008u, 0x00000268u, 0x0000000au, 0x0004002bu, 0x00000008u, 0x0000026bu, 0x0000000bu, 0x0004002bu, + 0x00000008u, 0x0000026eu, 0x0000000cu, 0x0004002bu, 0x00000008u, 0x00000271u, 0x0000000du, 0x0004002bu, + 0x00000008u, 0x00000274u, 0x0000000eu, 0x000a001eu, 0x00000279u, 0x00000010u, 0x00000010u, 0x00000010u, + 0x00000010u, 0x00000006u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, 0x0000027au, 0x00000279u, + 0x0003001eu, 0x0000027bu, 0x0000027au, 0x00040020u, 0x0000027cu, 0x0000000cu, 0x0000027bu, 0x0004003bu, + 0x0000027cu, 0x0000027du, 0x0000000cu, 0x00040020u, 0x0000027fu, 0x0000000cu, 0x00000279u, 0x0009001eu, + 0x00000297u, 0x00000010u, 0x00000010u, 0x00000006u, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, + 0x0003001du, 0x00000298u, 0x00000297u, 0x0003001eu, 0x00000299u, 0x00000298u, 0x00040020u, 0x0000029au, + 0x0000000cu, 0x00000299u, 0x0004003bu, 0x0000029au, 0x0000029bu, 0x0000000cu, 0x00040020u, 0x0000029du, + 0x0000000cu, 0x00000297u, 0x0010001eu, 0x000002b3u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00000006u, 0x00000006u, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, + 0x0000000fu, 0x0000000fu, 0x0003001du, 0x000002b4u, 0x000002b3u, 0x0003001eu, 0x000002b5u, 0x000002b4u, + 0x00040020u, 0x000002b6u, 0x0000000cu, 0x000002b5u, 0x0004003bu, 0x000002b6u, 0x000002b7u, 0x0000000cu, + 0x00040020u, 0x000002b9u, 0x0000000cu, 0x000002b3u, 0x000b001eu, 0x000002dcu, 0x00000009u, 0x00000009u, + 0x00000028u, 0x00000028u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000012u, 0x00000011u, 0x0003001du, + 0x000002ddu, 0x000002dcu, 0x0003001eu, 0x000002deu, 0x000002ddu, 0x00040020u, 0x000002dfu, 0x0000000cu, + 0x000002deu, 0x0004003bu, 0x000002dfu, 0x000002e0u, 0x0000000cu, 0x00040020u, 0x000002e2u, 0x0000000cu, + 0x000002dcu, 0x0006001eu, 0x000002fbu, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, + 0x000002fcu, 0x000002fbu, 0x0003001eu, 0x000002fdu, 0x000002fcu, 0x00040020u, 0x000002feu, 0x0000000cu, + 0x000002fdu, 0x0004003bu, 0x000002feu, 0x000002ffu, 0x0000000cu, 0x00040020u, 0x00000301u, 0x0000000cu, + 0x000002fbu, 0x00040017u, 0x00000311u, 0x00000006u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x00000319u, + 0x00000008u, 0x0004002bu, 0x00000006u, 0x0000031fu, 0x41c64e6du, 0x0004002bu, 0x00000006u, 0x00000332u, + 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000335u, 0x00000010u, 0x0004002bu, 0x00000011u, 0x00000339u, + 0x00000007u, 0x0004002bu, 0x00000011u, 0x0000033bu, 0x00000006u, 0x0004002bu, 0x00000011u, 0x0000033du, + 0x00000020u, 0x0004002bu, 0x00000011u, 0x00000349u, 0x000001ffu, 0x0004002bu, 0x00000011u, 0x00000350u, + 0x000000ffu, 0x0006002cu, 0x00000044u, 0x00000358u, 0x00000225u, 0x00000235u, 0x0000023eu, 0x0004002bu, + 0x00000008u, 0x0000035eu, 0x000000f8u, 0x0004002bu, 0x00000008u, 0x00000363u, 0x000000ffu, 0x0006002cu, + 0x00000044u, 0x00000364u, 0x00000363u, 0x00000363u, 0x00000363u, 0x0004002bu, 0x00000008u, 0x00000366u, + 0x000000f7u, 0x0006002cu, 0x00000044u, 0x00000367u, 0x00000366u, 0x00000366u, 0x00000366u, 0x00040017u, + 0x00000368u, 0x00000069u, 0x00000003u, 0x0004002bu, 0x00000008u, 0x00000371u, 0x0000001fu, 0x00040015u, + 0x00000380u, 0x00000008u, 0x00000001u, 0x00040017u, 0x00000381u, 0x00000380u, 0x00000003u, 0x0004001cu, + 0x0000038au, 0x0000000fu, 0x00000335u, 0x0004002bu, 0x00000006u, 0x0000038bu, 0x00000002u, 0x0004001cu, + 0x0000038cu, 0x0000038au, 0x0000038bu, 0x0004002bu, 0x0000000fu, 0x0000038du, 0x00000000u, 0x0004002bu, + 0x0000000fu, 0x0000038eu, 0x00000006u, 0x0004002bu, 0x0000000fu, 0x0000038fu, 0x00000001u, 0x0004002bu, + 0x0000000fu, 0x00000390u, 0x00000007u, 0x0004002bu, 0x0000000fu, 0x00000391u, 0x00000004u, 0x0004002bu, + 0x0000000fu, 0x00000392u, 0x00000002u, 0x0004002bu, 0x0000000fu, 0x00000393u, 0x00000005u, 0x0004002bu, + 0x0000000fu, 0x00000394u, 0x00000003u, 0x0013002cu, 0x0000038au, 0x00000395u, 0x0000038du, 0x0000038eu, + 0x0000038fu, 0x00000390u, 0x00000391u, 0x00000392u, 0x00000393u, 0x00000394u, 0x00000394u, 0x00000393u, + 0x00000392u, 0x00000391u, 0x00000390u, 0x0000038fu, 0x0000038eu, 0x0000038du, 0x0013002cu, 0x0000038au, + 0x00000396u, 0x0000038du, 0x00000391u, 0x0000038fu, 0x00000393u, 0x00000391u, 0x0000038du, 0x00000393u, + 0x0000038fu, 0x00000394u, 0x00000390u, 0x00000392u, 0x0000038eu, 0x00000390u, 0x00000394u, 0x0000038eu, + 0x00000392u, 0x0005002cu, 0x0000038cu, 0x00000397u, 0x00000395u, 0x00000396u, 0x00040020u, 0x0000039fu, + 0x00000007u, 0x0000038cu, 0x0004002bu, 0x00000008u, 0x000003a5u, 0x00000049u, 0x0004002bu, 0x00000008u, + 0x000003dfu, 0x000007ffu, 0x0004002bu, 0x00000008u, 0x000003e6u, 0x00040000u, 0x0004002bu, 0x00000008u, + 0x000003f2u, 0x0003ffffu, 0x0004002bu, 0x00000008u, 0x000003f7u, 0x00000011u, 0x0004002bu, 0x00000006u, + 0x00000461u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x00000469u, 0x00000003u, 0x0004002bu, 0x0000000fu, + 0x00000474u, 0x000000ffu, 0x0004002bu, 0x0000000fu, 0x000004b4u, 0x0000003cu, 0x00040017u, 0x000004bbu, + 0x00000012u, 0x00000003u, 0x00040017u, 0x000004bfu, 0x00000011u, 0x00000003u, 0x0004002bu, 0x00000012u, + 0x000004cdu, 0x00000001u, 0x0004002bu, 0x00000012u, 0x000004d9u, 0x00000005u, 0x0004002bu, 0x00000012u, + 0x000004eau, 0x00000002u, 0x0004002bu, 0x00000012u, 0x000004eeu, 0x000007ffu, 0x00090019u, 0x000004f2u, + 0x00000006u, 0x00000005u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, + 0x000004f3u, 0x00000000u, 0x000004f2u, 0x0004003bu, 0x000004f3u, 0x000004f4u, 0x00000000u, 0x00040017u, + 0x000004fcu, 0x00000006u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x00000538u, 0x0000000fu, 0x0003002au, + 0x00000069u, 0x0000053bu, 0x0004002bu, 0x00000008u, 0x00000553u, 0x00008000u, 0x0004002bu, 0x00000008u, + 0x00000559u, 0x00000010u, 0x00030029u, 0x00000069u, 0x0000055eu, 0x0004002bu, 0x00000008u, 0x0000055fu, + 0x0000ffffu, 0x0004002bu, 0x00000011u, 0x000005f6u, 0x00000004u, 0x0004002bu, 0x00000011u, 0x000005f7u, + 0x00000002u, 0x0007002cu, 0x00000028u, 0x000005f8u, 0x0000021fu, 0x000005f6u, 0x000005f7u, 0x0000033bu, + 0x0004002bu, 0x00000011u, 0x000005fcu, 0x00000003u, 0x00040017u, 0x00000600u, 0x00000069u, 0x00000004u, + 0x0007002cu, 0x00000010u, 0x00000618u, 0x0000038du, 0x0000038du, 0x0000038du, 0x0000038du, 0x0007002cu, + 0x00000010u, 0x00000619u, 0x0000038fu, 0x0000038fu, 0x0000038fu, 0x0000038fu, 0x0004002bu, 0x0000000fu, + 0x00000626u, 0x00000008u, 0x0007002cu, 0x00000010u, 0x00000627u, 0x0000038fu, 0x00000392u, 0x00000391u, + 0x00000626u, 0x0004002bu, 0x0000000fu, 0x0000062au, 0x00000010u, 0x0004002bu, 0x0000000fu, 0x0000062bu, + 0x00000020u, 0x0004002bu, 0x0000000fu, 0x0000062cu, 0x00000040u, 0x0004002bu, 0x0000000fu, 0x0000062du, + 0x00000080u, 0x0007002cu, 0x00000010u, 0x0000062eu, 0x0000062au, 0x0000062bu, 0x0000062cu, 0x0000062du, + 0x00040032u, 0x00000008u, 0x00000661u, 0x00000000u, 0x00040032u, 0x00000006u, 0x00000667u, 0x00000000u, + 0x00060034u, 0x00000006u, 0x00000668u, 0x00000082u, 0x00000667u, 0x00000461u, 0x0003001du, 0x00000670u, + 0x0000000fu, 0x0003001eu, 0x00000671u, 0x00000670u, 0x00040020u, 0x00000672u, 0x0000000cu, 0x00000671u, + 0x0004003bu, 0x00000672u, 0x00000673u, 0x0000000cu, 0x00040020u, 0x00000676u, 0x0000000cu, 0x0000000fu, + 0x0003001du, 0x0000067eu, 0x0000000fu, 0x0003001eu, 0x0000067fu, 0x0000067eu, 0x00040020u, 0x00000680u, + 0x0000000cu, 0x0000067fu, 0x0004003bu, 0x00000680u, 0x00000681u, 0x0000000cu, 0x00060034u, 0x00000006u, + 0x00000688u, 0x000000c2u, 0x00000668u, 0x00000461u, 0x00060034u, 0x00000006u, 0x0000068cu, 0x000000c2u, + 0x00000667u, 0x0000022fu, 0x0003001du, 0x00000691u, 0x00000011u, 0x0003001eu, 0x00000692u, 0x00000691u, + 0x00040020u, 0x00000693u, 0x0000000cu, 0x00000692u, 0x0004003bu, 0x00000693u, 0x00000694u, 0x0000000cu, + 0x00040020u, 0x00000697u, 0x0000000cu, 0x00000011u, 0x0004002bu, 0x00000006u, 0x000006a3u, 0x000000f8u, + 0x00060034u, 0x00000006u, 0x000006b9u, 0x000000c2u, 0x00000667u, 0x0000022fu, 0x0004002bu, 0x00000006u, + 0x000006c8u, 0x000000ffu, 0x00060034u, 0x00000006u, 0x000006d0u, 0x000000c2u, 0x00000668u, 0x0000038bu, + 0x00060034u, 0x00000006u, 0x000006d4u, 0x000000c2u, 0x00000667u, 0x00000232u, 0x0003001du, 0x000006d9u, + 0x00000006u, 0x0003001eu, 0x000006dau, 0x000006d9u, 0x00040020u, 0x000006dbu, 0x0000000cu, 0x000006dau, + 0x0004003bu, 0x000006dbu, 0x000006dcu, 0x0000000cu, 0x00040020u, 0x000006deu, 0x0000000cu, 0x00000006u, + 0x0004002bu, 0x00000006u, 0x000006e3u, 0x00000018u, 0x0007002cu, 0x000004fcu, 0x000006e4u, 0x000006e3u, + 0x00000335u, 0x00000319u, 0x00000332u, 0x0007002cu, 0x000004fcu, 0x000006e6u, 0x000006c8u, 0x000006c8u, + 0x000006c8u, 0x000006c8u, 0x0004002bu, 0x00000006u, 0x000006fcu, 0x00000006u, 0x0004002bu, 0x00000006u, + 0x00000709u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x00000736u, 0x0000000au, 0x0004002bu, 0x00000006u, + 0x0000073cu, 0x00000005u, 0x0004002bu, 0x00000006u, 0x00000747u, 0x00000007u, 0x00060034u, 0x00000006u, + 0x0000075eu, 0x000000c2u, 0x00000667u, 0x0000022fu, 0x00060034u, 0x00000006u, 0x0000077fu, 0x000000c2u, + 0x00000667u, 0x00000461u, 0x0004002bu, 0x00000011u, 0x00000781u, 0x0000ffffu, 0x00060034u, 0x00000006u, + 0x00000785u, 0x000000c2u, 0x00000667u, 0x0000038bu, 0x0004002bu, 0x00000006u, 0x00000787u, 0xffffffffu, + 0x00060034u, 0x00000006u, 0x000007c7u, 0x000000c2u, 0x00000667u, 0x0000022fu, 0x00060034u, 0x00000006u, + 0x000007fau, 0x000000c2u, 0x00000667u, 0x0000022fu, 0x00060034u, 0x00000006u, 0x00000819u, 0x000000c2u, + 0x00000667u, 0x00000232u, 0x00040032u, 0x00000008u, 0x0000084cu, 0x00000000u, 0x00060034u, 0x00000008u, + 0x0000084du, 0x000000c7u, 0x0000084cu, 0x0000022fu, 0x00060034u, 0x00000069u, 0x0000084eu, 0x000000abu, + 0x0000084du, 0x00000225u, 0x00060034u, 0x00000008u, 0x0000084fu, 0x000000c3u, 0x0000084cu, 0x0000022fu, + 0x00060034u, 0x00000069u, 0x00000850u, 0x000000aau, 0x0000084fu, 0x00000225u, 0x00060034u, 0x00000069u, + 0x00000851u, 0x000000a7u, 0x0000084eu, 0x00000850u, 0x0004002bu, 0x00000006u, 0x00000854u, 0x00000048u, + 0x00030031u, 0x00000069u, 0x00000858u, 0x00050034u, 0x00000069u, 0x00000859u, 0x000000a8u, 0x00000858u, + 0x00060034u, 0x00000006u, 0x00000863u, 0x000000c2u, 0x00000667u, 0x0000022fu, 0x00060034u, 0x00000006u, + 0x0000087du, 0x000000c2u, 0x00000667u, 0x00000461u, 0x00040017u, 0x00000884u, 0x00000069u, 0x00000002u, + 0x00060034u, 0x00000008u, 0x0000088bu, 0x000000c4u, 0x0000022fu, 0x0000084fu, 0x00060034u, 0x00000008u, + 0x0000088cu, 0x00000082u, 0x0000088bu, 0x0000022fu, 0x00060034u, 0x00000006u, 0x0000088du, 0x00000080u, + 0x0000088cu, 0x00000332u, 0x00060034u, 0x00000006u, 0x00000896u, 0x00000080u, 0x0000088bu, 0x00000332u, + 0x00060034u, 0x00000008u, 0x000008e1u, 0x00000084u, 0x0000088bu, 0x0000088bu, 0x00060034u, 0x00000006u, + 0x000008e2u, 0x00000080u, 0x000008e1u, 0x00000332u, 0x00060034u, 0x00000006u, 0x000008e3u, 0x000000c2u, + 0x00000667u, 0x00000232u, 0x00060034u, 0x00000006u, 0x000008e4u, 0x00000084u, 0x000008e2u, 0x000008e3u, + 0x00060034u, 0x00000008u, 0x000008f7u, 0x00000082u, 0x0000088bu, 0x0000022fu, 0x00060034u, 0x00000006u, + 0x000008f8u, 0x00000080u, 0x000008f7u, 0x00000332u, 0x00060034u, 0x00000006u, 0x00000901u, 0x00000080u, + 0x0000088bu, 0x00000332u, 0x00060034u, 0x00000069u, 0x00000923u, 0x000000abu, 0x0000084fu, 0x00000225u, + 0x00060034u, 0x00000069u, 0x00000924u, 0x000000a7u, 0x0000084eu, 0x00000923u, 0x0004002bu, 0x0000000fu, + 0x00000933u, 0x000000e0u, 0x0006002cu, 0x00000047u, 0x0000093eu, 0x0000038du, 0x0000038du, 0x0000038du, + 0x0004002bu, 0x0000000fu, 0x00000945u, 0x000000f8u, 0x00060034u, 0x00000069u, 0x00000958u, 0x000000aau, + 0x00000661u, 0x00000225u, 0x0004002bu, 0x00000006u, 0x00000981u, 0x000000e0u, 0x0004002bu, 0x00000006u, + 0x000009dcu, 0x0000ffffu, 0x0004002bu, 0x00000008u, 0x00000a0cu, 0x000001ffu, 0x0004001cu, 0x00000a1au, + 0x0000000fu, 0x00000319u, 0x0005001eu, 0x00000a1bu, 0x00000010u, 0x00000010u, 0x00000a1au, 0x0003001du, + 0x00000a1cu, 0x00000a1bu, 0x0003001eu, 0x00000a1du, 0x00000a1cu, 0x00040020u, 0x00000a1eu, 0x0000000cu, + 0x00000a1du, 0x0004003bu, 0x00000a1eu, 0x00000a1fu, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000a43u, + 0x00000020u, 0x0004002bu, 0x00000006u, 0x00000a49u, 0x00000040u, 0x0004002bu, 0x00000006u, 0x00000a4fu, + 0x00000080u, 0x0004002bu, 0x00000006u, 0x00000a55u, 0x00000100u, 0x0004002bu, 0x00000008u, 0x00000b03u, + 0x00000080u, 0x0007002cu, 0x00000009u, 0x00000b0du, 0x00000225u, 0x00000225u, 0x00000225u, 0x00000225u, + 0x0007002cu, 0x00000009u, 0x00000b0eu, 0x00000363u, 0x00000363u, 0x00000363u, 0x00000363u, 0x00040017u, + 0x00000b17u, 0x00000380u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x00000b23u, 0x00020000u, 0x0004002bu, + 0x00000008u, 0x00000b39u, 0x00003fffu, 0x0004001cu, 0x00000b3fu, 0x000001b1u, 0x00000a49u, 0x0004002bu, + 0x00000012u, 0x00000b40u, 0x00004000u, 0x0004002bu, 0x00000012u, 0x00000b41u, 0xfffffc10u, 0x0005002cu, + 0x000001b1u, 0x00000b42u, 0x00000b40u, 0x00000b41u, 0x0004002bu, 0x00000012u, 0x00000b43u, 0x00003f04u, + 0x0004002bu, 0x00000012u, 0x00000b44u, 0xfffffc30u, 0x0005002cu, 0x000001b1u, 0x00000b45u, 0x00000b43u, + 0x00000b44u, 0x0004002bu, 0x00000012u, 0x00000b46u, 0x00003e10u, 0x0004002bu, 0x00000012u, 0x00000b47u, + 0xfffffc48u, 0x0005002cu, 0x000001b1u, 0x00000b48u, 0x00000b46u, 0x00000b47u, 0x0004002bu, 0x00000012u, + 0x00000b49u, 0x00003d22u, 0x0004002bu, 0x00000012u, 0x00000b4au, 0xfffffc68u, 0x0005002cu, 0x000001b1u, + 0x00000b4bu, 0x00000b49u, 0x00000b4au, 0x0004002bu, 0x00000012u, 0x00000b4cu, 0x00003c3cu, 0x0004002bu, + 0x00000012u, 0x00000b4du, 0xfffffc84u, 0x0005002cu, 0x000001b1u, 0x00000b4eu, 0x00000b4cu, 0x00000b4du, + 0x0004002bu, 0x00000012u, 0x00000b4fu, 0x00003b5du, 0x0004002bu, 0x00000012u, 0x00000b50u, 0xfffffc98u, + 0x0005002cu, 0x000001b1u, 0x00000b51u, 0x00000b4fu, 0x00000b50u, 0x0004002bu, 0x00000012u, 0x00000b52u, + 0x00003a83u, 0x0004002bu, 0x00000012u, 0x00000b53u, 0xfffffcb8u, 0x0005002cu, 0x000001b1u, 0x00000b54u, + 0x00000b52u, 0x00000b53u, 0x0004002bu, 0x00000012u, 0x00000b55u, 0x000039b1u, 0x0004002bu, 0x00000012u, + 0x00000b56u, 0xfffffcccu, 0x0005002cu, 0x000001b1u, 0x00000b57u, 0x00000b55u, 0x00000b56u, 0x0004002bu, + 0x00000012u, 0x00000b58u, 0x000038e4u, 0x0004002bu, 0x00000012u, 0x00000b59u, 0xfffffce0u, 0x0005002cu, + 0x000001b1u, 0x00000b5au, 0x00000b58u, 0x00000b59u, 0x0004002bu, 0x00000012u, 0x00000b5bu, 0x0000381cu, + 0x0004002bu, 0x00000012u, 0x00000b5cu, 0xfffffcf8u, 0x0005002cu, 0x000001b1u, 0x00000b5du, 0x00000b5bu, + 0x00000b5cu, 0x0004002bu, 0x00000012u, 0x00000b5eu, 0x0000375au, 0x0004002bu, 0x00000012u, 0x00000b5fu, + 0xfffffd0cu, 0x0005002cu, 0x000001b1u, 0x00000b60u, 0x00000b5eu, 0x00000b5fu, 0x0004002bu, 0x00000012u, + 0x00000b61u, 0x0000369du, 0x0004002bu, 0x00000012u, 0x00000b62u, 0xfffffd20u, 0x0005002cu, 0x000001b1u, + 0x00000b63u, 0x00000b61u, 0x00000b62u, 0x0004002bu, 0x00000012u, 0x00000b64u, 0x000035e5u, 0x0004002bu, + 0x00000012u, 0x00000b65u, 0xfffffd34u, 0x0005002cu, 0x000001b1u, 0x00000b66u, 0x00000b64u, 0x00000b65u, + 0x0004002bu, 0x00000012u, 0x00000b67u, 0x00003532u, 0x0004002bu, 0x00000012u, 0x00000b68u, 0xfffffd44u, + 0x0005002cu, 0x000001b1u, 0x00000b69u, 0x00000b67u, 0x00000b68u, 0x0004002bu, 0x00000012u, 0x00000b6au, + 0x00003483u, 0x0004002bu, 0x00000012u, 0x00000b6bu, 0xfffffd58u, 0x0005002cu, 0x000001b1u, 0x00000b6cu, + 0x00000b6au, 0x00000b6bu, 0x0004002bu, 0x00000012u, 0x00000b6du, 0x000033d9u, 0x0004002bu, 0x00000012u, + 0x00000b6eu, 0xfffffd68u, 0x0005002cu, 0x000001b1u, 0x00000b6fu, 0x00000b6du, 0x00000b6eu, 0x0004002bu, + 0x00000012u, 0x00000b70u, 0x00003333u, 0x0004002bu, 0x00000012u, 0x00000b71u, 0xfffffd78u, 0x0005002cu, + 0x000001b1u, 0x00000b72u, 0x00000b70u, 0x00000b71u, 0x0004002bu, 0x00000012u, 0x00000b73u, 0x00003291u, + 0x0004002bu, 0x00000012u, 0x00000b74u, 0xfffffd8cu, 0x0005002cu, 0x000001b1u, 0x00000b75u, 0x00000b73u, + 0x00000b74u, 0x0004002bu, 0x00000012u, 0x00000b76u, 0x000031f4u, 0x0004002bu, 0x00000012u, 0x00000b77u, + 0xfffffd94u, 0x0005002cu, 0x000001b1u, 0x00000b78u, 0x00000b76u, 0x00000b77u, 0x0004002bu, 0x00000012u, + 0x00000b79u, 0x00003159u, 0x0004002bu, 0x00000012u, 0x00000b7au, 0xfffffda8u, 0x0005002cu, 0x000001b1u, + 0x00000b7bu, 0x00000b79u, 0x00000b7au, 0x0004002bu, 0x00000012u, 0x00000b7cu, 0x000030c3u, 0x0004002bu, + 0x00000012u, 0x00000b7du, 0xfffffdb4u, 0x0005002cu, 0x000001b1u, 0x00000b7eu, 0x00000b7cu, 0x00000b7du, + 0x0004002bu, 0x00000012u, 0x00000b7fu, 0x00003030u, 0x0004002bu, 0x00000012u, 0x00000b80u, 0xfffffdc4u, + 0x0005002cu, 0x000001b1u, 0x00000b81u, 0x00000b7fu, 0x00000b80u, 0x0004002bu, 0x00000012u, 0x00000b82u, + 0x00002fa1u, 0x0004002bu, 0x00000012u, 0x00000b83u, 0xfffffdd0u, 0x0005002cu, 0x000001b1u, 0x00000b84u, + 0x00000b82u, 0x00000b83u, 0x0004002bu, 0x00000012u, 0x00000b85u, 0x00002f15u, 0x0004002bu, 0x00000012u, + 0x00000b86u, 0xfffffddcu, 0x0005002cu, 0x000001b1u, 0x00000b87u, 0x00000b85u, 0x00000b86u, 0x0004002bu, + 0x00000012u, 0x00000b88u, 0x00002e8cu, 0x0004002bu, 0x00000012u, 0x00000b89u, 0xfffffde8u, 0x0005002cu, + 0x000001b1u, 0x00000b8au, 0x00000b88u, 0x00000b89u, 0x0004002bu, 0x00000012u, 0x00000b8bu, 0x00002e06u, + 0x0004002bu, 0x00000012u, 0x00000b8cu, 0xfffffdf4u, 0x0005002cu, 0x000001b1u, 0x00000b8du, 0x00000b8bu, + 0x00000b8cu, 0x0004002bu, 0x00000012u, 0x00000b8eu, 0x00002d83u, 0x0004002bu, 0x00000012u, 0x00000b8fu, + 0xfffffe00u, 0x0005002cu, 0x000001b1u, 0x00000b90u, 0x00000b8eu, 0x00000b8fu, 0x0004002bu, 0x00000012u, + 0x00000b91u, 0x00002d03u, 0x0004002bu, 0x00000012u, 0x00000b92u, 0xfffffe0cu, 0x0005002cu, 0x000001b1u, + 0x00000b93u, 0x00000b91u, 0x00000b92u, 0x0004002bu, 0x00000012u, 0x00000b94u, 0x00002c86u, 0x0004002bu, + 0x00000012u, 0x00000b95u, 0xfffffe14u, 0x0005002cu, 0x000001b1u, 0x00000b96u, 0x00000b94u, 0x00000b95u, + 0x0004002bu, 0x00000012u, 0x00000b97u, 0x00002c0bu, 0x0004002bu, 0x00000012u, 0x00000b98u, 0xfffffe20u, + 0x0005002cu, 0x000001b1u, 0x00000b99u, 0x00000b97u, 0x00000b98u, 0x0004002bu, 0x00000012u, 0x00000b9au, + 0x00002b93u, 0x0004002bu, 0x00000012u, 0x00000b9bu, 0xfffffe2cu, 0x0005002cu, 0x000001b1u, 0x00000b9cu, + 0x00000b9au, 0x00000b9bu, 0x0004002bu, 0x00000012u, 0x00000b9du, 0x00002b1eu, 0x0004002bu, 0x00000012u, + 0x00000b9eu, 0xfffffe34u, 0x0005002cu, 0x000001b1u, 0x00000b9fu, 0x00000b9du, 0x00000b9eu, 0x0004002bu, + 0x00000012u, 0x00000ba0u, 0x00002aabu, 0x0004002bu, 0x00000012u, 0x00000ba1u, 0xfffffe3cu, 0x0005002cu, + 0x000001b1u, 0x00000ba2u, 0x00000ba0u, 0x00000ba1u, 0x0004002bu, 0x00000012u, 0x00000ba3u, 0x00002a3au, + 0x0004002bu, 0x00000012u, 0x00000ba4u, 0xfffffe48u, 0x0005002cu, 0x000001b1u, 0x00000ba5u, 0x00000ba3u, + 0x00000ba4u, 0x0004002bu, 0x00000012u, 0x00000ba6u, 0x000029ccu, 0x0004002bu, 0x00000012u, 0x00000ba7u, + 0xfffffe50u, 0x0005002cu, 0x000001b1u, 0x00000ba8u, 0x00000ba6u, 0x00000ba7u, 0x0004002bu, 0x00000012u, + 0x00000ba9u, 0x00002960u, 0x0004002bu, 0x00000012u, 0x00000baau, 0xfffffe58u, 0x0005002cu, 0x000001b1u, + 0x00000babu, 0x00000ba9u, 0x00000baau, 0x0004002bu, 0x00000012u, 0x00000bacu, 0x000028f6u, 0x0004002bu, + 0x00000012u, 0x00000badu, 0xfffffe60u, 0x0005002cu, 0x000001b1u, 0x00000baeu, 0x00000bacu, 0x00000badu, + 0x0004002bu, 0x00000012u, 0x00000bafu, 0x0000288eu, 0x0004002bu, 0x00000012u, 0x00000bb0u, 0xfffffe68u, + 0x0005002cu, 0x000001b1u, 0x00000bb1u, 0x00000bafu, 0x00000bb0u, 0x0004002bu, 0x00000012u, 0x00000bb2u, + 0x00002828u, 0x0004002bu, 0x00000012u, 0x00000bb3u, 0xfffffe70u, 0x0005002cu, 0x000001b1u, 0x00000bb4u, + 0x00000bb2u, 0x00000bb3u, 0x0004002bu, 0x00000012u, 0x00000bb5u, 0x000027c4u, 0x0004002bu, 0x00000012u, + 0x00000bb6u, 0xfffffe78u, 0x0005002cu, 0x000001b1u, 0x00000bb7u, 0x00000bb5u, 0x00000bb6u, 0x0004002bu, + 0x00000012u, 0x00000bb8u, 0x00002762u, 0x0004002bu, 0x00000012u, 0x00000bb9u, 0xfffffe80u, 0x0005002cu, + 0x000001b1u, 0x00000bbau, 0x00000bb8u, 0x00000bb9u, 0x0004002bu, 0x00000012u, 0x00000bbbu, 0x00002702u, + 0x0004002bu, 0x00000012u, 0x00000bbcu, 0xfffffe88u, 0x0005002cu, 0x000001b1u, 0x00000bbdu, 0x00000bbbu, + 0x00000bbcu, 0x0004002bu, 0x00000012u, 0x00000bbeu, 0x000026a4u, 0x0004002bu, 0x00000012u, 0x00000bbfu, + 0xfffffe90u, 0x0005002cu, 0x000001b1u, 0x00000bc0u, 0x00000bbeu, 0x00000bbfu, 0x0004002bu, 0x00000012u, + 0x00000bc1u, 0x00002648u, 0x0004002bu, 0x00000012u, 0x00000bc2u, 0xfffffe94u, 0x0005002cu, 0x000001b1u, + 0x00000bc3u, 0x00000bc1u, 0x00000bc2u, 0x0004002bu, 0x00000012u, 0x00000bc4u, 0x000025edu, 0x0004002bu, + 0x00000012u, 0x00000bc5u, 0xfffffe9cu, 0x0005002cu, 0x000001b1u, 0x00000bc6u, 0x00000bc4u, 0x00000bc5u, + 0x0004002bu, 0x00000012u, 0x00000bc7u, 0x00002594u, 0x0004002bu, 0x00000012u, 0x00000bc8u, 0xfffffea4u, + 0x0005002cu, 0x000001b1u, 0x00000bc9u, 0x00000bc7u, 0x00000bc8u, 0x0004002bu, 0x00000012u, 0x00000bcau, + 0x0000253du, 0x0004002bu, 0x00000012u, 0x00000bcbu, 0xfffffea8u, 0x0005002cu, 0x000001b1u, 0x00000bccu, + 0x00000bcau, 0x00000bcbu, 0x0004002bu, 0x00000012u, 0x00000bcdu, 0x000024e7u, 0x0004002bu, 0x00000012u, + 0x00000bceu, 0xfffffeacu, 0x0005002cu, 0x000001b1u, 0x00000bcfu, 0x00000bcdu, 0x00000bceu, 0x0004002bu, + 0x00000012u, 0x00000bd0u, 0x00002492u, 0x0004002bu, 0x00000012u, 0x00000bd1u, 0xfffffeb4u, 0x0005002cu, + 0x000001b1u, 0x00000bd2u, 0x00000bd0u, 0x00000bd1u, 0x0004002bu, 0x00000012u, 0x00000bd3u, 0x0000243fu, + 0x0004002bu, 0x00000012u, 0x00000bd4u, 0xfffffebcu, 0x0005002cu, 0x000001b1u, 0x00000bd5u, 0x00000bd3u, + 0x00000bd4u, 0x0004002bu, 0x00000012u, 0x00000bd6u, 0x000023eeu, 0x0004002bu, 0x00000012u, 0x00000bd7u, + 0xfffffec0u, 0x0005002cu, 0x000001b1u, 0x00000bd8u, 0x00000bd6u, 0x00000bd7u, 0x0004002bu, 0x00000012u, + 0x00000bd9u, 0x0000239eu, 0x0004002bu, 0x00000012u, 0x00000bdau, 0xfffffec4u, 0x0005002cu, 0x000001b1u, + 0x00000bdbu, 0x00000bd9u, 0x00000bdau, 0x0004002bu, 0x00000012u, 0x00000bdcu, 0x0000234fu, 0x0004002bu, + 0x00000012u, 0x00000bddu, 0xfffffeccu, 0x0005002cu, 0x000001b1u, 0x00000bdeu, 0x00000bdcu, 0x00000bddu, + 0x0004002bu, 0x00000012u, 0x00000bdfu, 0x00002302u, 0x0004002bu, 0x00000012u, 0x00000be0u, 0xfffffed0u, + 0x0005002cu, 0x000001b1u, 0x00000be1u, 0x00000bdfu, 0x00000be0u, 0x0004002bu, 0x00000012u, 0x00000be2u, + 0x000022b6u, 0x0004002bu, 0x00000012u, 0x00000be3u, 0xfffffed8u, 0x0005002cu, 0x000001b1u, 0x00000be4u, + 0x00000be2u, 0x00000be3u, 0x0004002bu, 0x00000012u, 0x00000be5u, 0x0000226cu, 0x0005002cu, 0x000001b1u, + 0x00000be6u, 0x00000be5u, 0x00000be3u, 0x0004002bu, 0x00000012u, 0x00000be7u, 0x00002222u, 0x0004002bu, + 0x00000012u, 0x00000be8u, 0xfffffee0u, 0x0005002cu, 0x000001b1u, 0x00000be9u, 0x00000be7u, 0x00000be8u, + 0x0004002bu, 0x00000012u, 0x00000beau, 0x000021dau, 0x0004002bu, 0x00000012u, 0x00000bebu, 0xfffffee4u, + 0x0005002cu, 0x000001b1u, 0x00000becu, 0x00000beau, 0x00000bebu, 0x0004002bu, 0x00000012u, 0x00000bedu, + 0x00002193u, 0x0004002bu, 0x00000012u, 0x00000beeu, 0xfffffee8u, 0x0005002cu, 0x000001b1u, 0x00000befu, + 0x00000bedu, 0x00000beeu, 0x0004002bu, 0x00000012u, 0x00000bf0u, 0x0000214du, 0x0004002bu, 0x00000012u, + 0x00000bf1u, 0xfffffeecu, 0x0005002cu, 0x000001b1u, 0x00000bf2u, 0x00000bf0u, 0x00000bf1u, 0x0004002bu, + 0x00000012u, 0x00000bf3u, 0x00002108u, 0x0004002bu, 0x00000012u, 0x00000bf4u, 0xfffffef4u, 0x0005002cu, + 0x000001b1u, 0x00000bf5u, 0x00000bf3u, 0x00000bf4u, 0x0004002bu, 0x00000012u, 0x00000bf6u, 0x000020c5u, + 0x0005002cu, 0x000001b1u, 0x00000bf7u, 0x00000bf6u, 0x00000bf4u, 0x0004002bu, 0x00000012u, 0x00000bf8u, + 0x00002082u, 0x0004002bu, 0x00000012u, 0x00000bf9u, 0xfffffefcu, 0x0005002cu, 0x000001b1u, 0x00000bfau, + 0x00000bf8u, 0x00000bf9u, 0x0004002bu, 0x00000012u, 0x00000bfbu, 0x00002041u, 0x0005002cu, 0x000001b1u, + 0x00000bfcu, 0x00000bfbu, 0x00000bf9u, 0x0043002cu, 0x00000b3fu, 0x00000bfdu, 0x00000b42u, 0x00000b45u, + 0x00000b48u, 0x00000b4bu, 0x00000b4eu, 0x00000b51u, 0x00000b54u, 0x00000b57u, 0x00000b5au, 0x00000b5du, + 0x00000b60u, 0x00000b63u, 0x00000b66u, 0x00000b69u, 0x00000b6cu, 0x00000b6fu, 0x00000b72u, 0x00000b75u, + 0x00000b78u, 0x00000b7bu, 0x00000b7eu, 0x00000b81u, 0x00000b84u, 0x00000b87u, 0x00000b8au, 0x00000b8du, + 0x00000b90u, 0x00000b93u, 0x00000b96u, 0x00000b99u, 0x00000b9cu, 0x00000b9fu, 0x00000ba2u, 0x00000ba5u, + 0x00000ba8u, 0x00000babu, 0x00000baeu, 0x00000bb1u, 0x00000bb4u, 0x00000bb7u, 0x00000bbau, 0x00000bbdu, + 0x00000bc0u, 0x00000bc3u, 0x00000bc6u, 0x00000bc9u, 0x00000bccu, 0x00000bcfu, 0x00000bd2u, 0x00000bd5u, + 0x00000bd8u, 0x00000bdbu, 0x00000bdeu, 0x00000be1u, 0x00000be4u, 0x00000be6u, 0x00000be9u, 0x00000becu, + 0x00000befu, 0x00000bf2u, 0x00000bf5u, 0x00000bf7u, 0x00000bfau, 0x00000bfcu, 0x00040020u, 0x00000c00u, + 0x00000007u, 0x00000b3fu, 0x0004002bu, 0x00000008u, 0x00000c1du, 0x00007fffu, 0x0004002bu, 0x00000008u, + 0x00000c2fu, 0x3fffffffu, 0x0004002bu, 0x00000008u, 0x00000c30u, 0x20000000u, 0x0005002cu, 0x000000f2u, + 0x00000c49u, 0x00000225u, 0x00000225u, 0x0004002bu, 0x00000008u, 0x00000c62u, 0xffff8000u, 0x0005002cu, + 0x000000f2u, 0x00000c7cu, 0x00000c1du, 0x00000c1du, 0x0004002bu, 0x00000008u, 0x00000c7eu, 0xffff0000u, + 0x0005002cu, 0x000000f2u, 0x00000c7fu, 0x00000c7eu, 0x00000c7eu, 0x0005002cu, 0x000000f2u, 0x00000c80u, + 0x0000055fu, 0x0000055fu, 0x0004002bu, 0x00000008u, 0x00000c85u, 0xffffffe0u, 0x00060034u, 0x00000008u, + 0x00000ca3u, 0x00000080u, 0x00000232u, 0x0000084fu, 0x00050034u, 0x00000012u, 0x00000ca4u, 0x00000072u, + 0x00000ca3u, 0x00060034u, 0x00000008u, 0x00000cb9u, 0x00000080u, 0x00000238u, 0x0000084fu, 0x00050034u, + 0x00000012u, 0x00000cbau, 0x00000072u, 0x00000cb9u, 0x0006001eu, 0x00000cd6u, 0x00000008u, 0x00000008u, + 0x00000008u, 0x00000006u, 0x0003001eu, 0x00000cd7u, 0x00000cd6u, 0x00040020u, 0x00000cd8u, 0x00000002u, + 0x00000cd7u, 0x0004003bu, 0x00000cd8u, 0x00000cd9u, 0x00000002u, 0x00040020u, 0x00000cdau, 0x00000002u, + 0x00000008u, 0x0004002bu, 0x00000008u, 0x00000ce7u, 0xffffffffu, 0x00060034u, 0x00000069u, 0x00000d46u, + 0x000000adu, 0x0000088bu, 0x0000022fu, 0x00060034u, 0x00000008u, 0x00000d9cu, 0x00000082u, 0x0000088bu, + 0x0000022fu, 0x00060034u, 0x00000008u, 0x00000db0u, 0x00000080u, 0x00000232u, 0x0000084fu, 0x00060034u, + 0x00000008u, 0x00000dc0u, 0x00000080u, 0x0000023bu, 0x0000084fu, 0x0005002cu, 0x000000f2u, 0x00000de9u, + 0x00000225u, 0x0000022fu, 0x0004002bu, 0x00000006u, 0x00000e35u, 0x0000000bu, 0x0006002cu, 0x00000311u, + 0x00000e36u, 0x00000e35u, 0x000006fcu, 0x00000461u, 0x0004002bu, 0x00000006u, 0x00000e38u, 0x0000001fu, + 0x0004002bu, 0x00000006u, 0x00000e75u, 0x00000fffu, 0x0004002bu, 0x00000006u, 0x00000e89u, 0x00001000u, + 0x0004001cu, 0x00000e8au, 0x0000000fu, 0x00000e89u, 0x0003001eu, 0x00000e8bu, 0x00000e8au, 0x0003001du, + 0x00000e8cu, 0x00000e8bu, 0x0003001eu, 0x00000e8du, 0x00000e8cu, 0x00040020u, 0x00000e8eu, 0x0000000cu, + 0x00000e8du, 0x0004003bu, 0x00000e8eu, 0x00000e8fu, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000e98u, + 0x0000000fu, 0x0004002bu, 0x00000006u, 0x00000ed0u, 0x0000000eu, 0x0004002bu, 0x00000006u, 0x00000f2du, + 0x000007ffu, 0x0004002bu, 0x00000006u, 0x00000f56u, 0x00000800u, 0x0004001cu, 0x00000f57u, 0x00000011u, + 0x00000f56u, 0x0003001eu, 0x00000f58u, 0x00000f57u, 0x0003001du, 0x00000f59u, 0x00000f58u, 0x0003001eu, + 0x00000f5au, 0x00000f59u, 0x00040020u, 0x00000f5bu, 0x0000000cu, 0x00000f5au, 0x0004003bu, 0x00000f5bu, + 0x00000f5cu, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000f5eu, 0x00000400u, 0x0004002bu, 0x00000006u, + 0x00000ffeu, 0xfffffffcu, 0x0004002bu, 0x00000011u, 0x000010b3u, 0x00000008u, 0x0004002bu, 0x00000012u, + 0x000010bfu, 0x00000080u, 0x0004002bu, 0x00000008u, 0x0000115fu, 0x00000020u, 0x0004002bu, 0x00000008u, + 0x00001176u, 0x000003ffu, 0x0004002bu, 0x00000006u, 0x000011e9u, 0x00001fffu, 0x0004002bu, 0x00000006u, + 0x00001295u, 0x0000000cu, 0x0004002bu, 0x00000008u, 0x000012bau, 0x00000400u, 0x0004002bu, 0x00000012u, + 0x00001342u, 0x00000010u, 0x0004002bu, 0x00000008u, 0x000013f3u, 0xffffff01u, 0x0005002cu, 0x000000f2u, + 0x000013ffu, 0x00000559u, 0x00000559u, 0x0004002bu, 0x00000012u, 0x000019f1u, 0x000000ffu, 0x0004002bu, + 0x00000008u, 0x00001a10u, 0x00004000u, 0x0004002bu, 0x00000008u, 0x00001a2cu, 0xffffff00u, 0x0004002bu, + 0x00000008u, 0x00001ac7u, 0x00000100u, 0x0006002cu, 0x00000044u, 0x00001ac8u, 0x00001ac7u, 0x00001ac7u, + 0x00001ac7u, 0x00060034u, 0x00000008u, 0x00001d04u, 0x00000082u, 0x0000088bu, 0x0000022fu, 0x000d001eu, + 0x00001d0cu, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000012u, 0x00000012u, 0x00000008u, 0x00000008u, + 0x00000008u, 0x00000012u, 0x0000000fu, 0x0000000fu, 0x0003001du, 0x00001d0du, 0x00001d0cu, 0x0003001eu, + 0x00001d0eu, 0x00001d0du, 0x00040020u, 0x00001d0fu, 0x0000000cu, 0x00001d0eu, 0x0004003bu, 0x00001d0fu, + 0x00001d10u, 0x0000000cu, 0x00060034u, 0x00000069u, 0x00001d15u, 0x000000adu, 0x0000088bu, 0x0000022fu, + 0x00060034u, 0x00000008u, 0x00001d1du, 0x00000082u, 0x0000088bu, 0x0000022fu, 0x00050034u, 0x00000008u, + 0x00001d1eu, 0x000000c8u, 0x00001d1du, 0x00060034u, 0x00000008u, 0x00001d21u, 0x00000082u, 0x0000088bu, + 0x0000022fu, 0x00050034u, 0x00000008u, 0x00001d22u, 0x000000c8u, 0x00001d21u, 0x00040020u, 0x00001d43u, + 0x0000000cu, 0x00000010u, 0x0004002bu, 0x00000006u, 0x00001d6du, 0x00004000u, 0x0004002bu, 0x00000006u, + 0x00001d7eu, 0x00000200u, 0x0004002bu, 0x00000006u, 0x00001d9bu, 0x00002000u, 0x0004002bu, 0x00000006u, + 0x00001da0u, 0x00008000u, 0x0004002bu, 0x00000006u, 0x00001da5u, 0x00010000u, 0x0004002bu, 0x00000006u, + 0x00001daau, 0x00020000u, 0x0004002bu, 0x00000006u, 0x00001dafu, 0x00040000u, 0x0004002bu, 0x00000006u, + 0x00001db4u, 0x00080000u, 0x0004002bu, 0x00000006u, 0x00001db9u, 0x00200000u, 0x0004002bu, 0x00000006u, + 0x00001dbeu, 0x00100000u, 0x0004002bu, 0x00000006u, 0x00001dc3u, 0x00400000u, 0x0004002bu, 0x00000006u, + 0x00001dc8u, 0x00800000u, 0x0004002bu, 0x00000006u, 0x00001dcdu, 0x01000000u, 0x0004002bu, 0x00000006u, + 0x00001dd1u, 0x10000000u, 0x00040020u, 0x00001ddbu, 0x00000002u, 0x00000006u, 0x00060034u, 0x00000069u, + 0x00001e8au, 0x000000adu, 0x0000088bu, 0x0000022fu, 0x00040020u, 0x00001f43u, 0x0000000cu, 0x00000009u, + 0x0004002bu, 0x00000006u, 0x00001feau, 0x02000000u, 0x00040020u, 0x00002067u, 0x00000001u, 0x00000311u, + 0x0004003bu, 0x00002067u, 0x00002068u, 0x00000001u, 0x00040020u, 0x00002069u, 0x00000001u, 0x00000006u, + 0x0004003bu, 0x00002067u, 0x00002072u, 0x00000001u, 0x00040032u, 0x00000008u, 0x0000207bu, 0x00000400u, + 0x00040032u, 0x00000006u, 0x0000207cu, 0x00000001u, 0x00040032u, 0x00000006u, 0x0000207du, 0x00000001u, + 0x00060033u, 0x00000311u, 0x0000207eu, 0x0000207cu, 0x0000207du, 0x00000461u, 0x00060034u, 0x00000006u, + 0x0000207fu, 0x00000051u, 0x0000207eu, 0x00000000u, 0x00060034u, 0x00000008u, 0x00002080u, 0x00000080u, + 0x0000207fu, 0x00000332u, 0x00060034u, 0x00000008u, 0x00002081u, 0x00000087u, 0x0000207bu, 0x00002080u, + 0x00040032u, 0x00000008u, 0x00002086u, 0x00000100u, 0x00060034u, 0x00000008u, 0x00002087u, 0x00000087u, + 0x00002086u, 0x0000115fu, 0x0003001du, 0x0000208au, 0x00000006u, 0x0003001eu, 0x0000208bu, 0x0000208au, + 0x00040020u, 0x0000208cu, 0x0000000cu, 0x0000208bu, 0x0004003bu, 0x0000208cu, 0x0000208du, 0x0000000cu, + 0x0007001eu, 0x00002091u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00040020u, + 0x00002092u, 0x00000009u, 0x00002091u, 0x0004003bu, 0x00002092u, 0x00002093u, 0x00000009u, 0x00040020u, + 0x00002094u, 0x00000009u, 0x00000006u, 0x0003001du, 0x000020beu, 0x00000006u, 0x0003001eu, 0x000020bfu, + 0x000020beu, 0x00040020u, 0x000020c0u, 0x0000000cu, 0x000020bfu, 0x0004003bu, 0x000020c0u, 0x000020c1u, + 0x0000000cu, 0x0004002bu, 0x00000008u, 0x000020edu, 0x00000040u, 0x00030001u, 0x00000010u, 0x00007a39u, + 0x00030001u, 0x00000011u, 0x00007a5fu, 0x00030001u, 0x0000000fu, 0x00007a6cu, 0x00030001u, 0x00000044u, + 0x00007a9cu, 0x00030001u, 0x000000f2u, 0x00007b2fu, 0x00030001u, 0x00000013u, 0x00007c46u, 0x00030001u, + 0x00000012u, 0x00008ab1u, 0x00030001u, 0x00000008u, 0x0000908au, 0x00030001u, 0x00000047u, 0x000094a8u, + 0x00030001u, 0x00000006u, 0x0000a753u, 0x0006002cu, 0x00000311u, 0x0000c209u, 0x000006a3u, 0x000006a3u, + 0x000006a3u, 0x0005002cu, 0x000000b4u, 0x0000c20au, 0x00000469u, 0x00000469u, 0x0006002cu, 0x00000311u, + 0x0000c20bu, 0x00000319u, 0x00000319u, 0x00000319u, 0x0006002cu, 0x00000311u, 0x0000c20cu, 0x0000031fu, + 0x0000031fu, 0x0000031fu, 0x0006002cu, 0x00000044u, 0x0000c20du, 0x00000c85u, 0x00000c85u, 0x00000c85u, + 0x0006002cu, 0x00000044u, 0x0000c20eu, 0x00000559u, 0x00000559u, 0x00000559u, 0x0007002cu, 0x00000009u, + 0x0000c20fu, 0x00000c85u, 0x00000c85u, 0x00000c85u, 0x00000c85u, 0x0007002cu, 0x00000009u, 0x0000c210u, + 0x00000274u, 0x00000274u, 0x00000274u, 0x00000274u, 0x0007002cu, 0x00000009u, 0x0000c211u, 0x00000b03u, + 0x00000b03u, 0x00000b03u, 0x00000b03u, 0x0005002cu, 0x000000f2u, 0x0000c212u, 0x0000022fu, 0x0000022fu, + 0x0006002cu, 0x00000044u, 0x0000c213u, 0x00000c62u, 0x00000c62u, 0x00000c62u, 0x0005002cu, 0x000000f2u, + 0x0000c214u, 0x0000023bu, 0x0000023bu, 0x0005002cu, 0x000000f2u, 0x0000c215u, 0x00000371u, 0x00000371u, + 0x0005002cu, 0x000000b4u, 0x0000c216u, 0x000011e9u, 0x000011e9u, 0x0005002cu, 0x000000b4u, 0x0000c217u, + 0x0000038bu, 0x0000038bu, 0x0006002cu, 0x00000311u, 0x0000c218u, 0x00000e38u, 0x00000e38u, 0x00000e38u, + 0x0006002cu, 0x00000311u, 0x0000c219u, 0x00000469u, 0x00000469u, 0x00000469u, 0x0006002cu, 0x00000311u, + 0x0000c21au, 0x0000038bu, 0x0000038bu, 0x0000038bu, 0x0007002cu, 0x00000013u, 0x0000c21bu, 0x000004eau, + 0x000004eau, 0x000004eau, 0x000004eau, 0x0007002cu, 0x00000009u, 0x0000c21cu, 0x00000262u, 0x00000262u, + 0x00000262u, 0x00000262u, 0x0005002cu, 0x000001b1u, 0x0000c21du, 0x000004eau, 0x000004eau, 0x0005002cu, + 0x000000f2u, 0x0000c21eu, 0x0000115fu, 0x0000115fu, 0x0005002cu, 0x000001b1u, 0x0000c21fu, 0x00001342u, + 0x00001342u, 0x0005002cu, 0x000001b1u, 0x0000c220u, 0x000004d9u, 0x000004d9u, 0x0007002cu, 0x00000013u, + 0x0000c221u, 0x00001342u, 0x00001342u, 0x00001342u, 0x00001342u, 0x0007002cu, 0x00000013u, 0x0000c222u, + 0x000004d9u, 0x000004d9u, 0x000004d9u, 0x000004d9u, 0x0005002cu, 0x000000f2u, 0x0000c223u, 0x0000023eu, + 0x0000023eu, 0x0005002cu, 0x000000f2u, 0x0000c224u, 0x00000b03u, 0x00000b03u, 0x0006002cu, 0x00000047u, + 0x0000c225u, 0x00000945u, 0x00000945u, 0x00000945u, 0x0006002cu, 0x00000044u, 0x0000c226u, 0x00000241u, + 0x00000241u, 0x00000241u, 0x0006002cu, 0x00000044u, 0x0000c227u, 0x0000035eu, 0x0000035eu, 0x0000035eu, + 0x0006002cu, 0x00000044u, 0x0000c228u, 0x00000262u, 0x00000262u, 0x00000262u, 0x0006002cu, 0x00000044u, + 0x0000c229u, 0x00000371u, 0x00000371u, 0x00000371u, 0x0006002cu, 0x000004bbu, 0x0000c22bu, 0x000004d9u, + 0x000004d9u, 0x000004d9u, 0x0006002cu, 0x00000047u, 0x0000c22cu, 0x00000474u, 0x00000474u, 0x00000474u, + 0x0006002cu, 0x000004bbu, 0x0000c22du, 0x000004eau, 0x000004eau, 0x000004eau, 0x0006002cu, 0x000004bbu, + 0x0000c22eu, 0x000004eeu, 0x000004eeu, 0x000004eeu, 0x0006002cu, 0x00000044u, 0x0000c232u, 0x00000225u, + 0x00000225u, 0x00000225u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, + 0x00000005u, 0x0004003bu, 0x0000039fu, 0x00006321u, 0x00000007u, 0x0004003bu, 0x0000039fu, 0x00006323u, + 0x00000007u, 0x0004003bu, 0x00000c00u, 0x000048efu, 0x00000007u, 0x0004003bu, 0x00000c00u, 0x00004843u, + 0x00000007u, 0x0004003bu, 0x00000c00u, 0x00002d41u, 0x00000007u, 0x0004003bu, 0x00000c00u, 0x00002cbbu, + 0x00000007u, 0x0004003bu, 0x00000c00u, 0x00002c35u, 0x00000007u, 0x0004003bu, 0x00000c00u, 0x0000265fu, + 0x00000007u, 0x000300f7u, 0x00002134u, 0x00000000u, 0x000300fbu, 0x00000332u, 0x00002135u, 0x000200f8u, + 0x00002135u, 0x00050041u, 0x00002069u, 0x0000206au, 0x00002068u, 0x00000332u, 0x0004003du, 0x00000006u, + 0x0000206bu, 0x0000206au, 0x0004007cu, 0x00000008u, 0x0000206cu, 0x0000206bu, 0x00050041u, 0x00002069u, + 0x0000206eu, 0x00002068u, 0x00000461u, 0x0004003du, 0x00000006u, 0x0000206fu, 0x0000206eu, 0x0004007cu, + 0x00000008u, 0x00002070u, 0x0000206fu, 0x0004003du, 0x00000311u, 0x00002073u, 0x00002072u, 0x0007004fu, + 0x000000b4u, 0x00002074u, 0x00002073u, 0x00002073u, 0x00000000u, 0x00000001u, 0x0004007cu, 0x000000f2u, + 0x00002075u, 0x00002074u, 0x00050051u, 0x00000008u, 0x00002078u, 0x00002075u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x0000207au, 0x00002075u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00002082u, 0x0000207au, + 0x00002081u, 0x00050080u, 0x00000008u, 0x00002083u, 0x00002078u, 0x00002082u, 0x00050084u, 0x00000008u, + 0x00002088u, 0x00002083u, 0x00002087u, 0x00060041u, 0x000006deu, 0x0000208fu, 0x0000208du, 0x00000225u, + 0x00002083u, 0x0004003du, 0x00000006u, 0x00002090u, 0x0000208fu, 0x00050041u, 0x00002094u, 0x00002095u, + 0x00002093u, 0x00000238u, 0x0004003du, 0x00000006u, 0x00002096u, 0x00002095u, 0x000500c7u, 0x00000006u, + 0x00002097u, 0x00002090u, 0x00002096u, 0x000500aau, 0x00000069u, 0x00002099u, 0x00002097u, 0x00000332u, + 0x000300f7u, 0x0000209bu, 0x00000000u, 0x000400fau, 0x00002099u, 0x0000209au, 0x0000209bu, 0x000200f8u, + 0x0000209au, 0x000200f9u, 0x00002134u, 0x000200f8u, 0x0000209bu, 0x0004003du, 0x00000311u, 0x0000209eu, + 0x00002068u, 0x0007004fu, 0x000000b4u, 0x0000209fu, 0x0000209eu, 0x0000209eu, 0x00000000u, 0x00000001u, + 0x00050041u, 0x00002094u, 0x000020a1u, 0x00002093u, 0x00000232u, 0x0004003du, 0x00000006u, 0x000020a2u, + 0x000020a1u, 0x00050041u, 0x00002094u, 0x000020a4u, 0x00002093u, 0x00000235u, 0x0004003du, 0x00000006u, + 0x000020a5u, 0x000020a4u, 0x00050041u, 0x00002094u, 0x000020a7u, 0x00002093u, 0x00000225u, 0x0004003du, + 0x00000006u, 0x000020a8u, 0x000020a7u, 0x00050041u, 0x00002094u, 0x000020aau, 0x00002093u, 0x0000022fu, + 0x0004003du, 0x00000006u, 0x000020abu, 0x000020aau, 0x00050050u, 0x000000b4u, 0x0000214cu, 0x000020a2u, + 0x000020a5u, 0x000500b0u, 0x00000884u, 0x0000214du, 0x0000209fu, 0x0000214cu, 0x0004009bu, 0x00000069u, + 0x0000214eu, 0x0000214du, 0x000300f7u, 0x00002177u, 0x00000000u, 0x000400fau, 0x0000214eu, 0x0000214fu, + 0x00002177u, 0x000200f8u, 0x0000214fu, 0x00050050u, 0x000000b4u, 0x00002151u, 0x0000088du, 0x0000088du, + 0x000500c7u, 0x000000b4u, 0x00002152u, 0x0000209fu, 0x00002151u, 0x00050050u, 0x000000f2u, 0x00002154u, + 0x0000084fu, 0x0000084fu, 0x000500c2u, 0x000000b4u, 0x00002155u, 0x0000209fu, 0x00002154u, 0x00050051u, + 0x00000006u, 0x00002157u, 0x00002152u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00002158u, 0x00002157u, + 0x00000896u, 0x00050051u, 0x00000006u, 0x0000215au, 0x00002152u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x0000215bu, 0x00002158u, 0x0000215au, 0x000500c2u, 0x00000006u, 0x0000215eu, 0x000020a2u, 0x0000084fu, + 0x00050051u, 0x00000006u, 0x00002160u, 0x00002155u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00002161u, + 0x0000215eu, 0x00002160u, 0x00050080u, 0x00000006u, 0x00002162u, 0x000020a8u, 0x00002161u, 0x00050051u, + 0x00000006u, 0x00002164u, 0x00002155u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00002165u, 0x00002162u, + 0x00002164u, 0x000300f7u, 0x000021dbu, 0x00000000u, 0x000d00fbu, 0x00000661u, 0x000021dbu, 0x00000000u, + 0x0000217eu, 0x00000001u, 0x0000217eu, 0x00000002u, 0x00002191u, 0x00000003u, 0x000021b5u, 0x00000004u, + 0x000021ccu, 0x000200f8u, 0x000021ccu, 0x000500c7u, 0x00000006u, 0x000021ceu, 0x00002165u, 0x000006d0u, + 0x00050084u, 0x00000006u, 0x000021d0u, 0x0000215bu, 0x000006d4u, 0x00050080u, 0x00000006u, 0x000021d2u, + 0x000021ceu, 0x000021d0u, 0x00060041u, 0x000006deu, 0x000021d4u, 0x000006dcu, 0x00000225u, 0x000021d2u, + 0x0004003du, 0x00000006u, 0x000021d5u, 0x000021d4u, 0x00070050u, 0x000004fcu, 0x000021d7u, 0x000021d5u, + 0x000021d5u, 0x000021d5u, 0x000021d5u, 0x000500c2u, 0x000004fcu, 0x000021d8u, 0x000021d7u, 0x000006e4u, + 0x000500c7u, 0x000004fcu, 0x000021d9u, 0x000021d8u, 0x000006e6u, 0x00040071u, 0x00000010u, 0x000021dau, + 0x000021d9u, 0x000200f9u, 0x000021dbu, 0x000200f8u, 0x000021b5u, 0x000500c7u, 0x00000006u, 0x000021b7u, + 0x00002165u, 0x00000688u, 0x00050084u, 0x00000006u, 0x000021b9u, 0x0000215bu, 0x000006b9u, 0x00050080u, + 0x00000006u, 0x000021bbu, 0x000021b7u, 0x000021b9u, 0x000500c6u, 0x00000006u, 0x000021bdu, 0x000021bbu, + 0x00000461u, 0x00060041u, 0x00000697u, 0x000021beu, 0x00000694u, 0x00000225u, 0x000021bdu, 0x0004003du, + 0x00000011u, 0x000021bfu, 0x000021beu, 0x00040071u, 0x00000006u, 0x000021c0u, 0x000021bfu, 0x000500c2u, + 0x00000006u, 0x000021c2u, 0x000021c0u, 0x00000319u, 0x00040071u, 0x0000000fu, 0x000021c3u, 0x000021c2u, + 0x000500c7u, 0x00000006u, 0x000021c6u, 0x000021c0u, 0x000006c8u, 0x00040071u, 0x0000000fu, 0x000021c7u, + 0x000021c6u, 0x00070050u, 0x00000010u, 0x000021cbu, 0x000021c3u, 0x000021c3u, 0x000021c3u, 0x000021c7u, + 0x000200f9u, 0x000021dbu, 0x000200f8u, 0x00002191u, 0x000500c7u, 0x00000006u, 0x00002193u, 0x00002165u, + 0x00000688u, 0x00050084u, 0x00000006u, 0x00002195u, 0x0000215bu, 0x0000068cu, 0x00050080u, 0x00000006u, + 0x00002197u, 0x00002193u, 0x00002195u, 0x000500c6u, 0x00000006u, 0x00002199u, 0x00002197u, 0x00000461u, + 0x00060041u, 0x00000697u, 0x0000219au, 0x00000694u, 0x00000225u, 0x00002199u, 0x0004003du, 0x00000011u, + 0x0000219bu, 0x0000219au, 0x00040071u, 0x00000006u, 0x0000219cu, 0x0000219bu, 0x000500c2u, 0x00000006u, + 0x0000219eu, 0x0000219cu, 0x00000319u, 0x000500c2u, 0x00000006u, 0x000021a0u, 0x0000219cu, 0x00000469u, + 0x000500c4u, 0x00000006u, 0x000021a2u, 0x0000219cu, 0x0000038bu, 0x00060050u, 0x00000311u, 0x000021a3u, + 0x0000219eu, 0x000021a0u, 0x000021a2u, 0x000500c7u, 0x00000311u, 0x000021a5u, 0x000021a3u, 0x0000c209u, + 0x00040071u, 0x00000047u, 0x000021a7u, 0x000021a5u, 0x00060041u, 0x00000676u, 0x000021a9u, 0x00000681u, + 0x00000225u, 0x00002197u, 0x0004003du, 0x0000000fu, 0x000021aau, 0x000021a9u, 0x000500c4u, 0x0000000fu, + 0x000021abu, 0x000021aau, 0x00000393u, 0x000500c7u, 0x00000006u, 0x000021adu, 0x0000219cu, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x000021aeu, 0x000021adu, 0x00000241u, 0x00040071u, 0x0000000fu, 0x000021afu, + 0x000021aeu, 0x000500c5u, 0x0000000fu, 0x000021b0u, 0x000021abu, 0x000021afu, 0x00050051u, 0x0000000fu, + 0x000021b1u, 0x000021a7u, 0x00000000u, 0x00050051u, 0x0000000fu, 0x000021b2u, 0x000021a7u, 0x00000001u, + 0x00050051u, 0x0000000fu, 0x000021b3u, 0x000021a7u, 0x00000002u, 0x00070050u, 0x00000010u, 0x000021b4u, + 0x000021b1u, 0x000021b2u, 0x000021b3u, 0x000021b0u, 0x000200f9u, 0x000021dbu, 0x000200f8u, 0x0000217eu, + 0x000500c7u, 0x00000006u, 0x00002180u, 0x00002165u, 0x00000668u, 0x00050084u, 0x00000006u, 0x00002182u, + 0x0000215bu, 0x00000667u, 0x00050080u, 0x00000006u, 0x00002184u, 0x00002180u, 0x00002182u, 0x000500c6u, + 0x00000006u, 0x00002186u, 0x00002184u, 0x00000469u, 0x00060041u, 0x00000676u, 0x00002187u, 0x00000673u, + 0x00000225u, 0x00002186u, 0x0004003du, 0x0000000fu, 0x00002188u, 0x00002187u, 0x000500c2u, 0x00000006u, + 0x0000218du, 0x00002184u, 0x0000022fu, 0x00060041u, 0x00000676u, 0x0000218eu, 0x00000681u, 0x00000225u, + 0x0000218du, 0x0004003du, 0x0000000fu, 0x0000218fu, 0x0000218eu, 0x00070050u, 0x00000010u, 0x00002190u, + 0x00002188u, 0x00002188u, 0x00002188u, 0x0000218fu, 0x000200f9u, 0x000021dbu, 0x000200f8u, 0x000021dbu, + 0x000d00f5u, 0x00000010u, 0x00007a3au, 0x00007a39u, 0x0000214fu, 0x00002190u, 0x0000217eu, 0x000021b4u, + 0x00002191u, 0x000021cbu, 0x000021b5u, 0x000021dau, 0x000021ccu, 0x00050080u, 0x00000006u, 0x00002170u, + 0x000020abu, 0x00002161u, 0x00050080u, 0x00000006u, 0x00002173u, 0x00002170u, 0x00002164u, 0x000500c7u, + 0x00000006u, 0x000021dfu, 0x00002173u, 0x00000688u, 0x00050084u, 0x00000006u, 0x000021e1u, 0x0000215bu, + 0x0000075eu, 0x00050080u, 0x00000006u, 0x000021e3u, 0x000021dfu, 0x000021e1u, 0x000500c6u, 0x00000006u, + 0x000021e5u, 0x000021e3u, 0x00000461u, 0x00060041u, 0x00000697u, 0x000021e6u, 0x00000694u, 0x00000225u, + 0x000021e5u, 0x0004003du, 0x00000011u, 0x000021e7u, 0x000021e6u, 0x000500c2u, 0x00000011u, 0x000021e9u, + 0x000021e7u, 0x000005f7u, 0x00060041u, 0x00000676u, 0x000021ebu, 0x00000681u, 0x00000225u, 0x000021e3u, + 0x0004003du, 0x0000000fu, 0x000021ecu, 0x000021ebu, 0x000500c7u, 0x00000011u, 0x000021eeu, 0x000021e7u, + 0x000005fcu, 0x000500c4u, 0x00000011u, 0x000021efu, 0x000021eeu, 0x000005f7u, 0x00040071u, 0x0000000fu, + 0x000021f0u, 0x000021efu, 0x000500c5u, 0x0000000fu, 0x000021f1u, 0x000021ecu, 0x000021f0u, 0x000200f9u, + 0x00002177u, 0x000200f8u, 0x00002177u, 0x000700f5u, 0x00000006u, 0x0000a752u, 0x0000a753u, 0x0000209bu, + 0x00002165u, 0x000021dbu, 0x000700f5u, 0x0000000fu, 0x00007a6bu, 0x00007a6cu, 0x0000209bu, 0x000021f1u, + 0x000021dbu, 0x000700f5u, 0x00000011u, 0x00007a5eu, 0x00007a5fu, 0x0000209bu, 0x000021e9u, 0x000021dbu, + 0x000700f5u, 0x00000010u, 0x00007a38u, 0x00007a39u, 0x0000209bu, 0x00007a3au, 0x000021dbu, 0x000200f9u, + 0x000020adu, 0x000200f8u, 0x000020adu, 0x000700f5u, 0x0000000fu, 0x00007a6au, 0x00007a6bu, 0x00002177u, + 0x00009783u, 0x000020b0u, 0x000700f5u, 0x00000011u, 0x00007a5du, 0x00007a5eu, 0x00002177u, 0x00009617u, + 0x000020b0u, 0x000700f5u, 0x00000069u, 0x00007a4fu, 0x0000053bu, 0x00002177u, 0x0000abf2u, 0x000020b0u, + 0x000700f5u, 0x00000010u, 0x00007a37u, 0x00007a38u, 0x00002177u, 0x00009337u, 0x000020b0u, 0x000700f5u, + 0x00000069u, 0x00007a32u, 0x0000053bu, 0x00002177u, 0x0000aa6cu, 0x000020b0u, 0x000700f5u, 0x00000006u, + 0x00007a2cu, 0x00002097u, 0x00002177u, 0x000020bcu, 0x000020b0u, 0x000700f5u, 0x00000047u, 0x0000a57fu, + 0x000094a8u, 0x00002177u, 0x0000a57eu, 0x000020b0u, 0x000700f5u, 0x00000047u, 0x0000a3ebu, 0x000094a8u, + 0x00002177u, 0x0000a3eau, 0x000020b0u, 0x000700f5u, 0x0000000fu, 0x0000a258u, 0x00007a6cu, 0x00002177u, + 0x0000a257u, 0x000020b0u, 0x000700f5u, 0x0000000fu, 0x0000a0c5u, 0x00007a6cu, 0x00002177u, 0x0000a0c4u, + 0x000020b0u, 0x000700f5u, 0x00000047u, 0x00009f2fu, 0x000094a8u, 0x00002177u, 0x00009f2eu, 0x000020b0u, + 0x000700f5u, 0x00000047u, 0x00009da8u, 0x000094a8u, 0x00002177u, 0x00009da7u, 0x000020b0u, 0x000700f5u, + 0x0000000fu, 0x00009c22u, 0x00007a6cu, 0x00002177u, 0x00009c21u, 0x000020b0u, 0x000700f5u, 0x0000000fu, + 0x00009a9cu, 0x00007a6cu, 0x00002177u, 0x00009a9bu, 0x000020b0u, 0x000700f5u, 0x00000047u, 0x000094a6u, + 0x000094a8u, 0x00002177u, 0x000094a5u, 0x000020b0u, 0x000700f5u, 0x00000010u, 0x000091cbu, 0x00007a39u, + 0x00002177u, 0x000091cau, 0x000020b0u, 0x000700f5u, 0x00000008u, 0x00009088u, 0x0000908au, 0x00002177u, + 0x00009087u, 0x000020b0u, 0x000700f5u, 0x0000000fu, 0x00008f46u, 0x00007a6cu, 0x00002177u, 0x00008f45u, + 0x000020b0u, 0x000700f5u, 0x0000000fu, 0x00008dd9u, 0x00007a6cu, 0x00002177u, 0x00008dd8u, 0x000020b0u, + 0x000700f5u, 0x00000012u, 0x00008aafu, 0x00008ab1u, 0x00002177u, 0x00008aaeu, 0x000020b0u, 0x000700f5u, + 0x00000013u, 0x000089f6u, 0x00007c46u, 0x00002177u, 0x000089f5u, 0x000020b0u, 0x000700f5u, 0x00000011u, + 0x00008869u, 0x0000021fu, 0x00002177u, 0x00008868u, 0x000020b0u, 0x000700f5u, 0x00000013u, 0x00008646u, + 0x00007c46u, 0x00002177u, 0x00008645u, 0x000020b0u, 0x000700f5u, 0x00000013u, 0x00008551u, 0x00007c46u, + 0x00002177u, 0x00008550u, 0x000020b0u, 0x000700f5u, 0x00000013u, 0x00008456u, 0x00007c46u, 0x00002177u, + 0x00008455u, 0x000020b0u, 0x000700f5u, 0x00000013u, 0x000082eau, 0x00007c46u, 0x00002177u, 0x000082e9u, + 0x000020b0u, 0x000700f5u, 0x00000013u, 0x00008200u, 0x00007c46u, 0x00002177u, 0x000081ffu, 0x000020b0u, + 0x000700f5u, 0x00000013u, 0x00007e33u, 0x00007c46u, 0x00002177u, 0x00007e32u, 0x000020b0u, 0x000700f5u, + 0x00000013u, 0x00007db8u, 0x00007c46u, 0x00002177u, 0x00007db7u, 0x000020b0u, 0x000700f5u, 0x00000013u, + 0x00007d37u, 0x00007c46u, 0x00002177u, 0x00007d36u, 0x000020b0u, 0x000700f5u, 0x00000013u, 0x00007c44u, + 0x00007c46u, 0x00002177u, 0x00007c43u, 0x000020b0u, 0x000700f5u, 0x000000f2u, 0x00007b51u, 0x00007b2fu, + 0x00002177u, 0x00007b50u, 0x000020b0u, 0x000700f5u, 0x000000f2u, 0x00007b2du, 0x00007b2fu, 0x00002177u, + 0x00007b2cu, 0x000020b0u, 0x000700f5u, 0x00000044u, 0x00007aa9u, 0x00007a9cu, 0x00002177u, 0x00007aa8u, + 0x000020b0u, 0x000700f5u, 0x00000044u, 0x00007a9au, 0x00007a9cu, 0x00002177u, 0x00007a99u, 0x000020b0u, + 0x000500abu, 0x00000069u, 0x000020b3u, 0x00007a2cu, 0x00000332u, 0x000400f6u, 0x000020afu, 0x000020b0u, + 0x00000000u, 0x000400fau, 0x000020b3u, 0x000020aeu, 0x000020afu, 0x000200f8u, 0x000020aeu, 0x0006000cu, + 0x00000008u, 0x000020b6u, 0x00000001u, 0x00000049u, 0x00007a2cu, 0x000500c4u, 0x00000008u, 0x000020b8u, + 0x0000022fu, 0x000020b6u, 0x0004007cu, 0x00000006u, 0x000020b9u, 0x000020b8u, 0x000400c8u, 0x00000006u, + 0x000020bau, 0x000020b9u, 0x000500c7u, 0x00000006u, 0x000020bcu, 0x00007a2cu, 0x000020bau, 0x00050080u, + 0x00000008u, 0x000020c4u, 0x00002088u, 0x000020b6u, 0x00060041u, 0x000006deu, 0x000020c5u, 0x000020c1u, + 0x00000225u, 0x000020c4u, 0x0004003du, 0x00000006u, 0x000020c6u, 0x000020c5u, 0x000200f9u, 0x000020c7u, + 0x000200f8u, 0x000020c7u, 0x000700f5u, 0x00000047u, 0x0000a57eu, 0x0000a57fu, 0x000020aeu, 0x0000c1aeu, + 0x000020cau, 0x000700f5u, 0x00000047u, 0x0000a3eau, 0x0000a3ebu, 0x000020aeu, 0x0000c194u, 0x000020cau, + 0x000700f5u, 0x0000000fu, 0x0000a257u, 0x0000a258u, 0x000020aeu, 0x0000c179u, 0x000020cau, 0x000700f5u, + 0x0000000fu, 0x0000a0c4u, 0x0000a0c5u, 0x000020aeu, 0x0000c15eu, 0x000020cau, 0x000700f5u, 0x00000047u, + 0x00009f2eu, 0x00009f2fu, 0x000020aeu, 0x0000c136u, 0x000020cau, 0x000700f5u, 0x00000047u, 0x00009da7u, + 0x00009da8u, 0x000020aeu, 0x0000c10fu, 0x000020cau, 0x000700f5u, 0x0000000fu, 0x00009c21u, 0x00009c22u, + 0x000020aeu, 0x0000c0e7u, 0x000020cau, 0x000700f5u, 0x0000000fu, 0x00009a9bu, 0x00009a9cu, 0x000020aeu, + 0x0000c0bfu, 0x000020cau, 0x000700f5u, 0x0000000fu, 0x00009783u, 0x00007a6au, 0x000020aeu, 0x0000c04eu, + 0x000020cau, 0x000700f5u, 0x00000011u, 0x00009617u, 0x00007a5du, 0x000020aeu, 0x0000c010u, 0x000020cau, + 0x000700f5u, 0x00000047u, 0x000094a5u, 0x000094a6u, 0x000020aeu, 0x0000bfd2u, 0x000020cau, 0x000700f5u, + 0x00000010u, 0x00009337u, 0x00007a37u, 0x000020aeu, 0x0000bfc5u, 0x000020cau, 0x000700f5u, 0x00000010u, + 0x000091cau, 0x000091cbu, 0x000020aeu, 0x000091c8u, 0x000020cau, 0x000700f5u, 0x00000008u, 0x00009087u, + 0x00009088u, 0x000020aeu, 0x00009085u, 0x000020cau, 0x000700f5u, 0x0000000fu, 0x00008f45u, 0x00008f46u, + 0x000020aeu, 0x00008f43u, 0x000020cau, 0x000700f5u, 0x0000000fu, 0x00008dd8u, 0x00008dd9u, 0x000020aeu, + 0x00008dd6u, 0x000020cau, 0x000700f5u, 0x00000012u, 0x00008aaeu, 0x00008aafu, 0x000020aeu, 0x0000be33u, + 0x000020cau, 0x000700f5u, 0x00000013u, 0x000089f5u, 0x000089f6u, 0x000020aeu, 0x0000bda0u, 0x000020cau, + 0x000700f5u, 0x00000011u, 0x00008868u, 0x00008869u, 0x000020aeu, 0x0000bd2eu, 0x000020cau, 0x000700f5u, + 0x00000013u, 0x00008645u, 0x00008646u, 0x000020aeu, 0x0000bc84u, 0x000020cau, 0x000700f5u, 0x00000013u, + 0x00008550u, 0x00008551u, 0x000020aeu, 0x0000bbdcu, 0x000020cau, 0x000700f5u, 0x00000013u, 0x00008455u, + 0x00008456u, 0x000020aeu, 0x0000bb34u, 0x000020cau, 0x000700f5u, 0x00000013u, 0x000082e9u, 0x000082eau, + 0x000020aeu, 0x0000ba8cu, 0x000020cau, 0x000700f5u, 0x00000013u, 0x000081ffu, 0x00008200u, 0x000020aeu, + 0x0000b9f9u, 0x000020cau, 0x000700f5u, 0x00000013u, 0x00007e32u, 0x00007e33u, 0x000020aeu, 0x0000b8d5u, + 0x000020cau, 0x000700f5u, 0x00000013u, 0x00007db7u, 0x00007db8u, 0x000020aeu, 0x0000b7b3u, 0x000020cau, + 0x000700f5u, 0x00000013u, 0x00007d36u, 0x00007d37u, 0x000020aeu, 0x0000b691u, 0x000020cau, 0x000700f5u, + 0x00000013u, 0x00007c43u, 0x00007c44u, 0x000020aeu, 0x0000b56fu, 0x000020cau, 0x000700f5u, 0x000000f2u, + 0x00007b50u, 0x00007b51u, 0x000020aeu, 0x0000b3edu, 0x000020cau, 0x000700f5u, 0x000000f2u, 0x00007b2cu, + 0x00007b2du, 0x000020aeu, 0x0000b26bu, 0x000020cau, 0x000700f5u, 0x00000044u, 0x00007aa8u, 0x00007aa9u, + 0x000020aeu, 0x0000b0ddu, 0x000020cau, 0x000700f5u, 0x00000044u, 0x00007a99u, 0x00007a9au, 0x000020aeu, + 0x0000af46u, 0x000020cau, 0x000700f5u, 0x00000006u, 0x00007a86u, 0x000020c6u, 0x000020aeu, 0x000020d6u, + 0x000020cau, 0x000700f5u, 0x00000069u, 0x0000abf2u, 0x00007a4fu, 0x000020aeu, 0x0000abf3u, 0x000020cau, + 0x000700f5u, 0x00000069u, 0x0000aa6cu, 0x00007a32u, 0x000020aeu, 0x0000aa6du, 0x000020cau, 0x000500abu, + 0x00000069u, 0x000020cdu, 0x00007a86u, 0x00000332u, 0x000400f6u, 0x000020c9u, 0x000020cau, 0x00000000u, + 0x000400fau, 0x000020cdu, 0x000020c8u, 0x000020c9u, 0x000200f8u, 0x000020c8u, 0x0006000cu, 0x00000008u, + 0x000020d0u, 0x00000001u, 0x00000049u, 0x00007a86u, 0x000500c4u, 0x00000008u, 0x000020d2u, 0x0000022fu, + 0x000020d0u, 0x0004007cu, 0x00000006u, 0x000020d3u, 0x000020d2u, 0x000400c8u, 0x00000006u, 0x000020d4u, + 0x000020d3u, 0x000500c7u, 0x00000006u, 0x000020d6u, 0x00007a86u, 0x000020d4u, 0x00050084u, 0x00000008u, + 0x000020dau, 0x0000115fu, 0x000020b6u, 0x00050080u, 0x00000008u, 0x000020dbu, 0x000020d0u, 0x000020dau, + 0x0004007cu, 0x00000006u, 0x000020dcu, 0x000020dbu, 0x000300f7u, 0x0000253du, 0x00000000u, 0x000300fbu, + 0x00000332u, 0x000022c2u, 0x000200f8u, 0x000022c2u, 0x00060041u, 0x00000301u, 0x00002543u, 0x000002ffu, + 0x00000225u, 0x000020dcu, 0x0004003du, 0x000002fbu, 0x00002544u, 0x00002543u, 0x00050051u, 0x00000008u, + 0x00002545u, 0x00002544u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00002547u, 0x00002544u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00002549u, 0x00002544u, 0x00000002u, 0x00050084u, 0x00000008u, 0x000022c8u, + 0x0000088bu, 0x00002547u, 0x000500b1u, 0x00000069u, 0x000022c9u, 0x00002070u, 0x000022c8u, 0x000400a8u, + 0x00000069u, 0x000022cau, 0x000022c9u, 0x000300f7u, 0x000022d2u, 0x00000000u, 0x000400fau, 0x000022cau, + 0x000022cbu, 0x000022d2u, 0x000200f8u, 0x000022cbu, 0x00050084u, 0x00000008u, 0x000022cfu, 0x00002549u, + 0x0000088bu, 0x00050080u, 0x00000008u, 0x000022d0u, 0x000022cfu, 0x00001d04u, 0x000500adu, 0x00000069u, + 0x000022d1u, 0x00002070u, 0x000022d0u, 0x000200f9u, 0x000022d2u, 0x000200f8u, 0x000022d2u, 0x000700f5u, + 0x00000069u, 0x000022d3u, 0x000022c9u, 0x000022c2u, 0x000022d1u, 0x000022cbu, 0x000300f7u, 0x000022d5u, + 0x00000000u, 0x000400fau, 0x000022d3u, 0x000022d4u, 0x000022d5u, 0x000200f8u, 0x000022d4u, 0x000200f9u, + 0x0000253du, 0x000200f8u, 0x000022d5u, 0x00070041u, 0x00000676u, 0x000022d7u, 0x00001d10u, 0x00000225u, + 0x000020dcu, 0x00000265u, 0x0004003du, 0x0000000fu, 0x000022d8u, 0x000022d7u, 0x00040071u, 0x00000006u, + 0x000022d9u, 0x000022d8u, 0x000300f7u, 0x000022e4u, 0x00000000u, 0x000400fau, 0x00001d15u, 0x000022dau, + 0x000022e4u, 0x000200f8u, 0x000022dau, 0x000500c7u, 0x00000006u, 0x000022dcu, 0x000022d9u, 0x00000a43u, + 0x000500abu, 0x00000069u, 0x000022ddu, 0x000022dcu, 0x00000332u, 0x000300f7u, 0x000022e3u, 0x00000000u, + 0x000400fau, 0x000022ddu, 0x000022deu, 0x000022e3u, 0x000200f8u, 0x000022deu, 0x000500c7u, 0x00000008u, + 0x000022e0u, 0x0000206cu, 0x00001d1eu, 0x000500c7u, 0x00000008u, 0x000022e2u, 0x00002070u, 0x00001d22u, + 0x000200f9u, 0x000022e3u, 0x000200f8u, 0x000022e3u, 0x000700f5u, 0x00000008u, 0x00007a8cu, 0x0000206cu, + 0x000022dau, 0x000022e0u, 0x000022deu, 0x000700f5u, 0x00000008u, 0x00007a8au, 0x00002070u, 0x000022dau, + 0x000022e2u, 0x000022deu, 0x000200f9u, 0x000022e4u, 0x000200f8u, 0x000022e4u, 0x000700f5u, 0x00000008u, + 0x00007a8bu, 0x0000206cu, 0x000022d5u, 0x00007a8cu, 0x000022e3u, 0x000700f5u, 0x00000008u, 0x00007a89u, + 0x00002070u, 0x000022d5u, 0x00007a8au, 0x000022e3u, 0x00050084u, 0x00000008u, 0x000022e7u, 0x0000088bu, + 0x00002545u, 0x00050082u, 0x00000008u, 0x000022ecu, 0x00007a89u, 0x000022c8u, 0x00050080u, 0x00000008u, + 0x000022edu, 0x000022e7u, 0x000022ecu, 0x0004007cu, 0x00000006u, 0x000022eeu, 0x000022edu, 0x00060041u, + 0x000002e2u, 0x00002552u, 0x000002e0u, 0x00000225u, 0x000022eeu, 0x0004003du, 0x000002dcu, 0x00002553u, + 0x00002552u, 0x00050051u, 0x00000009u, 0x00002554u, 0x00002553u, 0x00000000u, 0x00050051u, 0x00000009u, + 0x00002556u, 0x00002553u, 0x00000001u, 0x00050051u, 0x00000028u, 0x00002558u, 0x00002553u, 0x00000002u, + 0x00050051u, 0x00000028u, 0x0000255au, 0x00002553u, 0x00000003u, 0x00050051u, 0x00000008u, 0x0000255cu, + 0x00002553u, 0x00000004u, 0x00050051u, 0x00000008u, 0x0000255eu, 0x00002553u, 0x00000005u, 0x00050051u, + 0x00000008u, 0x00002560u, 0x00002553u, 0x00000006u, 0x00050051u, 0x00000012u, 0x00002562u, 0x00002553u, + 0x00000007u, 0x00050051u, 0x00000011u, 0x00002564u, 0x00002553u, 0x00000008u, 0x000500aau, 0x00000069u, + 0x000022f2u, 0x00002564u, 0x0000021fu, 0x000300f7u, 0x000022f4u, 0x00000000u, 0x000400fau, 0x000022f2u, + 0x000022f3u, 0x000022f4u, 0x000200f8u, 0x000022f3u, 0x000200f9u, 0x0000253du, 0x000200f8u, 0x000022f4u, + 0x00070041u, 0x00000676u, 0x000022f6u, 0x00001d10u, 0x00000225u, 0x000020dcu, 0x00000268u, 0x0004003du, + 0x0000000fu, 0x000022f7u, 0x000022f6u, 0x00040071u, 0x00000006u, 0x000022f8u, 0x000022f7u, 0x00060041u, + 0x00000227u, 0x0000256bu, 0x00000224u, 0x00000225u, 0x000020dcu, 0x0004003du, 0x00000220u, 0x0000256cu, + 0x0000256bu, 0x00050051u, 0x00000009u, 0x0000256fu, 0x0000256cu, 0x00000001u, 0x00050051u, 0x00000009u, + 0x00002573u, 0x0000256cu, 0x00000003u, 0x00050051u, 0x00000009u, 0x00002577u, 0x0000256cu, 0x00000005u, + 0x00050051u, 0x00000009u, 0x0000257bu, 0x0000256cu, 0x00000007u, 0x00070041u, 0x00001d43u, 0x000022fcu, + 0x00000a1fu, 0x00000225u, 0x000020dcu, 0x00000225u, 0x0004003du, 0x00000010u, 0x000022fdu, 0x000022fcu, + 0x00040071u, 0x000004fcu, 0x000022feu, 0x000022fdu, 0x00050051u, 0x00000006u, 0x00002300u, 0x000022feu, + 0x00000000u, 0x00050051u, 0x00000006u, 0x00002302u, 0x000022feu, 0x00000002u, 0x00060041u, 0x0000027fu, + 0x00002582u, 0x0000027du, 0x00000225u, 0x00002300u, 0x0004003du, 0x00000279u, 0x00002583u, 0x00002582u, + 0x00050051u, 0x00000010u, 0x00002584u, 0x00002583u, 0x00000000u, 0x00050051u, 0x00000010u, 0x00002586u, + 0x00002583u, 0x00000001u, 0x00050051u, 0x00000010u, 0x00002588u, 0x00002583u, 0x00000002u, 0x00050051u, + 0x00000010u, 0x0000258au, 0x00002583u, 0x00000003u, 0x00050051u, 0x00000006u, 0x0000258cu, 0x00002583u, + 0x00000004u, 0x00050051u, 0x00000008u, 0x0000258eu, 0x00002583u, 0x00000005u, 0x000500c7u, 0x00000006u, + 0x00002312u, 0x0000258cu, 0x00000335u, 0x000500abu, 0x00000069u, 0x00002313u, 0x00002312u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00002315u, 0x0000258cu, 0x00000a43u, 0x000500abu, 0x00000069u, 0x00002316u, + 0x00002315u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002318u, 0x0000258cu, 0x00001d6du, 0x000500abu, + 0x00000069u, 0x00002319u, 0x00002318u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x0000231bu, 0x0000258cu, + 0x00000a49u, 0x000500abu, 0x00000069u, 0x0000231cu, 0x0000231bu, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x0000231eu, 0x0000258cu, 0x00000a4fu, 0x000500abu, 0x00000069u, 0x0000231fu, 0x0000231eu, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00002321u, 0x0000258cu, 0x00000319u, 0x000500abu, 0x00000069u, 0x00002322u, + 0x00002321u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002324u, 0x0000258cu, 0x00001d7eu, 0x000500abu, + 0x00000069u, 0x00002325u, 0x00002324u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002327u, 0x0000258cu, + 0x00000f5eu, 0x000500abu, 0x00000069u, 0x00002328u, 0x00002327u, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x0000232au, 0x0000258cu, 0x00000f56u, 0x000500abu, 0x00000069u, 0x0000232bu, 0x0000232au, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x0000232du, 0x0000258cu, 0x00000709u, 0x000500abu, 0x00000069u, 0x0000232eu, + 0x0000232du, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002330u, 0x0000258cu, 0x00000a55u, 0x000500abu, + 0x00000069u, 0x00002331u, 0x00002330u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002333u, 0x0000258cu, + 0x00000461u, 0x000500abu, 0x00000069u, 0x00002334u, 0x00002333u, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x00002336u, 0x0000258cu, 0x00000e89u, 0x000500abu, 0x00000069u, 0x00002337u, 0x00002336u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00002339u, 0x0000258cu, 0x00001d9bu, 0x000500abu, 0x00000069u, 0x0000233au, + 0x00002339u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x0000233cu, 0x0000258cu, 0x00001da0u, 0x000500abu, + 0x00000069u, 0x0000233du, 0x0000233cu, 0x00000332u, 0x000500c7u, 0x00000006u, 0x0000233fu, 0x0000258cu, + 0x00001da5u, 0x000500abu, 0x00000069u, 0x00002340u, 0x0000233fu, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x00002342u, 0x0000258cu, 0x00001daau, 0x000500abu, 0x00000069u, 0x00002343u, 0x00002342u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00002345u, 0x0000258cu, 0x00001dafu, 0x000500abu, 0x00000069u, 0x00002346u, + 0x00002345u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002348u, 0x0000258cu, 0x00001db4u, 0x000500abu, + 0x00000069u, 0x00002349u, 0x00002348u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x0000234bu, 0x0000258cu, + 0x00001db9u, 0x000500abu, 0x00000069u, 0x0000234cu, 0x0000234bu, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x0000234eu, 0x0000258cu, 0x00001dbeu, 0x000500abu, 0x00000069u, 0x0000234fu, 0x0000234eu, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00002351u, 0x0000258cu, 0x00001dc3u, 0x000500abu, 0x00000069u, 0x00002352u, + 0x00002351u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002354u, 0x0000258cu, 0x00001dc8u, 0x000500abu, + 0x00000069u, 0x00002355u, 0x00002354u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002357u, 0x0000258cu, + 0x00001dcdu, 0x000500abu, 0x00000069u, 0x00002358u, 0x00002357u, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x0000235au, 0x0000258cu, 0x00001dd1u, 0x000500abu, 0x00000069u, 0x0000235bu, 0x0000235au, 0x00000332u, + 0x000300f7u, 0x00002366u, 0x00000000u, 0x000400fau, 0x0000235bu, 0x0000235cu, 0x00002366u, 0x000200f8u, + 0x0000235cu, 0x0004007cu, 0x00000006u, 0x0000235eu, 0x00007a8bu, 0x0004007cu, 0x00000006u, 0x00002360u, + 0x00007a89u, 0x00060041u, 0x00001ddbu, 0x00002362u, 0x00000cd9u, 0x00000225u, 0x00000235u, 0x0004003du, + 0x00000006u, 0x00002363u, 0x00002362u, 0x00050080u, 0x00000006u, 0x00002364u, 0x000020dcu, 0x00002363u, + 0x00060050u, 0x00000311u, 0x0000259au, 0x0000235eu, 0x00002360u, 0x00002364u, 0x000500c2u, 0x00000311u, + 0x0000259du, 0x0000259au, 0x0000c20bu, 0x0008004fu, 0x00000311u, 0x0000259fu, 0x0000259au, 0x0000259au, + 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000311u, 0x000025a0u, 0x0000259du, 0x0000259fu, + 0x00050084u, 0x00000311u, 0x000025a2u, 0x000025a0u, 0x0000c20cu, 0x000500c2u, 0x00000311u, 0x000025a5u, + 0x000025a2u, 0x0000c20bu, 0x0008004fu, 0x00000311u, 0x000025a7u, 0x000025a2u, 0x000025a2u, 0x00000001u, + 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000311u, 0x000025a8u, 0x000025a5u, 0x000025a7u, 0x00050084u, + 0x00000311u, 0x000025aau, 0x000025a8u, 0x0000c20cu, 0x000500c2u, 0x00000311u, 0x000025adu, 0x000025aau, + 0x0000c20bu, 0x0008004fu, 0x00000311u, 0x000025afu, 0x000025aau, 0x000025aau, 0x00000001u, 0x00000002u, + 0x00000000u, 0x000500c6u, 0x00000311u, 0x000025b0u, 0x000025adu, 0x000025afu, 0x00050084u, 0x00000311u, + 0x000025b2u, 0x000025b0u, 0x0000c20cu, 0x00050051u, 0x00000006u, 0x000025b4u, 0x000025b2u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000025b5u, 0x000025b4u, 0x00000335u, 0x00040071u, 0x00000011u, 0x000025b6u, + 0x000025b5u, 0x000200f9u, 0x00002366u, 0x000200f8u, 0x00002366u, 0x000700f5u, 0x00000011u, 0x00008865u, + 0x00008868u, 0x000022f4u, 0x000025b6u, 0x0000235cu, 0x000500c7u, 0x00000006u, 0x00002368u, 0x000022d9u, + 0x00000461u, 0x000500abu, 0x00000069u, 0x00002369u, 0x00002368u, 0x00000332u, 0x000300f7u, 0x000023b6u, + 0x00000000u, 0x000400fau, 0x0000233au, 0x0000236bu, 0x000023a6u, 0x000200f8u, 0x000023a6u, 0x000300f7u, + 0x000023b5u, 0x00000000u, 0x000400fau, 0x00002337u, 0x000023a8u, 0x000023b5u, 0x000200f8u, 0x000023a8u, + 0x000500afu, 0x00000069u, 0x000023adu, 0x00007a8bu, 0x0000255eu, 0x000300f7u, 0x000023b3u, 0x00000000u, + 0x000400fau, 0x000023adu, 0x000023aeu, 0x000023b3u, 0x000200f8u, 0x000023aeu, 0x000500b3u, 0x00000069u, + 0x000023b2u, 0x00007a8bu, 0x00002560u, 0x000200f9u, 0x000023b3u, 0x000200f8u, 0x000023b3u, 0x000700f5u, + 0x00000069u, 0x000023b4u, 0x000023adu, 0x000023a8u, 0x000023b2u, 0x000023aeu, 0x000200f9u, 0x0000253du, + 0x000200f8u, 0x000023b5u, 0x000200f9u, 0x000023b6u, 0x000200f8u, 0x0000236bu, 0x000500afu, 0x00000069u, + 0x0000236fu, 0x00007a8bu, 0x0000255eu, 0x000300f7u, 0x00002375u, 0x00000000u, 0x000400fau, 0x0000236fu, + 0x00002370u, 0x00002375u, 0x000200f8u, 0x00002370u, 0x000500b3u, 0x00000069u, 0x00002374u, 0x00007a8bu, + 0x00002560u, 0x000200f9u, 0x00002375u, 0x000200f8u, 0x00002375u, 0x000700f5u, 0x00000069u, 0x00002376u, + 0x0000236fu, 0x0000236bu, 0x00002374u, 0x00002370u, 0x000400a8u, 0x00000069u, 0x00002378u, 0x00002376u, + 0x000300f7u, 0x0000237au, 0x00000000u, 0x000400fau, 0x00002378u, 0x00002379u, 0x0000237au, 0x000200f8u, + 0x00002379u, 0x000200f9u, 0x0000253du, 0x000200f8u, 0x0000237au, 0x000300f7u, 0x000025ccu, 0x00000000u, + 0x000400fau, 0x00002369u, 0x000025c2u, 0x000025c7u, 0x000200f8u, 0x000025c7u, 0x00050082u, 0x00000008u, + 0x000025cbu, 0x00002560u, 0x00007a8bu, 0x000200f9u, 0x000025ccu, 0x000200f8u, 0x000025c2u, 0x00050082u, + 0x00000008u, 0x000025c6u, 0x00007a8bu, 0x0000255eu, 0x000200f9u, 0x000025ccu, 0x000200f8u, 0x000025ccu, + 0x000700f5u, 0x00000008u, 0x00008d97u, 0x000025c6u, 0x000025c2u, 0x000025cbu, 0x000025c7u, 0x000500c3u, + 0x00000008u, 0x000025cfu, 0x00008d97u, 0x0000084fu, 0x00060041u, 0x00000cdau, 0x000025d1u, 0x00000cd9u, + 0x00000225u, 0x0000022fu, 0x0004003du, 0x00000008u, 0x000025d2u, 0x000025d1u, 0x000500c7u, 0x00000008u, + 0x000025d3u, 0x000025cfu, 0x000025d2u, 0x00050082u, 0x00000008u, 0x000025d6u, 0x000025cfu, 0x000025d3u, + 0x00060041u, 0x00000cdau, 0x000025d8u, 0x00000cd9u, 0x00000225u, 0x00000225u, 0x0004003du, 0x00000008u, + 0x000025d9u, 0x000025d8u, 0x000500c3u, 0x00000008u, 0x000025dau, 0x000025cfu, 0x000025d9u, 0x000600a9u, + 0x00000008u, 0x000025dcu, 0x00002369u, 0x0000022fu, 0x00000ce7u, 0x00050084u, 0x00000008u, 0x000025ddu, + 0x000025dau, 0x000025dcu, 0x0008004fu, 0x00000044u, 0x000025e0u, 0x00002556u, 0x00002556u, 0x00000000u, + 0x00000001u, 0x00000003u, 0x0008004fu, 0x00000044u, 0x000025e2u, 0x00002577u, 0x00002577u, 0x00000000u, + 0x00000001u, 0x00000003u, 0x000500c7u, 0x00000044u, 0x000025e4u, 0x000025e2u, 0x0000c20du, 0x00060050u, + 0x00000044u, 0x000025e6u, 0x000025ddu, 0x000025ddu, 0x000025ddu, 0x00050084u, 0x00000044u, 0x000025e7u, + 0x000025e4u, 0x000025e6u, 0x00050080u, 0x00000044u, 0x000025e8u, 0x000025e0u, 0x000025e7u, 0x000300f7u, + 0x000025f6u, 0x00000000u, 0x000400fau, 0x00002322u, 0x000025eau, 0x000025f1u, 0x000200f8u, 0x000025f1u, + 0x000500c3u, 0x00000044u, 0x000025f4u, 0x000025e8u, 0x0000c20eu, 0x0007004fu, 0x000000f2u, 0x00002680u, + 0x000025f4u, 0x000025f4u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000025f6u, 0x000200f8u, 0x000025eau, + 0x000500c3u, 0x00000044u, 0x000025edu, 0x000025e8u, 0x0000c20eu, 0x00050051u, 0x00000008u, 0x00002603u, + 0x000025edu, 0x00000002u, 0x000500b3u, 0x00000069u, 0x00002605u, 0x00002603u, 0x00000225u, 0x000500c7u, + 0x00000008u, 0x00002607u, 0x00002603u, 0x00000c1du, 0x0006000cu, 0x00000008u, 0x00002664u, 0x00000001u, + 0x0000004au, 0x00002607u, 0x00050082u, 0x00000008u, 0x00002665u, 0x00000274u, 0x00002664u, 0x0007000cu, + 0x00000008u, 0x00002666u, 0x00000001u, 0x00000027u, 0x00002665u, 0x00000274u, 0x000500c4u, 0x00000008u, + 0x00002669u, 0x00002607u, 0x00002666u, 0x000500c7u, 0x00000008u, 0x0000266au, 0x00002669u, 0x00000b39u, + 0x000500c7u, 0x00000008u, 0x0000266cu, 0x0000266au, 0x00000363u, 0x000500c3u, 0x00000008u, 0x0000266eu, + 0x0000266au, 0x00000262u, 0x0003003eu, 0x0000265fu, 0x00000bfdu, 0x00050041u, 0x000001b2u, 0x0000266fu, + 0x0000265fu, 0x0000266eu, 0x0004003du, 0x000001b1u, 0x00002670u, 0x0000266fu, 0x00040072u, 0x000000f2u, + 0x00002671u, 0x00002670u, 0x00050051u, 0x00000008u, 0x00002673u, 0x00002671u, 0x00000001u, 0x00050084u, + 0x00000008u, 0x00002675u, 0x00002673u, 0x0000266cu, 0x000500c3u, 0x00000008u, 0x00002676u, 0x00002675u, + 0x00000268u, 0x00050051u, 0x00000008u, 0x00002678u, 0x00002671u, 0x00000000u, 0x00050080u, 0x00000008u, + 0x00002679u, 0x00002676u, 0x00002678u, 0x0007004fu, 0x000000f2u, 0x0000260du, 0x000025edu, 0x000025edu, + 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x00002610u, 0x00002679u, 0x00002679u, 0x00050084u, + 0x000000f2u, 0x00002611u, 0x0000260du, 0x00002610u, 0x000500c3u, 0x00000008u, 0x00002613u, 0x00000c30u, + 0x00002666u, 0x0004007eu, 0x00000008u, 0x00002614u, 0x00002613u, 0x000500c7u, 0x00000008u, 0x00002615u, + 0x00000c2fu, 0x00002614u, 0x00050050u, 0x000000f2u, 0x00002618u, 0x00002615u, 0x00002615u, 0x000500c7u, + 0x000000f2u, 0x00002619u, 0x00002611u, 0x00002618u, 0x000500abu, 0x00000069u, 0x0000261bu, 0x00002666u, + 0x00000274u, 0x000300f7u, 0x00002626u, 0x00000000u, 0x000400fau, 0x0000261bu, 0x0000261cu, 0x00002622u, + 0x000200f8u, 0x00002622u, 0x000500c4u, 0x000000f2u, 0x00002625u, 0x00002611u, 0x0000c212u, 0x000200f9u, + 0x00002626u, 0x000200f8u, 0x0000261cu, 0x00050082u, 0x00000008u, 0x0000261fu, 0x00000271u, 0x00002666u, + 0x00050050u, 0x000000f2u, 0x00002620u, 0x0000261fu, 0x0000261fu, 0x000500c3u, 0x000000f2u, 0x00002621u, + 0x00002611u, 0x00002620u, 0x000200f9u, 0x00002626u, 0x000200f8u, 0x00002626u, 0x000700f5u, 0x000000f2u, + 0x00008d9bu, 0x00002621u, 0x0000261cu, 0x00002625u, 0x00002622u, 0x000700f5u, 0x000000f2u, 0x00008d99u, + 0x00002621u, 0x0000261cu, 0x00002611u, 0x00002622u, 0x000500abu, 0x00000884u, 0x00002628u, 0x00002619u, + 0x00000c49u, 0x0004009au, 0x00000069u, 0x00002629u, 0x00002628u, 0x000300f7u, 0x00002655u, 0x00000000u, + 0x000400fau, 0x00002629u, 0x0000262au, 0x00002655u, 0x000200f8u, 0x0000262au, 0x00050051u, 0x00000008u, + 0x0000262cu, 0x00002619u, 0x00000000u, 0x000500abu, 0x00000069u, 0x0000262eu, 0x0000262cu, 0x00002615u, + 0x000300f7u, 0x00002633u, 0x00000000u, 0x000400fau, 0x0000262eu, 0x0000262fu, 0x00002633u, 0x000200f8u, + 0x0000262fu, 0x000500abu, 0x00000069u, 0x00002632u, 0x0000262cu, 0x00000225u, 0x000200f9u, 0x00002633u, + 0x000200f8u, 0x00002633u, 0x000700f5u, 0x00000069u, 0x00002634u, 0x0000262eu, 0x0000262au, 0x00002632u, + 0x0000262fu, 0x000300f7u, 0x0000263fu, 0x00000000u, 0x000400fau, 0x00002634u, 0x00002635u, 0x0000263fu, + 0x000200f8u, 0x00002635u, 0x00050051u, 0x00000008u, 0x00002637u, 0x00008d99u, 0x00000000u, 0x000500c7u, + 0x00000008u, 0x00002638u, 0x00002637u, 0x00000c30u, 0x000500aau, 0x00000069u, 0x00002639u, 0x00002638u, + 0x00000225u, 0x000300f7u, 0x0000263eu, 0x00000000u, 0x000400fau, 0x00002639u, 0x0000263au, 0x0000263cu, + 0x000200f8u, 0x0000263cu, 0x00060052u, 0x000000f2u, 0x0000762eu, 0x00000c62u, 0x00008d9bu, 0x00000000u, + 0x000200f9u, 0x0000263eu, 0x000200f8u, 0x0000263au, 0x00060052u, 0x000000f2u, 0x0000762cu, 0x00000c1du, + 0x00008d9bu, 0x00000000u, 0x000200f9u, 0x0000263eu, 0x000200f8u, 0x0000263eu, 0x000700f5u, 0x000000f2u, + 0x00008da1u, 0x0000762cu, 0x0000263au, 0x0000762eu, 0x0000263cu, 0x000200f9u, 0x0000263fu, 0x000200f8u, + 0x0000263fu, 0x000700f5u, 0x000000f2u, 0x00008da0u, 0x00008d9bu, 0x00002633u, 0x00008da1u, 0x0000263eu, + 0x00050051u, 0x00000008u, 0x00002641u, 0x00002619u, 0x00000001u, 0x000500abu, 0x00000069u, 0x00002643u, + 0x00002641u, 0x00002615u, 0x000300f7u, 0x00002648u, 0x00000000u, 0x000400fau, 0x00002643u, 0x00002644u, + 0x00002648u, 0x000200f8u, 0x00002644u, 0x000500abu, 0x00000069u, 0x00002647u, 0x00002641u, 0x00000225u, + 0x000200f9u, 0x00002648u, 0x000200f8u, 0x00002648u, 0x000700f5u, 0x00000069u, 0x00002649u, 0x00002643u, + 0x0000263fu, 0x00002647u, 0x00002644u, 0x000300f7u, 0x00002654u, 0x00000000u, 0x000400fau, 0x00002649u, + 0x0000264au, 0x00002654u, 0x000200f8u, 0x0000264au, 0x00050051u, 0x00000008u, 0x0000264cu, 0x00008d99u, + 0x00000001u, 0x000500c7u, 0x00000008u, 0x0000264du, 0x0000264cu, 0x00000c30u, 0x000500aau, 0x00000069u, + 0x0000264eu, 0x0000264du, 0x00000225u, 0x000300f7u, 0x00002653u, 0x00000000u, 0x000400fau, 0x0000264eu, + 0x0000264fu, 0x00002651u, 0x000200f8u, 0x00002651u, 0x00060052u, 0x000000f2u, 0x00007635u, 0x00000c62u, + 0x00008da0u, 0x00000001u, 0x000200f9u, 0x00002653u, 0x000200f8u, 0x0000264fu, 0x00060052u, 0x000000f2u, + 0x00007633u, 0x00000c1du, 0x00008da0u, 0x00000001u, 0x000200f9u, 0x00002653u, 0x000200f8u, 0x00002653u, + 0x000700f5u, 0x000000f2u, 0x00008da5u, 0x00007633u, 0x0000264fu, 0x00007635u, 0x00002651u, 0x000200f9u, + 0x00002654u, 0x000200f8u, 0x00002654u, 0x000700f5u, 0x000000f2u, 0x00008da4u, 0x00008da0u, 0x00002648u, + 0x00008da5u, 0x00002653u, 0x000200f9u, 0x00002655u, 0x000200f8u, 0x00002655u, 0x000700f5u, 0x000000f2u, + 0x00008da3u, 0x00008d9bu, 0x00002626u, 0x00008da4u, 0x00002654u, 0x00050050u, 0x00000884u, 0x0000c238u, + 0x00002605u, 0x00002605u, 0x000600a9u, 0x000000f2u, 0x0000c239u, 0x0000c238u, 0x00000c7cu, 0x00008da3u, + 0x0008000cu, 0x000000f2u, 0x0000265au, 0x00000001u, 0x0000002du, 0x0000c239u, 0x00000c7fu, 0x00000c80u, + 0x000200f9u, 0x000025f6u, 0x000200f8u, 0x000025f6u, 0x000700f5u, 0x000000f2u, 0x00008da6u, 0x0000265au, + 0x00002655u, 0x00002680u, 0x000025f1u, 0x000500c7u, 0x00000006u, 0x00002385u, 0x000022f8u, 0x00000747u, + 0x00080041u, 0x00000676u, 0x00002388u, 0x00000a1fu, 0x00000225u, 0x000020dcu, 0x00000232u, 0x00002385u, + 0x0004003du, 0x0000000fu, 0x00002389u, 0x00002388u, 0x00040071u, 0x00000006u, 0x0000238au, 0x00002389u, + 0x00060041u, 0x000002b9u, 0x00002685u, 0x000002b7u, 0x00000225u, 0x0000238au, 0x0004003du, 0x000002b3u, + 0x00002686u, 0x00002685u, 0x00050051u, 0x00000006u, 0x00002687u, 0x00002686u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x0000268bu, 0x00002686u, 0x00000002u, 0x00050051u, 0x00000006u, 0x0000268fu, 0x00002686u, + 0x00000004u, 0x00050051u, 0x00000006u, 0x00002691u, 0x00002686u, 0x00000005u, 0x00050051u, 0x0000000fu, + 0x00002695u, 0x00002686u, 0x00000007u, 0x00050051u, 0x0000000fu, 0x00002697u, 0x00002686u, 0x00000008u, + 0x00050051u, 0x0000000fu, 0x00002699u, 0x00002686u, 0x00000009u, 0x00050051u, 0x0000000fu, 0x0000269bu, + 0x00002686u, 0x0000000au, 0x00050051u, 0x0000000fu, 0x0000269du, 0x00002686u, 0x0000000bu, 0x00050051u, + 0x0000000fu, 0x0000269fu, 0x00002686u, 0x0000000cu, 0x00050051u, 0x0000000fu, 0x000026a1u, 0x00002686u, + 0x0000000du, 0x0004007cu, 0x00000008u, 0x000026bbu, 0x00002687u, 0x00040071u, 0x00000006u, 0x000026beu, + 0x0000269bu, 0x0004007cu, 0x00000008u, 0x000026bfu, 0x000026beu, 0x00050051u, 0x00000008u, 0x000026c1u, + 0x00008da6u, 0x00000000u, 0x0008000cu, 0x00000008u, 0x000026f9u, 0x00000001u, 0x0000002du, 0x000026c1u, + 0x00000c62u, 0x00000c1du, 0x000500b1u, 0x00000069u, 0x000026fbu, 0x000026bfu, 0x0000026bu, 0x000300f7u, + 0x00002707u, 0x00000000u, 0x000400fau, 0x000026fbu, 0x000026fcu, 0x00002700u, 0x000200f8u, 0x00002700u, + 0x00050082u, 0x00000008u, 0x00002702u, 0x0000115fu, 0x000026bfu, 0x000500c4u, 0x00000008u, 0x00002704u, + 0x000026f9u, 0x00002702u, 0x000500c3u, 0x00000008u, 0x00002706u, 0x00002704u, 0x00000559u, 0x000200f9u, + 0x00002707u, 0x000200f8u, 0x000026fcu, 0x000500c3u, 0x00000008u, 0x000026ffu, 0x000026f9u, 0x000026bfu, + 0x000200f9u, 0x00002707u, 0x000200f8u, 0x00002707u, 0x000700f5u, 0x00000008u, 0x00008da7u, 0x000026ffu, + 0x000026fcu, 0x00002706u, 0x00002700u, 0x000500c4u, 0x00000008u, 0x00002709u, 0x000026bbu, 0x00000235u, + 0x00050082u, 0x00000008u, 0x0000270bu, 0x00008da7u, 0x00002709u, 0x0004007cu, 0x00000008u, 0x000026c6u, + 0x0000268bu, 0x00040071u, 0x00000006u, 0x000026c9u, 0x0000269fu, 0x0004007cu, 0x00000008u, 0x000026cau, + 0x000026c9u, 0x00050051u, 0x00000008u, 0x000026ccu, 0x00008da6u, 0x00000001u, 0x0008000cu, 0x00000008u, + 0x00002710u, 0x00000001u, 0x0000002du, 0x000026ccu, 0x00000c62u, 0x00000c1du, 0x000500b1u, 0x00000069u, + 0x00002712u, 0x000026cau, 0x0000026bu, 0x000300f7u, 0x0000271eu, 0x00000000u, 0x000400fau, 0x00002712u, + 0x00002713u, 0x00002717u, 0x000200f8u, 0x00002717u, 0x00050082u, 0x00000008u, 0x00002719u, 0x0000115fu, + 0x000026cau, 0x000500c4u, 0x00000008u, 0x0000271bu, 0x00002710u, 0x00002719u, 0x000500c3u, 0x00000008u, + 0x0000271du, 0x0000271bu, 0x00000559u, 0x000200f9u, 0x0000271eu, 0x000200f8u, 0x00002713u, 0x000500c3u, + 0x00000008u, 0x00002716u, 0x00002710u, 0x000026cau, 0x000200f9u, 0x0000271eu, 0x000200f8u, 0x0000271eu, + 0x000700f5u, 0x00000008u, 0x00008da9u, 0x00002716u, 0x00002713u, 0x0000271du, 0x00002717u, 0x000500c4u, + 0x00000008u, 0x00002720u, 0x000026c6u, 0x00000235u, 0x00050082u, 0x00000008u, 0x00002722u, 0x00008da9u, + 0x00002720u, 0x00050050u, 0x000000f2u, 0x0000c233u, 0x0000270bu, 0x00002722u, 0x000500c3u, 0x000000f2u, + 0x000026d1u, 0x0000c233u, 0x0000c214u, 0x00060041u, 0x00000cdau, 0x000026d2u, 0x00000cd9u, 0x00000225u, + 0x00000232u, 0x0004003du, 0x00000008u, 0x000026d3u, 0x000026d2u, 0x000500aau, 0x00000069u, 0x000026d4u, + 0x000026d3u, 0x00000225u, 0x000300f7u, 0x000026f4u, 0x00000000u, 0x000400fau, 0x000026d4u, 0x000026d5u, + 0x000026d6u, 0x000200f8u, 0x000026d6u, 0x000500aau, 0x00000069u, 0x000026d9u, 0x000026d3u, 0x0000022fu, + 0x000300f7u, 0x000026f3u, 0x00000000u, 0x000400fau, 0x000026d9u, 0x000026dau, 0x000026ebu, 0x000200f8u, + 0x000026ebu, 0x000500b1u, 0x00000069u, 0x000028f0u, 0x000025d6u, 0x00000232u, 0x000300f7u, 0x000028f8u, + 0x00000000u, 0x000400fau, 0x000028f0u, 0x000028f2u, 0x000028f8u, 0x000200f8u, 0x000028f2u, 0x00040071u, + 0x00000006u, 0x000028f5u, 0x00002695u, 0x0004007cu, 0x00000008u, 0x000028f6u, 0x000028f5u, 0x000500abu, + 0x00000069u, 0x000028f7u, 0x000028f6u, 0x00000232u, 0x000200f9u, 0x000028f8u, 0x000200f8u, 0x000028f8u, + 0x000700f5u, 0x00000069u, 0x000028f9u, 0x000028f0u, 0x000026ebu, 0x000028f7u, 0x000028f2u, 0x000400a8u, + 0x00000069u, 0x000028fbu, 0x00002313u, 0x000500a7u, 0x00000069u, 0x000028fcu, 0x000028f9u, 0x000028fbu, + 0x00040071u, 0x00000006u, 0x000028ffu, 0x00002695u, 0x0004007cu, 0x00000008u, 0x00002900u, 0x000028ffu, + 0x0007000cu, 0x00000008u, 0x00002901u, 0x00000001u, 0x00000027u, 0x00002900u, 0x00000232u, 0x000500aau, + 0x00000069u, 0x00002906u, 0x00002900u, 0x00000235u, 0x000500a6u, 0x00000069u, 0x00002909u, 0x00002906u, + 0x00002313u, 0x000600a9u, 0x00000008u, 0x0000290au, 0x00002909u, 0x00001176u, 0x000003dfu, 0x000300f7u, + 0x000029f4u, 0x00000000u, 0x000400fau, 0x000028fcu, 0x0000290cu, 0x0000298fu, 0x000200f8u, 0x0000298fu, + 0x00050051u, 0x00000008u, 0x00002992u, 0x000026d1u, 0x00000000u, 0x00050080u, 0x00000008u, 0x00002993u, + 0x00002992u, 0x000025d6u, 0x00040071u, 0x00000006u, 0x00002a45u, 0x00002699u, 0x0004007cu, 0x00000008u, + 0x00002a46u, 0x00002a45u, 0x000500abu, 0x00000069u, 0x00002a47u, 0x00002a46u, 0x00000225u, 0x000300f7u, + 0x00002a5fu, 0x00000000u, 0x000400fau, 0x00002a47u, 0x00002a48u, 0x00002a5fu, 0x000200f8u, 0x00002a48u, + 0x000500c4u, 0x00000008u, 0x00002a4bu, 0x0000022fu, 0x00002699u, 0x00040071u, 0x00000006u, 0x00002a4eu, + 0x000026a1u, 0x0004007cu, 0x00000008u, 0x00002a4fu, 0x00002a4eu, 0x000500c7u, 0x00000008u, 0x00002a50u, + 0x00002a4fu, 0x00000232u, 0x000500abu, 0x00000069u, 0x00002a51u, 0x00002a50u, 0x00000225u, 0x000300f7u, + 0x00002a5au, 0x00000000u, 0x000400fau, 0x00002a51u, 0x00002a52u, 0x00002a5au, 0x000200f8u, 0x00002a52u, + 0x000500c7u, 0x00000008u, 0x00002a55u, 0x00002993u, 0x00002a4bu, 0x00050082u, 0x00000008u, 0x00002a56u, + 0x00002a55u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00002a57u, 0x00000001u, 0x0000002au, 0x00002a56u, + 0x00000225u, 0x000500c6u, 0x00000008u, 0x00002a59u, 0x00002993u, 0x00002a57u, 0x000200f9u, 0x00002a5au, + 0x000200f8u, 0x00002a5au, 0x000700f5u, 0x00000008u, 0x00008dacu, 0x00002993u, 0x00002a48u, 0x00002a59u, + 0x00002a52u, 0x00050082u, 0x00000008u, 0x00002a5cu, 0x00002a4bu, 0x0000022fu, 0x000500c7u, 0x00000008u, + 0x00002a5eu, 0x00008dacu, 0x00002a5cu, 0x000200f9u, 0x00002a5fu, 0x000200f8u, 0x00002a5fu, 0x000700f5u, + 0x00000008u, 0x00008dadu, 0x00002993u, 0x0000298fu, 0x00002a5eu, 0x00002a5au, 0x00050051u, 0x00000008u, + 0x0000299bu, 0x000026d1u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00002a66u, 0x0000269du, 0x0004007cu, + 0x00000008u, 0x00002a67u, 0x00002a66u, 0x000500abu, 0x00000069u, 0x00002a68u, 0x00002a67u, 0x00000225u, + 0x000300f7u, 0x00002a80u, 0x00000000u, 0x000400fau, 0x00002a68u, 0x00002a69u, 0x00002a80u, 0x000200f8u, + 0x00002a69u, 0x000500c4u, 0x00000008u, 0x00002a6cu, 0x0000022fu, 0x0000269du, 0x00040071u, 0x00000006u, + 0x00002a6fu, 0x000026a1u, 0x0004007cu, 0x00000008u, 0x00002a70u, 0x00002a6fu, 0x000500c7u, 0x00000008u, + 0x00002a71u, 0x00002a70u, 0x00000262u, 0x000500abu, 0x00000069u, 0x00002a72u, 0x00002a71u, 0x00000225u, + 0x000300f7u, 0x00002a7bu, 0x00000000u, 0x000400fau, 0x00002a72u, 0x00002a73u, 0x00002a7bu, 0x000200f8u, + 0x00002a73u, 0x000500c7u, 0x00000008u, 0x00002a76u, 0x0000299bu, 0x00002a6cu, 0x00050082u, 0x00000008u, + 0x00002a77u, 0x00002a76u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00002a78u, 0x00000001u, 0x0000002au, + 0x00002a77u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x00002a7au, 0x0000299bu, 0x00002a78u, 0x000200f9u, + 0x00002a7bu, 0x000200f8u, 0x00002a7bu, 0x000700f5u, 0x00000008u, 0x00008db0u, 0x0000299bu, 0x00002a69u, + 0x00002a7au, 0x00002a73u, 0x00050082u, 0x00000008u, 0x00002a7du, 0x00002a6cu, 0x0000022fu, 0x000500c7u, + 0x00000008u, 0x00002a7fu, 0x00008db0u, 0x00002a7du, 0x000200f9u, 0x00002a80u, 0x000200f8u, 0x00002a80u, + 0x000700f5u, 0x00000008u, 0x00008db1u, 0x0000299bu, 0x00002a5fu, 0x00002a7fu, 0x00002a7bu, 0x0004007cu, + 0x00000006u, 0x000029a2u, 0x00008db1u, 0x00050084u, 0x00000006u, 0x000029a3u, 0x00002691u, 0x000029a2u, + 0x00050080u, 0x00000006u, 0x000029a4u, 0x0000268fu, 0x000029a3u, 0x00050084u, 0x00000006u, 0x000029a6u, + 0x000029a4u, 0x0000038bu, 0x000500c4u, 0x00000008u, 0x000029a9u, 0x00008dadu, 0x00002901u, 0x0004007cu, + 0x00000006u, 0x000029aau, 0x000029a9u, 0x00050080u, 0x00000006u, 0x000029abu, 0x000029a6u, 0x000029aau, + 0x000500c7u, 0x00000006u, 0x000029acu, 0x000029abu, 0x000011e9u, 0x000500c7u, 0x00000006u, 0x000029afu, + 0x000029a2u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000029b0u, 0x000029afu, 0x00000319u, 0x000500c6u, + 0x00000006u, 0x000029b2u, 0x000029acu, 0x000029b0u, 0x000500c2u, 0x00000006u, 0x000029b4u, 0x000029b2u, + 0x0000038bu, 0x0004007cu, 0x00000006u, 0x000029b6u, 0x0000290au, 0x000500c7u, 0x00000006u, 0x000029b8u, + 0x000029b4u, 0x000029b6u, 0x000500c6u, 0x00000006u, 0x000029bbu, 0x000029b8u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x000029bcu, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000029bbu, 0x0004003du, + 0x00000011u, 0x000029bdu, 0x000029bcu, 0x00040071u, 0x00000006u, 0x000029beu, 0x000029bdu, 0x0004007cu, + 0x00000008u, 0x000029bfu, 0x000029beu, 0x000300f7u, 0x000029f3u, 0x00000000u, 0x000400fau, 0x00002313u, + 0x000029c1u, 0x000029f3u, 0x000200f8u, 0x000029c1u, 0x000500aau, 0x00000069u, 0x000029c6u, 0x00002900u, + 0x00000225u, 0x000300f7u, 0x000029eau, 0x00000000u, 0x000400fau, 0x000029c6u, 0x000029c7u, 0x000029dcu, + 0x000200f8u, 0x000029dcu, 0x000500c7u, 0x00000006u, 0x000029deu, 0x000029b2u, 0x0000038bu, 0x00050084u, + 0x00000006u, 0x000029dfu, 0x00000709u, 0x000029deu, 0x00050082u, 0x00000006u, 0x000029e0u, 0x00000319u, + 0x000029dfu, 0x000500c3u, 0x00000008u, 0x000029e2u, 0x000029bfu, 0x000029e0u, 0x000500c7u, 0x00000008u, + 0x000029e4u, 0x000029e2u, 0x00000363u, 0x000500c4u, 0x00000008u, 0x000029e6u, 0x000029e4u, 0x00000232u, + 0x00050080u, 0x00000008u, 0x000029e9u, 0x000029e6u, 0x000025d6u, 0x000200f9u, 0x000029eau, 0x000200f8u, + 0x000029c7u, 0x000500c7u, 0x00000006u, 0x000029c9u, 0x000029b2u, 0x00000469u, 0x00050084u, 0x00000006u, + 0x000029cau, 0x00000709u, 0x000029c9u, 0x00050082u, 0x00000006u, 0x000029cbu, 0x00001295u, 0x000029cau, + 0x000500c3u, 0x00000008u, 0x000029cdu, 0x000029bfu, 0x000029cbu, 0x000500c7u, 0x00000008u, 0x000029cfu, + 0x000029cdu, 0x00000538u, 0x000500c4u, 0x0000000fu, 0x000029d2u, 0x00002697u, 0x00000238u, 0x00040071u, + 0x00000006u, 0x000029d3u, 0x000029d2u, 0x0004007cu, 0x00000008u, 0x000029d4u, 0x000029d3u, 0x000500c5u, + 0x00000008u, 0x000029d6u, 0x000029cfu, 0x000029d4u, 0x000500c4u, 0x00000008u, 0x000029d8u, 0x000029d6u, + 0x00000232u, 0x00050080u, 0x00000008u, 0x000029dbu, 0x000029d8u, 0x000025d6u, 0x000200f9u, 0x000029eau, + 0x000200f8u, 0x000029eau, 0x000700f5u, 0x00000008u, 0x00008db2u, 0x000029dbu, 0x000029c7u, 0x000029e9u, + 0x000029dcu, 0x000500c5u, 0x00000008u, 0x000029edu, 0x00008db2u, 0x000012bau, 0x000500c6u, 0x00000008u, + 0x000029eeu, 0x000029edu, 0x0000022fu, 0x00080041u, 0x00000697u, 0x000029efu, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x000029eeu, 0x0004003du, 0x00000011u, 0x000029f0u, 0x000029efu, 0x00040071u, + 0x00000006u, 0x000029f1u, 0x000029f0u, 0x0004007cu, 0x00000008u, 0x000029f2u, 0x000029f1u, 0x000200f9u, + 0x000029f3u, 0x000200f8u, 0x000029f3u, 0x000700f5u, 0x00000008u, 0x00008dbeu, 0x000029bfu, 0x00002a80u, + 0x000029f2u, 0x000029eau, 0x000200f9u, 0x000029f4u, 0x000200f8u, 0x0000290cu, 0x00050084u, 0x00000008u, + 0x0000290eu, 0x00000232u, 0x000025d6u, 0x00050051u, 0x00000008u, 0x00002910u, 0x000026d1u, 0x00000000u, + 0x00050080u, 0x00000008u, 0x00002911u, 0x00002910u, 0x0000290eu, 0x00050050u, 0x000000f2u, 0x000029fbu, + 0x00002911u, 0x00002911u, 0x00050080u, 0x000000f2u, 0x000029fcu, 0x000029fbu, 0x00000de9u, 0x00040071u, + 0x00000006u, 0x000029ffu, 0x00002699u, 0x0004007cu, 0x00000008u, 0x00002a00u, 0x000029ffu, 0x000500abu, + 0x00000069u, 0x00002a01u, 0x00002a00u, 0x00000225u, 0x000300f7u, 0x00002a1du, 0x00000000u, 0x000400fau, + 0x00002a01u, 0x00002a02u, 0x00002a1du, 0x000200f8u, 0x00002a02u, 0x000500c4u, 0x00000008u, 0x00002a05u, + 0x0000022fu, 0x00002699u, 0x00040071u, 0x00000006u, 0x00002a08u, 0x000026a1u, 0x0004007cu, 0x00000008u, + 0x00002a09u, 0x00002a08u, 0x000500c7u, 0x00000008u, 0x00002a0au, 0x00002a09u, 0x00000232u, 0x000500abu, + 0x00000069u, 0x00002a0bu, 0x00002a0au, 0x00000225u, 0x000300f7u, 0x00002a17u, 0x00000000u, 0x000400fau, + 0x00002a0bu, 0x00002a0cu, 0x00002a17u, 0x000200f8u, 0x00002a0cu, 0x00050050u, 0x000000f2u, 0x00002a0fu, + 0x00002a05u, 0x00002a05u, 0x000500c7u, 0x000000f2u, 0x00002a10u, 0x000029fcu, 0x00002a0fu, 0x00050082u, + 0x000000f2u, 0x00002a12u, 0x00002a10u, 0x0000c212u, 0x0007000cu, 0x000000f2u, 0x00002a14u, 0x00000001u, + 0x0000002au, 0x00002a12u, 0x00000c49u, 0x000500c6u, 0x000000f2u, 0x00002a16u, 0x000029fcu, 0x00002a14u, + 0x000200f9u, 0x00002a17u, 0x000200f8u, 0x00002a17u, 0x000700f5u, 0x000000f2u, 0x00008db3u, 0x000029fcu, + 0x00002a02u, 0x00002a16u, 0x00002a0cu, 0x00050082u, 0x00000008u, 0x00002a19u, 0x00002a05u, 0x0000022fu, + 0x00050050u, 0x000000f2u, 0x00002a1bu, 0x00002a19u, 0x00002a19u, 0x000500c7u, 0x000000f2u, 0x00002a1cu, + 0x00008db3u, 0x00002a1bu, 0x000200f9u, 0x00002a1du, 0x000200f8u, 0x00002a1du, 0x000700f5u, 0x000000f2u, + 0x00008db4u, 0x000029fcu, 0x0000290cu, 0x00002a1cu, 0x00002a17u, 0x00050051u, 0x00000008u, 0x00002919u, + 0x000026d1u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00002a24u, 0x0000269du, 0x0004007cu, 0x00000008u, + 0x00002a25u, 0x00002a24u, 0x000500abu, 0x00000069u, 0x00002a26u, 0x00002a25u, 0x00000225u, 0x000300f7u, + 0x00002a3eu, 0x00000000u, 0x000400fau, 0x00002a26u, 0x00002a27u, 0x00002a3eu, 0x000200f8u, 0x00002a27u, + 0x000500c4u, 0x00000008u, 0x00002a2au, 0x0000022fu, 0x0000269du, 0x00040071u, 0x00000006u, 0x00002a2du, + 0x000026a1u, 0x0004007cu, 0x00000008u, 0x00002a2eu, 0x00002a2du, 0x000500c7u, 0x00000008u, 0x00002a2fu, + 0x00002a2eu, 0x00000262u, 0x000500abu, 0x00000069u, 0x00002a30u, 0x00002a2fu, 0x00000225u, 0x000300f7u, + 0x00002a39u, 0x00000000u, 0x000400fau, 0x00002a30u, 0x00002a31u, 0x00002a39u, 0x000200f8u, 0x00002a31u, + 0x000500c7u, 0x00000008u, 0x00002a34u, 0x00002919u, 0x00002a2au, 0x00050082u, 0x00000008u, 0x00002a35u, + 0x00002a34u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00002a36u, 0x00000001u, 0x0000002au, 0x00002a35u, + 0x00000225u, 0x000500c6u, 0x00000008u, 0x00002a38u, 0x00002919u, 0x00002a36u, 0x000200f9u, 0x00002a39u, + 0x000200f8u, 0x00002a39u, 0x000700f5u, 0x00000008u, 0x00008db7u, 0x00002919u, 0x00002a27u, 0x00002a38u, + 0x00002a31u, 0x00050082u, 0x00000008u, 0x00002a3bu, 0x00002a2au, 0x0000022fu, 0x000500c7u, 0x00000008u, + 0x00002a3du, 0x00008db7u, 0x00002a3bu, 0x000200f9u, 0x00002a3eu, 0x000200f8u, 0x00002a3eu, 0x000700f5u, + 0x00000008u, 0x00008db8u, 0x00002919u, 0x00002a1du, 0x00002a3du, 0x00002a39u, 0x0004007cu, 0x00000006u, + 0x00002920u, 0x00008db8u, 0x00050084u, 0x00000006u, 0x00002921u, 0x00002691u, 0x00002920u, 0x00050080u, + 0x00000006u, 0x00002922u, 0x0000268fu, 0x00002921u, 0x00050084u, 0x00000006u, 0x00002924u, 0x00002922u, + 0x0000038bu, 0x00050050u, 0x000000f2u, 0x00002927u, 0x00002901u, 0x00002901u, 0x000500c4u, 0x000000f2u, + 0x00002928u, 0x00008db4u, 0x00002927u, 0x0004007cu, 0x000000b4u, 0x00002929u, 0x00002928u, 0x00050050u, + 0x000000b4u, 0x0000292au, 0x00002924u, 0x00002924u, 0x00050080u, 0x000000b4u, 0x0000292bu, 0x0000292au, + 0x00002929u, 0x000500c7u, 0x000000b4u, 0x0000292du, 0x0000292bu, 0x0000c216u, 0x000500c7u, 0x00000006u, + 0x00002930u, 0x00002920u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00002931u, 0x00002930u, 0x00000319u, + 0x00050050u, 0x000000b4u, 0x00002933u, 0x00002931u, 0x00002931u, 0x000500c6u, 0x000000b4u, 0x00002934u, + 0x0000292du, 0x00002933u, 0x000500c2u, 0x000000b4u, 0x00002937u, 0x00002934u, 0x0000c217u, 0x0004007cu, + 0x00000006u, 0x00002939u, 0x0000290au, 0x00050050u, 0x000000b4u, 0x0000293bu, 0x00002939u, 0x00002939u, + 0x000500c7u, 0x000000b4u, 0x0000293cu, 0x00002937u, 0x0000293bu, 0x00050051u, 0x00000006u, 0x0000293fu, + 0x0000293cu, 0x00000000u, 0x000500c6u, 0x00000006u, 0x00002940u, 0x0000293fu, 0x00000461u, 0x00080041u, + 0x00000697u, 0x00002941u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00002940u, 0x0004003du, + 0x00000011u, 0x00002942u, 0x00002941u, 0x00040071u, 0x00000006u, 0x00002943u, 0x00002942u, 0x0004007cu, + 0x00000008u, 0x00002944u, 0x00002943u, 0x00050051u, 0x00000006u, 0x00002947u, 0x0000293cu, 0x00000001u, + 0x000500c6u, 0x00000006u, 0x00002948u, 0x00002947u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00002949u, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00002948u, 0x0004003du, 0x00000011u, 0x0000294au, + 0x00002949u, 0x00040071u, 0x00000006u, 0x0000294bu, 0x0000294au, 0x0004007cu, 0x00000008u, 0x0000294cu, + 0x0000294bu, 0x000500aau, 0x00000069u, 0x00002951u, 0x00002900u, 0x0000022fu, 0x000300f7u, 0x0000298au, + 0x00000000u, 0x000400fau, 0x00002951u, 0x00002952u, 0x00002967u, 0x000200f8u, 0x00002967u, 0x000500aau, + 0x00000069u, 0x0000296cu, 0x00002900u, 0x00000225u, 0x000300f7u, 0x00002989u, 0x00000000u, 0x000400fau, + 0x0000296cu, 0x0000296du, 0x00002984u, 0x000200f8u, 0x00002984u, 0x000500c3u, 0x00000008u, 0x00002986u, + 0x00002944u, 0x00000262u, 0x000500c3u, 0x00000008u, 0x00002988u, 0x0000294cu, 0x00000262u, 0x000200f9u, + 0x00002989u, 0x000200f8u, 0x0000296du, 0x00050051u, 0x00000006u, 0x0000296fu, 0x00002934u, 0x00000000u, + 0x000500c7u, 0x00000006u, 0x00002970u, 0x0000296fu, 0x00000469u, 0x0004007cu, 0x00000008u, 0x00002971u, + 0x00002970u, 0x00050084u, 0x00000008u, 0x00002972u, 0x00000238u, 0x00002971u, 0x00050082u, 0x00000008u, + 0x00002973u, 0x0000026eu, 0x00002972u, 0x000500c3u, 0x00000008u, 0x00002975u, 0x00002944u, 0x00002973u, + 0x00050051u, 0x00000006u, 0x00002977u, 0x00002934u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x00002978u, + 0x00002977u, 0x00000469u, 0x0004007cu, 0x00000008u, 0x00002979u, 0x00002978u, 0x00050084u, 0x00000008u, + 0x0000297au, 0x00000238u, 0x00002979u, 0x00050082u, 0x00000008u, 0x0000297bu, 0x0000026eu, 0x0000297au, + 0x000500c3u, 0x00000008u, 0x0000297du, 0x0000294cu, 0x0000297bu, 0x000500c7u, 0x00000008u, 0x0000297fu, + 0x00002975u, 0x00000538u, 0x00050084u, 0x00000008u, 0x00002980u, 0x0000297fu, 0x000003f7u, 0x000500c7u, + 0x00000008u, 0x00002982u, 0x0000297du, 0x00000538u, 0x00050084u, 0x00000008u, 0x00002983u, 0x00002982u, + 0x000003f7u, 0x000200f9u, 0x00002989u, 0x000200f8u, 0x00002989u, 0x000700f5u, 0x00000008u, 0x00008dbcu, + 0x00002983u, 0x0000296du, 0x00002988u, 0x00002984u, 0x000700f5u, 0x00000008u, 0x00008dbau, 0x00002980u, + 0x0000296du, 0x00002986u, 0x00002984u, 0x000200f9u, 0x0000298au, 0x000200f8u, 0x00002952u, 0x00050051u, + 0x00000006u, 0x00002954u, 0x00002934u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x00002955u, 0x00002954u, + 0x0000038bu, 0x0004007cu, 0x00000008u, 0x00002956u, 0x00002955u, 0x00050084u, 0x00000008u, 0x00002957u, + 0x00000238u, 0x00002956u, 0x00050082u, 0x00000008u, 0x00002958u, 0x00000262u, 0x00002957u, 0x000500c3u, + 0x00000008u, 0x0000295au, 0x00002944u, 0x00002958u, 0x00050051u, 0x00000006u, 0x0000295cu, 0x00002934u, + 0x00000001u, 0x000500c7u, 0x00000006u, 0x0000295du, 0x0000295cu, 0x0000038bu, 0x0004007cu, 0x00000008u, + 0x0000295eu, 0x0000295du, 0x00050084u, 0x00000008u, 0x0000295fu, 0x00000238u, 0x0000295eu, 0x00050082u, + 0x00000008u, 0x00002960u, 0x00000262u, 0x0000295fu, 0x000500c3u, 0x00000008u, 0x00002962u, 0x0000294cu, + 0x00002960u, 0x000500c7u, 0x00000008u, 0x00002964u, 0x0000295au, 0x00000363u, 0x000500c7u, 0x00000008u, + 0x00002966u, 0x00002962u, 0x00000363u, 0x000200f9u, 0x0000298au, 0x000200f8u, 0x0000298au, 0x000700f5u, + 0x00000008u, 0x00008dbbu, 0x00002966u, 0x00002952u, 0x00008dbcu, 0x00002989u, 0x000700f5u, 0x00000008u, + 0x00008db9u, 0x00002964u, 0x00002952u, 0x00008dbau, 0x00002989u, 0x000500c4u, 0x00000008u, 0x0000298cu, + 0x00008db9u, 0x00000262u, 0x000500c5u, 0x00000008u, 0x0000298eu, 0x0000298cu, 0x00008dbbu, 0x000200f9u, + 0x000029f4u, 0x000200f8u, 0x000029f4u, 0x000700f5u, 0x00000008u, 0x00008dbdu, 0x0000298eu, 0x0000298au, + 0x00008dbeu, 0x000029f3u, 0x000200f9u, 0x000026f3u, 0x000200f8u, 0x000026dau, 0x000500c3u, 0x00000008u, + 0x000026dcu, 0x000025d6u, 0x0000022fu, 0x000500b1u, 0x00000069u, 0x00002741u, 0x000026dcu, 0x00000232u, + 0x000300f7u, 0x00002749u, 0x00000000u, 0x000400fau, 0x00002741u, 0x00002743u, 0x00002749u, 0x000200f8u, + 0x00002743u, 0x00040071u, 0x00000006u, 0x00002746u, 0x00002695u, 0x0004007cu, 0x00000008u, 0x00002747u, + 0x00002746u, 0x000500abu, 0x00000069u, 0x00002748u, 0x00002747u, 0x00000232u, 0x000200f9u, 0x00002749u, + 0x000200f8u, 0x00002749u, 0x000700f5u, 0x00000069u, 0x0000274au, 0x00002741u, 0x000026dau, 0x00002748u, + 0x00002743u, 0x000400a8u, 0x00000069u, 0x0000274cu, 0x00002313u, 0x000500a7u, 0x00000069u, 0x0000274du, + 0x0000274au, 0x0000274cu, 0x00040071u, 0x00000006u, 0x00002750u, 0x00002695u, 0x0004007cu, 0x00000008u, + 0x00002751u, 0x00002750u, 0x0007000cu, 0x00000008u, 0x00002752u, 0x00000001u, 0x00000027u, 0x00002751u, + 0x00000232u, 0x000500aau, 0x00000069u, 0x00002757u, 0x00002751u, 0x00000235u, 0x000500a6u, 0x00000069u, + 0x0000275au, 0x00002757u, 0x00002313u, 0x000600a9u, 0x00000008u, 0x0000275bu, 0x0000275au, 0x00001176u, + 0x000003dfu, 0x000300f7u, 0x00002845u, 0x00000000u, 0x000400fau, 0x0000274du, 0x0000275du, 0x000027e0u, + 0x000200f8u, 0x000027e0u, 0x00050051u, 0x00000008u, 0x000027e3u, 0x000026d1u, 0x00000000u, 0x00050080u, + 0x00000008u, 0x000027e4u, 0x000027e3u, 0x000026dcu, 0x00040071u, 0x00000006u, 0x00002896u, 0x00002699u, + 0x0004007cu, 0x00000008u, 0x00002897u, 0x00002896u, 0x000500abu, 0x00000069u, 0x00002898u, 0x00002897u, + 0x00000225u, 0x000300f7u, 0x000028b0u, 0x00000000u, 0x000400fau, 0x00002898u, 0x00002899u, 0x000028b0u, + 0x000200f8u, 0x00002899u, 0x000500c4u, 0x00000008u, 0x0000289cu, 0x0000022fu, 0x00002699u, 0x00040071u, + 0x00000006u, 0x0000289fu, 0x000026a1u, 0x0004007cu, 0x00000008u, 0x000028a0u, 0x0000289fu, 0x000500c7u, + 0x00000008u, 0x000028a1u, 0x000028a0u, 0x00000232u, 0x000500abu, 0x00000069u, 0x000028a2u, 0x000028a1u, + 0x00000225u, 0x000300f7u, 0x000028abu, 0x00000000u, 0x000400fau, 0x000028a2u, 0x000028a3u, 0x000028abu, + 0x000200f8u, 0x000028a3u, 0x000500c7u, 0x00000008u, 0x000028a6u, 0x000027e4u, 0x0000289cu, 0x00050082u, + 0x00000008u, 0x000028a7u, 0x000028a6u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x000028a8u, 0x00000001u, + 0x0000002au, 0x000028a7u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x000028aau, 0x000027e4u, 0x000028a8u, + 0x000200f9u, 0x000028abu, 0x000200f8u, 0x000028abu, 0x000700f5u, 0x00000008u, 0x00008dc0u, 0x000027e4u, + 0x00002899u, 0x000028aau, 0x000028a3u, 0x00050082u, 0x00000008u, 0x000028adu, 0x0000289cu, 0x0000022fu, + 0x000500c7u, 0x00000008u, 0x000028afu, 0x00008dc0u, 0x000028adu, 0x000200f9u, 0x000028b0u, 0x000200f8u, + 0x000028b0u, 0x000700f5u, 0x00000008u, 0x00008dc1u, 0x000027e4u, 0x000027e0u, 0x000028afu, 0x000028abu, + 0x00050051u, 0x00000008u, 0x000027ecu, 0x000026d1u, 0x00000001u, 0x00040071u, 0x00000006u, 0x000028b7u, + 0x0000269du, 0x0004007cu, 0x00000008u, 0x000028b8u, 0x000028b7u, 0x000500abu, 0x00000069u, 0x000028b9u, + 0x000028b8u, 0x00000225u, 0x000300f7u, 0x000028d1u, 0x00000000u, 0x000400fau, 0x000028b9u, 0x000028bau, + 0x000028d1u, 0x000200f8u, 0x000028bau, 0x000500c4u, 0x00000008u, 0x000028bdu, 0x0000022fu, 0x0000269du, + 0x00040071u, 0x00000006u, 0x000028c0u, 0x000026a1u, 0x0004007cu, 0x00000008u, 0x000028c1u, 0x000028c0u, + 0x000500c7u, 0x00000008u, 0x000028c2u, 0x000028c1u, 0x00000262u, 0x000500abu, 0x00000069u, 0x000028c3u, + 0x000028c2u, 0x00000225u, 0x000300f7u, 0x000028ccu, 0x00000000u, 0x000400fau, 0x000028c3u, 0x000028c4u, + 0x000028ccu, 0x000200f8u, 0x000028c4u, 0x000500c7u, 0x00000008u, 0x000028c7u, 0x000027ecu, 0x000028bdu, + 0x00050082u, 0x00000008u, 0x000028c8u, 0x000028c7u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x000028c9u, + 0x00000001u, 0x0000002au, 0x000028c8u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x000028cbu, 0x000027ecu, + 0x000028c9u, 0x000200f9u, 0x000028ccu, 0x000200f8u, 0x000028ccu, 0x000700f5u, 0x00000008u, 0x00008dc4u, + 0x000027ecu, 0x000028bau, 0x000028cbu, 0x000028c4u, 0x00050082u, 0x00000008u, 0x000028ceu, 0x000028bdu, + 0x0000022fu, 0x000500c7u, 0x00000008u, 0x000028d0u, 0x00008dc4u, 0x000028ceu, 0x000200f9u, 0x000028d1u, + 0x000200f8u, 0x000028d1u, 0x000700f5u, 0x00000008u, 0x00008dc5u, 0x000027ecu, 0x000028b0u, 0x000028d0u, + 0x000028ccu, 0x0004007cu, 0x00000006u, 0x000027f3u, 0x00008dc5u, 0x00050084u, 0x00000006u, 0x000027f4u, + 0x00002691u, 0x000027f3u, 0x00050080u, 0x00000006u, 0x000027f5u, 0x0000268fu, 0x000027f4u, 0x00050084u, + 0x00000006u, 0x000027f7u, 0x000027f5u, 0x0000038bu, 0x000500c4u, 0x00000008u, 0x000027fau, 0x00008dc1u, + 0x00002752u, 0x0004007cu, 0x00000006u, 0x000027fbu, 0x000027fau, 0x00050080u, 0x00000006u, 0x000027fcu, + 0x000027f7u, 0x000027fbu, 0x000500c7u, 0x00000006u, 0x000027fdu, 0x000027fcu, 0x000011e9u, 0x000500c7u, + 0x00000006u, 0x00002800u, 0x000027f3u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00002801u, 0x00002800u, + 0x00000319u, 0x000500c6u, 0x00000006u, 0x00002803u, 0x000027fdu, 0x00002801u, 0x000500c2u, 0x00000006u, + 0x00002805u, 0x00002803u, 0x0000038bu, 0x0004007cu, 0x00000006u, 0x00002807u, 0x0000275bu, 0x000500c7u, + 0x00000006u, 0x00002809u, 0x00002805u, 0x00002807u, 0x000500c6u, 0x00000006u, 0x0000280cu, 0x00002809u, + 0x00000461u, 0x00080041u, 0x00000697u, 0x0000280du, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x0000280cu, 0x0004003du, 0x00000011u, 0x0000280eu, 0x0000280du, 0x00040071u, 0x00000006u, 0x0000280fu, + 0x0000280eu, 0x0004007cu, 0x00000008u, 0x00002810u, 0x0000280fu, 0x000300f7u, 0x00002844u, 0x00000000u, + 0x000400fau, 0x00002313u, 0x00002812u, 0x00002844u, 0x000200f8u, 0x00002812u, 0x000500aau, 0x00000069u, + 0x00002817u, 0x00002751u, 0x00000225u, 0x000300f7u, 0x0000283bu, 0x00000000u, 0x000400fau, 0x00002817u, + 0x00002818u, 0x0000282du, 0x000200f8u, 0x0000282du, 0x000500c7u, 0x00000006u, 0x0000282fu, 0x00002803u, + 0x0000038bu, 0x00050084u, 0x00000006u, 0x00002830u, 0x00000709u, 0x0000282fu, 0x00050082u, 0x00000006u, + 0x00002831u, 0x00000319u, 0x00002830u, 0x000500c3u, 0x00000008u, 0x00002833u, 0x00002810u, 0x00002831u, + 0x000500c7u, 0x00000008u, 0x00002835u, 0x00002833u, 0x00000363u, 0x000500c4u, 0x00000008u, 0x00002837u, + 0x00002835u, 0x00000232u, 0x00050080u, 0x00000008u, 0x0000283au, 0x00002837u, 0x000026dcu, 0x000200f9u, + 0x0000283bu, 0x000200f8u, 0x00002818u, 0x000500c7u, 0x00000006u, 0x0000281au, 0x00002803u, 0x00000469u, + 0x00050084u, 0x00000006u, 0x0000281bu, 0x00000709u, 0x0000281au, 0x00050082u, 0x00000006u, 0x0000281cu, + 0x00001295u, 0x0000281bu, 0x000500c3u, 0x00000008u, 0x0000281eu, 0x00002810u, 0x0000281cu, 0x000500c7u, + 0x00000008u, 0x00002820u, 0x0000281eu, 0x00000538u, 0x000500c4u, 0x0000000fu, 0x00002823u, 0x00002697u, + 0x00000238u, 0x00040071u, 0x00000006u, 0x00002824u, 0x00002823u, 0x0004007cu, 0x00000008u, 0x00002825u, + 0x00002824u, 0x000500c5u, 0x00000008u, 0x00002827u, 0x00002820u, 0x00002825u, 0x000500c4u, 0x00000008u, + 0x00002829u, 0x00002827u, 0x00000232u, 0x00050080u, 0x00000008u, 0x0000282cu, 0x00002829u, 0x000026dcu, + 0x000200f9u, 0x0000283bu, 0x000200f8u, 0x0000283bu, 0x000700f5u, 0x00000008u, 0x00008dc6u, 0x0000282cu, + 0x00002818u, 0x0000283au, 0x0000282du, 0x000500c5u, 0x00000008u, 0x0000283eu, 0x00008dc6u, 0x000012bau, + 0x000500c6u, 0x00000008u, 0x0000283fu, 0x0000283eu, 0x0000022fu, 0x00080041u, 0x00000697u, 0x00002840u, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000283fu, 0x0004003du, 0x00000011u, 0x00002841u, + 0x00002840u, 0x00040071u, 0x00000006u, 0x00002842u, 0x00002841u, 0x0004007cu, 0x00000008u, 0x00002843u, + 0x00002842u, 0x000200f9u, 0x00002844u, 0x000200f8u, 0x00002844u, 0x000700f5u, 0x00000008u, 0x00008dd2u, + 0x00002810u, 0x000028d1u, 0x00002843u, 0x0000283bu, 0x000200f9u, 0x00002845u, 0x000200f8u, 0x0000275du, + 0x00050084u, 0x00000008u, 0x0000275fu, 0x00000232u, 0x000026dcu, 0x00050051u, 0x00000008u, 0x00002761u, + 0x000026d1u, 0x00000000u, 0x00050080u, 0x00000008u, 0x00002762u, 0x00002761u, 0x0000275fu, 0x00050050u, + 0x000000f2u, 0x0000284cu, 0x00002762u, 0x00002762u, 0x00050080u, 0x000000f2u, 0x0000284du, 0x0000284cu, + 0x00000de9u, 0x00040071u, 0x00000006u, 0x00002850u, 0x00002699u, 0x0004007cu, 0x00000008u, 0x00002851u, + 0x00002850u, 0x000500abu, 0x00000069u, 0x00002852u, 0x00002851u, 0x00000225u, 0x000300f7u, 0x0000286eu, + 0x00000000u, 0x000400fau, 0x00002852u, 0x00002853u, 0x0000286eu, 0x000200f8u, 0x00002853u, 0x000500c4u, + 0x00000008u, 0x00002856u, 0x0000022fu, 0x00002699u, 0x00040071u, 0x00000006u, 0x00002859u, 0x000026a1u, + 0x0004007cu, 0x00000008u, 0x0000285au, 0x00002859u, 0x000500c7u, 0x00000008u, 0x0000285bu, 0x0000285au, + 0x00000232u, 0x000500abu, 0x00000069u, 0x0000285cu, 0x0000285bu, 0x00000225u, 0x000300f7u, 0x00002868u, + 0x00000000u, 0x000400fau, 0x0000285cu, 0x0000285du, 0x00002868u, 0x000200f8u, 0x0000285du, 0x00050050u, + 0x000000f2u, 0x00002860u, 0x00002856u, 0x00002856u, 0x000500c7u, 0x000000f2u, 0x00002861u, 0x0000284du, + 0x00002860u, 0x00050082u, 0x000000f2u, 0x00002863u, 0x00002861u, 0x0000c212u, 0x0007000cu, 0x000000f2u, + 0x00002865u, 0x00000001u, 0x0000002au, 0x00002863u, 0x00000c49u, 0x000500c6u, 0x000000f2u, 0x00002867u, + 0x0000284du, 0x00002865u, 0x000200f9u, 0x00002868u, 0x000200f8u, 0x00002868u, 0x000700f5u, 0x000000f2u, + 0x00008dc7u, 0x0000284du, 0x00002853u, 0x00002867u, 0x0000285du, 0x00050082u, 0x00000008u, 0x0000286au, + 0x00002856u, 0x0000022fu, 0x00050050u, 0x000000f2u, 0x0000286cu, 0x0000286au, 0x0000286au, 0x000500c7u, + 0x000000f2u, 0x0000286du, 0x00008dc7u, 0x0000286cu, 0x000200f9u, 0x0000286eu, 0x000200f8u, 0x0000286eu, + 0x000700f5u, 0x000000f2u, 0x00008dc8u, 0x0000284du, 0x0000275du, 0x0000286du, 0x00002868u, 0x00050051u, + 0x00000008u, 0x0000276au, 0x000026d1u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00002875u, 0x0000269du, + 0x0004007cu, 0x00000008u, 0x00002876u, 0x00002875u, 0x000500abu, 0x00000069u, 0x00002877u, 0x00002876u, + 0x00000225u, 0x000300f7u, 0x0000288fu, 0x00000000u, 0x000400fau, 0x00002877u, 0x00002878u, 0x0000288fu, + 0x000200f8u, 0x00002878u, 0x000500c4u, 0x00000008u, 0x0000287bu, 0x0000022fu, 0x0000269du, 0x00040071u, + 0x00000006u, 0x0000287eu, 0x000026a1u, 0x0004007cu, 0x00000008u, 0x0000287fu, 0x0000287eu, 0x000500c7u, + 0x00000008u, 0x00002880u, 0x0000287fu, 0x00000262u, 0x000500abu, 0x00000069u, 0x00002881u, 0x00002880u, + 0x00000225u, 0x000300f7u, 0x0000288au, 0x00000000u, 0x000400fau, 0x00002881u, 0x00002882u, 0x0000288au, + 0x000200f8u, 0x00002882u, 0x000500c7u, 0x00000008u, 0x00002885u, 0x0000276au, 0x0000287bu, 0x00050082u, + 0x00000008u, 0x00002886u, 0x00002885u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00002887u, 0x00000001u, + 0x0000002au, 0x00002886u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x00002889u, 0x0000276au, 0x00002887u, + 0x000200f9u, 0x0000288au, 0x000200f8u, 0x0000288au, 0x000700f5u, 0x00000008u, 0x00008dcbu, 0x0000276au, + 0x00002878u, 0x00002889u, 0x00002882u, 0x00050082u, 0x00000008u, 0x0000288cu, 0x0000287bu, 0x0000022fu, + 0x000500c7u, 0x00000008u, 0x0000288eu, 0x00008dcbu, 0x0000288cu, 0x000200f9u, 0x0000288fu, 0x000200f8u, + 0x0000288fu, 0x000700f5u, 0x00000008u, 0x00008dccu, 0x0000276au, 0x0000286eu, 0x0000288eu, 0x0000288au, + 0x0004007cu, 0x00000006u, 0x00002771u, 0x00008dccu, 0x00050084u, 0x00000006u, 0x00002772u, 0x00002691u, + 0x00002771u, 0x00050080u, 0x00000006u, 0x00002773u, 0x0000268fu, 0x00002772u, 0x00050084u, 0x00000006u, + 0x00002775u, 0x00002773u, 0x0000038bu, 0x00050050u, 0x000000f2u, 0x00002778u, 0x00002752u, 0x00002752u, + 0x000500c4u, 0x000000f2u, 0x00002779u, 0x00008dc8u, 0x00002778u, 0x0004007cu, 0x000000b4u, 0x0000277au, + 0x00002779u, 0x00050050u, 0x000000b4u, 0x0000277bu, 0x00002775u, 0x00002775u, 0x00050080u, 0x000000b4u, + 0x0000277cu, 0x0000277bu, 0x0000277au, 0x000500c7u, 0x000000b4u, 0x0000277eu, 0x0000277cu, 0x0000c216u, + 0x000500c7u, 0x00000006u, 0x00002781u, 0x00002771u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00002782u, + 0x00002781u, 0x00000319u, 0x00050050u, 0x000000b4u, 0x00002784u, 0x00002782u, 0x00002782u, 0x000500c6u, + 0x000000b4u, 0x00002785u, 0x0000277eu, 0x00002784u, 0x000500c2u, 0x000000b4u, 0x00002788u, 0x00002785u, + 0x0000c217u, 0x0004007cu, 0x00000006u, 0x0000278au, 0x0000275bu, 0x00050050u, 0x000000b4u, 0x0000278cu, + 0x0000278au, 0x0000278au, 0x000500c7u, 0x000000b4u, 0x0000278du, 0x00002788u, 0x0000278cu, 0x00050051u, + 0x00000006u, 0x00002790u, 0x0000278du, 0x00000000u, 0x000500c6u, 0x00000006u, 0x00002791u, 0x00002790u, + 0x00000461u, 0x00080041u, 0x00000697u, 0x00002792u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00002791u, 0x0004003du, 0x00000011u, 0x00002793u, 0x00002792u, 0x00040071u, 0x00000006u, 0x00002794u, + 0x00002793u, 0x0004007cu, 0x00000008u, 0x00002795u, 0x00002794u, 0x00050051u, 0x00000006u, 0x00002798u, + 0x0000278du, 0x00000001u, 0x000500c6u, 0x00000006u, 0x00002799u, 0x00002798u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x0000279au, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00002799u, 0x0004003du, + 0x00000011u, 0x0000279bu, 0x0000279au, 0x00040071u, 0x00000006u, 0x0000279cu, 0x0000279bu, 0x0004007cu, + 0x00000008u, 0x0000279du, 0x0000279cu, 0x000500aau, 0x00000069u, 0x000027a2u, 0x00002751u, 0x0000022fu, + 0x000300f7u, 0x000027dbu, 0x00000000u, 0x000400fau, 0x000027a2u, 0x000027a3u, 0x000027b8u, 0x000200f8u, + 0x000027b8u, 0x000500aau, 0x00000069u, 0x000027bdu, 0x00002751u, 0x00000225u, 0x000300f7u, 0x000027dau, + 0x00000000u, 0x000400fau, 0x000027bdu, 0x000027beu, 0x000027d5u, 0x000200f8u, 0x000027d5u, 0x000500c3u, + 0x00000008u, 0x000027d7u, 0x00002795u, 0x00000262u, 0x000500c3u, 0x00000008u, 0x000027d9u, 0x0000279du, + 0x00000262u, 0x000200f9u, 0x000027dau, 0x000200f8u, 0x000027beu, 0x00050051u, 0x00000006u, 0x000027c0u, + 0x00002785u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x000027c1u, 0x000027c0u, 0x00000469u, 0x0004007cu, + 0x00000008u, 0x000027c2u, 0x000027c1u, 0x00050084u, 0x00000008u, 0x000027c3u, 0x00000238u, 0x000027c2u, + 0x00050082u, 0x00000008u, 0x000027c4u, 0x0000026eu, 0x000027c3u, 0x000500c3u, 0x00000008u, 0x000027c6u, + 0x00002795u, 0x000027c4u, 0x00050051u, 0x00000006u, 0x000027c8u, 0x00002785u, 0x00000001u, 0x000500c7u, + 0x00000006u, 0x000027c9u, 0x000027c8u, 0x00000469u, 0x0004007cu, 0x00000008u, 0x000027cau, 0x000027c9u, + 0x00050084u, 0x00000008u, 0x000027cbu, 0x00000238u, 0x000027cau, 0x00050082u, 0x00000008u, 0x000027ccu, + 0x0000026eu, 0x000027cbu, 0x000500c3u, 0x00000008u, 0x000027ceu, 0x0000279du, 0x000027ccu, 0x000500c7u, + 0x00000008u, 0x000027d0u, 0x000027c6u, 0x00000538u, 0x00050084u, 0x00000008u, 0x000027d1u, 0x000027d0u, + 0x000003f7u, 0x000500c7u, 0x00000008u, 0x000027d3u, 0x000027ceu, 0x00000538u, 0x00050084u, 0x00000008u, + 0x000027d4u, 0x000027d3u, 0x000003f7u, 0x000200f9u, 0x000027dau, 0x000200f8u, 0x000027dau, 0x000700f5u, + 0x00000008u, 0x00008dd0u, 0x000027d4u, 0x000027beu, 0x000027d9u, 0x000027d5u, 0x000700f5u, 0x00000008u, + 0x00008dceu, 0x000027d1u, 0x000027beu, 0x000027d7u, 0x000027d5u, 0x000200f9u, 0x000027dbu, 0x000200f8u, + 0x000027a3u, 0x00050051u, 0x00000006u, 0x000027a5u, 0x00002785u, 0x00000000u, 0x000500c7u, 0x00000006u, + 0x000027a6u, 0x000027a5u, 0x0000038bu, 0x0004007cu, 0x00000008u, 0x000027a7u, 0x000027a6u, 0x00050084u, + 0x00000008u, 0x000027a8u, 0x00000238u, 0x000027a7u, 0x00050082u, 0x00000008u, 0x000027a9u, 0x00000262u, + 0x000027a8u, 0x000500c3u, 0x00000008u, 0x000027abu, 0x00002795u, 0x000027a9u, 0x00050051u, 0x00000006u, + 0x000027adu, 0x00002785u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x000027aeu, 0x000027adu, 0x0000038bu, + 0x0004007cu, 0x00000008u, 0x000027afu, 0x000027aeu, 0x00050084u, 0x00000008u, 0x000027b0u, 0x00000238u, + 0x000027afu, 0x00050082u, 0x00000008u, 0x000027b1u, 0x00000262u, 0x000027b0u, 0x000500c3u, 0x00000008u, + 0x000027b3u, 0x0000279du, 0x000027b1u, 0x000500c7u, 0x00000008u, 0x000027b5u, 0x000027abu, 0x00000363u, + 0x000500c7u, 0x00000008u, 0x000027b7u, 0x000027b3u, 0x00000363u, 0x000200f9u, 0x000027dbu, 0x000200f8u, + 0x000027dbu, 0x000700f5u, 0x00000008u, 0x00008dcfu, 0x000027b7u, 0x000027a3u, 0x00008dd0u, 0x000027dau, + 0x000700f5u, 0x00000008u, 0x00008dcdu, 0x000027b5u, 0x000027a3u, 0x00008dceu, 0x000027dau, 0x000500c4u, + 0x00000008u, 0x000027ddu, 0x00008dcdu, 0x00000262u, 0x000500c5u, 0x00000008u, 0x000027dfu, 0x000027ddu, + 0x00008dcfu, 0x000200f9u, 0x00002845u, 0x000200f8u, 0x00002845u, 0x000700f5u, 0x00000008u, 0x00008dd1u, + 0x000027dfu, 0x000027dbu, 0x00008dd2u, 0x00002844u, 0x000500c7u, 0x00000008u, 0x000026e4u, 0x000025d6u, + 0x0000022fu, 0x00050084u, 0x00000008u, 0x000026e5u, 0x00000262u, 0x000026e4u, 0x00050082u, 0x00000008u, + 0x000026e6u, 0x00000262u, 0x000026e5u, 0x000500c3u, 0x00000008u, 0x000026e8u, 0x00008dd1u, 0x000026e6u, + 0x000500c7u, 0x00000008u, 0x000026eau, 0x000026e8u, 0x00000363u, 0x000200f9u, 0x000026f3u, 0x000200f8u, + 0x000026f3u, 0x000700f5u, 0x00000008u, 0x00008dd4u, 0x000026eau, 0x00002845u, 0x00008dbdu, 0x000029f4u, + 0x000200f9u, 0x000026f4u, 0x000200f8u, 0x000026d5u, 0x000200f9u, 0x000026f4u, 0x000200f8u, 0x000026f4u, + 0x000700f5u, 0x00000008u, 0x00008dd3u, 0x00000225u, 0x000026d5u, 0x00008dd4u, 0x000026f3u, 0x000300f7u, + 0x0000239cu, 0x00000000u, 0x000400fau, 0x0000233du, 0x00002398u, 0x0000239cu, 0x000200f8u, 0x00002398u, + 0x000500aau, 0x00000069u, 0x0000239bu, 0x000026d3u, 0x00000232u, 0x000200f9u, 0x0000239cu, 0x000200f8u, + 0x0000239cu, 0x000700f5u, 0x00000069u, 0x0000239du, 0x0000233du, 0x000026f4u, 0x0000239bu, 0x00002398u, + 0x000300f7u, 0x000023a2u, 0x00000000u, 0x000400fau, 0x0000239du, 0x0000239eu, 0x000023a2u, 0x000200f8u, + 0x0000239eu, 0x000500c7u, 0x00000008u, 0x000023a0u, 0x00008dd3u, 0x0000022fu, 0x000500aau, 0x00000069u, + 0x000023a1u, 0x000023a0u, 0x00000225u, 0x000200f9u, 0x000023a2u, 0x000200f8u, 0x000023a2u, 0x000700f5u, + 0x00000069u, 0x000023a3u, 0x0000239du, 0x0000239cu, 0x000023a1u, 0x0000239eu, 0x000300f7u, 0x000023a5u, + 0x00000000u, 0x000400fau, 0x000023a3u, 0x000023a4u, 0x000023a5u, 0x000200f8u, 0x000023a4u, 0x000200f9u, + 0x0000253du, 0x000200f8u, 0x000023a5u, 0x000200f9u, 0x0000253du, 0x000200f8u, 0x000023b6u, 0x00040072u, + 0x00000012u, 0x00002a8eu, 0x00007a8bu, 0x0004007cu, 0x00000011u, 0x00002a8fu, 0x00002a8eu, 0x000500c4u, + 0x00000011u, 0x00002a90u, 0x00002a8fu, 0x000005fcu, 0x00070050u, 0x00000028u, 0x00002a91u, 0x00002a90u, + 0x00002a90u, 0x00002a90u, 0x00002a90u, 0x00050080u, 0x00000028u, 0x00002a92u, 0x000005f8u, 0x00002a91u, + 0x0009004fu, 0x00000028u, 0x00002a95u, 0x00002558u, 0x00002558u, 0x00000000u, 0x00000000u, 0x00000001u, + 0x00000001u, 0x000500b0u, 0x00000600u, 0x00002a96u, 0x00002a92u, 0x00002a95u, 0x0009004fu, 0x00000028u, + 0x00002a99u, 0x00002558u, 0x00002558u, 0x00000002u, 0x00000002u, 0x00000003u, 0x00000003u, 0x000500b0u, + 0x00000600u, 0x00002a9au, 0x00002a92u, 0x00002a99u, 0x0009004fu, 0x00000028u, 0x00002a9du, 0x0000255au, + 0x0000255au, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000001u, 0x000500aeu, 0x00000600u, 0x00002a9eu, + 0x00002a92u, 0x00002a9du, 0x0009004fu, 0x00000028u, 0x00002aa1u, 0x0000255au, 0x0000255au, 0x00000002u, + 0x00000002u, 0x00000003u, 0x00000003u, 0x000500aeu, 0x00000600u, 0x00002aa2u, 0x00002a92u, 0x00002aa1u, + 0x000600a9u, 0x00000010u, 0x00002aa4u, 0x00002a96u, 0x00000619u, 0x00000618u, 0x000600a9u, 0x00000010u, + 0x00002aa6u, 0x00002a9eu, 0x00000619u, 0x00000618u, 0x000500c5u, 0x00000010u, 0x00002aa7u, 0x00002aa4u, + 0x00002aa6u, 0x000600a9u, 0x00000010u, 0x00002aa9u, 0x00002a9au, 0x00000619u, 0x00000618u, 0x000600a9u, + 0x00000010u, 0x00002aabu, 0x00002aa2u, 0x00000619u, 0x00000618u, 0x000500c5u, 0x00000010u, 0x00002aacu, + 0x00002aa9u, 0x00002aabu, 0x00050084u, 0x00000010u, 0x00002aaeu, 0x00002aa7u, 0x00000627u, 0x00050084u, + 0x00000010u, 0x00002ab0u, 0x00002aacu, 0x0000062eu, 0x00050080u, 0x00000010u, 0x00002ab1u, 0x00002aaeu, + 0x00002ab0u, 0x00050051u, 0x0000000fu, 0x00002ab3u, 0x00002ab1u, 0x00000000u, 0x00050051u, 0x0000000fu, + 0x00002ab5u, 0x00002ab1u, 0x00000001u, 0x000500c5u, 0x0000000fu, 0x00002ab6u, 0x00002ab3u, 0x00002ab5u, + 0x00050051u, 0x0000000fu, 0x00002ab8u, 0x00002ab1u, 0x00000002u, 0x00050051u, 0x0000000fu, 0x00002abau, + 0x00002ab1u, 0x00000003u, 0x000500c5u, 0x0000000fu, 0x00002abbu, 0x00002ab8u, 0x00002abau, 0x000500c5u, + 0x0000000fu, 0x00002abcu, 0x00002ab6u, 0x00002abbu, 0x000400c8u, 0x0000000fu, 0x00002abeu, 0x00002abcu, + 0x000500c7u, 0x0000000fu, 0x00002abfu, 0x00002abeu, 0x00000474u, 0x00040071u, 0x00000006u, 0x000023bdu, + 0x00002abfu, 0x0004007cu, 0x00000008u, 0x000023beu, 0x000023bdu, 0x000500aau, 0x00000069u, 0x000023c0u, + 0x000023beu, 0x00000225u, 0x000300f7u, 0x000023c2u, 0x00000000u, 0x000400fau, 0x000023c0u, 0x000023c1u, + 0x000023c2u, 0x000200f8u, 0x000023c1u, 0x000200f9u, 0x0000253du, 0x000200f8u, 0x000023c2u, 0x000400cdu, + 0x00000008u, 0x000023c4u, 0x000023beu, 0x000400a8u, 0x00000069u, 0x000023c6u, 0x0000232eu, 0x000300f7u, + 0x000023cbu, 0x00000000u, 0x000400fau, 0x000023c6u, 0x000023c7u, 0x000023cbu, 0x000200f8u, 0x000023c7u, + 0x000500c7u, 0x00000008u, 0x000023c9u, 0x000023beu, 0x0000022fu, 0x000500aau, 0x00000069u, 0x000023cau, + 0x000023c9u, 0x00000225u, 0x000200f9u, 0x000023cbu, 0x000200f8u, 0x000023cbu, 0x000700f5u, 0x00000069u, + 0x000023ccu, 0x000023c6u, 0x000023c2u, 0x000023cau, 0x000023c7u, 0x000300f7u, 0x000023ceu, 0x00000000u, + 0x000400fau, 0x000023ccu, 0x000023cdu, 0x000023ceu, 0x000200f8u, 0x000023cdu, 0x000200f9u, 0x0000253du, + 0x000200f8u, 0x000023ceu, 0x00060041u, 0x0000024cu, 0x00002ac4u, 0x0000024au, 0x00000225u, 0x000020dcu, + 0x0004003du, 0x00000246u, 0x00002ac5u, 0x00002ac4u, 0x00050051u, 0x00000010u, 0x00002ac6u, 0x00002ac5u, + 0x00000000u, 0x00050051u, 0x00000010u, 0x00002ac8u, 0x00002ac5u, 0x00000001u, 0x00050051u, 0x00000010u, + 0x00002acau, 0x00002ac5u, 0x00000002u, 0x00050051u, 0x00000010u, 0x00002accu, 0x00002ac5u, 0x00000003u, + 0x00050051u, 0x00000010u, 0x00002aceu, 0x00002ac5u, 0x00000004u, 0x00050051u, 0x00000010u, 0x00002ad0u, + 0x00002ac5u, 0x00000005u, 0x00050051u, 0x00000010u, 0x00002ad2u, 0x00002ac5u, 0x00000006u, 0x00050051u, + 0x00000010u, 0x00002ad4u, 0x00002ac5u, 0x00000007u, 0x00050051u, 0x00000010u, 0x00002ad8u, 0x00002ac5u, + 0x00000009u, 0x00050051u, 0x0000000fu, 0x00002ae0u, 0x00002ac5u, 0x0000000du, 0x00050051u, 0x00000013u, + 0x00002ae2u, 0x00002ac5u, 0x0000000eu, 0x00050082u, 0x00000008u, 0x000023d4u, 0x00007a8bu, 0x0000255cu, + 0x000600a9u, 0x00000008u, 0x000023d6u, 0x00002369u, 0x0000022fu, 0x00000ce7u, 0x000500c7u, 0x00000009u, + 0x00002aeeu, 0x0000256fu, 0x0000c20fu, 0x00070050u, 0x00000009u, 0x00002aefu, 0x0000084fu, 0x0000084fu, + 0x0000084fu, 0x0000084fu, 0x000500c3u, 0x00000009u, 0x00002af0u, 0x00002aeeu, 0x00002aefu, 0x00070050u, + 0x00000009u, 0x00002af2u, 0x000023d4u, 0x000023d4u, 0x000023d4u, 0x000023d4u, 0x00050084u, 0x00000009u, + 0x00002af3u, 0x00002af0u, 0x00002af2u, 0x00050080u, 0x00000009u, 0x00002af5u, 0x00002554u, 0x00002af3u, + 0x000500c3u, 0x00000009u, 0x00002af8u, 0x00002af5u, 0x0000c210u, 0x00040072u, 0x00000013u, 0x00002af9u, + 0x00002af8u, 0x0006000cu, 0x00000008u, 0x00002afbu, 0x00000001u, 0x00000049u, 0x000023beu, 0x000500c3u, + 0x00000008u, 0x00002afdu, 0x00002afbu, 0x0000022fu, 0x00040072u, 0x00000012u, 0x00002afeu, 0x00002afdu, + 0x000500c7u, 0x00000008u, 0x00002b00u, 0x00002afbu, 0x0000022fu, 0x000500c4u, 0x00000008u, 0x00002b01u, + 0x00002b00u, 0x0000022fu, 0x00040072u, 0x00000012u, 0x00002b02u, 0x00002b01u, 0x000500c7u, 0x00000012u, + 0x00002b04u, 0x00002afeu, 0x000004cdu, 0x00050080u, 0x00000012u, 0x00002b05u, 0x00002b02u, 0x00002b04u, + 0x00070050u, 0x00000013u, 0x00002b07u, 0x00000ca4u, 0x00000ca4u, 0x00000ca4u, 0x00000ca4u, 0x000500c4u, + 0x00000013u, 0x00002b08u, 0x00002af9u, 0x00002b07u, 0x000500c3u, 0x00000009u, 0x00002b0cu, 0x0000256fu, + 0x0000c210u, 0x00040072u, 0x00000013u, 0x00002b0du, 0x00002b0cu, 0x00070050u, 0x00000013u, 0x00002b0eu, + 0x00002b05u, 0x00002b05u, 0x00002b05u, 0x00002b05u, 0x00050084u, 0x00000013u, 0x00002b0fu, 0x00002b0eu, + 0x00002b0du, 0x000500c3u, 0x00000009u, 0x00002b13u, 0x00002573u, 0x0000c210u, 0x00040072u, 0x00000013u, + 0x00002b14u, 0x00002b13u, 0x00070050u, 0x00000013u, 0x00002b15u, 0x00002afeu, 0x00002afeu, 0x00002afeu, + 0x00002afeu, 0x00050084u, 0x00000013u, 0x00002b16u, 0x00002b15u, 0x00002b14u, 0x00050080u, 0x00000013u, + 0x00002b17u, 0x00002b0fu, 0x00002b16u, 0x00050080u, 0x00000013u, 0x00002b19u, 0x00002b08u, 0x00002b17u, + 0x00070050u, 0x00000013u, 0x00002b1bu, 0x00000cbau, 0x00000cbau, 0x00000cbau, 0x00000cbau, 0x000500c3u, + 0x00000013u, 0x00002b1cu, 0x00002b19u, 0x00002b1bu, 0x00040072u, 0x00000009u, 0x00002b23u, 0x00002b1cu, + 0x00050082u, 0x00000009u, 0x00002b2bu, 0x00002b23u, 0x0000c211u, 0x000600cau, 0x00000009u, 0x00002b2du, + 0x00002b2bu, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00002b30u, 0x00002b2du, 0x0000c211u, + 0x0008000cu, 0x00000009u, 0x00002b32u, 0x00000001u, 0x0000002du, 0x00002b30u, 0x00000b0du, 0x00000b0eu, + 0x00040072u, 0x00000013u, 0x00002b33u, 0x00002b32u, 0x00040072u, 0x00000b17u, 0x00002b25u, 0x00002b33u, + 0x0004007cu, 0x00000010u, 0x00002b26u, 0x00002b25u, 0x000500a7u, 0x00000069u, 0x000023e2u, 0x00001e8au, + 0x0000234fu, 0x000300f7u, 0x000023ebu, 0x00000000u, 0x000400fau, 0x000023e2u, 0x000023e3u, 0x000023ebu, + 0x000200f8u, 0x000023e3u, 0x000500c7u, 0x00000006u, 0x000023e5u, 0x000022d9u, 0x00000a49u, 0x000500abu, + 0x00000069u, 0x000023e6u, 0x000023e5u, 0x00000332u, 0x000300f7u, 0x000023eau, 0x00000000u, 0x000400fau, + 0x000023e6u, 0x000023e7u, 0x000023eau, 0x000200f8u, 0x000023e7u, 0x00050084u, 0x00000008u, 0x000023e9u, + 0x000023d6u, 0x0000088bu, 0x000200f9u, 0x000023eau, 0x000200f8u, 0x000023eau, 0x000700f5u, 0x00000008u, + 0x00007a90u, 0x000023d6u, 0x000023e3u, 0x000023e9u, 0x000023e7u, 0x000200f9u, 0x000023ebu, 0x000200f8u, + 0x000023ebu, 0x000700f5u, 0x00000008u, 0x00007a8fu, 0x000023d6u, 0x000023ceu, 0x00007a90u, 0x000023eau, + 0x0008004fu, 0x00000044u, 0x00002b47u, 0x00002556u, 0x00002556u, 0x00000000u, 0x00000001u, 0x00000003u, + 0x0008004fu, 0x00000044u, 0x00002b49u, 0x00002577u, 0x00002577u, 0x00000000u, 0x00000001u, 0x00000003u, + 0x000500c7u, 0x00000044u, 0x00002b4bu, 0x00002b49u, 0x0000c20du, 0x00060050u, 0x00000044u, 0x00002b4cu, + 0x0000084fu, 0x0000084fu, 0x0000084fu, 0x000500c3u, 0x00000044u, 0x00002b4du, 0x00002b4bu, 0x00002b4cu, + 0x00060050u, 0x00000044u, 0x00002b4fu, 0x000023d4u, 0x000023d4u, 0x000023d4u, 0x00050084u, 0x00000044u, + 0x00002b50u, 0x00002b4du, 0x00002b4fu, 0x00050080u, 0x00000044u, 0x00002b51u, 0x00002b47u, 0x00002b50u, + 0x000300f7u, 0x00002b76u, 0x00000000u, 0x000400fau, 0x0000234fu, 0x00002b53u, 0x00002b76u, 0x000200f8u, + 0x00002b53u, 0x00060050u, 0x00000044u, 0x00002b5cu, 0x00007a8fu, 0x00007a8fu, 0x00007a8fu, 0x00050084u, + 0x00000044u, 0x00002b5du, 0x00002b5cu, 0x00002b4du, 0x00050080u, 0x00000044u, 0x00002b5eu, 0x00002b51u, + 0x00002b5du, 0x000300f7u, 0x00002b75u, 0x00000000u, 0x000400fau, 0x00000d46u, 0x00002b5fu, 0x00002b6cu, + 0x000200f8u, 0x00002b6cu, 0x0008004fu, 0x00000044u, 0x00002b6fu, 0x0000257bu, 0x0000257bu, 0x00000000u, + 0x00000001u, 0x00000003u, 0x000500c7u, 0x00000044u, 0x00002b71u, 0x00002b6fu, 0x0000c213u, 0x000500c3u, + 0x00000044u, 0x00002b73u, 0x00002b71u, 0x00002b4cu, 0x00050080u, 0x00000044u, 0x00002b74u, 0x00002b51u, + 0x00002b73u, 0x000200f9u, 0x00002b75u, 0x000200f8u, 0x00002b5fu, 0x0006000cu, 0x00000008u, 0x00002b62u, + 0x00000001u, 0x00000005u, 0x00007a8fu, 0x0008004fu, 0x00000044u, 0x00002b64u, 0x0000257bu, 0x0000257bu, + 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, 0x00000044u, 0x00002b66u, 0x00002b64u, 0x0000c213u, + 0x000500c3u, 0x00000044u, 0x00002b68u, 0x00002b66u, 0x00002b4cu, 0x00060050u, 0x00000044u, 0x00002b69u, + 0x00002b62u, 0x00002b62u, 0x00002b62u, 0x00050084u, 0x00000044u, 0x00002b6au, 0x00002b69u, 0x00002b68u, + 0x00050080u, 0x00000044u, 0x00002b6bu, 0x00002b51u, 0x00002b6au, 0x000200f9u, 0x00002b75u, 0x000200f8u, + 0x00002b75u, 0x000700f5u, 0x00000044u, 0x00007aafu, 0x00002b6bu, 0x00002b5fu, 0x00002b74u, 0x00002b6cu, + 0x000200f9u, 0x00002b76u, 0x000200f8u, 0x00002b76u, 0x000700f5u, 0x00000044u, 0x00007aa2u, 0x00007aa8u, + 0x000023ebu, 0x00007aafu, 0x00002b75u, 0x000700f5u, 0x00000044u, 0x00007a93u, 0x00007a99u, 0x000023ebu, + 0x00002b5eu, 0x00002b75u, 0x000300f7u, 0x00002b9eu, 0x00000000u, 0x000400fau, 0x00002322u, 0x00002b78u, + 0x00002b8eu, 0x000200f8u, 0x00002b8eu, 0x000500c3u, 0x00000044u, 0x00002b91u, 0x00002b51u, 0x0000c20eu, + 0x0007004fu, 0x000000f2u, 0x00002d62u, 0x00002b91u, 0x00002b91u, 0x00000000u, 0x00000001u, 0x000300f7u, + 0x00002b9du, 0x00000000u, 0x000400fau, 0x0000234fu, 0x00002b94u, 0x00002b9du, 0x000200f8u, 0x00002b94u, + 0x000500c3u, 0x00000044u, 0x00002b97u, 0x00007a93u, 0x0000c20eu, 0x0007004fu, 0x000000f2u, 0x00002d66u, + 0x00002b97u, 0x00002b97u, 0x00000000u, 0x00000001u, 0x000500c3u, 0x00000044u, 0x00002b9bu, 0x00007aa2u, + 0x0000c20eu, 0x0007004fu, 0x000000f2u, 0x00002d6au, 0x00002b9bu, 0x00002b9bu, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00002b9du, 0x000200f8u, 0x00002b9du, 0x000700f5u, 0x000000f2u, 0x00007b5eu, 0x00007b50u, + 0x00002b8eu, 0x00002d6au, 0x00002b94u, 0x000700f5u, 0x000000f2u, 0x00007b44u, 0x00007b2cu, 0x00002b8eu, + 0x00002d66u, 0x00002b94u, 0x000200f9u, 0x00002b9eu, 0x000200f8u, 0x00002b78u, 0x000500c3u, 0x00000044u, + 0x00002b7bu, 0x00002b51u, 0x0000c20eu, 0x00050051u, 0x00000008u, 0x00002bd9u, 0x00002b7bu, 0x00000002u, + 0x000500b3u, 0x00000069u, 0x00002bdbu, 0x00002bd9u, 0x00000225u, 0x000500c7u, 0x00000008u, 0x00002bddu, + 0x00002bd9u, 0x00000c1du, 0x0006000cu, 0x00000008u, 0x00002c3au, 0x00000001u, 0x0000004au, 0x00002bddu, + 0x00050082u, 0x00000008u, 0x00002c3bu, 0x00000274u, 0x00002c3au, 0x0007000cu, 0x00000008u, 0x00002c3cu, + 0x00000001u, 0x00000027u, 0x00002c3bu, 0x00000274u, 0x000500c4u, 0x00000008u, 0x00002c3fu, 0x00002bddu, + 0x00002c3cu, 0x000500c7u, 0x00000008u, 0x00002c40u, 0x00002c3fu, 0x00000b39u, 0x000500c7u, 0x00000008u, + 0x00002c42u, 0x00002c40u, 0x00000363u, 0x000500c3u, 0x00000008u, 0x00002c44u, 0x00002c40u, 0x00000262u, + 0x0003003eu, 0x00002c35u, 0x00000bfdu, 0x00050041u, 0x000001b2u, 0x00002c45u, 0x00002c35u, 0x00002c44u, + 0x0004003du, 0x000001b1u, 0x00002c46u, 0x00002c45u, 0x00040072u, 0x000000f2u, 0x00002c47u, 0x00002c46u, + 0x00050051u, 0x00000008u, 0x00002c49u, 0x00002c47u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00002c4bu, + 0x00002c49u, 0x00002c42u, 0x000500c3u, 0x00000008u, 0x00002c4cu, 0x00002c4bu, 0x00000268u, 0x00050051u, + 0x00000008u, 0x00002c4eu, 0x00002c47u, 0x00000000u, 0x00050080u, 0x00000008u, 0x00002c4fu, 0x00002c4cu, + 0x00002c4eu, 0x0007004fu, 0x000000f2u, 0x00002be3u, 0x00002b7bu, 0x00002b7bu, 0x00000000u, 0x00000001u, + 0x00050050u, 0x000000f2u, 0x00002be6u, 0x00002c4fu, 0x00002c4fu, 0x00050084u, 0x000000f2u, 0x00002be7u, + 0x00002be3u, 0x00002be6u, 0x000500c3u, 0x00000008u, 0x00002be9u, 0x00000c30u, 0x00002c3cu, 0x0004007eu, + 0x00000008u, 0x00002beau, 0x00002be9u, 0x000500c7u, 0x00000008u, 0x00002bebu, 0x00000c2fu, 0x00002beau, + 0x00050050u, 0x000000f2u, 0x00002beeu, 0x00002bebu, 0x00002bebu, 0x000500c7u, 0x000000f2u, 0x00002befu, + 0x00002be7u, 0x00002beeu, 0x000500abu, 0x00000069u, 0x00002bf1u, 0x00002c3cu, 0x00000274u, 0x000300f7u, + 0x00002bfcu, 0x00000000u, 0x000400fau, 0x00002bf1u, 0x00002bf2u, 0x00002bf8u, 0x000200f8u, 0x00002bf8u, + 0x000500c4u, 0x000000f2u, 0x00002bfbu, 0x00002be7u, 0x0000c212u, 0x000200f9u, 0x00002bfcu, 0x000200f8u, + 0x00002bf2u, 0x00050082u, 0x00000008u, 0x00002bf5u, 0x00000271u, 0x00002c3cu, 0x00050050u, 0x000000f2u, + 0x00002bf6u, 0x00002bf5u, 0x00002bf5u, 0x000500c3u, 0x000000f2u, 0x00002bf7u, 0x00002be7u, 0x00002bf6u, + 0x000200f9u, 0x00002bfcu, 0x000200f8u, 0x00002bfcu, 0x000700f5u, 0x000000f2u, 0x00007ab5u, 0x00002bf7u, + 0x00002bf2u, 0x00002bfbu, 0x00002bf8u, 0x000700f5u, 0x000000f2u, 0x00007ab3u, 0x00002bf7u, 0x00002bf2u, + 0x00002be7u, 0x00002bf8u, 0x000500abu, 0x00000884u, 0x00002bfeu, 0x00002befu, 0x00000c49u, 0x0004009au, + 0x00000069u, 0x00002bffu, 0x00002bfeu, 0x000300f7u, 0x00002c2bu, 0x00000000u, 0x000400fau, 0x00002bffu, + 0x00002c00u, 0x00002c2bu, 0x000200f8u, 0x00002c00u, 0x00050051u, 0x00000008u, 0x00002c02u, 0x00002befu, + 0x00000000u, 0x000500abu, 0x00000069u, 0x00002c04u, 0x00002c02u, 0x00002bebu, 0x000300f7u, 0x00002c09u, + 0x00000000u, 0x000400fau, 0x00002c04u, 0x00002c05u, 0x00002c09u, 0x000200f8u, 0x00002c05u, 0x000500abu, + 0x00000069u, 0x00002c08u, 0x00002c02u, 0x00000225u, 0x000200f9u, 0x00002c09u, 0x000200f8u, 0x00002c09u, + 0x000700f5u, 0x00000069u, 0x00002c0au, 0x00002c04u, 0x00002c00u, 0x00002c08u, 0x00002c05u, 0x000300f7u, + 0x00002c15u, 0x00000000u, 0x000400fau, 0x00002c0au, 0x00002c0bu, 0x00002c15u, 0x000200f8u, 0x00002c0bu, + 0x00050051u, 0x00000008u, 0x00002c0du, 0x00007ab3u, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00002c0eu, + 0x00002c0du, 0x00000c30u, 0x000500aau, 0x00000069u, 0x00002c0fu, 0x00002c0eu, 0x00000225u, 0x000300f7u, + 0x00002c14u, 0x00000000u, 0x000400fau, 0x00002c0fu, 0x00002c10u, 0x00002c12u, 0x000200f8u, 0x00002c12u, + 0x00060052u, 0x000000f2u, 0x0000766bu, 0x00000c62u, 0x00007ab5u, 0x00000000u, 0x000200f9u, 0x00002c14u, + 0x000200f8u, 0x00002c10u, 0x00060052u, 0x000000f2u, 0x00007669u, 0x00000c1du, 0x00007ab5u, 0x00000000u, + 0x000200f9u, 0x00002c14u, 0x000200f8u, 0x00002c14u, 0x000700f5u, 0x000000f2u, 0x00007abbu, 0x00007669u, + 0x00002c10u, 0x0000766bu, 0x00002c12u, 0x000200f9u, 0x00002c15u, 0x000200f8u, 0x00002c15u, 0x000700f5u, + 0x000000f2u, 0x00007abau, 0x00007ab5u, 0x00002c09u, 0x00007abbu, 0x00002c14u, 0x000600a9u, 0x00000069u, + 0x0000c23au, 0x00002c0au, 0x0000055eu, 0x0000053bu, 0x00050051u, 0x00000008u, 0x00002c17u, 0x00002befu, + 0x00000001u, 0x000500abu, 0x00000069u, 0x00002c19u, 0x00002c17u, 0x00002bebu, 0x000300f7u, 0x00002c1eu, + 0x00000000u, 0x000400fau, 0x00002c19u, 0x00002c1au, 0x00002c1eu, 0x000200f8u, 0x00002c1au, 0x000500abu, + 0x00000069u, 0x00002c1du, 0x00002c17u, 0x00000225u, 0x000200f9u, 0x00002c1eu, 0x000200f8u, 0x00002c1eu, + 0x000700f5u, 0x00000069u, 0x00002c1fu, 0x00002c19u, 0x00002c15u, 0x00002c1du, 0x00002c1au, 0x000300f7u, + 0x00002c2au, 0x00000000u, 0x000400fau, 0x00002c1fu, 0x00002c20u, 0x00002c2au, 0x000200f8u, 0x00002c20u, + 0x00050051u, 0x00000008u, 0x00002c22u, 0x00007ab3u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00002c23u, + 0x00002c22u, 0x00000c30u, 0x000500aau, 0x00000069u, 0x00002c24u, 0x00002c23u, 0x00000225u, 0x000300f7u, + 0x00002c29u, 0x00000000u, 0x000400fau, 0x00002c24u, 0x00002c25u, 0x00002c27u, 0x000200f8u, 0x00002c27u, + 0x00060052u, 0x000000f2u, 0x00007672u, 0x00000c62u, 0x00007abau, 0x00000001u, 0x000200f9u, 0x00002c29u, + 0x000200f8u, 0x00002c25u, 0x00060052u, 0x000000f2u, 0x00007670u, 0x00000c1du, 0x00007abau, 0x00000001u, + 0x000200f9u, 0x00002c29u, 0x000200f8u, 0x00002c29u, 0x000700f5u, 0x000000f2u, 0x00007abfu, 0x00007670u, + 0x00002c25u, 0x00007672u, 0x00002c27u, 0x000200f9u, 0x00002c2au, 0x000200f8u, 0x00002c2au, 0x000700f5u, + 0x000000f2u, 0x00007abeu, 0x00007abau, 0x00002c1eu, 0x00007abfu, 0x00002c29u, 0x000600a9u, 0x00000069u, + 0x0000c23bu, 0x00002c1fu, 0x0000055eu, 0x0000c23au, 0x000200f9u, 0x00002c2bu, 0x000200f8u, 0x00002c2bu, + 0x000700f5u, 0x00000069u, 0x00007ac1u, 0x0000053bu, 0x00002bfcu, 0x0000c23bu, 0x00002c2au, 0x000700f5u, + 0x000000f2u, 0x00007abdu, 0x00007ab5u, 0x00002bfcu, 0x00007abeu, 0x00002c2au, 0x000600a9u, 0x00000069u, + 0x0000c23cu, 0x00002bdbu, 0x0000055eu, 0x00007ac1u, 0x00050050u, 0x00000884u, 0x0000c23du, 0x00002bdbu, + 0x00002bdbu, 0x000600a9u, 0x000000f2u, 0x0000c23eu, 0x0000c23du, 0x00000c7cu, 0x00007abdu, 0x0008000cu, + 0x000000f2u, 0x00002c30u, 0x00000001u, 0x0000002du, 0x0000c23eu, 0x00000c7fu, 0x00000c80u, 0x000300f7u, + 0x00002b8du, 0x00000000u, 0x000400fau, 0x0000234fu, 0x00002b80u, 0x00002b8du, 0x000200f8u, 0x00002b80u, + 0x000500c3u, 0x00000044u, 0x00002b83u, 0x00007a93u, 0x0000c20eu, 0x00050051u, 0x00000008u, 0x00002c5fu, + 0x00002b83u, 0x00000002u, 0x000500b3u, 0x00000069u, 0x00002c61u, 0x00002c5fu, 0x00000225u, 0x000500c7u, + 0x00000008u, 0x00002c63u, 0x00002c5fu, 0x00000c1du, 0x0006000cu, 0x00000008u, 0x00002cc0u, 0x00000001u, + 0x0000004au, 0x00002c63u, 0x00050082u, 0x00000008u, 0x00002cc1u, 0x00000274u, 0x00002cc0u, 0x0007000cu, + 0x00000008u, 0x00002cc2u, 0x00000001u, 0x00000027u, 0x00002cc1u, 0x00000274u, 0x000500c4u, 0x00000008u, + 0x00002cc5u, 0x00002c63u, 0x00002cc2u, 0x000500c7u, 0x00000008u, 0x00002cc6u, 0x00002cc5u, 0x00000b39u, + 0x000500c7u, 0x00000008u, 0x00002cc8u, 0x00002cc6u, 0x00000363u, 0x000500c3u, 0x00000008u, 0x00002ccau, + 0x00002cc6u, 0x00000262u, 0x0003003eu, 0x00002cbbu, 0x00000bfdu, 0x00050041u, 0x000001b2u, 0x00002ccbu, + 0x00002cbbu, 0x00002ccau, 0x0004003du, 0x000001b1u, 0x00002cccu, 0x00002ccbu, 0x00040072u, 0x000000f2u, + 0x00002ccdu, 0x00002cccu, 0x00050051u, 0x00000008u, 0x00002ccfu, 0x00002ccdu, 0x00000001u, 0x00050084u, + 0x00000008u, 0x00002cd1u, 0x00002ccfu, 0x00002cc8u, 0x000500c3u, 0x00000008u, 0x00002cd2u, 0x00002cd1u, + 0x00000268u, 0x00050051u, 0x00000008u, 0x00002cd4u, 0x00002ccdu, 0x00000000u, 0x00050080u, 0x00000008u, + 0x00002cd5u, 0x00002cd2u, 0x00002cd4u, 0x0007004fu, 0x000000f2u, 0x00002c69u, 0x00002b83u, 0x00002b83u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x00002c6cu, 0x00002cd5u, 0x00002cd5u, 0x00050084u, + 0x000000f2u, 0x00002c6du, 0x00002c69u, 0x00002c6cu, 0x000500c3u, 0x00000008u, 0x00002c6fu, 0x00000c30u, + 0x00002cc2u, 0x0004007eu, 0x00000008u, 0x00002c70u, 0x00002c6fu, 0x000500c7u, 0x00000008u, 0x00002c71u, + 0x00000c2fu, 0x00002c70u, 0x00050050u, 0x000000f2u, 0x00002c74u, 0x00002c71u, 0x00002c71u, 0x000500c7u, + 0x000000f2u, 0x00002c75u, 0x00002c6du, 0x00002c74u, 0x000500abu, 0x00000069u, 0x00002c77u, 0x00002cc2u, + 0x00000274u, 0x000300f7u, 0x00002c82u, 0x00000000u, 0x000400fau, 0x00002c77u, 0x00002c78u, 0x00002c7eu, + 0x000200f8u, 0x00002c7eu, 0x000500c4u, 0x000000f2u, 0x00002c81u, 0x00002c6du, 0x0000c212u, 0x000200f9u, + 0x00002c82u, 0x000200f8u, 0x00002c78u, 0x00050082u, 0x00000008u, 0x00002c7bu, 0x00000271u, 0x00002cc2u, + 0x00050050u, 0x000000f2u, 0x00002c7cu, 0x00002c7bu, 0x00002c7bu, 0x000500c3u, 0x000000f2u, 0x00002c7du, + 0x00002c6du, 0x00002c7cu, 0x000200f9u, 0x00002c82u, 0x000200f8u, 0x00002c82u, 0x000700f5u, 0x000000f2u, + 0x00007ad3u, 0x00002c7du, 0x00002c78u, 0x00002c81u, 0x00002c7eu, 0x000700f5u, 0x000000f2u, 0x00007ad1u, + 0x00002c7du, 0x00002c78u, 0x00002c6du, 0x00002c7eu, 0x000500abu, 0x00000884u, 0x00002c84u, 0x00002c75u, + 0x00000c49u, 0x0004009au, 0x00000069u, 0x00002c85u, 0x00002c84u, 0x000300f7u, 0x00002cb1u, 0x00000000u, + 0x000400fau, 0x00002c85u, 0x00002c86u, 0x00002cb1u, 0x000200f8u, 0x00002c86u, 0x00050051u, 0x00000008u, + 0x00002c88u, 0x00002c75u, 0x00000000u, 0x000500abu, 0x00000069u, 0x00002c8au, 0x00002c88u, 0x00002c71u, + 0x000300f7u, 0x00002c8fu, 0x00000000u, 0x000400fau, 0x00002c8au, 0x00002c8bu, 0x00002c8fu, 0x000200f8u, + 0x00002c8bu, 0x000500abu, 0x00000069u, 0x00002c8eu, 0x00002c88u, 0x00000225u, 0x000200f9u, 0x00002c8fu, + 0x000200f8u, 0x00002c8fu, 0x000700f5u, 0x00000069u, 0x00002c90u, 0x00002c8au, 0x00002c86u, 0x00002c8eu, + 0x00002c8bu, 0x000300f7u, 0x00002c9bu, 0x00000000u, 0x000400fau, 0x00002c90u, 0x00002c91u, 0x00002c9bu, + 0x000200f8u, 0x00002c91u, 0x00050051u, 0x00000008u, 0x00002c93u, 0x00007ad1u, 0x00000000u, 0x000500c7u, + 0x00000008u, 0x00002c94u, 0x00002c93u, 0x00000c30u, 0x000500aau, 0x00000069u, 0x00002c95u, 0x00002c94u, + 0x00000225u, 0x000300f7u, 0x00002c9au, 0x00000000u, 0x000400fau, 0x00002c95u, 0x00002c96u, 0x00002c98u, + 0x000200f8u, 0x00002c98u, 0x00060052u, 0x000000f2u, 0x0000767eu, 0x00000c62u, 0x00007ad3u, 0x00000000u, + 0x000200f9u, 0x00002c9au, 0x000200f8u, 0x00002c96u, 0x00060052u, 0x000000f2u, 0x0000767cu, 0x00000c1du, + 0x00007ad3u, 0x00000000u, 0x000200f9u, 0x00002c9au, 0x000200f8u, 0x00002c9au, 0x000700f5u, 0x000000f2u, + 0x00007ad9u, 0x0000767cu, 0x00002c96u, 0x0000767eu, 0x00002c98u, 0x000200f9u, 0x00002c9bu, 0x000200f8u, + 0x00002c9bu, 0x000700f5u, 0x000000f2u, 0x00007ad8u, 0x00007ad3u, 0x00002c8fu, 0x00007ad9u, 0x00002c9au, + 0x000600a9u, 0x00000069u, 0x0000c23fu, 0x00002c90u, 0x0000055eu, 0x0000c23cu, 0x00050051u, 0x00000008u, + 0x00002c9du, 0x00002c75u, 0x00000001u, 0x000500abu, 0x00000069u, 0x00002c9fu, 0x00002c9du, 0x00002c71u, + 0x000300f7u, 0x00002ca4u, 0x00000000u, 0x000400fau, 0x00002c9fu, 0x00002ca0u, 0x00002ca4u, 0x000200f8u, + 0x00002ca0u, 0x000500abu, 0x00000069u, 0x00002ca3u, 0x00002c9du, 0x00000225u, 0x000200f9u, 0x00002ca4u, + 0x000200f8u, 0x00002ca4u, 0x000700f5u, 0x00000069u, 0x00002ca5u, 0x00002c9fu, 0x00002c9bu, 0x00002ca3u, + 0x00002ca0u, 0x000300f7u, 0x00002cb0u, 0x00000000u, 0x000400fau, 0x00002ca5u, 0x00002ca6u, 0x00002cb0u, + 0x000200f8u, 0x00002ca6u, 0x00050051u, 0x00000008u, 0x00002ca8u, 0x00007ad1u, 0x00000001u, 0x000500c7u, + 0x00000008u, 0x00002ca9u, 0x00002ca8u, 0x00000c30u, 0x000500aau, 0x00000069u, 0x00002caau, 0x00002ca9u, + 0x00000225u, 0x000300f7u, 0x00002cafu, 0x00000000u, 0x000400fau, 0x00002caau, 0x00002cabu, 0x00002cadu, + 0x000200f8u, 0x00002cadu, 0x00060052u, 0x000000f2u, 0x00007685u, 0x00000c62u, 0x00007ad8u, 0x00000001u, + 0x000200f9u, 0x00002cafu, 0x000200f8u, 0x00002cabu, 0x00060052u, 0x000000f2u, 0x00007683u, 0x00000c1du, + 0x00007ad8u, 0x00000001u, 0x000200f9u, 0x00002cafu, 0x000200f8u, 0x00002cafu, 0x000700f5u, 0x000000f2u, + 0x00007addu, 0x00007683u, 0x00002cabu, 0x00007685u, 0x00002cadu, 0x000200f9u, 0x00002cb0u, 0x000200f8u, + 0x00002cb0u, 0x000700f5u, 0x000000f2u, 0x00007adcu, 0x00007ad8u, 0x00002ca4u, 0x00007addu, 0x00002cafu, + 0x000600a9u, 0x00000069u, 0x0000c240u, 0x00002ca5u, 0x0000055eu, 0x0000c23fu, 0x000200f9u, 0x00002cb1u, + 0x000200f8u, 0x00002cb1u, 0x000700f5u, 0x00000069u, 0x00007adfu, 0x0000c23cu, 0x00002c82u, 0x0000c240u, + 0x00002cb0u, 0x000700f5u, 0x000000f2u, 0x00007adbu, 0x00007ad3u, 0x00002c82u, 0x00007adcu, 0x00002cb0u, + 0x000600a9u, 0x00000069u, 0x0000c241u, 0x00002c61u, 0x0000055eu, 0x00007adfu, 0x00050050u, 0x00000884u, + 0x0000c242u, 0x00002c61u, 0x00002c61u, 0x000600a9u, 0x000000f2u, 0x0000c243u, 0x0000c242u, 0x00000c7cu, + 0x00007adbu, 0x0008000cu, 0x000000f2u, 0x00002cb6u, 0x00000001u, 0x0000002du, 0x0000c243u, 0x00000c7fu, + 0x00000c80u, 0x000500c3u, 0x00000044u, 0x00002b89u, 0x00007aa2u, 0x0000c20eu, 0x00050051u, 0x00000008u, + 0x00002ce5u, 0x00002b89u, 0x00000002u, 0x000500b3u, 0x00000069u, 0x00002ce7u, 0x00002ce5u, 0x00000225u, + 0x000500c7u, 0x00000008u, 0x00002ce9u, 0x00002ce5u, 0x00000c1du, 0x0006000cu, 0x00000008u, 0x00002d46u, + 0x00000001u, 0x0000004au, 0x00002ce9u, 0x00050082u, 0x00000008u, 0x00002d47u, 0x00000274u, 0x00002d46u, + 0x0007000cu, 0x00000008u, 0x00002d48u, 0x00000001u, 0x00000027u, 0x00002d47u, 0x00000274u, 0x000500c4u, + 0x00000008u, 0x00002d4bu, 0x00002ce9u, 0x00002d48u, 0x000500c7u, 0x00000008u, 0x00002d4cu, 0x00002d4bu, + 0x00000b39u, 0x000500c7u, 0x00000008u, 0x00002d4eu, 0x00002d4cu, 0x00000363u, 0x000500c3u, 0x00000008u, + 0x00002d50u, 0x00002d4cu, 0x00000262u, 0x0003003eu, 0x00002d41u, 0x00000bfdu, 0x00050041u, 0x000001b2u, + 0x00002d51u, 0x00002d41u, 0x00002d50u, 0x0004003du, 0x000001b1u, 0x00002d52u, 0x00002d51u, 0x00040072u, + 0x000000f2u, 0x00002d53u, 0x00002d52u, 0x00050051u, 0x00000008u, 0x00002d55u, 0x00002d53u, 0x00000001u, + 0x00050084u, 0x00000008u, 0x00002d57u, 0x00002d55u, 0x00002d4eu, 0x000500c3u, 0x00000008u, 0x00002d58u, + 0x00002d57u, 0x00000268u, 0x00050051u, 0x00000008u, 0x00002d5au, 0x00002d53u, 0x00000000u, 0x00050080u, + 0x00000008u, 0x00002d5bu, 0x00002d58u, 0x00002d5au, 0x0007004fu, 0x000000f2u, 0x00002cefu, 0x00002b89u, + 0x00002b89u, 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x00002cf2u, 0x00002d5bu, 0x00002d5bu, + 0x00050084u, 0x000000f2u, 0x00002cf3u, 0x00002cefu, 0x00002cf2u, 0x000500c3u, 0x00000008u, 0x00002cf5u, + 0x00000c30u, 0x00002d48u, 0x0004007eu, 0x00000008u, 0x00002cf6u, 0x00002cf5u, 0x000500c7u, 0x00000008u, + 0x00002cf7u, 0x00000c2fu, 0x00002cf6u, 0x00050050u, 0x000000f2u, 0x00002cfau, 0x00002cf7u, 0x00002cf7u, + 0x000500c7u, 0x000000f2u, 0x00002cfbu, 0x00002cf3u, 0x00002cfau, 0x000500abu, 0x00000069u, 0x00002cfdu, + 0x00002d48u, 0x00000274u, 0x000300f7u, 0x00002d08u, 0x00000000u, 0x000400fau, 0x00002cfdu, 0x00002cfeu, + 0x00002d04u, 0x000200f8u, 0x00002d04u, 0x000500c4u, 0x000000f2u, 0x00002d07u, 0x00002cf3u, 0x0000c212u, + 0x000200f9u, 0x00002d08u, 0x000200f8u, 0x00002cfeu, 0x00050082u, 0x00000008u, 0x00002d01u, 0x00000271u, + 0x00002d48u, 0x00050050u, 0x000000f2u, 0x00002d02u, 0x00002d01u, 0x00002d01u, 0x000500c3u, 0x000000f2u, + 0x00002d03u, 0x00002cf3u, 0x00002d02u, 0x000200f9u, 0x00002d08u, 0x000200f8u, 0x00002d08u, 0x000700f5u, + 0x000000f2u, 0x00007afau, 0x00002d03u, 0x00002cfeu, 0x00002d07u, 0x00002d04u, 0x000700f5u, 0x000000f2u, + 0x00007af8u, 0x00002d03u, 0x00002cfeu, 0x00002cf3u, 0x00002d04u, 0x000500abu, 0x00000884u, 0x00002d0au, + 0x00002cfbu, 0x00000c49u, 0x0004009au, 0x00000069u, 0x00002d0bu, 0x00002d0au, 0x000300f7u, 0x00002d37u, + 0x00000000u, 0x000400fau, 0x00002d0bu, 0x00002d0cu, 0x00002d37u, 0x000200f8u, 0x00002d0cu, 0x00050051u, + 0x00000008u, 0x00002d0eu, 0x00002cfbu, 0x00000000u, 0x000500abu, 0x00000069u, 0x00002d10u, 0x00002d0eu, + 0x00002cf7u, 0x000300f7u, 0x00002d15u, 0x00000000u, 0x000400fau, 0x00002d10u, 0x00002d11u, 0x00002d15u, + 0x000200f8u, 0x00002d11u, 0x000500abu, 0x00000069u, 0x00002d14u, 0x00002d0eu, 0x00000225u, 0x000200f9u, + 0x00002d15u, 0x000200f8u, 0x00002d15u, 0x000700f5u, 0x00000069u, 0x00002d16u, 0x00002d10u, 0x00002d0cu, + 0x00002d14u, 0x00002d11u, 0x000300f7u, 0x00002d21u, 0x00000000u, 0x000400fau, 0x00002d16u, 0x00002d17u, + 0x00002d21u, 0x000200f8u, 0x00002d17u, 0x00050051u, 0x00000008u, 0x00002d19u, 0x00007af8u, 0x00000000u, + 0x000500c7u, 0x00000008u, 0x00002d1au, 0x00002d19u, 0x00000c30u, 0x000500aau, 0x00000069u, 0x00002d1bu, + 0x00002d1au, 0x00000225u, 0x000300f7u, 0x00002d20u, 0x00000000u, 0x000400fau, 0x00002d1bu, 0x00002d1cu, + 0x00002d1eu, 0x000200f8u, 0x00002d1eu, 0x00060052u, 0x000000f2u, 0x00007691u, 0x00000c62u, 0x00007afau, + 0x00000000u, 0x000200f9u, 0x00002d20u, 0x000200f8u, 0x00002d1cu, 0x00060052u, 0x000000f2u, 0x0000768fu, + 0x00000c1du, 0x00007afau, 0x00000000u, 0x000200f9u, 0x00002d20u, 0x000200f8u, 0x00002d20u, 0x000700f5u, + 0x000000f2u, 0x00007b00u, 0x0000768fu, 0x00002d1cu, 0x00007691u, 0x00002d1eu, 0x000200f9u, 0x00002d21u, + 0x000200f8u, 0x00002d21u, 0x000700f5u, 0x000000f2u, 0x00007affu, 0x00007afau, 0x00002d15u, 0x00007b00u, + 0x00002d20u, 0x000600a9u, 0x00000069u, 0x0000c244u, 0x00002d16u, 0x0000055eu, 0x0000c241u, 0x00050051u, + 0x00000008u, 0x00002d23u, 0x00002cfbu, 0x00000001u, 0x000500abu, 0x00000069u, 0x00002d25u, 0x00002d23u, + 0x00002cf7u, 0x000300f7u, 0x00002d2au, 0x00000000u, 0x000400fau, 0x00002d25u, 0x00002d26u, 0x00002d2au, + 0x000200f8u, 0x00002d26u, 0x000500abu, 0x00000069u, 0x00002d29u, 0x00002d23u, 0x00000225u, 0x000200f9u, + 0x00002d2au, 0x000200f8u, 0x00002d2au, 0x000700f5u, 0x00000069u, 0x00002d2bu, 0x00002d25u, 0x00002d21u, + 0x00002d29u, 0x00002d26u, 0x000300f7u, 0x00002d36u, 0x00000000u, 0x000400fau, 0x00002d2bu, 0x00002d2cu, + 0x00002d36u, 0x000200f8u, 0x00002d2cu, 0x00050051u, 0x00000008u, 0x00002d2eu, 0x00007af8u, 0x00000001u, + 0x000500c7u, 0x00000008u, 0x00002d2fu, 0x00002d2eu, 0x00000c30u, 0x000500aau, 0x00000069u, 0x00002d30u, + 0x00002d2fu, 0x00000225u, 0x000300f7u, 0x00002d35u, 0x00000000u, 0x000400fau, 0x00002d30u, 0x00002d31u, + 0x00002d33u, 0x000200f8u, 0x00002d33u, 0x00060052u, 0x000000f2u, 0x00007698u, 0x00000c62u, 0x00007affu, + 0x00000001u, 0x000200f9u, 0x00002d35u, 0x000200f8u, 0x00002d31u, 0x00060052u, 0x000000f2u, 0x00007696u, + 0x00000c1du, 0x00007affu, 0x00000001u, 0x000200f9u, 0x00002d35u, 0x000200f8u, 0x00002d35u, 0x000700f5u, + 0x000000f2u, 0x00007b04u, 0x00007696u, 0x00002d31u, 0x00007698u, 0x00002d33u, 0x000200f9u, 0x00002d36u, + 0x000200f8u, 0x00002d36u, 0x000700f5u, 0x000000f2u, 0x00007b03u, 0x00007affu, 0x00002d2au, 0x00007b04u, + 0x00002d35u, 0x000600a9u, 0x00000069u, 0x0000c245u, 0x00002d2bu, 0x0000055eu, 0x0000c244u, 0x000200f9u, + 0x00002d37u, 0x000200f8u, 0x00002d37u, 0x000700f5u, 0x00000069u, 0x00007b06u, 0x0000c241u, 0x00002d08u, + 0x0000c245u, 0x00002d36u, 0x000700f5u, 0x000000f2u, 0x00007b02u, 0x00007afau, 0x00002d08u, 0x00007b03u, + 0x00002d36u, 0x000600a9u, 0x00000069u, 0x0000c246u, 0x00002ce7u, 0x0000055eu, 0x00007b06u, 0x00050050u, + 0x00000884u, 0x0000c247u, 0x00002ce7u, 0x00002ce7u, 0x000600a9u, 0x000000f2u, 0x0000c248u, 0x0000c247u, + 0x00000c7cu, 0x00007b02u, 0x0008000cu, 0x000000f2u, 0x00002d3cu, 0x00000001u, 0x0000002du, 0x0000c248u, + 0x00000c7fu, 0x00000c80u, 0x000200f9u, 0x00002b8du, 0x000200f8u, 0x00002b8du, 0x000700f5u, 0x00000069u, + 0x00007b60u, 0x0000c23cu, 0x00002c2bu, 0x0000c246u, 0x00002d37u, 0x000700f5u, 0x000000f2u, 0x00007b46u, + 0x00007b50u, 0x00002c2bu, 0x00002d3cu, 0x00002d37u, 0x000700f5u, 0x000000f2u, 0x00007b22u, 0x00007b2cu, + 0x00002c2bu, 0x00002cb6u, 0x00002d37u, 0x000200f9u, 0x00002b9eu, 0x000200f8u, 0x00002b9eu, 0x000700f5u, + 0x00000069u, 0x00007b5fu, 0x00007b60u, 0x00002b8du, 0x0000053bu, 0x00002b9du, 0x000700f5u, 0x000000f2u, + 0x00007b45u, 0x00007b46u, 0x00002b8du, 0x00007b5eu, 0x00002b9du, 0x000700f5u, 0x000000f2u, 0x00007b21u, + 0x00007b22u, 0x00002b8du, 0x00007b44u, 0x00002b9du, 0x000700f5u, 0x000000f2u, 0x00007b0cu, 0x00002c30u, + 0x00002b8du, 0x00002d62u, 0x00002b9du, 0x00050051u, 0x00000008u, 0x00002ba0u, 0x00002556u, 0x00000002u, + 0x00050051u, 0x00000008u, 0x00002ba2u, 0x00002577u, 0x00000002u, 0x000500c3u, 0x00000008u, 0x00002ba4u, + 0x000023d4u, 0x0000084fu, 0x00050084u, 0x00000008u, 0x00002ba5u, 0x00002ba2u, 0x00002ba4u, 0x00050080u, + 0x00000008u, 0x00002ba6u, 0x00002ba0u, 0x00002ba5u, 0x000500c3u, 0x00000008u, 0x00002ba9u, 0x00002ba2u, + 0x0000084fu, 0x000500c7u, 0x00000008u, 0x00002babu, 0x000023d4u, 0x00000d9cu, 0x00050084u, 0x00000008u, + 0x00002bacu, 0x00002ba9u, 0x00002babu, 0x00050080u, 0x00000008u, 0x00002badu, 0x00002ba6u, 0x00002bacu, + 0x000500c3u, 0x00000008u, 0x00002bafu, 0x00002badu, 0x00000268u, 0x000500c7u, 0x00000008u, 0x00002bb8u, + 0x00002afdu, 0x0000022fu, 0x00050080u, 0x00000008u, 0x00002bb9u, 0x00002b01u, 0x00002bb8u, 0x000500c4u, + 0x00000008u, 0x00002bbbu, 0x00002bafu, 0x00000db0u, 0x000500c3u, 0x00000008u, 0x00002bbfu, 0x00002ba2u, + 0x00000268u, 0x00050084u, 0x00000008u, 0x00002bc0u, 0x00002bb9u, 0x00002bbfu, 0x00050051u, 0x00000008u, + 0x00002bc3u, 0x0000257bu, 0x00000002u, 0x000500c3u, 0x00000008u, 0x00002bc4u, 0x00002bc3u, 0x00000268u, + 0x00050084u, 0x00000008u, 0x00002bc5u, 0x00002afdu, 0x00002bc4u, 0x00050080u, 0x00000008u, 0x00002bc6u, + 0x00002bc0u, 0x00002bc5u, 0x00050080u, 0x00000008u, 0x00002bc8u, 0x00002bbbu, 0x00002bc6u, 0x000500c3u, + 0x00000008u, 0x00002bcau, 0x00002bc8u, 0x00000dc0u, 0x00050082u, 0x00000008u, 0x00002d6eu, 0x00002bcau, + 0x00000b23u, 0x000500c4u, 0x00000008u, 0x00002d70u, 0x00002d6eu, 0x00000271u, 0x000500c3u, 0x00000008u, + 0x00002d72u, 0x00002d70u, 0x00000271u, 0x00050080u, 0x00000008u, 0x00002d74u, 0x00002d72u, 0x00000b23u, + 0x0008000cu, 0x00000008u, 0x00002d76u, 0x00000001u, 0x0000002du, 0x00002d74u, 0x00000225u, 0x000003f2u, + 0x000500c7u, 0x00000006u, 0x000023ffu, 0x000022f8u, 0x00000747u, 0x00050080u, 0x00000006u, 0x00002401u, + 0x000023ffu, 0x00000461u, 0x000500c7u, 0x00000006u, 0x00002402u, 0x00002401u, 0x00000747u, 0x000500c2u, + 0x00000006u, 0x00002404u, 0x000022f8u, 0x00000469u, 0x00040071u, 0x00000006u, 0x00002407u, 0x00002ae0u, + 0x0004007cu, 0x00000008u, 0x00002408u, 0x00002407u, 0x000300f7u, 0x0000241au, 0x00000000u, 0x000400fau, + 0x0000234fu, 0x0000240au, 0x0000241au, 0x000200f8u, 0x0000240au, 0x000300f7u, 0x00002dd5u, 0x00000000u, + 0x000400fau, 0x00007b5fu, 0x00002d81u, 0x00002d82u, 0x000200f8u, 0x00002d82u, 0x00050082u, 0x000000f2u, + 0x00002d85u, 0x00007b21u, 0x00007b0cu, 0x000500c3u, 0x000000f2u, 0x00002d88u, 0x00002d85u, 0x0000c215u, + 0x000500c6u, 0x000000f2u, 0x00002d8au, 0x00002d85u, 0x00002d88u, 0x00050082u, 0x000000f2u, 0x00002d8du, + 0x00007b45u, 0x00007b0cu, 0x000500c3u, 0x000000f2u, 0x00002d90u, 0x00002d8du, 0x0000c215u, 0x000500c6u, + 0x000000f2u, 0x00002d92u, 0x00002d8du, 0x00002d90u, 0x0007000cu, 0x000000f2u, 0x00002d95u, 0x00000001u, + 0x0000002au, 0x00002d8au, 0x00002d92u, 0x00050051u, 0x00000008u, 0x00002d97u, 0x00002d95u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00002d99u, 0x00002d95u, 0x00000001u, 0x0007000cu, 0x00000008u, 0x00002d9au, + 0x00000001u, 0x0000002au, 0x00002d97u, 0x00002d99u, 0x000500afu, 0x00000069u, 0x00002d9cu, 0x00002d9au, + 0x00001a10u, 0x000300f7u, 0x00002dd4u, 0x00000000u, 0x000400fau, 0x00002d9cu, 0x00002d9du, 0x00002d9fu, + 0x000200f8u, 0x00002d9fu, 0x000500b1u, 0x00000069u, 0x00002da1u, 0x00002d9au, 0x0000115fu, 0x000300f7u, + 0x00002dd3u, 0x00000000u, 0x000400fau, 0x00002da1u, 0x00002da2u, 0x00002db8u, 0x000200f8u, 0x00002db8u, + 0x000500c3u, 0x00000008u, 0x00002dbau, 0x00002d9au, 0x0000023bu, 0x0006000cu, 0x00000008u, 0x00002dbbu, + 0x00000001u, 0x0000004au, 0x00002dbau, 0x0007000cu, 0x00000008u, 0x00002dbcu, 0x00000001u, 0x0000002au, + 0x00002dbbu, 0x00000225u, 0x0004007cu, 0x00000006u, 0x00002dbeu, 0x00002dbcu, 0x000500aeu, 0x00000069u, + 0x00002dc0u, 0x00002dbeu, 0x00002404u, 0x000400a8u, 0x00000069u, 0x00002dc3u, 0x00002328u, 0x000500a7u, + 0x00000069u, 0x00002dc4u, 0x00002dc0u, 0x00002dc3u, 0x000400a8u, 0x00000069u, 0x00002dc6u, 0x0000232bu, + 0x000500a7u, 0x00000069u, 0x00002dc7u, 0x00002dc4u, 0x00002dc6u, 0x000300f7u, 0x00002dd2u, 0x00000000u, + 0x000400fau, 0x00002dc7u, 0x00002dc8u, 0x00002dc9u, 0x000200f8u, 0x00002dc9u, 0x000500c4u, 0x00000008u, + 0x00002dcbu, 0x00002d9au, 0x00000235u, 0x000500c3u, 0x00000008u, 0x00002dcdu, 0x00002dcbu, 0x00002dbcu, + 0x000500c7u, 0x00000008u, 0x00002dceu, 0x00002dcdu, 0x00000363u, 0x00040072u, 0x00000012u, 0x00002dcfu, + 0x00002dceu, 0x000200f9u, 0x00002dd2u, 0x000200f8u, 0x00002dc8u, 0x000200f9u, 0x00002dd2u, 0x000200f8u, + 0x00002dd2u, 0x000700f5u, 0x00000012u, 0x00007b8bu, 0x000019f1u, 0x00002dc8u, 0x00002dcfu, 0x00002dc9u, + 0x000600a9u, 0x00000006u, 0x0000c249u, 0x00002dc7u, 0x00000332u, 0x00002dbeu, 0x000200f9u, 0x00002dd3u, + 0x000200f8u, 0x00002da2u, 0x000500aau, 0x00000069u, 0x00002da4u, 0x00002404u, 0x00000332u, 0x000400a8u, + 0x00000069u, 0x00002da6u, 0x00002328u, 0x000400a8u, 0x00000069u, 0x00002da8u, 0x0000232bu, 0x000500a7u, + 0x00000069u, 0x00002da9u, 0x00002da6u, 0x00002da8u, 0x000300f7u, 0x00002db7u, 0x00000000u, 0x000400fau, + 0x00002da9u, 0x00002daau, 0x00002daeu, 0x000200f8u, 0x00002daeu, 0x0007000cu, 0x00000008u, 0x00002db1u, + 0x00000001u, 0x0000002au, 0x00002408u, 0x00002d9au, 0x000500c4u, 0x00000008u, 0x00002db2u, 0x00002db1u, + 0x00000235u, 0x000600a9u, 0x00000008u, 0x00002db4u, 0x00002328u, 0x00001a2cu, 0x00000225u, 0x00050080u, + 0x00000008u, 0x00002db5u, 0x00002db2u, 0x00002db4u, 0x00040072u, 0x00000012u, 0x00002db6u, 0x00002db5u, + 0x000200f9u, 0x00002db7u, 0x000200f8u, 0x00002daau, 0x000600a9u, 0x00000008u, 0x00002dacu, 0x00002da4u, + 0x00000363u, 0x00000225u, 0x00040072u, 0x00000012u, 0x00002dadu, 0x00002dacu, 0x000200f9u, 0x00002db7u, + 0x000200f8u, 0x00002db7u, 0x000700f5u, 0x00000012u, 0x00007b8au, 0x00002dadu, 0x00002daau, 0x00002db6u, + 0x00002daeu, 0x000200f9u, 0x00002dd3u, 0x000200f8u, 0x00002dd3u, 0x000700f5u, 0x00000012u, 0x00007b89u, + 0x00007b8au, 0x00002db7u, 0x00007b8bu, 0x00002dd2u, 0x000700f5u, 0x00000006u, 0x00007b70u, 0x00000332u, + 0x00002db7u, 0x0000c249u, 0x00002dd2u, 0x000700f5u, 0x00000069u, 0x00007b64u, 0x00002da4u, 0x00002db7u, + 0x00002dc0u, 0x00002dd2u, 0x000600a9u, 0x00000069u, 0x0000c24au, 0x00002da1u, 0x0000055eu, 0x0000053bu, + 0x000200f9u, 0x00002dd4u, 0x000200f8u, 0x00002d9du, 0x000200f9u, 0x00002dd4u, 0x000200f8u, 0x00002dd4u, + 0x000700f5u, 0x00000012u, 0x00007b88u, 0x000019f1u, 0x00002d9du, 0x00007b89u, 0x00002dd3u, 0x000700f5u, + 0x00000069u, 0x00007b76u, 0x0000053bu, 0x00002d9du, 0x0000c24au, 0x00002dd3u, 0x000700f5u, 0x00000006u, + 0x00007b6fu, 0x00002404u, 0x00002d9du, 0x00007b70u, 0x00002dd3u, 0x000700f5u, 0x00000069u, 0x00007b63u, + 0x0000055eu, 0x00002d9du, 0x00007b64u, 0x00002dd3u, 0x000200f9u, 0x00002dd5u, 0x000200f8u, 0x00002d81u, + 0x000200f9u, 0x00002dd5u, 0x000200f8u, 0x00002dd5u, 0x000700f5u, 0x00000012u, 0x00007b87u, 0x000019f1u, + 0x00002d81u, 0x00007b88u, 0x00002dd4u, 0x000700f5u, 0x00000069u, 0x00007b75u, 0x0000053bu, 0x00002d81u, + 0x00007b76u, 0x00002dd4u, 0x000700f5u, 0x00000006u, 0x00007b6eu, 0x00000332u, 0x00002d81u, 0x00007b6fu, + 0x00002dd4u, 0x000700f5u, 0x00000069u, 0x00007b62u, 0x0000055eu, 0x00002d81u, 0x00007b63u, 0x00002dd4u, + 0x000300f7u, 0x00002e07u, 0x00000000u, 0x000400fau, 0x00002325u, 0x00002dd7u, 0x00002e07u, 0x000200f8u, + 0x00002dd7u, 0x000600a9u, 0x00000006u, 0x0000c24bu, 0x00007b62u, 0x00002404u, 0x00007b6eu, 0x000400a8u, + 0x00000069u, 0x00002dddu, 0x0000232bu, 0x000300f7u, 0x00002e06u, 0x00000000u, 0x000400fau, 0x00002dddu, + 0x00002ddeu, 0x00002df3u, 0x000200f8u, 0x00002df3u, 0x00050080u, 0x00000006u, 0x00002df6u, 0x000023ffu, + 0x0000c24bu, 0x000500a6u, 0x00000069u, 0x00002df9u, 0x00007b62u, 0x00007b75u, 0x000600a9u, 0x00000008u, + 0x00002dfau, 0x00002df9u, 0x0000022fu, 0x00000232u, 0x0004007cu, 0x00000006u, 0x00002dfbu, 0x00002dfau, + 0x00050080u, 0x00000006u, 0x00002dfcu, 0x00002df6u, 0x00002dfbu, 0x000500c7u, 0x00000006u, 0x00002dfdu, + 0x00002dfcu, 0x00000747u, 0x000600a9u, 0x00000008u, 0x00002e02u, 0x00007b75u, 0x00000225u, 0x0000022fu, + 0x0004007cu, 0x00000006u, 0x00002e03u, 0x00002e02u, 0x00050080u, 0x00000006u, 0x00002e04u, 0x00002df6u, + 0x00002e03u, 0x000500c7u, 0x00000006u, 0x00002e05u, 0x00002e04u, 0x00000747u, 0x000200f9u, 0x00002e06u, + 0x000200f8u, 0x00002ddeu, 0x00050080u, 0x00000006u, 0x00002de1u, 0x000023ffu, 0x0000c24bu, 0x000500c7u, + 0x00000006u, 0x00002de2u, 0x00002de1u, 0x00000747u, 0x000400a8u, 0x00000069u, 0x00002de4u, 0x00007b62u, + 0x000300f7u, 0x00002deau, 0x00000000u, 0x000400fau, 0x00002de4u, 0x00002de5u, 0x00002deau, 0x000200f8u, + 0x00002de5u, 0x000400a8u, 0x00000069u, 0x00002de7u, 0x00002328u, 0x000500a7u, 0x00000069u, 0x00002de9u, + 0x00002de7u, 0x00007b75u, 0x000200f9u, 0x00002deau, 0x000200f8u, 0x00002deau, 0x000700f5u, 0x00000069u, + 0x00002debu, 0x00007b62u, 0x00002ddeu, 0x00002de9u, 0x00002de5u, 0x000300f7u, 0x00002df2u, 0x00000000u, + 0x000400fau, 0x00002debu, 0x00002decu, 0x00002deeu, 0x000200f8u, 0x00002deeu, 0x00050080u, 0x00000006u, + 0x00002df0u, 0x00002de2u, 0x00000461u, 0x000500c7u, 0x00000006u, 0x00002df1u, 0x00002df0u, 0x00000747u, + 0x000200f9u, 0x00002df2u, 0x000200f8u, 0x00002decu, 0x000200f9u, 0x00002df2u, 0x000200f8u, 0x00002df2u, + 0x000700f5u, 0x00000006u, 0x00007b85u, 0x00002de2u, 0x00002decu, 0x00002df1u, 0x00002deeu, 0x000200f9u, + 0x00002e06u, 0x000200f8u, 0x00002e06u, 0x000700f5u, 0x00000006u, 0x00007b84u, 0x00007b85u, 0x00002df2u, + 0x00002dfdu, 0x00002df3u, 0x000700f5u, 0x00000006u, 0x00007b7cu, 0x00002de2u, 0x00002df2u, 0x00002e05u, + 0x00002df3u, 0x000200f9u, 0x00002e07u, 0x000200f8u, 0x00002e07u, 0x000700f5u, 0x00000006u, 0x00007b7eu, + 0x00002402u, 0x00002dd5u, 0x00007b84u, 0x00002e06u, 0x000700f5u, 0x00000006u, 0x00007b7bu, 0x000023ffu, + 0x00002dd5u, 0x00007b7cu, 0x00002e06u, 0x000200f9u, 0x0000241au, 0x000200f8u, 0x0000241au, 0x000700f5u, + 0x00000012u, 0x00008aa2u, 0x00008aaeu, 0x00002b9eu, 0x00007b87u, 0x00002e07u, 0x000700f5u, 0x00000006u, + 0x00008128u, 0x00002402u, 0x00002b9eu, 0x00007b7eu, 0x00002e07u, 0x000700f5u, 0x00000006u, 0x00007b90u, + 0x000023ffu, 0x00002b9eu, 0x00007b7bu, 0x00002e07u, 0x000300f7u, 0x0000242fu, 0x00000000u, 0x000400fau, + 0x00002346u, 0x0000241cu, 0x0000242fu, 0x000200f8u, 0x0000241cu, 0x00080041u, 0x00000676u, 0x0000241fu, + 0x00000a1fu, 0x00000225u, 0x000020dcu, 0x00000232u, 0x00007b90u, 0x0004003du, 0x0000000fu, 0x00002420u, + 0x0000241fu, 0x00040071u, 0x00000006u, 0x00002421u, 0x00002420u, 0x00060041u, 0x000002b9u, 0x00002e0cu, + 0x000002b7u, 0x00000225u, 0x00002421u, 0x0004003du, 0x000002b3u, 0x00002e0du, 0x00002e0cu, 0x00050051u, + 0x00000006u, 0x00002e0eu, 0x00002e0du, 0x00000000u, 0x00050051u, 0x00000006u, 0x00002e10u, 0x00002e0du, + 0x00000001u, 0x00050051u, 0x00000006u, 0x00002e12u, 0x00002e0du, 0x00000002u, 0x00050051u, 0x00000006u, + 0x00002e14u, 0x00002e0du, 0x00000003u, 0x00050051u, 0x00000006u, 0x00002e16u, 0x00002e0du, 0x00000004u, + 0x00050051u, 0x00000006u, 0x00002e18u, 0x00002e0du, 0x00000005u, 0x00050051u, 0x0000000fu, 0x00002e1au, + 0x00002e0du, 0x00000006u, 0x00050051u, 0x0000000fu, 0x00002e1cu, 0x00002e0du, 0x00000007u, 0x00050051u, + 0x0000000fu, 0x00002e1eu, 0x00002e0du, 0x00000008u, 0x00050051u, 0x0000000fu, 0x00002e20u, 0x00002e0du, + 0x00000009u, 0x00050051u, 0x0000000fu, 0x00002e22u, 0x00002e0du, 0x0000000au, 0x00050051u, 0x0000000fu, + 0x00002e24u, 0x00002e0du, 0x0000000bu, 0x00050051u, 0x0000000fu, 0x00002e26u, 0x00002e0du, 0x0000000cu, + 0x00050051u, 0x0000000fu, 0x00002e28u, 0x00002e0du, 0x0000000du, 0x00040071u, 0x00000006u, 0x00002f84u, + 0x00002e28u, 0x0004007cu, 0x00000008u, 0x00002f85u, 0x00002f84u, 0x000500c7u, 0x00000008u, 0x00002f86u, + 0x00002f85u, 0x0000022fu, 0x000500abu, 0x00000069u, 0x00002f87u, 0x00002f86u, 0x00000225u, 0x0004007cu, + 0x00000008u, 0x00002f8au, 0x00002e0eu, 0x0004007cu, 0x00000008u, 0x00002f8du, 0x00002e10u, 0x00040071u, + 0x00000006u, 0x00002f90u, 0x00002e22u, 0x0004007cu, 0x00000008u, 0x00002f91u, 0x00002f90u, 0x00050051u, + 0x00000008u, 0x00002f93u, 0x00007b0cu, 0x00000000u, 0x0008000cu, 0x00000008u, 0x0000346eu, 0x00000001u, + 0x0000002du, 0x00002f93u, 0x00000c62u, 0x00000c1du, 0x000500b1u, 0x00000069u, 0x00003470u, 0x00002f91u, + 0x0000026bu, 0x000300f7u, 0x0000347cu, 0x00000000u, 0x000400fau, 0x00003470u, 0x00003471u, 0x00003475u, + 0x000200f8u, 0x00003475u, 0x00050082u, 0x00000008u, 0x00003477u, 0x0000115fu, 0x00002f91u, 0x000500c4u, + 0x00000008u, 0x00003479u, 0x0000346eu, 0x00003477u, 0x000500c3u, 0x00000008u, 0x0000347bu, 0x00003479u, + 0x00000559u, 0x000200f9u, 0x0000347cu, 0x000200f8u, 0x00003471u, 0x000500c3u, 0x00000008u, 0x00003474u, + 0x0000346eu, 0x00002f91u, 0x000200f9u, 0x0000347cu, 0x000200f8u, 0x0000347cu, 0x000700f5u, 0x00000008u, + 0x00007b9cu, 0x00003474u, 0x00003471u, 0x0000347bu, 0x00003475u, 0x000300f7u, 0x00003498u, 0x00000000u, + 0x000400fau, 0x00002f87u, 0x0000347eu, 0x00003493u, 0x000200f8u, 0x00003493u, 0x000500c4u, 0x00000008u, + 0x00003495u, 0x00002f8au, 0x00000235u, 0x00050082u, 0x00000008u, 0x00003497u, 0x00007b9cu, 0x00003495u, + 0x000200f9u, 0x00003498u, 0x000200f8u, 0x0000347eu, 0x000500c3u, 0x00000008u, 0x00003480u, 0x00007b9cu, + 0x00000235u, 0x000500afu, 0x00000069u, 0x00003482u, 0x00003480u, 0x00002f8du, 0x000300f7u, 0x00003492u, + 0x00000000u, 0x000400fau, 0x00003482u, 0x00003484u, 0x0000348cu, 0x000200f8u, 0x0000348cu, 0x000500c4u, + 0x00000008u, 0x0000348fu, 0x00002f8au, 0x00000235u, 0x00050082u, 0x00000008u, 0x00003490u, 0x00007b9cu, + 0x0000348fu, 0x0007000cu, 0x00000008u, 0x00003491u, 0x00000001u, 0x0000002au, 0x00003490u, 0x00000225u, + 0x000200f9u, 0x00003492u, 0x000200f8u, 0x00003484u, 0x000500c3u, 0x00000008u, 0x00003486u, 0x00002f8du, + 0x00000232u, 0x000500c3u, 0x00000008u, 0x00003488u, 0x00002f8au, 0x00000232u, 0x00050082u, 0x00000008u, + 0x00003489u, 0x00003486u, 0x00003488u, 0x000500c7u, 0x00000008u, 0x0000348au, 0x00003489u, 0x00001176u, + 0x000500c4u, 0x00000008u, 0x0000348bu, 0x0000348au, 0x0000023bu, 0x000200f9u, 0x00003492u, 0x000200f8u, + 0x00003492u, 0x000700f5u, 0x00000008u, 0x00007b9eu, 0x0000348bu, 0x00003484u, 0x00003491u, 0x0000348cu, + 0x000200f9u, 0x00003498u, 0x000200f8u, 0x00003498u, 0x000700f5u, 0x00000008u, 0x00007b9du, 0x00007b9eu, + 0x00003492u, 0x00003497u, 0x00003493u, 0x000500c7u, 0x00000008u, 0x00002f9au, 0x00002f85u, 0x00000238u, + 0x000500abu, 0x00000069u, 0x00002f9bu, 0x00002f9au, 0x00000225u, 0x0004007cu, 0x00000008u, 0x00002f9eu, + 0x00002e12u, 0x0004007cu, 0x00000008u, 0x00002fa1u, 0x00002e14u, 0x00040071u, 0x00000006u, 0x00002fa4u, + 0x00002e26u, 0x0004007cu, 0x00000008u, 0x00002fa5u, 0x00002fa4u, 0x00050051u, 0x00000008u, 0x00002fa7u, + 0x00007b0cu, 0x00000001u, 0x0008000cu, 0x00000008u, 0x0000349eu, 0x00000001u, 0x0000002du, 0x00002fa7u, + 0x00000c62u, 0x00000c1du, 0x000500b1u, 0x00000069u, 0x000034a0u, 0x00002fa5u, 0x0000026bu, 0x000300f7u, + 0x000034acu, 0x00000000u, 0x000400fau, 0x000034a0u, 0x000034a1u, 0x000034a5u, 0x000200f8u, 0x000034a5u, + 0x00050082u, 0x00000008u, 0x000034a7u, 0x0000115fu, 0x00002fa5u, 0x000500c4u, 0x00000008u, 0x000034a9u, + 0x0000349eu, 0x000034a7u, 0x000500c3u, 0x00000008u, 0x000034abu, 0x000034a9u, 0x00000559u, 0x000200f9u, + 0x000034acu, 0x000200f8u, 0x000034a1u, 0x000500c3u, 0x00000008u, 0x000034a4u, 0x0000349eu, 0x00002fa5u, + 0x000200f9u, 0x000034acu, 0x000200f8u, 0x000034acu, 0x000700f5u, 0x00000008u, 0x00007ba2u, 0x000034a4u, + 0x000034a1u, 0x000034abu, 0x000034a5u, 0x000300f7u, 0x000034c8u, 0x00000000u, 0x000400fau, 0x00002f9bu, + 0x000034aeu, 0x000034c3u, 0x000200f8u, 0x000034c3u, 0x000500c4u, 0x00000008u, 0x000034c5u, 0x00002f9eu, + 0x00000235u, 0x00050082u, 0x00000008u, 0x000034c7u, 0x00007ba2u, 0x000034c5u, 0x000200f9u, 0x000034c8u, + 0x000200f8u, 0x000034aeu, 0x000500c3u, 0x00000008u, 0x000034b0u, 0x00007ba2u, 0x00000235u, 0x000500afu, + 0x00000069u, 0x000034b2u, 0x000034b0u, 0x00002fa1u, 0x000300f7u, 0x000034c2u, 0x00000000u, 0x000400fau, + 0x000034b2u, 0x000034b4u, 0x000034bcu, 0x000200f8u, 0x000034bcu, 0x000500c4u, 0x00000008u, 0x000034bfu, + 0x00002f9eu, 0x00000235u, 0x00050082u, 0x00000008u, 0x000034c0u, 0x00007ba2u, 0x000034bfu, 0x0007000cu, + 0x00000008u, 0x000034c1u, 0x00000001u, 0x0000002au, 0x000034c0u, 0x00000225u, 0x000200f9u, 0x000034c2u, + 0x000200f8u, 0x000034b4u, 0x000500c3u, 0x00000008u, 0x000034b6u, 0x00002fa1u, 0x00000232u, 0x000500c3u, + 0x00000008u, 0x000034b8u, 0x00002f9eu, 0x00000232u, 0x00050082u, 0x00000008u, 0x000034b9u, 0x000034b6u, + 0x000034b8u, 0x000500c7u, 0x00000008u, 0x000034bau, 0x000034b9u, 0x00001176u, 0x000500c4u, 0x00000008u, + 0x000034bbu, 0x000034bau, 0x0000023bu, 0x000200f9u, 0x000034c2u, 0x000200f8u, 0x000034c2u, 0x000700f5u, + 0x00000008u, 0x00007ba4u, 0x000034bbu, 0x000034b4u, 0x000034c1u, 0x000034bcu, 0x000200f9u, 0x000034c8u, + 0x000200f8u, 0x000034c8u, 0x000700f5u, 0x00000008u, 0x00007ba3u, 0x00007ba4u, 0x000034c2u, 0x000034c7u, + 0x000034c3u, 0x00050050u, 0x000000f2u, 0x0000c22fu, 0x00007b9du, 0x00007ba3u, 0x000500a6u, 0x00000069u, + 0x00002facu, 0x00002319u, 0x00002313u, 0x000300f7u, 0x00002fb2u, 0x00000000u, 0x000400fau, 0x00002facu, + 0x00002fadu, 0x00002fb1u, 0x000200f8u, 0x00002fb1u, 0x000200f9u, 0x00002fb2u, 0x000200f8u, 0x00002fadu, + 0x000500c7u, 0x000000f2u, 0x00002fb0u, 0x0000c22fu, 0x0000c215u, 0x000200f9u, 0x00002fb2u, 0x000200f8u, + 0x00002fb2u, 0x000700f5u, 0x000000f2u, 0x00007ba8u, 0x00002fb0u, 0x00002fadu, 0x00000c49u, 0x00002fb1u, + 0x00050051u, 0x00000008u, 0x00002fb4u, 0x00007ba8u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00002fb6u, + 0x00007ba8u, 0x00000001u, 0x00050080u, 0x00000008u, 0x00002fb7u, 0x00002fb4u, 0x00002fb6u, 0x000500c3u, + 0x000000f2u, 0x00002fbau, 0x0000c22fu, 0x0000c214u, 0x00050051u, 0x00000008u, 0x00002fbdu, 0x00002fbau, + 0x00000000u, 0x00040071u, 0x00000006u, 0x000034cfu, 0x00002e20u, 0x0004007cu, 0x00000008u, 0x000034d0u, + 0x000034cfu, 0x000500abu, 0x00000069u, 0x000034d1u, 0x000034d0u, 0x00000225u, 0x000300f7u, 0x000034e9u, + 0x00000000u, 0x000400fau, 0x000034d1u, 0x000034d2u, 0x000034e9u, 0x000200f8u, 0x000034d2u, 0x000500c4u, + 0x00000008u, 0x000034d5u, 0x0000022fu, 0x00002e20u, 0x000500c7u, 0x00000008u, 0x000034dau, 0x00002f85u, + 0x00000232u, 0x000500abu, 0x00000069u, 0x000034dbu, 0x000034dau, 0x00000225u, 0x000300f7u, 0x000034e4u, + 0x00000000u, 0x000400fau, 0x000034dbu, 0x000034dcu, 0x000034e4u, 0x000200f8u, 0x000034dcu, 0x000500c7u, + 0x00000008u, 0x000034dfu, 0x00002fbdu, 0x000034d5u, 0x00050082u, 0x00000008u, 0x000034e0u, 0x000034dfu, + 0x0000022fu, 0x0007000cu, 0x00000008u, 0x000034e1u, 0x00000001u, 0x0000002au, 0x000034e0u, 0x00000225u, + 0x000500c6u, 0x00000008u, 0x000034e3u, 0x00002fbdu, 0x000034e1u, 0x000200f9u, 0x000034e4u, 0x000200f8u, + 0x000034e4u, 0x000700f5u, 0x00000008u, 0x00007baau, 0x00002fbdu, 0x000034d2u, 0x000034e3u, 0x000034dcu, + 0x00050082u, 0x00000008u, 0x000034e6u, 0x000034d5u, 0x0000022fu, 0x000500c7u, 0x00000008u, 0x000034e8u, + 0x00007baau, 0x000034e6u, 0x000200f9u, 0x000034e9u, 0x000200f8u, 0x000034e9u, 0x000700f5u, 0x00000008u, + 0x00007babu, 0x00002fbdu, 0x00002fb2u, 0x000034e8u, 0x000034e4u, 0x00050051u, 0x00000008u, 0x00002fc1u, + 0x00002fbau, 0x00000001u, 0x00040071u, 0x00000006u, 0x000034f0u, 0x00002e24u, 0x0004007cu, 0x00000008u, + 0x000034f1u, 0x000034f0u, 0x000500abu, 0x00000069u, 0x000034f2u, 0x000034f1u, 0x00000225u, 0x000300f7u, + 0x0000350au, 0x00000000u, 0x000400fau, 0x000034f2u, 0x000034f3u, 0x0000350au, 0x000200f8u, 0x000034f3u, + 0x000500c4u, 0x00000008u, 0x000034f6u, 0x0000022fu, 0x00002e24u, 0x000500c7u, 0x00000008u, 0x000034fbu, + 0x00002f85u, 0x00000262u, 0x000500abu, 0x00000069u, 0x000034fcu, 0x000034fbu, 0x00000225u, 0x000300f7u, + 0x00003505u, 0x00000000u, 0x000400fau, 0x000034fcu, 0x000034fdu, 0x00003505u, 0x000200f8u, 0x000034fdu, + 0x000500c7u, 0x00000008u, 0x00003500u, 0x00002fc1u, 0x000034f6u, 0x00050082u, 0x00000008u, 0x00003501u, + 0x00003500u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00003502u, 0x00000001u, 0x0000002au, 0x00003501u, + 0x00000225u, 0x000500c6u, 0x00000008u, 0x00003504u, 0x00002fc1u, 0x00003502u, 0x000200f9u, 0x00003505u, + 0x000200f8u, 0x00003505u, 0x000700f5u, 0x00000008u, 0x00007baeu, 0x00002fc1u, 0x000034f3u, 0x00003504u, + 0x000034fdu, 0x00050082u, 0x00000008u, 0x00003507u, 0x000034f6u, 0x0000022fu, 0x000500c7u, 0x00000008u, + 0x00003509u, 0x00007baeu, 0x00003507u, 0x000200f9u, 0x0000350au, 0x000200f8u, 0x0000350au, 0x000700f5u, + 0x00000008u, 0x00007bafu, 0x00002fc1u, 0x000034e9u, 0x00003509u, 0x00003505u, 0x00050080u, 0x00000008u, + 0x00002fc5u, 0x00002fbdu, 0x0000022fu, 0x000300f7u, 0x0000352bu, 0x00000000u, 0x000400fau, 0x000034d1u, + 0x00003514u, 0x0000352bu, 0x000200f8u, 0x00003514u, 0x000500c4u, 0x00000008u, 0x00003517u, 0x0000022fu, + 0x00002e20u, 0x000500c7u, 0x00000008u, 0x0000351cu, 0x00002f85u, 0x00000232u, 0x000500abu, 0x00000069u, + 0x0000351du, 0x0000351cu, 0x00000225u, 0x000300f7u, 0x00003526u, 0x00000000u, 0x000400fau, 0x0000351du, + 0x0000351eu, 0x00003526u, 0x000200f8u, 0x0000351eu, 0x000500c7u, 0x00000008u, 0x00003521u, 0x00002fc5u, + 0x00003517u, 0x00050082u, 0x00000008u, 0x00003522u, 0x00003521u, 0x0000022fu, 0x0007000cu, 0x00000008u, + 0x00003523u, 0x00000001u, 0x0000002au, 0x00003522u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x00003525u, + 0x00002fc5u, 0x00003523u, 0x000200f9u, 0x00003526u, 0x000200f8u, 0x00003526u, 0x000700f5u, 0x00000008u, + 0x00007bb2u, 0x00002fc5u, 0x00003514u, 0x00003525u, 0x0000351eu, 0x00050082u, 0x00000008u, 0x00003528u, + 0x00003517u, 0x0000022fu, 0x000500c7u, 0x00000008u, 0x0000352au, 0x00007bb2u, 0x00003528u, 0x000200f9u, + 0x0000352bu, 0x000200f8u, 0x0000352bu, 0x000700f5u, 0x00000008u, 0x00007bb3u, 0x00002fc5u, 0x0000350au, + 0x0000352au, 0x00003526u, 0x00050080u, 0x00000008u, 0x00002fcau, 0x00002fc1u, 0x0000022fu, 0x000300f7u, + 0x0000354cu, 0x00000000u, 0x000400fau, 0x000034f2u, 0x00003535u, 0x0000354cu, 0x000200f8u, 0x00003535u, + 0x000500c4u, 0x00000008u, 0x00003538u, 0x0000022fu, 0x00002e24u, 0x000500c7u, 0x00000008u, 0x0000353du, + 0x00002f85u, 0x00000262u, 0x000500abu, 0x00000069u, 0x0000353eu, 0x0000353du, 0x00000225u, 0x000300f7u, + 0x00003547u, 0x00000000u, 0x000400fau, 0x0000353eu, 0x0000353fu, 0x00003547u, 0x000200f8u, 0x0000353fu, + 0x000500c7u, 0x00000008u, 0x00003542u, 0x00002fcau, 0x00003538u, 0x00050082u, 0x00000008u, 0x00003543u, + 0x00003542u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00003544u, 0x00000001u, 0x0000002au, 0x00003543u, + 0x00000225u, 0x000500c6u, 0x00000008u, 0x00003546u, 0x00002fcau, 0x00003544u, 0x000200f9u, 0x00003547u, + 0x000200f8u, 0x00003547u, 0x000700f5u, 0x00000008u, 0x00007bb6u, 0x00002fcau, 0x00003535u, 0x00003546u, + 0x0000353fu, 0x00050082u, 0x00000008u, 0x00003549u, 0x00003538u, 0x0000022fu, 0x000500c7u, 0x00000008u, + 0x0000354bu, 0x00007bb6u, 0x00003549u, 0x000200f9u, 0x0000354cu, 0x000200f8u, 0x0000354cu, 0x000700f5u, + 0x00000008u, 0x00007bb7u, 0x00002fcau, 0x0000352bu, 0x0000354bu, 0x00003547u, 0x00050082u, 0x00000008u, + 0x00002fcfu, 0x00007bb7u, 0x00007bafu, 0x0007000cu, 0x00000008u, 0x00002fd0u, 0x00000001u, 0x0000002au, + 0x00002fcfu, 0x000013f3u, 0x000500c7u, 0x00000008u, 0x00002fd2u, 0x00007bafu, 0x00000363u, 0x00050080u, + 0x00000008u, 0x00002fd4u, 0x00002fd2u, 0x00002fd0u, 0x000500aau, 0x00000884u, 0x00002fdau, 0x00007ba8u, + 0x000013ffu, 0x00050051u, 0x00000069u, 0x00002fdbu, 0x00002fdau, 0x00000000u, 0x00050051u, 0x00000069u, + 0x00002fdcu, 0x00002fdau, 0x00000001u, 0x00070050u, 0x00000600u, 0x00002fddu, 0x00002343u, 0x00002355u, + 0x00002fdbu, 0x00002fdcu, 0x0004009bu, 0x00000069u, 0x00002fdeu, 0x00002fddu, 0x000500afu, 0x00000069u, + 0x00002fe0u, 0x00002fb7u, 0x0000115fu, 0x000600a9u, 0x00000008u, 0x0000c24cu, 0x00002fdeu, 0x00000225u, + 0x00002fb7u, 0x00040071u, 0x00000006u, 0x00002fe6u, 0x00002e1au, 0x0004007cu, 0x00000008u, 0x00002fe7u, + 0x00002fe6u, 0x000500aau, 0x00000069u, 0x00002fe8u, 0x00002fe7u, 0x0000022fu, 0x000500afu, 0x00000069u, + 0x00002feau, 0x0000c24cu, 0x0000115fu, 0x000300f7u, 0x00002ff3u, 0x00000000u, 0x000400fau, 0x00002feau, + 0x00002febu, 0x00002fefu, 0x000200f8u, 0x00002fefu, 0x00050050u, 0x000000f2u, 0x00002ff2u, 0x00007babu, + 0x00002fd2u, 0x000200f9u, 0x00002ff3u, 0x000200f8u, 0x00002febu, 0x00050050u, 0x000000f2u, 0x00002feeu, + 0x00007bb3u, 0x00002fd4u, 0x000200f9u, 0x00002ff3u, 0x000200f8u, 0x00002ff3u, 0x000700f5u, 0x000000f2u, + 0x00007bd2u, 0x00002feeu, 0x00002febu, 0x00002ff2u, 0x00002fefu, 0x000500c7u, 0x00000008u, 0x00002ff6u, + 0x00007babu, 0x0000022fu, 0x000500c4u, 0x00000008u, 0x00002ff7u, 0x00002ff6u, 0x00000238u, 0x000500c3u, + 0x00000008u, 0x00002ffau, 0x00002fb4u, 0x0000022fu, 0x000500c5u, 0x00000008u, 0x00002ffbu, 0x00002ff7u, + 0x00002ffau, 0x000300f7u, 0x000032cdu, 0x00000000u, 0x000400fau, 0x00002313u, 0x00002ffdu, 0x000030a7u, + 0x000200f8u, 0x000030a7u, 0x000300f7u, 0x000032ccu, 0x00000000u, 0x000d00fbu, 0x00002fe7u, 0x000032ccu, + 0x00000000u, 0x000030acu, 0x00000001u, 0x00003136u, 0x00000002u, 0x00003164u, 0x00000003u, 0x000031d9u, + 0x00000004u, 0x00003263u, 0x000200f8u, 0x00003263u, 0x00040071u, 0x00000006u, 0x00003266u, 0x00002e1cu, + 0x0004007cu, 0x00000008u, 0x00003267u, 0x00003266u, 0x000300f7u, 0x000032cbu, 0x00000000u, 0x000700fbu, + 0x00003267u, 0x00003268u, 0x00000000u, 0x00003289u, 0x00000001u, 0x000032aau, 0x000200f8u, 0x000032aau, + 0x0004007cu, 0x000000b4u, 0x000032acu, 0x00007bd2u, 0x00050051u, 0x00000006u, 0x000046a4u, 0x000032acu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000046a5u, 0x00002e18u, 0x000046a4u, 0x00050080u, 0x00000006u, + 0x000046a6u, 0x00002e16u, 0x000046a5u, 0x00050051u, 0x00000006u, 0x000046a8u, 0x000032acu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x000046aau, 0x000046a6u, 0x000046a8u, 0x000500c7u, 0x00000006u, 0x000046acu, + 0x000046aau, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x000046b0u, 0x000046a4u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000046b1u, 0x000046b0u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000046b3u, 0x000046acu, + 0x000046b1u, 0x000500c6u, 0x00000006u, 0x000046b5u, 0x000046b3u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000046b8u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000046b5u, 0x0004003du, 0x0000000fu, + 0x000046b9u, 0x000046b8u, 0x00040071u, 0x00000006u, 0x000046bau, 0x000046b9u, 0x00040071u, 0x00000011u, + 0x000046bcu, 0x000046bau, 0x0004007cu, 0x00000012u, 0x000046bdu, 0x000046bcu, 0x00070050u, 0x00000013u, + 0x000046beu, 0x000046bdu, 0x000046bdu, 0x000046bdu, 0x000046bdu, 0x000300f7u, 0x000032c0u, 0x00000000u, + 0x000400fau, 0x00002319u, 0x000032b1u, 0x000032c0u, 0x000200f8u, 0x000032b1u, 0x00050050u, 0x000000f2u, + 0x000032b4u, 0x00007bb3u, 0x00002fd2u, 0x0004007cu, 0x000000b4u, 0x000032b5u, 0x000032b4u, 0x00050051u, + 0x00000006u, 0x000046c9u, 0x000032b5u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000046cau, 0x00002e18u, + 0x000046c9u, 0x00050080u, 0x00000006u, 0x000046cbu, 0x00002e16u, 0x000046cau, 0x00050051u, 0x00000006u, + 0x000046cdu, 0x000032b5u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000046cfu, 0x000046cbu, 0x000046cdu, + 0x000500c7u, 0x00000006u, 0x000046d1u, 0x000046cfu, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x000046d5u, + 0x000046c9u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000046d6u, 0x000046d5u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x000046d8u, 0x000046d1u, 0x000046d6u, 0x000500c6u, 0x00000006u, 0x000046dau, 0x000046d8u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000046ddu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x000046dau, 0x0004003du, 0x0000000fu, 0x000046deu, 0x000046ddu, 0x00040071u, 0x00000006u, 0x000046dfu, + 0x000046deu, 0x00040071u, 0x00000011u, 0x000046e1u, 0x000046dfu, 0x0004007cu, 0x00000012u, 0x000046e2u, + 0x000046e1u, 0x00070050u, 0x00000013u, 0x000046e3u, 0x000046e2u, 0x000046e2u, 0x000046e2u, 0x000046e2u, + 0x00050050u, 0x000000f2u, 0x000032bbu, 0x00007babu, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x000032bcu, + 0x000032bbu, 0x00050051u, 0x00000006u, 0x000046eeu, 0x000032bcu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000046efu, 0x00002e18u, 0x000046eeu, 0x00050080u, 0x00000006u, 0x000046f0u, 0x00002e16u, 0x000046efu, + 0x00050051u, 0x00000006u, 0x000046f2u, 0x000032bcu, 0x00000000u, 0x00050080u, 0x00000006u, 0x000046f4u, + 0x000046f0u, 0x000046f2u, 0x000500c7u, 0x00000006u, 0x000046f6u, 0x000046f4u, 0x00000e75u, 0x000500c7u, + 0x00000006u, 0x000046fau, 0x000046eeu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000046fbu, 0x000046fau, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x000046fdu, 0x000046f6u, 0x000046fbu, 0x000500c6u, 0x00000006u, + 0x000046ffu, 0x000046fdu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00004702u, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x000046ffu, 0x0004003du, 0x0000000fu, 0x00004703u, 0x00004702u, 0x00040071u, + 0x00000006u, 0x00004704u, 0x00004703u, 0x00040071u, 0x00000011u, 0x00004706u, 0x00004704u, 0x0004007cu, + 0x00000012u, 0x00004707u, 0x00004706u, 0x00070050u, 0x00000013u, 0x00004708u, 0x00004707u, 0x00004707u, + 0x00004707u, 0x00004707u, 0x000200f9u, 0x000032c0u, 0x000200f8u, 0x000032c0u, 0x000700f5u, 0x00000013u, + 0x00007e15u, 0x00007db7u, 0x000032aau, 0x00004708u, 0x000032b1u, 0x000700f5u, 0x00000013u, 0x00007d97u, + 0x00007d36u, 0x000032aau, 0x000046e3u, 0x000032b1u, 0x000300f7u, 0x000032cau, 0x00000000u, 0x000400fau, + 0x00002fdeu, 0x000032c2u, 0x000032cau, 0x000200f8u, 0x000032c2u, 0x00050050u, 0x000000f2u, 0x000032c5u, + 0x00007bb3u, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x000032c6u, 0x000032c5u, 0x00050051u, 0x00000006u, + 0x00004713u, 0x000032c6u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004714u, 0x00002e18u, 0x00004713u, + 0x00050080u, 0x00000006u, 0x00004715u, 0x00002e16u, 0x00004714u, 0x00050051u, 0x00000006u, 0x00004717u, + 0x000032c6u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004719u, 0x00004715u, 0x00004717u, 0x000500c7u, + 0x00000006u, 0x0000471bu, 0x00004719u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x0000471fu, 0x00004713u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004720u, 0x0000471fu, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x00004722u, 0x0000471bu, 0x00004720u, 0x000500c6u, 0x00000006u, 0x00004724u, 0x00004722u, 0x00000469u, + 0x00080041u, 0x00000676u, 0x00004727u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00004724u, + 0x0004003du, 0x0000000fu, 0x00004728u, 0x00004727u, 0x00040071u, 0x00000006u, 0x00004729u, 0x00004728u, + 0x00040071u, 0x00000011u, 0x0000472bu, 0x00004729u, 0x0004007cu, 0x00000012u, 0x0000472cu, 0x0000472bu, + 0x00070050u, 0x00000013u, 0x0000472du, 0x0000472cu, 0x0000472cu, 0x0000472cu, 0x0000472cu, 0x000200f9u, + 0x000032cau, 0x000200f8u, 0x000032cau, 0x000700f5u, 0x00000013u, 0x00007e92u, 0x00007e32u, 0x000032c0u, + 0x0000472du, 0x000032c2u, 0x000200f9u, 0x000032cbu, 0x000200f8u, 0x00003289u, 0x0004007cu, 0x000000b4u, + 0x0000328bu, 0x00007bd2u, 0x00050051u, 0x00000006u, 0x000045d5u, 0x0000328bu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000045d6u, 0x00002e18u, 0x000045d5u, 0x00050080u, 0x00000006u, 0x000045d7u, 0x00002e16u, + 0x000045d6u, 0x00050051u, 0x00000006u, 0x000045d9u, 0x0000328bu, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x000045dau, 0x000045d9u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000045dcu, 0x000045d7u, 0x000045dau, + 0x000500c7u, 0x00000006u, 0x000045deu, 0x000045dcu, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x000045e1u, + 0x000045d9u, 0x000500c7u, 0x00000006u, 0x000045e2u, 0x000045e1u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x000045e3u, 0x000045e2u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000045e7u, 0x000045d5u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x000045e8u, 0x000045e7u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000045eau, + 0x000045deu, 0x000045e8u, 0x000500c6u, 0x00000006u, 0x000045ecu, 0x000045eau, 0x00000469u, 0x00080041u, + 0x00000676u, 0x000045efu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000045ecu, 0x0004003du, + 0x0000000fu, 0x000045f0u, 0x000045efu, 0x00040071u, 0x00000006u, 0x000045f1u, 0x000045f0u, 0x000500c2u, + 0x00000006u, 0x000045f4u, 0x000045f1u, 0x000045e3u, 0x000500c7u, 0x00000006u, 0x000045f5u, 0x000045f4u, + 0x00000e98u, 0x000500c4u, 0x00000006u, 0x000045f7u, 0x000045f5u, 0x00000238u, 0x000500c5u, 0x00000006u, + 0x000045f9u, 0x000045f5u, 0x000045f7u, 0x00040071u, 0x00000011u, 0x000045fbu, 0x000045f9u, 0x0004007cu, + 0x00000012u, 0x000045fcu, 0x000045fbu, 0x00070050u, 0x00000013u, 0x000045fdu, 0x000045fcu, 0x000045fcu, + 0x000045fcu, 0x000045fcu, 0x000300f7u, 0x0000329fu, 0x00000000u, 0x000400fau, 0x00002319u, 0x00003290u, + 0x0000329fu, 0x000200f8u, 0x00003290u, 0x00050050u, 0x000000f2u, 0x00003293u, 0x00007bb3u, 0x00002fd2u, + 0x0004007cu, 0x000000b4u, 0x00003294u, 0x00003293u, 0x00050051u, 0x00000006u, 0x00004609u, 0x00003294u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000460au, 0x00002e18u, 0x00004609u, 0x00050080u, 0x00000006u, + 0x0000460bu, 0x00002e16u, 0x0000460au, 0x00050051u, 0x00000006u, 0x0000460du, 0x00003294u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000460eu, 0x0000460du, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00004610u, + 0x0000460bu, 0x0000460eu, 0x000500c7u, 0x00000006u, 0x00004612u, 0x00004610u, 0x00000e75u, 0x000400c8u, + 0x00000006u, 0x00004615u, 0x0000460du, 0x000500c7u, 0x00000006u, 0x00004616u, 0x00004615u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00004617u, 0x00004616u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x0000461bu, + 0x00004609u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000461cu, 0x0000461bu, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x0000461eu, 0x00004612u, 0x0000461cu, 0x000500c6u, 0x00000006u, 0x00004620u, 0x0000461eu, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00004623u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00004620u, 0x0004003du, 0x0000000fu, 0x00004624u, 0x00004623u, 0x00040071u, 0x00000006u, 0x00004625u, + 0x00004624u, 0x000500c2u, 0x00000006u, 0x00004628u, 0x00004625u, 0x00004617u, 0x000500c7u, 0x00000006u, + 0x00004629u, 0x00004628u, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x0000462bu, 0x00004629u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x0000462du, 0x00004629u, 0x0000462bu, 0x00040071u, 0x00000011u, 0x0000462fu, + 0x0000462du, 0x0004007cu, 0x00000012u, 0x00004630u, 0x0000462fu, 0x00070050u, 0x00000013u, 0x00004631u, + 0x00004630u, 0x00004630u, 0x00004630u, 0x00004630u, 0x00050050u, 0x000000f2u, 0x0000329au, 0x00007babu, + 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x0000329bu, 0x0000329au, 0x00050051u, 0x00000006u, 0x0000463du, + 0x0000329bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000463eu, 0x00002e18u, 0x0000463du, 0x00050080u, + 0x00000006u, 0x0000463fu, 0x00002e16u, 0x0000463eu, 0x00050051u, 0x00000006u, 0x00004641u, 0x0000329bu, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004642u, 0x00004641u, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00004644u, 0x0000463fu, 0x00004642u, 0x000500c7u, 0x00000006u, 0x00004646u, 0x00004644u, 0x00000e75u, + 0x000400c8u, 0x00000006u, 0x00004649u, 0x00004641u, 0x000500c7u, 0x00000006u, 0x0000464au, 0x00004649u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x0000464bu, 0x0000464au, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x0000464fu, 0x0000463du, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004650u, 0x0000464fu, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00004652u, 0x00004646u, 0x00004650u, 0x000500c6u, 0x00000006u, 0x00004654u, + 0x00004652u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00004657u, 0x00000e8fu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00004654u, 0x0004003du, 0x0000000fu, 0x00004658u, 0x00004657u, 0x00040071u, 0x00000006u, + 0x00004659u, 0x00004658u, 0x000500c2u, 0x00000006u, 0x0000465cu, 0x00004659u, 0x0000464bu, 0x000500c7u, + 0x00000006u, 0x0000465du, 0x0000465cu, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x0000465fu, 0x0000465du, + 0x00000238u, 0x000500c5u, 0x00000006u, 0x00004661u, 0x0000465du, 0x0000465fu, 0x00040071u, 0x00000011u, + 0x00004663u, 0x00004661u, 0x0004007cu, 0x00000012u, 0x00004664u, 0x00004663u, 0x00070050u, 0x00000013u, + 0x00004665u, 0x00004664u, 0x00004664u, 0x00004664u, 0x00004664u, 0x000200f9u, 0x0000329fu, 0x000200f8u, + 0x0000329fu, 0x000700f5u, 0x00000013u, 0x00007e13u, 0x00007db7u, 0x00003289u, 0x00004665u, 0x00003290u, + 0x000700f5u, 0x00000013u, 0x00007d95u, 0x00007d36u, 0x00003289u, 0x00004631u, 0x00003290u, 0x000300f7u, + 0x000032a9u, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x000032a1u, 0x000032a9u, 0x000200f8u, 0x000032a1u, + 0x00050050u, 0x000000f2u, 0x000032a4u, 0x00007bb3u, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x000032a5u, + 0x000032a4u, 0x00050051u, 0x00000006u, 0x00004671u, 0x000032a5u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004672u, 0x00002e18u, 0x00004671u, 0x00050080u, 0x00000006u, 0x00004673u, 0x00002e16u, 0x00004672u, + 0x00050051u, 0x00000006u, 0x00004675u, 0x000032a5u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004676u, + 0x00004675u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00004678u, 0x00004673u, 0x00004676u, 0x000500c7u, + 0x00000006u, 0x0000467au, 0x00004678u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x0000467du, 0x00004675u, + 0x000500c7u, 0x00000006u, 0x0000467eu, 0x0000467du, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000467fu, + 0x0000467eu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00004683u, 0x00004671u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00004684u, 0x00004683u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00004686u, 0x0000467au, + 0x00004684u, 0x000500c6u, 0x00000006u, 0x00004688u, 0x00004686u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x0000468bu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00004688u, 0x0004003du, 0x0000000fu, + 0x0000468cu, 0x0000468bu, 0x00040071u, 0x00000006u, 0x0000468du, 0x0000468cu, 0x000500c2u, 0x00000006u, + 0x00004690u, 0x0000468du, 0x0000467fu, 0x000500c7u, 0x00000006u, 0x00004691u, 0x00004690u, 0x00000e98u, + 0x000500c4u, 0x00000006u, 0x00004693u, 0x00004691u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00004695u, + 0x00004691u, 0x00004693u, 0x00040071u, 0x00000011u, 0x00004697u, 0x00004695u, 0x0004007cu, 0x00000012u, + 0x00004698u, 0x00004697u, 0x00070050u, 0x00000013u, 0x00004699u, 0x00004698u, 0x00004698u, 0x00004698u, + 0x00004698u, 0x000200f9u, 0x000032a9u, 0x000200f8u, 0x000032a9u, 0x000700f5u, 0x00000013u, 0x00007e90u, + 0x00007e32u, 0x0000329fu, 0x00004699u, 0x000032a1u, 0x000200f9u, 0x000032cbu, 0x000200f8u, 0x00003268u, + 0x0004007cu, 0x000000b4u, 0x0000326au, 0x00007bd2u, 0x00050051u, 0x00000006u, 0x00004520u, 0x0000326au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004521u, 0x00002e18u, 0x00004520u, 0x00050080u, 0x00000006u, + 0x00004522u, 0x00002e16u, 0x00004521u, 0x00050051u, 0x00000006u, 0x00004524u, 0x0000326au, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00004525u, 0x00004524u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00004527u, + 0x00004522u, 0x00004525u, 0x000500c7u, 0x00000006u, 0x00004529u, 0x00004527u, 0x00000e75u, 0x000500c2u, + 0x00000006u, 0x0000452bu, 0x00004529u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x0000452eu, 0x00004520u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000452fu, 0x0000452eu, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00004531u, 0x0000452bu, 0x0000452fu, 0x000500c6u, 0x00000006u, 0x00004533u, 0x00004531u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00004536u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00004533u, + 0x0004003du, 0x00000011u, 0x00004537u, 0x00004536u, 0x00040071u, 0x00000006u, 0x00004538u, 0x00004537u, + 0x000500c2u, 0x00000006u, 0x0000453au, 0x00004538u, 0x00000262u, 0x00040071u, 0x00000011u, 0x0000453bu, + 0x0000453au, 0x0004007cu, 0x00000012u, 0x0000453cu, 0x0000453bu, 0x000500c7u, 0x00000006u, 0x0000453eu, + 0x00004538u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000453fu, 0x0000453eu, 0x0004007cu, 0x00000012u, + 0x00004540u, 0x0000453fu, 0x00050050u, 0x000001b1u, 0x00004541u, 0x0000453cu, 0x00004540u, 0x0009004fu, + 0x00000013u, 0x00004542u, 0x00004541u, 0x00004541u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000300f7u, 0x0000327eu, 0x00000000u, 0x000400fau, 0x00002319u, 0x0000326fu, 0x0000327eu, 0x000200f8u, + 0x0000326fu, 0x00050050u, 0x000000f2u, 0x00003272u, 0x00007bb3u, 0x00002fd2u, 0x0004007cu, 0x000000b4u, + 0x00003273u, 0x00003272u, 0x00050051u, 0x00000006u, 0x0000454du, 0x00003273u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000454eu, 0x00002e18u, 0x0000454du, 0x00050080u, 0x00000006u, 0x0000454fu, 0x00002e16u, + 0x0000454eu, 0x00050051u, 0x00000006u, 0x00004551u, 0x00003273u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00004552u, 0x00004551u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00004554u, 0x0000454fu, 0x00004552u, + 0x000500c7u, 0x00000006u, 0x00004556u, 0x00004554u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00004558u, + 0x00004556u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x0000455bu, 0x0000454du, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x0000455cu, 0x0000455bu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x0000455eu, 0x00004558u, + 0x0000455cu, 0x000500c6u, 0x00000006u, 0x00004560u, 0x0000455eu, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00004563u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00004560u, 0x0004003du, 0x00000011u, + 0x00004564u, 0x00004563u, 0x00040071u, 0x00000006u, 0x00004565u, 0x00004564u, 0x000500c2u, 0x00000006u, + 0x00004567u, 0x00004565u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00004568u, 0x00004567u, 0x0004007cu, + 0x00000012u, 0x00004569u, 0x00004568u, 0x000500c7u, 0x00000006u, 0x0000456bu, 0x00004565u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x0000456cu, 0x0000456bu, 0x0004007cu, 0x00000012u, 0x0000456du, 0x0000456cu, + 0x00050050u, 0x000001b1u, 0x0000456eu, 0x00004569u, 0x0000456du, 0x0009004fu, 0x00000013u, 0x0000456fu, + 0x0000456eu, 0x0000456eu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, + 0x00003279u, 0x00007babu, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x0000327au, 0x00003279u, 0x00050051u, + 0x00000006u, 0x0000457au, 0x0000327au, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000457bu, 0x00002e18u, + 0x0000457au, 0x00050080u, 0x00000006u, 0x0000457cu, 0x00002e16u, 0x0000457bu, 0x00050051u, 0x00000006u, + 0x0000457eu, 0x0000327au, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000457fu, 0x0000457eu, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x00004581u, 0x0000457cu, 0x0000457fu, 0x000500c7u, 0x00000006u, 0x00004583u, + 0x00004581u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00004585u, 0x00004583u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00004588u, 0x0000457au, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004589u, 0x00004588u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x0000458bu, 0x00004585u, 0x00004589u, 0x000500c6u, 0x00000006u, + 0x0000458du, 0x0000458bu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00004590u, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x0000458du, 0x0004003du, 0x00000011u, 0x00004591u, 0x00004590u, 0x00040071u, + 0x00000006u, 0x00004592u, 0x00004591u, 0x000500c2u, 0x00000006u, 0x00004594u, 0x00004592u, 0x00000262u, + 0x00040071u, 0x00000011u, 0x00004595u, 0x00004594u, 0x0004007cu, 0x00000012u, 0x00004596u, 0x00004595u, + 0x000500c7u, 0x00000006u, 0x00004598u, 0x00004592u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00004599u, + 0x00004598u, 0x0004007cu, 0x00000012u, 0x0000459au, 0x00004599u, 0x00050050u, 0x000001b1u, 0x0000459bu, + 0x00004596u, 0x0000459au, 0x0009004fu, 0x00000013u, 0x0000459cu, 0x0000459bu, 0x0000459bu, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000327eu, 0x000200f8u, 0x0000327eu, 0x000700f5u, + 0x00000013u, 0x00007e11u, 0x00007db7u, 0x00003268u, 0x0000459cu, 0x0000326fu, 0x000700f5u, 0x00000013u, + 0x00007d93u, 0x00007d36u, 0x00003268u, 0x0000456fu, 0x0000326fu, 0x000300f7u, 0x00003288u, 0x00000000u, + 0x000400fau, 0x00002fdeu, 0x00003280u, 0x00003288u, 0x000200f8u, 0x00003280u, 0x00050050u, 0x000000f2u, + 0x00003283u, 0x00007bb3u, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x00003284u, 0x00003283u, 0x00050051u, + 0x00000006u, 0x000045a7u, 0x00003284u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000045a8u, 0x00002e18u, + 0x000045a7u, 0x00050080u, 0x00000006u, 0x000045a9u, 0x00002e16u, 0x000045a8u, 0x00050051u, 0x00000006u, + 0x000045abu, 0x00003284u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000045acu, 0x000045abu, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x000045aeu, 0x000045a9u, 0x000045acu, 0x000500c7u, 0x00000006u, 0x000045b0u, + 0x000045aeu, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x000045b2u, 0x000045b0u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x000045b5u, 0x000045a7u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000045b6u, 0x000045b5u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000045b8u, 0x000045b2u, 0x000045b6u, 0x000500c6u, 0x00000006u, + 0x000045bau, 0x000045b8u, 0x00000461u, 0x00080041u, 0x00000697u, 0x000045bdu, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x000045bau, 0x0004003du, 0x00000011u, 0x000045beu, 0x000045bdu, 0x00040071u, + 0x00000006u, 0x000045bfu, 0x000045beu, 0x000500c2u, 0x00000006u, 0x000045c1u, 0x000045bfu, 0x00000262u, + 0x00040071u, 0x00000011u, 0x000045c2u, 0x000045c1u, 0x0004007cu, 0x00000012u, 0x000045c3u, 0x000045c2u, + 0x000500c7u, 0x00000006u, 0x000045c5u, 0x000045bfu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000045c6u, + 0x000045c5u, 0x0004007cu, 0x00000012u, 0x000045c7u, 0x000045c6u, 0x00050050u, 0x000001b1u, 0x000045c8u, + 0x000045c3u, 0x000045c7u, 0x0009004fu, 0x00000013u, 0x000045c9u, 0x000045c8u, 0x000045c8u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003288u, 0x000200f8u, 0x00003288u, 0x000700f5u, + 0x00000013u, 0x00007e8eu, 0x00007e32u, 0x0000327eu, 0x000045c9u, 0x00003280u, 0x000200f9u, 0x000032cbu, + 0x000200f8u, 0x000032cbu, 0x000900f5u, 0x00000013u, 0x00007e8du, 0x00007e8eu, 0x00003288u, 0x00007e90u, + 0x000032a9u, 0x00007e92u, 0x000032cau, 0x000900f5u, 0x00000013u, 0x00007e0fu, 0x00007e11u, 0x00003288u, + 0x00007e13u, 0x000032a9u, 0x00007e15u, 0x000032cau, 0x000900f5u, 0x00000013u, 0x00007d91u, 0x00007d93u, + 0x00003288u, 0x00007d95u, 0x000032a9u, 0x00007d97u, 0x000032cau, 0x000900f5u, 0x00000013u, 0x00007c9eu, + 0x00004542u, 0x00003288u, 0x000045fdu, 0x000032a9u, 0x000046beu, 0x000032cau, 0x000200f9u, 0x000032ccu, + 0x000200f8u, 0x000031d9u, 0x00040071u, 0x00000006u, 0x000031dcu, 0x00002e1cu, 0x0004007cu, 0x00000008u, + 0x000031ddu, 0x000031dcu, 0x000300f7u, 0x00003262u, 0x00000000u, 0x000b00fbu, 0x000031ddu, 0x00003262u, + 0x00000000u, 0x000031deu, 0x00000001u, 0x000031ffu, 0x00000002u, 0x00003220u, 0x00000003u, 0x00003241u, + 0x000200f8u, 0x00003241u, 0x0004007cu, 0x000000b4u, 0x00003243u, 0x00007bd2u, 0x00050051u, 0x00000006u, + 0x0000446cu, 0x00003243u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000446du, 0x00002e18u, 0x0000446cu, + 0x00050080u, 0x00000006u, 0x0000446eu, 0x00002e16u, 0x0000446du, 0x00050051u, 0x00000006u, 0x00004470u, + 0x00003243u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004471u, 0x00004470u, 0x0000038bu, 0x00050080u, + 0x00000006u, 0x00004473u, 0x0000446eu, 0x00004471u, 0x000500c7u, 0x00000006u, 0x00004475u, 0x00004473u, + 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00004477u, 0x00004475u, 0x0000022fu, 0x000500c7u, 0x00000006u, + 0x0000447au, 0x0000446cu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000447bu, 0x0000447au, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x0000447du, 0x00004477u, 0x0000447bu, 0x000500c6u, 0x00000006u, 0x0000447fu, + 0x0000447du, 0x00000461u, 0x00080041u, 0x00000697u, 0x00004482u, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x0000447fu, 0x0004003du, 0x00000011u, 0x00004483u, 0x00004482u, 0x00040071u, 0x00000006u, + 0x00004484u, 0x00004483u, 0x000500c2u, 0x00000006u, 0x00004486u, 0x00004484u, 0x00000262u, 0x00040071u, + 0x00000011u, 0x00004487u, 0x00004486u, 0x0004007cu, 0x00000012u, 0x00004488u, 0x00004487u, 0x000500c7u, + 0x00000006u, 0x0000448au, 0x00004484u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000448bu, 0x0000448au, + 0x0004007cu, 0x00000012u, 0x0000448cu, 0x0000448bu, 0x00050050u, 0x000001b1u, 0x0000448du, 0x00004488u, + 0x0000448cu, 0x0009004fu, 0x00000013u, 0x0000448eu, 0x0000448du, 0x0000448du, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x000300f7u, 0x00003257u, 0x00000000u, 0x000400fau, 0x00002319u, 0x00003248u, + 0x00003257u, 0x000200f8u, 0x00003248u, 0x00050050u, 0x000000f2u, 0x0000324bu, 0x00007bb3u, 0x00002fd2u, + 0x0004007cu, 0x000000b4u, 0x0000324cu, 0x0000324bu, 0x00050051u, 0x00000006u, 0x00004499u, 0x0000324cu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000449au, 0x00002e18u, 0x00004499u, 0x00050080u, 0x00000006u, + 0x0000449bu, 0x00002e16u, 0x0000449au, 0x00050051u, 0x00000006u, 0x0000449du, 0x0000324cu, 0x00000000u, + 0x00050084u, 0x00000006u, 0x0000449eu, 0x0000449du, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000044a0u, + 0x0000449bu, 0x0000449eu, 0x000500c7u, 0x00000006u, 0x000044a2u, 0x000044a0u, 0x00000e75u, 0x000500c2u, + 0x00000006u, 0x000044a4u, 0x000044a2u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000044a7u, 0x00004499u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x000044a8u, 0x000044a7u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x000044aau, 0x000044a4u, 0x000044a8u, 0x000500c6u, 0x00000006u, 0x000044acu, 0x000044aau, 0x00000461u, + 0x00080041u, 0x00000697u, 0x000044afu, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000044acu, + 0x0004003du, 0x00000011u, 0x000044b0u, 0x000044afu, 0x00040071u, 0x00000006u, 0x000044b1u, 0x000044b0u, + 0x000500c2u, 0x00000006u, 0x000044b3u, 0x000044b1u, 0x00000262u, 0x00040071u, 0x00000011u, 0x000044b4u, + 0x000044b3u, 0x0004007cu, 0x00000012u, 0x000044b5u, 0x000044b4u, 0x000500c7u, 0x00000006u, 0x000044b7u, + 0x000044b1u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000044b8u, 0x000044b7u, 0x0004007cu, 0x00000012u, + 0x000044b9u, 0x000044b8u, 0x00050050u, 0x000001b1u, 0x000044bau, 0x000044b5u, 0x000044b9u, 0x0009004fu, + 0x00000013u, 0x000044bbu, 0x000044bau, 0x000044bau, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x00050050u, 0x000000f2u, 0x00003252u, 0x00007babu, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x00003253u, + 0x00003252u, 0x00050051u, 0x00000006u, 0x000044c6u, 0x00003253u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000044c7u, 0x00002e18u, 0x000044c6u, 0x00050080u, 0x00000006u, 0x000044c8u, 0x00002e16u, 0x000044c7u, + 0x00050051u, 0x00000006u, 0x000044cau, 0x00003253u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000044cbu, + 0x000044cau, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000044cdu, 0x000044c8u, 0x000044cbu, 0x000500c7u, + 0x00000006u, 0x000044cfu, 0x000044cdu, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x000044d1u, 0x000044cfu, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000044d4u, 0x000044c6u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x000044d5u, 0x000044d4u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000044d7u, 0x000044d1u, 0x000044d5u, + 0x000500c6u, 0x00000006u, 0x000044d9u, 0x000044d7u, 0x00000461u, 0x00080041u, 0x00000697u, 0x000044dcu, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000044d9u, 0x0004003du, 0x00000011u, 0x000044ddu, + 0x000044dcu, 0x00040071u, 0x00000006u, 0x000044deu, 0x000044ddu, 0x000500c2u, 0x00000006u, 0x000044e0u, + 0x000044deu, 0x00000262u, 0x00040071u, 0x00000011u, 0x000044e1u, 0x000044e0u, 0x0004007cu, 0x00000012u, + 0x000044e2u, 0x000044e1u, 0x000500c7u, 0x00000006u, 0x000044e4u, 0x000044deu, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x000044e5u, 0x000044e4u, 0x0004007cu, 0x00000012u, 0x000044e6u, 0x000044e5u, 0x00050050u, + 0x000001b1u, 0x000044e7u, 0x000044e2u, 0x000044e6u, 0x0009004fu, 0x00000013u, 0x000044e8u, 0x000044e7u, + 0x000044e7u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003257u, 0x000200f8u, + 0x00003257u, 0x000700f5u, 0x00000013u, 0x00007e0eu, 0x00007db7u, 0x00003241u, 0x000044e8u, 0x00003248u, + 0x000700f5u, 0x00000013u, 0x00007d90u, 0x00007d36u, 0x00003241u, 0x000044bbu, 0x00003248u, 0x000300f7u, + 0x00003261u, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x00003259u, 0x00003261u, 0x000200f8u, 0x00003259u, + 0x00050050u, 0x000000f2u, 0x0000325cu, 0x00007bb3u, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x0000325du, + 0x0000325cu, 0x00050051u, 0x00000006u, 0x000044f3u, 0x0000325du, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000044f4u, 0x00002e18u, 0x000044f3u, 0x00050080u, 0x00000006u, 0x000044f5u, 0x00002e16u, 0x000044f4u, + 0x00050051u, 0x00000006u, 0x000044f7u, 0x0000325du, 0x00000000u, 0x00050084u, 0x00000006u, 0x000044f8u, + 0x000044f7u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000044fau, 0x000044f5u, 0x000044f8u, 0x000500c7u, + 0x00000006u, 0x000044fcu, 0x000044fau, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x000044feu, 0x000044fcu, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00004501u, 0x000044f3u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00004502u, 0x00004501u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00004504u, 0x000044feu, 0x00004502u, + 0x000500c6u, 0x00000006u, 0x00004506u, 0x00004504u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00004509u, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00004506u, 0x0004003du, 0x00000011u, 0x0000450au, + 0x00004509u, 0x00040071u, 0x00000006u, 0x0000450bu, 0x0000450au, 0x000500c2u, 0x00000006u, 0x0000450du, + 0x0000450bu, 0x00000262u, 0x00040071u, 0x00000011u, 0x0000450eu, 0x0000450du, 0x0004007cu, 0x00000012u, + 0x0000450fu, 0x0000450eu, 0x000500c7u, 0x00000006u, 0x00004511u, 0x0000450bu, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00004512u, 0x00004511u, 0x0004007cu, 0x00000012u, 0x00004513u, 0x00004512u, 0x00050050u, + 0x000001b1u, 0x00004514u, 0x0000450fu, 0x00004513u, 0x0009004fu, 0x00000013u, 0x00004515u, 0x00004514u, + 0x00004514u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003261u, 0x000200f8u, + 0x00003261u, 0x000700f5u, 0x00000013u, 0x00007e8bu, 0x00007e32u, 0x00003257u, 0x00004515u, 0x00003259u, + 0x000200f9u, 0x00003262u, 0x000200f8u, 0x00003220u, 0x0004007cu, 0x000000b4u, 0x00003222u, 0x00007bd2u, + 0x00050051u, 0x00000006u, 0x00004381u, 0x00003222u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004382u, + 0x00002e18u, 0x00004381u, 0x00050080u, 0x00000006u, 0x00004383u, 0x00002e16u, 0x00004382u, 0x00050051u, + 0x00000006u, 0x00004385u, 0x00003222u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004386u, 0x00004385u, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x00004388u, 0x00004383u, 0x00004386u, 0x000500c7u, 0x00000006u, + 0x0000438au, 0x00004388u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x0000438cu, 0x0000438au, 0x0000022fu, + 0x000500c7u, 0x00000006u, 0x0000438fu, 0x00004381u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004390u, + 0x0000438fu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00004392u, 0x0000438cu, 0x00004390u, 0x000500c6u, + 0x00000006u, 0x00004394u, 0x00004392u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00004397u, 0x00000f5cu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00004394u, 0x0004003du, 0x00000011u, 0x00004398u, 0x00004397u, + 0x00040071u, 0x00000006u, 0x00004399u, 0x00004398u, 0x000500c2u, 0x00000006u, 0x000043a1u, 0x00004399u, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x000043a3u, 0x00004399u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x000043a5u, 0x000043a1u, 0x0004007cu, 0x00000012u, 0x000043a6u, 0x000043a5u, 0x00040071u, 0x00000011u, + 0x000043aeu, 0x000043a3u, 0x0004007cu, 0x00000012u, 0x000043afu, 0x000043aeu, 0x00070050u, 0x00000013u, + 0x000043b0u, 0x000043a6u, 0x000043a6u, 0x000043a6u, 0x000043afu, 0x000300f7u, 0x00003236u, 0x00000000u, + 0x000400fau, 0x00002319u, 0x00003227u, 0x00003236u, 0x000200f8u, 0x00003227u, 0x00050050u, 0x000000f2u, + 0x0000322au, 0x00007bb3u, 0x00002fd2u, 0x0004007cu, 0x000000b4u, 0x0000322bu, 0x0000322au, 0x00050051u, + 0x00000006u, 0x000043bcu, 0x0000322bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000043bdu, 0x00002e18u, + 0x000043bcu, 0x00050080u, 0x00000006u, 0x000043beu, 0x00002e16u, 0x000043bdu, 0x00050051u, 0x00000006u, + 0x000043c0u, 0x0000322bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000043c1u, 0x000043c0u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x000043c3u, 0x000043beu, 0x000043c1u, 0x000500c7u, 0x00000006u, 0x000043c5u, + 0x000043c3u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x000043c7u, 0x000043c5u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x000043cau, 0x000043bcu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000043cbu, 0x000043cau, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000043cdu, 0x000043c7u, 0x000043cbu, 0x000500c6u, 0x00000006u, + 0x000043cfu, 0x000043cdu, 0x00000461u, 0x00080041u, 0x00000697u, 0x000043d2u, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x000043cfu, 0x0004003du, 0x00000011u, 0x000043d3u, 0x000043d2u, 0x00040071u, + 0x00000006u, 0x000043d4u, 0x000043d3u, 0x000500c2u, 0x00000006u, 0x000043dcu, 0x000043d4u, 0x00000262u, + 0x000500c7u, 0x00000006u, 0x000043deu, 0x000043d4u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000043e0u, + 0x000043dcu, 0x0004007cu, 0x00000012u, 0x000043e1u, 0x000043e0u, 0x00040071u, 0x00000011u, 0x000043e9u, + 0x000043deu, 0x0004007cu, 0x00000012u, 0x000043eau, 0x000043e9u, 0x00070050u, 0x00000013u, 0x000043ebu, + 0x000043e1u, 0x000043e1u, 0x000043e1u, 0x000043eau, 0x00050050u, 0x000000f2u, 0x00003231u, 0x00007babu, + 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x00003232u, 0x00003231u, 0x00050051u, 0x00000006u, 0x000043f7u, + 0x00003232u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000043f8u, 0x00002e18u, 0x000043f7u, 0x00050080u, + 0x00000006u, 0x000043f9u, 0x00002e16u, 0x000043f8u, 0x00050051u, 0x00000006u, 0x000043fbu, 0x00003232u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000043fcu, 0x000043fbu, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x000043feu, 0x000043f9u, 0x000043fcu, 0x000500c7u, 0x00000006u, 0x00004400u, 0x000043feu, 0x00000e75u, + 0x000500c2u, 0x00000006u, 0x00004402u, 0x00004400u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00004405u, + 0x000043f7u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004406u, 0x00004405u, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00004408u, 0x00004402u, 0x00004406u, 0x000500c6u, 0x00000006u, 0x0000440au, 0x00004408u, + 0x00000461u, 0x00080041u, 0x00000697u, 0x0000440du, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x0000440au, 0x0004003du, 0x00000011u, 0x0000440eu, 0x0000440du, 0x00040071u, 0x00000006u, 0x0000440fu, + 0x0000440eu, 0x000500c2u, 0x00000006u, 0x00004417u, 0x0000440fu, 0x00000262u, 0x000500c7u, 0x00000006u, + 0x00004419u, 0x0000440fu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000441bu, 0x00004417u, 0x0004007cu, + 0x00000012u, 0x0000441cu, 0x0000441bu, 0x00040071u, 0x00000011u, 0x00004424u, 0x00004419u, 0x0004007cu, + 0x00000012u, 0x00004425u, 0x00004424u, 0x00070050u, 0x00000013u, 0x00004426u, 0x0000441cu, 0x0000441cu, + 0x0000441cu, 0x00004425u, 0x000200f9u, 0x00003236u, 0x000200f8u, 0x00003236u, 0x000700f5u, 0x00000013u, + 0x00007e0cu, 0x00007db7u, 0x00003220u, 0x00004426u, 0x00003227u, 0x000700f5u, 0x00000013u, 0x00007d8eu, + 0x00007d36u, 0x00003220u, 0x000043ebu, 0x00003227u, 0x000300f7u, 0x00003240u, 0x00000000u, 0x000400fau, + 0x00002fdeu, 0x00003238u, 0x00003240u, 0x000200f8u, 0x00003238u, 0x00050050u, 0x000000f2u, 0x0000323bu, + 0x00007bb3u, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x0000323cu, 0x0000323bu, 0x00050051u, 0x00000006u, + 0x00004432u, 0x0000323cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004433u, 0x00002e18u, 0x00004432u, + 0x00050080u, 0x00000006u, 0x00004434u, 0x00002e16u, 0x00004433u, 0x00050051u, 0x00000006u, 0x00004436u, + 0x0000323cu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004437u, 0x00004436u, 0x0000038bu, 0x00050080u, + 0x00000006u, 0x00004439u, 0x00004434u, 0x00004437u, 0x000500c7u, 0x00000006u, 0x0000443bu, 0x00004439u, + 0x00000e75u, 0x000500c2u, 0x00000006u, 0x0000443du, 0x0000443bu, 0x0000022fu, 0x000500c7u, 0x00000006u, + 0x00004440u, 0x00004432u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004441u, 0x00004440u, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x00004443u, 0x0000443du, 0x00004441u, 0x000500c6u, 0x00000006u, 0x00004445u, + 0x00004443u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00004448u, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00004445u, 0x0004003du, 0x00000011u, 0x00004449u, 0x00004448u, 0x00040071u, 0x00000006u, + 0x0000444au, 0x00004449u, 0x000500c2u, 0x00000006u, 0x00004452u, 0x0000444au, 0x00000262u, 0x000500c7u, + 0x00000006u, 0x00004454u, 0x0000444au, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00004456u, 0x00004452u, + 0x0004007cu, 0x00000012u, 0x00004457u, 0x00004456u, 0x00040071u, 0x00000011u, 0x0000445fu, 0x00004454u, + 0x0004007cu, 0x00000012u, 0x00004460u, 0x0000445fu, 0x00070050u, 0x00000013u, 0x00004461u, 0x00004457u, + 0x00004457u, 0x00004457u, 0x00004460u, 0x000200f9u, 0x00003240u, 0x000200f8u, 0x00003240u, 0x000700f5u, + 0x00000013u, 0x00007e89u, 0x00007e32u, 0x00003236u, 0x00004461u, 0x00003238u, 0x000200f9u, 0x00003262u, + 0x000200f8u, 0x000031ffu, 0x0004007cu, 0x000000b4u, 0x00003201u, 0x00007bd2u, 0x00050051u, 0x00000006u, + 0x00004292u, 0x00003201u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004293u, 0x00002e18u, 0x00004292u, + 0x00050080u, 0x00000006u, 0x00004294u, 0x00002e16u, 0x00004293u, 0x00050051u, 0x00000006u, 0x00004296u, + 0x00003201u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004298u, 0x00004294u, 0x00004296u, 0x000500c7u, + 0x00000006u, 0x0000429au, 0x00004298u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x0000429eu, 0x00004292u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000429fu, 0x0000429eu, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x000042a1u, 0x0000429au, 0x0000429fu, 0x000500c6u, 0x00000006u, 0x000042a3u, 0x000042a1u, 0x00000469u, + 0x00080041u, 0x00000676u, 0x000042a6u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000042a3u, + 0x0004003du, 0x0000000fu, 0x000042a7u, 0x000042a6u, 0x00040071u, 0x00000006u, 0x000042a8u, 0x000042a7u, + 0x000500c2u, 0x00000006u, 0x000042aau, 0x000042a8u, 0x00000238u, 0x000500c7u, 0x00000006u, 0x000042acu, + 0x000042a8u, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x000042aeu, 0x000042acu, 0x00000238u, 0x000500c5u, + 0x00000006u, 0x000042b0u, 0x000042acu, 0x000042aeu, 0x000500c4u, 0x00000006u, 0x000042b2u, 0x000042aau, + 0x00000238u, 0x000500c5u, 0x00000006u, 0x000042b4u, 0x000042aau, 0x000042b2u, 0x00040071u, 0x00000011u, + 0x000042b6u, 0x000042b4u, 0x0004007cu, 0x00000012u, 0x000042b7u, 0x000042b6u, 0x00040071u, 0x00000011u, + 0x000042bfu, 0x000042b0u, 0x0004007cu, 0x00000012u, 0x000042c0u, 0x000042bfu, 0x00070050u, 0x00000013u, + 0x000042c1u, 0x000042b7u, 0x000042b7u, 0x000042b7u, 0x000042c0u, 0x000300f7u, 0x00003215u, 0x00000000u, + 0x000400fau, 0x00002319u, 0x00003206u, 0x00003215u, 0x000200f8u, 0x00003206u, 0x00050050u, 0x000000f2u, + 0x00003209u, 0x00007bb3u, 0x00002fd2u, 0x0004007cu, 0x000000b4u, 0x0000320au, 0x00003209u, 0x00050051u, + 0x00000006u, 0x000042ceu, 0x0000320au, 0x00000001u, 0x00050084u, 0x00000006u, 0x000042cfu, 0x00002e18u, + 0x000042ceu, 0x00050080u, 0x00000006u, 0x000042d0u, 0x00002e16u, 0x000042cfu, 0x00050051u, 0x00000006u, + 0x000042d2u, 0x0000320au, 0x00000000u, 0x00050080u, 0x00000006u, 0x000042d4u, 0x000042d0u, 0x000042d2u, + 0x000500c7u, 0x00000006u, 0x000042d6u, 0x000042d4u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x000042dau, + 0x000042ceu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000042dbu, 0x000042dau, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x000042ddu, 0x000042d6u, 0x000042dbu, 0x000500c6u, 0x00000006u, 0x000042dfu, 0x000042ddu, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000042e2u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x000042dfu, 0x0004003du, 0x0000000fu, 0x000042e3u, 0x000042e2u, 0x00040071u, 0x00000006u, 0x000042e4u, + 0x000042e3u, 0x000500c2u, 0x00000006u, 0x000042e6u, 0x000042e4u, 0x00000238u, 0x000500c7u, 0x00000006u, + 0x000042e8u, 0x000042e4u, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x000042eau, 0x000042e8u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x000042ecu, 0x000042e8u, 0x000042eau, 0x000500c4u, 0x00000006u, 0x000042eeu, + 0x000042e6u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x000042f0u, 0x000042e6u, 0x000042eeu, 0x00040071u, + 0x00000011u, 0x000042f2u, 0x000042f0u, 0x0004007cu, 0x00000012u, 0x000042f3u, 0x000042f2u, 0x00040071u, + 0x00000011u, 0x000042fbu, 0x000042ecu, 0x0004007cu, 0x00000012u, 0x000042fcu, 0x000042fbu, 0x00070050u, + 0x00000013u, 0x000042fdu, 0x000042f3u, 0x000042f3u, 0x000042f3u, 0x000042fcu, 0x00050050u, 0x000000f2u, + 0x00003210u, 0x00007babu, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x00003211u, 0x00003210u, 0x00050051u, + 0x00000006u, 0x0000430au, 0x00003211u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000430bu, 0x00002e18u, + 0x0000430au, 0x00050080u, 0x00000006u, 0x0000430cu, 0x00002e16u, 0x0000430bu, 0x00050051u, 0x00000006u, + 0x0000430eu, 0x00003211u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004310u, 0x0000430cu, 0x0000430eu, + 0x000500c7u, 0x00000006u, 0x00004312u, 0x00004310u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x00004316u, + 0x0000430au, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004317u, 0x00004316u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00004319u, 0x00004312u, 0x00004317u, 0x000500c6u, 0x00000006u, 0x0000431bu, 0x00004319u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x0000431eu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x0000431bu, 0x0004003du, 0x0000000fu, 0x0000431fu, 0x0000431eu, 0x00040071u, 0x00000006u, 0x00004320u, + 0x0000431fu, 0x000500c2u, 0x00000006u, 0x00004322u, 0x00004320u, 0x00000238u, 0x000500c7u, 0x00000006u, + 0x00004324u, 0x00004320u, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x00004326u, 0x00004324u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x00004328u, 0x00004324u, 0x00004326u, 0x000500c4u, 0x00000006u, 0x0000432au, + 0x00004322u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x0000432cu, 0x00004322u, 0x0000432au, 0x00040071u, + 0x00000011u, 0x0000432eu, 0x0000432cu, 0x0004007cu, 0x00000012u, 0x0000432fu, 0x0000432eu, 0x00040071u, + 0x00000011u, 0x00004337u, 0x00004328u, 0x0004007cu, 0x00000012u, 0x00004338u, 0x00004337u, 0x00070050u, + 0x00000013u, 0x00004339u, 0x0000432fu, 0x0000432fu, 0x0000432fu, 0x00004338u, 0x000200f9u, 0x00003215u, + 0x000200f8u, 0x00003215u, 0x000700f5u, 0x00000013u, 0x00007e0au, 0x00007db7u, 0x000031ffu, 0x00004339u, + 0x00003206u, 0x000700f5u, 0x00000013u, 0x00007d8cu, 0x00007d36u, 0x000031ffu, 0x000042fdu, 0x00003206u, + 0x000300f7u, 0x0000321fu, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x00003217u, 0x0000321fu, 0x000200f8u, + 0x00003217u, 0x00050050u, 0x000000f2u, 0x0000321au, 0x00007bb3u, 0x00002fd4u, 0x0004007cu, 0x000000b4u, + 0x0000321bu, 0x0000321au, 0x00050051u, 0x00000006u, 0x00004346u, 0x0000321bu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004347u, 0x00002e18u, 0x00004346u, 0x00050080u, 0x00000006u, 0x00004348u, 0x00002e16u, + 0x00004347u, 0x00050051u, 0x00000006u, 0x0000434au, 0x0000321bu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x0000434cu, 0x00004348u, 0x0000434au, 0x000500c7u, 0x00000006u, 0x0000434eu, 0x0000434cu, 0x00000e75u, + 0x000500c7u, 0x00000006u, 0x00004352u, 0x00004346u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004353u, + 0x00004352u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00004355u, 0x0000434eu, 0x00004353u, 0x000500c6u, + 0x00000006u, 0x00004357u, 0x00004355u, 0x00000469u, 0x00080041u, 0x00000676u, 0x0000435au, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00004357u, 0x0004003du, 0x0000000fu, 0x0000435bu, 0x0000435au, + 0x00040071u, 0x00000006u, 0x0000435cu, 0x0000435bu, 0x000500c2u, 0x00000006u, 0x0000435eu, 0x0000435cu, + 0x00000238u, 0x000500c7u, 0x00000006u, 0x00004360u, 0x0000435cu, 0x00000e98u, 0x000500c4u, 0x00000006u, + 0x00004362u, 0x00004360u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00004364u, 0x00004360u, 0x00004362u, + 0x000500c4u, 0x00000006u, 0x00004366u, 0x0000435eu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00004368u, + 0x0000435eu, 0x00004366u, 0x00040071u, 0x00000011u, 0x0000436au, 0x00004368u, 0x0004007cu, 0x00000012u, + 0x0000436bu, 0x0000436au, 0x00040071u, 0x00000011u, 0x00004373u, 0x00004364u, 0x0004007cu, 0x00000012u, + 0x00004374u, 0x00004373u, 0x00070050u, 0x00000013u, 0x00004375u, 0x0000436bu, 0x0000436bu, 0x0000436bu, + 0x00004374u, 0x000200f9u, 0x0000321fu, 0x000200f8u, 0x0000321fu, 0x000700f5u, 0x00000013u, 0x00007e87u, + 0x00007e32u, 0x00003215u, 0x00004375u, 0x00003217u, 0x000200f9u, 0x00003262u, 0x000200f8u, 0x000031deu, + 0x0004007cu, 0x000000b4u, 0x000031e0u, 0x00007bd2u, 0x00050051u, 0x00000006u, 0x0000417au, 0x000031e0u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000417bu, 0x00002e18u, 0x0000417au, 0x00050080u, 0x00000006u, + 0x0000417cu, 0x00002e16u, 0x0000417bu, 0x00050051u, 0x00000006u, 0x0000417eu, 0x000031e0u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000417fu, 0x0000417eu, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00004181u, + 0x0000417cu, 0x0000417fu, 0x000500c7u, 0x00000006u, 0x00004183u, 0x00004181u, 0x00000e75u, 0x000400c8u, + 0x00000006u, 0x00004186u, 0x0000417eu, 0x000500c7u, 0x00000006u, 0x00004187u, 0x00004186u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00004188u, 0x00004187u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x0000418cu, + 0x0000417au, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000418du, 0x0000418cu, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x0000418fu, 0x00004183u, 0x0000418du, 0x000500c6u, 0x00000006u, 0x00004191u, 0x0000418fu, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00004194u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00004191u, 0x0004003du, 0x0000000fu, 0x00004195u, 0x00004194u, 0x00040071u, 0x00000006u, 0x00004196u, + 0x00004195u, 0x000500c2u, 0x00000006u, 0x00004199u, 0x00004196u, 0x00004188u, 0x000500c7u, 0x00000006u, + 0x0000419au, 0x00004199u, 0x00000e98u, 0x000500c7u, 0x00000006u, 0x0000419cu, 0x0000419au, 0x00000ed0u, + 0x000500c4u, 0x00000006u, 0x0000419eu, 0x0000419cu, 0x00000238u, 0x000500c4u, 0x00000006u, 0x000041a0u, + 0x0000419cu, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x000041a1u, 0x0000419eu, 0x000041a0u, 0x000500c2u, + 0x00000006u, 0x000041a3u, 0x0000419cu, 0x00000232u, 0x000500c5u, 0x00000006u, 0x000041a4u, 0x000041a1u, + 0x000041a3u, 0x00040071u, 0x00000011u, 0x000041a6u, 0x000041a4u, 0x0004007cu, 0x00000012u, 0x000041a7u, + 0x000041a6u, 0x000500c7u, 0x00000006u, 0x000041afu, 0x0000419au, 0x00000461u, 0x00050084u, 0x00000006u, + 0x000041b0u, 0x000041afu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000041b1u, 0x000041b0u, 0x0004007cu, + 0x00000012u, 0x000041b2u, 0x000041b1u, 0x00070050u, 0x00000013u, 0x000041b3u, 0x000041a7u, 0x000041a7u, + 0x000041a7u, 0x000041b2u, 0x000300f7u, 0x000031f4u, 0x00000000u, 0x000400fau, 0x00002319u, 0x000031e5u, + 0x000031f4u, 0x000200f8u, 0x000031e5u, 0x00050050u, 0x000000f2u, 0x000031e8u, 0x00007bb3u, 0x00002fd2u, + 0x0004007cu, 0x000000b4u, 0x000031e9u, 0x000031e8u, 0x00050051u, 0x00000006u, 0x000041c0u, 0x000031e9u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000041c1u, 0x00002e18u, 0x000041c0u, 0x00050080u, 0x00000006u, + 0x000041c2u, 0x00002e16u, 0x000041c1u, 0x00050051u, 0x00000006u, 0x000041c4u, 0x000031e9u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000041c5u, 0x000041c4u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000041c7u, + 0x000041c2u, 0x000041c5u, 0x000500c7u, 0x00000006u, 0x000041c9u, 0x000041c7u, 0x00000e75u, 0x000400c8u, + 0x00000006u, 0x000041ccu, 0x000041c4u, 0x000500c7u, 0x00000006u, 0x000041cdu, 0x000041ccu, 0x00000461u, + 0x00050084u, 0x00000006u, 0x000041ceu, 0x000041cdu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000041d2u, + 0x000041c0u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000041d3u, 0x000041d2u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x000041d5u, 0x000041c9u, 0x000041d3u, 0x000500c6u, 0x00000006u, 0x000041d7u, 0x000041d5u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000041dau, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x000041d7u, 0x0004003du, 0x0000000fu, 0x000041dbu, 0x000041dau, 0x00040071u, 0x00000006u, 0x000041dcu, + 0x000041dbu, 0x000500c2u, 0x00000006u, 0x000041dfu, 0x000041dcu, 0x000041ceu, 0x000500c7u, 0x00000006u, + 0x000041e0u, 0x000041dfu, 0x00000e98u, 0x000500c7u, 0x00000006u, 0x000041e2u, 0x000041e0u, 0x00000ed0u, + 0x000500c4u, 0x00000006u, 0x000041e4u, 0x000041e2u, 0x00000238u, 0x000500c4u, 0x00000006u, 0x000041e6u, + 0x000041e2u, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x000041e7u, 0x000041e4u, 0x000041e6u, 0x000500c2u, + 0x00000006u, 0x000041e9u, 0x000041e2u, 0x00000232u, 0x000500c5u, 0x00000006u, 0x000041eau, 0x000041e7u, + 0x000041e9u, 0x00040071u, 0x00000011u, 0x000041ecu, 0x000041eau, 0x0004007cu, 0x00000012u, 0x000041edu, + 0x000041ecu, 0x000500c7u, 0x00000006u, 0x000041f5u, 0x000041e0u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x000041f6u, 0x000041f5u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000041f7u, 0x000041f6u, 0x0004007cu, + 0x00000012u, 0x000041f8u, 0x000041f7u, 0x00070050u, 0x00000013u, 0x000041f9u, 0x000041edu, 0x000041edu, + 0x000041edu, 0x000041f8u, 0x00050050u, 0x000000f2u, 0x000031efu, 0x00007babu, 0x00002fd4u, 0x0004007cu, + 0x000000b4u, 0x000031f0u, 0x000031efu, 0x00050051u, 0x00000006u, 0x00004206u, 0x000031f0u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00004207u, 0x00002e18u, 0x00004206u, 0x00050080u, 0x00000006u, 0x00004208u, + 0x00002e16u, 0x00004207u, 0x00050051u, 0x00000006u, 0x0000420au, 0x000031f0u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x0000420bu, 0x0000420au, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000420du, 0x00004208u, + 0x0000420bu, 0x000500c7u, 0x00000006u, 0x0000420fu, 0x0000420du, 0x00000e75u, 0x000400c8u, 0x00000006u, + 0x00004212u, 0x0000420au, 0x000500c7u, 0x00000006u, 0x00004213u, 0x00004212u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00004214u, 0x00004213u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00004218u, 0x00004206u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004219u, 0x00004218u, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x0000421bu, 0x0000420fu, 0x00004219u, 0x000500c6u, 0x00000006u, 0x0000421du, 0x0000421bu, 0x00000469u, + 0x00080041u, 0x00000676u, 0x00004220u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000421du, + 0x0004003du, 0x0000000fu, 0x00004221u, 0x00004220u, 0x00040071u, 0x00000006u, 0x00004222u, 0x00004221u, + 0x000500c2u, 0x00000006u, 0x00004225u, 0x00004222u, 0x00004214u, 0x000500c7u, 0x00000006u, 0x00004226u, + 0x00004225u, 0x00000e98u, 0x000500c7u, 0x00000006u, 0x00004228u, 0x00004226u, 0x00000ed0u, 0x000500c4u, + 0x00000006u, 0x0000422au, 0x00004228u, 0x00000238u, 0x000500c4u, 0x00000006u, 0x0000422cu, 0x00004228u, + 0x0000022fu, 0x000500c5u, 0x00000006u, 0x0000422du, 0x0000422au, 0x0000422cu, 0x000500c2u, 0x00000006u, + 0x0000422fu, 0x00004228u, 0x00000232u, 0x000500c5u, 0x00000006u, 0x00004230u, 0x0000422du, 0x0000422fu, + 0x00040071u, 0x00000011u, 0x00004232u, 0x00004230u, 0x0004007cu, 0x00000012u, 0x00004233u, 0x00004232u, + 0x000500c7u, 0x00000006u, 0x0000423bu, 0x00004226u, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000423cu, + 0x0000423bu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000423du, 0x0000423cu, 0x0004007cu, 0x00000012u, + 0x0000423eu, 0x0000423du, 0x00070050u, 0x00000013u, 0x0000423fu, 0x00004233u, 0x00004233u, 0x00004233u, + 0x0000423eu, 0x000200f9u, 0x000031f4u, 0x000200f8u, 0x000031f4u, 0x000700f5u, 0x00000013u, 0x00007e08u, + 0x00007db7u, 0x000031deu, 0x0000423fu, 0x000031e5u, 0x000700f5u, 0x00000013u, 0x00007d8au, 0x00007d36u, + 0x000031deu, 0x000041f9u, 0x000031e5u, 0x000300f7u, 0x000031feu, 0x00000000u, 0x000400fau, 0x00002fdeu, + 0x000031f6u, 0x000031feu, 0x000200f8u, 0x000031f6u, 0x00050050u, 0x000000f2u, 0x000031f9u, 0x00007bb3u, + 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x000031fau, 0x000031f9u, 0x00050051u, 0x00000006u, 0x0000424cu, + 0x000031fau, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000424du, 0x00002e18u, 0x0000424cu, 0x00050080u, + 0x00000006u, 0x0000424eu, 0x00002e16u, 0x0000424du, 0x00050051u, 0x00000006u, 0x00004250u, 0x000031fau, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004251u, 0x00004250u, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00004253u, 0x0000424eu, 0x00004251u, 0x000500c7u, 0x00000006u, 0x00004255u, 0x00004253u, 0x00000e75u, + 0x000400c8u, 0x00000006u, 0x00004258u, 0x00004250u, 0x000500c7u, 0x00000006u, 0x00004259u, 0x00004258u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x0000425au, 0x00004259u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x0000425eu, 0x0000424cu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000425fu, 0x0000425eu, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00004261u, 0x00004255u, 0x0000425fu, 0x000500c6u, 0x00000006u, 0x00004263u, + 0x00004261u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00004266u, 0x00000e8fu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00004263u, 0x0004003du, 0x0000000fu, 0x00004267u, 0x00004266u, 0x00040071u, 0x00000006u, + 0x00004268u, 0x00004267u, 0x000500c2u, 0x00000006u, 0x0000426bu, 0x00004268u, 0x0000425au, 0x000500c7u, + 0x00000006u, 0x0000426cu, 0x0000426bu, 0x00000e98u, 0x000500c7u, 0x00000006u, 0x0000426eu, 0x0000426cu, + 0x00000ed0u, 0x000500c4u, 0x00000006u, 0x00004270u, 0x0000426eu, 0x00000238u, 0x000500c4u, 0x00000006u, + 0x00004272u, 0x0000426eu, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x00004273u, 0x00004270u, 0x00004272u, + 0x000500c2u, 0x00000006u, 0x00004275u, 0x0000426eu, 0x00000232u, 0x000500c5u, 0x00000006u, 0x00004276u, + 0x00004273u, 0x00004275u, 0x00040071u, 0x00000011u, 0x00004278u, 0x00004276u, 0x0004007cu, 0x00000012u, + 0x00004279u, 0x00004278u, 0x000500c7u, 0x00000006u, 0x00004281u, 0x0000426cu, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00004282u, 0x00004281u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00004283u, 0x00004282u, + 0x0004007cu, 0x00000012u, 0x00004284u, 0x00004283u, 0x00070050u, 0x00000013u, 0x00004285u, 0x00004279u, + 0x00004279u, 0x00004279u, 0x00004284u, 0x000200f9u, 0x000031feu, 0x000200f8u, 0x000031feu, 0x000700f5u, + 0x00000013u, 0x00007e85u, 0x00007e32u, 0x000031f4u, 0x00004285u, 0x000031f6u, 0x000200f9u, 0x00003262u, + 0x000200f8u, 0x00003262u, 0x000d00f5u, 0x00000013u, 0x00007e84u, 0x00007e32u, 0x000031d9u, 0x00007e85u, + 0x000031feu, 0x00007e87u, 0x0000321fu, 0x00007e89u, 0x00003240u, 0x00007e8bu, 0x00003261u, 0x000d00f5u, + 0x00000013u, 0x00007e06u, 0x00007db7u, 0x000031d9u, 0x00007e08u, 0x000031feu, 0x00007e0au, 0x0000321fu, + 0x00007e0cu, 0x00003240u, 0x00007e0eu, 0x00003261u, 0x000d00f5u, 0x00000013u, 0x00007d88u, 0x00007d36u, + 0x000031d9u, 0x00007d8au, 0x000031feu, 0x00007d8cu, 0x0000321fu, 0x00007d8eu, 0x00003240u, 0x00007d90u, + 0x00003261u, 0x000d00f5u, 0x00000013u, 0x00007c95u, 0x00007c43u, 0x000031d9u, 0x000041b3u, 0x000031feu, + 0x000042c1u, 0x0000321fu, 0x000043b0u, 0x00003240u, 0x0000448eu, 0x00003261u, 0x000200f9u, 0x000032ccu, + 0x000200f8u, 0x00003164u, 0x00040071u, 0x00000006u, 0x00003167u, 0x00002e1cu, 0x0004007cu, 0x00000008u, + 0x00003168u, 0x00003167u, 0x000300f7u, 0x000031d8u, 0x00000000u, 0x000700fbu, 0x00003168u, 0x00003169u, + 0x00000000u, 0x0000318au, 0x00000001u, 0x000031b7u, 0x000200f8u, 0x000031b7u, 0x0004007cu, 0x000000b4u, + 0x000031b9u, 0x00007bd2u, 0x00050051u, 0x00000006u, 0x000040e4u, 0x000031b9u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000040e5u, 0x00002e18u, 0x000040e4u, 0x00050080u, 0x00000006u, 0x000040e6u, 0x00002e16u, + 0x000040e5u, 0x00050051u, 0x00000006u, 0x000040e8u, 0x000031b9u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x000040eau, 0x000040e6u, 0x000040e8u, 0x000500c7u, 0x00000006u, 0x000040ecu, 0x000040eau, 0x00000e75u, + 0x000500c7u, 0x00000006u, 0x000040f0u, 0x000040e4u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000040f1u, + 0x000040f0u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000040f3u, 0x000040ecu, 0x000040f1u, 0x000500c6u, + 0x00000006u, 0x000040f5u, 0x000040f3u, 0x00000469u, 0x00080041u, 0x00000676u, 0x000040f8u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x000040f5u, 0x0004003du, 0x0000000fu, 0x000040f9u, 0x000040f8u, + 0x00040071u, 0x00000006u, 0x000040fau, 0x000040f9u, 0x00040071u, 0x00000011u, 0x000040fcu, 0x000040fau, + 0x0004007cu, 0x00000012u, 0x000040fdu, 0x000040fcu, 0x00070050u, 0x00000013u, 0x000040feu, 0x000040fdu, + 0x000040fdu, 0x000040fdu, 0x000040fdu, 0x000300f7u, 0x000031cdu, 0x00000000u, 0x000400fau, 0x00002319u, + 0x000031beu, 0x000031cdu, 0x000200f8u, 0x000031beu, 0x00050050u, 0x000000f2u, 0x000031c1u, 0x00007bb3u, + 0x00002fd2u, 0x0004007cu, 0x000000b4u, 0x000031c2u, 0x000031c1u, 0x00050051u, 0x00000006u, 0x00004109u, + 0x000031c2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000410au, 0x00002e18u, 0x00004109u, 0x00050080u, + 0x00000006u, 0x0000410bu, 0x00002e16u, 0x0000410au, 0x00050051u, 0x00000006u, 0x0000410du, 0x000031c2u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x0000410fu, 0x0000410bu, 0x0000410du, 0x000500c7u, 0x00000006u, + 0x00004111u, 0x0000410fu, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x00004115u, 0x00004109u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00004116u, 0x00004115u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00004118u, + 0x00004111u, 0x00004116u, 0x000500c6u, 0x00000006u, 0x0000411au, 0x00004118u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x0000411du, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000411au, 0x0004003du, + 0x0000000fu, 0x0000411eu, 0x0000411du, 0x00040071u, 0x00000006u, 0x0000411fu, 0x0000411eu, 0x00040071u, + 0x00000011u, 0x00004121u, 0x0000411fu, 0x0004007cu, 0x00000012u, 0x00004122u, 0x00004121u, 0x00070050u, + 0x00000013u, 0x00004123u, 0x00004122u, 0x00004122u, 0x00004122u, 0x00004122u, 0x00050050u, 0x000000f2u, + 0x000031c8u, 0x00007babu, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x000031c9u, 0x000031c8u, 0x00050051u, + 0x00000006u, 0x0000412eu, 0x000031c9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000412fu, 0x00002e18u, + 0x0000412eu, 0x00050080u, 0x00000006u, 0x00004130u, 0x00002e16u, 0x0000412fu, 0x00050051u, 0x00000006u, + 0x00004132u, 0x000031c9u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004134u, 0x00004130u, 0x00004132u, + 0x000500c7u, 0x00000006u, 0x00004136u, 0x00004134u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x0000413au, + 0x0000412eu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000413bu, 0x0000413au, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x0000413du, 0x00004136u, 0x0000413bu, 0x000500c6u, 0x00000006u, 0x0000413fu, 0x0000413du, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00004142u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x0000413fu, 0x0004003du, 0x0000000fu, 0x00004143u, 0x00004142u, 0x00040071u, 0x00000006u, 0x00004144u, + 0x00004143u, 0x00040071u, 0x00000011u, 0x00004146u, 0x00004144u, 0x0004007cu, 0x00000012u, 0x00004147u, + 0x00004146u, 0x00070050u, 0x00000013u, 0x00004148u, 0x00004147u, 0x00004147u, 0x00004147u, 0x00004147u, + 0x000200f9u, 0x000031cdu, 0x000200f8u, 0x000031cdu, 0x000700f5u, 0x00000013u, 0x00007e05u, 0x00007db7u, + 0x000031b7u, 0x00004148u, 0x000031beu, 0x000700f5u, 0x00000013u, 0x00007d87u, 0x00007d36u, 0x000031b7u, + 0x00004123u, 0x000031beu, 0x000300f7u, 0x000031d7u, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x000031cfu, + 0x000031d7u, 0x000200f8u, 0x000031cfu, 0x00050050u, 0x000000f2u, 0x000031d2u, 0x00007bb3u, 0x00002fd4u, + 0x0004007cu, 0x000000b4u, 0x000031d3u, 0x000031d2u, 0x00050051u, 0x00000006u, 0x00004153u, 0x000031d3u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004154u, 0x00002e18u, 0x00004153u, 0x00050080u, 0x00000006u, + 0x00004155u, 0x00002e16u, 0x00004154u, 0x00050051u, 0x00000006u, 0x00004157u, 0x000031d3u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00004159u, 0x00004155u, 0x00004157u, 0x000500c7u, 0x00000006u, 0x0000415bu, + 0x00004159u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x0000415fu, 0x00004153u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00004160u, 0x0000415fu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00004162u, 0x0000415bu, + 0x00004160u, 0x000500c6u, 0x00000006u, 0x00004164u, 0x00004162u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00004167u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00004164u, 0x0004003du, 0x0000000fu, + 0x00004168u, 0x00004167u, 0x00040071u, 0x00000006u, 0x00004169u, 0x00004168u, 0x00040071u, 0x00000011u, + 0x0000416bu, 0x00004169u, 0x0004007cu, 0x00000012u, 0x0000416cu, 0x0000416bu, 0x00070050u, 0x00000013u, + 0x0000416du, 0x0000416cu, 0x0000416cu, 0x0000416cu, 0x0000416cu, 0x000200f9u, 0x000031d7u, 0x000200f8u, + 0x000031d7u, 0x000700f5u, 0x00000013u, 0x00007e82u, 0x00007e32u, 0x000031cdu, 0x0000416du, 0x000031cfu, + 0x000200f9u, 0x000031d8u, 0x000200f8u, 0x0000318au, 0x0004007cu, 0x000000b4u, 0x0000318cu, 0x00007bd2u, + 0x00040071u, 0x00000006u, 0x0000318fu, 0x00002e1eu, 0x00050051u, 0x00000006u, 0x00004015u, 0x0000318cu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004016u, 0x00002e18u, 0x00004015u, 0x00050080u, 0x00000006u, + 0x00004017u, 0x00002e16u, 0x00004016u, 0x00050051u, 0x00000006u, 0x00004019u, 0x0000318cu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000401au, 0x00004019u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000401cu, + 0x00004017u, 0x0000401au, 0x000500c7u, 0x00000006u, 0x0000401eu, 0x0000401cu, 0x00000e75u, 0x000400c8u, + 0x00000006u, 0x00004021u, 0x00004019u, 0x000500c7u, 0x00000006u, 0x00004022u, 0x00004021u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00004023u, 0x00004022u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00004027u, + 0x00004015u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004028u, 0x00004027u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x0000402au, 0x0000401eu, 0x00004028u, 0x000500c6u, 0x00000006u, 0x0000402cu, 0x0000402au, + 0x00000469u, 0x00080041u, 0x00000676u, 0x0000402fu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x0000402cu, 0x0004003du, 0x0000000fu, 0x00004030u, 0x0000402fu, 0x00040071u, 0x00000006u, 0x00004031u, + 0x00004030u, 0x000500c2u, 0x00000006u, 0x00004034u, 0x00004031u, 0x00004023u, 0x000500c7u, 0x00000006u, + 0x00004035u, 0x00004034u, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x00004037u, 0x0000318fu, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x00004039u, 0x00004035u, 0x00004037u, 0x00040071u, 0x00000011u, 0x0000403bu, + 0x00004039u, 0x0004007cu, 0x00000012u, 0x0000403cu, 0x0000403bu, 0x00070050u, 0x00000013u, 0x0000403du, + 0x0000403cu, 0x0000403cu, 0x0000403cu, 0x0000403cu, 0x000300f7u, 0x000031a9u, 0x00000000u, 0x000400fau, + 0x00002319u, 0x00003194u, 0x000031a9u, 0x000200f8u, 0x00003194u, 0x00050050u, 0x000000f2u, 0x00003197u, + 0x00007bb3u, 0x00002fd2u, 0x0004007cu, 0x000000b4u, 0x00003198u, 0x00003197u, 0x00050051u, 0x00000006u, + 0x00004049u, 0x00003198u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000404au, 0x00002e18u, 0x00004049u, + 0x00050080u, 0x00000006u, 0x0000404bu, 0x00002e16u, 0x0000404au, 0x00050051u, 0x00000006u, 0x0000404du, + 0x00003198u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000404eu, 0x0000404du, 0x0000022fu, 0x00050080u, + 0x00000006u, 0x00004050u, 0x0000404bu, 0x0000404eu, 0x000500c7u, 0x00000006u, 0x00004052u, 0x00004050u, + 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00004055u, 0x0000404du, 0x000500c7u, 0x00000006u, 0x00004056u, + 0x00004055u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00004057u, 0x00004056u, 0x00000709u, 0x000500c7u, + 0x00000006u, 0x0000405bu, 0x00004049u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000405cu, 0x0000405bu, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x0000405eu, 0x00004052u, 0x0000405cu, 0x000500c6u, 0x00000006u, + 0x00004060u, 0x0000405eu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00004063u, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00004060u, 0x0004003du, 0x0000000fu, 0x00004064u, 0x00004063u, 0x00040071u, + 0x00000006u, 0x00004065u, 0x00004064u, 0x000500c2u, 0x00000006u, 0x00004068u, 0x00004065u, 0x00004057u, + 0x000500c7u, 0x00000006u, 0x00004069u, 0x00004068u, 0x00000e98u, 0x000500c5u, 0x00000006u, 0x0000406du, + 0x00004069u, 0x00004037u, 0x00040071u, 0x00000011u, 0x0000406fu, 0x0000406du, 0x0004007cu, 0x00000012u, + 0x00004070u, 0x0000406fu, 0x00070050u, 0x00000013u, 0x00004071u, 0x00004070u, 0x00004070u, 0x00004070u, + 0x00004070u, 0x00050050u, 0x000000f2u, 0x000031a1u, 0x00007babu, 0x00002fd4u, 0x0004007cu, 0x000000b4u, + 0x000031a2u, 0x000031a1u, 0x00050051u, 0x00000006u, 0x0000407du, 0x000031a2u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000407eu, 0x00002e18u, 0x0000407du, 0x00050080u, 0x00000006u, 0x0000407fu, 0x00002e16u, + 0x0000407eu, 0x00050051u, 0x00000006u, 0x00004081u, 0x000031a2u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00004082u, 0x00004081u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00004084u, 0x0000407fu, 0x00004082u, + 0x000500c7u, 0x00000006u, 0x00004086u, 0x00004084u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00004089u, + 0x00004081u, 0x000500c7u, 0x00000006u, 0x0000408au, 0x00004089u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x0000408bu, 0x0000408au, 0x00000709u, 0x000500c7u, 0x00000006u, 0x0000408fu, 0x0000407du, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00004090u, 0x0000408fu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00004092u, + 0x00004086u, 0x00004090u, 0x000500c6u, 0x00000006u, 0x00004094u, 0x00004092u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00004097u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00004094u, 0x0004003du, + 0x0000000fu, 0x00004098u, 0x00004097u, 0x00040071u, 0x00000006u, 0x00004099u, 0x00004098u, 0x000500c2u, + 0x00000006u, 0x0000409cu, 0x00004099u, 0x0000408bu, 0x000500c7u, 0x00000006u, 0x0000409du, 0x0000409cu, + 0x00000e98u, 0x000500c5u, 0x00000006u, 0x000040a1u, 0x0000409du, 0x00004037u, 0x00040071u, 0x00000011u, + 0x000040a3u, 0x000040a1u, 0x0004007cu, 0x00000012u, 0x000040a4u, 0x000040a3u, 0x00070050u, 0x00000013u, + 0x000040a5u, 0x000040a4u, 0x000040a4u, 0x000040a4u, 0x000040a4u, 0x000200f9u, 0x000031a9u, 0x000200f8u, + 0x000031a9u, 0x000700f5u, 0x00000013u, 0x00007e03u, 0x00007db7u, 0x0000318au, 0x000040a5u, 0x00003194u, + 0x000700f5u, 0x00000013u, 0x00007d85u, 0x00007d36u, 0x0000318au, 0x00004071u, 0x00003194u, 0x000300f7u, + 0x000031b6u, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x000031abu, 0x000031b6u, 0x000200f8u, 0x000031abu, + 0x00050050u, 0x000000f2u, 0x000031aeu, 0x00007bb3u, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x000031afu, + 0x000031aeu, 0x00050051u, 0x00000006u, 0x000040b1u, 0x000031afu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000040b2u, 0x00002e18u, 0x000040b1u, 0x00050080u, 0x00000006u, 0x000040b3u, 0x00002e16u, 0x000040b2u, + 0x00050051u, 0x00000006u, 0x000040b5u, 0x000031afu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000040b6u, + 0x000040b5u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000040b8u, 0x000040b3u, 0x000040b6u, 0x000500c7u, + 0x00000006u, 0x000040bau, 0x000040b8u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x000040bdu, 0x000040b5u, + 0x000500c7u, 0x00000006u, 0x000040beu, 0x000040bdu, 0x00000461u, 0x00050084u, 0x00000006u, 0x000040bfu, + 0x000040beu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000040c3u, 0x000040b1u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000040c4u, 0x000040c3u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000040c6u, 0x000040bau, + 0x000040c4u, 0x000500c6u, 0x00000006u, 0x000040c8u, 0x000040c6u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000040cbu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000040c8u, 0x0004003du, 0x0000000fu, + 0x000040ccu, 0x000040cbu, 0x00040071u, 0x00000006u, 0x000040cdu, 0x000040ccu, 0x000500c2u, 0x00000006u, + 0x000040d0u, 0x000040cdu, 0x000040bfu, 0x000500c7u, 0x00000006u, 0x000040d1u, 0x000040d0u, 0x00000e98u, + 0x000500c5u, 0x00000006u, 0x000040d5u, 0x000040d1u, 0x00004037u, 0x00040071u, 0x00000011u, 0x000040d7u, + 0x000040d5u, 0x0004007cu, 0x00000012u, 0x000040d8u, 0x000040d7u, 0x00070050u, 0x00000013u, 0x000040d9u, + 0x000040d8u, 0x000040d8u, 0x000040d8u, 0x000040d8u, 0x000200f9u, 0x000031b6u, 0x000200f8u, 0x000031b6u, + 0x000700f5u, 0x00000013u, 0x00007e80u, 0x00007e32u, 0x000031a9u, 0x000040d9u, 0x000031abu, 0x000200f9u, + 0x000031d8u, 0x000200f8u, 0x00003169u, 0x0004007cu, 0x000000b4u, 0x0000316bu, 0x00007bd2u, 0x00050051u, + 0x00000006u, 0x00003f60u, 0x0000316bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003f61u, 0x00002e18u, + 0x00003f60u, 0x00050080u, 0x00000006u, 0x00003f62u, 0x00002e16u, 0x00003f61u, 0x00050051u, 0x00000006u, + 0x00003f64u, 0x0000316bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003f65u, 0x00003f64u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x00003f67u, 0x00003f62u, 0x00003f65u, 0x000500c7u, 0x00000006u, 0x00003f69u, + 0x00003f67u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00003f6bu, 0x00003f69u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00003f6eu, 0x00003f60u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003f6fu, 0x00003f6eu, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003f71u, 0x00003f6bu, 0x00003f6fu, 0x000500c6u, 0x00000006u, + 0x00003f73u, 0x00003f71u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00003f76u, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00003f73u, 0x0004003du, 0x00000011u, 0x00003f77u, 0x00003f76u, 0x00040071u, + 0x00000006u, 0x00003f78u, 0x00003f77u, 0x000500c2u, 0x00000006u, 0x00003f7au, 0x00003f78u, 0x00000262u, + 0x00040071u, 0x00000011u, 0x00003f7bu, 0x00003f7au, 0x0004007cu, 0x00000012u, 0x00003f7cu, 0x00003f7bu, + 0x000500c7u, 0x00000006u, 0x00003f7eu, 0x00003f78u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003f7fu, + 0x00003f7eu, 0x0004007cu, 0x00000012u, 0x00003f80u, 0x00003f7fu, 0x00050050u, 0x000001b1u, 0x00003f81u, + 0x00003f7cu, 0x00003f80u, 0x0009004fu, 0x00000013u, 0x00003f82u, 0x00003f81u, 0x00003f81u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x0000317fu, 0x00000000u, 0x000400fau, 0x00002319u, + 0x00003170u, 0x0000317fu, 0x000200f8u, 0x00003170u, 0x00050050u, 0x000000f2u, 0x00003173u, 0x00007bb3u, + 0x00002fd2u, 0x0004007cu, 0x000000b4u, 0x00003174u, 0x00003173u, 0x00050051u, 0x00000006u, 0x00003f8du, + 0x00003174u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003f8eu, 0x00002e18u, 0x00003f8du, 0x00050080u, + 0x00000006u, 0x00003f8fu, 0x00002e16u, 0x00003f8eu, 0x00050051u, 0x00000006u, 0x00003f91u, 0x00003174u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003f92u, 0x00003f91u, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x00003f94u, 0x00003f8fu, 0x00003f92u, 0x000500c7u, 0x00000006u, 0x00003f96u, 0x00003f94u, 0x00000e75u, + 0x000500c2u, 0x00000006u, 0x00003f98u, 0x00003f96u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003f9bu, + 0x00003f8du, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003f9cu, 0x00003f9bu, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00003f9eu, 0x00003f98u, 0x00003f9cu, 0x000500c6u, 0x00000006u, 0x00003fa0u, 0x00003f9eu, + 0x00000461u, 0x00080041u, 0x00000697u, 0x00003fa3u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00003fa0u, 0x0004003du, 0x00000011u, 0x00003fa4u, 0x00003fa3u, 0x00040071u, 0x00000006u, 0x00003fa5u, + 0x00003fa4u, 0x000500c2u, 0x00000006u, 0x00003fa7u, 0x00003fa5u, 0x00000262u, 0x00040071u, 0x00000011u, + 0x00003fa8u, 0x00003fa7u, 0x0004007cu, 0x00000012u, 0x00003fa9u, 0x00003fa8u, 0x000500c7u, 0x00000006u, + 0x00003fabu, 0x00003fa5u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003facu, 0x00003fabu, 0x0004007cu, + 0x00000012u, 0x00003fadu, 0x00003facu, 0x00050050u, 0x000001b1u, 0x00003faeu, 0x00003fa9u, 0x00003fadu, + 0x0009004fu, 0x00000013u, 0x00003fafu, 0x00003faeu, 0x00003faeu, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x00050050u, 0x000000f2u, 0x0000317au, 0x00007babu, 0x00002fd4u, 0x0004007cu, 0x000000b4u, + 0x0000317bu, 0x0000317au, 0x00050051u, 0x00000006u, 0x00003fbau, 0x0000317bu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003fbbu, 0x00002e18u, 0x00003fbau, 0x00050080u, 0x00000006u, 0x00003fbcu, 0x00002e16u, + 0x00003fbbu, 0x00050051u, 0x00000006u, 0x00003fbeu, 0x0000317bu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003fbfu, 0x00003fbeu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003fc1u, 0x00003fbcu, 0x00003fbfu, + 0x000500c7u, 0x00000006u, 0x00003fc3u, 0x00003fc1u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00003fc5u, + 0x00003fc3u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003fc8u, 0x00003fbau, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00003fc9u, 0x00003fc8u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003fcbu, 0x00003fc5u, + 0x00003fc9u, 0x000500c6u, 0x00000006u, 0x00003fcdu, 0x00003fcbu, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00003fd0u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003fcdu, 0x0004003du, 0x00000011u, + 0x00003fd1u, 0x00003fd0u, 0x00040071u, 0x00000006u, 0x00003fd2u, 0x00003fd1u, 0x000500c2u, 0x00000006u, + 0x00003fd4u, 0x00003fd2u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003fd5u, 0x00003fd4u, 0x0004007cu, + 0x00000012u, 0x00003fd6u, 0x00003fd5u, 0x000500c7u, 0x00000006u, 0x00003fd8u, 0x00003fd2u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00003fd9u, 0x00003fd8u, 0x0004007cu, 0x00000012u, 0x00003fdau, 0x00003fd9u, + 0x00050050u, 0x000001b1u, 0x00003fdbu, 0x00003fd6u, 0x00003fdau, 0x0009004fu, 0x00000013u, 0x00003fdcu, + 0x00003fdbu, 0x00003fdbu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000317fu, + 0x000200f8u, 0x0000317fu, 0x000700f5u, 0x00000013u, 0x00007e01u, 0x00007db7u, 0x00003169u, 0x00003fdcu, + 0x00003170u, 0x000700f5u, 0x00000013u, 0x00007d83u, 0x00007d36u, 0x00003169u, 0x00003fafu, 0x00003170u, + 0x000300f7u, 0x00003189u, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x00003181u, 0x00003189u, 0x000200f8u, + 0x00003181u, 0x00050050u, 0x000000f2u, 0x00003184u, 0x00007bb3u, 0x00002fd4u, 0x0004007cu, 0x000000b4u, + 0x00003185u, 0x00003184u, 0x00050051u, 0x00000006u, 0x00003fe7u, 0x00003185u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003fe8u, 0x00002e18u, 0x00003fe7u, 0x00050080u, 0x00000006u, 0x00003fe9u, 0x00002e16u, + 0x00003fe8u, 0x00050051u, 0x00000006u, 0x00003febu, 0x00003185u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003fecu, 0x00003febu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003feeu, 0x00003fe9u, 0x00003fecu, + 0x000500c7u, 0x00000006u, 0x00003ff0u, 0x00003feeu, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00003ff2u, + 0x00003ff0u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003ff5u, 0x00003fe7u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00003ff6u, 0x00003ff5u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003ff8u, 0x00003ff2u, + 0x00003ff6u, 0x000500c6u, 0x00000006u, 0x00003ffau, 0x00003ff8u, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00003ffdu, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003ffau, 0x0004003du, 0x00000011u, + 0x00003ffeu, 0x00003ffdu, 0x00040071u, 0x00000006u, 0x00003fffu, 0x00003ffeu, 0x000500c2u, 0x00000006u, + 0x00004001u, 0x00003fffu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00004002u, 0x00004001u, 0x0004007cu, + 0x00000012u, 0x00004003u, 0x00004002u, 0x000500c7u, 0x00000006u, 0x00004005u, 0x00003fffu, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00004006u, 0x00004005u, 0x0004007cu, 0x00000012u, 0x00004007u, 0x00004006u, + 0x00050050u, 0x000001b1u, 0x00004008u, 0x00004003u, 0x00004007u, 0x0009004fu, 0x00000013u, 0x00004009u, + 0x00004008u, 0x00004008u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003189u, + 0x000200f8u, 0x00003189u, 0x000700f5u, 0x00000013u, 0x00007e7eu, 0x00007e32u, 0x0000317fu, 0x00004009u, + 0x00003181u, 0x000200f9u, 0x000031d8u, 0x000200f8u, 0x000031d8u, 0x000900f5u, 0x00000013u, 0x00007e7du, + 0x00007e7eu, 0x00003189u, 0x00007e80u, 0x000031b6u, 0x00007e82u, 0x000031d7u, 0x000900f5u, 0x00000013u, + 0x00007dffu, 0x00007e01u, 0x00003189u, 0x00007e03u, 0x000031b6u, 0x00007e05u, 0x000031d7u, 0x000900f5u, + 0x00000013u, 0x00007d81u, 0x00007d83u, 0x00003189u, 0x00007d85u, 0x000031b6u, 0x00007d87u, 0x000031d7u, + 0x000900f5u, 0x00000013u, 0x00007c8eu, 0x00003f82u, 0x00003189u, 0x0000403du, 0x000031b6u, 0x000040feu, + 0x000031d7u, 0x000200f9u, 0x000032ccu, 0x000200f8u, 0x00003136u, 0x000500c3u, 0x00000008u, 0x00003138u, + 0x00007babu, 0x0000022fu, 0x0004007cu, 0x00000006u, 0x00003139u, 0x00003138u, 0x00050082u, 0x00000008u, + 0x0000313du, 0x00007bb3u, 0x00007babu, 0x00050080u, 0x00000008u, 0x0000313eu, 0x00007bb3u, 0x0000313du, + 0x000500c3u, 0x00000008u, 0x0000313fu, 0x0000313eu, 0x0000022fu, 0x0004007cu, 0x00000006u, 0x00003140u, + 0x0000313fu, 0x00050050u, 0x000000f2u, 0x00003143u, 0x00007babu, 0x00002fd2u, 0x0004007cu, 0x000000b4u, + 0x00003144u, 0x00003143u, 0x00050051u, 0x00000006u, 0x00003e1eu, 0x00003144u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003e1fu, 0x00002e18u, 0x00003e1eu, 0x00050080u, 0x00000006u, 0x00003e20u, 0x00002e16u, + 0x00003e1fu, 0x00050051u, 0x00000006u, 0x00003e23u, 0x00003144u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003e24u, 0x00003e20u, 0x00003e23u, 0x000500c7u, 0x00000006u, 0x00003e26u, 0x00003e24u, 0x00000f2du, + 0x00050084u, 0x00000006u, 0x00003e29u, 0x00003139u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003e2au, + 0x00003e20u, 0x00003e29u, 0x000500c7u, 0x00000006u, 0x00003e2cu, 0x00003e2au, 0x00000f2du, 0x000500c7u, + 0x00000006u, 0x00003e30u, 0x00003e1eu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003e31u, 0x00003e30u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003e33u, 0x00003e26u, 0x00003e31u, 0x000500c6u, 0x00000006u, + 0x00003e35u, 0x00003e33u, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00003e37u, 0x00003e2cu, 0x0000022fu, + 0x000500c4u, 0x00000006u, 0x00003e3bu, 0x00003e30u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003e3du, + 0x00003e37u, 0x00003e3bu, 0x000500c6u, 0x00000006u, 0x00003e3fu, 0x00003e3du, 0x00000461u, 0x000500c5u, + 0x00000006u, 0x00003e42u, 0x00003e35u, 0x00000f56u, 0x00080041u, 0x00000676u, 0x00003e43u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00003e42u, 0x0004003du, 0x0000000fu, 0x00003e44u, 0x00003e43u, + 0x00080041u, 0x00000697u, 0x00003e47u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003e3fu, + 0x0004003du, 0x00000011u, 0x00003e48u, 0x00003e47u, 0x000500c2u, 0x00000011u, 0x00003e4au, 0x00003e48u, + 0x000010b3u, 0x000500c7u, 0x00000011u, 0x00003e4bu, 0x00003e4au, 0x00000350u, 0x00040071u, 0x0000000fu, + 0x00003e4cu, 0x00003e4bu, 0x000500c2u, 0x00000011u, 0x00003e4eu, 0x00003e48u, 0x0000021fu, 0x000500c7u, + 0x00000011u, 0x00003e4fu, 0x00003e4eu, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00003e50u, 0x00003e4fu, + 0x00040071u, 0x00000011u, 0x00003e52u, 0x00003e4cu, 0x0004007cu, 0x00000012u, 0x00003e53u, 0x00003e52u, + 0x00050082u, 0x00000012u, 0x00003e54u, 0x00003e53u, 0x000010bfu, 0x00040071u, 0x00000011u, 0x00003e56u, + 0x00003e50u, 0x0004007cu, 0x00000012u, 0x00003e57u, 0x00003e56u, 0x00050082u, 0x00000012u, 0x00003e58u, + 0x00003e57u, 0x000010bfu, 0x00040071u, 0x00000011u, 0x00003e5au, 0x00003e44u, 0x0004007cu, 0x00000012u, + 0x00003e5bu, 0x00003e5au, 0x00070050u, 0x00000013u, 0x00003e5fu, 0x00003e54u, 0x00003e58u, 0x00003e5bu, + 0x00003e5bu, 0x000300f7u, 0x00003163u, 0x00000000u, 0x000400fau, 0x00002319u, 0x0000314au, 0x00003163u, + 0x000200f8u, 0x0000314au, 0x00050050u, 0x000000f2u, 0x0000314du, 0x00007bb3u, 0x00002fd2u, 0x0004007cu, + 0x000000b4u, 0x0000314eu, 0x0000314du, 0x00050051u, 0x00000006u, 0x00003e70u, 0x0000314eu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003e71u, 0x00002e18u, 0x00003e70u, 0x00050080u, 0x00000006u, 0x00003e72u, + 0x00002e16u, 0x00003e71u, 0x00050051u, 0x00000006u, 0x00003e75u, 0x0000314eu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003e76u, 0x00003e72u, 0x00003e75u, 0x000500c7u, 0x00000006u, 0x00003e78u, 0x00003e76u, + 0x00000f2du, 0x00050084u, 0x00000006u, 0x00003e7bu, 0x00003140u, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x00003e7cu, 0x00003e72u, 0x00003e7bu, 0x000500c7u, 0x00000006u, 0x00003e7eu, 0x00003e7cu, 0x00000f2du, + 0x000500c7u, 0x00000006u, 0x00003e82u, 0x00003e70u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003e83u, + 0x00003e82u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003e85u, 0x00003e78u, 0x00003e83u, 0x000500c6u, + 0x00000006u, 0x00003e87u, 0x00003e85u, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00003e89u, 0x00003e7eu, + 0x0000022fu, 0x000500c4u, 0x00000006u, 0x00003e8du, 0x00003e82u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00003e8fu, 0x00003e89u, 0x00003e8du, 0x000500c6u, 0x00000006u, 0x00003e91u, 0x00003e8fu, 0x00000461u, + 0x000500c5u, 0x00000006u, 0x00003e94u, 0x00003e87u, 0x00000f56u, 0x00080041u, 0x00000676u, 0x00003e95u, + 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003e94u, 0x0004003du, 0x0000000fu, 0x00003e96u, + 0x00003e95u, 0x00080041u, 0x00000697u, 0x00003e99u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00003e91u, 0x0004003du, 0x00000011u, 0x00003e9au, 0x00003e99u, 0x000500c2u, 0x00000011u, 0x00003e9cu, + 0x00003e9au, 0x000010b3u, 0x000500c7u, 0x00000011u, 0x00003e9du, 0x00003e9cu, 0x00000350u, 0x00040071u, + 0x0000000fu, 0x00003e9eu, 0x00003e9du, 0x000500c2u, 0x00000011u, 0x00003ea0u, 0x00003e9au, 0x0000021fu, + 0x000500c7u, 0x00000011u, 0x00003ea1u, 0x00003ea0u, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00003ea2u, + 0x00003ea1u, 0x00040071u, 0x00000011u, 0x00003ea4u, 0x00003e9eu, 0x0004007cu, 0x00000012u, 0x00003ea5u, + 0x00003ea4u, 0x00050082u, 0x00000012u, 0x00003ea6u, 0x00003ea5u, 0x000010bfu, 0x00040071u, 0x00000011u, + 0x00003ea8u, 0x00003ea2u, 0x0004007cu, 0x00000012u, 0x00003ea9u, 0x00003ea8u, 0x00050082u, 0x00000012u, + 0x00003eaau, 0x00003ea9u, 0x000010bfu, 0x00040071u, 0x00000011u, 0x00003eacu, 0x00003e96u, 0x0004007cu, + 0x00000012u, 0x00003eadu, 0x00003eacu, 0x00070050u, 0x00000013u, 0x00003eb1u, 0x00003ea6u, 0x00003eaau, + 0x00003eadu, 0x00003eadu, 0x00050050u, 0x000000f2u, 0x00003155u, 0x00007babu, 0x00002fd4u, 0x0004007cu, + 0x000000b4u, 0x00003156u, 0x00003155u, 0x00050051u, 0x00000006u, 0x00003ec2u, 0x00003156u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003ec3u, 0x00002e18u, 0x00003ec2u, 0x00050080u, 0x00000006u, 0x00003ec4u, + 0x00002e16u, 0x00003ec3u, 0x00050051u, 0x00000006u, 0x00003ec7u, 0x00003156u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003ec8u, 0x00003ec4u, 0x00003ec7u, 0x000500c7u, 0x00000006u, 0x00003ecau, 0x00003ec8u, + 0x00000f2du, 0x00050080u, 0x00000006u, 0x00003eceu, 0x00003ec4u, 0x00003e29u, 0x000500c7u, 0x00000006u, + 0x00003ed0u, 0x00003eceu, 0x00000f2du, 0x000500c7u, 0x00000006u, 0x00003ed4u, 0x00003ec2u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003ed5u, 0x00003ed4u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003ed7u, + 0x00003ecau, 0x00003ed5u, 0x000500c6u, 0x00000006u, 0x00003ed9u, 0x00003ed7u, 0x00000469u, 0x000500c2u, + 0x00000006u, 0x00003edbu, 0x00003ed0u, 0x0000022fu, 0x000500c4u, 0x00000006u, 0x00003edfu, 0x00003ed4u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003ee1u, 0x00003edbu, 0x00003edfu, 0x000500c6u, 0x00000006u, + 0x00003ee3u, 0x00003ee1u, 0x00000461u, 0x000500c5u, 0x00000006u, 0x00003ee6u, 0x00003ed9u, 0x00000f56u, + 0x00080041u, 0x00000676u, 0x00003ee7u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003ee6u, + 0x0004003du, 0x0000000fu, 0x00003ee8u, 0x00003ee7u, 0x00080041u, 0x00000697u, 0x00003eebu, 0x00000f5cu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00003ee3u, 0x0004003du, 0x00000011u, 0x00003eecu, 0x00003eebu, + 0x000500c2u, 0x00000011u, 0x00003eeeu, 0x00003eecu, 0x000010b3u, 0x000500c7u, 0x00000011u, 0x00003eefu, + 0x00003eeeu, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00003ef0u, 0x00003eefu, 0x000500c2u, 0x00000011u, + 0x00003ef2u, 0x00003eecu, 0x0000021fu, 0x000500c7u, 0x00000011u, 0x00003ef3u, 0x00003ef2u, 0x00000350u, + 0x00040071u, 0x0000000fu, 0x00003ef4u, 0x00003ef3u, 0x00040071u, 0x00000011u, 0x00003ef6u, 0x00003ef0u, + 0x0004007cu, 0x00000012u, 0x00003ef7u, 0x00003ef6u, 0x00050082u, 0x00000012u, 0x00003ef8u, 0x00003ef7u, + 0x000010bfu, 0x00040071u, 0x00000011u, 0x00003efau, 0x00003ef4u, 0x0004007cu, 0x00000012u, 0x00003efbu, + 0x00003efau, 0x00050082u, 0x00000012u, 0x00003efcu, 0x00003efbu, 0x000010bfu, 0x00040071u, 0x00000011u, + 0x00003efeu, 0x00003ee8u, 0x0004007cu, 0x00000012u, 0x00003effu, 0x00003efeu, 0x00070050u, 0x00000013u, + 0x00003f03u, 0x00003ef8u, 0x00003efcu, 0x00003effu, 0x00003effu, 0x00050050u, 0x000000f2u, 0x0000315du, + 0x00007bb3u, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x0000315eu, 0x0000315du, 0x00050051u, 0x00000006u, + 0x00003f14u, 0x0000315eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003f15u, 0x00002e18u, 0x00003f14u, + 0x00050080u, 0x00000006u, 0x00003f16u, 0x00002e16u, 0x00003f15u, 0x00050051u, 0x00000006u, 0x00003f19u, + 0x0000315eu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003f1au, 0x00003f16u, 0x00003f19u, 0x000500c7u, + 0x00000006u, 0x00003f1cu, 0x00003f1au, 0x00000f2du, 0x00050080u, 0x00000006u, 0x00003f20u, 0x00003f16u, + 0x00003e7bu, 0x000500c7u, 0x00000006u, 0x00003f22u, 0x00003f20u, 0x00000f2du, 0x000500c7u, 0x00000006u, + 0x00003f26u, 0x00003f14u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003f27u, 0x00003f26u, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00003f29u, 0x00003f1cu, 0x00003f27u, 0x000500c6u, 0x00000006u, 0x00003f2bu, + 0x00003f29u, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00003f2du, 0x00003f22u, 0x0000022fu, 0x000500c4u, + 0x00000006u, 0x00003f31u, 0x00003f26u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003f33u, 0x00003f2du, + 0x00003f31u, 0x000500c6u, 0x00000006u, 0x00003f35u, 0x00003f33u, 0x00000461u, 0x000500c5u, 0x00000006u, + 0x00003f38u, 0x00003f2bu, 0x00000f56u, 0x00080041u, 0x00000676u, 0x00003f39u, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00003f38u, 0x0004003du, 0x0000000fu, 0x00003f3au, 0x00003f39u, 0x00080041u, + 0x00000697u, 0x00003f3du, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003f35u, 0x0004003du, + 0x00000011u, 0x00003f3eu, 0x00003f3du, 0x000500c2u, 0x00000011u, 0x00003f40u, 0x00003f3eu, 0x000010b3u, + 0x000500c7u, 0x00000011u, 0x00003f41u, 0x00003f40u, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00003f42u, + 0x00003f41u, 0x000500c2u, 0x00000011u, 0x00003f44u, 0x00003f3eu, 0x0000021fu, 0x000500c7u, 0x00000011u, + 0x00003f45u, 0x00003f44u, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00003f46u, 0x00003f45u, 0x00040071u, + 0x00000011u, 0x00003f48u, 0x00003f42u, 0x0004007cu, 0x00000012u, 0x00003f49u, 0x00003f48u, 0x00050082u, + 0x00000012u, 0x00003f4au, 0x00003f49u, 0x000010bfu, 0x00040071u, 0x00000011u, 0x00003f4cu, 0x00003f46u, + 0x0004007cu, 0x00000012u, 0x00003f4du, 0x00003f4cu, 0x00050082u, 0x00000012u, 0x00003f4eu, 0x00003f4du, + 0x000010bfu, 0x00040071u, 0x00000011u, 0x00003f50u, 0x00003f3au, 0x0004007cu, 0x00000012u, 0x00003f51u, + 0x00003f50u, 0x00070050u, 0x00000013u, 0x00003f55u, 0x00003f4au, 0x00003f4eu, 0x00003f51u, 0x00003f51u, + 0x000200f9u, 0x00003163u, 0x000200f8u, 0x00003163u, 0x000700f5u, 0x00000013u, 0x00007e7cu, 0x00007e32u, + 0x00003136u, 0x00003f55u, 0x0000314au, 0x000700f5u, 0x00000013u, 0x00007dfeu, 0x00007db7u, 0x00003136u, + 0x00003f03u, 0x0000314au, 0x000700f5u, 0x00000013u, 0x00007d80u, 0x00007d36u, 0x00003136u, 0x00003eb1u, + 0x0000314au, 0x000200f9u, 0x000032ccu, 0x000200f8u, 0x000030acu, 0x00040071u, 0x00000006u, 0x000030afu, + 0x00002e1cu, 0x0004007cu, 0x00000008u, 0x000030b0u, 0x000030afu, 0x000300f7u, 0x00003135u, 0x00000000u, + 0x000b00fbu, 0x000030b0u, 0x00003135u, 0x00000000u, 0x000030b1u, 0x00000001u, 0x000030d2u, 0x00000002u, + 0x000030f3u, 0x00000003u, 0x00003114u, 0x000200f8u, 0x00003114u, 0x0004007cu, 0x000000b4u, 0x00003116u, + 0x00007bd2u, 0x00050051u, 0x00000006u, 0x00003d2du, 0x00003116u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003d2eu, 0x00002e18u, 0x00003d2du, 0x00050080u, 0x00000006u, 0x00003d2fu, 0x00002e16u, 0x00003d2eu, + 0x00050051u, 0x00000006u, 0x00003d31u, 0x00003116u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003d32u, + 0x00003d31u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003d34u, 0x00003d2fu, 0x00003d32u, 0x000500c7u, + 0x00000006u, 0x00003d36u, 0x00003d34u, 0x00000f2du, 0x000500c2u, 0x00000006u, 0x00003d38u, 0x00003d36u, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003d3bu, 0x00003d2du, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00003d3cu, 0x00003d3bu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003d3eu, 0x00003d38u, 0x00003d3cu, + 0x000500c6u, 0x00000006u, 0x00003d40u, 0x00003d3eu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00003d43u, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003d40u, 0x0004003du, 0x00000011u, 0x00003d44u, + 0x00003d43u, 0x00040071u, 0x00000006u, 0x00003d45u, 0x00003d44u, 0x000500c5u, 0x00000006u, 0x00003d48u, + 0x00003d40u, 0x00000f5eu, 0x00080041u, 0x00000697u, 0x00003d49u, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00003d48u, 0x0004003du, 0x00000011u, 0x00003d4au, 0x00003d49u, 0x00040071u, 0x00000006u, + 0x00003d4bu, 0x00003d4au, 0x000500c2u, 0x00000006u, 0x00003d4du, 0x00003d45u, 0x00000262u, 0x00040071u, + 0x00000011u, 0x00003d4eu, 0x00003d4du, 0x0004007cu, 0x00000012u, 0x00003d4fu, 0x00003d4eu, 0x000500c7u, + 0x00000006u, 0x00003d51u, 0x00003d45u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003d52u, 0x00003d51u, + 0x0004007cu, 0x00000012u, 0x00003d53u, 0x00003d52u, 0x000500c2u, 0x00000006u, 0x00003d55u, 0x00003d4bu, + 0x00000262u, 0x00040071u, 0x00000011u, 0x00003d56u, 0x00003d55u, 0x0004007cu, 0x00000012u, 0x00003d57u, + 0x00003d56u, 0x000500c7u, 0x00000006u, 0x00003d59u, 0x00003d4bu, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00003d5au, 0x00003d59u, 0x0004007cu, 0x00000012u, 0x00003d5bu, 0x00003d5au, 0x00070050u, 0x00000013u, + 0x00003d5cu, 0x00003d4fu, 0x00003d53u, 0x00003d57u, 0x00003d5bu, 0x000300f7u, 0x0000312au, 0x00000000u, + 0x000400fau, 0x00002319u, 0x0000311bu, 0x0000312au, 0x000200f8u, 0x0000311bu, 0x00050050u, 0x000000f2u, + 0x0000311eu, 0x00007bb3u, 0x00002fd2u, 0x0004007cu, 0x000000b4u, 0x0000311fu, 0x0000311eu, 0x00050051u, + 0x00000006u, 0x00003d68u, 0x0000311fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d69u, 0x00002e18u, + 0x00003d68u, 0x00050080u, 0x00000006u, 0x00003d6au, 0x00002e16u, 0x00003d69u, 0x00050051u, 0x00000006u, + 0x00003d6cu, 0x0000311fu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003d6du, 0x00003d6cu, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x00003d6fu, 0x00003d6au, 0x00003d6du, 0x000500c7u, 0x00000006u, 0x00003d71u, + 0x00003d6fu, 0x00000f2du, 0x000500c2u, 0x00000006u, 0x00003d73u, 0x00003d71u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00003d76u, 0x00003d68u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003d77u, 0x00003d76u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003d79u, 0x00003d73u, 0x00003d77u, 0x000500c6u, 0x00000006u, + 0x00003d7bu, 0x00003d79u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00003d7eu, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00003d7bu, 0x0004003du, 0x00000011u, 0x00003d7fu, 0x00003d7eu, 0x00040071u, + 0x00000006u, 0x00003d80u, 0x00003d7fu, 0x000500c5u, 0x00000006u, 0x00003d83u, 0x00003d7bu, 0x00000f5eu, + 0x00080041u, 0x00000697u, 0x00003d84u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003d83u, + 0x0004003du, 0x00000011u, 0x00003d85u, 0x00003d84u, 0x00040071u, 0x00000006u, 0x00003d86u, 0x00003d85u, + 0x000500c2u, 0x00000006u, 0x00003d88u, 0x00003d80u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003d89u, + 0x00003d88u, 0x0004007cu, 0x00000012u, 0x00003d8au, 0x00003d89u, 0x000500c7u, 0x00000006u, 0x00003d8cu, + 0x00003d80u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003d8du, 0x00003d8cu, 0x0004007cu, 0x00000012u, + 0x00003d8eu, 0x00003d8du, 0x000500c2u, 0x00000006u, 0x00003d90u, 0x00003d86u, 0x00000262u, 0x00040071u, + 0x00000011u, 0x00003d91u, 0x00003d90u, 0x0004007cu, 0x00000012u, 0x00003d92u, 0x00003d91u, 0x000500c7u, + 0x00000006u, 0x00003d94u, 0x00003d86u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003d95u, 0x00003d94u, + 0x0004007cu, 0x00000012u, 0x00003d96u, 0x00003d95u, 0x00070050u, 0x00000013u, 0x00003d97u, 0x00003d8au, + 0x00003d8eu, 0x00003d92u, 0x00003d96u, 0x00050050u, 0x000000f2u, 0x00003125u, 0x00007babu, 0x00002fd4u, + 0x0004007cu, 0x000000b4u, 0x00003126u, 0x00003125u, 0x00050051u, 0x00000006u, 0x00003da3u, 0x00003126u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003da4u, 0x00002e18u, 0x00003da3u, 0x00050080u, 0x00000006u, + 0x00003da5u, 0x00002e16u, 0x00003da4u, 0x00050051u, 0x00000006u, 0x00003da7u, 0x00003126u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003da8u, 0x00003da7u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003daau, + 0x00003da5u, 0x00003da8u, 0x000500c7u, 0x00000006u, 0x00003dacu, 0x00003daau, 0x00000f2du, 0x000500c2u, + 0x00000006u, 0x00003daeu, 0x00003dacu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003db1u, 0x00003da3u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003db2u, 0x00003db1u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00003db4u, 0x00003daeu, 0x00003db2u, 0x000500c6u, 0x00000006u, 0x00003db6u, 0x00003db4u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00003db9u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003db6u, + 0x0004003du, 0x00000011u, 0x00003dbau, 0x00003db9u, 0x00040071u, 0x00000006u, 0x00003dbbu, 0x00003dbau, + 0x000500c5u, 0x00000006u, 0x00003dbeu, 0x00003db6u, 0x00000f5eu, 0x00080041u, 0x00000697u, 0x00003dbfu, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003dbeu, 0x0004003du, 0x00000011u, 0x00003dc0u, + 0x00003dbfu, 0x00040071u, 0x00000006u, 0x00003dc1u, 0x00003dc0u, 0x000500c2u, 0x00000006u, 0x00003dc3u, + 0x00003dbbu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003dc4u, 0x00003dc3u, 0x0004007cu, 0x00000012u, + 0x00003dc5u, 0x00003dc4u, 0x000500c7u, 0x00000006u, 0x00003dc7u, 0x00003dbbu, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00003dc8u, 0x00003dc7u, 0x0004007cu, 0x00000012u, 0x00003dc9u, 0x00003dc8u, 0x000500c2u, + 0x00000006u, 0x00003dcbu, 0x00003dc1u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003dccu, 0x00003dcbu, + 0x0004007cu, 0x00000012u, 0x00003dcdu, 0x00003dccu, 0x000500c7u, 0x00000006u, 0x00003dcfu, 0x00003dc1u, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003dd0u, 0x00003dcfu, 0x0004007cu, 0x00000012u, 0x00003dd1u, + 0x00003dd0u, 0x00070050u, 0x00000013u, 0x00003dd2u, 0x00003dc5u, 0x00003dc9u, 0x00003dcdu, 0x00003dd1u, + 0x000200f9u, 0x0000312au, 0x000200f8u, 0x0000312au, 0x000700f5u, 0x00000013u, 0x00007dfdu, 0x00007db7u, + 0x00003114u, 0x00003dd2u, 0x0000311bu, 0x000700f5u, 0x00000013u, 0x00007d7fu, 0x00007d36u, 0x00003114u, + 0x00003d97u, 0x0000311bu, 0x000300f7u, 0x00003134u, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x0000312cu, + 0x00003134u, 0x000200f8u, 0x0000312cu, 0x00050050u, 0x000000f2u, 0x0000312fu, 0x00007bb3u, 0x00002fd4u, + 0x0004007cu, 0x000000b4u, 0x00003130u, 0x0000312fu, 0x00050051u, 0x00000006u, 0x00003ddeu, 0x00003130u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003ddfu, 0x00002e18u, 0x00003ddeu, 0x00050080u, 0x00000006u, + 0x00003de0u, 0x00002e16u, 0x00003ddfu, 0x00050051u, 0x00000006u, 0x00003de2u, 0x00003130u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003de3u, 0x00003de2u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003de5u, + 0x00003de0u, 0x00003de3u, 0x000500c7u, 0x00000006u, 0x00003de7u, 0x00003de5u, 0x00000f2du, 0x000500c2u, + 0x00000006u, 0x00003de9u, 0x00003de7u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003decu, 0x00003ddeu, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003dedu, 0x00003decu, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00003defu, 0x00003de9u, 0x00003dedu, 0x000500c6u, 0x00000006u, 0x00003df1u, 0x00003defu, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00003df4u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003df1u, + 0x0004003du, 0x00000011u, 0x00003df5u, 0x00003df4u, 0x00040071u, 0x00000006u, 0x00003df6u, 0x00003df5u, + 0x000500c5u, 0x00000006u, 0x00003df9u, 0x00003df1u, 0x00000f5eu, 0x00080041u, 0x00000697u, 0x00003dfau, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003df9u, 0x0004003du, 0x00000011u, 0x00003dfbu, + 0x00003dfau, 0x00040071u, 0x00000006u, 0x00003dfcu, 0x00003dfbu, 0x000500c2u, 0x00000006u, 0x00003dfeu, + 0x00003df6u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003dffu, 0x00003dfeu, 0x0004007cu, 0x00000012u, + 0x00003e00u, 0x00003dffu, 0x000500c7u, 0x00000006u, 0x00003e02u, 0x00003df6u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00003e03u, 0x00003e02u, 0x0004007cu, 0x00000012u, 0x00003e04u, 0x00003e03u, 0x000500c2u, + 0x00000006u, 0x00003e06u, 0x00003dfcu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003e07u, 0x00003e06u, + 0x0004007cu, 0x00000012u, 0x00003e08u, 0x00003e07u, 0x000500c7u, 0x00000006u, 0x00003e0au, 0x00003dfcu, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003e0bu, 0x00003e0au, 0x0004007cu, 0x00000012u, 0x00003e0cu, + 0x00003e0bu, 0x00070050u, 0x00000013u, 0x00003e0du, 0x00003e00u, 0x00003e04u, 0x00003e08u, 0x00003e0cu, + 0x000200f9u, 0x00003134u, 0x000200f8u, 0x00003134u, 0x000700f5u, 0x00000013u, 0x00007e7au, 0x00007e32u, + 0x0000312au, 0x00003e0du, 0x0000312cu, 0x000200f9u, 0x00003135u, 0x000200f8u, 0x000030f3u, 0x0004007cu, + 0x000000b4u, 0x000030f5u, 0x00007bd2u, 0x00050051u, 0x00000006u, 0x00003c21u, 0x000030f5u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003c22u, 0x00002e18u, 0x00003c21u, 0x00050080u, 0x00000006u, 0x00003c23u, + 0x00002e16u, 0x00003c22u, 0x00050051u, 0x00000006u, 0x00003c25u, 0x000030f5u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003c26u, 0x00003c25u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003c28u, 0x00003c23u, + 0x00003c26u, 0x000500c7u, 0x00000006u, 0x00003c2au, 0x00003c28u, 0x00000e75u, 0x000500c2u, 0x00000006u, + 0x00003c2cu, 0x00003c2au, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003c2fu, 0x00003c21u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003c30u, 0x00003c2fu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003c32u, + 0x00003c2cu, 0x00003c30u, 0x000500c6u, 0x00000006u, 0x00003c34u, 0x00003c32u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x00003c37u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003c34u, 0x0004003du, + 0x00000011u, 0x00003c38u, 0x00003c37u, 0x00040071u, 0x00000006u, 0x00003c39u, 0x00003c38u, 0x00060050u, + 0x00000311u, 0x00003c41u, 0x00003c39u, 0x00003c39u, 0x00003c39u, 0x000500c2u, 0x00000311u, 0x00003c42u, + 0x00003c41u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x00003c44u, 0x00003c42u, 0x0000c218u, 0x000500c4u, + 0x00000311u, 0x00003c47u, 0x00003c44u, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x00003c4au, 0x00003c44u, + 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00003c4bu, 0x00003c47u, 0x00003c4au, 0x000500c7u, 0x00000006u, + 0x00003c4du, 0x00003c39u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003c4eu, 0x00003c4du, 0x000006c8u, + 0x00040071u, 0x000004bfu, 0x00003c50u, 0x00003c4bu, 0x0004007cu, 0x000004bbu, 0x00003c51u, 0x00003c50u, + 0x00040071u, 0x00000011u, 0x00003c53u, 0x00003c4eu, 0x0004007cu, 0x00000012u, 0x00003c54u, 0x00003c53u, + 0x00050051u, 0x00000012u, 0x00003c55u, 0x00003c51u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003c56u, + 0x00003c51u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003c57u, 0x00003c51u, 0x00000002u, 0x00070050u, + 0x00000013u, 0x00003c58u, 0x00003c55u, 0x00003c56u, 0x00003c57u, 0x00003c54u, 0x000300f7u, 0x00003109u, + 0x00000000u, 0x000400fau, 0x00002319u, 0x000030fau, 0x00003109u, 0x000200f8u, 0x000030fau, 0x00050050u, + 0x000000f2u, 0x000030fdu, 0x00007bb3u, 0x00002fd2u, 0x0004007cu, 0x000000b4u, 0x000030feu, 0x000030fdu, + 0x00050051u, 0x00000006u, 0x00003c64u, 0x000030feu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003c65u, + 0x00002e18u, 0x00003c64u, 0x00050080u, 0x00000006u, 0x00003c66u, 0x00002e16u, 0x00003c65u, 0x00050051u, + 0x00000006u, 0x00003c68u, 0x000030feu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c69u, 0x00003c68u, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003c6bu, 0x00003c66u, 0x00003c69u, 0x000500c7u, 0x00000006u, + 0x00003c6du, 0x00003c6bu, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00003c6fu, 0x00003c6du, 0x0000022fu, + 0x000500c7u, 0x00000006u, 0x00003c72u, 0x00003c64u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003c73u, + 0x00003c72u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003c75u, 0x00003c6fu, 0x00003c73u, 0x000500c6u, + 0x00000006u, 0x00003c77u, 0x00003c75u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00003c7au, 0x00000f5cu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00003c77u, 0x0004003du, 0x00000011u, 0x00003c7bu, 0x00003c7au, + 0x00040071u, 0x00000006u, 0x00003c7cu, 0x00003c7bu, 0x00060050u, 0x00000311u, 0x00003c84u, 0x00003c7cu, + 0x00003c7cu, 0x00003c7cu, 0x000500c2u, 0x00000311u, 0x00003c85u, 0x00003c84u, 0x00000e36u, 0x000500c7u, + 0x00000311u, 0x00003c87u, 0x00003c85u, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x00003c8au, 0x00003c87u, + 0x0000c219u, 0x000500c2u, 0x00000311u, 0x00003c8du, 0x00003c87u, 0x0000c21au, 0x000500c5u, 0x00000311u, + 0x00003c8eu, 0x00003c8au, 0x00003c8du, 0x000500c7u, 0x00000006u, 0x00003c90u, 0x00003c7cu, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00003c91u, 0x00003c90u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003c93u, + 0x00003c8eu, 0x0004007cu, 0x000004bbu, 0x00003c94u, 0x00003c93u, 0x00040071u, 0x00000011u, 0x00003c96u, + 0x00003c91u, 0x0004007cu, 0x00000012u, 0x00003c97u, 0x00003c96u, 0x00050051u, 0x00000012u, 0x00003c98u, + 0x00003c94u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003c99u, 0x00003c94u, 0x00000001u, 0x00050051u, + 0x00000012u, 0x00003c9au, 0x00003c94u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003c9bu, 0x00003c98u, + 0x00003c99u, 0x00003c9au, 0x00003c97u, 0x00050050u, 0x000000f2u, 0x00003104u, 0x00007babu, 0x00002fd4u, + 0x0004007cu, 0x000000b4u, 0x00003105u, 0x00003104u, 0x00050051u, 0x00000006u, 0x00003ca7u, 0x00003105u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003ca8u, 0x00002e18u, 0x00003ca7u, 0x00050080u, 0x00000006u, + 0x00003ca9u, 0x00002e16u, 0x00003ca8u, 0x00050051u, 0x00000006u, 0x00003cabu, 0x00003105u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003cacu, 0x00003cabu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003caeu, + 0x00003ca9u, 0x00003cacu, 0x000500c7u, 0x00000006u, 0x00003cb0u, 0x00003caeu, 0x00000e75u, 0x000500c2u, + 0x00000006u, 0x00003cb2u, 0x00003cb0u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003cb5u, 0x00003ca7u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003cb6u, 0x00003cb5u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00003cb8u, 0x00003cb2u, 0x00003cb6u, 0x000500c6u, 0x00000006u, 0x00003cbau, 0x00003cb8u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00003cbdu, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003cbau, + 0x0004003du, 0x00000011u, 0x00003cbeu, 0x00003cbdu, 0x00040071u, 0x00000006u, 0x00003cbfu, 0x00003cbeu, + 0x00060050u, 0x00000311u, 0x00003cc7u, 0x00003cbfu, 0x00003cbfu, 0x00003cbfu, 0x000500c2u, 0x00000311u, + 0x00003cc8u, 0x00003cc7u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x00003ccau, 0x00003cc8u, 0x0000c218u, + 0x000500c4u, 0x00000311u, 0x00003ccdu, 0x00003ccau, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x00003cd0u, + 0x00003ccau, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00003cd1u, 0x00003ccdu, 0x00003cd0u, 0x000500c7u, + 0x00000006u, 0x00003cd3u, 0x00003cbfu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003cd4u, 0x00003cd3u, + 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003cd6u, 0x00003cd1u, 0x0004007cu, 0x000004bbu, 0x00003cd7u, + 0x00003cd6u, 0x00040071u, 0x00000011u, 0x00003cd9u, 0x00003cd4u, 0x0004007cu, 0x00000012u, 0x00003cdau, + 0x00003cd9u, 0x00050051u, 0x00000012u, 0x00003cdbu, 0x00003cd7u, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00003cdcu, 0x00003cd7u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003cddu, 0x00003cd7u, 0x00000002u, + 0x00070050u, 0x00000013u, 0x00003cdeu, 0x00003cdbu, 0x00003cdcu, 0x00003cddu, 0x00003cdau, 0x000200f9u, + 0x00003109u, 0x000200f8u, 0x00003109u, 0x000700f5u, 0x00000013u, 0x00007dfbu, 0x00007db7u, 0x000030f3u, + 0x00003cdeu, 0x000030fau, 0x000700f5u, 0x00000013u, 0x00007d7du, 0x00007d36u, 0x000030f3u, 0x00003c9bu, + 0x000030fau, 0x000300f7u, 0x00003113u, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x0000310bu, 0x00003113u, + 0x000200f8u, 0x0000310bu, 0x00050050u, 0x000000f2u, 0x0000310eu, 0x00007bb3u, 0x00002fd4u, 0x0004007cu, + 0x000000b4u, 0x0000310fu, 0x0000310eu, 0x00050051u, 0x00000006u, 0x00003ceau, 0x0000310fu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003cebu, 0x00002e18u, 0x00003ceau, 0x00050080u, 0x00000006u, 0x00003cecu, + 0x00002e16u, 0x00003cebu, 0x00050051u, 0x00000006u, 0x00003ceeu, 0x0000310fu, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003cefu, 0x00003ceeu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003cf1u, 0x00003cecu, + 0x00003cefu, 0x000500c7u, 0x00000006u, 0x00003cf3u, 0x00003cf1u, 0x00000e75u, 0x000500c2u, 0x00000006u, + 0x00003cf5u, 0x00003cf3u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003cf8u, 0x00003ceau, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003cf9u, 0x00003cf8u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003cfbu, + 0x00003cf5u, 0x00003cf9u, 0x000500c6u, 0x00000006u, 0x00003cfdu, 0x00003cfbu, 0x00000461u, 0x00080041u, + 0x00000697u, 0x00003d00u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003cfdu, 0x0004003du, + 0x00000011u, 0x00003d01u, 0x00003d00u, 0x00040071u, 0x00000006u, 0x00003d02u, 0x00003d01u, 0x00060050u, + 0x00000311u, 0x00003d0au, 0x00003d02u, 0x00003d02u, 0x00003d02u, 0x000500c2u, 0x00000311u, 0x00003d0bu, + 0x00003d0au, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x00003d0du, 0x00003d0bu, 0x0000c218u, 0x000500c4u, + 0x00000311u, 0x00003d10u, 0x00003d0du, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x00003d13u, 0x00003d0du, + 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00003d14u, 0x00003d10u, 0x00003d13u, 0x000500c7u, 0x00000006u, + 0x00003d16u, 0x00003d02u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003d17u, 0x00003d16u, 0x000006c8u, + 0x00040071u, 0x000004bfu, 0x00003d19u, 0x00003d14u, 0x0004007cu, 0x000004bbu, 0x00003d1au, 0x00003d19u, + 0x00040071u, 0x00000011u, 0x00003d1cu, 0x00003d17u, 0x0004007cu, 0x00000012u, 0x00003d1du, 0x00003d1cu, + 0x00050051u, 0x00000012u, 0x00003d1eu, 0x00003d1au, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003d1fu, + 0x00003d1au, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003d20u, 0x00003d1au, 0x00000002u, 0x00070050u, + 0x00000013u, 0x00003d21u, 0x00003d1eu, 0x00003d1fu, 0x00003d20u, 0x00003d1du, 0x000200f9u, 0x00003113u, + 0x000200f8u, 0x00003113u, 0x000700f5u, 0x00000013u, 0x00007e78u, 0x00007e32u, 0x00003109u, 0x00003d21u, + 0x0000310bu, 0x000200f9u, 0x00003135u, 0x000200f8u, 0x000030d2u, 0x0004007cu, 0x000000b4u, 0x000030d4u, + 0x00007bd2u, 0x00050051u, 0x00000006u, 0x00003b8cu, 0x000030d4u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003b8du, 0x00002e18u, 0x00003b8cu, 0x00050080u, 0x00000006u, 0x00003b8eu, 0x00002e16u, 0x00003b8du, + 0x00050051u, 0x00000006u, 0x00003b90u, 0x000030d4u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003b92u, + 0x00003b8eu, 0x00003b90u, 0x000500c7u, 0x00000006u, 0x00003b94u, 0x00003b92u, 0x00000e75u, 0x000500c7u, + 0x00000006u, 0x00003b98u, 0x00003b8cu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003b99u, 0x00003b98u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003b9bu, 0x00003b94u, 0x00003b99u, 0x000500c6u, 0x00000006u, + 0x00003b9du, 0x00003b9bu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003ba0u, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00003b9du, 0x0004003du, 0x0000000fu, 0x00003ba1u, 0x00003ba0u, 0x00040071u, + 0x00000006u, 0x00003ba2u, 0x00003ba1u, 0x00040071u, 0x00000011u, 0x00003ba4u, 0x00003ba2u, 0x0004007cu, + 0x00000012u, 0x00003ba5u, 0x00003ba4u, 0x00070050u, 0x00000013u, 0x00003ba6u, 0x00003ba5u, 0x00003ba5u, + 0x00003ba5u, 0x00003ba5u, 0x000300f7u, 0x000030e8u, 0x00000000u, 0x000400fau, 0x00002319u, 0x000030d9u, + 0x000030e8u, 0x000200f8u, 0x000030d9u, 0x00050050u, 0x000000f2u, 0x000030dcu, 0x00007bb3u, 0x00002fd2u, + 0x0004007cu, 0x000000b4u, 0x000030ddu, 0x000030dcu, 0x00050051u, 0x00000006u, 0x00003bb1u, 0x000030ddu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003bb2u, 0x00002e18u, 0x00003bb1u, 0x00050080u, 0x00000006u, + 0x00003bb3u, 0x00002e16u, 0x00003bb2u, 0x00050051u, 0x00000006u, 0x00003bb5u, 0x000030ddu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00003bb7u, 0x00003bb3u, 0x00003bb5u, 0x000500c7u, 0x00000006u, 0x00003bb9u, + 0x00003bb7u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x00003bbdu, 0x00003bb1u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00003bbeu, 0x00003bbdu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003bc0u, 0x00003bb9u, + 0x00003bbeu, 0x000500c6u, 0x00000006u, 0x00003bc2u, 0x00003bc0u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00003bc5u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003bc2u, 0x0004003du, 0x0000000fu, + 0x00003bc6u, 0x00003bc5u, 0x00040071u, 0x00000006u, 0x00003bc7u, 0x00003bc6u, 0x00040071u, 0x00000011u, + 0x00003bc9u, 0x00003bc7u, 0x0004007cu, 0x00000012u, 0x00003bcau, 0x00003bc9u, 0x00070050u, 0x00000013u, + 0x00003bcbu, 0x00003bcau, 0x00003bcau, 0x00003bcau, 0x00003bcau, 0x00050050u, 0x000000f2u, 0x000030e3u, + 0x00007babu, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x000030e4u, 0x000030e3u, 0x00050051u, 0x00000006u, + 0x00003bd6u, 0x000030e4u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003bd7u, 0x00002e18u, 0x00003bd6u, + 0x00050080u, 0x00000006u, 0x00003bd8u, 0x00002e16u, 0x00003bd7u, 0x00050051u, 0x00000006u, 0x00003bdau, + 0x000030e4u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003bdcu, 0x00003bd8u, 0x00003bdau, 0x000500c7u, + 0x00000006u, 0x00003bdeu, 0x00003bdcu, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x00003be2u, 0x00003bd6u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003be3u, 0x00003be2u, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x00003be5u, 0x00003bdeu, 0x00003be3u, 0x000500c6u, 0x00000006u, 0x00003be7u, 0x00003be5u, 0x00000469u, + 0x00080041u, 0x00000676u, 0x00003beau, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003be7u, + 0x0004003du, 0x0000000fu, 0x00003bebu, 0x00003beau, 0x00040071u, 0x00000006u, 0x00003becu, 0x00003bebu, + 0x00040071u, 0x00000011u, 0x00003beeu, 0x00003becu, 0x0004007cu, 0x00000012u, 0x00003befu, 0x00003beeu, + 0x00070050u, 0x00000013u, 0x00003bf0u, 0x00003befu, 0x00003befu, 0x00003befu, 0x00003befu, 0x000200f9u, + 0x000030e8u, 0x000200f8u, 0x000030e8u, 0x000700f5u, 0x00000013u, 0x00007df9u, 0x00007db7u, 0x000030d2u, + 0x00003bf0u, 0x000030d9u, 0x000700f5u, 0x00000013u, 0x00007d7bu, 0x00007d36u, 0x000030d2u, 0x00003bcbu, + 0x000030d9u, 0x000300f7u, 0x000030f2u, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x000030eau, 0x000030f2u, + 0x000200f8u, 0x000030eau, 0x00050050u, 0x000000f2u, 0x000030edu, 0x00007bb3u, 0x00002fd4u, 0x0004007cu, + 0x000000b4u, 0x000030eeu, 0x000030edu, 0x00050051u, 0x00000006u, 0x00003bfbu, 0x000030eeu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003bfcu, 0x00002e18u, 0x00003bfbu, 0x00050080u, 0x00000006u, 0x00003bfdu, + 0x00002e16u, 0x00003bfcu, 0x00050051u, 0x00000006u, 0x00003bffu, 0x000030eeu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003c01u, 0x00003bfdu, 0x00003bffu, 0x000500c7u, 0x00000006u, 0x00003c03u, 0x00003c01u, + 0x00000e75u, 0x000500c7u, 0x00000006u, 0x00003c07u, 0x00003bfbu, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00003c08u, 0x00003c07u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003c0au, 0x00003c03u, 0x00003c08u, + 0x000500c6u, 0x00000006u, 0x00003c0cu, 0x00003c0au, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003c0fu, + 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003c0cu, 0x0004003du, 0x0000000fu, 0x00003c10u, + 0x00003c0fu, 0x00040071u, 0x00000006u, 0x00003c11u, 0x00003c10u, 0x00040071u, 0x00000011u, 0x00003c13u, + 0x00003c11u, 0x0004007cu, 0x00000012u, 0x00003c14u, 0x00003c13u, 0x00070050u, 0x00000013u, 0x00003c15u, + 0x00003c14u, 0x00003c14u, 0x00003c14u, 0x00003c14u, 0x000200f9u, 0x000030f2u, 0x000200f8u, 0x000030f2u, + 0x000700f5u, 0x00000013u, 0x00007e76u, 0x00007e32u, 0x000030e8u, 0x00003c15u, 0x000030eau, 0x000200f9u, + 0x00003135u, 0x000200f8u, 0x000030b1u, 0x0004007cu, 0x000000b4u, 0x000030b3u, 0x00007bd2u, 0x00050051u, + 0x00000006u, 0x00003abdu, 0x000030b3u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003abeu, 0x00002e18u, + 0x00003abdu, 0x00050080u, 0x00000006u, 0x00003abfu, 0x00002e16u, 0x00003abeu, 0x00050051u, 0x00000006u, + 0x00003ac1u, 0x000030b3u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003ac2u, 0x00003ac1u, 0x0000022fu, + 0x00050080u, 0x00000006u, 0x00003ac4u, 0x00003abfu, 0x00003ac2u, 0x000500c7u, 0x00000006u, 0x00003ac6u, + 0x00003ac4u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00003ac9u, 0x00003ac1u, 0x000500c7u, 0x00000006u, + 0x00003acau, 0x00003ac9u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003acbu, 0x00003acau, 0x00000709u, + 0x000500c7u, 0x00000006u, 0x00003acfu, 0x00003abdu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003ad0u, + 0x00003acfu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003ad2u, 0x00003ac6u, 0x00003ad0u, 0x000500c6u, + 0x00000006u, 0x00003ad4u, 0x00003ad2u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003ad7u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00003ad4u, 0x0004003du, 0x0000000fu, 0x00003ad8u, 0x00003ad7u, + 0x00040071u, 0x00000006u, 0x00003ad9u, 0x00003ad8u, 0x000500c2u, 0x00000006u, 0x00003adcu, 0x00003ad9u, + 0x00003acbu, 0x000500c7u, 0x00000006u, 0x00003addu, 0x00003adcu, 0x00000e98u, 0x000500c4u, 0x00000006u, + 0x00003adfu, 0x00003addu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00003ae1u, 0x00003addu, 0x00003adfu, + 0x00040071u, 0x00000011u, 0x00003ae3u, 0x00003ae1u, 0x0004007cu, 0x00000012u, 0x00003ae4u, 0x00003ae3u, + 0x00070050u, 0x00000013u, 0x00003ae5u, 0x00003ae4u, 0x00003ae4u, 0x00003ae4u, 0x00003ae4u, 0x000300f7u, + 0x000030c7u, 0x00000000u, 0x000400fau, 0x00002319u, 0x000030b8u, 0x000030c7u, 0x000200f8u, 0x000030b8u, + 0x00050050u, 0x000000f2u, 0x000030bbu, 0x00007bb3u, 0x00002fd2u, 0x0004007cu, 0x000000b4u, 0x000030bcu, + 0x000030bbu, 0x00050051u, 0x00000006u, 0x00003af1u, 0x000030bcu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003af2u, 0x00002e18u, 0x00003af1u, 0x00050080u, 0x00000006u, 0x00003af3u, 0x00002e16u, 0x00003af2u, + 0x00050051u, 0x00000006u, 0x00003af5u, 0x000030bcu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003af6u, + 0x00003af5u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00003af8u, 0x00003af3u, 0x00003af6u, 0x000500c7u, + 0x00000006u, 0x00003afau, 0x00003af8u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00003afdu, 0x00003af5u, + 0x000500c7u, 0x00000006u, 0x00003afeu, 0x00003afdu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003affu, + 0x00003afeu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00003b03u, 0x00003af1u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00003b04u, 0x00003b03u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003b06u, 0x00003afau, + 0x00003b04u, 0x000500c6u, 0x00000006u, 0x00003b08u, 0x00003b06u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00003b0bu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003b08u, 0x0004003du, 0x0000000fu, + 0x00003b0cu, 0x00003b0bu, 0x00040071u, 0x00000006u, 0x00003b0du, 0x00003b0cu, 0x000500c2u, 0x00000006u, + 0x00003b10u, 0x00003b0du, 0x00003affu, 0x000500c7u, 0x00000006u, 0x00003b11u, 0x00003b10u, 0x00000e98u, + 0x000500c4u, 0x00000006u, 0x00003b13u, 0x00003b11u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00003b15u, + 0x00003b11u, 0x00003b13u, 0x00040071u, 0x00000011u, 0x00003b17u, 0x00003b15u, 0x0004007cu, 0x00000012u, + 0x00003b18u, 0x00003b17u, 0x00070050u, 0x00000013u, 0x00003b19u, 0x00003b18u, 0x00003b18u, 0x00003b18u, + 0x00003b18u, 0x00050050u, 0x000000f2u, 0x000030c2u, 0x00007babu, 0x00002fd4u, 0x0004007cu, 0x000000b4u, + 0x000030c3u, 0x000030c2u, 0x00050051u, 0x00000006u, 0x00003b25u, 0x000030c3u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003b26u, 0x00002e18u, 0x00003b25u, 0x00050080u, 0x00000006u, 0x00003b27u, 0x00002e16u, + 0x00003b26u, 0x00050051u, 0x00000006u, 0x00003b29u, 0x000030c3u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00003b2au, 0x00003b29u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00003b2cu, 0x00003b27u, 0x00003b2au, + 0x000500c7u, 0x00000006u, 0x00003b2eu, 0x00003b2cu, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00003b31u, + 0x00003b29u, 0x000500c7u, 0x00000006u, 0x00003b32u, 0x00003b31u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00003b33u, 0x00003b32u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00003b37u, 0x00003b25u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003b38u, 0x00003b37u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003b3au, + 0x00003b2eu, 0x00003b38u, 0x000500c6u, 0x00000006u, 0x00003b3cu, 0x00003b3au, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00003b3fu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003b3cu, 0x0004003du, + 0x0000000fu, 0x00003b40u, 0x00003b3fu, 0x00040071u, 0x00000006u, 0x00003b41u, 0x00003b40u, 0x000500c2u, + 0x00000006u, 0x00003b44u, 0x00003b41u, 0x00003b33u, 0x000500c7u, 0x00000006u, 0x00003b45u, 0x00003b44u, + 0x00000e98u, 0x000500c4u, 0x00000006u, 0x00003b47u, 0x00003b45u, 0x00000238u, 0x000500c5u, 0x00000006u, + 0x00003b49u, 0x00003b45u, 0x00003b47u, 0x00040071u, 0x00000011u, 0x00003b4bu, 0x00003b49u, 0x0004007cu, + 0x00000012u, 0x00003b4cu, 0x00003b4bu, 0x00070050u, 0x00000013u, 0x00003b4du, 0x00003b4cu, 0x00003b4cu, + 0x00003b4cu, 0x00003b4cu, 0x000200f9u, 0x000030c7u, 0x000200f8u, 0x000030c7u, 0x000700f5u, 0x00000013u, + 0x00007df7u, 0x00007db7u, 0x000030b1u, 0x00003b4du, 0x000030b8u, 0x000700f5u, 0x00000013u, 0x00007d79u, + 0x00007d36u, 0x000030b1u, 0x00003b19u, 0x000030b8u, 0x000300f7u, 0x000030d1u, 0x00000000u, 0x000400fau, + 0x00002fdeu, 0x000030c9u, 0x000030d1u, 0x000200f8u, 0x000030c9u, 0x00050050u, 0x000000f2u, 0x000030ccu, + 0x00007bb3u, 0x00002fd4u, 0x0004007cu, 0x000000b4u, 0x000030cdu, 0x000030ccu, 0x00050051u, 0x00000006u, + 0x00003b59u, 0x000030cdu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003b5au, 0x00002e18u, 0x00003b59u, + 0x00050080u, 0x00000006u, 0x00003b5bu, 0x00002e16u, 0x00003b5au, 0x00050051u, 0x00000006u, 0x00003b5du, + 0x000030cdu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003b5eu, 0x00003b5du, 0x0000022fu, 0x00050080u, + 0x00000006u, 0x00003b60u, 0x00003b5bu, 0x00003b5eu, 0x000500c7u, 0x00000006u, 0x00003b62u, 0x00003b60u, + 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00003b65u, 0x00003b5du, 0x000500c7u, 0x00000006u, 0x00003b66u, + 0x00003b65u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003b67u, 0x00003b66u, 0x00000709u, 0x000500c7u, + 0x00000006u, 0x00003b6bu, 0x00003b59u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003b6cu, 0x00003b6bu, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003b6eu, 0x00003b62u, 0x00003b6cu, 0x000500c6u, 0x00000006u, + 0x00003b70u, 0x00003b6eu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003b73u, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00003b70u, 0x0004003du, 0x0000000fu, 0x00003b74u, 0x00003b73u, 0x00040071u, + 0x00000006u, 0x00003b75u, 0x00003b74u, 0x000500c2u, 0x00000006u, 0x00003b78u, 0x00003b75u, 0x00003b67u, + 0x000500c7u, 0x00000006u, 0x00003b79u, 0x00003b78u, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x00003b7bu, + 0x00003b79u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00003b7du, 0x00003b79u, 0x00003b7bu, 0x00040071u, + 0x00000011u, 0x00003b7fu, 0x00003b7du, 0x0004007cu, 0x00000012u, 0x00003b80u, 0x00003b7fu, 0x00070050u, + 0x00000013u, 0x00003b81u, 0x00003b80u, 0x00003b80u, 0x00003b80u, 0x00003b80u, 0x000200f9u, 0x000030d1u, + 0x000200f8u, 0x000030d1u, 0x000700f5u, 0x00000013u, 0x00007e74u, 0x00007e32u, 0x000030c7u, 0x00003b81u, + 0x000030c9u, 0x000200f9u, 0x00003135u, 0x000200f8u, 0x00003135u, 0x000d00f5u, 0x00000013u, 0x00007e73u, + 0x00007e32u, 0x000030acu, 0x00007e74u, 0x000030d1u, 0x00007e76u, 0x000030f2u, 0x00007e78u, 0x00003113u, + 0x00007e7au, 0x00003134u, 0x000d00f5u, 0x00000013u, 0x00007df5u, 0x00007db7u, 0x000030acu, 0x00007df7u, + 0x000030d1u, 0x00007df9u, 0x000030f2u, 0x00007dfbu, 0x00003113u, 0x00007dfdu, 0x00003134u, 0x000d00f5u, + 0x00000013u, 0x00007d77u, 0x00007d36u, 0x000030acu, 0x00007d79u, 0x000030d1u, 0x00007d7bu, 0x000030f2u, + 0x00007d7du, 0x00003113u, 0x00007d7fu, 0x00003134u, 0x000d00f5u, 0x00000013u, 0x00007c84u, 0x00007c43u, + 0x000030acu, 0x00003ae5u, 0x000030d1u, 0x00003ba6u, 0x000030f2u, 0x00003c58u, 0x00003113u, 0x00003d5cu, + 0x00003134u, 0x000200f9u, 0x000032ccu, 0x000200f8u, 0x000032ccu, 0x000f00f5u, 0x00000013u, 0x00007e72u, + 0x00007e32u, 0x000030a7u, 0x00007e73u, 0x00003135u, 0x00007e7cu, 0x00003163u, 0x00007e7du, 0x000031d8u, + 0x00007e84u, 0x00003262u, 0x00007e8du, 0x000032cbu, 0x000f00f5u, 0x00000013u, 0x00007df4u, 0x00007db7u, + 0x000030a7u, 0x00007df5u, 0x00003135u, 0x00007dfeu, 0x00003163u, 0x00007dffu, 0x000031d8u, 0x00007e06u, + 0x00003262u, 0x00007e0fu, 0x000032cbu, 0x000f00f5u, 0x00000013u, 0x00007d76u, 0x00007d36u, 0x000030a7u, + 0x00007d77u, 0x00003135u, 0x00007d80u, 0x00003163u, 0x00007d81u, 0x000031d8u, 0x00007d88u, 0x00003262u, + 0x00007d91u, 0x000032cbu, 0x000f00f5u, 0x00000013u, 0x00007c83u, 0x00007c43u, 0x000030a7u, 0x00007c84u, + 0x00003135u, 0x00003e5fu, 0x00003163u, 0x00007c8eu, 0x000031d8u, 0x00007c95u, 0x00003262u, 0x00007c9eu, + 0x000032cbu, 0x000200f9u, 0x000032cdu, 0x000200f8u, 0x00002ffdu, 0x000400a8u, 0x00000069u, 0x00002fffu, + 0x00002319u, 0x000300f7u, 0x00003006u, 0x00000000u, 0x000400fau, 0x00002fffu, 0x00003000u, 0x00003006u, + 0x000200f8u, 0x00003000u, 0x00050050u, 0x000000f2u, 0x00003003u, 0x00007babu, 0x00002fd2u, 0x000200f9u, + 0x00003006u, 0x000200f8u, 0x00003006u, 0x000700f5u, 0x000000f2u, 0x00007bf8u, 0x00007bd2u, 0x00002ffdu, + 0x00003003u, 0x00003000u, 0x000600a9u, 0x00000008u, 0x0000c24du, 0x00002fffu, 0x00002fd2u, 0x00002fd4u, + 0x000600a9u, 0x00000008u, 0x0000c24eu, 0x00002fffu, 0x00007babu, 0x00007bb3u, 0x000300f7u, 0x000030a6u, + 0x00000000u, 0x000b00fbu, 0x00002fe7u, 0x000030a6u, 0x00000000u, 0x0000300bu, 0x00000002u, 0x0000300bu, + 0x00000003u, 0x0000300bu, 0x00000004u, 0x0000300bu, 0x000200f8u, 0x0000300bu, 0x000600a9u, 0x00000008u, + 0x0000300fu, 0x00002fe0u, 0x00000232u, 0x0000022fu, 0x0004007cu, 0x00000006u, 0x00003010u, 0x0000300fu, + 0x00040071u, 0x00000006u, 0x00003013u, 0x00002e1cu, 0x0004007cu, 0x00000008u, 0x00003014u, 0x00003013u, + 0x000300f7u, 0x000030a5u, 0x00000000u, 0x000700fbu, 0x00003014u, 0x00003015u, 0x00000000u, 0x00003041u, + 0x00000001u, 0x00003079u, 0x000200f8u, 0x00003079u, 0x0004007cu, 0x000000b4u, 0x0000307bu, 0x00007bf8u, + 0x000600a9u, 0x00000008u, 0x0000307du, 0x00002feau, 0x00000235u, 0x00000225u, 0x0004007cu, 0x00000006u, + 0x0000307eu, 0x0000307du, 0x00050051u, 0x00000006u, 0x0000390cu, 0x0000307bu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000390du, 0x00002e18u, 0x0000390cu, 0x00050080u, 0x00000006u, 0x0000390eu, 0x00002e16u, + 0x0000390du, 0x00050051u, 0x00000006u, 0x00003910u, 0x0000307bu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003912u, 0x0000390eu, 0x00003910u, 0x000500c7u, 0x00000006u, 0x00003914u, 0x00003912u, 0x00000f2du, + 0x000500c7u, 0x00000006u, 0x00003918u, 0x0000390cu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003919u, + 0x00003918u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x0000391bu, 0x00003914u, 0x00003919u, 0x000500c6u, + 0x00000006u, 0x0000391du, 0x0000391bu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003920u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x0000391du, 0x0004003du, 0x0000000fu, 0x00003921u, 0x00003920u, + 0x00040071u, 0x00000006u, 0x00003922u, 0x00003921u, 0x000500c4u, 0x00000006u, 0x00003924u, 0x00003922u, + 0x00000232u, 0x00050080u, 0x00000006u, 0x00003926u, 0x00003924u, 0x0000307eu, 0x000500c6u, 0x00000006u, + 0x00003929u, 0x00003926u, 0x00003010u, 0x000500c5u, 0x00000006u, 0x0000392cu, 0x00000f5eu, 0x00003929u, + 0x00080041u, 0x00000697u, 0x0000392du, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000392cu, + 0x0004003du, 0x00000011u, 0x0000392eu, 0x0000392du, 0x00040071u, 0x00000006u, 0x0000392fu, 0x0000392eu, + 0x000300f7u, 0x00003937u, 0x00000000u, 0x000400fau, 0x00002316u, 0x00003931u, 0x00003934u, 0x000200f8u, + 0x00003934u, 0x00060050u, 0x00000311u, 0x00003953u, 0x0000392fu, 0x0000392fu, 0x0000392fu, 0x000500c2u, + 0x00000311u, 0x00003954u, 0x00003953u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x00003956u, 0x00003954u, + 0x0000c218u, 0x000500c4u, 0x00000311u, 0x00003959u, 0x00003956u, 0x0000c219u, 0x000500c2u, 0x00000311u, + 0x0000395cu, 0x00003956u, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x0000395du, 0x00003959u, 0x0000395cu, + 0x000500c7u, 0x00000006u, 0x0000395fu, 0x0000392fu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003960u, + 0x0000395fu, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003962u, 0x0000395du, 0x0004007cu, 0x000004bbu, + 0x00003963u, 0x00003962u, 0x00040071u, 0x00000011u, 0x00003965u, 0x00003960u, 0x0004007cu, 0x00000012u, + 0x00003966u, 0x00003965u, 0x00050051u, 0x00000012u, 0x00003967u, 0x00003963u, 0x00000000u, 0x00050051u, + 0x00000012u, 0x00003968u, 0x00003963u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003969u, 0x00003963u, + 0x00000002u, 0x00070050u, 0x00000013u, 0x0000396au, 0x00003967u, 0x00003968u, 0x00003969u, 0x00003966u, + 0x000200f9u, 0x00003937u, 0x000200f8u, 0x00003931u, 0x000500c2u, 0x00000006u, 0x0000393eu, 0x0000392fu, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x00003940u, 0x0000392fu, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00003942u, 0x0000393eu, 0x0004007cu, 0x00000012u, 0x00003943u, 0x00003942u, 0x00040071u, 0x00000011u, + 0x0000394bu, 0x00003940u, 0x0004007cu, 0x00000012u, 0x0000394cu, 0x0000394bu, 0x00070050u, 0x00000013u, + 0x0000394du, 0x00003943u, 0x00003943u, 0x00003943u, 0x0000394cu, 0x000200f9u, 0x00003937u, 0x000200f8u, + 0x00003937u, 0x000700f5u, 0x00000013u, 0x00007bf9u, 0x0000394du, 0x00003931u, 0x0000396au, 0x00003934u, + 0x000300f7u, 0x00003098u, 0x00000000u, 0x000400fau, 0x00002355u, 0x00003085u, 0x00003098u, 0x000200f8u, + 0x00003085u, 0x00050050u, 0x000000f2u, 0x00003088u, 0x0000c24eu, 0x00002fd2u, 0x0004007cu, 0x000000b4u, + 0x00003089u, 0x00003088u, 0x00050051u, 0x00000006u, 0x00003979u, 0x00003089u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000397au, 0x00002e18u, 0x00003979u, 0x00050080u, 0x00000006u, 0x0000397bu, 0x00002e16u, + 0x0000397au, 0x00050051u, 0x00000006u, 0x0000397du, 0x00003089u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x0000397fu, 0x0000397bu, 0x0000397du, 0x000500c7u, 0x00000006u, 0x00003981u, 0x0000397fu, 0x00000f2du, + 0x000500c7u, 0x00000006u, 0x00003985u, 0x00003979u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003986u, + 0x00003985u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003988u, 0x00003981u, 0x00003986u, 0x000500c6u, + 0x00000006u, 0x0000398au, 0x00003988u, 0x00000469u, 0x00080041u, 0x00000676u, 0x0000398du, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x0000398au, 0x0004003du, 0x0000000fu, 0x0000398eu, 0x0000398du, + 0x00040071u, 0x00000006u, 0x0000398fu, 0x0000398eu, 0x000500c4u, 0x00000006u, 0x00003991u, 0x0000398fu, + 0x00000232u, 0x00050080u, 0x00000006u, 0x00003993u, 0x00003991u, 0x00000461u, 0x000500c6u, 0x00000006u, + 0x00003996u, 0x00003993u, 0x00003010u, 0x000500c5u, 0x00000006u, 0x00003999u, 0x00000f5eu, 0x00003996u, + 0x00080041u, 0x00000697u, 0x0000399au, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003999u, + 0x0004003du, 0x00000011u, 0x0000399bu, 0x0000399au, 0x00040071u, 0x00000006u, 0x0000399cu, 0x0000399bu, + 0x000300f7u, 0x000039a4u, 0x00000000u, 0x000400fau, 0x00002316u, 0x0000399eu, 0x000039a1u, 0x000200f8u, + 0x000039a1u, 0x00060050u, 0x00000311u, 0x000039c0u, 0x0000399cu, 0x0000399cu, 0x0000399cu, 0x000500c2u, + 0x00000311u, 0x000039c1u, 0x000039c0u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x000039c3u, 0x000039c1u, + 0x0000c218u, 0x000500c4u, 0x00000311u, 0x000039c6u, 0x000039c3u, 0x0000c219u, 0x000500c2u, 0x00000311u, + 0x000039c9u, 0x000039c3u, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x000039cau, 0x000039c6u, 0x000039c9u, + 0x000500c7u, 0x00000006u, 0x000039ccu, 0x0000399cu, 0x00000461u, 0x00050084u, 0x00000006u, 0x000039cdu, + 0x000039ccu, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000039cfu, 0x000039cau, 0x0004007cu, 0x000004bbu, + 0x000039d0u, 0x000039cfu, 0x00040071u, 0x00000011u, 0x000039d2u, 0x000039cdu, 0x0004007cu, 0x00000012u, + 0x000039d3u, 0x000039d2u, 0x00050051u, 0x00000012u, 0x000039d4u, 0x000039d0u, 0x00000000u, 0x00050051u, + 0x00000012u, 0x000039d5u, 0x000039d0u, 0x00000001u, 0x00050051u, 0x00000012u, 0x000039d6u, 0x000039d0u, + 0x00000002u, 0x00070050u, 0x00000013u, 0x000039d7u, 0x000039d4u, 0x000039d5u, 0x000039d6u, 0x000039d3u, + 0x000200f9u, 0x000039a4u, 0x000200f8u, 0x0000399eu, 0x000500c2u, 0x00000006u, 0x000039abu, 0x0000399cu, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x000039adu, 0x0000399cu, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x000039afu, 0x000039abu, 0x0004007cu, 0x00000012u, 0x000039b0u, 0x000039afu, 0x00040071u, 0x00000011u, + 0x000039b8u, 0x000039adu, 0x0004007cu, 0x00000012u, 0x000039b9u, 0x000039b8u, 0x00070050u, 0x00000013u, + 0x000039bau, 0x000039b0u, 0x000039b0u, 0x000039b0u, 0x000039b9u, 0x000200f9u, 0x000039a4u, 0x000200f8u, + 0x000039a4u, 0x000700f5u, 0x00000013u, 0x00007c00u, 0x000039bau, 0x0000399eu, 0x000039d7u, 0x000039a1u, + 0x00050050u, 0x000000f2u, 0x00003091u, 0x00007babu, 0x0000c24du, 0x0004007cu, 0x000000b4u, 0x00003092u, + 0x00003091u, 0x00050051u, 0x00000006u, 0x000039e6u, 0x00003092u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000039e7u, 0x00002e18u, 0x000039e6u, 0x00050080u, 0x00000006u, 0x000039e8u, 0x00002e16u, 0x000039e7u, + 0x00050051u, 0x00000006u, 0x000039eau, 0x00003092u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000039ecu, + 0x000039e8u, 0x000039eau, 0x000500c7u, 0x00000006u, 0x000039eeu, 0x000039ecu, 0x00000f2du, 0x000500c7u, + 0x00000006u, 0x000039f2u, 0x000039e6u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000039f3u, 0x000039f2u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x000039f5u, 0x000039eeu, 0x000039f3u, 0x000500c6u, 0x00000006u, + 0x000039f7u, 0x000039f5u, 0x00000469u, 0x00080041u, 0x00000676u, 0x000039fau, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x000039f7u, 0x0004003du, 0x0000000fu, 0x000039fbu, 0x000039fau, 0x00040071u, + 0x00000006u, 0x000039fcu, 0x000039fbu, 0x000500c4u, 0x00000006u, 0x000039feu, 0x000039fcu, 0x00000232u, + 0x00050080u, 0x00000006u, 0x00003a00u, 0x000039feu, 0x0000038bu, 0x000500c6u, 0x00000006u, 0x00003a03u, + 0x00003a00u, 0x00003010u, 0x000500c5u, 0x00000006u, 0x00003a06u, 0x00000f5eu, 0x00003a03u, 0x00080041u, + 0x00000697u, 0x00003a07u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003a06u, 0x0004003du, + 0x00000011u, 0x00003a08u, 0x00003a07u, 0x00040071u, 0x00000006u, 0x00003a09u, 0x00003a08u, 0x000300f7u, + 0x00003a11u, 0x00000000u, 0x000400fau, 0x00002316u, 0x00003a0bu, 0x00003a0eu, 0x000200f8u, 0x00003a0eu, + 0x00060050u, 0x00000311u, 0x00003a2du, 0x00003a09u, 0x00003a09u, 0x00003a09u, 0x000500c2u, 0x00000311u, + 0x00003a2eu, 0x00003a2du, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x00003a30u, 0x00003a2eu, 0x0000c218u, + 0x000500c4u, 0x00000311u, 0x00003a33u, 0x00003a30u, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x00003a36u, + 0x00003a30u, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00003a37u, 0x00003a33u, 0x00003a36u, 0x000500c7u, + 0x00000006u, 0x00003a39u, 0x00003a09u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003a3au, 0x00003a39u, + 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003a3cu, 0x00003a37u, 0x0004007cu, 0x000004bbu, 0x00003a3du, + 0x00003a3cu, 0x00040071u, 0x00000011u, 0x00003a3fu, 0x00003a3au, 0x0004007cu, 0x00000012u, 0x00003a40u, + 0x00003a3fu, 0x00050051u, 0x00000012u, 0x00003a41u, 0x00003a3du, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00003a42u, 0x00003a3du, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003a43u, 0x00003a3du, 0x00000002u, + 0x00070050u, 0x00000013u, 0x00003a44u, 0x00003a41u, 0x00003a42u, 0x00003a43u, 0x00003a40u, 0x000200f9u, + 0x00003a11u, 0x000200f8u, 0x00003a0bu, 0x000500c2u, 0x00000006u, 0x00003a18u, 0x00003a09u, 0x00000262u, + 0x000500c7u, 0x00000006u, 0x00003a1au, 0x00003a09u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003a1cu, + 0x00003a18u, 0x0004007cu, 0x00000012u, 0x00003a1du, 0x00003a1cu, 0x00040071u, 0x00000011u, 0x00003a25u, + 0x00003a1au, 0x0004007cu, 0x00000012u, 0x00003a26u, 0x00003a25u, 0x00070050u, 0x00000013u, 0x00003a27u, + 0x00003a1du, 0x00003a1du, 0x00003a1du, 0x00003a26u, 0x000200f9u, 0x00003a11u, 0x000200f8u, 0x00003a11u, + 0x000700f5u, 0x00000013u, 0x00007c05u, 0x00003a27u, 0x00003a0bu, 0x00003a44u, 0x00003a0eu, 0x000200f9u, + 0x00003098u, 0x000200f8u, 0x00003098u, 0x000700f5u, 0x00000013u, 0x00007df1u, 0x00007db7u, 0x00003937u, + 0x00007c05u, 0x00003a11u, 0x000700f5u, 0x00000013u, 0x00007d72u, 0x00007d36u, 0x00003937u, 0x00007c00u, + 0x00003a11u, 0x000300f7u, 0x000030a4u, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x0000309au, 0x000030a4u, + 0x000200f8u, 0x0000309au, 0x00050050u, 0x000000f2u, 0x0000309du, 0x0000c24eu, 0x0000c24du, 0x0004007cu, + 0x000000b4u, 0x0000309eu, 0x0000309du, 0x00050051u, 0x00000006u, 0x00003a53u, 0x0000309eu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003a54u, 0x00002e18u, 0x00003a53u, 0x00050080u, 0x00000006u, 0x00003a55u, + 0x00002e16u, 0x00003a54u, 0x00050051u, 0x00000006u, 0x00003a57u, 0x0000309eu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003a59u, 0x00003a55u, 0x00003a57u, 0x000500c7u, 0x00000006u, 0x00003a5bu, 0x00003a59u, + 0x00000f2du, 0x000500c7u, 0x00000006u, 0x00003a5fu, 0x00003a53u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00003a60u, 0x00003a5fu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003a62u, 0x00003a5bu, 0x00003a60u, + 0x000500c6u, 0x00000006u, 0x00003a64u, 0x00003a62u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003a67u, + 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003a64u, 0x0004003du, 0x0000000fu, 0x00003a68u, + 0x00003a67u, 0x00040071u, 0x00000006u, 0x00003a69u, 0x00003a68u, 0x000500c4u, 0x00000006u, 0x00003a6bu, + 0x00003a69u, 0x00000232u, 0x00050080u, 0x00000006u, 0x00003a6du, 0x00003a6bu, 0x00000469u, 0x000500c6u, + 0x00000006u, 0x00003a70u, 0x00003a6du, 0x00003010u, 0x000500c5u, 0x00000006u, 0x00003a73u, 0x00000f5eu, + 0x00003a70u, 0x00080041u, 0x00000697u, 0x00003a74u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00003a73u, 0x0004003du, 0x00000011u, 0x00003a75u, 0x00003a74u, 0x00040071u, 0x00000006u, 0x00003a76u, + 0x00003a75u, 0x000300f7u, 0x00003a7eu, 0x00000000u, 0x000400fau, 0x00002316u, 0x00003a78u, 0x00003a7bu, + 0x000200f8u, 0x00003a7bu, 0x00060050u, 0x00000311u, 0x00003a9au, 0x00003a76u, 0x00003a76u, 0x00003a76u, + 0x000500c2u, 0x00000311u, 0x00003a9bu, 0x00003a9au, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x00003a9du, + 0x00003a9bu, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x00003aa0u, 0x00003a9du, 0x0000c219u, 0x000500c2u, + 0x00000311u, 0x00003aa3u, 0x00003a9du, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00003aa4u, 0x00003aa0u, + 0x00003aa3u, 0x000500c7u, 0x00000006u, 0x00003aa6u, 0x00003a76u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00003aa7u, 0x00003aa6u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003aa9u, 0x00003aa4u, 0x0004007cu, + 0x000004bbu, 0x00003aaau, 0x00003aa9u, 0x00040071u, 0x00000011u, 0x00003aacu, 0x00003aa7u, 0x0004007cu, + 0x00000012u, 0x00003aadu, 0x00003aacu, 0x00050051u, 0x00000012u, 0x00003aaeu, 0x00003aaau, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00003aafu, 0x00003aaau, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003ab0u, + 0x00003aaau, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003ab1u, 0x00003aaeu, 0x00003aafu, 0x00003ab0u, + 0x00003aadu, 0x000200f9u, 0x00003a7eu, 0x000200f8u, 0x00003a78u, 0x000500c2u, 0x00000006u, 0x00003a85u, + 0x00003a76u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00003a87u, 0x00003a76u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00003a89u, 0x00003a85u, 0x0004007cu, 0x00000012u, 0x00003a8au, 0x00003a89u, 0x00040071u, + 0x00000011u, 0x00003a92u, 0x00003a87u, 0x0004007cu, 0x00000012u, 0x00003a93u, 0x00003a92u, 0x00070050u, + 0x00000013u, 0x00003a94u, 0x00003a8au, 0x00003a8au, 0x00003a8au, 0x00003a93u, 0x000200f9u, 0x00003a7eu, + 0x000200f8u, 0x00003a7eu, 0x000700f5u, 0x00000013u, 0x00007c0bu, 0x00003a94u, 0x00003a78u, 0x00003ab1u, + 0x00003a7bu, 0x000200f9u, 0x000030a4u, 0x000200f8u, 0x000030a4u, 0x000700f5u, 0x00000013u, 0x00007e6du, + 0x00007e32u, 0x00003098u, 0x00007c0bu, 0x00003a7eu, 0x000200f9u, 0x000030a5u, 0x000200f8u, 0x00003041u, + 0x0004007cu, 0x000000b4u, 0x00003043u, 0x00007bf8u, 0x00040071u, 0x00000006u, 0x00003046u, 0x00002e1eu, + 0x000600a9u, 0x00000008u, 0x00003048u, 0x00002feau, 0x00000235u, 0x00000225u, 0x0004007cu, 0x00000006u, + 0x00003049u, 0x00003048u, 0x00050051u, 0x00000006u, 0x0000371du, 0x00003043u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000371eu, 0x00002e18u, 0x0000371du, 0x00050080u, 0x00000006u, 0x0000371fu, 0x00002e16u, + 0x0000371eu, 0x00050051u, 0x00000006u, 0x00003721u, 0x00003043u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00003722u, 0x00003721u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00003724u, 0x0000371fu, 0x00003722u, + 0x000500c7u, 0x00000006u, 0x00003726u, 0x00003724u, 0x00000f2du, 0x000400c8u, 0x00000006u, 0x00003729u, + 0x00003721u, 0x000500c7u, 0x00000006u, 0x0000372au, 0x00003729u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x0000372bu, 0x0000372au, 0x00000709u, 0x000500c7u, 0x00000006u, 0x0000372fu, 0x0000371du, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003730u, 0x0000372fu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003732u, + 0x00003726u, 0x00003730u, 0x000500c6u, 0x00000006u, 0x00003734u, 0x00003732u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00003737u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00003734u, 0x0004003du, + 0x0000000fu, 0x00003738u, 0x00003737u, 0x00040071u, 0x00000006u, 0x00003739u, 0x00003738u, 0x000500c2u, + 0x00000006u, 0x0000373cu, 0x00003739u, 0x0000372bu, 0x000500c7u, 0x00000006u, 0x0000373du, 0x0000373cu, + 0x00000e98u, 0x000500c4u, 0x00000006u, 0x0000373fu, 0x00003046u, 0x00000238u, 0x000500c5u, 0x00000006u, + 0x00003741u, 0x0000373du, 0x0000373fu, 0x000500c4u, 0x00000006u, 0x00003743u, 0x00003741u, 0x00000232u, + 0x00050080u, 0x00000006u, 0x00003745u, 0x00003743u, 0x00003049u, 0x000500c6u, 0x00000006u, 0x00003748u, + 0x00003745u, 0x00003010u, 0x000500c5u, 0x00000006u, 0x0000374bu, 0x00000f5eu, 0x00003748u, 0x00080041u, + 0x00000697u, 0x0000374cu, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000374bu, 0x0004003du, + 0x00000011u, 0x0000374du, 0x0000374cu, 0x00040071u, 0x00000006u, 0x0000374eu, 0x0000374du, 0x000300f7u, + 0x00003756u, 0x00000000u, 0x000400fau, 0x00002316u, 0x00003750u, 0x00003753u, 0x000200f8u, 0x00003753u, + 0x00060050u, 0x00000311u, 0x00003772u, 0x0000374eu, 0x0000374eu, 0x0000374eu, 0x000500c2u, 0x00000311u, + 0x00003773u, 0x00003772u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x00003775u, 0x00003773u, 0x0000c218u, + 0x000500c4u, 0x00000311u, 0x00003778u, 0x00003775u, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x0000377bu, + 0x00003775u, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x0000377cu, 0x00003778u, 0x0000377bu, 0x000500c7u, + 0x00000006u, 0x0000377eu, 0x0000374eu, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000377fu, 0x0000377eu, + 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003781u, 0x0000377cu, 0x0004007cu, 0x000004bbu, 0x00003782u, + 0x00003781u, 0x00040071u, 0x00000011u, 0x00003784u, 0x0000377fu, 0x0004007cu, 0x00000012u, 0x00003785u, + 0x00003784u, 0x00050051u, 0x00000012u, 0x00003786u, 0x00003782u, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00003787u, 0x00003782u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003788u, 0x00003782u, 0x00000002u, + 0x00070050u, 0x00000013u, 0x00003789u, 0x00003786u, 0x00003787u, 0x00003788u, 0x00003785u, 0x000200f9u, + 0x00003756u, 0x000200f8u, 0x00003750u, 0x000500c2u, 0x00000006u, 0x0000375du, 0x0000374eu, 0x00000262u, + 0x000500c7u, 0x00000006u, 0x0000375fu, 0x0000374eu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003761u, + 0x0000375du, 0x0004007cu, 0x00000012u, 0x00003762u, 0x00003761u, 0x00040071u, 0x00000011u, 0x0000376au, + 0x0000375fu, 0x0004007cu, 0x00000012u, 0x0000376bu, 0x0000376au, 0x00070050u, 0x00000013u, 0x0000376cu, + 0x00003762u, 0x00003762u, 0x00003762u, 0x0000376bu, 0x000200f9u, 0x00003756u, 0x000200f8u, 0x00003756u, + 0x000700f5u, 0x00000013u, 0x00007c0cu, 0x0000376cu, 0x00003750u, 0x00003789u, 0x00003753u, 0x000300f7u, + 0x00003069u, 0x00000000u, 0x000400fau, 0x00002355u, 0x00003050u, 0x00003069u, 0x000200f8u, 0x00003050u, + 0x00050050u, 0x000000f2u, 0x00003053u, 0x0000c24eu, 0x00002fd2u, 0x0004007cu, 0x000000b4u, 0x00003054u, + 0x00003053u, 0x00050051u, 0x00000006u, 0x00003799u, 0x00003054u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000379au, 0x00002e18u, 0x00003799u, 0x00050080u, 0x00000006u, 0x0000379bu, 0x00002e16u, 0x0000379au, + 0x00050051u, 0x00000006u, 0x0000379du, 0x00003054u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000379eu, + 0x0000379du, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000037a0u, 0x0000379bu, 0x0000379eu, 0x000500c7u, + 0x00000006u, 0x000037a2u, 0x000037a0u, 0x00000f2du, 0x000400c8u, 0x00000006u, 0x000037a5u, 0x0000379du, + 0x000500c7u, 0x00000006u, 0x000037a6u, 0x000037a5u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000037a7u, + 0x000037a6u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000037abu, 0x00003799u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000037acu, 0x000037abu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000037aeu, 0x000037a2u, + 0x000037acu, 0x000500c6u, 0x00000006u, 0x000037b0u, 0x000037aeu, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000037b3u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000037b0u, 0x0004003du, 0x0000000fu, + 0x000037b4u, 0x000037b3u, 0x00040071u, 0x00000006u, 0x000037b5u, 0x000037b4u, 0x000500c2u, 0x00000006u, + 0x000037b8u, 0x000037b5u, 0x000037a7u, 0x000500c7u, 0x00000006u, 0x000037b9u, 0x000037b8u, 0x00000e98u, + 0x000500c5u, 0x00000006u, 0x000037bdu, 0x000037b9u, 0x0000373fu, 0x000500c4u, 0x00000006u, 0x000037bfu, + 0x000037bdu, 0x00000232u, 0x00050080u, 0x00000006u, 0x000037c1u, 0x000037bfu, 0x00000461u, 0x000500c6u, + 0x00000006u, 0x000037c4u, 0x000037c1u, 0x00003010u, 0x000500c5u, 0x00000006u, 0x000037c7u, 0x00000f5eu, + 0x000037c4u, 0x00080041u, 0x00000697u, 0x000037c8u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x000037c7u, 0x0004003du, 0x00000011u, 0x000037c9u, 0x000037c8u, 0x00040071u, 0x00000006u, 0x000037cau, + 0x000037c9u, 0x000300f7u, 0x000037d2u, 0x00000000u, 0x000400fau, 0x00002316u, 0x000037ccu, 0x000037cfu, + 0x000200f8u, 0x000037cfu, 0x00060050u, 0x00000311u, 0x000037eeu, 0x000037cau, 0x000037cau, 0x000037cau, + 0x000500c2u, 0x00000311u, 0x000037efu, 0x000037eeu, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x000037f1u, + 0x000037efu, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x000037f4u, 0x000037f1u, 0x0000c219u, 0x000500c2u, + 0x00000311u, 0x000037f7u, 0x000037f1u, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x000037f8u, 0x000037f4u, + 0x000037f7u, 0x000500c7u, 0x00000006u, 0x000037fau, 0x000037cau, 0x00000461u, 0x00050084u, 0x00000006u, + 0x000037fbu, 0x000037fau, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000037fdu, 0x000037f8u, 0x0004007cu, + 0x000004bbu, 0x000037feu, 0x000037fdu, 0x00040071u, 0x00000011u, 0x00003800u, 0x000037fbu, 0x0004007cu, + 0x00000012u, 0x00003801u, 0x00003800u, 0x00050051u, 0x00000012u, 0x00003802u, 0x000037feu, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00003803u, 0x000037feu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003804u, + 0x000037feu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003805u, 0x00003802u, 0x00003803u, 0x00003804u, + 0x00003801u, 0x000200f9u, 0x000037d2u, 0x000200f8u, 0x000037ccu, 0x000500c2u, 0x00000006u, 0x000037d9u, + 0x000037cau, 0x00000262u, 0x000500c7u, 0x00000006u, 0x000037dbu, 0x000037cau, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x000037ddu, 0x000037d9u, 0x0004007cu, 0x00000012u, 0x000037deu, 0x000037ddu, 0x00040071u, + 0x00000011u, 0x000037e6u, 0x000037dbu, 0x0004007cu, 0x00000012u, 0x000037e7u, 0x000037e6u, 0x00070050u, + 0x00000013u, 0x000037e8u, 0x000037deu, 0x000037deu, 0x000037deu, 0x000037e7u, 0x000200f9u, 0x000037d2u, + 0x000200f8u, 0x000037d2u, 0x000700f5u, 0x00000013u, 0x00007c0fu, 0x000037e8u, 0x000037ccu, 0x00003805u, + 0x000037cfu, 0x00050050u, 0x000000f2u, 0x0000305fu, 0x00007babu, 0x0000c24du, 0x0004007cu, 0x000000b4u, + 0x00003060u, 0x0000305fu, 0x00050051u, 0x00000006u, 0x00003815u, 0x00003060u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003816u, 0x00002e18u, 0x00003815u, 0x00050080u, 0x00000006u, 0x00003817u, 0x00002e16u, + 0x00003816u, 0x00050051u, 0x00000006u, 0x00003819u, 0x00003060u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x0000381au, 0x00003819u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000381cu, 0x00003817u, 0x0000381au, + 0x000500c7u, 0x00000006u, 0x0000381eu, 0x0000381cu, 0x00000f2du, 0x000400c8u, 0x00000006u, 0x00003821u, + 0x00003819u, 0x000500c7u, 0x00000006u, 0x00003822u, 0x00003821u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00003823u, 0x00003822u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00003827u, 0x00003815u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003828u, 0x00003827u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x0000382au, + 0x0000381eu, 0x00003828u, 0x000500c6u, 0x00000006u, 0x0000382cu, 0x0000382au, 0x00000469u, 0x00080041u, + 0x00000676u, 0x0000382fu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000382cu, 0x0004003du, + 0x0000000fu, 0x00003830u, 0x0000382fu, 0x00040071u, 0x00000006u, 0x00003831u, 0x00003830u, 0x000500c2u, + 0x00000006u, 0x00003834u, 0x00003831u, 0x00003823u, 0x000500c7u, 0x00000006u, 0x00003835u, 0x00003834u, + 0x00000e98u, 0x000500c5u, 0x00000006u, 0x00003839u, 0x00003835u, 0x0000373fu, 0x000500c4u, 0x00000006u, + 0x0000383bu, 0x00003839u, 0x00000232u, 0x00050080u, 0x00000006u, 0x0000383du, 0x0000383bu, 0x0000038bu, + 0x000500c6u, 0x00000006u, 0x00003840u, 0x0000383du, 0x00003010u, 0x000500c5u, 0x00000006u, 0x00003843u, + 0x00000f5eu, 0x00003840u, 0x00080041u, 0x00000697u, 0x00003844u, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00003843u, 0x0004003du, 0x00000011u, 0x00003845u, 0x00003844u, 0x00040071u, 0x00000006u, + 0x00003846u, 0x00003845u, 0x000300f7u, 0x0000384eu, 0x00000000u, 0x000400fau, 0x00002316u, 0x00003848u, + 0x0000384bu, 0x000200f8u, 0x0000384bu, 0x00060050u, 0x00000311u, 0x0000386au, 0x00003846u, 0x00003846u, + 0x00003846u, 0x000500c2u, 0x00000311u, 0x0000386bu, 0x0000386au, 0x00000e36u, 0x000500c7u, 0x00000311u, + 0x0000386du, 0x0000386bu, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x00003870u, 0x0000386du, 0x0000c219u, + 0x000500c2u, 0x00000311u, 0x00003873u, 0x0000386du, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00003874u, + 0x00003870u, 0x00003873u, 0x000500c7u, 0x00000006u, 0x00003876u, 0x00003846u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00003877u, 0x00003876u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003879u, 0x00003874u, + 0x0004007cu, 0x000004bbu, 0x0000387au, 0x00003879u, 0x00040071u, 0x00000011u, 0x0000387cu, 0x00003877u, + 0x0004007cu, 0x00000012u, 0x0000387du, 0x0000387cu, 0x00050051u, 0x00000012u, 0x0000387eu, 0x0000387au, + 0x00000000u, 0x00050051u, 0x00000012u, 0x0000387fu, 0x0000387au, 0x00000001u, 0x00050051u, 0x00000012u, + 0x00003880u, 0x0000387au, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003881u, 0x0000387eu, 0x0000387fu, + 0x00003880u, 0x0000387du, 0x000200f9u, 0x0000384eu, 0x000200f8u, 0x00003848u, 0x000500c2u, 0x00000006u, + 0x00003855u, 0x00003846u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00003857u, 0x00003846u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00003859u, 0x00003855u, 0x0004007cu, 0x00000012u, 0x0000385au, 0x00003859u, + 0x00040071u, 0x00000011u, 0x00003862u, 0x00003857u, 0x0004007cu, 0x00000012u, 0x00003863u, 0x00003862u, + 0x00070050u, 0x00000013u, 0x00003864u, 0x0000385au, 0x0000385au, 0x0000385au, 0x00003863u, 0x000200f9u, + 0x0000384eu, 0x000200f8u, 0x0000384eu, 0x000700f5u, 0x00000013u, 0x00007c12u, 0x00003864u, 0x00003848u, + 0x00003881u, 0x0000384bu, 0x000200f9u, 0x00003069u, 0x000200f8u, 0x00003069u, 0x000700f5u, 0x00000013u, + 0x00007dedu, 0x00007db7u, 0x00003756u, 0x00007c12u, 0x0000384eu, 0x000700f5u, 0x00000013u, 0x00007d6du, + 0x00007d36u, 0x00003756u, 0x00007c0fu, 0x0000384eu, 0x000300f7u, 0x00003078u, 0x00000000u, 0x000400fau, + 0x00002fdeu, 0x0000306bu, 0x00003078u, 0x000200f8u, 0x0000306bu, 0x00050050u, 0x000000f2u, 0x0000306eu, + 0x0000c24eu, 0x0000c24du, 0x0004007cu, 0x000000b4u, 0x0000306fu, 0x0000306eu, 0x00050051u, 0x00000006u, + 0x00003891u, 0x0000306fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003892u, 0x00002e18u, 0x00003891u, + 0x00050080u, 0x00000006u, 0x00003893u, 0x00002e16u, 0x00003892u, 0x00050051u, 0x00000006u, 0x00003895u, + 0x0000306fu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003896u, 0x00003895u, 0x0000022fu, 0x00050080u, + 0x00000006u, 0x00003898u, 0x00003893u, 0x00003896u, 0x000500c7u, 0x00000006u, 0x0000389au, 0x00003898u, + 0x00000f2du, 0x000400c8u, 0x00000006u, 0x0000389du, 0x00003895u, 0x000500c7u, 0x00000006u, 0x0000389eu, + 0x0000389du, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000389fu, 0x0000389eu, 0x00000709u, 0x000500c7u, + 0x00000006u, 0x000038a3u, 0x00003891u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000038a4u, 0x000038a3u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x000038a6u, 0x0000389au, 0x000038a4u, 0x000500c6u, 0x00000006u, + 0x000038a8u, 0x000038a6u, 0x00000469u, 0x00080041u, 0x00000676u, 0x000038abu, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x000038a8u, 0x0004003du, 0x0000000fu, 0x000038acu, 0x000038abu, 0x00040071u, + 0x00000006u, 0x000038adu, 0x000038acu, 0x000500c2u, 0x00000006u, 0x000038b0u, 0x000038adu, 0x0000389fu, + 0x000500c7u, 0x00000006u, 0x000038b1u, 0x000038b0u, 0x00000e98u, 0x000500c5u, 0x00000006u, 0x000038b5u, + 0x000038b1u, 0x0000373fu, 0x000500c4u, 0x00000006u, 0x000038b7u, 0x000038b5u, 0x00000232u, 0x00050080u, + 0x00000006u, 0x000038b9u, 0x000038b7u, 0x00000469u, 0x000500c6u, 0x00000006u, 0x000038bcu, 0x000038b9u, + 0x00003010u, 0x000500c5u, 0x00000006u, 0x000038bfu, 0x00000f5eu, 0x000038bcu, 0x00080041u, 0x00000697u, + 0x000038c0u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000038bfu, 0x0004003du, 0x00000011u, + 0x000038c1u, 0x000038c0u, 0x00040071u, 0x00000006u, 0x000038c2u, 0x000038c1u, 0x000300f7u, 0x000038cau, + 0x00000000u, 0x000400fau, 0x00002316u, 0x000038c4u, 0x000038c7u, 0x000200f8u, 0x000038c7u, 0x00060050u, + 0x00000311u, 0x000038e6u, 0x000038c2u, 0x000038c2u, 0x000038c2u, 0x000500c2u, 0x00000311u, 0x000038e7u, + 0x000038e6u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x000038e9u, 0x000038e7u, 0x0000c218u, 0x000500c4u, + 0x00000311u, 0x000038ecu, 0x000038e9u, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x000038efu, 0x000038e9u, + 0x0000c21au, 0x000500c5u, 0x00000311u, 0x000038f0u, 0x000038ecu, 0x000038efu, 0x000500c7u, 0x00000006u, + 0x000038f2u, 0x000038c2u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000038f3u, 0x000038f2u, 0x000006c8u, + 0x00040071u, 0x000004bfu, 0x000038f5u, 0x000038f0u, 0x0004007cu, 0x000004bbu, 0x000038f6u, 0x000038f5u, + 0x00040071u, 0x00000011u, 0x000038f8u, 0x000038f3u, 0x0004007cu, 0x00000012u, 0x000038f9u, 0x000038f8u, + 0x00050051u, 0x00000012u, 0x000038fau, 0x000038f6u, 0x00000000u, 0x00050051u, 0x00000012u, 0x000038fbu, + 0x000038f6u, 0x00000001u, 0x00050051u, 0x00000012u, 0x000038fcu, 0x000038f6u, 0x00000002u, 0x00070050u, + 0x00000013u, 0x000038fdu, 0x000038fau, 0x000038fbu, 0x000038fcu, 0x000038f9u, 0x000200f9u, 0x000038cau, + 0x000200f8u, 0x000038c4u, 0x000500c2u, 0x00000006u, 0x000038d1u, 0x000038c2u, 0x00000262u, 0x000500c7u, + 0x00000006u, 0x000038d3u, 0x000038c2u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000038d5u, 0x000038d1u, + 0x0004007cu, 0x00000012u, 0x000038d6u, 0x000038d5u, 0x00040071u, 0x00000011u, 0x000038deu, 0x000038d3u, + 0x0004007cu, 0x00000012u, 0x000038dfu, 0x000038deu, 0x00070050u, 0x00000013u, 0x000038e0u, 0x000038d6u, + 0x000038d6u, 0x000038d6u, 0x000038dfu, 0x000200f9u, 0x000038cau, 0x000200f8u, 0x000038cau, 0x000700f5u, + 0x00000013u, 0x00007c18u, 0x000038e0u, 0x000038c4u, 0x000038fdu, 0x000038c7u, 0x000200f9u, 0x00003078u, + 0x000200f8u, 0x00003078u, 0x000700f5u, 0x00000013u, 0x00007e68u, 0x00007e32u, 0x00003069u, 0x00007c18u, + 0x000038cau, 0x000200f9u, 0x000030a5u, 0x000200f8u, 0x00003015u, 0x0004007cu, 0x000000b4u, 0x00003017u, + 0x00007bf8u, 0x000600a9u, 0x00000008u, 0x00003019u, 0x00002feau, 0x00000235u, 0x00000225u, 0x0004007cu, + 0x00000006u, 0x0000301au, 0x00003019u, 0x00050051u, 0x00000006u, 0x0000355cu, 0x00003017u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000355du, 0x00002e18u, 0x0000355cu, 0x00050080u, 0x00000006u, 0x0000355eu, + 0x00002e16u, 0x0000355du, 0x00050051u, 0x00000006u, 0x00003560u, 0x00003017u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003561u, 0x00003560u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003563u, 0x0000355eu, + 0x00003561u, 0x000500c7u, 0x00000006u, 0x00003565u, 0x00003563u, 0x00000f2du, 0x000500c2u, 0x00000006u, + 0x00003567u, 0x00003565u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x0000356au, 0x0000355cu, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x0000356bu, 0x0000356au, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x0000356du, + 0x00003567u, 0x0000356bu, 0x000500c6u, 0x00000006u, 0x0000356fu, 0x0000356du, 0x00000461u, 0x00080041u, + 0x00000697u, 0x00003572u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000356fu, 0x0004003du, + 0x00000011u, 0x00003573u, 0x00003572u, 0x00040071u, 0x00000006u, 0x00003574u, 0x00003573u, 0x000500c2u, + 0x00000006u, 0x00003576u, 0x00003574u, 0x0000023eu, 0x000500c7u, 0x00000006u, 0x00003577u, 0x00003576u, + 0x00000ffeu, 0x00050080u, 0x00000006u, 0x00003579u, 0x00003577u, 0x0000301au, 0x000500c6u, 0x00000006u, + 0x0000357cu, 0x00003579u, 0x00003010u, 0x000500c5u, 0x00000006u, 0x0000357fu, 0x00000f5eu, 0x0000357cu, + 0x00080041u, 0x00000697u, 0x00003580u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000357fu, + 0x0004003du, 0x00000011u, 0x00003581u, 0x00003580u, 0x00040071u, 0x00000006u, 0x00003582u, 0x00003581u, + 0x000300f7u, 0x0000358au, 0x00000000u, 0x000400fau, 0x00002316u, 0x00003584u, 0x00003587u, 0x000200f8u, + 0x00003587u, 0x00060050u, 0x00000311u, 0x000035a6u, 0x00003582u, 0x00003582u, 0x00003582u, 0x000500c2u, + 0x00000311u, 0x000035a7u, 0x000035a6u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x000035a9u, 0x000035a7u, + 0x0000c218u, 0x000500c4u, 0x00000311u, 0x000035acu, 0x000035a9u, 0x0000c219u, 0x000500c2u, 0x00000311u, + 0x000035afu, 0x000035a9u, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x000035b0u, 0x000035acu, 0x000035afu, + 0x000500c7u, 0x00000006u, 0x000035b2u, 0x00003582u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000035b3u, + 0x000035b2u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000035b5u, 0x000035b0u, 0x0004007cu, 0x000004bbu, + 0x000035b6u, 0x000035b5u, 0x00040071u, 0x00000011u, 0x000035b8u, 0x000035b3u, 0x0004007cu, 0x00000012u, + 0x000035b9u, 0x000035b8u, 0x00050051u, 0x00000012u, 0x000035bau, 0x000035b6u, 0x00000000u, 0x00050051u, + 0x00000012u, 0x000035bbu, 0x000035b6u, 0x00000001u, 0x00050051u, 0x00000012u, 0x000035bcu, 0x000035b6u, + 0x00000002u, 0x00070050u, 0x00000013u, 0x000035bdu, 0x000035bau, 0x000035bbu, 0x000035bcu, 0x000035b9u, + 0x000200f9u, 0x0000358au, 0x000200f8u, 0x00003584u, 0x000500c2u, 0x00000006u, 0x00003591u, 0x00003582u, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x00003593u, 0x00003582u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00003595u, 0x00003591u, 0x0004007cu, 0x00000012u, 0x00003596u, 0x00003595u, 0x00040071u, 0x00000011u, + 0x0000359eu, 0x00003593u, 0x0004007cu, 0x00000012u, 0x0000359fu, 0x0000359eu, 0x00070050u, 0x00000013u, + 0x000035a0u, 0x00003596u, 0x00003596u, 0x00003596u, 0x0000359fu, 0x000200f9u, 0x0000358au, 0x000200f8u, + 0x0000358au, 0x000700f5u, 0x00000013u, 0x00007c19u, 0x000035a0u, 0x00003584u, 0x000035bdu, 0x00003587u, + 0x000300f7u, 0x00003034u, 0x00000000u, 0x000400fau, 0x00002355u, 0x00003021u, 0x00003034u, 0x000200f8u, + 0x00003021u, 0x00050050u, 0x000000f2u, 0x00003024u, 0x0000c24eu, 0x00002fd2u, 0x0004007cu, 0x000000b4u, + 0x00003025u, 0x00003024u, 0x00050051u, 0x00000006u, 0x000035ccu, 0x00003025u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000035cdu, 0x00002e18u, 0x000035ccu, 0x00050080u, 0x00000006u, 0x000035ceu, 0x00002e16u, + 0x000035cdu, 0x00050051u, 0x00000006u, 0x000035d0u, 0x00003025u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000035d1u, 0x000035d0u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000035d3u, 0x000035ceu, 0x000035d1u, + 0x000500c7u, 0x00000006u, 0x000035d5u, 0x000035d3u, 0x00000f2du, 0x000500c2u, 0x00000006u, 0x000035d7u, + 0x000035d5u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000035dau, 0x000035ccu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000035dbu, 0x000035dau, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000035ddu, 0x000035d7u, + 0x000035dbu, 0x000500c6u, 0x00000006u, 0x000035dfu, 0x000035ddu, 0x00000461u, 0x00080041u, 0x00000697u, + 0x000035e2u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000035dfu, 0x0004003du, 0x00000011u, + 0x000035e3u, 0x000035e2u, 0x00040071u, 0x00000006u, 0x000035e4u, 0x000035e3u, 0x000500c2u, 0x00000006u, + 0x000035e6u, 0x000035e4u, 0x0000023eu, 0x000500c7u, 0x00000006u, 0x000035e7u, 0x000035e6u, 0x00000ffeu, + 0x00050080u, 0x00000006u, 0x000035e9u, 0x000035e7u, 0x00000461u, 0x000500c6u, 0x00000006u, 0x000035ecu, + 0x000035e9u, 0x00003010u, 0x000500c5u, 0x00000006u, 0x000035efu, 0x00000f5eu, 0x000035ecu, 0x00080041u, + 0x00000697u, 0x000035f0u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000035efu, 0x0004003du, + 0x00000011u, 0x000035f1u, 0x000035f0u, 0x00040071u, 0x00000006u, 0x000035f2u, 0x000035f1u, 0x000300f7u, + 0x000035fau, 0x00000000u, 0x000400fau, 0x00002316u, 0x000035f4u, 0x000035f7u, 0x000200f8u, 0x000035f7u, + 0x00060050u, 0x00000311u, 0x00003616u, 0x000035f2u, 0x000035f2u, 0x000035f2u, 0x000500c2u, 0x00000311u, + 0x00003617u, 0x00003616u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x00003619u, 0x00003617u, 0x0000c218u, + 0x000500c4u, 0x00000311u, 0x0000361cu, 0x00003619u, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x0000361fu, + 0x00003619u, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00003620u, 0x0000361cu, 0x0000361fu, 0x000500c7u, + 0x00000006u, 0x00003622u, 0x000035f2u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003623u, 0x00003622u, + 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003625u, 0x00003620u, 0x0004007cu, 0x000004bbu, 0x00003626u, + 0x00003625u, 0x00040071u, 0x00000011u, 0x00003628u, 0x00003623u, 0x0004007cu, 0x00000012u, 0x00003629u, + 0x00003628u, 0x00050051u, 0x00000012u, 0x0000362au, 0x00003626u, 0x00000000u, 0x00050051u, 0x00000012u, + 0x0000362bu, 0x00003626u, 0x00000001u, 0x00050051u, 0x00000012u, 0x0000362cu, 0x00003626u, 0x00000002u, + 0x00070050u, 0x00000013u, 0x0000362du, 0x0000362au, 0x0000362bu, 0x0000362cu, 0x00003629u, 0x000200f9u, + 0x000035fau, 0x000200f8u, 0x000035f4u, 0x000500c2u, 0x00000006u, 0x00003601u, 0x000035f2u, 0x00000262u, + 0x000500c7u, 0x00000006u, 0x00003603u, 0x000035f2u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003605u, + 0x00003601u, 0x0004007cu, 0x00000012u, 0x00003606u, 0x00003605u, 0x00040071u, 0x00000011u, 0x0000360eu, + 0x00003603u, 0x0004007cu, 0x00000012u, 0x0000360fu, 0x0000360eu, 0x00070050u, 0x00000013u, 0x00003610u, + 0x00003606u, 0x00003606u, 0x00003606u, 0x0000360fu, 0x000200f9u, 0x000035fau, 0x000200f8u, 0x000035fau, + 0x000700f5u, 0x00000013u, 0x00007c1cu, 0x00003610u, 0x000035f4u, 0x0000362du, 0x000035f7u, 0x00050050u, + 0x000000f2u, 0x0000302du, 0x00007babu, 0x0000c24du, 0x0004007cu, 0x000000b4u, 0x0000302eu, 0x0000302du, + 0x00050051u, 0x00000006u, 0x0000363cu, 0x0000302eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000363du, + 0x00002e18u, 0x0000363cu, 0x00050080u, 0x00000006u, 0x0000363eu, 0x00002e16u, 0x0000363du, 0x00050051u, + 0x00000006u, 0x00003640u, 0x0000302eu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003641u, 0x00003640u, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003643u, 0x0000363eu, 0x00003641u, 0x000500c7u, 0x00000006u, + 0x00003645u, 0x00003643u, 0x00000f2du, 0x000500c2u, 0x00000006u, 0x00003647u, 0x00003645u, 0x0000022fu, + 0x000500c7u, 0x00000006u, 0x0000364au, 0x0000363cu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000364bu, + 0x0000364au, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x0000364du, 0x00003647u, 0x0000364bu, 0x000500c6u, + 0x00000006u, 0x0000364fu, 0x0000364du, 0x00000461u, 0x00080041u, 0x00000697u, 0x00003652u, 0x00000f5cu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x0000364fu, 0x0004003du, 0x00000011u, 0x00003653u, 0x00003652u, + 0x00040071u, 0x00000006u, 0x00003654u, 0x00003653u, 0x000500c2u, 0x00000006u, 0x00003656u, 0x00003654u, + 0x0000023eu, 0x000500c7u, 0x00000006u, 0x00003657u, 0x00003656u, 0x00000ffeu, 0x00050080u, 0x00000006u, + 0x00003659u, 0x00003657u, 0x0000038bu, 0x000500c6u, 0x00000006u, 0x0000365cu, 0x00003659u, 0x00003010u, + 0x000500c5u, 0x00000006u, 0x0000365fu, 0x00000f5eu, 0x0000365cu, 0x00080041u, 0x00000697u, 0x00003660u, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000365fu, 0x0004003du, 0x00000011u, 0x00003661u, + 0x00003660u, 0x00040071u, 0x00000006u, 0x00003662u, 0x00003661u, 0x000300f7u, 0x0000366au, 0x00000000u, + 0x000400fau, 0x00002316u, 0x00003664u, 0x00003667u, 0x000200f8u, 0x00003667u, 0x00060050u, 0x00000311u, + 0x00003686u, 0x00003662u, 0x00003662u, 0x00003662u, 0x000500c2u, 0x00000311u, 0x00003687u, 0x00003686u, + 0x00000e36u, 0x000500c7u, 0x00000311u, 0x00003689u, 0x00003687u, 0x0000c218u, 0x000500c4u, 0x00000311u, + 0x0000368cu, 0x00003689u, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x0000368fu, 0x00003689u, 0x0000c21au, + 0x000500c5u, 0x00000311u, 0x00003690u, 0x0000368cu, 0x0000368fu, 0x000500c7u, 0x00000006u, 0x00003692u, + 0x00003662u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003693u, 0x00003692u, 0x000006c8u, 0x00040071u, + 0x000004bfu, 0x00003695u, 0x00003690u, 0x0004007cu, 0x000004bbu, 0x00003696u, 0x00003695u, 0x00040071u, + 0x00000011u, 0x00003698u, 0x00003693u, 0x0004007cu, 0x00000012u, 0x00003699u, 0x00003698u, 0x00050051u, + 0x00000012u, 0x0000369au, 0x00003696u, 0x00000000u, 0x00050051u, 0x00000012u, 0x0000369bu, 0x00003696u, + 0x00000001u, 0x00050051u, 0x00000012u, 0x0000369cu, 0x00003696u, 0x00000002u, 0x00070050u, 0x00000013u, + 0x0000369du, 0x0000369au, 0x0000369bu, 0x0000369cu, 0x00003699u, 0x000200f9u, 0x0000366au, 0x000200f8u, + 0x00003664u, 0x000500c2u, 0x00000006u, 0x00003671u, 0x00003662u, 0x00000262u, 0x000500c7u, 0x00000006u, + 0x00003673u, 0x00003662u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003675u, 0x00003671u, 0x0004007cu, + 0x00000012u, 0x00003676u, 0x00003675u, 0x00040071u, 0x00000011u, 0x0000367eu, 0x00003673u, 0x0004007cu, + 0x00000012u, 0x0000367fu, 0x0000367eu, 0x00070050u, 0x00000013u, 0x00003680u, 0x00003676u, 0x00003676u, + 0x00003676u, 0x0000367fu, 0x000200f9u, 0x0000366au, 0x000200f8u, 0x0000366au, 0x000700f5u, 0x00000013u, + 0x00007c1fu, 0x00003680u, 0x00003664u, 0x0000369du, 0x00003667u, 0x000200f9u, 0x00003034u, 0x000200f8u, + 0x00003034u, 0x000700f5u, 0x00000013u, 0x00007de8u, 0x00007db7u, 0x0000358au, 0x00007c1fu, 0x0000366au, + 0x000700f5u, 0x00000013u, 0x00007d67u, 0x00007d36u, 0x0000358au, 0x00007c1cu, 0x0000366au, 0x000300f7u, + 0x00003040u, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x00003036u, 0x00003040u, 0x000200f8u, 0x00003036u, + 0x00050050u, 0x000000f2u, 0x00003039u, 0x0000c24eu, 0x0000c24du, 0x0004007cu, 0x000000b4u, 0x0000303au, + 0x00003039u, 0x00050051u, 0x00000006u, 0x000036acu, 0x0000303au, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000036adu, 0x00002e18u, 0x000036acu, 0x00050080u, 0x00000006u, 0x000036aeu, 0x00002e16u, 0x000036adu, + 0x00050051u, 0x00000006u, 0x000036b0u, 0x0000303au, 0x00000000u, 0x00050084u, 0x00000006u, 0x000036b1u, + 0x000036b0u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000036b3u, 0x000036aeu, 0x000036b1u, 0x000500c7u, + 0x00000006u, 0x000036b5u, 0x000036b3u, 0x00000f2du, 0x000500c2u, 0x00000006u, 0x000036b7u, 0x000036b5u, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000036bau, 0x000036acu, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x000036bbu, 0x000036bau, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000036bdu, 0x000036b7u, 0x000036bbu, + 0x000500c6u, 0x00000006u, 0x000036bfu, 0x000036bdu, 0x00000461u, 0x00080041u, 0x00000697u, 0x000036c2u, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000036bfu, 0x0004003du, 0x00000011u, 0x000036c3u, + 0x000036c2u, 0x00040071u, 0x00000006u, 0x000036c4u, 0x000036c3u, 0x000500c2u, 0x00000006u, 0x000036c6u, + 0x000036c4u, 0x0000023eu, 0x000500c7u, 0x00000006u, 0x000036c7u, 0x000036c6u, 0x00000ffeu, 0x00050080u, + 0x00000006u, 0x000036c9u, 0x000036c7u, 0x00000469u, 0x000500c6u, 0x00000006u, 0x000036ccu, 0x000036c9u, + 0x00003010u, 0x000500c5u, 0x00000006u, 0x000036cfu, 0x00000f5eu, 0x000036ccu, 0x00080041u, 0x00000697u, + 0x000036d0u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000036cfu, 0x0004003du, 0x00000011u, + 0x000036d1u, 0x000036d0u, 0x00040071u, 0x00000006u, 0x000036d2u, 0x000036d1u, 0x000300f7u, 0x000036dau, + 0x00000000u, 0x000400fau, 0x00002316u, 0x000036d4u, 0x000036d7u, 0x000200f8u, 0x000036d7u, 0x00060050u, + 0x00000311u, 0x000036f6u, 0x000036d2u, 0x000036d2u, 0x000036d2u, 0x000500c2u, 0x00000311u, 0x000036f7u, + 0x000036f6u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x000036f9u, 0x000036f7u, 0x0000c218u, 0x000500c4u, + 0x00000311u, 0x000036fcu, 0x000036f9u, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x000036ffu, 0x000036f9u, + 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00003700u, 0x000036fcu, 0x000036ffu, 0x000500c7u, 0x00000006u, + 0x00003702u, 0x000036d2u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003703u, 0x00003702u, 0x000006c8u, + 0x00040071u, 0x000004bfu, 0x00003705u, 0x00003700u, 0x0004007cu, 0x000004bbu, 0x00003706u, 0x00003705u, + 0x00040071u, 0x00000011u, 0x00003708u, 0x00003703u, 0x0004007cu, 0x00000012u, 0x00003709u, 0x00003708u, + 0x00050051u, 0x00000012u, 0x0000370au, 0x00003706u, 0x00000000u, 0x00050051u, 0x00000012u, 0x0000370bu, + 0x00003706u, 0x00000001u, 0x00050051u, 0x00000012u, 0x0000370cu, 0x00003706u, 0x00000002u, 0x00070050u, + 0x00000013u, 0x0000370du, 0x0000370au, 0x0000370bu, 0x0000370cu, 0x00003709u, 0x000200f9u, 0x000036dau, + 0x000200f8u, 0x000036d4u, 0x000500c2u, 0x00000006u, 0x000036e1u, 0x000036d2u, 0x00000262u, 0x000500c7u, + 0x00000006u, 0x000036e3u, 0x000036d2u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000036e5u, 0x000036e1u, + 0x0004007cu, 0x00000012u, 0x000036e6u, 0x000036e5u, 0x00040071u, 0x00000011u, 0x000036eeu, 0x000036e3u, + 0x0004007cu, 0x00000012u, 0x000036efu, 0x000036eeu, 0x00070050u, 0x00000013u, 0x000036f0u, 0x000036e6u, + 0x000036e6u, 0x000036e6u, 0x000036efu, 0x000200f9u, 0x000036dau, 0x000200f8u, 0x000036dau, 0x000700f5u, + 0x00000013u, 0x00007c25u, 0x000036f0u, 0x000036d4u, 0x0000370du, 0x000036d7u, 0x000200f9u, 0x00003040u, + 0x000200f8u, 0x00003040u, 0x000700f5u, 0x00000013u, 0x00007e62u, 0x00007e32u, 0x00003034u, 0x00007c25u, + 0x000036dau, 0x000200f9u, 0x000030a5u, 0x000200f8u, 0x000030a5u, 0x000900f5u, 0x00000013u, 0x00007e61u, + 0x00007e62u, 0x00003040u, 0x00007e68u, 0x00003078u, 0x00007e6du, 0x000030a4u, 0x000900f5u, 0x00000013u, + 0x00007de6u, 0x00007de8u, 0x00003040u, 0x00007dedu, 0x00003078u, 0x00007df1u, 0x000030a4u, 0x000900f5u, + 0x00000013u, 0x00007d65u, 0x00007d67u, 0x00003040u, 0x00007d6du, 0x00003078u, 0x00007d72u, 0x000030a4u, + 0x000900f5u, 0x00000013u, 0x00007c73u, 0x00007c19u, 0x00003040u, 0x00007c0cu, 0x00003078u, 0x00007bf9u, + 0x000030a4u, 0x000200f9u, 0x000030a6u, 0x000200f8u, 0x000030a6u, 0x000700f5u, 0x00000013u, 0x00007e17u, + 0x00007e32u, 0x00003006u, 0x00007e61u, 0x000030a5u, 0x000700f5u, 0x00000013u, 0x00007d9cu, 0x00007db7u, + 0x00003006u, 0x00007de6u, 0x000030a5u, 0x000700f5u, 0x00000013u, 0x00007d1bu, 0x00007d36u, 0x00003006u, + 0x00007d65u, 0x000030a5u, 0x000700f5u, 0x00000013u, 0x00007c28u, 0x00007c43u, 0x00003006u, 0x00007c73u, + 0x000030a5u, 0x000200f9u, 0x000032cdu, 0x000200f8u, 0x000032cdu, 0x000700f5u, 0x00000013u, 0x00007e16u, + 0x00007e17u, 0x000030a6u, 0x00007e72u, 0x000032ccu, 0x000700f5u, 0x00000013u, 0x00007d9bu, 0x00007d9cu, + 0x000030a6u, 0x00007df4u, 0x000032ccu, 0x000700f5u, 0x00000013u, 0x00007d1au, 0x00007d1bu, 0x000030a6u, + 0x00007d76u, 0x000032ccu, 0x000700f5u, 0x00000013u, 0x00007c27u, 0x00007c28u, 0x000030a6u, 0x00007c83u, + 0x000032ccu, 0x000300f7u, 0x0000345du, 0x00000000u, 0x000400fau, 0x00002fe8u, 0x000033aau, 0x0000341du, + 0x000200f8u, 0x0000341du, 0x000300f7u, 0x0000345cu, 0x00000000u, 0x000400fau, 0x00002fdeu, 0x0000341fu, + 0x0000342bu, 0x000200f8u, 0x0000342bu, 0x000600a9u, 0x00000069u, 0x0000c24fu, 0x00002355u, 0x00002facu, + 0x00002355u, 0x000300f7u, 0x0000345bu, 0x00000000u, 0x000400fau, 0x0000c24fu, 0x00003433u, 0x00003459u, + 0x000200f8u, 0x00003459u, 0x000200f9u, 0x0000345bu, 0x000200f8u, 0x00003433u, 0x000300f7u, 0x0000343du, + 0x00000000u, 0x000400fau, 0x00002feau, 0x00003436u, 0x0000343bu, 0x000200f8u, 0x0000343bu, 0x000200f9u, + 0x0000343du, 0x000200f8u, 0x00003436u, 0x0007004fu, 0x000000f2u, 0x00003438u, 0x00007ba8u, 0x00007ba8u, + 0x00000001u, 0x00000000u, 0x00050082u, 0x000000f2u, 0x0000343au, 0x0000c21eu, 0x00003438u, 0x000200f9u, + 0x0000343du, 0x000200f8u, 0x0000343du, 0x000700f5u, 0x000000f2u, 0x00007d17u, 0x0000343au, 0x00003436u, + 0x00007ba8u, 0x0000343bu, 0x00040072u, 0x000001b1u, 0x0000343fu, 0x00007d17u, 0x00050082u, 0x00000013u, + 0x00003442u, 0x00007d1au, 0x00007c27u, 0x00050051u, 0x00000012u, 0x00003444u, 0x0000343fu, 0x00000000u, + 0x00070050u, 0x00000013u, 0x00003445u, 0x00003444u, 0x00003444u, 0x00003444u, 0x00003444u, 0x00050084u, + 0x00000013u, 0x00003446u, 0x00003442u, 0x00003445u, 0x00050082u, 0x00000013u, 0x00003449u, 0x00007d9bu, + 0x00007c27u, 0x00050051u, 0x00000012u, 0x0000344bu, 0x0000343fu, 0x00000001u, 0x00070050u, 0x00000013u, + 0x0000344cu, 0x0000344bu, 0x0000344bu, 0x0000344bu, 0x0000344bu, 0x00050084u, 0x00000013u, 0x0000344du, + 0x00003449u, 0x0000344cu, 0x00050080u, 0x00000013u, 0x0000344fu, 0x00003446u, 0x0000344du, 0x00050080u, + 0x00000013u, 0x00003452u, 0x0000344fu, 0x0000c221u, 0x000500c3u, 0x00000013u, 0x00003455u, 0x00003452u, + 0x0000c222u, 0x00050080u, 0x00000013u, 0x00003458u, 0x00003455u, 0x00007c27u, 0x000200f9u, 0x0000345bu, + 0x000200f8u, 0x0000345bu, 0x000700f5u, 0x00000013u, 0x00007ed7u, 0x00003458u, 0x0000343du, 0x00007c27u, + 0x00003459u, 0x000200f9u, 0x0000345cu, 0x000200f8u, 0x0000341fu, 0x00050080u, 0x00000013u, 0x00003422u, + 0x00007c27u, 0x00007d9bu, 0x00050080u, 0x00000013u, 0x00003424u, 0x00003422u, 0x00007d1au, 0x00050080u, + 0x00000013u, 0x00003426u, 0x00003424u, 0x00007e16u, 0x00050080u, 0x00000013u, 0x00003428u, 0x00003426u, + 0x0000c21bu, 0x000500c3u, 0x00000013u, 0x0000342au, 0x00003428u, 0x0000c21bu, 0x000200f9u, 0x0000345cu, + 0x000200f8u, 0x0000345cu, 0x000700f5u, 0x00000013u, 0x00007ed6u, 0x0000342au, 0x0000341fu, 0x00007ed7u, + 0x0000345bu, 0x000200f9u, 0x0000345du, 0x000200f8u, 0x000033aau, 0x000300f7u, 0x0000341cu, 0x00000000u, + 0x000400fau, 0x00002319u, 0x000033acu, 0x0000341au, 0x000200f8u, 0x0000341au, 0x000200f9u, 0x0000341cu, + 0x000200f8u, 0x000033acu, 0x000300f7u, 0x00003412u, 0x00000000u, 0x000400fau, 0x00002355u, 0x000033aeu, + 0x000033f6u, 0x000200f8u, 0x000033f6u, 0x000300f7u, 0x00003403u, 0x00000000u, 0x000400fau, 0x00002fe0u, + 0x000033fdu, 0x00003400u, 0x000200f8u, 0x00003400u, 0x0007004fu, 0x000001b1u, 0x00003402u, 0x00007c27u, + 0x00007c27u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00003403u, 0x000200f8u, 0x000033fdu, 0x0007004fu, + 0x000001b1u, 0x000033ffu, 0x00007e16u, 0x00007e16u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00003403u, + 0x000200f8u, 0x00003403u, 0x000700f5u, 0x000001b1u, 0x00007e94u, 0x000033ffu, 0x000033fdu, 0x00003402u, + 0x00003400u, 0x00050080u, 0x00000008u, 0x00003408u, 0x00002ffbu, 0x00002fb6u, 0x000500afu, 0x00000069u, + 0x00003409u, 0x00003408u, 0x0000115fu, 0x000300f7u, 0x00003410u, 0x00000000u, 0x000400fau, 0x00003409u, + 0x0000340au, 0x0000340du, 0x000200f8u, 0x0000340du, 0x0007004fu, 0x000001b1u, 0x0000340fu, 0x00007c27u, + 0x00007c27u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003410u, 0x000200f8u, 0x0000340au, 0x0007004fu, + 0x000001b1u, 0x0000340cu, 0x00007e16u, 0x00007e16u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003410u, + 0x000200f8u, 0x00003410u, 0x000700f5u, 0x000001b1u, 0x00007e98u, 0x0000340cu, 0x0000340au, 0x0000340fu, + 0x0000340du, 0x000200f9u, 0x00003412u, 0x000200f8u, 0x000033aeu, 0x00050050u, 0x000000f2u, 0x000033b3u, + 0x00002ffbu, 0x00002fb6u, 0x000500aau, 0x00000884u, 0x000033b4u, 0x000033b3u, 0x000013ffu, 0x00050051u, + 0x00000069u, 0x000033b5u, 0x000033b4u, 0x00000000u, 0x00050051u, 0x00000069u, 0x000033b6u, 0x000033b4u, + 0x00000001u, 0x00060050u, 0x00000368u, 0x000033b7u, 0x00002343u, 0x000033b5u, 0x000033b6u, 0x0004009bu, + 0x00000069u, 0x000033b8u, 0x000033b7u, 0x000300f7u, 0x000033d8u, 0x00000000u, 0x000400fau, 0x000033b8u, + 0x000033bau, 0x000033cau, 0x000200f8u, 0x000033cau, 0x0007004fu, 0x000001b1u, 0x000033d0u, 0x00007c27u, + 0x00007c27u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x000033d2u, 0x00007d1au, 0x00007d1au, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x000033d4u, 0x00007d9bu, 0x00007d9bu, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x000001b1u, 0x000033d6u, 0x00007e16u, 0x00007e16u, 0x00000000u, 0x00000001u, + 0x00050080u, 0x00000008u, 0x00004739u, 0x00002ffbu, 0x00002fb6u, 0x000500afu, 0x00000069u, 0x0000473bu, + 0x00004739u, 0x0000115fu, 0x00050050u, 0x00000884u, 0x0000473eu, 0x0000473bu, 0x0000473bu, 0x000600a9u, + 0x000001b1u, 0x0000473fu, 0x0000473eu, 0x000033d6u, 0x000033d0u, 0x000300f7u, 0x00004749u, 0x00000000u, + 0x000400fau, 0x0000473bu, 0x00004742u, 0x00004747u, 0x000200f8u, 0x00004747u, 0x000200f9u, 0x00004749u, + 0x000200f8u, 0x00004742u, 0x0007004fu, 0x000000f2u, 0x00004744u, 0x000033b3u, 0x000033b3u, 0x00000001u, + 0x00000000u, 0x00050082u, 0x000000f2u, 0x00004746u, 0x0000c21eu, 0x00004744u, 0x000200f9u, 0x00004749u, + 0x000200f8u, 0x00004749u, 0x000700f5u, 0x000000f2u, 0x00007e99u, 0x00004746u, 0x00004742u, 0x000033b3u, + 0x00004747u, 0x00040072u, 0x000001b1u, 0x0000474bu, 0x00007e99u, 0x00050082u, 0x000001b1u, 0x0000474eu, + 0x000033d2u, 0x0000473fu, 0x00050051u, 0x00000012u, 0x00004750u, 0x0000474bu, 0x00000000u, 0x00050050u, + 0x000001b1u, 0x00004751u, 0x00004750u, 0x00004750u, 0x00050084u, 0x000001b1u, 0x00004752u, 0x0000474eu, + 0x00004751u, 0x00050082u, 0x000001b1u, 0x00004755u, 0x000033d4u, 0x0000473fu, 0x00050051u, 0x00000012u, + 0x00004757u, 0x0000474bu, 0x00000001u, 0x00050050u, 0x000001b1u, 0x00004758u, 0x00004757u, 0x00004757u, + 0x00050084u, 0x000001b1u, 0x00004759u, 0x00004755u, 0x00004758u, 0x00050080u, 0x000001b1u, 0x0000475bu, + 0x00004752u, 0x00004759u, 0x00050080u, 0x000001b1u, 0x0000475eu, 0x0000475bu, 0x0000c21fu, 0x000500c3u, + 0x000001b1u, 0x00004761u, 0x0000475eu, 0x0000c220u, 0x00050080u, 0x000001b1u, 0x00004764u, 0x00004761u, + 0x0000473fu, 0x000200f9u, 0x000033d8u, 0x000200f8u, 0x000033bau, 0x0007004fu, 0x000001b1u, 0x000033bcu, + 0x00007c27u, 0x00007c27u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x000033beu, 0x00007d1au, + 0x00007d1au, 0x00000000u, 0x00000001u, 0x00050080u, 0x000001b1u, 0x000033bfu, 0x000033bcu, 0x000033beu, + 0x0007004fu, 0x000001b1u, 0x000033c1u, 0x00007e16u, 0x00007e16u, 0x00000000u, 0x00000001u, 0x00050080u, + 0x000001b1u, 0x000033c2u, 0x000033bfu, 0x000033c1u, 0x0007004fu, 0x000001b1u, 0x000033c4u, 0x00007d9bu, + 0x00007d9bu, 0x00000000u, 0x00000001u, 0x00050080u, 0x000001b1u, 0x000033c5u, 0x000033c2u, 0x000033c4u, + 0x00050080u, 0x000001b1u, 0x000033c7u, 0x000033c5u, 0x0000c21du, 0x000500c3u, 0x000001b1u, 0x000033c9u, + 0x000033c7u, 0x0000c21du, 0x000200f9u, 0x000033d8u, 0x000200f8u, 0x000033d8u, 0x000700f5u, 0x000001b1u, + 0x00007ea7u, 0x000033c9u, 0x000033bau, 0x00004764u, 0x00004749u, 0x000300f7u, 0x000033f5u, 0x00000000u, + 0x000400fau, 0x00002fdeu, 0x000033dau, 0x000033eau, 0x000200f8u, 0x000033eau, 0x0007004fu, 0x000001b1u, + 0x000033ecu, 0x00007c27u, 0x00007c27u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x000001b1u, 0x000033eeu, + 0x00007d1au, 0x00007d1au, 0x00000002u, 0x00000003u, 0x0007004fu, 0x000001b1u, 0x000033f0u, 0x00007d9bu, + 0x00007d9bu, 0x00000002u, 0x00000003u, 0x0007004fu, 0x000001b1u, 0x000033f2u, 0x00007e16u, 0x00007e16u, + 0x00000002u, 0x00000003u, 0x00050050u, 0x00000884u, 0x00004776u, 0x00002fe0u, 0x00002fe0u, 0x000600a9u, + 0x000001b1u, 0x00004777u, 0x00004776u, 0x000033f2u, 0x000033ecu, 0x000300f7u, 0x00004781u, 0x00000000u, + 0x000400fau, 0x00002fe0u, 0x0000477au, 0x0000477fu, 0x000200f8u, 0x0000477fu, 0x000200f9u, 0x00004781u, + 0x000200f8u, 0x0000477au, 0x0007004fu, 0x000000f2u, 0x0000477cu, 0x00007ba8u, 0x00007ba8u, 0x00000001u, + 0x00000000u, 0x00050082u, 0x000000f2u, 0x0000477eu, 0x0000c21eu, 0x0000477cu, 0x000200f9u, 0x00004781u, + 0x000200f8u, 0x00004781u, 0x000700f5u, 0x000000f2u, 0x00007ea4u, 0x0000477eu, 0x0000477au, 0x00007ba8u, + 0x0000477fu, 0x00040072u, 0x000001b1u, 0x00004783u, 0x00007ea4u, 0x00050082u, 0x000001b1u, 0x00004786u, + 0x000033eeu, 0x00004777u, 0x00050051u, 0x00000012u, 0x00004788u, 0x00004783u, 0x00000000u, 0x00050050u, + 0x000001b1u, 0x00004789u, 0x00004788u, 0x00004788u, 0x00050084u, 0x000001b1u, 0x0000478au, 0x00004786u, + 0x00004789u, 0x00050082u, 0x000001b1u, 0x0000478du, 0x000033f0u, 0x00004777u, 0x00050051u, 0x00000012u, + 0x0000478fu, 0x00004783u, 0x00000001u, 0x00050050u, 0x000001b1u, 0x00004790u, 0x0000478fu, 0x0000478fu, + 0x00050084u, 0x000001b1u, 0x00004791u, 0x0000478du, 0x00004790u, 0x00050080u, 0x000001b1u, 0x00004793u, + 0x0000478au, 0x00004791u, 0x00050080u, 0x000001b1u, 0x00004796u, 0x00004793u, 0x0000c21fu, 0x000500c3u, + 0x000001b1u, 0x00004799u, 0x00004796u, 0x0000c220u, 0x00050080u, 0x000001b1u, 0x0000479cu, 0x00004799u, + 0x00004777u, 0x000200f9u, 0x000033f5u, 0x000200f8u, 0x000033dau, 0x0007004fu, 0x000001b1u, 0x000033dcu, + 0x00007c27u, 0x00007c27u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x000001b1u, 0x000033deu, 0x00007d1au, + 0x00007d1au, 0x00000002u, 0x00000003u, 0x00050080u, 0x000001b1u, 0x000033dfu, 0x000033dcu, 0x000033deu, + 0x0007004fu, 0x000001b1u, 0x000033e1u, 0x00007e16u, 0x00007e16u, 0x00000002u, 0x00000003u, 0x00050080u, + 0x000001b1u, 0x000033e2u, 0x000033dfu, 0x000033e1u, 0x0007004fu, 0x000001b1u, 0x000033e4u, 0x00007d9bu, + 0x00007d9bu, 0x00000002u, 0x00000003u, 0x00050080u, 0x000001b1u, 0x000033e5u, 0x000033e2u, 0x000033e4u, + 0x00050080u, 0x000001b1u, 0x000033e7u, 0x000033e5u, 0x0000c21du, 0x000500c3u, 0x000001b1u, 0x000033e9u, + 0x000033e7u, 0x0000c21du, 0x000200f9u, 0x000033f5u, 0x000200f8u, 0x000033f5u, 0x000700f5u, 0x000001b1u, + 0x00007eaau, 0x000033e9u, 0x000033dau, 0x0000479cu, 0x00004781u, 0x000200f9u, 0x00003412u, 0x000200f8u, + 0x00003412u, 0x000700f5u, 0x000001b1u, 0x00007ea9u, 0x00007eaau, 0x000033f5u, 0x00007e94u, 0x00003410u, + 0x000700f5u, 0x000001b1u, 0x00007ea5u, 0x00007ea7u, 0x000033f5u, 0x00007e98u, 0x00003410u, 0x00050051u, + 0x00000012u, 0x00003415u, 0x00007ea5u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003416u, 0x00007ea5u, + 0x00000001u, 0x00050051u, 0x00000012u, 0x00003417u, 0x00007ea9u, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00003418u, 0x00007ea9u, 0x00000001u, 0x00070050u, 0x00000013u, 0x00003419u, 0x00003415u, 0x00003416u, + 0x00003417u, 0x00003418u, 0x000200f9u, 0x0000341cu, 0x000200f8u, 0x0000341cu, 0x000700f5u, 0x00000013u, + 0x00007ed5u, 0x00003419u, 0x00003412u, 0x00007c27u, 0x0000341au, 0x000200f9u, 0x0000345du, 0x000200f8u, + 0x0000345du, 0x000700f5u, 0x00000013u, 0x00007ed4u, 0x00007ed5u, 0x0000341cu, 0x00007ed6u, 0x0000345cu, + 0x000400a8u, 0x00000069u, 0x00003460u, 0x00002355u, 0x000500a7u, 0x00000069u, 0x00003463u, 0x00003460u, + 0x0000055eu, 0x000300f7u, 0x00003468u, 0x00000000u, 0x000400fau, 0x00003463u, 0x00003464u, 0x00003468u, + 0x000200f8u, 0x00003464u, 0x00040072u, 0x00000009u, 0x000047a6u, 0x00007ed4u, 0x000600cau, 0x00000009u, + 0x000047a7u, 0x000047a6u, 0x00000225u, 0x00000265u, 0x00050051u, 0x00000008u, 0x000047a9u, 0x000047a7u, + 0x00000002u, 0x00050051u, 0x00000012u, 0x000047abu, 0x00002ae2u, 0x00000000u, 0x00040072u, 0x00000008u, + 0x000047acu, 0x000047abu, 0x00050051u, 0x00000008u, 0x000047aeu, 0x000047a7u, 0x00000001u, 0x00050084u, + 0x00000008u, 0x000047afu, 0x000047acu, 0x000047aeu, 0x00050080u, 0x00000008u, 0x000047b0u, 0x000047afu, + 0x00000b03u, 0x000500c3u, 0x00000008u, 0x000047b1u, 0x000047b0u, 0x00000262u, 0x00050080u, 0x00000008u, + 0x000047b2u, 0x000047a9u, 0x000047b1u, 0x00050051u, 0x00000012u, 0x000047b6u, 0x00002ae2u, 0x00000001u, + 0x00040072u, 0x00000008u, 0x000047b7u, 0x000047b6u, 0x00050051u, 0x00000008u, 0x000047b9u, 0x000047a7u, + 0x00000000u, 0x00050084u, 0x00000008u, 0x000047bau, 0x000047b7u, 0x000047b9u, 0x00050051u, 0x00000012u, + 0x000047bcu, 0x00002ae2u, 0x00000002u, 0x00040072u, 0x00000008u, 0x000047bdu, 0x000047bcu, 0x00050084u, + 0x00000008u, 0x000047c0u, 0x000047bdu, 0x000047aeu, 0x00050080u, 0x00000008u, 0x000047c1u, 0x000047bau, + 0x000047c0u, 0x00050080u, 0x00000008u, 0x000047c2u, 0x000047c1u, 0x00000b03u, 0x000500c3u, 0x00000008u, + 0x000047c3u, 0x000047c2u, 0x00000262u, 0x00050080u, 0x00000008u, 0x000047c4u, 0x000047a9u, 0x000047c3u, + 0x00050051u, 0x00000012u, 0x000047c8u, 0x00002ae2u, 0x00000003u, 0x00040072u, 0x00000008u, 0x000047c9u, + 0x000047c8u, 0x00050084u, 0x00000008u, 0x000047ccu, 0x000047c9u, 0x000047b9u, 0x00050080u, 0x00000008u, + 0x000047cdu, 0x000047ccu, 0x00000b03u, 0x000500c3u, 0x00000008u, 0x000047ceu, 0x000047cdu, 0x00000262u, + 0x00050080u, 0x00000008u, 0x000047cfu, 0x000047a9u, 0x000047ceu, 0x00040072u, 0x00000012u, 0x000047d3u, + 0x000047b2u, 0x00040072u, 0x00000012u, 0x000047d5u, 0x000047c4u, 0x00040072u, 0x00000012u, 0x000047d7u, + 0x000047cfu, 0x00040072u, 0x00000012u, 0x000047d9u, 0x000047a9u, 0x00070050u, 0x00000013u, 0x000047dau, + 0x000047d3u, 0x000047d5u, 0x000047d7u, 0x000047d9u, 0x000200f9u, 0x00003468u, 0x000200f8u, 0x00003468u, + 0x000700f5u, 0x00000013u, 0x00007ed8u, 0x00007ed4u, 0x0000345du, 0x000047dau, 0x00003464u, 0x000200f9u, + 0x0000242fu, 0x000200f8u, 0x0000242fu, 0x000700f5u, 0x00000013u, 0x0000b920u, 0x00007e32u, 0x0000241au, + 0x00007e16u, 0x00003468u, 0x000700f5u, 0x00000013u, 0x0000b7feu, 0x00007db7u, 0x0000241au, 0x00007d9bu, + 0x00003468u, 0x000700f5u, 0x00000013u, 0x0000b6dcu, 0x00007d36u, 0x0000241au, 0x00007d1au, 0x00003468u, + 0x000700f5u, 0x00000013u, 0x0000b5bau, 0x00007c43u, 0x0000241au, 0x00007c27u, 0x00003468u, 0x000700f5u, + 0x00000013u, 0x000081f2u, 0x000081ffu, 0x0000241au, 0x00007ed8u, 0x00003468u, 0x000300f7u, 0x0000247bu, + 0x00000000u, 0x000400fau, 0x0000234cu, 0x00002431u, 0x0000247bu, 0x000200f8u, 0x00002431u, 0x00050080u, + 0x00000008u, 0x0000243au, 0x000022ecu, 0x0000022fu, 0x00050080u, 0x00000008u, 0x0000243bu, 0x000022e7u, + 0x0000243au, 0x00070041u, 0x00000697u, 0x0000243cu, 0x000002e0u, 0x00000225u, 0x0000243bu, 0x00000262u, + 0x0004003du, 0x00000011u, 0x0000243du, 0x0000243cu, 0x00040071u, 0x00000006u, 0x0000243eu, 0x0000243du, + 0x000500abu, 0x00000069u, 0x0000243fu, 0x0000243eu, 0x00000332u, 0x00040072u, 0x00000008u, 0x00002442u, + 0x00002562u, 0x000500afu, 0x00000069u, 0x00002443u, 0x00002442u, 0x00000262u, 0x000600a9u, 0x00000008u, + 0x0000c250u, 0x00002369u, 0x00002560u, 0x0000255eu, 0x000500aau, 0x00000069u, 0x0000244eu, 0x00007a8bu, + 0x0000c250u, 0x000500a7u, 0x00000069u, 0x00002451u, 0x0000244eu, 0x00002443u, 0x000500a7u, 0x00000069u, + 0x00002453u, 0x00002451u, 0x0000243fu, 0x000300f7u, 0x00002479u, 0x00000000u, 0x000400fau, 0x00002453u, + 0x00002454u, 0x0000246eu, 0x000200f8u, 0x0000246eu, 0x00050084u, 0x00000008u, 0x00002471u, 0x000023d6u, + 0x0000088bu, 0x00050080u, 0x00000008u, 0x00002472u, 0x000023d4u, 0x00002471u, 0x00060050u, 0x00000044u, + 0x00004876u, 0x00002472u, 0x00002472u, 0x00002472u, 0x00050084u, 0x00000044u, 0x00004877u, 0x00002b4du, + 0x00004876u, 0x00050080u, 0x00000044u, 0x00004878u, 0x00002b47u, 0x00004877u, 0x000500c3u, 0x00000044u, + 0x0000487bu, 0x00004878u, 0x0000c20eu, 0x000300f7u, 0x00004885u, 0x00000000u, 0x000400fau, 0x00002322u, + 0x0000487du, 0x00004882u, 0x000200f8u, 0x00004882u, 0x0007004fu, 0x000000f2u, 0x00004910u, 0x0000487bu, + 0x0000487bu, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004885u, 0x000200f8u, 0x0000487du, 0x00050051u, + 0x00000008u, 0x00004893u, 0x0000487bu, 0x00000002u, 0x000500b3u, 0x00000069u, 0x00004895u, 0x00004893u, + 0x00000225u, 0x000500c7u, 0x00000008u, 0x00004897u, 0x00004893u, 0x00000c1du, 0x0006000cu, 0x00000008u, + 0x000048f4u, 0x00000001u, 0x0000004au, 0x00004897u, 0x00050082u, 0x00000008u, 0x000048f5u, 0x00000274u, + 0x000048f4u, 0x0007000cu, 0x00000008u, 0x000048f6u, 0x00000001u, 0x00000027u, 0x000048f5u, 0x00000274u, + 0x000500c4u, 0x00000008u, 0x000048f9u, 0x00004897u, 0x000048f6u, 0x000500c7u, 0x00000008u, 0x000048fau, + 0x000048f9u, 0x00000b39u, 0x000500c7u, 0x00000008u, 0x000048fcu, 0x000048fau, 0x00000363u, 0x000500c3u, + 0x00000008u, 0x000048feu, 0x000048fau, 0x00000262u, 0x0003003eu, 0x000048efu, 0x00000bfdu, 0x00050041u, + 0x000001b2u, 0x000048ffu, 0x000048efu, 0x000048feu, 0x0004003du, 0x000001b1u, 0x00004900u, 0x000048ffu, + 0x00040072u, 0x000000f2u, 0x00004901u, 0x00004900u, 0x00050051u, 0x00000008u, 0x00004903u, 0x00004901u, + 0x00000001u, 0x00050084u, 0x00000008u, 0x00004905u, 0x00004903u, 0x000048fcu, 0x000500c3u, 0x00000008u, + 0x00004906u, 0x00004905u, 0x00000268u, 0x00050051u, 0x00000008u, 0x00004908u, 0x00004901u, 0x00000000u, + 0x00050080u, 0x00000008u, 0x00004909u, 0x00004906u, 0x00004908u, 0x0007004fu, 0x000000f2u, 0x0000489du, + 0x0000487bu, 0x0000487bu, 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x000048a0u, 0x00004909u, + 0x00004909u, 0x00050084u, 0x000000f2u, 0x000048a1u, 0x0000489du, 0x000048a0u, 0x000500c3u, 0x00000008u, + 0x000048a3u, 0x00000c30u, 0x000048f6u, 0x0004007eu, 0x00000008u, 0x000048a4u, 0x000048a3u, 0x000500c7u, + 0x00000008u, 0x000048a5u, 0x00000c2fu, 0x000048a4u, 0x00050050u, 0x000000f2u, 0x000048a8u, 0x000048a5u, + 0x000048a5u, 0x000500c7u, 0x000000f2u, 0x000048a9u, 0x000048a1u, 0x000048a8u, 0x000500abu, 0x00000069u, + 0x000048abu, 0x000048f6u, 0x00000274u, 0x000300f7u, 0x000048b6u, 0x00000000u, 0x000400fau, 0x000048abu, + 0x000048acu, 0x000048b2u, 0x000200f8u, 0x000048b2u, 0x000500c4u, 0x000000f2u, 0x000048b5u, 0x000048a1u, + 0x0000c212u, 0x000200f9u, 0x000048b6u, 0x000200f8u, 0x000048acu, 0x00050082u, 0x00000008u, 0x000048afu, + 0x00000271u, 0x000048f6u, 0x00050050u, 0x000000f2u, 0x000048b0u, 0x000048afu, 0x000048afu, 0x000500c3u, + 0x000000f2u, 0x000048b1u, 0x000048a1u, 0x000048b0u, 0x000200f9u, 0x000048b6u, 0x000200f8u, 0x000048b6u, + 0x000700f5u, 0x000000f2u, 0x00007fffu, 0x000048b1u, 0x000048acu, 0x000048b5u, 0x000048b2u, 0x000700f5u, + 0x000000f2u, 0x00007ffdu, 0x000048b1u, 0x000048acu, 0x000048a1u, 0x000048b2u, 0x000500abu, 0x00000884u, + 0x000048b8u, 0x000048a9u, 0x00000c49u, 0x0004009au, 0x00000069u, 0x000048b9u, 0x000048b8u, 0x000300f7u, + 0x000048e5u, 0x00000000u, 0x000400fau, 0x000048b9u, 0x000048bau, 0x000048e5u, 0x000200f8u, 0x000048bau, + 0x00050051u, 0x00000008u, 0x000048bcu, 0x000048a9u, 0x00000000u, 0x000500abu, 0x00000069u, 0x000048beu, + 0x000048bcu, 0x000048a5u, 0x000300f7u, 0x000048c3u, 0x00000000u, 0x000400fau, 0x000048beu, 0x000048bfu, + 0x000048c3u, 0x000200f8u, 0x000048bfu, 0x000500abu, 0x00000069u, 0x000048c2u, 0x000048bcu, 0x00000225u, + 0x000200f9u, 0x000048c3u, 0x000200f8u, 0x000048c3u, 0x000700f5u, 0x00000069u, 0x000048c4u, 0x000048beu, + 0x000048bau, 0x000048c2u, 0x000048bfu, 0x000300f7u, 0x000048cfu, 0x00000000u, 0x000400fau, 0x000048c4u, + 0x000048c5u, 0x000048cfu, 0x000200f8u, 0x000048c5u, 0x00050051u, 0x00000008u, 0x000048c7u, 0x00007ffdu, + 0x00000000u, 0x000500c7u, 0x00000008u, 0x000048c8u, 0x000048c7u, 0x00000c30u, 0x000500aau, 0x00000069u, + 0x000048c9u, 0x000048c8u, 0x00000225u, 0x000300f7u, 0x000048ceu, 0x00000000u, 0x000400fau, 0x000048c9u, + 0x000048cau, 0x000048ccu, 0x000200f8u, 0x000048ccu, 0x00060052u, 0x000000f2u, 0x000077e1u, 0x00000c62u, + 0x00007fffu, 0x00000000u, 0x000200f9u, 0x000048ceu, 0x000200f8u, 0x000048cau, 0x00060052u, 0x000000f2u, + 0x000077dfu, 0x00000c1du, 0x00007fffu, 0x00000000u, 0x000200f9u, 0x000048ceu, 0x000200f8u, 0x000048ceu, + 0x000700f5u, 0x000000f2u, 0x00008005u, 0x000077dfu, 0x000048cau, 0x000077e1u, 0x000048ccu, 0x000200f9u, + 0x000048cfu, 0x000200f8u, 0x000048cfu, 0x000700f5u, 0x000000f2u, 0x00008004u, 0x00007fffu, 0x000048c3u, + 0x00008005u, 0x000048ceu, 0x00050051u, 0x00000008u, 0x000048d1u, 0x000048a9u, 0x00000001u, 0x000500abu, + 0x00000069u, 0x000048d3u, 0x000048d1u, 0x000048a5u, 0x000300f7u, 0x000048d8u, 0x00000000u, 0x000400fau, + 0x000048d3u, 0x000048d4u, 0x000048d8u, 0x000200f8u, 0x000048d4u, 0x000500abu, 0x00000069u, 0x000048d7u, + 0x000048d1u, 0x00000225u, 0x000200f9u, 0x000048d8u, 0x000200f8u, 0x000048d8u, 0x000700f5u, 0x00000069u, + 0x000048d9u, 0x000048d3u, 0x000048cfu, 0x000048d7u, 0x000048d4u, 0x000300f7u, 0x000048e4u, 0x00000000u, + 0x000400fau, 0x000048d9u, 0x000048dau, 0x000048e4u, 0x000200f8u, 0x000048dau, 0x00050051u, 0x00000008u, + 0x000048dcu, 0x00007ffdu, 0x00000001u, 0x000500c7u, 0x00000008u, 0x000048ddu, 0x000048dcu, 0x00000c30u, + 0x000500aau, 0x00000069u, 0x000048deu, 0x000048ddu, 0x00000225u, 0x000300f7u, 0x000048e3u, 0x00000000u, + 0x000400fau, 0x000048deu, 0x000048dfu, 0x000048e1u, 0x000200f8u, 0x000048e1u, 0x00060052u, 0x000000f2u, + 0x000077e8u, 0x00000c62u, 0x00008004u, 0x00000001u, 0x000200f9u, 0x000048e3u, 0x000200f8u, 0x000048dfu, + 0x00060052u, 0x000000f2u, 0x000077e6u, 0x00000c1du, 0x00008004u, 0x00000001u, 0x000200f9u, 0x000048e3u, + 0x000200f8u, 0x000048e3u, 0x000700f5u, 0x000000f2u, 0x00008009u, 0x000077e6u, 0x000048dfu, 0x000077e8u, + 0x000048e1u, 0x000200f9u, 0x000048e4u, 0x000200f8u, 0x000048e4u, 0x000700f5u, 0x000000f2u, 0x00008008u, + 0x00008004u, 0x000048d8u, 0x00008009u, 0x000048e3u, 0x000200f9u, 0x000048e5u, 0x000200f8u, 0x000048e5u, + 0x000700f5u, 0x000000f2u, 0x00008007u, 0x00007fffu, 0x000048b6u, 0x00008008u, 0x000048e4u, 0x00050050u, + 0x00000884u, 0x0000c251u, 0x00004895u, 0x00004895u, 0x000600a9u, 0x000000f2u, 0x0000c252u, 0x0000c251u, + 0x00000c7cu, 0x00008007u, 0x0008000cu, 0x000000f2u, 0x000048eau, 0x00000001u, 0x0000002du, 0x0000c252u, + 0x00000c7fu, 0x00000c80u, 0x000200f9u, 0x00004885u, 0x000200f8u, 0x00004885u, 0x000700f5u, 0x000000f2u, + 0x0000800au, 0x000048eau, 0x000048e5u, 0x00004910u, 0x00004882u, 0x000200f9u, 0x00002479u, 0x000200f8u, + 0x00002454u, 0x00070041u, 0x00001f43u, 0x0000245fu, 0x000002e0u, 0x00000225u, 0x0000243bu, 0x0000022fu, + 0x0004003du, 0x00000009u, 0x00002460u, 0x0000245fu, 0x0008004fu, 0x00000044u, 0x00002461u, 0x00002460u, + 0x00002460u, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c3u, 0x00000044u, 0x00002463u, 0x00002461u, + 0x0000c20eu, 0x000300f7u, 0x0000246du, 0x00000000u, 0x000400fau, 0x00002322u, 0x00002465u, 0x0000246au, + 0x000200f8u, 0x0000246au, 0x0007004fu, 0x000000f2u, 0x00004864u, 0x00002463u, 0x00002463u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x0000246du, 0x000200f8u, 0x00002465u, 0x00050051u, 0x00000008u, 0x000047e7u, + 0x00002463u, 0x00000002u, 0x000500b3u, 0x00000069u, 0x000047e9u, 0x000047e7u, 0x00000225u, 0x000500c7u, + 0x00000008u, 0x000047ebu, 0x000047e7u, 0x00000c1du, 0x0006000cu, 0x00000008u, 0x00004848u, 0x00000001u, + 0x0000004au, 0x000047ebu, 0x00050082u, 0x00000008u, 0x00004849u, 0x00000274u, 0x00004848u, 0x0007000cu, + 0x00000008u, 0x0000484au, 0x00000001u, 0x00000027u, 0x00004849u, 0x00000274u, 0x000500c4u, 0x00000008u, + 0x0000484du, 0x000047ebu, 0x0000484au, 0x000500c7u, 0x00000008u, 0x0000484eu, 0x0000484du, 0x00000b39u, + 0x000500c7u, 0x00000008u, 0x00004850u, 0x0000484eu, 0x00000363u, 0x000500c3u, 0x00000008u, 0x00004852u, + 0x0000484eu, 0x00000262u, 0x0003003eu, 0x00004843u, 0x00000bfdu, 0x00050041u, 0x000001b2u, 0x00004853u, + 0x00004843u, 0x00004852u, 0x0004003du, 0x000001b1u, 0x00004854u, 0x00004853u, 0x00040072u, 0x000000f2u, + 0x00004855u, 0x00004854u, 0x00050051u, 0x00000008u, 0x00004857u, 0x00004855u, 0x00000001u, 0x00050084u, + 0x00000008u, 0x00004859u, 0x00004857u, 0x00004850u, 0x000500c3u, 0x00000008u, 0x0000485au, 0x00004859u, + 0x00000268u, 0x00050051u, 0x00000008u, 0x0000485cu, 0x00004855u, 0x00000000u, 0x00050080u, 0x00000008u, + 0x0000485du, 0x0000485au, 0x0000485cu, 0x0007004fu, 0x000000f2u, 0x000047f1u, 0x00002463u, 0x00002463u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x000047f4u, 0x0000485du, 0x0000485du, 0x00050084u, + 0x000000f2u, 0x000047f5u, 0x000047f1u, 0x000047f4u, 0x000500c3u, 0x00000008u, 0x000047f7u, 0x00000c30u, + 0x0000484au, 0x0004007eu, 0x00000008u, 0x000047f8u, 0x000047f7u, 0x000500c7u, 0x00000008u, 0x000047f9u, + 0x00000c2fu, 0x000047f8u, 0x00050050u, 0x000000f2u, 0x000047fcu, 0x000047f9u, 0x000047f9u, 0x000500c7u, + 0x000000f2u, 0x000047fdu, 0x000047f5u, 0x000047fcu, 0x000500abu, 0x00000069u, 0x000047ffu, 0x0000484au, + 0x00000274u, 0x000300f7u, 0x0000480au, 0x00000000u, 0x000400fau, 0x000047ffu, 0x00004800u, 0x00004806u, + 0x000200f8u, 0x00004806u, 0x000500c4u, 0x000000f2u, 0x00004809u, 0x000047f5u, 0x0000c212u, 0x000200f9u, + 0x0000480au, 0x000200f8u, 0x00004800u, 0x00050082u, 0x00000008u, 0x00004803u, 0x00000271u, 0x0000484au, + 0x00050050u, 0x000000f2u, 0x00004804u, 0x00004803u, 0x00004803u, 0x000500c3u, 0x000000f2u, 0x00004805u, + 0x000047f5u, 0x00004804u, 0x000200f9u, 0x0000480au, 0x000200f8u, 0x0000480au, 0x000700f5u, 0x000000f2u, + 0x0000800fu, 0x00004805u, 0x00004800u, 0x00004809u, 0x00004806u, 0x000700f5u, 0x000000f2u, 0x0000800du, + 0x00004805u, 0x00004800u, 0x000047f5u, 0x00004806u, 0x000500abu, 0x00000884u, 0x0000480cu, 0x000047fdu, + 0x00000c49u, 0x0004009au, 0x00000069u, 0x0000480du, 0x0000480cu, 0x000300f7u, 0x00004839u, 0x00000000u, + 0x000400fau, 0x0000480du, 0x0000480eu, 0x00004839u, 0x000200f8u, 0x0000480eu, 0x00050051u, 0x00000008u, + 0x00004810u, 0x000047fdu, 0x00000000u, 0x000500abu, 0x00000069u, 0x00004812u, 0x00004810u, 0x000047f9u, + 0x000300f7u, 0x00004817u, 0x00000000u, 0x000400fau, 0x00004812u, 0x00004813u, 0x00004817u, 0x000200f8u, + 0x00004813u, 0x000500abu, 0x00000069u, 0x00004816u, 0x00004810u, 0x00000225u, 0x000200f9u, 0x00004817u, + 0x000200f8u, 0x00004817u, 0x000700f5u, 0x00000069u, 0x00004818u, 0x00004812u, 0x0000480eu, 0x00004816u, + 0x00004813u, 0x000300f7u, 0x00004823u, 0x00000000u, 0x000400fau, 0x00004818u, 0x00004819u, 0x00004823u, + 0x000200f8u, 0x00004819u, 0x00050051u, 0x00000008u, 0x0000481bu, 0x0000800du, 0x00000000u, 0x000500c7u, + 0x00000008u, 0x0000481cu, 0x0000481bu, 0x00000c30u, 0x000500aau, 0x00000069u, 0x0000481du, 0x0000481cu, + 0x00000225u, 0x000300f7u, 0x00004822u, 0x00000000u, 0x000400fau, 0x0000481du, 0x0000481eu, 0x00004820u, + 0x000200f8u, 0x00004820u, 0x00060052u, 0x000000f2u, 0x000077ceu, 0x00000c62u, 0x0000800fu, 0x00000000u, + 0x000200f9u, 0x00004822u, 0x000200f8u, 0x0000481eu, 0x00060052u, 0x000000f2u, 0x000077ccu, 0x00000c1du, + 0x0000800fu, 0x00000000u, 0x000200f9u, 0x00004822u, 0x000200f8u, 0x00004822u, 0x000700f5u, 0x000000f2u, + 0x00008015u, 0x000077ccu, 0x0000481eu, 0x000077ceu, 0x00004820u, 0x000200f9u, 0x00004823u, 0x000200f8u, + 0x00004823u, 0x000700f5u, 0x000000f2u, 0x00008014u, 0x0000800fu, 0x00004817u, 0x00008015u, 0x00004822u, + 0x00050051u, 0x00000008u, 0x00004825u, 0x000047fdu, 0x00000001u, 0x000500abu, 0x00000069u, 0x00004827u, + 0x00004825u, 0x000047f9u, 0x000300f7u, 0x0000482cu, 0x00000000u, 0x000400fau, 0x00004827u, 0x00004828u, + 0x0000482cu, 0x000200f8u, 0x00004828u, 0x000500abu, 0x00000069u, 0x0000482bu, 0x00004825u, 0x00000225u, + 0x000200f9u, 0x0000482cu, 0x000200f8u, 0x0000482cu, 0x000700f5u, 0x00000069u, 0x0000482du, 0x00004827u, + 0x00004823u, 0x0000482bu, 0x00004828u, 0x000300f7u, 0x00004838u, 0x00000000u, 0x000400fau, 0x0000482du, + 0x0000482eu, 0x00004838u, 0x000200f8u, 0x0000482eu, 0x00050051u, 0x00000008u, 0x00004830u, 0x0000800du, + 0x00000001u, 0x000500c7u, 0x00000008u, 0x00004831u, 0x00004830u, 0x00000c30u, 0x000500aau, 0x00000069u, + 0x00004832u, 0x00004831u, 0x00000225u, 0x000300f7u, 0x00004837u, 0x00000000u, 0x000400fau, 0x00004832u, + 0x00004833u, 0x00004835u, 0x000200f8u, 0x00004835u, 0x00060052u, 0x000000f2u, 0x000077d5u, 0x00000c62u, + 0x00008014u, 0x00000001u, 0x000200f9u, 0x00004837u, 0x000200f8u, 0x00004833u, 0x00060052u, 0x000000f2u, + 0x000077d3u, 0x00000c1du, 0x00008014u, 0x00000001u, 0x000200f9u, 0x00004837u, 0x000200f8u, 0x00004837u, + 0x000700f5u, 0x000000f2u, 0x00008019u, 0x000077d3u, 0x00004833u, 0x000077d5u, 0x00004835u, 0x000200f9u, + 0x00004838u, 0x000200f8u, 0x00004838u, 0x000700f5u, 0x000000f2u, 0x00008018u, 0x00008014u, 0x0000482cu, + 0x00008019u, 0x00004837u, 0x000200f9u, 0x00004839u, 0x000200f8u, 0x00004839u, 0x000700f5u, 0x000000f2u, + 0x00008017u, 0x0000800fu, 0x0000480au, 0x00008018u, 0x00004838u, 0x00050050u, 0x00000884u, 0x0000c253u, + 0x000047e9u, 0x000047e9u, 0x000600a9u, 0x000000f2u, 0x0000c254u, 0x0000c253u, 0x00000c7cu, 0x00008017u, + 0x0008000cu, 0x000000f2u, 0x0000483eu, 0x00000001u, 0x0000002du, 0x0000c254u, 0x00000c7fu, 0x00000c80u, + 0x000200f9u, 0x0000246du, 0x000200f8u, 0x0000246du, 0x000700f5u, 0x000000f2u, 0x000081f0u, 0x0000483eu, + 0x00004839u, 0x00004864u, 0x0000246au, 0x000200f9u, 0x00002479u, 0x000200f8u, 0x00002479u, 0x000700f5u, + 0x000000f2u, 0x000081efu, 0x000081f0u, 0x0000246du, 0x0000800au, 0x00004885u, 0x000200f9u, 0x0000247bu, + 0x000200f8u, 0x0000247bu, 0x000700f5u, 0x000000f2u, 0x0000818bu, 0x00007b0cu, 0x0000242fu, 0x000081efu, + 0x00002479u, 0x000600a9u, 0x00000006u, 0x0000c255u, 0x0000234cu, 0x00007b90u, 0x00008128u, 0x000600a9u, + 0x00000069u, 0x0000c256u, 0x0000234cu, 0x0000055eu, 0x00002349u, 0x000300f7u, 0x0000249du, 0x00000000u, + 0x000400fau, 0x0000c256u, 0x0000247du, 0x0000249du, 0x000200f8u, 0x0000247du, 0x000400a8u, 0x00000069u, + 0x00002480u, 0x00002358u, 0x000500a7u, 0x00000069u, 0x00002481u, 0x00002352u, 0x00002480u, 0x000300f7u, + 0x0000249cu, 0x00000000u, 0x000400fau, 0x00002481u, 0x00002482u, 0x00002487u, 0x000200f8u, 0x00002487u, + 0x00080041u, 0x00000676u, 0x0000248au, 0x00000a1fu, 0x00000225u, 0x000020dcu, 0x00000232u, 0x0000c255u, + 0x0004003du, 0x0000000fu, 0x0000248bu, 0x0000248au, 0x00040071u, 0x00000006u, 0x0000248cu, 0x0000248bu, + 0x00060041u, 0x000002b9u, 0x00004952u, 0x000002b7u, 0x00000225u, 0x0000248cu, 0x0004003du, 0x000002b3u, + 0x00004953u, 0x00004952u, 0x00050051u, 0x00000006u, 0x00004954u, 0x00004953u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x00004956u, 0x00004953u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00004958u, 0x00004953u, + 0x00000002u, 0x00050051u, 0x00000006u, 0x0000495au, 0x00004953u, 0x00000003u, 0x00050051u, 0x00000006u, + 0x0000495cu, 0x00004953u, 0x00000004u, 0x00050051u, 0x00000006u, 0x0000495eu, 0x00004953u, 0x00000005u, + 0x00050051u, 0x0000000fu, 0x00004960u, 0x00004953u, 0x00000006u, 0x00050051u, 0x0000000fu, 0x00004962u, + 0x00004953u, 0x00000007u, 0x00050051u, 0x0000000fu, 0x00004964u, 0x00004953u, 0x00000008u, 0x00050051u, + 0x0000000fu, 0x00004966u, 0x00004953u, 0x00000009u, 0x00050051u, 0x0000000fu, 0x00004968u, 0x00004953u, + 0x0000000au, 0x00050051u, 0x0000000fu, 0x0000496au, 0x00004953u, 0x0000000bu, 0x00050051u, 0x0000000fu, + 0x0000496cu, 0x00004953u, 0x0000000cu, 0x00050051u, 0x0000000fu, 0x0000496eu, 0x00004953u, 0x0000000du, + 0x00040071u, 0x00000006u, 0x00004acau, 0x0000496eu, 0x0004007cu, 0x00000008u, 0x00004acbu, 0x00004acau, + 0x000500c7u, 0x00000008u, 0x00004accu, 0x00004acbu, 0x0000022fu, 0x000500abu, 0x00000069u, 0x00004acdu, + 0x00004accu, 0x00000225u, 0x0004007cu, 0x00000008u, 0x00004ad0u, 0x00004954u, 0x0004007cu, 0x00000008u, + 0x00004ad3u, 0x00004956u, 0x00040071u, 0x00000006u, 0x00004ad6u, 0x00004968u, 0x0004007cu, 0x00000008u, + 0x00004ad7u, 0x00004ad6u, 0x00050051u, 0x00000008u, 0x00004ad9u, 0x0000818bu, 0x00000000u, 0x0008000cu, + 0x00000008u, 0x00004fb4u, 0x00000001u, 0x0000002du, 0x00004ad9u, 0x00000c62u, 0x00000c1du, 0x000500b1u, + 0x00000069u, 0x00004fb6u, 0x00004ad7u, 0x0000026bu, 0x000300f7u, 0x00004fc2u, 0x00000000u, 0x000400fau, + 0x00004fb6u, 0x00004fb7u, 0x00004fbbu, 0x000200f8u, 0x00004fbbu, 0x00050082u, 0x00000008u, 0x00004fbdu, + 0x0000115fu, 0x00004ad7u, 0x000500c4u, 0x00000008u, 0x00004fbfu, 0x00004fb4u, 0x00004fbdu, 0x000500c3u, + 0x00000008u, 0x00004fc1u, 0x00004fbfu, 0x00000559u, 0x000200f9u, 0x00004fc2u, 0x000200f8u, 0x00004fb7u, + 0x000500c3u, 0x00000008u, 0x00004fbau, 0x00004fb4u, 0x00004ad7u, 0x000200f9u, 0x00004fc2u, 0x000200f8u, + 0x00004fc2u, 0x000700f5u, 0x00000008u, 0x00008240u, 0x00004fbau, 0x00004fb7u, 0x00004fc1u, 0x00004fbbu, + 0x000300f7u, 0x00004fdeu, 0x00000000u, 0x000400fau, 0x00004acdu, 0x00004fc4u, 0x00004fd9u, 0x000200f8u, + 0x00004fd9u, 0x000500c4u, 0x00000008u, 0x00004fdbu, 0x00004ad0u, 0x00000235u, 0x00050082u, 0x00000008u, + 0x00004fddu, 0x00008240u, 0x00004fdbu, 0x000200f9u, 0x00004fdeu, 0x000200f8u, 0x00004fc4u, 0x000500c3u, + 0x00000008u, 0x00004fc6u, 0x00008240u, 0x00000235u, 0x000500afu, 0x00000069u, 0x00004fc8u, 0x00004fc6u, + 0x00004ad3u, 0x000300f7u, 0x00004fd8u, 0x00000000u, 0x000400fau, 0x00004fc8u, 0x00004fcau, 0x00004fd2u, + 0x000200f8u, 0x00004fd2u, 0x000500c4u, 0x00000008u, 0x00004fd5u, 0x00004ad0u, 0x00000235u, 0x00050082u, + 0x00000008u, 0x00004fd6u, 0x00008240u, 0x00004fd5u, 0x0007000cu, 0x00000008u, 0x00004fd7u, 0x00000001u, + 0x0000002au, 0x00004fd6u, 0x00000225u, 0x000200f9u, 0x00004fd8u, 0x000200f8u, 0x00004fcau, 0x000500c3u, + 0x00000008u, 0x00004fccu, 0x00004ad3u, 0x00000232u, 0x000500c3u, 0x00000008u, 0x00004fceu, 0x00004ad0u, + 0x00000232u, 0x00050082u, 0x00000008u, 0x00004fcfu, 0x00004fccu, 0x00004fceu, 0x000500c7u, 0x00000008u, + 0x00004fd0u, 0x00004fcfu, 0x00001176u, 0x000500c4u, 0x00000008u, 0x00004fd1u, 0x00004fd0u, 0x0000023bu, + 0x000200f9u, 0x00004fd8u, 0x000200f8u, 0x00004fd8u, 0x000700f5u, 0x00000008u, 0x00008242u, 0x00004fd1u, + 0x00004fcau, 0x00004fd7u, 0x00004fd2u, 0x000200f9u, 0x00004fdeu, 0x000200f8u, 0x00004fdeu, 0x000700f5u, + 0x00000008u, 0x00008241u, 0x00008242u, 0x00004fd8u, 0x00004fddu, 0x00004fd9u, 0x000500c7u, 0x00000008u, + 0x00004ae0u, 0x00004acbu, 0x00000238u, 0x000500abu, 0x00000069u, 0x00004ae1u, 0x00004ae0u, 0x00000225u, + 0x0004007cu, 0x00000008u, 0x00004ae4u, 0x00004958u, 0x0004007cu, 0x00000008u, 0x00004ae7u, 0x0000495au, + 0x00040071u, 0x00000006u, 0x00004aeau, 0x0000496cu, 0x0004007cu, 0x00000008u, 0x00004aebu, 0x00004aeau, + 0x00050051u, 0x00000008u, 0x00004aedu, 0x0000818bu, 0x00000001u, 0x0008000cu, 0x00000008u, 0x00004fe4u, + 0x00000001u, 0x0000002du, 0x00004aedu, 0x00000c62u, 0x00000c1du, 0x000500b1u, 0x00000069u, 0x00004fe6u, + 0x00004aebu, 0x0000026bu, 0x000300f7u, 0x00004ff2u, 0x00000000u, 0x000400fau, 0x00004fe6u, 0x00004fe7u, + 0x00004febu, 0x000200f8u, 0x00004febu, 0x00050082u, 0x00000008u, 0x00004fedu, 0x0000115fu, 0x00004aebu, + 0x000500c4u, 0x00000008u, 0x00004fefu, 0x00004fe4u, 0x00004fedu, 0x000500c3u, 0x00000008u, 0x00004ff1u, + 0x00004fefu, 0x00000559u, 0x000200f9u, 0x00004ff2u, 0x000200f8u, 0x00004fe7u, 0x000500c3u, 0x00000008u, + 0x00004feau, 0x00004fe4u, 0x00004aebu, 0x000200f9u, 0x00004ff2u, 0x000200f8u, 0x00004ff2u, 0x000700f5u, + 0x00000008u, 0x00008246u, 0x00004feau, 0x00004fe7u, 0x00004ff1u, 0x00004febu, 0x000300f7u, 0x0000500eu, + 0x00000000u, 0x000400fau, 0x00004ae1u, 0x00004ff4u, 0x00005009u, 0x000200f8u, 0x00005009u, 0x000500c4u, + 0x00000008u, 0x0000500bu, 0x00004ae4u, 0x00000235u, 0x00050082u, 0x00000008u, 0x0000500du, 0x00008246u, + 0x0000500bu, 0x000200f9u, 0x0000500eu, 0x000200f8u, 0x00004ff4u, 0x000500c3u, 0x00000008u, 0x00004ff6u, + 0x00008246u, 0x00000235u, 0x000500afu, 0x00000069u, 0x00004ff8u, 0x00004ff6u, 0x00004ae7u, 0x000300f7u, + 0x00005008u, 0x00000000u, 0x000400fau, 0x00004ff8u, 0x00004ffau, 0x00005002u, 0x000200f8u, 0x00005002u, + 0x000500c4u, 0x00000008u, 0x00005005u, 0x00004ae4u, 0x00000235u, 0x00050082u, 0x00000008u, 0x00005006u, + 0x00008246u, 0x00005005u, 0x0007000cu, 0x00000008u, 0x00005007u, 0x00000001u, 0x0000002au, 0x00005006u, + 0x00000225u, 0x000200f9u, 0x00005008u, 0x000200f8u, 0x00004ffau, 0x000500c3u, 0x00000008u, 0x00004ffcu, + 0x00004ae7u, 0x00000232u, 0x000500c3u, 0x00000008u, 0x00004ffeu, 0x00004ae4u, 0x00000232u, 0x00050082u, + 0x00000008u, 0x00004fffu, 0x00004ffcu, 0x00004ffeu, 0x000500c7u, 0x00000008u, 0x00005000u, 0x00004fffu, + 0x00001176u, 0x000500c4u, 0x00000008u, 0x00005001u, 0x00005000u, 0x0000023bu, 0x000200f9u, 0x00005008u, + 0x000200f8u, 0x00005008u, 0x000700f5u, 0x00000008u, 0x00008248u, 0x00005001u, 0x00004ffau, 0x00005007u, + 0x00005002u, 0x000200f9u, 0x0000500eu, 0x000200f8u, 0x0000500eu, 0x000700f5u, 0x00000008u, 0x00008247u, + 0x00008248u, 0x00005008u, 0x0000500du, 0x00005009u, 0x00050050u, 0x000000f2u, 0x0000c230u, 0x00008241u, + 0x00008247u, 0x000500a6u, 0x00000069u, 0x00004af2u, 0x00002319u, 0x00002313u, 0x000300f7u, 0x00004af8u, + 0x00000000u, 0x000400fau, 0x00004af2u, 0x00004af3u, 0x00004af7u, 0x000200f8u, 0x00004af7u, 0x000200f9u, + 0x00004af8u, 0x000200f8u, 0x00004af3u, 0x000500c7u, 0x000000f2u, 0x00004af6u, 0x0000c230u, 0x0000c215u, + 0x000200f9u, 0x00004af8u, 0x000200f8u, 0x00004af8u, 0x000700f5u, 0x000000f2u, 0x0000824cu, 0x00004af6u, + 0x00004af3u, 0x00000c49u, 0x00004af7u, 0x00050051u, 0x00000008u, 0x00004afau, 0x0000824cu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00004afcu, 0x0000824cu, 0x00000001u, 0x00050080u, 0x00000008u, 0x00004afdu, + 0x00004afau, 0x00004afcu, 0x000500c3u, 0x000000f2u, 0x00004b00u, 0x0000c230u, 0x0000c214u, 0x00050051u, + 0x00000008u, 0x00004b03u, 0x00004b00u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00005015u, 0x00004966u, + 0x0004007cu, 0x00000008u, 0x00005016u, 0x00005015u, 0x000500abu, 0x00000069u, 0x00005017u, 0x00005016u, + 0x00000225u, 0x000300f7u, 0x0000502fu, 0x00000000u, 0x000400fau, 0x00005017u, 0x00005018u, 0x0000502fu, + 0x000200f8u, 0x00005018u, 0x000500c4u, 0x00000008u, 0x0000501bu, 0x0000022fu, 0x00004966u, 0x000500c7u, + 0x00000008u, 0x00005020u, 0x00004acbu, 0x00000232u, 0x000500abu, 0x00000069u, 0x00005021u, 0x00005020u, + 0x00000225u, 0x000300f7u, 0x0000502au, 0x00000000u, 0x000400fau, 0x00005021u, 0x00005022u, 0x0000502au, + 0x000200f8u, 0x00005022u, 0x000500c7u, 0x00000008u, 0x00005025u, 0x00004b03u, 0x0000501bu, 0x00050082u, + 0x00000008u, 0x00005026u, 0x00005025u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00005027u, 0x00000001u, + 0x0000002au, 0x00005026u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x00005029u, 0x00004b03u, 0x00005027u, + 0x000200f9u, 0x0000502au, 0x000200f8u, 0x0000502au, 0x000700f5u, 0x00000008u, 0x0000824eu, 0x00004b03u, + 0x00005018u, 0x00005029u, 0x00005022u, 0x00050082u, 0x00000008u, 0x0000502cu, 0x0000501bu, 0x0000022fu, + 0x000500c7u, 0x00000008u, 0x0000502eu, 0x0000824eu, 0x0000502cu, 0x000200f9u, 0x0000502fu, 0x000200f8u, + 0x0000502fu, 0x000700f5u, 0x00000008u, 0x0000824fu, 0x00004b03u, 0x00004af8u, 0x0000502eu, 0x0000502au, + 0x00050051u, 0x00000008u, 0x00004b07u, 0x00004b00u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00005036u, + 0x0000496au, 0x0004007cu, 0x00000008u, 0x00005037u, 0x00005036u, 0x000500abu, 0x00000069u, 0x00005038u, + 0x00005037u, 0x00000225u, 0x000300f7u, 0x00005050u, 0x00000000u, 0x000400fau, 0x00005038u, 0x00005039u, + 0x00005050u, 0x000200f8u, 0x00005039u, 0x000500c4u, 0x00000008u, 0x0000503cu, 0x0000022fu, 0x0000496au, + 0x000500c7u, 0x00000008u, 0x00005041u, 0x00004acbu, 0x00000262u, 0x000500abu, 0x00000069u, 0x00005042u, + 0x00005041u, 0x00000225u, 0x000300f7u, 0x0000504bu, 0x00000000u, 0x000400fau, 0x00005042u, 0x00005043u, + 0x0000504bu, 0x000200f8u, 0x00005043u, 0x000500c7u, 0x00000008u, 0x00005046u, 0x00004b07u, 0x0000503cu, + 0x00050082u, 0x00000008u, 0x00005047u, 0x00005046u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00005048u, + 0x00000001u, 0x0000002au, 0x00005047u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x0000504au, 0x00004b07u, + 0x00005048u, 0x000200f9u, 0x0000504bu, 0x000200f8u, 0x0000504bu, 0x000700f5u, 0x00000008u, 0x00008252u, + 0x00004b07u, 0x00005039u, 0x0000504au, 0x00005043u, 0x00050082u, 0x00000008u, 0x0000504du, 0x0000503cu, + 0x0000022fu, 0x000500c7u, 0x00000008u, 0x0000504fu, 0x00008252u, 0x0000504du, 0x000200f9u, 0x00005050u, + 0x000200f8u, 0x00005050u, 0x000700f5u, 0x00000008u, 0x00008253u, 0x00004b07u, 0x0000502fu, 0x0000504fu, + 0x0000504bu, 0x00050080u, 0x00000008u, 0x00004b0bu, 0x00004b03u, 0x0000022fu, 0x000300f7u, 0x00005071u, + 0x00000000u, 0x000400fau, 0x00005017u, 0x0000505au, 0x00005071u, 0x000200f8u, 0x0000505au, 0x000500c4u, + 0x00000008u, 0x0000505du, 0x0000022fu, 0x00004966u, 0x000500c7u, 0x00000008u, 0x00005062u, 0x00004acbu, + 0x00000232u, 0x000500abu, 0x00000069u, 0x00005063u, 0x00005062u, 0x00000225u, 0x000300f7u, 0x0000506cu, + 0x00000000u, 0x000400fau, 0x00005063u, 0x00005064u, 0x0000506cu, 0x000200f8u, 0x00005064u, 0x000500c7u, + 0x00000008u, 0x00005067u, 0x00004b0bu, 0x0000505du, 0x00050082u, 0x00000008u, 0x00005068u, 0x00005067u, + 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00005069u, 0x00000001u, 0x0000002au, 0x00005068u, 0x00000225u, + 0x000500c6u, 0x00000008u, 0x0000506bu, 0x00004b0bu, 0x00005069u, 0x000200f9u, 0x0000506cu, 0x000200f8u, + 0x0000506cu, 0x000700f5u, 0x00000008u, 0x00008256u, 0x00004b0bu, 0x0000505au, 0x0000506bu, 0x00005064u, + 0x00050082u, 0x00000008u, 0x0000506eu, 0x0000505du, 0x0000022fu, 0x000500c7u, 0x00000008u, 0x00005070u, + 0x00008256u, 0x0000506eu, 0x000200f9u, 0x00005071u, 0x000200f8u, 0x00005071u, 0x000700f5u, 0x00000008u, + 0x00008257u, 0x00004b0bu, 0x00005050u, 0x00005070u, 0x0000506cu, 0x00050080u, 0x00000008u, 0x00004b10u, + 0x00004b07u, 0x0000022fu, 0x000300f7u, 0x00005092u, 0x00000000u, 0x000400fau, 0x00005038u, 0x0000507bu, + 0x00005092u, 0x000200f8u, 0x0000507bu, 0x000500c4u, 0x00000008u, 0x0000507eu, 0x0000022fu, 0x0000496au, + 0x000500c7u, 0x00000008u, 0x00005083u, 0x00004acbu, 0x00000262u, 0x000500abu, 0x00000069u, 0x00005084u, + 0x00005083u, 0x00000225u, 0x000300f7u, 0x0000508du, 0x00000000u, 0x000400fau, 0x00005084u, 0x00005085u, + 0x0000508du, 0x000200f8u, 0x00005085u, 0x000500c7u, 0x00000008u, 0x00005088u, 0x00004b10u, 0x0000507eu, + 0x00050082u, 0x00000008u, 0x00005089u, 0x00005088u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x0000508au, + 0x00000001u, 0x0000002au, 0x00005089u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x0000508cu, 0x00004b10u, + 0x0000508au, 0x000200f9u, 0x0000508du, 0x000200f8u, 0x0000508du, 0x000700f5u, 0x00000008u, 0x0000825au, + 0x00004b10u, 0x0000507bu, 0x0000508cu, 0x00005085u, 0x00050082u, 0x00000008u, 0x0000508fu, 0x0000507eu, + 0x0000022fu, 0x000500c7u, 0x00000008u, 0x00005091u, 0x0000825au, 0x0000508fu, 0x000200f9u, 0x00005092u, + 0x000200f8u, 0x00005092u, 0x000700f5u, 0x00000008u, 0x0000825bu, 0x00004b10u, 0x00005071u, 0x00005091u, + 0x0000508du, 0x00050082u, 0x00000008u, 0x00004b15u, 0x0000825bu, 0x00008253u, 0x0007000cu, 0x00000008u, + 0x00004b16u, 0x00000001u, 0x0000002au, 0x00004b15u, 0x000013f3u, 0x000500c7u, 0x00000008u, 0x00004b18u, + 0x00008253u, 0x00000363u, 0x00050080u, 0x00000008u, 0x00004b1au, 0x00004b18u, 0x00004b16u, 0x000500aau, + 0x00000884u, 0x00004b20u, 0x0000824cu, 0x000013ffu, 0x00050051u, 0x00000069u, 0x00004b21u, 0x00004b20u, + 0x00000000u, 0x00050051u, 0x00000069u, 0x00004b22u, 0x00004b20u, 0x00000001u, 0x00070050u, 0x00000600u, + 0x00004b23u, 0x00002343u, 0x00002358u, 0x00004b21u, 0x00004b22u, 0x0004009bu, 0x00000069u, 0x00004b24u, + 0x00004b23u, 0x000500afu, 0x00000069u, 0x00004b26u, 0x00004afdu, 0x0000115fu, 0x000600a9u, 0x00000008u, + 0x0000c257u, 0x00004b24u, 0x00000225u, 0x00004afdu, 0x00040071u, 0x00000006u, 0x00004b2cu, 0x00004960u, + 0x0004007cu, 0x00000008u, 0x00004b2du, 0x00004b2cu, 0x000500aau, 0x00000069u, 0x00004b2eu, 0x00004b2du, + 0x0000022fu, 0x000500afu, 0x00000069u, 0x00004b30u, 0x0000c257u, 0x0000115fu, 0x000300f7u, 0x00004b39u, + 0x00000000u, 0x000400fau, 0x00004b30u, 0x00004b31u, 0x00004b35u, 0x000200f8u, 0x00004b35u, 0x00050050u, + 0x000000f2u, 0x00004b38u, 0x0000824fu, 0x00004b18u, 0x000200f9u, 0x00004b39u, 0x000200f8u, 0x00004b31u, + 0x00050050u, 0x000000f2u, 0x00004b34u, 0x00008257u, 0x00004b1au, 0x000200f9u, 0x00004b39u, 0x000200f8u, + 0x00004b39u, 0x000700f5u, 0x000000f2u, 0x00008276u, 0x00004b34u, 0x00004b31u, 0x00004b38u, 0x00004b35u, + 0x000500c7u, 0x00000008u, 0x00004b3cu, 0x0000824fu, 0x0000022fu, 0x000500c4u, 0x00000008u, 0x00004b3du, + 0x00004b3cu, 0x00000238u, 0x000500c3u, 0x00000008u, 0x00004b40u, 0x00004afau, 0x0000022fu, 0x000500c5u, + 0x00000008u, 0x00004b41u, 0x00004b3du, 0x00004b40u, 0x000300f7u, 0x00004e13u, 0x00000000u, 0x000400fau, + 0x00002313u, 0x00004b43u, 0x00004bedu, 0x000200f8u, 0x00004bedu, 0x000300f7u, 0x00004e12u, 0x00000000u, + 0x000d00fbu, 0x00004b2du, 0x00004e12u, 0x00000000u, 0x00004bf2u, 0x00000001u, 0x00004c7cu, 0x00000002u, + 0x00004caau, 0x00000003u, 0x00004d1fu, 0x00000004u, 0x00004da9u, 0x000200f8u, 0x00004da9u, 0x00040071u, + 0x00000006u, 0x00004dacu, 0x00004962u, 0x0004007cu, 0x00000008u, 0x00004dadu, 0x00004dacu, 0x000300f7u, + 0x00004e11u, 0x00000000u, 0x000700fbu, 0x00004dadu, 0x00004daeu, 0x00000000u, 0x00004dcfu, 0x00000001u, + 0x00004df0u, 0x000200f8u, 0x00004df0u, 0x0004007cu, 0x000000b4u, 0x00004df2u, 0x00008276u, 0x00050051u, + 0x00000006u, 0x000061eau, 0x00004df2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000061ebu, 0x0000495eu, + 0x000061eau, 0x00050080u, 0x00000006u, 0x000061ecu, 0x0000495cu, 0x000061ebu, 0x00050051u, 0x00000006u, + 0x000061eeu, 0x00004df2u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000061f0u, 0x000061ecu, 0x000061eeu, + 0x000500c7u, 0x00000006u, 0x000061f2u, 0x000061f0u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x000061f6u, + 0x000061eau, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000061f7u, 0x000061f6u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x000061f9u, 0x000061f2u, 0x000061f7u, 0x000500c6u, 0x00000006u, 0x000061fbu, 0x000061f9u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000061feu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x000061fbu, 0x0004003du, 0x0000000fu, 0x000061ffu, 0x000061feu, 0x00040071u, 0x00000006u, 0x00006200u, + 0x000061ffu, 0x00040071u, 0x00000011u, 0x00006202u, 0x00006200u, 0x0004007cu, 0x00000012u, 0x00006203u, + 0x00006202u, 0x00070050u, 0x00000013u, 0x00006204u, 0x00006203u, 0x00006203u, 0x00006203u, 0x00006203u, + 0x000300f7u, 0x00004e06u, 0x00000000u, 0x000400fau, 0x00002319u, 0x00004df7u, 0x00004e06u, 0x000200f8u, + 0x00004df7u, 0x00050050u, 0x000000f2u, 0x00004dfau, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, + 0x00004dfbu, 0x00004dfau, 0x00050051u, 0x00000006u, 0x0000620fu, 0x00004dfbu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00006210u, 0x0000495eu, 0x0000620fu, 0x00050080u, 0x00000006u, 0x00006211u, 0x0000495cu, + 0x00006210u, 0x00050051u, 0x00000006u, 0x00006213u, 0x00004dfbu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00006215u, 0x00006211u, 0x00006213u, 0x000500c7u, 0x00000006u, 0x00006217u, 0x00006215u, 0x00000e75u, + 0x000500c7u, 0x00000006u, 0x0000621bu, 0x0000620fu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000621cu, + 0x0000621bu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x0000621eu, 0x00006217u, 0x0000621cu, 0x000500c6u, + 0x00000006u, 0x00006220u, 0x0000621eu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00006223u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00006220u, 0x0004003du, 0x0000000fu, 0x00006224u, 0x00006223u, + 0x00040071u, 0x00000006u, 0x00006225u, 0x00006224u, 0x00040071u, 0x00000011u, 0x00006227u, 0x00006225u, + 0x0004007cu, 0x00000012u, 0x00006228u, 0x00006227u, 0x00070050u, 0x00000013u, 0x00006229u, 0x00006228u, + 0x00006228u, 0x00006228u, 0x00006228u, 0x00050050u, 0x000000f2u, 0x00004e01u, 0x0000824fu, 0x00004b1au, + 0x0004007cu, 0x000000b4u, 0x00004e02u, 0x00004e01u, 0x00050051u, 0x00000006u, 0x00006234u, 0x00004e02u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00006235u, 0x0000495eu, 0x00006234u, 0x00050080u, 0x00000006u, + 0x00006236u, 0x0000495cu, 0x00006235u, 0x00050051u, 0x00000006u, 0x00006238u, 0x00004e02u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x0000623au, 0x00006236u, 0x00006238u, 0x000500c7u, 0x00000006u, 0x0000623cu, + 0x0000623au, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x00006240u, 0x00006234u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00006241u, 0x00006240u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00006243u, 0x0000623cu, + 0x00006241u, 0x000500c6u, 0x00000006u, 0x00006245u, 0x00006243u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00006248u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00006245u, 0x0004003du, 0x0000000fu, + 0x00006249u, 0x00006248u, 0x00040071u, 0x00000006u, 0x0000624au, 0x00006249u, 0x00040071u, 0x00000011u, + 0x0000624cu, 0x0000624au, 0x0004007cu, 0x00000012u, 0x0000624du, 0x0000624cu, 0x00070050u, 0x00000013u, + 0x0000624eu, 0x0000624du, 0x0000624du, 0x0000624du, 0x0000624du, 0x000200f9u, 0x00004e06u, 0x000200f8u, + 0x00004e06u, 0x000700f5u, 0x00000013u, 0x00008626u, 0x00008550u, 0x00004df0u, 0x0000624eu, 0x00004df7u, + 0x000700f5u, 0x00000013u, 0x0000852eu, 0x00008455u, 0x00004df0u, 0x00006229u, 0x00004df7u, 0x000300f7u, + 0x00004e10u, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004e08u, 0x00004e10u, 0x000200f8u, 0x00004e08u, + 0x00050050u, 0x000000f2u, 0x00004e0bu, 0x00008257u, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004e0cu, + 0x00004e0bu, 0x00050051u, 0x00000006u, 0x00006259u, 0x00004e0cu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000625au, 0x0000495eu, 0x00006259u, 0x00050080u, 0x00000006u, 0x0000625bu, 0x0000495cu, 0x0000625au, + 0x00050051u, 0x00000006u, 0x0000625du, 0x00004e0cu, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000625fu, + 0x0000625bu, 0x0000625du, 0x000500c7u, 0x00000006u, 0x00006261u, 0x0000625fu, 0x00000e75u, 0x000500c7u, + 0x00000006u, 0x00006265u, 0x00006259u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00006266u, 0x00006265u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00006268u, 0x00006261u, 0x00006266u, 0x000500c6u, 0x00000006u, + 0x0000626au, 0x00006268u, 0x00000469u, 0x00080041u, 0x00000676u, 0x0000626du, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x0000626au, 0x0004003du, 0x0000000fu, 0x0000626eu, 0x0000626du, 0x00040071u, + 0x00000006u, 0x0000626fu, 0x0000626eu, 0x00040071u, 0x00000011u, 0x00006271u, 0x0000626fu, 0x0004007cu, + 0x00000012u, 0x00006272u, 0x00006271u, 0x00070050u, 0x00000013u, 0x00006273u, 0x00006272u, 0x00006272u, + 0x00006272u, 0x00006272u, 0x000200f9u, 0x00004e10u, 0x000200f8u, 0x00004e10u, 0x000700f5u, 0x00000013u, + 0x0000871du, 0x00008645u, 0x00004e06u, 0x00006273u, 0x00004e08u, 0x000200f9u, 0x00004e11u, 0x000200f8u, + 0x00004dcfu, 0x0004007cu, 0x000000b4u, 0x00004dd1u, 0x00008276u, 0x00050051u, 0x00000006u, 0x0000611bu, + 0x00004dd1u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000611cu, 0x0000495eu, 0x0000611bu, 0x00050080u, + 0x00000006u, 0x0000611du, 0x0000495cu, 0x0000611cu, 0x00050051u, 0x00000006u, 0x0000611fu, 0x00004dd1u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006120u, 0x0000611fu, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00006122u, 0x0000611du, 0x00006120u, 0x000500c7u, 0x00000006u, 0x00006124u, 0x00006122u, 0x00000e75u, + 0x000400c8u, 0x00000006u, 0x00006127u, 0x0000611fu, 0x000500c7u, 0x00000006u, 0x00006128u, 0x00006127u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00006129u, 0x00006128u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x0000612du, 0x0000611bu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000612eu, 0x0000612du, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00006130u, 0x00006124u, 0x0000612eu, 0x000500c6u, 0x00000006u, 0x00006132u, + 0x00006130u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00006135u, 0x00000e8fu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00006132u, 0x0004003du, 0x0000000fu, 0x00006136u, 0x00006135u, 0x00040071u, 0x00000006u, + 0x00006137u, 0x00006136u, 0x000500c2u, 0x00000006u, 0x0000613au, 0x00006137u, 0x00006129u, 0x000500c7u, + 0x00000006u, 0x0000613bu, 0x0000613au, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x0000613du, 0x0000613bu, + 0x00000238u, 0x000500c5u, 0x00000006u, 0x0000613fu, 0x0000613bu, 0x0000613du, 0x00040071u, 0x00000011u, + 0x00006141u, 0x0000613fu, 0x0004007cu, 0x00000012u, 0x00006142u, 0x00006141u, 0x00070050u, 0x00000013u, + 0x00006143u, 0x00006142u, 0x00006142u, 0x00006142u, 0x00006142u, 0x000300f7u, 0x00004de5u, 0x00000000u, + 0x000400fau, 0x00002319u, 0x00004dd6u, 0x00004de5u, 0x000200f8u, 0x00004dd6u, 0x00050050u, 0x000000f2u, + 0x00004dd9u, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004ddau, 0x00004dd9u, 0x00050051u, + 0x00000006u, 0x0000614fu, 0x00004ddau, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006150u, 0x0000495eu, + 0x0000614fu, 0x00050080u, 0x00000006u, 0x00006151u, 0x0000495cu, 0x00006150u, 0x00050051u, 0x00000006u, + 0x00006153u, 0x00004ddau, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006154u, 0x00006153u, 0x0000022fu, + 0x00050080u, 0x00000006u, 0x00006156u, 0x00006151u, 0x00006154u, 0x000500c7u, 0x00000006u, 0x00006158u, + 0x00006156u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x0000615bu, 0x00006153u, 0x000500c7u, 0x00000006u, + 0x0000615cu, 0x0000615bu, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000615du, 0x0000615cu, 0x00000709u, + 0x000500c7u, 0x00000006u, 0x00006161u, 0x0000614fu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00006162u, + 0x00006161u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00006164u, 0x00006158u, 0x00006162u, 0x000500c6u, + 0x00000006u, 0x00006166u, 0x00006164u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00006169u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00006166u, 0x0004003du, 0x0000000fu, 0x0000616au, 0x00006169u, + 0x00040071u, 0x00000006u, 0x0000616bu, 0x0000616au, 0x000500c2u, 0x00000006u, 0x0000616eu, 0x0000616bu, + 0x0000615du, 0x000500c7u, 0x00000006u, 0x0000616fu, 0x0000616eu, 0x00000e98u, 0x000500c4u, 0x00000006u, + 0x00006171u, 0x0000616fu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00006173u, 0x0000616fu, 0x00006171u, + 0x00040071u, 0x00000011u, 0x00006175u, 0x00006173u, 0x0004007cu, 0x00000012u, 0x00006176u, 0x00006175u, + 0x00070050u, 0x00000013u, 0x00006177u, 0x00006176u, 0x00006176u, 0x00006176u, 0x00006176u, 0x00050050u, + 0x000000f2u, 0x00004de0u, 0x0000824fu, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004de1u, 0x00004de0u, + 0x00050051u, 0x00000006u, 0x00006183u, 0x00004de1u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006184u, + 0x0000495eu, 0x00006183u, 0x00050080u, 0x00000006u, 0x00006185u, 0x0000495cu, 0x00006184u, 0x00050051u, + 0x00000006u, 0x00006187u, 0x00004de1u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006188u, 0x00006187u, + 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000618au, 0x00006185u, 0x00006188u, 0x000500c7u, 0x00000006u, + 0x0000618cu, 0x0000618au, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x0000618fu, 0x00006187u, 0x000500c7u, + 0x00000006u, 0x00006190u, 0x0000618fu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00006191u, 0x00006190u, + 0x00000709u, 0x000500c7u, 0x00000006u, 0x00006195u, 0x00006183u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00006196u, 0x00006195u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00006198u, 0x0000618cu, 0x00006196u, + 0x000500c6u, 0x00000006u, 0x0000619au, 0x00006198u, 0x00000469u, 0x00080041u, 0x00000676u, 0x0000619du, + 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000619au, 0x0004003du, 0x0000000fu, 0x0000619eu, + 0x0000619du, 0x00040071u, 0x00000006u, 0x0000619fu, 0x0000619eu, 0x000500c2u, 0x00000006u, 0x000061a2u, + 0x0000619fu, 0x00006191u, 0x000500c7u, 0x00000006u, 0x000061a3u, 0x000061a2u, 0x00000e98u, 0x000500c4u, + 0x00000006u, 0x000061a5u, 0x000061a3u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x000061a7u, 0x000061a3u, + 0x000061a5u, 0x00040071u, 0x00000011u, 0x000061a9u, 0x000061a7u, 0x0004007cu, 0x00000012u, 0x000061aau, + 0x000061a9u, 0x00070050u, 0x00000013u, 0x000061abu, 0x000061aau, 0x000061aau, 0x000061aau, 0x000061aau, + 0x000200f9u, 0x00004de5u, 0x000200f8u, 0x00004de5u, 0x000700f5u, 0x00000013u, 0x00008624u, 0x00008550u, + 0x00004dcfu, 0x000061abu, 0x00004dd6u, 0x000700f5u, 0x00000013u, 0x0000852cu, 0x00008455u, 0x00004dcfu, + 0x00006177u, 0x00004dd6u, 0x000300f7u, 0x00004defu, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004de7u, + 0x00004defu, 0x000200f8u, 0x00004de7u, 0x00050050u, 0x000000f2u, 0x00004deau, 0x00008257u, 0x00004b1au, + 0x0004007cu, 0x000000b4u, 0x00004debu, 0x00004deau, 0x00050051u, 0x00000006u, 0x000061b7u, 0x00004debu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000061b8u, 0x0000495eu, 0x000061b7u, 0x00050080u, 0x00000006u, + 0x000061b9u, 0x0000495cu, 0x000061b8u, 0x00050051u, 0x00000006u, 0x000061bbu, 0x00004debu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000061bcu, 0x000061bbu, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000061beu, + 0x000061b9u, 0x000061bcu, 0x000500c7u, 0x00000006u, 0x000061c0u, 0x000061beu, 0x00000e75u, 0x000400c8u, + 0x00000006u, 0x000061c3u, 0x000061bbu, 0x000500c7u, 0x00000006u, 0x000061c4u, 0x000061c3u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x000061c5u, 0x000061c4u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000061c9u, + 0x000061b7u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000061cau, 0x000061c9u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x000061ccu, 0x000061c0u, 0x000061cau, 0x000500c6u, 0x00000006u, 0x000061ceu, 0x000061ccu, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000061d1u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x000061ceu, 0x0004003du, 0x0000000fu, 0x000061d2u, 0x000061d1u, 0x00040071u, 0x00000006u, 0x000061d3u, + 0x000061d2u, 0x000500c2u, 0x00000006u, 0x000061d6u, 0x000061d3u, 0x000061c5u, 0x000500c7u, 0x00000006u, + 0x000061d7u, 0x000061d6u, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x000061d9u, 0x000061d7u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x000061dbu, 0x000061d7u, 0x000061d9u, 0x00040071u, 0x00000011u, 0x000061ddu, + 0x000061dbu, 0x0004007cu, 0x00000012u, 0x000061deu, 0x000061ddu, 0x00070050u, 0x00000013u, 0x000061dfu, + 0x000061deu, 0x000061deu, 0x000061deu, 0x000061deu, 0x000200f9u, 0x00004defu, 0x000200f8u, 0x00004defu, + 0x000700f5u, 0x00000013u, 0x0000871bu, 0x00008645u, 0x00004de5u, 0x000061dfu, 0x00004de7u, 0x000200f9u, + 0x00004e11u, 0x000200f8u, 0x00004daeu, 0x0004007cu, 0x000000b4u, 0x00004db0u, 0x00008276u, 0x00050051u, + 0x00000006u, 0x00006066u, 0x00004db0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006067u, 0x0000495eu, + 0x00006066u, 0x00050080u, 0x00000006u, 0x00006068u, 0x0000495cu, 0x00006067u, 0x00050051u, 0x00000006u, + 0x0000606au, 0x00004db0u, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000606bu, 0x0000606au, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x0000606du, 0x00006068u, 0x0000606bu, 0x000500c7u, 0x00000006u, 0x0000606fu, + 0x0000606du, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00006071u, 0x0000606fu, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00006074u, 0x00006066u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00006075u, 0x00006074u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00006077u, 0x00006071u, 0x00006075u, 0x000500c6u, 0x00000006u, + 0x00006079u, 0x00006077u, 0x00000461u, 0x00080041u, 0x00000697u, 0x0000607cu, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00006079u, 0x0004003du, 0x00000011u, 0x0000607du, 0x0000607cu, 0x00040071u, + 0x00000006u, 0x0000607eu, 0x0000607du, 0x000500c2u, 0x00000006u, 0x00006080u, 0x0000607eu, 0x00000262u, + 0x00040071u, 0x00000011u, 0x00006081u, 0x00006080u, 0x0004007cu, 0x00000012u, 0x00006082u, 0x00006081u, + 0x000500c7u, 0x00000006u, 0x00006084u, 0x0000607eu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00006085u, + 0x00006084u, 0x0004007cu, 0x00000012u, 0x00006086u, 0x00006085u, 0x00050050u, 0x000001b1u, 0x00006087u, + 0x00006082u, 0x00006086u, 0x0009004fu, 0x00000013u, 0x00006088u, 0x00006087u, 0x00006087u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004dc4u, 0x00000000u, 0x000400fau, 0x00002319u, + 0x00004db5u, 0x00004dc4u, 0x000200f8u, 0x00004db5u, 0x00050050u, 0x000000f2u, 0x00004db8u, 0x00008257u, + 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004db9u, 0x00004db8u, 0x00050051u, 0x00000006u, 0x00006093u, + 0x00004db9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006094u, 0x0000495eu, 0x00006093u, 0x00050080u, + 0x00000006u, 0x00006095u, 0x0000495cu, 0x00006094u, 0x00050051u, 0x00000006u, 0x00006097u, 0x00004db9u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00006098u, 0x00006097u, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x0000609au, 0x00006095u, 0x00006098u, 0x000500c7u, 0x00000006u, 0x0000609cu, 0x0000609au, 0x00000e75u, + 0x000500c2u, 0x00000006u, 0x0000609eu, 0x0000609cu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000060a1u, + 0x00006093u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000060a2u, 0x000060a1u, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x000060a4u, 0x0000609eu, 0x000060a2u, 0x000500c6u, 0x00000006u, 0x000060a6u, 0x000060a4u, + 0x00000461u, 0x00080041u, 0x00000697u, 0x000060a9u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x000060a6u, 0x0004003du, 0x00000011u, 0x000060aau, 0x000060a9u, 0x00040071u, 0x00000006u, 0x000060abu, + 0x000060aau, 0x000500c2u, 0x00000006u, 0x000060adu, 0x000060abu, 0x00000262u, 0x00040071u, 0x00000011u, + 0x000060aeu, 0x000060adu, 0x0004007cu, 0x00000012u, 0x000060afu, 0x000060aeu, 0x000500c7u, 0x00000006u, + 0x000060b1u, 0x000060abu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000060b2u, 0x000060b1u, 0x0004007cu, + 0x00000012u, 0x000060b3u, 0x000060b2u, 0x00050050u, 0x000001b1u, 0x000060b4u, 0x000060afu, 0x000060b3u, + 0x0009004fu, 0x00000013u, 0x000060b5u, 0x000060b4u, 0x000060b4u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x00050050u, 0x000000f2u, 0x00004dbfu, 0x0000824fu, 0x00004b1au, 0x0004007cu, 0x000000b4u, + 0x00004dc0u, 0x00004dbfu, 0x00050051u, 0x00000006u, 0x000060c0u, 0x00004dc0u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000060c1u, 0x0000495eu, 0x000060c0u, 0x00050080u, 0x00000006u, 0x000060c2u, 0x0000495cu, + 0x000060c1u, 0x00050051u, 0x00000006u, 0x000060c4u, 0x00004dc0u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000060c5u, 0x000060c4u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000060c7u, 0x000060c2u, 0x000060c5u, + 0x000500c7u, 0x00000006u, 0x000060c9u, 0x000060c7u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x000060cbu, + 0x000060c9u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000060ceu, 0x000060c0u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000060cfu, 0x000060ceu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000060d1u, 0x000060cbu, + 0x000060cfu, 0x000500c6u, 0x00000006u, 0x000060d3u, 0x000060d1u, 0x00000461u, 0x00080041u, 0x00000697u, + 0x000060d6u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000060d3u, 0x0004003du, 0x00000011u, + 0x000060d7u, 0x000060d6u, 0x00040071u, 0x00000006u, 0x000060d8u, 0x000060d7u, 0x000500c2u, 0x00000006u, + 0x000060dau, 0x000060d8u, 0x00000262u, 0x00040071u, 0x00000011u, 0x000060dbu, 0x000060dau, 0x0004007cu, + 0x00000012u, 0x000060dcu, 0x000060dbu, 0x000500c7u, 0x00000006u, 0x000060deu, 0x000060d8u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x000060dfu, 0x000060deu, 0x0004007cu, 0x00000012u, 0x000060e0u, 0x000060dfu, + 0x00050050u, 0x000001b1u, 0x000060e1u, 0x000060dcu, 0x000060e0u, 0x0009004fu, 0x00000013u, 0x000060e2u, + 0x000060e1u, 0x000060e1u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004dc4u, + 0x000200f8u, 0x00004dc4u, 0x000700f5u, 0x00000013u, 0x00008622u, 0x00008550u, 0x00004daeu, 0x000060e2u, + 0x00004db5u, 0x000700f5u, 0x00000013u, 0x0000852au, 0x00008455u, 0x00004daeu, 0x000060b5u, 0x00004db5u, + 0x000300f7u, 0x00004dceu, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004dc6u, 0x00004dceu, 0x000200f8u, + 0x00004dc6u, 0x00050050u, 0x000000f2u, 0x00004dc9u, 0x00008257u, 0x00004b1au, 0x0004007cu, 0x000000b4u, + 0x00004dcau, 0x00004dc9u, 0x00050051u, 0x00000006u, 0x000060edu, 0x00004dcau, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000060eeu, 0x0000495eu, 0x000060edu, 0x00050080u, 0x00000006u, 0x000060efu, 0x0000495cu, + 0x000060eeu, 0x00050051u, 0x00000006u, 0x000060f1u, 0x00004dcau, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000060f2u, 0x000060f1u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000060f4u, 0x000060efu, 0x000060f2u, + 0x000500c7u, 0x00000006u, 0x000060f6u, 0x000060f4u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x000060f8u, + 0x000060f6u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000060fbu, 0x000060edu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000060fcu, 0x000060fbu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000060feu, 0x000060f8u, + 0x000060fcu, 0x000500c6u, 0x00000006u, 0x00006100u, 0x000060feu, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00006103u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00006100u, 0x0004003du, 0x00000011u, + 0x00006104u, 0x00006103u, 0x00040071u, 0x00000006u, 0x00006105u, 0x00006104u, 0x000500c2u, 0x00000006u, + 0x00006107u, 0x00006105u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00006108u, 0x00006107u, 0x0004007cu, + 0x00000012u, 0x00006109u, 0x00006108u, 0x000500c7u, 0x00000006u, 0x0000610bu, 0x00006105u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x0000610cu, 0x0000610bu, 0x0004007cu, 0x00000012u, 0x0000610du, 0x0000610cu, + 0x00050050u, 0x000001b1u, 0x0000610eu, 0x00006109u, 0x0000610du, 0x0009004fu, 0x00000013u, 0x0000610fu, + 0x0000610eu, 0x0000610eu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004dceu, + 0x000200f8u, 0x00004dceu, 0x000700f5u, 0x00000013u, 0x00008719u, 0x00008645u, 0x00004dc4u, 0x0000610fu, + 0x00004dc6u, 0x000200f9u, 0x00004e11u, 0x000200f8u, 0x00004e11u, 0x000900f5u, 0x00000013u, 0x00008718u, + 0x00008719u, 0x00004dceu, 0x0000871bu, 0x00004defu, 0x0000871du, 0x00004e10u, 0x000900f5u, 0x00000013u, + 0x00008620u, 0x00008622u, 0x00004dceu, 0x00008624u, 0x00004defu, 0x00008626u, 0x00004e10u, 0x000900f5u, + 0x00000013u, 0x00008528u, 0x0000852au, 0x00004dceu, 0x0000852cu, 0x00004defu, 0x0000852eu, 0x00004e10u, + 0x000900f5u, 0x00000013u, 0x000083bbu, 0x00006088u, 0x00004dceu, 0x00006143u, 0x00004defu, 0x00006204u, + 0x00004e10u, 0x000200f9u, 0x00004e12u, 0x000200f8u, 0x00004d1fu, 0x00040071u, 0x00000006u, 0x00004d22u, + 0x00004962u, 0x0004007cu, 0x00000008u, 0x00004d23u, 0x00004d22u, 0x000300f7u, 0x00004da8u, 0x00000000u, + 0x000b00fbu, 0x00004d23u, 0x00004da8u, 0x00000000u, 0x00004d24u, 0x00000001u, 0x00004d45u, 0x00000002u, + 0x00004d66u, 0x00000003u, 0x00004d87u, 0x000200f8u, 0x00004d87u, 0x0004007cu, 0x000000b4u, 0x00004d89u, + 0x00008276u, 0x00050051u, 0x00000006u, 0x00005fb2u, 0x00004d89u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005fb3u, 0x0000495eu, 0x00005fb2u, 0x00050080u, 0x00000006u, 0x00005fb4u, 0x0000495cu, 0x00005fb3u, + 0x00050051u, 0x00000006u, 0x00005fb6u, 0x00004d89u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005fb7u, + 0x00005fb6u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005fb9u, 0x00005fb4u, 0x00005fb7u, 0x000500c7u, + 0x00000006u, 0x00005fbbu, 0x00005fb9u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00005fbdu, 0x00005fbbu, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005fc0u, 0x00005fb2u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00005fc1u, 0x00005fc0u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005fc3u, 0x00005fbdu, 0x00005fc1u, + 0x000500c6u, 0x00000006u, 0x00005fc5u, 0x00005fc3u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005fc8u, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005fc5u, 0x0004003du, 0x00000011u, 0x00005fc9u, + 0x00005fc8u, 0x00040071u, 0x00000006u, 0x00005fcau, 0x00005fc9u, 0x000500c2u, 0x00000006u, 0x00005fccu, + 0x00005fcau, 0x00000262u, 0x00040071u, 0x00000011u, 0x00005fcdu, 0x00005fccu, 0x0004007cu, 0x00000012u, + 0x00005fceu, 0x00005fcdu, 0x000500c7u, 0x00000006u, 0x00005fd0u, 0x00005fcau, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00005fd1u, 0x00005fd0u, 0x0004007cu, 0x00000012u, 0x00005fd2u, 0x00005fd1u, 0x00050050u, + 0x000001b1u, 0x00005fd3u, 0x00005fceu, 0x00005fd2u, 0x0009004fu, 0x00000013u, 0x00005fd4u, 0x00005fd3u, + 0x00005fd3u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004d9du, 0x00000000u, + 0x000400fau, 0x00002319u, 0x00004d8eu, 0x00004d9du, 0x000200f8u, 0x00004d8eu, 0x00050050u, 0x000000f2u, + 0x00004d91u, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004d92u, 0x00004d91u, 0x00050051u, + 0x00000006u, 0x00005fdfu, 0x00004d92u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005fe0u, 0x0000495eu, + 0x00005fdfu, 0x00050080u, 0x00000006u, 0x00005fe1u, 0x0000495cu, 0x00005fe0u, 0x00050051u, 0x00000006u, + 0x00005fe3u, 0x00004d92u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005fe4u, 0x00005fe3u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x00005fe6u, 0x00005fe1u, 0x00005fe4u, 0x000500c7u, 0x00000006u, 0x00005fe8u, + 0x00005fe6u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00005feau, 0x00005fe8u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00005fedu, 0x00005fdfu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005feeu, 0x00005fedu, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005ff0u, 0x00005feau, 0x00005feeu, 0x000500c6u, 0x00000006u, + 0x00005ff2u, 0x00005ff0u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005ff5u, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00005ff2u, 0x0004003du, 0x00000011u, 0x00005ff6u, 0x00005ff5u, 0x00040071u, + 0x00000006u, 0x00005ff7u, 0x00005ff6u, 0x000500c2u, 0x00000006u, 0x00005ff9u, 0x00005ff7u, 0x00000262u, + 0x00040071u, 0x00000011u, 0x00005ffau, 0x00005ff9u, 0x0004007cu, 0x00000012u, 0x00005ffbu, 0x00005ffau, + 0x000500c7u, 0x00000006u, 0x00005ffdu, 0x00005ff7u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005ffeu, + 0x00005ffdu, 0x0004007cu, 0x00000012u, 0x00005fffu, 0x00005ffeu, 0x00050050u, 0x000001b1u, 0x00006000u, + 0x00005ffbu, 0x00005fffu, 0x0009004fu, 0x00000013u, 0x00006001u, 0x00006000u, 0x00006000u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x00004d98u, 0x0000824fu, 0x00004b1au, + 0x0004007cu, 0x000000b4u, 0x00004d99u, 0x00004d98u, 0x00050051u, 0x00000006u, 0x0000600cu, 0x00004d99u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000600du, 0x0000495eu, 0x0000600cu, 0x00050080u, 0x00000006u, + 0x0000600eu, 0x0000495cu, 0x0000600du, 0x00050051u, 0x00000006u, 0x00006010u, 0x00004d99u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00006011u, 0x00006010u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00006013u, + 0x0000600eu, 0x00006011u, 0x000500c7u, 0x00000006u, 0x00006015u, 0x00006013u, 0x00000e75u, 0x000500c2u, + 0x00000006u, 0x00006017u, 0x00006015u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x0000601au, 0x0000600cu, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000601bu, 0x0000601au, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x0000601du, 0x00006017u, 0x0000601bu, 0x000500c6u, 0x00000006u, 0x0000601fu, 0x0000601du, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00006022u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000601fu, + 0x0004003du, 0x00000011u, 0x00006023u, 0x00006022u, 0x00040071u, 0x00000006u, 0x00006024u, 0x00006023u, + 0x000500c2u, 0x00000006u, 0x00006026u, 0x00006024u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00006027u, + 0x00006026u, 0x0004007cu, 0x00000012u, 0x00006028u, 0x00006027u, 0x000500c7u, 0x00000006u, 0x0000602au, + 0x00006024u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000602bu, 0x0000602au, 0x0004007cu, 0x00000012u, + 0x0000602cu, 0x0000602bu, 0x00050050u, 0x000001b1u, 0x0000602du, 0x00006028u, 0x0000602cu, 0x0009004fu, + 0x00000013u, 0x0000602eu, 0x0000602du, 0x0000602du, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004d9du, 0x000200f8u, 0x00004d9du, 0x000700f5u, 0x00000013u, 0x0000861fu, 0x00008550u, + 0x00004d87u, 0x0000602eu, 0x00004d8eu, 0x000700f5u, 0x00000013u, 0x00008527u, 0x00008455u, 0x00004d87u, + 0x00006001u, 0x00004d8eu, 0x000300f7u, 0x00004da7u, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004d9fu, + 0x00004da7u, 0x000200f8u, 0x00004d9fu, 0x00050050u, 0x000000f2u, 0x00004da2u, 0x00008257u, 0x00004b1au, + 0x0004007cu, 0x000000b4u, 0x00004da3u, 0x00004da2u, 0x00050051u, 0x00000006u, 0x00006039u, 0x00004da3u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000603au, 0x0000495eu, 0x00006039u, 0x00050080u, 0x00000006u, + 0x0000603bu, 0x0000495cu, 0x0000603au, 0x00050051u, 0x00000006u, 0x0000603du, 0x00004da3u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x0000603eu, 0x0000603du, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00006040u, + 0x0000603bu, 0x0000603eu, 0x000500c7u, 0x00000006u, 0x00006042u, 0x00006040u, 0x00000e75u, 0x000500c2u, + 0x00000006u, 0x00006044u, 0x00006042u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00006047u, 0x00006039u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00006048u, 0x00006047u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x0000604au, 0x00006044u, 0x00006048u, 0x000500c6u, 0x00000006u, 0x0000604cu, 0x0000604au, 0x00000461u, + 0x00080041u, 0x00000697u, 0x0000604fu, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000604cu, + 0x0004003du, 0x00000011u, 0x00006050u, 0x0000604fu, 0x00040071u, 0x00000006u, 0x00006051u, 0x00006050u, + 0x000500c2u, 0x00000006u, 0x00006053u, 0x00006051u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00006054u, + 0x00006053u, 0x0004007cu, 0x00000012u, 0x00006055u, 0x00006054u, 0x000500c7u, 0x00000006u, 0x00006057u, + 0x00006051u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00006058u, 0x00006057u, 0x0004007cu, 0x00000012u, + 0x00006059u, 0x00006058u, 0x00050050u, 0x000001b1u, 0x0000605au, 0x00006055u, 0x00006059u, 0x0009004fu, + 0x00000013u, 0x0000605bu, 0x0000605au, 0x0000605au, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004da7u, 0x000200f8u, 0x00004da7u, 0x000700f5u, 0x00000013u, 0x00008716u, 0x00008645u, + 0x00004d9du, 0x0000605bu, 0x00004d9fu, 0x000200f9u, 0x00004da8u, 0x000200f8u, 0x00004d66u, 0x0004007cu, + 0x000000b4u, 0x00004d68u, 0x00008276u, 0x00050051u, 0x00000006u, 0x00005ec7u, 0x00004d68u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005ec8u, 0x0000495eu, 0x00005ec7u, 0x00050080u, 0x00000006u, 0x00005ec9u, + 0x0000495cu, 0x00005ec8u, 0x00050051u, 0x00000006u, 0x00005ecbu, 0x00004d68u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005eccu, 0x00005ecbu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005eceu, 0x00005ec9u, + 0x00005eccu, 0x000500c7u, 0x00000006u, 0x00005ed0u, 0x00005eceu, 0x00000e75u, 0x000500c2u, 0x00000006u, + 0x00005ed2u, 0x00005ed0u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005ed5u, 0x00005ec7u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00005ed6u, 0x00005ed5u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005ed8u, + 0x00005ed2u, 0x00005ed6u, 0x000500c6u, 0x00000006u, 0x00005edau, 0x00005ed8u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x00005eddu, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005edau, 0x0004003du, + 0x00000011u, 0x00005edeu, 0x00005eddu, 0x00040071u, 0x00000006u, 0x00005edfu, 0x00005edeu, 0x000500c2u, + 0x00000006u, 0x00005ee7u, 0x00005edfu, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005ee9u, 0x00005edfu, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005eebu, 0x00005ee7u, 0x0004007cu, 0x00000012u, 0x00005eecu, + 0x00005eebu, 0x00040071u, 0x00000011u, 0x00005ef4u, 0x00005ee9u, 0x0004007cu, 0x00000012u, 0x00005ef5u, + 0x00005ef4u, 0x00070050u, 0x00000013u, 0x00005ef6u, 0x00005eecu, 0x00005eecu, 0x00005eecu, 0x00005ef5u, + 0x000300f7u, 0x00004d7cu, 0x00000000u, 0x000400fau, 0x00002319u, 0x00004d6du, 0x00004d7cu, 0x000200f8u, + 0x00004d6du, 0x00050050u, 0x000000f2u, 0x00004d70u, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, + 0x00004d71u, 0x00004d70u, 0x00050051u, 0x00000006u, 0x00005f02u, 0x00004d71u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005f03u, 0x0000495eu, 0x00005f02u, 0x00050080u, 0x00000006u, 0x00005f04u, 0x0000495cu, + 0x00005f03u, 0x00050051u, 0x00000006u, 0x00005f06u, 0x00004d71u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00005f07u, 0x00005f06u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005f09u, 0x00005f04u, 0x00005f07u, + 0x000500c7u, 0x00000006u, 0x00005f0bu, 0x00005f09u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00005f0du, + 0x00005f0bu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005f10u, 0x00005f02u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00005f11u, 0x00005f10u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005f13u, 0x00005f0du, + 0x00005f11u, 0x000500c6u, 0x00000006u, 0x00005f15u, 0x00005f13u, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00005f18u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005f15u, 0x0004003du, 0x00000011u, + 0x00005f19u, 0x00005f18u, 0x00040071u, 0x00000006u, 0x00005f1au, 0x00005f19u, 0x000500c2u, 0x00000006u, + 0x00005f22u, 0x00005f1au, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005f24u, 0x00005f1au, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00005f26u, 0x00005f22u, 0x0004007cu, 0x00000012u, 0x00005f27u, 0x00005f26u, + 0x00040071u, 0x00000011u, 0x00005f2fu, 0x00005f24u, 0x0004007cu, 0x00000012u, 0x00005f30u, 0x00005f2fu, + 0x00070050u, 0x00000013u, 0x00005f31u, 0x00005f27u, 0x00005f27u, 0x00005f27u, 0x00005f30u, 0x00050050u, + 0x000000f2u, 0x00004d77u, 0x0000824fu, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004d78u, 0x00004d77u, + 0x00050051u, 0x00000006u, 0x00005f3du, 0x00004d78u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005f3eu, + 0x0000495eu, 0x00005f3du, 0x00050080u, 0x00000006u, 0x00005f3fu, 0x0000495cu, 0x00005f3eu, 0x00050051u, + 0x00000006u, 0x00005f41u, 0x00004d78u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005f42u, 0x00005f41u, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005f44u, 0x00005f3fu, 0x00005f42u, 0x000500c7u, 0x00000006u, + 0x00005f46u, 0x00005f44u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00005f48u, 0x00005f46u, 0x0000022fu, + 0x000500c7u, 0x00000006u, 0x00005f4bu, 0x00005f3du, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005f4cu, + 0x00005f4bu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005f4eu, 0x00005f48u, 0x00005f4cu, 0x000500c6u, + 0x00000006u, 0x00005f50u, 0x00005f4eu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005f53u, 0x00000f5cu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00005f50u, 0x0004003du, 0x00000011u, 0x00005f54u, 0x00005f53u, + 0x00040071u, 0x00000006u, 0x00005f55u, 0x00005f54u, 0x000500c2u, 0x00000006u, 0x00005f5du, 0x00005f55u, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005f5fu, 0x00005f55u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00005f61u, 0x00005f5du, 0x0004007cu, 0x00000012u, 0x00005f62u, 0x00005f61u, 0x00040071u, 0x00000011u, + 0x00005f6au, 0x00005f5fu, 0x0004007cu, 0x00000012u, 0x00005f6bu, 0x00005f6au, 0x00070050u, 0x00000013u, + 0x00005f6cu, 0x00005f62u, 0x00005f62u, 0x00005f62u, 0x00005f6bu, 0x000200f9u, 0x00004d7cu, 0x000200f8u, + 0x00004d7cu, 0x000700f5u, 0x00000013u, 0x0000861du, 0x00008550u, 0x00004d66u, 0x00005f6cu, 0x00004d6du, + 0x000700f5u, 0x00000013u, 0x00008525u, 0x00008455u, 0x00004d66u, 0x00005f31u, 0x00004d6du, 0x000300f7u, + 0x00004d86u, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004d7eu, 0x00004d86u, 0x000200f8u, 0x00004d7eu, + 0x00050050u, 0x000000f2u, 0x00004d81u, 0x00008257u, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004d82u, + 0x00004d81u, 0x00050051u, 0x00000006u, 0x00005f78u, 0x00004d82u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005f79u, 0x0000495eu, 0x00005f78u, 0x00050080u, 0x00000006u, 0x00005f7au, 0x0000495cu, 0x00005f79u, + 0x00050051u, 0x00000006u, 0x00005f7cu, 0x00004d82u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005f7du, + 0x00005f7cu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005f7fu, 0x00005f7au, 0x00005f7du, 0x000500c7u, + 0x00000006u, 0x00005f81u, 0x00005f7fu, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00005f83u, 0x00005f81u, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005f86u, 0x00005f78u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00005f87u, 0x00005f86u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005f89u, 0x00005f83u, 0x00005f87u, + 0x000500c6u, 0x00000006u, 0x00005f8bu, 0x00005f89u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005f8eu, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005f8bu, 0x0004003du, 0x00000011u, 0x00005f8fu, + 0x00005f8eu, 0x00040071u, 0x00000006u, 0x00005f90u, 0x00005f8fu, 0x000500c2u, 0x00000006u, 0x00005f98u, + 0x00005f90u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005f9au, 0x00005f90u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00005f9cu, 0x00005f98u, 0x0004007cu, 0x00000012u, 0x00005f9du, 0x00005f9cu, 0x00040071u, + 0x00000011u, 0x00005fa5u, 0x00005f9au, 0x0004007cu, 0x00000012u, 0x00005fa6u, 0x00005fa5u, 0x00070050u, + 0x00000013u, 0x00005fa7u, 0x00005f9du, 0x00005f9du, 0x00005f9du, 0x00005fa6u, 0x000200f9u, 0x00004d86u, + 0x000200f8u, 0x00004d86u, 0x000700f5u, 0x00000013u, 0x00008714u, 0x00008645u, 0x00004d7cu, 0x00005fa7u, + 0x00004d7eu, 0x000200f9u, 0x00004da8u, 0x000200f8u, 0x00004d45u, 0x0004007cu, 0x000000b4u, 0x00004d47u, + 0x00008276u, 0x00050051u, 0x00000006u, 0x00005dd8u, 0x00004d47u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005dd9u, 0x0000495eu, 0x00005dd8u, 0x00050080u, 0x00000006u, 0x00005ddau, 0x0000495cu, 0x00005dd9u, + 0x00050051u, 0x00000006u, 0x00005ddcu, 0x00004d47u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005ddeu, + 0x00005ddau, 0x00005ddcu, 0x000500c7u, 0x00000006u, 0x00005de0u, 0x00005ddeu, 0x00000e75u, 0x000500c7u, + 0x00000006u, 0x00005de4u, 0x00005dd8u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005de5u, 0x00005de4u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005de7u, 0x00005de0u, 0x00005de5u, 0x000500c6u, 0x00000006u, + 0x00005de9u, 0x00005de7u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005decu, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00005de9u, 0x0004003du, 0x0000000fu, 0x00005dedu, 0x00005decu, 0x00040071u, + 0x00000006u, 0x00005deeu, 0x00005dedu, 0x000500c2u, 0x00000006u, 0x00005df0u, 0x00005deeu, 0x00000238u, + 0x000500c7u, 0x00000006u, 0x00005df2u, 0x00005deeu, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x00005df4u, + 0x00005df2u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005df6u, 0x00005df2u, 0x00005df4u, 0x000500c4u, + 0x00000006u, 0x00005df8u, 0x00005df0u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005dfau, 0x00005df0u, + 0x00005df8u, 0x00040071u, 0x00000011u, 0x00005dfcu, 0x00005dfau, 0x0004007cu, 0x00000012u, 0x00005dfdu, + 0x00005dfcu, 0x00040071u, 0x00000011u, 0x00005e05u, 0x00005df6u, 0x0004007cu, 0x00000012u, 0x00005e06u, + 0x00005e05u, 0x00070050u, 0x00000013u, 0x00005e07u, 0x00005dfdu, 0x00005dfdu, 0x00005dfdu, 0x00005e06u, + 0x000300f7u, 0x00004d5bu, 0x00000000u, 0x000400fau, 0x00002319u, 0x00004d4cu, 0x00004d5bu, 0x000200f8u, + 0x00004d4cu, 0x00050050u, 0x000000f2u, 0x00004d4fu, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, + 0x00004d50u, 0x00004d4fu, 0x00050051u, 0x00000006u, 0x00005e14u, 0x00004d50u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005e15u, 0x0000495eu, 0x00005e14u, 0x00050080u, 0x00000006u, 0x00005e16u, 0x0000495cu, + 0x00005e15u, 0x00050051u, 0x00000006u, 0x00005e18u, 0x00004d50u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005e1au, 0x00005e16u, 0x00005e18u, 0x000500c7u, 0x00000006u, 0x00005e1cu, 0x00005e1au, 0x00000e75u, + 0x000500c7u, 0x00000006u, 0x00005e20u, 0x00005e14u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005e21u, + 0x00005e20u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005e23u, 0x00005e1cu, 0x00005e21u, 0x000500c6u, + 0x00000006u, 0x00005e25u, 0x00005e23u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005e28u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00005e25u, 0x0004003du, 0x0000000fu, 0x00005e29u, 0x00005e28u, + 0x00040071u, 0x00000006u, 0x00005e2au, 0x00005e29u, 0x000500c2u, 0x00000006u, 0x00005e2cu, 0x00005e2au, + 0x00000238u, 0x000500c7u, 0x00000006u, 0x00005e2eu, 0x00005e2au, 0x00000e98u, 0x000500c4u, 0x00000006u, + 0x00005e30u, 0x00005e2eu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005e32u, 0x00005e2eu, 0x00005e30u, + 0x000500c4u, 0x00000006u, 0x00005e34u, 0x00005e2cu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005e36u, + 0x00005e2cu, 0x00005e34u, 0x00040071u, 0x00000011u, 0x00005e38u, 0x00005e36u, 0x0004007cu, 0x00000012u, + 0x00005e39u, 0x00005e38u, 0x00040071u, 0x00000011u, 0x00005e41u, 0x00005e32u, 0x0004007cu, 0x00000012u, + 0x00005e42u, 0x00005e41u, 0x00070050u, 0x00000013u, 0x00005e43u, 0x00005e39u, 0x00005e39u, 0x00005e39u, + 0x00005e42u, 0x00050050u, 0x000000f2u, 0x00004d56u, 0x0000824fu, 0x00004b1au, 0x0004007cu, 0x000000b4u, + 0x00004d57u, 0x00004d56u, 0x00050051u, 0x00000006u, 0x00005e50u, 0x00004d57u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005e51u, 0x0000495eu, 0x00005e50u, 0x00050080u, 0x00000006u, 0x00005e52u, 0x0000495cu, + 0x00005e51u, 0x00050051u, 0x00000006u, 0x00005e54u, 0x00004d57u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005e56u, 0x00005e52u, 0x00005e54u, 0x000500c7u, 0x00000006u, 0x00005e58u, 0x00005e56u, 0x00000e75u, + 0x000500c7u, 0x00000006u, 0x00005e5cu, 0x00005e50u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005e5du, + 0x00005e5cu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005e5fu, 0x00005e58u, 0x00005e5du, 0x000500c6u, + 0x00000006u, 0x00005e61u, 0x00005e5fu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005e64u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00005e61u, 0x0004003du, 0x0000000fu, 0x00005e65u, 0x00005e64u, + 0x00040071u, 0x00000006u, 0x00005e66u, 0x00005e65u, 0x000500c2u, 0x00000006u, 0x00005e68u, 0x00005e66u, + 0x00000238u, 0x000500c7u, 0x00000006u, 0x00005e6au, 0x00005e66u, 0x00000e98u, 0x000500c4u, 0x00000006u, + 0x00005e6cu, 0x00005e6au, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005e6eu, 0x00005e6au, 0x00005e6cu, + 0x000500c4u, 0x00000006u, 0x00005e70u, 0x00005e68u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005e72u, + 0x00005e68u, 0x00005e70u, 0x00040071u, 0x00000011u, 0x00005e74u, 0x00005e72u, 0x0004007cu, 0x00000012u, + 0x00005e75u, 0x00005e74u, 0x00040071u, 0x00000011u, 0x00005e7du, 0x00005e6eu, 0x0004007cu, 0x00000012u, + 0x00005e7eu, 0x00005e7du, 0x00070050u, 0x00000013u, 0x00005e7fu, 0x00005e75u, 0x00005e75u, 0x00005e75u, + 0x00005e7eu, 0x000200f9u, 0x00004d5bu, 0x000200f8u, 0x00004d5bu, 0x000700f5u, 0x00000013u, 0x0000861bu, + 0x00008550u, 0x00004d45u, 0x00005e7fu, 0x00004d4cu, 0x000700f5u, 0x00000013u, 0x00008523u, 0x00008455u, + 0x00004d45u, 0x00005e43u, 0x00004d4cu, 0x000300f7u, 0x00004d65u, 0x00000000u, 0x000400fau, 0x00004b24u, + 0x00004d5du, 0x00004d65u, 0x000200f8u, 0x00004d5du, 0x00050050u, 0x000000f2u, 0x00004d60u, 0x00008257u, + 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004d61u, 0x00004d60u, 0x00050051u, 0x00000006u, 0x00005e8cu, + 0x00004d61u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005e8du, 0x0000495eu, 0x00005e8cu, 0x00050080u, + 0x00000006u, 0x00005e8eu, 0x0000495cu, 0x00005e8du, 0x00050051u, 0x00000006u, 0x00005e90u, 0x00004d61u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005e92u, 0x00005e8eu, 0x00005e90u, 0x000500c7u, 0x00000006u, + 0x00005e94u, 0x00005e92u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x00005e98u, 0x00005e8cu, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00005e99u, 0x00005e98u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005e9bu, + 0x00005e94u, 0x00005e99u, 0x000500c6u, 0x00000006u, 0x00005e9du, 0x00005e9bu, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00005ea0u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005e9du, 0x0004003du, + 0x0000000fu, 0x00005ea1u, 0x00005ea0u, 0x00040071u, 0x00000006u, 0x00005ea2u, 0x00005ea1u, 0x000500c2u, + 0x00000006u, 0x00005ea4u, 0x00005ea2u, 0x00000238u, 0x000500c7u, 0x00000006u, 0x00005ea6u, 0x00005ea2u, + 0x00000e98u, 0x000500c4u, 0x00000006u, 0x00005ea8u, 0x00005ea6u, 0x00000238u, 0x000500c5u, 0x00000006u, + 0x00005eaau, 0x00005ea6u, 0x00005ea8u, 0x000500c4u, 0x00000006u, 0x00005eacu, 0x00005ea4u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x00005eaeu, 0x00005ea4u, 0x00005eacu, 0x00040071u, 0x00000011u, 0x00005eb0u, + 0x00005eaeu, 0x0004007cu, 0x00000012u, 0x00005eb1u, 0x00005eb0u, 0x00040071u, 0x00000011u, 0x00005eb9u, + 0x00005eaau, 0x0004007cu, 0x00000012u, 0x00005ebau, 0x00005eb9u, 0x00070050u, 0x00000013u, 0x00005ebbu, + 0x00005eb1u, 0x00005eb1u, 0x00005eb1u, 0x00005ebau, 0x000200f9u, 0x00004d65u, 0x000200f8u, 0x00004d65u, + 0x000700f5u, 0x00000013u, 0x00008712u, 0x00008645u, 0x00004d5bu, 0x00005ebbu, 0x00004d5du, 0x000200f9u, + 0x00004da8u, 0x000200f8u, 0x00004d24u, 0x0004007cu, 0x000000b4u, 0x00004d26u, 0x00008276u, 0x00050051u, + 0x00000006u, 0x00005cc0u, 0x00004d26u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005cc1u, 0x0000495eu, + 0x00005cc0u, 0x00050080u, 0x00000006u, 0x00005cc2u, 0x0000495cu, 0x00005cc1u, 0x00050051u, 0x00000006u, + 0x00005cc4u, 0x00004d26u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005cc5u, 0x00005cc4u, 0x0000022fu, + 0x00050080u, 0x00000006u, 0x00005cc7u, 0x00005cc2u, 0x00005cc5u, 0x000500c7u, 0x00000006u, 0x00005cc9u, + 0x00005cc7u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00005cccu, 0x00005cc4u, 0x000500c7u, 0x00000006u, + 0x00005ccdu, 0x00005cccu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005cceu, 0x00005ccdu, 0x00000709u, + 0x000500c7u, 0x00000006u, 0x00005cd2u, 0x00005cc0u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005cd3u, + 0x00005cd2u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005cd5u, 0x00005cc9u, 0x00005cd3u, 0x000500c6u, + 0x00000006u, 0x00005cd7u, 0x00005cd5u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005cdau, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00005cd7u, 0x0004003du, 0x0000000fu, 0x00005cdbu, 0x00005cdau, + 0x00040071u, 0x00000006u, 0x00005cdcu, 0x00005cdbu, 0x000500c2u, 0x00000006u, 0x00005cdfu, 0x00005cdcu, + 0x00005cceu, 0x000500c7u, 0x00000006u, 0x00005ce0u, 0x00005cdfu, 0x00000e98u, 0x000500c7u, 0x00000006u, + 0x00005ce2u, 0x00005ce0u, 0x00000ed0u, 0x000500c4u, 0x00000006u, 0x00005ce4u, 0x00005ce2u, 0x00000238u, + 0x000500c4u, 0x00000006u, 0x00005ce6u, 0x00005ce2u, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x00005ce7u, + 0x00005ce4u, 0x00005ce6u, 0x000500c2u, 0x00000006u, 0x00005ce9u, 0x00005ce2u, 0x00000232u, 0x000500c5u, + 0x00000006u, 0x00005ceau, 0x00005ce7u, 0x00005ce9u, 0x00040071u, 0x00000011u, 0x00005cecu, 0x00005ceau, + 0x0004007cu, 0x00000012u, 0x00005cedu, 0x00005cecu, 0x000500c7u, 0x00000006u, 0x00005cf5u, 0x00005ce0u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005cf6u, 0x00005cf5u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00005cf7u, 0x00005cf6u, 0x0004007cu, 0x00000012u, 0x00005cf8u, 0x00005cf7u, 0x00070050u, 0x00000013u, + 0x00005cf9u, 0x00005cedu, 0x00005cedu, 0x00005cedu, 0x00005cf8u, 0x000300f7u, 0x00004d3au, 0x00000000u, + 0x000400fau, 0x00002319u, 0x00004d2bu, 0x00004d3au, 0x000200f8u, 0x00004d2bu, 0x00050050u, 0x000000f2u, + 0x00004d2eu, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004d2fu, 0x00004d2eu, 0x00050051u, + 0x00000006u, 0x00005d06u, 0x00004d2fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d07u, 0x0000495eu, + 0x00005d06u, 0x00050080u, 0x00000006u, 0x00005d08u, 0x0000495cu, 0x00005d07u, 0x00050051u, 0x00000006u, + 0x00005d0au, 0x00004d2fu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005d0bu, 0x00005d0au, 0x0000022fu, + 0x00050080u, 0x00000006u, 0x00005d0du, 0x00005d08u, 0x00005d0bu, 0x000500c7u, 0x00000006u, 0x00005d0fu, + 0x00005d0du, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00005d12u, 0x00005d0au, 0x000500c7u, 0x00000006u, + 0x00005d13u, 0x00005d12u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005d14u, 0x00005d13u, 0x00000709u, + 0x000500c7u, 0x00000006u, 0x00005d18u, 0x00005d06u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005d19u, + 0x00005d18u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005d1bu, 0x00005d0fu, 0x00005d19u, 0x000500c6u, + 0x00000006u, 0x00005d1du, 0x00005d1bu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005d20u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00005d1du, 0x0004003du, 0x0000000fu, 0x00005d21u, 0x00005d20u, + 0x00040071u, 0x00000006u, 0x00005d22u, 0x00005d21u, 0x000500c2u, 0x00000006u, 0x00005d25u, 0x00005d22u, + 0x00005d14u, 0x000500c7u, 0x00000006u, 0x00005d26u, 0x00005d25u, 0x00000e98u, 0x000500c7u, 0x00000006u, + 0x00005d28u, 0x00005d26u, 0x00000ed0u, 0x000500c4u, 0x00000006u, 0x00005d2au, 0x00005d28u, 0x00000238u, + 0x000500c4u, 0x00000006u, 0x00005d2cu, 0x00005d28u, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x00005d2du, + 0x00005d2au, 0x00005d2cu, 0x000500c2u, 0x00000006u, 0x00005d2fu, 0x00005d28u, 0x00000232u, 0x000500c5u, + 0x00000006u, 0x00005d30u, 0x00005d2du, 0x00005d2fu, 0x00040071u, 0x00000011u, 0x00005d32u, 0x00005d30u, + 0x0004007cu, 0x00000012u, 0x00005d33u, 0x00005d32u, 0x000500c7u, 0x00000006u, 0x00005d3bu, 0x00005d26u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005d3cu, 0x00005d3bu, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00005d3du, 0x00005d3cu, 0x0004007cu, 0x00000012u, 0x00005d3eu, 0x00005d3du, 0x00070050u, 0x00000013u, + 0x00005d3fu, 0x00005d33u, 0x00005d33u, 0x00005d33u, 0x00005d3eu, 0x00050050u, 0x000000f2u, 0x00004d35u, + 0x0000824fu, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004d36u, 0x00004d35u, 0x00050051u, 0x00000006u, + 0x00005d4cu, 0x00004d36u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d4du, 0x0000495eu, 0x00005d4cu, + 0x00050080u, 0x00000006u, 0x00005d4eu, 0x0000495cu, 0x00005d4du, 0x00050051u, 0x00000006u, 0x00005d50u, + 0x00004d36u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005d51u, 0x00005d50u, 0x0000022fu, 0x00050080u, + 0x00000006u, 0x00005d53u, 0x00005d4eu, 0x00005d51u, 0x000500c7u, 0x00000006u, 0x00005d55u, 0x00005d53u, + 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00005d58u, 0x00005d50u, 0x000500c7u, 0x00000006u, 0x00005d59u, + 0x00005d58u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005d5au, 0x00005d59u, 0x00000709u, 0x000500c7u, + 0x00000006u, 0x00005d5eu, 0x00005d4cu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005d5fu, 0x00005d5eu, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005d61u, 0x00005d55u, 0x00005d5fu, 0x000500c6u, 0x00000006u, + 0x00005d63u, 0x00005d61u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005d66u, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00005d63u, 0x0004003du, 0x0000000fu, 0x00005d67u, 0x00005d66u, 0x00040071u, + 0x00000006u, 0x00005d68u, 0x00005d67u, 0x000500c2u, 0x00000006u, 0x00005d6bu, 0x00005d68u, 0x00005d5au, + 0x000500c7u, 0x00000006u, 0x00005d6cu, 0x00005d6bu, 0x00000e98u, 0x000500c7u, 0x00000006u, 0x00005d6eu, + 0x00005d6cu, 0x00000ed0u, 0x000500c4u, 0x00000006u, 0x00005d70u, 0x00005d6eu, 0x00000238u, 0x000500c4u, + 0x00000006u, 0x00005d72u, 0x00005d6eu, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x00005d73u, 0x00005d70u, + 0x00005d72u, 0x000500c2u, 0x00000006u, 0x00005d75u, 0x00005d6eu, 0x00000232u, 0x000500c5u, 0x00000006u, + 0x00005d76u, 0x00005d73u, 0x00005d75u, 0x00040071u, 0x00000011u, 0x00005d78u, 0x00005d76u, 0x0004007cu, + 0x00000012u, 0x00005d79u, 0x00005d78u, 0x000500c7u, 0x00000006u, 0x00005d81u, 0x00005d6cu, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00005d82u, 0x00005d81u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005d83u, + 0x00005d82u, 0x0004007cu, 0x00000012u, 0x00005d84u, 0x00005d83u, 0x00070050u, 0x00000013u, 0x00005d85u, + 0x00005d79u, 0x00005d79u, 0x00005d79u, 0x00005d84u, 0x000200f9u, 0x00004d3au, 0x000200f8u, 0x00004d3au, + 0x000700f5u, 0x00000013u, 0x00008619u, 0x00008550u, 0x00004d24u, 0x00005d85u, 0x00004d2bu, 0x000700f5u, + 0x00000013u, 0x00008521u, 0x00008455u, 0x00004d24u, 0x00005d3fu, 0x00004d2bu, 0x000300f7u, 0x00004d44u, + 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004d3cu, 0x00004d44u, 0x000200f8u, 0x00004d3cu, 0x00050050u, + 0x000000f2u, 0x00004d3fu, 0x00008257u, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004d40u, 0x00004d3fu, + 0x00050051u, 0x00000006u, 0x00005d92u, 0x00004d40u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d93u, + 0x0000495eu, 0x00005d92u, 0x00050080u, 0x00000006u, 0x00005d94u, 0x0000495cu, 0x00005d93u, 0x00050051u, + 0x00000006u, 0x00005d96u, 0x00004d40u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005d97u, 0x00005d96u, + 0x0000022fu, 0x00050080u, 0x00000006u, 0x00005d99u, 0x00005d94u, 0x00005d97u, 0x000500c7u, 0x00000006u, + 0x00005d9bu, 0x00005d99u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00005d9eu, 0x00005d96u, 0x000500c7u, + 0x00000006u, 0x00005d9fu, 0x00005d9eu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005da0u, 0x00005d9fu, + 0x00000709u, 0x000500c7u, 0x00000006u, 0x00005da4u, 0x00005d92u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00005da5u, 0x00005da4u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005da7u, 0x00005d9bu, 0x00005da5u, + 0x000500c6u, 0x00000006u, 0x00005da9u, 0x00005da7u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005dacu, + 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005da9u, 0x0004003du, 0x0000000fu, 0x00005dadu, + 0x00005dacu, 0x00040071u, 0x00000006u, 0x00005daeu, 0x00005dadu, 0x000500c2u, 0x00000006u, 0x00005db1u, + 0x00005daeu, 0x00005da0u, 0x000500c7u, 0x00000006u, 0x00005db2u, 0x00005db1u, 0x00000e98u, 0x000500c7u, + 0x00000006u, 0x00005db4u, 0x00005db2u, 0x00000ed0u, 0x000500c4u, 0x00000006u, 0x00005db6u, 0x00005db4u, + 0x00000238u, 0x000500c4u, 0x00000006u, 0x00005db8u, 0x00005db4u, 0x0000022fu, 0x000500c5u, 0x00000006u, + 0x00005db9u, 0x00005db6u, 0x00005db8u, 0x000500c2u, 0x00000006u, 0x00005dbbu, 0x00005db4u, 0x00000232u, + 0x000500c5u, 0x00000006u, 0x00005dbcu, 0x00005db9u, 0x00005dbbu, 0x00040071u, 0x00000011u, 0x00005dbeu, + 0x00005dbcu, 0x0004007cu, 0x00000012u, 0x00005dbfu, 0x00005dbeu, 0x000500c7u, 0x00000006u, 0x00005dc7u, + 0x00005db2u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005dc8u, 0x00005dc7u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00005dc9u, 0x00005dc8u, 0x0004007cu, 0x00000012u, 0x00005dcau, 0x00005dc9u, 0x00070050u, + 0x00000013u, 0x00005dcbu, 0x00005dbfu, 0x00005dbfu, 0x00005dbfu, 0x00005dcau, 0x000200f9u, 0x00004d44u, + 0x000200f8u, 0x00004d44u, 0x000700f5u, 0x00000013u, 0x00008710u, 0x00008645u, 0x00004d3au, 0x00005dcbu, + 0x00004d3cu, 0x000200f9u, 0x00004da8u, 0x000200f8u, 0x00004da8u, 0x000d00f5u, 0x00000013u, 0x0000870fu, + 0x00008645u, 0x00004d1fu, 0x00008710u, 0x00004d44u, 0x00008712u, 0x00004d65u, 0x00008714u, 0x00004d86u, + 0x00008716u, 0x00004da7u, 0x000d00f5u, 0x00000013u, 0x00008617u, 0x00008550u, 0x00004d1fu, 0x00008619u, + 0x00004d44u, 0x0000861bu, 0x00004d65u, 0x0000861du, 0x00004d86u, 0x0000861fu, 0x00004da7u, 0x000d00f5u, + 0x00000013u, 0x0000851fu, 0x00008455u, 0x00004d1fu, 0x00008521u, 0x00004d44u, 0x00008523u, 0x00004d65u, + 0x00008525u, 0x00004d86u, 0x00008527u, 0x00004da7u, 0x000d00f5u, 0x00000013u, 0x000083b2u, 0x000082e9u, + 0x00004d1fu, 0x00005cf9u, 0x00004d44u, 0x00005e07u, 0x00004d65u, 0x00005ef6u, 0x00004d86u, 0x00005fd4u, + 0x00004da7u, 0x000200f9u, 0x00004e12u, 0x000200f8u, 0x00004caau, 0x00040071u, 0x00000006u, 0x00004cadu, + 0x00004962u, 0x0004007cu, 0x00000008u, 0x00004caeu, 0x00004cadu, 0x000300f7u, 0x00004d1eu, 0x00000000u, + 0x000700fbu, 0x00004caeu, 0x00004cafu, 0x00000000u, 0x00004cd0u, 0x00000001u, 0x00004cfdu, 0x000200f8u, + 0x00004cfdu, 0x0004007cu, 0x000000b4u, 0x00004cffu, 0x00008276u, 0x00050051u, 0x00000006u, 0x00005c2au, + 0x00004cffu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005c2bu, 0x0000495eu, 0x00005c2au, 0x00050080u, + 0x00000006u, 0x00005c2cu, 0x0000495cu, 0x00005c2bu, 0x00050051u, 0x00000006u, 0x00005c2eu, 0x00004cffu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005c30u, 0x00005c2cu, 0x00005c2eu, 0x000500c7u, 0x00000006u, + 0x00005c32u, 0x00005c30u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x00005c36u, 0x00005c2au, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00005c37u, 0x00005c36u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005c39u, + 0x00005c32u, 0x00005c37u, 0x000500c6u, 0x00000006u, 0x00005c3bu, 0x00005c39u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00005c3eu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005c3bu, 0x0004003du, + 0x0000000fu, 0x00005c3fu, 0x00005c3eu, 0x00040071u, 0x00000006u, 0x00005c40u, 0x00005c3fu, 0x00040071u, + 0x00000011u, 0x00005c42u, 0x00005c40u, 0x0004007cu, 0x00000012u, 0x00005c43u, 0x00005c42u, 0x00070050u, + 0x00000013u, 0x00005c44u, 0x00005c43u, 0x00005c43u, 0x00005c43u, 0x00005c43u, 0x000300f7u, 0x00004d13u, + 0x00000000u, 0x000400fau, 0x00002319u, 0x00004d04u, 0x00004d13u, 0x000200f8u, 0x00004d04u, 0x00050050u, + 0x000000f2u, 0x00004d07u, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004d08u, 0x00004d07u, + 0x00050051u, 0x00000006u, 0x00005c4fu, 0x00004d08u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005c50u, + 0x0000495eu, 0x00005c4fu, 0x00050080u, 0x00000006u, 0x00005c51u, 0x0000495cu, 0x00005c50u, 0x00050051u, + 0x00000006u, 0x00005c53u, 0x00004d08u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005c55u, 0x00005c51u, + 0x00005c53u, 0x000500c7u, 0x00000006u, 0x00005c57u, 0x00005c55u, 0x00000e75u, 0x000500c7u, 0x00000006u, + 0x00005c5bu, 0x00005c4fu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005c5cu, 0x00005c5bu, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00005c5eu, 0x00005c57u, 0x00005c5cu, 0x000500c6u, 0x00000006u, 0x00005c60u, + 0x00005c5eu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005c63u, 0x00000e8fu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00005c60u, 0x0004003du, 0x0000000fu, 0x00005c64u, 0x00005c63u, 0x00040071u, 0x00000006u, + 0x00005c65u, 0x00005c64u, 0x00040071u, 0x00000011u, 0x00005c67u, 0x00005c65u, 0x0004007cu, 0x00000012u, + 0x00005c68u, 0x00005c67u, 0x00070050u, 0x00000013u, 0x00005c69u, 0x00005c68u, 0x00005c68u, 0x00005c68u, + 0x00005c68u, 0x00050050u, 0x000000f2u, 0x00004d0eu, 0x0000824fu, 0x00004b1au, 0x0004007cu, 0x000000b4u, + 0x00004d0fu, 0x00004d0eu, 0x00050051u, 0x00000006u, 0x00005c74u, 0x00004d0fu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005c75u, 0x0000495eu, 0x00005c74u, 0x00050080u, 0x00000006u, 0x00005c76u, 0x0000495cu, + 0x00005c75u, 0x00050051u, 0x00000006u, 0x00005c78u, 0x00004d0fu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005c7au, 0x00005c76u, 0x00005c78u, 0x000500c7u, 0x00000006u, 0x00005c7cu, 0x00005c7au, 0x00000e75u, + 0x000500c7u, 0x00000006u, 0x00005c80u, 0x00005c74u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005c81u, + 0x00005c80u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005c83u, 0x00005c7cu, 0x00005c81u, 0x000500c6u, + 0x00000006u, 0x00005c85u, 0x00005c83u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005c88u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00005c85u, 0x0004003du, 0x0000000fu, 0x00005c89u, 0x00005c88u, + 0x00040071u, 0x00000006u, 0x00005c8au, 0x00005c89u, 0x00040071u, 0x00000011u, 0x00005c8cu, 0x00005c8au, + 0x0004007cu, 0x00000012u, 0x00005c8du, 0x00005c8cu, 0x00070050u, 0x00000013u, 0x00005c8eu, 0x00005c8du, + 0x00005c8du, 0x00005c8du, 0x00005c8du, 0x000200f9u, 0x00004d13u, 0x000200f8u, 0x00004d13u, 0x000700f5u, + 0x00000013u, 0x00008616u, 0x00008550u, 0x00004cfdu, 0x00005c8eu, 0x00004d04u, 0x000700f5u, 0x00000013u, + 0x0000851eu, 0x00008455u, 0x00004cfdu, 0x00005c69u, 0x00004d04u, 0x000300f7u, 0x00004d1du, 0x00000000u, + 0x000400fau, 0x00004b24u, 0x00004d15u, 0x00004d1du, 0x000200f8u, 0x00004d15u, 0x00050050u, 0x000000f2u, + 0x00004d18u, 0x00008257u, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004d19u, 0x00004d18u, 0x00050051u, + 0x00000006u, 0x00005c99u, 0x00004d19u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005c9au, 0x0000495eu, + 0x00005c99u, 0x00050080u, 0x00000006u, 0x00005c9bu, 0x0000495cu, 0x00005c9au, 0x00050051u, 0x00000006u, + 0x00005c9du, 0x00004d19u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005c9fu, 0x00005c9bu, 0x00005c9du, + 0x000500c7u, 0x00000006u, 0x00005ca1u, 0x00005c9fu, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x00005ca5u, + 0x00005c99u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005ca6u, 0x00005ca5u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00005ca8u, 0x00005ca1u, 0x00005ca6u, 0x000500c6u, 0x00000006u, 0x00005caau, 0x00005ca8u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00005cadu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00005caau, 0x0004003du, 0x0000000fu, 0x00005caeu, 0x00005cadu, 0x00040071u, 0x00000006u, 0x00005cafu, + 0x00005caeu, 0x00040071u, 0x00000011u, 0x00005cb1u, 0x00005cafu, 0x0004007cu, 0x00000012u, 0x00005cb2u, + 0x00005cb1u, 0x00070050u, 0x00000013u, 0x00005cb3u, 0x00005cb2u, 0x00005cb2u, 0x00005cb2u, 0x00005cb2u, + 0x000200f9u, 0x00004d1du, 0x000200f8u, 0x00004d1du, 0x000700f5u, 0x00000013u, 0x0000870du, 0x00008645u, + 0x00004d13u, 0x00005cb3u, 0x00004d15u, 0x000200f9u, 0x00004d1eu, 0x000200f8u, 0x00004cd0u, 0x0004007cu, + 0x000000b4u, 0x00004cd2u, 0x00008276u, 0x00040071u, 0x00000006u, 0x00004cd5u, 0x00004964u, 0x00050051u, + 0x00000006u, 0x00005b5bu, 0x00004cd2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b5cu, 0x0000495eu, + 0x00005b5bu, 0x00050080u, 0x00000006u, 0x00005b5du, 0x0000495cu, 0x00005b5cu, 0x00050051u, 0x00000006u, + 0x00005b5fu, 0x00004cd2u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005b60u, 0x00005b5fu, 0x0000022fu, + 0x00050080u, 0x00000006u, 0x00005b62u, 0x00005b5du, 0x00005b60u, 0x000500c7u, 0x00000006u, 0x00005b64u, + 0x00005b62u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00005b67u, 0x00005b5fu, 0x000500c7u, 0x00000006u, + 0x00005b68u, 0x00005b67u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005b69u, 0x00005b68u, 0x00000709u, + 0x000500c7u, 0x00000006u, 0x00005b6du, 0x00005b5bu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005b6eu, + 0x00005b6du, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005b70u, 0x00005b64u, 0x00005b6eu, 0x000500c6u, + 0x00000006u, 0x00005b72u, 0x00005b70u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005b75u, 0x00000e8fu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00005b72u, 0x0004003du, 0x0000000fu, 0x00005b76u, 0x00005b75u, + 0x00040071u, 0x00000006u, 0x00005b77u, 0x00005b76u, 0x000500c2u, 0x00000006u, 0x00005b7au, 0x00005b77u, + 0x00005b69u, 0x000500c7u, 0x00000006u, 0x00005b7bu, 0x00005b7au, 0x00000e98u, 0x000500c4u, 0x00000006u, + 0x00005b7du, 0x00004cd5u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005b7fu, 0x00005b7bu, 0x00005b7du, + 0x00040071u, 0x00000011u, 0x00005b81u, 0x00005b7fu, 0x0004007cu, 0x00000012u, 0x00005b82u, 0x00005b81u, + 0x00070050u, 0x00000013u, 0x00005b83u, 0x00005b82u, 0x00005b82u, 0x00005b82u, 0x00005b82u, 0x000300f7u, + 0x00004cefu, 0x00000000u, 0x000400fau, 0x00002319u, 0x00004cdau, 0x00004cefu, 0x000200f8u, 0x00004cdau, + 0x00050050u, 0x000000f2u, 0x00004cddu, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004cdeu, + 0x00004cddu, 0x00050051u, 0x00000006u, 0x00005b8fu, 0x00004cdeu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005b90u, 0x0000495eu, 0x00005b8fu, 0x00050080u, 0x00000006u, 0x00005b91u, 0x0000495cu, 0x00005b90u, + 0x00050051u, 0x00000006u, 0x00005b93u, 0x00004cdeu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005b94u, + 0x00005b93u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00005b96u, 0x00005b91u, 0x00005b94u, 0x000500c7u, + 0x00000006u, 0x00005b98u, 0x00005b96u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x00005b9bu, 0x00005b93u, + 0x000500c7u, 0x00000006u, 0x00005b9cu, 0x00005b9bu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005b9du, + 0x00005b9cu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00005ba1u, 0x00005b8fu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00005ba2u, 0x00005ba1u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005ba4u, 0x00005b98u, + 0x00005ba2u, 0x000500c6u, 0x00000006u, 0x00005ba6u, 0x00005ba4u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00005ba9u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005ba6u, 0x0004003du, 0x0000000fu, + 0x00005baau, 0x00005ba9u, 0x00040071u, 0x00000006u, 0x00005babu, 0x00005baau, 0x000500c2u, 0x00000006u, + 0x00005baeu, 0x00005babu, 0x00005b9du, 0x000500c7u, 0x00000006u, 0x00005bafu, 0x00005baeu, 0x00000e98u, + 0x000500c5u, 0x00000006u, 0x00005bb3u, 0x00005bafu, 0x00005b7du, 0x00040071u, 0x00000011u, 0x00005bb5u, + 0x00005bb3u, 0x0004007cu, 0x00000012u, 0x00005bb6u, 0x00005bb5u, 0x00070050u, 0x00000013u, 0x00005bb7u, + 0x00005bb6u, 0x00005bb6u, 0x00005bb6u, 0x00005bb6u, 0x00050050u, 0x000000f2u, 0x00004ce7u, 0x0000824fu, + 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004ce8u, 0x00004ce7u, 0x00050051u, 0x00000006u, 0x00005bc3u, + 0x00004ce8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005bc4u, 0x0000495eu, 0x00005bc3u, 0x00050080u, + 0x00000006u, 0x00005bc5u, 0x0000495cu, 0x00005bc4u, 0x00050051u, 0x00000006u, 0x00005bc7u, 0x00004ce8u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005bc8u, 0x00005bc7u, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00005bcau, 0x00005bc5u, 0x00005bc8u, 0x000500c7u, 0x00000006u, 0x00005bccu, 0x00005bcau, 0x00000e75u, + 0x000400c8u, 0x00000006u, 0x00005bcfu, 0x00005bc7u, 0x000500c7u, 0x00000006u, 0x00005bd0u, 0x00005bcfu, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005bd1u, 0x00005bd0u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x00005bd5u, 0x00005bc3u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005bd6u, 0x00005bd5u, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00005bd8u, 0x00005bccu, 0x00005bd6u, 0x000500c6u, 0x00000006u, 0x00005bdau, + 0x00005bd8u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005bddu, 0x00000e8fu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00005bdau, 0x0004003du, 0x0000000fu, 0x00005bdeu, 0x00005bddu, 0x00040071u, 0x00000006u, + 0x00005bdfu, 0x00005bdeu, 0x000500c2u, 0x00000006u, 0x00005be2u, 0x00005bdfu, 0x00005bd1u, 0x000500c7u, + 0x00000006u, 0x00005be3u, 0x00005be2u, 0x00000e98u, 0x000500c5u, 0x00000006u, 0x00005be7u, 0x00005be3u, + 0x00005b7du, 0x00040071u, 0x00000011u, 0x00005be9u, 0x00005be7u, 0x0004007cu, 0x00000012u, 0x00005beau, + 0x00005be9u, 0x00070050u, 0x00000013u, 0x00005bebu, 0x00005beau, 0x00005beau, 0x00005beau, 0x00005beau, + 0x000200f9u, 0x00004cefu, 0x000200f8u, 0x00004cefu, 0x000700f5u, 0x00000013u, 0x00008614u, 0x00008550u, + 0x00004cd0u, 0x00005bebu, 0x00004cdau, 0x000700f5u, 0x00000013u, 0x0000851cu, 0x00008455u, 0x00004cd0u, + 0x00005bb7u, 0x00004cdau, 0x000300f7u, 0x00004cfcu, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004cf1u, + 0x00004cfcu, 0x000200f8u, 0x00004cf1u, 0x00050050u, 0x000000f2u, 0x00004cf4u, 0x00008257u, 0x00004b1au, + 0x0004007cu, 0x000000b4u, 0x00004cf5u, 0x00004cf4u, 0x00050051u, 0x00000006u, 0x00005bf7u, 0x00004cf5u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005bf8u, 0x0000495eu, 0x00005bf7u, 0x00050080u, 0x00000006u, + 0x00005bf9u, 0x0000495cu, 0x00005bf8u, 0x00050051u, 0x00000006u, 0x00005bfbu, 0x00004cf5u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00005bfcu, 0x00005bfbu, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00005bfeu, + 0x00005bf9u, 0x00005bfcu, 0x000500c7u, 0x00000006u, 0x00005c00u, 0x00005bfeu, 0x00000e75u, 0x000400c8u, + 0x00000006u, 0x00005c03u, 0x00005bfbu, 0x000500c7u, 0x00000006u, 0x00005c04u, 0x00005c03u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00005c05u, 0x00005c04u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00005c09u, + 0x00005bf7u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005c0au, 0x00005c09u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00005c0cu, 0x00005c00u, 0x00005c0au, 0x000500c6u, 0x00000006u, 0x00005c0eu, 0x00005c0cu, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00005c11u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00005c0eu, 0x0004003du, 0x0000000fu, 0x00005c12u, 0x00005c11u, 0x00040071u, 0x00000006u, 0x00005c13u, + 0x00005c12u, 0x000500c2u, 0x00000006u, 0x00005c16u, 0x00005c13u, 0x00005c05u, 0x000500c7u, 0x00000006u, + 0x00005c17u, 0x00005c16u, 0x00000e98u, 0x000500c5u, 0x00000006u, 0x00005c1bu, 0x00005c17u, 0x00005b7du, + 0x00040071u, 0x00000011u, 0x00005c1du, 0x00005c1bu, 0x0004007cu, 0x00000012u, 0x00005c1eu, 0x00005c1du, + 0x00070050u, 0x00000013u, 0x00005c1fu, 0x00005c1eu, 0x00005c1eu, 0x00005c1eu, 0x00005c1eu, 0x000200f9u, + 0x00004cfcu, 0x000200f8u, 0x00004cfcu, 0x000700f5u, 0x00000013u, 0x0000870bu, 0x00008645u, 0x00004cefu, + 0x00005c1fu, 0x00004cf1u, 0x000200f9u, 0x00004d1eu, 0x000200f8u, 0x00004cafu, 0x0004007cu, 0x000000b4u, + 0x00004cb1u, 0x00008276u, 0x00050051u, 0x00000006u, 0x00005aa6u, 0x00004cb1u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005aa7u, 0x0000495eu, 0x00005aa6u, 0x00050080u, 0x00000006u, 0x00005aa8u, 0x0000495cu, + 0x00005aa7u, 0x00050051u, 0x00000006u, 0x00005aaau, 0x00004cb1u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00005aabu, 0x00005aaau, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005aadu, 0x00005aa8u, 0x00005aabu, + 0x000500c7u, 0x00000006u, 0x00005aafu, 0x00005aadu, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00005ab1u, + 0x00005aafu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005ab4u, 0x00005aa6u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00005ab5u, 0x00005ab4u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005ab7u, 0x00005ab1u, + 0x00005ab5u, 0x000500c6u, 0x00000006u, 0x00005ab9u, 0x00005ab7u, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00005abcu, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005ab9u, 0x0004003du, 0x00000011u, + 0x00005abdu, 0x00005abcu, 0x00040071u, 0x00000006u, 0x00005abeu, 0x00005abdu, 0x000500c2u, 0x00000006u, + 0x00005ac0u, 0x00005abeu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00005ac1u, 0x00005ac0u, 0x0004007cu, + 0x00000012u, 0x00005ac2u, 0x00005ac1u, 0x000500c7u, 0x00000006u, 0x00005ac4u, 0x00005abeu, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00005ac5u, 0x00005ac4u, 0x0004007cu, 0x00000012u, 0x00005ac6u, 0x00005ac5u, + 0x00050050u, 0x000001b1u, 0x00005ac7u, 0x00005ac2u, 0x00005ac6u, 0x0009004fu, 0x00000013u, 0x00005ac8u, + 0x00005ac7u, 0x00005ac7u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004cc5u, + 0x00000000u, 0x000400fau, 0x00002319u, 0x00004cb6u, 0x00004cc5u, 0x000200f8u, 0x00004cb6u, 0x00050050u, + 0x000000f2u, 0x00004cb9u, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004cbau, 0x00004cb9u, + 0x00050051u, 0x00000006u, 0x00005ad3u, 0x00004cbau, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005ad4u, + 0x0000495eu, 0x00005ad3u, 0x00050080u, 0x00000006u, 0x00005ad5u, 0x0000495cu, 0x00005ad4u, 0x00050051u, + 0x00000006u, 0x00005ad7u, 0x00004cbau, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005ad8u, 0x00005ad7u, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005adau, 0x00005ad5u, 0x00005ad8u, 0x000500c7u, 0x00000006u, + 0x00005adcu, 0x00005adau, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00005adeu, 0x00005adcu, 0x0000022fu, + 0x000500c7u, 0x00000006u, 0x00005ae1u, 0x00005ad3u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005ae2u, + 0x00005ae1u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005ae4u, 0x00005adeu, 0x00005ae2u, 0x000500c6u, + 0x00000006u, 0x00005ae6u, 0x00005ae4u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005ae9u, 0x00000f5cu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x00005ae6u, 0x0004003du, 0x00000011u, 0x00005aeau, 0x00005ae9u, + 0x00040071u, 0x00000006u, 0x00005aebu, 0x00005aeau, 0x000500c2u, 0x00000006u, 0x00005aedu, 0x00005aebu, + 0x00000262u, 0x00040071u, 0x00000011u, 0x00005aeeu, 0x00005aedu, 0x0004007cu, 0x00000012u, 0x00005aefu, + 0x00005aeeu, 0x000500c7u, 0x00000006u, 0x00005af1u, 0x00005aebu, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00005af2u, 0x00005af1u, 0x0004007cu, 0x00000012u, 0x00005af3u, 0x00005af2u, 0x00050050u, 0x000001b1u, + 0x00005af4u, 0x00005aefu, 0x00005af3u, 0x0009004fu, 0x00000013u, 0x00005af5u, 0x00005af4u, 0x00005af4u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x00004cc0u, 0x0000824fu, + 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004cc1u, 0x00004cc0u, 0x00050051u, 0x00000006u, 0x00005b00u, + 0x00004cc1u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b01u, 0x0000495eu, 0x00005b00u, 0x00050080u, + 0x00000006u, 0x00005b02u, 0x0000495cu, 0x00005b01u, 0x00050051u, 0x00000006u, 0x00005b04u, 0x00004cc1u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00005b05u, 0x00005b04u, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x00005b07u, 0x00005b02u, 0x00005b05u, 0x000500c7u, 0x00000006u, 0x00005b09u, 0x00005b07u, 0x00000e75u, + 0x000500c2u, 0x00000006u, 0x00005b0bu, 0x00005b09u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005b0eu, + 0x00005b00u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005b0fu, 0x00005b0eu, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00005b11u, 0x00005b0bu, 0x00005b0fu, 0x000500c6u, 0x00000006u, 0x00005b13u, 0x00005b11u, + 0x00000461u, 0x00080041u, 0x00000697u, 0x00005b16u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00005b13u, 0x0004003du, 0x00000011u, 0x00005b17u, 0x00005b16u, 0x00040071u, 0x00000006u, 0x00005b18u, + 0x00005b17u, 0x000500c2u, 0x00000006u, 0x00005b1au, 0x00005b18u, 0x00000262u, 0x00040071u, 0x00000011u, + 0x00005b1bu, 0x00005b1au, 0x0004007cu, 0x00000012u, 0x00005b1cu, 0x00005b1bu, 0x000500c7u, 0x00000006u, + 0x00005b1eu, 0x00005b18u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005b1fu, 0x00005b1eu, 0x0004007cu, + 0x00000012u, 0x00005b20u, 0x00005b1fu, 0x00050050u, 0x000001b1u, 0x00005b21u, 0x00005b1cu, 0x00005b20u, + 0x0009004fu, 0x00000013u, 0x00005b22u, 0x00005b21u, 0x00005b21u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00004cc5u, 0x000200f8u, 0x00004cc5u, 0x000700f5u, 0x00000013u, 0x00008612u, + 0x00008550u, 0x00004cafu, 0x00005b22u, 0x00004cb6u, 0x000700f5u, 0x00000013u, 0x0000851au, 0x00008455u, + 0x00004cafu, 0x00005af5u, 0x00004cb6u, 0x000300f7u, 0x00004ccfu, 0x00000000u, 0x000400fau, 0x00004b24u, + 0x00004cc7u, 0x00004ccfu, 0x000200f8u, 0x00004cc7u, 0x00050050u, 0x000000f2u, 0x00004ccau, 0x00008257u, + 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004ccbu, 0x00004ccau, 0x00050051u, 0x00000006u, 0x00005b2du, + 0x00004ccbu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b2eu, 0x0000495eu, 0x00005b2du, 0x00050080u, + 0x00000006u, 0x00005b2fu, 0x0000495cu, 0x00005b2eu, 0x00050051u, 0x00000006u, 0x00005b31u, 0x00004ccbu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00005b32u, 0x00005b31u, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x00005b34u, 0x00005b2fu, 0x00005b32u, 0x000500c7u, 0x00000006u, 0x00005b36u, 0x00005b34u, 0x00000e75u, + 0x000500c2u, 0x00000006u, 0x00005b38u, 0x00005b36u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005b3bu, + 0x00005b2du, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005b3cu, 0x00005b3bu, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00005b3eu, 0x00005b38u, 0x00005b3cu, 0x000500c6u, 0x00000006u, 0x00005b40u, 0x00005b3eu, + 0x00000461u, 0x00080041u, 0x00000697u, 0x00005b43u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00005b40u, 0x0004003du, 0x00000011u, 0x00005b44u, 0x00005b43u, 0x00040071u, 0x00000006u, 0x00005b45u, + 0x00005b44u, 0x000500c2u, 0x00000006u, 0x00005b47u, 0x00005b45u, 0x00000262u, 0x00040071u, 0x00000011u, + 0x00005b48u, 0x00005b47u, 0x0004007cu, 0x00000012u, 0x00005b49u, 0x00005b48u, 0x000500c7u, 0x00000006u, + 0x00005b4bu, 0x00005b45u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005b4cu, 0x00005b4bu, 0x0004007cu, + 0x00000012u, 0x00005b4du, 0x00005b4cu, 0x00050050u, 0x000001b1u, 0x00005b4eu, 0x00005b49u, 0x00005b4du, + 0x0009004fu, 0x00000013u, 0x00005b4fu, 0x00005b4eu, 0x00005b4eu, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00004ccfu, 0x000200f8u, 0x00004ccfu, 0x000700f5u, 0x00000013u, 0x00008709u, + 0x00008645u, 0x00004cc5u, 0x00005b4fu, 0x00004cc7u, 0x000200f9u, 0x00004d1eu, 0x000200f8u, 0x00004d1eu, + 0x000900f5u, 0x00000013u, 0x00008708u, 0x00008709u, 0x00004ccfu, 0x0000870bu, 0x00004cfcu, 0x0000870du, + 0x00004d1du, 0x000900f5u, 0x00000013u, 0x00008610u, 0x00008612u, 0x00004ccfu, 0x00008614u, 0x00004cfcu, + 0x00008616u, 0x00004d1du, 0x000900f5u, 0x00000013u, 0x00008518u, 0x0000851au, 0x00004ccfu, 0x0000851cu, + 0x00004cfcu, 0x0000851eu, 0x00004d1du, 0x000900f5u, 0x00000013u, 0x000083abu, 0x00005ac8u, 0x00004ccfu, + 0x00005b83u, 0x00004cfcu, 0x00005c44u, 0x00004d1du, 0x000200f9u, 0x00004e12u, 0x000200f8u, 0x00004c7cu, + 0x000500c3u, 0x00000008u, 0x00004c7eu, 0x0000824fu, 0x0000022fu, 0x0004007cu, 0x00000006u, 0x00004c7fu, + 0x00004c7eu, 0x00050082u, 0x00000008u, 0x00004c83u, 0x00008257u, 0x0000824fu, 0x00050080u, 0x00000008u, + 0x00004c84u, 0x00008257u, 0x00004c83u, 0x000500c3u, 0x00000008u, 0x00004c85u, 0x00004c84u, 0x0000022fu, + 0x0004007cu, 0x00000006u, 0x00004c86u, 0x00004c85u, 0x00050050u, 0x000000f2u, 0x00004c89u, 0x0000824fu, + 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004c8au, 0x00004c89u, 0x00050051u, 0x00000006u, 0x00005964u, + 0x00004c8au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005965u, 0x0000495eu, 0x00005964u, 0x00050080u, + 0x00000006u, 0x00005966u, 0x0000495cu, 0x00005965u, 0x00050051u, 0x00000006u, 0x00005969u, 0x00004c8au, + 0x00000000u, 0x00050080u, 0x00000006u, 0x0000596au, 0x00005966u, 0x00005969u, 0x000500c7u, 0x00000006u, + 0x0000596cu, 0x0000596au, 0x00000f2du, 0x00050084u, 0x00000006u, 0x0000596fu, 0x00004c7fu, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x00005970u, 0x00005966u, 0x0000596fu, 0x000500c7u, 0x00000006u, 0x00005972u, + 0x00005970u, 0x00000f2du, 0x000500c7u, 0x00000006u, 0x00005976u, 0x00005964u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00005977u, 0x00005976u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005979u, 0x0000596cu, + 0x00005977u, 0x000500c6u, 0x00000006u, 0x0000597bu, 0x00005979u, 0x00000469u, 0x000500c2u, 0x00000006u, + 0x0000597du, 0x00005972u, 0x0000022fu, 0x000500c4u, 0x00000006u, 0x00005981u, 0x00005976u, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x00005983u, 0x0000597du, 0x00005981u, 0x000500c6u, 0x00000006u, 0x00005985u, + 0x00005983u, 0x00000461u, 0x000500c5u, 0x00000006u, 0x00005988u, 0x0000597bu, 0x00000f56u, 0x00080041u, + 0x00000676u, 0x00005989u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005988u, 0x0004003du, + 0x0000000fu, 0x0000598au, 0x00005989u, 0x00080041u, 0x00000697u, 0x0000598du, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00005985u, 0x0004003du, 0x00000011u, 0x0000598eu, 0x0000598du, 0x000500c2u, + 0x00000011u, 0x00005990u, 0x0000598eu, 0x000010b3u, 0x000500c7u, 0x00000011u, 0x00005991u, 0x00005990u, + 0x00000350u, 0x00040071u, 0x0000000fu, 0x00005992u, 0x00005991u, 0x000500c2u, 0x00000011u, 0x00005994u, + 0x0000598eu, 0x0000021fu, 0x000500c7u, 0x00000011u, 0x00005995u, 0x00005994u, 0x00000350u, 0x00040071u, + 0x0000000fu, 0x00005996u, 0x00005995u, 0x00040071u, 0x00000011u, 0x00005998u, 0x00005992u, 0x0004007cu, + 0x00000012u, 0x00005999u, 0x00005998u, 0x00050082u, 0x00000012u, 0x0000599au, 0x00005999u, 0x000010bfu, + 0x00040071u, 0x00000011u, 0x0000599cu, 0x00005996u, 0x0004007cu, 0x00000012u, 0x0000599du, 0x0000599cu, + 0x00050082u, 0x00000012u, 0x0000599eu, 0x0000599du, 0x000010bfu, 0x00040071u, 0x00000011u, 0x000059a0u, + 0x0000598au, 0x0004007cu, 0x00000012u, 0x000059a1u, 0x000059a0u, 0x00070050u, 0x00000013u, 0x000059a5u, + 0x0000599au, 0x0000599eu, 0x000059a1u, 0x000059a1u, 0x000300f7u, 0x00004ca9u, 0x00000000u, 0x000400fau, + 0x00002319u, 0x00004c90u, 0x00004ca9u, 0x000200f8u, 0x00004c90u, 0x00050050u, 0x000000f2u, 0x00004c93u, + 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004c94u, 0x00004c93u, 0x00050051u, 0x00000006u, + 0x000059b6u, 0x00004c94u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000059b7u, 0x0000495eu, 0x000059b6u, + 0x00050080u, 0x00000006u, 0x000059b8u, 0x0000495cu, 0x000059b7u, 0x00050051u, 0x00000006u, 0x000059bbu, + 0x00004c94u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000059bcu, 0x000059b8u, 0x000059bbu, 0x000500c7u, + 0x00000006u, 0x000059beu, 0x000059bcu, 0x00000f2du, 0x00050084u, 0x00000006u, 0x000059c1u, 0x00004c86u, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x000059c2u, 0x000059b8u, 0x000059c1u, 0x000500c7u, 0x00000006u, + 0x000059c4u, 0x000059c2u, 0x00000f2du, 0x000500c7u, 0x00000006u, 0x000059c8u, 0x000059b6u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x000059c9u, 0x000059c8u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000059cbu, + 0x000059beu, 0x000059c9u, 0x000500c6u, 0x00000006u, 0x000059cdu, 0x000059cbu, 0x00000469u, 0x000500c2u, + 0x00000006u, 0x000059cfu, 0x000059c4u, 0x0000022fu, 0x000500c4u, 0x00000006u, 0x000059d3u, 0x000059c8u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000059d5u, 0x000059cfu, 0x000059d3u, 0x000500c6u, 0x00000006u, + 0x000059d7u, 0x000059d5u, 0x00000461u, 0x000500c5u, 0x00000006u, 0x000059dau, 0x000059cdu, 0x00000f56u, + 0x00080041u, 0x00000676u, 0x000059dbu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000059dau, + 0x0004003du, 0x0000000fu, 0x000059dcu, 0x000059dbu, 0x00080041u, 0x00000697u, 0x000059dfu, 0x00000f5cu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x000059d7u, 0x0004003du, 0x00000011u, 0x000059e0u, 0x000059dfu, + 0x000500c2u, 0x00000011u, 0x000059e2u, 0x000059e0u, 0x000010b3u, 0x000500c7u, 0x00000011u, 0x000059e3u, + 0x000059e2u, 0x00000350u, 0x00040071u, 0x0000000fu, 0x000059e4u, 0x000059e3u, 0x000500c2u, 0x00000011u, + 0x000059e6u, 0x000059e0u, 0x0000021fu, 0x000500c7u, 0x00000011u, 0x000059e7u, 0x000059e6u, 0x00000350u, + 0x00040071u, 0x0000000fu, 0x000059e8u, 0x000059e7u, 0x00040071u, 0x00000011u, 0x000059eau, 0x000059e4u, + 0x0004007cu, 0x00000012u, 0x000059ebu, 0x000059eau, 0x00050082u, 0x00000012u, 0x000059ecu, 0x000059ebu, + 0x000010bfu, 0x00040071u, 0x00000011u, 0x000059eeu, 0x000059e8u, 0x0004007cu, 0x00000012u, 0x000059efu, + 0x000059eeu, 0x00050082u, 0x00000012u, 0x000059f0u, 0x000059efu, 0x000010bfu, 0x00040071u, 0x00000011u, + 0x000059f2u, 0x000059dcu, 0x0004007cu, 0x00000012u, 0x000059f3u, 0x000059f2u, 0x00070050u, 0x00000013u, + 0x000059f7u, 0x000059ecu, 0x000059f0u, 0x000059f3u, 0x000059f3u, 0x00050050u, 0x000000f2u, 0x00004c9bu, + 0x0000824fu, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004c9cu, 0x00004c9bu, 0x00050051u, 0x00000006u, + 0x00005a08u, 0x00004c9cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005a09u, 0x0000495eu, 0x00005a08u, + 0x00050080u, 0x00000006u, 0x00005a0au, 0x0000495cu, 0x00005a09u, 0x00050051u, 0x00000006u, 0x00005a0du, + 0x00004c9cu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005a0eu, 0x00005a0au, 0x00005a0du, 0x000500c7u, + 0x00000006u, 0x00005a10u, 0x00005a0eu, 0x00000f2du, 0x00050080u, 0x00000006u, 0x00005a14u, 0x00005a0au, + 0x0000596fu, 0x000500c7u, 0x00000006u, 0x00005a16u, 0x00005a14u, 0x00000f2du, 0x000500c7u, 0x00000006u, + 0x00005a1au, 0x00005a08u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005a1bu, 0x00005a1au, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00005a1du, 0x00005a10u, 0x00005a1bu, 0x000500c6u, 0x00000006u, 0x00005a1fu, + 0x00005a1du, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00005a21u, 0x00005a16u, 0x0000022fu, 0x000500c4u, + 0x00000006u, 0x00005a25u, 0x00005a1au, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005a27u, 0x00005a21u, + 0x00005a25u, 0x000500c6u, 0x00000006u, 0x00005a29u, 0x00005a27u, 0x00000461u, 0x000500c5u, 0x00000006u, + 0x00005a2cu, 0x00005a1fu, 0x00000f56u, 0x00080041u, 0x00000676u, 0x00005a2du, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00005a2cu, 0x0004003du, 0x0000000fu, 0x00005a2eu, 0x00005a2du, 0x00080041u, + 0x00000697u, 0x00005a31u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005a29u, 0x0004003du, + 0x00000011u, 0x00005a32u, 0x00005a31u, 0x000500c2u, 0x00000011u, 0x00005a34u, 0x00005a32u, 0x000010b3u, + 0x000500c7u, 0x00000011u, 0x00005a35u, 0x00005a34u, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00005a36u, + 0x00005a35u, 0x000500c2u, 0x00000011u, 0x00005a38u, 0x00005a32u, 0x0000021fu, 0x000500c7u, 0x00000011u, + 0x00005a39u, 0x00005a38u, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00005a3au, 0x00005a39u, 0x00040071u, + 0x00000011u, 0x00005a3cu, 0x00005a36u, 0x0004007cu, 0x00000012u, 0x00005a3du, 0x00005a3cu, 0x00050082u, + 0x00000012u, 0x00005a3eu, 0x00005a3du, 0x000010bfu, 0x00040071u, 0x00000011u, 0x00005a40u, 0x00005a3au, + 0x0004007cu, 0x00000012u, 0x00005a41u, 0x00005a40u, 0x00050082u, 0x00000012u, 0x00005a42u, 0x00005a41u, + 0x000010bfu, 0x00040071u, 0x00000011u, 0x00005a44u, 0x00005a2eu, 0x0004007cu, 0x00000012u, 0x00005a45u, + 0x00005a44u, 0x00070050u, 0x00000013u, 0x00005a49u, 0x00005a3eu, 0x00005a42u, 0x00005a45u, 0x00005a45u, + 0x00050050u, 0x000000f2u, 0x00004ca3u, 0x00008257u, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004ca4u, + 0x00004ca3u, 0x00050051u, 0x00000006u, 0x00005a5au, 0x00004ca4u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005a5bu, 0x0000495eu, 0x00005a5au, 0x00050080u, 0x00000006u, 0x00005a5cu, 0x0000495cu, 0x00005a5bu, + 0x00050051u, 0x00000006u, 0x00005a5fu, 0x00004ca4u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005a60u, + 0x00005a5cu, 0x00005a5fu, 0x000500c7u, 0x00000006u, 0x00005a62u, 0x00005a60u, 0x00000f2du, 0x00050080u, + 0x00000006u, 0x00005a66u, 0x00005a5cu, 0x000059c1u, 0x000500c7u, 0x00000006u, 0x00005a68u, 0x00005a66u, + 0x00000f2du, 0x000500c7u, 0x00000006u, 0x00005a6cu, 0x00005a5au, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00005a6du, 0x00005a6cu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005a6fu, 0x00005a62u, 0x00005a6du, + 0x000500c6u, 0x00000006u, 0x00005a71u, 0x00005a6fu, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00005a73u, + 0x00005a68u, 0x0000022fu, 0x000500c4u, 0x00000006u, 0x00005a77u, 0x00005a6cu, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00005a79u, 0x00005a73u, 0x00005a77u, 0x000500c6u, 0x00000006u, 0x00005a7bu, 0x00005a79u, + 0x00000461u, 0x000500c5u, 0x00000006u, 0x00005a7eu, 0x00005a71u, 0x00000f56u, 0x00080041u, 0x00000676u, + 0x00005a7fu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005a7eu, 0x0004003du, 0x0000000fu, + 0x00005a80u, 0x00005a7fu, 0x00080041u, 0x00000697u, 0x00005a83u, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00005a7bu, 0x0004003du, 0x00000011u, 0x00005a84u, 0x00005a83u, 0x000500c2u, 0x00000011u, + 0x00005a86u, 0x00005a84u, 0x000010b3u, 0x000500c7u, 0x00000011u, 0x00005a87u, 0x00005a86u, 0x00000350u, + 0x00040071u, 0x0000000fu, 0x00005a88u, 0x00005a87u, 0x000500c2u, 0x00000011u, 0x00005a8au, 0x00005a84u, + 0x0000021fu, 0x000500c7u, 0x00000011u, 0x00005a8bu, 0x00005a8au, 0x00000350u, 0x00040071u, 0x0000000fu, + 0x00005a8cu, 0x00005a8bu, 0x00040071u, 0x00000011u, 0x00005a8eu, 0x00005a88u, 0x0004007cu, 0x00000012u, + 0x00005a8fu, 0x00005a8eu, 0x00050082u, 0x00000012u, 0x00005a90u, 0x00005a8fu, 0x000010bfu, 0x00040071u, + 0x00000011u, 0x00005a92u, 0x00005a8cu, 0x0004007cu, 0x00000012u, 0x00005a93u, 0x00005a92u, 0x00050082u, + 0x00000012u, 0x00005a94u, 0x00005a93u, 0x000010bfu, 0x00040071u, 0x00000011u, 0x00005a96u, 0x00005a80u, + 0x0004007cu, 0x00000012u, 0x00005a97u, 0x00005a96u, 0x00070050u, 0x00000013u, 0x00005a9bu, 0x00005a90u, + 0x00005a94u, 0x00005a97u, 0x00005a97u, 0x000200f9u, 0x00004ca9u, 0x000200f8u, 0x00004ca9u, 0x000700f5u, + 0x00000013u, 0x00008707u, 0x00008645u, 0x00004c7cu, 0x00005a9bu, 0x00004c90u, 0x000700f5u, 0x00000013u, + 0x0000860fu, 0x00008550u, 0x00004c7cu, 0x00005a49u, 0x00004c90u, 0x000700f5u, 0x00000013u, 0x00008517u, + 0x00008455u, 0x00004c7cu, 0x000059f7u, 0x00004c90u, 0x000200f9u, 0x00004e12u, 0x000200f8u, 0x00004bf2u, + 0x00040071u, 0x00000006u, 0x00004bf5u, 0x00004962u, 0x0004007cu, 0x00000008u, 0x00004bf6u, 0x00004bf5u, + 0x000300f7u, 0x00004c7bu, 0x00000000u, 0x000b00fbu, 0x00004bf6u, 0x00004c7bu, 0x00000000u, 0x00004bf7u, + 0x00000001u, 0x00004c18u, 0x00000002u, 0x00004c39u, 0x00000003u, 0x00004c5au, 0x000200f8u, 0x00004c5au, + 0x0004007cu, 0x000000b4u, 0x00004c5cu, 0x00008276u, 0x00050051u, 0x00000006u, 0x00005873u, 0x00004c5cu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005874u, 0x0000495eu, 0x00005873u, 0x00050080u, 0x00000006u, + 0x00005875u, 0x0000495cu, 0x00005874u, 0x00050051u, 0x00000006u, 0x00005877u, 0x00004c5cu, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00005878u, 0x00005877u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x0000587au, + 0x00005875u, 0x00005878u, 0x000500c7u, 0x00000006u, 0x0000587cu, 0x0000587au, 0x00000f2du, 0x000500c2u, + 0x00000006u, 0x0000587eu, 0x0000587cu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005881u, 0x00005873u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005882u, 0x00005881u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00005884u, 0x0000587eu, 0x00005882u, 0x000500c6u, 0x00000006u, 0x00005886u, 0x00005884u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00005889u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005886u, + 0x0004003du, 0x00000011u, 0x0000588au, 0x00005889u, 0x00040071u, 0x00000006u, 0x0000588bu, 0x0000588au, + 0x000500c5u, 0x00000006u, 0x0000588eu, 0x00005886u, 0x00000f5eu, 0x00080041u, 0x00000697u, 0x0000588fu, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000588eu, 0x0004003du, 0x00000011u, 0x00005890u, + 0x0000588fu, 0x00040071u, 0x00000006u, 0x00005891u, 0x00005890u, 0x000500c2u, 0x00000006u, 0x00005893u, + 0x0000588bu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00005894u, 0x00005893u, 0x0004007cu, 0x00000012u, + 0x00005895u, 0x00005894u, 0x000500c7u, 0x00000006u, 0x00005897u, 0x0000588bu, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00005898u, 0x00005897u, 0x0004007cu, 0x00000012u, 0x00005899u, 0x00005898u, 0x000500c2u, + 0x00000006u, 0x0000589bu, 0x00005891u, 0x00000262u, 0x00040071u, 0x00000011u, 0x0000589cu, 0x0000589bu, + 0x0004007cu, 0x00000012u, 0x0000589du, 0x0000589cu, 0x000500c7u, 0x00000006u, 0x0000589fu, 0x00005891u, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x000058a0u, 0x0000589fu, 0x0004007cu, 0x00000012u, 0x000058a1u, + 0x000058a0u, 0x00070050u, 0x00000013u, 0x000058a2u, 0x00005895u, 0x00005899u, 0x0000589du, 0x000058a1u, + 0x000300f7u, 0x00004c70u, 0x00000000u, 0x000400fau, 0x00002319u, 0x00004c61u, 0x00004c70u, 0x000200f8u, + 0x00004c61u, 0x00050050u, 0x000000f2u, 0x00004c64u, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, + 0x00004c65u, 0x00004c64u, 0x00050051u, 0x00000006u, 0x000058aeu, 0x00004c65u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000058afu, 0x0000495eu, 0x000058aeu, 0x00050080u, 0x00000006u, 0x000058b0u, 0x0000495cu, + 0x000058afu, 0x00050051u, 0x00000006u, 0x000058b2u, 0x00004c65u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000058b3u, 0x000058b2u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000058b5u, 0x000058b0u, 0x000058b3u, + 0x000500c7u, 0x00000006u, 0x000058b7u, 0x000058b5u, 0x00000f2du, 0x000500c2u, 0x00000006u, 0x000058b9u, + 0x000058b7u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000058bcu, 0x000058aeu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000058bdu, 0x000058bcu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000058bfu, 0x000058b9u, + 0x000058bdu, 0x000500c6u, 0x00000006u, 0x000058c1u, 0x000058bfu, 0x00000461u, 0x00080041u, 0x00000697u, + 0x000058c4u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000058c1u, 0x0004003du, 0x00000011u, + 0x000058c5u, 0x000058c4u, 0x00040071u, 0x00000006u, 0x000058c6u, 0x000058c5u, 0x000500c5u, 0x00000006u, + 0x000058c9u, 0x000058c1u, 0x00000f5eu, 0x00080041u, 0x00000697u, 0x000058cau, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x000058c9u, 0x0004003du, 0x00000011u, 0x000058cbu, 0x000058cau, 0x00040071u, + 0x00000006u, 0x000058ccu, 0x000058cbu, 0x000500c2u, 0x00000006u, 0x000058ceu, 0x000058c6u, 0x00000262u, + 0x00040071u, 0x00000011u, 0x000058cfu, 0x000058ceu, 0x0004007cu, 0x00000012u, 0x000058d0u, 0x000058cfu, + 0x000500c7u, 0x00000006u, 0x000058d2u, 0x000058c6u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000058d3u, + 0x000058d2u, 0x0004007cu, 0x00000012u, 0x000058d4u, 0x000058d3u, 0x000500c2u, 0x00000006u, 0x000058d6u, + 0x000058ccu, 0x00000262u, 0x00040071u, 0x00000011u, 0x000058d7u, 0x000058d6u, 0x0004007cu, 0x00000012u, + 0x000058d8u, 0x000058d7u, 0x000500c7u, 0x00000006u, 0x000058dau, 0x000058ccu, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x000058dbu, 0x000058dau, 0x0004007cu, 0x00000012u, 0x000058dcu, 0x000058dbu, 0x00070050u, + 0x00000013u, 0x000058ddu, 0x000058d0u, 0x000058d4u, 0x000058d8u, 0x000058dcu, 0x00050050u, 0x000000f2u, + 0x00004c6bu, 0x0000824fu, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004c6cu, 0x00004c6bu, 0x00050051u, + 0x00000006u, 0x000058e9u, 0x00004c6cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000058eau, 0x0000495eu, + 0x000058e9u, 0x00050080u, 0x00000006u, 0x000058ebu, 0x0000495cu, 0x000058eau, 0x00050051u, 0x00000006u, + 0x000058edu, 0x00004c6cu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000058eeu, 0x000058edu, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x000058f0u, 0x000058ebu, 0x000058eeu, 0x000500c7u, 0x00000006u, 0x000058f2u, + 0x000058f0u, 0x00000f2du, 0x000500c2u, 0x00000006u, 0x000058f4u, 0x000058f2u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x000058f7u, 0x000058e9u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000058f8u, 0x000058f7u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000058fau, 0x000058f4u, 0x000058f8u, 0x000500c6u, 0x00000006u, + 0x000058fcu, 0x000058fau, 0x00000461u, 0x00080041u, 0x00000697u, 0x000058ffu, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x000058fcu, 0x0004003du, 0x00000011u, 0x00005900u, 0x000058ffu, 0x00040071u, + 0x00000006u, 0x00005901u, 0x00005900u, 0x000500c5u, 0x00000006u, 0x00005904u, 0x000058fcu, 0x00000f5eu, + 0x00080041u, 0x00000697u, 0x00005905u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005904u, + 0x0004003du, 0x00000011u, 0x00005906u, 0x00005905u, 0x00040071u, 0x00000006u, 0x00005907u, 0x00005906u, + 0x000500c2u, 0x00000006u, 0x00005909u, 0x00005901u, 0x00000262u, 0x00040071u, 0x00000011u, 0x0000590au, + 0x00005909u, 0x0004007cu, 0x00000012u, 0x0000590bu, 0x0000590au, 0x000500c7u, 0x00000006u, 0x0000590du, + 0x00005901u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000590eu, 0x0000590du, 0x0004007cu, 0x00000012u, + 0x0000590fu, 0x0000590eu, 0x000500c2u, 0x00000006u, 0x00005911u, 0x00005907u, 0x00000262u, 0x00040071u, + 0x00000011u, 0x00005912u, 0x00005911u, 0x0004007cu, 0x00000012u, 0x00005913u, 0x00005912u, 0x000500c7u, + 0x00000006u, 0x00005915u, 0x00005907u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005916u, 0x00005915u, + 0x0004007cu, 0x00000012u, 0x00005917u, 0x00005916u, 0x00070050u, 0x00000013u, 0x00005918u, 0x0000590bu, + 0x0000590fu, 0x00005913u, 0x00005917u, 0x000200f9u, 0x00004c70u, 0x000200f8u, 0x00004c70u, 0x000700f5u, + 0x00000013u, 0x0000860eu, 0x00008550u, 0x00004c5au, 0x00005918u, 0x00004c61u, 0x000700f5u, 0x00000013u, + 0x00008516u, 0x00008455u, 0x00004c5au, 0x000058ddu, 0x00004c61u, 0x000300f7u, 0x00004c7au, 0x00000000u, + 0x000400fau, 0x00004b24u, 0x00004c72u, 0x00004c7au, 0x000200f8u, 0x00004c72u, 0x00050050u, 0x000000f2u, + 0x00004c75u, 0x00008257u, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004c76u, 0x00004c75u, 0x00050051u, + 0x00000006u, 0x00005924u, 0x00004c76u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005925u, 0x0000495eu, + 0x00005924u, 0x00050080u, 0x00000006u, 0x00005926u, 0x0000495cu, 0x00005925u, 0x00050051u, 0x00000006u, + 0x00005928u, 0x00004c76u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005929u, 0x00005928u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x0000592bu, 0x00005926u, 0x00005929u, 0x000500c7u, 0x00000006u, 0x0000592du, + 0x0000592bu, 0x00000f2du, 0x000500c2u, 0x00000006u, 0x0000592fu, 0x0000592du, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00005932u, 0x00005924u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005933u, 0x00005932u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005935u, 0x0000592fu, 0x00005933u, 0x000500c6u, 0x00000006u, + 0x00005937u, 0x00005935u, 0x00000461u, 0x00080041u, 0x00000697u, 0x0000593au, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00005937u, 0x0004003du, 0x00000011u, 0x0000593bu, 0x0000593au, 0x00040071u, + 0x00000006u, 0x0000593cu, 0x0000593bu, 0x000500c5u, 0x00000006u, 0x0000593fu, 0x00005937u, 0x00000f5eu, + 0x00080041u, 0x00000697u, 0x00005940u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000593fu, + 0x0004003du, 0x00000011u, 0x00005941u, 0x00005940u, 0x00040071u, 0x00000006u, 0x00005942u, 0x00005941u, + 0x000500c2u, 0x00000006u, 0x00005944u, 0x0000593cu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00005945u, + 0x00005944u, 0x0004007cu, 0x00000012u, 0x00005946u, 0x00005945u, 0x000500c7u, 0x00000006u, 0x00005948u, + 0x0000593cu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005949u, 0x00005948u, 0x0004007cu, 0x00000012u, + 0x0000594au, 0x00005949u, 0x000500c2u, 0x00000006u, 0x0000594cu, 0x00005942u, 0x00000262u, 0x00040071u, + 0x00000011u, 0x0000594du, 0x0000594cu, 0x0004007cu, 0x00000012u, 0x0000594eu, 0x0000594du, 0x000500c7u, + 0x00000006u, 0x00005950u, 0x00005942u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005951u, 0x00005950u, + 0x0004007cu, 0x00000012u, 0x00005952u, 0x00005951u, 0x00070050u, 0x00000013u, 0x00005953u, 0x00005946u, + 0x0000594au, 0x0000594eu, 0x00005952u, 0x000200f9u, 0x00004c7au, 0x000200f8u, 0x00004c7au, 0x000700f5u, + 0x00000013u, 0x00008705u, 0x00008645u, 0x00004c70u, 0x00005953u, 0x00004c72u, 0x000200f9u, 0x00004c7bu, + 0x000200f8u, 0x00004c39u, 0x0004007cu, 0x000000b4u, 0x00004c3bu, 0x00008276u, 0x00050051u, 0x00000006u, + 0x00005767u, 0x00004c3bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005768u, 0x0000495eu, 0x00005767u, + 0x00050080u, 0x00000006u, 0x00005769u, 0x0000495cu, 0x00005768u, 0x00050051u, 0x00000006u, 0x0000576bu, + 0x00004c3bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000576cu, 0x0000576bu, 0x0000038bu, 0x00050080u, + 0x00000006u, 0x0000576eu, 0x00005769u, 0x0000576cu, 0x000500c7u, 0x00000006u, 0x00005770u, 0x0000576eu, + 0x00000e75u, 0x000500c2u, 0x00000006u, 0x00005772u, 0x00005770u, 0x0000022fu, 0x000500c7u, 0x00000006u, + 0x00005775u, 0x00005767u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005776u, 0x00005775u, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x00005778u, 0x00005772u, 0x00005776u, 0x000500c6u, 0x00000006u, 0x0000577au, + 0x00005778u, 0x00000461u, 0x00080041u, 0x00000697u, 0x0000577du, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x0000577au, 0x0004003du, 0x00000011u, 0x0000577eu, 0x0000577du, 0x00040071u, 0x00000006u, + 0x0000577fu, 0x0000577eu, 0x00060050u, 0x00000311u, 0x00005787u, 0x0000577fu, 0x0000577fu, 0x0000577fu, + 0x000500c2u, 0x00000311u, 0x00005788u, 0x00005787u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x0000578au, + 0x00005788u, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x0000578du, 0x0000578au, 0x0000c219u, 0x000500c2u, + 0x00000311u, 0x00005790u, 0x0000578au, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00005791u, 0x0000578du, + 0x00005790u, 0x000500c7u, 0x00000006u, 0x00005793u, 0x0000577fu, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00005794u, 0x00005793u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00005796u, 0x00005791u, 0x0004007cu, + 0x000004bbu, 0x00005797u, 0x00005796u, 0x00040071u, 0x00000011u, 0x00005799u, 0x00005794u, 0x0004007cu, + 0x00000012u, 0x0000579au, 0x00005799u, 0x00050051u, 0x00000012u, 0x0000579bu, 0x00005797u, 0x00000000u, + 0x00050051u, 0x00000012u, 0x0000579cu, 0x00005797u, 0x00000001u, 0x00050051u, 0x00000012u, 0x0000579du, + 0x00005797u, 0x00000002u, 0x00070050u, 0x00000013u, 0x0000579eu, 0x0000579bu, 0x0000579cu, 0x0000579du, + 0x0000579au, 0x000300f7u, 0x00004c4fu, 0x00000000u, 0x000400fau, 0x00002319u, 0x00004c40u, 0x00004c4fu, + 0x000200f8u, 0x00004c40u, 0x00050050u, 0x000000f2u, 0x00004c43u, 0x00008257u, 0x00004b18u, 0x0004007cu, + 0x000000b4u, 0x00004c44u, 0x00004c43u, 0x00050051u, 0x00000006u, 0x000057aau, 0x00004c44u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000057abu, 0x0000495eu, 0x000057aau, 0x00050080u, 0x00000006u, 0x000057acu, + 0x0000495cu, 0x000057abu, 0x00050051u, 0x00000006u, 0x000057aeu, 0x00004c44u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x000057afu, 0x000057aeu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000057b1u, 0x000057acu, + 0x000057afu, 0x000500c7u, 0x00000006u, 0x000057b3u, 0x000057b1u, 0x00000e75u, 0x000500c2u, 0x00000006u, + 0x000057b5u, 0x000057b3u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000057b8u, 0x000057aau, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x000057b9u, 0x000057b8u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000057bbu, + 0x000057b5u, 0x000057b9u, 0x000500c6u, 0x00000006u, 0x000057bdu, 0x000057bbu, 0x00000461u, 0x00080041u, + 0x00000697u, 0x000057c0u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000057bdu, 0x0004003du, + 0x00000011u, 0x000057c1u, 0x000057c0u, 0x00040071u, 0x00000006u, 0x000057c2u, 0x000057c1u, 0x00060050u, + 0x00000311u, 0x000057cau, 0x000057c2u, 0x000057c2u, 0x000057c2u, 0x000500c2u, 0x00000311u, 0x000057cbu, + 0x000057cau, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x000057cdu, 0x000057cbu, 0x0000c218u, 0x000500c4u, + 0x00000311u, 0x000057d0u, 0x000057cdu, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x000057d3u, 0x000057cdu, + 0x0000c21au, 0x000500c5u, 0x00000311u, 0x000057d4u, 0x000057d0u, 0x000057d3u, 0x000500c7u, 0x00000006u, + 0x000057d6u, 0x000057c2u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000057d7u, 0x000057d6u, 0x000006c8u, + 0x00040071u, 0x000004bfu, 0x000057d9u, 0x000057d4u, 0x0004007cu, 0x000004bbu, 0x000057dau, 0x000057d9u, + 0x00040071u, 0x00000011u, 0x000057dcu, 0x000057d7u, 0x0004007cu, 0x00000012u, 0x000057ddu, 0x000057dcu, + 0x00050051u, 0x00000012u, 0x000057deu, 0x000057dau, 0x00000000u, 0x00050051u, 0x00000012u, 0x000057dfu, + 0x000057dau, 0x00000001u, 0x00050051u, 0x00000012u, 0x000057e0u, 0x000057dau, 0x00000002u, 0x00070050u, + 0x00000013u, 0x000057e1u, 0x000057deu, 0x000057dfu, 0x000057e0u, 0x000057ddu, 0x00050050u, 0x000000f2u, + 0x00004c4au, 0x0000824fu, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004c4bu, 0x00004c4au, 0x00050051u, + 0x00000006u, 0x000057edu, 0x00004c4bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000057eeu, 0x0000495eu, + 0x000057edu, 0x00050080u, 0x00000006u, 0x000057efu, 0x0000495cu, 0x000057eeu, 0x00050051u, 0x00000006u, + 0x000057f1u, 0x00004c4bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000057f2u, 0x000057f1u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x000057f4u, 0x000057efu, 0x000057f2u, 0x000500c7u, 0x00000006u, 0x000057f6u, + 0x000057f4u, 0x00000e75u, 0x000500c2u, 0x00000006u, 0x000057f8u, 0x000057f6u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x000057fbu, 0x000057edu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000057fcu, 0x000057fbu, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000057feu, 0x000057f8u, 0x000057fcu, 0x000500c6u, 0x00000006u, + 0x00005800u, 0x000057feu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005803u, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00005800u, 0x0004003du, 0x00000011u, 0x00005804u, 0x00005803u, 0x00040071u, + 0x00000006u, 0x00005805u, 0x00005804u, 0x00060050u, 0x00000311u, 0x0000580du, 0x00005805u, 0x00005805u, + 0x00005805u, 0x000500c2u, 0x00000311u, 0x0000580eu, 0x0000580du, 0x00000e36u, 0x000500c7u, 0x00000311u, + 0x00005810u, 0x0000580eu, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x00005813u, 0x00005810u, 0x0000c219u, + 0x000500c2u, 0x00000311u, 0x00005816u, 0x00005810u, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00005817u, + 0x00005813u, 0x00005816u, 0x000500c7u, 0x00000006u, 0x00005819u, 0x00005805u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x0000581au, 0x00005819u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x0000581cu, 0x00005817u, + 0x0004007cu, 0x000004bbu, 0x0000581du, 0x0000581cu, 0x00040071u, 0x00000011u, 0x0000581fu, 0x0000581au, + 0x0004007cu, 0x00000012u, 0x00005820u, 0x0000581fu, 0x00050051u, 0x00000012u, 0x00005821u, 0x0000581du, + 0x00000000u, 0x00050051u, 0x00000012u, 0x00005822u, 0x0000581du, 0x00000001u, 0x00050051u, 0x00000012u, + 0x00005823u, 0x0000581du, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005824u, 0x00005821u, 0x00005822u, + 0x00005823u, 0x00005820u, 0x000200f9u, 0x00004c4fu, 0x000200f8u, 0x00004c4fu, 0x000700f5u, 0x00000013u, + 0x0000860cu, 0x00008550u, 0x00004c39u, 0x00005824u, 0x00004c40u, 0x000700f5u, 0x00000013u, 0x00008514u, + 0x00008455u, 0x00004c39u, 0x000057e1u, 0x00004c40u, 0x000300f7u, 0x00004c59u, 0x00000000u, 0x000400fau, + 0x00004b24u, 0x00004c51u, 0x00004c59u, 0x000200f8u, 0x00004c51u, 0x00050050u, 0x000000f2u, 0x00004c54u, + 0x00008257u, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004c55u, 0x00004c54u, 0x00050051u, 0x00000006u, + 0x00005830u, 0x00004c55u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005831u, 0x0000495eu, 0x00005830u, + 0x00050080u, 0x00000006u, 0x00005832u, 0x0000495cu, 0x00005831u, 0x00050051u, 0x00000006u, 0x00005834u, + 0x00004c55u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005835u, 0x00005834u, 0x0000038bu, 0x00050080u, + 0x00000006u, 0x00005837u, 0x00005832u, 0x00005835u, 0x000500c7u, 0x00000006u, 0x00005839u, 0x00005837u, + 0x00000e75u, 0x000500c2u, 0x00000006u, 0x0000583bu, 0x00005839u, 0x0000022fu, 0x000500c7u, 0x00000006u, + 0x0000583eu, 0x00005830u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000583fu, 0x0000583eu, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x00005841u, 0x0000583bu, 0x0000583fu, 0x000500c6u, 0x00000006u, 0x00005843u, + 0x00005841u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005846u, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00005843u, 0x0004003du, 0x00000011u, 0x00005847u, 0x00005846u, 0x00040071u, 0x00000006u, + 0x00005848u, 0x00005847u, 0x00060050u, 0x00000311u, 0x00005850u, 0x00005848u, 0x00005848u, 0x00005848u, + 0x000500c2u, 0x00000311u, 0x00005851u, 0x00005850u, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x00005853u, + 0x00005851u, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x00005856u, 0x00005853u, 0x0000c219u, 0x000500c2u, + 0x00000311u, 0x00005859u, 0x00005853u, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x0000585au, 0x00005856u, + 0x00005859u, 0x000500c7u, 0x00000006u, 0x0000585cu, 0x00005848u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x0000585du, 0x0000585cu, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x0000585fu, 0x0000585au, 0x0004007cu, + 0x000004bbu, 0x00005860u, 0x0000585fu, 0x00040071u, 0x00000011u, 0x00005862u, 0x0000585du, 0x0004007cu, + 0x00000012u, 0x00005863u, 0x00005862u, 0x00050051u, 0x00000012u, 0x00005864u, 0x00005860u, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00005865u, 0x00005860u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00005866u, + 0x00005860u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005867u, 0x00005864u, 0x00005865u, 0x00005866u, + 0x00005863u, 0x000200f9u, 0x00004c59u, 0x000200f8u, 0x00004c59u, 0x000700f5u, 0x00000013u, 0x00008703u, + 0x00008645u, 0x00004c4fu, 0x00005867u, 0x00004c51u, 0x000200f9u, 0x00004c7bu, 0x000200f8u, 0x00004c18u, + 0x0004007cu, 0x000000b4u, 0x00004c1au, 0x00008276u, 0x00050051u, 0x00000006u, 0x000056d2u, 0x00004c1au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000056d3u, 0x0000495eu, 0x000056d2u, 0x00050080u, 0x00000006u, + 0x000056d4u, 0x0000495cu, 0x000056d3u, 0x00050051u, 0x00000006u, 0x000056d6u, 0x00004c1au, 0x00000000u, + 0x00050080u, 0x00000006u, 0x000056d8u, 0x000056d4u, 0x000056d6u, 0x000500c7u, 0x00000006u, 0x000056dau, + 0x000056d8u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x000056deu, 0x000056d2u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000056dfu, 0x000056deu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000056e1u, 0x000056dau, + 0x000056dfu, 0x000500c6u, 0x00000006u, 0x000056e3u, 0x000056e1u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000056e6u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000056e3u, 0x0004003du, 0x0000000fu, + 0x000056e7u, 0x000056e6u, 0x00040071u, 0x00000006u, 0x000056e8u, 0x000056e7u, 0x00040071u, 0x00000011u, + 0x000056eau, 0x000056e8u, 0x0004007cu, 0x00000012u, 0x000056ebu, 0x000056eau, 0x00070050u, 0x00000013u, + 0x000056ecu, 0x000056ebu, 0x000056ebu, 0x000056ebu, 0x000056ebu, 0x000300f7u, 0x00004c2eu, 0x00000000u, + 0x000400fau, 0x00002319u, 0x00004c1fu, 0x00004c2eu, 0x000200f8u, 0x00004c1fu, 0x00050050u, 0x000000f2u, + 0x00004c22u, 0x00008257u, 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004c23u, 0x00004c22u, 0x00050051u, + 0x00000006u, 0x000056f7u, 0x00004c23u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000056f8u, 0x0000495eu, + 0x000056f7u, 0x00050080u, 0x00000006u, 0x000056f9u, 0x0000495cu, 0x000056f8u, 0x00050051u, 0x00000006u, + 0x000056fbu, 0x00004c23u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000056fdu, 0x000056f9u, 0x000056fbu, + 0x000500c7u, 0x00000006u, 0x000056ffu, 0x000056fdu, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x00005703u, + 0x000056f7u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005704u, 0x00005703u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00005706u, 0x000056ffu, 0x00005704u, 0x000500c6u, 0x00000006u, 0x00005708u, 0x00005706u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x0000570bu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00005708u, 0x0004003du, 0x0000000fu, 0x0000570cu, 0x0000570bu, 0x00040071u, 0x00000006u, 0x0000570du, + 0x0000570cu, 0x00040071u, 0x00000011u, 0x0000570fu, 0x0000570du, 0x0004007cu, 0x00000012u, 0x00005710u, + 0x0000570fu, 0x00070050u, 0x00000013u, 0x00005711u, 0x00005710u, 0x00005710u, 0x00005710u, 0x00005710u, + 0x00050050u, 0x000000f2u, 0x00004c29u, 0x0000824fu, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004c2au, + 0x00004c29u, 0x00050051u, 0x00000006u, 0x0000571cu, 0x00004c2au, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000571du, 0x0000495eu, 0x0000571cu, 0x00050080u, 0x00000006u, 0x0000571eu, 0x0000495cu, 0x0000571du, + 0x00050051u, 0x00000006u, 0x00005720u, 0x00004c2au, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005722u, + 0x0000571eu, 0x00005720u, 0x000500c7u, 0x00000006u, 0x00005724u, 0x00005722u, 0x00000e75u, 0x000500c7u, + 0x00000006u, 0x00005728u, 0x0000571cu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005729u, 0x00005728u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x0000572bu, 0x00005724u, 0x00005729u, 0x000500c6u, 0x00000006u, + 0x0000572du, 0x0000572bu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005730u, 0x00000e8fu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x0000572du, 0x0004003du, 0x0000000fu, 0x00005731u, 0x00005730u, 0x00040071u, + 0x00000006u, 0x00005732u, 0x00005731u, 0x00040071u, 0x00000011u, 0x00005734u, 0x00005732u, 0x0004007cu, + 0x00000012u, 0x00005735u, 0x00005734u, 0x00070050u, 0x00000013u, 0x00005736u, 0x00005735u, 0x00005735u, + 0x00005735u, 0x00005735u, 0x000200f9u, 0x00004c2eu, 0x000200f8u, 0x00004c2eu, 0x000700f5u, 0x00000013u, + 0x0000860au, 0x00008550u, 0x00004c18u, 0x00005736u, 0x00004c1fu, 0x000700f5u, 0x00000013u, 0x00008512u, + 0x00008455u, 0x00004c18u, 0x00005711u, 0x00004c1fu, 0x000300f7u, 0x00004c38u, 0x00000000u, 0x000400fau, + 0x00004b24u, 0x00004c30u, 0x00004c38u, 0x000200f8u, 0x00004c30u, 0x00050050u, 0x000000f2u, 0x00004c33u, + 0x00008257u, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004c34u, 0x00004c33u, 0x00050051u, 0x00000006u, + 0x00005741u, 0x00004c34u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005742u, 0x0000495eu, 0x00005741u, + 0x00050080u, 0x00000006u, 0x00005743u, 0x0000495cu, 0x00005742u, 0x00050051u, 0x00000006u, 0x00005745u, + 0x00004c34u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005747u, 0x00005743u, 0x00005745u, 0x000500c7u, + 0x00000006u, 0x00005749u, 0x00005747u, 0x00000e75u, 0x000500c7u, 0x00000006u, 0x0000574du, 0x00005741u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000574eu, 0x0000574du, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x00005750u, 0x00005749u, 0x0000574eu, 0x000500c6u, 0x00000006u, 0x00005752u, 0x00005750u, 0x00000469u, + 0x00080041u, 0x00000676u, 0x00005755u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005752u, + 0x0004003du, 0x0000000fu, 0x00005756u, 0x00005755u, 0x00040071u, 0x00000006u, 0x00005757u, 0x00005756u, + 0x00040071u, 0x00000011u, 0x00005759u, 0x00005757u, 0x0004007cu, 0x00000012u, 0x0000575au, 0x00005759u, + 0x00070050u, 0x00000013u, 0x0000575bu, 0x0000575au, 0x0000575au, 0x0000575au, 0x0000575au, 0x000200f9u, + 0x00004c38u, 0x000200f8u, 0x00004c38u, 0x000700f5u, 0x00000013u, 0x00008701u, 0x00008645u, 0x00004c2eu, + 0x0000575bu, 0x00004c30u, 0x000200f9u, 0x00004c7bu, 0x000200f8u, 0x00004bf7u, 0x0004007cu, 0x000000b4u, + 0x00004bf9u, 0x00008276u, 0x00050051u, 0x00000006u, 0x00005603u, 0x00004bf9u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005604u, 0x0000495eu, 0x00005603u, 0x00050080u, 0x00000006u, 0x00005605u, 0x0000495cu, + 0x00005604u, 0x00050051u, 0x00000006u, 0x00005607u, 0x00004bf9u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00005608u, 0x00005607u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000560au, 0x00005605u, 0x00005608u, + 0x000500c7u, 0x00000006u, 0x0000560cu, 0x0000560au, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x0000560fu, + 0x00005607u, 0x000500c7u, 0x00000006u, 0x00005610u, 0x0000560fu, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00005611u, 0x00005610u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00005615u, 0x00005603u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00005616u, 0x00005615u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005618u, + 0x0000560cu, 0x00005616u, 0x000500c6u, 0x00000006u, 0x0000561au, 0x00005618u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x0000561du, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000561au, 0x0004003du, + 0x0000000fu, 0x0000561eu, 0x0000561du, 0x00040071u, 0x00000006u, 0x0000561fu, 0x0000561eu, 0x000500c2u, + 0x00000006u, 0x00005622u, 0x0000561fu, 0x00005611u, 0x000500c7u, 0x00000006u, 0x00005623u, 0x00005622u, + 0x00000e98u, 0x000500c4u, 0x00000006u, 0x00005625u, 0x00005623u, 0x00000238u, 0x000500c5u, 0x00000006u, + 0x00005627u, 0x00005623u, 0x00005625u, 0x00040071u, 0x00000011u, 0x00005629u, 0x00005627u, 0x0004007cu, + 0x00000012u, 0x0000562au, 0x00005629u, 0x00070050u, 0x00000013u, 0x0000562bu, 0x0000562au, 0x0000562au, + 0x0000562au, 0x0000562au, 0x000300f7u, 0x00004c0du, 0x00000000u, 0x000400fau, 0x00002319u, 0x00004bfeu, + 0x00004c0du, 0x000200f8u, 0x00004bfeu, 0x00050050u, 0x000000f2u, 0x00004c01u, 0x00008257u, 0x00004b18u, + 0x0004007cu, 0x000000b4u, 0x00004c02u, 0x00004c01u, 0x00050051u, 0x00000006u, 0x00005637u, 0x00004c02u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005638u, 0x0000495eu, 0x00005637u, 0x00050080u, 0x00000006u, + 0x00005639u, 0x0000495cu, 0x00005638u, 0x00050051u, 0x00000006u, 0x0000563bu, 0x00004c02u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000563cu, 0x0000563bu, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000563eu, + 0x00005639u, 0x0000563cu, 0x000500c7u, 0x00000006u, 0x00005640u, 0x0000563eu, 0x00000e75u, 0x000400c8u, + 0x00000006u, 0x00005643u, 0x0000563bu, 0x000500c7u, 0x00000006u, 0x00005644u, 0x00005643u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00005645u, 0x00005644u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00005649u, + 0x00005637u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000564au, 0x00005649u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x0000564cu, 0x00005640u, 0x0000564au, 0x000500c6u, 0x00000006u, 0x0000564eu, 0x0000564cu, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00005651u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x0000564eu, 0x0004003du, 0x0000000fu, 0x00005652u, 0x00005651u, 0x00040071u, 0x00000006u, 0x00005653u, + 0x00005652u, 0x000500c2u, 0x00000006u, 0x00005656u, 0x00005653u, 0x00005645u, 0x000500c7u, 0x00000006u, + 0x00005657u, 0x00005656u, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x00005659u, 0x00005657u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x0000565bu, 0x00005657u, 0x00005659u, 0x00040071u, 0x00000011u, 0x0000565du, + 0x0000565bu, 0x0004007cu, 0x00000012u, 0x0000565eu, 0x0000565du, 0x00070050u, 0x00000013u, 0x0000565fu, + 0x0000565eu, 0x0000565eu, 0x0000565eu, 0x0000565eu, 0x00050050u, 0x000000f2u, 0x00004c08u, 0x0000824fu, + 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004c09u, 0x00004c08u, 0x00050051u, 0x00000006u, 0x0000566bu, + 0x00004c09u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000566cu, 0x0000495eu, 0x0000566bu, 0x00050080u, + 0x00000006u, 0x0000566du, 0x0000495cu, 0x0000566cu, 0x00050051u, 0x00000006u, 0x0000566fu, 0x00004c09u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005670u, 0x0000566fu, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00005672u, 0x0000566du, 0x00005670u, 0x000500c7u, 0x00000006u, 0x00005674u, 0x00005672u, 0x00000e75u, + 0x000400c8u, 0x00000006u, 0x00005677u, 0x0000566fu, 0x000500c7u, 0x00000006u, 0x00005678u, 0x00005677u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005679u, 0x00005678u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x0000567du, 0x0000566bu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000567eu, 0x0000567du, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00005680u, 0x00005674u, 0x0000567eu, 0x000500c6u, 0x00000006u, 0x00005682u, + 0x00005680u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005685u, 0x00000e8fu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00005682u, 0x0004003du, 0x0000000fu, 0x00005686u, 0x00005685u, 0x00040071u, 0x00000006u, + 0x00005687u, 0x00005686u, 0x000500c2u, 0x00000006u, 0x0000568au, 0x00005687u, 0x00005679u, 0x000500c7u, + 0x00000006u, 0x0000568bu, 0x0000568au, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x0000568du, 0x0000568bu, + 0x00000238u, 0x000500c5u, 0x00000006u, 0x0000568fu, 0x0000568bu, 0x0000568du, 0x00040071u, 0x00000011u, + 0x00005691u, 0x0000568fu, 0x0004007cu, 0x00000012u, 0x00005692u, 0x00005691u, 0x00070050u, 0x00000013u, + 0x00005693u, 0x00005692u, 0x00005692u, 0x00005692u, 0x00005692u, 0x000200f9u, 0x00004c0du, 0x000200f8u, + 0x00004c0du, 0x000700f5u, 0x00000013u, 0x00008608u, 0x00008550u, 0x00004bf7u, 0x00005693u, 0x00004bfeu, + 0x000700f5u, 0x00000013u, 0x00008510u, 0x00008455u, 0x00004bf7u, 0x0000565fu, 0x00004bfeu, 0x000300f7u, + 0x00004c17u, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004c0fu, 0x00004c17u, 0x000200f8u, 0x00004c0fu, + 0x00050050u, 0x000000f2u, 0x00004c12u, 0x00008257u, 0x00004b1au, 0x0004007cu, 0x000000b4u, 0x00004c13u, + 0x00004c12u, 0x00050051u, 0x00000006u, 0x0000569fu, 0x00004c13u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000056a0u, 0x0000495eu, 0x0000569fu, 0x00050080u, 0x00000006u, 0x000056a1u, 0x0000495cu, 0x000056a0u, + 0x00050051u, 0x00000006u, 0x000056a3u, 0x00004c13u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000056a4u, + 0x000056a3u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000056a6u, 0x000056a1u, 0x000056a4u, 0x000500c7u, + 0x00000006u, 0x000056a8u, 0x000056a6u, 0x00000e75u, 0x000400c8u, 0x00000006u, 0x000056abu, 0x000056a3u, + 0x000500c7u, 0x00000006u, 0x000056acu, 0x000056abu, 0x00000461u, 0x00050084u, 0x00000006u, 0x000056adu, + 0x000056acu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000056b1u, 0x0000569fu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000056b2u, 0x000056b1u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000056b4u, 0x000056a8u, + 0x000056b2u, 0x000500c6u, 0x00000006u, 0x000056b6u, 0x000056b4u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000056b9u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000056b6u, 0x0004003du, 0x0000000fu, + 0x000056bau, 0x000056b9u, 0x00040071u, 0x00000006u, 0x000056bbu, 0x000056bau, 0x000500c2u, 0x00000006u, + 0x000056beu, 0x000056bbu, 0x000056adu, 0x000500c7u, 0x00000006u, 0x000056bfu, 0x000056beu, 0x00000e98u, + 0x000500c4u, 0x00000006u, 0x000056c1u, 0x000056bfu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x000056c3u, + 0x000056bfu, 0x000056c1u, 0x00040071u, 0x00000011u, 0x000056c5u, 0x000056c3u, 0x0004007cu, 0x00000012u, + 0x000056c6u, 0x000056c5u, 0x00070050u, 0x00000013u, 0x000056c7u, 0x000056c6u, 0x000056c6u, 0x000056c6u, + 0x000056c6u, 0x000200f9u, 0x00004c17u, 0x000200f8u, 0x00004c17u, 0x000700f5u, 0x00000013u, 0x000086ffu, + 0x00008645u, 0x00004c0du, 0x000056c7u, 0x00004c0fu, 0x000200f9u, 0x00004c7bu, 0x000200f8u, 0x00004c7bu, + 0x000d00f5u, 0x00000013u, 0x000086feu, 0x00008645u, 0x00004bf2u, 0x000086ffu, 0x00004c17u, 0x00008701u, + 0x00004c38u, 0x00008703u, 0x00004c59u, 0x00008705u, 0x00004c7au, 0x000d00f5u, 0x00000013u, 0x00008606u, + 0x00008550u, 0x00004bf2u, 0x00008608u, 0x00004c17u, 0x0000860au, 0x00004c38u, 0x0000860cu, 0x00004c59u, + 0x0000860eu, 0x00004c7au, 0x000d00f5u, 0x00000013u, 0x0000850eu, 0x00008455u, 0x00004bf2u, 0x00008510u, + 0x00004c17u, 0x00008512u, 0x00004c38u, 0x00008514u, 0x00004c59u, 0x00008516u, 0x00004c7au, 0x000d00f5u, + 0x00000013u, 0x000083a1u, 0x000082e9u, 0x00004bf2u, 0x0000562bu, 0x00004c17u, 0x000056ecu, 0x00004c38u, + 0x0000579eu, 0x00004c59u, 0x000058a2u, 0x00004c7au, 0x000200f9u, 0x00004e12u, 0x000200f8u, 0x00004e12u, + 0x000f00f5u, 0x00000013u, 0x000086fdu, 0x00008645u, 0x00004bedu, 0x000086feu, 0x00004c7bu, 0x00008707u, + 0x00004ca9u, 0x00008708u, 0x00004d1eu, 0x0000870fu, 0x00004da8u, 0x00008718u, 0x00004e11u, 0x000f00f5u, + 0x00000013u, 0x00008605u, 0x00008550u, 0x00004bedu, 0x00008606u, 0x00004c7bu, 0x0000860fu, 0x00004ca9u, + 0x00008610u, 0x00004d1eu, 0x00008617u, 0x00004da8u, 0x00008620u, 0x00004e11u, 0x000f00f5u, 0x00000013u, + 0x0000850du, 0x00008455u, 0x00004bedu, 0x0000850eu, 0x00004c7bu, 0x00008517u, 0x00004ca9u, 0x00008518u, + 0x00004d1eu, 0x0000851fu, 0x00004da8u, 0x00008528u, 0x00004e11u, 0x000f00f5u, 0x00000013u, 0x000083a0u, + 0x000082e9u, 0x00004bedu, 0x000083a1u, 0x00004c7bu, 0x000059a5u, 0x00004ca9u, 0x000083abu, 0x00004d1eu, + 0x000083b2u, 0x00004da8u, 0x000083bbu, 0x00004e11u, 0x000200f9u, 0x00004e13u, 0x000200f8u, 0x00004b43u, + 0x000400a8u, 0x00000069u, 0x00004b45u, 0x00002319u, 0x000300f7u, 0x00004b4cu, 0x00000000u, 0x000400fau, + 0x00004b45u, 0x00004b46u, 0x00004b4cu, 0x000200f8u, 0x00004b46u, 0x00050050u, 0x000000f2u, 0x00004b49u, + 0x0000824fu, 0x00004b18u, 0x000200f9u, 0x00004b4cu, 0x000200f8u, 0x00004b4cu, 0x000700f5u, 0x000000f2u, + 0x0000829cu, 0x00008276u, 0x00004b43u, 0x00004b49u, 0x00004b46u, 0x000600a9u, 0x00000008u, 0x0000c258u, + 0x00004b45u, 0x00004b18u, 0x00004b1au, 0x000600a9u, 0x00000008u, 0x0000c259u, 0x00004b45u, 0x0000824fu, + 0x00008257u, 0x000300f7u, 0x00004becu, 0x00000000u, 0x000b00fbu, 0x00004b2du, 0x00004becu, 0x00000000u, + 0x00004b51u, 0x00000002u, 0x00004b51u, 0x00000003u, 0x00004b51u, 0x00000004u, 0x00004b51u, 0x000200f8u, + 0x00004b51u, 0x000600a9u, 0x00000008u, 0x00004b55u, 0x00004b26u, 0x00000232u, 0x0000022fu, 0x0004007cu, + 0x00000006u, 0x00004b56u, 0x00004b55u, 0x00040071u, 0x00000006u, 0x00004b59u, 0x00004962u, 0x0004007cu, + 0x00000008u, 0x00004b5au, 0x00004b59u, 0x000300f7u, 0x00004bebu, 0x00000000u, 0x000700fbu, 0x00004b5au, + 0x00004b5bu, 0x00000000u, 0x00004b87u, 0x00000001u, 0x00004bbfu, 0x000200f8u, 0x00004bbfu, 0x0004007cu, + 0x000000b4u, 0x00004bc1u, 0x0000829cu, 0x000600a9u, 0x00000008u, 0x00004bc3u, 0x00004b30u, 0x00000235u, + 0x00000225u, 0x0004007cu, 0x00000006u, 0x00004bc4u, 0x00004bc3u, 0x00050051u, 0x00000006u, 0x00005452u, + 0x00004bc1u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005453u, 0x0000495eu, 0x00005452u, 0x00050080u, + 0x00000006u, 0x00005454u, 0x0000495cu, 0x00005453u, 0x00050051u, 0x00000006u, 0x00005456u, 0x00004bc1u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005458u, 0x00005454u, 0x00005456u, 0x000500c7u, 0x00000006u, + 0x0000545au, 0x00005458u, 0x00000f2du, 0x000500c7u, 0x00000006u, 0x0000545eu, 0x00005452u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x0000545fu, 0x0000545eu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005461u, + 0x0000545au, 0x0000545fu, 0x000500c6u, 0x00000006u, 0x00005463u, 0x00005461u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00005466u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005463u, 0x0004003du, + 0x0000000fu, 0x00005467u, 0x00005466u, 0x00040071u, 0x00000006u, 0x00005468u, 0x00005467u, 0x000500c4u, + 0x00000006u, 0x0000546au, 0x00005468u, 0x00000232u, 0x00050080u, 0x00000006u, 0x0000546cu, 0x0000546au, + 0x00004bc4u, 0x000500c6u, 0x00000006u, 0x0000546fu, 0x0000546cu, 0x00004b56u, 0x000500c5u, 0x00000006u, + 0x00005472u, 0x00000f5eu, 0x0000546fu, 0x00080041u, 0x00000697u, 0x00005473u, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x00005472u, 0x0004003du, 0x00000011u, 0x00005474u, 0x00005473u, 0x00040071u, + 0x00000006u, 0x00005475u, 0x00005474u, 0x000300f7u, 0x0000547du, 0x00000000u, 0x000400fau, 0x00002316u, + 0x00005477u, 0x0000547au, 0x000200f8u, 0x0000547au, 0x00060050u, 0x00000311u, 0x00005499u, 0x00005475u, + 0x00005475u, 0x00005475u, 0x000500c2u, 0x00000311u, 0x0000549au, 0x00005499u, 0x00000e36u, 0x000500c7u, + 0x00000311u, 0x0000549cu, 0x0000549au, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x0000549fu, 0x0000549cu, + 0x0000c219u, 0x000500c2u, 0x00000311u, 0x000054a2u, 0x0000549cu, 0x0000c21au, 0x000500c5u, 0x00000311u, + 0x000054a3u, 0x0000549fu, 0x000054a2u, 0x000500c7u, 0x00000006u, 0x000054a5u, 0x00005475u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x000054a6u, 0x000054a5u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000054a8u, + 0x000054a3u, 0x0004007cu, 0x000004bbu, 0x000054a9u, 0x000054a8u, 0x00040071u, 0x00000011u, 0x000054abu, + 0x000054a6u, 0x0004007cu, 0x00000012u, 0x000054acu, 0x000054abu, 0x00050051u, 0x00000012u, 0x000054adu, + 0x000054a9u, 0x00000000u, 0x00050051u, 0x00000012u, 0x000054aeu, 0x000054a9u, 0x00000001u, 0x00050051u, + 0x00000012u, 0x000054afu, 0x000054a9u, 0x00000002u, 0x00070050u, 0x00000013u, 0x000054b0u, 0x000054adu, + 0x000054aeu, 0x000054afu, 0x000054acu, 0x000200f9u, 0x0000547du, 0x000200f8u, 0x00005477u, 0x000500c2u, + 0x00000006u, 0x00005484u, 0x00005475u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005486u, 0x00005475u, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005488u, 0x00005484u, 0x0004007cu, 0x00000012u, 0x00005489u, + 0x00005488u, 0x00040071u, 0x00000011u, 0x00005491u, 0x00005486u, 0x0004007cu, 0x00000012u, 0x00005492u, + 0x00005491u, 0x00070050u, 0x00000013u, 0x00005493u, 0x00005489u, 0x00005489u, 0x00005489u, 0x00005492u, + 0x000200f9u, 0x0000547du, 0x000200f8u, 0x0000547du, 0x000700f5u, 0x00000013u, 0x0000829du, 0x00005493u, + 0x00005477u, 0x000054b0u, 0x0000547au, 0x000300f7u, 0x00004bdeu, 0x00000000u, 0x000400fau, 0x00002358u, + 0x00004bcbu, 0x00004bdeu, 0x000200f8u, 0x00004bcbu, 0x00050050u, 0x000000f2u, 0x00004bceu, 0x0000c259u, + 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004bcfu, 0x00004bceu, 0x00050051u, 0x00000006u, 0x000054bfu, + 0x00004bcfu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000054c0u, 0x0000495eu, 0x000054bfu, 0x00050080u, + 0x00000006u, 0x000054c1u, 0x0000495cu, 0x000054c0u, 0x00050051u, 0x00000006u, 0x000054c3u, 0x00004bcfu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x000054c5u, 0x000054c1u, 0x000054c3u, 0x000500c7u, 0x00000006u, + 0x000054c7u, 0x000054c5u, 0x00000f2du, 0x000500c7u, 0x00000006u, 0x000054cbu, 0x000054bfu, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x000054ccu, 0x000054cbu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000054ceu, + 0x000054c7u, 0x000054ccu, 0x000500c6u, 0x00000006u, 0x000054d0u, 0x000054ceu, 0x00000469u, 0x00080041u, + 0x00000676u, 0x000054d3u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000054d0u, 0x0004003du, + 0x0000000fu, 0x000054d4u, 0x000054d3u, 0x00040071u, 0x00000006u, 0x000054d5u, 0x000054d4u, 0x000500c4u, + 0x00000006u, 0x000054d7u, 0x000054d5u, 0x00000232u, 0x00050080u, 0x00000006u, 0x000054d9u, 0x000054d7u, + 0x00000461u, 0x000500c6u, 0x00000006u, 0x000054dcu, 0x000054d9u, 0x00004b56u, 0x000500c5u, 0x00000006u, + 0x000054dfu, 0x00000f5eu, 0x000054dcu, 0x00080041u, 0x00000697u, 0x000054e0u, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x000054dfu, 0x0004003du, 0x00000011u, 0x000054e1u, 0x000054e0u, 0x00040071u, + 0x00000006u, 0x000054e2u, 0x000054e1u, 0x000300f7u, 0x000054eau, 0x00000000u, 0x000400fau, 0x00002316u, + 0x000054e4u, 0x000054e7u, 0x000200f8u, 0x000054e7u, 0x00060050u, 0x00000311u, 0x00005506u, 0x000054e2u, + 0x000054e2u, 0x000054e2u, 0x000500c2u, 0x00000311u, 0x00005507u, 0x00005506u, 0x00000e36u, 0x000500c7u, + 0x00000311u, 0x00005509u, 0x00005507u, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x0000550cu, 0x00005509u, + 0x0000c219u, 0x000500c2u, 0x00000311u, 0x0000550fu, 0x00005509u, 0x0000c21au, 0x000500c5u, 0x00000311u, + 0x00005510u, 0x0000550cu, 0x0000550fu, 0x000500c7u, 0x00000006u, 0x00005512u, 0x000054e2u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00005513u, 0x00005512u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00005515u, + 0x00005510u, 0x0004007cu, 0x000004bbu, 0x00005516u, 0x00005515u, 0x00040071u, 0x00000011u, 0x00005518u, + 0x00005513u, 0x0004007cu, 0x00000012u, 0x00005519u, 0x00005518u, 0x00050051u, 0x00000012u, 0x0000551au, + 0x00005516u, 0x00000000u, 0x00050051u, 0x00000012u, 0x0000551bu, 0x00005516u, 0x00000001u, 0x00050051u, + 0x00000012u, 0x0000551cu, 0x00005516u, 0x00000002u, 0x00070050u, 0x00000013u, 0x0000551du, 0x0000551au, + 0x0000551bu, 0x0000551cu, 0x00005519u, 0x000200f9u, 0x000054eau, 0x000200f8u, 0x000054e4u, 0x000500c2u, + 0x00000006u, 0x000054f1u, 0x000054e2u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x000054f3u, 0x000054e2u, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x000054f5u, 0x000054f1u, 0x0004007cu, 0x00000012u, 0x000054f6u, + 0x000054f5u, 0x00040071u, 0x00000011u, 0x000054feu, 0x000054f3u, 0x0004007cu, 0x00000012u, 0x000054ffu, + 0x000054feu, 0x00070050u, 0x00000013u, 0x00005500u, 0x000054f6u, 0x000054f6u, 0x000054f6u, 0x000054ffu, + 0x000200f9u, 0x000054eau, 0x000200f8u, 0x000054eau, 0x000700f5u, 0x00000013u, 0x000082a4u, 0x00005500u, + 0x000054e4u, 0x0000551du, 0x000054e7u, 0x00050050u, 0x000000f2u, 0x00004bd7u, 0x0000824fu, 0x0000c258u, + 0x0004007cu, 0x000000b4u, 0x00004bd8u, 0x00004bd7u, 0x00050051u, 0x00000006u, 0x0000552cu, 0x00004bd8u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000552du, 0x0000495eu, 0x0000552cu, 0x00050080u, 0x00000006u, + 0x0000552eu, 0x0000495cu, 0x0000552du, 0x00050051u, 0x00000006u, 0x00005530u, 0x00004bd8u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005532u, 0x0000552eu, 0x00005530u, 0x000500c7u, 0x00000006u, 0x00005534u, + 0x00005532u, 0x00000f2du, 0x000500c7u, 0x00000006u, 0x00005538u, 0x0000552cu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00005539u, 0x00005538u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x0000553bu, 0x00005534u, + 0x00005539u, 0x000500c6u, 0x00000006u, 0x0000553du, 0x0000553bu, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00005540u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x0000553du, 0x0004003du, 0x0000000fu, + 0x00005541u, 0x00005540u, 0x00040071u, 0x00000006u, 0x00005542u, 0x00005541u, 0x000500c4u, 0x00000006u, + 0x00005544u, 0x00005542u, 0x00000232u, 0x00050080u, 0x00000006u, 0x00005546u, 0x00005544u, 0x0000038bu, + 0x000500c6u, 0x00000006u, 0x00005549u, 0x00005546u, 0x00004b56u, 0x000500c5u, 0x00000006u, 0x0000554cu, + 0x00000f5eu, 0x00005549u, 0x00080041u, 0x00000697u, 0x0000554du, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x0000554cu, 0x0004003du, 0x00000011u, 0x0000554eu, 0x0000554du, 0x00040071u, 0x00000006u, + 0x0000554fu, 0x0000554eu, 0x000300f7u, 0x00005557u, 0x00000000u, 0x000400fau, 0x00002316u, 0x00005551u, + 0x00005554u, 0x000200f8u, 0x00005554u, 0x00060050u, 0x00000311u, 0x00005573u, 0x0000554fu, 0x0000554fu, + 0x0000554fu, 0x000500c2u, 0x00000311u, 0x00005574u, 0x00005573u, 0x00000e36u, 0x000500c7u, 0x00000311u, + 0x00005576u, 0x00005574u, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x00005579u, 0x00005576u, 0x0000c219u, + 0x000500c2u, 0x00000311u, 0x0000557cu, 0x00005576u, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x0000557du, + 0x00005579u, 0x0000557cu, 0x000500c7u, 0x00000006u, 0x0000557fu, 0x0000554fu, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00005580u, 0x0000557fu, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00005582u, 0x0000557du, + 0x0004007cu, 0x000004bbu, 0x00005583u, 0x00005582u, 0x00040071u, 0x00000011u, 0x00005585u, 0x00005580u, + 0x0004007cu, 0x00000012u, 0x00005586u, 0x00005585u, 0x00050051u, 0x00000012u, 0x00005587u, 0x00005583u, + 0x00000000u, 0x00050051u, 0x00000012u, 0x00005588u, 0x00005583u, 0x00000001u, 0x00050051u, 0x00000012u, + 0x00005589u, 0x00005583u, 0x00000002u, 0x00070050u, 0x00000013u, 0x0000558au, 0x00005587u, 0x00005588u, + 0x00005589u, 0x00005586u, 0x000200f9u, 0x00005557u, 0x000200f8u, 0x00005551u, 0x000500c2u, 0x00000006u, + 0x0000555eu, 0x0000554fu, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005560u, 0x0000554fu, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00005562u, 0x0000555eu, 0x0004007cu, 0x00000012u, 0x00005563u, 0x00005562u, + 0x00040071u, 0x00000011u, 0x0000556bu, 0x00005560u, 0x0004007cu, 0x00000012u, 0x0000556cu, 0x0000556bu, + 0x00070050u, 0x00000013u, 0x0000556du, 0x00005563u, 0x00005563u, 0x00005563u, 0x0000556cu, 0x000200f9u, + 0x00005557u, 0x000200f8u, 0x00005557u, 0x000700f5u, 0x00000013u, 0x000082a9u, 0x0000556du, 0x00005551u, + 0x0000558au, 0x00005554u, 0x000200f9u, 0x00004bdeu, 0x000200f8u, 0x00004bdeu, 0x000700f5u, 0x00000013u, + 0x00008602u, 0x00008550u, 0x0000547du, 0x000082a9u, 0x00005557u, 0x000700f5u, 0x00000013u, 0x00008509u, + 0x00008455u, 0x0000547du, 0x000082a4u, 0x00005557u, 0x000300f7u, 0x00004beau, 0x00000000u, 0x000400fau, + 0x00004b24u, 0x00004be0u, 0x00004beau, 0x000200f8u, 0x00004be0u, 0x00050050u, 0x000000f2u, 0x00004be3u, + 0x0000c259u, 0x0000c258u, 0x0004007cu, 0x000000b4u, 0x00004be4u, 0x00004be3u, 0x00050051u, 0x00000006u, + 0x00005599u, 0x00004be4u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000559au, 0x0000495eu, 0x00005599u, + 0x00050080u, 0x00000006u, 0x0000559bu, 0x0000495cu, 0x0000559au, 0x00050051u, 0x00000006u, 0x0000559du, + 0x00004be4u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000559fu, 0x0000559bu, 0x0000559du, 0x000500c7u, + 0x00000006u, 0x000055a1u, 0x0000559fu, 0x00000f2du, 0x000500c7u, 0x00000006u, 0x000055a5u, 0x00005599u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x000055a6u, 0x000055a5u, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x000055a8u, 0x000055a1u, 0x000055a6u, 0x000500c6u, 0x00000006u, 0x000055aau, 0x000055a8u, 0x00000469u, + 0x00080041u, 0x00000676u, 0x000055adu, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000055aau, + 0x0004003du, 0x0000000fu, 0x000055aeu, 0x000055adu, 0x00040071u, 0x00000006u, 0x000055afu, 0x000055aeu, + 0x000500c4u, 0x00000006u, 0x000055b1u, 0x000055afu, 0x00000232u, 0x00050080u, 0x00000006u, 0x000055b3u, + 0x000055b1u, 0x00000469u, 0x000500c6u, 0x00000006u, 0x000055b6u, 0x000055b3u, 0x00004b56u, 0x000500c5u, + 0x00000006u, 0x000055b9u, 0x00000f5eu, 0x000055b6u, 0x00080041u, 0x00000697u, 0x000055bau, 0x00000f5cu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x000055b9u, 0x0004003du, 0x00000011u, 0x000055bbu, 0x000055bau, + 0x00040071u, 0x00000006u, 0x000055bcu, 0x000055bbu, 0x000300f7u, 0x000055c4u, 0x00000000u, 0x000400fau, + 0x00002316u, 0x000055beu, 0x000055c1u, 0x000200f8u, 0x000055c1u, 0x00060050u, 0x00000311u, 0x000055e0u, + 0x000055bcu, 0x000055bcu, 0x000055bcu, 0x000500c2u, 0x00000311u, 0x000055e1u, 0x000055e0u, 0x00000e36u, + 0x000500c7u, 0x00000311u, 0x000055e3u, 0x000055e1u, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x000055e6u, + 0x000055e3u, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x000055e9u, 0x000055e3u, 0x0000c21au, 0x000500c5u, + 0x00000311u, 0x000055eau, 0x000055e6u, 0x000055e9u, 0x000500c7u, 0x00000006u, 0x000055ecu, 0x000055bcu, + 0x00000461u, 0x00050084u, 0x00000006u, 0x000055edu, 0x000055ecu, 0x000006c8u, 0x00040071u, 0x000004bfu, + 0x000055efu, 0x000055eau, 0x0004007cu, 0x000004bbu, 0x000055f0u, 0x000055efu, 0x00040071u, 0x00000011u, + 0x000055f2u, 0x000055edu, 0x0004007cu, 0x00000012u, 0x000055f3u, 0x000055f2u, 0x00050051u, 0x00000012u, + 0x000055f4u, 0x000055f0u, 0x00000000u, 0x00050051u, 0x00000012u, 0x000055f5u, 0x000055f0u, 0x00000001u, + 0x00050051u, 0x00000012u, 0x000055f6u, 0x000055f0u, 0x00000002u, 0x00070050u, 0x00000013u, 0x000055f7u, + 0x000055f4u, 0x000055f5u, 0x000055f6u, 0x000055f3u, 0x000200f9u, 0x000055c4u, 0x000200f8u, 0x000055beu, + 0x000500c2u, 0x00000006u, 0x000055cbu, 0x000055bcu, 0x00000262u, 0x000500c7u, 0x00000006u, 0x000055cdu, + 0x000055bcu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000055cfu, 0x000055cbu, 0x0004007cu, 0x00000012u, + 0x000055d0u, 0x000055cfu, 0x00040071u, 0x00000011u, 0x000055d8u, 0x000055cdu, 0x0004007cu, 0x00000012u, + 0x000055d9u, 0x000055d8u, 0x00070050u, 0x00000013u, 0x000055dau, 0x000055d0u, 0x000055d0u, 0x000055d0u, + 0x000055d9u, 0x000200f9u, 0x000055c4u, 0x000200f8u, 0x000055c4u, 0x000700f5u, 0x00000013u, 0x000082afu, + 0x000055dau, 0x000055beu, 0x000055f7u, 0x000055c1u, 0x000200f9u, 0x00004beau, 0x000200f8u, 0x00004beau, + 0x000700f5u, 0x00000013u, 0x000086f8u, 0x00008645u, 0x00004bdeu, 0x000082afu, 0x000055c4u, 0x000200f9u, + 0x00004bebu, 0x000200f8u, 0x00004b87u, 0x0004007cu, 0x000000b4u, 0x00004b89u, 0x0000829cu, 0x00040071u, + 0x00000006u, 0x00004b8cu, 0x00004964u, 0x000600a9u, 0x00000008u, 0x00004b8eu, 0x00004b30u, 0x00000235u, + 0x00000225u, 0x0004007cu, 0x00000006u, 0x00004b8fu, 0x00004b8eu, 0x00050051u, 0x00000006u, 0x00005263u, + 0x00004b89u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005264u, 0x0000495eu, 0x00005263u, 0x00050080u, + 0x00000006u, 0x00005265u, 0x0000495cu, 0x00005264u, 0x00050051u, 0x00000006u, 0x00005267u, 0x00004b89u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005268u, 0x00005267u, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x0000526au, 0x00005265u, 0x00005268u, 0x000500c7u, 0x00000006u, 0x0000526cu, 0x0000526au, 0x00000f2du, + 0x000400c8u, 0x00000006u, 0x0000526fu, 0x00005267u, 0x000500c7u, 0x00000006u, 0x00005270u, 0x0000526fu, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005271u, 0x00005270u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x00005275u, 0x00005263u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005276u, 0x00005275u, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00005278u, 0x0000526cu, 0x00005276u, 0x000500c6u, 0x00000006u, 0x0000527au, + 0x00005278u, 0x00000469u, 0x00080041u, 0x00000676u, 0x0000527du, 0x00000e8fu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x0000527au, 0x0004003du, 0x0000000fu, 0x0000527eu, 0x0000527du, 0x00040071u, 0x00000006u, + 0x0000527fu, 0x0000527eu, 0x000500c2u, 0x00000006u, 0x00005282u, 0x0000527fu, 0x00005271u, 0x000500c7u, + 0x00000006u, 0x00005283u, 0x00005282u, 0x00000e98u, 0x000500c4u, 0x00000006u, 0x00005285u, 0x00004b8cu, + 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005287u, 0x00005283u, 0x00005285u, 0x000500c4u, 0x00000006u, + 0x00005289u, 0x00005287u, 0x00000232u, 0x00050080u, 0x00000006u, 0x0000528bu, 0x00005289u, 0x00004b8fu, + 0x000500c6u, 0x00000006u, 0x0000528eu, 0x0000528bu, 0x00004b56u, 0x000500c5u, 0x00000006u, 0x00005291u, + 0x00000f5eu, 0x0000528eu, 0x00080041u, 0x00000697u, 0x00005292u, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00005291u, 0x0004003du, 0x00000011u, 0x00005293u, 0x00005292u, 0x00040071u, 0x00000006u, + 0x00005294u, 0x00005293u, 0x000300f7u, 0x0000529cu, 0x00000000u, 0x000400fau, 0x00002316u, 0x00005296u, + 0x00005299u, 0x000200f8u, 0x00005299u, 0x00060050u, 0x00000311u, 0x000052b8u, 0x00005294u, 0x00005294u, + 0x00005294u, 0x000500c2u, 0x00000311u, 0x000052b9u, 0x000052b8u, 0x00000e36u, 0x000500c7u, 0x00000311u, + 0x000052bbu, 0x000052b9u, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x000052beu, 0x000052bbu, 0x0000c219u, + 0x000500c2u, 0x00000311u, 0x000052c1u, 0x000052bbu, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x000052c2u, + 0x000052beu, 0x000052c1u, 0x000500c7u, 0x00000006u, 0x000052c4u, 0x00005294u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x000052c5u, 0x000052c4u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000052c7u, 0x000052c2u, + 0x0004007cu, 0x000004bbu, 0x000052c8u, 0x000052c7u, 0x00040071u, 0x00000011u, 0x000052cau, 0x000052c5u, + 0x0004007cu, 0x00000012u, 0x000052cbu, 0x000052cau, 0x00050051u, 0x00000012u, 0x000052ccu, 0x000052c8u, + 0x00000000u, 0x00050051u, 0x00000012u, 0x000052cdu, 0x000052c8u, 0x00000001u, 0x00050051u, 0x00000012u, + 0x000052ceu, 0x000052c8u, 0x00000002u, 0x00070050u, 0x00000013u, 0x000052cfu, 0x000052ccu, 0x000052cdu, + 0x000052ceu, 0x000052cbu, 0x000200f9u, 0x0000529cu, 0x000200f8u, 0x00005296u, 0x000500c2u, 0x00000006u, + 0x000052a3u, 0x00005294u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x000052a5u, 0x00005294u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x000052a7u, 0x000052a3u, 0x0004007cu, 0x00000012u, 0x000052a8u, 0x000052a7u, + 0x00040071u, 0x00000011u, 0x000052b0u, 0x000052a5u, 0x0004007cu, 0x00000012u, 0x000052b1u, 0x000052b0u, + 0x00070050u, 0x00000013u, 0x000052b2u, 0x000052a8u, 0x000052a8u, 0x000052a8u, 0x000052b1u, 0x000200f9u, + 0x0000529cu, 0x000200f8u, 0x0000529cu, 0x000700f5u, 0x00000013u, 0x000082b0u, 0x000052b2u, 0x00005296u, + 0x000052cfu, 0x00005299u, 0x000300f7u, 0x00004bafu, 0x00000000u, 0x000400fau, 0x00002358u, 0x00004b96u, + 0x00004bafu, 0x000200f8u, 0x00004b96u, 0x00050050u, 0x000000f2u, 0x00004b99u, 0x0000c259u, 0x00004b18u, + 0x0004007cu, 0x000000b4u, 0x00004b9au, 0x00004b99u, 0x00050051u, 0x00000006u, 0x000052dfu, 0x00004b9au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000052e0u, 0x0000495eu, 0x000052dfu, 0x00050080u, 0x00000006u, + 0x000052e1u, 0x0000495cu, 0x000052e0u, 0x00050051u, 0x00000006u, 0x000052e3u, 0x00004b9au, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000052e4u, 0x000052e3u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000052e6u, + 0x000052e1u, 0x000052e4u, 0x000500c7u, 0x00000006u, 0x000052e8u, 0x000052e6u, 0x00000f2du, 0x000400c8u, + 0x00000006u, 0x000052ebu, 0x000052e3u, 0x000500c7u, 0x00000006u, 0x000052ecu, 0x000052ebu, 0x00000461u, + 0x00050084u, 0x00000006u, 0x000052edu, 0x000052ecu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000052f1u, + 0x000052dfu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000052f2u, 0x000052f1u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x000052f4u, 0x000052e8u, 0x000052f2u, 0x000500c6u, 0x00000006u, 0x000052f6u, 0x000052f4u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000052f9u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x000052f6u, 0x0004003du, 0x0000000fu, 0x000052fau, 0x000052f9u, 0x00040071u, 0x00000006u, 0x000052fbu, + 0x000052fau, 0x000500c2u, 0x00000006u, 0x000052feu, 0x000052fbu, 0x000052edu, 0x000500c7u, 0x00000006u, + 0x000052ffu, 0x000052feu, 0x00000e98u, 0x000500c5u, 0x00000006u, 0x00005303u, 0x000052ffu, 0x00005285u, + 0x000500c4u, 0x00000006u, 0x00005305u, 0x00005303u, 0x00000232u, 0x00050080u, 0x00000006u, 0x00005307u, + 0x00005305u, 0x00000461u, 0x000500c6u, 0x00000006u, 0x0000530au, 0x00005307u, 0x00004b56u, 0x000500c5u, + 0x00000006u, 0x0000530du, 0x00000f5eu, 0x0000530au, 0x00080041u, 0x00000697u, 0x0000530eu, 0x00000f5cu, + 0x00000225u, 0x00002302u, 0x00000225u, 0x0000530du, 0x0004003du, 0x00000011u, 0x0000530fu, 0x0000530eu, + 0x00040071u, 0x00000006u, 0x00005310u, 0x0000530fu, 0x000300f7u, 0x00005318u, 0x00000000u, 0x000400fau, + 0x00002316u, 0x00005312u, 0x00005315u, 0x000200f8u, 0x00005315u, 0x00060050u, 0x00000311u, 0x00005334u, + 0x00005310u, 0x00005310u, 0x00005310u, 0x000500c2u, 0x00000311u, 0x00005335u, 0x00005334u, 0x00000e36u, + 0x000500c7u, 0x00000311u, 0x00005337u, 0x00005335u, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x0000533au, + 0x00005337u, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x0000533du, 0x00005337u, 0x0000c21au, 0x000500c5u, + 0x00000311u, 0x0000533eu, 0x0000533au, 0x0000533du, 0x000500c7u, 0x00000006u, 0x00005340u, 0x00005310u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005341u, 0x00005340u, 0x000006c8u, 0x00040071u, 0x000004bfu, + 0x00005343u, 0x0000533eu, 0x0004007cu, 0x000004bbu, 0x00005344u, 0x00005343u, 0x00040071u, 0x00000011u, + 0x00005346u, 0x00005341u, 0x0004007cu, 0x00000012u, 0x00005347u, 0x00005346u, 0x00050051u, 0x00000012u, + 0x00005348u, 0x00005344u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00005349u, 0x00005344u, 0x00000001u, + 0x00050051u, 0x00000012u, 0x0000534au, 0x00005344u, 0x00000002u, 0x00070050u, 0x00000013u, 0x0000534bu, + 0x00005348u, 0x00005349u, 0x0000534au, 0x00005347u, 0x000200f9u, 0x00005318u, 0x000200f8u, 0x00005312u, + 0x000500c2u, 0x00000006u, 0x0000531fu, 0x00005310u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005321u, + 0x00005310u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005323u, 0x0000531fu, 0x0004007cu, 0x00000012u, + 0x00005324u, 0x00005323u, 0x00040071u, 0x00000011u, 0x0000532cu, 0x00005321u, 0x0004007cu, 0x00000012u, + 0x0000532du, 0x0000532cu, 0x00070050u, 0x00000013u, 0x0000532eu, 0x00005324u, 0x00005324u, 0x00005324u, + 0x0000532du, 0x000200f9u, 0x00005318u, 0x000200f8u, 0x00005318u, 0x000700f5u, 0x00000013u, 0x000082b3u, + 0x0000532eu, 0x00005312u, 0x0000534bu, 0x00005315u, 0x00050050u, 0x000000f2u, 0x00004ba5u, 0x0000824fu, + 0x0000c258u, 0x0004007cu, 0x000000b4u, 0x00004ba6u, 0x00004ba5u, 0x00050051u, 0x00000006u, 0x0000535bu, + 0x00004ba6u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000535cu, 0x0000495eu, 0x0000535bu, 0x00050080u, + 0x00000006u, 0x0000535du, 0x0000495cu, 0x0000535cu, 0x00050051u, 0x00000006u, 0x0000535fu, 0x00004ba6u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005360u, 0x0000535fu, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00005362u, 0x0000535du, 0x00005360u, 0x000500c7u, 0x00000006u, 0x00005364u, 0x00005362u, 0x00000f2du, + 0x000400c8u, 0x00000006u, 0x00005367u, 0x0000535fu, 0x000500c7u, 0x00000006u, 0x00005368u, 0x00005367u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005369u, 0x00005368u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x0000536du, 0x0000535bu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000536eu, 0x0000536du, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00005370u, 0x00005364u, 0x0000536eu, 0x000500c6u, 0x00000006u, 0x00005372u, + 0x00005370u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005375u, 0x00000e8fu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00005372u, 0x0004003du, 0x0000000fu, 0x00005376u, 0x00005375u, 0x00040071u, 0x00000006u, + 0x00005377u, 0x00005376u, 0x000500c2u, 0x00000006u, 0x0000537au, 0x00005377u, 0x00005369u, 0x000500c7u, + 0x00000006u, 0x0000537bu, 0x0000537au, 0x00000e98u, 0x000500c5u, 0x00000006u, 0x0000537fu, 0x0000537bu, + 0x00005285u, 0x000500c4u, 0x00000006u, 0x00005381u, 0x0000537fu, 0x00000232u, 0x00050080u, 0x00000006u, + 0x00005383u, 0x00005381u, 0x0000038bu, 0x000500c6u, 0x00000006u, 0x00005386u, 0x00005383u, 0x00004b56u, + 0x000500c5u, 0x00000006u, 0x00005389u, 0x00000f5eu, 0x00005386u, 0x00080041u, 0x00000697u, 0x0000538au, + 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005389u, 0x0004003du, 0x00000011u, 0x0000538bu, + 0x0000538au, 0x00040071u, 0x00000006u, 0x0000538cu, 0x0000538bu, 0x000300f7u, 0x00005394u, 0x00000000u, + 0x000400fau, 0x00002316u, 0x0000538eu, 0x00005391u, 0x000200f8u, 0x00005391u, 0x00060050u, 0x00000311u, + 0x000053b0u, 0x0000538cu, 0x0000538cu, 0x0000538cu, 0x000500c2u, 0x00000311u, 0x000053b1u, 0x000053b0u, + 0x00000e36u, 0x000500c7u, 0x00000311u, 0x000053b3u, 0x000053b1u, 0x0000c218u, 0x000500c4u, 0x00000311u, + 0x000053b6u, 0x000053b3u, 0x0000c219u, 0x000500c2u, 0x00000311u, 0x000053b9u, 0x000053b3u, 0x0000c21au, + 0x000500c5u, 0x00000311u, 0x000053bau, 0x000053b6u, 0x000053b9u, 0x000500c7u, 0x00000006u, 0x000053bcu, + 0x0000538cu, 0x00000461u, 0x00050084u, 0x00000006u, 0x000053bdu, 0x000053bcu, 0x000006c8u, 0x00040071u, + 0x000004bfu, 0x000053bfu, 0x000053bau, 0x0004007cu, 0x000004bbu, 0x000053c0u, 0x000053bfu, 0x00040071u, + 0x00000011u, 0x000053c2u, 0x000053bdu, 0x0004007cu, 0x00000012u, 0x000053c3u, 0x000053c2u, 0x00050051u, + 0x00000012u, 0x000053c4u, 0x000053c0u, 0x00000000u, 0x00050051u, 0x00000012u, 0x000053c5u, 0x000053c0u, + 0x00000001u, 0x00050051u, 0x00000012u, 0x000053c6u, 0x000053c0u, 0x00000002u, 0x00070050u, 0x00000013u, + 0x000053c7u, 0x000053c4u, 0x000053c5u, 0x000053c6u, 0x000053c3u, 0x000200f9u, 0x00005394u, 0x000200f8u, + 0x0000538eu, 0x000500c2u, 0x00000006u, 0x0000539bu, 0x0000538cu, 0x00000262u, 0x000500c7u, 0x00000006u, + 0x0000539du, 0x0000538cu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000539fu, 0x0000539bu, 0x0004007cu, + 0x00000012u, 0x000053a0u, 0x0000539fu, 0x00040071u, 0x00000011u, 0x000053a8u, 0x0000539du, 0x0004007cu, + 0x00000012u, 0x000053a9u, 0x000053a8u, 0x00070050u, 0x00000013u, 0x000053aau, 0x000053a0u, 0x000053a0u, + 0x000053a0u, 0x000053a9u, 0x000200f9u, 0x00005394u, 0x000200f8u, 0x00005394u, 0x000700f5u, 0x00000013u, + 0x000082b6u, 0x000053aau, 0x0000538eu, 0x000053c7u, 0x00005391u, 0x000200f9u, 0x00004bafu, 0x000200f8u, + 0x00004bafu, 0x000700f5u, 0x00000013u, 0x000085feu, 0x00008550u, 0x0000529cu, 0x000082b6u, 0x00005394u, + 0x000700f5u, 0x00000013u, 0x00008504u, 0x00008455u, 0x0000529cu, 0x000082b3u, 0x00005394u, 0x000300f7u, + 0x00004bbeu, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004bb1u, 0x00004bbeu, 0x000200f8u, 0x00004bb1u, + 0x00050050u, 0x000000f2u, 0x00004bb4u, 0x0000c259u, 0x0000c258u, 0x0004007cu, 0x000000b4u, 0x00004bb5u, + 0x00004bb4u, 0x00050051u, 0x00000006u, 0x000053d7u, 0x00004bb5u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000053d8u, 0x0000495eu, 0x000053d7u, 0x00050080u, 0x00000006u, 0x000053d9u, 0x0000495cu, 0x000053d8u, + 0x00050051u, 0x00000006u, 0x000053dbu, 0x00004bb5u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000053dcu, + 0x000053dbu, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000053deu, 0x000053d9u, 0x000053dcu, 0x000500c7u, + 0x00000006u, 0x000053e0u, 0x000053deu, 0x00000f2du, 0x000400c8u, 0x00000006u, 0x000053e3u, 0x000053dbu, + 0x000500c7u, 0x00000006u, 0x000053e4u, 0x000053e3u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000053e5u, + 0x000053e4u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000053e9u, 0x000053d7u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000053eau, 0x000053e9u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000053ecu, 0x000053e0u, + 0x000053eau, 0x000500c6u, 0x00000006u, 0x000053eeu, 0x000053ecu, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000053f1u, 0x00000e8fu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000053eeu, 0x0004003du, 0x0000000fu, + 0x000053f2u, 0x000053f1u, 0x00040071u, 0x00000006u, 0x000053f3u, 0x000053f2u, 0x000500c2u, 0x00000006u, + 0x000053f6u, 0x000053f3u, 0x000053e5u, 0x000500c7u, 0x00000006u, 0x000053f7u, 0x000053f6u, 0x00000e98u, + 0x000500c5u, 0x00000006u, 0x000053fbu, 0x000053f7u, 0x00005285u, 0x000500c4u, 0x00000006u, 0x000053fdu, + 0x000053fbu, 0x00000232u, 0x00050080u, 0x00000006u, 0x000053ffu, 0x000053fdu, 0x00000469u, 0x000500c6u, + 0x00000006u, 0x00005402u, 0x000053ffu, 0x00004b56u, 0x000500c5u, 0x00000006u, 0x00005405u, 0x00000f5eu, + 0x00005402u, 0x00080041u, 0x00000697u, 0x00005406u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00005405u, 0x0004003du, 0x00000011u, 0x00005407u, 0x00005406u, 0x00040071u, 0x00000006u, 0x00005408u, + 0x00005407u, 0x000300f7u, 0x00005410u, 0x00000000u, 0x000400fau, 0x00002316u, 0x0000540au, 0x0000540du, + 0x000200f8u, 0x0000540du, 0x00060050u, 0x00000311u, 0x0000542cu, 0x00005408u, 0x00005408u, 0x00005408u, + 0x000500c2u, 0x00000311u, 0x0000542du, 0x0000542cu, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x0000542fu, + 0x0000542du, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x00005432u, 0x0000542fu, 0x0000c219u, 0x000500c2u, + 0x00000311u, 0x00005435u, 0x0000542fu, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00005436u, 0x00005432u, + 0x00005435u, 0x000500c7u, 0x00000006u, 0x00005438u, 0x00005408u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00005439u, 0x00005438u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x0000543bu, 0x00005436u, 0x0004007cu, + 0x000004bbu, 0x0000543cu, 0x0000543bu, 0x00040071u, 0x00000011u, 0x0000543eu, 0x00005439u, 0x0004007cu, + 0x00000012u, 0x0000543fu, 0x0000543eu, 0x00050051u, 0x00000012u, 0x00005440u, 0x0000543cu, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00005441u, 0x0000543cu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00005442u, + 0x0000543cu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005443u, 0x00005440u, 0x00005441u, 0x00005442u, + 0x0000543fu, 0x000200f9u, 0x00005410u, 0x000200f8u, 0x0000540au, 0x000500c2u, 0x00000006u, 0x00005417u, + 0x00005408u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005419u, 0x00005408u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x0000541bu, 0x00005417u, 0x0004007cu, 0x00000012u, 0x0000541cu, 0x0000541bu, 0x00040071u, + 0x00000011u, 0x00005424u, 0x00005419u, 0x0004007cu, 0x00000012u, 0x00005425u, 0x00005424u, 0x00070050u, + 0x00000013u, 0x00005426u, 0x0000541cu, 0x0000541cu, 0x0000541cu, 0x00005425u, 0x000200f9u, 0x00005410u, + 0x000200f8u, 0x00005410u, 0x000700f5u, 0x00000013u, 0x000082bcu, 0x00005426u, 0x0000540au, 0x00005443u, + 0x0000540du, 0x000200f9u, 0x00004bbeu, 0x000200f8u, 0x00004bbeu, 0x000700f5u, 0x00000013u, 0x000086f3u, + 0x00008645u, 0x00004bafu, 0x000082bcu, 0x00005410u, 0x000200f9u, 0x00004bebu, 0x000200f8u, 0x00004b5bu, + 0x0004007cu, 0x000000b4u, 0x00004b5du, 0x0000829cu, 0x000600a9u, 0x00000008u, 0x00004b5fu, 0x00004b30u, + 0x00000235u, 0x00000225u, 0x0004007cu, 0x00000006u, 0x00004b60u, 0x00004b5fu, 0x00050051u, 0x00000006u, + 0x000050a2u, 0x00004b5du, 0x00000001u, 0x00050084u, 0x00000006u, 0x000050a3u, 0x0000495eu, 0x000050a2u, + 0x00050080u, 0x00000006u, 0x000050a4u, 0x0000495cu, 0x000050a3u, 0x00050051u, 0x00000006u, 0x000050a6u, + 0x00004b5du, 0x00000000u, 0x00050084u, 0x00000006u, 0x000050a7u, 0x000050a6u, 0x0000038bu, 0x00050080u, + 0x00000006u, 0x000050a9u, 0x000050a4u, 0x000050a7u, 0x000500c7u, 0x00000006u, 0x000050abu, 0x000050a9u, + 0x00000f2du, 0x000500c2u, 0x00000006u, 0x000050adu, 0x000050abu, 0x0000022fu, 0x000500c7u, 0x00000006u, + 0x000050b0u, 0x000050a2u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000050b1u, 0x000050b0u, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x000050b3u, 0x000050adu, 0x000050b1u, 0x000500c6u, 0x00000006u, 0x000050b5u, + 0x000050b3u, 0x00000461u, 0x00080041u, 0x00000697u, 0x000050b8u, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x000050b5u, 0x0004003du, 0x00000011u, 0x000050b9u, 0x000050b8u, 0x00040071u, 0x00000006u, + 0x000050bau, 0x000050b9u, 0x000500c2u, 0x00000006u, 0x000050bcu, 0x000050bau, 0x0000023eu, 0x000500c7u, + 0x00000006u, 0x000050bdu, 0x000050bcu, 0x00000ffeu, 0x00050080u, 0x00000006u, 0x000050bfu, 0x000050bdu, + 0x00004b60u, 0x000500c6u, 0x00000006u, 0x000050c2u, 0x000050bfu, 0x00004b56u, 0x000500c5u, 0x00000006u, + 0x000050c5u, 0x00000f5eu, 0x000050c2u, 0x00080041u, 0x00000697u, 0x000050c6u, 0x00000f5cu, 0x00000225u, + 0x00002302u, 0x00000225u, 0x000050c5u, 0x0004003du, 0x00000011u, 0x000050c7u, 0x000050c6u, 0x00040071u, + 0x00000006u, 0x000050c8u, 0x000050c7u, 0x000300f7u, 0x000050d0u, 0x00000000u, 0x000400fau, 0x00002316u, + 0x000050cau, 0x000050cdu, 0x000200f8u, 0x000050cdu, 0x00060050u, 0x00000311u, 0x000050ecu, 0x000050c8u, + 0x000050c8u, 0x000050c8u, 0x000500c2u, 0x00000311u, 0x000050edu, 0x000050ecu, 0x00000e36u, 0x000500c7u, + 0x00000311u, 0x000050efu, 0x000050edu, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x000050f2u, 0x000050efu, + 0x0000c219u, 0x000500c2u, 0x00000311u, 0x000050f5u, 0x000050efu, 0x0000c21au, 0x000500c5u, 0x00000311u, + 0x000050f6u, 0x000050f2u, 0x000050f5u, 0x000500c7u, 0x00000006u, 0x000050f8u, 0x000050c8u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x000050f9u, 0x000050f8u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000050fbu, + 0x000050f6u, 0x0004007cu, 0x000004bbu, 0x000050fcu, 0x000050fbu, 0x00040071u, 0x00000011u, 0x000050feu, + 0x000050f9u, 0x0004007cu, 0x00000012u, 0x000050ffu, 0x000050feu, 0x00050051u, 0x00000012u, 0x00005100u, + 0x000050fcu, 0x00000000u, 0x00050051u, 0x00000012u, 0x00005101u, 0x000050fcu, 0x00000001u, 0x00050051u, + 0x00000012u, 0x00005102u, 0x000050fcu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005103u, 0x00005100u, + 0x00005101u, 0x00005102u, 0x000050ffu, 0x000200f9u, 0x000050d0u, 0x000200f8u, 0x000050cau, 0x000500c2u, + 0x00000006u, 0x000050d7u, 0x000050c8u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x000050d9u, 0x000050c8u, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x000050dbu, 0x000050d7u, 0x0004007cu, 0x00000012u, 0x000050dcu, + 0x000050dbu, 0x00040071u, 0x00000011u, 0x000050e4u, 0x000050d9u, 0x0004007cu, 0x00000012u, 0x000050e5u, + 0x000050e4u, 0x00070050u, 0x00000013u, 0x000050e6u, 0x000050dcu, 0x000050dcu, 0x000050dcu, 0x000050e5u, + 0x000200f9u, 0x000050d0u, 0x000200f8u, 0x000050d0u, 0x000700f5u, 0x00000013u, 0x000082bdu, 0x000050e6u, + 0x000050cau, 0x00005103u, 0x000050cdu, 0x000300f7u, 0x00004b7au, 0x00000000u, 0x000400fau, 0x00002358u, + 0x00004b67u, 0x00004b7au, 0x000200f8u, 0x00004b67u, 0x00050050u, 0x000000f2u, 0x00004b6au, 0x0000c259u, + 0x00004b18u, 0x0004007cu, 0x000000b4u, 0x00004b6bu, 0x00004b6au, 0x00050051u, 0x00000006u, 0x00005112u, + 0x00004b6bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005113u, 0x0000495eu, 0x00005112u, 0x00050080u, + 0x00000006u, 0x00005114u, 0x0000495cu, 0x00005113u, 0x00050051u, 0x00000006u, 0x00005116u, 0x00004b6bu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00005117u, 0x00005116u, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x00005119u, 0x00005114u, 0x00005117u, 0x000500c7u, 0x00000006u, 0x0000511bu, 0x00005119u, 0x00000f2du, + 0x000500c2u, 0x00000006u, 0x0000511du, 0x0000511bu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005120u, + 0x00005112u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005121u, 0x00005120u, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00005123u, 0x0000511du, 0x00005121u, 0x000500c6u, 0x00000006u, 0x00005125u, 0x00005123u, + 0x00000461u, 0x00080041u, 0x00000697u, 0x00005128u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00005125u, 0x0004003du, 0x00000011u, 0x00005129u, 0x00005128u, 0x00040071u, 0x00000006u, 0x0000512au, + 0x00005129u, 0x000500c2u, 0x00000006u, 0x0000512cu, 0x0000512au, 0x0000023eu, 0x000500c7u, 0x00000006u, + 0x0000512du, 0x0000512cu, 0x00000ffeu, 0x00050080u, 0x00000006u, 0x0000512fu, 0x0000512du, 0x00000461u, + 0x000500c6u, 0x00000006u, 0x00005132u, 0x0000512fu, 0x00004b56u, 0x000500c5u, 0x00000006u, 0x00005135u, + 0x00000f5eu, 0x00005132u, 0x00080041u, 0x00000697u, 0x00005136u, 0x00000f5cu, 0x00000225u, 0x00002302u, + 0x00000225u, 0x00005135u, 0x0004003du, 0x00000011u, 0x00005137u, 0x00005136u, 0x00040071u, 0x00000006u, + 0x00005138u, 0x00005137u, 0x000300f7u, 0x00005140u, 0x00000000u, 0x000400fau, 0x00002316u, 0x0000513au, + 0x0000513du, 0x000200f8u, 0x0000513du, 0x00060050u, 0x00000311u, 0x0000515cu, 0x00005138u, 0x00005138u, + 0x00005138u, 0x000500c2u, 0x00000311u, 0x0000515du, 0x0000515cu, 0x00000e36u, 0x000500c7u, 0x00000311u, + 0x0000515fu, 0x0000515du, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x00005162u, 0x0000515fu, 0x0000c219u, + 0x000500c2u, 0x00000311u, 0x00005165u, 0x0000515fu, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00005166u, + 0x00005162u, 0x00005165u, 0x000500c7u, 0x00000006u, 0x00005168u, 0x00005138u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00005169u, 0x00005168u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x0000516bu, 0x00005166u, + 0x0004007cu, 0x000004bbu, 0x0000516cu, 0x0000516bu, 0x00040071u, 0x00000011u, 0x0000516eu, 0x00005169u, + 0x0004007cu, 0x00000012u, 0x0000516fu, 0x0000516eu, 0x00050051u, 0x00000012u, 0x00005170u, 0x0000516cu, + 0x00000000u, 0x00050051u, 0x00000012u, 0x00005171u, 0x0000516cu, 0x00000001u, 0x00050051u, 0x00000012u, + 0x00005172u, 0x0000516cu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005173u, 0x00005170u, 0x00005171u, + 0x00005172u, 0x0000516fu, 0x000200f9u, 0x00005140u, 0x000200f8u, 0x0000513au, 0x000500c2u, 0x00000006u, + 0x00005147u, 0x00005138u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005149u, 0x00005138u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x0000514bu, 0x00005147u, 0x0004007cu, 0x00000012u, 0x0000514cu, 0x0000514bu, + 0x00040071u, 0x00000011u, 0x00005154u, 0x00005149u, 0x0004007cu, 0x00000012u, 0x00005155u, 0x00005154u, + 0x00070050u, 0x00000013u, 0x00005156u, 0x0000514cu, 0x0000514cu, 0x0000514cu, 0x00005155u, 0x000200f9u, + 0x00005140u, 0x000200f8u, 0x00005140u, 0x000700f5u, 0x00000013u, 0x000082c0u, 0x00005156u, 0x0000513au, + 0x00005173u, 0x0000513du, 0x00050050u, 0x000000f2u, 0x00004b73u, 0x0000824fu, 0x0000c258u, 0x0004007cu, + 0x000000b4u, 0x00004b74u, 0x00004b73u, 0x00050051u, 0x00000006u, 0x00005182u, 0x00004b74u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005183u, 0x0000495eu, 0x00005182u, 0x00050080u, 0x00000006u, 0x00005184u, + 0x0000495cu, 0x00005183u, 0x00050051u, 0x00000006u, 0x00005186u, 0x00004b74u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005187u, 0x00005186u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005189u, 0x00005184u, + 0x00005187u, 0x000500c7u, 0x00000006u, 0x0000518bu, 0x00005189u, 0x00000f2du, 0x000500c2u, 0x00000006u, + 0x0000518du, 0x0000518bu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005190u, 0x00005182u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00005191u, 0x00005190u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005193u, + 0x0000518du, 0x00005191u, 0x000500c6u, 0x00000006u, 0x00005195u, 0x00005193u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x00005198u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005195u, 0x0004003du, + 0x00000011u, 0x00005199u, 0x00005198u, 0x00040071u, 0x00000006u, 0x0000519au, 0x00005199u, 0x000500c2u, + 0x00000006u, 0x0000519cu, 0x0000519au, 0x0000023eu, 0x000500c7u, 0x00000006u, 0x0000519du, 0x0000519cu, + 0x00000ffeu, 0x00050080u, 0x00000006u, 0x0000519fu, 0x0000519du, 0x0000038bu, 0x000500c6u, 0x00000006u, + 0x000051a2u, 0x0000519fu, 0x00004b56u, 0x000500c5u, 0x00000006u, 0x000051a5u, 0x00000f5eu, 0x000051a2u, + 0x00080041u, 0x00000697u, 0x000051a6u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x000051a5u, + 0x0004003du, 0x00000011u, 0x000051a7u, 0x000051a6u, 0x00040071u, 0x00000006u, 0x000051a8u, 0x000051a7u, + 0x000300f7u, 0x000051b0u, 0x00000000u, 0x000400fau, 0x00002316u, 0x000051aau, 0x000051adu, 0x000200f8u, + 0x000051adu, 0x00060050u, 0x00000311u, 0x000051ccu, 0x000051a8u, 0x000051a8u, 0x000051a8u, 0x000500c2u, + 0x00000311u, 0x000051cdu, 0x000051ccu, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x000051cfu, 0x000051cdu, + 0x0000c218u, 0x000500c4u, 0x00000311u, 0x000051d2u, 0x000051cfu, 0x0000c219u, 0x000500c2u, 0x00000311u, + 0x000051d5u, 0x000051cfu, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x000051d6u, 0x000051d2u, 0x000051d5u, + 0x000500c7u, 0x00000006u, 0x000051d8u, 0x000051a8u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000051d9u, + 0x000051d8u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000051dbu, 0x000051d6u, 0x0004007cu, 0x000004bbu, + 0x000051dcu, 0x000051dbu, 0x00040071u, 0x00000011u, 0x000051deu, 0x000051d9u, 0x0004007cu, 0x00000012u, + 0x000051dfu, 0x000051deu, 0x00050051u, 0x00000012u, 0x000051e0u, 0x000051dcu, 0x00000000u, 0x00050051u, + 0x00000012u, 0x000051e1u, 0x000051dcu, 0x00000001u, 0x00050051u, 0x00000012u, 0x000051e2u, 0x000051dcu, + 0x00000002u, 0x00070050u, 0x00000013u, 0x000051e3u, 0x000051e0u, 0x000051e1u, 0x000051e2u, 0x000051dfu, + 0x000200f9u, 0x000051b0u, 0x000200f8u, 0x000051aau, 0x000500c2u, 0x00000006u, 0x000051b7u, 0x000051a8u, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x000051b9u, 0x000051a8u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x000051bbu, 0x000051b7u, 0x0004007cu, 0x00000012u, 0x000051bcu, 0x000051bbu, 0x00040071u, 0x00000011u, + 0x000051c4u, 0x000051b9u, 0x0004007cu, 0x00000012u, 0x000051c5u, 0x000051c4u, 0x00070050u, 0x00000013u, + 0x000051c6u, 0x000051bcu, 0x000051bcu, 0x000051bcu, 0x000051c5u, 0x000200f9u, 0x000051b0u, 0x000200f8u, + 0x000051b0u, 0x000700f5u, 0x00000013u, 0x000082c3u, 0x000051c6u, 0x000051aau, 0x000051e3u, 0x000051adu, + 0x000200f9u, 0x00004b7au, 0x000200f8u, 0x00004b7au, 0x000700f5u, 0x00000013u, 0x000085f9u, 0x00008550u, + 0x000050d0u, 0x000082c3u, 0x000051b0u, 0x000700f5u, 0x00000013u, 0x000084feu, 0x00008455u, 0x000050d0u, + 0x000082c0u, 0x000051b0u, 0x000300f7u, 0x00004b86u, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004b7cu, + 0x00004b86u, 0x000200f8u, 0x00004b7cu, 0x00050050u, 0x000000f2u, 0x00004b7fu, 0x0000c259u, 0x0000c258u, + 0x0004007cu, 0x000000b4u, 0x00004b80u, 0x00004b7fu, 0x00050051u, 0x00000006u, 0x000051f2u, 0x00004b80u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000051f3u, 0x0000495eu, 0x000051f2u, 0x00050080u, 0x00000006u, + 0x000051f4u, 0x0000495cu, 0x000051f3u, 0x00050051u, 0x00000006u, 0x000051f6u, 0x00004b80u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x000051f7u, 0x000051f6u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000051f9u, + 0x000051f4u, 0x000051f7u, 0x000500c7u, 0x00000006u, 0x000051fbu, 0x000051f9u, 0x00000f2du, 0x000500c2u, + 0x00000006u, 0x000051fdu, 0x000051fbu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005200u, 0x000051f2u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005201u, 0x00005200u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00005203u, 0x000051fdu, 0x00005201u, 0x000500c6u, 0x00000006u, 0x00005205u, 0x00005203u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00005208u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, 0x00005205u, + 0x0004003du, 0x00000011u, 0x00005209u, 0x00005208u, 0x00040071u, 0x00000006u, 0x0000520au, 0x00005209u, + 0x000500c2u, 0x00000006u, 0x0000520cu, 0x0000520au, 0x0000023eu, 0x000500c7u, 0x00000006u, 0x0000520du, + 0x0000520cu, 0x00000ffeu, 0x00050080u, 0x00000006u, 0x0000520fu, 0x0000520du, 0x00000469u, 0x000500c6u, + 0x00000006u, 0x00005212u, 0x0000520fu, 0x00004b56u, 0x000500c5u, 0x00000006u, 0x00005215u, 0x00000f5eu, + 0x00005212u, 0x00080041u, 0x00000697u, 0x00005216u, 0x00000f5cu, 0x00000225u, 0x00002302u, 0x00000225u, + 0x00005215u, 0x0004003du, 0x00000011u, 0x00005217u, 0x00005216u, 0x00040071u, 0x00000006u, 0x00005218u, + 0x00005217u, 0x000300f7u, 0x00005220u, 0x00000000u, 0x000400fau, 0x00002316u, 0x0000521au, 0x0000521du, + 0x000200f8u, 0x0000521du, 0x00060050u, 0x00000311u, 0x0000523cu, 0x00005218u, 0x00005218u, 0x00005218u, + 0x000500c2u, 0x00000311u, 0x0000523du, 0x0000523cu, 0x00000e36u, 0x000500c7u, 0x00000311u, 0x0000523fu, + 0x0000523du, 0x0000c218u, 0x000500c4u, 0x00000311u, 0x00005242u, 0x0000523fu, 0x0000c219u, 0x000500c2u, + 0x00000311u, 0x00005245u, 0x0000523fu, 0x0000c21au, 0x000500c5u, 0x00000311u, 0x00005246u, 0x00005242u, + 0x00005245u, 0x000500c7u, 0x00000006u, 0x00005248u, 0x00005218u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00005249u, 0x00005248u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x0000524bu, 0x00005246u, 0x0004007cu, + 0x000004bbu, 0x0000524cu, 0x0000524bu, 0x00040071u, 0x00000011u, 0x0000524eu, 0x00005249u, 0x0004007cu, + 0x00000012u, 0x0000524fu, 0x0000524eu, 0x00050051u, 0x00000012u, 0x00005250u, 0x0000524cu, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00005251u, 0x0000524cu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00005252u, + 0x0000524cu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005253u, 0x00005250u, 0x00005251u, 0x00005252u, + 0x0000524fu, 0x000200f9u, 0x00005220u, 0x000200f8u, 0x0000521au, 0x000500c2u, 0x00000006u, 0x00005227u, + 0x00005218u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005229u, 0x00005218u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x0000522bu, 0x00005227u, 0x0004007cu, 0x00000012u, 0x0000522cu, 0x0000522bu, 0x00040071u, + 0x00000011u, 0x00005234u, 0x00005229u, 0x0004007cu, 0x00000012u, 0x00005235u, 0x00005234u, 0x00070050u, + 0x00000013u, 0x00005236u, 0x0000522cu, 0x0000522cu, 0x0000522cu, 0x00005235u, 0x000200f9u, 0x00005220u, + 0x000200f8u, 0x00005220u, 0x000700f5u, 0x00000013u, 0x000082c9u, 0x00005236u, 0x0000521au, 0x00005253u, + 0x0000521du, 0x000200f9u, 0x00004b86u, 0x000200f8u, 0x00004b86u, 0x000700f5u, 0x00000013u, 0x000086edu, + 0x00008645u, 0x00004b7au, 0x000082c9u, 0x00005220u, 0x000200f9u, 0x00004bebu, 0x000200f8u, 0x00004bebu, + 0x000900f5u, 0x00000013u, 0x000086ecu, 0x000086edu, 0x00004b86u, 0x000086f3u, 0x00004bbeu, 0x000086f8u, + 0x00004beau, 0x000900f5u, 0x00000013u, 0x000085f7u, 0x000085f9u, 0x00004b86u, 0x000085feu, 0x00004bbeu, + 0x00008602u, 0x00004beau, 0x000900f5u, 0x00000013u, 0x000084fcu, 0x000084feu, 0x00004b86u, 0x00008504u, + 0x00004bbeu, 0x00008509u, 0x00004beau, 0x000900f5u, 0x00000013u, 0x00008390u, 0x000082bdu, 0x00004b86u, + 0x000082b0u, 0x00004bbeu, 0x0000829du, 0x00004beau, 0x000200f9u, 0x00004becu, 0x000200f8u, 0x00004becu, + 0x000700f5u, 0x00000013u, 0x00008628u, 0x00008645u, 0x00004b4cu, 0x000086ecu, 0x00004bebu, 0x000700f5u, + 0x00000013u, 0x00008533u, 0x00008550u, 0x00004b4cu, 0x000085f7u, 0x00004bebu, 0x000700f5u, 0x00000013u, + 0x00008438u, 0x00008455u, 0x00004b4cu, 0x000084fcu, 0x00004bebu, 0x000700f5u, 0x00000013u, 0x000082ccu, + 0x000082e9u, 0x00004b4cu, 0x00008390u, 0x00004bebu, 0x000200f9u, 0x00004e13u, 0x000200f8u, 0x00004e13u, + 0x000700f5u, 0x00000013u, 0x00008627u, 0x00008628u, 0x00004becu, 0x000086fdu, 0x00004e12u, 0x000700f5u, + 0x00000013u, 0x00008532u, 0x00008533u, 0x00004becu, 0x00008605u, 0x00004e12u, 0x000700f5u, 0x00000013u, + 0x00008437u, 0x00008438u, 0x00004becu, 0x0000850du, 0x00004e12u, 0x000700f5u, 0x00000013u, 0x000082cbu, + 0x000082ccu, 0x00004becu, 0x000083a0u, 0x00004e12u, 0x000300f7u, 0x00004fa4u, 0x00000000u, 0x000400fau, + 0x00002352u, 0x00004e15u, 0x00004eeeu, 0x000200f8u, 0x00004eeeu, 0x000300f7u, 0x00004fa3u, 0x00000000u, + 0x000400fau, 0x00004b2eu, 0x00004ef0u, 0x00004f63u, 0x000200f8u, 0x00004f63u, 0x000300f7u, 0x00004fa2u, + 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004f65u, 0x00004f71u, 0x000200f8u, 0x00004f71u, 0x000600a9u, + 0x00000069u, 0x0000c25au, 0x00002358u, 0x00004af2u, 0x00002358u, 0x000300f7u, 0x00004fa1u, 0x00000000u, + 0x000400fau, 0x0000c25au, 0x00004f79u, 0x00004f9fu, 0x000200f8u, 0x00004f9fu, 0x000200f9u, 0x00004fa1u, + 0x000200f8u, 0x00004f79u, 0x000300f7u, 0x00004f83u, 0x00000000u, 0x000400fau, 0x00004b30u, 0x00004f7cu, + 0x00004f81u, 0x000200f8u, 0x00004f81u, 0x000200f9u, 0x00004f83u, 0x000200f8u, 0x00004f7cu, 0x0007004fu, + 0x000000f2u, 0x00004f7eu, 0x0000824cu, 0x0000824cu, 0x00000001u, 0x00000000u, 0x00050082u, 0x000000f2u, + 0x00004f80u, 0x0000c21eu, 0x00004f7eu, 0x000200f9u, 0x00004f83u, 0x000200f8u, 0x00004f83u, 0x000700f5u, + 0x000000f2u, 0x00008434u, 0x00004f80u, 0x00004f7cu, 0x0000824cu, 0x00004f81u, 0x00040072u, 0x000001b1u, + 0x00004f85u, 0x00008434u, 0x00050082u, 0x00000013u, 0x00004f88u, 0x00008437u, 0x000082cbu, 0x00050051u, + 0x00000012u, 0x00004f8au, 0x00004f85u, 0x00000000u, 0x00070050u, 0x00000013u, 0x00004f8bu, 0x00004f8au, + 0x00004f8au, 0x00004f8au, 0x00004f8au, 0x00050084u, 0x00000013u, 0x00004f8cu, 0x00004f88u, 0x00004f8bu, + 0x00050082u, 0x00000013u, 0x00004f8fu, 0x00008532u, 0x000082cbu, 0x00050051u, 0x00000012u, 0x00004f91u, + 0x00004f85u, 0x00000001u, 0x00070050u, 0x00000013u, 0x00004f92u, 0x00004f91u, 0x00004f91u, 0x00004f91u, + 0x00004f91u, 0x00050084u, 0x00000013u, 0x00004f93u, 0x00004f8fu, 0x00004f92u, 0x00050080u, 0x00000013u, + 0x00004f95u, 0x00004f8cu, 0x00004f93u, 0x00050080u, 0x00000013u, 0x00004f98u, 0x00004f95u, 0x0000c221u, + 0x000500c3u, 0x00000013u, 0x00004f9bu, 0x00004f98u, 0x0000c222u, 0x00050080u, 0x00000013u, 0x00004f9eu, + 0x00004f9bu, 0x000082cbu, 0x000200f9u, 0x00004fa1u, 0x000200f8u, 0x00004fa1u, 0x000700f5u, 0x00000013u, + 0x00008762u, 0x00004f9eu, 0x00004f83u, 0x000082cbu, 0x00004f9fu, 0x000200f9u, 0x00004fa2u, 0x000200f8u, + 0x00004f65u, 0x00050080u, 0x00000013u, 0x00004f68u, 0x000082cbu, 0x00008532u, 0x00050080u, 0x00000013u, + 0x00004f6au, 0x00004f68u, 0x00008437u, 0x00050080u, 0x00000013u, 0x00004f6cu, 0x00004f6au, 0x00008627u, + 0x00050080u, 0x00000013u, 0x00004f6eu, 0x00004f6cu, 0x0000c21bu, 0x000500c3u, 0x00000013u, 0x00004f70u, + 0x00004f6eu, 0x0000c21bu, 0x000200f9u, 0x00004fa2u, 0x000200f8u, 0x00004fa2u, 0x000700f5u, 0x00000013u, + 0x00008761u, 0x00004f70u, 0x00004f65u, 0x00008762u, 0x00004fa1u, 0x000200f9u, 0x00004fa3u, 0x000200f8u, + 0x00004ef0u, 0x000300f7u, 0x00004f62u, 0x00000000u, 0x000400fau, 0x00002319u, 0x00004ef2u, 0x00004f60u, + 0x000200f8u, 0x00004f60u, 0x000200f9u, 0x00004f62u, 0x000200f8u, 0x00004ef2u, 0x000300f7u, 0x00004f58u, + 0x00000000u, 0x000400fau, 0x00002358u, 0x00004ef4u, 0x00004f3cu, 0x000200f8u, 0x00004f3cu, 0x000300f7u, + 0x00004f49u, 0x00000000u, 0x000400fau, 0x00004b26u, 0x00004f43u, 0x00004f46u, 0x000200f8u, 0x00004f46u, + 0x0007004fu, 0x000001b1u, 0x00004f48u, 0x000082cbu, 0x000082cbu, 0x00000002u, 0x00000003u, 0x000200f9u, + 0x00004f49u, 0x000200f8u, 0x00004f43u, 0x0007004fu, 0x000001b1u, 0x00004f45u, 0x00008627u, 0x00008627u, + 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004f49u, 0x000200f8u, 0x00004f49u, 0x000700f5u, 0x000001b1u, + 0x0000871fu, 0x00004f45u, 0x00004f43u, 0x00004f48u, 0x00004f46u, 0x00050080u, 0x00000008u, 0x00004f4eu, + 0x00004b41u, 0x00004afcu, 0x000500afu, 0x00000069u, 0x00004f4fu, 0x00004f4eu, 0x0000115fu, 0x000300f7u, + 0x00004f56u, 0x00000000u, 0x000400fau, 0x00004f4fu, 0x00004f50u, 0x00004f53u, 0x000200f8u, 0x00004f53u, + 0x0007004fu, 0x000001b1u, 0x00004f55u, 0x000082cbu, 0x000082cbu, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00004f56u, 0x000200f8u, 0x00004f50u, 0x0007004fu, 0x000001b1u, 0x00004f52u, 0x00008627u, 0x00008627u, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004f56u, 0x000200f8u, 0x00004f56u, 0x000700f5u, 0x000001b1u, + 0x00008723u, 0x00004f52u, 0x00004f50u, 0x00004f55u, 0x00004f53u, 0x000200f9u, 0x00004f58u, 0x000200f8u, + 0x00004ef4u, 0x00050050u, 0x000000f2u, 0x00004ef9u, 0x00004b41u, 0x00004afcu, 0x000500aau, 0x00000884u, + 0x00004efau, 0x00004ef9u, 0x000013ffu, 0x00050051u, 0x00000069u, 0x00004efbu, 0x00004efau, 0x00000000u, + 0x00050051u, 0x00000069u, 0x00004efcu, 0x00004efau, 0x00000001u, 0x00060050u, 0x00000368u, 0x00004efdu, + 0x00002343u, 0x00004efbu, 0x00004efcu, 0x0004009bu, 0x00000069u, 0x00004efeu, 0x00004efdu, 0x000300f7u, + 0x00004f1eu, 0x00000000u, 0x000400fau, 0x00004efeu, 0x00004f00u, 0x00004f10u, 0x000200f8u, 0x00004f10u, + 0x0007004fu, 0x000001b1u, 0x00004f16u, 0x000082cbu, 0x000082cbu, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x000001b1u, 0x00004f18u, 0x00008437u, 0x00008437u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x000001b1u, + 0x00004f1au, 0x00008532u, 0x00008532u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x00004f1cu, + 0x00008627u, 0x00008627u, 0x00000000u, 0x00000001u, 0x00050080u, 0x00000008u, 0x0000627fu, 0x00004b41u, + 0x00004afcu, 0x000500afu, 0x00000069u, 0x00006281u, 0x0000627fu, 0x0000115fu, 0x00050050u, 0x00000884u, + 0x00006284u, 0x00006281u, 0x00006281u, 0x000600a9u, 0x000001b1u, 0x00006285u, 0x00006284u, 0x00004f1cu, + 0x00004f16u, 0x000300f7u, 0x0000628fu, 0x00000000u, 0x000400fau, 0x00006281u, 0x00006288u, 0x0000628du, + 0x000200f8u, 0x0000628du, 0x000200f9u, 0x0000628fu, 0x000200f8u, 0x00006288u, 0x0007004fu, 0x000000f2u, + 0x0000628au, 0x00004ef9u, 0x00004ef9u, 0x00000001u, 0x00000000u, 0x00050082u, 0x000000f2u, 0x0000628cu, + 0x0000c21eu, 0x0000628au, 0x000200f9u, 0x0000628fu, 0x000200f8u, 0x0000628fu, 0x000700f5u, 0x000000f2u, + 0x00008724u, 0x0000628cu, 0x00006288u, 0x00004ef9u, 0x0000628du, 0x00040072u, 0x000001b1u, 0x00006291u, + 0x00008724u, 0x00050082u, 0x000001b1u, 0x00006294u, 0x00004f18u, 0x00006285u, 0x00050051u, 0x00000012u, + 0x00006296u, 0x00006291u, 0x00000000u, 0x00050050u, 0x000001b1u, 0x00006297u, 0x00006296u, 0x00006296u, + 0x00050084u, 0x000001b1u, 0x00006298u, 0x00006294u, 0x00006297u, 0x00050082u, 0x000001b1u, 0x0000629bu, + 0x00004f1au, 0x00006285u, 0x00050051u, 0x00000012u, 0x0000629du, 0x00006291u, 0x00000001u, 0x00050050u, + 0x000001b1u, 0x0000629eu, 0x0000629du, 0x0000629du, 0x00050084u, 0x000001b1u, 0x0000629fu, 0x0000629bu, + 0x0000629eu, 0x00050080u, 0x000001b1u, 0x000062a1u, 0x00006298u, 0x0000629fu, 0x00050080u, 0x000001b1u, + 0x000062a4u, 0x000062a1u, 0x0000c21fu, 0x000500c3u, 0x000001b1u, 0x000062a7u, 0x000062a4u, 0x0000c220u, + 0x00050080u, 0x000001b1u, 0x000062aau, 0x000062a7u, 0x00006285u, 0x000200f9u, 0x00004f1eu, 0x000200f8u, + 0x00004f00u, 0x0007004fu, 0x000001b1u, 0x00004f02u, 0x000082cbu, 0x000082cbu, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x000001b1u, 0x00004f04u, 0x00008437u, 0x00008437u, 0x00000000u, 0x00000001u, 0x00050080u, + 0x000001b1u, 0x00004f05u, 0x00004f02u, 0x00004f04u, 0x0007004fu, 0x000001b1u, 0x00004f07u, 0x00008627u, + 0x00008627u, 0x00000000u, 0x00000001u, 0x00050080u, 0x000001b1u, 0x00004f08u, 0x00004f05u, 0x00004f07u, + 0x0007004fu, 0x000001b1u, 0x00004f0au, 0x00008532u, 0x00008532u, 0x00000000u, 0x00000001u, 0x00050080u, + 0x000001b1u, 0x00004f0bu, 0x00004f08u, 0x00004f0au, 0x00050080u, 0x000001b1u, 0x00004f0du, 0x00004f0bu, + 0x0000c21du, 0x000500c3u, 0x000001b1u, 0x00004f0fu, 0x00004f0du, 0x0000c21du, 0x000200f9u, 0x00004f1eu, + 0x000200f8u, 0x00004f1eu, 0x000700f5u, 0x000001b1u, 0x00008732u, 0x00004f0fu, 0x00004f00u, 0x000062aau, + 0x0000628fu, 0x000300f7u, 0x00004f3bu, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004f20u, 0x00004f30u, + 0x000200f8u, 0x00004f30u, 0x0007004fu, 0x000001b1u, 0x00004f32u, 0x000082cbu, 0x000082cbu, 0x00000002u, + 0x00000003u, 0x0007004fu, 0x000001b1u, 0x00004f34u, 0x00008437u, 0x00008437u, 0x00000002u, 0x00000003u, + 0x0007004fu, 0x000001b1u, 0x00004f36u, 0x00008532u, 0x00008532u, 0x00000002u, 0x00000003u, 0x0007004fu, + 0x000001b1u, 0x00004f38u, 0x00008627u, 0x00008627u, 0x00000002u, 0x00000003u, 0x00050050u, 0x00000884u, + 0x000062bcu, 0x00004b26u, 0x00004b26u, 0x000600a9u, 0x000001b1u, 0x000062bdu, 0x000062bcu, 0x00004f38u, + 0x00004f32u, 0x000300f7u, 0x000062c7u, 0x00000000u, 0x000400fau, 0x00004b26u, 0x000062c0u, 0x000062c5u, + 0x000200f8u, 0x000062c5u, 0x000200f9u, 0x000062c7u, 0x000200f8u, 0x000062c0u, 0x0007004fu, 0x000000f2u, + 0x000062c2u, 0x0000824cu, 0x0000824cu, 0x00000001u, 0x00000000u, 0x00050082u, 0x000000f2u, 0x000062c4u, + 0x0000c21eu, 0x000062c2u, 0x000200f9u, 0x000062c7u, 0x000200f8u, 0x000062c7u, 0x000700f5u, 0x000000f2u, + 0x0000872fu, 0x000062c4u, 0x000062c0u, 0x0000824cu, 0x000062c5u, 0x00040072u, 0x000001b1u, 0x000062c9u, + 0x0000872fu, 0x00050082u, 0x000001b1u, 0x000062ccu, 0x00004f34u, 0x000062bdu, 0x00050051u, 0x00000012u, + 0x000062ceu, 0x000062c9u, 0x00000000u, 0x00050050u, 0x000001b1u, 0x000062cfu, 0x000062ceu, 0x000062ceu, + 0x00050084u, 0x000001b1u, 0x000062d0u, 0x000062ccu, 0x000062cfu, 0x00050082u, 0x000001b1u, 0x000062d3u, + 0x00004f36u, 0x000062bdu, 0x00050051u, 0x00000012u, 0x000062d5u, 0x000062c9u, 0x00000001u, 0x00050050u, + 0x000001b1u, 0x000062d6u, 0x000062d5u, 0x000062d5u, 0x00050084u, 0x000001b1u, 0x000062d7u, 0x000062d3u, + 0x000062d6u, 0x00050080u, 0x000001b1u, 0x000062d9u, 0x000062d0u, 0x000062d7u, 0x00050080u, 0x000001b1u, + 0x000062dcu, 0x000062d9u, 0x0000c21fu, 0x000500c3u, 0x000001b1u, 0x000062dfu, 0x000062dcu, 0x0000c220u, + 0x00050080u, 0x000001b1u, 0x000062e2u, 0x000062dfu, 0x000062bdu, 0x000200f9u, 0x00004f3bu, 0x000200f8u, + 0x00004f20u, 0x0007004fu, 0x000001b1u, 0x00004f22u, 0x000082cbu, 0x000082cbu, 0x00000002u, 0x00000003u, + 0x0007004fu, 0x000001b1u, 0x00004f24u, 0x00008437u, 0x00008437u, 0x00000002u, 0x00000003u, 0x00050080u, + 0x000001b1u, 0x00004f25u, 0x00004f22u, 0x00004f24u, 0x0007004fu, 0x000001b1u, 0x00004f27u, 0x00008627u, + 0x00008627u, 0x00000002u, 0x00000003u, 0x00050080u, 0x000001b1u, 0x00004f28u, 0x00004f25u, 0x00004f27u, + 0x0007004fu, 0x000001b1u, 0x00004f2au, 0x00008532u, 0x00008532u, 0x00000002u, 0x00000003u, 0x00050080u, + 0x000001b1u, 0x00004f2bu, 0x00004f28u, 0x00004f2au, 0x00050080u, 0x000001b1u, 0x00004f2du, 0x00004f2bu, + 0x0000c21du, 0x000500c3u, 0x000001b1u, 0x00004f2fu, 0x00004f2du, 0x0000c21du, 0x000200f9u, 0x00004f3bu, + 0x000200f8u, 0x00004f3bu, 0x000700f5u, 0x000001b1u, 0x00008735u, 0x00004f2fu, 0x00004f20u, 0x000062e2u, + 0x000062c7u, 0x000200f9u, 0x00004f58u, 0x000200f8u, 0x00004f58u, 0x000700f5u, 0x000001b1u, 0x00008734u, + 0x00008735u, 0x00004f3bu, 0x0000871fu, 0x00004f56u, 0x000700f5u, 0x000001b1u, 0x00008730u, 0x00008732u, + 0x00004f3bu, 0x00008723u, 0x00004f56u, 0x00050051u, 0x00000012u, 0x00004f5bu, 0x00008730u, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00004f5cu, 0x00008730u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00004f5du, + 0x00008734u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004f5eu, 0x00008734u, 0x00000001u, 0x00070050u, + 0x00000013u, 0x00004f5fu, 0x00004f5bu, 0x00004f5cu, 0x00004f5du, 0x00004f5eu, 0x000200f9u, 0x00004f62u, + 0x000200f8u, 0x00004f62u, 0x000700f5u, 0x00000013u, 0x00008760u, 0x00004f5fu, 0x00004f58u, 0x000082cbu, + 0x00004f60u, 0x000200f9u, 0x00004fa3u, 0x000200f8u, 0x00004fa3u, 0x000700f5u, 0x00000013u, 0x0000875fu, + 0x00008760u, 0x00004f62u, 0x00008761u, 0x00004fa2u, 0x000200f9u, 0x00004fa4u, 0x000200f8u, 0x00004e15u, + 0x00040072u, 0x00000009u, 0x00004e17u, 0x000081f2u, 0x000600cau, 0x00000009u, 0x00004e18u, 0x00004e17u, + 0x00000225u, 0x00000265u, 0x000300f7u, 0x00004eedu, 0x00000000u, 0x000400fau, 0x00002319u, 0x00004e1au, + 0x00004ee9u, 0x000200f8u, 0x00004ee9u, 0x0009004fu, 0x00000009u, 0x00004eebu, 0x00004e18u, 0x00004e18u, + 0x00000002u, 0x00000002u, 0x00000002u, 0x00000002u, 0x00040072u, 0x00000013u, 0x00004eecu, 0x00004eebu, + 0x000200f9u, 0x00004eedu, 0x000200f8u, 0x00004e1au, 0x000300f7u, 0x00004e29u, 0x00000000u, 0x000400fau, + 0x00004b2eu, 0x00004e1cu, 0x00004e27u, 0x000200f8u, 0x00004e27u, 0x000200f9u, 0x00004e29u, 0x000200f8u, + 0x00004e1cu, 0x00050050u, 0x000000f2u, 0x00004e21u, 0x00004b41u, 0x00004afcu, 0x000500aau, 0x00000884u, + 0x00004e22u, 0x00004e21u, 0x000013ffu, 0x00050051u, 0x00000069u, 0x00004e23u, 0x00004e22u, 0x00000000u, + 0x00050051u, 0x00000069u, 0x00004e24u, 0x00004e22u, 0x00000001u, 0x00060050u, 0x00000368u, 0x00004e25u, + 0x00002343u, 0x00004e23u, 0x00004e24u, 0x0004009bu, 0x00000069u, 0x00004e26u, 0x00004e25u, 0x000200f9u, + 0x00004e29u, 0x000200f8u, 0x00004e29u, 0x000700f5u, 0x00000069u, 0x00008737u, 0x00004e26u, 0x00004e1cu, + 0x00004b24u, 0x00004e27u, 0x000300f7u, 0x00004e3au, 0x00000000u, 0x000400fau, 0x00004b2eu, 0x00004e2fu, + 0x00004e38u, 0x000200f8u, 0x00004e38u, 0x000200f9u, 0x00004e3au, 0x000200f8u, 0x00004e2fu, 0x00050080u, + 0x00000008u, 0x00004e33u, 0x00004b41u, 0x00004afcu, 0x000500afu, 0x00000069u, 0x00004e34u, 0x00004e33u, + 0x0000115fu, 0x000400a8u, 0x00000069u, 0x00004e36u, 0x00008737u, 0x000500a7u, 0x00000069u, 0x00004e37u, + 0x00004e34u, 0x00004e36u, 0x000200f9u, 0x00004e3au, 0x000200f8u, 0x00004e3au, 0x000700f5u, 0x00000069u, + 0x0000873au, 0x00004e37u, 0x00004e2fu, 0x00004b30u, 0x00004e38u, 0x000300f7u, 0x00004e43u, 0x00000000u, + 0x000400fau, 0x0000873au, 0x00004e3du, 0x00004e40u, 0x000200f8u, 0x00004e40u, 0x0007004fu, 0x000000f2u, + 0x00004e42u, 0x00004e18u, 0x00004e18u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004e43u, 0x000200f8u, + 0x00004e3du, 0x0007004fu, 0x000000f2u, 0x00004e3fu, 0x00004e18u, 0x00004e18u, 0x00000001u, 0x00000000u, + 0x000200f9u, 0x00004e43u, 0x000200f8u, 0x00004e43u, 0x000700f5u, 0x000000f2u, 0x0000873bu, 0x00004e3fu, + 0x00004e3du, 0x00004e42u, 0x00004e40u, 0x000300f7u, 0x00004e4cu, 0x00000000u, 0x000400fau, 0x00004b30u, + 0x00004e46u, 0x00004e49u, 0x000200f8u, 0x00004e49u, 0x0007004fu, 0x000000f2u, 0x00004e4bu, 0x00004e18u, + 0x00004e18u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004e4cu, 0x000200f8u, 0x00004e46u, 0x0007004fu, + 0x000000f2u, 0x00004e48u, 0x00004e18u, 0x00004e18u, 0x00000001u, 0x00000000u, 0x000200f9u, 0x00004e4cu, + 0x000200f8u, 0x00004e4cu, 0x000700f5u, 0x000000f2u, 0x0000873cu, 0x00004e48u, 0x00004e46u, 0x00004e4bu, + 0x00004e49u, 0x000300f7u, 0x00004e92u, 0x00000000u, 0x000400fau, 0x00008737u, 0x00004e4fu, 0x00004e70u, + 0x000200f8u, 0x00004e70u, 0x000500a7u, 0x00000069u, 0x00004e73u, 0x0000873au, 0x00004b2eu, 0x000300f7u, + 0x00004e7au, 0x00000000u, 0x000400fau, 0x00004e73u, 0x00004e74u, 0x00004e77u, 0x000200f8u, 0x00004e77u, + 0x0007004fu, 0x000001b1u, 0x00004e79u, 0x000082cbu, 0x000082cbu, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00004e7au, 0x000200f8u, 0x00004e74u, 0x0007004fu, 0x000001b1u, 0x00004e76u, 0x00008627u, 0x00008627u, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004e7au, 0x000200f8u, 0x00004e7au, 0x000700f5u, 0x000001b1u, + 0x00008745u, 0x00004e76u, 0x00004e74u, 0x00004e79u, 0x00004e77u, 0x00040072u, 0x000000f2u, 0x00004e7cu, + 0x00008745u, 0x00050051u, 0x00000008u, 0x00004e7eu, 0x0000873bu, 0x00000000u, 0x0007004fu, 0x000001b1u, + 0x00004e80u, 0x00008437u, 0x00008437u, 0x00000000u, 0x00000001u, 0x00040072u, 0x000000f2u, 0x00004e81u, + 0x00004e80u, 0x00050082u, 0x000000f2u, 0x00004e83u, 0x00004e81u, 0x00004e7cu, 0x00050050u, 0x000000f2u, + 0x00004e84u, 0x00004e7eu, 0x00004e7eu, 0x00050084u, 0x000000f2u, 0x00004e85u, 0x00004e84u, 0x00004e83u, + 0x00050051u, 0x00000008u, 0x00004e87u, 0x0000873bu, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x00004e89u, + 0x00008532u, 0x00008532u, 0x00000000u, 0x00000001u, 0x00040072u, 0x000000f2u, 0x00004e8au, 0x00004e89u, + 0x00050082u, 0x000000f2u, 0x00004e8cu, 0x00004e8au, 0x00004e7cu, 0x00050050u, 0x000000f2u, 0x00004e8du, + 0x00004e87u, 0x00004e87u, 0x00050084u, 0x000000f2u, 0x00004e8eu, 0x00004e8du, 0x00004e8cu, 0x00050080u, + 0x000000f2u, 0x00004e8fu, 0x00004e85u, 0x00004e8eu, 0x00050080u, 0x000000f2u, 0x00004e91u, 0x00004e8fu, + 0x0000c224u, 0x000200f9u, 0x00004e92u, 0x000200f8u, 0x00004e4fu, 0x00050051u, 0x00000008u, 0x00004e51u, + 0x0000873bu, 0x00000000u, 0x0007004fu, 0x000001b1u, 0x00004e53u, 0x00008532u, 0x00008532u, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x000001b1u, 0x00004e55u, 0x00008627u, 0x00008627u, 0x00000000u, 0x00000001u, + 0x00050082u, 0x000001b1u, 0x00004e56u, 0x00004e53u, 0x00004e55u, 0x00040072u, 0x000000f2u, 0x00004e57u, + 0x00004e56u, 0x00050050u, 0x000000f2u, 0x00004e58u, 0x00004e51u, 0x00004e51u, 0x00050084u, 0x000000f2u, + 0x00004e59u, 0x00004e58u, 0x00004e57u, 0x00050051u, 0x00000008u, 0x00004e5bu, 0x0000873bu, 0x00000001u, + 0x0007004fu, 0x000001b1u, 0x00004e5du, 0x00008437u, 0x00008437u, 0x00000000u, 0x00000001u, 0x00050082u, + 0x000001b1u, 0x00004e60u, 0x00004e5du, 0x00004e55u, 0x00040072u, 0x000000f2u, 0x00004e61u, 0x00004e60u, + 0x00050050u, 0x000000f2u, 0x00004e62u, 0x00004e5bu, 0x00004e5bu, 0x00050084u, 0x000000f2u, 0x00004e63u, + 0x00004e62u, 0x00004e61u, 0x00050080u, 0x000000f2u, 0x00004e64u, 0x00004e59u, 0x00004e63u, 0x0007004fu, + 0x000001b1u, 0x00004e66u, 0x000082cbu, 0x000082cbu, 0x00000000u, 0x00000001u, 0x00050082u, 0x000001b1u, + 0x00004e69u, 0x00004e66u, 0x00004e55u, 0x000500c4u, 0x000001b1u, 0x00004e6bu, 0x00004e69u, 0x0000c223u, + 0x00040072u, 0x000000f2u, 0x00004e6cu, 0x00004e6bu, 0x00050080u, 0x000000f2u, 0x00004e6du, 0x00004e64u, + 0x00004e6cu, 0x00050080u, 0x000000f2u, 0x00004e6fu, 0x00004e6du, 0x0000c224u, 0x000200f9u, 0x00004e92u, + 0x000200f8u, 0x00004e92u, 0x000700f5u, 0x000000f2u, 0x0000875au, 0x00004e6fu, 0x00004e4fu, 0x00004e91u, + 0x00004e7au, 0x000300f7u, 0x00004ed7u, 0x00000000u, 0x000400fau, 0x00004b24u, 0x00004e94u, 0x00004eb5u, + 0x000200f8u, 0x00004eb5u, 0x000500a7u, 0x00000069u, 0x00004eb8u, 0x00004b30u, 0x00004b2eu, 0x000300f7u, + 0x00004ebfu, 0x00000000u, 0x000400fau, 0x00004eb8u, 0x00004eb9u, 0x00004ebcu, 0x000200f8u, 0x00004ebcu, + 0x0007004fu, 0x000001b1u, 0x00004ebeu, 0x000082cbu, 0x000082cbu, 0x00000002u, 0x00000003u, 0x000200f9u, + 0x00004ebfu, 0x000200f8u, 0x00004eb9u, 0x0007004fu, 0x000001b1u, 0x00004ebbu, 0x00008627u, 0x00008627u, + 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004ebfu, 0x000200f8u, 0x00004ebfu, 0x000700f5u, 0x000001b1u, + 0x00008754u, 0x00004ebbu, 0x00004eb9u, 0x00004ebeu, 0x00004ebcu, 0x00040072u, 0x000000f2u, 0x00004ec1u, + 0x00008754u, 0x00050051u, 0x00000008u, 0x00004ec3u, 0x0000873cu, 0x00000000u, 0x0007004fu, 0x000001b1u, + 0x00004ec5u, 0x00008437u, 0x00008437u, 0x00000002u, 0x00000003u, 0x00040072u, 0x000000f2u, 0x00004ec6u, + 0x00004ec5u, 0x00050082u, 0x000000f2u, 0x00004ec8u, 0x00004ec6u, 0x00004ec1u, 0x00050050u, 0x000000f2u, + 0x00004ec9u, 0x00004ec3u, 0x00004ec3u, 0x00050084u, 0x000000f2u, 0x00004ecau, 0x00004ec9u, 0x00004ec8u, + 0x00050051u, 0x00000008u, 0x00004eccu, 0x0000873cu, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x00004eceu, + 0x00008532u, 0x00008532u, 0x00000002u, 0x00000003u, 0x00040072u, 0x000000f2u, 0x00004ecfu, 0x00004eceu, + 0x00050082u, 0x000000f2u, 0x00004ed1u, 0x00004ecfu, 0x00004ec1u, 0x00050050u, 0x000000f2u, 0x00004ed2u, + 0x00004eccu, 0x00004eccu, 0x00050084u, 0x000000f2u, 0x00004ed3u, 0x00004ed2u, 0x00004ed1u, 0x00050080u, + 0x000000f2u, 0x00004ed4u, 0x00004ecau, 0x00004ed3u, 0x00050080u, 0x000000f2u, 0x00004ed6u, 0x00004ed4u, + 0x0000c224u, 0x000200f9u, 0x00004ed7u, 0x000200f8u, 0x00004e94u, 0x00050051u, 0x00000008u, 0x00004e96u, + 0x0000873cu, 0x00000000u, 0x0007004fu, 0x000001b1u, 0x00004e98u, 0x00008532u, 0x00008532u, 0x00000002u, + 0x00000003u, 0x0007004fu, 0x000001b1u, 0x00004e9au, 0x00008627u, 0x00008627u, 0x00000002u, 0x00000003u, + 0x00050082u, 0x000001b1u, 0x00004e9bu, 0x00004e98u, 0x00004e9au, 0x00040072u, 0x000000f2u, 0x00004e9cu, + 0x00004e9bu, 0x00050050u, 0x000000f2u, 0x00004e9du, 0x00004e96u, 0x00004e96u, 0x00050084u, 0x000000f2u, + 0x00004e9eu, 0x00004e9du, 0x00004e9cu, 0x00050051u, 0x00000008u, 0x00004ea0u, 0x0000873cu, 0x00000001u, + 0x0007004fu, 0x000001b1u, 0x00004ea2u, 0x00008437u, 0x00008437u, 0x00000002u, 0x00000003u, 0x00050082u, + 0x000001b1u, 0x00004ea5u, 0x00004ea2u, 0x00004e9au, 0x00040072u, 0x000000f2u, 0x00004ea6u, 0x00004ea5u, + 0x00050050u, 0x000000f2u, 0x00004ea7u, 0x00004ea0u, 0x00004ea0u, 0x00050084u, 0x000000f2u, 0x00004ea8u, + 0x00004ea7u, 0x00004ea6u, 0x00050080u, 0x000000f2u, 0x00004ea9u, 0x00004e9eu, 0x00004ea8u, 0x0007004fu, + 0x000001b1u, 0x00004eabu, 0x000082cbu, 0x000082cbu, 0x00000002u, 0x00000003u, 0x00050082u, 0x000001b1u, + 0x00004eaeu, 0x00004eabu, 0x00004e9au, 0x000500c4u, 0x000001b1u, 0x00004eb0u, 0x00004eaeu, 0x0000c223u, + 0x00040072u, 0x000000f2u, 0x00004eb1u, 0x00004eb0u, 0x00050080u, 0x000000f2u, 0x00004eb2u, 0x00004ea9u, + 0x00004eb1u, 0x00050080u, 0x000000f2u, 0x00004eb4u, 0x00004eb2u, 0x0000c224u, 0x000200f9u, 0x00004ed7u, + 0x000200f8u, 0x00004ed7u, 0x000700f5u, 0x000000f2u, 0x0000875cu, 0x00004eb4u, 0x00004e94u, 0x00004ed6u, + 0x00004ebfu, 0x00050051u, 0x00000008u, 0x00004edau, 0x0000875au, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00004edbu, 0x0000875au, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004edcu, 0x0000875cu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00004eddu, 0x0000875cu, 0x00000001u, 0x00070050u, 0x00000009u, 0x00004edeu, + 0x00004edau, 0x00004edbu, 0x00004edcu, 0x00004eddu, 0x000500c3u, 0x00000009u, 0x00004ee1u, 0x00004edeu, + 0x0000c21cu, 0x00050051u, 0x00000008u, 0x00004ee3u, 0x00004e18u, 0x00000002u, 0x00070050u, 0x00000009u, + 0x00004ee5u, 0x00004ee3u, 0x00004ee3u, 0x00004ee3u, 0x00004ee3u, 0x00050080u, 0x00000009u, 0x00004ee6u, + 0x00004ee1u, 0x00004ee5u, 0x00040072u, 0x00000013u, 0x00004ee8u, 0x00004ee6u, 0x000200f9u, 0x00004eedu, + 0x000200f8u, 0x00004eedu, 0x000700f5u, 0x00000013u, 0x0000875eu, 0x00004ee8u, 0x00004ed7u, 0x00004eecu, + 0x00004ee9u, 0x000200f9u, 0x00004fa4u, 0x000200f8u, 0x00004fa4u, 0x000700f5u, 0x00000013u, 0x0000875du, + 0x0000875eu, 0x00004eedu, 0x0000875fu, 0x00004fa3u, 0x000400a8u, 0x00000069u, 0x00004fa8u, 0x00002352u, + 0x000500a7u, 0x00000069u, 0x00004fa9u, 0x00002480u, 0x00004fa8u, 0x000300f7u, 0x00004faeu, 0x00000000u, + 0x000400fau, 0x00004fa9u, 0x00004faau, 0x00004faeu, 0x000200f8u, 0x00004faau, 0x00040072u, 0x00000009u, + 0x000062ecu, 0x0000875du, 0x000600cau, 0x00000009u, 0x000062edu, 0x000062ecu, 0x00000225u, 0x00000265u, + 0x00050051u, 0x00000008u, 0x000062efu, 0x000062edu, 0x00000002u, 0x00050051u, 0x00000012u, 0x000062f1u, + 0x00002ae2u, 0x00000000u, 0x00040072u, 0x00000008u, 0x000062f2u, 0x000062f1u, 0x00050051u, 0x00000008u, + 0x000062f4u, 0x000062edu, 0x00000001u, 0x00050084u, 0x00000008u, 0x000062f5u, 0x000062f2u, 0x000062f4u, + 0x00050080u, 0x00000008u, 0x000062f6u, 0x000062f5u, 0x00000b03u, 0x000500c3u, 0x00000008u, 0x000062f7u, + 0x000062f6u, 0x00000262u, 0x00050080u, 0x00000008u, 0x000062f8u, 0x000062efu, 0x000062f7u, 0x00050051u, + 0x00000012u, 0x000062fcu, 0x00002ae2u, 0x00000001u, 0x00040072u, 0x00000008u, 0x000062fdu, 0x000062fcu, + 0x00050051u, 0x00000008u, 0x000062ffu, 0x000062edu, 0x00000000u, 0x00050084u, 0x00000008u, 0x00006300u, + 0x000062fdu, 0x000062ffu, 0x00050051u, 0x00000012u, 0x00006302u, 0x00002ae2u, 0x00000002u, 0x00040072u, + 0x00000008u, 0x00006303u, 0x00006302u, 0x00050084u, 0x00000008u, 0x00006306u, 0x00006303u, 0x000062f4u, + 0x00050080u, 0x00000008u, 0x00006307u, 0x00006300u, 0x00006306u, 0x00050080u, 0x00000008u, 0x00006308u, + 0x00006307u, 0x00000b03u, 0x000500c3u, 0x00000008u, 0x00006309u, 0x00006308u, 0x00000262u, 0x00050080u, + 0x00000008u, 0x0000630au, 0x000062efu, 0x00006309u, 0x00050051u, 0x00000012u, 0x0000630eu, 0x00002ae2u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x0000630fu, 0x0000630eu, 0x00050084u, 0x00000008u, 0x00006312u, + 0x0000630fu, 0x000062ffu, 0x00050080u, 0x00000008u, 0x00006313u, 0x00006312u, 0x00000b03u, 0x000500c3u, + 0x00000008u, 0x00006314u, 0x00006313u, 0x00000262u, 0x00050080u, 0x00000008u, 0x00006315u, 0x000062efu, + 0x00006314u, 0x00040072u, 0x00000012u, 0x00006319u, 0x000062f8u, 0x00040072u, 0x00000012u, 0x0000631bu, + 0x0000630au, 0x00040072u, 0x00000012u, 0x0000631du, 0x00006315u, 0x00040072u, 0x00000012u, 0x0000631fu, + 0x000062efu, 0x00070050u, 0x00000013u, 0x00006320u, 0x00006319u, 0x0000631bu, 0x0000631du, 0x0000631fu, + 0x000200f9u, 0x00004faeu, 0x000200f8u, 0x00004faeu, 0x000700f5u, 0x00000013u, 0x00008763u, 0x0000875du, + 0x00004fa4u, 0x00006320u, 0x00004faau, 0x000200f9u, 0x0000249cu, 0x000200f8u, 0x00002482u, 0x00040072u, + 0x00000009u, 0x00004919u, 0x000081f2u, 0x000600cau, 0x00000009u, 0x0000491au, 0x00004919u, 0x00000225u, + 0x00000265u, 0x00050051u, 0x00000008u, 0x0000491cu, 0x0000491au, 0x00000002u, 0x00050051u, 0x00000012u, + 0x0000491eu, 0x00002ae2u, 0x00000000u, 0x00040072u, 0x00000008u, 0x0000491fu, 0x0000491eu, 0x00050051u, + 0x00000008u, 0x00004921u, 0x0000491au, 0x00000001u, 0x00050084u, 0x00000008u, 0x00004922u, 0x0000491fu, + 0x00004921u, 0x00050080u, 0x00000008u, 0x00004923u, 0x00004922u, 0x00000b03u, 0x000500c3u, 0x00000008u, + 0x00004924u, 0x00004923u, 0x00000262u, 0x00050080u, 0x00000008u, 0x00004925u, 0x0000491cu, 0x00004924u, + 0x00050051u, 0x00000012u, 0x00004929u, 0x00002ae2u, 0x00000001u, 0x00040072u, 0x00000008u, 0x0000492au, + 0x00004929u, 0x00050051u, 0x00000008u, 0x0000492cu, 0x0000491au, 0x00000000u, 0x00050084u, 0x00000008u, + 0x0000492du, 0x0000492au, 0x0000492cu, 0x00050051u, 0x00000012u, 0x0000492fu, 0x00002ae2u, 0x00000002u, + 0x00040072u, 0x00000008u, 0x00004930u, 0x0000492fu, 0x00050084u, 0x00000008u, 0x00004933u, 0x00004930u, + 0x00004921u, 0x00050080u, 0x00000008u, 0x00004934u, 0x0000492du, 0x00004933u, 0x00050080u, 0x00000008u, + 0x00004935u, 0x00004934u, 0x00000b03u, 0x000500c3u, 0x00000008u, 0x00004936u, 0x00004935u, 0x00000262u, + 0x00050080u, 0x00000008u, 0x00004937u, 0x0000491cu, 0x00004936u, 0x00050051u, 0x00000012u, 0x0000493bu, + 0x00002ae2u, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000493cu, 0x0000493bu, 0x00050084u, 0x00000008u, + 0x0000493fu, 0x0000493cu, 0x0000492cu, 0x00050080u, 0x00000008u, 0x00004940u, 0x0000493fu, 0x00000b03u, + 0x000500c3u, 0x00000008u, 0x00004941u, 0x00004940u, 0x00000262u, 0x00050080u, 0x00000008u, 0x00004942u, + 0x0000491cu, 0x00004941u, 0x00040072u, 0x00000012u, 0x00004946u, 0x00004925u, 0x00040072u, 0x00000012u, + 0x00004948u, 0x00004937u, 0x00040072u, 0x00000012u, 0x0000494au, 0x00004942u, 0x00040072u, 0x00000012u, + 0x0000494cu, 0x0000491cu, 0x00070050u, 0x00000013u, 0x0000494du, 0x00004946u, 0x00004948u, 0x0000494au, + 0x0000494cu, 0x000200f9u, 0x0000249cu, 0x000200f8u, 0x0000249cu, 0x000700f5u, 0x00000013u, 0x0000bcceu, + 0x00008645u, 0x00002482u, 0x00008627u, 0x00004faeu, 0x000700f5u, 0x00000013u, 0x0000bc26u, 0x00008550u, + 0x00002482u, 0x00008532u, 0x00004faeu, 0x000700f5u, 0x00000013u, 0x0000bb7eu, 0x00008455u, 0x00002482u, + 0x00008437u, 0x00004faeu, 0x000700f5u, 0x00000013u, 0x0000bad6u, 0x000082e9u, 0x00002482u, 0x000082cbu, + 0x00004faeu, 0x000700f5u, 0x00000013u, 0x00008a98u, 0x0000494du, 0x00002482u, 0x00008763u, 0x00004faeu, + 0x000200f9u, 0x0000249du, 0x000200f8u, 0x0000249du, 0x000700f5u, 0x00000013u, 0x0000bccdu, 0x00008645u, + 0x0000247bu, 0x0000bcceu, 0x0000249cu, 0x000700f5u, 0x00000013u, 0x0000bc25u, 0x00008550u, 0x0000247bu, + 0x0000bc26u, 0x0000249cu, 0x000700f5u, 0x00000013u, 0x0000bb7du, 0x00008455u, 0x0000247bu, 0x0000bb7eu, + 0x0000249cu, 0x000700f5u, 0x00000013u, 0x0000bad5u, 0x000082e9u, 0x0000247bu, 0x0000bad6u, 0x0000249cu, + 0x000700f5u, 0x00000013u, 0x000089e6u, 0x000089f5u, 0x0000247bu, 0x00008a98u, 0x0000249cu, 0x000600a9u, + 0x00000008u, 0x000024a0u, 0x00002334u, 0x0000022fu, 0x00000225u, 0x000500c3u, 0x00000008u, 0x000024a1u, + 0x00007a89u, 0x000024a0u, 0x000500c3u, 0x00000008u, 0x000024a3u, 0x0000258eu, 0x00000232u, 0x000500c7u, + 0x00000008u, 0x000024a5u, 0x0000258eu, 0x00000235u, 0x000500b1u, 0x00000069u, 0x00006326u, 0x000024a3u, + 0x00000232u, 0x000300f7u, 0x0000633bu, 0x00000000u, 0x000400fau, 0x00006326u, 0x00006327u, 0x00006334u, + 0x000200f8u, 0x00006334u, 0x000500aau, 0x00000069u, 0x00006336u, 0x000024a3u, 0x00000232u, 0x000300f7u, + 0x0000633au, 0x00000000u, 0x000400fau, 0x00006336u, 0x00006337u, 0x00006339u, 0x000200f8u, 0x00006339u, + 0x000200f9u, 0x0000633au, 0x000200f8u, 0x00006337u, 0x000500c7u, 0x00000011u, 0x00006365u, 0x00008865u, + 0x00000349u, 0x00040071u, 0x00000006u, 0x00006366u, 0x00006365u, 0x0004007cu, 0x00000008u, 0x00006367u, + 0x00006366u, 0x000200f9u, 0x0000633au, 0x000200f8u, 0x0000633au, 0x000700f5u, 0x00000008u, 0x0000896fu, + 0x00006367u, 0x00006337u, 0x00000225u, 0x00006339u, 0x000200f9u, 0x0000633bu, 0x000200f8u, 0x00006327u, + 0x000500c7u, 0x00000008u, 0x0000632au, 0x000024a1u, 0x00000235u, 0x00050084u, 0x00000008u, 0x0000632bu, + 0x0000632au, 0x00000238u, 0x000500c7u, 0x00000008u, 0x0000632du, 0x00007a8bu, 0x00000235u, 0x00050080u, + 0x00000008u, 0x0000632eu, 0x0000632bu, 0x0000632du, 0x0003003eu, 0x00006321u, 0x00000397u, 0x00060041u, + 0x0000007bu, 0x0000632fu, 0x00006321u, 0x000024a3u, 0x0000632eu, 0x0004003du, 0x0000000fu, 0x00006330u, + 0x0000632fu, 0x00040071u, 0x00000006u, 0x00006331u, 0x00006330u, 0x0004007cu, 0x00000008u, 0x00006332u, + 0x00006331u, 0x00050084u, 0x00000008u, 0x00006333u, 0x00006332u, 0x000003a5u, 0x000200f9u, 0x0000633bu, + 0x000200f8u, 0x0000633bu, 0x000700f5u, 0x00000008u, 0x0000896eu, 0x00006333u, 0x00006327u, 0x0000896fu, + 0x0000633au, 0x000500aau, 0x00000069u, 0x0000633du, 0x000024a5u, 0x00000235u, 0x000300f7u, 0x00006361u, + 0x00000000u, 0x000400fau, 0x0000633du, 0x0000633eu, 0x0000633fu, 0x000200f8u, 0x0000633fu, 0x000500aau, + 0x00000069u, 0x00006341u, 0x000024a5u, 0x00000232u, 0x000300f7u, 0x00006360u, 0x00000000u, 0x000400fau, + 0x00006341u, 0x00006342u, 0x00006344u, 0x000200f8u, 0x00006344u, 0x000500afu, 0x00000069u, 0x00006346u, + 0x000024a3u, 0x00000232u, 0x000300f7u, 0x00006357u, 0x00000000u, 0x000400fau, 0x00006346u, 0x00006347u, + 0x00006354u, 0x000200f8u, 0x00006354u, 0x000500c7u, 0x00000008u, 0x00006356u, 0x0000896eu, 0x00000241u, + 0x000200f9u, 0x00006357u, 0x000200f8u, 0x00006347u, 0x000500c7u, 0x00000008u, 0x00006349u, 0x000024a3u, + 0x0000022fu, 0x000500c7u, 0x00000008u, 0x0000634bu, 0x000024a1u, 0x00000235u, 0x00050084u, 0x00000008u, + 0x0000634cu, 0x0000634bu, 0x00000238u, 0x000500c7u, 0x00000008u, 0x0000634eu, 0x00007a8bu, 0x00000235u, + 0x00050080u, 0x00000008u, 0x0000634fu, 0x0000634cu, 0x0000634eu, 0x0003003eu, 0x00006323u, 0x00000397u, + 0x00060041u, 0x0000007bu, 0x00006350u, 0x00006323u, 0x00006349u, 0x0000634fu, 0x0004003du, 0x0000000fu, + 0x00006351u, 0x00006350u, 0x00040071u, 0x00000006u, 0x00006352u, 0x00006351u, 0x0004007cu, 0x00000008u, + 0x00006353u, 0x00006352u, 0x000200f9u, 0x00006357u, 0x000200f8u, 0x00006357u, 0x000700f5u, 0x00000008u, + 0x00008970u, 0x00006353u, 0x00006347u, 0x00006356u, 0x00006354u, 0x000500aau, 0x00000069u, 0x0000635au, + 0x000024a5u, 0x0000022fu, 0x000300f7u, 0x0000635fu, 0x00000000u, 0x000400fau, 0x0000635au, 0x0000635bu, + 0x0000635fu, 0x000200f8u, 0x0000635bu, 0x000400c8u, 0x00000008u, 0x0000635du, 0x00008970u, 0x000500c7u, + 0x00000008u, 0x0000635eu, 0x0000635du, 0x00000241u, 0x000200f9u, 0x0000635fu, 0x000200f8u, 0x0000635fu, + 0x000700f5u, 0x00000008u, 0x00008979u, 0x00008970u, 0x00006357u, 0x0000635eu, 0x0000635bu, 0x000200f9u, + 0x00006360u, 0x000200f8u, 0x00006342u, 0x000500c7u, 0x00000011u, 0x0000636bu, 0x00008865u, 0x00000339u, + 0x00040071u, 0x00000006u, 0x0000636cu, 0x0000636bu, 0x0004007cu, 0x00000008u, 0x0000636du, 0x0000636cu, + 0x000200f9u, 0x00006360u, 0x000200f8u, 0x00006360u, 0x000700f5u, 0x00000008u, 0x00008978u, 0x0000636du, + 0x00006342u, 0x00008979u, 0x0000635fu, 0x000200f9u, 0x00006361u, 0x000200f8u, 0x0000633eu, 0x000200f9u, + 0x00006361u, 0x000200f8u, 0x00006361u, 0x000700f5u, 0x00000008u, 0x00008977u, 0x00000225u, 0x0000633eu, + 0x00008978u, 0x00006360u, 0x000300f7u, 0x00002512u, 0x00000000u, 0x000400fau, 0x00002331u, 0x000024abu, + 0x000024f6u, 0x000200f8u, 0x000024f6u, 0x000500c7u, 0x00000011u, 0x00006769u, 0x00008865u, 0x00000339u, + 0x000500c4u, 0x00000011u, 0x0000676au, 0x00006769u, 0x0000033bu, 0x000500c5u, 0x00000011u, 0x0000676bu, + 0x0000676au, 0x0000033du, 0x0004007cu, 0x00000012u, 0x0000676cu, 0x0000676bu, 0x00050051u, 0x0000000fu, + 0x00006788u, 0x00002588u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00006789u, 0x00006788u, 0x0004007cu, + 0x00000008u, 0x0000678au, 0x00006789u, 0x00050051u, 0x0000000fu, 0x0000678cu, 0x0000258au, 0x00000000u, + 0x00040071u, 0x00000006u, 0x0000678du, 0x0000678cu, 0x0004007cu, 0x00000008u, 0x0000678eu, 0x0000678du, + 0x000300f7u, 0x00006800u, 0x00000000u, 0x000f00fbu, 0x0000678au, 0x000067dfu, 0x00000000u, 0x000067e5u, + 0x00000001u, 0x000067eau, 0x00000002u, 0x000067efu, 0x00000004u, 0x000067f4u, 0x00000007u, 0x000067fau, + 0x00000006u, 0x000067ffu, 0x000200f8u, 0x000067ffu, 0x000200f9u, 0x00006800u, 0x000200f8u, 0x000067fau, + 0x00040072u, 0x00000008u, 0x000067fdu, 0x0000676cu, 0x00060050u, 0x00000044u, 0x000067feu, 0x000067fdu, + 0x000067fdu, 0x000067fdu, 0x000200f9u, 0x00006800u, 0x000200f8u, 0x000067f4u, 0x0008004fu, 0x00000047u, + 0x000067f7u, 0x00002b26u, 0x00002b26u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x000067f8u, 0x000067f7u, 0x0004007cu, 0x00000044u, 0x000067f9u, 0x000067f8u, 0x000200f9u, 0x00006800u, + 0x000200f8u, 0x000067efu, 0x0008004fu, 0x000004bbu, 0x000067f2u, 0x000089e6u, 0x000089e6u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x000067f3u, 0x000067f2u, 0x000200f9u, 0x00006800u, + 0x000200f8u, 0x000067eau, 0x0008004fu, 0x000004bbu, 0x000067edu, 0x000081f2u, 0x000081f2u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x000067eeu, 0x000067edu, 0x000200f9u, 0x00006800u, + 0x000200f8u, 0x000067e5u, 0x000200f9u, 0x00006800u, 0x000200f8u, 0x000067dfu, 0x0008004fu, 0x00000047u, + 0x000067e2u, 0x00002aceu, 0x00002aceu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x000067e3u, 0x000067e2u, 0x0004007cu, 0x00000044u, 0x000067e4u, 0x000067e3u, 0x000200f9u, 0x00006800u, + 0x000200f8u, 0x00006800u, 0x001100f5u, 0x00000044u, 0x00008cc6u, 0x000067e4u, 0x000067dfu, 0x0000c232u, + 0x000067e5u, 0x000067eeu, 0x000067eau, 0x000067f3u, 0x000067efu, 0x000067f9u, 0x000067f4u, 0x000067feu, + 0x000067fau, 0x00001ac8u, 0x000067ffu, 0x000300f7u, 0x00006819u, 0x00000000u, 0x000d00fbu, 0x0000678eu, + 0x00006802u, 0x00000000u, 0x00006807u, 0x00000001u, 0x0000680bu, 0x00000002u, 0x0000680fu, 0x00000004u, + 0x00006813u, 0x00000006u, 0x00006818u, 0x000200f8u, 0x00006818u, 0x000200f9u, 0x00006819u, 0x000200f8u, + 0x00006813u, 0x00050051u, 0x0000000fu, 0x00006815u, 0x00002b26u, 0x00000003u, 0x00040071u, 0x00000006u, + 0x00006816u, 0x00006815u, 0x0004007cu, 0x00000008u, 0x00006817u, 0x00006816u, 0x000200f9u, 0x00006819u, + 0x000200f8u, 0x0000680fu, 0x00050051u, 0x00000012u, 0x00006811u, 0x000089e6u, 0x00000003u, 0x00040072u, + 0x00000008u, 0x00006812u, 0x00006811u, 0x000200f9u, 0x00006819u, 0x000200f8u, 0x0000680bu, 0x00050051u, + 0x00000012u, 0x0000680du, 0x000081f2u, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000680eu, 0x0000680du, + 0x000200f9u, 0x00006819u, 0x000200f8u, 0x00006807u, 0x000200f9u, 0x00006819u, 0x000200f8u, 0x00006802u, + 0x00050051u, 0x0000000fu, 0x00006804u, 0x00002aceu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006805u, + 0x00006804u, 0x0004007cu, 0x00000008u, 0x00006806u, 0x00006805u, 0x000200f9u, 0x00006819u, 0x000200f8u, + 0x00006819u, 0x000f00f5u, 0x00000008u, 0x00008cc7u, 0x00006806u, 0x00006802u, 0x00000225u, 0x00006807u, + 0x0000680eu, 0x0000680bu, 0x00006812u, 0x0000680fu, 0x00006817u, 0x00006813u, 0x00001ac7u, 0x00006818u, + 0x00050051u, 0x00000008u, 0x0000681cu, 0x00008cc6u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000681du, + 0x00008cc6u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000681eu, 0x00008cc6u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x0000681fu, 0x0000681cu, 0x0000681du, 0x0000681eu, 0x00008cc7u, 0x00050051u, 0x0000000fu, + 0x00006792u, 0x00002588u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006793u, 0x00006792u, 0x0004007cu, + 0x00000008u, 0x00006794u, 0x00006793u, 0x00050051u, 0x0000000fu, 0x00006796u, 0x0000258au, 0x00000001u, + 0x00040071u, 0x00000006u, 0x00006797u, 0x00006796u, 0x0004007cu, 0x00000008u, 0x00006798u, 0x00006797u, + 0x000300f7u, 0x0000684cu, 0x00000000u, 0x000d00fbu, 0x00006794u, 0x00006825u, 0x00000000u, 0x0000682bu, + 0x00000001u, 0x00006830u, 0x00000002u, 0x00006835u, 0x00000004u, 0x0000683au, 0x00000007u, 0x00006840u, + 0x000200f8u, 0x00006840u, 0x00050051u, 0x0000000fu, 0x00006842u, 0x00002ad0u, 0x00000001u, 0x00040071u, + 0x00000006u, 0x00006843u, 0x00006842u, 0x0004007cu, 0x00000008u, 0x00006844u, 0x00006843u, 0x000500c4u, + 0x00000008u, 0x00006845u, 0x00006844u, 0x00000262u, 0x00050051u, 0x0000000fu, 0x00006847u, 0x00002ad0u, + 0x00000002u, 0x00040071u, 0x00000006u, 0x00006848u, 0x00006847u, 0x0004007cu, 0x00000008u, 0x00006849u, + 0x00006848u, 0x000500c5u, 0x00000008u, 0x0000684au, 0x00006845u, 0x00006849u, 0x00060050u, 0x00000044u, + 0x0000684bu, 0x0000684au, 0x0000684au, 0x0000684au, 0x000200f9u, 0x0000684cu, 0x000200f8u, 0x0000683au, + 0x0008004fu, 0x00000047u, 0x0000683du, 0x00002b26u, 0x00002b26u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040071u, 0x00000311u, 0x0000683eu, 0x0000683du, 0x0004007cu, 0x00000044u, 0x0000683fu, 0x0000683eu, + 0x000200f9u, 0x0000684cu, 0x000200f8u, 0x00006835u, 0x0008004fu, 0x000004bbu, 0x00006838u, 0x000089e6u, + 0x000089e6u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006839u, 0x00006838u, + 0x000200f9u, 0x0000684cu, 0x000200f8u, 0x00006830u, 0x0008004fu, 0x000004bbu, 0x00006833u, 0x000081f2u, + 0x000081f2u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006834u, 0x00006833u, + 0x000200f9u, 0x0000684cu, 0x000200f8u, 0x0000682bu, 0x000200f9u, 0x0000684cu, 0x000200f8u, 0x00006825u, + 0x0008004fu, 0x00000047u, 0x00006828u, 0x00002ad0u, 0x00002ad0u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040071u, 0x00000311u, 0x00006829u, 0x00006828u, 0x0004007cu, 0x00000044u, 0x0000682au, 0x00006829u, + 0x000200f9u, 0x0000684cu, 0x000200f8u, 0x0000684cu, 0x000f00f5u, 0x00000044u, 0x00008cc9u, 0x0000682au, + 0x00006825u, 0x0000c232u, 0x0000682bu, 0x00006834u, 0x00006830u, 0x00006839u, 0x00006835u, 0x0000683fu, + 0x0000683au, 0x0000684bu, 0x00006840u, 0x000300f7u, 0x00006865u, 0x00000000u, 0x000d00fbu, 0x00006798u, + 0x0000684eu, 0x00000000u, 0x00006853u, 0x00000001u, 0x00006857u, 0x00000002u, 0x0000685bu, 0x00000004u, + 0x0000685fu, 0x00000006u, 0x00006864u, 0x000200f8u, 0x00006864u, 0x000200f9u, 0x00006865u, 0x000200f8u, + 0x0000685fu, 0x00050051u, 0x0000000fu, 0x00006861u, 0x00002b26u, 0x00000003u, 0x00040071u, 0x00000006u, + 0x00006862u, 0x00006861u, 0x0004007cu, 0x00000008u, 0x00006863u, 0x00006862u, 0x000200f9u, 0x00006865u, + 0x000200f8u, 0x0000685bu, 0x00050051u, 0x00000012u, 0x0000685du, 0x000089e6u, 0x00000003u, 0x00040072u, + 0x00000008u, 0x0000685eu, 0x0000685du, 0x000200f9u, 0x00006865u, 0x000200f8u, 0x00006857u, 0x00050051u, + 0x00000012u, 0x00006859u, 0x000081f2u, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000685au, 0x00006859u, + 0x000200f9u, 0x00006865u, 0x000200f8u, 0x00006853u, 0x000200f9u, 0x00006865u, 0x000200f8u, 0x0000684eu, + 0x00050051u, 0x0000000fu, 0x00006850u, 0x00002ad0u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006851u, + 0x00006850u, 0x0004007cu, 0x00000008u, 0x00006852u, 0x00006851u, 0x000200f9u, 0x00006865u, 0x000200f8u, + 0x00006865u, 0x000f00f5u, 0x00000008u, 0x00008ccau, 0x00006852u, 0x0000684eu, 0x00000225u, 0x00006853u, + 0x0000685au, 0x00006857u, 0x0000685eu, 0x0000685bu, 0x00006863u, 0x0000685fu, 0x00001ac7u, 0x00006864u, + 0x00050051u, 0x00000008u, 0x00006868u, 0x00008cc9u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006869u, + 0x00008cc9u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000686au, 0x00008cc9u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x0000686bu, 0x00006868u, 0x00006869u, 0x0000686au, 0x00008ccau, 0x00050051u, 0x0000000fu, + 0x0000679cu, 0x00002588u, 0x00000002u, 0x00040071u, 0x00000006u, 0x0000679du, 0x0000679cu, 0x0004007cu, + 0x00000008u, 0x0000679eu, 0x0000679du, 0x00050051u, 0x0000000fu, 0x000067a0u, 0x0000258au, 0x00000002u, + 0x00040071u, 0x00000006u, 0x000067a1u, 0x000067a0u, 0x0004007cu, 0x00000008u, 0x000067a2u, 0x000067a1u, + 0x000300f7u, 0x000068b2u, 0x00000000u, 0x001700fbu, 0x0000679eu, 0x00006871u, 0x00000000u, 0x00006877u, + 0x00000007u, 0x0000687cu, 0x00000001u, 0x00006881u, 0x00000002u, 0x00006886u, 0x00000004u, 0x0000688bu, + 0x00000008u, 0x00006891u, 0x00000009u, 0x00006896u, 0x0000000bu, 0x0000689bu, 0x0000000du, 0x000068a1u, + 0x0000000fu, 0x000068a6u, 0x000200f8u, 0x000068a6u, 0x00050051u, 0x0000000fu, 0x000068a8u, 0x00002ad2u, + 0x00000001u, 0x00040071u, 0x00000006u, 0x000068a9u, 0x000068a8u, 0x0004007cu, 0x00000008u, 0x000068aau, + 0x000068a9u, 0x000500c4u, 0x00000008u, 0x000068abu, 0x000068aau, 0x00000262u, 0x00050051u, 0x0000000fu, + 0x000068adu, 0x00002ad2u, 0x00000002u, 0x00040071u, 0x00000006u, 0x000068aeu, 0x000068adu, 0x0004007cu, + 0x00000008u, 0x000068afu, 0x000068aeu, 0x000500c5u, 0x00000008u, 0x000068b0u, 0x000068abu, 0x000068afu, + 0x00060050u, 0x00000044u, 0x000068b1u, 0x000068b0u, 0x000068b0u, 0x000068b0u, 0x000200f9u, 0x000068b2u, + 0x000200f8u, 0x000068a1u, 0x00040072u, 0x00000008u, 0x000068a4u, 0x00008aa2u, 0x00060050u, 0x00000044u, + 0x000068a5u, 0x000068a4u, 0x000068a4u, 0x000068a4u, 0x000200f9u, 0x000068b2u, 0x000200f8u, 0x0000689bu, + 0x0008004fu, 0x00000047u, 0x0000689eu, 0x00002b26u, 0x00002b26u, 0x00000003u, 0x00000003u, 0x00000003u, + 0x00040071u, 0x00000311u, 0x0000689fu, 0x0000689eu, 0x0004007cu, 0x00000044u, 0x000068a0u, 0x0000689fu, + 0x000200f9u, 0x000068b2u, 0x000200f8u, 0x00006896u, 0x0008004fu, 0x000004bbu, 0x00006899u, 0x000089e6u, + 0x000089e6u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, 0x00000044u, 0x0000689au, 0x00006899u, + 0x000200f9u, 0x000068b2u, 0x000200f8u, 0x00006891u, 0x0008004fu, 0x000004bbu, 0x00006894u, 0x000081f2u, + 0x000081f2u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, 0x00000044u, 0x00006895u, 0x00006894u, + 0x000200f9u, 0x000068b2u, 0x000200f8u, 0x0000688bu, 0x0008004fu, 0x00000047u, 0x0000688eu, 0x00002b26u, + 0x00002b26u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x0000688fu, 0x0000688eu, + 0x0004007cu, 0x00000044u, 0x00006890u, 0x0000688fu, 0x000200f9u, 0x000068b2u, 0x000200f8u, 0x00006886u, + 0x0008004fu, 0x000004bbu, 0x00006889u, 0x000089e6u, 0x000089e6u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x0000688au, 0x00006889u, 0x000200f9u, 0x000068b2u, 0x000200f8u, 0x00006881u, + 0x0008004fu, 0x000004bbu, 0x00006884u, 0x000081f2u, 0x000081f2u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x00006885u, 0x00006884u, 0x000200f9u, 0x000068b2u, 0x000200f8u, 0x0000687cu, + 0x000200f9u, 0x000068b2u, 0x000200f8u, 0x00006877u, 0x000200f9u, 0x000068b2u, 0x000200f8u, 0x00006871u, + 0x0008004fu, 0x00000047u, 0x00006874u, 0x00002ad2u, 0x00002ad2u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040071u, 0x00000311u, 0x00006875u, 0x00006874u, 0x0004007cu, 0x00000044u, 0x00006876u, 0x00006875u, + 0x000200f9u, 0x000068b2u, 0x000200f8u, 0x000068b2u, 0x001900f5u, 0x00000044u, 0x00008cccu, 0x00006876u, + 0x00006871u, 0x0000c232u, 0x00006877u, 0x0000c232u, 0x0000687cu, 0x00006885u, 0x00006881u, 0x0000688au, + 0x00006886u, 0x00006890u, 0x0000688bu, 0x00006895u, 0x00006891u, 0x0000689au, 0x00006896u, 0x000068a0u, + 0x0000689bu, 0x000068a5u, 0x000068a1u, 0x000068b1u, 0x000068a6u, 0x000300f7u, 0x000068cau, 0x00000000u, + 0x000b00fbu, 0x000067a2u, 0x000068b4u, 0x00000000u, 0x000068b9u, 0x00000001u, 0x000068bdu, 0x00000002u, + 0x000068c1u, 0x00000004u, 0x000068c5u, 0x000200f8u, 0x000068c5u, 0x00050051u, 0x0000000fu, 0x000068c7u, + 0x00002b26u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000068c8u, 0x000068c7u, 0x0004007cu, 0x00000008u, + 0x000068c9u, 0x000068c8u, 0x000200f9u, 0x000068cau, 0x000200f8u, 0x000068c1u, 0x00050051u, 0x00000012u, + 0x000068c3u, 0x000089e6u, 0x00000003u, 0x00040072u, 0x00000008u, 0x000068c4u, 0x000068c3u, 0x000200f9u, + 0x000068cau, 0x000200f8u, 0x000068bdu, 0x00050051u, 0x00000012u, 0x000068bfu, 0x000081f2u, 0x00000003u, + 0x00040072u, 0x00000008u, 0x000068c0u, 0x000068bfu, 0x000200f9u, 0x000068cau, 0x000200f8u, 0x000068b9u, + 0x00040072u, 0x00000008u, 0x000068bcu, 0x00008aa2u, 0x000200f9u, 0x000068cau, 0x000200f8u, 0x000068b4u, + 0x00050051u, 0x0000000fu, 0x000068b6u, 0x00002ad2u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000068b7u, + 0x000068b6u, 0x0004007cu, 0x00000008u, 0x000068b8u, 0x000068b7u, 0x000200f9u, 0x000068cau, 0x000200f8u, + 0x000068cau, 0x000d00f5u, 0x00000008u, 0x00008ccdu, 0x000068b8u, 0x000068b4u, 0x000068bcu, 0x000068b9u, + 0x000068c0u, 0x000068bdu, 0x000068c4u, 0x000068c1u, 0x000068c9u, 0x000068c5u, 0x00050051u, 0x00000008u, + 0x000068cdu, 0x00008cccu, 0x00000000u, 0x00050051u, 0x00000008u, 0x000068ceu, 0x00008cccu, 0x00000001u, + 0x00050051u, 0x00000008u, 0x000068cfu, 0x00008cccu, 0x00000002u, 0x00070050u, 0x00000009u, 0x000068d0u, + 0x000068cdu, 0x000068ceu, 0x000068cfu, 0x00008ccdu, 0x00050051u, 0x0000000fu, 0x000067a6u, 0x00002588u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x000067a7u, 0x000067a6u, 0x0004007cu, 0x00000008u, 0x000067a8u, + 0x000067a7u, 0x00050051u, 0x0000000fu, 0x000067aau, 0x0000258au, 0x00000003u, 0x00040071u, 0x00000006u, + 0x000067abu, 0x000067aau, 0x0004007cu, 0x00000008u, 0x000067acu, 0x000067abu, 0x000300f7u, 0x000068f2u, + 0x00000000u, 0x000d00fbu, 0x000067a8u, 0x000068d6u, 0x00000000u, 0x000068dcu, 0x00000001u, 0x000068e1u, + 0x00000002u, 0x000068e6u, 0x00000004u, 0x000068ebu, 0x00000006u, 0x000068f1u, 0x000200f8u, 0x000068f1u, + 0x000200f9u, 0x000068f2u, 0x000200f8u, 0x000068ebu, 0x0008004fu, 0x00000047u, 0x000068eeu, 0x00002b26u, + 0x00002b26u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000068efu, 0x000068eeu, + 0x0004007cu, 0x00000044u, 0x000068f0u, 0x000068efu, 0x000200f9u, 0x000068f2u, 0x000200f8u, 0x000068e6u, + 0x0008004fu, 0x000004bbu, 0x000068e9u, 0x000089e6u, 0x000089e6u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x000068eau, 0x000068e9u, 0x000200f9u, 0x000068f2u, 0x000200f8u, 0x000068e1u, + 0x0008004fu, 0x000004bbu, 0x000068e4u, 0x000081f2u, 0x000081f2u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x000068e5u, 0x000068e4u, 0x000200f9u, 0x000068f2u, 0x000200f8u, 0x000068dcu, + 0x000200f9u, 0x000068f2u, 0x000200f8u, 0x000068d6u, 0x0008004fu, 0x00000047u, 0x000068d9u, 0x00002ad4u, + 0x00002ad4u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000068dau, 0x000068d9u, + 0x0004007cu, 0x00000044u, 0x000068dbu, 0x000068dau, 0x000200f9u, 0x000068f2u, 0x000200f8u, 0x000068f2u, + 0x000f00f5u, 0x00000044u, 0x00008ccfu, 0x000068dbu, 0x000068d6u, 0x0000c232u, 0x000068dcu, 0x000068e5u, + 0x000068e1u, 0x000068eau, 0x000068e6u, 0x000068f0u, 0x000068ebu, 0x00001ac8u, 0x000068f1u, 0x000300f7u, + 0x0000690bu, 0x00000000u, 0x000d00fbu, 0x000067acu, 0x000068f4u, 0x00000000u, 0x000068f9u, 0x00000001u, + 0x000068fdu, 0x00000002u, 0x00006901u, 0x00000004u, 0x00006905u, 0x00000006u, 0x0000690au, 0x000200f8u, + 0x0000690au, 0x000200f9u, 0x0000690bu, 0x000200f8u, 0x00006905u, 0x00050051u, 0x0000000fu, 0x00006907u, + 0x00002b26u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006908u, 0x00006907u, 0x0004007cu, 0x00000008u, + 0x00006909u, 0x00006908u, 0x000200f9u, 0x0000690bu, 0x000200f8u, 0x00006901u, 0x00050051u, 0x00000012u, + 0x00006903u, 0x000089e6u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006904u, 0x00006903u, 0x000200f9u, + 0x0000690bu, 0x000200f8u, 0x000068fdu, 0x00050051u, 0x00000012u, 0x000068ffu, 0x000081f2u, 0x00000003u, + 0x00040072u, 0x00000008u, 0x00006900u, 0x000068ffu, 0x000200f9u, 0x0000690bu, 0x000200f8u, 0x000068f9u, + 0x000200f9u, 0x0000690bu, 0x000200f8u, 0x000068f4u, 0x00050051u, 0x0000000fu, 0x000068f6u, 0x00002ad4u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x000068f7u, 0x000068f6u, 0x0004007cu, 0x00000008u, 0x000068f8u, + 0x000068f7u, 0x000200f9u, 0x0000690bu, 0x000200f8u, 0x0000690bu, 0x000f00f5u, 0x00000008u, 0x00008cd0u, + 0x000068f8u, 0x000068f4u, 0x00000225u, 0x000068f9u, 0x00006900u, 0x000068fdu, 0x00006904u, 0x00006901u, + 0x00006909u, 0x00006905u, 0x00001ac7u, 0x0000690au, 0x00050051u, 0x00000008u, 0x0000690eu, 0x00008ccfu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x0000690fu, 0x00008ccfu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00006910u, 0x00008ccfu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006911u, 0x0000690eu, 0x0000690fu, + 0x00006910u, 0x00008cd0u, 0x000600cau, 0x00000009u, 0x00006919u, 0x000068d0u, 0x00000225u, 0x00000265u, + 0x00050082u, 0x00000009u, 0x00006933u, 0x0000681fu, 0x0000c211u, 0x000600cau, 0x00000009u, 0x00006934u, + 0x00006933u, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00006936u, 0x00006934u, 0x0000c211u, + 0x00050082u, 0x00000009u, 0x0000693bu, 0x0000686bu, 0x0000c211u, 0x000600cau, 0x00000009u, 0x0000693cu, + 0x0000693bu, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x0000693eu, 0x0000693cu, 0x0000c211u, + 0x00050082u, 0x00000009u, 0x00006943u, 0x00006911u, 0x0000c211u, 0x000600cau, 0x00000009u, 0x00006944u, + 0x00006943u, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00006946u, 0x00006944u, 0x0000c211u, + 0x00050082u, 0x00000009u, 0x00006922u, 0x00006936u, 0x0000693eu, 0x00050084u, 0x00000009u, 0x00006924u, + 0x00006922u, 0x00006919u, 0x00050080u, 0x00000009u, 0x00006927u, 0x00006924u, 0x0000c211u, 0x000500c3u, + 0x00000009u, 0x0000692au, 0x00006927u, 0x0000c21cu, 0x00040072u, 0x00000013u, 0x0000692bu, 0x0000692au, + 0x00040072u, 0x00000013u, 0x0000692du, 0x00006946u, 0x00050080u, 0x00000013u, 0x0000692eu, 0x0000692bu, + 0x0000692du, 0x00040072u, 0x00000009u, 0x000067b5u, 0x0000692eu, 0x00050082u, 0x00000009u, 0x0000694bu, + 0x000067b5u, 0x0000c211u, 0x000600cau, 0x00000009u, 0x0000694du, 0x0000694bu, 0x00000225u, 0x00000265u, + 0x00050080u, 0x00000009u, 0x00006950u, 0x0000694du, 0x0000c211u, 0x0008000cu, 0x00000009u, 0x00006952u, + 0x00000001u, 0x0000002du, 0x00006950u, 0x00000b0du, 0x00000b0eu, 0x00040072u, 0x00000013u, 0x00006953u, + 0x00006952u, 0x00050051u, 0x00000012u, 0x000067b8u, 0x00006953u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x000067b9u, 0x000067b8u, 0x00050080u, 0x00000008u, 0x000067bdu, 0x000067b9u, 0x0000022fu, 0x000500c3u, + 0x00000008u, 0x000067beu, 0x000067bdu, 0x00000262u, 0x00050080u, 0x00000008u, 0x000067bfu, 0x000067b9u, + 0x000067beu, 0x000300f7u, 0x000067ccu, 0x00000000u, 0x000400fau, 0x0000231cu, 0x000067c1u, 0x000067c9u, + 0x000200f8u, 0x000067c9u, 0x000500c4u, 0x00000008u, 0x000067cbu, 0x000023c4u, 0x0000023bu, 0x000200f9u, + 0x000067ccu, 0x000200f8u, 0x000067c1u, 0x00050084u, 0x00000008u, 0x000067c4u, 0x000067bfu, 0x000023c4u, + 0x00050080u, 0x00000008u, 0x000067c5u, 0x000067c4u, 0x00000238u, 0x000500c3u, 0x00000008u, 0x000067c6u, + 0x000067c5u, 0x00000235u, 0x000500c3u, 0x00000008u, 0x000067c8u, 0x000067c6u, 0x0000023bu, 0x000200f9u, + 0x000067ccu, 0x000200f8u, 0x000067ccu, 0x000700f5u, 0x00000008u, 0x00008cdfu, 0x000067c8u, 0x000067c1u, + 0x000023c4u, 0x000067c9u, 0x000700f5u, 0x00000008u, 0x00008cdau, 0x000067c6u, 0x000067c1u, 0x000067cbu, + 0x000067c9u, 0x000300f7u, 0x000067d4u, 0x00000000u, 0x000400fau, 0x0000231fu, 0x000067ceu, 0x000067d0u, + 0x000200f8u, 0x000067d0u, 0x00050080u, 0x00000008u, 0x000067d3u, 0x000067bfu, 0x00008977u, 0x000200f9u, + 0x000067d4u, 0x000200f8u, 0x000067ceu, 0x000200f9u, 0x000067d4u, 0x000200f8u, 0x000067d4u, 0x000700f5u, + 0x00000008u, 0x00008cdbu, 0x00008cdau, 0x000067ceu, 0x000067d3u, 0x000067d0u, 0x0008000cu, 0x00000008u, + 0x000067d6u, 0x00000001u, 0x0000002du, 0x00008cdbu, 0x00000225u, 0x00000363u, 0x00040072u, 0x00000012u, + 0x000067d7u, 0x000067d6u, 0x00060052u, 0x00000013u, 0x0000797eu, 0x000067d7u, 0x00006953u, 0x00000003u, + 0x00040072u, 0x00000b17u, 0x0000250eu, 0x0000797eu, 0x0004007cu, 0x00000010u, 0x0000250fu, 0x0000250eu, + 0x00050051u, 0x0000000fu, 0x00002511u, 0x0000250fu, 0x00000003u, 0x000200f9u, 0x00002512u, 0x000200f8u, + 0x000024abu, 0x000500c7u, 0x00000011u, 0x00006371u, 0x00008865u, 0x00000339u, 0x000500c4u, 0x00000011u, + 0x00006372u, 0x00006371u, 0x0000033bu, 0x000500c5u, 0x00000011u, 0x00006373u, 0x00006372u, 0x0000033du, + 0x0004007cu, 0x00000012u, 0x00006374u, 0x00006373u, 0x00050051u, 0x0000000fu, 0x00006391u, 0x00002584u, + 0x00000000u, 0x00040071u, 0x00000006u, 0x00006392u, 0x00006391u, 0x0004007cu, 0x00000008u, 0x00006393u, + 0x00006392u, 0x00050051u, 0x0000000fu, 0x00006395u, 0x00002586u, 0x00000000u, 0x00040071u, 0x00000006u, + 0x00006396u, 0x00006395u, 0x0004007cu, 0x00000008u, 0x00006397u, 0x00006396u, 0x000300f7u, 0x00006408u, + 0x00000000u, 0x000f00fbu, 0x00006393u, 0x000063e7u, 0x00000000u, 0x000063edu, 0x00000001u, 0x000063f2u, + 0x00000002u, 0x000063f7u, 0x00000004u, 0x000063fcu, 0x00000007u, 0x00006402u, 0x00000006u, 0x00006407u, + 0x000200f8u, 0x00006407u, 0x000200f9u, 0x00006408u, 0x000200f8u, 0x00006402u, 0x00040072u, 0x00000008u, + 0x00006405u, 0x00006374u, 0x00060050u, 0x00000044u, 0x00006406u, 0x00006405u, 0x00006405u, 0x00006405u, + 0x000200f9u, 0x00006408u, 0x000200f8u, 0x000063fcu, 0x0008004fu, 0x00000047u, 0x000063ffu, 0x00002b26u, + 0x00002b26u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x00006400u, 0x000063ffu, + 0x0004007cu, 0x00000044u, 0x00006401u, 0x00006400u, 0x000200f9u, 0x00006408u, 0x000200f8u, 0x000063f7u, + 0x0008004fu, 0x000004bbu, 0x000063fau, 0x000089e6u, 0x000089e6u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x000063fbu, 0x000063fau, 0x000200f9u, 0x00006408u, 0x000200f8u, 0x000063f2u, + 0x0008004fu, 0x000004bbu, 0x000063f5u, 0x000081f2u, 0x000081f2u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x000063f6u, 0x000063f5u, 0x000200f9u, 0x00006408u, 0x000200f8u, 0x000063edu, + 0x000200f9u, 0x00006408u, 0x000200f8u, 0x000063e7u, 0x0008004fu, 0x00000047u, 0x000063eau, 0x00002ac6u, + 0x00002ac6u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000063ebu, 0x000063eau, + 0x0004007cu, 0x00000044u, 0x000063ecu, 0x000063ebu, 0x000200f9u, 0x00006408u, 0x000200f8u, 0x00006408u, + 0x001100f5u, 0x00000044u, 0x00008ce1u, 0x000063ecu, 0x000063e7u, 0x0000c232u, 0x000063edu, 0x000063f6u, + 0x000063f2u, 0x000063fbu, 0x000063f7u, 0x00006401u, 0x000063fcu, 0x00006406u, 0x00006402u, 0x00001ac8u, + 0x00006407u, 0x000300f7u, 0x00006421u, 0x00000000u, 0x000d00fbu, 0x00006397u, 0x0000640au, 0x00000000u, + 0x0000640fu, 0x00000001u, 0x00006413u, 0x00000002u, 0x00006417u, 0x00000004u, 0x0000641bu, 0x00000006u, + 0x00006420u, 0x000200f8u, 0x00006420u, 0x000200f9u, 0x00006421u, 0x000200f8u, 0x0000641bu, 0x00050051u, + 0x0000000fu, 0x0000641du, 0x00002b26u, 0x00000003u, 0x00040071u, 0x00000006u, 0x0000641eu, 0x0000641du, + 0x0004007cu, 0x00000008u, 0x0000641fu, 0x0000641eu, 0x000200f9u, 0x00006421u, 0x000200f8u, 0x00006417u, + 0x00050051u, 0x00000012u, 0x00006419u, 0x000089e6u, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000641au, + 0x00006419u, 0x000200f9u, 0x00006421u, 0x000200f8u, 0x00006413u, 0x00050051u, 0x00000012u, 0x00006415u, + 0x000081f2u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006416u, 0x00006415u, 0x000200f9u, 0x00006421u, + 0x000200f8u, 0x0000640fu, 0x000200f9u, 0x00006421u, 0x000200f8u, 0x0000640au, 0x00050051u, 0x0000000fu, + 0x0000640cu, 0x00002ac6u, 0x00000003u, 0x00040071u, 0x00000006u, 0x0000640du, 0x0000640cu, 0x0004007cu, + 0x00000008u, 0x0000640eu, 0x0000640du, 0x000200f9u, 0x00006421u, 0x000200f8u, 0x00006421u, 0x000f00f5u, + 0x00000008u, 0x00008ce2u, 0x0000640eu, 0x0000640au, 0x00000225u, 0x0000640fu, 0x00006416u, 0x00006413u, + 0x0000641au, 0x00006417u, 0x0000641fu, 0x0000641bu, 0x00001ac7u, 0x00006420u, 0x00050051u, 0x00000008u, + 0x00006424u, 0x00008ce1u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006425u, 0x00008ce1u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00006426u, 0x00008ce1u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006427u, + 0x00006424u, 0x00006425u, 0x00006426u, 0x00008ce2u, 0x00050051u, 0x0000000fu, 0x0000639bu, 0x00002584u, + 0x00000001u, 0x00040071u, 0x00000006u, 0x0000639cu, 0x0000639bu, 0x0004007cu, 0x00000008u, 0x0000639du, + 0x0000639cu, 0x00050051u, 0x0000000fu, 0x0000639fu, 0x00002586u, 0x00000001u, 0x00040071u, 0x00000006u, + 0x000063a0u, 0x0000639fu, 0x0004007cu, 0x00000008u, 0x000063a1u, 0x000063a0u, 0x000300f7u, 0x00006454u, + 0x00000000u, 0x000d00fbu, 0x0000639du, 0x0000642du, 0x00000000u, 0x00006433u, 0x00000001u, 0x00006438u, + 0x00000002u, 0x0000643du, 0x00000004u, 0x00006442u, 0x00000007u, 0x00006448u, 0x000200f8u, 0x00006448u, + 0x00050051u, 0x0000000fu, 0x0000644au, 0x00002ac8u, 0x00000001u, 0x00040071u, 0x00000006u, 0x0000644bu, + 0x0000644au, 0x0004007cu, 0x00000008u, 0x0000644cu, 0x0000644bu, 0x000500c4u, 0x00000008u, 0x0000644du, + 0x0000644cu, 0x00000262u, 0x00050051u, 0x0000000fu, 0x0000644fu, 0x00002ac8u, 0x00000002u, 0x00040071u, + 0x00000006u, 0x00006450u, 0x0000644fu, 0x0004007cu, 0x00000008u, 0x00006451u, 0x00006450u, 0x000500c5u, + 0x00000008u, 0x00006452u, 0x0000644du, 0x00006451u, 0x00060050u, 0x00000044u, 0x00006453u, 0x00006452u, + 0x00006452u, 0x00006452u, 0x000200f9u, 0x00006454u, 0x000200f8u, 0x00006442u, 0x0008004fu, 0x00000047u, + 0x00006445u, 0x00002b26u, 0x00002b26u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x00006446u, 0x00006445u, 0x0004007cu, 0x00000044u, 0x00006447u, 0x00006446u, 0x000200f9u, 0x00006454u, + 0x000200f8u, 0x0000643du, 0x0008004fu, 0x000004bbu, 0x00006440u, 0x000089e6u, 0x000089e6u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006441u, 0x00006440u, 0x000200f9u, 0x00006454u, + 0x000200f8u, 0x00006438u, 0x0008004fu, 0x000004bbu, 0x0000643bu, 0x000081f2u, 0x000081f2u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x0000643cu, 0x0000643bu, 0x000200f9u, 0x00006454u, + 0x000200f8u, 0x00006433u, 0x000200f9u, 0x00006454u, 0x000200f8u, 0x0000642du, 0x0008004fu, 0x00000047u, + 0x00006430u, 0x00002ac8u, 0x00002ac8u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x00006431u, 0x00006430u, 0x0004007cu, 0x00000044u, 0x00006432u, 0x00006431u, 0x000200f9u, 0x00006454u, + 0x000200f8u, 0x00006454u, 0x000f00f5u, 0x00000044u, 0x00008ce4u, 0x00006432u, 0x0000642du, 0x0000c232u, + 0x00006433u, 0x0000643cu, 0x00006438u, 0x00006441u, 0x0000643du, 0x00006447u, 0x00006442u, 0x00006453u, + 0x00006448u, 0x000300f7u, 0x0000646du, 0x00000000u, 0x000d00fbu, 0x000063a1u, 0x00006456u, 0x00000000u, + 0x0000645bu, 0x00000001u, 0x0000645fu, 0x00000002u, 0x00006463u, 0x00000004u, 0x00006467u, 0x00000006u, + 0x0000646cu, 0x000200f8u, 0x0000646cu, 0x000200f9u, 0x0000646du, 0x000200f8u, 0x00006467u, 0x00050051u, + 0x0000000fu, 0x00006469u, 0x00002b26u, 0x00000003u, 0x00040071u, 0x00000006u, 0x0000646au, 0x00006469u, + 0x0004007cu, 0x00000008u, 0x0000646bu, 0x0000646au, 0x000200f9u, 0x0000646du, 0x000200f8u, 0x00006463u, + 0x00050051u, 0x00000012u, 0x00006465u, 0x000089e6u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006466u, + 0x00006465u, 0x000200f9u, 0x0000646du, 0x000200f8u, 0x0000645fu, 0x00050051u, 0x00000012u, 0x00006461u, + 0x000081f2u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006462u, 0x00006461u, 0x000200f9u, 0x0000646du, + 0x000200f8u, 0x0000645bu, 0x000200f9u, 0x0000646du, 0x000200f8u, 0x00006456u, 0x00050051u, 0x0000000fu, + 0x00006458u, 0x00002ac8u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006459u, 0x00006458u, 0x0004007cu, + 0x00000008u, 0x0000645au, 0x00006459u, 0x000200f9u, 0x0000646du, 0x000200f8u, 0x0000646du, 0x000f00f5u, + 0x00000008u, 0x00008ce5u, 0x0000645au, 0x00006456u, 0x00000225u, 0x0000645bu, 0x00006462u, 0x0000645fu, + 0x00006466u, 0x00006463u, 0x0000646bu, 0x00006467u, 0x00001ac7u, 0x0000646cu, 0x00050051u, 0x00000008u, + 0x00006470u, 0x00008ce4u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006471u, 0x00008ce4u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00006472u, 0x00008ce4u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006473u, + 0x00006470u, 0x00006471u, 0x00006472u, 0x00008ce5u, 0x00050051u, 0x0000000fu, 0x000063a5u, 0x00002584u, + 0x00000002u, 0x00040071u, 0x00000006u, 0x000063a6u, 0x000063a5u, 0x0004007cu, 0x00000008u, 0x000063a7u, + 0x000063a6u, 0x00050051u, 0x0000000fu, 0x000063a9u, 0x00002586u, 0x00000002u, 0x00040071u, 0x00000006u, + 0x000063aau, 0x000063a9u, 0x0004007cu, 0x00000008u, 0x000063abu, 0x000063aau, 0x000300f7u, 0x000064bau, + 0x00000000u, 0x001700fbu, 0x000063a7u, 0x00006479u, 0x00000000u, 0x0000647fu, 0x00000007u, 0x00006484u, + 0x00000001u, 0x00006489u, 0x00000002u, 0x0000648eu, 0x00000004u, 0x00006493u, 0x00000008u, 0x00006499u, + 0x00000009u, 0x0000649eu, 0x0000000bu, 0x000064a3u, 0x0000000du, 0x000064a9u, 0x0000000fu, 0x000064aeu, + 0x000200f8u, 0x000064aeu, 0x00050051u, 0x0000000fu, 0x000064b0u, 0x00002acau, 0x00000001u, 0x00040071u, + 0x00000006u, 0x000064b1u, 0x000064b0u, 0x0004007cu, 0x00000008u, 0x000064b2u, 0x000064b1u, 0x000500c4u, + 0x00000008u, 0x000064b3u, 0x000064b2u, 0x00000262u, 0x00050051u, 0x0000000fu, 0x000064b5u, 0x00002acau, + 0x00000002u, 0x00040071u, 0x00000006u, 0x000064b6u, 0x000064b5u, 0x0004007cu, 0x00000008u, 0x000064b7u, + 0x000064b6u, 0x000500c5u, 0x00000008u, 0x000064b8u, 0x000064b3u, 0x000064b7u, 0x00060050u, 0x00000044u, + 0x000064b9u, 0x000064b8u, 0x000064b8u, 0x000064b8u, 0x000200f9u, 0x000064bau, 0x000200f8u, 0x000064a9u, + 0x00040072u, 0x00000008u, 0x000064acu, 0x00008aa2u, 0x00060050u, 0x00000044u, 0x000064adu, 0x000064acu, + 0x000064acu, 0x000064acu, 0x000200f9u, 0x000064bau, 0x000200f8u, 0x000064a3u, 0x0008004fu, 0x00000047u, + 0x000064a6u, 0x00002b26u, 0x00002b26u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040071u, 0x00000311u, + 0x000064a7u, 0x000064a6u, 0x0004007cu, 0x00000044u, 0x000064a8u, 0x000064a7u, 0x000200f9u, 0x000064bau, + 0x000200f8u, 0x0000649eu, 0x0008004fu, 0x000004bbu, 0x000064a1u, 0x000089e6u, 0x000089e6u, 0x00000003u, + 0x00000003u, 0x00000003u, 0x00040072u, 0x00000044u, 0x000064a2u, 0x000064a1u, 0x000200f9u, 0x000064bau, + 0x000200f8u, 0x00006499u, 0x0008004fu, 0x000004bbu, 0x0000649cu, 0x000081f2u, 0x000081f2u, 0x00000003u, + 0x00000003u, 0x00000003u, 0x00040072u, 0x00000044u, 0x0000649du, 0x0000649cu, 0x000200f9u, 0x000064bau, + 0x000200f8u, 0x00006493u, 0x0008004fu, 0x00000047u, 0x00006496u, 0x00002b26u, 0x00002b26u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x00006497u, 0x00006496u, 0x0004007cu, 0x00000044u, + 0x00006498u, 0x00006497u, 0x000200f9u, 0x000064bau, 0x000200f8u, 0x0000648eu, 0x0008004fu, 0x000004bbu, + 0x00006491u, 0x000089e6u, 0x000089e6u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, + 0x00006492u, 0x00006491u, 0x000200f9u, 0x000064bau, 0x000200f8u, 0x00006489u, 0x0008004fu, 0x000004bbu, + 0x0000648cu, 0x000081f2u, 0x000081f2u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, + 0x0000648du, 0x0000648cu, 0x000200f9u, 0x000064bau, 0x000200f8u, 0x00006484u, 0x000200f9u, 0x000064bau, + 0x000200f8u, 0x0000647fu, 0x000200f9u, 0x000064bau, 0x000200f8u, 0x00006479u, 0x0008004fu, 0x00000047u, + 0x0000647cu, 0x00002acau, 0x00002acau, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x0000647du, 0x0000647cu, 0x0004007cu, 0x00000044u, 0x0000647eu, 0x0000647du, 0x000200f9u, 0x000064bau, + 0x000200f8u, 0x000064bau, 0x001900f5u, 0x00000044u, 0x00008ce7u, 0x0000647eu, 0x00006479u, 0x0000c232u, + 0x0000647fu, 0x0000c232u, 0x00006484u, 0x0000648du, 0x00006489u, 0x00006492u, 0x0000648eu, 0x00006498u, + 0x00006493u, 0x0000649du, 0x00006499u, 0x000064a2u, 0x0000649eu, 0x000064a8u, 0x000064a3u, 0x000064adu, + 0x000064a9u, 0x000064b9u, 0x000064aeu, 0x000300f7u, 0x000064d2u, 0x00000000u, 0x000b00fbu, 0x000063abu, + 0x000064bcu, 0x00000000u, 0x000064c1u, 0x00000001u, 0x000064c5u, 0x00000002u, 0x000064c9u, 0x00000004u, + 0x000064cdu, 0x000200f8u, 0x000064cdu, 0x00050051u, 0x0000000fu, 0x000064cfu, 0x00002b26u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x000064d0u, 0x000064cfu, 0x0004007cu, 0x00000008u, 0x000064d1u, 0x000064d0u, + 0x000200f9u, 0x000064d2u, 0x000200f8u, 0x000064c9u, 0x00050051u, 0x00000012u, 0x000064cbu, 0x000089e6u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x000064ccu, 0x000064cbu, 0x000200f9u, 0x000064d2u, 0x000200f8u, + 0x000064c5u, 0x00050051u, 0x00000012u, 0x000064c7u, 0x000081f2u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x000064c8u, 0x000064c7u, 0x000200f9u, 0x000064d2u, 0x000200f8u, 0x000064c1u, 0x00040072u, 0x00000008u, + 0x000064c4u, 0x00008aa2u, 0x000200f9u, 0x000064d2u, 0x000200f8u, 0x000064bcu, 0x00050051u, 0x0000000fu, + 0x000064beu, 0x00002acau, 0x00000003u, 0x00040071u, 0x00000006u, 0x000064bfu, 0x000064beu, 0x0004007cu, + 0x00000008u, 0x000064c0u, 0x000064bfu, 0x000200f9u, 0x000064d2u, 0x000200f8u, 0x000064d2u, 0x000d00f5u, + 0x00000008u, 0x00008ce8u, 0x000064c0u, 0x000064bcu, 0x000064c4u, 0x000064c1u, 0x000064c8u, 0x000064c5u, + 0x000064ccu, 0x000064c9u, 0x000064d1u, 0x000064cdu, 0x00050051u, 0x00000008u, 0x000064d5u, 0x00008ce7u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000064d6u, 0x00008ce7u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000064d7u, 0x00008ce7u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000064d8u, 0x000064d5u, 0x000064d6u, + 0x000064d7u, 0x00008ce8u, 0x00050051u, 0x0000000fu, 0x000063afu, 0x00002584u, 0x00000003u, 0x00040071u, + 0x00000006u, 0x000063b0u, 0x000063afu, 0x0004007cu, 0x00000008u, 0x000063b1u, 0x000063b0u, 0x00050051u, + 0x0000000fu, 0x000063b3u, 0x00002586u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000063b4u, 0x000063b3u, + 0x0004007cu, 0x00000008u, 0x000063b5u, 0x000063b4u, 0x000300f7u, 0x000064fau, 0x00000000u, 0x000d00fbu, + 0x000063b1u, 0x000064deu, 0x00000000u, 0x000064e4u, 0x00000001u, 0x000064e9u, 0x00000002u, 0x000064eeu, + 0x00000004u, 0x000064f3u, 0x00000006u, 0x000064f9u, 0x000200f8u, 0x000064f9u, 0x000200f9u, 0x000064fau, + 0x000200f8u, 0x000064f3u, 0x0008004fu, 0x00000047u, 0x000064f6u, 0x00002b26u, 0x00002b26u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000064f7u, 0x000064f6u, 0x0004007cu, 0x00000044u, + 0x000064f8u, 0x000064f7u, 0x000200f9u, 0x000064fau, 0x000200f8u, 0x000064eeu, 0x0008004fu, 0x000004bbu, + 0x000064f1u, 0x000089e6u, 0x000089e6u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, + 0x000064f2u, 0x000064f1u, 0x000200f9u, 0x000064fau, 0x000200f8u, 0x000064e9u, 0x0008004fu, 0x000004bbu, + 0x000064ecu, 0x000081f2u, 0x000081f2u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, + 0x000064edu, 0x000064ecu, 0x000200f9u, 0x000064fau, 0x000200f8u, 0x000064e4u, 0x000200f9u, 0x000064fau, + 0x000200f8u, 0x000064deu, 0x0008004fu, 0x00000047u, 0x000064e1u, 0x00002accu, 0x00002accu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000064e2u, 0x000064e1u, 0x0004007cu, 0x00000044u, + 0x000064e3u, 0x000064e2u, 0x000200f9u, 0x000064fau, 0x000200f8u, 0x000064fau, 0x000f00f5u, 0x00000044u, + 0x00008ceau, 0x000064e3u, 0x000064deu, 0x0000c232u, 0x000064e4u, 0x000064edu, 0x000064e9u, 0x000064f2u, + 0x000064eeu, 0x000064f8u, 0x000064f3u, 0x00001ac8u, 0x000064f9u, 0x000300f7u, 0x00006513u, 0x00000000u, + 0x000d00fbu, 0x000063b5u, 0x000064fcu, 0x00000000u, 0x00006501u, 0x00000001u, 0x00006505u, 0x00000002u, + 0x00006509u, 0x00000004u, 0x0000650du, 0x00000006u, 0x00006512u, 0x000200f8u, 0x00006512u, 0x000200f9u, + 0x00006513u, 0x000200f8u, 0x0000650du, 0x00050051u, 0x0000000fu, 0x0000650fu, 0x00002b26u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00006510u, 0x0000650fu, 0x0004007cu, 0x00000008u, 0x00006511u, 0x00006510u, + 0x000200f9u, 0x00006513u, 0x000200f8u, 0x00006509u, 0x00050051u, 0x00000012u, 0x0000650bu, 0x000089e6u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x0000650cu, 0x0000650bu, 0x000200f9u, 0x00006513u, 0x000200f8u, + 0x00006505u, 0x00050051u, 0x00000012u, 0x00006507u, 0x000081f2u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x00006508u, 0x00006507u, 0x000200f9u, 0x00006513u, 0x000200f8u, 0x00006501u, 0x000200f9u, 0x00006513u, + 0x000200f8u, 0x000064fcu, 0x00050051u, 0x0000000fu, 0x000064feu, 0x00002accu, 0x00000003u, 0x00040071u, + 0x00000006u, 0x000064ffu, 0x000064feu, 0x0004007cu, 0x00000008u, 0x00006500u, 0x000064ffu, 0x000200f9u, + 0x00006513u, 0x000200f8u, 0x00006513u, 0x000f00f5u, 0x00000008u, 0x00008cebu, 0x00006500u, 0x000064fcu, + 0x00000225u, 0x00006501u, 0x00006508u, 0x00006505u, 0x0000650cu, 0x00006509u, 0x00006511u, 0x0000650du, + 0x00001ac7u, 0x00006512u, 0x00050051u, 0x00000008u, 0x00006516u, 0x00008ceau, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00006517u, 0x00008ceau, 0x00000001u, 0x00050051u, 0x00000008u, 0x00006518u, 0x00008ceau, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00006519u, 0x00006516u, 0x00006517u, 0x00006518u, 0x00008cebu, + 0x000600cau, 0x00000009u, 0x00006521u, 0x000064d8u, 0x00000225u, 0x00000265u, 0x00050082u, 0x00000009u, + 0x0000653bu, 0x00006427u, 0x0000c211u, 0x000600cau, 0x00000009u, 0x0000653cu, 0x0000653bu, 0x00000225u, + 0x00000265u, 0x00050080u, 0x00000009u, 0x0000653eu, 0x0000653cu, 0x0000c211u, 0x00050082u, 0x00000009u, + 0x00006543u, 0x00006473u, 0x0000c211u, 0x000600cau, 0x00000009u, 0x00006544u, 0x00006543u, 0x00000225u, + 0x00000265u, 0x00050080u, 0x00000009u, 0x00006546u, 0x00006544u, 0x0000c211u, 0x00050082u, 0x00000009u, + 0x0000654bu, 0x00006519u, 0x0000c211u, 0x000600cau, 0x00000009u, 0x0000654cu, 0x0000654bu, 0x00000225u, + 0x00000265u, 0x00050080u, 0x00000009u, 0x0000654eu, 0x0000654cu, 0x0000c211u, 0x00050082u, 0x00000009u, + 0x0000652au, 0x0000653eu, 0x00006546u, 0x00050084u, 0x00000009u, 0x0000652cu, 0x0000652au, 0x00006521u, + 0x00050080u, 0x00000009u, 0x0000652fu, 0x0000652cu, 0x0000c211u, 0x000500c3u, 0x00000009u, 0x00006532u, + 0x0000652fu, 0x0000c21cu, 0x00040072u, 0x00000013u, 0x00006533u, 0x00006532u, 0x00040072u, 0x00000013u, + 0x00006535u, 0x0000654eu, 0x00050080u, 0x00000013u, 0x00006536u, 0x00006533u, 0x00006535u, 0x000300f7u, + 0x000063e0u, 0x00000000u, 0x000400fau, 0x0000233du, 0x000063beu, 0x000063dfu, 0x000200f8u, 0x000063dfu, + 0x000200f9u, 0x000063e0u, 0x000200f8u, 0x000063beu, 0x00050051u, 0x00000012u, 0x000063c0u, 0x00006536u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x000063c1u, 0x000063c0u, 0x00050082u, 0x00000008u, 0x00006552u, + 0x000063c1u, 0x00000b03u, 0x000600cau, 0x00000008u, 0x00006553u, 0x00006552u, 0x00000225u, 0x00000265u, + 0x00050080u, 0x00000008u, 0x00006554u, 0x00006553u, 0x00000b03u, 0x0008000cu, 0x00000008u, 0x00006555u, + 0x00000001u, 0x0000002du, 0x00006554u, 0x00000225u, 0x00000363u, 0x00050080u, 0x00000008u, 0x000063c5u, + 0x00006555u, 0x0000022fu, 0x000500c3u, 0x00000008u, 0x000063c6u, 0x000063c5u, 0x00000262u, 0x00050080u, + 0x00000008u, 0x000063c7u, 0x00006555u, 0x000063c6u, 0x000300f7u, 0x000063dau, 0x00000000u, 0x000400fau, + 0x0000231fu, 0x000063c9u, 0x000063d6u, 0x000200f8u, 0x000063d6u, 0x00050080u, 0x00000008u, 0x000063d9u, + 0x000063c7u, 0x00008977u, 0x000200f9u, 0x000063dau, 0x000200f8u, 0x000063c9u, 0x000300f7u, 0x000063d4u, + 0x00000000u, 0x000400fau, 0x0000231cu, 0x000063cbu, 0x000063d1u, 0x000200f8u, 0x000063d1u, 0x000500c4u, + 0x00000008u, 0x000063d3u, 0x000023c4u, 0x0000023bu, 0x000200f9u, 0x000063d4u, 0x000200f8u, 0x000063cbu, + 0x00050084u, 0x00000008u, 0x000063ceu, 0x000063c7u, 0x000023c4u, 0x00050080u, 0x00000008u, 0x000063cfu, + 0x000063ceu, 0x00000238u, 0x000500c3u, 0x00000008u, 0x000063d0u, 0x000063cfu, 0x00000235u, 0x000200f9u, + 0x000063d4u, 0x000200f8u, 0x000063d4u, 0x000700f5u, 0x00000008u, 0x00008cecu, 0x000063d0u, 0x000063cbu, + 0x000063d3u, 0x000063d1u, 0x000200f9u, 0x000063dau, 0x000200f8u, 0x000063dau, 0x000700f5u, 0x00000008u, + 0x00008cedu, 0x00008cecu, 0x000063d4u, 0x000063d9u, 0x000063d6u, 0x0008000cu, 0x00000008u, 0x000063dcu, + 0x00000001u, 0x0000002du, 0x00008cedu, 0x00000225u, 0x00000363u, 0x00040072u, 0x00000380u, 0x000063ddu, + 0x000063dcu, 0x0004007cu, 0x0000000fu, 0x000063deu, 0x000063ddu, 0x000200f9u, 0x000063e0u, 0x000200f8u, + 0x000063e0u, 0x000700f5u, 0x0000000fu, 0x00008ceeu, 0x000063deu, 0x000063dau, 0x0000038du, 0x000063dfu, + 0x000500c7u, 0x00000006u, 0x000024d9u, 0x0000258cu, 0x00001feau, 0x000500abu, 0x00000069u, 0x000024dau, + 0x000024d9u, 0x00000332u, 0x000300f7u, 0x000024eau, 0x00000000u, 0x000400fau, 0x000024dau, 0x000024dbu, + 0x000024eau, 0x000200f8u, 0x000024dbu, 0x00050080u, 0x00000008u, 0x000024ddu, 0x00007a8bu, 0x00001176u, + 0x0004007cu, 0x00000006u, 0x000024deu, 0x000024ddu, 0x00050080u, 0x00000008u, 0x000024e0u, 0x00007a89u, + 0x00000241u, 0x0004007cu, 0x00000006u, 0x000024e1u, 0x000024e0u, 0x00060041u, 0x00001ddbu, 0x000024e3u, + 0x00000cd9u, 0x00000225u, 0x00000235u, 0x0004003du, 0x00000006u, 0x000024e4u, 0x000024e3u, 0x00050080u, + 0x00000006u, 0x000024e5u, 0x000020dcu, 0x000024e4u, 0x00050080u, 0x00000006u, 0x000024e6u, 0x000024e5u, + 0x00000e35u, 0x00060050u, 0x00000311u, 0x0000655bu, 0x000024deu, 0x000024e1u, 0x000024e6u, 0x000500c2u, + 0x00000311u, 0x0000655eu, 0x0000655bu, 0x0000c20bu, 0x0008004fu, 0x00000311u, 0x00006560u, 0x0000655bu, + 0x0000655bu, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000311u, 0x00006561u, 0x0000655eu, + 0x00006560u, 0x00050084u, 0x00000311u, 0x00006563u, 0x00006561u, 0x0000c20cu, 0x000500c2u, 0x00000311u, + 0x00006566u, 0x00006563u, 0x0000c20bu, 0x0008004fu, 0x00000311u, 0x00006568u, 0x00006563u, 0x00006563u, + 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000311u, 0x00006569u, 0x00006566u, 0x00006568u, + 0x00050084u, 0x00000311u, 0x0000656bu, 0x00006569u, 0x0000c20cu, 0x000500c2u, 0x00000311u, 0x0000656eu, + 0x0000656bu, 0x0000c20bu, 0x0008004fu, 0x00000311u, 0x00006570u, 0x0000656bu, 0x0000656bu, 0x00000001u, + 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000311u, 0x00006571u, 0x0000656eu, 0x00006570u, 0x00050084u, + 0x00000311u, 0x00006573u, 0x00006571u, 0x0000c20cu, 0x00050051u, 0x00000006u, 0x00006575u, 0x00006573u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006576u, 0x00006575u, 0x00000335u, 0x00040071u, 0x00000011u, + 0x00006577u, 0x00006576u, 0x000500c7u, 0x00000011u, 0x0000657bu, 0x00006577u, 0x00000339u, 0x000500c4u, + 0x00000011u, 0x0000657cu, 0x0000657bu, 0x0000033bu, 0x000500c5u, 0x00000011u, 0x0000657du, 0x0000657cu, + 0x0000033du, 0x0004007cu, 0x00000012u, 0x0000657eu, 0x0000657du, 0x000200f9u, 0x000024eau, 0x000200f8u, + 0x000024eau, 0x000700f5u, 0x00000011u, 0x00008d6du, 0x00008865u, 0x000063e0u, 0x00006577u, 0x000024dbu, + 0x000700f5u, 0x00000012u, 0x00008d27u, 0x00006374u, 0x000063e0u, 0x0000657eu, 0x000024dbu, 0x00050051u, + 0x0000000fu, 0x0000659au, 0x00002588u, 0x00000000u, 0x00040071u, 0x00000006u, 0x0000659bu, 0x0000659au, + 0x0004007cu, 0x00000008u, 0x0000659cu, 0x0000659bu, 0x00050051u, 0x0000000fu, 0x0000659eu, 0x0000258au, + 0x00000000u, 0x00040071u, 0x00000006u, 0x0000659fu, 0x0000659eu, 0x0004007cu, 0x00000008u, 0x000065a0u, + 0x0000659fu, 0x000300f7u, 0x00006612u, 0x00000000u, 0x000f00fbu, 0x0000659cu, 0x000065f1u, 0x00000000u, + 0x000065f7u, 0x00000001u, 0x000065fcu, 0x00000002u, 0x00006601u, 0x00000004u, 0x00006606u, 0x00000007u, + 0x0000660cu, 0x00000006u, 0x00006611u, 0x000200f8u, 0x00006611u, 0x000200f9u, 0x00006612u, 0x000200f8u, + 0x0000660cu, 0x00040072u, 0x00000008u, 0x0000660fu, 0x00008d27u, 0x00060050u, 0x00000044u, 0x00006610u, + 0x0000660fu, 0x0000660fu, 0x0000660fu, 0x000200f9u, 0x00006612u, 0x000200f8u, 0x00006606u, 0x0008004fu, + 0x00000047u, 0x00006609u, 0x00002b26u, 0x00002b26u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x00000311u, 0x0000660au, 0x00006609u, 0x0004007cu, 0x00000044u, 0x0000660bu, 0x0000660au, 0x000200f9u, + 0x00006612u, 0x000200f8u, 0x00006601u, 0x0008004fu, 0x000004bbu, 0x00006604u, 0x000081f2u, 0x000081f2u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006605u, 0x00006604u, 0x000200f9u, + 0x00006612u, 0x000200f8u, 0x000065fcu, 0x0008004fu, 0x000004bbu, 0x000065ffu, 0x000089e6u, 0x000089e6u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006600u, 0x000065ffu, 0x000200f9u, + 0x00006612u, 0x000200f8u, 0x000065f7u, 0x0008004fu, 0x000004bbu, 0x000065fau, 0x00006536u, 0x00006536u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x000065fbu, 0x000065fau, 0x000200f9u, + 0x00006612u, 0x000200f8u, 0x000065f1u, 0x0008004fu, 0x00000047u, 0x000065f4u, 0x00002aceu, 0x00002aceu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000065f5u, 0x000065f4u, 0x0004007cu, + 0x00000044u, 0x000065f6u, 0x000065f5u, 0x000200f9u, 0x00006612u, 0x000200f8u, 0x00006612u, 0x001100f5u, + 0x00000044u, 0x00008d47u, 0x000065f6u, 0x000065f1u, 0x000065fbu, 0x000065f7u, 0x00006600u, 0x000065fcu, + 0x00006605u, 0x00006601u, 0x0000660bu, 0x00006606u, 0x00006610u, 0x0000660cu, 0x00001ac8u, 0x00006611u, + 0x000300f7u, 0x0000662bu, 0x00000000u, 0x000d00fbu, 0x000065a0u, 0x00006614u, 0x00000000u, 0x00006619u, + 0x00000001u, 0x0000661du, 0x00000002u, 0x00006621u, 0x00000004u, 0x00006625u, 0x00000006u, 0x0000662au, + 0x000200f8u, 0x0000662au, 0x000200f9u, 0x0000662bu, 0x000200f8u, 0x00006625u, 0x00050051u, 0x0000000fu, + 0x00006627u, 0x00002b26u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006628u, 0x00006627u, 0x0004007cu, + 0x00000008u, 0x00006629u, 0x00006628u, 0x000200f9u, 0x0000662bu, 0x000200f8u, 0x00006621u, 0x00050051u, + 0x00000012u, 0x00006623u, 0x000081f2u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006624u, 0x00006623u, + 0x000200f9u, 0x0000662bu, 0x000200f8u, 0x0000661du, 0x00050051u, 0x00000012u, 0x0000661fu, 0x000089e6u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x00006620u, 0x0000661fu, 0x000200f9u, 0x0000662bu, 0x000200f8u, + 0x00006619u, 0x00050051u, 0x00000012u, 0x0000661bu, 0x00006536u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x0000661cu, 0x0000661bu, 0x000200f9u, 0x0000662bu, 0x000200f8u, 0x00006614u, 0x00050051u, 0x0000000fu, + 0x00006616u, 0x00002aceu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006617u, 0x00006616u, 0x0004007cu, + 0x00000008u, 0x00006618u, 0x00006617u, 0x000200f9u, 0x0000662bu, 0x000200f8u, 0x0000662bu, 0x000f00f5u, + 0x00000008u, 0x00008d48u, 0x00006618u, 0x00006614u, 0x0000661cu, 0x00006619u, 0x00006620u, 0x0000661du, + 0x00006624u, 0x00006621u, 0x00006629u, 0x00006625u, 0x00001ac7u, 0x0000662au, 0x00050051u, 0x00000008u, + 0x0000662eu, 0x00008d47u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000662fu, 0x00008d47u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00006630u, 0x00008d47u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006631u, + 0x0000662eu, 0x0000662fu, 0x00006630u, 0x00008d48u, 0x00050051u, 0x0000000fu, 0x000065a4u, 0x00002588u, + 0x00000001u, 0x00040071u, 0x00000006u, 0x000065a5u, 0x000065a4u, 0x0004007cu, 0x00000008u, 0x000065a6u, + 0x000065a5u, 0x00050051u, 0x0000000fu, 0x000065a8u, 0x0000258au, 0x00000001u, 0x00040071u, 0x00000006u, + 0x000065a9u, 0x000065a8u, 0x0004007cu, 0x00000008u, 0x000065aau, 0x000065a9u, 0x000300f7u, 0x0000665eu, + 0x00000000u, 0x000d00fbu, 0x000065a6u, 0x00006637u, 0x00000000u, 0x0000663du, 0x00000001u, 0x00006642u, + 0x00000002u, 0x00006647u, 0x00000004u, 0x0000664cu, 0x00000007u, 0x00006652u, 0x000200f8u, 0x00006652u, + 0x00050051u, 0x0000000fu, 0x00006654u, 0x00002ad0u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006655u, + 0x00006654u, 0x0004007cu, 0x00000008u, 0x00006656u, 0x00006655u, 0x000500c4u, 0x00000008u, 0x00006657u, + 0x00006656u, 0x00000262u, 0x00050051u, 0x0000000fu, 0x00006659u, 0x00002ad0u, 0x00000002u, 0x00040071u, + 0x00000006u, 0x0000665au, 0x00006659u, 0x0004007cu, 0x00000008u, 0x0000665bu, 0x0000665au, 0x000500c5u, + 0x00000008u, 0x0000665cu, 0x00006657u, 0x0000665bu, 0x00060050u, 0x00000044u, 0x0000665du, 0x0000665cu, + 0x0000665cu, 0x0000665cu, 0x000200f9u, 0x0000665eu, 0x000200f8u, 0x0000664cu, 0x0008004fu, 0x00000047u, + 0x0000664fu, 0x00002b26u, 0x00002b26u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x00006650u, 0x0000664fu, 0x0004007cu, 0x00000044u, 0x00006651u, 0x00006650u, 0x000200f9u, 0x0000665eu, + 0x000200f8u, 0x00006647u, 0x0008004fu, 0x000004bbu, 0x0000664au, 0x000081f2u, 0x000081f2u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x0000664bu, 0x0000664au, 0x000200f9u, 0x0000665eu, + 0x000200f8u, 0x00006642u, 0x0008004fu, 0x000004bbu, 0x00006645u, 0x000089e6u, 0x000089e6u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006646u, 0x00006645u, 0x000200f9u, 0x0000665eu, + 0x000200f8u, 0x0000663du, 0x0008004fu, 0x000004bbu, 0x00006640u, 0x00006536u, 0x00006536u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006641u, 0x00006640u, 0x000200f9u, 0x0000665eu, + 0x000200f8u, 0x00006637u, 0x0008004fu, 0x00000047u, 0x0000663au, 0x00002ad0u, 0x00002ad0u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x0000663bu, 0x0000663au, 0x0004007cu, 0x00000044u, + 0x0000663cu, 0x0000663bu, 0x000200f9u, 0x0000665eu, 0x000200f8u, 0x0000665eu, 0x000f00f5u, 0x00000044u, + 0x00008d4au, 0x0000663cu, 0x00006637u, 0x00006641u, 0x0000663du, 0x00006646u, 0x00006642u, 0x0000664bu, + 0x00006647u, 0x00006651u, 0x0000664cu, 0x0000665du, 0x00006652u, 0x000300f7u, 0x00006677u, 0x00000000u, + 0x000d00fbu, 0x000065aau, 0x00006660u, 0x00000000u, 0x00006665u, 0x00000001u, 0x00006669u, 0x00000002u, + 0x0000666du, 0x00000004u, 0x00006671u, 0x00000006u, 0x00006676u, 0x000200f8u, 0x00006676u, 0x000200f9u, + 0x00006677u, 0x000200f8u, 0x00006671u, 0x00050051u, 0x0000000fu, 0x00006673u, 0x00002b26u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00006674u, 0x00006673u, 0x0004007cu, 0x00000008u, 0x00006675u, 0x00006674u, + 0x000200f9u, 0x00006677u, 0x000200f8u, 0x0000666du, 0x00050051u, 0x00000012u, 0x0000666fu, 0x000081f2u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x00006670u, 0x0000666fu, 0x000200f9u, 0x00006677u, 0x000200f8u, + 0x00006669u, 0x00050051u, 0x00000012u, 0x0000666bu, 0x000089e6u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x0000666cu, 0x0000666bu, 0x000200f9u, 0x00006677u, 0x000200f8u, 0x00006665u, 0x00050051u, 0x00000012u, + 0x00006667u, 0x00006536u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006668u, 0x00006667u, 0x000200f9u, + 0x00006677u, 0x000200f8u, 0x00006660u, 0x00050051u, 0x0000000fu, 0x00006662u, 0x00002ad0u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00006663u, 0x00006662u, 0x0004007cu, 0x00000008u, 0x00006664u, 0x00006663u, + 0x000200f9u, 0x00006677u, 0x000200f8u, 0x00006677u, 0x000f00f5u, 0x00000008u, 0x00008d4bu, 0x00006664u, + 0x00006660u, 0x00006668u, 0x00006665u, 0x0000666cu, 0x00006669u, 0x00006670u, 0x0000666du, 0x00006675u, + 0x00006671u, 0x00001ac7u, 0x00006676u, 0x00050051u, 0x00000008u, 0x0000667au, 0x00008d4au, 0x00000000u, + 0x00050051u, 0x00000008u, 0x0000667bu, 0x00008d4au, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000667cu, + 0x00008d4au, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000667du, 0x0000667au, 0x0000667bu, 0x0000667cu, + 0x00008d4bu, 0x00050051u, 0x0000000fu, 0x000065aeu, 0x00002588u, 0x00000002u, 0x00040071u, 0x00000006u, + 0x000065afu, 0x000065aeu, 0x0004007cu, 0x00000008u, 0x000065b0u, 0x000065afu, 0x00050051u, 0x0000000fu, + 0x000065b2u, 0x0000258au, 0x00000002u, 0x00040071u, 0x00000006u, 0x000065b3u, 0x000065b2u, 0x0004007cu, + 0x00000008u, 0x000065b4u, 0x000065b3u, 0x000300f7u, 0x000066c4u, 0x00000000u, 0x001700fbu, 0x000065b0u, + 0x00006683u, 0x00000000u, 0x00006689u, 0x00000007u, 0x0000668eu, 0x00000001u, 0x00006693u, 0x00000002u, + 0x00006698u, 0x00000004u, 0x0000669du, 0x00000008u, 0x000066a3u, 0x00000009u, 0x000066a8u, 0x0000000bu, + 0x000066adu, 0x0000000du, 0x000066b3u, 0x0000000fu, 0x000066b8u, 0x000200f8u, 0x000066b8u, 0x00050051u, + 0x0000000fu, 0x000066bau, 0x00002ad2u, 0x00000001u, 0x00040071u, 0x00000006u, 0x000066bbu, 0x000066bau, + 0x0004007cu, 0x00000008u, 0x000066bcu, 0x000066bbu, 0x000500c4u, 0x00000008u, 0x000066bdu, 0x000066bcu, + 0x00000262u, 0x00050051u, 0x0000000fu, 0x000066bfu, 0x00002ad2u, 0x00000002u, 0x00040071u, 0x00000006u, + 0x000066c0u, 0x000066bfu, 0x0004007cu, 0x00000008u, 0x000066c1u, 0x000066c0u, 0x000500c5u, 0x00000008u, + 0x000066c2u, 0x000066bdu, 0x000066c1u, 0x00060050u, 0x00000044u, 0x000066c3u, 0x000066c2u, 0x000066c2u, + 0x000066c2u, 0x000200f9u, 0x000066c4u, 0x000200f8u, 0x000066b3u, 0x00040072u, 0x00000008u, 0x000066b6u, + 0x00008aa2u, 0x00060050u, 0x00000044u, 0x000066b7u, 0x000066b6u, 0x000066b6u, 0x000066b6u, 0x000200f9u, + 0x000066c4u, 0x000200f8u, 0x000066adu, 0x0008004fu, 0x00000047u, 0x000066b0u, 0x00002b26u, 0x00002b26u, + 0x00000003u, 0x00000003u, 0x00000003u, 0x00040071u, 0x00000311u, 0x000066b1u, 0x000066b0u, 0x0004007cu, + 0x00000044u, 0x000066b2u, 0x000066b1u, 0x000200f9u, 0x000066c4u, 0x000200f8u, 0x000066a8u, 0x0008004fu, + 0x000004bbu, 0x000066abu, 0x000081f2u, 0x000081f2u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, + 0x00000044u, 0x000066acu, 0x000066abu, 0x000200f9u, 0x000066c4u, 0x000200f8u, 0x000066a3u, 0x0008004fu, + 0x000004bbu, 0x000066a6u, 0x000089e6u, 0x000089e6u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, + 0x00000044u, 0x000066a7u, 0x000066a6u, 0x000200f9u, 0x000066c4u, 0x000200f8u, 0x0000669du, 0x0008004fu, + 0x00000047u, 0x000066a0u, 0x00002b26u, 0x00002b26u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x00000311u, 0x000066a1u, 0x000066a0u, 0x0004007cu, 0x00000044u, 0x000066a2u, 0x000066a1u, 0x000200f9u, + 0x000066c4u, 0x000200f8u, 0x00006698u, 0x0008004fu, 0x000004bbu, 0x0000669bu, 0x000081f2u, 0x000081f2u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x0000669cu, 0x0000669bu, 0x000200f9u, + 0x000066c4u, 0x000200f8u, 0x00006693u, 0x0008004fu, 0x000004bbu, 0x00006696u, 0x000089e6u, 0x000089e6u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006697u, 0x00006696u, 0x000200f9u, + 0x000066c4u, 0x000200f8u, 0x0000668eu, 0x0008004fu, 0x000004bbu, 0x00006691u, 0x00006536u, 0x00006536u, + 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, 0x00000044u, 0x00006692u, 0x00006691u, 0x000200f9u, + 0x000066c4u, 0x000200f8u, 0x00006689u, 0x0008004fu, 0x000004bbu, 0x0000668cu, 0x00006536u, 0x00006536u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x0000668du, 0x0000668cu, 0x000200f9u, + 0x000066c4u, 0x000200f8u, 0x00006683u, 0x0008004fu, 0x00000047u, 0x00006686u, 0x00002ad2u, 0x00002ad2u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x00006687u, 0x00006686u, 0x0004007cu, + 0x00000044u, 0x00006688u, 0x00006687u, 0x000200f9u, 0x000066c4u, 0x000200f8u, 0x000066c4u, 0x001900f5u, + 0x00000044u, 0x00008d4du, 0x00006688u, 0x00006683u, 0x0000668du, 0x00006689u, 0x00006692u, 0x0000668eu, + 0x00006697u, 0x00006693u, 0x0000669cu, 0x00006698u, 0x000066a2u, 0x0000669du, 0x000066a7u, 0x000066a3u, + 0x000066acu, 0x000066a8u, 0x000066b2u, 0x000066adu, 0x000066b7u, 0x000066b3u, 0x000066c3u, 0x000066b8u, + 0x000300f7u, 0x000066dcu, 0x00000000u, 0x000b00fbu, 0x000065b4u, 0x000066c6u, 0x00000000u, 0x000066cbu, + 0x00000001u, 0x000066cfu, 0x00000002u, 0x000066d3u, 0x00000004u, 0x000066d7u, 0x000200f8u, 0x000066d7u, + 0x00050051u, 0x0000000fu, 0x000066d9u, 0x00002b26u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000066dau, + 0x000066d9u, 0x0004007cu, 0x00000008u, 0x000066dbu, 0x000066dau, 0x000200f9u, 0x000066dcu, 0x000200f8u, + 0x000066d3u, 0x00050051u, 0x00000012u, 0x000066d5u, 0x000081f2u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x000066d6u, 0x000066d5u, 0x000200f9u, 0x000066dcu, 0x000200f8u, 0x000066cfu, 0x00050051u, 0x00000012u, + 0x000066d1u, 0x000089e6u, 0x00000003u, 0x00040072u, 0x00000008u, 0x000066d2u, 0x000066d1u, 0x000200f9u, + 0x000066dcu, 0x000200f8u, 0x000066cbu, 0x00040072u, 0x00000008u, 0x000066ceu, 0x00008aa2u, 0x000200f9u, + 0x000066dcu, 0x000200f8u, 0x000066c6u, 0x00050051u, 0x0000000fu, 0x000066c8u, 0x00002ad2u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x000066c9u, 0x000066c8u, 0x0004007cu, 0x00000008u, 0x000066cau, 0x000066c9u, + 0x000200f9u, 0x000066dcu, 0x000200f8u, 0x000066dcu, 0x000d00f5u, 0x00000008u, 0x00008d4eu, 0x000066cau, + 0x000066c6u, 0x000066ceu, 0x000066cbu, 0x000066d2u, 0x000066cfu, 0x000066d6u, 0x000066d3u, 0x000066dbu, + 0x000066d7u, 0x00050051u, 0x00000008u, 0x000066dfu, 0x00008d4du, 0x00000000u, 0x00050051u, 0x00000008u, + 0x000066e0u, 0x00008d4du, 0x00000001u, 0x00050051u, 0x00000008u, 0x000066e1u, 0x00008d4du, 0x00000002u, + 0x00070050u, 0x00000009u, 0x000066e2u, 0x000066dfu, 0x000066e0u, 0x000066e1u, 0x00008d4eu, 0x00050051u, + 0x0000000fu, 0x000065b8u, 0x00002588u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000065b9u, 0x000065b8u, + 0x0004007cu, 0x00000008u, 0x000065bau, 0x000065b9u, 0x00050051u, 0x0000000fu, 0x000065bcu, 0x0000258au, + 0x00000003u, 0x00040071u, 0x00000006u, 0x000065bdu, 0x000065bcu, 0x0004007cu, 0x00000008u, 0x000065beu, + 0x000065bdu, 0x000300f7u, 0x00006704u, 0x00000000u, 0x000d00fbu, 0x000065bau, 0x000066e8u, 0x00000000u, + 0x000066eeu, 0x00000001u, 0x000066f3u, 0x00000002u, 0x000066f8u, 0x00000004u, 0x000066fdu, 0x00000006u, + 0x00006703u, 0x000200f8u, 0x00006703u, 0x000200f9u, 0x00006704u, 0x000200f8u, 0x000066fdu, 0x0008004fu, + 0x00000047u, 0x00006700u, 0x00002b26u, 0x00002b26u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x00000311u, 0x00006701u, 0x00006700u, 0x0004007cu, 0x00000044u, 0x00006702u, 0x00006701u, 0x000200f9u, + 0x00006704u, 0x000200f8u, 0x000066f8u, 0x0008004fu, 0x000004bbu, 0x000066fbu, 0x000081f2u, 0x000081f2u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x000066fcu, 0x000066fbu, 0x000200f9u, + 0x00006704u, 0x000200f8u, 0x000066f3u, 0x0008004fu, 0x000004bbu, 0x000066f6u, 0x000089e6u, 0x000089e6u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x000066f7u, 0x000066f6u, 0x000200f9u, + 0x00006704u, 0x000200f8u, 0x000066eeu, 0x0008004fu, 0x000004bbu, 0x000066f1u, 0x00006536u, 0x00006536u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x000066f2u, 0x000066f1u, 0x000200f9u, + 0x00006704u, 0x000200f8u, 0x000066e8u, 0x0008004fu, 0x00000047u, 0x000066ebu, 0x00002ad4u, 0x00002ad4u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000066ecu, 0x000066ebu, 0x0004007cu, + 0x00000044u, 0x000066edu, 0x000066ecu, 0x000200f9u, 0x00006704u, 0x000200f8u, 0x00006704u, 0x000f00f5u, + 0x00000044u, 0x00008d50u, 0x000066edu, 0x000066e8u, 0x000066f2u, 0x000066eeu, 0x000066f7u, 0x000066f3u, + 0x000066fcu, 0x000066f8u, 0x00006702u, 0x000066fdu, 0x00001ac8u, 0x00006703u, 0x000300f7u, 0x0000671du, + 0x00000000u, 0x000d00fbu, 0x000065beu, 0x00006706u, 0x00000000u, 0x0000670bu, 0x00000001u, 0x0000670fu, + 0x00000002u, 0x00006713u, 0x00000004u, 0x00006717u, 0x00000006u, 0x0000671cu, 0x000200f8u, 0x0000671cu, + 0x000200f9u, 0x0000671du, 0x000200f8u, 0x00006717u, 0x00050051u, 0x0000000fu, 0x00006719u, 0x00002b26u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x0000671au, 0x00006719u, 0x0004007cu, 0x00000008u, 0x0000671bu, + 0x0000671au, 0x000200f9u, 0x0000671du, 0x000200f8u, 0x00006713u, 0x00050051u, 0x00000012u, 0x00006715u, + 0x000081f2u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006716u, 0x00006715u, 0x000200f9u, 0x0000671du, + 0x000200f8u, 0x0000670fu, 0x00050051u, 0x00000012u, 0x00006711u, 0x000089e6u, 0x00000003u, 0x00040072u, + 0x00000008u, 0x00006712u, 0x00006711u, 0x000200f9u, 0x0000671du, 0x000200f8u, 0x0000670bu, 0x00050051u, + 0x00000012u, 0x0000670du, 0x00006536u, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000670eu, 0x0000670du, + 0x000200f9u, 0x0000671du, 0x000200f8u, 0x00006706u, 0x00050051u, 0x0000000fu, 0x00006708u, 0x00002ad4u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x00006709u, 0x00006708u, 0x0004007cu, 0x00000008u, 0x0000670au, + 0x00006709u, 0x000200f9u, 0x0000671du, 0x000200f8u, 0x0000671du, 0x000f00f5u, 0x00000008u, 0x00008d51u, + 0x0000670au, 0x00006706u, 0x0000670eu, 0x0000670bu, 0x00006712u, 0x0000670fu, 0x00006716u, 0x00006713u, + 0x0000671bu, 0x00006717u, 0x00001ac7u, 0x0000671cu, 0x00050051u, 0x00000008u, 0x00006720u, 0x00008d50u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00006721u, 0x00008d50u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00006722u, 0x00008d50u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006723u, 0x00006720u, 0x00006721u, + 0x00006722u, 0x00008d51u, 0x000600cau, 0x00000009u, 0x0000672bu, 0x000066e2u, 0x00000225u, 0x00000265u, + 0x00050082u, 0x00000009u, 0x00006745u, 0x00006631u, 0x0000c211u, 0x000600cau, 0x00000009u, 0x00006746u, + 0x00006745u, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00006748u, 0x00006746u, 0x0000c211u, + 0x00050082u, 0x00000009u, 0x0000674du, 0x0000667du, 0x0000c211u, 0x000600cau, 0x00000009u, 0x0000674eu, + 0x0000674du, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00006750u, 0x0000674eu, 0x0000c211u, + 0x00050082u, 0x00000009u, 0x00006755u, 0x00006723u, 0x0000c211u, 0x000600cau, 0x00000009u, 0x00006756u, + 0x00006755u, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00006758u, 0x00006756u, 0x0000c211u, + 0x00050082u, 0x00000009u, 0x00006734u, 0x00006748u, 0x00006750u, 0x00050084u, 0x00000009u, 0x00006736u, + 0x00006734u, 0x0000672bu, 0x00050080u, 0x00000009u, 0x00006739u, 0x00006736u, 0x0000c211u, 0x000500c3u, + 0x00000009u, 0x0000673cu, 0x00006739u, 0x0000c21cu, 0x00040072u, 0x00000013u, 0x0000673du, 0x0000673cu, + 0x00040072u, 0x00000013u, 0x0000673fu, 0x00006758u, 0x00050080u, 0x00000013u, 0x00006740u, 0x0000673du, + 0x0000673fu, 0x00040072u, 0x00000009u, 0x000065c7u, 0x00006740u, 0x00050082u, 0x00000009u, 0x0000675du, + 0x000065c7u, 0x0000c211u, 0x000600cau, 0x00000009u, 0x0000675fu, 0x0000675du, 0x00000225u, 0x00000265u, + 0x00050080u, 0x00000009u, 0x00006762u, 0x0000675fu, 0x0000c211u, 0x0008000cu, 0x00000009u, 0x00006764u, + 0x00000001u, 0x0000002du, 0x00006762u, 0x00000b0du, 0x00000b0eu, 0x00040072u, 0x00000013u, 0x00006765u, + 0x00006764u, 0x00050051u, 0x00000012u, 0x000065cau, 0x00006765u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x000065cbu, 0x000065cau, 0x00050080u, 0x00000008u, 0x000065cfu, 0x000065cbu, 0x0000022fu, 0x000500c3u, + 0x00000008u, 0x000065d0u, 0x000065cfu, 0x00000262u, 0x00050080u, 0x00000008u, 0x000065d1u, 0x000065cbu, + 0x000065d0u, 0x000300f7u, 0x000065deu, 0x00000000u, 0x000400fau, 0x0000231cu, 0x000065d3u, 0x000065dbu, + 0x000200f8u, 0x000065dbu, 0x000500c4u, 0x00000008u, 0x000065ddu, 0x000023c4u, 0x0000023bu, 0x000200f9u, + 0x000065deu, 0x000200f8u, 0x000065d3u, 0x00050084u, 0x00000008u, 0x000065d6u, 0x000065d1u, 0x000023c4u, + 0x00050080u, 0x00000008u, 0x000065d7u, 0x000065d6u, 0x00000238u, 0x000500c3u, 0x00000008u, 0x000065d8u, + 0x000065d7u, 0x00000235u, 0x000500c3u, 0x00000008u, 0x000065dau, 0x000065d8u, 0x0000023bu, 0x000200f9u, + 0x000065deu, 0x000200f8u, 0x000065deu, 0x000700f5u, 0x00000008u, 0x00008d60u, 0x000065dau, 0x000065d3u, + 0x000023c4u, 0x000065dbu, 0x000700f5u, 0x00000008u, 0x00008d5bu, 0x000065d8u, 0x000065d3u, 0x000065ddu, + 0x000065dbu, 0x000300f7u, 0x000065e6u, 0x00000000u, 0x000400fau, 0x0000231fu, 0x000065e0u, 0x000065e2u, + 0x000200f8u, 0x000065e2u, 0x00050080u, 0x00000008u, 0x000065e5u, 0x000065d1u, 0x00008977u, 0x000200f9u, + 0x000065e6u, 0x000200f8u, 0x000065e0u, 0x000200f9u, 0x000065e6u, 0x000200f8u, 0x000065e6u, 0x000700f5u, + 0x00000008u, 0x00008d5cu, 0x00008d5bu, 0x000065e0u, 0x000065e5u, 0x000065e2u, 0x0008000cu, 0x00000008u, + 0x000065e8u, 0x00000001u, 0x0000002du, 0x00008d5cu, 0x00000225u, 0x00000363u, 0x00040072u, 0x00000012u, + 0x000065e9u, 0x000065e8u, 0x00060052u, 0x00000013u, 0x0000795bu, 0x000065e9u, 0x00006765u, 0x00000003u, + 0x00040072u, 0x00000b17u, 0x000024f4u, 0x0000795bu, 0x0004007cu, 0x00000010u, 0x000024f5u, 0x000024f4u, + 0x000200f9u, 0x00002512u, 0x000200f8u, 0x00002512u, 0x000700f5u, 0x00000010u, 0x00008d92u, 0x000024f5u, + 0x000065e6u, 0x0000250fu, 0x000067d4u, 0x000700f5u, 0x0000000fu, 0x00008d84u, 0x00008ceeu, 0x000065e6u, + 0x00002511u, 0x000067d4u, 0x000700f5u, 0x00000011u, 0x00008d62u, 0x00008d6du, 0x000065e6u, 0x00008865u, + 0x000067d4u, 0x000700f5u, 0x00000008u, 0x00008d61u, 0x00008d60u, 0x000065e6u, 0x00008cdfu, 0x000067d4u, + 0x000500aau, 0x00000069u, 0x00002515u, 0x00008d61u, 0x00000225u, 0x000500a7u, 0x00000069u, 0x00002516u, + 0x0000232eu, 0x00002515u, 0x000300f7u, 0x00002518u, 0x00000000u, 0x000400fau, 0x00002516u, 0x00002517u, + 0x00002518u, 0x000200f8u, 0x00002517u, 0x000200f9u, 0x0000253du, 0x000200f8u, 0x00002518u, 0x000300f7u, + 0x00002527u, 0x00000000u, 0x000400fau, 0x0000233du, 0x0000251au, 0x00002527u, 0x000200f8u, 0x0000251au, + 0x000300f7u, 0x00002521u, 0x00000000u, 0x000400fau, 0x00002340u, 0x0000251cu, 0x0000251eu, 0x000200f8u, + 0x0000251eu, 0x00050051u, 0x0000000fu, 0x00002520u, 0x00002ad8u, 0x00000003u, 0x000200f9u, 0x00002521u, + 0x000200f8u, 0x0000251cu, 0x000500c7u, 0x00000011u, 0x00006957u, 0x00008d62u, 0x00000350u, 0x00040071u, + 0x0000000fu, 0x00006958u, 0x00006957u, 0x000200f9u, 0x00002521u, 0x000200f8u, 0x00002521u, 0x000700f5u, + 0x0000000fu, 0x00008d90u, 0x00006958u, 0x0000251cu, 0x00002520u, 0x0000251eu, 0x000500b0u, 0x00000069u, + 0x00002524u, 0x00008d84u, 0x00008d90u, 0x000300f7u, 0x00002526u, 0x00000000u, 0x000400fau, 0x00002524u, + 0x00002525u, 0x00002526u, 0x000200f8u, 0x00002525u, 0x000200f9u, 0x0000253du, 0x000200f8u, 0x00002526u, + 0x000200f9u, 0x00002527u, 0x000200f8u, 0x00002527u, 0x000500c4u, 0x00000008u, 0x0000252bu, 0x00002d76u, + 0x00000265u, 0x000500c5u, 0x00000008u, 0x0000252du, 0x0000252bu, 0x0000896eu, 0x00040072u, 0x00000380u, + 0x00002530u, 0x00008d61u, 0x0004007cu, 0x0000000fu, 0x00002531u, 0x00002530u, 0x00050051u, 0x0000000fu, + 0x00002534u, 0x00002b26u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00002535u, 0x00002534u, 0x0004007cu, + 0x00000008u, 0x00002536u, 0x00002535u, 0x00050080u, 0x00000008u, 0x00002538u, 0x00002536u, 0x00008977u, + 0x0007000cu, 0x00000008u, 0x00002539u, 0x00000001u, 0x00000027u, 0x00002538u, 0x00000363u, 0x00040072u, + 0x00000380u, 0x0000253au, 0x00002539u, 0x0004007cu, 0x0000000fu, 0x0000253bu, 0x0000253au, 0x000200f9u, + 0x0000253du, 0x000200f8u, 0x0000253du, 0x001900f5u, 0x00000012u, 0x0000be33u, 0x00008aaeu, 0x000022d4u, + 0x00008aaeu, 0x000022f3u, 0x00008aaeu, 0x00002379u, 0x00008aaeu, 0x000023a4u, 0x00008aaeu, 0x000023a5u, + 0x00008aaeu, 0x000023b3u, 0x00008aaeu, 0x000023c1u, 0x00008aaeu, 0x000023cdu, 0x00008aa2u, 0x00002517u, + 0x00008aa2u, 0x00002525u, 0x00008aa2u, 0x00002527u, 0x001900f5u, 0x00000013u, 0x0000bda0u, 0x000089f5u, + 0x000022d4u, 0x000089f5u, 0x000022f3u, 0x000089f5u, 0x00002379u, 0x000089f5u, 0x000023a4u, 0x000089f5u, + 0x000023a5u, 0x000089f5u, 0x000023b3u, 0x000089f5u, 0x000023c1u, 0x000089f5u, 0x000023cdu, 0x000089e6u, + 0x00002517u, 0x000089e6u, 0x00002525u, 0x000089e6u, 0x00002527u, 0x001900f5u, 0x00000011u, 0x0000bd2eu, + 0x00008868u, 0x000022d4u, 0x00008868u, 0x000022f3u, 0x00008865u, 0x00002379u, 0x00008865u, 0x000023a4u, + 0x00008865u, 0x000023a5u, 0x00008865u, 0x000023b3u, 0x00008865u, 0x000023c1u, 0x00008865u, 0x000023cdu, + 0x00008d62u, 0x00002517u, 0x00008d62u, 0x00002525u, 0x00008d62u, 0x00002527u, 0x001900f5u, 0x00000013u, + 0x0000bc84u, 0x00008645u, 0x000022d4u, 0x00008645u, 0x000022f3u, 0x00008645u, 0x00002379u, 0x00008645u, + 0x000023a4u, 0x00008645u, 0x000023a5u, 0x00008645u, 0x000023b3u, 0x00008645u, 0x000023c1u, 0x00008645u, + 0x000023cdu, 0x0000bccdu, 0x00002517u, 0x0000bccdu, 0x00002525u, 0x0000bccdu, 0x00002527u, 0x001900f5u, + 0x00000013u, 0x0000bbdcu, 0x00008550u, 0x000022d4u, 0x00008550u, 0x000022f3u, 0x00008550u, 0x00002379u, + 0x00008550u, 0x000023a4u, 0x00008550u, 0x000023a5u, 0x00008550u, 0x000023b3u, 0x00008550u, 0x000023c1u, + 0x00008550u, 0x000023cdu, 0x0000bc25u, 0x00002517u, 0x0000bc25u, 0x00002525u, 0x0000bc25u, 0x00002527u, + 0x001900f5u, 0x00000013u, 0x0000bb34u, 0x00008455u, 0x000022d4u, 0x00008455u, 0x000022f3u, 0x00008455u, + 0x00002379u, 0x00008455u, 0x000023a4u, 0x00008455u, 0x000023a5u, 0x00008455u, 0x000023b3u, 0x00008455u, + 0x000023c1u, 0x00008455u, 0x000023cdu, 0x0000bb7du, 0x00002517u, 0x0000bb7du, 0x00002525u, 0x0000bb7du, + 0x00002527u, 0x001900f5u, 0x00000013u, 0x0000ba8cu, 0x000082e9u, 0x000022d4u, 0x000082e9u, 0x000022f3u, + 0x000082e9u, 0x00002379u, 0x000082e9u, 0x000023a4u, 0x000082e9u, 0x000023a5u, 0x000082e9u, 0x000023b3u, + 0x000082e9u, 0x000023c1u, 0x000082e9u, 0x000023cdu, 0x0000bad5u, 0x00002517u, 0x0000bad5u, 0x00002525u, + 0x0000bad5u, 0x00002527u, 0x001900f5u, 0x00000013u, 0x0000b9f9u, 0x000081ffu, 0x000022d4u, 0x000081ffu, + 0x000022f3u, 0x000081ffu, 0x00002379u, 0x000081ffu, 0x000023a4u, 0x000081ffu, 0x000023a5u, 0x000081ffu, + 0x000023b3u, 0x000081ffu, 0x000023c1u, 0x000081ffu, 0x000023cdu, 0x000081f2u, 0x00002517u, 0x000081f2u, + 0x00002525u, 0x000081f2u, 0x00002527u, 0x001900f5u, 0x00000013u, 0x0000b8d5u, 0x00007e32u, 0x000022d4u, + 0x00007e32u, 0x000022f3u, 0x00007e32u, 0x00002379u, 0x00007e32u, 0x000023a4u, 0x00007e32u, 0x000023a5u, + 0x00007e32u, 0x000023b3u, 0x00007e32u, 0x000023c1u, 0x00007e32u, 0x000023cdu, 0x0000b920u, 0x00002517u, + 0x0000b920u, 0x00002525u, 0x0000b920u, 0x00002527u, 0x001900f5u, 0x00000013u, 0x0000b7b3u, 0x00007db7u, + 0x000022d4u, 0x00007db7u, 0x000022f3u, 0x00007db7u, 0x00002379u, 0x00007db7u, 0x000023a4u, 0x00007db7u, + 0x000023a5u, 0x00007db7u, 0x000023b3u, 0x00007db7u, 0x000023c1u, 0x00007db7u, 0x000023cdu, 0x0000b7feu, + 0x00002517u, 0x0000b7feu, 0x00002525u, 0x0000b7feu, 0x00002527u, 0x001900f5u, 0x00000013u, 0x0000b691u, + 0x00007d36u, 0x000022d4u, 0x00007d36u, 0x000022f3u, 0x00007d36u, 0x00002379u, 0x00007d36u, 0x000023a4u, + 0x00007d36u, 0x000023a5u, 0x00007d36u, 0x000023b3u, 0x00007d36u, 0x000023c1u, 0x00007d36u, 0x000023cdu, + 0x0000b6dcu, 0x00002517u, 0x0000b6dcu, 0x00002525u, 0x0000b6dcu, 0x00002527u, 0x001900f5u, 0x00000013u, + 0x0000b56fu, 0x00007c43u, 0x000022d4u, 0x00007c43u, 0x000022f3u, 0x00007c43u, 0x00002379u, 0x00007c43u, + 0x000023a4u, 0x00007c43u, 0x000023a5u, 0x00007c43u, 0x000023b3u, 0x00007c43u, 0x000023c1u, 0x00007c43u, + 0x000023cdu, 0x0000b5bau, 0x00002517u, 0x0000b5bau, 0x00002525u, 0x0000b5bau, 0x00002527u, 0x001900f5u, + 0x000000f2u, 0x0000b3edu, 0x00007b50u, 0x000022d4u, 0x00007b50u, 0x000022f3u, 0x00007b50u, 0x00002379u, + 0x00007b50u, 0x000023a4u, 0x00007b50u, 0x000023a5u, 0x00007b50u, 0x000023b3u, 0x00007b50u, 0x000023c1u, + 0x00007b50u, 0x000023cdu, 0x00007b45u, 0x00002517u, 0x00007b45u, 0x00002525u, 0x00007b45u, 0x00002527u, + 0x001900f5u, 0x000000f2u, 0x0000b26bu, 0x00007b2cu, 0x000022d4u, 0x00007b2cu, 0x000022f3u, 0x00007b2cu, + 0x00002379u, 0x00007b2cu, 0x000023a4u, 0x00007b2cu, 0x000023a5u, 0x00007b2cu, 0x000023b3u, 0x00007b2cu, + 0x000023c1u, 0x00007b2cu, 0x000023cdu, 0x00007b21u, 0x00002517u, 0x00007b21u, 0x00002525u, 0x00007b21u, + 0x00002527u, 0x001900f5u, 0x00000044u, 0x0000b0ddu, 0x00007aa8u, 0x000022d4u, 0x00007aa8u, 0x000022f3u, + 0x00007aa8u, 0x00002379u, 0x00007aa8u, 0x000023a4u, 0x00007aa8u, 0x000023a5u, 0x00007aa8u, 0x000023b3u, + 0x00007aa8u, 0x000023c1u, 0x00007aa8u, 0x000023cdu, 0x00007aa2u, 0x00002517u, 0x00007aa2u, 0x00002525u, + 0x00007aa2u, 0x00002527u, 0x001900f5u, 0x00000044u, 0x0000af46u, 0x00007a99u, 0x000022d4u, 0x00007a99u, + 0x000022f3u, 0x00007a99u, 0x00002379u, 0x00007a99u, 0x000023a4u, 0x00007a99u, 0x000023a5u, 0x00007a99u, + 0x000023b3u, 0x00007a99u, 0x000023c1u, 0x00007a99u, 0x000023cdu, 0x00007a93u, 0x00002517u, 0x00007a93u, + 0x00002525u, 0x00007a93u, 0x00002527u, 0x001900f5u, 0x00000010u, 0x000091c8u, 0x000091cau, 0x000022d4u, + 0x000091cau, 0x000022f3u, 0x000091cau, 0x00002379u, 0x000091cau, 0x000023a4u, 0x000091cau, 0x000023a5u, + 0x000091cau, 0x000023b3u, 0x000091cau, 0x000023c1u, 0x000091cau, 0x000023cdu, 0x000091cau, 0x00002517u, + 0x000091cau, 0x00002525u, 0x00008d92u, 0x00002527u, 0x001900f5u, 0x00000008u, 0x00009085u, 0x00009087u, + 0x000022d4u, 0x00009087u, 0x000022f3u, 0x00009087u, 0x00002379u, 0x00008dd3u, 0x000023a4u, 0x00008dd3u, + 0x000023a5u, 0x00009087u, 0x000023b3u, 0x00009087u, 0x000023c1u, 0x00009087u, 0x000023cdu, 0x00009087u, + 0x00002517u, 0x00009087u, 0x00002525u, 0x0000252du, 0x00002527u, 0x001900f5u, 0x0000000fu, 0x00008f43u, + 0x00008f45u, 0x000022d4u, 0x00008f45u, 0x000022f3u, 0x00008f45u, 0x00002379u, 0x0000062bu, 0x000023a4u, + 0x0000062bu, 0x000023a5u, 0x0000062cu, 0x000023b3u, 0x00008f45u, 0x000023c1u, 0x00008f45u, 0x000023cdu, + 0x00008f45u, 0x00002517u, 0x00008f45u, 0x00002525u, 0x00002531u, 0x00002527u, 0x001900f5u, 0x0000000fu, + 0x00008dd6u, 0x00008dd8u, 0x000022d4u, 0x00008dd8u, 0x000022f3u, 0x00008dd8u, 0x00002379u, 0x00008dd8u, + 0x000023a4u, 0x00008dd8u, 0x000023a5u, 0x00008dd8u, 0x000023b3u, 0x00008dd8u, 0x000023c1u, 0x00008dd8u, + 0x000023cdu, 0x00008dd8u, 0x00002517u, 0x00008dd8u, 0x00002525u, 0x0000253bu, 0x00002527u, 0x001900f5u, + 0x00000069u, 0x00008dd5u, 0x0000053bu, 0x000022d4u, 0x0000053bu, 0x000022f3u, 0x0000053bu, 0x00002379u, + 0x0000053bu, 0x000023a4u, 0x0000055eu, 0x000023a5u, 0x000023b4u, 0x000023b3u, 0x0000053bu, 0x000023c1u, + 0x0000053bu, 0x000023cdu, 0x0000053bu, 0x00002517u, 0x0000053bu, 0x00002525u, 0x0000055eu, 0x00002527u, + 0x000300f7u, 0x000020e8u, 0x00000000u, 0x000400fau, 0x00008dd5u, 0x000020e7u, 0x000020e8u, 0x000200f8u, + 0x000020e7u, 0x00040071u, 0x00000006u, 0x000020ebu, 0x00008f43u, 0x0004007cu, 0x00000008u, 0x000020ecu, + 0x000020ebu, 0x000500c7u, 0x00000008u, 0x000020eeu, 0x000020ecu, 0x000020edu, 0x000500abu, 0x00000069u, + 0x000020efu, 0x000020eeu, 0x00000225u, 0x000300f7u, 0x000020f1u, 0x00000000u, 0x000400fau, 0x000020efu, + 0x000020f0u, 0x000020f7u, 0x000200f8u, 0x000020f7u, 0x000500c7u, 0x00000008u, 0x000020fcu, 0x000020ecu, + 0x0000115fu, 0x000500abu, 0x00000069u, 0x000020fdu, 0x000020fcu, 0x00000225u, 0x000300f7u, 0x000020ffu, + 0x00000000u, 0x000400fau, 0x000020fdu, 0x000020feu, 0x00002107u, 0x000200f8u, 0x00002107u, 0x000500c3u, + 0x00000008u, 0x00006af6u, 0x00009085u, 0x00000265u, 0x000500c7u, 0x00000008u, 0x00006af9u, 0x00009085u, + 0x00000a0cu, 0x00080041u, 0x00000676u, 0x00006b03u, 0x00000a1fu, 0x00000225u, 0x000020dcu, 0x00000225u, + 0x00000461u, 0x0004003du, 0x0000000fu, 0x00006b04u, 0x00006b03u, 0x00040071u, 0x00000006u, 0x00006b05u, + 0x00006b04u, 0x00060041u, 0x0000024cu, 0x00006ba8u, 0x0000024au, 0x00000225u, 0x000020dcu, 0x0004003du, + 0x00000246u, 0x00006ba9u, 0x00006ba8u, 0x00050051u, 0x00000010u, 0x00006bbau, 0x00006ba9u, 0x00000008u, + 0x00050051u, 0x00000010u, 0x00006bbcu, 0x00006ba9u, 0x00000009u, 0x00050051u, 0x00000011u, 0x00006bc0u, + 0x00006ba9u, 0x0000000bu, 0x00050051u, 0x0000000fu, 0x00006bc2u, 0x00006ba9u, 0x0000000cu, 0x00060041u, + 0x0000029du, 0x00006bcdu, 0x0000029bu, 0x00000225u, 0x00006b05u, 0x0004003du, 0x00000297u, 0x00006bceu, + 0x00006bcdu, 0x00050051u, 0x00000010u, 0x00006bcfu, 0x00006bceu, 0x00000000u, 0x00050051u, 0x00000010u, + 0x00006bd1u, 0x00006bceu, 0x00000001u, 0x00050051u, 0x00000006u, 0x00006bd3u, 0x00006bceu, 0x00000002u, + 0x00050051u, 0x0000000fu, 0x00006bd5u, 0x00006bceu, 0x00000003u, 0x00050051u, 0x0000000fu, 0x00006bd7u, + 0x00006bceu, 0x00000004u, 0x000500c7u, 0x00000006u, 0x00006b0cu, 0x00006bd3u, 0x00000319u, 0x000500abu, + 0x00000069u, 0x00006b0du, 0x00006b0cu, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00006b10u, 0x00006bd3u, + 0x00000461u, 0x000500abu, 0x00000069u, 0x00006b11u, 0x00006b10u, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x00006b14u, 0x00006bd3u, 0x0000038bu, 0x000500abu, 0x00000069u, 0x00006b15u, 0x00006b14u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00006b18u, 0x00006bd3u, 0x00000335u, 0x000500abu, 0x00000069u, 0x00006b19u, + 0x00006b18u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00006b1cu, 0x00006bd3u, 0x00000a43u, 0x000500abu, + 0x00000069u, 0x00006b1du, 0x00006b1cu, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00006b20u, 0x00006bd3u, + 0x00000a49u, 0x000500abu, 0x00000069u, 0x00006b21u, 0x00006b20u, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x00006b24u, 0x00006bd3u, 0x00000a4fu, 0x000500abu, 0x00000069u, 0x00006b25u, 0x00006b24u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00006b28u, 0x00006bd3u, 0x00000a55u, 0x000500abu, 0x00000069u, 0x00006b29u, + 0x00006b28u, 0x00000332u, 0x000300f7u, 0x00006be9u, 0x00000000u, 0x000400fau, 0x00006b19u, 0x00006be4u, + 0x00006be8u, 0x000200f8u, 0x00006be8u, 0x000200f9u, 0x00006be9u, 0x000200f8u, 0x00006be4u, 0x00050051u, + 0x0000000fu, 0x00006be6u, 0x00009337u, 0x00000003u, 0x000500c7u, 0x0000000fu, 0x00006be7u, 0x00006be6u, + 0x00000933u, 0x000200f9u, 0x00006be9u, 0x000200f8u, 0x00006be9u, 0x000700f5u, 0x0000000fu, 0x0000949fu, + 0x00006be7u, 0x00006be4u, 0x00000933u, 0x00006be8u, 0x000300f7u, 0x00006bfau, 0x00000000u, 0x000d00fbu, + 0x00000661u, 0x00006bfau, 0x00000000u, 0x00006bebu, 0x00000001u, 0x00006becu, 0x00000002u, 0x00006befu, + 0x00000003u, 0x00006bf4u, 0x00000004u, 0x00006bf7u, 0x000200f8u, 0x00006bf7u, 0x0008004fu, 0x00000047u, + 0x00006bf9u, 0x00009337u, 0x00009337u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006bfau, + 0x000200f8u, 0x00006bf4u, 0x0008004fu, 0x00000047u, 0x00006bf6u, 0x00009337u, 0x00009337u, 0x00000000u, + 0x00000000u, 0x00000000u, 0x000200f9u, 0x00006bfau, 0x000200f8u, 0x00006befu, 0x0008004fu, 0x00000047u, + 0x00006bf1u, 0x00009337u, 0x00009337u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, 0x00000047u, + 0x00006bf3u, 0x00006bf1u, 0x0000c225u, 0x000200f9u, 0x00006bfau, 0x000200f8u, 0x00006becu, 0x0008004fu, + 0x00000047u, 0x00006beeu, 0x00009337u, 0x00009337u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000200f9u, + 0x00006bfau, 0x000200f8u, 0x00006bebu, 0x000200f9u, 0x00006bfau, 0x000200f8u, 0x00006bfau, 0x000f00f5u, + 0x0000000fu, 0x00009612u, 0x0000949fu, 0x00006be9u, 0x00000933u, 0x00006bebu, 0x00000933u, 0x00006becu, + 0x0000949fu, 0x00006befu, 0x0000949fu, 0x00006bf4u, 0x0000949fu, 0x00006bf7u, 0x000f00f5u, 0x00000047u, + 0x000094a1u, 0x000094a5u, 0x00006be9u, 0x0000093eu, 0x00006bebu, 0x00006beeu, 0x00006becu, 0x00006bf3u, + 0x00006befu, 0x00006bf6u, 0x00006bf4u, 0x00006bf9u, 0x00006bf7u, 0x00050051u, 0x0000000fu, 0x00006bfdu, + 0x000094a1u, 0x00000000u, 0x00050051u, 0x0000000fu, 0x00006bfeu, 0x000094a1u, 0x00000001u, 0x00050051u, + 0x0000000fu, 0x00006bffu, 0x000094a1u, 0x00000002u, 0x00070050u, 0x00000010u, 0x00006c00u, 0x00006bfdu, + 0x00006bfeu, 0x00006bffu, 0x00009612u, 0x000500c2u, 0x0000000fu, 0x00006b2eu, 0x00009612u, 0x00000393u, + 0x00040071u, 0x00000006u, 0x00006b31u, 0x00006bc0u, 0x0004007cu, 0x00000008u, 0x00006b32u, 0x00006b31u, + 0x00040071u, 0x00000006u, 0x00006b35u, 0x00006bc2u, 0x0004007cu, 0x00000008u, 0x00006b36u, 0x00006b35u, + 0x00040071u, 0x00000006u, 0x00006b38u, 0x00006b2eu, 0x0004007cu, 0x00000008u, 0x00006b39u, 0x00006b38u, + 0x00040071u, 0x00000006u, 0x00006b3cu, 0x00006bd7u, 0x0004007cu, 0x00000008u, 0x00006b3du, 0x00006b3cu, + 0x00050080u, 0x00000008u, 0x00006c56u, 0x000020ecu, 0x00006b39u, 0x000500afu, 0x00000069u, 0x00006c57u, + 0x00006c56u, 0x00000262u, 0x000300f7u, 0x00006cc3u, 0x00000000u, 0x000400fau, 0x00006b11u, 0x00006c17u, + 0x00006cadu, 0x000200f8u, 0x00006cadu, 0x00050082u, 0x00000008u, 0x00006cb0u, 0x00000538u, 0x00006b36u, + 0x0007000cu, 0x00000008u, 0x00006cb1u, 0x00000001u, 0x00000027u, 0x00006cb0u, 0x00000238u, 0x00040072u, + 0x00000380u, 0x00006cb2u, 0x00006cb1u, 0x0004007cu, 0x0000000fu, 0x00006cb3u, 0x00006cb2u, 0x00050050u, + 0x0000006bu, 0x0000c234u, 0x0000038du, 0x00006cb3u, 0x000400a8u, 0x00000069u, 0x00006cbau, 0x00006b0du, + 0x000300f7u, 0x00006cc0u, 0x00000000u, 0x000400fau, 0x00006cbau, 0x00006cbbu, 0x00006cc0u, 0x000200f8u, + 0x00006cbbu, 0x000400a8u, 0x00000069u, 0x00006cbdu, 0x00006c57u, 0x000500a7u, 0x00000069u, 0x00006cbfu, + 0x00006cbdu, 0x00006b25u, 0x000200f9u, 0x00006cc0u, 0x000200f8u, 0x00006cc0u, 0x000700f5u, 0x00000069u, + 0x00006cc1u, 0x00006b0du, 0x00006cadu, 0x00006cbfu, 0x00006cbbu, 0x000200f9u, 0x00006cc3u, 0x000200f8u, + 0x00006c17u, 0x00040071u, 0x00000006u, 0x00006ccdu, 0x00009617u, 0x0004007cu, 0x00000008u, 0x00006cceu, + 0x00006ccdu, 0x000500c3u, 0x00000008u, 0x00006cd0u, 0x00006cceu, 0x0000026bu, 0x000500c7u, 0x00000008u, + 0x00006cd2u, 0x00006cceu, 0x000003dfu, 0x00050082u, 0x00000008u, 0x00006cd4u, 0x0000023eu, 0x00006cd0u, + 0x0007000cu, 0x00000008u, 0x00006cd5u, 0x00000001u, 0x0000002au, 0x00006cd4u, 0x00000225u, 0x000500c3u, + 0x00000008u, 0x00006cd7u, 0x000003e6u, 0x00006cd0u, 0x00050082u, 0x00000008u, 0x00006cd8u, 0x000003e6u, + 0x00006cd7u, 0x000500c4u, 0x00000008u, 0x00006cdbu, 0x00006cd2u, 0x00006cd5u, 0x00050080u, 0x00000008u, + 0x00006cddu, 0x00006cdbu, 0x00006cd8u, 0x00040071u, 0x00000006u, 0x00006c1bu, 0x00009783u, 0x0004007cu, + 0x00000008u, 0x00006c1cu, 0x00006c1bu, 0x000500c4u, 0x00000008u, 0x00006ce1u, 0x0000022fu, 0x00006c1cu, + 0x000500c7u, 0x00000008u, 0x00006c22u, 0x00006cd0u, 0x00000538u, 0x00050082u, 0x00000008u, 0x00006c27u, + 0x00006b36u, 0x00006c1cu, 0x0008000cu, 0x00000008u, 0x00006c28u, 0x00000001u, 0x0000002du, 0x00006c27u, + 0x00000225u, 0x00000238u, 0x00040072u, 0x00000380u, 0x00006c29u, 0x00006c28u, 0x0004007cu, 0x0000000fu, + 0x00006c2au, 0x00006c29u, 0x00050082u, 0x00000008u, 0x00006c30u, 0x00006c1cu, 0x00006b36u, 0x0008000cu, + 0x00000008u, 0x00006c31u, 0x00000001u, 0x0000002du, 0x00006c30u, 0x00000225u, 0x00000238u, 0x00040072u, + 0x00000380u, 0x00006c32u, 0x00006c31u, 0x0004007cu, 0x0000000fu, 0x00006c33u, 0x00006c32u, 0x00050050u, + 0x0000006bu, 0x0000c235u, 0x00006c2au, 0x00006c33u, 0x000500b1u, 0x00000069u, 0x00006c36u, 0x00006c22u, + 0x00000235u, 0x000300f7u, 0x00006c42u, 0x00000000u, 0x000400fau, 0x00006c36u, 0x00006c37u, 0x00006c42u, + 0x000200f8u, 0x00006c37u, 0x000500abu, 0x00000069u, 0x00006c39u, 0x00006ce1u, 0x00000553u, 0x000300f7u, + 0x00006c41u, 0x00000000u, 0x000400fau, 0x00006c39u, 0x00006c3au, 0x00006c40u, 0x000200f8u, 0x00006c40u, + 0x000200f9u, 0x00006c41u, 0x000200f8u, 0x00006c3au, 0x000500c4u, 0x00000008u, 0x00006c3cu, 0x00006ce1u, + 0x0000022fu, 0x000500c3u, 0x00000008u, 0x00006c3eu, 0x00000559u, 0x00006c22u, 0x0007000cu, 0x00000008u, + 0x00006c3fu, 0x00000001u, 0x0000002au, 0x00006c3cu, 0x00006c3eu, 0x000200f9u, 0x00006c41u, 0x000200f8u, + 0x00006c41u, 0x000700f5u, 0x00000008u, 0x00009a5fu, 0x00006c3fu, 0x00006c3au, 0x0000055fu, 0x00006c40u, + 0x000600a9u, 0x00000069u, 0x0000c25bu, 0x00006c39u, 0x0000053bu, 0x0000055eu, 0x000200f9u, 0x00006c42u, + 0x000200f8u, 0x00006c42u, 0x000700f5u, 0x00000069u, 0x00009a62u, 0x0000053bu, 0x00006c17u, 0x0000c25bu, + 0x00006c41u, 0x000700f5u, 0x00000008u, 0x00009a5eu, 0x00006ce1u, 0x00006c17u, 0x00009a5fu, 0x00006c41u, + 0x000500c5u, 0x00000008u, 0x00006c45u, 0x00006b32u, 0x00009a5eu, 0x000500abu, 0x00000069u, 0x00006ce5u, + 0x00006c45u, 0x00000225u, 0x000300f7u, 0x00006ceau, 0x00000000u, 0x000400fau, 0x00006ce5u, 0x00006ce6u, + 0x00006ceau, 0x000200f8u, 0x00006ce6u, 0x0006000cu, 0x00000008u, 0x00006ce8u, 0x00000001u, 0x0000004au, + 0x00006c45u, 0x000500c4u, 0x00000008u, 0x00006ce9u, 0x0000022fu, 0x00006ce8u, 0x000200f9u, 0x00006ceau, + 0x000200f8u, 0x00006ceau, 0x000700f5u, 0x00000008u, 0x00009a60u, 0x00006c45u, 0x00006c42u, 0x00006ce9u, + 0x00006ce6u, 0x000500c4u, 0x00000008u, 0x00006c49u, 0x00009a60u, 0x00000235u, 0x000400a8u, 0x00000069u, + 0x00006c4bu, 0x00009a62u, 0x000300f7u, 0x00006c52u, 0x00000000u, 0x000400fau, 0x00006c4bu, 0x00006c4cu, + 0x00006c52u, 0x000200f8u, 0x00006c4cu, 0x00050080u, 0x00000008u, 0x00006c4fu, 0x00006af6u, 0x00006c49u, + 0x000500afu, 0x00000069u, 0x00006c51u, 0x00006c4fu, 0x00006cddu, 0x000200f9u, 0x00006c52u, 0x000200f8u, + 0x00006c52u, 0x000700f5u, 0x00000069u, 0x00006c53u, 0x00009a62u, 0x00006ceau, 0x00006c51u, 0x00006c4cu, + 0x000400a8u, 0x00000069u, 0x00006c59u, 0x00006b0du, 0x000300f7u, 0x00006c61u, 0x00000000u, 0x000400fau, + 0x00006c59u, 0x00006c5au, 0x00006c61u, 0x000200f8u, 0x00006c5au, 0x000400a8u, 0x00000069u, 0x00006c5cu, + 0x00006c57u, 0x000500a7u, 0x00000069u, 0x00006c5eu, 0x00006c5cu, 0x00006b25u, 0x000500a7u, 0x00000069u, + 0x00006c60u, 0x00006c5eu, 0x00006c53u, 0x000200f9u, 0x00006c61u, 0x000200f8u, 0x00006c61u, 0x000700f5u, + 0x00000069u, 0x00006c62u, 0x00006b0du, 0x00006c52u, 0x00006c60u, 0x00006c5au, 0x000500aau, 0x00000069u, + 0x00006c65u, 0x00006cddu, 0x000003f2u, 0x000500b1u, 0x00000069u, 0x00006c68u, 0x00006af6u, 0x00006cddu, + 0x00050082u, 0x00000008u, 0x00006c6bu, 0x00006af6u, 0x00006c49u, 0x000500b3u, 0x00000069u, 0x00006c6fu, + 0x00006c6bu, 0x00006cddu, 0x000500a6u, 0x00000069u, 0x00006c70u, 0x00009a62u, 0x00006c6fu, 0x000300f7u, + 0x00006cacu, 0x00000000u, 0x000b00fbu, 0x00006b3du, 0x00006cacu, 0x00000000u, 0x00006c72u, 0x00000001u, + 0x00006c7cu, 0x00000002u, 0x00006ca1u, 0x00000003u, 0x00006ca5u, 0x000200f8u, 0x00006ca5u, 0x000500a7u, + 0x00000069u, 0x00006ca8u, 0x00006c53u, 0x00006c70u, 0x000400a8u, 0x00000069u, 0x00006caau, 0x00006c65u, + 0x000500a7u, 0x00000069u, 0x00006cabu, 0x00006ca8u, 0x00006caau, 0x000200f9u, 0x00006cacu, 0x000200f8u, + 0x00006ca1u, 0x000500a6u, 0x00000069u, 0x00006ca4u, 0x00006c68u, 0x00006c65u, 0x000200f9u, 0x00006cacu, + 0x000200f8u, 0x00006c7cu, 0x000400a8u, 0x00000069u, 0x00006c7eu, 0x00006c68u, 0x000400a8u, 0x00000069u, + 0x00006c80u, 0x00006c53u, 0x000500a6u, 0x00000069u, 0x00006c81u, 0x00006c7eu, 0x00006c80u, 0x000400a8u, + 0x00000069u, 0x00006c83u, 0x00006c57u, 0x000500a6u, 0x00000069u, 0x00006c84u, 0x00006c81u, 0x00006c83u, + 0x000300f7u, 0x00006ca0u, 0x00000000u, 0x000400fau, 0x00006c84u, 0x00006c85u, 0x00006c8fu, 0x000200f8u, + 0x00006c8fu, 0x000500c7u, 0x00000008u, 0x00006c91u, 0x00009a60u, 0x0000055fu, 0x0006000cu, 0x00000008u, + 0x00006cefu, 0x00000001u, 0x0000004au, 0x00006c91u, 0x0007000cu, 0x00000008u, 0x00006cf0u, 0x00000001u, + 0x0000002au, 0x00006cefu, 0x00000225u, 0x000500c3u, 0x00000008u, 0x00006c95u, 0x00006cddu, 0x00006cf0u, + 0x000500c3u, 0x00000008u, 0x00006c98u, 0x00006af6u, 0x00006cf0u, 0x00050082u, 0x00000008u, 0x00006c99u, + 0x00006c95u, 0x00006c98u, 0x000500c7u, 0x00000008u, 0x00006c9au, 0x00006c99u, 0x00000538u, 0x00050084u, + 0x00000008u, 0x00006c9du, 0x00006c9au, 0x000020ecu, 0x000500c3u, 0x00000008u, 0x00006c9eu, 0x00006c9du, + 0x00000235u, 0x0007000cu, 0x00000008u, 0x00006c9fu, 0x00000001u, 0x00000027u, 0x00006c9eu, 0x00000262u, + 0x000200f9u, 0x00006ca0u, 0x000200f8u, 0x00006c85u, 0x000400a8u, 0x00000069u, 0x00006c87u, 0x00006c65u, + 0x000300f7u, 0x00006c8du, 0x00000000u, 0x000400fau, 0x00006c87u, 0x00006c88u, 0x00006c8du, 0x000200f8u, + 0x00006c88u, 0x000600a9u, 0x00000069u, 0x00006c8cu, 0x00006c57u, 0x00006c68u, 0x00006c70u, 0x000200f9u, + 0x00006c8du, 0x000200f8u, 0x00006c8du, 0x000700f5u, 0x00000069u, 0x00006c8eu, 0x00006c65u, 0x00006c85u, + 0x00006c8cu, 0x00006c88u, 0x000200f9u, 0x00006ca0u, 0x000200f8u, 0x00006ca0u, 0x000700f5u, 0x00000008u, + 0x00009a73u, 0x000020ecu, 0x00006c8du, 0x00006c9fu, 0x00006c8fu, 0x000700f5u, 0x00000069u, 0x00009a6fu, + 0x00006c8eu, 0x00006c8du, 0x0000055eu, 0x00006c8fu, 0x000200f9u, 0x00006cacu, 0x000200f8u, 0x00006c72u, + 0x000400a8u, 0x00000069u, 0x00006c74u, 0x00006c65u, 0x000300f7u, 0x00006c7au, 0x00000000u, 0x000400fau, + 0x00006c74u, 0x00006c75u, 0x00006c7au, 0x000200f8u, 0x00006c75u, 0x000600a9u, 0x00000069u, 0x00006c79u, + 0x00006c57u, 0x00006c68u, 0x00006c70u, 0x000200f9u, 0x00006c7au, 0x000200f8u, 0x00006c7au, 0x000700f5u, + 0x00000069u, 0x00006c7bu, 0x00006c65u, 0x00006c72u, 0x00006c79u, 0x00006c75u, 0x000200f9u, 0x00006cacu, + 0x000200f8u, 0x00006cacu, 0x000d00f5u, 0x00000008u, 0x00009a71u, 0x000020ecu, 0x00006c61u, 0x000020ecu, + 0x00006c7au, 0x00009a73u, 0x00006ca0u, 0x000020ecu, 0x00006ca1u, 0x000020ecu, 0x00006ca5u, 0x000d00f5u, + 0x00000069u, 0x00009a6eu, 0x0000053bu, 0x00006c61u, 0x00006c7bu, 0x00006c7au, 0x00009a6fu, 0x00006ca0u, + 0x00006ca4u, 0x00006ca1u, 0x00006cabu, 0x00006ca5u, 0x000200f9u, 0x00006cc3u, 0x000200f8u, 0x00006cc3u, + 0x000700f5u, 0x0000006bu, 0x00009a80u, 0x0000c235u, 0x00006cacu, 0x0000c234u, 0x00006cc0u, 0x000700f5u, + 0x00000069u, 0x00009a76u, 0x00006c62u, 0x00006cacu, 0x00006cc1u, 0x00006cc0u, 0x000700f5u, 0x00000008u, + 0x00009a70u, 0x00009a71u, 0x00006cacu, 0x000020ecu, 0x00006cc0u, 0x000700f5u, 0x00000069u, 0x00009a6du, + 0x00009a6eu, 0x00006cacu, 0x0000055eu, 0x00006cc0u, 0x000300f7u, 0x00006b51u, 0x00000000u, 0x000400fau, + 0x00009a6du, 0x00006b4bu, 0x00006b51u, 0x000200f8u, 0x00006b4bu, 0x000400a8u, 0x00000069u, 0x00006b4du, + 0x00006b25u, 0x000500abu, 0x00000069u, 0x00006b4fu, 0x00009a70u, 0x00000225u, 0x000500a6u, 0x00000069u, + 0x00006b50u, 0x00006b4du, 0x00006b4fu, 0x000200f9u, 0x00006b51u, 0x000200f8u, 0x00006b51u, 0x000700f5u, + 0x00000069u, 0x00006b52u, 0x00009a6du, 0x00006cc3u, 0x00006b50u, 0x00006b4bu, 0x000300f7u, 0x00006ba3u, + 0x00000000u, 0x000400fau, 0x00006b52u, 0x00006b53u, 0x00006ba3u, 0x000200f8u, 0x00006b53u, 0x000300f7u, + 0x00006b70u, 0x00000000u, 0x000400fau, 0x00006b21u, 0x00006b5fu, 0x00006b70u, 0x000200f8u, 0x00006b5fu, + 0x00050051u, 0x0000000fu, 0x00006cfdu, 0x00006bcfu, 0x00000002u, 0x00040071u, 0x00000006u, 0x00006cfeu, + 0x00006cfdu, 0x0004007cu, 0x00000008u, 0x00006cffu, 0x00006cfeu, 0x000300f7u, 0x00006d10u, 0x00000000u, + 0x000b00fbu, 0x00006cffu, 0x00006d10u, 0x00000000u, 0x00006d00u, 0x00000001u, 0x00006d04u, 0x00000002u, + 0x00006d08u, 0x00000003u, 0x00006d0cu, 0x000200f8u, 0x00006d0cu, 0x0008004fu, 0x00000047u, 0x00006d0fu, + 0x00006bbau, 0x00006bbau, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006d10u, 0x000200f8u, + 0x00006d08u, 0x0008004fu, 0x00000047u, 0x00006d0bu, 0x00006bbcu, 0x00006bbcu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x00006d10u, 0x000200f8u, 0x00006d04u, 0x0008004fu, 0x00000047u, 0x00006d07u, + 0x00006c00u, 0x00006c00u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006d10u, 0x000200f8u, + 0x00006d00u, 0x0008004fu, 0x00000047u, 0x00006d03u, 0x000091c8u, 0x000091c8u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x00006d10u, 0x000200f8u, 0x00006d10u, 0x000d00f5u, 0x00000047u, 0x00009f22u, + 0x00009f2eu, 0x00006b5fu, 0x00006d03u, 0x00006d00u, 0x00006d07u, 0x00006d04u, 0x00006d0bu, 0x00006d08u, + 0x00006d0fu, 0x00006d0cu, 0x00050051u, 0x0000000fu, 0x00006d1cu, 0x00006bcfu, 0x00000000u, 0x00040071u, + 0x00000006u, 0x00006d1du, 0x00006d1cu, 0x0004007cu, 0x00000008u, 0x00006d1eu, 0x00006d1du, 0x000300f7u, + 0x00006d2fu, 0x00000000u, 0x000b00fbu, 0x00006d1eu, 0x00006d2fu, 0x00000000u, 0x00006d1fu, 0x00000001u, + 0x00006d23u, 0x00000002u, 0x00006d27u, 0x00000003u, 0x00006d2bu, 0x000200f8u, 0x00006d2bu, 0x0008004fu, + 0x00000047u, 0x00006d2eu, 0x00006bbau, 0x00006bbau, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006d2fu, 0x000200f8u, 0x00006d27u, 0x0008004fu, 0x00000047u, 0x00006d2au, 0x00006bbcu, 0x00006bbcu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006d2fu, 0x000200f8u, 0x00006d23u, 0x0008004fu, + 0x00000047u, 0x00006d26u, 0x00006c00u, 0x00006c00u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006d2fu, 0x000200f8u, 0x00006d1fu, 0x0008004fu, 0x00000047u, 0x00006d22u, 0x000091c8u, 0x000091c8u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006d2fu, 0x000200f8u, 0x00006d2fu, 0x000d00f5u, + 0x00000047u, 0x00009d99u, 0x00009da7u, 0x00006d10u, 0x00006d22u, 0x00006d1fu, 0x00006d26u, 0x00006d23u, + 0x00006d2au, 0x00006d27u, 0x00006d2eu, 0x00006d2bu, 0x00050051u, 0x0000000fu, 0x00006d50u, 0x00006bcfu, + 0x00000001u, 0x00040071u, 0x00000006u, 0x00006d51u, 0x00006d50u, 0x0004007cu, 0x00000008u, 0x00006d52u, + 0x00006d51u, 0x000300f7u, 0x00006d5du, 0x00000000u, 0x000b00fbu, 0x00006d52u, 0x00006d5du, 0x00000000u, + 0x00006d53u, 0x00000001u, 0x00006d56u, 0x00000002u, 0x00006d59u, 0x00000003u, 0x00006d5cu, 0x000200f8u, + 0x00006d5cu, 0x000200f9u, 0x00006d5du, 0x000200f8u, 0x00006d59u, 0x000200f9u, 0x00006d5du, 0x000200f8u, + 0x00006d56u, 0x00050051u, 0x0000000fu, 0x00006d58u, 0x00006bbau, 0x00000003u, 0x000200f9u, 0x00006d5du, + 0x000200f8u, 0x00006d53u, 0x00050051u, 0x0000000fu, 0x00006d55u, 0x000091c8u, 0x00000003u, 0x000200f9u, + 0x00006d5du, 0x000200f8u, 0x00006d5du, 0x000d00f5u, 0x0000000fu, 0x00009a8bu, 0x00009a9bu, 0x00006d2fu, + 0x00006d55u, 0x00006d53u, 0x00006d58u, 0x00006d56u, 0x00008dd6u, 0x00006d59u, 0x0000038du, 0x00006d5cu, + 0x00050051u, 0x0000000fu, 0x00006d5fu, 0x00006bcfu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006d60u, + 0x00006d5fu, 0x0004007cu, 0x00000008u, 0x00006d61u, 0x00006d60u, 0x000300f7u, 0x00006d6bu, 0x00000000u, + 0x000b00fbu, 0x00006d61u, 0x00006d6bu, 0x00000000u, 0x00006d62u, 0x00000001u, 0x00006d66u, 0x00000002u, + 0x00006d69u, 0x00000003u, 0x00006d6au, 0x000200f8u, 0x00006d6au, 0x000200f9u, 0x00006d6bu, 0x000200f8u, + 0x00006d69u, 0x000200f9u, 0x00006d6bu, 0x000200f8u, 0x00006d66u, 0x000200f9u, 0x00006d6bu, 0x000200f8u, + 0x00006d62u, 0x000400c8u, 0x0000000fu, 0x00006d64u, 0x00009a8bu, 0x000500c7u, 0x0000000fu, 0x00006d65u, + 0x00006d64u, 0x00000474u, 0x000200f9u, 0x00006d6bu, 0x000200f8u, 0x00006d6bu, 0x000d00f5u, 0x0000000fu, + 0x00009c10u, 0x00009c21u, 0x00006d5du, 0x00006d65u, 0x00006d62u, 0x00009612u, 0x00006d66u, 0x00000474u, + 0x00006d69u, 0x0000038du, 0x00006d6au, 0x000500c2u, 0x0000000fu, 0x00006d6du, 0x00009a8bu, 0x00000394u, + 0x000500c2u, 0x0000000fu, 0x00006d6fu, 0x00009c10u, 0x00000394u, 0x000500aau, 0x00000069u, 0x00006d74u, + 0x00006d61u, 0x0000022fu, 0x000300f7u, 0x00006d80u, 0x00000000u, 0x000400fau, 0x00006d74u, 0x00006d75u, + 0x00006d80u, 0x000200f8u, 0x00006d75u, 0x00050051u, 0x0000000fu, 0x00006d78u, 0x00009a80u, 0x00000000u, + 0x000500c2u, 0x0000000fu, 0x00006d79u, 0x00006d6du, 0x00006d78u, 0x000500c7u, 0x0000000fu, 0x00006d7au, + 0x00006d79u, 0x000004b4u, 0x00050051u, 0x0000000fu, 0x00006d7du, 0x00009a80u, 0x00000001u, 0x000500c2u, + 0x0000000fu, 0x00006d7eu, 0x00006d6fu, 0x00006d7du, 0x000500c5u, 0x0000000fu, 0x00006d7fu, 0x00006d7eu, + 0x00000394u, 0x000200f9u, 0x00006d80u, 0x000200f8u, 0x00006d80u, 0x000700f5u, 0x0000000fu, 0x0000a0a2u, + 0x00006d6fu, 0x00006d6bu, 0x00006d7fu, 0x00006d75u, 0x000700f5u, 0x0000000fu, 0x00009f1bu, 0x00006d6du, + 0x00006d6bu, 0x00006d7au, 0x00006d75u, 0x00040071u, 0x000004bfu, 0x00006d82u, 0x00009d99u, 0x0004007cu, + 0x000004bbu, 0x00006d83u, 0x00006d82u, 0x00040071u, 0x00000011u, 0x00006d85u, 0x00009f1bu, 0x0004007cu, + 0x00000012u, 0x00006d86u, 0x00006d85u, 0x00060050u, 0x000004bbu, 0x00006d87u, 0x00006d86u, 0x00006d86u, + 0x00006d86u, 0x00050084u, 0x000004bbu, 0x00006d88u, 0x00006d83u, 0x00006d87u, 0x00040071u, 0x000004bfu, + 0x00006d8au, 0x00009f22u, 0x0004007cu, 0x000004bbu, 0x00006d8bu, 0x00006d8au, 0x00040071u, 0x00000011u, + 0x00006d8du, 0x0000a0a2u, 0x0004007cu, 0x00000012u, 0x00006d8eu, 0x00006d8du, 0x00050080u, 0x00000012u, + 0x00006d8fu, 0x00006d8eu, 0x000004cdu, 0x00060050u, 0x000004bbu, 0x00006d90u, 0x00006d8fu, 0x00006d8fu, + 0x00006d8fu, 0x00050084u, 0x000004bbu, 0x00006d91u, 0x00006d8bu, 0x00006d90u, 0x00050080u, 0x000004bbu, + 0x00006d92u, 0x00006d88u, 0x00006d91u, 0x000500c3u, 0x000004bbu, 0x00006d9au, 0x00006d92u, 0x0000c22bu, + 0x00040072u, 0x00000381u, 0x00006d9bu, 0x00006d9au, 0x0004007cu, 0x00000047u, 0x00006d9cu, 0x00006d9bu, + 0x000500c7u, 0x00000047u, 0x00006dd2u, 0x00006d9cu, 0x0000c22cu, 0x00050051u, 0x0000000fu, 0x00006b69u, + 0x00006dd2u, 0x00000000u, 0x00060052u, 0x00000010u, 0x000079d5u, 0x00006b69u, 0x000091c8u, 0x00000000u, + 0x00050051u, 0x0000000fu, 0x00006b6bu, 0x00006dd2u, 0x00000001u, 0x00060052u, 0x00000010u, 0x000079d7u, + 0x00006b6bu, 0x000079d5u, 0x00000001u, 0x00050051u, 0x0000000fu, 0x00006b6du, 0x00006dd2u, 0x00000002u, + 0x00060052u, 0x00000010u, 0x000079d9u, 0x00006b6du, 0x000079d7u, 0x00000002u, 0x000200f9u, 0x00006b70u, + 0x000200f8u, 0x00006b70u, 0x000700f5u, 0x00000047u, 0x0000c14du, 0x00009f2eu, 0x00006b53u, 0x00009f22u, + 0x00006d80u, 0x000700f5u, 0x00000047u, 0x0000c126u, 0x00009da7u, 0x00006b53u, 0x00006d9cu, 0x00006d80u, + 0x000700f5u, 0x0000000fu, 0x0000c0feu, 0x00009c21u, 0x00006b53u, 0x0000a0a2u, 0x00006d80u, 0x000700f5u, + 0x0000000fu, 0x0000c0d6u, 0x00009a9bu, 0x00006b53u, 0x00009f1bu, 0x00006d80u, 0x000700f5u, 0x00000010u, + 0x0000a0b1u, 0x000091c8u, 0x00006b53u, 0x000079d9u, 0x00006d80u, 0x00070050u, 0x00000600u, 0x0000c25cu, + 0x00006b21u, 0x00006b21u, 0x00006b21u, 0x00006b21u, 0x000600a9u, 0x00000010u, 0x0000c25du, 0x0000c25cu, + 0x00006bd1u, 0x00006bcfu, 0x000300f7u, 0x00006eb7u, 0x00000000u, 0x000300fbu, 0x00000332u, 0x00006ddfu, + 0x000200f8u, 0x00006ddfu, 0x00050051u, 0x0000000fu, 0x00006de1u, 0x0000c25du, 0x00000002u, 0x00040071u, + 0x00000006u, 0x00006de2u, 0x00006de1u, 0x0004007cu, 0x00000008u, 0x00006de3u, 0x00006de2u, 0x000300f7u, + 0x00006df4u, 0x00000000u, 0x000b00fbu, 0x00006de3u, 0x00006df4u, 0x00000000u, 0x00006de4u, 0x00000001u, + 0x00006de8u, 0x00000002u, 0x00006decu, 0x00000003u, 0x00006df0u, 0x000200f8u, 0x00006df0u, 0x0008004fu, + 0x00000047u, 0x00006df3u, 0x00006bbau, 0x00006bbau, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006df4u, 0x000200f8u, 0x00006decu, 0x0008004fu, 0x00000047u, 0x00006defu, 0x00006bbcu, 0x00006bbcu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006df4u, 0x000200f8u, 0x00006de8u, 0x0008004fu, + 0x00000047u, 0x00006debu, 0x00006c00u, 0x00006c00u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006df4u, 0x000200f8u, 0x00006de4u, 0x0008004fu, 0x00000047u, 0x00006de7u, 0x0000a0b1u, 0x0000a0b1u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006df4u, 0x000200f8u, 0x00006df4u, 0x000d00f5u, + 0x00000047u, 0x0000a571u, 0x0000a57eu, 0x00006ddfu, 0x00006de7u, 0x00006de4u, 0x00006debu, 0x00006de8u, + 0x00006defu, 0x00006decu, 0x00006df3u, 0x00006df0u, 0x000400a8u, 0x00000069u, 0x00006df9u, 0x00006c57u, + 0x000500a7u, 0x00000069u, 0x00006dfau, 0x00006b1du, 0x00006df9u, 0x000300f7u, 0x00006dfdu, 0x00000000u, + 0x000400fau, 0x00006dfau, 0x00006dfbu, 0x00006dfdu, 0x000200f8u, 0x00006dfbu, 0x000200f9u, 0x00006eb7u, + 0x000200f8u, 0x00006dfdu, 0x00050051u, 0x0000000fu, 0x00006e00u, 0x0000c25du, 0x00000000u, 0x00040071u, + 0x00000006u, 0x00006e01u, 0x00006e00u, 0x0004007cu, 0x00000008u, 0x00006e02u, 0x00006e01u, 0x000300f7u, + 0x00006e13u, 0x00000000u, 0x000b00fbu, 0x00006e02u, 0x00006e13u, 0x00000000u, 0x00006e03u, 0x00000001u, + 0x00006e07u, 0x00000002u, 0x00006e0bu, 0x00000003u, 0x00006e0fu, 0x000200f8u, 0x00006e0fu, 0x0008004fu, + 0x00000047u, 0x00006e12u, 0x00006bbau, 0x00006bbau, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006e13u, 0x000200f8u, 0x00006e0bu, 0x0008004fu, 0x00000047u, 0x00006e0eu, 0x00006bbcu, 0x00006bbcu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006e13u, 0x000200f8u, 0x00006e07u, 0x0008004fu, + 0x00000047u, 0x00006e0au, 0x00006c00u, 0x00006c00u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006e13u, 0x000200f8u, 0x00006e03u, 0x0008004fu, 0x00000047u, 0x00006e06u, 0x0000a0b1u, 0x0000a0b1u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006e13u, 0x000200f8u, 0x00006e13u, 0x000d00f5u, + 0x00000047u, 0x0000a3dbu, 0x0000a3eau, 0x00006dfdu, 0x00006e06u, 0x00006e03u, 0x00006e0au, 0x00006e07u, + 0x00006e0eu, 0x00006e0bu, 0x00006e12u, 0x00006e0fu, 0x000400a8u, 0x00000069u, 0x00006e17u, 0x00009a76u, + 0x000400a8u, 0x00000069u, 0x00006e18u, 0x00006e17u, 0x000300f7u, 0x00006e2du, 0x00000000u, 0x000400fau, + 0x00006e18u, 0x00006e19u, 0x00006e2du, 0x000200f8u, 0x00006e19u, 0x00050051u, 0x0000000fu, 0x00006e1bu, + 0x0000c25du, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006e1cu, 0x00006e1bu, 0x0004007cu, 0x00000008u, + 0x00006e1du, 0x00006e1cu, 0x000500aau, 0x00000069u, 0x00006e1eu, 0x00006e1du, 0x00000225u, 0x000300f7u, + 0x00006e25u, 0x00000000u, 0x000400fau, 0x00006e1eu, 0x00006e1fu, 0x00006e25u, 0x000200f8u, 0x00006e1fu, + 0x00050051u, 0x0000000fu, 0x00006e21u, 0x0000c25du, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006e22u, + 0x00006e21u, 0x0004007cu, 0x00000008u, 0x00006e23u, 0x00006e22u, 0x000500aau, 0x00000069u, 0x00006e24u, + 0x00006e23u, 0x00000225u, 0x000200f9u, 0x00006e25u, 0x000200f8u, 0x00006e25u, 0x000700f5u, 0x00000069u, + 0x00006e26u, 0x00006e1eu, 0x00006e19u, 0x00006e24u, 0x00006e1fu, 0x000300f7u, 0x00006e2bu, 0x00000000u, + 0x000400fau, 0x00006e26u, 0x00006e27u, 0x00006e2bu, 0x000200f8u, 0x00006e27u, 0x00050051u, 0x0000000fu, + 0x00006e29u, 0x0000a0b1u, 0x00000003u, 0x000500aau, 0x00000069u, 0x00006e2au, 0x00006e29u, 0x00000474u, + 0x000200f9u, 0x00006e2bu, 0x000200f8u, 0x00006e2bu, 0x000700f5u, 0x00000069u, 0x00006e2cu, 0x00006e26u, + 0x00006e25u, 0x00006e2au, 0x00006e27u, 0x000200f9u, 0x00006e2du, 0x000200f8u, 0x00006e2du, 0x000700f5u, + 0x00000069u, 0x00006e2eu, 0x00006e17u, 0x00006e13u, 0x00006e2cu, 0x00006e2bu, 0x000300f7u, 0x00006e31u, + 0x00000000u, 0x000400fau, 0x00006e2eu, 0x00006e2fu, 0x00006e31u, 0x000200f8u, 0x00006e2fu, 0x000200f9u, + 0x00006eb7u, 0x000200f8u, 0x00006e31u, 0x00050051u, 0x0000000fu, 0x00006e34u, 0x0000c25du, 0x00000001u, + 0x00040071u, 0x00000006u, 0x00006e35u, 0x00006e34u, 0x0004007cu, 0x00000008u, 0x00006e36u, 0x00006e35u, + 0x000300f7u, 0x00006e41u, 0x00000000u, 0x000b00fbu, 0x00006e36u, 0x00006e41u, 0x00000000u, 0x00006e37u, + 0x00000001u, 0x00006e3au, 0x00000002u, 0x00006e3du, 0x00000003u, 0x00006e40u, 0x000200f8u, 0x00006e40u, + 0x000200f9u, 0x00006e41u, 0x000200f8u, 0x00006e3du, 0x000200f9u, 0x00006e41u, 0x000200f8u, 0x00006e3au, + 0x00050051u, 0x0000000fu, 0x00006e3cu, 0x00006bbau, 0x00000003u, 0x000200f9u, 0x00006e41u, 0x000200f8u, + 0x00006e37u, 0x00050051u, 0x0000000fu, 0x00006e39u, 0x0000a0b1u, 0x00000003u, 0x000200f9u, 0x00006e41u, + 0x000200f8u, 0x00006e41u, 0x000d00f5u, 0x0000000fu, 0x0000a0b3u, 0x0000a0c4u, 0x00006e31u, 0x00006e39u, + 0x00006e37u, 0x00006e3cu, 0x00006e3au, 0x00008dd6u, 0x00006e3du, 0x0000038du, 0x00006e40u, 0x00050051u, + 0x0000000fu, 0x00006e43u, 0x0000c25du, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006e44u, 0x00006e43u, + 0x0004007cu, 0x00000008u, 0x00006e45u, 0x00006e44u, 0x000300f7u, 0x00006e4fu, 0x00000000u, 0x000b00fbu, + 0x00006e45u, 0x00006e4fu, 0x00000000u, 0x00006e46u, 0x00000001u, 0x00006e4au, 0x00000002u, 0x00006e4du, + 0x00000003u, 0x00006e4eu, 0x000200f8u, 0x00006e4eu, 0x000200f9u, 0x00006e4fu, 0x000200f8u, 0x00006e4du, + 0x000200f9u, 0x00006e4fu, 0x000200f8u, 0x00006e4au, 0x000200f9u, 0x00006e4fu, 0x000200f8u, 0x00006e46u, + 0x000400c8u, 0x0000000fu, 0x00006e48u, 0x0000a0b3u, 0x000500c7u, 0x0000000fu, 0x00006e49u, 0x00006e48u, + 0x00000474u, 0x000200f9u, 0x00006e4fu, 0x000200f8u, 0x00006e4fu, 0x000d00f5u, 0x0000000fu, 0x0000a245u, + 0x0000a257u, 0x00006e41u, 0x00006e49u, 0x00006e46u, 0x00009612u, 0x00006e4au, 0x00000474u, 0x00006e4du, + 0x0000038du, 0x00006e4eu, 0x000500c2u, 0x0000000fu, 0x00006e51u, 0x0000a0b3u, 0x00000394u, 0x000500c2u, + 0x0000000fu, 0x00006e53u, 0x0000a245u, 0x00000394u, 0x000500aau, 0x00000069u, 0x00006e58u, 0x00006e45u, + 0x0000022fu, 0x000300f7u, 0x00006e64u, 0x00000000u, 0x000400fau, 0x00006e58u, 0x00006e59u, 0x00006e64u, + 0x000200f8u, 0x00006e59u, 0x00050051u, 0x0000000fu, 0x00006e5cu, 0x00009a80u, 0x00000000u, 0x000500c2u, + 0x0000000fu, 0x00006e5du, 0x00006e51u, 0x00006e5cu, 0x000500c7u, 0x0000000fu, 0x00006e5eu, 0x00006e5du, + 0x000004b4u, 0x00050051u, 0x0000000fu, 0x00006e61u, 0x00009a80u, 0x00000001u, 0x000500c2u, 0x0000000fu, + 0x00006e62u, 0x00006e53u, 0x00006e61u, 0x000500c5u, 0x0000000fu, 0x00006e63u, 0x00006e62u, 0x00000394u, + 0x000200f9u, 0x00006e64u, 0x000200f8u, 0x00006e64u, 0x000700f5u, 0x0000000fu, 0x0000a6feu, 0x00006e53u, + 0x00006e4fu, 0x00006e63u, 0x00006e59u, 0x000700f5u, 0x0000000fu, 0x0000a56au, 0x00006e51u, 0x00006e4fu, + 0x00006e5eu, 0x00006e59u, 0x00040071u, 0x000004bfu, 0x00006e66u, 0x0000a3dbu, 0x0004007cu, 0x000004bbu, + 0x00006e67u, 0x00006e66u, 0x00040071u, 0x00000011u, 0x00006e69u, 0x0000a56au, 0x0004007cu, 0x00000012u, + 0x00006e6au, 0x00006e69u, 0x00060050u, 0x000004bbu, 0x00006e6bu, 0x00006e6au, 0x00006e6au, 0x00006e6au, + 0x00050084u, 0x000004bbu, 0x00006e6cu, 0x00006e67u, 0x00006e6bu, 0x00040071u, 0x000004bfu, 0x00006e6eu, + 0x0000a571u, 0x0004007cu, 0x000004bbu, 0x00006e6fu, 0x00006e6eu, 0x00040071u, 0x00000011u, 0x00006e71u, + 0x0000a6feu, 0x0004007cu, 0x00000012u, 0x00006e72u, 0x00006e71u, 0x00050080u, 0x00000012u, 0x00006e73u, + 0x00006e72u, 0x000004cdu, 0x00060050u, 0x000004bbu, 0x00006e74u, 0x00006e73u, 0x00006e73u, 0x00006e73u, + 0x00050084u, 0x000004bbu, 0x00006e75u, 0x00006e6fu, 0x00006e74u, 0x00050080u, 0x000004bbu, 0x00006e76u, + 0x00006e6cu, 0x00006e75u, 0x000500a6u, 0x00000069u, 0x00006e7au, 0x0000053bu, 0x00006b0du, 0x000300f7u, + 0x00006eb3u, 0x00000000u, 0x000400fau, 0x00006e7au, 0x00006e7bu, 0x00006e81u, 0x000200f8u, 0x00006e81u, + 0x00040071u, 0x00000006u, 0x00006e83u, 0x0000a56au, 0x0004007cu, 0x00000008u, 0x00006e84u, 0x00006e83u, + 0x000500c3u, 0x00000008u, 0x00006e85u, 0x00006e84u, 0x00000232u, 0x00040071u, 0x00000006u, 0x00006e87u, + 0x0000a6feu, 0x0004007cu, 0x00000008u, 0x00006e88u, 0x00006e87u, 0x000500c3u, 0x00000008u, 0x00006e89u, + 0x00006e88u, 0x00000232u, 0x00050080u, 0x00000008u, 0x00006e8au, 0x00006e85u, 0x00006e89u, 0x00050080u, + 0x00000008u, 0x00006e8bu, 0x00006e8au, 0x0000022fu, 0x000500c3u, 0x000004bbu, 0x00006e8eu, 0x00006e76u, + 0x0000c22du, 0x000500c7u, 0x000004bbu, 0x00006e91u, 0x00006e8eu, 0x0000c22eu, 0x0004003du, 0x000004f2u, + 0x00006e92u, 0x000004f4u, 0x000500c4u, 0x00000008u, 0x00006e94u, 0x00006e8bu, 0x0000026bu, 0x00050051u, + 0x00000012u, 0x00006e96u, 0x00006e91u, 0x00000000u, 0x00040072u, 0x00000008u, 0x00006e97u, 0x00006e96u, + 0x000500c5u, 0x00000008u, 0x00006e98u, 0x00006e94u, 0x00006e97u, 0x0005005fu, 0x000004fcu, 0x00006e99u, + 0x00006e92u, 0x00006e98u, 0x00050051u, 0x00000006u, 0x00006e9au, 0x00006e99u, 0x00000000u, 0x00040071u, + 0x0000000fu, 0x00006e9bu, 0x00006e9au, 0x00050051u, 0x00000012u, 0x00006ea1u, 0x00006e91u, 0x00000001u, + 0x00040072u, 0x00000008u, 0x00006ea2u, 0x00006ea1u, 0x000500c5u, 0x00000008u, 0x00006ea3u, 0x00006e94u, + 0x00006ea2u, 0x0005005fu, 0x000004fcu, 0x00006ea4u, 0x00006e92u, 0x00006ea3u, 0x00050051u, 0x00000006u, + 0x00006ea5u, 0x00006ea4u, 0x00000000u, 0x00040071u, 0x0000000fu, 0x00006ea6u, 0x00006ea5u, 0x00050051u, + 0x00000012u, 0x00006eacu, 0x00006e91u, 0x00000002u, 0x00040072u, 0x00000008u, 0x00006eadu, 0x00006eacu, + 0x000500c5u, 0x00000008u, 0x00006eaeu, 0x00006e94u, 0x00006eadu, 0x0005005fu, 0x000004fcu, 0x00006eafu, + 0x00006e92u, 0x00006eaeu, 0x00050051u, 0x00000006u, 0x00006eb0u, 0x00006eafu, 0x00000000u, 0x00040071u, + 0x0000000fu, 0x00006eb1u, 0x00006eb0u, 0x00060050u, 0x00000047u, 0x0000c236u, 0x00006e9bu, 0x00006ea6u, + 0x00006eb1u, 0x000200f9u, 0x00006eb3u, 0x000200f8u, 0x00006e7bu, 0x000500c3u, 0x000004bbu, 0x00006e7eu, + 0x00006e76u, 0x0000c22bu, 0x00040072u, 0x00000381u, 0x00006e7fu, 0x00006e7eu, 0x0004007cu, 0x00000047u, + 0x00006e80u, 0x00006e7fu, 0x000200f9u, 0x00006eb3u, 0x000200f8u, 0x00006eb3u, 0x000700f5u, 0x00000047u, + 0x0000a6ffu, 0x00006e80u, 0x00006e7bu, 0x0000c236u, 0x00006e81u, 0x000500c7u, 0x00000047u, 0x00006eb6u, + 0x0000a6ffu, 0x0000c22cu, 0x000200f9u, 0x00006eb7u, 0x000200f8u, 0x00006eb7u, 0x000900f5u, 0x00000047u, + 0x0000c1a9u, 0x0000a3eau, 0x00006dfbu, 0x0000a3dbu, 0x00006e2fu, 0x0000a6ffu, 0x00006eb3u, 0x000900f5u, + 0x0000000fu, 0x0000c18eu, 0x0000a257u, 0x00006dfbu, 0x0000a257u, 0x00006e2fu, 0x0000a6feu, 0x00006eb3u, + 0x000900f5u, 0x0000000fu, 0x0000c173u, 0x0000a0c4u, 0x00006dfbu, 0x0000a0c4u, 0x00006e2fu, 0x0000a56au, + 0x00006eb3u, 0x000900f5u, 0x00000047u, 0x0000a700u, 0x0000a571u, 0x00006dfbu, 0x0000a3dbu, 0x00006e2fu, + 0x00006eb6u, 0x00006eb3u, 0x000300f7u, 0x00006b80u, 0x00000000u, 0x000400fau, 0x00006b29u, 0x00006b7au, + 0x00006b80u, 0x000200f8u, 0x00006b7au, 0x00040071u, 0x00000311u, 0x00006b7cu, 0x0000a700u, 0x0004007cu, + 0x00000044u, 0x00006b7du, 0x00006b7cu, 0x00060050u, 0x00000044u, 0x00006ec0u, 0x00006af9u, 0x00006af9u, + 0x00006af9u, 0x000500c3u, 0x00000044u, 0x00006ec1u, 0x00006ec0u, 0x00000358u, 0x000500c7u, 0x00000044u, + 0x00006ec3u, 0x00006ec1u, 0x0000c226u, 0x000500c7u, 0x00000044u, 0x00006ec6u, 0x00006b7du, 0x0000c227u, + 0x00050080u, 0x00000044u, 0x00006ec8u, 0x00006ec6u, 0x0000c228u, 0x000500adu, 0x00000368u, 0x00006ecau, + 0x00006b7du, 0x00000367u, 0x000600a9u, 0x00000044u, 0x00006ecbu, 0x00006ecau, 0x00000364u, 0x00006ec8u, + 0x000500c7u, 0x00000044u, 0x00006ecfu, 0x00006b7du, 0x0000c226u, 0x00050082u, 0x00000044u, 0x00006ed0u, + 0x00006ec3u, 0x00006ecfu, 0x000500c3u, 0x00000044u, 0x00006ed2u, 0x00006ed0u, 0x0000c229u, 0x00050082u, + 0x00000044u, 0x00006ed5u, 0x00006ecbu, 0x00006b7du, 0x000500c7u, 0x00000044u, 0x00006ed9u, 0x00006ed5u, + 0x00006ed2u, 0x00050080u, 0x00000044u, 0x00006edau, 0x00006b7du, 0x00006ed9u, 0x000500c7u, 0x00000044u, + 0x00006eddu, 0x00006edau, 0x00000364u, 0x00040072u, 0x00000381u, 0x00006edeu, 0x00006eddu, 0x0004007cu, + 0x00000047u, 0x00006edfu, 0x00006edeu, 0x000200f9u, 0x00006b80u, 0x000200f8u, 0x00006b80u, 0x000700f5u, + 0x00000047u, 0x0000a71fu, 0x0000a700u, 0x00006eb7u, 0x00006edfu, 0x00006b7au, 0x00040071u, 0x00000006u, + 0x00006b86u, 0x00006bd5u, 0x0004007cu, 0x00000008u, 0x00006b87u, 0x00006b86u, 0x000300f7u, 0x00006ef8u, + 0x00000000u, 0x000b00fbu, 0x00006b87u, 0x00006ef8u, 0x00000000u, 0x00006ee4u, 0x00000001u, 0x00006ef0u, + 0x00000002u, 0x00006ef5u, 0x00000003u, 0x00006ef6u, 0x000200f8u, 0x00006ef6u, 0x000200f9u, 0x00006ef8u, + 0x000200f8u, 0x00006ef5u, 0x000200f9u, 0x00006ef8u, 0x000200f8u, 0x00006ef0u, 0x00050080u, 0x00000008u, + 0x00006ef3u, 0x00009a70u, 0x00006b39u, 0x000500c7u, 0x00000008u, 0x00006ef4u, 0x00006ef3u, 0x00000241u, + 0x000200f9u, 0x00006ef8u, 0x000200f8u, 0x00006ee4u, 0x000300f7u, 0x00006eefu, 0x00000000u, 0x000400fau, + 0x00009a76u, 0x00006ee6u, 0x00006eebu, 0x000200f8u, 0x00006eebu, 0x00050082u, 0x00000008u, 0x00006eedu, + 0x00009a70u, 0x0000022fu, 0x000500c7u, 0x00000008u, 0x00006eeeu, 0x00006eedu, 0x00000241u, 0x000200f9u, + 0x00006eefu, 0x000200f8u, 0x00006ee6u, 0x00050080u, 0x00000008u, 0x00006ee9u, 0x00006b39u, 0x00009a70u, + 0x0007000cu, 0x00000008u, 0x00006eeau, 0x00000001u, 0x00000027u, 0x00000241u, 0x00006ee9u, 0x000200f9u, + 0x00006eefu, 0x000200f8u, 0x00006eefu, 0x000700f5u, 0x00000008u, 0x0000a71du, 0x00006eeau, 0x00006ee6u, + 0x00006eeeu, 0x00006eebu, 0x000200f9u, 0x00006ef8u, 0x000200f8u, 0x00006ef8u, 0x000d00f5u, 0x00000008u, + 0x0000a71cu, 0x00000225u, 0x00006b80u, 0x0000a71du, 0x00006eefu, 0x00006ef4u, 0x00006ef0u, 0x00000241u, + 0x00006ef5u, 0x00006b39u, 0x00006ef6u, 0x000500c4u, 0x00000008u, 0x00006b8du, 0x0000a71cu, 0x0000023bu, + 0x00040072u, 0x00000380u, 0x00006b8eu, 0x00006b8du, 0x0004007cu, 0x0000000fu, 0x00006b8fu, 0x00006b8eu, + 0x00050051u, 0x0000000fu, 0x00006b90u, 0x0000a71fu, 0x00000000u, 0x00050051u, 0x0000000fu, 0x00006b91u, + 0x0000a71fu, 0x00000001u, 0x00050051u, 0x0000000fu, 0x00006b92u, 0x0000a71fu, 0x00000002u, 0x00070050u, + 0x00000010u, 0x00006b93u, 0x00006b90u, 0x00006b91u, 0x00006b92u, 0x00006b8fu, 0x000300f7u, 0x00006f06u, + 0x00000000u, 0x000400fau, 0x00000958u, 0x00006efbu, 0x00006f04u, 0x000200f8u, 0x00006f04u, 0x000200f9u, + 0x00006f06u, 0x000200f8u, 0x00006efbu, 0x00060052u, 0x00000010u, 0x000079f1u, 0x00006b90u, 0x00009337u, + 0x00000000u, 0x00060052u, 0x00000010u, 0x000079f3u, 0x00006b91u, 0x000079f1u, 0x00000001u, 0x00060052u, + 0x00000010u, 0x000079f5u, 0x00006b92u, 0x000079f3u, 0x00000002u, 0x000200f9u, 0x00006f06u, 0x000200f8u, + 0x00006f06u, 0x000700f5u, 0x00000010u, 0x0000a74au, 0x000079f5u, 0x00006efbu, 0x00006b93u, 0x00006f04u, + 0x000300f7u, 0x00006ba2u, 0x00000000u, 0x000400fau, 0x00006b15u, 0x00006b96u, 0x00006b9eu, 0x000200f8u, + 0x00006b9eu, 0x000300f7u, 0x00006ba1u, 0x00000000u, 0x000400fau, 0x00000858u, 0x00006b9fu, 0x00006ba1u, + 0x000200f8u, 0x00006b9fu, 0x000300f7u, 0x00006f83u, 0x00000000u, 0x000700fbu, 0x00000661u, 0x00006f83u, + 0x00000002u, 0x00006f50u, 0x00000003u, 0x00006f6du, 0x000200f8u, 0x00006f6du, 0x0007004fu, 0x0000006bu, + 0x00006f6fu, 0x0000a74au, 0x0000a74au, 0x00000000u, 0x00000003u, 0x00040071u, 0x000000b4u, 0x00006f70u, + 0x00006f6fu, 0x00050051u, 0x00000006u, 0x00006f72u, 0x00006f70u, 0x00000000u, 0x000500c4u, 0x00000006u, + 0x00006f73u, 0x00006f72u, 0x00000319u, 0x00050051u, 0x00000006u, 0x00006f75u, 0x00006f70u, 0x00000001u, + 0x000500c5u, 0x00000006u, 0x00006f76u, 0x00006f73u, 0x00006f75u, 0x000500c7u, 0x00000006u, 0x00006f78u, + 0x00006f76u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00006f79u, 0x00006f78u, 0x00000469u, 0x000500c2u, + 0x00000006u, 0x00006f7bu, 0x00006f76u, 0x0000038bu, 0x00040071u, 0x00000011u, 0x00006f7cu, 0x00006f7bu, + 0x000500c7u, 0x00000006u, 0x00006f7eu, 0x00006f76u, 0x00000469u, 0x000500c4u, 0x00000006u, 0x00006f7fu, + 0x00006f7eu, 0x0000038bu, 0x000500c5u, 0x00000006u, 0x00006f81u, 0x00006f7fu, 0x00006f79u, 0x00040071u, + 0x0000000fu, 0x00006f82u, 0x00006f81u, 0x000200f9u, 0x00006f83u, 0x000200f8u, 0x00006f50u, 0x00050051u, + 0x0000000fu, 0x00006f52u, 0x0000a74au, 0x00000003u, 0x000500c2u, 0x0000000fu, 0x00006f53u, 0x00006f52u, + 0x00000394u, 0x00050051u, 0x0000000fu, 0x00006f55u, 0x0000a74au, 0x00000002u, 0x000500c7u, 0x0000000fu, + 0x00006f56u, 0x00006f55u, 0x00000626u, 0x000500c5u, 0x0000000fu, 0x00006f57u, 0x00006f53u, 0x00006f56u, + 0x00050051u, 0x0000000fu, 0x00006f59u, 0x0000a74au, 0x00000000u, 0x00040071u, 0x00000006u, 0x00006f5au, + 0x00006f59u, 0x000500c7u, 0x00000006u, 0x00006f5bu, 0x00006f5au, 0x000006a3u, 0x000500c4u, 0x00000006u, + 0x00006f5cu, 0x00006f5bu, 0x000006fcu, 0x00050051u, 0x0000000fu, 0x00006f5eu, 0x0000a74au, 0x00000001u, + 0x00040071u, 0x00000006u, 0x00006f5fu, 0x00006f5eu, 0x000500c7u, 0x00000006u, 0x00006f60u, 0x00006f5fu, + 0x000006a3u, 0x000500c4u, 0x00000006u, 0x00006f61u, 0x00006f60u, 0x00000461u, 0x000500c5u, 0x00000006u, + 0x00006f63u, 0x00006f5cu, 0x00006f61u, 0x00040071u, 0x00000006u, 0x00006f66u, 0x00006f55u, 0x000500c7u, + 0x00000006u, 0x00006f67u, 0x00006f66u, 0x000006a3u, 0x000500c2u, 0x00000006u, 0x00006f68u, 0x00006f67u, + 0x00000709u, 0x000500c5u, 0x00000006u, 0x00006f6au, 0x00006f63u, 0x00006f68u, 0x00040071u, 0x00000011u, + 0x00006f6cu, 0x00006f6au, 0x000200f9u, 0x00006f83u, 0x000200f8u, 0x00006f83u, 0x000900f5u, 0x0000000fu, + 0x0000c08bu, 0x00009783u, 0x00006b9fu, 0x00006f57u, 0x00006f50u, 0x00006f82u, 0x00006f6du, 0x000900f5u, + 0x00000011u, 0x0000c04du, 0x00009617u, 0x00006b9fu, 0x00006f6cu, 0x00006f50u, 0x00006f7cu, 0x00006f6du, + 0x000200f9u, 0x00006ba1u, 0x000200f8u, 0x00006ba1u, 0x000700f5u, 0x0000000fu, 0x0000c06du, 0x00009783u, + 0x00006b9eu, 0x0000c08bu, 0x00006f83u, 0x000700f5u, 0x00000011u, 0x0000c02fu, 0x00009617u, 0x00006b9eu, + 0x0000c04du, 0x00006f83u, 0x000200f9u, 0x00006ba2u, 0x000200f8u, 0x00006b96u, 0x00050082u, 0x00000008u, + 0x00006f0eu, 0x000003f2u, 0x00006af6u, 0x0007000cu, 0x00000008u, 0x00006f0fu, 0x00000001u, 0x0000002au, + 0x00006f0eu, 0x0000022fu, 0x0006000cu, 0x00000008u, 0x00006f11u, 0x00000001u, 0x0000004au, 0x00006f0fu, + 0x00050082u, 0x00000008u, 0x00006f12u, 0x000003f7u, 0x00006f11u, 0x0008000cu, 0x00000008u, 0x00006f14u, + 0x00000001u, 0x0000002du, 0x00006f12u, 0x00000225u, 0x00000241u, 0x00050082u, 0x00000008u, 0x00006f16u, + 0x0000023eu, 0x00006f14u, 0x0007000cu, 0x00000008u, 0x00006f17u, 0x00000001u, 0x0000002au, 0x00006f16u, + 0x00000225u, 0x000500c3u, 0x00000008u, 0x00006f1au, 0x00006af6u, 0x00006f17u, 0x000500c7u, 0x00000008u, + 0x00006f1bu, 0x00006f1au, 0x000003dfu, 0x000500c4u, 0x00000008u, 0x00006f1du, 0x00006f14u, 0x0000026bu, + 0x00050080u, 0x00000008u, 0x00006f1fu, 0x00006f1du, 0x00006f1bu, 0x00040072u, 0x00000012u, 0x00006f20u, + 0x00006f1fu, 0x0004007cu, 0x00000011u, 0x00006f21u, 0x00006f20u, 0x000300f7u, 0x00006b9du, 0x00000000u, + 0x000400fau, 0x00000858u, 0x00006b9bu, 0x00006b9du, 0x000200f8u, 0x00006b9bu, 0x00040071u, 0x00000006u, + 0x00006f25u, 0x00006f21u, 0x000500c4u, 0x00000006u, 0x00006f26u, 0x00006f25u, 0x00000709u, 0x000500c5u, + 0x00000006u, 0x00006f29u, 0x00006f26u, 0x00006b35u, 0x000300f7u, 0x00006f4au, 0x00000000u, 0x000700fbu, + 0x00000661u, 0x00006f4au, 0x00000002u, 0x00006f2au, 0x00000003u, 0x00006f3fu, 0x000200f8u, 0x00006f3fu, + 0x000500c2u, 0x00000006u, 0x00006f41u, 0x00006f29u, 0x00000736u, 0x000500c7u, 0x00000006u, 0x00006f42u, + 0x00006f41u, 0x000006c8u, 0x00040071u, 0x0000000fu, 0x00006f43u, 0x00006f42u, 0x00060052u, 0x00000010u, + 0x000079ffu, 0x00006f43u, 0x0000a74au, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006f46u, 0x00006f29u, + 0x0000038bu, 0x000500c7u, 0x00000006u, 0x00006f47u, 0x00006f46u, 0x000006c8u, 0x00040071u, 0x0000000fu, + 0x00006f48u, 0x00006f47u, 0x00060052u, 0x00000010u, 0x00007a01u, 0x00006f48u, 0x000079ffu, 0x00000003u, + 0x000200f9u, 0x00006f4au, 0x000200f8u, 0x00006f2au, 0x000500c2u, 0x00000006u, 0x00006f2cu, 0x00006f29u, + 0x00000736u, 0x000500c7u, 0x00000006u, 0x00006f2du, 0x00006f2cu, 0x000006a3u, 0x00040071u, 0x0000000fu, + 0x00006f2eu, 0x00006f2du, 0x000500c2u, 0x00000006u, 0x00006f31u, 0x00006f29u, 0x0000073cu, 0x000500c7u, + 0x00000006u, 0x00006f32u, 0x00006f31u, 0x000006a3u, 0x00040071u, 0x0000000fu, 0x00006f33u, 0x00006f32u, + 0x000500c2u, 0x00000006u, 0x00006f36u, 0x00006f29u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00006f37u, + 0x00006f36u, 0x000006a3u, 0x00040071u, 0x0000000fu, 0x00006f38u, 0x00006f37u, 0x000500c7u, 0x00000006u, + 0x00006f3bu, 0x00006f29u, 0x00000747u, 0x000500c4u, 0x00000006u, 0x00006f3cu, 0x00006f3bu, 0x0000073cu, + 0x00040071u, 0x0000000fu, 0x00006f3du, 0x00006f3cu, 0x00070050u, 0x00000010u, 0x0000c237u, 0x00006f2eu, + 0x00006f33u, 0x00006f38u, 0x00006f3du, 0x000200f9u, 0x00006f4au, 0x000200f8u, 0x00006f4au, 0x000900f5u, + 0x00000010u, 0x0000bfcfu, 0x0000a74au, 0x00006b9bu, 0x0000c237u, 0x00006f2au, 0x00007a01u, 0x00006f3fu, + 0x000200f9u, 0x00006b9du, 0x000200f8u, 0x00006b9du, 0x000700f5u, 0x00000010u, 0x0000bfceu, 0x0000a74au, + 0x00006b96u, 0x0000bfcfu, 0x00006f4au, 0x000200f9u, 0x00006ba2u, 0x000200f8u, 0x00006ba2u, 0x000700f5u, + 0x0000000fu, 0x0000c06au, 0x00006bc2u, 0x00006b9du, 0x0000c06du, 0x00006ba1u, 0x000700f5u, 0x00000011u, + 0x0000c02cu, 0x00006f21u, 0x00006b9du, 0x0000c02fu, 0x00006ba1u, 0x000700f5u, 0x00000010u, 0x0000bfcdu, + 0x0000bfceu, 0x00006b9du, 0x0000a74au, 0x00006ba1u, 0x000600a9u, 0x00000069u, 0x0000c25eu, 0x00006b15u, + 0x0000055eu, 0x0000abf2u, 0x000200f9u, 0x00006ba3u, 0x000200f8u, 0x00006ba3u, 0x000700f5u, 0x00000047u, + 0x0000c1bdu, 0x0000a57eu, 0x00006b51u, 0x0000a571u, 0x00006ba2u, 0x000700f5u, 0x00000047u, 0x0000c1a3u, + 0x0000a3eau, 0x00006b51u, 0x0000c1a9u, 0x00006ba2u, 0x000700f5u, 0x0000000fu, 0x0000c188u, 0x0000a257u, + 0x00006b51u, 0x0000c18eu, 0x00006ba2u, 0x000700f5u, 0x0000000fu, 0x0000c16du, 0x0000a0c4u, 0x00006b51u, + 0x0000c173u, 0x00006ba2u, 0x000700f5u, 0x00000047u, 0x0000c145u, 0x00009f2eu, 0x00006b51u, 0x0000c14du, + 0x00006ba2u, 0x000700f5u, 0x00000047u, 0x0000c11eu, 0x00009da7u, 0x00006b51u, 0x0000c126u, 0x00006ba2u, + 0x000700f5u, 0x0000000fu, 0x0000c0f6u, 0x00009c21u, 0x00006b51u, 0x0000c0feu, 0x00006ba2u, 0x000700f5u, + 0x0000000fu, 0x0000c0ceu, 0x00009a9bu, 0x00006b51u, 0x0000c0d6u, 0x00006ba2u, 0x000700f5u, 0x0000000fu, + 0x0000c05du, 0x00009783u, 0x00006b51u, 0x0000c06au, 0x00006ba2u, 0x000700f5u, 0x00000011u, 0x0000c01fu, + 0x00009617u, 0x00006b51u, 0x0000c02cu, 0x00006ba2u, 0x000700f5u, 0x00000010u, 0x0000bfccu, 0x00009337u, + 0x00006b51u, 0x0000bfcdu, 0x00006ba2u, 0x000700f5u, 0x00000069u, 0x0000ad6bu, 0x0000abf2u, 0x00006b51u, + 0x0000c25eu, 0x00006ba2u, 0x000600a9u, 0x00000069u, 0x0000c25fu, 0x00006b52u, 0x0000055eu, 0x0000aa6cu, + 0x000200f9u, 0x000020ffu, 0x000200f8u, 0x000020feu, 0x0004007cu, 0x00000006u, 0x00002102u, 0x00009085u, + 0x000300f7u, 0x00006a59u, 0x00000000u, 0x000900fbu, 0x00000661u, 0x00006a59u, 0x00000000u, 0x00006a3au, + 0x00000001u, 0x00006a3bu, 0x00000002u, 0x00006a42u, 0x000200f8u, 0x00006a42u, 0x000500c2u, 0x00000006u, + 0x00006a44u, 0x00002102u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00006a45u, 0x00006a44u, 0x000006a3u, + 0x000500c2u, 0x00000006u, 0x00006a47u, 0x00002102u, 0x00000235u, 0x000500c7u, 0x00000006u, 0x00006a48u, + 0x00006a47u, 0x000006a3u, 0x000500c4u, 0x00000006u, 0x00006a4au, 0x00002102u, 0x00000232u, 0x000500c7u, + 0x00000006u, 0x00006a4bu, 0x00006a4au, 0x000006a3u, 0x000500c7u, 0x00000006u, 0x00006a4du, 0x00002102u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00006a4eu, 0x00006a4du, 0x00000981u, 0x00040071u, 0x0000000fu, + 0x00006a50u, 0x00006a45u, 0x00040071u, 0x0000000fu, 0x00006a52u, 0x00006a48u, 0x00040071u, 0x0000000fu, + 0x00006a54u, 0x00006a4bu, 0x00040071u, 0x0000000fu, 0x00006a56u, 0x00006a4eu, 0x00070050u, 0x00000010u, + 0x00006a57u, 0x00006a50u, 0x00006a52u, 0x00006a54u, 0x00006a56u, 0x000300f7u, 0x00006a76u, 0x00000000u, + 0x000400fau, 0x00000958u, 0x00006a6bu, 0x00006a74u, 0x000200f8u, 0x00006a74u, 0x000200f9u, 0x00006a76u, + 0x000200f8u, 0x00006a6bu, 0x00060052u, 0x00000010u, 0x000079a8u, 0x00006a50u, 0x00009337u, 0x00000000u, + 0x00060052u, 0x00000010u, 0x000079aau, 0x00006a52u, 0x000079a8u, 0x00000001u, 0x00060052u, 0x00000010u, + 0x000079acu, 0x00006a54u, 0x000079aau, 0x00000002u, 0x000200f9u, 0x00006a76u, 0x000200f8u, 0x00006a76u, + 0x000700f5u, 0x00000010u, 0x0000a74du, 0x000079acu, 0x00006a6bu, 0x00006a57u, 0x00006a74u, 0x000200f9u, + 0x00006a59u, 0x000200f8u, 0x00006a3bu, 0x000500c7u, 0x00000006u, 0x00006a3du, 0x00002102u, 0x000006c8u, + 0x00040071u, 0x0000000fu, 0x00006a3fu, 0x00006a3du, 0x00070050u, 0x00000010u, 0x00006a40u, 0x00006a3fu, + 0x00006a3fu, 0x00006a3fu, 0x00006a3fu, 0x000300f7u, 0x00006a69u, 0x00000000u, 0x000400fau, 0x00000958u, + 0x00006a5eu, 0x00006a67u, 0x000200f8u, 0x00006a67u, 0x000200f9u, 0x00006a69u, 0x000200f8u, 0x00006a5eu, + 0x00060052u, 0x00000010u, 0x000079a2u, 0x00006a3fu, 0x00009337u, 0x00000000u, 0x00060052u, 0x00000010u, + 0x000079a4u, 0x00006a3fu, 0x000079a2u, 0x00000001u, 0x00060052u, 0x00000010u, 0x000079a6u, 0x00006a3fu, + 0x000079a4u, 0x00000002u, 0x000200f9u, 0x00006a69u, 0x000200f8u, 0x00006a69u, 0x000700f5u, 0x00000010u, + 0x0000a74cu, 0x000079a6u, 0x00006a5eu, 0x00006a40u, 0x00006a67u, 0x000200f9u, 0x00006a59u, 0x000200f8u, + 0x00006a3au, 0x000200f9u, 0x00006a59u, 0x000200f8u, 0x00006a59u, 0x000b00f5u, 0x00000069u, 0x0000abddu, + 0x0000aa6cu, 0x000020feu, 0x0000055eu, 0x00006a3au, 0x0000055eu, 0x00006a69u, 0x0000055eu, 0x00006a76u, + 0x000b00f5u, 0x00000010u, 0x0000a74bu, 0x00009337u, 0x000020feu, 0x00000618u, 0x00006a3au, 0x0000a74cu, + 0x00006a69u, 0x0000a74du, 0x00006a76u, 0x000300f7u, 0x00006a5cu, 0x00000000u, 0x000400fau, 0x00000858u, + 0x00006a5au, 0x00006a5cu, 0x000200f8u, 0x00006a5au, 0x000300f7u, 0x00006aafu, 0x00000000u, 0x000700fbu, + 0x00000661u, 0x00006aafu, 0x00000002u, 0x00006a7cu, 0x00000003u, 0x00006a99u, 0x000200f8u, 0x00006a99u, + 0x0007004fu, 0x0000006bu, 0x00006a9bu, 0x0000a74bu, 0x0000a74bu, 0x00000000u, 0x00000003u, 0x00040071u, + 0x000000b4u, 0x00006a9cu, 0x00006a9bu, 0x00050051u, 0x00000006u, 0x00006a9eu, 0x00006a9cu, 0x00000000u, + 0x000500c4u, 0x00000006u, 0x00006a9fu, 0x00006a9eu, 0x00000319u, 0x00050051u, 0x00000006u, 0x00006aa1u, + 0x00006a9cu, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00006aa2u, 0x00006a9fu, 0x00006aa1u, 0x000500c7u, + 0x00000006u, 0x00006aa4u, 0x00006aa2u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00006aa5u, 0x00006aa4u, + 0x00000469u, 0x000500c2u, 0x00000006u, 0x00006aa7u, 0x00006aa2u, 0x0000038bu, 0x00040071u, 0x00000011u, + 0x00006aa8u, 0x00006aa7u, 0x000500c7u, 0x00000006u, 0x00006aaau, 0x00006aa2u, 0x00000469u, 0x000500c4u, + 0x00000006u, 0x00006aabu, 0x00006aaau, 0x0000038bu, 0x000500c5u, 0x00000006u, 0x00006aadu, 0x00006aabu, + 0x00006aa5u, 0x00040071u, 0x0000000fu, 0x00006aaeu, 0x00006aadu, 0x000200f9u, 0x00006aafu, 0x000200f8u, + 0x00006a7cu, 0x00050051u, 0x0000000fu, 0x00006a7eu, 0x0000a74bu, 0x00000003u, 0x000500c2u, 0x0000000fu, + 0x00006a7fu, 0x00006a7eu, 0x00000394u, 0x00050051u, 0x0000000fu, 0x00006a81u, 0x0000a74bu, 0x00000002u, + 0x000500c7u, 0x0000000fu, 0x00006a82u, 0x00006a81u, 0x00000626u, 0x000500c5u, 0x0000000fu, 0x00006a83u, + 0x00006a7fu, 0x00006a82u, 0x00050051u, 0x0000000fu, 0x00006a85u, 0x0000a74bu, 0x00000000u, 0x00040071u, + 0x00000006u, 0x00006a86u, 0x00006a85u, 0x000500c7u, 0x00000006u, 0x00006a87u, 0x00006a86u, 0x000006a3u, + 0x000500c4u, 0x00000006u, 0x00006a88u, 0x00006a87u, 0x000006fcu, 0x00050051u, 0x0000000fu, 0x00006a8au, + 0x0000a74bu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006a8bu, 0x00006a8au, 0x000500c7u, 0x00000006u, + 0x00006a8cu, 0x00006a8bu, 0x000006a3u, 0x000500c4u, 0x00000006u, 0x00006a8du, 0x00006a8cu, 0x00000461u, + 0x000500c5u, 0x00000006u, 0x00006a8fu, 0x00006a88u, 0x00006a8du, 0x00040071u, 0x00000006u, 0x00006a92u, + 0x00006a81u, 0x000500c7u, 0x00000006u, 0x00006a93u, 0x00006a92u, 0x000006a3u, 0x000500c2u, 0x00000006u, + 0x00006a94u, 0x00006a93u, 0x00000709u, 0x000500c5u, 0x00000006u, 0x00006a96u, 0x00006a8fu, 0x00006a94u, + 0x00040071u, 0x00000011u, 0x00006a98u, 0x00006a96u, 0x000200f9u, 0x00006aafu, 0x000200f8u, 0x00006aafu, + 0x000900f5u, 0x0000000fu, 0x0000c05cu, 0x00009783u, 0x00006a5au, 0x00006a83u, 0x00006a7cu, 0x00006aaeu, + 0x00006a99u, 0x000900f5u, 0x00000011u, 0x0000c01eu, 0x00009617u, 0x00006a5au, 0x00006a98u, 0x00006a7cu, + 0x00006aa8u, 0x00006a99u, 0x000200f9u, 0x00006a5cu, 0x000200f8u, 0x00006a5cu, 0x000700f5u, 0x0000000fu, + 0x0000c058u, 0x00009783u, 0x00006a59u, 0x0000c05cu, 0x00006aafu, 0x000700f5u, 0x00000011u, 0x0000c01au, + 0x00009617u, 0x00006a59u, 0x0000c01eu, 0x00006aafu, 0x000200f9u, 0x000020ffu, 0x000200f8u, 0x000020ffu, + 0x000700f5u, 0x00000047u, 0x0000c1b7u, 0x0000a57eu, 0x00006a5cu, 0x0000c1bdu, 0x00006ba3u, 0x000700f5u, + 0x00000047u, 0x0000c19du, 0x0000a3eau, 0x00006a5cu, 0x0000c1a3u, 0x00006ba3u, 0x000700f5u, 0x0000000fu, + 0x0000c182u, 0x0000a257u, 0x00006a5cu, 0x0000c188u, 0x00006ba3u, 0x000700f5u, 0x0000000fu, 0x0000c167u, + 0x0000a0c4u, 0x00006a5cu, 0x0000c16du, 0x00006ba3u, 0x000700f5u, 0x00000047u, 0x0000c13fu, 0x00009f2eu, + 0x00006a5cu, 0x0000c145u, 0x00006ba3u, 0x000700f5u, 0x00000047u, 0x0000c118u, 0x00009da7u, 0x00006a5cu, + 0x0000c11eu, 0x00006ba3u, 0x000700f5u, 0x0000000fu, 0x0000c0f0u, 0x00009c21u, 0x00006a5cu, 0x0000c0f6u, + 0x00006ba3u, 0x000700f5u, 0x0000000fu, 0x0000c0c8u, 0x00009a9bu, 0x00006a5cu, 0x0000c0ceu, 0x00006ba3u, + 0x000700f5u, 0x0000000fu, 0x0000c057u, 0x0000c058u, 0x00006a5cu, 0x0000c05du, 0x00006ba3u, 0x000700f5u, + 0x00000011u, 0x0000c019u, 0x0000c01au, 0x00006a5cu, 0x0000c01fu, 0x00006ba3u, 0x000700f5u, 0x00000047u, + 0x0000bfdbu, 0x000094a5u, 0x00006a5cu, 0x000094a1u, 0x00006ba3u, 0x000700f5u, 0x00000010u, 0x0000bfc9u, + 0x0000a74bu, 0x00006a5cu, 0x0000bfccu, 0x00006ba3u, 0x000700f5u, 0x00000069u, 0x0000ad65u, 0x0000abf2u, + 0x00006a5cu, 0x0000ad6bu, 0x00006ba3u, 0x000700f5u, 0x00000069u, 0x0000abdbu, 0x0000abddu, 0x00006a5cu, + 0x0000c25fu, 0x00006ba3u, 0x000200f9u, 0x000020f1u, 0x000200f8u, 0x000020f0u, 0x00070041u, 0x000006deu, + 0x000020f4u, 0x0000024au, 0x00000225u, 0x000020dcu, 0x00000268u, 0x0004003du, 0x00000006u, 0x000020f5u, + 0x000020f4u, 0x000300f7u, 0x000069c2u, 0x00000000u, 0x000b00fbu, 0x00000661u, 0x000069c2u, 0x00000004u, + 0x00006968u, 0x00000002u, 0x0000697fu, 0x00000003u, 0x0000699cu, 0x00000001u, 0x000069b5u, 0x000200f8u, + 0x000069b5u, 0x000500c7u, 0x00000006u, 0x000069b7u, 0x0000a752u, 0x00000469u, 0x000500c6u, 0x00000006u, + 0x000069b8u, 0x000069b7u, 0x00000469u, 0x00050084u, 0x00000006u, 0x000069b9u, 0x000069b8u, 0x00000319u, + 0x000500c2u, 0x00000006u, 0x000069bbu, 0x000020f5u, 0x000069b9u, 0x000500c7u, 0x00000006u, 0x000069bdu, + 0x000069bbu, 0x000006c8u, 0x00040071u, 0x0000000fu, 0x000069bfu, 0x000069bdu, 0x00070050u, 0x00000010u, + 0x000069c0u, 0x000069bfu, 0x000069bfu, 0x000069bfu, 0x000069bfu, 0x000300f7u, 0x000069f9u, 0x00000000u, + 0x000400fau, 0x00000958u, 0x000069eeu, 0x000069f7u, 0x000200f8u, 0x000069f7u, 0x000200f9u, 0x000069f9u, + 0x000200f8u, 0x000069eeu, 0x00060052u, 0x00000010u, 0x00007995u, 0x000069bfu, 0x00009337u, 0x00000000u, + 0x00060052u, 0x00000010u, 0x00007997u, 0x000069bfu, 0x00007995u, 0x00000001u, 0x00060052u, 0x00000010u, + 0x00007999u, 0x000069bfu, 0x00007997u, 0x00000002u, 0x000200f9u, 0x000069f9u, 0x000200f8u, 0x000069f9u, + 0x000700f5u, 0x00000010u, 0x0000a8c1u, 0x00007999u, 0x000069eeu, 0x000069c0u, 0x000069f7u, 0x000200f9u, + 0x000069c2u, 0x000200f8u, 0x0000699cu, 0x000500c7u, 0x00000006u, 0x0000699eu, 0x0000a752u, 0x00000461u, + 0x000500c6u, 0x00000006u, 0x0000699fu, 0x0000699eu, 0x00000461u, 0x00050084u, 0x00000006u, 0x000069a0u, + 0x0000699fu, 0x00000335u, 0x000500c2u, 0x00000006u, 0x000069a2u, 0x000020f5u, 0x000069a0u, 0x000500c7u, + 0x00000006u, 0x000069a4u, 0x000069a2u, 0x000009dcu, 0x000500c2u, 0x00000006u, 0x000069a6u, 0x000069a4u, + 0x00000319u, 0x000500c7u, 0x00000006u, 0x000069a7u, 0x000069a6u, 0x000006c8u, 0x000500c2u, 0x00000006u, + 0x000069a9u, 0x000069a4u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x000069aau, 0x000069a9u, 0x000006c8u, + 0x00040071u, 0x0000000fu, 0x000069acu, 0x000069a7u, 0x00040071u, 0x0000000fu, 0x000069b2u, 0x000069aau, + 0x00070050u, 0x00000010u, 0x000069b3u, 0x000069acu, 0x000069acu, 0x000069acu, 0x000069b2u, 0x000300f7u, + 0x000069ecu, 0x00000000u, 0x000400fau, 0x00000958u, 0x000069e1u, 0x000069eau, 0x000200f8u, 0x000069eau, + 0x000200f9u, 0x000069ecu, 0x000200f8u, 0x000069e1u, 0x00060052u, 0x00000010u, 0x0000798fu, 0x000069acu, + 0x00009337u, 0x00000000u, 0x00060052u, 0x00000010u, 0x00007991u, 0x000069acu, 0x0000798fu, 0x00000001u, + 0x00060052u, 0x00000010u, 0x00007993u, 0x000069acu, 0x00007991u, 0x00000002u, 0x000200f9u, 0x000069ecu, + 0x000200f8u, 0x000069ecu, 0x000700f5u, 0x00000010u, 0x0000a8c0u, 0x00007993u, 0x000069e1u, 0x000069b3u, + 0x000069eau, 0x000200f9u, 0x000069c2u, 0x000200f8u, 0x0000697fu, 0x000500c7u, 0x00000006u, 0x00006981u, + 0x0000a752u, 0x00000461u, 0x000500c6u, 0x00000006u, 0x00006982u, 0x00006981u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00006983u, 0x00006982u, 0x00000335u, 0x000500c2u, 0x00000006u, 0x00006985u, 0x000020f5u, + 0x00006983u, 0x000500c2u, 0x00000006u, 0x00006987u, 0x00006985u, 0x00000319u, 0x000500c7u, 0x00000006u, + 0x00006988u, 0x00006987u, 0x000006a3u, 0x000500c2u, 0x00000006u, 0x0000698au, 0x00006985u, 0x00000469u, + 0x000500c7u, 0x00000006u, 0x0000698bu, 0x0000698au, 0x000006a3u, 0x000500c4u, 0x00000006u, 0x0000698du, + 0x00006985u, 0x0000038bu, 0x000500c7u, 0x00000006u, 0x0000698eu, 0x0000698du, 0x000006a3u, 0x000500c7u, + 0x00000006u, 0x00006990u, 0x00006985u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00006991u, 0x00006990u, + 0x00000981u, 0x00040071u, 0x0000000fu, 0x00006993u, 0x00006988u, 0x00040071u, 0x0000000fu, 0x00006995u, + 0x0000698bu, 0x00040071u, 0x0000000fu, 0x00006997u, 0x0000698eu, 0x00040071u, 0x0000000fu, 0x00006999u, + 0x00006991u, 0x00070050u, 0x00000010u, 0x0000699au, 0x00006993u, 0x00006995u, 0x00006997u, 0x00006999u, + 0x000300f7u, 0x000069dfu, 0x00000000u, 0x000400fau, 0x00000958u, 0x000069d4u, 0x000069ddu, 0x000200f8u, + 0x000069ddu, 0x000200f9u, 0x000069dfu, 0x000200f8u, 0x000069d4u, 0x00060052u, 0x00000010u, 0x00007989u, + 0x00006993u, 0x00009337u, 0x00000000u, 0x00060052u, 0x00000010u, 0x0000798bu, 0x00006995u, 0x00007989u, + 0x00000001u, 0x00060052u, 0x00000010u, 0x0000798du, 0x00006997u, 0x0000798bu, 0x00000002u, 0x000200f9u, + 0x000069dfu, 0x000200f8u, 0x000069dfu, 0x000700f5u, 0x00000010u, 0x0000a8bfu, 0x0000798du, 0x000069d4u, + 0x0000699au, 0x000069ddu, 0x000200f9u, 0x000069c2u, 0x000200f8u, 0x00006968u, 0x000500c2u, 0x00000006u, + 0x0000696au, 0x000020f5u, 0x000006e3u, 0x000500c7u, 0x00000006u, 0x0000696bu, 0x0000696au, 0x000006c8u, + 0x000500c2u, 0x00000006u, 0x0000696du, 0x000020f5u, 0x00000335u, 0x000500c7u, 0x00000006u, 0x0000696eu, + 0x0000696du, 0x000006c8u, 0x000500c2u, 0x00000006u, 0x00006970u, 0x000020f5u, 0x00000319u, 0x000500c7u, + 0x00000006u, 0x00006971u, 0x00006970u, 0x000006c8u, 0x000500c2u, 0x00000006u, 0x00006973u, 0x000020f5u, + 0x00000332u, 0x000500c7u, 0x00000006u, 0x00006974u, 0x00006973u, 0x000006c8u, 0x00040071u, 0x0000000fu, + 0x00006976u, 0x0000696bu, 0x00040071u, 0x0000000fu, 0x00006978u, 0x0000696eu, 0x00040071u, 0x0000000fu, + 0x0000697au, 0x00006971u, 0x00040071u, 0x0000000fu, 0x0000697cu, 0x00006974u, 0x00070050u, 0x00000010u, + 0x0000697du, 0x00006976u, 0x00006978u, 0x0000697au, 0x0000697cu, 0x000300f7u, 0x000069d2u, 0x00000000u, + 0x000400fau, 0x00000958u, 0x000069c7u, 0x000069d0u, 0x000200f8u, 0x000069d0u, 0x000200f9u, 0x000069d2u, + 0x000200f8u, 0x000069c7u, 0x00060052u, 0x00000010u, 0x00007983u, 0x00006976u, 0x00009337u, 0x00000000u, + 0x00060052u, 0x00000010u, 0x00007985u, 0x00006978u, 0x00007983u, 0x00000001u, 0x00060052u, 0x00000010u, + 0x00007987u, 0x0000697au, 0x00007985u, 0x00000002u, 0x000200f9u, 0x000069d2u, 0x000200f8u, 0x000069d2u, + 0x000700f5u, 0x00000010u, 0x0000a8beu, 0x00007987u, 0x000069c7u, 0x0000697du, 0x000069d0u, 0x000200f9u, + 0x000069c2u, 0x000200f8u, 0x000069c2u, 0x000d00f5u, 0x00000069u, 0x0000abd9u, 0x0000aa6cu, 0x000020f0u, + 0x0000055eu, 0x000069d2u, 0x0000055eu, 0x000069dfu, 0x0000055eu, 0x000069ecu, 0x0000055eu, 0x000069f9u, + 0x000d00f5u, 0x00000010u, 0x0000a8bdu, 0x00009337u, 0x000020f0u, 0x0000a8beu, 0x000069d2u, 0x0000a8bfu, + 0x000069dfu, 0x0000a8c0u, 0x000069ecu, 0x0000a8c1u, 0x000069f9u, 0x000300f7u, 0x000069c5u, 0x00000000u, + 0x000400fau, 0x00000858u, 0x000069c3u, 0x000069c5u, 0x000200f8u, 0x000069c3u, 0x000300f7u, 0x00006a32u, + 0x00000000u, 0x000700fbu, 0x00000661u, 0x00006a32u, 0x00000002u, 0x000069ffu, 0x00000003u, 0x00006a1cu, + 0x000200f8u, 0x00006a1cu, 0x0007004fu, 0x0000006bu, 0x00006a1eu, 0x0000a8bdu, 0x0000a8bdu, 0x00000000u, + 0x00000003u, 0x00040071u, 0x000000b4u, 0x00006a1fu, 0x00006a1eu, 0x00050051u, 0x00000006u, 0x00006a21u, + 0x00006a1fu, 0x00000000u, 0x000500c4u, 0x00000006u, 0x00006a22u, 0x00006a21u, 0x00000319u, 0x00050051u, + 0x00000006u, 0x00006a24u, 0x00006a1fu, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00006a25u, 0x00006a22u, + 0x00006a24u, 0x000500c7u, 0x00000006u, 0x00006a27u, 0x00006a25u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00006a28u, 0x00006a27u, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00006a2au, 0x00006a25u, 0x0000038bu, + 0x00040071u, 0x00000011u, 0x00006a2bu, 0x00006a2au, 0x000500c7u, 0x00000006u, 0x00006a2du, 0x00006a25u, + 0x00000469u, 0x000500c4u, 0x00000006u, 0x00006a2eu, 0x00006a2du, 0x0000038bu, 0x000500c5u, 0x00000006u, + 0x00006a30u, 0x00006a2eu, 0x00006a28u, 0x00040071u, 0x0000000fu, 0x00006a31u, 0x00006a30u, 0x000200f9u, + 0x00006a32u, 0x000200f8u, 0x000069ffu, 0x00050051u, 0x0000000fu, 0x00006a01u, 0x0000a8bdu, 0x00000003u, + 0x000500c2u, 0x0000000fu, 0x00006a02u, 0x00006a01u, 0x00000394u, 0x00050051u, 0x0000000fu, 0x00006a04u, + 0x0000a8bdu, 0x00000002u, 0x000500c7u, 0x0000000fu, 0x00006a05u, 0x00006a04u, 0x00000626u, 0x000500c5u, + 0x0000000fu, 0x00006a06u, 0x00006a02u, 0x00006a05u, 0x00050051u, 0x0000000fu, 0x00006a08u, 0x0000a8bdu, + 0x00000000u, 0x00040071u, 0x00000006u, 0x00006a09u, 0x00006a08u, 0x000500c7u, 0x00000006u, 0x00006a0au, + 0x00006a09u, 0x000006a3u, 0x000500c4u, 0x00000006u, 0x00006a0bu, 0x00006a0au, 0x000006fcu, 0x00050051u, + 0x0000000fu, 0x00006a0du, 0x0000a8bdu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006a0eu, 0x00006a0du, + 0x000500c7u, 0x00000006u, 0x00006a0fu, 0x00006a0eu, 0x000006a3u, 0x000500c4u, 0x00000006u, 0x00006a10u, + 0x00006a0fu, 0x00000461u, 0x000500c5u, 0x00000006u, 0x00006a12u, 0x00006a0bu, 0x00006a10u, 0x00040071u, + 0x00000006u, 0x00006a15u, 0x00006a04u, 0x000500c7u, 0x00000006u, 0x00006a16u, 0x00006a15u, 0x000006a3u, + 0x000500c2u, 0x00000006u, 0x00006a17u, 0x00006a16u, 0x00000709u, 0x000500c5u, 0x00000006u, 0x00006a19u, + 0x00006a12u, 0x00006a17u, 0x00040071u, 0x00000011u, 0x00006a1bu, 0x00006a19u, 0x000200f9u, 0x00006a32u, + 0x000200f8u, 0x00006a32u, 0x000900f5u, 0x0000000fu, 0x0000c056u, 0x00009783u, 0x000069c3u, 0x00006a06u, + 0x000069ffu, 0x00006a31u, 0x00006a1cu, 0x000900f5u, 0x00000011u, 0x0000c018u, 0x00009617u, 0x000069c3u, + 0x00006a1bu, 0x000069ffu, 0x00006a2bu, 0x00006a1cu, 0x000200f9u, 0x000069c5u, 0x000200f8u, 0x000069c5u, + 0x000700f5u, 0x0000000fu, 0x0000c050u, 0x00009783u, 0x000069c2u, 0x0000c056u, 0x00006a32u, 0x000700f5u, + 0x00000011u, 0x0000c012u, 0x00009617u, 0x000069c2u, 0x0000c018u, 0x00006a32u, 0x000200f9u, 0x000020f1u, + 0x000200f8u, 0x000020f1u, 0x000700f5u, 0x00000047u, 0x0000c1afu, 0x0000a57eu, 0x000069c5u, 0x0000c1b7u, + 0x000020ffu, 0x000700f5u, 0x00000047u, 0x0000c195u, 0x0000a3eau, 0x000069c5u, 0x0000c19du, 0x000020ffu, + 0x000700f5u, 0x0000000fu, 0x0000c17au, 0x0000a257u, 0x000069c5u, 0x0000c182u, 0x000020ffu, 0x000700f5u, + 0x0000000fu, 0x0000c15fu, 0x0000a0c4u, 0x000069c5u, 0x0000c167u, 0x000020ffu, 0x000700f5u, 0x00000047u, + 0x0000c137u, 0x00009f2eu, 0x000069c5u, 0x0000c13fu, 0x000020ffu, 0x000700f5u, 0x00000047u, 0x0000c110u, + 0x00009da7u, 0x000069c5u, 0x0000c118u, 0x000020ffu, 0x000700f5u, 0x0000000fu, 0x0000c0e8u, 0x00009c21u, + 0x000069c5u, 0x0000c0f0u, 0x000020ffu, 0x000700f5u, 0x0000000fu, 0x0000c0c0u, 0x00009a9bu, 0x000069c5u, + 0x0000c0c8u, 0x000020ffu, 0x000700f5u, 0x0000000fu, 0x0000c04fu, 0x0000c050u, 0x000069c5u, 0x0000c057u, + 0x000020ffu, 0x000700f5u, 0x00000011u, 0x0000c011u, 0x0000c012u, 0x000069c5u, 0x0000c019u, 0x000020ffu, + 0x000700f5u, 0x00000047u, 0x0000bfd3u, 0x000094a5u, 0x000069c5u, 0x0000bfdbu, 0x000020ffu, 0x000700f5u, + 0x00000010u, 0x0000bfc6u, 0x0000a8bdu, 0x000069c5u, 0x0000bfc9u, 0x000020ffu, 0x000700f5u, 0x00000069u, + 0x0000ad5du, 0x0000abf2u, 0x000069c5u, 0x0000ad65u, 0x000020ffu, 0x000700f5u, 0x00000069u, 0x0000abd7u, + 0x0000abd9u, 0x000069c5u, 0x0000abdbu, 0x000020ffu, 0x000200f9u, 0x000020e8u, 0x000200f8u, 0x000020e8u, + 0x000700f5u, 0x00000047u, 0x0000c1aeu, 0x0000a57eu, 0x0000253du, 0x0000c1afu, 0x000020f1u, 0x000700f5u, + 0x00000047u, 0x0000c194u, 0x0000a3eau, 0x0000253du, 0x0000c195u, 0x000020f1u, 0x000700f5u, 0x0000000fu, + 0x0000c179u, 0x0000a257u, 0x0000253du, 0x0000c17au, 0x000020f1u, 0x000700f5u, 0x0000000fu, 0x0000c15eu, + 0x0000a0c4u, 0x0000253du, 0x0000c15fu, 0x000020f1u, 0x000700f5u, 0x00000047u, 0x0000c136u, 0x00009f2eu, + 0x0000253du, 0x0000c137u, 0x000020f1u, 0x000700f5u, 0x00000047u, 0x0000c10fu, 0x00009da7u, 0x0000253du, + 0x0000c110u, 0x000020f1u, 0x000700f5u, 0x0000000fu, 0x0000c0e7u, 0x00009c21u, 0x0000253du, 0x0000c0e8u, + 0x000020f1u, 0x000700f5u, 0x0000000fu, 0x0000c0bfu, 0x00009a9bu, 0x0000253du, 0x0000c0c0u, 0x000020f1u, + 0x000700f5u, 0x0000000fu, 0x0000c04eu, 0x00009783u, 0x0000253du, 0x0000c04fu, 0x000020f1u, 0x000700f5u, + 0x00000011u, 0x0000c010u, 0x00009617u, 0x0000253du, 0x0000c011u, 0x000020f1u, 0x000700f5u, 0x00000047u, + 0x0000bfd2u, 0x000094a5u, 0x0000253du, 0x0000bfd3u, 0x000020f1u, 0x000700f5u, 0x00000010u, 0x0000bfc5u, + 0x00009337u, 0x0000253du, 0x0000bfc6u, 0x000020f1u, 0x000700f5u, 0x00000069u, 0x0000abf3u, 0x0000abf2u, + 0x0000253du, 0x0000ad5du, 0x000020f1u, 0x000700f5u, 0x00000069u, 0x0000aa6du, 0x0000aa6cu, 0x0000253du, + 0x0000abd7u, 0x000020f1u, 0x000200f9u, 0x000020cau, 0x000200f8u, 0x000020cau, 0x000200f9u, 0x000020c7u, + 0x000200f8u, 0x000020c9u, 0x000200f9u, 0x000020b0u, 0x000200f8u, 0x000020b0u, 0x000200f9u, 0x000020adu, + 0x000200f8u, 0x000020afu, 0x000500aeu, 0x00000884u, 0x00006f93u, 0x0000209fu, 0x0000214cu, 0x0004009au, + 0x00000069u, 0x00006f94u, 0x00006f93u, 0x000600a9u, 0x00000069u, 0x0000c260u, 0x00006f94u, 0x0000053bu, + 0x00007a4fu, 0x000600a9u, 0x00000069u, 0x0000c261u, 0x00006f94u, 0x0000053bu, 0x00007a32u, 0x000500c2u, + 0x00000006u, 0x00006f98u, 0x000020a2u, 0x0000084fu, 0x00050050u, 0x000000b4u, 0x00006f9au, 0x000008f8u, + 0x000008f8u, 0x000500c7u, 0x000000b4u, 0x00006f9bu, 0x0000209fu, 0x00006f9au, 0x00050050u, 0x000000f2u, + 0x00006f9du, 0x0000084fu, 0x0000084fu, 0x000500c2u, 0x000000b4u, 0x00006f9eu, 0x0000209fu, 0x00006f9du, + 0x00050051u, 0x00000006u, 0x00006fa0u, 0x00006f9bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006fa1u, + 0x00006fa0u, 0x00000901u, 0x00050051u, 0x00000006u, 0x00006fa3u, 0x00006f9bu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00006fa4u, 0x00006fa1u, 0x00006fa3u, 0x00050051u, 0x00000006u, 0x00006fa8u, 0x00006f9eu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00006fa9u, 0x00006f98u, 0x00006fa8u, 0x00050080u, 0x00000006u, + 0x00006faau, 0x000020a8u, 0x00006fa9u, 0x00050051u, 0x00000006u, 0x00006facu, 0x00006f9eu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00006fadu, 0x00006faau, 0x00006facu, 0x000300f7u, 0x0000707au, 0x00000000u, + 0x000400fau, 0x0000c261u, 0x00006fccu, 0x0000707au, 0x000200f8u, 0x00006fccu, 0x000300f7u, 0x00007079u, + 0x00000000u, 0x000d00fbu, 0x00000661u, 0x00007079u, 0x00000000u, 0x00006fcdu, 0x00000001u, 0x00006fe1u, + 0x00000002u, 0x00006ffdu, 0x00000003u, 0x0000702bu, 0x00000004u, 0x00007047u, 0x000200f8u, 0x00007047u, + 0x000500c7u, 0x00000006u, 0x00007049u, 0x00006fadu, 0x000006d0u, 0x00050084u, 0x00000006u, 0x0000704bu, + 0x00006fa4u, 0x00000819u, 0x00050080u, 0x00000006u, 0x0000704du, 0x00007049u, 0x0000704bu, 0x00040071u, + 0x000004fcu, 0x0000704fu, 0x00007a37u, 0x00050051u, 0x00000006u, 0x00007051u, 0x0000704fu, 0x00000000u, + 0x000500c4u, 0x00000006u, 0x00007052u, 0x00007051u, 0x000006e3u, 0x00050051u, 0x00000006u, 0x00007054u, + 0x0000704fu, 0x00000001u, 0x000500c4u, 0x00000006u, 0x00007055u, 0x00007054u, 0x00000335u, 0x000500c5u, + 0x00000006u, 0x00007056u, 0x00007052u, 0x00007055u, 0x00050051u, 0x00000006u, 0x00007058u, 0x0000704fu, + 0x00000002u, 0x000500c4u, 0x00000006u, 0x00007059u, 0x00007058u, 0x00000319u, 0x000500c5u, 0x00000006u, + 0x0000705au, 0x00007056u, 0x00007059u, 0x00050051u, 0x00000006u, 0x0000705cu, 0x0000704fu, 0x00000003u, + 0x000500c4u, 0x00000006u, 0x0000705du, 0x0000705cu, 0x00000332u, 0x000500c5u, 0x00000006u, 0x0000705eu, + 0x0000705au, 0x0000705du, 0x00060041u, 0x000006deu, 0x00007061u, 0x000006dcu, 0x00000225u, 0x0000704du, + 0x0003003eu, 0x00007061u, 0x0000705eu, 0x00050084u, 0x00000006u, 0x00007063u, 0x0000038bu, 0x0000704du, + 0x00050051u, 0x0000000fu, 0x00007065u, 0x00007a37u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00007066u, + 0x00007065u, 0x0004007cu, 0x00000008u, 0x00007067u, 0x00007066u, 0x000500c7u, 0x00000008u, 0x00007068u, + 0x00007067u, 0x0000022fu, 0x00050084u, 0x00000008u, 0x00007069u, 0x00007068u, 0x00000235u, 0x00040072u, + 0x00000380u, 0x0000706au, 0x00007069u, 0x0004007cu, 0x0000000fu, 0x0000706bu, 0x0000706au, 0x00060041u, + 0x00000676u, 0x0000706cu, 0x00000681u, 0x00000225u, 0x00007063u, 0x0003003eu, 0x0000706cu, 0x0000706bu, + 0x00050080u, 0x00000006u, 0x0000706fu, 0x00007063u, 0x00000461u, 0x00050051u, 0x0000000fu, 0x00007071u, + 0x00007a37u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00007072u, 0x00007071u, 0x0004007cu, 0x00000008u, + 0x00007073u, 0x00007072u, 0x000500c7u, 0x00000008u, 0x00007074u, 0x00007073u, 0x0000022fu, 0x00050084u, + 0x00000008u, 0x00007075u, 0x00007074u, 0x00000235u, 0x00040072u, 0x00000380u, 0x00007076u, 0x00007075u, + 0x0004007cu, 0x0000000fu, 0x00007077u, 0x00007076u, 0x00060041u, 0x00000676u, 0x00007078u, 0x00000681u, + 0x00000225u, 0x0000706fu, 0x0003003eu, 0x00007078u, 0x00007077u, 0x000200f9u, 0x00007079u, 0x000200f8u, + 0x0000702bu, 0x000500c7u, 0x00000006u, 0x0000702du, 0x00006fadu, 0x00000688u, 0x00050084u, 0x00000006u, + 0x0000702fu, 0x00006fa4u, 0x000007fau, 0x00050080u, 0x00000006u, 0x00007031u, 0x0000702du, 0x0000702fu, + 0x0007004fu, 0x0000006bu, 0x00007033u, 0x00007a37u, 0x00007a37u, 0x00000000u, 0x00000003u, 0x00040071u, + 0x000000b4u, 0x00007034u, 0x00007033u, 0x00050051u, 0x00000006u, 0x00007036u, 0x00007034u, 0x00000000u, + 0x000500c4u, 0x00000006u, 0x00007037u, 0x00007036u, 0x00000319u, 0x00050051u, 0x00000006u, 0x00007039u, + 0x00007034u, 0x00000001u, 0x000500c5u, 0x00000006u, 0x0000703au, 0x00007037u, 0x00007039u, 0x000500c6u, + 0x00000006u, 0x0000703cu, 0x00007031u, 0x00000461u, 0x00040071u, 0x00000011u, 0x0000703eu, 0x0000703au, + 0x00060041u, 0x00000697u, 0x0000703fu, 0x00000694u, 0x00000225u, 0x0000703cu, 0x0003003eu, 0x0000703fu, + 0x0000703eu, 0x000500c7u, 0x00000006u, 0x00007043u, 0x00007039u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00007044u, 0x00007043u, 0x00000469u, 0x00040071u, 0x0000000fu, 0x00007045u, 0x00007044u, 0x00060041u, + 0x00000676u, 0x00007046u, 0x00000681u, 0x00000225u, 0x00007031u, 0x0003003eu, 0x00007046u, 0x00007045u, + 0x000200f9u, 0x00007079u, 0x000200f8u, 0x00006ffdu, 0x000500c7u, 0x00000006u, 0x00006fffu, 0x00006fadu, + 0x00000688u, 0x00050084u, 0x00000006u, 0x00007001u, 0x00006fa4u, 0x000007c7u, 0x00050080u, 0x00000006u, + 0x00007003u, 0x00006fffu, 0x00007001u, 0x00040071u, 0x000004fcu, 0x00007005u, 0x00007a37u, 0x0008004fu, + 0x00000311u, 0x00007007u, 0x00007005u, 0x00007005u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, + 0x00000311u, 0x00007009u, 0x00007007u, 0x0000c209u, 0x00050051u, 0x00000006u, 0x0000700bu, 0x00007009u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x0000700du, 0x00007009u, 0x00000001u, 0x00050051u, 0x00000006u, + 0x0000700fu, 0x00007009u, 0x00000002u, 0x00050051u, 0x00000006u, 0x00007011u, 0x00007005u, 0x00000003u, + 0x000500c2u, 0x00000006u, 0x00007012u, 0x00007011u, 0x0000073cu, 0x000500c4u, 0x00000006u, 0x00007015u, + 0x0000700bu, 0x00000319u, 0x000500c4u, 0x00000006u, 0x00007018u, 0x0000700du, 0x00000469u, 0x000500c5u, + 0x00000006u, 0x00007019u, 0x00007015u, 0x00007018u, 0x000500c2u, 0x00000006u, 0x0000701cu, 0x0000700fu, + 0x0000038bu, 0x000500c5u, 0x00000006u, 0x0000701du, 0x00007019u, 0x0000701cu, 0x000500c2u, 0x00000006u, + 0x0000701fu, 0x00007012u, 0x0000038bu, 0x000500c5u, 0x00000006u, 0x00007020u, 0x0000701du, 0x0000701fu, + 0x000500c6u, 0x00000006u, 0x00007022u, 0x00007003u, 0x00000461u, 0x00040071u, 0x00000011u, 0x00007024u, + 0x00007020u, 0x00060041u, 0x00000697u, 0x00007025u, 0x00000694u, 0x00000225u, 0x00007022u, 0x0003003eu, + 0x00007025u, 0x00007024u, 0x000500c7u, 0x00000006u, 0x00007028u, 0x00007012u, 0x00000469u, 0x00040071u, + 0x0000000fu, 0x00007029u, 0x00007028u, 0x00060041u, 0x00000676u, 0x0000702au, 0x00000681u, 0x00000225u, + 0x00007003u, 0x0003003eu, 0x0000702au, 0x00007029u, 0x000200f9u, 0x00007079u, 0x000200f8u, 0x00006fe1u, + 0x000500c7u, 0x00000006u, 0x00006fe3u, 0x00006fadu, 0x00000668u, 0x00050084u, 0x00000006u, 0x00006fe5u, + 0x00006fa4u, 0x00000667u, 0x00050080u, 0x00000006u, 0x00006fe7u, 0x00006fe3u, 0x00006fe5u, 0x000500c6u, + 0x00000006u, 0x00006fe9u, 0x00006fe7u, 0x00000469u, 0x00050051u, 0x0000000fu, 0x00006febu, 0x00007a37u, + 0x00000000u, 0x00060041u, 0x00000676u, 0x00006fecu, 0x00000673u, 0x00000225u, 0x00006fe9u, 0x0003003eu, + 0x00006fecu, 0x00006febu, 0x000500c7u, 0x00000006u, 0x00006feeu, 0x00006fe7u, 0x00000461u, 0x000500abu, + 0x00000069u, 0x00006fefu, 0x00006feeu, 0x00000332u, 0x000300f7u, 0x00006ffcu, 0x00000000u, 0x000400fau, + 0x00006fefu, 0x00006ff0u, 0x00006ffcu, 0x000200f8u, 0x00006ff0u, 0x000500c2u, 0x00000006u, 0x00006ff2u, + 0x00006fe7u, 0x00000461u, 0x00040071u, 0x00000006u, 0x00006ff5u, 0x00006febu, 0x0004007cu, 0x00000008u, + 0x00006ff6u, 0x00006ff5u, 0x000500c7u, 0x00000008u, 0x00006ff7u, 0x00006ff6u, 0x0000022fu, 0x00050084u, + 0x00000008u, 0x00006ff8u, 0x00006ff7u, 0x00000235u, 0x00040072u, 0x00000380u, 0x00006ff9u, 0x00006ff8u, + 0x0004007cu, 0x0000000fu, 0x00006ffau, 0x00006ff9u, 0x00060041u, 0x00000676u, 0x00006ffbu, 0x00000681u, + 0x00000225u, 0x00006ff2u, 0x0003003eu, 0x00006ffbu, 0x00006ffau, 0x000200f9u, 0x00006ffcu, 0x000200f8u, + 0x00006ffcu, 0x000200f9u, 0x00007079u, 0x000200f8u, 0x00006fcdu, 0x000500c7u, 0x00000006u, 0x00006fcfu, + 0x00006fadu, 0x00000668u, 0x00050084u, 0x00000006u, 0x00006fd1u, 0x00006fa4u, 0x00000667u, 0x00050080u, + 0x00000006u, 0x00006fd3u, 0x00006fcfu, 0x00006fd1u, 0x000500c6u, 0x00000006u, 0x00006fd5u, 0x00006fd3u, + 0x00000469u, 0x00060041u, 0x00000676u, 0x00006fd6u, 0x00000673u, 0x00000225u, 0x00006fd5u, 0x0003003eu, + 0x00006fd6u, 0x0000038du, 0x000500c7u, 0x00000006u, 0x00006fd8u, 0x00006fd3u, 0x00000461u, 0x000500abu, + 0x00000069u, 0x00006fd9u, 0x00006fd8u, 0x00000332u, 0x000300f7u, 0x00006fe0u, 0x00000000u, 0x000400fau, + 0x00006fd9u, 0x00006fdau, 0x00006fe0u, 0x000200f8u, 0x00006fdau, 0x000500c2u, 0x00000006u, 0x00006fdcu, + 0x00006fd3u, 0x00000461u, 0x00050051u, 0x0000000fu, 0x00006fdeu, 0x00007a37u, 0x00000003u, 0x00060041u, + 0x00000676u, 0x00006fdfu, 0x00000681u, 0x00000225u, 0x00006fdcu, 0x0003003eu, 0x00006fdfu, 0x00006fdeu, + 0x000200f9u, 0x00006fe0u, 0x000200f8u, 0x00006fe0u, 0x000200f9u, 0x00007079u, 0x000200f8u, 0x00007079u, + 0x000f00f5u, 0x00000006u, 0x00007a3cu, 0x00006fadu, 0x00006fccu, 0x00006fd3u, 0x00006fe0u, 0x00006fe7u, + 0x00006ffcu, 0x00007003u, 0x00006ffdu, 0x00007031u, 0x0000702bu, 0x0000704du, 0x00007047u, 0x000200f9u, + 0x0000707au, 0x000200f8u, 0x0000707au, 0x000700f5u, 0x00000006u, 0x00007a3bu, 0x00006fadu, 0x000020afu, + 0x00007a3cu, 0x00007079u, 0x000300f7u, 0x0000707eu, 0x00000000u, 0x000400fau, 0x00000851u, 0x0000707bu, + 0x0000707eu, 0x000200f8u, 0x0000707bu, 0x000300e1u, 0x00000461u, 0x00000854u, 0x000300f7u, 0x00007091u, + 0x00000000u, 0x000400fau, 0x0000c261u, 0x00007081u, 0x00007091u, 0x000200f8u, 0x00007081u, 0x000300f7u, + 0x00007090u, 0x00000000u, 0x000d00fbu, 0x00000661u, 0x00007090u, 0x00000000u, 0x00007082u, 0x00000001u, + 0x00007082u, 0x00000002u, 0x00007087u, 0x00000003u, 0x00007087u, 0x00000004u, 0x0000708cu, 0x000200f8u, + 0x0000708cu, 0x00050080u, 0x00000006u, 0x0000708eu, 0x00007a3bu, 0x00000785u, 0x00060041u, 0x000006deu, + 0x0000708fu, 0x000006dcu, 0x00000225u, 0x0000708eu, 0x0003003eu, 0x0000708fu, 0x00000787u, 0x000200f9u, + 0x00007090u, 0x000200f8u, 0x00007087u, 0x000500c6u, 0x00000006u, 0x00007089u, 0x00007a3bu, 0x00000461u, + 0x00050080u, 0x00000006u, 0x0000708au, 0x00007089u, 0x0000077fu, 0x00060041u, 0x00000697u, 0x0000708bu, + 0x00000694u, 0x00000225u, 0x0000708au, 0x0003003eu, 0x0000708bu, 0x00000781u, 0x000200f9u, 0x00007090u, + 0x000200f8u, 0x00007082u, 0x000500c6u, 0x00000006u, 0x00007084u, 0x00007a3bu, 0x00000469u, 0x00050080u, + 0x00000006u, 0x00007085u, 0x00007084u, 0x00000667u, 0x00060041u, 0x00000676u, 0x00007086u, 0x00000673u, + 0x00000225u, 0x00007085u, 0x0003003eu, 0x00007086u, 0x00000474u, 0x000200f9u, 0x00007090u, 0x000200f8u, + 0x00007090u, 0x000200f9u, 0x00007091u, 0x000200f8u, 0x00007091u, 0x000200f9u, 0x0000707eu, 0x000200f8u, + 0x0000707eu, 0x00050080u, 0x00000006u, 0x00006fb6u, 0x000020abu, 0x00006fa9u, 0x00050080u, 0x00000006u, + 0x00006fb9u, 0x00006fb6u, 0x00006facu, 0x000300f7u, 0x000070b5u, 0x00000000u, 0x000400fau, 0x00000859u, + 0x00007093u, 0x000070b5u, 0x000200f8u, 0x00007093u, 0x000300f7u, 0x000070abu, 0x00000000u, 0x000400fau, + 0x0000c260u, 0x00007095u, 0x000070abu, 0x000200f8u, 0x00007095u, 0x000500c7u, 0x00000006u, 0x00007097u, + 0x00006fb9u, 0x00000688u, 0x00050084u, 0x00000006u, 0x00007099u, 0x00006fa4u, 0x00000863u, 0x00050080u, + 0x00000006u, 0x0000709bu, 0x00007097u, 0x00007099u, 0x000500c6u, 0x00000006u, 0x0000709du, 0x0000709bu, + 0x00000461u, 0x000500c4u, 0x00000011u, 0x0000709fu, 0x00007a5du, 0x000005f7u, 0x000500c2u, 0x0000000fu, + 0x000070a1u, 0x00007a6au, 0x000005f7u, 0x00040071u, 0x00000011u, 0x000070a2u, 0x000070a1u, 0x000500c5u, + 0x00000011u, 0x000070a3u, 0x0000709fu, 0x000070a2u, 0x00060041u, 0x00000697u, 0x000070a4u, 0x00000694u, + 0x00000225u, 0x0000709du, 0x0003003eu, 0x000070a4u, 0x000070a3u, 0x00040071u, 0x00000011u, 0x000070a7u, + 0x00007a6au, 0x000500c7u, 0x00000011u, 0x000070a8u, 0x000070a7u, 0x000005fcu, 0x00040071u, 0x0000000fu, + 0x000070a9u, 0x000070a8u, 0x00060041u, 0x00000676u, 0x000070aau, 0x00000681u, 0x00000225u, 0x0000709bu, + 0x0003003eu, 0x000070aau, 0x000070a9u, 0x000200f9u, 0x000070abu, 0x000200f8u, 0x000070abu, 0x000700f5u, + 0x00000006u, 0x00007a75u, 0x00006fb9u, 0x00007093u, 0x0000709bu, 0x00007095u, 0x000300f7u, 0x000070b4u, + 0x00000000u, 0x000400fau, 0x00000851u, 0x000070acu, 0x000070b4u, 0x000200f8u, 0x000070acu, 0x000300e1u, + 0x00000461u, 0x00000854u, 0x000300f7u, 0x000070b3u, 0x00000000u, 0x000400fau, 0x0000c260u, 0x000070aeu, + 0x000070b3u, 0x000200f8u, 0x000070aeu, 0x000500c6u, 0x00000006u, 0x000070b0u, 0x00007a75u, 0x00000461u, + 0x00050080u, 0x00000006u, 0x000070b1u, 0x000070b0u, 0x0000087du, 0x00060041u, 0x00000697u, 0x000070b2u, + 0x00000694u, 0x00000225u, 0x000070b1u, 0x0003003eu, 0x000070b2u, 0x00000781u, 0x000200f9u, 0x000070b3u, + 0x000200f8u, 0x000070b3u, 0x000200f9u, 0x000070b4u, 0x000200f8u, 0x000070b4u, 0x000200f9u, 0x000070b5u, + 0x000200f8u, 0x000070b5u, 0x000300f7u, 0x00006fc1u, 0x00000000u, 0x000400fau, 0x00000924u, 0x00006fbdu, + 0x00006fc1u, 0x000200f8u, 0x00006fbdu, 0x000500c2u, 0x00000006u, 0x000070bcu, 0x00006fa8u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x000070beu, 0x00006f98u, 0x00000469u, 0x000500c2u, 0x00000006u, 0x000070bfu, + 0x000070beu, 0x0000038bu, 0x00050084u, 0x00000006u, 0x000070c0u, 0x000070bcu, 0x000070bfu, 0x000500c2u, + 0x00000006u, 0x000070c3u, 0x00006facu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000070c4u, 0x000070c0u, + 0x000070c3u, 0x000500c7u, 0x000000b4u, 0x000070c7u, 0x00006f9eu, 0x0000c20au, 0x000600a9u, 0x00000006u, + 0x000070c9u, 0x0000c261u, 0x00000461u, 0x00000332u, 0x000600a9u, 0x00000006u, 0x000070cbu, 0x0000c260u, + 0x00000461u, 0x00000332u, 0x00050084u, 0x00000006u, 0x000070ccu, 0x0000038bu, 0x000070cbu, 0x00050080u, + 0x00000006u, 0x000070cdu, 0x000070c9u, 0x000070ccu, 0x00050051u, 0x00000006u, 0x000070cfu, 0x000070c7u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x000070d1u, 0x000070c7u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000070d2u, 0x000070d1u, 0x00000709u, 0x00050080u, 0x00000006u, 0x000070d3u, 0x000070cfu, 0x000070d2u, + 0x00050084u, 0x00000006u, 0x000070d4u, 0x0000038bu, 0x000070d3u, 0x000500c4u, 0x00000006u, 0x000070d6u, + 0x000070cdu, 0x000070d4u, 0x000500abu, 0x00000069u, 0x000070d8u, 0x000070d6u, 0x00000332u, 0x000300f7u, + 0x000070dfu, 0x00000000u, 0x000400fau, 0x000070d8u, 0x000070d9u, 0x000070dfu, 0x000200f8u, 0x000070d9u, + 0x00050080u, 0x00000006u, 0x000070dbu, 0x000008e4u, 0x000070c4u, 0x00060041u, 0x000006deu, 0x000070dcu, + 0x000006dcu, 0x00000225u, 0x000070dbu, 0x000700f1u, 0x00000006u, 0x000070deu, 0x000070dcu, 0x00000461u, + 0x00000332u, 0x000070d6u, 0x000200f9u, 0x000070dfu, 0x000200f8u, 0x000070dfu, 0x000200f9u, 0x00006fc1u, + 0x000200f8u, 0x00006fc1u, 0x000200f9u, 0x00002134u, 0x000200f8u, 0x00002134u, 0x000100fdu, 0x00010038u, + 0x07230203u, 0x00010300u, 0x000d000bu, 0x0000c281u, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, + 0x00000016u, 0x00020011u, 0x00000027u, 0x00020011u, 0x0000002eu, 0x00020011u, 0x0000003du, 0x00020011u, + 0x0000003fu, 0x00020011u, 0x00000040u, 0x00020011u, 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, + 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, + 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0007000fu, + 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00002076u, 0x00002080u, 0x00060010u, 0x00000004u, + 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, 0x00050048u, 0x00000220u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x00000220u, 0x00000001u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000220u, + 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, 0x00000220u, 0x00000003u, 0x00000023u, 0x00000030u, + 0x00050048u, 0x00000220u, 0x00000004u, 0x00000023u, 0x00000040u, 0x00050048u, 0x00000220u, 0x00000005u, + 0x00000023u, 0x00000050u, 0x00050048u, 0x00000220u, 0x00000006u, 0x00000023u, 0x00000060u, 0x00050048u, + 0x00000220u, 0x00000007u, 0x00000023u, 0x00000070u, 0x00040047u, 0x00000221u, 0x00000006u, 0x00000080u, + 0x00040048u, 0x00000222u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000222u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000222u, 0x00000002u, 0x00040047u, 0x00000224u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000224u, 0x00000021u, 0x00000001u, 0x00050048u, 0x00000246u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x00000246u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000246u, + 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000246u, 0x00000003u, 0x00000023u, 0x0000000cu, + 0x00050048u, 0x00000246u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000246u, 0x00000005u, + 0x00000023u, 0x00000014u, 0x00050048u, 0x00000246u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, + 0x00000246u, 0x00000007u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x00000246u, 0x00000008u, 0x00000023u, + 0x00000020u, 0x00050048u, 0x00000246u, 0x00000009u, 0x00000023u, 0x00000024u, 0x00050048u, 0x00000246u, + 0x0000000au, 0x00000023u, 0x00000028u, 0x00050048u, 0x00000246u, 0x0000000bu, 0x00000023u, 0x0000002cu, + 0x00050048u, 0x00000246u, 0x0000000cu, 0x00000023u, 0x0000002eu, 0x00050048u, 0x00000246u, 0x0000000du, + 0x00000023u, 0x0000002fu, 0x00050048u, 0x00000246u, 0x0000000eu, 0x00000023u, 0x00000030u, 0x00040047u, + 0x00000247u, 0x00000006u, 0x00000038u, 0x00040048u, 0x00000248u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000248u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000248u, 0x00000002u, 0x00040047u, + 0x0000024au, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000024au, 0x00000021u, 0x00000002u, 0x00050048u, + 0x00000279u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000279u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x00000279u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000279u, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000279u, 0x00000004u, 0x00000023u, 0x00000010u, + 0x00050048u, 0x00000279u, 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, 0x00000279u, 0x00000006u, + 0x00000023u, 0x00000018u, 0x00050048u, 0x00000279u, 0x00000007u, 0x00000023u, 0x0000001cu, 0x00040047u, + 0x0000027au, 0x00000006u, 0x00000020u, 0x00040048u, 0x0000027bu, 0x00000000u, 0x00000018u, 0x00050048u, + 0x0000027bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000027bu, 0x00000002u, 0x00040047u, + 0x0000027du, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000027du, 0x00000021u, 0x00000004u, 0x00050048u, + 0x00000297u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000297u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x00000297u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000297u, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000297u, 0x00000004u, 0x00000023u, 0x0000000du, + 0x00050048u, 0x00000297u, 0x00000005u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x00000297u, 0x00000006u, + 0x00000023u, 0x0000000fu, 0x00040047u, 0x00000298u, 0x00000006u, 0x00000010u, 0x00040048u, 0x00000299u, + 0x00000000u, 0x00000018u, 0x00050048u, 0x00000299u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000299u, 0x00000002u, 0x00040047u, 0x0000029bu, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000029bu, + 0x00000021u, 0x00000005u, 0x00050048u, 0x000002b3u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x000002b3u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000002b3u, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x000002b3u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000002b3u, + 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000002b3u, 0x00000005u, 0x00000023u, 0x00000014u, + 0x00050048u, 0x000002b3u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000002b3u, 0x00000007u, + 0x00000023u, 0x00000019u, 0x00050048u, 0x000002b3u, 0x00000008u, 0x00000023u, 0x0000001au, 0x00050048u, + 0x000002b3u, 0x00000009u, 0x00000023u, 0x0000001bu, 0x00050048u, 0x000002b3u, 0x0000000au, 0x00000023u, + 0x0000001cu, 0x00050048u, 0x000002b3u, 0x0000000bu, 0x00000023u, 0x0000001du, 0x00050048u, 0x000002b3u, + 0x0000000cu, 0x00000023u, 0x0000001eu, 0x00050048u, 0x000002b3u, 0x0000000du, 0x00000023u, 0x0000001fu, + 0x00040047u, 0x000002b4u, 0x00000006u, 0x00000020u, 0x00040048u, 0x000002b5u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x000002b5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002b5u, 0x00000002u, + 0x00040047u, 0x000002b7u, 0x00000022u, 0x00000001u, 0x00040047u, 0x000002b7u, 0x00000021u, 0x00000007u, + 0x00050048u, 0x000002dcu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000002dcu, 0x00000001u, + 0x00000023u, 0x00000010u, 0x00050048u, 0x000002dcu, 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, + 0x000002dcu, 0x00000003u, 0x00000023u, 0x00000028u, 0x00050048u, 0x000002dcu, 0x00000004u, 0x00000023u, + 0x00000030u, 0x00050048u, 0x000002dcu, 0x00000005u, 0x00000023u, 0x00000034u, 0x00050048u, 0x000002dcu, + 0x00000006u, 0x00000023u, 0x00000038u, 0x00050048u, 0x000002dcu, 0x00000007u, 0x00000023u, 0x0000003cu, + 0x00050048u, 0x000002dcu, 0x00000008u, 0x00000023u, 0x0000003eu, 0x00040047u, 0x000002ddu, 0x00000006u, + 0x00000040u, 0x00040048u, 0x000002deu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000002deu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x000002deu, 0x00000002u, 0x00040047u, 0x000002e0u, 0x00000022u, + 0x00000001u, 0x00040047u, 0x000002e0u, 0x00000021u, 0x00000008u, 0x00050048u, 0x000002fbu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x000002fbu, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x000002fbu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000002fbu, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00040047u, 0x000002fcu, 0x00000006u, 0x00000010u, 0x00040048u, 0x000002fdu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x000002fdu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000002fdu, + 0x00000002u, 0x00040047u, 0x000002ffu, 0x00000022u, 0x00000001u, 0x00040047u, 0x000002ffu, 0x00000021u, + 0x00000009u, 0x00040047u, 0x000004f4u, 0x00000022u, 0x00000001u, 0x00040047u, 0x000004f4u, 0x00000021u, + 0x0000000au, 0x00040047u, 0x00000661u, 0x00000001u, 0x00000001u, 0x00040047u, 0x00000667u, 0x00000001u, + 0x00000000u, 0x00040047u, 0x00000670u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000671u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000671u, 0x00000002u, 0x00040047u, 0x00000673u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000673u, 0x00000021u, 0x00000000u, 0x00040047u, 0x0000067eu, 0x00000006u, + 0x00000001u, 0x00050048u, 0x0000067fu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000067fu, + 0x00000002u, 0x00040047u, 0x00000681u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000681u, 0x00000021u, + 0x00000001u, 0x00040047u, 0x00000691u, 0x00000006u, 0x00000002u, 0x00050048u, 0x00000692u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000692u, 0x00000002u, 0x00040047u, 0x00000694u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000694u, 0x00000021u, 0x00000000u, 0x00040047u, 0x000006d9u, 0x00000006u, + 0x00000004u, 0x00050048u, 0x000006dau, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000006dau, + 0x00000002u, 0x00040047u, 0x000006dcu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000006dcu, 0x00000021u, + 0x00000000u, 0x00040047u, 0x0000084cu, 0x00000001u, 0x00000007u, 0x00040047u, 0x00000858u, 0x00000001u, + 0x00000002u, 0x00040047u, 0x00000a28u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000a29u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x00000a29u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x00000a29u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, 0x00000a2au, 0x00000006u, 0x00000010u, + 0x00040048u, 0x00000a2bu, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000a2bu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000a2bu, 0x00000002u, 0x00040047u, 0x00000a2du, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000a2du, 0x00000021u, 0x00000006u, 0x00050048u, 0x00000ce4u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x00000ce4u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000ce4u, + 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000ce4u, 0x00000003u, 0x00000023u, 0x0000000cu, + 0x00050048u, 0x00000ce5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000ce5u, 0x00000002u, + 0x00040047u, 0x00000ce7u, 0x00000022u, 0x00000002u, 0x00040047u, 0x00000ce7u, 0x00000021u, 0x00000000u, + 0x00040047u, 0x00000e98u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000e99u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00040047u, 0x00000e9au, 0x00000006u, 0x00001000u, 0x00040048u, 0x00000e9bu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x00000e9bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000e9bu, + 0x00000002u, 0x00040047u, 0x00000e9du, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000e9du, 0x00000021u, + 0x00000002u, 0x00040047u, 0x00000f65u, 0x00000006u, 0x00000002u, 0x00050048u, 0x00000f66u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00040047u, 0x00000f67u, 0x00000006u, 0x00001000u, 0x00040048u, 0x00000f68u, + 0x00000000u, 0x00000018u, 0x00050048u, 0x00000f68u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000f68u, 0x00000002u, 0x00040047u, 0x00000f6au, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000f6au, + 0x00000021u, 0x00000002u, 0x00050048u, 0x00001d1au, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x00001d1au, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00001d1au, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x00001d1au, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x00001d1au, + 0x00000004u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x00001d1au, 0x00000005u, 0x00000023u, 0x00000010u, + 0x00050048u, 0x00001d1au, 0x00000006u, 0x00000023u, 0x00000014u, 0x00050048u, 0x00001d1au, 0x00000007u, + 0x00000023u, 0x00000018u, 0x00050048u, 0x00001d1au, 0x00000008u, 0x00000023u, 0x0000001cu, 0x00050048u, + 0x00001d1au, 0x00000009u, 0x00000023u, 0x0000001eu, 0x00050048u, 0x00001d1au, 0x0000000au, 0x00000023u, + 0x0000001fu, 0x00040047u, 0x00001d1bu, 0x00000006u, 0x00000020u, 0x00040048u, 0x00001d1cu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x00001d1cu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00001d1cu, + 0x00000002u, 0x00040047u, 0x00001d1eu, 0x00000022u, 0x00000001u, 0x00040047u, 0x00001d1eu, 0x00000021u, + 0x00000000u, 0x00040047u, 0x00002076u, 0x0000000bu, 0x0000001cu, 0x00040047u, 0x00002080u, 0x0000000bu, + 0x0000001au, 0x00040047u, 0x00002089u, 0x00000001u, 0x00000006u, 0x00040047u, 0x0000208au, 0x00000001u, + 0x00000003u, 0x00040047u, 0x0000208bu, 0x00000001u, 0x00000004u, 0x00040047u, 0x0000208cu, 0x0000000bu, + 0x00000019u, 0x00040047u, 0x00002094u, 0x00000001u, 0x00000005u, 0x00040047u, 0x00002098u, 0x00000006u, + 0x00000004u, 0x00040048u, 0x00002099u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00002099u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00002099u, 0x00000002u, 0x00040047u, 0x0000209bu, 0x00000022u, + 0x00000001u, 0x00040047u, 0x0000209bu, 0x00000021u, 0x0000000cu, 0x00050048u, 0x0000209fu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x0000209fu, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x0000209fu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x0000209fu, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00050048u, 0x0000209fu, 0x00000004u, 0x00000023u, 0x00000010u, 0x00030047u, 0x0000209fu, + 0x00000002u, 0x00040047u, 0x000020ccu, 0x00000006u, 0x00000004u, 0x00040048u, 0x000020cdu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x000020cdu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000020cdu, + 0x00000002u, 0x00040047u, 0x000020cfu, 0x00000022u, 0x00000001u, 0x00040047u, 0x000020cfu, 0x00000021u, + 0x0000000bu, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, + 0x00000020u, 0x00000000u, 0x00040015u, 0x00000008u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000009u, + 0x00000008u, 0x00000004u, 0x00040015u, 0x0000000fu, 0x00000008u, 0x00000000u, 0x00040017u, 0x00000010u, + 0x0000000fu, 0x00000004u, 0x00040015u, 0x00000011u, 0x00000010u, 0x00000000u, 0x00040015u, 0x00000012u, + 0x00000010u, 0x00000001u, 0x00040017u, 0x00000013u, 0x00000012u, 0x00000004u, 0x00040017u, 0x00000028u, + 0x00000011u, 0x00000004u, 0x00040017u, 0x00000044u, 0x00000008u, 0x00000003u, 0x00040017u, 0x00000047u, + 0x0000000fu, 0x00000003u, 0x00020014u, 0x00000069u, 0x00040017u, 0x0000006bu, 0x0000000fu, 0x00000002u, + 0x00040020u, 0x0000007bu, 0x00000007u, 0x0000000fu, 0x00040017u, 0x000000b4u, 0x00000006u, 0x00000002u, + 0x00040017u, 0x000000f2u, 0x00000008u, 0x00000002u, 0x00040017u, 0x000001b1u, 0x00000012u, 0x00000002u, + 0x00040020u, 0x000001b2u, 0x00000007u, 0x000001b1u, 0x0004002bu, 0x00000011u, 0x0000021fu, 0x00000000u, + 0x000a001eu, 0x00000220u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, + 0x00000009u, 0x00000009u, 0x0003001du, 0x00000221u, 0x00000220u, 0x0003001eu, 0x00000222u, 0x00000221u, + 0x00040020u, 0x00000223u, 0x0000000cu, 0x00000222u, 0x0004003bu, 0x00000223u, 0x00000224u, 0x0000000cu, + 0x0004002bu, 0x00000008u, 0x00000225u, 0x00000000u, 0x00040020u, 0x00000227u, 0x0000000cu, 0x00000220u, + 0x0004002bu, 0x00000008u, 0x0000022fu, 0x00000001u, 0x0004002bu, 0x00000008u, 0x00000232u, 0x00000002u, + 0x0004002bu, 0x00000008u, 0x00000235u, 0x00000003u, 0x0004002bu, 0x00000008u, 0x00000238u, 0x00000004u, + 0x0004002bu, 0x00000008u, 0x0000023bu, 0x00000005u, 0x0004002bu, 0x00000008u, 0x0000023eu, 0x00000006u, + 0x0004002bu, 0x00000008u, 0x00000241u, 0x00000007u, 0x0011001eu, 0x00000246u, 0x00000010u, 0x00000010u, + 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, + 0x00000006u, 0x00000011u, 0x0000000fu, 0x0000000fu, 0x00000013u, 0x0003001du, 0x00000247u, 0x00000246u, + 0x0003001eu, 0x00000248u, 0x00000247u, 0x00040020u, 0x00000249u, 0x0000000cu, 0x00000248u, 0x0004003bu, + 0x00000249u, 0x0000024au, 0x0000000cu, 0x00040020u, 0x0000024cu, 0x0000000cu, 0x00000246u, 0x0004002bu, + 0x00000008u, 0x00000262u, 0x00000008u, 0x0004002bu, 0x00000008u, 0x00000265u, 0x00000009u, 0x0004002bu, + 0x00000008u, 0x00000268u, 0x0000000au, 0x0004002bu, 0x00000008u, 0x0000026bu, 0x0000000bu, 0x0004002bu, + 0x00000008u, 0x0000026eu, 0x0000000cu, 0x0004002bu, 0x00000008u, 0x00000271u, 0x0000000du, 0x0004002bu, + 0x00000008u, 0x00000274u, 0x0000000eu, 0x000a001eu, 0x00000279u, 0x00000010u, 0x00000010u, 0x00000010u, + 0x00000010u, 0x00000006u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, 0x0000027au, 0x00000279u, + 0x0003001eu, 0x0000027bu, 0x0000027au, 0x00040020u, 0x0000027cu, 0x0000000cu, 0x0000027bu, 0x0004003bu, + 0x0000027cu, 0x0000027du, 0x0000000cu, 0x00040020u, 0x0000027fu, 0x0000000cu, 0x00000279u, 0x0009001eu, + 0x00000297u, 0x00000010u, 0x00000010u, 0x00000006u, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, + 0x0003001du, 0x00000298u, 0x00000297u, 0x0003001eu, 0x00000299u, 0x00000298u, 0x00040020u, 0x0000029au, + 0x0000000cu, 0x00000299u, 0x0004003bu, 0x0000029au, 0x0000029bu, 0x0000000cu, 0x00040020u, 0x0000029du, + 0x0000000cu, 0x00000297u, 0x0010001eu, 0x000002b3u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00000006u, 0x00000006u, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, + 0x0000000fu, 0x0000000fu, 0x0003001du, 0x000002b4u, 0x000002b3u, 0x0003001eu, 0x000002b5u, 0x000002b4u, + 0x00040020u, 0x000002b6u, 0x0000000cu, 0x000002b5u, 0x0004003bu, 0x000002b6u, 0x000002b7u, 0x0000000cu, + 0x00040020u, 0x000002b9u, 0x0000000cu, 0x000002b3u, 0x000b001eu, 0x000002dcu, 0x00000009u, 0x00000009u, + 0x00000028u, 0x00000028u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000012u, 0x00000011u, 0x0003001du, + 0x000002ddu, 0x000002dcu, 0x0003001eu, 0x000002deu, 0x000002ddu, 0x00040020u, 0x000002dfu, 0x0000000cu, + 0x000002deu, 0x0004003bu, 0x000002dfu, 0x000002e0u, 0x0000000cu, 0x00040020u, 0x000002e2u, 0x0000000cu, + 0x000002dcu, 0x0006001eu, 0x000002fbu, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, + 0x000002fcu, 0x000002fbu, 0x0003001eu, 0x000002fdu, 0x000002fcu, 0x00040020u, 0x000002feu, 0x0000000cu, + 0x000002fdu, 0x0004003bu, 0x000002feu, 0x000002ffu, 0x0000000cu, 0x00040020u, 0x00000301u, 0x0000000cu, + 0x000002fbu, 0x00040017u, 0x00000311u, 0x00000006u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x00000319u, + 0x00000008u, 0x0004002bu, 0x00000006u, 0x0000031fu, 0x41c64e6du, 0x0004002bu, 0x00000006u, 0x00000332u, + 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000335u, 0x00000010u, 0x0004002bu, 0x00000011u, 0x00000339u, + 0x00000007u, 0x0004002bu, 0x00000011u, 0x0000033bu, 0x00000006u, 0x0004002bu, 0x00000011u, 0x0000033du, + 0x00000020u, 0x0004002bu, 0x00000011u, 0x00000349u, 0x000001ffu, 0x0004002bu, 0x00000011u, 0x00000350u, + 0x000000ffu, 0x0006002cu, 0x00000044u, 0x00000358u, 0x00000225u, 0x00000235u, 0x0000023eu, 0x0004002bu, + 0x00000008u, 0x0000035eu, 0x000000f8u, 0x0004002bu, 0x00000008u, 0x00000363u, 0x000000ffu, 0x0006002cu, + 0x00000044u, 0x00000364u, 0x00000363u, 0x00000363u, 0x00000363u, 0x0004002bu, 0x00000008u, 0x00000366u, + 0x000000f7u, 0x0006002cu, 0x00000044u, 0x00000367u, 0x00000366u, 0x00000366u, 0x00000366u, 0x00040017u, + 0x00000368u, 0x00000069u, 0x00000003u, 0x0004002bu, 0x00000008u, 0x00000371u, 0x0000001fu, 0x00040015u, + 0x00000380u, 0x00000008u, 0x00000001u, 0x00040017u, 0x00000381u, 0x00000380u, 0x00000003u, 0x0004001cu, + 0x0000038au, 0x0000000fu, 0x00000335u, 0x0004002bu, 0x00000006u, 0x0000038bu, 0x00000002u, 0x0004001cu, + 0x0000038cu, 0x0000038au, 0x0000038bu, 0x0004002bu, 0x0000000fu, 0x0000038du, 0x00000000u, 0x0004002bu, + 0x0000000fu, 0x0000038eu, 0x00000006u, 0x0004002bu, 0x0000000fu, 0x0000038fu, 0x00000001u, 0x0004002bu, + 0x0000000fu, 0x00000390u, 0x00000007u, 0x0004002bu, 0x0000000fu, 0x00000391u, 0x00000004u, 0x0004002bu, + 0x0000000fu, 0x00000392u, 0x00000002u, 0x0004002bu, 0x0000000fu, 0x00000393u, 0x00000005u, 0x0004002bu, + 0x0000000fu, 0x00000394u, 0x00000003u, 0x0013002cu, 0x0000038au, 0x00000395u, 0x0000038du, 0x0000038eu, + 0x0000038fu, 0x00000390u, 0x00000391u, 0x00000392u, 0x00000393u, 0x00000394u, 0x00000394u, 0x00000393u, + 0x00000392u, 0x00000391u, 0x00000390u, 0x0000038fu, 0x0000038eu, 0x0000038du, 0x0013002cu, 0x0000038au, + 0x00000396u, 0x0000038du, 0x00000391u, 0x0000038fu, 0x00000393u, 0x00000391u, 0x0000038du, 0x00000393u, + 0x0000038fu, 0x00000394u, 0x00000390u, 0x00000392u, 0x0000038eu, 0x00000390u, 0x00000394u, 0x0000038eu, + 0x00000392u, 0x0005002cu, 0x0000038cu, 0x00000397u, 0x00000395u, 0x00000396u, 0x00040020u, 0x0000039fu, + 0x00000007u, 0x0000038cu, 0x0004002bu, 0x00000008u, 0x000003a5u, 0x00000049u, 0x0004002bu, 0x00000008u, + 0x000003dfu, 0x000007ffu, 0x0004002bu, 0x00000008u, 0x000003e6u, 0x00040000u, 0x0004002bu, 0x00000008u, + 0x000003f2u, 0x0003ffffu, 0x0004002bu, 0x00000008u, 0x000003f7u, 0x00000011u, 0x0004002bu, 0x00000006u, + 0x00000461u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x00000469u, 0x00000003u, 0x0004002bu, 0x0000000fu, + 0x00000474u, 0x000000ffu, 0x0004002bu, 0x0000000fu, 0x000004b4u, 0x0000003cu, 0x00040017u, 0x000004bbu, + 0x00000012u, 0x00000003u, 0x00040017u, 0x000004bfu, 0x00000011u, 0x00000003u, 0x0004002bu, 0x00000012u, + 0x000004cdu, 0x00000001u, 0x0004002bu, 0x00000012u, 0x000004d9u, 0x00000005u, 0x0004002bu, 0x00000012u, + 0x000004eau, 0x00000002u, 0x0004002bu, 0x00000012u, 0x000004eeu, 0x000007ffu, 0x00090019u, 0x000004f2u, + 0x00000006u, 0x00000005u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, + 0x000004f3u, 0x00000000u, 0x000004f2u, 0x0004003bu, 0x000004f3u, 0x000004f4u, 0x00000000u, 0x00040017u, + 0x000004fcu, 0x00000006u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x00000538u, 0x0000000fu, 0x0003002au, + 0x00000069u, 0x0000053bu, 0x0004002bu, 0x00000008u, 0x00000553u, 0x00008000u, 0x0004002bu, 0x00000008u, + 0x00000559u, 0x00000010u, 0x00030029u, 0x00000069u, 0x0000055eu, 0x0004002bu, 0x00000008u, 0x0000055fu, + 0x0000ffffu, 0x0004002bu, 0x00000011u, 0x000005f6u, 0x00000004u, 0x0004002bu, 0x00000011u, 0x000005f7u, + 0x00000002u, 0x0007002cu, 0x00000028u, 0x000005f8u, 0x0000021fu, 0x000005f6u, 0x000005f7u, 0x0000033bu, + 0x0004002bu, 0x00000011u, 0x000005fcu, 0x00000003u, 0x00040017u, 0x00000600u, 0x00000069u, 0x00000004u, + 0x0007002cu, 0x00000010u, 0x00000618u, 0x0000038du, 0x0000038du, 0x0000038du, 0x0000038du, 0x0007002cu, + 0x00000010u, 0x00000619u, 0x0000038fu, 0x0000038fu, 0x0000038fu, 0x0000038fu, 0x0004002bu, 0x0000000fu, + 0x00000626u, 0x00000008u, 0x0007002cu, 0x00000010u, 0x00000627u, 0x0000038fu, 0x00000392u, 0x00000391u, + 0x00000626u, 0x0004002bu, 0x0000000fu, 0x0000062au, 0x00000010u, 0x0004002bu, 0x0000000fu, 0x0000062bu, + 0x00000020u, 0x0004002bu, 0x0000000fu, 0x0000062cu, 0x00000040u, 0x0004002bu, 0x0000000fu, 0x0000062du, + 0x00000080u, 0x0007002cu, 0x00000010u, 0x0000062eu, 0x0000062au, 0x0000062bu, 0x0000062cu, 0x0000062du, + 0x00040032u, 0x00000008u, 0x00000661u, 0x00000000u, 0x00040032u, 0x00000006u, 0x00000667u, 0x00000000u, + 0x00060034u, 0x00000006u, 0x00000668u, 0x00000082u, 0x00000667u, 0x00000461u, 0x0003001du, 0x00000670u, + 0x0000000fu, 0x0003001eu, 0x00000671u, 0x00000670u, 0x00040020u, 0x00000672u, 0x0000000cu, 0x00000671u, + 0x0004003bu, 0x00000672u, 0x00000673u, 0x0000000cu, 0x00040020u, 0x00000676u, 0x0000000cu, 0x0000000fu, + 0x0003001du, 0x0000067eu, 0x0000000fu, 0x0003001eu, 0x0000067fu, 0x0000067eu, 0x00040020u, 0x00000680u, + 0x0000000cu, 0x0000067fu, 0x0004003bu, 0x00000680u, 0x00000681u, 0x0000000cu, 0x00060034u, 0x00000006u, + 0x00000688u, 0x000000c2u, 0x00000668u, 0x00000461u, 0x00060034u, 0x00000006u, 0x0000068cu, 0x000000c2u, + 0x00000667u, 0x0000022fu, 0x0003001du, 0x00000691u, 0x00000011u, 0x0003001eu, 0x00000692u, 0x00000691u, + 0x00040020u, 0x00000693u, 0x0000000cu, 0x00000692u, 0x0004003bu, 0x00000693u, 0x00000694u, 0x0000000cu, + 0x00040020u, 0x00000697u, 0x0000000cu, 0x00000011u, 0x0004002bu, 0x00000006u, 0x000006a3u, 0x000000f8u, + 0x00060034u, 0x00000006u, 0x000006b9u, 0x000000c2u, 0x00000667u, 0x0000022fu, 0x0004002bu, 0x00000006u, + 0x000006c8u, 0x000000ffu, 0x00060034u, 0x00000006u, 0x000006d0u, 0x000000c2u, 0x00000668u, 0x0000038bu, + 0x00060034u, 0x00000006u, 0x000006d4u, 0x000000c2u, 0x00000667u, 0x00000232u, 0x0003001du, 0x000006d9u, + 0x00000006u, 0x0003001eu, 0x000006dau, 0x000006d9u, 0x00040020u, 0x000006dbu, 0x0000000cu, 0x000006dau, + 0x0004003bu, 0x000006dbu, 0x000006dcu, 0x0000000cu, 0x00040020u, 0x000006deu, 0x0000000cu, 0x00000006u, + 0x0004002bu, 0x00000006u, 0x000006e3u, 0x00000018u, 0x0007002cu, 0x000004fcu, 0x000006e4u, 0x000006e3u, + 0x00000335u, 0x00000319u, 0x00000332u, 0x0007002cu, 0x000004fcu, 0x000006e6u, 0x000006c8u, 0x000006c8u, + 0x000006c8u, 0x000006c8u, 0x0004002bu, 0x00000006u, 0x000006fcu, 0x00000006u, 0x0004002bu, 0x00000006u, + 0x00000709u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x00000736u, 0x0000000au, 0x0004002bu, 0x00000006u, + 0x0000073cu, 0x00000005u, 0x0004002bu, 0x00000006u, 0x00000747u, 0x00000007u, 0x00060034u, 0x00000006u, + 0x0000075eu, 0x000000c2u, 0x00000667u, 0x0000022fu, 0x00060034u, 0x00000006u, 0x0000077fu, 0x000000c2u, + 0x00000667u, 0x00000461u, 0x0004002bu, 0x00000011u, 0x00000781u, 0x0000ffffu, 0x00060034u, 0x00000006u, + 0x00000785u, 0x000000c2u, 0x00000667u, 0x0000038bu, 0x0004002bu, 0x00000006u, 0x00000787u, 0xffffffffu, + 0x00060034u, 0x00000006u, 0x000007c7u, 0x000000c2u, 0x00000667u, 0x0000022fu, 0x00060034u, 0x00000006u, + 0x000007fau, 0x000000c2u, 0x00000667u, 0x0000022fu, 0x00060034u, 0x00000006u, 0x00000819u, 0x000000c2u, + 0x00000667u, 0x00000232u, 0x00040032u, 0x00000008u, 0x0000084cu, 0x00000000u, 0x00060034u, 0x00000008u, + 0x0000084du, 0x000000c7u, 0x0000084cu, 0x0000022fu, 0x00060034u, 0x00000069u, 0x0000084eu, 0x000000abu, + 0x0000084du, 0x00000225u, 0x00060034u, 0x00000008u, 0x0000084fu, 0x000000c3u, 0x0000084cu, 0x0000022fu, + 0x00060034u, 0x00000069u, 0x00000850u, 0x000000aau, 0x0000084fu, 0x00000225u, 0x00060034u, 0x00000069u, + 0x00000851u, 0x000000a7u, 0x0000084eu, 0x00000850u, 0x0004002bu, 0x00000006u, 0x00000854u, 0x00000048u, + 0x00030031u, 0x00000069u, 0x00000858u, 0x00050034u, 0x00000069u, 0x00000859u, 0x000000a8u, 0x00000858u, + 0x00060034u, 0x00000006u, 0x00000863u, 0x000000c2u, 0x00000667u, 0x0000022fu, 0x00060034u, 0x00000006u, + 0x0000087du, 0x000000c2u, 0x00000667u, 0x00000461u, 0x00040017u, 0x00000884u, 0x00000069u, 0x00000002u, + 0x00060034u, 0x00000008u, 0x0000088bu, 0x000000c4u, 0x0000022fu, 0x0000084fu, 0x00060034u, 0x00000008u, + 0x0000088cu, 0x00000082u, 0x0000088bu, 0x0000022fu, 0x00060034u, 0x00000006u, 0x0000088du, 0x00000080u, + 0x0000088cu, 0x00000332u, 0x00060034u, 0x00000006u, 0x00000896u, 0x00000080u, 0x0000088bu, 0x00000332u, + 0x00060034u, 0x00000008u, 0x000008eeu, 0x00000084u, 0x0000088bu, 0x0000088bu, 0x00060034u, 0x00000006u, + 0x000008efu, 0x00000080u, 0x000008eeu, 0x00000332u, 0x00060034u, 0x00000006u, 0x000008f0u, 0x000000c2u, + 0x00000667u, 0x00000232u, 0x00060034u, 0x00000006u, 0x000008f1u, 0x00000084u, 0x000008efu, 0x000008f0u, + 0x00060034u, 0x00000008u, 0x00000905u, 0x00000082u, 0x0000088bu, 0x0000022fu, 0x00060034u, 0x00000006u, + 0x00000906u, 0x00000080u, 0x00000905u, 0x00000332u, 0x00060034u, 0x00000006u, 0x0000090fu, 0x00000080u, + 0x0000088bu, 0x00000332u, 0x00060034u, 0x00000069u, 0x00000931u, 0x000000abu, 0x0000084fu, 0x00000225u, + 0x00060034u, 0x00000069u, 0x00000932u, 0x000000a7u, 0x0000084eu, 0x00000931u, 0x0004002bu, 0x0000000fu, + 0x00000941u, 0x000000e0u, 0x0006002cu, 0x00000047u, 0x0000094cu, 0x0000038du, 0x0000038du, 0x0000038du, + 0x0004002bu, 0x0000000fu, 0x00000953u, 0x000000f8u, 0x00060034u, 0x00000069u, 0x00000966u, 0x000000aau, + 0x00000661u, 0x00000225u, 0x0004002bu, 0x00000006u, 0x0000098fu, 0x000000e0u, 0x0004002bu, 0x00000006u, + 0x000009eau, 0x0000ffffu, 0x0004002bu, 0x00000008u, 0x00000a1au, 0x000001ffu, 0x0004001cu, 0x00000a28u, + 0x0000000fu, 0x00000319u, 0x0005001eu, 0x00000a29u, 0x00000010u, 0x00000010u, 0x00000a28u, 0x0003001du, + 0x00000a2au, 0x00000a29u, 0x0003001eu, 0x00000a2bu, 0x00000a2au, 0x00040020u, 0x00000a2cu, 0x0000000cu, + 0x00000a2bu, 0x0004003bu, 0x00000a2cu, 0x00000a2du, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000a51u, + 0x00000020u, 0x0004002bu, 0x00000006u, 0x00000a57u, 0x00000040u, 0x0004002bu, 0x00000006u, 0x00000a5du, + 0x00000080u, 0x0004002bu, 0x00000006u, 0x00000a63u, 0x00000100u, 0x0004002bu, 0x00000008u, 0x00000b11u, + 0x00000080u, 0x0007002cu, 0x00000009u, 0x00000b1bu, 0x00000225u, 0x00000225u, 0x00000225u, 0x00000225u, + 0x0007002cu, 0x00000009u, 0x00000b1cu, 0x00000363u, 0x00000363u, 0x00000363u, 0x00000363u, 0x00040017u, + 0x00000b25u, 0x00000380u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x00000b31u, 0x00020000u, 0x0004002bu, + 0x00000008u, 0x00000b47u, 0x00003fffu, 0x0004001cu, 0x00000b4du, 0x000001b1u, 0x00000a57u, 0x0004002bu, + 0x00000012u, 0x00000b4eu, 0x00004000u, 0x0004002bu, 0x00000012u, 0x00000b4fu, 0xfffffc10u, 0x0005002cu, + 0x000001b1u, 0x00000b50u, 0x00000b4eu, 0x00000b4fu, 0x0004002bu, 0x00000012u, 0x00000b51u, 0x00003f04u, + 0x0004002bu, 0x00000012u, 0x00000b52u, 0xfffffc30u, 0x0005002cu, 0x000001b1u, 0x00000b53u, 0x00000b51u, + 0x00000b52u, 0x0004002bu, 0x00000012u, 0x00000b54u, 0x00003e10u, 0x0004002bu, 0x00000012u, 0x00000b55u, + 0xfffffc48u, 0x0005002cu, 0x000001b1u, 0x00000b56u, 0x00000b54u, 0x00000b55u, 0x0004002bu, 0x00000012u, + 0x00000b57u, 0x00003d22u, 0x0004002bu, 0x00000012u, 0x00000b58u, 0xfffffc68u, 0x0005002cu, 0x000001b1u, + 0x00000b59u, 0x00000b57u, 0x00000b58u, 0x0004002bu, 0x00000012u, 0x00000b5au, 0x00003c3cu, 0x0004002bu, + 0x00000012u, 0x00000b5bu, 0xfffffc84u, 0x0005002cu, 0x000001b1u, 0x00000b5cu, 0x00000b5au, 0x00000b5bu, + 0x0004002bu, 0x00000012u, 0x00000b5du, 0x00003b5du, 0x0004002bu, 0x00000012u, 0x00000b5eu, 0xfffffc98u, + 0x0005002cu, 0x000001b1u, 0x00000b5fu, 0x00000b5du, 0x00000b5eu, 0x0004002bu, 0x00000012u, 0x00000b60u, + 0x00003a83u, 0x0004002bu, 0x00000012u, 0x00000b61u, 0xfffffcb8u, 0x0005002cu, 0x000001b1u, 0x00000b62u, + 0x00000b60u, 0x00000b61u, 0x0004002bu, 0x00000012u, 0x00000b63u, 0x000039b1u, 0x0004002bu, 0x00000012u, + 0x00000b64u, 0xfffffcccu, 0x0005002cu, 0x000001b1u, 0x00000b65u, 0x00000b63u, 0x00000b64u, 0x0004002bu, + 0x00000012u, 0x00000b66u, 0x000038e4u, 0x0004002bu, 0x00000012u, 0x00000b67u, 0xfffffce0u, 0x0005002cu, + 0x000001b1u, 0x00000b68u, 0x00000b66u, 0x00000b67u, 0x0004002bu, 0x00000012u, 0x00000b69u, 0x0000381cu, + 0x0004002bu, 0x00000012u, 0x00000b6au, 0xfffffcf8u, 0x0005002cu, 0x000001b1u, 0x00000b6bu, 0x00000b69u, + 0x00000b6au, 0x0004002bu, 0x00000012u, 0x00000b6cu, 0x0000375au, 0x0004002bu, 0x00000012u, 0x00000b6du, + 0xfffffd0cu, 0x0005002cu, 0x000001b1u, 0x00000b6eu, 0x00000b6cu, 0x00000b6du, 0x0004002bu, 0x00000012u, + 0x00000b6fu, 0x0000369du, 0x0004002bu, 0x00000012u, 0x00000b70u, 0xfffffd20u, 0x0005002cu, 0x000001b1u, + 0x00000b71u, 0x00000b6fu, 0x00000b70u, 0x0004002bu, 0x00000012u, 0x00000b72u, 0x000035e5u, 0x0004002bu, + 0x00000012u, 0x00000b73u, 0xfffffd34u, 0x0005002cu, 0x000001b1u, 0x00000b74u, 0x00000b72u, 0x00000b73u, + 0x0004002bu, 0x00000012u, 0x00000b75u, 0x00003532u, 0x0004002bu, 0x00000012u, 0x00000b76u, 0xfffffd44u, + 0x0005002cu, 0x000001b1u, 0x00000b77u, 0x00000b75u, 0x00000b76u, 0x0004002bu, 0x00000012u, 0x00000b78u, + 0x00003483u, 0x0004002bu, 0x00000012u, 0x00000b79u, 0xfffffd58u, 0x0005002cu, 0x000001b1u, 0x00000b7au, + 0x00000b78u, 0x00000b79u, 0x0004002bu, 0x00000012u, 0x00000b7bu, 0x000033d9u, 0x0004002bu, 0x00000012u, + 0x00000b7cu, 0xfffffd68u, 0x0005002cu, 0x000001b1u, 0x00000b7du, 0x00000b7bu, 0x00000b7cu, 0x0004002bu, + 0x00000012u, 0x00000b7eu, 0x00003333u, 0x0004002bu, 0x00000012u, 0x00000b7fu, 0xfffffd78u, 0x0005002cu, + 0x000001b1u, 0x00000b80u, 0x00000b7eu, 0x00000b7fu, 0x0004002bu, 0x00000012u, 0x00000b81u, 0x00003291u, + 0x0004002bu, 0x00000012u, 0x00000b82u, 0xfffffd8cu, 0x0005002cu, 0x000001b1u, 0x00000b83u, 0x00000b81u, + 0x00000b82u, 0x0004002bu, 0x00000012u, 0x00000b84u, 0x000031f4u, 0x0004002bu, 0x00000012u, 0x00000b85u, + 0xfffffd94u, 0x0005002cu, 0x000001b1u, 0x00000b86u, 0x00000b84u, 0x00000b85u, 0x0004002bu, 0x00000012u, + 0x00000b87u, 0x00003159u, 0x0004002bu, 0x00000012u, 0x00000b88u, 0xfffffda8u, 0x0005002cu, 0x000001b1u, + 0x00000b89u, 0x00000b87u, 0x00000b88u, 0x0004002bu, 0x00000012u, 0x00000b8au, 0x000030c3u, 0x0004002bu, + 0x00000012u, 0x00000b8bu, 0xfffffdb4u, 0x0005002cu, 0x000001b1u, 0x00000b8cu, 0x00000b8au, 0x00000b8bu, + 0x0004002bu, 0x00000012u, 0x00000b8du, 0x00003030u, 0x0004002bu, 0x00000012u, 0x00000b8eu, 0xfffffdc4u, + 0x0005002cu, 0x000001b1u, 0x00000b8fu, 0x00000b8du, 0x00000b8eu, 0x0004002bu, 0x00000012u, 0x00000b90u, + 0x00002fa1u, 0x0004002bu, 0x00000012u, 0x00000b91u, 0xfffffdd0u, 0x0005002cu, 0x000001b1u, 0x00000b92u, + 0x00000b90u, 0x00000b91u, 0x0004002bu, 0x00000012u, 0x00000b93u, 0x00002f15u, 0x0004002bu, 0x00000012u, + 0x00000b94u, 0xfffffddcu, 0x0005002cu, 0x000001b1u, 0x00000b95u, 0x00000b93u, 0x00000b94u, 0x0004002bu, + 0x00000012u, 0x00000b96u, 0x00002e8cu, 0x0004002bu, 0x00000012u, 0x00000b97u, 0xfffffde8u, 0x0005002cu, + 0x000001b1u, 0x00000b98u, 0x00000b96u, 0x00000b97u, 0x0004002bu, 0x00000012u, 0x00000b99u, 0x00002e06u, + 0x0004002bu, 0x00000012u, 0x00000b9au, 0xfffffdf4u, 0x0005002cu, 0x000001b1u, 0x00000b9bu, 0x00000b99u, + 0x00000b9au, 0x0004002bu, 0x00000012u, 0x00000b9cu, 0x00002d83u, 0x0004002bu, 0x00000012u, 0x00000b9du, + 0xfffffe00u, 0x0005002cu, 0x000001b1u, 0x00000b9eu, 0x00000b9cu, 0x00000b9du, 0x0004002bu, 0x00000012u, + 0x00000b9fu, 0x00002d03u, 0x0004002bu, 0x00000012u, 0x00000ba0u, 0xfffffe0cu, 0x0005002cu, 0x000001b1u, + 0x00000ba1u, 0x00000b9fu, 0x00000ba0u, 0x0004002bu, 0x00000012u, 0x00000ba2u, 0x00002c86u, 0x0004002bu, + 0x00000012u, 0x00000ba3u, 0xfffffe14u, 0x0005002cu, 0x000001b1u, 0x00000ba4u, 0x00000ba2u, 0x00000ba3u, + 0x0004002bu, 0x00000012u, 0x00000ba5u, 0x00002c0bu, 0x0004002bu, 0x00000012u, 0x00000ba6u, 0xfffffe20u, + 0x0005002cu, 0x000001b1u, 0x00000ba7u, 0x00000ba5u, 0x00000ba6u, 0x0004002bu, 0x00000012u, 0x00000ba8u, + 0x00002b93u, 0x0004002bu, 0x00000012u, 0x00000ba9u, 0xfffffe2cu, 0x0005002cu, 0x000001b1u, 0x00000baau, + 0x00000ba8u, 0x00000ba9u, 0x0004002bu, 0x00000012u, 0x00000babu, 0x00002b1eu, 0x0004002bu, 0x00000012u, + 0x00000bacu, 0xfffffe34u, 0x0005002cu, 0x000001b1u, 0x00000badu, 0x00000babu, 0x00000bacu, 0x0004002bu, + 0x00000012u, 0x00000baeu, 0x00002aabu, 0x0004002bu, 0x00000012u, 0x00000bafu, 0xfffffe3cu, 0x0005002cu, + 0x000001b1u, 0x00000bb0u, 0x00000baeu, 0x00000bafu, 0x0004002bu, 0x00000012u, 0x00000bb1u, 0x00002a3au, + 0x0004002bu, 0x00000012u, 0x00000bb2u, 0xfffffe48u, 0x0005002cu, 0x000001b1u, 0x00000bb3u, 0x00000bb1u, + 0x00000bb2u, 0x0004002bu, 0x00000012u, 0x00000bb4u, 0x000029ccu, 0x0004002bu, 0x00000012u, 0x00000bb5u, + 0xfffffe50u, 0x0005002cu, 0x000001b1u, 0x00000bb6u, 0x00000bb4u, 0x00000bb5u, 0x0004002bu, 0x00000012u, + 0x00000bb7u, 0x00002960u, 0x0004002bu, 0x00000012u, 0x00000bb8u, 0xfffffe58u, 0x0005002cu, 0x000001b1u, + 0x00000bb9u, 0x00000bb7u, 0x00000bb8u, 0x0004002bu, 0x00000012u, 0x00000bbau, 0x000028f6u, 0x0004002bu, + 0x00000012u, 0x00000bbbu, 0xfffffe60u, 0x0005002cu, 0x000001b1u, 0x00000bbcu, 0x00000bbau, 0x00000bbbu, + 0x0004002bu, 0x00000012u, 0x00000bbdu, 0x0000288eu, 0x0004002bu, 0x00000012u, 0x00000bbeu, 0xfffffe68u, + 0x0005002cu, 0x000001b1u, 0x00000bbfu, 0x00000bbdu, 0x00000bbeu, 0x0004002bu, 0x00000012u, 0x00000bc0u, + 0x00002828u, 0x0004002bu, 0x00000012u, 0x00000bc1u, 0xfffffe70u, 0x0005002cu, 0x000001b1u, 0x00000bc2u, + 0x00000bc0u, 0x00000bc1u, 0x0004002bu, 0x00000012u, 0x00000bc3u, 0x000027c4u, 0x0004002bu, 0x00000012u, + 0x00000bc4u, 0xfffffe78u, 0x0005002cu, 0x000001b1u, 0x00000bc5u, 0x00000bc3u, 0x00000bc4u, 0x0004002bu, + 0x00000012u, 0x00000bc6u, 0x00002762u, 0x0004002bu, 0x00000012u, 0x00000bc7u, 0xfffffe80u, 0x0005002cu, + 0x000001b1u, 0x00000bc8u, 0x00000bc6u, 0x00000bc7u, 0x0004002bu, 0x00000012u, 0x00000bc9u, 0x00002702u, + 0x0004002bu, 0x00000012u, 0x00000bcau, 0xfffffe88u, 0x0005002cu, 0x000001b1u, 0x00000bcbu, 0x00000bc9u, + 0x00000bcau, 0x0004002bu, 0x00000012u, 0x00000bccu, 0x000026a4u, 0x0004002bu, 0x00000012u, 0x00000bcdu, + 0xfffffe90u, 0x0005002cu, 0x000001b1u, 0x00000bceu, 0x00000bccu, 0x00000bcdu, 0x0004002bu, 0x00000012u, + 0x00000bcfu, 0x00002648u, 0x0004002bu, 0x00000012u, 0x00000bd0u, 0xfffffe94u, 0x0005002cu, 0x000001b1u, + 0x00000bd1u, 0x00000bcfu, 0x00000bd0u, 0x0004002bu, 0x00000012u, 0x00000bd2u, 0x000025edu, 0x0004002bu, + 0x00000012u, 0x00000bd3u, 0xfffffe9cu, 0x0005002cu, 0x000001b1u, 0x00000bd4u, 0x00000bd2u, 0x00000bd3u, + 0x0004002bu, 0x00000012u, 0x00000bd5u, 0x00002594u, 0x0004002bu, 0x00000012u, 0x00000bd6u, 0xfffffea4u, + 0x0005002cu, 0x000001b1u, 0x00000bd7u, 0x00000bd5u, 0x00000bd6u, 0x0004002bu, 0x00000012u, 0x00000bd8u, + 0x0000253du, 0x0004002bu, 0x00000012u, 0x00000bd9u, 0xfffffea8u, 0x0005002cu, 0x000001b1u, 0x00000bdau, + 0x00000bd8u, 0x00000bd9u, 0x0004002bu, 0x00000012u, 0x00000bdbu, 0x000024e7u, 0x0004002bu, 0x00000012u, + 0x00000bdcu, 0xfffffeacu, 0x0005002cu, 0x000001b1u, 0x00000bddu, 0x00000bdbu, 0x00000bdcu, 0x0004002bu, + 0x00000012u, 0x00000bdeu, 0x00002492u, 0x0004002bu, 0x00000012u, 0x00000bdfu, 0xfffffeb4u, 0x0005002cu, + 0x000001b1u, 0x00000be0u, 0x00000bdeu, 0x00000bdfu, 0x0004002bu, 0x00000012u, 0x00000be1u, 0x0000243fu, + 0x0004002bu, 0x00000012u, 0x00000be2u, 0xfffffebcu, 0x0005002cu, 0x000001b1u, 0x00000be3u, 0x00000be1u, + 0x00000be2u, 0x0004002bu, 0x00000012u, 0x00000be4u, 0x000023eeu, 0x0004002bu, 0x00000012u, 0x00000be5u, + 0xfffffec0u, 0x0005002cu, 0x000001b1u, 0x00000be6u, 0x00000be4u, 0x00000be5u, 0x0004002bu, 0x00000012u, + 0x00000be7u, 0x0000239eu, 0x0004002bu, 0x00000012u, 0x00000be8u, 0xfffffec4u, 0x0005002cu, 0x000001b1u, + 0x00000be9u, 0x00000be7u, 0x00000be8u, 0x0004002bu, 0x00000012u, 0x00000beau, 0x0000234fu, 0x0004002bu, + 0x00000012u, 0x00000bebu, 0xfffffeccu, 0x0005002cu, 0x000001b1u, 0x00000becu, 0x00000beau, 0x00000bebu, + 0x0004002bu, 0x00000012u, 0x00000bedu, 0x00002302u, 0x0004002bu, 0x00000012u, 0x00000beeu, 0xfffffed0u, + 0x0005002cu, 0x000001b1u, 0x00000befu, 0x00000bedu, 0x00000beeu, 0x0004002bu, 0x00000012u, 0x00000bf0u, + 0x000022b6u, 0x0004002bu, 0x00000012u, 0x00000bf1u, 0xfffffed8u, 0x0005002cu, 0x000001b1u, 0x00000bf2u, + 0x00000bf0u, 0x00000bf1u, 0x0004002bu, 0x00000012u, 0x00000bf3u, 0x0000226cu, 0x0005002cu, 0x000001b1u, + 0x00000bf4u, 0x00000bf3u, 0x00000bf1u, 0x0004002bu, 0x00000012u, 0x00000bf5u, 0x00002222u, 0x0004002bu, + 0x00000012u, 0x00000bf6u, 0xfffffee0u, 0x0005002cu, 0x000001b1u, 0x00000bf7u, 0x00000bf5u, 0x00000bf6u, + 0x0004002bu, 0x00000012u, 0x00000bf8u, 0x000021dau, 0x0004002bu, 0x00000012u, 0x00000bf9u, 0xfffffee4u, + 0x0005002cu, 0x000001b1u, 0x00000bfau, 0x00000bf8u, 0x00000bf9u, 0x0004002bu, 0x00000012u, 0x00000bfbu, + 0x00002193u, 0x0004002bu, 0x00000012u, 0x00000bfcu, 0xfffffee8u, 0x0005002cu, 0x000001b1u, 0x00000bfdu, + 0x00000bfbu, 0x00000bfcu, 0x0004002bu, 0x00000012u, 0x00000bfeu, 0x0000214du, 0x0004002bu, 0x00000012u, + 0x00000bffu, 0xfffffeecu, 0x0005002cu, 0x000001b1u, 0x00000c00u, 0x00000bfeu, 0x00000bffu, 0x0004002bu, + 0x00000012u, 0x00000c01u, 0x00002108u, 0x0004002bu, 0x00000012u, 0x00000c02u, 0xfffffef4u, 0x0005002cu, + 0x000001b1u, 0x00000c03u, 0x00000c01u, 0x00000c02u, 0x0004002bu, 0x00000012u, 0x00000c04u, 0x000020c5u, + 0x0005002cu, 0x000001b1u, 0x00000c05u, 0x00000c04u, 0x00000c02u, 0x0004002bu, 0x00000012u, 0x00000c06u, + 0x00002082u, 0x0004002bu, 0x00000012u, 0x00000c07u, 0xfffffefcu, 0x0005002cu, 0x000001b1u, 0x00000c08u, + 0x00000c06u, 0x00000c07u, 0x0004002bu, 0x00000012u, 0x00000c09u, 0x00002041u, 0x0005002cu, 0x000001b1u, + 0x00000c0au, 0x00000c09u, 0x00000c07u, 0x0043002cu, 0x00000b4du, 0x00000c0bu, 0x00000b50u, 0x00000b53u, + 0x00000b56u, 0x00000b59u, 0x00000b5cu, 0x00000b5fu, 0x00000b62u, 0x00000b65u, 0x00000b68u, 0x00000b6bu, + 0x00000b6eu, 0x00000b71u, 0x00000b74u, 0x00000b77u, 0x00000b7au, 0x00000b7du, 0x00000b80u, 0x00000b83u, + 0x00000b86u, 0x00000b89u, 0x00000b8cu, 0x00000b8fu, 0x00000b92u, 0x00000b95u, 0x00000b98u, 0x00000b9bu, + 0x00000b9eu, 0x00000ba1u, 0x00000ba4u, 0x00000ba7u, 0x00000baau, 0x00000badu, 0x00000bb0u, 0x00000bb3u, + 0x00000bb6u, 0x00000bb9u, 0x00000bbcu, 0x00000bbfu, 0x00000bc2u, 0x00000bc5u, 0x00000bc8u, 0x00000bcbu, + 0x00000bceu, 0x00000bd1u, 0x00000bd4u, 0x00000bd7u, 0x00000bdau, 0x00000bddu, 0x00000be0u, 0x00000be3u, + 0x00000be6u, 0x00000be9u, 0x00000becu, 0x00000befu, 0x00000bf2u, 0x00000bf4u, 0x00000bf7u, 0x00000bfau, + 0x00000bfdu, 0x00000c00u, 0x00000c03u, 0x00000c05u, 0x00000c08u, 0x00000c0au, 0x00040020u, 0x00000c0eu, + 0x00000007u, 0x00000b4du, 0x0004002bu, 0x00000008u, 0x00000c2bu, 0x00007fffu, 0x0004002bu, 0x00000008u, + 0x00000c3du, 0x3fffffffu, 0x0004002bu, 0x00000008u, 0x00000c3eu, 0x20000000u, 0x0005002cu, 0x000000f2u, + 0x00000c57u, 0x00000225u, 0x00000225u, 0x0004002bu, 0x00000008u, 0x00000c70u, 0xffff8000u, 0x0005002cu, + 0x000000f2u, 0x00000c8au, 0x00000c2bu, 0x00000c2bu, 0x0004002bu, 0x00000008u, 0x00000c8cu, 0xffff0000u, + 0x0005002cu, 0x000000f2u, 0x00000c8du, 0x00000c8cu, 0x00000c8cu, 0x0005002cu, 0x000000f2u, 0x00000c8eu, + 0x0000055fu, 0x0000055fu, 0x0004002bu, 0x00000008u, 0x00000c93u, 0xffffffe0u, 0x00060034u, 0x00000008u, + 0x00000cb1u, 0x00000080u, 0x00000232u, 0x0000084fu, 0x00050034u, 0x00000012u, 0x00000cb2u, 0x00000072u, + 0x00000cb1u, 0x00060034u, 0x00000008u, 0x00000cc7u, 0x00000080u, 0x00000238u, 0x0000084fu, 0x00050034u, + 0x00000012u, 0x00000cc8u, 0x00000072u, 0x00000cc7u, 0x0006001eu, 0x00000ce4u, 0x00000008u, 0x00000008u, + 0x00000008u, 0x00000006u, 0x0003001eu, 0x00000ce5u, 0x00000ce4u, 0x00040020u, 0x00000ce6u, 0x00000002u, + 0x00000ce5u, 0x0004003bu, 0x00000ce6u, 0x00000ce7u, 0x00000002u, 0x00040020u, 0x00000ce8u, 0x00000002u, + 0x00000008u, 0x0004002bu, 0x00000008u, 0x00000cf5u, 0xffffffffu, 0x00060034u, 0x00000069u, 0x00000d54u, + 0x000000adu, 0x0000088bu, 0x0000022fu, 0x00060034u, 0x00000008u, 0x00000daau, 0x00000082u, 0x0000088bu, + 0x0000022fu, 0x00060034u, 0x00000008u, 0x00000dbeu, 0x00000080u, 0x00000232u, 0x0000084fu, 0x00060034u, + 0x00000008u, 0x00000dceu, 0x00000080u, 0x0000023bu, 0x0000084fu, 0x0005002cu, 0x000000f2u, 0x00000df7u, + 0x00000225u, 0x0000022fu, 0x0004002bu, 0x00000006u, 0x00000e43u, 0x0000000bu, 0x0006002cu, 0x00000311u, + 0x00000e44u, 0x00000e43u, 0x000006fcu, 0x00000461u, 0x0004002bu, 0x00000006u, 0x00000e46u, 0x0000001fu, + 0x0004002bu, 0x00000006u, 0x00000e83u, 0x00000fffu, 0x0004002bu, 0x00000006u, 0x00000e97u, 0x00001000u, + 0x0004001cu, 0x00000e98u, 0x0000000fu, 0x00000e97u, 0x0003001eu, 0x00000e99u, 0x00000e98u, 0x0003001du, + 0x00000e9au, 0x00000e99u, 0x0003001eu, 0x00000e9bu, 0x00000e9au, 0x00040020u, 0x00000e9cu, 0x0000000cu, + 0x00000e9bu, 0x0004003bu, 0x00000e9cu, 0x00000e9du, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000ea6u, + 0x0000000fu, 0x0004002bu, 0x00000006u, 0x00000edeu, 0x0000000eu, 0x0004002bu, 0x00000006u, 0x00000f3bu, + 0x000007ffu, 0x0004002bu, 0x00000006u, 0x00000f64u, 0x00000800u, 0x0004001cu, 0x00000f65u, 0x00000011u, + 0x00000f64u, 0x0003001eu, 0x00000f66u, 0x00000f65u, 0x0003001du, 0x00000f67u, 0x00000f66u, 0x0003001eu, + 0x00000f68u, 0x00000f67u, 0x00040020u, 0x00000f69u, 0x0000000cu, 0x00000f68u, 0x0004003bu, 0x00000f69u, + 0x00000f6au, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000f6cu, 0x00000400u, 0x0004002bu, 0x00000006u, + 0x0000100cu, 0xfffffffcu, 0x0004002bu, 0x00000011u, 0x000010c1u, 0x00000008u, 0x0004002bu, 0x00000012u, + 0x000010cdu, 0x00000080u, 0x0004002bu, 0x00000008u, 0x0000116du, 0x00000020u, 0x0004002bu, 0x00000008u, + 0x00001184u, 0x000003ffu, 0x0004002bu, 0x00000006u, 0x000011f7u, 0x00001fffu, 0x0004002bu, 0x00000006u, + 0x000012a3u, 0x0000000cu, 0x0004002bu, 0x00000008u, 0x000012c8u, 0x00000400u, 0x0004002bu, 0x00000012u, + 0x00001350u, 0x00000010u, 0x0004002bu, 0x00000008u, 0x00001401u, 0xffffff01u, 0x0005002cu, 0x000000f2u, + 0x0000140du, 0x00000559u, 0x00000559u, 0x0004002bu, 0x00000012u, 0x000019ffu, 0x000000ffu, 0x0004002bu, + 0x00000008u, 0x00001a1eu, 0x00004000u, 0x0004002bu, 0x00000008u, 0x00001a3au, 0xffffff00u, 0x0004002bu, + 0x00000008u, 0x00001ad5u, 0x00000100u, 0x0006002cu, 0x00000044u, 0x00001ad6u, 0x00001ad5u, 0x00001ad5u, + 0x00001ad5u, 0x00060034u, 0x00000008u, 0x00001d12u, 0x00000082u, 0x0000088bu, 0x0000022fu, 0x000d001eu, + 0x00001d1au, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000012u, 0x00000012u, 0x00000008u, 0x00000008u, + 0x00000008u, 0x00000012u, 0x0000000fu, 0x0000000fu, 0x0003001du, 0x00001d1bu, 0x00001d1au, 0x0003001eu, + 0x00001d1cu, 0x00001d1bu, 0x00040020u, 0x00001d1du, 0x0000000cu, 0x00001d1cu, 0x0004003bu, 0x00001d1du, + 0x00001d1eu, 0x0000000cu, 0x00060034u, 0x00000069u, 0x00001d23u, 0x000000adu, 0x0000088bu, 0x0000022fu, + 0x00060034u, 0x00000008u, 0x00001d2bu, 0x00000082u, 0x0000088bu, 0x0000022fu, 0x00050034u, 0x00000008u, + 0x00001d2cu, 0x000000c8u, 0x00001d2bu, 0x00060034u, 0x00000008u, 0x00001d2fu, 0x00000082u, 0x0000088bu, + 0x0000022fu, 0x00050034u, 0x00000008u, 0x00001d30u, 0x000000c8u, 0x00001d2fu, 0x00040020u, 0x00001d51u, + 0x0000000cu, 0x00000010u, 0x0004002bu, 0x00000006u, 0x00001d7bu, 0x00004000u, 0x0004002bu, 0x00000006u, + 0x00001d8cu, 0x00000200u, 0x0004002bu, 0x00000006u, 0x00001da9u, 0x00002000u, 0x0004002bu, 0x00000006u, + 0x00001daeu, 0x00008000u, 0x0004002bu, 0x00000006u, 0x00001db3u, 0x00010000u, 0x0004002bu, 0x00000006u, + 0x00001db8u, 0x00020000u, 0x0004002bu, 0x00000006u, 0x00001dbdu, 0x00040000u, 0x0004002bu, 0x00000006u, + 0x00001dc2u, 0x00080000u, 0x0004002bu, 0x00000006u, 0x00001dc7u, 0x00200000u, 0x0004002bu, 0x00000006u, + 0x00001dccu, 0x00100000u, 0x0004002bu, 0x00000006u, 0x00001dd1u, 0x00400000u, 0x0004002bu, 0x00000006u, + 0x00001dd6u, 0x00800000u, 0x0004002bu, 0x00000006u, 0x00001ddbu, 0x01000000u, 0x0004002bu, 0x00000006u, + 0x00001ddfu, 0x10000000u, 0x00040020u, 0x00001de9u, 0x00000002u, 0x00000006u, 0x00060034u, 0x00000069u, + 0x00001e98u, 0x000000adu, 0x0000088bu, 0x0000022fu, 0x00040020u, 0x00001f51u, 0x0000000cu, 0x00000009u, + 0x0004002bu, 0x00000006u, 0x00001ff8u, 0x02000000u, 0x00040020u, 0x00002075u, 0x00000001u, 0x00000311u, + 0x0004003bu, 0x00002075u, 0x00002076u, 0x00000001u, 0x00040020u, 0x00002077u, 0x00000001u, 0x00000006u, + 0x0004003bu, 0x00002075u, 0x00002080u, 0x00000001u, 0x00040032u, 0x00000008u, 0x00002089u, 0x00000400u, + 0x00040032u, 0x00000006u, 0x0000208au, 0x00000001u, 0x00040032u, 0x00000006u, 0x0000208bu, 0x00000001u, + 0x00060033u, 0x00000311u, 0x0000208cu, 0x0000208au, 0x0000208bu, 0x00000461u, 0x00060034u, 0x00000006u, + 0x0000208du, 0x00000051u, 0x0000208cu, 0x00000000u, 0x00060034u, 0x00000008u, 0x0000208eu, 0x00000080u, + 0x0000208du, 0x00000332u, 0x00060034u, 0x00000008u, 0x0000208fu, 0x00000087u, 0x00002089u, 0x0000208eu, + 0x00040032u, 0x00000008u, 0x00002094u, 0x00000100u, 0x00060034u, 0x00000008u, 0x00002095u, 0x00000087u, + 0x00002094u, 0x0000116du, 0x0003001du, 0x00002098u, 0x00000006u, 0x0003001eu, 0x00002099u, 0x00002098u, + 0x00040020u, 0x0000209au, 0x0000000cu, 0x00002099u, 0x0004003bu, 0x0000209au, 0x0000209bu, 0x0000000cu, + 0x0007001eu, 0x0000209fu, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00040020u, + 0x000020a0u, 0x00000009u, 0x0000209fu, 0x0004003bu, 0x000020a0u, 0x000020a1u, 0x00000009u, 0x00040020u, + 0x000020a2u, 0x00000009u, 0x00000006u, 0x0003001du, 0x000020ccu, 0x00000006u, 0x0003001eu, 0x000020cdu, + 0x000020ccu, 0x00040020u, 0x000020ceu, 0x0000000cu, 0x000020cdu, 0x0004003bu, 0x000020ceu, 0x000020cfu, + 0x0000000cu, 0x0004002bu, 0x00000008u, 0x000020fbu, 0x00000040u, 0x00030001u, 0x00000010u, 0x00007a55u, + 0x00030001u, 0x00000011u, 0x00007a7bu, 0x00030001u, 0x0000000fu, 0x00007a88u, 0x00030001u, 0x00000044u, + 0x00007abau, 0x00030001u, 0x000000f2u, 0x00007b4du, 0x00030001u, 0x00000013u, 0x00007c64u, 0x00030001u, + 0x00000012u, 0x00008acfu, 0x00030001u, 0x00000008u, 0x000090a8u, 0x00030001u, 0x00000047u, 0x000094c6u, + 0x00030001u, 0x00000006u, 0x0000a771u, 0x0006002cu, 0x00000311u, 0x0000c227u, 0x000006a3u, 0x000006a3u, + 0x000006a3u, 0x0005002cu, 0x000000b4u, 0x0000c228u, 0x00000469u, 0x00000469u, 0x0006002cu, 0x00000311u, + 0x0000c229u, 0x00000319u, 0x00000319u, 0x00000319u, 0x0006002cu, 0x00000311u, 0x0000c22au, 0x0000031fu, + 0x0000031fu, 0x0000031fu, 0x0006002cu, 0x00000044u, 0x0000c22bu, 0x00000c93u, 0x00000c93u, 0x00000c93u, + 0x0006002cu, 0x00000044u, 0x0000c22cu, 0x00000559u, 0x00000559u, 0x00000559u, 0x0007002cu, 0x00000009u, + 0x0000c22du, 0x00000c93u, 0x00000c93u, 0x00000c93u, 0x00000c93u, 0x0007002cu, 0x00000009u, 0x0000c22eu, + 0x00000274u, 0x00000274u, 0x00000274u, 0x00000274u, 0x0007002cu, 0x00000009u, 0x0000c22fu, 0x00000b11u, + 0x00000b11u, 0x00000b11u, 0x00000b11u, 0x0005002cu, 0x000000f2u, 0x0000c230u, 0x0000022fu, 0x0000022fu, + 0x0006002cu, 0x00000044u, 0x0000c231u, 0x00000c70u, 0x00000c70u, 0x00000c70u, 0x0005002cu, 0x000000f2u, + 0x0000c232u, 0x0000023bu, 0x0000023bu, 0x0005002cu, 0x000000f2u, 0x0000c233u, 0x00000371u, 0x00000371u, + 0x0005002cu, 0x000000b4u, 0x0000c234u, 0x000011f7u, 0x000011f7u, 0x0005002cu, 0x000000b4u, 0x0000c235u, + 0x0000038bu, 0x0000038bu, 0x0006002cu, 0x00000311u, 0x0000c236u, 0x00000e46u, 0x00000e46u, 0x00000e46u, + 0x0006002cu, 0x00000311u, 0x0000c237u, 0x00000469u, 0x00000469u, 0x00000469u, 0x0006002cu, 0x00000311u, + 0x0000c238u, 0x0000038bu, 0x0000038bu, 0x0000038bu, 0x0007002cu, 0x00000013u, 0x0000c239u, 0x000004eau, + 0x000004eau, 0x000004eau, 0x000004eau, 0x0007002cu, 0x00000009u, 0x0000c23au, 0x00000262u, 0x00000262u, + 0x00000262u, 0x00000262u, 0x0005002cu, 0x000001b1u, 0x0000c23bu, 0x000004eau, 0x000004eau, 0x0005002cu, + 0x000000f2u, 0x0000c23cu, 0x0000116du, 0x0000116du, 0x0005002cu, 0x000001b1u, 0x0000c23du, 0x00001350u, + 0x00001350u, 0x0005002cu, 0x000001b1u, 0x0000c23eu, 0x000004d9u, 0x000004d9u, 0x0007002cu, 0x00000013u, + 0x0000c23fu, 0x00001350u, 0x00001350u, 0x00001350u, 0x00001350u, 0x0007002cu, 0x00000013u, 0x0000c240u, + 0x000004d9u, 0x000004d9u, 0x000004d9u, 0x000004d9u, 0x0005002cu, 0x000000f2u, 0x0000c241u, 0x0000023eu, + 0x0000023eu, 0x0005002cu, 0x000000f2u, 0x0000c242u, 0x00000b11u, 0x00000b11u, 0x0006002cu, 0x00000047u, + 0x0000c243u, 0x00000953u, 0x00000953u, 0x00000953u, 0x0006002cu, 0x00000044u, 0x0000c244u, 0x00000241u, + 0x00000241u, 0x00000241u, 0x0006002cu, 0x00000044u, 0x0000c245u, 0x0000035eu, 0x0000035eu, 0x0000035eu, + 0x0006002cu, 0x00000044u, 0x0000c246u, 0x00000262u, 0x00000262u, 0x00000262u, 0x0006002cu, 0x00000044u, + 0x0000c247u, 0x00000371u, 0x00000371u, 0x00000371u, 0x0006002cu, 0x000004bbu, 0x0000c249u, 0x000004d9u, + 0x000004d9u, 0x000004d9u, 0x0006002cu, 0x00000047u, 0x0000c24au, 0x00000474u, 0x00000474u, 0x00000474u, + 0x0006002cu, 0x000004bbu, 0x0000c24bu, 0x000004eau, 0x000004eau, 0x000004eau, 0x0006002cu, 0x000004bbu, + 0x0000c24cu, 0x000004eeu, 0x000004eeu, 0x000004eeu, 0x0006002cu, 0x00000044u, 0x0000c250u, 0x00000225u, + 0x00000225u, 0x00000225u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, + 0x00000005u, 0x0004003bu, 0x0000039fu, 0x0000632fu, 0x00000007u, 0x0004003bu, 0x0000039fu, 0x00006331u, + 0x00000007u, 0x0004003bu, 0x00000c0eu, 0x000048fdu, 0x00000007u, 0x0004003bu, 0x00000c0eu, 0x00004851u, + 0x00000007u, 0x0004003bu, 0x00000c0eu, 0x00002d4fu, 0x00000007u, 0x0004003bu, 0x00000c0eu, 0x00002cc9u, + 0x00000007u, 0x0004003bu, 0x00000c0eu, 0x00002c43u, 0x00000007u, 0x0004003bu, 0x00000c0eu, 0x0000266du, + 0x00000007u, 0x000300f7u, 0x00002142u, 0x00000000u, 0x000300fbu, 0x00000332u, 0x00002143u, 0x000200f8u, + 0x00002143u, 0x00050041u, 0x00002077u, 0x00002078u, 0x00002076u, 0x00000332u, 0x0004003du, 0x00000006u, + 0x00002079u, 0x00002078u, 0x0004007cu, 0x00000008u, 0x0000207au, 0x00002079u, 0x00050041u, 0x00002077u, + 0x0000207cu, 0x00002076u, 0x00000461u, 0x0004003du, 0x00000006u, 0x0000207du, 0x0000207cu, 0x0004007cu, + 0x00000008u, 0x0000207eu, 0x0000207du, 0x0004003du, 0x00000311u, 0x00002081u, 0x00002080u, 0x0007004fu, + 0x000000b4u, 0x00002082u, 0x00002081u, 0x00002081u, 0x00000000u, 0x00000001u, 0x0004007cu, 0x000000f2u, + 0x00002083u, 0x00002082u, 0x00050051u, 0x00000008u, 0x00002086u, 0x00002083u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00002088u, 0x00002083u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00002090u, 0x00002088u, + 0x0000208fu, 0x00050080u, 0x00000008u, 0x00002091u, 0x00002086u, 0x00002090u, 0x00050084u, 0x00000008u, + 0x00002096u, 0x00002091u, 0x00002095u, 0x00060041u, 0x000006deu, 0x0000209du, 0x0000209bu, 0x00000225u, + 0x00002091u, 0x0004003du, 0x00000006u, 0x0000209eu, 0x0000209du, 0x00050041u, 0x000020a2u, 0x000020a3u, + 0x000020a1u, 0x00000238u, 0x0004003du, 0x00000006u, 0x000020a4u, 0x000020a3u, 0x000500c7u, 0x00000006u, + 0x000020a5u, 0x0000209eu, 0x000020a4u, 0x000500aau, 0x00000069u, 0x000020a7u, 0x000020a5u, 0x00000332u, + 0x000300f7u, 0x000020a9u, 0x00000000u, 0x000400fau, 0x000020a7u, 0x000020a8u, 0x000020a9u, 0x000200f8u, + 0x000020a8u, 0x000200f9u, 0x00002142u, 0x000200f8u, 0x000020a9u, 0x0004003du, 0x00000311u, 0x000020acu, + 0x00002076u, 0x0007004fu, 0x000000b4u, 0x000020adu, 0x000020acu, 0x000020acu, 0x00000000u, 0x00000001u, + 0x00050041u, 0x000020a2u, 0x000020afu, 0x000020a1u, 0x00000232u, 0x0004003du, 0x00000006u, 0x000020b0u, + 0x000020afu, 0x00050041u, 0x000020a2u, 0x000020b2u, 0x000020a1u, 0x00000235u, 0x0004003du, 0x00000006u, + 0x000020b3u, 0x000020b2u, 0x00050041u, 0x000020a2u, 0x000020b5u, 0x000020a1u, 0x00000225u, 0x0004003du, + 0x00000006u, 0x000020b6u, 0x000020b5u, 0x00050041u, 0x000020a2u, 0x000020b8u, 0x000020a1u, 0x0000022fu, + 0x0004003du, 0x00000006u, 0x000020b9u, 0x000020b8u, 0x00050050u, 0x000000b4u, 0x0000215au, 0x000020b0u, + 0x000020b3u, 0x000500b0u, 0x00000884u, 0x0000215bu, 0x000020adu, 0x0000215au, 0x0004009bu, 0x00000069u, + 0x0000215cu, 0x0000215bu, 0x000300f7u, 0x00002185u, 0x00000000u, 0x000400fau, 0x0000215cu, 0x0000215du, + 0x00002185u, 0x000200f8u, 0x0000215du, 0x00050050u, 0x000000b4u, 0x0000215fu, 0x0000088du, 0x0000088du, + 0x000500c7u, 0x000000b4u, 0x00002160u, 0x000020adu, 0x0000215fu, 0x00050050u, 0x000000f2u, 0x00002162u, + 0x0000084fu, 0x0000084fu, 0x000500c2u, 0x000000b4u, 0x00002163u, 0x000020adu, 0x00002162u, 0x00050051u, + 0x00000006u, 0x00002165u, 0x00002160u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00002166u, 0x00002165u, + 0x00000896u, 0x00050051u, 0x00000006u, 0x00002168u, 0x00002160u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00002169u, 0x00002166u, 0x00002168u, 0x000500c2u, 0x00000006u, 0x0000216cu, 0x000020b0u, 0x0000084fu, + 0x00050051u, 0x00000006u, 0x0000216eu, 0x00002163u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000216fu, + 0x0000216cu, 0x0000216eu, 0x00050080u, 0x00000006u, 0x00002170u, 0x000020b6u, 0x0000216fu, 0x00050051u, + 0x00000006u, 0x00002172u, 0x00002163u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00002173u, 0x00002170u, + 0x00002172u, 0x000300f7u, 0x000021e9u, 0x00000000u, 0x000d00fbu, 0x00000661u, 0x000021e9u, 0x00000000u, + 0x0000218cu, 0x00000001u, 0x0000218cu, 0x00000002u, 0x0000219fu, 0x00000003u, 0x000021c3u, 0x00000004u, + 0x000021dau, 0x000200f8u, 0x000021dau, 0x000500c7u, 0x00000006u, 0x000021dcu, 0x00002173u, 0x000006d0u, + 0x00050084u, 0x00000006u, 0x000021deu, 0x00002169u, 0x000006d4u, 0x00050080u, 0x00000006u, 0x000021e0u, + 0x000021dcu, 0x000021deu, 0x00060041u, 0x000006deu, 0x000021e2u, 0x000006dcu, 0x00000225u, 0x000021e0u, + 0x0004003du, 0x00000006u, 0x000021e3u, 0x000021e2u, 0x00070050u, 0x000004fcu, 0x000021e5u, 0x000021e3u, + 0x000021e3u, 0x000021e3u, 0x000021e3u, 0x000500c2u, 0x000004fcu, 0x000021e6u, 0x000021e5u, 0x000006e4u, + 0x000500c7u, 0x000004fcu, 0x000021e7u, 0x000021e6u, 0x000006e6u, 0x00040071u, 0x00000010u, 0x000021e8u, + 0x000021e7u, 0x000200f9u, 0x000021e9u, 0x000200f8u, 0x000021c3u, 0x000500c7u, 0x00000006u, 0x000021c5u, + 0x00002173u, 0x00000688u, 0x00050084u, 0x00000006u, 0x000021c7u, 0x00002169u, 0x000006b9u, 0x00050080u, + 0x00000006u, 0x000021c9u, 0x000021c5u, 0x000021c7u, 0x000500c6u, 0x00000006u, 0x000021cbu, 0x000021c9u, + 0x00000461u, 0x00060041u, 0x00000697u, 0x000021ccu, 0x00000694u, 0x00000225u, 0x000021cbu, 0x0004003du, + 0x00000011u, 0x000021cdu, 0x000021ccu, 0x00040071u, 0x00000006u, 0x000021ceu, 0x000021cdu, 0x000500c2u, + 0x00000006u, 0x000021d0u, 0x000021ceu, 0x00000319u, 0x00040071u, 0x0000000fu, 0x000021d1u, 0x000021d0u, + 0x000500c7u, 0x00000006u, 0x000021d4u, 0x000021ceu, 0x000006c8u, 0x00040071u, 0x0000000fu, 0x000021d5u, + 0x000021d4u, 0x00070050u, 0x00000010u, 0x000021d9u, 0x000021d1u, 0x000021d1u, 0x000021d1u, 0x000021d5u, + 0x000200f9u, 0x000021e9u, 0x000200f8u, 0x0000219fu, 0x000500c7u, 0x00000006u, 0x000021a1u, 0x00002173u, + 0x00000688u, 0x00050084u, 0x00000006u, 0x000021a3u, 0x00002169u, 0x0000068cu, 0x00050080u, 0x00000006u, + 0x000021a5u, 0x000021a1u, 0x000021a3u, 0x000500c6u, 0x00000006u, 0x000021a7u, 0x000021a5u, 0x00000461u, + 0x00060041u, 0x00000697u, 0x000021a8u, 0x00000694u, 0x00000225u, 0x000021a7u, 0x0004003du, 0x00000011u, + 0x000021a9u, 0x000021a8u, 0x00040071u, 0x00000006u, 0x000021aau, 0x000021a9u, 0x000500c2u, 0x00000006u, + 0x000021acu, 0x000021aau, 0x00000319u, 0x000500c2u, 0x00000006u, 0x000021aeu, 0x000021aau, 0x00000469u, + 0x000500c4u, 0x00000006u, 0x000021b0u, 0x000021aau, 0x0000038bu, 0x00060050u, 0x00000311u, 0x000021b1u, + 0x000021acu, 0x000021aeu, 0x000021b0u, 0x000500c7u, 0x00000311u, 0x000021b3u, 0x000021b1u, 0x0000c227u, + 0x00040071u, 0x00000047u, 0x000021b5u, 0x000021b3u, 0x00060041u, 0x00000676u, 0x000021b7u, 0x00000681u, + 0x00000225u, 0x000021a5u, 0x0004003du, 0x0000000fu, 0x000021b8u, 0x000021b7u, 0x000500c4u, 0x0000000fu, + 0x000021b9u, 0x000021b8u, 0x00000393u, 0x000500c7u, 0x00000006u, 0x000021bbu, 0x000021aau, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x000021bcu, 0x000021bbu, 0x00000241u, 0x00040071u, 0x0000000fu, 0x000021bdu, + 0x000021bcu, 0x000500c5u, 0x0000000fu, 0x000021beu, 0x000021b9u, 0x000021bdu, 0x00050051u, 0x0000000fu, + 0x000021bfu, 0x000021b5u, 0x00000000u, 0x00050051u, 0x0000000fu, 0x000021c0u, 0x000021b5u, 0x00000001u, + 0x00050051u, 0x0000000fu, 0x000021c1u, 0x000021b5u, 0x00000002u, 0x00070050u, 0x00000010u, 0x000021c2u, + 0x000021bfu, 0x000021c0u, 0x000021c1u, 0x000021beu, 0x000200f9u, 0x000021e9u, 0x000200f8u, 0x0000218cu, + 0x000500c7u, 0x00000006u, 0x0000218eu, 0x00002173u, 0x00000668u, 0x00050084u, 0x00000006u, 0x00002190u, + 0x00002169u, 0x00000667u, 0x00050080u, 0x00000006u, 0x00002192u, 0x0000218eu, 0x00002190u, 0x000500c6u, + 0x00000006u, 0x00002194u, 0x00002192u, 0x00000469u, 0x00060041u, 0x00000676u, 0x00002195u, 0x00000673u, + 0x00000225u, 0x00002194u, 0x0004003du, 0x0000000fu, 0x00002196u, 0x00002195u, 0x000500c2u, 0x00000006u, + 0x0000219bu, 0x00002192u, 0x0000022fu, 0x00060041u, 0x00000676u, 0x0000219cu, 0x00000681u, 0x00000225u, + 0x0000219bu, 0x0004003du, 0x0000000fu, 0x0000219du, 0x0000219cu, 0x00070050u, 0x00000010u, 0x0000219eu, + 0x00002196u, 0x00002196u, 0x00002196u, 0x0000219du, 0x000200f9u, 0x000021e9u, 0x000200f8u, 0x000021e9u, + 0x000d00f5u, 0x00000010u, 0x00007a56u, 0x00007a55u, 0x0000215du, 0x0000219eu, 0x0000218cu, 0x000021c2u, + 0x0000219fu, 0x000021d9u, 0x000021c3u, 0x000021e8u, 0x000021dau, 0x00050080u, 0x00000006u, 0x0000217eu, + 0x000020b9u, 0x0000216fu, 0x00050080u, 0x00000006u, 0x00002181u, 0x0000217eu, 0x00002172u, 0x000500c7u, + 0x00000006u, 0x000021edu, 0x00002181u, 0x00000688u, 0x00050084u, 0x00000006u, 0x000021efu, 0x00002169u, + 0x0000075eu, 0x00050080u, 0x00000006u, 0x000021f1u, 0x000021edu, 0x000021efu, 0x000500c6u, 0x00000006u, + 0x000021f3u, 0x000021f1u, 0x00000461u, 0x00060041u, 0x00000697u, 0x000021f4u, 0x00000694u, 0x00000225u, + 0x000021f3u, 0x0004003du, 0x00000011u, 0x000021f5u, 0x000021f4u, 0x000500c2u, 0x00000011u, 0x000021f7u, + 0x000021f5u, 0x000005f7u, 0x00060041u, 0x00000676u, 0x000021f9u, 0x00000681u, 0x00000225u, 0x000021f1u, + 0x0004003du, 0x0000000fu, 0x000021fau, 0x000021f9u, 0x000500c7u, 0x00000011u, 0x000021fcu, 0x000021f5u, + 0x000005fcu, 0x000500c4u, 0x00000011u, 0x000021fdu, 0x000021fcu, 0x000005f7u, 0x00040071u, 0x0000000fu, + 0x000021feu, 0x000021fdu, 0x000500c5u, 0x0000000fu, 0x000021ffu, 0x000021fau, 0x000021feu, 0x000200f9u, + 0x00002185u, 0x000200f8u, 0x00002185u, 0x000700f5u, 0x00000006u, 0x0000a770u, 0x0000a771u, 0x000020a9u, + 0x00002173u, 0x000021e9u, 0x000700f5u, 0x0000000fu, 0x00007a87u, 0x00007a88u, 0x000020a9u, 0x000021ffu, + 0x000021e9u, 0x000700f5u, 0x00000011u, 0x00007a7au, 0x00007a7bu, 0x000020a9u, 0x000021f7u, 0x000021e9u, + 0x000700f5u, 0x00000010u, 0x00007a54u, 0x00007a55u, 0x000020a9u, 0x00007a56u, 0x000021e9u, 0x000200f9u, + 0x000020bbu, 0x000200f8u, 0x000020bbu, 0x000700f5u, 0x0000000fu, 0x00007a86u, 0x00007a87u, 0x00002185u, + 0x000097a1u, 0x000020beu, 0x000700f5u, 0x00000011u, 0x00007a79u, 0x00007a7au, 0x00002185u, 0x00009635u, + 0x000020beu, 0x000700f5u, 0x00000069u, 0x00007a6bu, 0x0000053bu, 0x00002185u, 0x0000ac10u, 0x000020beu, + 0x000700f5u, 0x00000010u, 0x00007a53u, 0x00007a54u, 0x00002185u, 0x00009355u, 0x000020beu, 0x000700f5u, + 0x00000069u, 0x00007a4eu, 0x0000053bu, 0x00002185u, 0x0000aa8au, 0x000020beu, 0x000700f5u, 0x00000006u, + 0x00007a48u, 0x000020a5u, 0x00002185u, 0x000020cau, 0x000020beu, 0x000700f5u, 0x00000047u, 0x0000a59du, + 0x000094c6u, 0x00002185u, 0x0000a59cu, 0x000020beu, 0x000700f5u, 0x00000047u, 0x0000a409u, 0x000094c6u, + 0x00002185u, 0x0000a408u, 0x000020beu, 0x000700f5u, 0x0000000fu, 0x0000a276u, 0x00007a88u, 0x00002185u, + 0x0000a275u, 0x000020beu, 0x000700f5u, 0x0000000fu, 0x0000a0e3u, 0x00007a88u, 0x00002185u, 0x0000a0e2u, + 0x000020beu, 0x000700f5u, 0x00000047u, 0x00009f4du, 0x000094c6u, 0x00002185u, 0x00009f4cu, 0x000020beu, + 0x000700f5u, 0x00000047u, 0x00009dc6u, 0x000094c6u, 0x00002185u, 0x00009dc5u, 0x000020beu, 0x000700f5u, + 0x0000000fu, 0x00009c40u, 0x00007a88u, 0x00002185u, 0x00009c3fu, 0x000020beu, 0x000700f5u, 0x0000000fu, + 0x00009abau, 0x00007a88u, 0x00002185u, 0x00009ab9u, 0x000020beu, 0x000700f5u, 0x00000047u, 0x000094c4u, + 0x000094c6u, 0x00002185u, 0x000094c3u, 0x000020beu, 0x000700f5u, 0x00000010u, 0x000091e9u, 0x00007a55u, + 0x00002185u, 0x000091e8u, 0x000020beu, 0x000700f5u, 0x00000008u, 0x000090a6u, 0x000090a8u, 0x00002185u, + 0x000090a5u, 0x000020beu, 0x000700f5u, 0x0000000fu, 0x00008f64u, 0x00007a88u, 0x00002185u, 0x00008f63u, + 0x000020beu, 0x000700f5u, 0x0000000fu, 0x00008df7u, 0x00007a88u, 0x00002185u, 0x00008df6u, 0x000020beu, + 0x000700f5u, 0x00000012u, 0x00008acdu, 0x00008acfu, 0x00002185u, 0x00008accu, 0x000020beu, 0x000700f5u, + 0x00000013u, 0x00008a14u, 0x00007c64u, 0x00002185u, 0x00008a13u, 0x000020beu, 0x000700f5u, 0x00000011u, + 0x00008887u, 0x0000021fu, 0x00002185u, 0x00008886u, 0x000020beu, 0x000700f5u, 0x00000013u, 0x00008664u, + 0x00007c64u, 0x00002185u, 0x00008663u, 0x000020beu, 0x000700f5u, 0x00000013u, 0x0000856fu, 0x00007c64u, + 0x00002185u, 0x0000856eu, 0x000020beu, 0x000700f5u, 0x00000013u, 0x00008474u, 0x00007c64u, 0x00002185u, + 0x00008473u, 0x000020beu, 0x000700f5u, 0x00000013u, 0x00008308u, 0x00007c64u, 0x00002185u, 0x00008307u, + 0x000020beu, 0x000700f5u, 0x00000013u, 0x0000821eu, 0x00007c64u, 0x00002185u, 0x0000821du, 0x000020beu, + 0x000700f5u, 0x00000013u, 0x00007e51u, 0x00007c64u, 0x00002185u, 0x00007e50u, 0x000020beu, 0x000700f5u, + 0x00000013u, 0x00007dd6u, 0x00007c64u, 0x00002185u, 0x00007dd5u, 0x000020beu, 0x000700f5u, 0x00000013u, + 0x00007d55u, 0x00007c64u, 0x00002185u, 0x00007d54u, 0x000020beu, 0x000700f5u, 0x00000013u, 0x00007c62u, + 0x00007c64u, 0x00002185u, 0x00007c61u, 0x000020beu, 0x000700f5u, 0x000000f2u, 0x00007b6fu, 0x00007b4du, + 0x00002185u, 0x00007b6eu, 0x000020beu, 0x000700f5u, 0x000000f2u, 0x00007b4bu, 0x00007b4du, 0x00002185u, + 0x00007b4au, 0x000020beu, 0x000700f5u, 0x00000044u, 0x00007ac7u, 0x00007abau, 0x00002185u, 0x00007ac6u, + 0x000020beu, 0x000700f5u, 0x00000044u, 0x00007ab8u, 0x00007abau, 0x00002185u, 0x00007ab7u, 0x000020beu, + 0x000500abu, 0x00000069u, 0x000020c1u, 0x00007a48u, 0x00000332u, 0x000400f6u, 0x000020bdu, 0x000020beu, + 0x00000000u, 0x000400fau, 0x000020c1u, 0x000020bcu, 0x000020bdu, 0x000200f8u, 0x000020bcu, 0x0006000cu, + 0x00000008u, 0x000020c4u, 0x00000001u, 0x00000049u, 0x00007a48u, 0x000500c4u, 0x00000008u, 0x000020c6u, + 0x0000022fu, 0x000020c4u, 0x0004007cu, 0x00000006u, 0x000020c7u, 0x000020c6u, 0x000400c8u, 0x00000006u, + 0x000020c8u, 0x000020c7u, 0x000500c7u, 0x00000006u, 0x000020cau, 0x00007a48u, 0x000020c8u, 0x00050080u, + 0x00000008u, 0x000020d2u, 0x00002096u, 0x000020c4u, 0x00060041u, 0x000006deu, 0x000020d3u, 0x000020cfu, + 0x00000225u, 0x000020d2u, 0x0004003du, 0x00000006u, 0x000020d4u, 0x000020d3u, 0x000200f9u, 0x000020d5u, + 0x000200f8u, 0x000020d5u, 0x000700f5u, 0x00000047u, 0x0000a59cu, 0x0000a59du, 0x000020bcu, 0x0000c1ccu, + 0x000020d8u, 0x000700f5u, 0x00000047u, 0x0000a408u, 0x0000a409u, 0x000020bcu, 0x0000c1b2u, 0x000020d8u, + 0x000700f5u, 0x0000000fu, 0x0000a275u, 0x0000a276u, 0x000020bcu, 0x0000c197u, 0x000020d8u, 0x000700f5u, + 0x0000000fu, 0x0000a0e2u, 0x0000a0e3u, 0x000020bcu, 0x0000c17cu, 0x000020d8u, 0x000700f5u, 0x00000047u, + 0x00009f4cu, 0x00009f4du, 0x000020bcu, 0x0000c154u, 0x000020d8u, 0x000700f5u, 0x00000047u, 0x00009dc5u, + 0x00009dc6u, 0x000020bcu, 0x0000c12du, 0x000020d8u, 0x000700f5u, 0x0000000fu, 0x00009c3fu, 0x00009c40u, + 0x000020bcu, 0x0000c105u, 0x000020d8u, 0x000700f5u, 0x0000000fu, 0x00009ab9u, 0x00009abau, 0x000020bcu, + 0x0000c0ddu, 0x000020d8u, 0x000700f5u, 0x0000000fu, 0x000097a1u, 0x00007a86u, 0x000020bcu, 0x0000c06cu, + 0x000020d8u, 0x000700f5u, 0x00000011u, 0x00009635u, 0x00007a79u, 0x000020bcu, 0x0000c02eu, 0x000020d8u, + 0x000700f5u, 0x00000047u, 0x000094c3u, 0x000094c4u, 0x000020bcu, 0x0000bff0u, 0x000020d8u, 0x000700f5u, + 0x00000010u, 0x00009355u, 0x00007a53u, 0x000020bcu, 0x0000bfe3u, 0x000020d8u, 0x000700f5u, 0x00000010u, + 0x000091e8u, 0x000091e9u, 0x000020bcu, 0x000091e6u, 0x000020d8u, 0x000700f5u, 0x00000008u, 0x000090a5u, + 0x000090a6u, 0x000020bcu, 0x000090a3u, 0x000020d8u, 0x000700f5u, 0x0000000fu, 0x00008f63u, 0x00008f64u, + 0x000020bcu, 0x00008f61u, 0x000020d8u, 0x000700f5u, 0x0000000fu, 0x00008df6u, 0x00008df7u, 0x000020bcu, + 0x00008df4u, 0x000020d8u, 0x000700f5u, 0x00000012u, 0x00008accu, 0x00008acdu, 0x000020bcu, 0x0000be51u, + 0x000020d8u, 0x000700f5u, 0x00000013u, 0x00008a13u, 0x00008a14u, 0x000020bcu, 0x0000bdbeu, 0x000020d8u, + 0x000700f5u, 0x00000011u, 0x00008886u, 0x00008887u, 0x000020bcu, 0x0000bd4cu, 0x000020d8u, 0x000700f5u, + 0x00000013u, 0x00008663u, 0x00008664u, 0x000020bcu, 0x0000bca2u, 0x000020d8u, 0x000700f5u, 0x00000013u, + 0x0000856eu, 0x0000856fu, 0x000020bcu, 0x0000bbfau, 0x000020d8u, 0x000700f5u, 0x00000013u, 0x00008473u, + 0x00008474u, 0x000020bcu, 0x0000bb52u, 0x000020d8u, 0x000700f5u, 0x00000013u, 0x00008307u, 0x00008308u, + 0x000020bcu, 0x0000baaau, 0x000020d8u, 0x000700f5u, 0x00000013u, 0x0000821du, 0x0000821eu, 0x000020bcu, + 0x0000ba17u, 0x000020d8u, 0x000700f5u, 0x00000013u, 0x00007e50u, 0x00007e51u, 0x000020bcu, 0x0000b8f3u, + 0x000020d8u, 0x000700f5u, 0x00000013u, 0x00007dd5u, 0x00007dd6u, 0x000020bcu, 0x0000b7d1u, 0x000020d8u, + 0x000700f5u, 0x00000013u, 0x00007d54u, 0x00007d55u, 0x000020bcu, 0x0000b6afu, 0x000020d8u, 0x000700f5u, + 0x00000013u, 0x00007c61u, 0x00007c62u, 0x000020bcu, 0x0000b58du, 0x000020d8u, 0x000700f5u, 0x000000f2u, + 0x00007b6eu, 0x00007b6fu, 0x000020bcu, 0x0000b40bu, 0x000020d8u, 0x000700f5u, 0x000000f2u, 0x00007b4au, + 0x00007b4bu, 0x000020bcu, 0x0000b289u, 0x000020d8u, 0x000700f5u, 0x00000044u, 0x00007ac6u, 0x00007ac7u, + 0x000020bcu, 0x0000b0fbu, 0x000020d8u, 0x000700f5u, 0x00000044u, 0x00007ab7u, 0x00007ab8u, 0x000020bcu, + 0x0000af64u, 0x000020d8u, 0x000700f5u, 0x00000006u, 0x00007aa4u, 0x000020d4u, 0x000020bcu, 0x000020e4u, + 0x000020d8u, 0x000700f5u, 0x00000069u, 0x0000ac10u, 0x00007a6bu, 0x000020bcu, 0x0000ac11u, 0x000020d8u, + 0x000700f5u, 0x00000069u, 0x0000aa8au, 0x00007a4eu, 0x000020bcu, 0x0000aa8bu, 0x000020d8u, 0x000500abu, + 0x00000069u, 0x000020dbu, 0x00007aa4u, 0x00000332u, 0x000400f6u, 0x000020d7u, 0x000020d8u, 0x00000000u, + 0x000400fau, 0x000020dbu, 0x000020d6u, 0x000020d7u, 0x000200f8u, 0x000020d6u, 0x0006000cu, 0x00000008u, + 0x000020deu, 0x00000001u, 0x00000049u, 0x00007aa4u, 0x000500c4u, 0x00000008u, 0x000020e0u, 0x0000022fu, + 0x000020deu, 0x0004007cu, 0x00000006u, 0x000020e1u, 0x000020e0u, 0x000400c8u, 0x00000006u, 0x000020e2u, + 0x000020e1u, 0x000500c7u, 0x00000006u, 0x000020e4u, 0x00007aa4u, 0x000020e2u, 0x00050084u, 0x00000008u, + 0x000020e8u, 0x0000116du, 0x000020c4u, 0x00050080u, 0x00000008u, 0x000020e9u, 0x000020deu, 0x000020e8u, + 0x0004007cu, 0x00000006u, 0x000020eau, 0x000020e9u, 0x000300f7u, 0x0000254bu, 0x00000000u, 0x000300fbu, + 0x00000332u, 0x000022d0u, 0x000200f8u, 0x000022d0u, 0x00060041u, 0x00000301u, 0x00002551u, 0x000002ffu, + 0x00000225u, 0x000020eau, 0x0004003du, 0x000002fbu, 0x00002552u, 0x00002551u, 0x00050051u, 0x00000008u, + 0x00002553u, 0x00002552u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00002555u, 0x00002552u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00002557u, 0x00002552u, 0x00000002u, 0x00050084u, 0x00000008u, 0x000022d6u, + 0x0000088bu, 0x00002555u, 0x000500b1u, 0x00000069u, 0x000022d7u, 0x0000207eu, 0x000022d6u, 0x000400a8u, + 0x00000069u, 0x000022d8u, 0x000022d7u, 0x000300f7u, 0x000022e0u, 0x00000000u, 0x000400fau, 0x000022d8u, + 0x000022d9u, 0x000022e0u, 0x000200f8u, 0x000022d9u, 0x00050084u, 0x00000008u, 0x000022ddu, 0x00002557u, + 0x0000088bu, 0x00050080u, 0x00000008u, 0x000022deu, 0x000022ddu, 0x00001d12u, 0x000500adu, 0x00000069u, + 0x000022dfu, 0x0000207eu, 0x000022deu, 0x000200f9u, 0x000022e0u, 0x000200f8u, 0x000022e0u, 0x000700f5u, + 0x00000069u, 0x000022e1u, 0x000022d7u, 0x000022d0u, 0x000022dfu, 0x000022d9u, 0x000300f7u, 0x000022e3u, + 0x00000000u, 0x000400fau, 0x000022e1u, 0x000022e2u, 0x000022e3u, 0x000200f8u, 0x000022e2u, 0x000200f9u, + 0x0000254bu, 0x000200f8u, 0x000022e3u, 0x00070041u, 0x00000676u, 0x000022e5u, 0x00001d1eu, 0x00000225u, + 0x000020eau, 0x00000265u, 0x0004003du, 0x0000000fu, 0x000022e6u, 0x000022e5u, 0x00040071u, 0x00000006u, + 0x000022e7u, 0x000022e6u, 0x000300f7u, 0x000022f2u, 0x00000000u, 0x000400fau, 0x00001d23u, 0x000022e8u, + 0x000022f2u, 0x000200f8u, 0x000022e8u, 0x000500c7u, 0x00000006u, 0x000022eau, 0x000022e7u, 0x00000a51u, + 0x000500abu, 0x00000069u, 0x000022ebu, 0x000022eau, 0x00000332u, 0x000300f7u, 0x000022f1u, 0x00000000u, + 0x000400fau, 0x000022ebu, 0x000022ecu, 0x000022f1u, 0x000200f8u, 0x000022ecu, 0x000500c7u, 0x00000008u, + 0x000022eeu, 0x0000207au, 0x00001d2cu, 0x000500c7u, 0x00000008u, 0x000022f0u, 0x0000207eu, 0x00001d30u, + 0x000200f9u, 0x000022f1u, 0x000200f8u, 0x000022f1u, 0x000700f5u, 0x00000008u, 0x00007aaau, 0x0000207au, + 0x000022e8u, 0x000022eeu, 0x000022ecu, 0x000700f5u, 0x00000008u, 0x00007aa8u, 0x0000207eu, 0x000022e8u, + 0x000022f0u, 0x000022ecu, 0x000200f9u, 0x000022f2u, 0x000200f8u, 0x000022f2u, 0x000700f5u, 0x00000008u, + 0x00007aa9u, 0x0000207au, 0x000022e3u, 0x00007aaau, 0x000022f1u, 0x000700f5u, 0x00000008u, 0x00007aa7u, + 0x0000207eu, 0x000022e3u, 0x00007aa8u, 0x000022f1u, 0x00050084u, 0x00000008u, 0x000022f5u, 0x0000088bu, + 0x00002553u, 0x00050082u, 0x00000008u, 0x000022fau, 0x00007aa7u, 0x000022d6u, 0x00050080u, 0x00000008u, + 0x000022fbu, 0x000022f5u, 0x000022fau, 0x0004007cu, 0x00000006u, 0x000022fcu, 0x000022fbu, 0x00060041u, + 0x000002e2u, 0x00002560u, 0x000002e0u, 0x00000225u, 0x000022fcu, 0x0004003du, 0x000002dcu, 0x00002561u, + 0x00002560u, 0x00050051u, 0x00000009u, 0x00002562u, 0x00002561u, 0x00000000u, 0x00050051u, 0x00000009u, + 0x00002564u, 0x00002561u, 0x00000001u, 0x00050051u, 0x00000028u, 0x00002566u, 0x00002561u, 0x00000002u, + 0x00050051u, 0x00000028u, 0x00002568u, 0x00002561u, 0x00000003u, 0x00050051u, 0x00000008u, 0x0000256au, + 0x00002561u, 0x00000004u, 0x00050051u, 0x00000008u, 0x0000256cu, 0x00002561u, 0x00000005u, 0x00050051u, + 0x00000008u, 0x0000256eu, 0x00002561u, 0x00000006u, 0x00050051u, 0x00000012u, 0x00002570u, 0x00002561u, + 0x00000007u, 0x00050051u, 0x00000011u, 0x00002572u, 0x00002561u, 0x00000008u, 0x000500aau, 0x00000069u, + 0x00002300u, 0x00002572u, 0x0000021fu, 0x000300f7u, 0x00002302u, 0x00000000u, 0x000400fau, 0x00002300u, + 0x00002301u, 0x00002302u, 0x000200f8u, 0x00002301u, 0x000200f9u, 0x0000254bu, 0x000200f8u, 0x00002302u, + 0x00070041u, 0x00000676u, 0x00002304u, 0x00001d1eu, 0x00000225u, 0x000020eau, 0x00000268u, 0x0004003du, + 0x0000000fu, 0x00002305u, 0x00002304u, 0x00040071u, 0x00000006u, 0x00002306u, 0x00002305u, 0x00060041u, + 0x00000227u, 0x00002579u, 0x00000224u, 0x00000225u, 0x000020eau, 0x0004003du, 0x00000220u, 0x0000257au, + 0x00002579u, 0x00050051u, 0x00000009u, 0x0000257du, 0x0000257au, 0x00000001u, 0x00050051u, 0x00000009u, + 0x00002581u, 0x0000257au, 0x00000003u, 0x00050051u, 0x00000009u, 0x00002585u, 0x0000257au, 0x00000005u, + 0x00050051u, 0x00000009u, 0x00002589u, 0x0000257au, 0x00000007u, 0x00070041u, 0x00001d51u, 0x0000230au, + 0x00000a2du, 0x00000225u, 0x000020eau, 0x00000225u, 0x0004003du, 0x00000010u, 0x0000230bu, 0x0000230au, + 0x00040071u, 0x000004fcu, 0x0000230cu, 0x0000230bu, 0x00050051u, 0x00000006u, 0x0000230eu, 0x0000230cu, + 0x00000000u, 0x00050051u, 0x00000006u, 0x00002310u, 0x0000230cu, 0x00000002u, 0x00060041u, 0x0000027fu, + 0x00002590u, 0x0000027du, 0x00000225u, 0x0000230eu, 0x0004003du, 0x00000279u, 0x00002591u, 0x00002590u, + 0x00050051u, 0x00000010u, 0x00002592u, 0x00002591u, 0x00000000u, 0x00050051u, 0x00000010u, 0x00002594u, + 0x00002591u, 0x00000001u, 0x00050051u, 0x00000010u, 0x00002596u, 0x00002591u, 0x00000002u, 0x00050051u, + 0x00000010u, 0x00002598u, 0x00002591u, 0x00000003u, 0x00050051u, 0x00000006u, 0x0000259au, 0x00002591u, + 0x00000004u, 0x00050051u, 0x00000008u, 0x0000259cu, 0x00002591u, 0x00000005u, 0x000500c7u, 0x00000006u, + 0x00002320u, 0x0000259au, 0x00000335u, 0x000500abu, 0x00000069u, 0x00002321u, 0x00002320u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00002323u, 0x0000259au, 0x00000a51u, 0x000500abu, 0x00000069u, 0x00002324u, + 0x00002323u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002326u, 0x0000259au, 0x00001d7bu, 0x000500abu, + 0x00000069u, 0x00002327u, 0x00002326u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002329u, 0x0000259au, + 0x00000a57u, 0x000500abu, 0x00000069u, 0x0000232au, 0x00002329u, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x0000232cu, 0x0000259au, 0x00000a5du, 0x000500abu, 0x00000069u, 0x0000232du, 0x0000232cu, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x0000232fu, 0x0000259au, 0x00000319u, 0x000500abu, 0x00000069u, 0x00002330u, + 0x0000232fu, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002332u, 0x0000259au, 0x00001d8cu, 0x000500abu, + 0x00000069u, 0x00002333u, 0x00002332u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002335u, 0x0000259au, + 0x00000f6cu, 0x000500abu, 0x00000069u, 0x00002336u, 0x00002335u, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x00002338u, 0x0000259au, 0x00000f64u, 0x000500abu, 0x00000069u, 0x00002339u, 0x00002338u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x0000233bu, 0x0000259au, 0x00000709u, 0x000500abu, 0x00000069u, 0x0000233cu, + 0x0000233bu, 0x00000332u, 0x000500c7u, 0x00000006u, 0x0000233eu, 0x0000259au, 0x00000a63u, 0x000500abu, + 0x00000069u, 0x0000233fu, 0x0000233eu, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002341u, 0x0000259au, + 0x00000461u, 0x000500abu, 0x00000069u, 0x00002342u, 0x00002341u, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x00002344u, 0x0000259au, 0x00000e97u, 0x000500abu, 0x00000069u, 0x00002345u, 0x00002344u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00002347u, 0x0000259au, 0x00001da9u, 0x000500abu, 0x00000069u, 0x00002348u, + 0x00002347u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x0000234au, 0x0000259au, 0x00001daeu, 0x000500abu, + 0x00000069u, 0x0000234bu, 0x0000234au, 0x00000332u, 0x000500c7u, 0x00000006u, 0x0000234du, 0x0000259au, + 0x00001db3u, 0x000500abu, 0x00000069u, 0x0000234eu, 0x0000234du, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x00002350u, 0x0000259au, 0x00001db8u, 0x000500abu, 0x00000069u, 0x00002351u, 0x00002350u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00002353u, 0x0000259au, 0x00001dbdu, 0x000500abu, 0x00000069u, 0x00002354u, + 0x00002353u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002356u, 0x0000259au, 0x00001dc2u, 0x000500abu, + 0x00000069u, 0x00002357u, 0x00002356u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002359u, 0x0000259au, + 0x00001dc7u, 0x000500abu, 0x00000069u, 0x0000235au, 0x00002359u, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x0000235cu, 0x0000259au, 0x00001dccu, 0x000500abu, 0x00000069u, 0x0000235du, 0x0000235cu, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x0000235fu, 0x0000259au, 0x00001dd1u, 0x000500abu, 0x00000069u, 0x00002360u, + 0x0000235fu, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002362u, 0x0000259au, 0x00001dd6u, 0x000500abu, + 0x00000069u, 0x00002363u, 0x00002362u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00002365u, 0x0000259au, + 0x00001ddbu, 0x000500abu, 0x00000069u, 0x00002366u, 0x00002365u, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x00002368u, 0x0000259au, 0x00001ddfu, 0x000500abu, 0x00000069u, 0x00002369u, 0x00002368u, 0x00000332u, + 0x000300f7u, 0x00002374u, 0x00000000u, 0x000400fau, 0x00002369u, 0x0000236au, 0x00002374u, 0x000200f8u, + 0x0000236au, 0x0004007cu, 0x00000006u, 0x0000236cu, 0x00007aa9u, 0x0004007cu, 0x00000006u, 0x0000236eu, + 0x00007aa7u, 0x00060041u, 0x00001de9u, 0x00002370u, 0x00000ce7u, 0x00000225u, 0x00000235u, 0x0004003du, + 0x00000006u, 0x00002371u, 0x00002370u, 0x00050080u, 0x00000006u, 0x00002372u, 0x000020eau, 0x00002371u, + 0x00060050u, 0x00000311u, 0x000025a8u, 0x0000236cu, 0x0000236eu, 0x00002372u, 0x000500c2u, 0x00000311u, + 0x000025abu, 0x000025a8u, 0x0000c229u, 0x0008004fu, 0x00000311u, 0x000025adu, 0x000025a8u, 0x000025a8u, + 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000311u, 0x000025aeu, 0x000025abu, 0x000025adu, + 0x00050084u, 0x00000311u, 0x000025b0u, 0x000025aeu, 0x0000c22au, 0x000500c2u, 0x00000311u, 0x000025b3u, + 0x000025b0u, 0x0000c229u, 0x0008004fu, 0x00000311u, 0x000025b5u, 0x000025b0u, 0x000025b0u, 0x00000001u, + 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000311u, 0x000025b6u, 0x000025b3u, 0x000025b5u, 0x00050084u, + 0x00000311u, 0x000025b8u, 0x000025b6u, 0x0000c22au, 0x000500c2u, 0x00000311u, 0x000025bbu, 0x000025b8u, + 0x0000c229u, 0x0008004fu, 0x00000311u, 0x000025bdu, 0x000025b8u, 0x000025b8u, 0x00000001u, 0x00000002u, + 0x00000000u, 0x000500c6u, 0x00000311u, 0x000025beu, 0x000025bbu, 0x000025bdu, 0x00050084u, 0x00000311u, + 0x000025c0u, 0x000025beu, 0x0000c22au, 0x00050051u, 0x00000006u, 0x000025c2u, 0x000025c0u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000025c3u, 0x000025c2u, 0x00000335u, 0x00040071u, 0x00000011u, 0x000025c4u, + 0x000025c3u, 0x000200f9u, 0x00002374u, 0x000200f8u, 0x00002374u, 0x000700f5u, 0x00000011u, 0x00008883u, + 0x00008886u, 0x00002302u, 0x000025c4u, 0x0000236au, 0x000500c7u, 0x00000006u, 0x00002376u, 0x000022e7u, + 0x00000461u, 0x000500abu, 0x00000069u, 0x00002377u, 0x00002376u, 0x00000332u, 0x000300f7u, 0x000023c4u, + 0x00000000u, 0x000400fau, 0x00002348u, 0x00002379u, 0x000023b4u, 0x000200f8u, 0x000023b4u, 0x000300f7u, + 0x000023c3u, 0x00000000u, 0x000400fau, 0x00002345u, 0x000023b6u, 0x000023c3u, 0x000200f8u, 0x000023b6u, + 0x000500afu, 0x00000069u, 0x000023bbu, 0x00007aa9u, 0x0000256cu, 0x000300f7u, 0x000023c1u, 0x00000000u, + 0x000400fau, 0x000023bbu, 0x000023bcu, 0x000023c1u, 0x000200f8u, 0x000023bcu, 0x000500b3u, 0x00000069u, + 0x000023c0u, 0x00007aa9u, 0x0000256eu, 0x000200f9u, 0x000023c1u, 0x000200f8u, 0x000023c1u, 0x000700f5u, + 0x00000069u, 0x000023c2u, 0x000023bbu, 0x000023b6u, 0x000023c0u, 0x000023bcu, 0x000200f9u, 0x0000254bu, + 0x000200f8u, 0x000023c3u, 0x000200f9u, 0x000023c4u, 0x000200f8u, 0x00002379u, 0x000500afu, 0x00000069u, + 0x0000237du, 0x00007aa9u, 0x0000256cu, 0x000300f7u, 0x00002383u, 0x00000000u, 0x000400fau, 0x0000237du, + 0x0000237eu, 0x00002383u, 0x000200f8u, 0x0000237eu, 0x000500b3u, 0x00000069u, 0x00002382u, 0x00007aa9u, + 0x0000256eu, 0x000200f9u, 0x00002383u, 0x000200f8u, 0x00002383u, 0x000700f5u, 0x00000069u, 0x00002384u, + 0x0000237du, 0x00002379u, 0x00002382u, 0x0000237eu, 0x000400a8u, 0x00000069u, 0x00002386u, 0x00002384u, + 0x000300f7u, 0x00002388u, 0x00000000u, 0x000400fau, 0x00002386u, 0x00002387u, 0x00002388u, 0x000200f8u, + 0x00002387u, 0x000200f9u, 0x0000254bu, 0x000200f8u, 0x00002388u, 0x000300f7u, 0x000025dau, 0x00000000u, + 0x000400fau, 0x00002377u, 0x000025d0u, 0x000025d5u, 0x000200f8u, 0x000025d5u, 0x00050082u, 0x00000008u, + 0x000025d9u, 0x0000256eu, 0x00007aa9u, 0x000200f9u, 0x000025dau, 0x000200f8u, 0x000025d0u, 0x00050082u, + 0x00000008u, 0x000025d4u, 0x00007aa9u, 0x0000256cu, 0x000200f9u, 0x000025dau, 0x000200f8u, 0x000025dau, + 0x000700f5u, 0x00000008u, 0x00008db5u, 0x000025d4u, 0x000025d0u, 0x000025d9u, 0x000025d5u, 0x000500c3u, + 0x00000008u, 0x000025ddu, 0x00008db5u, 0x0000084fu, 0x00060041u, 0x00000ce8u, 0x000025dfu, 0x00000ce7u, + 0x00000225u, 0x0000022fu, 0x0004003du, 0x00000008u, 0x000025e0u, 0x000025dfu, 0x000500c7u, 0x00000008u, + 0x000025e1u, 0x000025ddu, 0x000025e0u, 0x00050082u, 0x00000008u, 0x000025e4u, 0x000025ddu, 0x000025e1u, + 0x00060041u, 0x00000ce8u, 0x000025e6u, 0x00000ce7u, 0x00000225u, 0x00000225u, 0x0004003du, 0x00000008u, + 0x000025e7u, 0x000025e6u, 0x000500c3u, 0x00000008u, 0x000025e8u, 0x000025ddu, 0x000025e7u, 0x000600a9u, + 0x00000008u, 0x000025eau, 0x00002377u, 0x0000022fu, 0x00000cf5u, 0x00050084u, 0x00000008u, 0x000025ebu, + 0x000025e8u, 0x000025eau, 0x0008004fu, 0x00000044u, 0x000025eeu, 0x00002564u, 0x00002564u, 0x00000000u, + 0x00000001u, 0x00000003u, 0x0008004fu, 0x00000044u, 0x000025f0u, 0x00002585u, 0x00002585u, 0x00000000u, + 0x00000001u, 0x00000003u, 0x000500c7u, 0x00000044u, 0x000025f2u, 0x000025f0u, 0x0000c22bu, 0x00060050u, + 0x00000044u, 0x000025f4u, 0x000025ebu, 0x000025ebu, 0x000025ebu, 0x00050084u, 0x00000044u, 0x000025f5u, + 0x000025f2u, 0x000025f4u, 0x00050080u, 0x00000044u, 0x000025f6u, 0x000025eeu, 0x000025f5u, 0x000300f7u, + 0x00002604u, 0x00000000u, 0x000400fau, 0x00002330u, 0x000025f8u, 0x000025ffu, 0x000200f8u, 0x000025ffu, + 0x000500c3u, 0x00000044u, 0x00002602u, 0x000025f6u, 0x0000c22cu, 0x0007004fu, 0x000000f2u, 0x0000268eu, + 0x00002602u, 0x00002602u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00002604u, 0x000200f8u, 0x000025f8u, + 0x000500c3u, 0x00000044u, 0x000025fbu, 0x000025f6u, 0x0000c22cu, 0x00050051u, 0x00000008u, 0x00002611u, + 0x000025fbu, 0x00000002u, 0x000500b3u, 0x00000069u, 0x00002613u, 0x00002611u, 0x00000225u, 0x000500c7u, + 0x00000008u, 0x00002615u, 0x00002611u, 0x00000c2bu, 0x0006000cu, 0x00000008u, 0x00002672u, 0x00000001u, + 0x0000004au, 0x00002615u, 0x00050082u, 0x00000008u, 0x00002673u, 0x00000274u, 0x00002672u, 0x0007000cu, + 0x00000008u, 0x00002674u, 0x00000001u, 0x00000027u, 0x00002673u, 0x00000274u, 0x000500c4u, 0x00000008u, + 0x00002677u, 0x00002615u, 0x00002674u, 0x000500c7u, 0x00000008u, 0x00002678u, 0x00002677u, 0x00000b47u, + 0x000500c7u, 0x00000008u, 0x0000267au, 0x00002678u, 0x00000363u, 0x000500c3u, 0x00000008u, 0x0000267cu, + 0x00002678u, 0x00000262u, 0x0003003eu, 0x0000266du, 0x00000c0bu, 0x00050041u, 0x000001b2u, 0x0000267du, + 0x0000266du, 0x0000267cu, 0x0004003du, 0x000001b1u, 0x0000267eu, 0x0000267du, 0x00040072u, 0x000000f2u, + 0x0000267fu, 0x0000267eu, 0x00050051u, 0x00000008u, 0x00002681u, 0x0000267fu, 0x00000001u, 0x00050084u, + 0x00000008u, 0x00002683u, 0x00002681u, 0x0000267au, 0x000500c3u, 0x00000008u, 0x00002684u, 0x00002683u, + 0x00000268u, 0x00050051u, 0x00000008u, 0x00002686u, 0x0000267fu, 0x00000000u, 0x00050080u, 0x00000008u, + 0x00002687u, 0x00002684u, 0x00002686u, 0x0007004fu, 0x000000f2u, 0x0000261bu, 0x000025fbu, 0x000025fbu, + 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x0000261eu, 0x00002687u, 0x00002687u, 0x00050084u, + 0x000000f2u, 0x0000261fu, 0x0000261bu, 0x0000261eu, 0x000500c3u, 0x00000008u, 0x00002621u, 0x00000c3eu, + 0x00002674u, 0x0004007eu, 0x00000008u, 0x00002622u, 0x00002621u, 0x000500c7u, 0x00000008u, 0x00002623u, + 0x00000c3du, 0x00002622u, 0x00050050u, 0x000000f2u, 0x00002626u, 0x00002623u, 0x00002623u, 0x000500c7u, + 0x000000f2u, 0x00002627u, 0x0000261fu, 0x00002626u, 0x000500abu, 0x00000069u, 0x00002629u, 0x00002674u, + 0x00000274u, 0x000300f7u, 0x00002634u, 0x00000000u, 0x000400fau, 0x00002629u, 0x0000262au, 0x00002630u, + 0x000200f8u, 0x00002630u, 0x000500c4u, 0x000000f2u, 0x00002633u, 0x0000261fu, 0x0000c230u, 0x000200f9u, + 0x00002634u, 0x000200f8u, 0x0000262au, 0x00050082u, 0x00000008u, 0x0000262du, 0x00000271u, 0x00002674u, + 0x00050050u, 0x000000f2u, 0x0000262eu, 0x0000262du, 0x0000262du, 0x000500c3u, 0x000000f2u, 0x0000262fu, + 0x0000261fu, 0x0000262eu, 0x000200f9u, 0x00002634u, 0x000200f8u, 0x00002634u, 0x000700f5u, 0x000000f2u, + 0x00008db9u, 0x0000262fu, 0x0000262au, 0x00002633u, 0x00002630u, 0x000700f5u, 0x000000f2u, 0x00008db7u, + 0x0000262fu, 0x0000262au, 0x0000261fu, 0x00002630u, 0x000500abu, 0x00000884u, 0x00002636u, 0x00002627u, + 0x00000c57u, 0x0004009au, 0x00000069u, 0x00002637u, 0x00002636u, 0x000300f7u, 0x00002663u, 0x00000000u, + 0x000400fau, 0x00002637u, 0x00002638u, 0x00002663u, 0x000200f8u, 0x00002638u, 0x00050051u, 0x00000008u, + 0x0000263au, 0x00002627u, 0x00000000u, 0x000500abu, 0x00000069u, 0x0000263cu, 0x0000263au, 0x00002623u, + 0x000300f7u, 0x00002641u, 0x00000000u, 0x000400fau, 0x0000263cu, 0x0000263du, 0x00002641u, 0x000200f8u, + 0x0000263du, 0x000500abu, 0x00000069u, 0x00002640u, 0x0000263au, 0x00000225u, 0x000200f9u, 0x00002641u, + 0x000200f8u, 0x00002641u, 0x000700f5u, 0x00000069u, 0x00002642u, 0x0000263cu, 0x00002638u, 0x00002640u, + 0x0000263du, 0x000300f7u, 0x0000264du, 0x00000000u, 0x000400fau, 0x00002642u, 0x00002643u, 0x0000264du, + 0x000200f8u, 0x00002643u, 0x00050051u, 0x00000008u, 0x00002645u, 0x00008db7u, 0x00000000u, 0x000500c7u, + 0x00000008u, 0x00002646u, 0x00002645u, 0x00000c3eu, 0x000500aau, 0x00000069u, 0x00002647u, 0x00002646u, + 0x00000225u, 0x000300f7u, 0x0000264cu, 0x00000000u, 0x000400fau, 0x00002647u, 0x00002648u, 0x0000264au, + 0x000200f8u, 0x0000264au, 0x00060052u, 0x000000f2u, 0x0000764au, 0x00000c70u, 0x00008db9u, 0x00000000u, + 0x000200f9u, 0x0000264cu, 0x000200f8u, 0x00002648u, 0x00060052u, 0x000000f2u, 0x00007648u, 0x00000c2bu, + 0x00008db9u, 0x00000000u, 0x000200f9u, 0x0000264cu, 0x000200f8u, 0x0000264cu, 0x000700f5u, 0x000000f2u, + 0x00008dbfu, 0x00007648u, 0x00002648u, 0x0000764au, 0x0000264au, 0x000200f9u, 0x0000264du, 0x000200f8u, + 0x0000264du, 0x000700f5u, 0x000000f2u, 0x00008dbeu, 0x00008db9u, 0x00002641u, 0x00008dbfu, 0x0000264cu, + 0x00050051u, 0x00000008u, 0x0000264fu, 0x00002627u, 0x00000001u, 0x000500abu, 0x00000069u, 0x00002651u, + 0x0000264fu, 0x00002623u, 0x000300f7u, 0x00002656u, 0x00000000u, 0x000400fau, 0x00002651u, 0x00002652u, + 0x00002656u, 0x000200f8u, 0x00002652u, 0x000500abu, 0x00000069u, 0x00002655u, 0x0000264fu, 0x00000225u, + 0x000200f9u, 0x00002656u, 0x000200f8u, 0x00002656u, 0x000700f5u, 0x00000069u, 0x00002657u, 0x00002651u, + 0x0000264du, 0x00002655u, 0x00002652u, 0x000300f7u, 0x00002662u, 0x00000000u, 0x000400fau, 0x00002657u, + 0x00002658u, 0x00002662u, 0x000200f8u, 0x00002658u, 0x00050051u, 0x00000008u, 0x0000265au, 0x00008db7u, + 0x00000001u, 0x000500c7u, 0x00000008u, 0x0000265bu, 0x0000265au, 0x00000c3eu, 0x000500aau, 0x00000069u, + 0x0000265cu, 0x0000265bu, 0x00000225u, 0x000300f7u, 0x00002661u, 0x00000000u, 0x000400fau, 0x0000265cu, + 0x0000265du, 0x0000265fu, 0x000200f8u, 0x0000265fu, 0x00060052u, 0x000000f2u, 0x00007651u, 0x00000c70u, + 0x00008dbeu, 0x00000001u, 0x000200f9u, 0x00002661u, 0x000200f8u, 0x0000265du, 0x00060052u, 0x000000f2u, + 0x0000764fu, 0x00000c2bu, 0x00008dbeu, 0x00000001u, 0x000200f9u, 0x00002661u, 0x000200f8u, 0x00002661u, + 0x000700f5u, 0x000000f2u, 0x00008dc3u, 0x0000764fu, 0x0000265du, 0x00007651u, 0x0000265fu, 0x000200f9u, + 0x00002662u, 0x000200f8u, 0x00002662u, 0x000700f5u, 0x000000f2u, 0x00008dc2u, 0x00008dbeu, 0x00002656u, + 0x00008dc3u, 0x00002661u, 0x000200f9u, 0x00002663u, 0x000200f8u, 0x00002663u, 0x000700f5u, 0x000000f2u, + 0x00008dc1u, 0x00008db9u, 0x00002634u, 0x00008dc2u, 0x00002662u, 0x00050050u, 0x00000884u, 0x0000c256u, + 0x00002613u, 0x00002613u, 0x000600a9u, 0x000000f2u, 0x0000c257u, 0x0000c256u, 0x00000c8au, 0x00008dc1u, + 0x0008000cu, 0x000000f2u, 0x00002668u, 0x00000001u, 0x0000002du, 0x0000c257u, 0x00000c8du, 0x00000c8eu, + 0x000200f9u, 0x00002604u, 0x000200f8u, 0x00002604u, 0x000700f5u, 0x000000f2u, 0x00008dc4u, 0x00002668u, + 0x00002663u, 0x0000268eu, 0x000025ffu, 0x000500c7u, 0x00000006u, 0x00002393u, 0x00002306u, 0x00000747u, + 0x00080041u, 0x00000676u, 0x00002396u, 0x00000a2du, 0x00000225u, 0x000020eau, 0x00000232u, 0x00002393u, + 0x0004003du, 0x0000000fu, 0x00002397u, 0x00002396u, 0x00040071u, 0x00000006u, 0x00002398u, 0x00002397u, + 0x00060041u, 0x000002b9u, 0x00002693u, 0x000002b7u, 0x00000225u, 0x00002398u, 0x0004003du, 0x000002b3u, + 0x00002694u, 0x00002693u, 0x00050051u, 0x00000006u, 0x00002695u, 0x00002694u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x00002699u, 0x00002694u, 0x00000002u, 0x00050051u, 0x00000006u, 0x0000269du, 0x00002694u, + 0x00000004u, 0x00050051u, 0x00000006u, 0x0000269fu, 0x00002694u, 0x00000005u, 0x00050051u, 0x0000000fu, + 0x000026a3u, 0x00002694u, 0x00000007u, 0x00050051u, 0x0000000fu, 0x000026a5u, 0x00002694u, 0x00000008u, + 0x00050051u, 0x0000000fu, 0x000026a7u, 0x00002694u, 0x00000009u, 0x00050051u, 0x0000000fu, 0x000026a9u, + 0x00002694u, 0x0000000au, 0x00050051u, 0x0000000fu, 0x000026abu, 0x00002694u, 0x0000000bu, 0x00050051u, + 0x0000000fu, 0x000026adu, 0x00002694u, 0x0000000cu, 0x00050051u, 0x0000000fu, 0x000026afu, 0x00002694u, + 0x0000000du, 0x0004007cu, 0x00000008u, 0x000026c9u, 0x00002695u, 0x00040071u, 0x00000006u, 0x000026ccu, + 0x000026a9u, 0x0004007cu, 0x00000008u, 0x000026cdu, 0x000026ccu, 0x00050051u, 0x00000008u, 0x000026cfu, + 0x00008dc4u, 0x00000000u, 0x0008000cu, 0x00000008u, 0x00002707u, 0x00000001u, 0x0000002du, 0x000026cfu, + 0x00000c70u, 0x00000c2bu, 0x000500b1u, 0x00000069u, 0x00002709u, 0x000026cdu, 0x0000026bu, 0x000300f7u, + 0x00002715u, 0x00000000u, 0x000400fau, 0x00002709u, 0x0000270au, 0x0000270eu, 0x000200f8u, 0x0000270eu, + 0x00050082u, 0x00000008u, 0x00002710u, 0x0000116du, 0x000026cdu, 0x000500c4u, 0x00000008u, 0x00002712u, + 0x00002707u, 0x00002710u, 0x000500c3u, 0x00000008u, 0x00002714u, 0x00002712u, 0x00000559u, 0x000200f9u, + 0x00002715u, 0x000200f8u, 0x0000270au, 0x000500c3u, 0x00000008u, 0x0000270du, 0x00002707u, 0x000026cdu, + 0x000200f9u, 0x00002715u, 0x000200f8u, 0x00002715u, 0x000700f5u, 0x00000008u, 0x00008dc5u, 0x0000270du, + 0x0000270au, 0x00002714u, 0x0000270eu, 0x000500c4u, 0x00000008u, 0x00002717u, 0x000026c9u, 0x00000235u, + 0x00050082u, 0x00000008u, 0x00002719u, 0x00008dc5u, 0x00002717u, 0x0004007cu, 0x00000008u, 0x000026d4u, + 0x00002699u, 0x00040071u, 0x00000006u, 0x000026d7u, 0x000026adu, 0x0004007cu, 0x00000008u, 0x000026d8u, + 0x000026d7u, 0x00050051u, 0x00000008u, 0x000026dau, 0x00008dc4u, 0x00000001u, 0x0008000cu, 0x00000008u, + 0x0000271eu, 0x00000001u, 0x0000002du, 0x000026dau, 0x00000c70u, 0x00000c2bu, 0x000500b1u, 0x00000069u, + 0x00002720u, 0x000026d8u, 0x0000026bu, 0x000300f7u, 0x0000272cu, 0x00000000u, 0x000400fau, 0x00002720u, + 0x00002721u, 0x00002725u, 0x000200f8u, 0x00002725u, 0x00050082u, 0x00000008u, 0x00002727u, 0x0000116du, + 0x000026d8u, 0x000500c4u, 0x00000008u, 0x00002729u, 0x0000271eu, 0x00002727u, 0x000500c3u, 0x00000008u, + 0x0000272bu, 0x00002729u, 0x00000559u, 0x000200f9u, 0x0000272cu, 0x000200f8u, 0x00002721u, 0x000500c3u, + 0x00000008u, 0x00002724u, 0x0000271eu, 0x000026d8u, 0x000200f9u, 0x0000272cu, 0x000200f8u, 0x0000272cu, + 0x000700f5u, 0x00000008u, 0x00008dc7u, 0x00002724u, 0x00002721u, 0x0000272bu, 0x00002725u, 0x000500c4u, + 0x00000008u, 0x0000272eu, 0x000026d4u, 0x00000235u, 0x00050082u, 0x00000008u, 0x00002730u, 0x00008dc7u, + 0x0000272eu, 0x00050050u, 0x000000f2u, 0x0000c251u, 0x00002719u, 0x00002730u, 0x000500c3u, 0x000000f2u, + 0x000026dfu, 0x0000c251u, 0x0000c232u, 0x00060041u, 0x00000ce8u, 0x000026e0u, 0x00000ce7u, 0x00000225u, + 0x00000232u, 0x0004003du, 0x00000008u, 0x000026e1u, 0x000026e0u, 0x000500aau, 0x00000069u, 0x000026e2u, + 0x000026e1u, 0x00000225u, 0x000300f7u, 0x00002702u, 0x00000000u, 0x000400fau, 0x000026e2u, 0x000026e3u, + 0x000026e4u, 0x000200f8u, 0x000026e4u, 0x000500aau, 0x00000069u, 0x000026e7u, 0x000026e1u, 0x0000022fu, + 0x000300f7u, 0x00002701u, 0x00000000u, 0x000400fau, 0x000026e7u, 0x000026e8u, 0x000026f9u, 0x000200f8u, + 0x000026f9u, 0x000500b1u, 0x00000069u, 0x000028feu, 0x000025e4u, 0x00000232u, 0x000300f7u, 0x00002906u, + 0x00000000u, 0x000400fau, 0x000028feu, 0x00002900u, 0x00002906u, 0x000200f8u, 0x00002900u, 0x00040071u, + 0x00000006u, 0x00002903u, 0x000026a3u, 0x0004007cu, 0x00000008u, 0x00002904u, 0x00002903u, 0x000500abu, + 0x00000069u, 0x00002905u, 0x00002904u, 0x00000232u, 0x000200f9u, 0x00002906u, 0x000200f8u, 0x00002906u, + 0x000700f5u, 0x00000069u, 0x00002907u, 0x000028feu, 0x000026f9u, 0x00002905u, 0x00002900u, 0x000400a8u, + 0x00000069u, 0x00002909u, 0x00002321u, 0x000500a7u, 0x00000069u, 0x0000290au, 0x00002907u, 0x00002909u, + 0x00040071u, 0x00000006u, 0x0000290du, 0x000026a3u, 0x0004007cu, 0x00000008u, 0x0000290eu, 0x0000290du, + 0x0007000cu, 0x00000008u, 0x0000290fu, 0x00000001u, 0x00000027u, 0x0000290eu, 0x00000232u, 0x000500aau, + 0x00000069u, 0x00002914u, 0x0000290eu, 0x00000235u, 0x000500a6u, 0x00000069u, 0x00002917u, 0x00002914u, + 0x00002321u, 0x000600a9u, 0x00000008u, 0x00002918u, 0x00002917u, 0x00001184u, 0x000003dfu, 0x000300f7u, + 0x00002a02u, 0x00000000u, 0x000400fau, 0x0000290au, 0x0000291au, 0x0000299du, 0x000200f8u, 0x0000299du, + 0x00050051u, 0x00000008u, 0x000029a0u, 0x000026dfu, 0x00000000u, 0x00050080u, 0x00000008u, 0x000029a1u, + 0x000029a0u, 0x000025e4u, 0x00040071u, 0x00000006u, 0x00002a53u, 0x000026a7u, 0x0004007cu, 0x00000008u, + 0x00002a54u, 0x00002a53u, 0x000500abu, 0x00000069u, 0x00002a55u, 0x00002a54u, 0x00000225u, 0x000300f7u, + 0x00002a6du, 0x00000000u, 0x000400fau, 0x00002a55u, 0x00002a56u, 0x00002a6du, 0x000200f8u, 0x00002a56u, + 0x000500c4u, 0x00000008u, 0x00002a59u, 0x0000022fu, 0x000026a7u, 0x00040071u, 0x00000006u, 0x00002a5cu, + 0x000026afu, 0x0004007cu, 0x00000008u, 0x00002a5du, 0x00002a5cu, 0x000500c7u, 0x00000008u, 0x00002a5eu, + 0x00002a5du, 0x00000232u, 0x000500abu, 0x00000069u, 0x00002a5fu, 0x00002a5eu, 0x00000225u, 0x000300f7u, + 0x00002a68u, 0x00000000u, 0x000400fau, 0x00002a5fu, 0x00002a60u, 0x00002a68u, 0x000200f8u, 0x00002a60u, + 0x000500c7u, 0x00000008u, 0x00002a63u, 0x000029a1u, 0x00002a59u, 0x00050082u, 0x00000008u, 0x00002a64u, + 0x00002a63u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00002a65u, 0x00000001u, 0x0000002au, 0x00002a64u, + 0x00000225u, 0x000500c6u, 0x00000008u, 0x00002a67u, 0x000029a1u, 0x00002a65u, 0x000200f9u, 0x00002a68u, + 0x000200f8u, 0x00002a68u, 0x000700f5u, 0x00000008u, 0x00008dcau, 0x000029a1u, 0x00002a56u, 0x00002a67u, + 0x00002a60u, 0x00050082u, 0x00000008u, 0x00002a6au, 0x00002a59u, 0x0000022fu, 0x000500c7u, 0x00000008u, + 0x00002a6cu, 0x00008dcau, 0x00002a6au, 0x000200f9u, 0x00002a6du, 0x000200f8u, 0x00002a6du, 0x000700f5u, + 0x00000008u, 0x00008dcbu, 0x000029a1u, 0x0000299du, 0x00002a6cu, 0x00002a68u, 0x00050051u, 0x00000008u, + 0x000029a9u, 0x000026dfu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00002a74u, 0x000026abu, 0x0004007cu, + 0x00000008u, 0x00002a75u, 0x00002a74u, 0x000500abu, 0x00000069u, 0x00002a76u, 0x00002a75u, 0x00000225u, + 0x000300f7u, 0x00002a8eu, 0x00000000u, 0x000400fau, 0x00002a76u, 0x00002a77u, 0x00002a8eu, 0x000200f8u, + 0x00002a77u, 0x000500c4u, 0x00000008u, 0x00002a7au, 0x0000022fu, 0x000026abu, 0x00040071u, 0x00000006u, + 0x00002a7du, 0x000026afu, 0x0004007cu, 0x00000008u, 0x00002a7eu, 0x00002a7du, 0x000500c7u, 0x00000008u, + 0x00002a7fu, 0x00002a7eu, 0x00000262u, 0x000500abu, 0x00000069u, 0x00002a80u, 0x00002a7fu, 0x00000225u, + 0x000300f7u, 0x00002a89u, 0x00000000u, 0x000400fau, 0x00002a80u, 0x00002a81u, 0x00002a89u, 0x000200f8u, + 0x00002a81u, 0x000500c7u, 0x00000008u, 0x00002a84u, 0x000029a9u, 0x00002a7au, 0x00050082u, 0x00000008u, + 0x00002a85u, 0x00002a84u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00002a86u, 0x00000001u, 0x0000002au, + 0x00002a85u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x00002a88u, 0x000029a9u, 0x00002a86u, 0x000200f9u, + 0x00002a89u, 0x000200f8u, 0x00002a89u, 0x000700f5u, 0x00000008u, 0x00008dceu, 0x000029a9u, 0x00002a77u, + 0x00002a88u, 0x00002a81u, 0x00050082u, 0x00000008u, 0x00002a8bu, 0x00002a7au, 0x0000022fu, 0x000500c7u, + 0x00000008u, 0x00002a8du, 0x00008dceu, 0x00002a8bu, 0x000200f9u, 0x00002a8eu, 0x000200f8u, 0x00002a8eu, + 0x000700f5u, 0x00000008u, 0x00008dcfu, 0x000029a9u, 0x00002a6du, 0x00002a8du, 0x00002a89u, 0x0004007cu, + 0x00000006u, 0x000029b0u, 0x00008dcfu, 0x00050084u, 0x00000006u, 0x000029b1u, 0x0000269fu, 0x000029b0u, + 0x00050080u, 0x00000006u, 0x000029b2u, 0x0000269du, 0x000029b1u, 0x00050084u, 0x00000006u, 0x000029b4u, + 0x000029b2u, 0x0000038bu, 0x000500c4u, 0x00000008u, 0x000029b7u, 0x00008dcbu, 0x0000290fu, 0x0004007cu, + 0x00000006u, 0x000029b8u, 0x000029b7u, 0x00050080u, 0x00000006u, 0x000029b9u, 0x000029b4u, 0x000029b8u, + 0x000500c7u, 0x00000006u, 0x000029bau, 0x000029b9u, 0x000011f7u, 0x000500c7u, 0x00000006u, 0x000029bdu, + 0x000029b0u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000029beu, 0x000029bdu, 0x00000319u, 0x000500c6u, + 0x00000006u, 0x000029c0u, 0x000029bau, 0x000029beu, 0x000500c2u, 0x00000006u, 0x000029c2u, 0x000029c0u, + 0x0000038bu, 0x0004007cu, 0x00000006u, 0x000029c4u, 0x00002918u, 0x000500c7u, 0x00000006u, 0x000029c6u, + 0x000029c2u, 0x000029c4u, 0x000500c6u, 0x00000006u, 0x000029c9u, 0x000029c6u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x000029cau, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000029c9u, 0x0004003du, + 0x00000011u, 0x000029cbu, 0x000029cau, 0x00040071u, 0x00000006u, 0x000029ccu, 0x000029cbu, 0x0004007cu, + 0x00000008u, 0x000029cdu, 0x000029ccu, 0x000300f7u, 0x00002a01u, 0x00000000u, 0x000400fau, 0x00002321u, + 0x000029cfu, 0x00002a01u, 0x000200f8u, 0x000029cfu, 0x000500aau, 0x00000069u, 0x000029d4u, 0x0000290eu, + 0x00000225u, 0x000300f7u, 0x000029f8u, 0x00000000u, 0x000400fau, 0x000029d4u, 0x000029d5u, 0x000029eau, + 0x000200f8u, 0x000029eau, 0x000500c7u, 0x00000006u, 0x000029ecu, 0x000029c0u, 0x0000038bu, 0x00050084u, + 0x00000006u, 0x000029edu, 0x00000709u, 0x000029ecu, 0x00050082u, 0x00000006u, 0x000029eeu, 0x00000319u, + 0x000029edu, 0x000500c3u, 0x00000008u, 0x000029f0u, 0x000029cdu, 0x000029eeu, 0x000500c7u, 0x00000008u, + 0x000029f2u, 0x000029f0u, 0x00000363u, 0x000500c4u, 0x00000008u, 0x000029f4u, 0x000029f2u, 0x00000232u, + 0x00050080u, 0x00000008u, 0x000029f7u, 0x000029f4u, 0x000025e4u, 0x000200f9u, 0x000029f8u, 0x000200f8u, + 0x000029d5u, 0x000500c7u, 0x00000006u, 0x000029d7u, 0x000029c0u, 0x00000469u, 0x00050084u, 0x00000006u, + 0x000029d8u, 0x00000709u, 0x000029d7u, 0x00050082u, 0x00000006u, 0x000029d9u, 0x000012a3u, 0x000029d8u, + 0x000500c3u, 0x00000008u, 0x000029dbu, 0x000029cdu, 0x000029d9u, 0x000500c7u, 0x00000008u, 0x000029ddu, + 0x000029dbu, 0x00000538u, 0x000500c4u, 0x0000000fu, 0x000029e0u, 0x000026a5u, 0x00000238u, 0x00040071u, + 0x00000006u, 0x000029e1u, 0x000029e0u, 0x0004007cu, 0x00000008u, 0x000029e2u, 0x000029e1u, 0x000500c5u, + 0x00000008u, 0x000029e4u, 0x000029ddu, 0x000029e2u, 0x000500c4u, 0x00000008u, 0x000029e6u, 0x000029e4u, + 0x00000232u, 0x00050080u, 0x00000008u, 0x000029e9u, 0x000029e6u, 0x000025e4u, 0x000200f9u, 0x000029f8u, + 0x000200f8u, 0x000029f8u, 0x000700f5u, 0x00000008u, 0x00008dd0u, 0x000029e9u, 0x000029d5u, 0x000029f7u, + 0x000029eau, 0x000500c5u, 0x00000008u, 0x000029fbu, 0x00008dd0u, 0x000012c8u, 0x000500c6u, 0x00000008u, + 0x000029fcu, 0x000029fbu, 0x0000022fu, 0x00080041u, 0x00000697u, 0x000029fdu, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x000029fcu, 0x0004003du, 0x00000011u, 0x000029feu, 0x000029fdu, 0x00040071u, + 0x00000006u, 0x000029ffu, 0x000029feu, 0x0004007cu, 0x00000008u, 0x00002a00u, 0x000029ffu, 0x000200f9u, + 0x00002a01u, 0x000200f8u, 0x00002a01u, 0x000700f5u, 0x00000008u, 0x00008ddcu, 0x000029cdu, 0x00002a8eu, + 0x00002a00u, 0x000029f8u, 0x000200f9u, 0x00002a02u, 0x000200f8u, 0x0000291au, 0x00050084u, 0x00000008u, + 0x0000291cu, 0x00000232u, 0x000025e4u, 0x00050051u, 0x00000008u, 0x0000291eu, 0x000026dfu, 0x00000000u, + 0x00050080u, 0x00000008u, 0x0000291fu, 0x0000291eu, 0x0000291cu, 0x00050050u, 0x000000f2u, 0x00002a09u, + 0x0000291fu, 0x0000291fu, 0x00050080u, 0x000000f2u, 0x00002a0au, 0x00002a09u, 0x00000df7u, 0x00040071u, + 0x00000006u, 0x00002a0du, 0x000026a7u, 0x0004007cu, 0x00000008u, 0x00002a0eu, 0x00002a0du, 0x000500abu, + 0x00000069u, 0x00002a0fu, 0x00002a0eu, 0x00000225u, 0x000300f7u, 0x00002a2bu, 0x00000000u, 0x000400fau, + 0x00002a0fu, 0x00002a10u, 0x00002a2bu, 0x000200f8u, 0x00002a10u, 0x000500c4u, 0x00000008u, 0x00002a13u, + 0x0000022fu, 0x000026a7u, 0x00040071u, 0x00000006u, 0x00002a16u, 0x000026afu, 0x0004007cu, 0x00000008u, + 0x00002a17u, 0x00002a16u, 0x000500c7u, 0x00000008u, 0x00002a18u, 0x00002a17u, 0x00000232u, 0x000500abu, + 0x00000069u, 0x00002a19u, 0x00002a18u, 0x00000225u, 0x000300f7u, 0x00002a25u, 0x00000000u, 0x000400fau, + 0x00002a19u, 0x00002a1au, 0x00002a25u, 0x000200f8u, 0x00002a1au, 0x00050050u, 0x000000f2u, 0x00002a1du, + 0x00002a13u, 0x00002a13u, 0x000500c7u, 0x000000f2u, 0x00002a1eu, 0x00002a0au, 0x00002a1du, 0x00050082u, + 0x000000f2u, 0x00002a20u, 0x00002a1eu, 0x0000c230u, 0x0007000cu, 0x000000f2u, 0x00002a22u, 0x00000001u, + 0x0000002au, 0x00002a20u, 0x00000c57u, 0x000500c6u, 0x000000f2u, 0x00002a24u, 0x00002a0au, 0x00002a22u, + 0x000200f9u, 0x00002a25u, 0x000200f8u, 0x00002a25u, 0x000700f5u, 0x000000f2u, 0x00008dd1u, 0x00002a0au, + 0x00002a10u, 0x00002a24u, 0x00002a1au, 0x00050082u, 0x00000008u, 0x00002a27u, 0x00002a13u, 0x0000022fu, + 0x00050050u, 0x000000f2u, 0x00002a29u, 0x00002a27u, 0x00002a27u, 0x000500c7u, 0x000000f2u, 0x00002a2au, + 0x00008dd1u, 0x00002a29u, 0x000200f9u, 0x00002a2bu, 0x000200f8u, 0x00002a2bu, 0x000700f5u, 0x000000f2u, + 0x00008dd2u, 0x00002a0au, 0x0000291au, 0x00002a2au, 0x00002a25u, 0x00050051u, 0x00000008u, 0x00002927u, + 0x000026dfu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00002a32u, 0x000026abu, 0x0004007cu, 0x00000008u, + 0x00002a33u, 0x00002a32u, 0x000500abu, 0x00000069u, 0x00002a34u, 0x00002a33u, 0x00000225u, 0x000300f7u, + 0x00002a4cu, 0x00000000u, 0x000400fau, 0x00002a34u, 0x00002a35u, 0x00002a4cu, 0x000200f8u, 0x00002a35u, + 0x000500c4u, 0x00000008u, 0x00002a38u, 0x0000022fu, 0x000026abu, 0x00040071u, 0x00000006u, 0x00002a3bu, + 0x000026afu, 0x0004007cu, 0x00000008u, 0x00002a3cu, 0x00002a3bu, 0x000500c7u, 0x00000008u, 0x00002a3du, + 0x00002a3cu, 0x00000262u, 0x000500abu, 0x00000069u, 0x00002a3eu, 0x00002a3du, 0x00000225u, 0x000300f7u, + 0x00002a47u, 0x00000000u, 0x000400fau, 0x00002a3eu, 0x00002a3fu, 0x00002a47u, 0x000200f8u, 0x00002a3fu, + 0x000500c7u, 0x00000008u, 0x00002a42u, 0x00002927u, 0x00002a38u, 0x00050082u, 0x00000008u, 0x00002a43u, + 0x00002a42u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00002a44u, 0x00000001u, 0x0000002au, 0x00002a43u, + 0x00000225u, 0x000500c6u, 0x00000008u, 0x00002a46u, 0x00002927u, 0x00002a44u, 0x000200f9u, 0x00002a47u, + 0x000200f8u, 0x00002a47u, 0x000700f5u, 0x00000008u, 0x00008dd5u, 0x00002927u, 0x00002a35u, 0x00002a46u, + 0x00002a3fu, 0x00050082u, 0x00000008u, 0x00002a49u, 0x00002a38u, 0x0000022fu, 0x000500c7u, 0x00000008u, + 0x00002a4bu, 0x00008dd5u, 0x00002a49u, 0x000200f9u, 0x00002a4cu, 0x000200f8u, 0x00002a4cu, 0x000700f5u, + 0x00000008u, 0x00008dd6u, 0x00002927u, 0x00002a2bu, 0x00002a4bu, 0x00002a47u, 0x0004007cu, 0x00000006u, + 0x0000292eu, 0x00008dd6u, 0x00050084u, 0x00000006u, 0x0000292fu, 0x0000269fu, 0x0000292eu, 0x00050080u, + 0x00000006u, 0x00002930u, 0x0000269du, 0x0000292fu, 0x00050084u, 0x00000006u, 0x00002932u, 0x00002930u, + 0x0000038bu, 0x00050050u, 0x000000f2u, 0x00002935u, 0x0000290fu, 0x0000290fu, 0x000500c4u, 0x000000f2u, + 0x00002936u, 0x00008dd2u, 0x00002935u, 0x0004007cu, 0x000000b4u, 0x00002937u, 0x00002936u, 0x00050050u, + 0x000000b4u, 0x00002938u, 0x00002932u, 0x00002932u, 0x00050080u, 0x000000b4u, 0x00002939u, 0x00002938u, + 0x00002937u, 0x000500c7u, 0x000000b4u, 0x0000293bu, 0x00002939u, 0x0000c234u, 0x000500c7u, 0x00000006u, + 0x0000293eu, 0x0000292eu, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000293fu, 0x0000293eu, 0x00000319u, + 0x00050050u, 0x000000b4u, 0x00002941u, 0x0000293fu, 0x0000293fu, 0x000500c6u, 0x000000b4u, 0x00002942u, + 0x0000293bu, 0x00002941u, 0x000500c2u, 0x000000b4u, 0x00002945u, 0x00002942u, 0x0000c235u, 0x0004007cu, + 0x00000006u, 0x00002947u, 0x00002918u, 0x00050050u, 0x000000b4u, 0x00002949u, 0x00002947u, 0x00002947u, + 0x000500c7u, 0x000000b4u, 0x0000294au, 0x00002945u, 0x00002949u, 0x00050051u, 0x00000006u, 0x0000294du, + 0x0000294au, 0x00000000u, 0x000500c6u, 0x00000006u, 0x0000294eu, 0x0000294du, 0x00000461u, 0x00080041u, + 0x00000697u, 0x0000294fu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000294eu, 0x0004003du, + 0x00000011u, 0x00002950u, 0x0000294fu, 0x00040071u, 0x00000006u, 0x00002951u, 0x00002950u, 0x0004007cu, + 0x00000008u, 0x00002952u, 0x00002951u, 0x00050051u, 0x00000006u, 0x00002955u, 0x0000294au, 0x00000001u, + 0x000500c6u, 0x00000006u, 0x00002956u, 0x00002955u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00002957u, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00002956u, 0x0004003du, 0x00000011u, 0x00002958u, + 0x00002957u, 0x00040071u, 0x00000006u, 0x00002959u, 0x00002958u, 0x0004007cu, 0x00000008u, 0x0000295au, + 0x00002959u, 0x000500aau, 0x00000069u, 0x0000295fu, 0x0000290eu, 0x0000022fu, 0x000300f7u, 0x00002998u, + 0x00000000u, 0x000400fau, 0x0000295fu, 0x00002960u, 0x00002975u, 0x000200f8u, 0x00002975u, 0x000500aau, + 0x00000069u, 0x0000297au, 0x0000290eu, 0x00000225u, 0x000300f7u, 0x00002997u, 0x00000000u, 0x000400fau, + 0x0000297au, 0x0000297bu, 0x00002992u, 0x000200f8u, 0x00002992u, 0x000500c3u, 0x00000008u, 0x00002994u, + 0x00002952u, 0x00000262u, 0x000500c3u, 0x00000008u, 0x00002996u, 0x0000295au, 0x00000262u, 0x000200f9u, + 0x00002997u, 0x000200f8u, 0x0000297bu, 0x00050051u, 0x00000006u, 0x0000297du, 0x00002942u, 0x00000000u, + 0x000500c7u, 0x00000006u, 0x0000297eu, 0x0000297du, 0x00000469u, 0x0004007cu, 0x00000008u, 0x0000297fu, + 0x0000297eu, 0x00050084u, 0x00000008u, 0x00002980u, 0x00000238u, 0x0000297fu, 0x00050082u, 0x00000008u, + 0x00002981u, 0x0000026eu, 0x00002980u, 0x000500c3u, 0x00000008u, 0x00002983u, 0x00002952u, 0x00002981u, + 0x00050051u, 0x00000006u, 0x00002985u, 0x00002942u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x00002986u, + 0x00002985u, 0x00000469u, 0x0004007cu, 0x00000008u, 0x00002987u, 0x00002986u, 0x00050084u, 0x00000008u, + 0x00002988u, 0x00000238u, 0x00002987u, 0x00050082u, 0x00000008u, 0x00002989u, 0x0000026eu, 0x00002988u, + 0x000500c3u, 0x00000008u, 0x0000298bu, 0x0000295au, 0x00002989u, 0x000500c7u, 0x00000008u, 0x0000298du, + 0x00002983u, 0x00000538u, 0x00050084u, 0x00000008u, 0x0000298eu, 0x0000298du, 0x000003f7u, 0x000500c7u, + 0x00000008u, 0x00002990u, 0x0000298bu, 0x00000538u, 0x00050084u, 0x00000008u, 0x00002991u, 0x00002990u, + 0x000003f7u, 0x000200f9u, 0x00002997u, 0x000200f8u, 0x00002997u, 0x000700f5u, 0x00000008u, 0x00008ddau, + 0x00002991u, 0x0000297bu, 0x00002996u, 0x00002992u, 0x000700f5u, 0x00000008u, 0x00008dd8u, 0x0000298eu, + 0x0000297bu, 0x00002994u, 0x00002992u, 0x000200f9u, 0x00002998u, 0x000200f8u, 0x00002960u, 0x00050051u, + 0x00000006u, 0x00002962u, 0x00002942u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x00002963u, 0x00002962u, + 0x0000038bu, 0x0004007cu, 0x00000008u, 0x00002964u, 0x00002963u, 0x00050084u, 0x00000008u, 0x00002965u, + 0x00000238u, 0x00002964u, 0x00050082u, 0x00000008u, 0x00002966u, 0x00000262u, 0x00002965u, 0x000500c3u, + 0x00000008u, 0x00002968u, 0x00002952u, 0x00002966u, 0x00050051u, 0x00000006u, 0x0000296au, 0x00002942u, + 0x00000001u, 0x000500c7u, 0x00000006u, 0x0000296bu, 0x0000296au, 0x0000038bu, 0x0004007cu, 0x00000008u, + 0x0000296cu, 0x0000296bu, 0x00050084u, 0x00000008u, 0x0000296du, 0x00000238u, 0x0000296cu, 0x00050082u, + 0x00000008u, 0x0000296eu, 0x00000262u, 0x0000296du, 0x000500c3u, 0x00000008u, 0x00002970u, 0x0000295au, + 0x0000296eu, 0x000500c7u, 0x00000008u, 0x00002972u, 0x00002968u, 0x00000363u, 0x000500c7u, 0x00000008u, + 0x00002974u, 0x00002970u, 0x00000363u, 0x000200f9u, 0x00002998u, 0x000200f8u, 0x00002998u, 0x000700f5u, + 0x00000008u, 0x00008dd9u, 0x00002974u, 0x00002960u, 0x00008ddau, 0x00002997u, 0x000700f5u, 0x00000008u, + 0x00008dd7u, 0x00002972u, 0x00002960u, 0x00008dd8u, 0x00002997u, 0x000500c4u, 0x00000008u, 0x0000299au, + 0x00008dd7u, 0x00000262u, 0x000500c5u, 0x00000008u, 0x0000299cu, 0x0000299au, 0x00008dd9u, 0x000200f9u, + 0x00002a02u, 0x000200f8u, 0x00002a02u, 0x000700f5u, 0x00000008u, 0x00008ddbu, 0x0000299cu, 0x00002998u, + 0x00008ddcu, 0x00002a01u, 0x000200f9u, 0x00002701u, 0x000200f8u, 0x000026e8u, 0x000500c3u, 0x00000008u, + 0x000026eau, 0x000025e4u, 0x0000022fu, 0x000500b1u, 0x00000069u, 0x0000274fu, 0x000026eau, 0x00000232u, + 0x000300f7u, 0x00002757u, 0x00000000u, 0x000400fau, 0x0000274fu, 0x00002751u, 0x00002757u, 0x000200f8u, + 0x00002751u, 0x00040071u, 0x00000006u, 0x00002754u, 0x000026a3u, 0x0004007cu, 0x00000008u, 0x00002755u, + 0x00002754u, 0x000500abu, 0x00000069u, 0x00002756u, 0x00002755u, 0x00000232u, 0x000200f9u, 0x00002757u, + 0x000200f8u, 0x00002757u, 0x000700f5u, 0x00000069u, 0x00002758u, 0x0000274fu, 0x000026e8u, 0x00002756u, + 0x00002751u, 0x000400a8u, 0x00000069u, 0x0000275au, 0x00002321u, 0x000500a7u, 0x00000069u, 0x0000275bu, + 0x00002758u, 0x0000275au, 0x00040071u, 0x00000006u, 0x0000275eu, 0x000026a3u, 0x0004007cu, 0x00000008u, + 0x0000275fu, 0x0000275eu, 0x0007000cu, 0x00000008u, 0x00002760u, 0x00000001u, 0x00000027u, 0x0000275fu, + 0x00000232u, 0x000500aau, 0x00000069u, 0x00002765u, 0x0000275fu, 0x00000235u, 0x000500a6u, 0x00000069u, + 0x00002768u, 0x00002765u, 0x00002321u, 0x000600a9u, 0x00000008u, 0x00002769u, 0x00002768u, 0x00001184u, + 0x000003dfu, 0x000300f7u, 0x00002853u, 0x00000000u, 0x000400fau, 0x0000275bu, 0x0000276bu, 0x000027eeu, + 0x000200f8u, 0x000027eeu, 0x00050051u, 0x00000008u, 0x000027f1u, 0x000026dfu, 0x00000000u, 0x00050080u, + 0x00000008u, 0x000027f2u, 0x000027f1u, 0x000026eau, 0x00040071u, 0x00000006u, 0x000028a4u, 0x000026a7u, + 0x0004007cu, 0x00000008u, 0x000028a5u, 0x000028a4u, 0x000500abu, 0x00000069u, 0x000028a6u, 0x000028a5u, + 0x00000225u, 0x000300f7u, 0x000028beu, 0x00000000u, 0x000400fau, 0x000028a6u, 0x000028a7u, 0x000028beu, + 0x000200f8u, 0x000028a7u, 0x000500c4u, 0x00000008u, 0x000028aau, 0x0000022fu, 0x000026a7u, 0x00040071u, + 0x00000006u, 0x000028adu, 0x000026afu, 0x0004007cu, 0x00000008u, 0x000028aeu, 0x000028adu, 0x000500c7u, + 0x00000008u, 0x000028afu, 0x000028aeu, 0x00000232u, 0x000500abu, 0x00000069u, 0x000028b0u, 0x000028afu, + 0x00000225u, 0x000300f7u, 0x000028b9u, 0x00000000u, 0x000400fau, 0x000028b0u, 0x000028b1u, 0x000028b9u, + 0x000200f8u, 0x000028b1u, 0x000500c7u, 0x00000008u, 0x000028b4u, 0x000027f2u, 0x000028aau, 0x00050082u, + 0x00000008u, 0x000028b5u, 0x000028b4u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x000028b6u, 0x00000001u, + 0x0000002au, 0x000028b5u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x000028b8u, 0x000027f2u, 0x000028b6u, + 0x000200f9u, 0x000028b9u, 0x000200f8u, 0x000028b9u, 0x000700f5u, 0x00000008u, 0x00008ddeu, 0x000027f2u, + 0x000028a7u, 0x000028b8u, 0x000028b1u, 0x00050082u, 0x00000008u, 0x000028bbu, 0x000028aau, 0x0000022fu, + 0x000500c7u, 0x00000008u, 0x000028bdu, 0x00008ddeu, 0x000028bbu, 0x000200f9u, 0x000028beu, 0x000200f8u, + 0x000028beu, 0x000700f5u, 0x00000008u, 0x00008ddfu, 0x000027f2u, 0x000027eeu, 0x000028bdu, 0x000028b9u, + 0x00050051u, 0x00000008u, 0x000027fau, 0x000026dfu, 0x00000001u, 0x00040071u, 0x00000006u, 0x000028c5u, + 0x000026abu, 0x0004007cu, 0x00000008u, 0x000028c6u, 0x000028c5u, 0x000500abu, 0x00000069u, 0x000028c7u, + 0x000028c6u, 0x00000225u, 0x000300f7u, 0x000028dfu, 0x00000000u, 0x000400fau, 0x000028c7u, 0x000028c8u, + 0x000028dfu, 0x000200f8u, 0x000028c8u, 0x000500c4u, 0x00000008u, 0x000028cbu, 0x0000022fu, 0x000026abu, + 0x00040071u, 0x00000006u, 0x000028ceu, 0x000026afu, 0x0004007cu, 0x00000008u, 0x000028cfu, 0x000028ceu, + 0x000500c7u, 0x00000008u, 0x000028d0u, 0x000028cfu, 0x00000262u, 0x000500abu, 0x00000069u, 0x000028d1u, + 0x000028d0u, 0x00000225u, 0x000300f7u, 0x000028dau, 0x00000000u, 0x000400fau, 0x000028d1u, 0x000028d2u, + 0x000028dau, 0x000200f8u, 0x000028d2u, 0x000500c7u, 0x00000008u, 0x000028d5u, 0x000027fau, 0x000028cbu, + 0x00050082u, 0x00000008u, 0x000028d6u, 0x000028d5u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x000028d7u, + 0x00000001u, 0x0000002au, 0x000028d6u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x000028d9u, 0x000027fau, + 0x000028d7u, 0x000200f9u, 0x000028dau, 0x000200f8u, 0x000028dau, 0x000700f5u, 0x00000008u, 0x00008de2u, + 0x000027fau, 0x000028c8u, 0x000028d9u, 0x000028d2u, 0x00050082u, 0x00000008u, 0x000028dcu, 0x000028cbu, + 0x0000022fu, 0x000500c7u, 0x00000008u, 0x000028deu, 0x00008de2u, 0x000028dcu, 0x000200f9u, 0x000028dfu, + 0x000200f8u, 0x000028dfu, 0x000700f5u, 0x00000008u, 0x00008de3u, 0x000027fau, 0x000028beu, 0x000028deu, + 0x000028dau, 0x0004007cu, 0x00000006u, 0x00002801u, 0x00008de3u, 0x00050084u, 0x00000006u, 0x00002802u, + 0x0000269fu, 0x00002801u, 0x00050080u, 0x00000006u, 0x00002803u, 0x0000269du, 0x00002802u, 0x00050084u, + 0x00000006u, 0x00002805u, 0x00002803u, 0x0000038bu, 0x000500c4u, 0x00000008u, 0x00002808u, 0x00008ddfu, + 0x00002760u, 0x0004007cu, 0x00000006u, 0x00002809u, 0x00002808u, 0x00050080u, 0x00000006u, 0x0000280au, + 0x00002805u, 0x00002809u, 0x000500c7u, 0x00000006u, 0x0000280bu, 0x0000280au, 0x000011f7u, 0x000500c7u, + 0x00000006u, 0x0000280eu, 0x00002801u, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000280fu, 0x0000280eu, + 0x00000319u, 0x000500c6u, 0x00000006u, 0x00002811u, 0x0000280bu, 0x0000280fu, 0x000500c2u, 0x00000006u, + 0x00002813u, 0x00002811u, 0x0000038bu, 0x0004007cu, 0x00000006u, 0x00002815u, 0x00002769u, 0x000500c7u, + 0x00000006u, 0x00002817u, 0x00002813u, 0x00002815u, 0x000500c6u, 0x00000006u, 0x0000281au, 0x00002817u, + 0x00000461u, 0x00080041u, 0x00000697u, 0x0000281bu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x0000281au, 0x0004003du, 0x00000011u, 0x0000281cu, 0x0000281bu, 0x00040071u, 0x00000006u, 0x0000281du, + 0x0000281cu, 0x0004007cu, 0x00000008u, 0x0000281eu, 0x0000281du, 0x000300f7u, 0x00002852u, 0x00000000u, + 0x000400fau, 0x00002321u, 0x00002820u, 0x00002852u, 0x000200f8u, 0x00002820u, 0x000500aau, 0x00000069u, + 0x00002825u, 0x0000275fu, 0x00000225u, 0x000300f7u, 0x00002849u, 0x00000000u, 0x000400fau, 0x00002825u, + 0x00002826u, 0x0000283bu, 0x000200f8u, 0x0000283bu, 0x000500c7u, 0x00000006u, 0x0000283du, 0x00002811u, + 0x0000038bu, 0x00050084u, 0x00000006u, 0x0000283eu, 0x00000709u, 0x0000283du, 0x00050082u, 0x00000006u, + 0x0000283fu, 0x00000319u, 0x0000283eu, 0x000500c3u, 0x00000008u, 0x00002841u, 0x0000281eu, 0x0000283fu, + 0x000500c7u, 0x00000008u, 0x00002843u, 0x00002841u, 0x00000363u, 0x000500c4u, 0x00000008u, 0x00002845u, + 0x00002843u, 0x00000232u, 0x00050080u, 0x00000008u, 0x00002848u, 0x00002845u, 0x000026eau, 0x000200f9u, + 0x00002849u, 0x000200f8u, 0x00002826u, 0x000500c7u, 0x00000006u, 0x00002828u, 0x00002811u, 0x00000469u, + 0x00050084u, 0x00000006u, 0x00002829u, 0x00000709u, 0x00002828u, 0x00050082u, 0x00000006u, 0x0000282au, + 0x000012a3u, 0x00002829u, 0x000500c3u, 0x00000008u, 0x0000282cu, 0x0000281eu, 0x0000282au, 0x000500c7u, + 0x00000008u, 0x0000282eu, 0x0000282cu, 0x00000538u, 0x000500c4u, 0x0000000fu, 0x00002831u, 0x000026a5u, + 0x00000238u, 0x00040071u, 0x00000006u, 0x00002832u, 0x00002831u, 0x0004007cu, 0x00000008u, 0x00002833u, + 0x00002832u, 0x000500c5u, 0x00000008u, 0x00002835u, 0x0000282eu, 0x00002833u, 0x000500c4u, 0x00000008u, + 0x00002837u, 0x00002835u, 0x00000232u, 0x00050080u, 0x00000008u, 0x0000283au, 0x00002837u, 0x000026eau, + 0x000200f9u, 0x00002849u, 0x000200f8u, 0x00002849u, 0x000700f5u, 0x00000008u, 0x00008de4u, 0x0000283au, + 0x00002826u, 0x00002848u, 0x0000283bu, 0x000500c5u, 0x00000008u, 0x0000284cu, 0x00008de4u, 0x000012c8u, + 0x000500c6u, 0x00000008u, 0x0000284du, 0x0000284cu, 0x0000022fu, 0x00080041u, 0x00000697u, 0x0000284eu, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000284du, 0x0004003du, 0x00000011u, 0x0000284fu, + 0x0000284eu, 0x00040071u, 0x00000006u, 0x00002850u, 0x0000284fu, 0x0004007cu, 0x00000008u, 0x00002851u, + 0x00002850u, 0x000200f9u, 0x00002852u, 0x000200f8u, 0x00002852u, 0x000700f5u, 0x00000008u, 0x00008df0u, + 0x0000281eu, 0x000028dfu, 0x00002851u, 0x00002849u, 0x000200f9u, 0x00002853u, 0x000200f8u, 0x0000276bu, + 0x00050084u, 0x00000008u, 0x0000276du, 0x00000232u, 0x000026eau, 0x00050051u, 0x00000008u, 0x0000276fu, + 0x000026dfu, 0x00000000u, 0x00050080u, 0x00000008u, 0x00002770u, 0x0000276fu, 0x0000276du, 0x00050050u, + 0x000000f2u, 0x0000285au, 0x00002770u, 0x00002770u, 0x00050080u, 0x000000f2u, 0x0000285bu, 0x0000285au, + 0x00000df7u, 0x00040071u, 0x00000006u, 0x0000285eu, 0x000026a7u, 0x0004007cu, 0x00000008u, 0x0000285fu, + 0x0000285eu, 0x000500abu, 0x00000069u, 0x00002860u, 0x0000285fu, 0x00000225u, 0x000300f7u, 0x0000287cu, + 0x00000000u, 0x000400fau, 0x00002860u, 0x00002861u, 0x0000287cu, 0x000200f8u, 0x00002861u, 0x000500c4u, + 0x00000008u, 0x00002864u, 0x0000022fu, 0x000026a7u, 0x00040071u, 0x00000006u, 0x00002867u, 0x000026afu, + 0x0004007cu, 0x00000008u, 0x00002868u, 0x00002867u, 0x000500c7u, 0x00000008u, 0x00002869u, 0x00002868u, + 0x00000232u, 0x000500abu, 0x00000069u, 0x0000286au, 0x00002869u, 0x00000225u, 0x000300f7u, 0x00002876u, + 0x00000000u, 0x000400fau, 0x0000286au, 0x0000286bu, 0x00002876u, 0x000200f8u, 0x0000286bu, 0x00050050u, + 0x000000f2u, 0x0000286eu, 0x00002864u, 0x00002864u, 0x000500c7u, 0x000000f2u, 0x0000286fu, 0x0000285bu, + 0x0000286eu, 0x00050082u, 0x000000f2u, 0x00002871u, 0x0000286fu, 0x0000c230u, 0x0007000cu, 0x000000f2u, + 0x00002873u, 0x00000001u, 0x0000002au, 0x00002871u, 0x00000c57u, 0x000500c6u, 0x000000f2u, 0x00002875u, + 0x0000285bu, 0x00002873u, 0x000200f9u, 0x00002876u, 0x000200f8u, 0x00002876u, 0x000700f5u, 0x000000f2u, + 0x00008de5u, 0x0000285bu, 0x00002861u, 0x00002875u, 0x0000286bu, 0x00050082u, 0x00000008u, 0x00002878u, + 0x00002864u, 0x0000022fu, 0x00050050u, 0x000000f2u, 0x0000287au, 0x00002878u, 0x00002878u, 0x000500c7u, + 0x000000f2u, 0x0000287bu, 0x00008de5u, 0x0000287au, 0x000200f9u, 0x0000287cu, 0x000200f8u, 0x0000287cu, + 0x000700f5u, 0x000000f2u, 0x00008de6u, 0x0000285bu, 0x0000276bu, 0x0000287bu, 0x00002876u, 0x00050051u, + 0x00000008u, 0x00002778u, 0x000026dfu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00002883u, 0x000026abu, + 0x0004007cu, 0x00000008u, 0x00002884u, 0x00002883u, 0x000500abu, 0x00000069u, 0x00002885u, 0x00002884u, + 0x00000225u, 0x000300f7u, 0x0000289du, 0x00000000u, 0x000400fau, 0x00002885u, 0x00002886u, 0x0000289du, + 0x000200f8u, 0x00002886u, 0x000500c4u, 0x00000008u, 0x00002889u, 0x0000022fu, 0x000026abu, 0x00040071u, + 0x00000006u, 0x0000288cu, 0x000026afu, 0x0004007cu, 0x00000008u, 0x0000288du, 0x0000288cu, 0x000500c7u, + 0x00000008u, 0x0000288eu, 0x0000288du, 0x00000262u, 0x000500abu, 0x00000069u, 0x0000288fu, 0x0000288eu, + 0x00000225u, 0x000300f7u, 0x00002898u, 0x00000000u, 0x000400fau, 0x0000288fu, 0x00002890u, 0x00002898u, + 0x000200f8u, 0x00002890u, 0x000500c7u, 0x00000008u, 0x00002893u, 0x00002778u, 0x00002889u, 0x00050082u, + 0x00000008u, 0x00002894u, 0x00002893u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00002895u, 0x00000001u, + 0x0000002au, 0x00002894u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x00002897u, 0x00002778u, 0x00002895u, + 0x000200f9u, 0x00002898u, 0x000200f8u, 0x00002898u, 0x000700f5u, 0x00000008u, 0x00008de9u, 0x00002778u, + 0x00002886u, 0x00002897u, 0x00002890u, 0x00050082u, 0x00000008u, 0x0000289au, 0x00002889u, 0x0000022fu, + 0x000500c7u, 0x00000008u, 0x0000289cu, 0x00008de9u, 0x0000289au, 0x000200f9u, 0x0000289du, 0x000200f8u, + 0x0000289du, 0x000700f5u, 0x00000008u, 0x00008deau, 0x00002778u, 0x0000287cu, 0x0000289cu, 0x00002898u, + 0x0004007cu, 0x00000006u, 0x0000277fu, 0x00008deau, 0x00050084u, 0x00000006u, 0x00002780u, 0x0000269fu, + 0x0000277fu, 0x00050080u, 0x00000006u, 0x00002781u, 0x0000269du, 0x00002780u, 0x00050084u, 0x00000006u, + 0x00002783u, 0x00002781u, 0x0000038bu, 0x00050050u, 0x000000f2u, 0x00002786u, 0x00002760u, 0x00002760u, + 0x000500c4u, 0x000000f2u, 0x00002787u, 0x00008de6u, 0x00002786u, 0x0004007cu, 0x000000b4u, 0x00002788u, + 0x00002787u, 0x00050050u, 0x000000b4u, 0x00002789u, 0x00002783u, 0x00002783u, 0x00050080u, 0x000000b4u, + 0x0000278au, 0x00002789u, 0x00002788u, 0x000500c7u, 0x000000b4u, 0x0000278cu, 0x0000278au, 0x0000c234u, + 0x000500c7u, 0x00000006u, 0x0000278fu, 0x0000277fu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00002790u, + 0x0000278fu, 0x00000319u, 0x00050050u, 0x000000b4u, 0x00002792u, 0x00002790u, 0x00002790u, 0x000500c6u, + 0x000000b4u, 0x00002793u, 0x0000278cu, 0x00002792u, 0x000500c2u, 0x000000b4u, 0x00002796u, 0x00002793u, + 0x0000c235u, 0x0004007cu, 0x00000006u, 0x00002798u, 0x00002769u, 0x00050050u, 0x000000b4u, 0x0000279au, + 0x00002798u, 0x00002798u, 0x000500c7u, 0x000000b4u, 0x0000279bu, 0x00002796u, 0x0000279au, 0x00050051u, + 0x00000006u, 0x0000279eu, 0x0000279bu, 0x00000000u, 0x000500c6u, 0x00000006u, 0x0000279fu, 0x0000279eu, + 0x00000461u, 0x00080041u, 0x00000697u, 0x000027a0u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x0000279fu, 0x0004003du, 0x00000011u, 0x000027a1u, 0x000027a0u, 0x00040071u, 0x00000006u, 0x000027a2u, + 0x000027a1u, 0x0004007cu, 0x00000008u, 0x000027a3u, 0x000027a2u, 0x00050051u, 0x00000006u, 0x000027a6u, + 0x0000279bu, 0x00000001u, 0x000500c6u, 0x00000006u, 0x000027a7u, 0x000027a6u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x000027a8u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000027a7u, 0x0004003du, + 0x00000011u, 0x000027a9u, 0x000027a8u, 0x00040071u, 0x00000006u, 0x000027aau, 0x000027a9u, 0x0004007cu, + 0x00000008u, 0x000027abu, 0x000027aau, 0x000500aau, 0x00000069u, 0x000027b0u, 0x0000275fu, 0x0000022fu, + 0x000300f7u, 0x000027e9u, 0x00000000u, 0x000400fau, 0x000027b0u, 0x000027b1u, 0x000027c6u, 0x000200f8u, + 0x000027c6u, 0x000500aau, 0x00000069u, 0x000027cbu, 0x0000275fu, 0x00000225u, 0x000300f7u, 0x000027e8u, + 0x00000000u, 0x000400fau, 0x000027cbu, 0x000027ccu, 0x000027e3u, 0x000200f8u, 0x000027e3u, 0x000500c3u, + 0x00000008u, 0x000027e5u, 0x000027a3u, 0x00000262u, 0x000500c3u, 0x00000008u, 0x000027e7u, 0x000027abu, + 0x00000262u, 0x000200f9u, 0x000027e8u, 0x000200f8u, 0x000027ccu, 0x00050051u, 0x00000006u, 0x000027ceu, + 0x00002793u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x000027cfu, 0x000027ceu, 0x00000469u, 0x0004007cu, + 0x00000008u, 0x000027d0u, 0x000027cfu, 0x00050084u, 0x00000008u, 0x000027d1u, 0x00000238u, 0x000027d0u, + 0x00050082u, 0x00000008u, 0x000027d2u, 0x0000026eu, 0x000027d1u, 0x000500c3u, 0x00000008u, 0x000027d4u, + 0x000027a3u, 0x000027d2u, 0x00050051u, 0x00000006u, 0x000027d6u, 0x00002793u, 0x00000001u, 0x000500c7u, + 0x00000006u, 0x000027d7u, 0x000027d6u, 0x00000469u, 0x0004007cu, 0x00000008u, 0x000027d8u, 0x000027d7u, + 0x00050084u, 0x00000008u, 0x000027d9u, 0x00000238u, 0x000027d8u, 0x00050082u, 0x00000008u, 0x000027dau, + 0x0000026eu, 0x000027d9u, 0x000500c3u, 0x00000008u, 0x000027dcu, 0x000027abu, 0x000027dau, 0x000500c7u, + 0x00000008u, 0x000027deu, 0x000027d4u, 0x00000538u, 0x00050084u, 0x00000008u, 0x000027dfu, 0x000027deu, + 0x000003f7u, 0x000500c7u, 0x00000008u, 0x000027e1u, 0x000027dcu, 0x00000538u, 0x00050084u, 0x00000008u, + 0x000027e2u, 0x000027e1u, 0x000003f7u, 0x000200f9u, 0x000027e8u, 0x000200f8u, 0x000027e8u, 0x000700f5u, + 0x00000008u, 0x00008deeu, 0x000027e2u, 0x000027ccu, 0x000027e7u, 0x000027e3u, 0x000700f5u, 0x00000008u, + 0x00008decu, 0x000027dfu, 0x000027ccu, 0x000027e5u, 0x000027e3u, 0x000200f9u, 0x000027e9u, 0x000200f8u, + 0x000027b1u, 0x00050051u, 0x00000006u, 0x000027b3u, 0x00002793u, 0x00000000u, 0x000500c7u, 0x00000006u, + 0x000027b4u, 0x000027b3u, 0x0000038bu, 0x0004007cu, 0x00000008u, 0x000027b5u, 0x000027b4u, 0x00050084u, + 0x00000008u, 0x000027b6u, 0x00000238u, 0x000027b5u, 0x00050082u, 0x00000008u, 0x000027b7u, 0x00000262u, + 0x000027b6u, 0x000500c3u, 0x00000008u, 0x000027b9u, 0x000027a3u, 0x000027b7u, 0x00050051u, 0x00000006u, + 0x000027bbu, 0x00002793u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x000027bcu, 0x000027bbu, 0x0000038bu, + 0x0004007cu, 0x00000008u, 0x000027bdu, 0x000027bcu, 0x00050084u, 0x00000008u, 0x000027beu, 0x00000238u, + 0x000027bdu, 0x00050082u, 0x00000008u, 0x000027bfu, 0x00000262u, 0x000027beu, 0x000500c3u, 0x00000008u, + 0x000027c1u, 0x000027abu, 0x000027bfu, 0x000500c7u, 0x00000008u, 0x000027c3u, 0x000027b9u, 0x00000363u, + 0x000500c7u, 0x00000008u, 0x000027c5u, 0x000027c1u, 0x00000363u, 0x000200f9u, 0x000027e9u, 0x000200f8u, + 0x000027e9u, 0x000700f5u, 0x00000008u, 0x00008dedu, 0x000027c5u, 0x000027b1u, 0x00008deeu, 0x000027e8u, + 0x000700f5u, 0x00000008u, 0x00008debu, 0x000027c3u, 0x000027b1u, 0x00008decu, 0x000027e8u, 0x000500c4u, + 0x00000008u, 0x000027ebu, 0x00008debu, 0x00000262u, 0x000500c5u, 0x00000008u, 0x000027edu, 0x000027ebu, + 0x00008dedu, 0x000200f9u, 0x00002853u, 0x000200f8u, 0x00002853u, 0x000700f5u, 0x00000008u, 0x00008defu, + 0x000027edu, 0x000027e9u, 0x00008df0u, 0x00002852u, 0x000500c7u, 0x00000008u, 0x000026f2u, 0x000025e4u, + 0x0000022fu, 0x00050084u, 0x00000008u, 0x000026f3u, 0x00000262u, 0x000026f2u, 0x00050082u, 0x00000008u, + 0x000026f4u, 0x00000262u, 0x000026f3u, 0x000500c3u, 0x00000008u, 0x000026f6u, 0x00008defu, 0x000026f4u, + 0x000500c7u, 0x00000008u, 0x000026f8u, 0x000026f6u, 0x00000363u, 0x000200f9u, 0x00002701u, 0x000200f8u, + 0x00002701u, 0x000700f5u, 0x00000008u, 0x00008df2u, 0x000026f8u, 0x00002853u, 0x00008ddbu, 0x00002a02u, + 0x000200f9u, 0x00002702u, 0x000200f8u, 0x000026e3u, 0x000200f9u, 0x00002702u, 0x000200f8u, 0x00002702u, + 0x000700f5u, 0x00000008u, 0x00008df1u, 0x00000225u, 0x000026e3u, 0x00008df2u, 0x00002701u, 0x000300f7u, + 0x000023aau, 0x00000000u, 0x000400fau, 0x0000234bu, 0x000023a6u, 0x000023aau, 0x000200f8u, 0x000023a6u, + 0x000500aau, 0x00000069u, 0x000023a9u, 0x000026e1u, 0x00000232u, 0x000200f9u, 0x000023aau, 0x000200f8u, + 0x000023aau, 0x000700f5u, 0x00000069u, 0x000023abu, 0x0000234bu, 0x00002702u, 0x000023a9u, 0x000023a6u, + 0x000300f7u, 0x000023b0u, 0x00000000u, 0x000400fau, 0x000023abu, 0x000023acu, 0x000023b0u, 0x000200f8u, + 0x000023acu, 0x000500c7u, 0x00000008u, 0x000023aeu, 0x00008df1u, 0x0000022fu, 0x000500aau, 0x00000069u, + 0x000023afu, 0x000023aeu, 0x00000225u, 0x000200f9u, 0x000023b0u, 0x000200f8u, 0x000023b0u, 0x000700f5u, + 0x00000069u, 0x000023b1u, 0x000023abu, 0x000023aau, 0x000023afu, 0x000023acu, 0x000300f7u, 0x000023b3u, + 0x00000000u, 0x000400fau, 0x000023b1u, 0x000023b2u, 0x000023b3u, 0x000200f8u, 0x000023b2u, 0x000200f9u, + 0x0000254bu, 0x000200f8u, 0x000023b3u, 0x000200f9u, 0x0000254bu, 0x000200f8u, 0x000023c4u, 0x00040072u, + 0x00000012u, 0x00002a9cu, 0x00007aa9u, 0x0004007cu, 0x00000011u, 0x00002a9du, 0x00002a9cu, 0x000500c4u, + 0x00000011u, 0x00002a9eu, 0x00002a9du, 0x000005fcu, 0x00070050u, 0x00000028u, 0x00002a9fu, 0x00002a9eu, + 0x00002a9eu, 0x00002a9eu, 0x00002a9eu, 0x00050080u, 0x00000028u, 0x00002aa0u, 0x000005f8u, 0x00002a9fu, + 0x0009004fu, 0x00000028u, 0x00002aa3u, 0x00002566u, 0x00002566u, 0x00000000u, 0x00000000u, 0x00000001u, + 0x00000001u, 0x000500b0u, 0x00000600u, 0x00002aa4u, 0x00002aa0u, 0x00002aa3u, 0x0009004fu, 0x00000028u, + 0x00002aa7u, 0x00002566u, 0x00002566u, 0x00000002u, 0x00000002u, 0x00000003u, 0x00000003u, 0x000500b0u, + 0x00000600u, 0x00002aa8u, 0x00002aa0u, 0x00002aa7u, 0x0009004fu, 0x00000028u, 0x00002aabu, 0x00002568u, + 0x00002568u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000001u, 0x000500aeu, 0x00000600u, 0x00002aacu, + 0x00002aa0u, 0x00002aabu, 0x0009004fu, 0x00000028u, 0x00002aafu, 0x00002568u, 0x00002568u, 0x00000002u, + 0x00000002u, 0x00000003u, 0x00000003u, 0x000500aeu, 0x00000600u, 0x00002ab0u, 0x00002aa0u, 0x00002aafu, + 0x000600a9u, 0x00000010u, 0x00002ab2u, 0x00002aa4u, 0x00000619u, 0x00000618u, 0x000600a9u, 0x00000010u, + 0x00002ab4u, 0x00002aacu, 0x00000619u, 0x00000618u, 0x000500c5u, 0x00000010u, 0x00002ab5u, 0x00002ab2u, + 0x00002ab4u, 0x000600a9u, 0x00000010u, 0x00002ab7u, 0x00002aa8u, 0x00000619u, 0x00000618u, 0x000600a9u, + 0x00000010u, 0x00002ab9u, 0x00002ab0u, 0x00000619u, 0x00000618u, 0x000500c5u, 0x00000010u, 0x00002abau, + 0x00002ab7u, 0x00002ab9u, 0x00050084u, 0x00000010u, 0x00002abcu, 0x00002ab5u, 0x00000627u, 0x00050084u, + 0x00000010u, 0x00002abeu, 0x00002abau, 0x0000062eu, 0x00050080u, 0x00000010u, 0x00002abfu, 0x00002abcu, + 0x00002abeu, 0x00050051u, 0x0000000fu, 0x00002ac1u, 0x00002abfu, 0x00000000u, 0x00050051u, 0x0000000fu, + 0x00002ac3u, 0x00002abfu, 0x00000001u, 0x000500c5u, 0x0000000fu, 0x00002ac4u, 0x00002ac1u, 0x00002ac3u, + 0x00050051u, 0x0000000fu, 0x00002ac6u, 0x00002abfu, 0x00000002u, 0x00050051u, 0x0000000fu, 0x00002ac8u, + 0x00002abfu, 0x00000003u, 0x000500c5u, 0x0000000fu, 0x00002ac9u, 0x00002ac6u, 0x00002ac8u, 0x000500c5u, + 0x0000000fu, 0x00002acau, 0x00002ac4u, 0x00002ac9u, 0x000400c8u, 0x0000000fu, 0x00002accu, 0x00002acau, + 0x000500c7u, 0x0000000fu, 0x00002acdu, 0x00002accu, 0x00000474u, 0x00040071u, 0x00000006u, 0x000023cbu, + 0x00002acdu, 0x0004007cu, 0x00000008u, 0x000023ccu, 0x000023cbu, 0x000500aau, 0x00000069u, 0x000023ceu, + 0x000023ccu, 0x00000225u, 0x000300f7u, 0x000023d0u, 0x00000000u, 0x000400fau, 0x000023ceu, 0x000023cfu, + 0x000023d0u, 0x000200f8u, 0x000023cfu, 0x000200f9u, 0x0000254bu, 0x000200f8u, 0x000023d0u, 0x000400cdu, + 0x00000008u, 0x000023d2u, 0x000023ccu, 0x000400a8u, 0x00000069u, 0x000023d4u, 0x0000233cu, 0x000300f7u, + 0x000023d9u, 0x00000000u, 0x000400fau, 0x000023d4u, 0x000023d5u, 0x000023d9u, 0x000200f8u, 0x000023d5u, + 0x000500c7u, 0x00000008u, 0x000023d7u, 0x000023ccu, 0x0000022fu, 0x000500aau, 0x00000069u, 0x000023d8u, + 0x000023d7u, 0x00000225u, 0x000200f9u, 0x000023d9u, 0x000200f8u, 0x000023d9u, 0x000700f5u, 0x00000069u, + 0x000023dau, 0x000023d4u, 0x000023d0u, 0x000023d8u, 0x000023d5u, 0x000300f7u, 0x000023dcu, 0x00000000u, + 0x000400fau, 0x000023dau, 0x000023dbu, 0x000023dcu, 0x000200f8u, 0x000023dbu, 0x000200f9u, 0x0000254bu, + 0x000200f8u, 0x000023dcu, 0x00060041u, 0x0000024cu, 0x00002ad2u, 0x0000024au, 0x00000225u, 0x000020eau, + 0x0004003du, 0x00000246u, 0x00002ad3u, 0x00002ad2u, 0x00050051u, 0x00000010u, 0x00002ad4u, 0x00002ad3u, + 0x00000000u, 0x00050051u, 0x00000010u, 0x00002ad6u, 0x00002ad3u, 0x00000001u, 0x00050051u, 0x00000010u, + 0x00002ad8u, 0x00002ad3u, 0x00000002u, 0x00050051u, 0x00000010u, 0x00002adau, 0x00002ad3u, 0x00000003u, + 0x00050051u, 0x00000010u, 0x00002adcu, 0x00002ad3u, 0x00000004u, 0x00050051u, 0x00000010u, 0x00002adeu, + 0x00002ad3u, 0x00000005u, 0x00050051u, 0x00000010u, 0x00002ae0u, 0x00002ad3u, 0x00000006u, 0x00050051u, + 0x00000010u, 0x00002ae2u, 0x00002ad3u, 0x00000007u, 0x00050051u, 0x00000010u, 0x00002ae6u, 0x00002ad3u, + 0x00000009u, 0x00050051u, 0x0000000fu, 0x00002aeeu, 0x00002ad3u, 0x0000000du, 0x00050051u, 0x00000013u, + 0x00002af0u, 0x00002ad3u, 0x0000000eu, 0x00050082u, 0x00000008u, 0x000023e2u, 0x00007aa9u, 0x0000256au, + 0x000600a9u, 0x00000008u, 0x000023e4u, 0x00002377u, 0x0000022fu, 0x00000cf5u, 0x000500c7u, 0x00000009u, + 0x00002afcu, 0x0000257du, 0x0000c22du, 0x00070050u, 0x00000009u, 0x00002afdu, 0x0000084fu, 0x0000084fu, + 0x0000084fu, 0x0000084fu, 0x000500c3u, 0x00000009u, 0x00002afeu, 0x00002afcu, 0x00002afdu, 0x00070050u, + 0x00000009u, 0x00002b00u, 0x000023e2u, 0x000023e2u, 0x000023e2u, 0x000023e2u, 0x00050084u, 0x00000009u, + 0x00002b01u, 0x00002afeu, 0x00002b00u, 0x00050080u, 0x00000009u, 0x00002b03u, 0x00002562u, 0x00002b01u, + 0x000500c3u, 0x00000009u, 0x00002b06u, 0x00002b03u, 0x0000c22eu, 0x00040072u, 0x00000013u, 0x00002b07u, + 0x00002b06u, 0x0006000cu, 0x00000008u, 0x00002b09u, 0x00000001u, 0x00000049u, 0x000023ccu, 0x000500c3u, + 0x00000008u, 0x00002b0bu, 0x00002b09u, 0x0000022fu, 0x00040072u, 0x00000012u, 0x00002b0cu, 0x00002b0bu, + 0x000500c7u, 0x00000008u, 0x00002b0eu, 0x00002b09u, 0x0000022fu, 0x000500c4u, 0x00000008u, 0x00002b0fu, + 0x00002b0eu, 0x0000022fu, 0x00040072u, 0x00000012u, 0x00002b10u, 0x00002b0fu, 0x000500c7u, 0x00000012u, + 0x00002b12u, 0x00002b0cu, 0x000004cdu, 0x00050080u, 0x00000012u, 0x00002b13u, 0x00002b10u, 0x00002b12u, + 0x00070050u, 0x00000013u, 0x00002b15u, 0x00000cb2u, 0x00000cb2u, 0x00000cb2u, 0x00000cb2u, 0x000500c4u, + 0x00000013u, 0x00002b16u, 0x00002b07u, 0x00002b15u, 0x000500c3u, 0x00000009u, 0x00002b1au, 0x0000257du, + 0x0000c22eu, 0x00040072u, 0x00000013u, 0x00002b1bu, 0x00002b1au, 0x00070050u, 0x00000013u, 0x00002b1cu, + 0x00002b13u, 0x00002b13u, 0x00002b13u, 0x00002b13u, 0x00050084u, 0x00000013u, 0x00002b1du, 0x00002b1cu, + 0x00002b1bu, 0x000500c3u, 0x00000009u, 0x00002b21u, 0x00002581u, 0x0000c22eu, 0x00040072u, 0x00000013u, + 0x00002b22u, 0x00002b21u, 0x00070050u, 0x00000013u, 0x00002b23u, 0x00002b0cu, 0x00002b0cu, 0x00002b0cu, + 0x00002b0cu, 0x00050084u, 0x00000013u, 0x00002b24u, 0x00002b23u, 0x00002b22u, 0x00050080u, 0x00000013u, + 0x00002b25u, 0x00002b1du, 0x00002b24u, 0x00050080u, 0x00000013u, 0x00002b27u, 0x00002b16u, 0x00002b25u, + 0x00070050u, 0x00000013u, 0x00002b29u, 0x00000cc8u, 0x00000cc8u, 0x00000cc8u, 0x00000cc8u, 0x000500c3u, + 0x00000013u, 0x00002b2au, 0x00002b27u, 0x00002b29u, 0x00040072u, 0x00000009u, 0x00002b31u, 0x00002b2au, + 0x00050082u, 0x00000009u, 0x00002b39u, 0x00002b31u, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x00002b3bu, + 0x00002b39u, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00002b3eu, 0x00002b3bu, 0x0000c22fu, + 0x0008000cu, 0x00000009u, 0x00002b40u, 0x00000001u, 0x0000002du, 0x00002b3eu, 0x00000b1bu, 0x00000b1cu, + 0x00040072u, 0x00000013u, 0x00002b41u, 0x00002b40u, 0x00040072u, 0x00000b25u, 0x00002b33u, 0x00002b41u, + 0x0004007cu, 0x00000010u, 0x00002b34u, 0x00002b33u, 0x000500a7u, 0x00000069u, 0x000023f0u, 0x00001e98u, + 0x0000235du, 0x000300f7u, 0x000023f9u, 0x00000000u, 0x000400fau, 0x000023f0u, 0x000023f1u, 0x000023f9u, + 0x000200f8u, 0x000023f1u, 0x000500c7u, 0x00000006u, 0x000023f3u, 0x000022e7u, 0x00000a57u, 0x000500abu, + 0x00000069u, 0x000023f4u, 0x000023f3u, 0x00000332u, 0x000300f7u, 0x000023f8u, 0x00000000u, 0x000400fau, + 0x000023f4u, 0x000023f5u, 0x000023f8u, 0x000200f8u, 0x000023f5u, 0x00050084u, 0x00000008u, 0x000023f7u, + 0x000023e4u, 0x0000088bu, 0x000200f9u, 0x000023f8u, 0x000200f8u, 0x000023f8u, 0x000700f5u, 0x00000008u, + 0x00007aaeu, 0x000023e4u, 0x000023f1u, 0x000023f7u, 0x000023f5u, 0x000200f9u, 0x000023f9u, 0x000200f8u, + 0x000023f9u, 0x000700f5u, 0x00000008u, 0x00007aadu, 0x000023e4u, 0x000023dcu, 0x00007aaeu, 0x000023f8u, + 0x0008004fu, 0x00000044u, 0x00002b55u, 0x00002564u, 0x00002564u, 0x00000000u, 0x00000001u, 0x00000003u, + 0x0008004fu, 0x00000044u, 0x00002b57u, 0x00002585u, 0x00002585u, 0x00000000u, 0x00000001u, 0x00000003u, + 0x000500c7u, 0x00000044u, 0x00002b59u, 0x00002b57u, 0x0000c22bu, 0x00060050u, 0x00000044u, 0x00002b5au, + 0x0000084fu, 0x0000084fu, 0x0000084fu, 0x000500c3u, 0x00000044u, 0x00002b5bu, 0x00002b59u, 0x00002b5au, + 0x00060050u, 0x00000044u, 0x00002b5du, 0x000023e2u, 0x000023e2u, 0x000023e2u, 0x00050084u, 0x00000044u, + 0x00002b5eu, 0x00002b5bu, 0x00002b5du, 0x00050080u, 0x00000044u, 0x00002b5fu, 0x00002b55u, 0x00002b5eu, + 0x000300f7u, 0x00002b84u, 0x00000000u, 0x000400fau, 0x0000235du, 0x00002b61u, 0x00002b84u, 0x000200f8u, + 0x00002b61u, 0x00060050u, 0x00000044u, 0x00002b6au, 0x00007aadu, 0x00007aadu, 0x00007aadu, 0x00050084u, + 0x00000044u, 0x00002b6bu, 0x00002b6au, 0x00002b5bu, 0x00050080u, 0x00000044u, 0x00002b6cu, 0x00002b5fu, + 0x00002b6bu, 0x000300f7u, 0x00002b83u, 0x00000000u, 0x000400fau, 0x00000d54u, 0x00002b6du, 0x00002b7au, + 0x000200f8u, 0x00002b7au, 0x0008004fu, 0x00000044u, 0x00002b7du, 0x00002589u, 0x00002589u, 0x00000000u, + 0x00000001u, 0x00000003u, 0x000500c7u, 0x00000044u, 0x00002b7fu, 0x00002b7du, 0x0000c231u, 0x000500c3u, + 0x00000044u, 0x00002b81u, 0x00002b7fu, 0x00002b5au, 0x00050080u, 0x00000044u, 0x00002b82u, 0x00002b5fu, + 0x00002b81u, 0x000200f9u, 0x00002b83u, 0x000200f8u, 0x00002b6du, 0x0006000cu, 0x00000008u, 0x00002b70u, + 0x00000001u, 0x00000005u, 0x00007aadu, 0x0008004fu, 0x00000044u, 0x00002b72u, 0x00002589u, 0x00002589u, + 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, 0x00000044u, 0x00002b74u, 0x00002b72u, 0x0000c231u, + 0x000500c3u, 0x00000044u, 0x00002b76u, 0x00002b74u, 0x00002b5au, 0x00060050u, 0x00000044u, 0x00002b77u, + 0x00002b70u, 0x00002b70u, 0x00002b70u, 0x00050084u, 0x00000044u, 0x00002b78u, 0x00002b77u, 0x00002b76u, + 0x00050080u, 0x00000044u, 0x00002b79u, 0x00002b5fu, 0x00002b78u, 0x000200f9u, 0x00002b83u, 0x000200f8u, + 0x00002b83u, 0x000700f5u, 0x00000044u, 0x00007acdu, 0x00002b79u, 0x00002b6du, 0x00002b82u, 0x00002b7au, + 0x000200f9u, 0x00002b84u, 0x000200f8u, 0x00002b84u, 0x000700f5u, 0x00000044u, 0x00007ac0u, 0x00007ac6u, + 0x000023f9u, 0x00007acdu, 0x00002b83u, 0x000700f5u, 0x00000044u, 0x00007ab1u, 0x00007ab7u, 0x000023f9u, + 0x00002b6cu, 0x00002b83u, 0x000300f7u, 0x00002bacu, 0x00000000u, 0x000400fau, 0x00002330u, 0x00002b86u, + 0x00002b9cu, 0x000200f8u, 0x00002b9cu, 0x000500c3u, 0x00000044u, 0x00002b9fu, 0x00002b5fu, 0x0000c22cu, + 0x0007004fu, 0x000000f2u, 0x00002d70u, 0x00002b9fu, 0x00002b9fu, 0x00000000u, 0x00000001u, 0x000300f7u, + 0x00002babu, 0x00000000u, 0x000400fau, 0x0000235du, 0x00002ba2u, 0x00002babu, 0x000200f8u, 0x00002ba2u, + 0x000500c3u, 0x00000044u, 0x00002ba5u, 0x00007ab1u, 0x0000c22cu, 0x0007004fu, 0x000000f2u, 0x00002d74u, + 0x00002ba5u, 0x00002ba5u, 0x00000000u, 0x00000001u, 0x000500c3u, 0x00000044u, 0x00002ba9u, 0x00007ac0u, + 0x0000c22cu, 0x0007004fu, 0x000000f2u, 0x00002d78u, 0x00002ba9u, 0x00002ba9u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00002babu, 0x000200f8u, 0x00002babu, 0x000700f5u, 0x000000f2u, 0x00007b7cu, 0x00007b6eu, + 0x00002b9cu, 0x00002d78u, 0x00002ba2u, 0x000700f5u, 0x000000f2u, 0x00007b62u, 0x00007b4au, 0x00002b9cu, + 0x00002d74u, 0x00002ba2u, 0x000200f9u, 0x00002bacu, 0x000200f8u, 0x00002b86u, 0x000500c3u, 0x00000044u, + 0x00002b89u, 0x00002b5fu, 0x0000c22cu, 0x00050051u, 0x00000008u, 0x00002be7u, 0x00002b89u, 0x00000002u, + 0x000500b3u, 0x00000069u, 0x00002be9u, 0x00002be7u, 0x00000225u, 0x000500c7u, 0x00000008u, 0x00002bebu, + 0x00002be7u, 0x00000c2bu, 0x0006000cu, 0x00000008u, 0x00002c48u, 0x00000001u, 0x0000004au, 0x00002bebu, + 0x00050082u, 0x00000008u, 0x00002c49u, 0x00000274u, 0x00002c48u, 0x0007000cu, 0x00000008u, 0x00002c4au, + 0x00000001u, 0x00000027u, 0x00002c49u, 0x00000274u, 0x000500c4u, 0x00000008u, 0x00002c4du, 0x00002bebu, + 0x00002c4au, 0x000500c7u, 0x00000008u, 0x00002c4eu, 0x00002c4du, 0x00000b47u, 0x000500c7u, 0x00000008u, + 0x00002c50u, 0x00002c4eu, 0x00000363u, 0x000500c3u, 0x00000008u, 0x00002c52u, 0x00002c4eu, 0x00000262u, + 0x0003003eu, 0x00002c43u, 0x00000c0bu, 0x00050041u, 0x000001b2u, 0x00002c53u, 0x00002c43u, 0x00002c52u, + 0x0004003du, 0x000001b1u, 0x00002c54u, 0x00002c53u, 0x00040072u, 0x000000f2u, 0x00002c55u, 0x00002c54u, + 0x00050051u, 0x00000008u, 0x00002c57u, 0x00002c55u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00002c59u, + 0x00002c57u, 0x00002c50u, 0x000500c3u, 0x00000008u, 0x00002c5au, 0x00002c59u, 0x00000268u, 0x00050051u, + 0x00000008u, 0x00002c5cu, 0x00002c55u, 0x00000000u, 0x00050080u, 0x00000008u, 0x00002c5du, 0x00002c5au, + 0x00002c5cu, 0x0007004fu, 0x000000f2u, 0x00002bf1u, 0x00002b89u, 0x00002b89u, 0x00000000u, 0x00000001u, + 0x00050050u, 0x000000f2u, 0x00002bf4u, 0x00002c5du, 0x00002c5du, 0x00050084u, 0x000000f2u, 0x00002bf5u, + 0x00002bf1u, 0x00002bf4u, 0x000500c3u, 0x00000008u, 0x00002bf7u, 0x00000c3eu, 0x00002c4au, 0x0004007eu, + 0x00000008u, 0x00002bf8u, 0x00002bf7u, 0x000500c7u, 0x00000008u, 0x00002bf9u, 0x00000c3du, 0x00002bf8u, + 0x00050050u, 0x000000f2u, 0x00002bfcu, 0x00002bf9u, 0x00002bf9u, 0x000500c7u, 0x000000f2u, 0x00002bfdu, + 0x00002bf5u, 0x00002bfcu, 0x000500abu, 0x00000069u, 0x00002bffu, 0x00002c4au, 0x00000274u, 0x000300f7u, + 0x00002c0au, 0x00000000u, 0x000400fau, 0x00002bffu, 0x00002c00u, 0x00002c06u, 0x000200f8u, 0x00002c06u, + 0x000500c4u, 0x000000f2u, 0x00002c09u, 0x00002bf5u, 0x0000c230u, 0x000200f9u, 0x00002c0au, 0x000200f8u, + 0x00002c00u, 0x00050082u, 0x00000008u, 0x00002c03u, 0x00000271u, 0x00002c4au, 0x00050050u, 0x000000f2u, + 0x00002c04u, 0x00002c03u, 0x00002c03u, 0x000500c3u, 0x000000f2u, 0x00002c05u, 0x00002bf5u, 0x00002c04u, + 0x000200f9u, 0x00002c0au, 0x000200f8u, 0x00002c0au, 0x000700f5u, 0x000000f2u, 0x00007ad3u, 0x00002c05u, + 0x00002c00u, 0x00002c09u, 0x00002c06u, 0x000700f5u, 0x000000f2u, 0x00007ad1u, 0x00002c05u, 0x00002c00u, + 0x00002bf5u, 0x00002c06u, 0x000500abu, 0x00000884u, 0x00002c0cu, 0x00002bfdu, 0x00000c57u, 0x0004009au, + 0x00000069u, 0x00002c0du, 0x00002c0cu, 0x000300f7u, 0x00002c39u, 0x00000000u, 0x000400fau, 0x00002c0du, + 0x00002c0eu, 0x00002c39u, 0x000200f8u, 0x00002c0eu, 0x00050051u, 0x00000008u, 0x00002c10u, 0x00002bfdu, + 0x00000000u, 0x000500abu, 0x00000069u, 0x00002c12u, 0x00002c10u, 0x00002bf9u, 0x000300f7u, 0x00002c17u, + 0x00000000u, 0x000400fau, 0x00002c12u, 0x00002c13u, 0x00002c17u, 0x000200f8u, 0x00002c13u, 0x000500abu, + 0x00000069u, 0x00002c16u, 0x00002c10u, 0x00000225u, 0x000200f9u, 0x00002c17u, 0x000200f8u, 0x00002c17u, + 0x000700f5u, 0x00000069u, 0x00002c18u, 0x00002c12u, 0x00002c0eu, 0x00002c16u, 0x00002c13u, 0x000300f7u, + 0x00002c23u, 0x00000000u, 0x000400fau, 0x00002c18u, 0x00002c19u, 0x00002c23u, 0x000200f8u, 0x00002c19u, + 0x00050051u, 0x00000008u, 0x00002c1bu, 0x00007ad1u, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00002c1cu, + 0x00002c1bu, 0x00000c3eu, 0x000500aau, 0x00000069u, 0x00002c1du, 0x00002c1cu, 0x00000225u, 0x000300f7u, + 0x00002c22u, 0x00000000u, 0x000400fau, 0x00002c1du, 0x00002c1eu, 0x00002c20u, 0x000200f8u, 0x00002c20u, + 0x00060052u, 0x000000f2u, 0x00007687u, 0x00000c70u, 0x00007ad3u, 0x00000000u, 0x000200f9u, 0x00002c22u, + 0x000200f8u, 0x00002c1eu, 0x00060052u, 0x000000f2u, 0x00007685u, 0x00000c2bu, 0x00007ad3u, 0x00000000u, + 0x000200f9u, 0x00002c22u, 0x000200f8u, 0x00002c22u, 0x000700f5u, 0x000000f2u, 0x00007ad9u, 0x00007685u, + 0x00002c1eu, 0x00007687u, 0x00002c20u, 0x000200f9u, 0x00002c23u, 0x000200f8u, 0x00002c23u, 0x000700f5u, + 0x000000f2u, 0x00007ad8u, 0x00007ad3u, 0x00002c17u, 0x00007ad9u, 0x00002c22u, 0x000600a9u, 0x00000069u, + 0x0000c258u, 0x00002c18u, 0x0000055eu, 0x0000053bu, 0x00050051u, 0x00000008u, 0x00002c25u, 0x00002bfdu, + 0x00000001u, 0x000500abu, 0x00000069u, 0x00002c27u, 0x00002c25u, 0x00002bf9u, 0x000300f7u, 0x00002c2cu, + 0x00000000u, 0x000400fau, 0x00002c27u, 0x00002c28u, 0x00002c2cu, 0x000200f8u, 0x00002c28u, 0x000500abu, + 0x00000069u, 0x00002c2bu, 0x00002c25u, 0x00000225u, 0x000200f9u, 0x00002c2cu, 0x000200f8u, 0x00002c2cu, + 0x000700f5u, 0x00000069u, 0x00002c2du, 0x00002c27u, 0x00002c23u, 0x00002c2bu, 0x00002c28u, 0x000300f7u, + 0x00002c38u, 0x00000000u, 0x000400fau, 0x00002c2du, 0x00002c2eu, 0x00002c38u, 0x000200f8u, 0x00002c2eu, + 0x00050051u, 0x00000008u, 0x00002c30u, 0x00007ad1u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00002c31u, + 0x00002c30u, 0x00000c3eu, 0x000500aau, 0x00000069u, 0x00002c32u, 0x00002c31u, 0x00000225u, 0x000300f7u, + 0x00002c37u, 0x00000000u, 0x000400fau, 0x00002c32u, 0x00002c33u, 0x00002c35u, 0x000200f8u, 0x00002c35u, + 0x00060052u, 0x000000f2u, 0x0000768eu, 0x00000c70u, 0x00007ad8u, 0x00000001u, 0x000200f9u, 0x00002c37u, + 0x000200f8u, 0x00002c33u, 0x00060052u, 0x000000f2u, 0x0000768cu, 0x00000c2bu, 0x00007ad8u, 0x00000001u, + 0x000200f9u, 0x00002c37u, 0x000200f8u, 0x00002c37u, 0x000700f5u, 0x000000f2u, 0x00007addu, 0x0000768cu, + 0x00002c33u, 0x0000768eu, 0x00002c35u, 0x000200f9u, 0x00002c38u, 0x000200f8u, 0x00002c38u, 0x000700f5u, + 0x000000f2u, 0x00007adcu, 0x00007ad8u, 0x00002c2cu, 0x00007addu, 0x00002c37u, 0x000600a9u, 0x00000069u, + 0x0000c259u, 0x00002c2du, 0x0000055eu, 0x0000c258u, 0x000200f9u, 0x00002c39u, 0x000200f8u, 0x00002c39u, + 0x000700f5u, 0x00000069u, 0x00007adfu, 0x0000053bu, 0x00002c0au, 0x0000c259u, 0x00002c38u, 0x000700f5u, + 0x000000f2u, 0x00007adbu, 0x00007ad3u, 0x00002c0au, 0x00007adcu, 0x00002c38u, 0x000600a9u, 0x00000069u, + 0x0000c25au, 0x00002be9u, 0x0000055eu, 0x00007adfu, 0x00050050u, 0x00000884u, 0x0000c25bu, 0x00002be9u, + 0x00002be9u, 0x000600a9u, 0x000000f2u, 0x0000c25cu, 0x0000c25bu, 0x00000c8au, 0x00007adbu, 0x0008000cu, + 0x000000f2u, 0x00002c3eu, 0x00000001u, 0x0000002du, 0x0000c25cu, 0x00000c8du, 0x00000c8eu, 0x000300f7u, + 0x00002b9bu, 0x00000000u, 0x000400fau, 0x0000235du, 0x00002b8eu, 0x00002b9bu, 0x000200f8u, 0x00002b8eu, + 0x000500c3u, 0x00000044u, 0x00002b91u, 0x00007ab1u, 0x0000c22cu, 0x00050051u, 0x00000008u, 0x00002c6du, + 0x00002b91u, 0x00000002u, 0x000500b3u, 0x00000069u, 0x00002c6fu, 0x00002c6du, 0x00000225u, 0x000500c7u, + 0x00000008u, 0x00002c71u, 0x00002c6du, 0x00000c2bu, 0x0006000cu, 0x00000008u, 0x00002cceu, 0x00000001u, + 0x0000004au, 0x00002c71u, 0x00050082u, 0x00000008u, 0x00002ccfu, 0x00000274u, 0x00002cceu, 0x0007000cu, + 0x00000008u, 0x00002cd0u, 0x00000001u, 0x00000027u, 0x00002ccfu, 0x00000274u, 0x000500c4u, 0x00000008u, + 0x00002cd3u, 0x00002c71u, 0x00002cd0u, 0x000500c7u, 0x00000008u, 0x00002cd4u, 0x00002cd3u, 0x00000b47u, + 0x000500c7u, 0x00000008u, 0x00002cd6u, 0x00002cd4u, 0x00000363u, 0x000500c3u, 0x00000008u, 0x00002cd8u, + 0x00002cd4u, 0x00000262u, 0x0003003eu, 0x00002cc9u, 0x00000c0bu, 0x00050041u, 0x000001b2u, 0x00002cd9u, + 0x00002cc9u, 0x00002cd8u, 0x0004003du, 0x000001b1u, 0x00002cdau, 0x00002cd9u, 0x00040072u, 0x000000f2u, + 0x00002cdbu, 0x00002cdau, 0x00050051u, 0x00000008u, 0x00002cddu, 0x00002cdbu, 0x00000001u, 0x00050084u, + 0x00000008u, 0x00002cdfu, 0x00002cddu, 0x00002cd6u, 0x000500c3u, 0x00000008u, 0x00002ce0u, 0x00002cdfu, + 0x00000268u, 0x00050051u, 0x00000008u, 0x00002ce2u, 0x00002cdbu, 0x00000000u, 0x00050080u, 0x00000008u, + 0x00002ce3u, 0x00002ce0u, 0x00002ce2u, 0x0007004fu, 0x000000f2u, 0x00002c77u, 0x00002b91u, 0x00002b91u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x00002c7au, 0x00002ce3u, 0x00002ce3u, 0x00050084u, + 0x000000f2u, 0x00002c7bu, 0x00002c77u, 0x00002c7au, 0x000500c3u, 0x00000008u, 0x00002c7du, 0x00000c3eu, + 0x00002cd0u, 0x0004007eu, 0x00000008u, 0x00002c7eu, 0x00002c7du, 0x000500c7u, 0x00000008u, 0x00002c7fu, + 0x00000c3du, 0x00002c7eu, 0x00050050u, 0x000000f2u, 0x00002c82u, 0x00002c7fu, 0x00002c7fu, 0x000500c7u, + 0x000000f2u, 0x00002c83u, 0x00002c7bu, 0x00002c82u, 0x000500abu, 0x00000069u, 0x00002c85u, 0x00002cd0u, + 0x00000274u, 0x000300f7u, 0x00002c90u, 0x00000000u, 0x000400fau, 0x00002c85u, 0x00002c86u, 0x00002c8cu, + 0x000200f8u, 0x00002c8cu, 0x000500c4u, 0x000000f2u, 0x00002c8fu, 0x00002c7bu, 0x0000c230u, 0x000200f9u, + 0x00002c90u, 0x000200f8u, 0x00002c86u, 0x00050082u, 0x00000008u, 0x00002c89u, 0x00000271u, 0x00002cd0u, + 0x00050050u, 0x000000f2u, 0x00002c8au, 0x00002c89u, 0x00002c89u, 0x000500c3u, 0x000000f2u, 0x00002c8bu, + 0x00002c7bu, 0x00002c8au, 0x000200f9u, 0x00002c90u, 0x000200f8u, 0x00002c90u, 0x000700f5u, 0x000000f2u, + 0x00007af1u, 0x00002c8bu, 0x00002c86u, 0x00002c8fu, 0x00002c8cu, 0x000700f5u, 0x000000f2u, 0x00007aefu, + 0x00002c8bu, 0x00002c86u, 0x00002c7bu, 0x00002c8cu, 0x000500abu, 0x00000884u, 0x00002c92u, 0x00002c83u, + 0x00000c57u, 0x0004009au, 0x00000069u, 0x00002c93u, 0x00002c92u, 0x000300f7u, 0x00002cbfu, 0x00000000u, + 0x000400fau, 0x00002c93u, 0x00002c94u, 0x00002cbfu, 0x000200f8u, 0x00002c94u, 0x00050051u, 0x00000008u, + 0x00002c96u, 0x00002c83u, 0x00000000u, 0x000500abu, 0x00000069u, 0x00002c98u, 0x00002c96u, 0x00002c7fu, + 0x000300f7u, 0x00002c9du, 0x00000000u, 0x000400fau, 0x00002c98u, 0x00002c99u, 0x00002c9du, 0x000200f8u, + 0x00002c99u, 0x000500abu, 0x00000069u, 0x00002c9cu, 0x00002c96u, 0x00000225u, 0x000200f9u, 0x00002c9du, + 0x000200f8u, 0x00002c9du, 0x000700f5u, 0x00000069u, 0x00002c9eu, 0x00002c98u, 0x00002c94u, 0x00002c9cu, + 0x00002c99u, 0x000300f7u, 0x00002ca9u, 0x00000000u, 0x000400fau, 0x00002c9eu, 0x00002c9fu, 0x00002ca9u, + 0x000200f8u, 0x00002c9fu, 0x00050051u, 0x00000008u, 0x00002ca1u, 0x00007aefu, 0x00000000u, 0x000500c7u, + 0x00000008u, 0x00002ca2u, 0x00002ca1u, 0x00000c3eu, 0x000500aau, 0x00000069u, 0x00002ca3u, 0x00002ca2u, + 0x00000225u, 0x000300f7u, 0x00002ca8u, 0x00000000u, 0x000400fau, 0x00002ca3u, 0x00002ca4u, 0x00002ca6u, + 0x000200f8u, 0x00002ca6u, 0x00060052u, 0x000000f2u, 0x0000769au, 0x00000c70u, 0x00007af1u, 0x00000000u, + 0x000200f9u, 0x00002ca8u, 0x000200f8u, 0x00002ca4u, 0x00060052u, 0x000000f2u, 0x00007698u, 0x00000c2bu, + 0x00007af1u, 0x00000000u, 0x000200f9u, 0x00002ca8u, 0x000200f8u, 0x00002ca8u, 0x000700f5u, 0x000000f2u, + 0x00007af7u, 0x00007698u, 0x00002ca4u, 0x0000769au, 0x00002ca6u, 0x000200f9u, 0x00002ca9u, 0x000200f8u, + 0x00002ca9u, 0x000700f5u, 0x000000f2u, 0x00007af6u, 0x00007af1u, 0x00002c9du, 0x00007af7u, 0x00002ca8u, + 0x000600a9u, 0x00000069u, 0x0000c25du, 0x00002c9eu, 0x0000055eu, 0x0000c25au, 0x00050051u, 0x00000008u, + 0x00002cabu, 0x00002c83u, 0x00000001u, 0x000500abu, 0x00000069u, 0x00002cadu, 0x00002cabu, 0x00002c7fu, + 0x000300f7u, 0x00002cb2u, 0x00000000u, 0x000400fau, 0x00002cadu, 0x00002caeu, 0x00002cb2u, 0x000200f8u, + 0x00002caeu, 0x000500abu, 0x00000069u, 0x00002cb1u, 0x00002cabu, 0x00000225u, 0x000200f9u, 0x00002cb2u, + 0x000200f8u, 0x00002cb2u, 0x000700f5u, 0x00000069u, 0x00002cb3u, 0x00002cadu, 0x00002ca9u, 0x00002cb1u, + 0x00002caeu, 0x000300f7u, 0x00002cbeu, 0x00000000u, 0x000400fau, 0x00002cb3u, 0x00002cb4u, 0x00002cbeu, + 0x000200f8u, 0x00002cb4u, 0x00050051u, 0x00000008u, 0x00002cb6u, 0x00007aefu, 0x00000001u, 0x000500c7u, + 0x00000008u, 0x00002cb7u, 0x00002cb6u, 0x00000c3eu, 0x000500aau, 0x00000069u, 0x00002cb8u, 0x00002cb7u, + 0x00000225u, 0x000300f7u, 0x00002cbdu, 0x00000000u, 0x000400fau, 0x00002cb8u, 0x00002cb9u, 0x00002cbbu, + 0x000200f8u, 0x00002cbbu, 0x00060052u, 0x000000f2u, 0x000076a1u, 0x00000c70u, 0x00007af6u, 0x00000001u, + 0x000200f9u, 0x00002cbdu, 0x000200f8u, 0x00002cb9u, 0x00060052u, 0x000000f2u, 0x0000769fu, 0x00000c2bu, + 0x00007af6u, 0x00000001u, 0x000200f9u, 0x00002cbdu, 0x000200f8u, 0x00002cbdu, 0x000700f5u, 0x000000f2u, + 0x00007afbu, 0x0000769fu, 0x00002cb9u, 0x000076a1u, 0x00002cbbu, 0x000200f9u, 0x00002cbeu, 0x000200f8u, + 0x00002cbeu, 0x000700f5u, 0x000000f2u, 0x00007afau, 0x00007af6u, 0x00002cb2u, 0x00007afbu, 0x00002cbdu, + 0x000600a9u, 0x00000069u, 0x0000c25eu, 0x00002cb3u, 0x0000055eu, 0x0000c25du, 0x000200f9u, 0x00002cbfu, + 0x000200f8u, 0x00002cbfu, 0x000700f5u, 0x00000069u, 0x00007afdu, 0x0000c25au, 0x00002c90u, 0x0000c25eu, + 0x00002cbeu, 0x000700f5u, 0x000000f2u, 0x00007af9u, 0x00007af1u, 0x00002c90u, 0x00007afau, 0x00002cbeu, + 0x000600a9u, 0x00000069u, 0x0000c25fu, 0x00002c6fu, 0x0000055eu, 0x00007afdu, 0x00050050u, 0x00000884u, + 0x0000c260u, 0x00002c6fu, 0x00002c6fu, 0x000600a9u, 0x000000f2u, 0x0000c261u, 0x0000c260u, 0x00000c8au, + 0x00007af9u, 0x0008000cu, 0x000000f2u, 0x00002cc4u, 0x00000001u, 0x0000002du, 0x0000c261u, 0x00000c8du, + 0x00000c8eu, 0x000500c3u, 0x00000044u, 0x00002b97u, 0x00007ac0u, 0x0000c22cu, 0x00050051u, 0x00000008u, + 0x00002cf3u, 0x00002b97u, 0x00000002u, 0x000500b3u, 0x00000069u, 0x00002cf5u, 0x00002cf3u, 0x00000225u, + 0x000500c7u, 0x00000008u, 0x00002cf7u, 0x00002cf3u, 0x00000c2bu, 0x0006000cu, 0x00000008u, 0x00002d54u, + 0x00000001u, 0x0000004au, 0x00002cf7u, 0x00050082u, 0x00000008u, 0x00002d55u, 0x00000274u, 0x00002d54u, + 0x0007000cu, 0x00000008u, 0x00002d56u, 0x00000001u, 0x00000027u, 0x00002d55u, 0x00000274u, 0x000500c4u, + 0x00000008u, 0x00002d59u, 0x00002cf7u, 0x00002d56u, 0x000500c7u, 0x00000008u, 0x00002d5au, 0x00002d59u, + 0x00000b47u, 0x000500c7u, 0x00000008u, 0x00002d5cu, 0x00002d5au, 0x00000363u, 0x000500c3u, 0x00000008u, + 0x00002d5eu, 0x00002d5au, 0x00000262u, 0x0003003eu, 0x00002d4fu, 0x00000c0bu, 0x00050041u, 0x000001b2u, + 0x00002d5fu, 0x00002d4fu, 0x00002d5eu, 0x0004003du, 0x000001b1u, 0x00002d60u, 0x00002d5fu, 0x00040072u, + 0x000000f2u, 0x00002d61u, 0x00002d60u, 0x00050051u, 0x00000008u, 0x00002d63u, 0x00002d61u, 0x00000001u, + 0x00050084u, 0x00000008u, 0x00002d65u, 0x00002d63u, 0x00002d5cu, 0x000500c3u, 0x00000008u, 0x00002d66u, + 0x00002d65u, 0x00000268u, 0x00050051u, 0x00000008u, 0x00002d68u, 0x00002d61u, 0x00000000u, 0x00050080u, + 0x00000008u, 0x00002d69u, 0x00002d66u, 0x00002d68u, 0x0007004fu, 0x000000f2u, 0x00002cfdu, 0x00002b97u, + 0x00002b97u, 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x00002d00u, 0x00002d69u, 0x00002d69u, + 0x00050084u, 0x000000f2u, 0x00002d01u, 0x00002cfdu, 0x00002d00u, 0x000500c3u, 0x00000008u, 0x00002d03u, + 0x00000c3eu, 0x00002d56u, 0x0004007eu, 0x00000008u, 0x00002d04u, 0x00002d03u, 0x000500c7u, 0x00000008u, + 0x00002d05u, 0x00000c3du, 0x00002d04u, 0x00050050u, 0x000000f2u, 0x00002d08u, 0x00002d05u, 0x00002d05u, + 0x000500c7u, 0x000000f2u, 0x00002d09u, 0x00002d01u, 0x00002d08u, 0x000500abu, 0x00000069u, 0x00002d0bu, + 0x00002d56u, 0x00000274u, 0x000300f7u, 0x00002d16u, 0x00000000u, 0x000400fau, 0x00002d0bu, 0x00002d0cu, + 0x00002d12u, 0x000200f8u, 0x00002d12u, 0x000500c4u, 0x000000f2u, 0x00002d15u, 0x00002d01u, 0x0000c230u, + 0x000200f9u, 0x00002d16u, 0x000200f8u, 0x00002d0cu, 0x00050082u, 0x00000008u, 0x00002d0fu, 0x00000271u, + 0x00002d56u, 0x00050050u, 0x000000f2u, 0x00002d10u, 0x00002d0fu, 0x00002d0fu, 0x000500c3u, 0x000000f2u, + 0x00002d11u, 0x00002d01u, 0x00002d10u, 0x000200f9u, 0x00002d16u, 0x000200f8u, 0x00002d16u, 0x000700f5u, + 0x000000f2u, 0x00007b18u, 0x00002d11u, 0x00002d0cu, 0x00002d15u, 0x00002d12u, 0x000700f5u, 0x000000f2u, + 0x00007b16u, 0x00002d11u, 0x00002d0cu, 0x00002d01u, 0x00002d12u, 0x000500abu, 0x00000884u, 0x00002d18u, + 0x00002d09u, 0x00000c57u, 0x0004009au, 0x00000069u, 0x00002d19u, 0x00002d18u, 0x000300f7u, 0x00002d45u, + 0x00000000u, 0x000400fau, 0x00002d19u, 0x00002d1au, 0x00002d45u, 0x000200f8u, 0x00002d1au, 0x00050051u, + 0x00000008u, 0x00002d1cu, 0x00002d09u, 0x00000000u, 0x000500abu, 0x00000069u, 0x00002d1eu, 0x00002d1cu, + 0x00002d05u, 0x000300f7u, 0x00002d23u, 0x00000000u, 0x000400fau, 0x00002d1eu, 0x00002d1fu, 0x00002d23u, + 0x000200f8u, 0x00002d1fu, 0x000500abu, 0x00000069u, 0x00002d22u, 0x00002d1cu, 0x00000225u, 0x000200f9u, + 0x00002d23u, 0x000200f8u, 0x00002d23u, 0x000700f5u, 0x00000069u, 0x00002d24u, 0x00002d1eu, 0x00002d1au, + 0x00002d22u, 0x00002d1fu, 0x000300f7u, 0x00002d2fu, 0x00000000u, 0x000400fau, 0x00002d24u, 0x00002d25u, + 0x00002d2fu, 0x000200f8u, 0x00002d25u, 0x00050051u, 0x00000008u, 0x00002d27u, 0x00007b16u, 0x00000000u, + 0x000500c7u, 0x00000008u, 0x00002d28u, 0x00002d27u, 0x00000c3eu, 0x000500aau, 0x00000069u, 0x00002d29u, + 0x00002d28u, 0x00000225u, 0x000300f7u, 0x00002d2eu, 0x00000000u, 0x000400fau, 0x00002d29u, 0x00002d2au, + 0x00002d2cu, 0x000200f8u, 0x00002d2cu, 0x00060052u, 0x000000f2u, 0x000076adu, 0x00000c70u, 0x00007b18u, + 0x00000000u, 0x000200f9u, 0x00002d2eu, 0x000200f8u, 0x00002d2au, 0x00060052u, 0x000000f2u, 0x000076abu, + 0x00000c2bu, 0x00007b18u, 0x00000000u, 0x000200f9u, 0x00002d2eu, 0x000200f8u, 0x00002d2eu, 0x000700f5u, + 0x000000f2u, 0x00007b1eu, 0x000076abu, 0x00002d2au, 0x000076adu, 0x00002d2cu, 0x000200f9u, 0x00002d2fu, + 0x000200f8u, 0x00002d2fu, 0x000700f5u, 0x000000f2u, 0x00007b1du, 0x00007b18u, 0x00002d23u, 0x00007b1eu, + 0x00002d2eu, 0x000600a9u, 0x00000069u, 0x0000c262u, 0x00002d24u, 0x0000055eu, 0x0000c25fu, 0x00050051u, + 0x00000008u, 0x00002d31u, 0x00002d09u, 0x00000001u, 0x000500abu, 0x00000069u, 0x00002d33u, 0x00002d31u, + 0x00002d05u, 0x000300f7u, 0x00002d38u, 0x00000000u, 0x000400fau, 0x00002d33u, 0x00002d34u, 0x00002d38u, + 0x000200f8u, 0x00002d34u, 0x000500abu, 0x00000069u, 0x00002d37u, 0x00002d31u, 0x00000225u, 0x000200f9u, + 0x00002d38u, 0x000200f8u, 0x00002d38u, 0x000700f5u, 0x00000069u, 0x00002d39u, 0x00002d33u, 0x00002d2fu, + 0x00002d37u, 0x00002d34u, 0x000300f7u, 0x00002d44u, 0x00000000u, 0x000400fau, 0x00002d39u, 0x00002d3au, + 0x00002d44u, 0x000200f8u, 0x00002d3au, 0x00050051u, 0x00000008u, 0x00002d3cu, 0x00007b16u, 0x00000001u, + 0x000500c7u, 0x00000008u, 0x00002d3du, 0x00002d3cu, 0x00000c3eu, 0x000500aau, 0x00000069u, 0x00002d3eu, + 0x00002d3du, 0x00000225u, 0x000300f7u, 0x00002d43u, 0x00000000u, 0x000400fau, 0x00002d3eu, 0x00002d3fu, + 0x00002d41u, 0x000200f8u, 0x00002d41u, 0x00060052u, 0x000000f2u, 0x000076b4u, 0x00000c70u, 0x00007b1du, + 0x00000001u, 0x000200f9u, 0x00002d43u, 0x000200f8u, 0x00002d3fu, 0x00060052u, 0x000000f2u, 0x000076b2u, + 0x00000c2bu, 0x00007b1du, 0x00000001u, 0x000200f9u, 0x00002d43u, 0x000200f8u, 0x00002d43u, 0x000700f5u, + 0x000000f2u, 0x00007b22u, 0x000076b2u, 0x00002d3fu, 0x000076b4u, 0x00002d41u, 0x000200f9u, 0x00002d44u, + 0x000200f8u, 0x00002d44u, 0x000700f5u, 0x000000f2u, 0x00007b21u, 0x00007b1du, 0x00002d38u, 0x00007b22u, + 0x00002d43u, 0x000600a9u, 0x00000069u, 0x0000c263u, 0x00002d39u, 0x0000055eu, 0x0000c262u, 0x000200f9u, + 0x00002d45u, 0x000200f8u, 0x00002d45u, 0x000700f5u, 0x00000069u, 0x00007b24u, 0x0000c25fu, 0x00002d16u, + 0x0000c263u, 0x00002d44u, 0x000700f5u, 0x000000f2u, 0x00007b20u, 0x00007b18u, 0x00002d16u, 0x00007b21u, + 0x00002d44u, 0x000600a9u, 0x00000069u, 0x0000c264u, 0x00002cf5u, 0x0000055eu, 0x00007b24u, 0x00050050u, + 0x00000884u, 0x0000c265u, 0x00002cf5u, 0x00002cf5u, 0x000600a9u, 0x000000f2u, 0x0000c266u, 0x0000c265u, + 0x00000c8au, 0x00007b20u, 0x0008000cu, 0x000000f2u, 0x00002d4au, 0x00000001u, 0x0000002du, 0x0000c266u, + 0x00000c8du, 0x00000c8eu, 0x000200f9u, 0x00002b9bu, 0x000200f8u, 0x00002b9bu, 0x000700f5u, 0x00000069u, + 0x00007b7eu, 0x0000c25au, 0x00002c39u, 0x0000c264u, 0x00002d45u, 0x000700f5u, 0x000000f2u, 0x00007b64u, + 0x00007b6eu, 0x00002c39u, 0x00002d4au, 0x00002d45u, 0x000700f5u, 0x000000f2u, 0x00007b40u, 0x00007b4au, + 0x00002c39u, 0x00002cc4u, 0x00002d45u, 0x000200f9u, 0x00002bacu, 0x000200f8u, 0x00002bacu, 0x000700f5u, + 0x00000069u, 0x00007b7du, 0x00007b7eu, 0x00002b9bu, 0x0000053bu, 0x00002babu, 0x000700f5u, 0x000000f2u, + 0x00007b63u, 0x00007b64u, 0x00002b9bu, 0x00007b7cu, 0x00002babu, 0x000700f5u, 0x000000f2u, 0x00007b3fu, + 0x00007b40u, 0x00002b9bu, 0x00007b62u, 0x00002babu, 0x000700f5u, 0x000000f2u, 0x00007b2au, 0x00002c3eu, + 0x00002b9bu, 0x00002d70u, 0x00002babu, 0x00050051u, 0x00000008u, 0x00002baeu, 0x00002564u, 0x00000002u, + 0x00050051u, 0x00000008u, 0x00002bb0u, 0x00002585u, 0x00000002u, 0x000500c3u, 0x00000008u, 0x00002bb2u, + 0x000023e2u, 0x0000084fu, 0x00050084u, 0x00000008u, 0x00002bb3u, 0x00002bb0u, 0x00002bb2u, 0x00050080u, + 0x00000008u, 0x00002bb4u, 0x00002baeu, 0x00002bb3u, 0x000500c3u, 0x00000008u, 0x00002bb7u, 0x00002bb0u, + 0x0000084fu, 0x000500c7u, 0x00000008u, 0x00002bb9u, 0x000023e2u, 0x00000daau, 0x00050084u, 0x00000008u, + 0x00002bbau, 0x00002bb7u, 0x00002bb9u, 0x00050080u, 0x00000008u, 0x00002bbbu, 0x00002bb4u, 0x00002bbau, + 0x000500c3u, 0x00000008u, 0x00002bbdu, 0x00002bbbu, 0x00000268u, 0x000500c7u, 0x00000008u, 0x00002bc6u, + 0x00002b0bu, 0x0000022fu, 0x00050080u, 0x00000008u, 0x00002bc7u, 0x00002b0fu, 0x00002bc6u, 0x000500c4u, + 0x00000008u, 0x00002bc9u, 0x00002bbdu, 0x00000dbeu, 0x000500c3u, 0x00000008u, 0x00002bcdu, 0x00002bb0u, + 0x00000268u, 0x00050084u, 0x00000008u, 0x00002bceu, 0x00002bc7u, 0x00002bcdu, 0x00050051u, 0x00000008u, + 0x00002bd1u, 0x00002589u, 0x00000002u, 0x000500c3u, 0x00000008u, 0x00002bd2u, 0x00002bd1u, 0x00000268u, + 0x00050084u, 0x00000008u, 0x00002bd3u, 0x00002b0bu, 0x00002bd2u, 0x00050080u, 0x00000008u, 0x00002bd4u, + 0x00002bceu, 0x00002bd3u, 0x00050080u, 0x00000008u, 0x00002bd6u, 0x00002bc9u, 0x00002bd4u, 0x000500c3u, + 0x00000008u, 0x00002bd8u, 0x00002bd6u, 0x00000dceu, 0x00050082u, 0x00000008u, 0x00002d7cu, 0x00002bd8u, + 0x00000b31u, 0x000500c4u, 0x00000008u, 0x00002d7eu, 0x00002d7cu, 0x00000271u, 0x000500c3u, 0x00000008u, + 0x00002d80u, 0x00002d7eu, 0x00000271u, 0x00050080u, 0x00000008u, 0x00002d82u, 0x00002d80u, 0x00000b31u, + 0x0008000cu, 0x00000008u, 0x00002d84u, 0x00000001u, 0x0000002du, 0x00002d82u, 0x00000225u, 0x000003f2u, + 0x000500c7u, 0x00000006u, 0x0000240du, 0x00002306u, 0x00000747u, 0x00050080u, 0x00000006u, 0x0000240fu, + 0x0000240du, 0x00000461u, 0x000500c7u, 0x00000006u, 0x00002410u, 0x0000240fu, 0x00000747u, 0x000500c2u, + 0x00000006u, 0x00002412u, 0x00002306u, 0x00000469u, 0x00040071u, 0x00000006u, 0x00002415u, 0x00002aeeu, + 0x0004007cu, 0x00000008u, 0x00002416u, 0x00002415u, 0x000300f7u, 0x00002428u, 0x00000000u, 0x000400fau, + 0x0000235du, 0x00002418u, 0x00002428u, 0x000200f8u, 0x00002418u, 0x000300f7u, 0x00002de3u, 0x00000000u, + 0x000400fau, 0x00007b7du, 0x00002d8fu, 0x00002d90u, 0x000200f8u, 0x00002d90u, 0x00050082u, 0x000000f2u, + 0x00002d93u, 0x00007b3fu, 0x00007b2au, 0x000500c3u, 0x000000f2u, 0x00002d96u, 0x00002d93u, 0x0000c233u, + 0x000500c6u, 0x000000f2u, 0x00002d98u, 0x00002d93u, 0x00002d96u, 0x00050082u, 0x000000f2u, 0x00002d9bu, + 0x00007b63u, 0x00007b2au, 0x000500c3u, 0x000000f2u, 0x00002d9eu, 0x00002d9bu, 0x0000c233u, 0x000500c6u, + 0x000000f2u, 0x00002da0u, 0x00002d9bu, 0x00002d9eu, 0x0007000cu, 0x000000f2u, 0x00002da3u, 0x00000001u, + 0x0000002au, 0x00002d98u, 0x00002da0u, 0x00050051u, 0x00000008u, 0x00002da5u, 0x00002da3u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00002da7u, 0x00002da3u, 0x00000001u, 0x0007000cu, 0x00000008u, 0x00002da8u, + 0x00000001u, 0x0000002au, 0x00002da5u, 0x00002da7u, 0x000500afu, 0x00000069u, 0x00002daau, 0x00002da8u, + 0x00001a1eu, 0x000300f7u, 0x00002de2u, 0x00000000u, 0x000400fau, 0x00002daau, 0x00002dabu, 0x00002dadu, + 0x000200f8u, 0x00002dadu, 0x000500b1u, 0x00000069u, 0x00002dafu, 0x00002da8u, 0x0000116du, 0x000300f7u, + 0x00002de1u, 0x00000000u, 0x000400fau, 0x00002dafu, 0x00002db0u, 0x00002dc6u, 0x000200f8u, 0x00002dc6u, + 0x000500c3u, 0x00000008u, 0x00002dc8u, 0x00002da8u, 0x0000023bu, 0x0006000cu, 0x00000008u, 0x00002dc9u, + 0x00000001u, 0x0000004au, 0x00002dc8u, 0x0007000cu, 0x00000008u, 0x00002dcau, 0x00000001u, 0x0000002au, + 0x00002dc9u, 0x00000225u, 0x0004007cu, 0x00000006u, 0x00002dccu, 0x00002dcau, 0x000500aeu, 0x00000069u, + 0x00002dceu, 0x00002dccu, 0x00002412u, 0x000400a8u, 0x00000069u, 0x00002dd1u, 0x00002336u, 0x000500a7u, + 0x00000069u, 0x00002dd2u, 0x00002dceu, 0x00002dd1u, 0x000400a8u, 0x00000069u, 0x00002dd4u, 0x00002339u, + 0x000500a7u, 0x00000069u, 0x00002dd5u, 0x00002dd2u, 0x00002dd4u, 0x000300f7u, 0x00002de0u, 0x00000000u, + 0x000400fau, 0x00002dd5u, 0x00002dd6u, 0x00002dd7u, 0x000200f8u, 0x00002dd7u, 0x000500c4u, 0x00000008u, + 0x00002dd9u, 0x00002da8u, 0x00000235u, 0x000500c3u, 0x00000008u, 0x00002ddbu, 0x00002dd9u, 0x00002dcau, + 0x000500c7u, 0x00000008u, 0x00002ddcu, 0x00002ddbu, 0x00000363u, 0x00040072u, 0x00000012u, 0x00002dddu, + 0x00002ddcu, 0x000200f9u, 0x00002de0u, 0x000200f8u, 0x00002dd6u, 0x000200f9u, 0x00002de0u, 0x000200f8u, + 0x00002de0u, 0x000700f5u, 0x00000012u, 0x00007ba9u, 0x000019ffu, 0x00002dd6u, 0x00002dddu, 0x00002dd7u, + 0x000600a9u, 0x00000006u, 0x0000c267u, 0x00002dd5u, 0x00000332u, 0x00002dccu, 0x000200f9u, 0x00002de1u, + 0x000200f8u, 0x00002db0u, 0x000500aau, 0x00000069u, 0x00002db2u, 0x00002412u, 0x00000332u, 0x000400a8u, + 0x00000069u, 0x00002db4u, 0x00002336u, 0x000400a8u, 0x00000069u, 0x00002db6u, 0x00002339u, 0x000500a7u, + 0x00000069u, 0x00002db7u, 0x00002db4u, 0x00002db6u, 0x000300f7u, 0x00002dc5u, 0x00000000u, 0x000400fau, + 0x00002db7u, 0x00002db8u, 0x00002dbcu, 0x000200f8u, 0x00002dbcu, 0x0007000cu, 0x00000008u, 0x00002dbfu, + 0x00000001u, 0x0000002au, 0x00002416u, 0x00002da8u, 0x000500c4u, 0x00000008u, 0x00002dc0u, 0x00002dbfu, + 0x00000235u, 0x000600a9u, 0x00000008u, 0x00002dc2u, 0x00002336u, 0x00001a3au, 0x00000225u, 0x00050080u, + 0x00000008u, 0x00002dc3u, 0x00002dc0u, 0x00002dc2u, 0x00040072u, 0x00000012u, 0x00002dc4u, 0x00002dc3u, + 0x000200f9u, 0x00002dc5u, 0x000200f8u, 0x00002db8u, 0x000600a9u, 0x00000008u, 0x00002dbau, 0x00002db2u, + 0x00000363u, 0x00000225u, 0x00040072u, 0x00000012u, 0x00002dbbu, 0x00002dbau, 0x000200f9u, 0x00002dc5u, + 0x000200f8u, 0x00002dc5u, 0x000700f5u, 0x00000012u, 0x00007ba8u, 0x00002dbbu, 0x00002db8u, 0x00002dc4u, + 0x00002dbcu, 0x000200f9u, 0x00002de1u, 0x000200f8u, 0x00002de1u, 0x000700f5u, 0x00000012u, 0x00007ba7u, + 0x00007ba8u, 0x00002dc5u, 0x00007ba9u, 0x00002de0u, 0x000700f5u, 0x00000006u, 0x00007b8eu, 0x00000332u, + 0x00002dc5u, 0x0000c267u, 0x00002de0u, 0x000700f5u, 0x00000069u, 0x00007b82u, 0x00002db2u, 0x00002dc5u, + 0x00002dceu, 0x00002de0u, 0x000600a9u, 0x00000069u, 0x0000c268u, 0x00002dafu, 0x0000055eu, 0x0000053bu, + 0x000200f9u, 0x00002de2u, 0x000200f8u, 0x00002dabu, 0x000200f9u, 0x00002de2u, 0x000200f8u, 0x00002de2u, + 0x000700f5u, 0x00000012u, 0x00007ba6u, 0x000019ffu, 0x00002dabu, 0x00007ba7u, 0x00002de1u, 0x000700f5u, + 0x00000069u, 0x00007b94u, 0x0000053bu, 0x00002dabu, 0x0000c268u, 0x00002de1u, 0x000700f5u, 0x00000006u, + 0x00007b8du, 0x00002412u, 0x00002dabu, 0x00007b8eu, 0x00002de1u, 0x000700f5u, 0x00000069u, 0x00007b81u, + 0x0000055eu, 0x00002dabu, 0x00007b82u, 0x00002de1u, 0x000200f9u, 0x00002de3u, 0x000200f8u, 0x00002d8fu, + 0x000200f9u, 0x00002de3u, 0x000200f8u, 0x00002de3u, 0x000700f5u, 0x00000012u, 0x00007ba5u, 0x000019ffu, + 0x00002d8fu, 0x00007ba6u, 0x00002de2u, 0x000700f5u, 0x00000069u, 0x00007b93u, 0x0000053bu, 0x00002d8fu, + 0x00007b94u, 0x00002de2u, 0x000700f5u, 0x00000006u, 0x00007b8cu, 0x00000332u, 0x00002d8fu, 0x00007b8du, + 0x00002de2u, 0x000700f5u, 0x00000069u, 0x00007b80u, 0x0000055eu, 0x00002d8fu, 0x00007b81u, 0x00002de2u, + 0x000300f7u, 0x00002e15u, 0x00000000u, 0x000400fau, 0x00002333u, 0x00002de5u, 0x00002e15u, 0x000200f8u, + 0x00002de5u, 0x000600a9u, 0x00000006u, 0x0000c269u, 0x00007b80u, 0x00002412u, 0x00007b8cu, 0x000400a8u, + 0x00000069u, 0x00002debu, 0x00002339u, 0x000300f7u, 0x00002e14u, 0x00000000u, 0x000400fau, 0x00002debu, + 0x00002decu, 0x00002e01u, 0x000200f8u, 0x00002e01u, 0x00050080u, 0x00000006u, 0x00002e04u, 0x0000240du, + 0x0000c269u, 0x000500a6u, 0x00000069u, 0x00002e07u, 0x00007b80u, 0x00007b93u, 0x000600a9u, 0x00000008u, + 0x00002e08u, 0x00002e07u, 0x0000022fu, 0x00000232u, 0x0004007cu, 0x00000006u, 0x00002e09u, 0x00002e08u, + 0x00050080u, 0x00000006u, 0x00002e0au, 0x00002e04u, 0x00002e09u, 0x000500c7u, 0x00000006u, 0x00002e0bu, + 0x00002e0au, 0x00000747u, 0x000600a9u, 0x00000008u, 0x00002e10u, 0x00007b93u, 0x00000225u, 0x0000022fu, + 0x0004007cu, 0x00000006u, 0x00002e11u, 0x00002e10u, 0x00050080u, 0x00000006u, 0x00002e12u, 0x00002e04u, + 0x00002e11u, 0x000500c7u, 0x00000006u, 0x00002e13u, 0x00002e12u, 0x00000747u, 0x000200f9u, 0x00002e14u, + 0x000200f8u, 0x00002decu, 0x00050080u, 0x00000006u, 0x00002defu, 0x0000240du, 0x0000c269u, 0x000500c7u, + 0x00000006u, 0x00002df0u, 0x00002defu, 0x00000747u, 0x000400a8u, 0x00000069u, 0x00002df2u, 0x00007b80u, + 0x000300f7u, 0x00002df8u, 0x00000000u, 0x000400fau, 0x00002df2u, 0x00002df3u, 0x00002df8u, 0x000200f8u, + 0x00002df3u, 0x000400a8u, 0x00000069u, 0x00002df5u, 0x00002336u, 0x000500a7u, 0x00000069u, 0x00002df7u, + 0x00002df5u, 0x00007b93u, 0x000200f9u, 0x00002df8u, 0x000200f8u, 0x00002df8u, 0x000700f5u, 0x00000069u, + 0x00002df9u, 0x00007b80u, 0x00002decu, 0x00002df7u, 0x00002df3u, 0x000300f7u, 0x00002e00u, 0x00000000u, + 0x000400fau, 0x00002df9u, 0x00002dfau, 0x00002dfcu, 0x000200f8u, 0x00002dfcu, 0x00050080u, 0x00000006u, + 0x00002dfeu, 0x00002df0u, 0x00000461u, 0x000500c7u, 0x00000006u, 0x00002dffu, 0x00002dfeu, 0x00000747u, + 0x000200f9u, 0x00002e00u, 0x000200f8u, 0x00002dfau, 0x000200f9u, 0x00002e00u, 0x000200f8u, 0x00002e00u, + 0x000700f5u, 0x00000006u, 0x00007ba3u, 0x00002df0u, 0x00002dfau, 0x00002dffu, 0x00002dfcu, 0x000200f9u, + 0x00002e14u, 0x000200f8u, 0x00002e14u, 0x000700f5u, 0x00000006u, 0x00007ba2u, 0x00007ba3u, 0x00002e00u, + 0x00002e0bu, 0x00002e01u, 0x000700f5u, 0x00000006u, 0x00007b9au, 0x00002df0u, 0x00002e00u, 0x00002e13u, + 0x00002e01u, 0x000200f9u, 0x00002e15u, 0x000200f8u, 0x00002e15u, 0x000700f5u, 0x00000006u, 0x00007b9cu, + 0x00002410u, 0x00002de3u, 0x00007ba2u, 0x00002e14u, 0x000700f5u, 0x00000006u, 0x00007b99u, 0x0000240du, + 0x00002de3u, 0x00007b9au, 0x00002e14u, 0x000200f9u, 0x00002428u, 0x000200f8u, 0x00002428u, 0x000700f5u, + 0x00000012u, 0x00008ac0u, 0x00008accu, 0x00002bacu, 0x00007ba5u, 0x00002e15u, 0x000700f5u, 0x00000006u, + 0x00008146u, 0x00002410u, 0x00002bacu, 0x00007b9cu, 0x00002e15u, 0x000700f5u, 0x00000006u, 0x00007baeu, + 0x0000240du, 0x00002bacu, 0x00007b99u, 0x00002e15u, 0x000300f7u, 0x0000243du, 0x00000000u, 0x000400fau, + 0x00002354u, 0x0000242au, 0x0000243du, 0x000200f8u, 0x0000242au, 0x00080041u, 0x00000676u, 0x0000242du, + 0x00000a2du, 0x00000225u, 0x000020eau, 0x00000232u, 0x00007baeu, 0x0004003du, 0x0000000fu, 0x0000242eu, + 0x0000242du, 0x00040071u, 0x00000006u, 0x0000242fu, 0x0000242eu, 0x00060041u, 0x000002b9u, 0x00002e1au, + 0x000002b7u, 0x00000225u, 0x0000242fu, 0x0004003du, 0x000002b3u, 0x00002e1bu, 0x00002e1au, 0x00050051u, + 0x00000006u, 0x00002e1cu, 0x00002e1bu, 0x00000000u, 0x00050051u, 0x00000006u, 0x00002e1eu, 0x00002e1bu, + 0x00000001u, 0x00050051u, 0x00000006u, 0x00002e20u, 0x00002e1bu, 0x00000002u, 0x00050051u, 0x00000006u, + 0x00002e22u, 0x00002e1bu, 0x00000003u, 0x00050051u, 0x00000006u, 0x00002e24u, 0x00002e1bu, 0x00000004u, + 0x00050051u, 0x00000006u, 0x00002e26u, 0x00002e1bu, 0x00000005u, 0x00050051u, 0x0000000fu, 0x00002e28u, + 0x00002e1bu, 0x00000006u, 0x00050051u, 0x0000000fu, 0x00002e2au, 0x00002e1bu, 0x00000007u, 0x00050051u, + 0x0000000fu, 0x00002e2cu, 0x00002e1bu, 0x00000008u, 0x00050051u, 0x0000000fu, 0x00002e2eu, 0x00002e1bu, + 0x00000009u, 0x00050051u, 0x0000000fu, 0x00002e30u, 0x00002e1bu, 0x0000000au, 0x00050051u, 0x0000000fu, + 0x00002e32u, 0x00002e1bu, 0x0000000bu, 0x00050051u, 0x0000000fu, 0x00002e34u, 0x00002e1bu, 0x0000000cu, + 0x00050051u, 0x0000000fu, 0x00002e36u, 0x00002e1bu, 0x0000000du, 0x00040071u, 0x00000006u, 0x00002f92u, + 0x00002e36u, 0x0004007cu, 0x00000008u, 0x00002f93u, 0x00002f92u, 0x000500c7u, 0x00000008u, 0x00002f94u, + 0x00002f93u, 0x0000022fu, 0x000500abu, 0x00000069u, 0x00002f95u, 0x00002f94u, 0x00000225u, 0x0004007cu, + 0x00000008u, 0x00002f98u, 0x00002e1cu, 0x0004007cu, 0x00000008u, 0x00002f9bu, 0x00002e1eu, 0x00040071u, + 0x00000006u, 0x00002f9eu, 0x00002e30u, 0x0004007cu, 0x00000008u, 0x00002f9fu, 0x00002f9eu, 0x00050051u, + 0x00000008u, 0x00002fa1u, 0x00007b2au, 0x00000000u, 0x0008000cu, 0x00000008u, 0x0000347cu, 0x00000001u, + 0x0000002du, 0x00002fa1u, 0x00000c70u, 0x00000c2bu, 0x000500b1u, 0x00000069u, 0x0000347eu, 0x00002f9fu, + 0x0000026bu, 0x000300f7u, 0x0000348au, 0x00000000u, 0x000400fau, 0x0000347eu, 0x0000347fu, 0x00003483u, + 0x000200f8u, 0x00003483u, 0x00050082u, 0x00000008u, 0x00003485u, 0x0000116du, 0x00002f9fu, 0x000500c4u, + 0x00000008u, 0x00003487u, 0x0000347cu, 0x00003485u, 0x000500c3u, 0x00000008u, 0x00003489u, 0x00003487u, + 0x00000559u, 0x000200f9u, 0x0000348au, 0x000200f8u, 0x0000347fu, 0x000500c3u, 0x00000008u, 0x00003482u, + 0x0000347cu, 0x00002f9fu, 0x000200f9u, 0x0000348au, 0x000200f8u, 0x0000348au, 0x000700f5u, 0x00000008u, + 0x00007bbau, 0x00003482u, 0x0000347fu, 0x00003489u, 0x00003483u, 0x000300f7u, 0x000034a6u, 0x00000000u, + 0x000400fau, 0x00002f95u, 0x0000348cu, 0x000034a1u, 0x000200f8u, 0x000034a1u, 0x000500c4u, 0x00000008u, + 0x000034a3u, 0x00002f98u, 0x00000235u, 0x00050082u, 0x00000008u, 0x000034a5u, 0x00007bbau, 0x000034a3u, + 0x000200f9u, 0x000034a6u, 0x000200f8u, 0x0000348cu, 0x000500c3u, 0x00000008u, 0x0000348eu, 0x00007bbau, + 0x00000235u, 0x000500afu, 0x00000069u, 0x00003490u, 0x0000348eu, 0x00002f9bu, 0x000300f7u, 0x000034a0u, + 0x00000000u, 0x000400fau, 0x00003490u, 0x00003492u, 0x0000349au, 0x000200f8u, 0x0000349au, 0x000500c4u, + 0x00000008u, 0x0000349du, 0x00002f98u, 0x00000235u, 0x00050082u, 0x00000008u, 0x0000349eu, 0x00007bbau, + 0x0000349du, 0x0007000cu, 0x00000008u, 0x0000349fu, 0x00000001u, 0x0000002au, 0x0000349eu, 0x00000225u, + 0x000200f9u, 0x000034a0u, 0x000200f8u, 0x00003492u, 0x000500c3u, 0x00000008u, 0x00003494u, 0x00002f9bu, + 0x00000232u, 0x000500c3u, 0x00000008u, 0x00003496u, 0x00002f98u, 0x00000232u, 0x00050082u, 0x00000008u, + 0x00003497u, 0x00003494u, 0x00003496u, 0x000500c7u, 0x00000008u, 0x00003498u, 0x00003497u, 0x00001184u, + 0x000500c4u, 0x00000008u, 0x00003499u, 0x00003498u, 0x0000023bu, 0x000200f9u, 0x000034a0u, 0x000200f8u, + 0x000034a0u, 0x000700f5u, 0x00000008u, 0x00007bbcu, 0x00003499u, 0x00003492u, 0x0000349fu, 0x0000349au, + 0x000200f9u, 0x000034a6u, 0x000200f8u, 0x000034a6u, 0x000700f5u, 0x00000008u, 0x00007bbbu, 0x00007bbcu, + 0x000034a0u, 0x000034a5u, 0x000034a1u, 0x000500c7u, 0x00000008u, 0x00002fa8u, 0x00002f93u, 0x00000238u, + 0x000500abu, 0x00000069u, 0x00002fa9u, 0x00002fa8u, 0x00000225u, 0x0004007cu, 0x00000008u, 0x00002facu, + 0x00002e20u, 0x0004007cu, 0x00000008u, 0x00002fafu, 0x00002e22u, 0x00040071u, 0x00000006u, 0x00002fb2u, + 0x00002e34u, 0x0004007cu, 0x00000008u, 0x00002fb3u, 0x00002fb2u, 0x00050051u, 0x00000008u, 0x00002fb5u, + 0x00007b2au, 0x00000001u, 0x0008000cu, 0x00000008u, 0x000034acu, 0x00000001u, 0x0000002du, 0x00002fb5u, + 0x00000c70u, 0x00000c2bu, 0x000500b1u, 0x00000069u, 0x000034aeu, 0x00002fb3u, 0x0000026bu, 0x000300f7u, + 0x000034bau, 0x00000000u, 0x000400fau, 0x000034aeu, 0x000034afu, 0x000034b3u, 0x000200f8u, 0x000034b3u, + 0x00050082u, 0x00000008u, 0x000034b5u, 0x0000116du, 0x00002fb3u, 0x000500c4u, 0x00000008u, 0x000034b7u, + 0x000034acu, 0x000034b5u, 0x000500c3u, 0x00000008u, 0x000034b9u, 0x000034b7u, 0x00000559u, 0x000200f9u, + 0x000034bau, 0x000200f8u, 0x000034afu, 0x000500c3u, 0x00000008u, 0x000034b2u, 0x000034acu, 0x00002fb3u, + 0x000200f9u, 0x000034bau, 0x000200f8u, 0x000034bau, 0x000700f5u, 0x00000008u, 0x00007bc0u, 0x000034b2u, + 0x000034afu, 0x000034b9u, 0x000034b3u, 0x000300f7u, 0x000034d6u, 0x00000000u, 0x000400fau, 0x00002fa9u, + 0x000034bcu, 0x000034d1u, 0x000200f8u, 0x000034d1u, 0x000500c4u, 0x00000008u, 0x000034d3u, 0x00002facu, + 0x00000235u, 0x00050082u, 0x00000008u, 0x000034d5u, 0x00007bc0u, 0x000034d3u, 0x000200f9u, 0x000034d6u, + 0x000200f8u, 0x000034bcu, 0x000500c3u, 0x00000008u, 0x000034beu, 0x00007bc0u, 0x00000235u, 0x000500afu, + 0x00000069u, 0x000034c0u, 0x000034beu, 0x00002fafu, 0x000300f7u, 0x000034d0u, 0x00000000u, 0x000400fau, + 0x000034c0u, 0x000034c2u, 0x000034cau, 0x000200f8u, 0x000034cau, 0x000500c4u, 0x00000008u, 0x000034cdu, + 0x00002facu, 0x00000235u, 0x00050082u, 0x00000008u, 0x000034ceu, 0x00007bc0u, 0x000034cdu, 0x0007000cu, + 0x00000008u, 0x000034cfu, 0x00000001u, 0x0000002au, 0x000034ceu, 0x00000225u, 0x000200f9u, 0x000034d0u, + 0x000200f8u, 0x000034c2u, 0x000500c3u, 0x00000008u, 0x000034c4u, 0x00002fafu, 0x00000232u, 0x000500c3u, + 0x00000008u, 0x000034c6u, 0x00002facu, 0x00000232u, 0x00050082u, 0x00000008u, 0x000034c7u, 0x000034c4u, + 0x000034c6u, 0x000500c7u, 0x00000008u, 0x000034c8u, 0x000034c7u, 0x00001184u, 0x000500c4u, 0x00000008u, + 0x000034c9u, 0x000034c8u, 0x0000023bu, 0x000200f9u, 0x000034d0u, 0x000200f8u, 0x000034d0u, 0x000700f5u, + 0x00000008u, 0x00007bc2u, 0x000034c9u, 0x000034c2u, 0x000034cfu, 0x000034cau, 0x000200f9u, 0x000034d6u, + 0x000200f8u, 0x000034d6u, 0x000700f5u, 0x00000008u, 0x00007bc1u, 0x00007bc2u, 0x000034d0u, 0x000034d5u, + 0x000034d1u, 0x00050050u, 0x000000f2u, 0x0000c24du, 0x00007bbbu, 0x00007bc1u, 0x000500a6u, 0x00000069u, + 0x00002fbau, 0x00002327u, 0x00002321u, 0x000300f7u, 0x00002fc0u, 0x00000000u, 0x000400fau, 0x00002fbau, + 0x00002fbbu, 0x00002fbfu, 0x000200f8u, 0x00002fbfu, 0x000200f9u, 0x00002fc0u, 0x000200f8u, 0x00002fbbu, + 0x000500c7u, 0x000000f2u, 0x00002fbeu, 0x0000c24du, 0x0000c233u, 0x000200f9u, 0x00002fc0u, 0x000200f8u, + 0x00002fc0u, 0x000700f5u, 0x000000f2u, 0x00007bc6u, 0x00002fbeu, 0x00002fbbu, 0x00000c57u, 0x00002fbfu, + 0x00050051u, 0x00000008u, 0x00002fc2u, 0x00007bc6u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00002fc4u, + 0x00007bc6u, 0x00000001u, 0x00050080u, 0x00000008u, 0x00002fc5u, 0x00002fc2u, 0x00002fc4u, 0x000500c3u, + 0x000000f2u, 0x00002fc8u, 0x0000c24du, 0x0000c232u, 0x00050051u, 0x00000008u, 0x00002fcbu, 0x00002fc8u, + 0x00000000u, 0x00040071u, 0x00000006u, 0x000034ddu, 0x00002e2eu, 0x0004007cu, 0x00000008u, 0x000034deu, + 0x000034ddu, 0x000500abu, 0x00000069u, 0x000034dfu, 0x000034deu, 0x00000225u, 0x000300f7u, 0x000034f7u, + 0x00000000u, 0x000400fau, 0x000034dfu, 0x000034e0u, 0x000034f7u, 0x000200f8u, 0x000034e0u, 0x000500c4u, + 0x00000008u, 0x000034e3u, 0x0000022fu, 0x00002e2eu, 0x000500c7u, 0x00000008u, 0x000034e8u, 0x00002f93u, + 0x00000232u, 0x000500abu, 0x00000069u, 0x000034e9u, 0x000034e8u, 0x00000225u, 0x000300f7u, 0x000034f2u, + 0x00000000u, 0x000400fau, 0x000034e9u, 0x000034eau, 0x000034f2u, 0x000200f8u, 0x000034eau, 0x000500c7u, + 0x00000008u, 0x000034edu, 0x00002fcbu, 0x000034e3u, 0x00050082u, 0x00000008u, 0x000034eeu, 0x000034edu, + 0x0000022fu, 0x0007000cu, 0x00000008u, 0x000034efu, 0x00000001u, 0x0000002au, 0x000034eeu, 0x00000225u, + 0x000500c6u, 0x00000008u, 0x000034f1u, 0x00002fcbu, 0x000034efu, 0x000200f9u, 0x000034f2u, 0x000200f8u, + 0x000034f2u, 0x000700f5u, 0x00000008u, 0x00007bc8u, 0x00002fcbu, 0x000034e0u, 0x000034f1u, 0x000034eau, + 0x00050082u, 0x00000008u, 0x000034f4u, 0x000034e3u, 0x0000022fu, 0x000500c7u, 0x00000008u, 0x000034f6u, + 0x00007bc8u, 0x000034f4u, 0x000200f9u, 0x000034f7u, 0x000200f8u, 0x000034f7u, 0x000700f5u, 0x00000008u, + 0x00007bc9u, 0x00002fcbu, 0x00002fc0u, 0x000034f6u, 0x000034f2u, 0x00050051u, 0x00000008u, 0x00002fcfu, + 0x00002fc8u, 0x00000001u, 0x00040071u, 0x00000006u, 0x000034feu, 0x00002e32u, 0x0004007cu, 0x00000008u, + 0x000034ffu, 0x000034feu, 0x000500abu, 0x00000069u, 0x00003500u, 0x000034ffu, 0x00000225u, 0x000300f7u, + 0x00003518u, 0x00000000u, 0x000400fau, 0x00003500u, 0x00003501u, 0x00003518u, 0x000200f8u, 0x00003501u, + 0x000500c4u, 0x00000008u, 0x00003504u, 0x0000022fu, 0x00002e32u, 0x000500c7u, 0x00000008u, 0x00003509u, + 0x00002f93u, 0x00000262u, 0x000500abu, 0x00000069u, 0x0000350au, 0x00003509u, 0x00000225u, 0x000300f7u, + 0x00003513u, 0x00000000u, 0x000400fau, 0x0000350au, 0x0000350bu, 0x00003513u, 0x000200f8u, 0x0000350bu, + 0x000500c7u, 0x00000008u, 0x0000350eu, 0x00002fcfu, 0x00003504u, 0x00050082u, 0x00000008u, 0x0000350fu, + 0x0000350eu, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00003510u, 0x00000001u, 0x0000002au, 0x0000350fu, + 0x00000225u, 0x000500c6u, 0x00000008u, 0x00003512u, 0x00002fcfu, 0x00003510u, 0x000200f9u, 0x00003513u, + 0x000200f8u, 0x00003513u, 0x000700f5u, 0x00000008u, 0x00007bccu, 0x00002fcfu, 0x00003501u, 0x00003512u, + 0x0000350bu, 0x00050082u, 0x00000008u, 0x00003515u, 0x00003504u, 0x0000022fu, 0x000500c7u, 0x00000008u, + 0x00003517u, 0x00007bccu, 0x00003515u, 0x000200f9u, 0x00003518u, 0x000200f8u, 0x00003518u, 0x000700f5u, + 0x00000008u, 0x00007bcdu, 0x00002fcfu, 0x000034f7u, 0x00003517u, 0x00003513u, 0x00050080u, 0x00000008u, + 0x00002fd3u, 0x00002fcbu, 0x0000022fu, 0x000300f7u, 0x00003539u, 0x00000000u, 0x000400fau, 0x000034dfu, + 0x00003522u, 0x00003539u, 0x000200f8u, 0x00003522u, 0x000500c4u, 0x00000008u, 0x00003525u, 0x0000022fu, + 0x00002e2eu, 0x000500c7u, 0x00000008u, 0x0000352au, 0x00002f93u, 0x00000232u, 0x000500abu, 0x00000069u, + 0x0000352bu, 0x0000352au, 0x00000225u, 0x000300f7u, 0x00003534u, 0x00000000u, 0x000400fau, 0x0000352bu, + 0x0000352cu, 0x00003534u, 0x000200f8u, 0x0000352cu, 0x000500c7u, 0x00000008u, 0x0000352fu, 0x00002fd3u, + 0x00003525u, 0x00050082u, 0x00000008u, 0x00003530u, 0x0000352fu, 0x0000022fu, 0x0007000cu, 0x00000008u, + 0x00003531u, 0x00000001u, 0x0000002au, 0x00003530u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x00003533u, + 0x00002fd3u, 0x00003531u, 0x000200f9u, 0x00003534u, 0x000200f8u, 0x00003534u, 0x000700f5u, 0x00000008u, + 0x00007bd0u, 0x00002fd3u, 0x00003522u, 0x00003533u, 0x0000352cu, 0x00050082u, 0x00000008u, 0x00003536u, + 0x00003525u, 0x0000022fu, 0x000500c7u, 0x00000008u, 0x00003538u, 0x00007bd0u, 0x00003536u, 0x000200f9u, + 0x00003539u, 0x000200f8u, 0x00003539u, 0x000700f5u, 0x00000008u, 0x00007bd1u, 0x00002fd3u, 0x00003518u, + 0x00003538u, 0x00003534u, 0x00050080u, 0x00000008u, 0x00002fd8u, 0x00002fcfu, 0x0000022fu, 0x000300f7u, + 0x0000355au, 0x00000000u, 0x000400fau, 0x00003500u, 0x00003543u, 0x0000355au, 0x000200f8u, 0x00003543u, + 0x000500c4u, 0x00000008u, 0x00003546u, 0x0000022fu, 0x00002e32u, 0x000500c7u, 0x00000008u, 0x0000354bu, + 0x00002f93u, 0x00000262u, 0x000500abu, 0x00000069u, 0x0000354cu, 0x0000354bu, 0x00000225u, 0x000300f7u, + 0x00003555u, 0x00000000u, 0x000400fau, 0x0000354cu, 0x0000354du, 0x00003555u, 0x000200f8u, 0x0000354du, + 0x000500c7u, 0x00000008u, 0x00003550u, 0x00002fd8u, 0x00003546u, 0x00050082u, 0x00000008u, 0x00003551u, + 0x00003550u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00003552u, 0x00000001u, 0x0000002au, 0x00003551u, + 0x00000225u, 0x000500c6u, 0x00000008u, 0x00003554u, 0x00002fd8u, 0x00003552u, 0x000200f9u, 0x00003555u, + 0x000200f8u, 0x00003555u, 0x000700f5u, 0x00000008u, 0x00007bd4u, 0x00002fd8u, 0x00003543u, 0x00003554u, + 0x0000354du, 0x00050082u, 0x00000008u, 0x00003557u, 0x00003546u, 0x0000022fu, 0x000500c7u, 0x00000008u, + 0x00003559u, 0x00007bd4u, 0x00003557u, 0x000200f9u, 0x0000355au, 0x000200f8u, 0x0000355au, 0x000700f5u, + 0x00000008u, 0x00007bd5u, 0x00002fd8u, 0x00003539u, 0x00003559u, 0x00003555u, 0x00050082u, 0x00000008u, + 0x00002fddu, 0x00007bd5u, 0x00007bcdu, 0x0007000cu, 0x00000008u, 0x00002fdeu, 0x00000001u, 0x0000002au, + 0x00002fddu, 0x00001401u, 0x000500c7u, 0x00000008u, 0x00002fe0u, 0x00007bcdu, 0x00000363u, 0x00050080u, + 0x00000008u, 0x00002fe2u, 0x00002fe0u, 0x00002fdeu, 0x000500aau, 0x00000884u, 0x00002fe8u, 0x00007bc6u, + 0x0000140du, 0x00050051u, 0x00000069u, 0x00002fe9u, 0x00002fe8u, 0x00000000u, 0x00050051u, 0x00000069u, + 0x00002feau, 0x00002fe8u, 0x00000001u, 0x00070050u, 0x00000600u, 0x00002febu, 0x00002351u, 0x00002363u, + 0x00002fe9u, 0x00002feau, 0x0004009bu, 0x00000069u, 0x00002fecu, 0x00002febu, 0x000500afu, 0x00000069u, + 0x00002feeu, 0x00002fc5u, 0x0000116du, 0x000600a9u, 0x00000008u, 0x0000c26au, 0x00002fecu, 0x00000225u, + 0x00002fc5u, 0x00040071u, 0x00000006u, 0x00002ff4u, 0x00002e28u, 0x0004007cu, 0x00000008u, 0x00002ff5u, + 0x00002ff4u, 0x000500aau, 0x00000069u, 0x00002ff6u, 0x00002ff5u, 0x0000022fu, 0x000500afu, 0x00000069u, + 0x00002ff8u, 0x0000c26au, 0x0000116du, 0x000300f7u, 0x00003001u, 0x00000000u, 0x000400fau, 0x00002ff8u, + 0x00002ff9u, 0x00002ffdu, 0x000200f8u, 0x00002ffdu, 0x00050050u, 0x000000f2u, 0x00003000u, 0x00007bc9u, + 0x00002fe0u, 0x000200f9u, 0x00003001u, 0x000200f8u, 0x00002ff9u, 0x00050050u, 0x000000f2u, 0x00002ffcu, + 0x00007bd1u, 0x00002fe2u, 0x000200f9u, 0x00003001u, 0x000200f8u, 0x00003001u, 0x000700f5u, 0x000000f2u, + 0x00007bf0u, 0x00002ffcu, 0x00002ff9u, 0x00003000u, 0x00002ffdu, 0x000500c7u, 0x00000008u, 0x00003004u, + 0x00007bc9u, 0x0000022fu, 0x000500c4u, 0x00000008u, 0x00003005u, 0x00003004u, 0x00000238u, 0x000500c3u, + 0x00000008u, 0x00003008u, 0x00002fc2u, 0x0000022fu, 0x000500c5u, 0x00000008u, 0x00003009u, 0x00003005u, + 0x00003008u, 0x000300f7u, 0x000032dbu, 0x00000000u, 0x000400fau, 0x00002321u, 0x0000300bu, 0x000030b5u, + 0x000200f8u, 0x000030b5u, 0x000300f7u, 0x000032dau, 0x00000000u, 0x000d00fbu, 0x00002ff5u, 0x000032dau, + 0x00000000u, 0x000030bau, 0x00000001u, 0x00003144u, 0x00000002u, 0x00003172u, 0x00000003u, 0x000031e7u, + 0x00000004u, 0x00003271u, 0x000200f8u, 0x00003271u, 0x00040071u, 0x00000006u, 0x00003274u, 0x00002e2au, + 0x0004007cu, 0x00000008u, 0x00003275u, 0x00003274u, 0x000300f7u, 0x000032d9u, 0x00000000u, 0x000700fbu, + 0x00003275u, 0x00003276u, 0x00000000u, 0x00003297u, 0x00000001u, 0x000032b8u, 0x000200f8u, 0x000032b8u, + 0x0004007cu, 0x000000b4u, 0x000032bau, 0x00007bf0u, 0x00050051u, 0x00000006u, 0x000046b2u, 0x000032bau, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000046b3u, 0x00002e26u, 0x000046b2u, 0x00050080u, 0x00000006u, + 0x000046b4u, 0x00002e24u, 0x000046b3u, 0x00050051u, 0x00000006u, 0x000046b6u, 0x000032bau, 0x00000000u, + 0x00050080u, 0x00000006u, 0x000046b8u, 0x000046b4u, 0x000046b6u, 0x000500c7u, 0x00000006u, 0x000046bau, + 0x000046b8u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x000046beu, 0x000046b2u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000046bfu, 0x000046beu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000046c1u, 0x000046bau, + 0x000046bfu, 0x000500c6u, 0x00000006u, 0x000046c3u, 0x000046c1u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000046c6u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000046c3u, 0x0004003du, 0x0000000fu, + 0x000046c7u, 0x000046c6u, 0x00040071u, 0x00000006u, 0x000046c8u, 0x000046c7u, 0x00040071u, 0x00000011u, + 0x000046cau, 0x000046c8u, 0x0004007cu, 0x00000012u, 0x000046cbu, 0x000046cau, 0x00070050u, 0x00000013u, + 0x000046ccu, 0x000046cbu, 0x000046cbu, 0x000046cbu, 0x000046cbu, 0x000300f7u, 0x000032ceu, 0x00000000u, + 0x000400fau, 0x00002327u, 0x000032bfu, 0x000032ceu, 0x000200f8u, 0x000032bfu, 0x00050050u, 0x000000f2u, + 0x000032c2u, 0x00007bd1u, 0x00002fe0u, 0x0004007cu, 0x000000b4u, 0x000032c3u, 0x000032c2u, 0x00050051u, + 0x00000006u, 0x000046d7u, 0x000032c3u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000046d8u, 0x00002e26u, + 0x000046d7u, 0x00050080u, 0x00000006u, 0x000046d9u, 0x00002e24u, 0x000046d8u, 0x00050051u, 0x00000006u, + 0x000046dbu, 0x000032c3u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000046ddu, 0x000046d9u, 0x000046dbu, + 0x000500c7u, 0x00000006u, 0x000046dfu, 0x000046ddu, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x000046e3u, + 0x000046d7u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000046e4u, 0x000046e3u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x000046e6u, 0x000046dfu, 0x000046e4u, 0x000500c6u, 0x00000006u, 0x000046e8u, 0x000046e6u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000046ebu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x000046e8u, 0x0004003du, 0x0000000fu, 0x000046ecu, 0x000046ebu, 0x00040071u, 0x00000006u, 0x000046edu, + 0x000046ecu, 0x00040071u, 0x00000011u, 0x000046efu, 0x000046edu, 0x0004007cu, 0x00000012u, 0x000046f0u, + 0x000046efu, 0x00070050u, 0x00000013u, 0x000046f1u, 0x000046f0u, 0x000046f0u, 0x000046f0u, 0x000046f0u, + 0x00050050u, 0x000000f2u, 0x000032c9u, 0x00007bc9u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x000032cau, + 0x000032c9u, 0x00050051u, 0x00000006u, 0x000046fcu, 0x000032cau, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000046fdu, 0x00002e26u, 0x000046fcu, 0x00050080u, 0x00000006u, 0x000046feu, 0x00002e24u, 0x000046fdu, + 0x00050051u, 0x00000006u, 0x00004700u, 0x000032cau, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004702u, + 0x000046feu, 0x00004700u, 0x000500c7u, 0x00000006u, 0x00004704u, 0x00004702u, 0x00000e83u, 0x000500c7u, + 0x00000006u, 0x00004708u, 0x000046fcu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004709u, 0x00004708u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x0000470bu, 0x00004704u, 0x00004709u, 0x000500c6u, 0x00000006u, + 0x0000470du, 0x0000470bu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00004710u, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x0000470du, 0x0004003du, 0x0000000fu, 0x00004711u, 0x00004710u, 0x00040071u, + 0x00000006u, 0x00004712u, 0x00004711u, 0x00040071u, 0x00000011u, 0x00004714u, 0x00004712u, 0x0004007cu, + 0x00000012u, 0x00004715u, 0x00004714u, 0x00070050u, 0x00000013u, 0x00004716u, 0x00004715u, 0x00004715u, + 0x00004715u, 0x00004715u, 0x000200f9u, 0x000032ceu, 0x000200f8u, 0x000032ceu, 0x000700f5u, 0x00000013u, + 0x00007e33u, 0x00007dd5u, 0x000032b8u, 0x00004716u, 0x000032bfu, 0x000700f5u, 0x00000013u, 0x00007db5u, + 0x00007d54u, 0x000032b8u, 0x000046f1u, 0x000032bfu, 0x000300f7u, 0x000032d8u, 0x00000000u, 0x000400fau, + 0x00002fecu, 0x000032d0u, 0x000032d8u, 0x000200f8u, 0x000032d0u, 0x00050050u, 0x000000f2u, 0x000032d3u, + 0x00007bd1u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x000032d4u, 0x000032d3u, 0x00050051u, 0x00000006u, + 0x00004721u, 0x000032d4u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004722u, 0x00002e26u, 0x00004721u, + 0x00050080u, 0x00000006u, 0x00004723u, 0x00002e24u, 0x00004722u, 0x00050051u, 0x00000006u, 0x00004725u, + 0x000032d4u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004727u, 0x00004723u, 0x00004725u, 0x000500c7u, + 0x00000006u, 0x00004729u, 0x00004727u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x0000472du, 0x00004721u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000472eu, 0x0000472du, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x00004730u, 0x00004729u, 0x0000472eu, 0x000500c6u, 0x00000006u, 0x00004732u, 0x00004730u, 0x00000469u, + 0x00080041u, 0x00000676u, 0x00004735u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00004732u, + 0x0004003du, 0x0000000fu, 0x00004736u, 0x00004735u, 0x00040071u, 0x00000006u, 0x00004737u, 0x00004736u, + 0x00040071u, 0x00000011u, 0x00004739u, 0x00004737u, 0x0004007cu, 0x00000012u, 0x0000473au, 0x00004739u, + 0x00070050u, 0x00000013u, 0x0000473bu, 0x0000473au, 0x0000473au, 0x0000473au, 0x0000473au, 0x000200f9u, + 0x000032d8u, 0x000200f8u, 0x000032d8u, 0x000700f5u, 0x00000013u, 0x00007eb0u, 0x00007e50u, 0x000032ceu, + 0x0000473bu, 0x000032d0u, 0x000200f9u, 0x000032d9u, 0x000200f8u, 0x00003297u, 0x0004007cu, 0x000000b4u, + 0x00003299u, 0x00007bf0u, 0x00050051u, 0x00000006u, 0x000045e3u, 0x00003299u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000045e4u, 0x00002e26u, 0x000045e3u, 0x00050080u, 0x00000006u, 0x000045e5u, 0x00002e24u, + 0x000045e4u, 0x00050051u, 0x00000006u, 0x000045e7u, 0x00003299u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x000045e8u, 0x000045e7u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000045eau, 0x000045e5u, 0x000045e8u, + 0x000500c7u, 0x00000006u, 0x000045ecu, 0x000045eau, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x000045efu, + 0x000045e7u, 0x000500c7u, 0x00000006u, 0x000045f0u, 0x000045efu, 0x00000461u, 0x00050084u, 0x00000006u, + 0x000045f1u, 0x000045f0u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000045f5u, 0x000045e3u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x000045f6u, 0x000045f5u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000045f8u, + 0x000045ecu, 0x000045f6u, 0x000500c6u, 0x00000006u, 0x000045fau, 0x000045f8u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x000045fdu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000045fau, 0x0004003du, + 0x0000000fu, 0x000045feu, 0x000045fdu, 0x00040071u, 0x00000006u, 0x000045ffu, 0x000045feu, 0x000500c2u, + 0x00000006u, 0x00004602u, 0x000045ffu, 0x000045f1u, 0x000500c7u, 0x00000006u, 0x00004603u, 0x00004602u, + 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00004605u, 0x00004603u, 0x00000238u, 0x000500c5u, 0x00000006u, + 0x00004607u, 0x00004603u, 0x00004605u, 0x00040071u, 0x00000011u, 0x00004609u, 0x00004607u, 0x0004007cu, + 0x00000012u, 0x0000460au, 0x00004609u, 0x00070050u, 0x00000013u, 0x0000460bu, 0x0000460au, 0x0000460au, + 0x0000460au, 0x0000460au, 0x000300f7u, 0x000032adu, 0x00000000u, 0x000400fau, 0x00002327u, 0x0000329eu, + 0x000032adu, 0x000200f8u, 0x0000329eu, 0x00050050u, 0x000000f2u, 0x000032a1u, 0x00007bd1u, 0x00002fe0u, + 0x0004007cu, 0x000000b4u, 0x000032a2u, 0x000032a1u, 0x00050051u, 0x00000006u, 0x00004617u, 0x000032a2u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004618u, 0x00002e26u, 0x00004617u, 0x00050080u, 0x00000006u, + 0x00004619u, 0x00002e24u, 0x00004618u, 0x00050051u, 0x00000006u, 0x0000461bu, 0x000032a2u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000461cu, 0x0000461bu, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000461eu, + 0x00004619u, 0x0000461cu, 0x000500c7u, 0x00000006u, 0x00004620u, 0x0000461eu, 0x00000e83u, 0x000400c8u, + 0x00000006u, 0x00004623u, 0x0000461bu, 0x000500c7u, 0x00000006u, 0x00004624u, 0x00004623u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00004625u, 0x00004624u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00004629u, + 0x00004617u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000462au, 0x00004629u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x0000462cu, 0x00004620u, 0x0000462au, 0x000500c6u, 0x00000006u, 0x0000462eu, 0x0000462cu, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00004631u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x0000462eu, 0x0004003du, 0x0000000fu, 0x00004632u, 0x00004631u, 0x00040071u, 0x00000006u, 0x00004633u, + 0x00004632u, 0x000500c2u, 0x00000006u, 0x00004636u, 0x00004633u, 0x00004625u, 0x000500c7u, 0x00000006u, + 0x00004637u, 0x00004636u, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00004639u, 0x00004637u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x0000463bu, 0x00004637u, 0x00004639u, 0x00040071u, 0x00000011u, 0x0000463du, + 0x0000463bu, 0x0004007cu, 0x00000012u, 0x0000463eu, 0x0000463du, 0x00070050u, 0x00000013u, 0x0000463fu, + 0x0000463eu, 0x0000463eu, 0x0000463eu, 0x0000463eu, 0x00050050u, 0x000000f2u, 0x000032a8u, 0x00007bc9u, + 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x000032a9u, 0x000032a8u, 0x00050051u, 0x00000006u, 0x0000464bu, + 0x000032a9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000464cu, 0x00002e26u, 0x0000464bu, 0x00050080u, + 0x00000006u, 0x0000464du, 0x00002e24u, 0x0000464cu, 0x00050051u, 0x00000006u, 0x0000464fu, 0x000032a9u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004650u, 0x0000464fu, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00004652u, 0x0000464du, 0x00004650u, 0x000500c7u, 0x00000006u, 0x00004654u, 0x00004652u, 0x00000e83u, + 0x000400c8u, 0x00000006u, 0x00004657u, 0x0000464fu, 0x000500c7u, 0x00000006u, 0x00004658u, 0x00004657u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00004659u, 0x00004658u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x0000465du, 0x0000464bu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000465eu, 0x0000465du, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00004660u, 0x00004654u, 0x0000465eu, 0x000500c6u, 0x00000006u, 0x00004662u, + 0x00004660u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00004665u, 0x00000e9du, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00004662u, 0x0004003du, 0x0000000fu, 0x00004666u, 0x00004665u, 0x00040071u, 0x00000006u, + 0x00004667u, 0x00004666u, 0x000500c2u, 0x00000006u, 0x0000466au, 0x00004667u, 0x00004659u, 0x000500c7u, + 0x00000006u, 0x0000466bu, 0x0000466au, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x0000466du, 0x0000466bu, + 0x00000238u, 0x000500c5u, 0x00000006u, 0x0000466fu, 0x0000466bu, 0x0000466du, 0x00040071u, 0x00000011u, + 0x00004671u, 0x0000466fu, 0x0004007cu, 0x00000012u, 0x00004672u, 0x00004671u, 0x00070050u, 0x00000013u, + 0x00004673u, 0x00004672u, 0x00004672u, 0x00004672u, 0x00004672u, 0x000200f9u, 0x000032adu, 0x000200f8u, + 0x000032adu, 0x000700f5u, 0x00000013u, 0x00007e31u, 0x00007dd5u, 0x00003297u, 0x00004673u, 0x0000329eu, + 0x000700f5u, 0x00000013u, 0x00007db3u, 0x00007d54u, 0x00003297u, 0x0000463fu, 0x0000329eu, 0x000300f7u, + 0x000032b7u, 0x00000000u, 0x000400fau, 0x00002fecu, 0x000032afu, 0x000032b7u, 0x000200f8u, 0x000032afu, + 0x00050050u, 0x000000f2u, 0x000032b2u, 0x00007bd1u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x000032b3u, + 0x000032b2u, 0x00050051u, 0x00000006u, 0x0000467fu, 0x000032b3u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004680u, 0x00002e26u, 0x0000467fu, 0x00050080u, 0x00000006u, 0x00004681u, 0x00002e24u, 0x00004680u, + 0x00050051u, 0x00000006u, 0x00004683u, 0x000032b3u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004684u, + 0x00004683u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00004686u, 0x00004681u, 0x00004684u, 0x000500c7u, + 0x00000006u, 0x00004688u, 0x00004686u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x0000468bu, 0x00004683u, + 0x000500c7u, 0x00000006u, 0x0000468cu, 0x0000468bu, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000468du, + 0x0000468cu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00004691u, 0x0000467fu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00004692u, 0x00004691u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00004694u, 0x00004688u, + 0x00004692u, 0x000500c6u, 0x00000006u, 0x00004696u, 0x00004694u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00004699u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00004696u, 0x0004003du, 0x0000000fu, + 0x0000469au, 0x00004699u, 0x00040071u, 0x00000006u, 0x0000469bu, 0x0000469au, 0x000500c2u, 0x00000006u, + 0x0000469eu, 0x0000469bu, 0x0000468du, 0x000500c7u, 0x00000006u, 0x0000469fu, 0x0000469eu, 0x00000ea6u, + 0x000500c4u, 0x00000006u, 0x000046a1u, 0x0000469fu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x000046a3u, + 0x0000469fu, 0x000046a1u, 0x00040071u, 0x00000011u, 0x000046a5u, 0x000046a3u, 0x0004007cu, 0x00000012u, + 0x000046a6u, 0x000046a5u, 0x00070050u, 0x00000013u, 0x000046a7u, 0x000046a6u, 0x000046a6u, 0x000046a6u, + 0x000046a6u, 0x000200f9u, 0x000032b7u, 0x000200f8u, 0x000032b7u, 0x000700f5u, 0x00000013u, 0x00007eaeu, + 0x00007e50u, 0x000032adu, 0x000046a7u, 0x000032afu, 0x000200f9u, 0x000032d9u, 0x000200f8u, 0x00003276u, + 0x0004007cu, 0x000000b4u, 0x00003278u, 0x00007bf0u, 0x00050051u, 0x00000006u, 0x0000452eu, 0x00003278u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000452fu, 0x00002e26u, 0x0000452eu, 0x00050080u, 0x00000006u, + 0x00004530u, 0x00002e24u, 0x0000452fu, 0x00050051u, 0x00000006u, 0x00004532u, 0x00003278u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00004533u, 0x00004532u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00004535u, + 0x00004530u, 0x00004533u, 0x000500c7u, 0x00000006u, 0x00004537u, 0x00004535u, 0x00000e83u, 0x000500c2u, + 0x00000006u, 0x00004539u, 0x00004537u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x0000453cu, 0x0000452eu, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000453du, 0x0000453cu, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x0000453fu, 0x00004539u, 0x0000453du, 0x000500c6u, 0x00000006u, 0x00004541u, 0x0000453fu, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00004544u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00004541u, + 0x0004003du, 0x00000011u, 0x00004545u, 0x00004544u, 0x00040071u, 0x00000006u, 0x00004546u, 0x00004545u, + 0x000500c2u, 0x00000006u, 0x00004548u, 0x00004546u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00004549u, + 0x00004548u, 0x0004007cu, 0x00000012u, 0x0000454au, 0x00004549u, 0x000500c7u, 0x00000006u, 0x0000454cu, + 0x00004546u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000454du, 0x0000454cu, 0x0004007cu, 0x00000012u, + 0x0000454eu, 0x0000454du, 0x00050050u, 0x000001b1u, 0x0000454fu, 0x0000454au, 0x0000454eu, 0x0009004fu, + 0x00000013u, 0x00004550u, 0x0000454fu, 0x0000454fu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000300f7u, 0x0000328cu, 0x00000000u, 0x000400fau, 0x00002327u, 0x0000327du, 0x0000328cu, 0x000200f8u, + 0x0000327du, 0x00050050u, 0x000000f2u, 0x00003280u, 0x00007bd1u, 0x00002fe0u, 0x0004007cu, 0x000000b4u, + 0x00003281u, 0x00003280u, 0x00050051u, 0x00000006u, 0x0000455bu, 0x00003281u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000455cu, 0x00002e26u, 0x0000455bu, 0x00050080u, 0x00000006u, 0x0000455du, 0x00002e24u, + 0x0000455cu, 0x00050051u, 0x00000006u, 0x0000455fu, 0x00003281u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00004560u, 0x0000455fu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00004562u, 0x0000455du, 0x00004560u, + 0x000500c7u, 0x00000006u, 0x00004564u, 0x00004562u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00004566u, + 0x00004564u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00004569u, 0x0000455bu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x0000456au, 0x00004569u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x0000456cu, 0x00004566u, + 0x0000456au, 0x000500c6u, 0x00000006u, 0x0000456eu, 0x0000456cu, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00004571u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000456eu, 0x0004003du, 0x00000011u, + 0x00004572u, 0x00004571u, 0x00040071u, 0x00000006u, 0x00004573u, 0x00004572u, 0x000500c2u, 0x00000006u, + 0x00004575u, 0x00004573u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00004576u, 0x00004575u, 0x0004007cu, + 0x00000012u, 0x00004577u, 0x00004576u, 0x000500c7u, 0x00000006u, 0x00004579u, 0x00004573u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x0000457au, 0x00004579u, 0x0004007cu, 0x00000012u, 0x0000457bu, 0x0000457au, + 0x00050050u, 0x000001b1u, 0x0000457cu, 0x00004577u, 0x0000457bu, 0x0009004fu, 0x00000013u, 0x0000457du, + 0x0000457cu, 0x0000457cu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, + 0x00003287u, 0x00007bc9u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x00003288u, 0x00003287u, 0x00050051u, + 0x00000006u, 0x00004588u, 0x00003288u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004589u, 0x00002e26u, + 0x00004588u, 0x00050080u, 0x00000006u, 0x0000458au, 0x00002e24u, 0x00004589u, 0x00050051u, 0x00000006u, + 0x0000458cu, 0x00003288u, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000458du, 0x0000458cu, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x0000458fu, 0x0000458au, 0x0000458du, 0x000500c7u, 0x00000006u, 0x00004591u, + 0x0000458fu, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00004593u, 0x00004591u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00004596u, 0x00004588u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004597u, 0x00004596u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00004599u, 0x00004593u, 0x00004597u, 0x000500c6u, 0x00000006u, + 0x0000459bu, 0x00004599u, 0x00000461u, 0x00080041u, 0x00000697u, 0x0000459eu, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x0000459bu, 0x0004003du, 0x00000011u, 0x0000459fu, 0x0000459eu, 0x00040071u, + 0x00000006u, 0x000045a0u, 0x0000459fu, 0x000500c2u, 0x00000006u, 0x000045a2u, 0x000045a0u, 0x00000262u, + 0x00040071u, 0x00000011u, 0x000045a3u, 0x000045a2u, 0x0004007cu, 0x00000012u, 0x000045a4u, 0x000045a3u, + 0x000500c7u, 0x00000006u, 0x000045a6u, 0x000045a0u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000045a7u, + 0x000045a6u, 0x0004007cu, 0x00000012u, 0x000045a8u, 0x000045a7u, 0x00050050u, 0x000001b1u, 0x000045a9u, + 0x000045a4u, 0x000045a8u, 0x0009004fu, 0x00000013u, 0x000045aau, 0x000045a9u, 0x000045a9u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000328cu, 0x000200f8u, 0x0000328cu, 0x000700f5u, + 0x00000013u, 0x00007e2fu, 0x00007dd5u, 0x00003276u, 0x000045aau, 0x0000327du, 0x000700f5u, 0x00000013u, + 0x00007db1u, 0x00007d54u, 0x00003276u, 0x0000457du, 0x0000327du, 0x000300f7u, 0x00003296u, 0x00000000u, + 0x000400fau, 0x00002fecu, 0x0000328eu, 0x00003296u, 0x000200f8u, 0x0000328eu, 0x00050050u, 0x000000f2u, + 0x00003291u, 0x00007bd1u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x00003292u, 0x00003291u, 0x00050051u, + 0x00000006u, 0x000045b5u, 0x00003292u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000045b6u, 0x00002e26u, + 0x000045b5u, 0x00050080u, 0x00000006u, 0x000045b7u, 0x00002e24u, 0x000045b6u, 0x00050051u, 0x00000006u, + 0x000045b9u, 0x00003292u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000045bau, 0x000045b9u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x000045bcu, 0x000045b7u, 0x000045bau, 0x000500c7u, 0x00000006u, 0x000045beu, + 0x000045bcu, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x000045c0u, 0x000045beu, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x000045c3u, 0x000045b5u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000045c4u, 0x000045c3u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000045c6u, 0x000045c0u, 0x000045c4u, 0x000500c6u, 0x00000006u, + 0x000045c8u, 0x000045c6u, 0x00000461u, 0x00080041u, 0x00000697u, 0x000045cbu, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x000045c8u, 0x0004003du, 0x00000011u, 0x000045ccu, 0x000045cbu, 0x00040071u, + 0x00000006u, 0x000045cdu, 0x000045ccu, 0x000500c2u, 0x00000006u, 0x000045cfu, 0x000045cdu, 0x00000262u, + 0x00040071u, 0x00000011u, 0x000045d0u, 0x000045cfu, 0x0004007cu, 0x00000012u, 0x000045d1u, 0x000045d0u, + 0x000500c7u, 0x00000006u, 0x000045d3u, 0x000045cdu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000045d4u, + 0x000045d3u, 0x0004007cu, 0x00000012u, 0x000045d5u, 0x000045d4u, 0x00050050u, 0x000001b1u, 0x000045d6u, + 0x000045d1u, 0x000045d5u, 0x0009004fu, 0x00000013u, 0x000045d7u, 0x000045d6u, 0x000045d6u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003296u, 0x000200f8u, 0x00003296u, 0x000700f5u, + 0x00000013u, 0x00007eacu, 0x00007e50u, 0x0000328cu, 0x000045d7u, 0x0000328eu, 0x000200f9u, 0x000032d9u, + 0x000200f8u, 0x000032d9u, 0x000900f5u, 0x00000013u, 0x00007eabu, 0x00007eacu, 0x00003296u, 0x00007eaeu, + 0x000032b7u, 0x00007eb0u, 0x000032d8u, 0x000900f5u, 0x00000013u, 0x00007e2du, 0x00007e2fu, 0x00003296u, + 0x00007e31u, 0x000032b7u, 0x00007e33u, 0x000032d8u, 0x000900f5u, 0x00000013u, 0x00007dafu, 0x00007db1u, + 0x00003296u, 0x00007db3u, 0x000032b7u, 0x00007db5u, 0x000032d8u, 0x000900f5u, 0x00000013u, 0x00007cbcu, + 0x00004550u, 0x00003296u, 0x0000460bu, 0x000032b7u, 0x000046ccu, 0x000032d8u, 0x000200f9u, 0x000032dau, + 0x000200f8u, 0x000031e7u, 0x00040071u, 0x00000006u, 0x000031eau, 0x00002e2au, 0x0004007cu, 0x00000008u, + 0x000031ebu, 0x000031eau, 0x000300f7u, 0x00003270u, 0x00000000u, 0x000b00fbu, 0x000031ebu, 0x00003270u, + 0x00000000u, 0x000031ecu, 0x00000001u, 0x0000320du, 0x00000002u, 0x0000322eu, 0x00000003u, 0x0000324fu, + 0x000200f8u, 0x0000324fu, 0x0004007cu, 0x000000b4u, 0x00003251u, 0x00007bf0u, 0x00050051u, 0x00000006u, + 0x0000447au, 0x00003251u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000447bu, 0x00002e26u, 0x0000447au, + 0x00050080u, 0x00000006u, 0x0000447cu, 0x00002e24u, 0x0000447bu, 0x00050051u, 0x00000006u, 0x0000447eu, + 0x00003251u, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000447fu, 0x0000447eu, 0x0000038bu, 0x00050080u, + 0x00000006u, 0x00004481u, 0x0000447cu, 0x0000447fu, 0x000500c7u, 0x00000006u, 0x00004483u, 0x00004481u, + 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00004485u, 0x00004483u, 0x0000022fu, 0x000500c7u, 0x00000006u, + 0x00004488u, 0x0000447au, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004489u, 0x00004488u, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x0000448bu, 0x00004485u, 0x00004489u, 0x000500c6u, 0x00000006u, 0x0000448du, + 0x0000448bu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00004490u, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x0000448du, 0x0004003du, 0x00000011u, 0x00004491u, 0x00004490u, 0x00040071u, 0x00000006u, + 0x00004492u, 0x00004491u, 0x000500c2u, 0x00000006u, 0x00004494u, 0x00004492u, 0x00000262u, 0x00040071u, + 0x00000011u, 0x00004495u, 0x00004494u, 0x0004007cu, 0x00000012u, 0x00004496u, 0x00004495u, 0x000500c7u, + 0x00000006u, 0x00004498u, 0x00004492u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00004499u, 0x00004498u, + 0x0004007cu, 0x00000012u, 0x0000449au, 0x00004499u, 0x00050050u, 0x000001b1u, 0x0000449bu, 0x00004496u, + 0x0000449au, 0x0009004fu, 0x00000013u, 0x0000449cu, 0x0000449bu, 0x0000449bu, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x000300f7u, 0x00003265u, 0x00000000u, 0x000400fau, 0x00002327u, 0x00003256u, + 0x00003265u, 0x000200f8u, 0x00003256u, 0x00050050u, 0x000000f2u, 0x00003259u, 0x00007bd1u, 0x00002fe0u, + 0x0004007cu, 0x000000b4u, 0x0000325au, 0x00003259u, 0x00050051u, 0x00000006u, 0x000044a7u, 0x0000325au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000044a8u, 0x00002e26u, 0x000044a7u, 0x00050080u, 0x00000006u, + 0x000044a9u, 0x00002e24u, 0x000044a8u, 0x00050051u, 0x00000006u, 0x000044abu, 0x0000325au, 0x00000000u, + 0x00050084u, 0x00000006u, 0x000044acu, 0x000044abu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000044aeu, + 0x000044a9u, 0x000044acu, 0x000500c7u, 0x00000006u, 0x000044b0u, 0x000044aeu, 0x00000e83u, 0x000500c2u, + 0x00000006u, 0x000044b2u, 0x000044b0u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000044b5u, 0x000044a7u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x000044b6u, 0x000044b5u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x000044b8u, 0x000044b2u, 0x000044b6u, 0x000500c6u, 0x00000006u, 0x000044bau, 0x000044b8u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x000044bdu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000044bau, + 0x0004003du, 0x00000011u, 0x000044beu, 0x000044bdu, 0x00040071u, 0x00000006u, 0x000044bfu, 0x000044beu, + 0x000500c2u, 0x00000006u, 0x000044c1u, 0x000044bfu, 0x00000262u, 0x00040071u, 0x00000011u, 0x000044c2u, + 0x000044c1u, 0x0004007cu, 0x00000012u, 0x000044c3u, 0x000044c2u, 0x000500c7u, 0x00000006u, 0x000044c5u, + 0x000044bfu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000044c6u, 0x000044c5u, 0x0004007cu, 0x00000012u, + 0x000044c7u, 0x000044c6u, 0x00050050u, 0x000001b1u, 0x000044c8u, 0x000044c3u, 0x000044c7u, 0x0009004fu, + 0x00000013u, 0x000044c9u, 0x000044c8u, 0x000044c8u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x00050050u, 0x000000f2u, 0x00003260u, 0x00007bc9u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x00003261u, + 0x00003260u, 0x00050051u, 0x00000006u, 0x000044d4u, 0x00003261u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000044d5u, 0x00002e26u, 0x000044d4u, 0x00050080u, 0x00000006u, 0x000044d6u, 0x00002e24u, 0x000044d5u, + 0x00050051u, 0x00000006u, 0x000044d8u, 0x00003261u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000044d9u, + 0x000044d8u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000044dbu, 0x000044d6u, 0x000044d9u, 0x000500c7u, + 0x00000006u, 0x000044ddu, 0x000044dbu, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x000044dfu, 0x000044ddu, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000044e2u, 0x000044d4u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x000044e3u, 0x000044e2u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000044e5u, 0x000044dfu, 0x000044e3u, + 0x000500c6u, 0x00000006u, 0x000044e7u, 0x000044e5u, 0x00000461u, 0x00080041u, 0x00000697u, 0x000044eau, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000044e7u, 0x0004003du, 0x00000011u, 0x000044ebu, + 0x000044eau, 0x00040071u, 0x00000006u, 0x000044ecu, 0x000044ebu, 0x000500c2u, 0x00000006u, 0x000044eeu, + 0x000044ecu, 0x00000262u, 0x00040071u, 0x00000011u, 0x000044efu, 0x000044eeu, 0x0004007cu, 0x00000012u, + 0x000044f0u, 0x000044efu, 0x000500c7u, 0x00000006u, 0x000044f2u, 0x000044ecu, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x000044f3u, 0x000044f2u, 0x0004007cu, 0x00000012u, 0x000044f4u, 0x000044f3u, 0x00050050u, + 0x000001b1u, 0x000044f5u, 0x000044f0u, 0x000044f4u, 0x0009004fu, 0x00000013u, 0x000044f6u, 0x000044f5u, + 0x000044f5u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003265u, 0x000200f8u, + 0x00003265u, 0x000700f5u, 0x00000013u, 0x00007e2cu, 0x00007dd5u, 0x0000324fu, 0x000044f6u, 0x00003256u, + 0x000700f5u, 0x00000013u, 0x00007daeu, 0x00007d54u, 0x0000324fu, 0x000044c9u, 0x00003256u, 0x000300f7u, + 0x0000326fu, 0x00000000u, 0x000400fau, 0x00002fecu, 0x00003267u, 0x0000326fu, 0x000200f8u, 0x00003267u, + 0x00050050u, 0x000000f2u, 0x0000326au, 0x00007bd1u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x0000326bu, + 0x0000326au, 0x00050051u, 0x00000006u, 0x00004501u, 0x0000326bu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004502u, 0x00002e26u, 0x00004501u, 0x00050080u, 0x00000006u, 0x00004503u, 0x00002e24u, 0x00004502u, + 0x00050051u, 0x00000006u, 0x00004505u, 0x0000326bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004506u, + 0x00004505u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00004508u, 0x00004503u, 0x00004506u, 0x000500c7u, + 0x00000006u, 0x0000450au, 0x00004508u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x0000450cu, 0x0000450au, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x0000450fu, 0x00004501u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00004510u, 0x0000450fu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00004512u, 0x0000450cu, 0x00004510u, + 0x000500c6u, 0x00000006u, 0x00004514u, 0x00004512u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00004517u, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00004514u, 0x0004003du, 0x00000011u, 0x00004518u, + 0x00004517u, 0x00040071u, 0x00000006u, 0x00004519u, 0x00004518u, 0x000500c2u, 0x00000006u, 0x0000451bu, + 0x00004519u, 0x00000262u, 0x00040071u, 0x00000011u, 0x0000451cu, 0x0000451bu, 0x0004007cu, 0x00000012u, + 0x0000451du, 0x0000451cu, 0x000500c7u, 0x00000006u, 0x0000451fu, 0x00004519u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00004520u, 0x0000451fu, 0x0004007cu, 0x00000012u, 0x00004521u, 0x00004520u, 0x00050050u, + 0x000001b1u, 0x00004522u, 0x0000451du, 0x00004521u, 0x0009004fu, 0x00000013u, 0x00004523u, 0x00004522u, + 0x00004522u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000326fu, 0x000200f8u, + 0x0000326fu, 0x000700f5u, 0x00000013u, 0x00007ea9u, 0x00007e50u, 0x00003265u, 0x00004523u, 0x00003267u, + 0x000200f9u, 0x00003270u, 0x000200f8u, 0x0000322eu, 0x0004007cu, 0x000000b4u, 0x00003230u, 0x00007bf0u, + 0x00050051u, 0x00000006u, 0x0000438fu, 0x00003230u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004390u, + 0x00002e26u, 0x0000438fu, 0x00050080u, 0x00000006u, 0x00004391u, 0x00002e24u, 0x00004390u, 0x00050051u, + 0x00000006u, 0x00004393u, 0x00003230u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004394u, 0x00004393u, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x00004396u, 0x00004391u, 0x00004394u, 0x000500c7u, 0x00000006u, + 0x00004398u, 0x00004396u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x0000439au, 0x00004398u, 0x0000022fu, + 0x000500c7u, 0x00000006u, 0x0000439du, 0x0000438fu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000439eu, + 0x0000439du, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000043a0u, 0x0000439au, 0x0000439eu, 0x000500c6u, + 0x00000006u, 0x000043a2u, 0x000043a0u, 0x00000461u, 0x00080041u, 0x00000697u, 0x000043a5u, 0x00000f6au, + 0x00000225u, 0x00002310u, 0x00000225u, 0x000043a2u, 0x0004003du, 0x00000011u, 0x000043a6u, 0x000043a5u, + 0x00040071u, 0x00000006u, 0x000043a7u, 0x000043a6u, 0x000500c2u, 0x00000006u, 0x000043afu, 0x000043a7u, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x000043b1u, 0x000043a7u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x000043b3u, 0x000043afu, 0x0004007cu, 0x00000012u, 0x000043b4u, 0x000043b3u, 0x00040071u, 0x00000011u, + 0x000043bcu, 0x000043b1u, 0x0004007cu, 0x00000012u, 0x000043bdu, 0x000043bcu, 0x00070050u, 0x00000013u, + 0x000043beu, 0x000043b4u, 0x000043b4u, 0x000043b4u, 0x000043bdu, 0x000300f7u, 0x00003244u, 0x00000000u, + 0x000400fau, 0x00002327u, 0x00003235u, 0x00003244u, 0x000200f8u, 0x00003235u, 0x00050050u, 0x000000f2u, + 0x00003238u, 0x00007bd1u, 0x00002fe0u, 0x0004007cu, 0x000000b4u, 0x00003239u, 0x00003238u, 0x00050051u, + 0x00000006u, 0x000043cau, 0x00003239u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000043cbu, 0x00002e26u, + 0x000043cau, 0x00050080u, 0x00000006u, 0x000043ccu, 0x00002e24u, 0x000043cbu, 0x00050051u, 0x00000006u, + 0x000043ceu, 0x00003239u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000043cfu, 0x000043ceu, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x000043d1u, 0x000043ccu, 0x000043cfu, 0x000500c7u, 0x00000006u, 0x000043d3u, + 0x000043d1u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x000043d5u, 0x000043d3u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x000043d8u, 0x000043cau, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000043d9u, 0x000043d8u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000043dbu, 0x000043d5u, 0x000043d9u, 0x000500c6u, 0x00000006u, + 0x000043ddu, 0x000043dbu, 0x00000461u, 0x00080041u, 0x00000697u, 0x000043e0u, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x000043ddu, 0x0004003du, 0x00000011u, 0x000043e1u, 0x000043e0u, 0x00040071u, + 0x00000006u, 0x000043e2u, 0x000043e1u, 0x000500c2u, 0x00000006u, 0x000043eau, 0x000043e2u, 0x00000262u, + 0x000500c7u, 0x00000006u, 0x000043ecu, 0x000043e2u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000043eeu, + 0x000043eau, 0x0004007cu, 0x00000012u, 0x000043efu, 0x000043eeu, 0x00040071u, 0x00000011u, 0x000043f7u, + 0x000043ecu, 0x0004007cu, 0x00000012u, 0x000043f8u, 0x000043f7u, 0x00070050u, 0x00000013u, 0x000043f9u, + 0x000043efu, 0x000043efu, 0x000043efu, 0x000043f8u, 0x00050050u, 0x000000f2u, 0x0000323fu, 0x00007bc9u, + 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x00003240u, 0x0000323fu, 0x00050051u, 0x00000006u, 0x00004405u, + 0x00003240u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004406u, 0x00002e26u, 0x00004405u, 0x00050080u, + 0x00000006u, 0x00004407u, 0x00002e24u, 0x00004406u, 0x00050051u, 0x00000006u, 0x00004409u, 0x00003240u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x0000440au, 0x00004409u, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x0000440cu, 0x00004407u, 0x0000440au, 0x000500c7u, 0x00000006u, 0x0000440eu, 0x0000440cu, 0x00000e83u, + 0x000500c2u, 0x00000006u, 0x00004410u, 0x0000440eu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00004413u, + 0x00004405u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004414u, 0x00004413u, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00004416u, 0x00004410u, 0x00004414u, 0x000500c6u, 0x00000006u, 0x00004418u, 0x00004416u, + 0x00000461u, 0x00080041u, 0x00000697u, 0x0000441bu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00004418u, 0x0004003du, 0x00000011u, 0x0000441cu, 0x0000441bu, 0x00040071u, 0x00000006u, 0x0000441du, + 0x0000441cu, 0x000500c2u, 0x00000006u, 0x00004425u, 0x0000441du, 0x00000262u, 0x000500c7u, 0x00000006u, + 0x00004427u, 0x0000441du, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00004429u, 0x00004425u, 0x0004007cu, + 0x00000012u, 0x0000442au, 0x00004429u, 0x00040071u, 0x00000011u, 0x00004432u, 0x00004427u, 0x0004007cu, + 0x00000012u, 0x00004433u, 0x00004432u, 0x00070050u, 0x00000013u, 0x00004434u, 0x0000442au, 0x0000442au, + 0x0000442au, 0x00004433u, 0x000200f9u, 0x00003244u, 0x000200f8u, 0x00003244u, 0x000700f5u, 0x00000013u, + 0x00007e2au, 0x00007dd5u, 0x0000322eu, 0x00004434u, 0x00003235u, 0x000700f5u, 0x00000013u, 0x00007dacu, + 0x00007d54u, 0x0000322eu, 0x000043f9u, 0x00003235u, 0x000300f7u, 0x0000324eu, 0x00000000u, 0x000400fau, + 0x00002fecu, 0x00003246u, 0x0000324eu, 0x000200f8u, 0x00003246u, 0x00050050u, 0x000000f2u, 0x00003249u, + 0x00007bd1u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x0000324au, 0x00003249u, 0x00050051u, 0x00000006u, + 0x00004440u, 0x0000324au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004441u, 0x00002e26u, 0x00004440u, + 0x00050080u, 0x00000006u, 0x00004442u, 0x00002e24u, 0x00004441u, 0x00050051u, 0x00000006u, 0x00004444u, + 0x0000324au, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004445u, 0x00004444u, 0x0000038bu, 0x00050080u, + 0x00000006u, 0x00004447u, 0x00004442u, 0x00004445u, 0x000500c7u, 0x00000006u, 0x00004449u, 0x00004447u, + 0x00000e83u, 0x000500c2u, 0x00000006u, 0x0000444bu, 0x00004449u, 0x0000022fu, 0x000500c7u, 0x00000006u, + 0x0000444eu, 0x00004440u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000444fu, 0x0000444eu, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x00004451u, 0x0000444bu, 0x0000444fu, 0x000500c6u, 0x00000006u, 0x00004453u, + 0x00004451u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00004456u, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00004453u, 0x0004003du, 0x00000011u, 0x00004457u, 0x00004456u, 0x00040071u, 0x00000006u, + 0x00004458u, 0x00004457u, 0x000500c2u, 0x00000006u, 0x00004460u, 0x00004458u, 0x00000262u, 0x000500c7u, + 0x00000006u, 0x00004462u, 0x00004458u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00004464u, 0x00004460u, + 0x0004007cu, 0x00000012u, 0x00004465u, 0x00004464u, 0x00040071u, 0x00000011u, 0x0000446du, 0x00004462u, + 0x0004007cu, 0x00000012u, 0x0000446eu, 0x0000446du, 0x00070050u, 0x00000013u, 0x0000446fu, 0x00004465u, + 0x00004465u, 0x00004465u, 0x0000446eu, 0x000200f9u, 0x0000324eu, 0x000200f8u, 0x0000324eu, 0x000700f5u, + 0x00000013u, 0x00007ea7u, 0x00007e50u, 0x00003244u, 0x0000446fu, 0x00003246u, 0x000200f9u, 0x00003270u, + 0x000200f8u, 0x0000320du, 0x0004007cu, 0x000000b4u, 0x0000320fu, 0x00007bf0u, 0x00050051u, 0x00000006u, + 0x000042a0u, 0x0000320fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000042a1u, 0x00002e26u, 0x000042a0u, + 0x00050080u, 0x00000006u, 0x000042a2u, 0x00002e24u, 0x000042a1u, 0x00050051u, 0x00000006u, 0x000042a4u, + 0x0000320fu, 0x00000000u, 0x00050080u, 0x00000006u, 0x000042a6u, 0x000042a2u, 0x000042a4u, 0x000500c7u, + 0x00000006u, 0x000042a8u, 0x000042a6u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x000042acu, 0x000042a0u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x000042adu, 0x000042acu, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x000042afu, 0x000042a8u, 0x000042adu, 0x000500c6u, 0x00000006u, 0x000042b1u, 0x000042afu, 0x00000469u, + 0x00080041u, 0x00000676u, 0x000042b4u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000042b1u, + 0x0004003du, 0x0000000fu, 0x000042b5u, 0x000042b4u, 0x00040071u, 0x00000006u, 0x000042b6u, 0x000042b5u, + 0x000500c2u, 0x00000006u, 0x000042b8u, 0x000042b6u, 0x00000238u, 0x000500c7u, 0x00000006u, 0x000042bau, + 0x000042b6u, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x000042bcu, 0x000042bau, 0x00000238u, 0x000500c5u, + 0x00000006u, 0x000042beu, 0x000042bau, 0x000042bcu, 0x000500c4u, 0x00000006u, 0x000042c0u, 0x000042b8u, + 0x00000238u, 0x000500c5u, 0x00000006u, 0x000042c2u, 0x000042b8u, 0x000042c0u, 0x00040071u, 0x00000011u, + 0x000042c4u, 0x000042c2u, 0x0004007cu, 0x00000012u, 0x000042c5u, 0x000042c4u, 0x00040071u, 0x00000011u, + 0x000042cdu, 0x000042beu, 0x0004007cu, 0x00000012u, 0x000042ceu, 0x000042cdu, 0x00070050u, 0x00000013u, + 0x000042cfu, 0x000042c5u, 0x000042c5u, 0x000042c5u, 0x000042ceu, 0x000300f7u, 0x00003223u, 0x00000000u, + 0x000400fau, 0x00002327u, 0x00003214u, 0x00003223u, 0x000200f8u, 0x00003214u, 0x00050050u, 0x000000f2u, + 0x00003217u, 0x00007bd1u, 0x00002fe0u, 0x0004007cu, 0x000000b4u, 0x00003218u, 0x00003217u, 0x00050051u, + 0x00000006u, 0x000042dcu, 0x00003218u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000042ddu, 0x00002e26u, + 0x000042dcu, 0x00050080u, 0x00000006u, 0x000042deu, 0x00002e24u, 0x000042ddu, 0x00050051u, 0x00000006u, + 0x000042e0u, 0x00003218u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000042e2u, 0x000042deu, 0x000042e0u, + 0x000500c7u, 0x00000006u, 0x000042e4u, 0x000042e2u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x000042e8u, + 0x000042dcu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000042e9u, 0x000042e8u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x000042ebu, 0x000042e4u, 0x000042e9u, 0x000500c6u, 0x00000006u, 0x000042edu, 0x000042ebu, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000042f0u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x000042edu, 0x0004003du, 0x0000000fu, 0x000042f1u, 0x000042f0u, 0x00040071u, 0x00000006u, 0x000042f2u, + 0x000042f1u, 0x000500c2u, 0x00000006u, 0x000042f4u, 0x000042f2u, 0x00000238u, 0x000500c7u, 0x00000006u, + 0x000042f6u, 0x000042f2u, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x000042f8u, 0x000042f6u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x000042fau, 0x000042f6u, 0x000042f8u, 0x000500c4u, 0x00000006u, 0x000042fcu, + 0x000042f4u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x000042feu, 0x000042f4u, 0x000042fcu, 0x00040071u, + 0x00000011u, 0x00004300u, 0x000042feu, 0x0004007cu, 0x00000012u, 0x00004301u, 0x00004300u, 0x00040071u, + 0x00000011u, 0x00004309u, 0x000042fau, 0x0004007cu, 0x00000012u, 0x0000430au, 0x00004309u, 0x00070050u, + 0x00000013u, 0x0000430bu, 0x00004301u, 0x00004301u, 0x00004301u, 0x0000430au, 0x00050050u, 0x000000f2u, + 0x0000321eu, 0x00007bc9u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x0000321fu, 0x0000321eu, 0x00050051u, + 0x00000006u, 0x00004318u, 0x0000321fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004319u, 0x00002e26u, + 0x00004318u, 0x00050080u, 0x00000006u, 0x0000431au, 0x00002e24u, 0x00004319u, 0x00050051u, 0x00000006u, + 0x0000431cu, 0x0000321fu, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000431eu, 0x0000431au, 0x0000431cu, + 0x000500c7u, 0x00000006u, 0x00004320u, 0x0000431eu, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00004324u, + 0x00004318u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004325u, 0x00004324u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00004327u, 0x00004320u, 0x00004325u, 0x000500c6u, 0x00000006u, 0x00004329u, 0x00004327u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x0000432cu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00004329u, 0x0004003du, 0x0000000fu, 0x0000432du, 0x0000432cu, 0x00040071u, 0x00000006u, 0x0000432eu, + 0x0000432du, 0x000500c2u, 0x00000006u, 0x00004330u, 0x0000432eu, 0x00000238u, 0x000500c7u, 0x00000006u, + 0x00004332u, 0x0000432eu, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00004334u, 0x00004332u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x00004336u, 0x00004332u, 0x00004334u, 0x000500c4u, 0x00000006u, 0x00004338u, + 0x00004330u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x0000433au, 0x00004330u, 0x00004338u, 0x00040071u, + 0x00000011u, 0x0000433cu, 0x0000433au, 0x0004007cu, 0x00000012u, 0x0000433du, 0x0000433cu, 0x00040071u, + 0x00000011u, 0x00004345u, 0x00004336u, 0x0004007cu, 0x00000012u, 0x00004346u, 0x00004345u, 0x00070050u, + 0x00000013u, 0x00004347u, 0x0000433du, 0x0000433du, 0x0000433du, 0x00004346u, 0x000200f9u, 0x00003223u, + 0x000200f8u, 0x00003223u, 0x000700f5u, 0x00000013u, 0x00007e28u, 0x00007dd5u, 0x0000320du, 0x00004347u, + 0x00003214u, 0x000700f5u, 0x00000013u, 0x00007daau, 0x00007d54u, 0x0000320du, 0x0000430bu, 0x00003214u, + 0x000300f7u, 0x0000322du, 0x00000000u, 0x000400fau, 0x00002fecu, 0x00003225u, 0x0000322du, 0x000200f8u, + 0x00003225u, 0x00050050u, 0x000000f2u, 0x00003228u, 0x00007bd1u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, + 0x00003229u, 0x00003228u, 0x00050051u, 0x00000006u, 0x00004354u, 0x00003229u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004355u, 0x00002e26u, 0x00004354u, 0x00050080u, 0x00000006u, 0x00004356u, 0x00002e24u, + 0x00004355u, 0x00050051u, 0x00000006u, 0x00004358u, 0x00003229u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x0000435au, 0x00004356u, 0x00004358u, 0x000500c7u, 0x00000006u, 0x0000435cu, 0x0000435au, 0x00000e83u, + 0x000500c7u, 0x00000006u, 0x00004360u, 0x00004354u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004361u, + 0x00004360u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00004363u, 0x0000435cu, 0x00004361u, 0x000500c6u, + 0x00000006u, 0x00004365u, 0x00004363u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00004368u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00004365u, 0x0004003du, 0x0000000fu, 0x00004369u, 0x00004368u, + 0x00040071u, 0x00000006u, 0x0000436au, 0x00004369u, 0x000500c2u, 0x00000006u, 0x0000436cu, 0x0000436au, + 0x00000238u, 0x000500c7u, 0x00000006u, 0x0000436eu, 0x0000436au, 0x00000ea6u, 0x000500c4u, 0x00000006u, + 0x00004370u, 0x0000436eu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00004372u, 0x0000436eu, 0x00004370u, + 0x000500c4u, 0x00000006u, 0x00004374u, 0x0000436cu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00004376u, + 0x0000436cu, 0x00004374u, 0x00040071u, 0x00000011u, 0x00004378u, 0x00004376u, 0x0004007cu, 0x00000012u, + 0x00004379u, 0x00004378u, 0x00040071u, 0x00000011u, 0x00004381u, 0x00004372u, 0x0004007cu, 0x00000012u, + 0x00004382u, 0x00004381u, 0x00070050u, 0x00000013u, 0x00004383u, 0x00004379u, 0x00004379u, 0x00004379u, + 0x00004382u, 0x000200f9u, 0x0000322du, 0x000200f8u, 0x0000322du, 0x000700f5u, 0x00000013u, 0x00007ea5u, + 0x00007e50u, 0x00003223u, 0x00004383u, 0x00003225u, 0x000200f9u, 0x00003270u, 0x000200f8u, 0x000031ecu, + 0x0004007cu, 0x000000b4u, 0x000031eeu, 0x00007bf0u, 0x00050051u, 0x00000006u, 0x00004188u, 0x000031eeu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004189u, 0x00002e26u, 0x00004188u, 0x00050080u, 0x00000006u, + 0x0000418au, 0x00002e24u, 0x00004189u, 0x00050051u, 0x00000006u, 0x0000418cu, 0x000031eeu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000418du, 0x0000418cu, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000418fu, + 0x0000418au, 0x0000418du, 0x000500c7u, 0x00000006u, 0x00004191u, 0x0000418fu, 0x00000e83u, 0x000400c8u, + 0x00000006u, 0x00004194u, 0x0000418cu, 0x000500c7u, 0x00000006u, 0x00004195u, 0x00004194u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00004196u, 0x00004195u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x0000419au, + 0x00004188u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000419bu, 0x0000419au, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x0000419du, 0x00004191u, 0x0000419bu, 0x000500c6u, 0x00000006u, 0x0000419fu, 0x0000419du, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000041a2u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x0000419fu, 0x0004003du, 0x0000000fu, 0x000041a3u, 0x000041a2u, 0x00040071u, 0x00000006u, 0x000041a4u, + 0x000041a3u, 0x000500c2u, 0x00000006u, 0x000041a7u, 0x000041a4u, 0x00004196u, 0x000500c7u, 0x00000006u, + 0x000041a8u, 0x000041a7u, 0x00000ea6u, 0x000500c7u, 0x00000006u, 0x000041aau, 0x000041a8u, 0x00000edeu, + 0x000500c4u, 0x00000006u, 0x000041acu, 0x000041aau, 0x00000238u, 0x000500c4u, 0x00000006u, 0x000041aeu, + 0x000041aau, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x000041afu, 0x000041acu, 0x000041aeu, 0x000500c2u, + 0x00000006u, 0x000041b1u, 0x000041aau, 0x00000232u, 0x000500c5u, 0x00000006u, 0x000041b2u, 0x000041afu, + 0x000041b1u, 0x00040071u, 0x00000011u, 0x000041b4u, 0x000041b2u, 0x0004007cu, 0x00000012u, 0x000041b5u, + 0x000041b4u, 0x000500c7u, 0x00000006u, 0x000041bdu, 0x000041a8u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x000041beu, 0x000041bdu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000041bfu, 0x000041beu, 0x0004007cu, + 0x00000012u, 0x000041c0u, 0x000041bfu, 0x00070050u, 0x00000013u, 0x000041c1u, 0x000041b5u, 0x000041b5u, + 0x000041b5u, 0x000041c0u, 0x000300f7u, 0x00003202u, 0x00000000u, 0x000400fau, 0x00002327u, 0x000031f3u, + 0x00003202u, 0x000200f8u, 0x000031f3u, 0x00050050u, 0x000000f2u, 0x000031f6u, 0x00007bd1u, 0x00002fe0u, + 0x0004007cu, 0x000000b4u, 0x000031f7u, 0x000031f6u, 0x00050051u, 0x00000006u, 0x000041ceu, 0x000031f7u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000041cfu, 0x00002e26u, 0x000041ceu, 0x00050080u, 0x00000006u, + 0x000041d0u, 0x00002e24u, 0x000041cfu, 0x00050051u, 0x00000006u, 0x000041d2u, 0x000031f7u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000041d3u, 0x000041d2u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000041d5u, + 0x000041d0u, 0x000041d3u, 0x000500c7u, 0x00000006u, 0x000041d7u, 0x000041d5u, 0x00000e83u, 0x000400c8u, + 0x00000006u, 0x000041dau, 0x000041d2u, 0x000500c7u, 0x00000006u, 0x000041dbu, 0x000041dau, 0x00000461u, + 0x00050084u, 0x00000006u, 0x000041dcu, 0x000041dbu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000041e0u, + 0x000041ceu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000041e1u, 0x000041e0u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x000041e3u, 0x000041d7u, 0x000041e1u, 0x000500c6u, 0x00000006u, 0x000041e5u, 0x000041e3u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000041e8u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x000041e5u, 0x0004003du, 0x0000000fu, 0x000041e9u, 0x000041e8u, 0x00040071u, 0x00000006u, 0x000041eau, + 0x000041e9u, 0x000500c2u, 0x00000006u, 0x000041edu, 0x000041eau, 0x000041dcu, 0x000500c7u, 0x00000006u, + 0x000041eeu, 0x000041edu, 0x00000ea6u, 0x000500c7u, 0x00000006u, 0x000041f0u, 0x000041eeu, 0x00000edeu, + 0x000500c4u, 0x00000006u, 0x000041f2u, 0x000041f0u, 0x00000238u, 0x000500c4u, 0x00000006u, 0x000041f4u, + 0x000041f0u, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x000041f5u, 0x000041f2u, 0x000041f4u, 0x000500c2u, + 0x00000006u, 0x000041f7u, 0x000041f0u, 0x00000232u, 0x000500c5u, 0x00000006u, 0x000041f8u, 0x000041f5u, + 0x000041f7u, 0x00040071u, 0x00000011u, 0x000041fau, 0x000041f8u, 0x0004007cu, 0x00000012u, 0x000041fbu, + 0x000041fau, 0x000500c7u, 0x00000006u, 0x00004203u, 0x000041eeu, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00004204u, 0x00004203u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00004205u, 0x00004204u, 0x0004007cu, + 0x00000012u, 0x00004206u, 0x00004205u, 0x00070050u, 0x00000013u, 0x00004207u, 0x000041fbu, 0x000041fbu, + 0x000041fbu, 0x00004206u, 0x00050050u, 0x000000f2u, 0x000031fdu, 0x00007bc9u, 0x00002fe2u, 0x0004007cu, + 0x000000b4u, 0x000031feu, 0x000031fdu, 0x00050051u, 0x00000006u, 0x00004214u, 0x000031feu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00004215u, 0x00002e26u, 0x00004214u, 0x00050080u, 0x00000006u, 0x00004216u, + 0x00002e24u, 0x00004215u, 0x00050051u, 0x00000006u, 0x00004218u, 0x000031feu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00004219u, 0x00004218u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000421bu, 0x00004216u, + 0x00004219u, 0x000500c7u, 0x00000006u, 0x0000421du, 0x0000421bu, 0x00000e83u, 0x000400c8u, 0x00000006u, + 0x00004220u, 0x00004218u, 0x000500c7u, 0x00000006u, 0x00004221u, 0x00004220u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00004222u, 0x00004221u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00004226u, 0x00004214u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004227u, 0x00004226u, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x00004229u, 0x0000421du, 0x00004227u, 0x000500c6u, 0x00000006u, 0x0000422bu, 0x00004229u, 0x00000469u, + 0x00080041u, 0x00000676u, 0x0000422eu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000422bu, + 0x0004003du, 0x0000000fu, 0x0000422fu, 0x0000422eu, 0x00040071u, 0x00000006u, 0x00004230u, 0x0000422fu, + 0x000500c2u, 0x00000006u, 0x00004233u, 0x00004230u, 0x00004222u, 0x000500c7u, 0x00000006u, 0x00004234u, + 0x00004233u, 0x00000ea6u, 0x000500c7u, 0x00000006u, 0x00004236u, 0x00004234u, 0x00000edeu, 0x000500c4u, + 0x00000006u, 0x00004238u, 0x00004236u, 0x00000238u, 0x000500c4u, 0x00000006u, 0x0000423au, 0x00004236u, + 0x0000022fu, 0x000500c5u, 0x00000006u, 0x0000423bu, 0x00004238u, 0x0000423au, 0x000500c2u, 0x00000006u, + 0x0000423du, 0x00004236u, 0x00000232u, 0x000500c5u, 0x00000006u, 0x0000423eu, 0x0000423bu, 0x0000423du, + 0x00040071u, 0x00000011u, 0x00004240u, 0x0000423eu, 0x0004007cu, 0x00000012u, 0x00004241u, 0x00004240u, + 0x000500c7u, 0x00000006u, 0x00004249u, 0x00004234u, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000424au, + 0x00004249u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000424bu, 0x0000424au, 0x0004007cu, 0x00000012u, + 0x0000424cu, 0x0000424bu, 0x00070050u, 0x00000013u, 0x0000424du, 0x00004241u, 0x00004241u, 0x00004241u, + 0x0000424cu, 0x000200f9u, 0x00003202u, 0x000200f8u, 0x00003202u, 0x000700f5u, 0x00000013u, 0x00007e26u, + 0x00007dd5u, 0x000031ecu, 0x0000424du, 0x000031f3u, 0x000700f5u, 0x00000013u, 0x00007da8u, 0x00007d54u, + 0x000031ecu, 0x00004207u, 0x000031f3u, 0x000300f7u, 0x0000320cu, 0x00000000u, 0x000400fau, 0x00002fecu, + 0x00003204u, 0x0000320cu, 0x000200f8u, 0x00003204u, 0x00050050u, 0x000000f2u, 0x00003207u, 0x00007bd1u, + 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x00003208u, 0x00003207u, 0x00050051u, 0x00000006u, 0x0000425au, + 0x00003208u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000425bu, 0x00002e26u, 0x0000425au, 0x00050080u, + 0x00000006u, 0x0000425cu, 0x00002e24u, 0x0000425bu, 0x00050051u, 0x00000006u, 0x0000425eu, 0x00003208u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000425fu, 0x0000425eu, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00004261u, 0x0000425cu, 0x0000425fu, 0x000500c7u, 0x00000006u, 0x00004263u, 0x00004261u, 0x00000e83u, + 0x000400c8u, 0x00000006u, 0x00004266u, 0x0000425eu, 0x000500c7u, 0x00000006u, 0x00004267u, 0x00004266u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00004268u, 0x00004267u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x0000426cu, 0x0000425au, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000426du, 0x0000426cu, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x0000426fu, 0x00004263u, 0x0000426du, 0x000500c6u, 0x00000006u, 0x00004271u, + 0x0000426fu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00004274u, 0x00000e9du, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00004271u, 0x0004003du, 0x0000000fu, 0x00004275u, 0x00004274u, 0x00040071u, 0x00000006u, + 0x00004276u, 0x00004275u, 0x000500c2u, 0x00000006u, 0x00004279u, 0x00004276u, 0x00004268u, 0x000500c7u, + 0x00000006u, 0x0000427au, 0x00004279u, 0x00000ea6u, 0x000500c7u, 0x00000006u, 0x0000427cu, 0x0000427au, + 0x00000edeu, 0x000500c4u, 0x00000006u, 0x0000427eu, 0x0000427cu, 0x00000238u, 0x000500c4u, 0x00000006u, + 0x00004280u, 0x0000427cu, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x00004281u, 0x0000427eu, 0x00004280u, + 0x000500c2u, 0x00000006u, 0x00004283u, 0x0000427cu, 0x00000232u, 0x000500c5u, 0x00000006u, 0x00004284u, + 0x00004281u, 0x00004283u, 0x00040071u, 0x00000011u, 0x00004286u, 0x00004284u, 0x0004007cu, 0x00000012u, + 0x00004287u, 0x00004286u, 0x000500c7u, 0x00000006u, 0x0000428fu, 0x0000427au, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00004290u, 0x0000428fu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00004291u, 0x00004290u, + 0x0004007cu, 0x00000012u, 0x00004292u, 0x00004291u, 0x00070050u, 0x00000013u, 0x00004293u, 0x00004287u, + 0x00004287u, 0x00004287u, 0x00004292u, 0x000200f9u, 0x0000320cu, 0x000200f8u, 0x0000320cu, 0x000700f5u, + 0x00000013u, 0x00007ea3u, 0x00007e50u, 0x00003202u, 0x00004293u, 0x00003204u, 0x000200f9u, 0x00003270u, + 0x000200f8u, 0x00003270u, 0x000d00f5u, 0x00000013u, 0x00007ea2u, 0x00007e50u, 0x000031e7u, 0x00007ea3u, + 0x0000320cu, 0x00007ea5u, 0x0000322du, 0x00007ea7u, 0x0000324eu, 0x00007ea9u, 0x0000326fu, 0x000d00f5u, + 0x00000013u, 0x00007e24u, 0x00007dd5u, 0x000031e7u, 0x00007e26u, 0x0000320cu, 0x00007e28u, 0x0000322du, + 0x00007e2au, 0x0000324eu, 0x00007e2cu, 0x0000326fu, 0x000d00f5u, 0x00000013u, 0x00007da6u, 0x00007d54u, + 0x000031e7u, 0x00007da8u, 0x0000320cu, 0x00007daau, 0x0000322du, 0x00007dacu, 0x0000324eu, 0x00007daeu, + 0x0000326fu, 0x000d00f5u, 0x00000013u, 0x00007cb3u, 0x00007c61u, 0x000031e7u, 0x000041c1u, 0x0000320cu, + 0x000042cfu, 0x0000322du, 0x000043beu, 0x0000324eu, 0x0000449cu, 0x0000326fu, 0x000200f9u, 0x000032dau, + 0x000200f8u, 0x00003172u, 0x00040071u, 0x00000006u, 0x00003175u, 0x00002e2au, 0x0004007cu, 0x00000008u, + 0x00003176u, 0x00003175u, 0x000300f7u, 0x000031e6u, 0x00000000u, 0x000700fbu, 0x00003176u, 0x00003177u, + 0x00000000u, 0x00003198u, 0x00000001u, 0x000031c5u, 0x000200f8u, 0x000031c5u, 0x0004007cu, 0x000000b4u, + 0x000031c7u, 0x00007bf0u, 0x00050051u, 0x00000006u, 0x000040f2u, 0x000031c7u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000040f3u, 0x00002e26u, 0x000040f2u, 0x00050080u, 0x00000006u, 0x000040f4u, 0x00002e24u, + 0x000040f3u, 0x00050051u, 0x00000006u, 0x000040f6u, 0x000031c7u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x000040f8u, 0x000040f4u, 0x000040f6u, 0x000500c7u, 0x00000006u, 0x000040fau, 0x000040f8u, 0x00000e83u, + 0x000500c7u, 0x00000006u, 0x000040feu, 0x000040f2u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000040ffu, + 0x000040feu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00004101u, 0x000040fau, 0x000040ffu, 0x000500c6u, + 0x00000006u, 0x00004103u, 0x00004101u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00004106u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00004103u, 0x0004003du, 0x0000000fu, 0x00004107u, 0x00004106u, + 0x00040071u, 0x00000006u, 0x00004108u, 0x00004107u, 0x00040071u, 0x00000011u, 0x0000410au, 0x00004108u, + 0x0004007cu, 0x00000012u, 0x0000410bu, 0x0000410au, 0x00070050u, 0x00000013u, 0x0000410cu, 0x0000410bu, + 0x0000410bu, 0x0000410bu, 0x0000410bu, 0x000300f7u, 0x000031dbu, 0x00000000u, 0x000400fau, 0x00002327u, + 0x000031ccu, 0x000031dbu, 0x000200f8u, 0x000031ccu, 0x00050050u, 0x000000f2u, 0x000031cfu, 0x00007bd1u, + 0x00002fe0u, 0x0004007cu, 0x000000b4u, 0x000031d0u, 0x000031cfu, 0x00050051u, 0x00000006u, 0x00004117u, + 0x000031d0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004118u, 0x00002e26u, 0x00004117u, 0x00050080u, + 0x00000006u, 0x00004119u, 0x00002e24u, 0x00004118u, 0x00050051u, 0x00000006u, 0x0000411bu, 0x000031d0u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x0000411du, 0x00004119u, 0x0000411bu, 0x000500c7u, 0x00000006u, + 0x0000411fu, 0x0000411du, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00004123u, 0x00004117u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00004124u, 0x00004123u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00004126u, + 0x0000411fu, 0x00004124u, 0x000500c6u, 0x00000006u, 0x00004128u, 0x00004126u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x0000412bu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00004128u, 0x0004003du, + 0x0000000fu, 0x0000412cu, 0x0000412bu, 0x00040071u, 0x00000006u, 0x0000412du, 0x0000412cu, 0x00040071u, + 0x00000011u, 0x0000412fu, 0x0000412du, 0x0004007cu, 0x00000012u, 0x00004130u, 0x0000412fu, 0x00070050u, + 0x00000013u, 0x00004131u, 0x00004130u, 0x00004130u, 0x00004130u, 0x00004130u, 0x00050050u, 0x000000f2u, + 0x000031d6u, 0x00007bc9u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x000031d7u, 0x000031d6u, 0x00050051u, + 0x00000006u, 0x0000413cu, 0x000031d7u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000413du, 0x00002e26u, + 0x0000413cu, 0x00050080u, 0x00000006u, 0x0000413eu, 0x00002e24u, 0x0000413du, 0x00050051u, 0x00000006u, + 0x00004140u, 0x000031d7u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004142u, 0x0000413eu, 0x00004140u, + 0x000500c7u, 0x00000006u, 0x00004144u, 0x00004142u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00004148u, + 0x0000413cu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004149u, 0x00004148u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x0000414bu, 0x00004144u, 0x00004149u, 0x000500c6u, 0x00000006u, 0x0000414du, 0x0000414bu, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00004150u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x0000414du, 0x0004003du, 0x0000000fu, 0x00004151u, 0x00004150u, 0x00040071u, 0x00000006u, 0x00004152u, + 0x00004151u, 0x00040071u, 0x00000011u, 0x00004154u, 0x00004152u, 0x0004007cu, 0x00000012u, 0x00004155u, + 0x00004154u, 0x00070050u, 0x00000013u, 0x00004156u, 0x00004155u, 0x00004155u, 0x00004155u, 0x00004155u, + 0x000200f9u, 0x000031dbu, 0x000200f8u, 0x000031dbu, 0x000700f5u, 0x00000013u, 0x00007e23u, 0x00007dd5u, + 0x000031c5u, 0x00004156u, 0x000031ccu, 0x000700f5u, 0x00000013u, 0x00007da5u, 0x00007d54u, 0x000031c5u, + 0x00004131u, 0x000031ccu, 0x000300f7u, 0x000031e5u, 0x00000000u, 0x000400fau, 0x00002fecu, 0x000031ddu, + 0x000031e5u, 0x000200f8u, 0x000031ddu, 0x00050050u, 0x000000f2u, 0x000031e0u, 0x00007bd1u, 0x00002fe2u, + 0x0004007cu, 0x000000b4u, 0x000031e1u, 0x000031e0u, 0x00050051u, 0x00000006u, 0x00004161u, 0x000031e1u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004162u, 0x00002e26u, 0x00004161u, 0x00050080u, 0x00000006u, + 0x00004163u, 0x00002e24u, 0x00004162u, 0x00050051u, 0x00000006u, 0x00004165u, 0x000031e1u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00004167u, 0x00004163u, 0x00004165u, 0x000500c7u, 0x00000006u, 0x00004169u, + 0x00004167u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x0000416du, 0x00004161u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x0000416eu, 0x0000416du, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00004170u, 0x00004169u, + 0x0000416eu, 0x000500c6u, 0x00000006u, 0x00004172u, 0x00004170u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00004175u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00004172u, 0x0004003du, 0x0000000fu, + 0x00004176u, 0x00004175u, 0x00040071u, 0x00000006u, 0x00004177u, 0x00004176u, 0x00040071u, 0x00000011u, + 0x00004179u, 0x00004177u, 0x0004007cu, 0x00000012u, 0x0000417au, 0x00004179u, 0x00070050u, 0x00000013u, + 0x0000417bu, 0x0000417au, 0x0000417au, 0x0000417au, 0x0000417au, 0x000200f9u, 0x000031e5u, 0x000200f8u, + 0x000031e5u, 0x000700f5u, 0x00000013u, 0x00007ea0u, 0x00007e50u, 0x000031dbu, 0x0000417bu, 0x000031ddu, + 0x000200f9u, 0x000031e6u, 0x000200f8u, 0x00003198u, 0x0004007cu, 0x000000b4u, 0x0000319au, 0x00007bf0u, + 0x00040071u, 0x00000006u, 0x0000319du, 0x00002e2cu, 0x00050051u, 0x00000006u, 0x00004023u, 0x0000319au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004024u, 0x00002e26u, 0x00004023u, 0x00050080u, 0x00000006u, + 0x00004025u, 0x00002e24u, 0x00004024u, 0x00050051u, 0x00000006u, 0x00004027u, 0x0000319au, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00004028u, 0x00004027u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000402au, + 0x00004025u, 0x00004028u, 0x000500c7u, 0x00000006u, 0x0000402cu, 0x0000402au, 0x00000e83u, 0x000400c8u, + 0x00000006u, 0x0000402fu, 0x00004027u, 0x000500c7u, 0x00000006u, 0x00004030u, 0x0000402fu, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00004031u, 0x00004030u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00004035u, + 0x00004023u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00004036u, 0x00004035u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00004038u, 0x0000402cu, 0x00004036u, 0x000500c6u, 0x00000006u, 0x0000403au, 0x00004038u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x0000403du, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x0000403au, 0x0004003du, 0x0000000fu, 0x0000403eu, 0x0000403du, 0x00040071u, 0x00000006u, 0x0000403fu, + 0x0000403eu, 0x000500c2u, 0x00000006u, 0x00004042u, 0x0000403fu, 0x00004031u, 0x000500c7u, 0x00000006u, + 0x00004043u, 0x00004042u, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00004045u, 0x0000319du, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x00004047u, 0x00004043u, 0x00004045u, 0x00040071u, 0x00000011u, 0x00004049u, + 0x00004047u, 0x0004007cu, 0x00000012u, 0x0000404au, 0x00004049u, 0x00070050u, 0x00000013u, 0x0000404bu, + 0x0000404au, 0x0000404au, 0x0000404au, 0x0000404au, 0x000300f7u, 0x000031b7u, 0x00000000u, 0x000400fau, + 0x00002327u, 0x000031a2u, 0x000031b7u, 0x000200f8u, 0x000031a2u, 0x00050050u, 0x000000f2u, 0x000031a5u, + 0x00007bd1u, 0x00002fe0u, 0x0004007cu, 0x000000b4u, 0x000031a6u, 0x000031a5u, 0x00050051u, 0x00000006u, + 0x00004057u, 0x000031a6u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004058u, 0x00002e26u, 0x00004057u, + 0x00050080u, 0x00000006u, 0x00004059u, 0x00002e24u, 0x00004058u, 0x00050051u, 0x00000006u, 0x0000405bu, + 0x000031a6u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000405cu, 0x0000405bu, 0x0000022fu, 0x00050080u, + 0x00000006u, 0x0000405eu, 0x00004059u, 0x0000405cu, 0x000500c7u, 0x00000006u, 0x00004060u, 0x0000405eu, + 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00004063u, 0x0000405bu, 0x000500c7u, 0x00000006u, 0x00004064u, + 0x00004063u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00004065u, 0x00004064u, 0x00000709u, 0x000500c7u, + 0x00000006u, 0x00004069u, 0x00004057u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000406au, 0x00004069u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x0000406cu, 0x00004060u, 0x0000406au, 0x000500c6u, 0x00000006u, + 0x0000406eu, 0x0000406cu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00004071u, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x0000406eu, 0x0004003du, 0x0000000fu, 0x00004072u, 0x00004071u, 0x00040071u, + 0x00000006u, 0x00004073u, 0x00004072u, 0x000500c2u, 0x00000006u, 0x00004076u, 0x00004073u, 0x00004065u, + 0x000500c7u, 0x00000006u, 0x00004077u, 0x00004076u, 0x00000ea6u, 0x000500c5u, 0x00000006u, 0x0000407bu, + 0x00004077u, 0x00004045u, 0x00040071u, 0x00000011u, 0x0000407du, 0x0000407bu, 0x0004007cu, 0x00000012u, + 0x0000407eu, 0x0000407du, 0x00070050u, 0x00000013u, 0x0000407fu, 0x0000407eu, 0x0000407eu, 0x0000407eu, + 0x0000407eu, 0x00050050u, 0x000000f2u, 0x000031afu, 0x00007bc9u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, + 0x000031b0u, 0x000031afu, 0x00050051u, 0x00000006u, 0x0000408bu, 0x000031b0u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000408cu, 0x00002e26u, 0x0000408bu, 0x00050080u, 0x00000006u, 0x0000408du, 0x00002e24u, + 0x0000408cu, 0x00050051u, 0x00000006u, 0x0000408fu, 0x000031b0u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00004090u, 0x0000408fu, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00004092u, 0x0000408du, 0x00004090u, + 0x000500c7u, 0x00000006u, 0x00004094u, 0x00004092u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00004097u, + 0x0000408fu, 0x000500c7u, 0x00000006u, 0x00004098u, 0x00004097u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00004099u, 0x00004098u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x0000409du, 0x0000408bu, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x0000409eu, 0x0000409du, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000040a0u, + 0x00004094u, 0x0000409eu, 0x000500c6u, 0x00000006u, 0x000040a2u, 0x000040a0u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x000040a5u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000040a2u, 0x0004003du, + 0x0000000fu, 0x000040a6u, 0x000040a5u, 0x00040071u, 0x00000006u, 0x000040a7u, 0x000040a6u, 0x000500c2u, + 0x00000006u, 0x000040aau, 0x000040a7u, 0x00004099u, 0x000500c7u, 0x00000006u, 0x000040abu, 0x000040aau, + 0x00000ea6u, 0x000500c5u, 0x00000006u, 0x000040afu, 0x000040abu, 0x00004045u, 0x00040071u, 0x00000011u, + 0x000040b1u, 0x000040afu, 0x0004007cu, 0x00000012u, 0x000040b2u, 0x000040b1u, 0x00070050u, 0x00000013u, + 0x000040b3u, 0x000040b2u, 0x000040b2u, 0x000040b2u, 0x000040b2u, 0x000200f9u, 0x000031b7u, 0x000200f8u, + 0x000031b7u, 0x000700f5u, 0x00000013u, 0x00007e21u, 0x00007dd5u, 0x00003198u, 0x000040b3u, 0x000031a2u, + 0x000700f5u, 0x00000013u, 0x00007da3u, 0x00007d54u, 0x00003198u, 0x0000407fu, 0x000031a2u, 0x000300f7u, + 0x000031c4u, 0x00000000u, 0x000400fau, 0x00002fecu, 0x000031b9u, 0x000031c4u, 0x000200f8u, 0x000031b9u, + 0x00050050u, 0x000000f2u, 0x000031bcu, 0x00007bd1u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x000031bdu, + 0x000031bcu, 0x00050051u, 0x00000006u, 0x000040bfu, 0x000031bdu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000040c0u, 0x00002e26u, 0x000040bfu, 0x00050080u, 0x00000006u, 0x000040c1u, 0x00002e24u, 0x000040c0u, + 0x00050051u, 0x00000006u, 0x000040c3u, 0x000031bdu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000040c4u, + 0x000040c3u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000040c6u, 0x000040c1u, 0x000040c4u, 0x000500c7u, + 0x00000006u, 0x000040c8u, 0x000040c6u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x000040cbu, 0x000040c3u, + 0x000500c7u, 0x00000006u, 0x000040ccu, 0x000040cbu, 0x00000461u, 0x00050084u, 0x00000006u, 0x000040cdu, + 0x000040ccu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000040d1u, 0x000040bfu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000040d2u, 0x000040d1u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000040d4u, 0x000040c8u, + 0x000040d2u, 0x000500c6u, 0x00000006u, 0x000040d6u, 0x000040d4u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000040d9u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000040d6u, 0x0004003du, 0x0000000fu, + 0x000040dau, 0x000040d9u, 0x00040071u, 0x00000006u, 0x000040dbu, 0x000040dau, 0x000500c2u, 0x00000006u, + 0x000040deu, 0x000040dbu, 0x000040cdu, 0x000500c7u, 0x00000006u, 0x000040dfu, 0x000040deu, 0x00000ea6u, + 0x000500c5u, 0x00000006u, 0x000040e3u, 0x000040dfu, 0x00004045u, 0x00040071u, 0x00000011u, 0x000040e5u, + 0x000040e3u, 0x0004007cu, 0x00000012u, 0x000040e6u, 0x000040e5u, 0x00070050u, 0x00000013u, 0x000040e7u, + 0x000040e6u, 0x000040e6u, 0x000040e6u, 0x000040e6u, 0x000200f9u, 0x000031c4u, 0x000200f8u, 0x000031c4u, + 0x000700f5u, 0x00000013u, 0x00007e9eu, 0x00007e50u, 0x000031b7u, 0x000040e7u, 0x000031b9u, 0x000200f9u, + 0x000031e6u, 0x000200f8u, 0x00003177u, 0x0004007cu, 0x000000b4u, 0x00003179u, 0x00007bf0u, 0x00050051u, + 0x00000006u, 0x00003f6eu, 0x00003179u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003f6fu, 0x00002e26u, + 0x00003f6eu, 0x00050080u, 0x00000006u, 0x00003f70u, 0x00002e24u, 0x00003f6fu, 0x00050051u, 0x00000006u, + 0x00003f72u, 0x00003179u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003f73u, 0x00003f72u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x00003f75u, 0x00003f70u, 0x00003f73u, 0x000500c7u, 0x00000006u, 0x00003f77u, + 0x00003f75u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00003f79u, 0x00003f77u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00003f7cu, 0x00003f6eu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003f7du, 0x00003f7cu, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003f7fu, 0x00003f79u, 0x00003f7du, 0x000500c6u, 0x00000006u, + 0x00003f81u, 0x00003f7fu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00003f84u, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00003f81u, 0x0004003du, 0x00000011u, 0x00003f85u, 0x00003f84u, 0x00040071u, + 0x00000006u, 0x00003f86u, 0x00003f85u, 0x000500c2u, 0x00000006u, 0x00003f88u, 0x00003f86u, 0x00000262u, + 0x00040071u, 0x00000011u, 0x00003f89u, 0x00003f88u, 0x0004007cu, 0x00000012u, 0x00003f8au, 0x00003f89u, + 0x000500c7u, 0x00000006u, 0x00003f8cu, 0x00003f86u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003f8du, + 0x00003f8cu, 0x0004007cu, 0x00000012u, 0x00003f8eu, 0x00003f8du, 0x00050050u, 0x000001b1u, 0x00003f8fu, + 0x00003f8au, 0x00003f8eu, 0x0009004fu, 0x00000013u, 0x00003f90u, 0x00003f8fu, 0x00003f8fu, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x0000318du, 0x00000000u, 0x000400fau, 0x00002327u, + 0x0000317eu, 0x0000318du, 0x000200f8u, 0x0000317eu, 0x00050050u, 0x000000f2u, 0x00003181u, 0x00007bd1u, + 0x00002fe0u, 0x0004007cu, 0x000000b4u, 0x00003182u, 0x00003181u, 0x00050051u, 0x00000006u, 0x00003f9bu, + 0x00003182u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003f9cu, 0x00002e26u, 0x00003f9bu, 0x00050080u, + 0x00000006u, 0x00003f9du, 0x00002e24u, 0x00003f9cu, 0x00050051u, 0x00000006u, 0x00003f9fu, 0x00003182u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003fa0u, 0x00003f9fu, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x00003fa2u, 0x00003f9du, 0x00003fa0u, 0x000500c7u, 0x00000006u, 0x00003fa4u, 0x00003fa2u, 0x00000e83u, + 0x000500c2u, 0x00000006u, 0x00003fa6u, 0x00003fa4u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003fa9u, + 0x00003f9bu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003faau, 0x00003fa9u, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00003facu, 0x00003fa6u, 0x00003faau, 0x000500c6u, 0x00000006u, 0x00003faeu, 0x00003facu, + 0x00000461u, 0x00080041u, 0x00000697u, 0x00003fb1u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00003faeu, 0x0004003du, 0x00000011u, 0x00003fb2u, 0x00003fb1u, 0x00040071u, 0x00000006u, 0x00003fb3u, + 0x00003fb2u, 0x000500c2u, 0x00000006u, 0x00003fb5u, 0x00003fb3u, 0x00000262u, 0x00040071u, 0x00000011u, + 0x00003fb6u, 0x00003fb5u, 0x0004007cu, 0x00000012u, 0x00003fb7u, 0x00003fb6u, 0x000500c7u, 0x00000006u, + 0x00003fb9u, 0x00003fb3u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003fbau, 0x00003fb9u, 0x0004007cu, + 0x00000012u, 0x00003fbbu, 0x00003fbau, 0x00050050u, 0x000001b1u, 0x00003fbcu, 0x00003fb7u, 0x00003fbbu, + 0x0009004fu, 0x00000013u, 0x00003fbdu, 0x00003fbcu, 0x00003fbcu, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x00050050u, 0x000000f2u, 0x00003188u, 0x00007bc9u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, + 0x00003189u, 0x00003188u, 0x00050051u, 0x00000006u, 0x00003fc8u, 0x00003189u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003fc9u, 0x00002e26u, 0x00003fc8u, 0x00050080u, 0x00000006u, 0x00003fcau, 0x00002e24u, + 0x00003fc9u, 0x00050051u, 0x00000006u, 0x00003fccu, 0x00003189u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003fcdu, 0x00003fccu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003fcfu, 0x00003fcau, 0x00003fcdu, + 0x000500c7u, 0x00000006u, 0x00003fd1u, 0x00003fcfu, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00003fd3u, + 0x00003fd1u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003fd6u, 0x00003fc8u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00003fd7u, 0x00003fd6u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003fd9u, 0x00003fd3u, + 0x00003fd7u, 0x000500c6u, 0x00000006u, 0x00003fdbu, 0x00003fd9u, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00003fdeu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003fdbu, 0x0004003du, 0x00000011u, + 0x00003fdfu, 0x00003fdeu, 0x00040071u, 0x00000006u, 0x00003fe0u, 0x00003fdfu, 0x000500c2u, 0x00000006u, + 0x00003fe2u, 0x00003fe0u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003fe3u, 0x00003fe2u, 0x0004007cu, + 0x00000012u, 0x00003fe4u, 0x00003fe3u, 0x000500c7u, 0x00000006u, 0x00003fe6u, 0x00003fe0u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00003fe7u, 0x00003fe6u, 0x0004007cu, 0x00000012u, 0x00003fe8u, 0x00003fe7u, + 0x00050050u, 0x000001b1u, 0x00003fe9u, 0x00003fe4u, 0x00003fe8u, 0x0009004fu, 0x00000013u, 0x00003feau, + 0x00003fe9u, 0x00003fe9u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000318du, + 0x000200f8u, 0x0000318du, 0x000700f5u, 0x00000013u, 0x00007e1fu, 0x00007dd5u, 0x00003177u, 0x00003feau, + 0x0000317eu, 0x000700f5u, 0x00000013u, 0x00007da1u, 0x00007d54u, 0x00003177u, 0x00003fbdu, 0x0000317eu, + 0x000300f7u, 0x00003197u, 0x00000000u, 0x000400fau, 0x00002fecu, 0x0000318fu, 0x00003197u, 0x000200f8u, + 0x0000318fu, 0x00050050u, 0x000000f2u, 0x00003192u, 0x00007bd1u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, + 0x00003193u, 0x00003192u, 0x00050051u, 0x00000006u, 0x00003ff5u, 0x00003193u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003ff6u, 0x00002e26u, 0x00003ff5u, 0x00050080u, 0x00000006u, 0x00003ff7u, 0x00002e24u, + 0x00003ff6u, 0x00050051u, 0x00000006u, 0x00003ff9u, 0x00003193u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003ffau, 0x00003ff9u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003ffcu, 0x00003ff7u, 0x00003ffau, + 0x000500c7u, 0x00000006u, 0x00003ffeu, 0x00003ffcu, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00004000u, + 0x00003ffeu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00004003u, 0x00003ff5u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00004004u, 0x00004003u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00004006u, 0x00004000u, + 0x00004004u, 0x000500c6u, 0x00000006u, 0x00004008u, 0x00004006u, 0x00000461u, 0x00080041u, 0x00000697u, + 0x0000400bu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00004008u, 0x0004003du, 0x00000011u, + 0x0000400cu, 0x0000400bu, 0x00040071u, 0x00000006u, 0x0000400du, 0x0000400cu, 0x000500c2u, 0x00000006u, + 0x0000400fu, 0x0000400du, 0x00000262u, 0x00040071u, 0x00000011u, 0x00004010u, 0x0000400fu, 0x0004007cu, + 0x00000012u, 0x00004011u, 0x00004010u, 0x000500c7u, 0x00000006u, 0x00004013u, 0x0000400du, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00004014u, 0x00004013u, 0x0004007cu, 0x00000012u, 0x00004015u, 0x00004014u, + 0x00050050u, 0x000001b1u, 0x00004016u, 0x00004011u, 0x00004015u, 0x0009004fu, 0x00000013u, 0x00004017u, + 0x00004016u, 0x00004016u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003197u, + 0x000200f8u, 0x00003197u, 0x000700f5u, 0x00000013u, 0x00007e9cu, 0x00007e50u, 0x0000318du, 0x00004017u, + 0x0000318fu, 0x000200f9u, 0x000031e6u, 0x000200f8u, 0x000031e6u, 0x000900f5u, 0x00000013u, 0x00007e9bu, + 0x00007e9cu, 0x00003197u, 0x00007e9eu, 0x000031c4u, 0x00007ea0u, 0x000031e5u, 0x000900f5u, 0x00000013u, + 0x00007e1du, 0x00007e1fu, 0x00003197u, 0x00007e21u, 0x000031c4u, 0x00007e23u, 0x000031e5u, 0x000900f5u, + 0x00000013u, 0x00007d9fu, 0x00007da1u, 0x00003197u, 0x00007da3u, 0x000031c4u, 0x00007da5u, 0x000031e5u, + 0x000900f5u, 0x00000013u, 0x00007cacu, 0x00003f90u, 0x00003197u, 0x0000404bu, 0x000031c4u, 0x0000410cu, + 0x000031e5u, 0x000200f9u, 0x000032dau, 0x000200f8u, 0x00003144u, 0x000500c3u, 0x00000008u, 0x00003146u, + 0x00007bc9u, 0x0000022fu, 0x0004007cu, 0x00000006u, 0x00003147u, 0x00003146u, 0x00050082u, 0x00000008u, + 0x0000314bu, 0x00007bd1u, 0x00007bc9u, 0x00050080u, 0x00000008u, 0x0000314cu, 0x00007bd1u, 0x0000314bu, + 0x000500c3u, 0x00000008u, 0x0000314du, 0x0000314cu, 0x0000022fu, 0x0004007cu, 0x00000006u, 0x0000314eu, + 0x0000314du, 0x00050050u, 0x000000f2u, 0x00003151u, 0x00007bc9u, 0x00002fe0u, 0x0004007cu, 0x000000b4u, + 0x00003152u, 0x00003151u, 0x00050051u, 0x00000006u, 0x00003e2cu, 0x00003152u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003e2du, 0x00002e26u, 0x00003e2cu, 0x00050080u, 0x00000006u, 0x00003e2eu, 0x00002e24u, + 0x00003e2du, 0x00050051u, 0x00000006u, 0x00003e31u, 0x00003152u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003e32u, 0x00003e2eu, 0x00003e31u, 0x000500c7u, 0x00000006u, 0x00003e34u, 0x00003e32u, 0x00000f3bu, + 0x00050084u, 0x00000006u, 0x00003e37u, 0x00003147u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003e38u, + 0x00003e2eu, 0x00003e37u, 0x000500c7u, 0x00000006u, 0x00003e3au, 0x00003e38u, 0x00000f3bu, 0x000500c7u, + 0x00000006u, 0x00003e3eu, 0x00003e2cu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003e3fu, 0x00003e3eu, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003e41u, 0x00003e34u, 0x00003e3fu, 0x000500c6u, 0x00000006u, + 0x00003e43u, 0x00003e41u, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00003e45u, 0x00003e3au, 0x0000022fu, + 0x000500c4u, 0x00000006u, 0x00003e49u, 0x00003e3eu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003e4bu, + 0x00003e45u, 0x00003e49u, 0x000500c6u, 0x00000006u, 0x00003e4du, 0x00003e4bu, 0x00000461u, 0x000500c5u, + 0x00000006u, 0x00003e50u, 0x00003e43u, 0x00000f64u, 0x00080041u, 0x00000676u, 0x00003e51u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00003e50u, 0x0004003du, 0x0000000fu, 0x00003e52u, 0x00003e51u, + 0x00080041u, 0x00000697u, 0x00003e55u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003e4du, + 0x0004003du, 0x00000011u, 0x00003e56u, 0x00003e55u, 0x000500c2u, 0x00000011u, 0x00003e58u, 0x00003e56u, + 0x000010c1u, 0x000500c7u, 0x00000011u, 0x00003e59u, 0x00003e58u, 0x00000350u, 0x00040071u, 0x0000000fu, + 0x00003e5au, 0x00003e59u, 0x000500c2u, 0x00000011u, 0x00003e5cu, 0x00003e56u, 0x0000021fu, 0x000500c7u, + 0x00000011u, 0x00003e5du, 0x00003e5cu, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00003e5eu, 0x00003e5du, + 0x00040071u, 0x00000011u, 0x00003e60u, 0x00003e5au, 0x0004007cu, 0x00000012u, 0x00003e61u, 0x00003e60u, + 0x00050082u, 0x00000012u, 0x00003e62u, 0x00003e61u, 0x000010cdu, 0x00040071u, 0x00000011u, 0x00003e64u, + 0x00003e5eu, 0x0004007cu, 0x00000012u, 0x00003e65u, 0x00003e64u, 0x00050082u, 0x00000012u, 0x00003e66u, + 0x00003e65u, 0x000010cdu, 0x00040071u, 0x00000011u, 0x00003e68u, 0x00003e52u, 0x0004007cu, 0x00000012u, + 0x00003e69u, 0x00003e68u, 0x00070050u, 0x00000013u, 0x00003e6du, 0x00003e62u, 0x00003e66u, 0x00003e69u, + 0x00003e69u, 0x000300f7u, 0x00003171u, 0x00000000u, 0x000400fau, 0x00002327u, 0x00003158u, 0x00003171u, + 0x000200f8u, 0x00003158u, 0x00050050u, 0x000000f2u, 0x0000315bu, 0x00007bd1u, 0x00002fe0u, 0x0004007cu, + 0x000000b4u, 0x0000315cu, 0x0000315bu, 0x00050051u, 0x00000006u, 0x00003e7eu, 0x0000315cu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003e7fu, 0x00002e26u, 0x00003e7eu, 0x00050080u, 0x00000006u, 0x00003e80u, + 0x00002e24u, 0x00003e7fu, 0x00050051u, 0x00000006u, 0x00003e83u, 0x0000315cu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003e84u, 0x00003e80u, 0x00003e83u, 0x000500c7u, 0x00000006u, 0x00003e86u, 0x00003e84u, + 0x00000f3bu, 0x00050084u, 0x00000006u, 0x00003e89u, 0x0000314eu, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x00003e8au, 0x00003e80u, 0x00003e89u, 0x000500c7u, 0x00000006u, 0x00003e8cu, 0x00003e8au, 0x00000f3bu, + 0x000500c7u, 0x00000006u, 0x00003e90u, 0x00003e7eu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003e91u, + 0x00003e90u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003e93u, 0x00003e86u, 0x00003e91u, 0x000500c6u, + 0x00000006u, 0x00003e95u, 0x00003e93u, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00003e97u, 0x00003e8cu, + 0x0000022fu, 0x000500c4u, 0x00000006u, 0x00003e9bu, 0x00003e90u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00003e9du, 0x00003e97u, 0x00003e9bu, 0x000500c6u, 0x00000006u, 0x00003e9fu, 0x00003e9du, 0x00000461u, + 0x000500c5u, 0x00000006u, 0x00003ea2u, 0x00003e95u, 0x00000f64u, 0x00080041u, 0x00000676u, 0x00003ea3u, + 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003ea2u, 0x0004003du, 0x0000000fu, 0x00003ea4u, + 0x00003ea3u, 0x00080041u, 0x00000697u, 0x00003ea7u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00003e9fu, 0x0004003du, 0x00000011u, 0x00003ea8u, 0x00003ea7u, 0x000500c2u, 0x00000011u, 0x00003eaau, + 0x00003ea8u, 0x000010c1u, 0x000500c7u, 0x00000011u, 0x00003eabu, 0x00003eaau, 0x00000350u, 0x00040071u, + 0x0000000fu, 0x00003eacu, 0x00003eabu, 0x000500c2u, 0x00000011u, 0x00003eaeu, 0x00003ea8u, 0x0000021fu, + 0x000500c7u, 0x00000011u, 0x00003eafu, 0x00003eaeu, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00003eb0u, + 0x00003eafu, 0x00040071u, 0x00000011u, 0x00003eb2u, 0x00003eacu, 0x0004007cu, 0x00000012u, 0x00003eb3u, + 0x00003eb2u, 0x00050082u, 0x00000012u, 0x00003eb4u, 0x00003eb3u, 0x000010cdu, 0x00040071u, 0x00000011u, + 0x00003eb6u, 0x00003eb0u, 0x0004007cu, 0x00000012u, 0x00003eb7u, 0x00003eb6u, 0x00050082u, 0x00000012u, + 0x00003eb8u, 0x00003eb7u, 0x000010cdu, 0x00040071u, 0x00000011u, 0x00003ebau, 0x00003ea4u, 0x0004007cu, + 0x00000012u, 0x00003ebbu, 0x00003ebau, 0x00070050u, 0x00000013u, 0x00003ebfu, 0x00003eb4u, 0x00003eb8u, + 0x00003ebbu, 0x00003ebbu, 0x00050050u, 0x000000f2u, 0x00003163u, 0x00007bc9u, 0x00002fe2u, 0x0004007cu, + 0x000000b4u, 0x00003164u, 0x00003163u, 0x00050051u, 0x00000006u, 0x00003ed0u, 0x00003164u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003ed1u, 0x00002e26u, 0x00003ed0u, 0x00050080u, 0x00000006u, 0x00003ed2u, + 0x00002e24u, 0x00003ed1u, 0x00050051u, 0x00000006u, 0x00003ed5u, 0x00003164u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003ed6u, 0x00003ed2u, 0x00003ed5u, 0x000500c7u, 0x00000006u, 0x00003ed8u, 0x00003ed6u, + 0x00000f3bu, 0x00050080u, 0x00000006u, 0x00003edcu, 0x00003ed2u, 0x00003e37u, 0x000500c7u, 0x00000006u, + 0x00003edeu, 0x00003edcu, 0x00000f3bu, 0x000500c7u, 0x00000006u, 0x00003ee2u, 0x00003ed0u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003ee3u, 0x00003ee2u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003ee5u, + 0x00003ed8u, 0x00003ee3u, 0x000500c6u, 0x00000006u, 0x00003ee7u, 0x00003ee5u, 0x00000469u, 0x000500c2u, + 0x00000006u, 0x00003ee9u, 0x00003edeu, 0x0000022fu, 0x000500c4u, 0x00000006u, 0x00003eedu, 0x00003ee2u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003eefu, 0x00003ee9u, 0x00003eedu, 0x000500c6u, 0x00000006u, + 0x00003ef1u, 0x00003eefu, 0x00000461u, 0x000500c5u, 0x00000006u, 0x00003ef4u, 0x00003ee7u, 0x00000f64u, + 0x00080041u, 0x00000676u, 0x00003ef5u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003ef4u, + 0x0004003du, 0x0000000fu, 0x00003ef6u, 0x00003ef5u, 0x00080041u, 0x00000697u, 0x00003ef9u, 0x00000f6au, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00003ef1u, 0x0004003du, 0x00000011u, 0x00003efau, 0x00003ef9u, + 0x000500c2u, 0x00000011u, 0x00003efcu, 0x00003efau, 0x000010c1u, 0x000500c7u, 0x00000011u, 0x00003efdu, + 0x00003efcu, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00003efeu, 0x00003efdu, 0x000500c2u, 0x00000011u, + 0x00003f00u, 0x00003efau, 0x0000021fu, 0x000500c7u, 0x00000011u, 0x00003f01u, 0x00003f00u, 0x00000350u, + 0x00040071u, 0x0000000fu, 0x00003f02u, 0x00003f01u, 0x00040071u, 0x00000011u, 0x00003f04u, 0x00003efeu, + 0x0004007cu, 0x00000012u, 0x00003f05u, 0x00003f04u, 0x00050082u, 0x00000012u, 0x00003f06u, 0x00003f05u, + 0x000010cdu, 0x00040071u, 0x00000011u, 0x00003f08u, 0x00003f02u, 0x0004007cu, 0x00000012u, 0x00003f09u, + 0x00003f08u, 0x00050082u, 0x00000012u, 0x00003f0au, 0x00003f09u, 0x000010cdu, 0x00040071u, 0x00000011u, + 0x00003f0cu, 0x00003ef6u, 0x0004007cu, 0x00000012u, 0x00003f0du, 0x00003f0cu, 0x00070050u, 0x00000013u, + 0x00003f11u, 0x00003f06u, 0x00003f0au, 0x00003f0du, 0x00003f0du, 0x00050050u, 0x000000f2u, 0x0000316bu, + 0x00007bd1u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x0000316cu, 0x0000316bu, 0x00050051u, 0x00000006u, + 0x00003f22u, 0x0000316cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003f23u, 0x00002e26u, 0x00003f22u, + 0x00050080u, 0x00000006u, 0x00003f24u, 0x00002e24u, 0x00003f23u, 0x00050051u, 0x00000006u, 0x00003f27u, + 0x0000316cu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003f28u, 0x00003f24u, 0x00003f27u, 0x000500c7u, + 0x00000006u, 0x00003f2au, 0x00003f28u, 0x00000f3bu, 0x00050080u, 0x00000006u, 0x00003f2eu, 0x00003f24u, + 0x00003e89u, 0x000500c7u, 0x00000006u, 0x00003f30u, 0x00003f2eu, 0x00000f3bu, 0x000500c7u, 0x00000006u, + 0x00003f34u, 0x00003f22u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003f35u, 0x00003f34u, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00003f37u, 0x00003f2au, 0x00003f35u, 0x000500c6u, 0x00000006u, 0x00003f39u, + 0x00003f37u, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00003f3bu, 0x00003f30u, 0x0000022fu, 0x000500c4u, + 0x00000006u, 0x00003f3fu, 0x00003f34u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003f41u, 0x00003f3bu, + 0x00003f3fu, 0x000500c6u, 0x00000006u, 0x00003f43u, 0x00003f41u, 0x00000461u, 0x000500c5u, 0x00000006u, + 0x00003f46u, 0x00003f39u, 0x00000f64u, 0x00080041u, 0x00000676u, 0x00003f47u, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00003f46u, 0x0004003du, 0x0000000fu, 0x00003f48u, 0x00003f47u, 0x00080041u, + 0x00000697u, 0x00003f4bu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003f43u, 0x0004003du, + 0x00000011u, 0x00003f4cu, 0x00003f4bu, 0x000500c2u, 0x00000011u, 0x00003f4eu, 0x00003f4cu, 0x000010c1u, + 0x000500c7u, 0x00000011u, 0x00003f4fu, 0x00003f4eu, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00003f50u, + 0x00003f4fu, 0x000500c2u, 0x00000011u, 0x00003f52u, 0x00003f4cu, 0x0000021fu, 0x000500c7u, 0x00000011u, + 0x00003f53u, 0x00003f52u, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00003f54u, 0x00003f53u, 0x00040071u, + 0x00000011u, 0x00003f56u, 0x00003f50u, 0x0004007cu, 0x00000012u, 0x00003f57u, 0x00003f56u, 0x00050082u, + 0x00000012u, 0x00003f58u, 0x00003f57u, 0x000010cdu, 0x00040071u, 0x00000011u, 0x00003f5au, 0x00003f54u, + 0x0004007cu, 0x00000012u, 0x00003f5bu, 0x00003f5au, 0x00050082u, 0x00000012u, 0x00003f5cu, 0x00003f5bu, + 0x000010cdu, 0x00040071u, 0x00000011u, 0x00003f5eu, 0x00003f48u, 0x0004007cu, 0x00000012u, 0x00003f5fu, + 0x00003f5eu, 0x00070050u, 0x00000013u, 0x00003f63u, 0x00003f58u, 0x00003f5cu, 0x00003f5fu, 0x00003f5fu, + 0x000200f9u, 0x00003171u, 0x000200f8u, 0x00003171u, 0x000700f5u, 0x00000013u, 0x00007e9au, 0x00007e50u, + 0x00003144u, 0x00003f63u, 0x00003158u, 0x000700f5u, 0x00000013u, 0x00007e1cu, 0x00007dd5u, 0x00003144u, + 0x00003f11u, 0x00003158u, 0x000700f5u, 0x00000013u, 0x00007d9eu, 0x00007d54u, 0x00003144u, 0x00003ebfu, + 0x00003158u, 0x000200f9u, 0x000032dau, 0x000200f8u, 0x000030bau, 0x00040071u, 0x00000006u, 0x000030bdu, + 0x00002e2au, 0x0004007cu, 0x00000008u, 0x000030beu, 0x000030bdu, 0x000300f7u, 0x00003143u, 0x00000000u, + 0x000b00fbu, 0x000030beu, 0x00003143u, 0x00000000u, 0x000030bfu, 0x00000001u, 0x000030e0u, 0x00000002u, + 0x00003101u, 0x00000003u, 0x00003122u, 0x000200f8u, 0x00003122u, 0x0004007cu, 0x000000b4u, 0x00003124u, + 0x00007bf0u, 0x00050051u, 0x00000006u, 0x00003d3bu, 0x00003124u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003d3cu, 0x00002e26u, 0x00003d3bu, 0x00050080u, 0x00000006u, 0x00003d3du, 0x00002e24u, 0x00003d3cu, + 0x00050051u, 0x00000006u, 0x00003d3fu, 0x00003124u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003d40u, + 0x00003d3fu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003d42u, 0x00003d3du, 0x00003d40u, 0x000500c7u, + 0x00000006u, 0x00003d44u, 0x00003d42u, 0x00000f3bu, 0x000500c2u, 0x00000006u, 0x00003d46u, 0x00003d44u, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003d49u, 0x00003d3bu, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00003d4au, 0x00003d49u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003d4cu, 0x00003d46u, 0x00003d4au, + 0x000500c6u, 0x00000006u, 0x00003d4eu, 0x00003d4cu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00003d51u, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003d4eu, 0x0004003du, 0x00000011u, 0x00003d52u, + 0x00003d51u, 0x00040071u, 0x00000006u, 0x00003d53u, 0x00003d52u, 0x000500c5u, 0x00000006u, 0x00003d56u, + 0x00003d4eu, 0x00000f6cu, 0x00080041u, 0x00000697u, 0x00003d57u, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00003d56u, 0x0004003du, 0x00000011u, 0x00003d58u, 0x00003d57u, 0x00040071u, 0x00000006u, + 0x00003d59u, 0x00003d58u, 0x000500c2u, 0x00000006u, 0x00003d5bu, 0x00003d53u, 0x00000262u, 0x00040071u, + 0x00000011u, 0x00003d5cu, 0x00003d5bu, 0x0004007cu, 0x00000012u, 0x00003d5du, 0x00003d5cu, 0x000500c7u, + 0x00000006u, 0x00003d5fu, 0x00003d53u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003d60u, 0x00003d5fu, + 0x0004007cu, 0x00000012u, 0x00003d61u, 0x00003d60u, 0x000500c2u, 0x00000006u, 0x00003d63u, 0x00003d59u, + 0x00000262u, 0x00040071u, 0x00000011u, 0x00003d64u, 0x00003d63u, 0x0004007cu, 0x00000012u, 0x00003d65u, + 0x00003d64u, 0x000500c7u, 0x00000006u, 0x00003d67u, 0x00003d59u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00003d68u, 0x00003d67u, 0x0004007cu, 0x00000012u, 0x00003d69u, 0x00003d68u, 0x00070050u, 0x00000013u, + 0x00003d6au, 0x00003d5du, 0x00003d61u, 0x00003d65u, 0x00003d69u, 0x000300f7u, 0x00003138u, 0x00000000u, + 0x000400fau, 0x00002327u, 0x00003129u, 0x00003138u, 0x000200f8u, 0x00003129u, 0x00050050u, 0x000000f2u, + 0x0000312cu, 0x00007bd1u, 0x00002fe0u, 0x0004007cu, 0x000000b4u, 0x0000312du, 0x0000312cu, 0x00050051u, + 0x00000006u, 0x00003d76u, 0x0000312du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d77u, 0x00002e26u, + 0x00003d76u, 0x00050080u, 0x00000006u, 0x00003d78u, 0x00002e24u, 0x00003d77u, 0x00050051u, 0x00000006u, + 0x00003d7au, 0x0000312du, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003d7bu, 0x00003d7au, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x00003d7du, 0x00003d78u, 0x00003d7bu, 0x000500c7u, 0x00000006u, 0x00003d7fu, + 0x00003d7du, 0x00000f3bu, 0x000500c2u, 0x00000006u, 0x00003d81u, 0x00003d7fu, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00003d84u, 0x00003d76u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003d85u, 0x00003d84u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003d87u, 0x00003d81u, 0x00003d85u, 0x000500c6u, 0x00000006u, + 0x00003d89u, 0x00003d87u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00003d8cu, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00003d89u, 0x0004003du, 0x00000011u, 0x00003d8du, 0x00003d8cu, 0x00040071u, + 0x00000006u, 0x00003d8eu, 0x00003d8du, 0x000500c5u, 0x00000006u, 0x00003d91u, 0x00003d89u, 0x00000f6cu, + 0x00080041u, 0x00000697u, 0x00003d92u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003d91u, + 0x0004003du, 0x00000011u, 0x00003d93u, 0x00003d92u, 0x00040071u, 0x00000006u, 0x00003d94u, 0x00003d93u, + 0x000500c2u, 0x00000006u, 0x00003d96u, 0x00003d8eu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003d97u, + 0x00003d96u, 0x0004007cu, 0x00000012u, 0x00003d98u, 0x00003d97u, 0x000500c7u, 0x00000006u, 0x00003d9au, + 0x00003d8eu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003d9bu, 0x00003d9au, 0x0004007cu, 0x00000012u, + 0x00003d9cu, 0x00003d9bu, 0x000500c2u, 0x00000006u, 0x00003d9eu, 0x00003d94u, 0x00000262u, 0x00040071u, + 0x00000011u, 0x00003d9fu, 0x00003d9eu, 0x0004007cu, 0x00000012u, 0x00003da0u, 0x00003d9fu, 0x000500c7u, + 0x00000006u, 0x00003da2u, 0x00003d94u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003da3u, 0x00003da2u, + 0x0004007cu, 0x00000012u, 0x00003da4u, 0x00003da3u, 0x00070050u, 0x00000013u, 0x00003da5u, 0x00003d98u, + 0x00003d9cu, 0x00003da0u, 0x00003da4u, 0x00050050u, 0x000000f2u, 0x00003133u, 0x00007bc9u, 0x00002fe2u, + 0x0004007cu, 0x000000b4u, 0x00003134u, 0x00003133u, 0x00050051u, 0x00000006u, 0x00003db1u, 0x00003134u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003db2u, 0x00002e26u, 0x00003db1u, 0x00050080u, 0x00000006u, + 0x00003db3u, 0x00002e24u, 0x00003db2u, 0x00050051u, 0x00000006u, 0x00003db5u, 0x00003134u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003db6u, 0x00003db5u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003db8u, + 0x00003db3u, 0x00003db6u, 0x000500c7u, 0x00000006u, 0x00003dbau, 0x00003db8u, 0x00000f3bu, 0x000500c2u, + 0x00000006u, 0x00003dbcu, 0x00003dbau, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003dbfu, 0x00003db1u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003dc0u, 0x00003dbfu, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00003dc2u, 0x00003dbcu, 0x00003dc0u, 0x000500c6u, 0x00000006u, 0x00003dc4u, 0x00003dc2u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00003dc7u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003dc4u, + 0x0004003du, 0x00000011u, 0x00003dc8u, 0x00003dc7u, 0x00040071u, 0x00000006u, 0x00003dc9u, 0x00003dc8u, + 0x000500c5u, 0x00000006u, 0x00003dccu, 0x00003dc4u, 0x00000f6cu, 0x00080041u, 0x00000697u, 0x00003dcdu, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003dccu, 0x0004003du, 0x00000011u, 0x00003dceu, + 0x00003dcdu, 0x00040071u, 0x00000006u, 0x00003dcfu, 0x00003dceu, 0x000500c2u, 0x00000006u, 0x00003dd1u, + 0x00003dc9u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003dd2u, 0x00003dd1u, 0x0004007cu, 0x00000012u, + 0x00003dd3u, 0x00003dd2u, 0x000500c7u, 0x00000006u, 0x00003dd5u, 0x00003dc9u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00003dd6u, 0x00003dd5u, 0x0004007cu, 0x00000012u, 0x00003dd7u, 0x00003dd6u, 0x000500c2u, + 0x00000006u, 0x00003dd9u, 0x00003dcfu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003ddau, 0x00003dd9u, + 0x0004007cu, 0x00000012u, 0x00003ddbu, 0x00003ddau, 0x000500c7u, 0x00000006u, 0x00003dddu, 0x00003dcfu, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003ddeu, 0x00003dddu, 0x0004007cu, 0x00000012u, 0x00003ddfu, + 0x00003ddeu, 0x00070050u, 0x00000013u, 0x00003de0u, 0x00003dd3u, 0x00003dd7u, 0x00003ddbu, 0x00003ddfu, + 0x000200f9u, 0x00003138u, 0x000200f8u, 0x00003138u, 0x000700f5u, 0x00000013u, 0x00007e1bu, 0x00007dd5u, + 0x00003122u, 0x00003de0u, 0x00003129u, 0x000700f5u, 0x00000013u, 0x00007d9du, 0x00007d54u, 0x00003122u, + 0x00003da5u, 0x00003129u, 0x000300f7u, 0x00003142u, 0x00000000u, 0x000400fau, 0x00002fecu, 0x0000313au, + 0x00003142u, 0x000200f8u, 0x0000313au, 0x00050050u, 0x000000f2u, 0x0000313du, 0x00007bd1u, 0x00002fe2u, + 0x0004007cu, 0x000000b4u, 0x0000313eu, 0x0000313du, 0x00050051u, 0x00000006u, 0x00003decu, 0x0000313eu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003dedu, 0x00002e26u, 0x00003decu, 0x00050080u, 0x00000006u, + 0x00003deeu, 0x00002e24u, 0x00003dedu, 0x00050051u, 0x00000006u, 0x00003df0u, 0x0000313eu, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003df1u, 0x00003df0u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003df3u, + 0x00003deeu, 0x00003df1u, 0x000500c7u, 0x00000006u, 0x00003df5u, 0x00003df3u, 0x00000f3bu, 0x000500c2u, + 0x00000006u, 0x00003df7u, 0x00003df5u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003dfau, 0x00003decu, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003dfbu, 0x00003dfau, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00003dfdu, 0x00003df7u, 0x00003dfbu, 0x000500c6u, 0x00000006u, 0x00003dffu, 0x00003dfdu, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00003e02u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003dffu, + 0x0004003du, 0x00000011u, 0x00003e03u, 0x00003e02u, 0x00040071u, 0x00000006u, 0x00003e04u, 0x00003e03u, + 0x000500c5u, 0x00000006u, 0x00003e07u, 0x00003dffu, 0x00000f6cu, 0x00080041u, 0x00000697u, 0x00003e08u, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003e07u, 0x0004003du, 0x00000011u, 0x00003e09u, + 0x00003e08u, 0x00040071u, 0x00000006u, 0x00003e0au, 0x00003e09u, 0x000500c2u, 0x00000006u, 0x00003e0cu, + 0x00003e04u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003e0du, 0x00003e0cu, 0x0004007cu, 0x00000012u, + 0x00003e0eu, 0x00003e0du, 0x000500c7u, 0x00000006u, 0x00003e10u, 0x00003e04u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00003e11u, 0x00003e10u, 0x0004007cu, 0x00000012u, 0x00003e12u, 0x00003e11u, 0x000500c2u, + 0x00000006u, 0x00003e14u, 0x00003e0au, 0x00000262u, 0x00040071u, 0x00000011u, 0x00003e15u, 0x00003e14u, + 0x0004007cu, 0x00000012u, 0x00003e16u, 0x00003e15u, 0x000500c7u, 0x00000006u, 0x00003e18u, 0x00003e0au, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003e19u, 0x00003e18u, 0x0004007cu, 0x00000012u, 0x00003e1au, + 0x00003e19u, 0x00070050u, 0x00000013u, 0x00003e1bu, 0x00003e0eu, 0x00003e12u, 0x00003e16u, 0x00003e1au, + 0x000200f9u, 0x00003142u, 0x000200f8u, 0x00003142u, 0x000700f5u, 0x00000013u, 0x00007e98u, 0x00007e50u, + 0x00003138u, 0x00003e1bu, 0x0000313au, 0x000200f9u, 0x00003143u, 0x000200f8u, 0x00003101u, 0x0004007cu, + 0x000000b4u, 0x00003103u, 0x00007bf0u, 0x00050051u, 0x00000006u, 0x00003c2fu, 0x00003103u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003c30u, 0x00002e26u, 0x00003c2fu, 0x00050080u, 0x00000006u, 0x00003c31u, + 0x00002e24u, 0x00003c30u, 0x00050051u, 0x00000006u, 0x00003c33u, 0x00003103u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003c34u, 0x00003c33u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003c36u, 0x00003c31u, + 0x00003c34u, 0x000500c7u, 0x00000006u, 0x00003c38u, 0x00003c36u, 0x00000e83u, 0x000500c2u, 0x00000006u, + 0x00003c3au, 0x00003c38u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003c3du, 0x00003c2fu, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003c3eu, 0x00003c3du, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003c40u, + 0x00003c3au, 0x00003c3eu, 0x000500c6u, 0x00000006u, 0x00003c42u, 0x00003c40u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x00003c45u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003c42u, 0x0004003du, + 0x00000011u, 0x00003c46u, 0x00003c45u, 0x00040071u, 0x00000006u, 0x00003c47u, 0x00003c46u, 0x00060050u, + 0x00000311u, 0x00003c4fu, 0x00003c47u, 0x00003c47u, 0x00003c47u, 0x000500c2u, 0x00000311u, 0x00003c50u, + 0x00003c4fu, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00003c52u, 0x00003c50u, 0x0000c236u, 0x000500c4u, + 0x00000311u, 0x00003c55u, 0x00003c52u, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x00003c58u, 0x00003c52u, + 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00003c59u, 0x00003c55u, 0x00003c58u, 0x000500c7u, 0x00000006u, + 0x00003c5bu, 0x00003c47u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003c5cu, 0x00003c5bu, 0x000006c8u, + 0x00040071u, 0x000004bfu, 0x00003c5eu, 0x00003c59u, 0x0004007cu, 0x000004bbu, 0x00003c5fu, 0x00003c5eu, + 0x00040071u, 0x00000011u, 0x00003c61u, 0x00003c5cu, 0x0004007cu, 0x00000012u, 0x00003c62u, 0x00003c61u, + 0x00050051u, 0x00000012u, 0x00003c63u, 0x00003c5fu, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003c64u, + 0x00003c5fu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003c65u, 0x00003c5fu, 0x00000002u, 0x00070050u, + 0x00000013u, 0x00003c66u, 0x00003c63u, 0x00003c64u, 0x00003c65u, 0x00003c62u, 0x000300f7u, 0x00003117u, + 0x00000000u, 0x000400fau, 0x00002327u, 0x00003108u, 0x00003117u, 0x000200f8u, 0x00003108u, 0x00050050u, + 0x000000f2u, 0x0000310bu, 0x00007bd1u, 0x00002fe0u, 0x0004007cu, 0x000000b4u, 0x0000310cu, 0x0000310bu, + 0x00050051u, 0x00000006u, 0x00003c72u, 0x0000310cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003c73u, + 0x00002e26u, 0x00003c72u, 0x00050080u, 0x00000006u, 0x00003c74u, 0x00002e24u, 0x00003c73u, 0x00050051u, + 0x00000006u, 0x00003c76u, 0x0000310cu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c77u, 0x00003c76u, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003c79u, 0x00003c74u, 0x00003c77u, 0x000500c7u, 0x00000006u, + 0x00003c7bu, 0x00003c79u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00003c7du, 0x00003c7bu, 0x0000022fu, + 0x000500c7u, 0x00000006u, 0x00003c80u, 0x00003c72u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003c81u, + 0x00003c80u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003c83u, 0x00003c7du, 0x00003c81u, 0x000500c6u, + 0x00000006u, 0x00003c85u, 0x00003c83u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00003c88u, 0x00000f6au, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00003c85u, 0x0004003du, 0x00000011u, 0x00003c89u, 0x00003c88u, + 0x00040071u, 0x00000006u, 0x00003c8au, 0x00003c89u, 0x00060050u, 0x00000311u, 0x00003c92u, 0x00003c8au, + 0x00003c8au, 0x00003c8au, 0x000500c2u, 0x00000311u, 0x00003c93u, 0x00003c92u, 0x00000e44u, 0x000500c7u, + 0x00000311u, 0x00003c95u, 0x00003c93u, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00003c98u, 0x00003c95u, + 0x0000c237u, 0x000500c2u, 0x00000311u, 0x00003c9bu, 0x00003c95u, 0x0000c238u, 0x000500c5u, 0x00000311u, + 0x00003c9cu, 0x00003c98u, 0x00003c9bu, 0x000500c7u, 0x00000006u, 0x00003c9eu, 0x00003c8au, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00003c9fu, 0x00003c9eu, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003ca1u, + 0x00003c9cu, 0x0004007cu, 0x000004bbu, 0x00003ca2u, 0x00003ca1u, 0x00040071u, 0x00000011u, 0x00003ca4u, + 0x00003c9fu, 0x0004007cu, 0x00000012u, 0x00003ca5u, 0x00003ca4u, 0x00050051u, 0x00000012u, 0x00003ca6u, + 0x00003ca2u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003ca7u, 0x00003ca2u, 0x00000001u, 0x00050051u, + 0x00000012u, 0x00003ca8u, 0x00003ca2u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003ca9u, 0x00003ca6u, + 0x00003ca7u, 0x00003ca8u, 0x00003ca5u, 0x00050050u, 0x000000f2u, 0x00003112u, 0x00007bc9u, 0x00002fe2u, + 0x0004007cu, 0x000000b4u, 0x00003113u, 0x00003112u, 0x00050051u, 0x00000006u, 0x00003cb5u, 0x00003113u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003cb6u, 0x00002e26u, 0x00003cb5u, 0x00050080u, 0x00000006u, + 0x00003cb7u, 0x00002e24u, 0x00003cb6u, 0x00050051u, 0x00000006u, 0x00003cb9u, 0x00003113u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003cbau, 0x00003cb9u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003cbcu, + 0x00003cb7u, 0x00003cbau, 0x000500c7u, 0x00000006u, 0x00003cbeu, 0x00003cbcu, 0x00000e83u, 0x000500c2u, + 0x00000006u, 0x00003cc0u, 0x00003cbeu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003cc3u, 0x00003cb5u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003cc4u, 0x00003cc3u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00003cc6u, 0x00003cc0u, 0x00003cc4u, 0x000500c6u, 0x00000006u, 0x00003cc8u, 0x00003cc6u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00003ccbu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003cc8u, + 0x0004003du, 0x00000011u, 0x00003cccu, 0x00003ccbu, 0x00040071u, 0x00000006u, 0x00003ccdu, 0x00003cccu, + 0x00060050u, 0x00000311u, 0x00003cd5u, 0x00003ccdu, 0x00003ccdu, 0x00003ccdu, 0x000500c2u, 0x00000311u, + 0x00003cd6u, 0x00003cd5u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00003cd8u, 0x00003cd6u, 0x0000c236u, + 0x000500c4u, 0x00000311u, 0x00003cdbu, 0x00003cd8u, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x00003cdeu, + 0x00003cd8u, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00003cdfu, 0x00003cdbu, 0x00003cdeu, 0x000500c7u, + 0x00000006u, 0x00003ce1u, 0x00003ccdu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003ce2u, 0x00003ce1u, + 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003ce4u, 0x00003cdfu, 0x0004007cu, 0x000004bbu, 0x00003ce5u, + 0x00003ce4u, 0x00040071u, 0x00000011u, 0x00003ce7u, 0x00003ce2u, 0x0004007cu, 0x00000012u, 0x00003ce8u, + 0x00003ce7u, 0x00050051u, 0x00000012u, 0x00003ce9u, 0x00003ce5u, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00003ceau, 0x00003ce5u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003cebu, 0x00003ce5u, 0x00000002u, + 0x00070050u, 0x00000013u, 0x00003cecu, 0x00003ce9u, 0x00003ceau, 0x00003cebu, 0x00003ce8u, 0x000200f9u, + 0x00003117u, 0x000200f8u, 0x00003117u, 0x000700f5u, 0x00000013u, 0x00007e19u, 0x00007dd5u, 0x00003101u, + 0x00003cecu, 0x00003108u, 0x000700f5u, 0x00000013u, 0x00007d9bu, 0x00007d54u, 0x00003101u, 0x00003ca9u, + 0x00003108u, 0x000300f7u, 0x00003121u, 0x00000000u, 0x000400fau, 0x00002fecu, 0x00003119u, 0x00003121u, + 0x000200f8u, 0x00003119u, 0x00050050u, 0x000000f2u, 0x0000311cu, 0x00007bd1u, 0x00002fe2u, 0x0004007cu, + 0x000000b4u, 0x0000311du, 0x0000311cu, 0x00050051u, 0x00000006u, 0x00003cf8u, 0x0000311du, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003cf9u, 0x00002e26u, 0x00003cf8u, 0x00050080u, 0x00000006u, 0x00003cfau, + 0x00002e24u, 0x00003cf9u, 0x00050051u, 0x00000006u, 0x00003cfcu, 0x0000311du, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003cfdu, 0x00003cfcu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003cffu, 0x00003cfau, + 0x00003cfdu, 0x000500c7u, 0x00000006u, 0x00003d01u, 0x00003cffu, 0x00000e83u, 0x000500c2u, 0x00000006u, + 0x00003d03u, 0x00003d01u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003d06u, 0x00003cf8u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003d07u, 0x00003d06u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00003d09u, + 0x00003d03u, 0x00003d07u, 0x000500c6u, 0x00000006u, 0x00003d0bu, 0x00003d09u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x00003d0eu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003d0bu, 0x0004003du, + 0x00000011u, 0x00003d0fu, 0x00003d0eu, 0x00040071u, 0x00000006u, 0x00003d10u, 0x00003d0fu, 0x00060050u, + 0x00000311u, 0x00003d18u, 0x00003d10u, 0x00003d10u, 0x00003d10u, 0x000500c2u, 0x00000311u, 0x00003d19u, + 0x00003d18u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00003d1bu, 0x00003d19u, 0x0000c236u, 0x000500c4u, + 0x00000311u, 0x00003d1eu, 0x00003d1bu, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x00003d21u, 0x00003d1bu, + 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00003d22u, 0x00003d1eu, 0x00003d21u, 0x000500c7u, 0x00000006u, + 0x00003d24u, 0x00003d10u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003d25u, 0x00003d24u, 0x000006c8u, + 0x00040071u, 0x000004bfu, 0x00003d27u, 0x00003d22u, 0x0004007cu, 0x000004bbu, 0x00003d28u, 0x00003d27u, + 0x00040071u, 0x00000011u, 0x00003d2au, 0x00003d25u, 0x0004007cu, 0x00000012u, 0x00003d2bu, 0x00003d2au, + 0x00050051u, 0x00000012u, 0x00003d2cu, 0x00003d28u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003d2du, + 0x00003d28u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003d2eu, 0x00003d28u, 0x00000002u, 0x00070050u, + 0x00000013u, 0x00003d2fu, 0x00003d2cu, 0x00003d2du, 0x00003d2eu, 0x00003d2bu, 0x000200f9u, 0x00003121u, + 0x000200f8u, 0x00003121u, 0x000700f5u, 0x00000013u, 0x00007e96u, 0x00007e50u, 0x00003117u, 0x00003d2fu, + 0x00003119u, 0x000200f9u, 0x00003143u, 0x000200f8u, 0x000030e0u, 0x0004007cu, 0x000000b4u, 0x000030e2u, + 0x00007bf0u, 0x00050051u, 0x00000006u, 0x00003b9au, 0x000030e2u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003b9bu, 0x00002e26u, 0x00003b9au, 0x00050080u, 0x00000006u, 0x00003b9cu, 0x00002e24u, 0x00003b9bu, + 0x00050051u, 0x00000006u, 0x00003b9eu, 0x000030e2u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003ba0u, + 0x00003b9cu, 0x00003b9eu, 0x000500c7u, 0x00000006u, 0x00003ba2u, 0x00003ba0u, 0x00000e83u, 0x000500c7u, + 0x00000006u, 0x00003ba6u, 0x00003b9au, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003ba7u, 0x00003ba6u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003ba9u, 0x00003ba2u, 0x00003ba7u, 0x000500c6u, 0x00000006u, + 0x00003babu, 0x00003ba9u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003baeu, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00003babu, 0x0004003du, 0x0000000fu, 0x00003bafu, 0x00003baeu, 0x00040071u, + 0x00000006u, 0x00003bb0u, 0x00003bafu, 0x00040071u, 0x00000011u, 0x00003bb2u, 0x00003bb0u, 0x0004007cu, + 0x00000012u, 0x00003bb3u, 0x00003bb2u, 0x00070050u, 0x00000013u, 0x00003bb4u, 0x00003bb3u, 0x00003bb3u, + 0x00003bb3u, 0x00003bb3u, 0x000300f7u, 0x000030f6u, 0x00000000u, 0x000400fau, 0x00002327u, 0x000030e7u, + 0x000030f6u, 0x000200f8u, 0x000030e7u, 0x00050050u, 0x000000f2u, 0x000030eau, 0x00007bd1u, 0x00002fe0u, + 0x0004007cu, 0x000000b4u, 0x000030ebu, 0x000030eau, 0x00050051u, 0x00000006u, 0x00003bbfu, 0x000030ebu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003bc0u, 0x00002e26u, 0x00003bbfu, 0x00050080u, 0x00000006u, + 0x00003bc1u, 0x00002e24u, 0x00003bc0u, 0x00050051u, 0x00000006u, 0x00003bc3u, 0x000030ebu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00003bc5u, 0x00003bc1u, 0x00003bc3u, 0x000500c7u, 0x00000006u, 0x00003bc7u, + 0x00003bc5u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00003bcbu, 0x00003bbfu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00003bccu, 0x00003bcbu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003bceu, 0x00003bc7u, + 0x00003bccu, 0x000500c6u, 0x00000006u, 0x00003bd0u, 0x00003bceu, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00003bd3u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003bd0u, 0x0004003du, 0x0000000fu, + 0x00003bd4u, 0x00003bd3u, 0x00040071u, 0x00000006u, 0x00003bd5u, 0x00003bd4u, 0x00040071u, 0x00000011u, + 0x00003bd7u, 0x00003bd5u, 0x0004007cu, 0x00000012u, 0x00003bd8u, 0x00003bd7u, 0x00070050u, 0x00000013u, + 0x00003bd9u, 0x00003bd8u, 0x00003bd8u, 0x00003bd8u, 0x00003bd8u, 0x00050050u, 0x000000f2u, 0x000030f1u, + 0x00007bc9u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x000030f2u, 0x000030f1u, 0x00050051u, 0x00000006u, + 0x00003be4u, 0x000030f2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003be5u, 0x00002e26u, 0x00003be4u, + 0x00050080u, 0x00000006u, 0x00003be6u, 0x00002e24u, 0x00003be5u, 0x00050051u, 0x00000006u, 0x00003be8u, + 0x000030f2u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003beau, 0x00003be6u, 0x00003be8u, 0x000500c7u, + 0x00000006u, 0x00003becu, 0x00003beau, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00003bf0u, 0x00003be4u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003bf1u, 0x00003bf0u, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x00003bf3u, 0x00003becu, 0x00003bf1u, 0x000500c6u, 0x00000006u, 0x00003bf5u, 0x00003bf3u, 0x00000469u, + 0x00080041u, 0x00000676u, 0x00003bf8u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003bf5u, + 0x0004003du, 0x0000000fu, 0x00003bf9u, 0x00003bf8u, 0x00040071u, 0x00000006u, 0x00003bfau, 0x00003bf9u, + 0x00040071u, 0x00000011u, 0x00003bfcu, 0x00003bfau, 0x0004007cu, 0x00000012u, 0x00003bfdu, 0x00003bfcu, + 0x00070050u, 0x00000013u, 0x00003bfeu, 0x00003bfdu, 0x00003bfdu, 0x00003bfdu, 0x00003bfdu, 0x000200f9u, + 0x000030f6u, 0x000200f8u, 0x000030f6u, 0x000700f5u, 0x00000013u, 0x00007e17u, 0x00007dd5u, 0x000030e0u, + 0x00003bfeu, 0x000030e7u, 0x000700f5u, 0x00000013u, 0x00007d99u, 0x00007d54u, 0x000030e0u, 0x00003bd9u, + 0x000030e7u, 0x000300f7u, 0x00003100u, 0x00000000u, 0x000400fau, 0x00002fecu, 0x000030f8u, 0x00003100u, + 0x000200f8u, 0x000030f8u, 0x00050050u, 0x000000f2u, 0x000030fbu, 0x00007bd1u, 0x00002fe2u, 0x0004007cu, + 0x000000b4u, 0x000030fcu, 0x000030fbu, 0x00050051u, 0x00000006u, 0x00003c09u, 0x000030fcu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003c0au, 0x00002e26u, 0x00003c09u, 0x00050080u, 0x00000006u, 0x00003c0bu, + 0x00002e24u, 0x00003c0au, 0x00050051u, 0x00000006u, 0x00003c0du, 0x000030fcu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003c0fu, 0x00003c0bu, 0x00003c0du, 0x000500c7u, 0x00000006u, 0x00003c11u, 0x00003c0fu, + 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00003c15u, 0x00003c09u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00003c16u, 0x00003c15u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003c18u, 0x00003c11u, 0x00003c16u, + 0x000500c6u, 0x00000006u, 0x00003c1au, 0x00003c18u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003c1du, + 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003c1au, 0x0004003du, 0x0000000fu, 0x00003c1eu, + 0x00003c1du, 0x00040071u, 0x00000006u, 0x00003c1fu, 0x00003c1eu, 0x00040071u, 0x00000011u, 0x00003c21u, + 0x00003c1fu, 0x0004007cu, 0x00000012u, 0x00003c22u, 0x00003c21u, 0x00070050u, 0x00000013u, 0x00003c23u, + 0x00003c22u, 0x00003c22u, 0x00003c22u, 0x00003c22u, 0x000200f9u, 0x00003100u, 0x000200f8u, 0x00003100u, + 0x000700f5u, 0x00000013u, 0x00007e94u, 0x00007e50u, 0x000030f6u, 0x00003c23u, 0x000030f8u, 0x000200f9u, + 0x00003143u, 0x000200f8u, 0x000030bfu, 0x0004007cu, 0x000000b4u, 0x000030c1u, 0x00007bf0u, 0x00050051u, + 0x00000006u, 0x00003acbu, 0x000030c1u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003accu, 0x00002e26u, + 0x00003acbu, 0x00050080u, 0x00000006u, 0x00003acdu, 0x00002e24u, 0x00003accu, 0x00050051u, 0x00000006u, + 0x00003acfu, 0x000030c1u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003ad0u, 0x00003acfu, 0x0000022fu, + 0x00050080u, 0x00000006u, 0x00003ad2u, 0x00003acdu, 0x00003ad0u, 0x000500c7u, 0x00000006u, 0x00003ad4u, + 0x00003ad2u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00003ad7u, 0x00003acfu, 0x000500c7u, 0x00000006u, + 0x00003ad8u, 0x00003ad7u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003ad9u, 0x00003ad8u, 0x00000709u, + 0x000500c7u, 0x00000006u, 0x00003addu, 0x00003acbu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003adeu, + 0x00003addu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003ae0u, 0x00003ad4u, 0x00003adeu, 0x000500c6u, + 0x00000006u, 0x00003ae2u, 0x00003ae0u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003ae5u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00003ae2u, 0x0004003du, 0x0000000fu, 0x00003ae6u, 0x00003ae5u, + 0x00040071u, 0x00000006u, 0x00003ae7u, 0x00003ae6u, 0x000500c2u, 0x00000006u, 0x00003aeau, 0x00003ae7u, + 0x00003ad9u, 0x000500c7u, 0x00000006u, 0x00003aebu, 0x00003aeau, 0x00000ea6u, 0x000500c4u, 0x00000006u, + 0x00003aedu, 0x00003aebu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00003aefu, 0x00003aebu, 0x00003aedu, + 0x00040071u, 0x00000011u, 0x00003af1u, 0x00003aefu, 0x0004007cu, 0x00000012u, 0x00003af2u, 0x00003af1u, + 0x00070050u, 0x00000013u, 0x00003af3u, 0x00003af2u, 0x00003af2u, 0x00003af2u, 0x00003af2u, 0x000300f7u, + 0x000030d5u, 0x00000000u, 0x000400fau, 0x00002327u, 0x000030c6u, 0x000030d5u, 0x000200f8u, 0x000030c6u, + 0x00050050u, 0x000000f2u, 0x000030c9u, 0x00007bd1u, 0x00002fe0u, 0x0004007cu, 0x000000b4u, 0x000030cau, + 0x000030c9u, 0x00050051u, 0x00000006u, 0x00003affu, 0x000030cau, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003b00u, 0x00002e26u, 0x00003affu, 0x00050080u, 0x00000006u, 0x00003b01u, 0x00002e24u, 0x00003b00u, + 0x00050051u, 0x00000006u, 0x00003b03u, 0x000030cau, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003b04u, + 0x00003b03u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00003b06u, 0x00003b01u, 0x00003b04u, 0x000500c7u, + 0x00000006u, 0x00003b08u, 0x00003b06u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00003b0bu, 0x00003b03u, + 0x000500c7u, 0x00000006u, 0x00003b0cu, 0x00003b0bu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003b0du, + 0x00003b0cu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00003b11u, 0x00003affu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00003b12u, 0x00003b11u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003b14u, 0x00003b08u, + 0x00003b12u, 0x000500c6u, 0x00000006u, 0x00003b16u, 0x00003b14u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00003b19u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003b16u, 0x0004003du, 0x0000000fu, + 0x00003b1au, 0x00003b19u, 0x00040071u, 0x00000006u, 0x00003b1bu, 0x00003b1au, 0x000500c2u, 0x00000006u, + 0x00003b1eu, 0x00003b1bu, 0x00003b0du, 0x000500c7u, 0x00000006u, 0x00003b1fu, 0x00003b1eu, 0x00000ea6u, + 0x000500c4u, 0x00000006u, 0x00003b21u, 0x00003b1fu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00003b23u, + 0x00003b1fu, 0x00003b21u, 0x00040071u, 0x00000011u, 0x00003b25u, 0x00003b23u, 0x0004007cu, 0x00000012u, + 0x00003b26u, 0x00003b25u, 0x00070050u, 0x00000013u, 0x00003b27u, 0x00003b26u, 0x00003b26u, 0x00003b26u, + 0x00003b26u, 0x00050050u, 0x000000f2u, 0x000030d0u, 0x00007bc9u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, + 0x000030d1u, 0x000030d0u, 0x00050051u, 0x00000006u, 0x00003b33u, 0x000030d1u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003b34u, 0x00002e26u, 0x00003b33u, 0x00050080u, 0x00000006u, 0x00003b35u, 0x00002e24u, + 0x00003b34u, 0x00050051u, 0x00000006u, 0x00003b37u, 0x000030d1u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00003b38u, 0x00003b37u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00003b3au, 0x00003b35u, 0x00003b38u, + 0x000500c7u, 0x00000006u, 0x00003b3cu, 0x00003b3au, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00003b3fu, + 0x00003b37u, 0x000500c7u, 0x00000006u, 0x00003b40u, 0x00003b3fu, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00003b41u, 0x00003b40u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00003b45u, 0x00003b33u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003b46u, 0x00003b45u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003b48u, + 0x00003b3cu, 0x00003b46u, 0x000500c6u, 0x00000006u, 0x00003b4au, 0x00003b48u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00003b4du, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003b4au, 0x0004003du, + 0x0000000fu, 0x00003b4eu, 0x00003b4du, 0x00040071u, 0x00000006u, 0x00003b4fu, 0x00003b4eu, 0x000500c2u, + 0x00000006u, 0x00003b52u, 0x00003b4fu, 0x00003b41u, 0x000500c7u, 0x00000006u, 0x00003b53u, 0x00003b52u, + 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00003b55u, 0x00003b53u, 0x00000238u, 0x000500c5u, 0x00000006u, + 0x00003b57u, 0x00003b53u, 0x00003b55u, 0x00040071u, 0x00000011u, 0x00003b59u, 0x00003b57u, 0x0004007cu, + 0x00000012u, 0x00003b5au, 0x00003b59u, 0x00070050u, 0x00000013u, 0x00003b5bu, 0x00003b5au, 0x00003b5au, + 0x00003b5au, 0x00003b5au, 0x000200f9u, 0x000030d5u, 0x000200f8u, 0x000030d5u, 0x000700f5u, 0x00000013u, + 0x00007e15u, 0x00007dd5u, 0x000030bfu, 0x00003b5bu, 0x000030c6u, 0x000700f5u, 0x00000013u, 0x00007d97u, + 0x00007d54u, 0x000030bfu, 0x00003b27u, 0x000030c6u, 0x000300f7u, 0x000030dfu, 0x00000000u, 0x000400fau, + 0x00002fecu, 0x000030d7u, 0x000030dfu, 0x000200f8u, 0x000030d7u, 0x00050050u, 0x000000f2u, 0x000030dau, + 0x00007bd1u, 0x00002fe2u, 0x0004007cu, 0x000000b4u, 0x000030dbu, 0x000030dau, 0x00050051u, 0x00000006u, + 0x00003b67u, 0x000030dbu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003b68u, 0x00002e26u, 0x00003b67u, + 0x00050080u, 0x00000006u, 0x00003b69u, 0x00002e24u, 0x00003b68u, 0x00050051u, 0x00000006u, 0x00003b6bu, + 0x000030dbu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003b6cu, 0x00003b6bu, 0x0000022fu, 0x00050080u, + 0x00000006u, 0x00003b6eu, 0x00003b69u, 0x00003b6cu, 0x000500c7u, 0x00000006u, 0x00003b70u, 0x00003b6eu, + 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00003b73u, 0x00003b6bu, 0x000500c7u, 0x00000006u, 0x00003b74u, + 0x00003b73u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003b75u, 0x00003b74u, 0x00000709u, 0x000500c7u, + 0x00000006u, 0x00003b79u, 0x00003b67u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003b7au, 0x00003b79u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003b7cu, 0x00003b70u, 0x00003b7au, 0x000500c6u, 0x00000006u, + 0x00003b7eu, 0x00003b7cu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003b81u, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00003b7eu, 0x0004003du, 0x0000000fu, 0x00003b82u, 0x00003b81u, 0x00040071u, + 0x00000006u, 0x00003b83u, 0x00003b82u, 0x000500c2u, 0x00000006u, 0x00003b86u, 0x00003b83u, 0x00003b75u, + 0x000500c7u, 0x00000006u, 0x00003b87u, 0x00003b86u, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00003b89u, + 0x00003b87u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00003b8bu, 0x00003b87u, 0x00003b89u, 0x00040071u, + 0x00000011u, 0x00003b8du, 0x00003b8bu, 0x0004007cu, 0x00000012u, 0x00003b8eu, 0x00003b8du, 0x00070050u, + 0x00000013u, 0x00003b8fu, 0x00003b8eu, 0x00003b8eu, 0x00003b8eu, 0x00003b8eu, 0x000200f9u, 0x000030dfu, + 0x000200f8u, 0x000030dfu, 0x000700f5u, 0x00000013u, 0x00007e92u, 0x00007e50u, 0x000030d5u, 0x00003b8fu, + 0x000030d7u, 0x000200f9u, 0x00003143u, 0x000200f8u, 0x00003143u, 0x000d00f5u, 0x00000013u, 0x00007e91u, + 0x00007e50u, 0x000030bau, 0x00007e92u, 0x000030dfu, 0x00007e94u, 0x00003100u, 0x00007e96u, 0x00003121u, + 0x00007e98u, 0x00003142u, 0x000d00f5u, 0x00000013u, 0x00007e13u, 0x00007dd5u, 0x000030bau, 0x00007e15u, + 0x000030dfu, 0x00007e17u, 0x00003100u, 0x00007e19u, 0x00003121u, 0x00007e1bu, 0x00003142u, 0x000d00f5u, + 0x00000013u, 0x00007d95u, 0x00007d54u, 0x000030bau, 0x00007d97u, 0x000030dfu, 0x00007d99u, 0x00003100u, + 0x00007d9bu, 0x00003121u, 0x00007d9du, 0x00003142u, 0x000d00f5u, 0x00000013u, 0x00007ca2u, 0x00007c61u, + 0x000030bau, 0x00003af3u, 0x000030dfu, 0x00003bb4u, 0x00003100u, 0x00003c66u, 0x00003121u, 0x00003d6au, + 0x00003142u, 0x000200f9u, 0x000032dau, 0x000200f8u, 0x000032dau, 0x000f00f5u, 0x00000013u, 0x00007e90u, + 0x00007e50u, 0x000030b5u, 0x00007e91u, 0x00003143u, 0x00007e9au, 0x00003171u, 0x00007e9bu, 0x000031e6u, + 0x00007ea2u, 0x00003270u, 0x00007eabu, 0x000032d9u, 0x000f00f5u, 0x00000013u, 0x00007e12u, 0x00007dd5u, + 0x000030b5u, 0x00007e13u, 0x00003143u, 0x00007e1cu, 0x00003171u, 0x00007e1du, 0x000031e6u, 0x00007e24u, + 0x00003270u, 0x00007e2du, 0x000032d9u, 0x000f00f5u, 0x00000013u, 0x00007d94u, 0x00007d54u, 0x000030b5u, + 0x00007d95u, 0x00003143u, 0x00007d9eu, 0x00003171u, 0x00007d9fu, 0x000031e6u, 0x00007da6u, 0x00003270u, + 0x00007dafu, 0x000032d9u, 0x000f00f5u, 0x00000013u, 0x00007ca1u, 0x00007c61u, 0x000030b5u, 0x00007ca2u, + 0x00003143u, 0x00003e6du, 0x00003171u, 0x00007cacu, 0x000031e6u, 0x00007cb3u, 0x00003270u, 0x00007cbcu, + 0x000032d9u, 0x000200f9u, 0x000032dbu, 0x000200f8u, 0x0000300bu, 0x000400a8u, 0x00000069u, 0x0000300du, + 0x00002327u, 0x000300f7u, 0x00003014u, 0x00000000u, 0x000400fau, 0x0000300du, 0x0000300eu, 0x00003014u, + 0x000200f8u, 0x0000300eu, 0x00050050u, 0x000000f2u, 0x00003011u, 0x00007bc9u, 0x00002fe0u, 0x000200f9u, + 0x00003014u, 0x000200f8u, 0x00003014u, 0x000700f5u, 0x000000f2u, 0x00007c16u, 0x00007bf0u, 0x0000300bu, + 0x00003011u, 0x0000300eu, 0x000600a9u, 0x00000008u, 0x0000c26bu, 0x0000300du, 0x00002fe0u, 0x00002fe2u, + 0x000600a9u, 0x00000008u, 0x0000c26cu, 0x0000300du, 0x00007bc9u, 0x00007bd1u, 0x000300f7u, 0x000030b4u, + 0x00000000u, 0x000b00fbu, 0x00002ff5u, 0x000030b4u, 0x00000000u, 0x00003019u, 0x00000002u, 0x00003019u, + 0x00000003u, 0x00003019u, 0x00000004u, 0x00003019u, 0x000200f8u, 0x00003019u, 0x000600a9u, 0x00000008u, + 0x0000301du, 0x00002feeu, 0x00000232u, 0x0000022fu, 0x0004007cu, 0x00000006u, 0x0000301eu, 0x0000301du, + 0x00040071u, 0x00000006u, 0x00003021u, 0x00002e2au, 0x0004007cu, 0x00000008u, 0x00003022u, 0x00003021u, + 0x000300f7u, 0x000030b3u, 0x00000000u, 0x000700fbu, 0x00003022u, 0x00003023u, 0x00000000u, 0x0000304fu, + 0x00000001u, 0x00003087u, 0x000200f8u, 0x00003087u, 0x0004007cu, 0x000000b4u, 0x00003089u, 0x00007c16u, + 0x000600a9u, 0x00000008u, 0x0000308bu, 0x00002ff8u, 0x00000235u, 0x00000225u, 0x0004007cu, 0x00000006u, + 0x0000308cu, 0x0000308bu, 0x00050051u, 0x00000006u, 0x0000391au, 0x00003089u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000391bu, 0x00002e26u, 0x0000391au, 0x00050080u, 0x00000006u, 0x0000391cu, 0x00002e24u, + 0x0000391bu, 0x00050051u, 0x00000006u, 0x0000391eu, 0x00003089u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003920u, 0x0000391cu, 0x0000391eu, 0x000500c7u, 0x00000006u, 0x00003922u, 0x00003920u, 0x00000f3bu, + 0x000500c7u, 0x00000006u, 0x00003926u, 0x0000391au, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003927u, + 0x00003926u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003929u, 0x00003922u, 0x00003927u, 0x000500c6u, + 0x00000006u, 0x0000392bu, 0x00003929u, 0x00000469u, 0x00080041u, 0x00000676u, 0x0000392eu, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x0000392bu, 0x0004003du, 0x0000000fu, 0x0000392fu, 0x0000392eu, + 0x00040071u, 0x00000006u, 0x00003930u, 0x0000392fu, 0x000500c4u, 0x00000006u, 0x00003932u, 0x00003930u, + 0x00000232u, 0x00050080u, 0x00000006u, 0x00003934u, 0x00003932u, 0x0000308cu, 0x000500c6u, 0x00000006u, + 0x00003937u, 0x00003934u, 0x0000301eu, 0x000500c5u, 0x00000006u, 0x0000393au, 0x00000f6cu, 0x00003937u, + 0x00080041u, 0x00000697u, 0x0000393bu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000393au, + 0x0004003du, 0x00000011u, 0x0000393cu, 0x0000393bu, 0x00040071u, 0x00000006u, 0x0000393du, 0x0000393cu, + 0x000300f7u, 0x00003945u, 0x00000000u, 0x000400fau, 0x00002324u, 0x0000393fu, 0x00003942u, 0x000200f8u, + 0x00003942u, 0x00060050u, 0x00000311u, 0x00003961u, 0x0000393du, 0x0000393du, 0x0000393du, 0x000500c2u, + 0x00000311u, 0x00003962u, 0x00003961u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00003964u, 0x00003962u, + 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00003967u, 0x00003964u, 0x0000c237u, 0x000500c2u, 0x00000311u, + 0x0000396au, 0x00003964u, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x0000396bu, 0x00003967u, 0x0000396au, + 0x000500c7u, 0x00000006u, 0x0000396du, 0x0000393du, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000396eu, + 0x0000396du, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003970u, 0x0000396bu, 0x0004007cu, 0x000004bbu, + 0x00003971u, 0x00003970u, 0x00040071u, 0x00000011u, 0x00003973u, 0x0000396eu, 0x0004007cu, 0x00000012u, + 0x00003974u, 0x00003973u, 0x00050051u, 0x00000012u, 0x00003975u, 0x00003971u, 0x00000000u, 0x00050051u, + 0x00000012u, 0x00003976u, 0x00003971u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003977u, 0x00003971u, + 0x00000002u, 0x00070050u, 0x00000013u, 0x00003978u, 0x00003975u, 0x00003976u, 0x00003977u, 0x00003974u, + 0x000200f9u, 0x00003945u, 0x000200f8u, 0x0000393fu, 0x000500c2u, 0x00000006u, 0x0000394cu, 0x0000393du, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x0000394eu, 0x0000393du, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00003950u, 0x0000394cu, 0x0004007cu, 0x00000012u, 0x00003951u, 0x00003950u, 0x00040071u, 0x00000011u, + 0x00003959u, 0x0000394eu, 0x0004007cu, 0x00000012u, 0x0000395au, 0x00003959u, 0x00070050u, 0x00000013u, + 0x0000395bu, 0x00003951u, 0x00003951u, 0x00003951u, 0x0000395au, 0x000200f9u, 0x00003945u, 0x000200f8u, + 0x00003945u, 0x000700f5u, 0x00000013u, 0x00007c17u, 0x0000395bu, 0x0000393fu, 0x00003978u, 0x00003942u, + 0x000300f7u, 0x000030a6u, 0x00000000u, 0x000400fau, 0x00002363u, 0x00003093u, 0x000030a6u, 0x000200f8u, + 0x00003093u, 0x00050050u, 0x000000f2u, 0x00003096u, 0x0000c26cu, 0x00002fe0u, 0x0004007cu, 0x000000b4u, + 0x00003097u, 0x00003096u, 0x00050051u, 0x00000006u, 0x00003987u, 0x00003097u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003988u, 0x00002e26u, 0x00003987u, 0x00050080u, 0x00000006u, 0x00003989u, 0x00002e24u, + 0x00003988u, 0x00050051u, 0x00000006u, 0x0000398bu, 0x00003097u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x0000398du, 0x00003989u, 0x0000398bu, 0x000500c7u, 0x00000006u, 0x0000398fu, 0x0000398du, 0x00000f3bu, + 0x000500c7u, 0x00000006u, 0x00003993u, 0x00003987u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003994u, + 0x00003993u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003996u, 0x0000398fu, 0x00003994u, 0x000500c6u, + 0x00000006u, 0x00003998u, 0x00003996u, 0x00000469u, 0x00080041u, 0x00000676u, 0x0000399bu, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00003998u, 0x0004003du, 0x0000000fu, 0x0000399cu, 0x0000399bu, + 0x00040071u, 0x00000006u, 0x0000399du, 0x0000399cu, 0x000500c4u, 0x00000006u, 0x0000399fu, 0x0000399du, + 0x00000232u, 0x00050080u, 0x00000006u, 0x000039a1u, 0x0000399fu, 0x00000461u, 0x000500c6u, 0x00000006u, + 0x000039a4u, 0x000039a1u, 0x0000301eu, 0x000500c5u, 0x00000006u, 0x000039a7u, 0x00000f6cu, 0x000039a4u, + 0x00080041u, 0x00000697u, 0x000039a8u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000039a7u, + 0x0004003du, 0x00000011u, 0x000039a9u, 0x000039a8u, 0x00040071u, 0x00000006u, 0x000039aau, 0x000039a9u, + 0x000300f7u, 0x000039b2u, 0x00000000u, 0x000400fau, 0x00002324u, 0x000039acu, 0x000039afu, 0x000200f8u, + 0x000039afu, 0x00060050u, 0x00000311u, 0x000039ceu, 0x000039aau, 0x000039aau, 0x000039aau, 0x000500c2u, + 0x00000311u, 0x000039cfu, 0x000039ceu, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x000039d1u, 0x000039cfu, + 0x0000c236u, 0x000500c4u, 0x00000311u, 0x000039d4u, 0x000039d1u, 0x0000c237u, 0x000500c2u, 0x00000311u, + 0x000039d7u, 0x000039d1u, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x000039d8u, 0x000039d4u, 0x000039d7u, + 0x000500c7u, 0x00000006u, 0x000039dau, 0x000039aau, 0x00000461u, 0x00050084u, 0x00000006u, 0x000039dbu, + 0x000039dau, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000039ddu, 0x000039d8u, 0x0004007cu, 0x000004bbu, + 0x000039deu, 0x000039ddu, 0x00040071u, 0x00000011u, 0x000039e0u, 0x000039dbu, 0x0004007cu, 0x00000012u, + 0x000039e1u, 0x000039e0u, 0x00050051u, 0x00000012u, 0x000039e2u, 0x000039deu, 0x00000000u, 0x00050051u, + 0x00000012u, 0x000039e3u, 0x000039deu, 0x00000001u, 0x00050051u, 0x00000012u, 0x000039e4u, 0x000039deu, + 0x00000002u, 0x00070050u, 0x00000013u, 0x000039e5u, 0x000039e2u, 0x000039e3u, 0x000039e4u, 0x000039e1u, + 0x000200f9u, 0x000039b2u, 0x000200f8u, 0x000039acu, 0x000500c2u, 0x00000006u, 0x000039b9u, 0x000039aau, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x000039bbu, 0x000039aau, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x000039bdu, 0x000039b9u, 0x0004007cu, 0x00000012u, 0x000039beu, 0x000039bdu, 0x00040071u, 0x00000011u, + 0x000039c6u, 0x000039bbu, 0x0004007cu, 0x00000012u, 0x000039c7u, 0x000039c6u, 0x00070050u, 0x00000013u, + 0x000039c8u, 0x000039beu, 0x000039beu, 0x000039beu, 0x000039c7u, 0x000200f9u, 0x000039b2u, 0x000200f8u, + 0x000039b2u, 0x000700f5u, 0x00000013u, 0x00007c1eu, 0x000039c8u, 0x000039acu, 0x000039e5u, 0x000039afu, + 0x00050050u, 0x000000f2u, 0x0000309fu, 0x00007bc9u, 0x0000c26bu, 0x0004007cu, 0x000000b4u, 0x000030a0u, + 0x0000309fu, 0x00050051u, 0x00000006u, 0x000039f4u, 0x000030a0u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000039f5u, 0x00002e26u, 0x000039f4u, 0x00050080u, 0x00000006u, 0x000039f6u, 0x00002e24u, 0x000039f5u, + 0x00050051u, 0x00000006u, 0x000039f8u, 0x000030a0u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000039fau, + 0x000039f6u, 0x000039f8u, 0x000500c7u, 0x00000006u, 0x000039fcu, 0x000039fau, 0x00000f3bu, 0x000500c7u, + 0x00000006u, 0x00003a00u, 0x000039f4u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003a01u, 0x00003a00u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003a03u, 0x000039fcu, 0x00003a01u, 0x000500c6u, 0x00000006u, + 0x00003a05u, 0x00003a03u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003a08u, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00003a05u, 0x0004003du, 0x0000000fu, 0x00003a09u, 0x00003a08u, 0x00040071u, + 0x00000006u, 0x00003a0au, 0x00003a09u, 0x000500c4u, 0x00000006u, 0x00003a0cu, 0x00003a0au, 0x00000232u, + 0x00050080u, 0x00000006u, 0x00003a0eu, 0x00003a0cu, 0x0000038bu, 0x000500c6u, 0x00000006u, 0x00003a11u, + 0x00003a0eu, 0x0000301eu, 0x000500c5u, 0x00000006u, 0x00003a14u, 0x00000f6cu, 0x00003a11u, 0x00080041u, + 0x00000697u, 0x00003a15u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003a14u, 0x0004003du, + 0x00000011u, 0x00003a16u, 0x00003a15u, 0x00040071u, 0x00000006u, 0x00003a17u, 0x00003a16u, 0x000300f7u, + 0x00003a1fu, 0x00000000u, 0x000400fau, 0x00002324u, 0x00003a19u, 0x00003a1cu, 0x000200f8u, 0x00003a1cu, + 0x00060050u, 0x00000311u, 0x00003a3bu, 0x00003a17u, 0x00003a17u, 0x00003a17u, 0x000500c2u, 0x00000311u, + 0x00003a3cu, 0x00003a3bu, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00003a3eu, 0x00003a3cu, 0x0000c236u, + 0x000500c4u, 0x00000311u, 0x00003a41u, 0x00003a3eu, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x00003a44u, + 0x00003a3eu, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00003a45u, 0x00003a41u, 0x00003a44u, 0x000500c7u, + 0x00000006u, 0x00003a47u, 0x00003a17u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003a48u, 0x00003a47u, + 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003a4au, 0x00003a45u, 0x0004007cu, 0x000004bbu, 0x00003a4bu, + 0x00003a4au, 0x00040071u, 0x00000011u, 0x00003a4du, 0x00003a48u, 0x0004007cu, 0x00000012u, 0x00003a4eu, + 0x00003a4du, 0x00050051u, 0x00000012u, 0x00003a4fu, 0x00003a4bu, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00003a50u, 0x00003a4bu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003a51u, 0x00003a4bu, 0x00000002u, + 0x00070050u, 0x00000013u, 0x00003a52u, 0x00003a4fu, 0x00003a50u, 0x00003a51u, 0x00003a4eu, 0x000200f9u, + 0x00003a1fu, 0x000200f8u, 0x00003a19u, 0x000500c2u, 0x00000006u, 0x00003a26u, 0x00003a17u, 0x00000262u, + 0x000500c7u, 0x00000006u, 0x00003a28u, 0x00003a17u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003a2au, + 0x00003a26u, 0x0004007cu, 0x00000012u, 0x00003a2bu, 0x00003a2au, 0x00040071u, 0x00000011u, 0x00003a33u, + 0x00003a28u, 0x0004007cu, 0x00000012u, 0x00003a34u, 0x00003a33u, 0x00070050u, 0x00000013u, 0x00003a35u, + 0x00003a2bu, 0x00003a2bu, 0x00003a2bu, 0x00003a34u, 0x000200f9u, 0x00003a1fu, 0x000200f8u, 0x00003a1fu, + 0x000700f5u, 0x00000013u, 0x00007c23u, 0x00003a35u, 0x00003a19u, 0x00003a52u, 0x00003a1cu, 0x000200f9u, + 0x000030a6u, 0x000200f8u, 0x000030a6u, 0x000700f5u, 0x00000013u, 0x00007e0fu, 0x00007dd5u, 0x00003945u, + 0x00007c23u, 0x00003a1fu, 0x000700f5u, 0x00000013u, 0x00007d90u, 0x00007d54u, 0x00003945u, 0x00007c1eu, + 0x00003a1fu, 0x000300f7u, 0x000030b2u, 0x00000000u, 0x000400fau, 0x00002fecu, 0x000030a8u, 0x000030b2u, + 0x000200f8u, 0x000030a8u, 0x00050050u, 0x000000f2u, 0x000030abu, 0x0000c26cu, 0x0000c26bu, 0x0004007cu, + 0x000000b4u, 0x000030acu, 0x000030abu, 0x00050051u, 0x00000006u, 0x00003a61u, 0x000030acu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003a62u, 0x00002e26u, 0x00003a61u, 0x00050080u, 0x00000006u, 0x00003a63u, + 0x00002e24u, 0x00003a62u, 0x00050051u, 0x00000006u, 0x00003a65u, 0x000030acu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003a67u, 0x00003a63u, 0x00003a65u, 0x000500c7u, 0x00000006u, 0x00003a69u, 0x00003a67u, + 0x00000f3bu, 0x000500c7u, 0x00000006u, 0x00003a6du, 0x00003a61u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00003a6eu, 0x00003a6du, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003a70u, 0x00003a69u, 0x00003a6eu, + 0x000500c6u, 0x00000006u, 0x00003a72u, 0x00003a70u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00003a75u, + 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003a72u, 0x0004003du, 0x0000000fu, 0x00003a76u, + 0x00003a75u, 0x00040071u, 0x00000006u, 0x00003a77u, 0x00003a76u, 0x000500c4u, 0x00000006u, 0x00003a79u, + 0x00003a77u, 0x00000232u, 0x00050080u, 0x00000006u, 0x00003a7bu, 0x00003a79u, 0x00000469u, 0x000500c6u, + 0x00000006u, 0x00003a7eu, 0x00003a7bu, 0x0000301eu, 0x000500c5u, 0x00000006u, 0x00003a81u, 0x00000f6cu, + 0x00003a7eu, 0x00080041u, 0x00000697u, 0x00003a82u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00003a81u, 0x0004003du, 0x00000011u, 0x00003a83u, 0x00003a82u, 0x00040071u, 0x00000006u, 0x00003a84u, + 0x00003a83u, 0x000300f7u, 0x00003a8cu, 0x00000000u, 0x000400fau, 0x00002324u, 0x00003a86u, 0x00003a89u, + 0x000200f8u, 0x00003a89u, 0x00060050u, 0x00000311u, 0x00003aa8u, 0x00003a84u, 0x00003a84u, 0x00003a84u, + 0x000500c2u, 0x00000311u, 0x00003aa9u, 0x00003aa8u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00003aabu, + 0x00003aa9u, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00003aaeu, 0x00003aabu, 0x0000c237u, 0x000500c2u, + 0x00000311u, 0x00003ab1u, 0x00003aabu, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00003ab2u, 0x00003aaeu, + 0x00003ab1u, 0x000500c7u, 0x00000006u, 0x00003ab4u, 0x00003a84u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00003ab5u, 0x00003ab4u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003ab7u, 0x00003ab2u, 0x0004007cu, + 0x000004bbu, 0x00003ab8u, 0x00003ab7u, 0x00040071u, 0x00000011u, 0x00003abau, 0x00003ab5u, 0x0004007cu, + 0x00000012u, 0x00003abbu, 0x00003abau, 0x00050051u, 0x00000012u, 0x00003abcu, 0x00003ab8u, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00003abdu, 0x00003ab8u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003abeu, + 0x00003ab8u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003abfu, 0x00003abcu, 0x00003abdu, 0x00003abeu, + 0x00003abbu, 0x000200f9u, 0x00003a8cu, 0x000200f8u, 0x00003a86u, 0x000500c2u, 0x00000006u, 0x00003a93u, + 0x00003a84u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00003a95u, 0x00003a84u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00003a97u, 0x00003a93u, 0x0004007cu, 0x00000012u, 0x00003a98u, 0x00003a97u, 0x00040071u, + 0x00000011u, 0x00003aa0u, 0x00003a95u, 0x0004007cu, 0x00000012u, 0x00003aa1u, 0x00003aa0u, 0x00070050u, + 0x00000013u, 0x00003aa2u, 0x00003a98u, 0x00003a98u, 0x00003a98u, 0x00003aa1u, 0x000200f9u, 0x00003a8cu, + 0x000200f8u, 0x00003a8cu, 0x000700f5u, 0x00000013u, 0x00007c29u, 0x00003aa2u, 0x00003a86u, 0x00003abfu, + 0x00003a89u, 0x000200f9u, 0x000030b2u, 0x000200f8u, 0x000030b2u, 0x000700f5u, 0x00000013u, 0x00007e8bu, + 0x00007e50u, 0x000030a6u, 0x00007c29u, 0x00003a8cu, 0x000200f9u, 0x000030b3u, 0x000200f8u, 0x0000304fu, + 0x0004007cu, 0x000000b4u, 0x00003051u, 0x00007c16u, 0x00040071u, 0x00000006u, 0x00003054u, 0x00002e2cu, + 0x000600a9u, 0x00000008u, 0x00003056u, 0x00002ff8u, 0x00000235u, 0x00000225u, 0x0004007cu, 0x00000006u, + 0x00003057u, 0x00003056u, 0x00050051u, 0x00000006u, 0x0000372bu, 0x00003051u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000372cu, 0x00002e26u, 0x0000372bu, 0x00050080u, 0x00000006u, 0x0000372du, 0x00002e24u, + 0x0000372cu, 0x00050051u, 0x00000006u, 0x0000372fu, 0x00003051u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00003730u, 0x0000372fu, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00003732u, 0x0000372du, 0x00003730u, + 0x000500c7u, 0x00000006u, 0x00003734u, 0x00003732u, 0x00000f3bu, 0x000400c8u, 0x00000006u, 0x00003737u, + 0x0000372fu, 0x000500c7u, 0x00000006u, 0x00003738u, 0x00003737u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00003739u, 0x00003738u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x0000373du, 0x0000372bu, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x0000373eu, 0x0000373du, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003740u, + 0x00003734u, 0x0000373eu, 0x000500c6u, 0x00000006u, 0x00003742u, 0x00003740u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00003745u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003742u, 0x0004003du, + 0x0000000fu, 0x00003746u, 0x00003745u, 0x00040071u, 0x00000006u, 0x00003747u, 0x00003746u, 0x000500c2u, + 0x00000006u, 0x0000374au, 0x00003747u, 0x00003739u, 0x000500c7u, 0x00000006u, 0x0000374bu, 0x0000374au, + 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x0000374du, 0x00003054u, 0x00000238u, 0x000500c5u, 0x00000006u, + 0x0000374fu, 0x0000374bu, 0x0000374du, 0x000500c4u, 0x00000006u, 0x00003751u, 0x0000374fu, 0x00000232u, + 0x00050080u, 0x00000006u, 0x00003753u, 0x00003751u, 0x00003057u, 0x000500c6u, 0x00000006u, 0x00003756u, + 0x00003753u, 0x0000301eu, 0x000500c5u, 0x00000006u, 0x00003759u, 0x00000f6cu, 0x00003756u, 0x00080041u, + 0x00000697u, 0x0000375au, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00003759u, 0x0004003du, + 0x00000011u, 0x0000375bu, 0x0000375au, 0x00040071u, 0x00000006u, 0x0000375cu, 0x0000375bu, 0x000300f7u, + 0x00003764u, 0x00000000u, 0x000400fau, 0x00002324u, 0x0000375eu, 0x00003761u, 0x000200f8u, 0x00003761u, + 0x00060050u, 0x00000311u, 0x00003780u, 0x0000375cu, 0x0000375cu, 0x0000375cu, 0x000500c2u, 0x00000311u, + 0x00003781u, 0x00003780u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00003783u, 0x00003781u, 0x0000c236u, + 0x000500c4u, 0x00000311u, 0x00003786u, 0x00003783u, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x00003789u, + 0x00003783u, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x0000378au, 0x00003786u, 0x00003789u, 0x000500c7u, + 0x00000006u, 0x0000378cu, 0x0000375cu, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000378du, 0x0000378cu, + 0x000006c8u, 0x00040071u, 0x000004bfu, 0x0000378fu, 0x0000378au, 0x0004007cu, 0x000004bbu, 0x00003790u, + 0x0000378fu, 0x00040071u, 0x00000011u, 0x00003792u, 0x0000378du, 0x0004007cu, 0x00000012u, 0x00003793u, + 0x00003792u, 0x00050051u, 0x00000012u, 0x00003794u, 0x00003790u, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00003795u, 0x00003790u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003796u, 0x00003790u, 0x00000002u, + 0x00070050u, 0x00000013u, 0x00003797u, 0x00003794u, 0x00003795u, 0x00003796u, 0x00003793u, 0x000200f9u, + 0x00003764u, 0x000200f8u, 0x0000375eu, 0x000500c2u, 0x00000006u, 0x0000376bu, 0x0000375cu, 0x00000262u, + 0x000500c7u, 0x00000006u, 0x0000376du, 0x0000375cu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000376fu, + 0x0000376bu, 0x0004007cu, 0x00000012u, 0x00003770u, 0x0000376fu, 0x00040071u, 0x00000011u, 0x00003778u, + 0x0000376du, 0x0004007cu, 0x00000012u, 0x00003779u, 0x00003778u, 0x00070050u, 0x00000013u, 0x0000377au, + 0x00003770u, 0x00003770u, 0x00003770u, 0x00003779u, 0x000200f9u, 0x00003764u, 0x000200f8u, 0x00003764u, + 0x000700f5u, 0x00000013u, 0x00007c2au, 0x0000377au, 0x0000375eu, 0x00003797u, 0x00003761u, 0x000300f7u, + 0x00003077u, 0x00000000u, 0x000400fau, 0x00002363u, 0x0000305eu, 0x00003077u, 0x000200f8u, 0x0000305eu, + 0x00050050u, 0x000000f2u, 0x00003061u, 0x0000c26cu, 0x00002fe0u, 0x0004007cu, 0x000000b4u, 0x00003062u, + 0x00003061u, 0x00050051u, 0x00000006u, 0x000037a7u, 0x00003062u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000037a8u, 0x00002e26u, 0x000037a7u, 0x00050080u, 0x00000006u, 0x000037a9u, 0x00002e24u, 0x000037a8u, + 0x00050051u, 0x00000006u, 0x000037abu, 0x00003062u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000037acu, + 0x000037abu, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000037aeu, 0x000037a9u, 0x000037acu, 0x000500c7u, + 0x00000006u, 0x000037b0u, 0x000037aeu, 0x00000f3bu, 0x000400c8u, 0x00000006u, 0x000037b3u, 0x000037abu, + 0x000500c7u, 0x00000006u, 0x000037b4u, 0x000037b3u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000037b5u, + 0x000037b4u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000037b9u, 0x000037a7u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000037bau, 0x000037b9u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000037bcu, 0x000037b0u, + 0x000037bau, 0x000500c6u, 0x00000006u, 0x000037beu, 0x000037bcu, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000037c1u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000037beu, 0x0004003du, 0x0000000fu, + 0x000037c2u, 0x000037c1u, 0x00040071u, 0x00000006u, 0x000037c3u, 0x000037c2u, 0x000500c2u, 0x00000006u, + 0x000037c6u, 0x000037c3u, 0x000037b5u, 0x000500c7u, 0x00000006u, 0x000037c7u, 0x000037c6u, 0x00000ea6u, + 0x000500c5u, 0x00000006u, 0x000037cbu, 0x000037c7u, 0x0000374du, 0x000500c4u, 0x00000006u, 0x000037cdu, + 0x000037cbu, 0x00000232u, 0x00050080u, 0x00000006u, 0x000037cfu, 0x000037cdu, 0x00000461u, 0x000500c6u, + 0x00000006u, 0x000037d2u, 0x000037cfu, 0x0000301eu, 0x000500c5u, 0x00000006u, 0x000037d5u, 0x00000f6cu, + 0x000037d2u, 0x00080041u, 0x00000697u, 0x000037d6u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x000037d5u, 0x0004003du, 0x00000011u, 0x000037d7u, 0x000037d6u, 0x00040071u, 0x00000006u, 0x000037d8u, + 0x000037d7u, 0x000300f7u, 0x000037e0u, 0x00000000u, 0x000400fau, 0x00002324u, 0x000037dau, 0x000037ddu, + 0x000200f8u, 0x000037ddu, 0x00060050u, 0x00000311u, 0x000037fcu, 0x000037d8u, 0x000037d8u, 0x000037d8u, + 0x000500c2u, 0x00000311u, 0x000037fdu, 0x000037fcu, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x000037ffu, + 0x000037fdu, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00003802u, 0x000037ffu, 0x0000c237u, 0x000500c2u, + 0x00000311u, 0x00003805u, 0x000037ffu, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00003806u, 0x00003802u, + 0x00003805u, 0x000500c7u, 0x00000006u, 0x00003808u, 0x000037d8u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00003809u, 0x00003808u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x0000380bu, 0x00003806u, 0x0004007cu, + 0x000004bbu, 0x0000380cu, 0x0000380bu, 0x00040071u, 0x00000011u, 0x0000380eu, 0x00003809u, 0x0004007cu, + 0x00000012u, 0x0000380fu, 0x0000380eu, 0x00050051u, 0x00000012u, 0x00003810u, 0x0000380cu, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00003811u, 0x0000380cu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003812u, + 0x0000380cu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003813u, 0x00003810u, 0x00003811u, 0x00003812u, + 0x0000380fu, 0x000200f9u, 0x000037e0u, 0x000200f8u, 0x000037dau, 0x000500c2u, 0x00000006u, 0x000037e7u, + 0x000037d8u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x000037e9u, 0x000037d8u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x000037ebu, 0x000037e7u, 0x0004007cu, 0x00000012u, 0x000037ecu, 0x000037ebu, 0x00040071u, + 0x00000011u, 0x000037f4u, 0x000037e9u, 0x0004007cu, 0x00000012u, 0x000037f5u, 0x000037f4u, 0x00070050u, + 0x00000013u, 0x000037f6u, 0x000037ecu, 0x000037ecu, 0x000037ecu, 0x000037f5u, 0x000200f9u, 0x000037e0u, + 0x000200f8u, 0x000037e0u, 0x000700f5u, 0x00000013u, 0x00007c2du, 0x000037f6u, 0x000037dau, 0x00003813u, + 0x000037ddu, 0x00050050u, 0x000000f2u, 0x0000306du, 0x00007bc9u, 0x0000c26bu, 0x0004007cu, 0x000000b4u, + 0x0000306eu, 0x0000306du, 0x00050051u, 0x00000006u, 0x00003823u, 0x0000306eu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003824u, 0x00002e26u, 0x00003823u, 0x00050080u, 0x00000006u, 0x00003825u, 0x00002e24u, + 0x00003824u, 0x00050051u, 0x00000006u, 0x00003827u, 0x0000306eu, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00003828u, 0x00003827u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000382au, 0x00003825u, 0x00003828u, + 0x000500c7u, 0x00000006u, 0x0000382cu, 0x0000382au, 0x00000f3bu, 0x000400c8u, 0x00000006u, 0x0000382fu, + 0x00003827u, 0x000500c7u, 0x00000006u, 0x00003830u, 0x0000382fu, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00003831u, 0x00003830u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00003835u, 0x00003823u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003836u, 0x00003835u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00003838u, + 0x0000382cu, 0x00003836u, 0x000500c6u, 0x00000006u, 0x0000383au, 0x00003838u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x0000383du, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000383au, 0x0004003du, + 0x0000000fu, 0x0000383eu, 0x0000383du, 0x00040071u, 0x00000006u, 0x0000383fu, 0x0000383eu, 0x000500c2u, + 0x00000006u, 0x00003842u, 0x0000383fu, 0x00003831u, 0x000500c7u, 0x00000006u, 0x00003843u, 0x00003842u, + 0x00000ea6u, 0x000500c5u, 0x00000006u, 0x00003847u, 0x00003843u, 0x0000374du, 0x000500c4u, 0x00000006u, + 0x00003849u, 0x00003847u, 0x00000232u, 0x00050080u, 0x00000006u, 0x0000384bu, 0x00003849u, 0x0000038bu, + 0x000500c6u, 0x00000006u, 0x0000384eu, 0x0000384bu, 0x0000301eu, 0x000500c5u, 0x00000006u, 0x00003851u, + 0x00000f6cu, 0x0000384eu, 0x00080041u, 0x00000697u, 0x00003852u, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00003851u, 0x0004003du, 0x00000011u, 0x00003853u, 0x00003852u, 0x00040071u, 0x00000006u, + 0x00003854u, 0x00003853u, 0x000300f7u, 0x0000385cu, 0x00000000u, 0x000400fau, 0x00002324u, 0x00003856u, + 0x00003859u, 0x000200f8u, 0x00003859u, 0x00060050u, 0x00000311u, 0x00003878u, 0x00003854u, 0x00003854u, + 0x00003854u, 0x000500c2u, 0x00000311u, 0x00003879u, 0x00003878u, 0x00000e44u, 0x000500c7u, 0x00000311u, + 0x0000387bu, 0x00003879u, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x0000387eu, 0x0000387bu, 0x0000c237u, + 0x000500c2u, 0x00000311u, 0x00003881u, 0x0000387bu, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00003882u, + 0x0000387eu, 0x00003881u, 0x000500c7u, 0x00000006u, 0x00003884u, 0x00003854u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00003885u, 0x00003884u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003887u, 0x00003882u, + 0x0004007cu, 0x000004bbu, 0x00003888u, 0x00003887u, 0x00040071u, 0x00000011u, 0x0000388au, 0x00003885u, + 0x0004007cu, 0x00000012u, 0x0000388bu, 0x0000388au, 0x00050051u, 0x00000012u, 0x0000388cu, 0x00003888u, + 0x00000000u, 0x00050051u, 0x00000012u, 0x0000388du, 0x00003888u, 0x00000001u, 0x00050051u, 0x00000012u, + 0x0000388eu, 0x00003888u, 0x00000002u, 0x00070050u, 0x00000013u, 0x0000388fu, 0x0000388cu, 0x0000388du, + 0x0000388eu, 0x0000388bu, 0x000200f9u, 0x0000385cu, 0x000200f8u, 0x00003856u, 0x000500c2u, 0x00000006u, + 0x00003863u, 0x00003854u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00003865u, 0x00003854u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00003867u, 0x00003863u, 0x0004007cu, 0x00000012u, 0x00003868u, 0x00003867u, + 0x00040071u, 0x00000011u, 0x00003870u, 0x00003865u, 0x0004007cu, 0x00000012u, 0x00003871u, 0x00003870u, + 0x00070050u, 0x00000013u, 0x00003872u, 0x00003868u, 0x00003868u, 0x00003868u, 0x00003871u, 0x000200f9u, + 0x0000385cu, 0x000200f8u, 0x0000385cu, 0x000700f5u, 0x00000013u, 0x00007c30u, 0x00003872u, 0x00003856u, + 0x0000388fu, 0x00003859u, 0x000200f9u, 0x00003077u, 0x000200f8u, 0x00003077u, 0x000700f5u, 0x00000013u, + 0x00007e0bu, 0x00007dd5u, 0x00003764u, 0x00007c30u, 0x0000385cu, 0x000700f5u, 0x00000013u, 0x00007d8bu, + 0x00007d54u, 0x00003764u, 0x00007c2du, 0x0000385cu, 0x000300f7u, 0x00003086u, 0x00000000u, 0x000400fau, + 0x00002fecu, 0x00003079u, 0x00003086u, 0x000200f8u, 0x00003079u, 0x00050050u, 0x000000f2u, 0x0000307cu, + 0x0000c26cu, 0x0000c26bu, 0x0004007cu, 0x000000b4u, 0x0000307du, 0x0000307cu, 0x00050051u, 0x00000006u, + 0x0000389fu, 0x0000307du, 0x00000001u, 0x00050084u, 0x00000006u, 0x000038a0u, 0x00002e26u, 0x0000389fu, + 0x00050080u, 0x00000006u, 0x000038a1u, 0x00002e24u, 0x000038a0u, 0x00050051u, 0x00000006u, 0x000038a3u, + 0x0000307du, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000038a4u, 0x000038a3u, 0x0000022fu, 0x00050080u, + 0x00000006u, 0x000038a6u, 0x000038a1u, 0x000038a4u, 0x000500c7u, 0x00000006u, 0x000038a8u, 0x000038a6u, + 0x00000f3bu, 0x000400c8u, 0x00000006u, 0x000038abu, 0x000038a3u, 0x000500c7u, 0x00000006u, 0x000038acu, + 0x000038abu, 0x00000461u, 0x00050084u, 0x00000006u, 0x000038adu, 0x000038acu, 0x00000709u, 0x000500c7u, + 0x00000006u, 0x000038b1u, 0x0000389fu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000038b2u, 0x000038b1u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x000038b4u, 0x000038a8u, 0x000038b2u, 0x000500c6u, 0x00000006u, + 0x000038b6u, 0x000038b4u, 0x00000469u, 0x00080041u, 0x00000676u, 0x000038b9u, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x000038b6u, 0x0004003du, 0x0000000fu, 0x000038bau, 0x000038b9u, 0x00040071u, + 0x00000006u, 0x000038bbu, 0x000038bau, 0x000500c2u, 0x00000006u, 0x000038beu, 0x000038bbu, 0x000038adu, + 0x000500c7u, 0x00000006u, 0x000038bfu, 0x000038beu, 0x00000ea6u, 0x000500c5u, 0x00000006u, 0x000038c3u, + 0x000038bfu, 0x0000374du, 0x000500c4u, 0x00000006u, 0x000038c5u, 0x000038c3u, 0x00000232u, 0x00050080u, + 0x00000006u, 0x000038c7u, 0x000038c5u, 0x00000469u, 0x000500c6u, 0x00000006u, 0x000038cau, 0x000038c7u, + 0x0000301eu, 0x000500c5u, 0x00000006u, 0x000038cdu, 0x00000f6cu, 0x000038cau, 0x00080041u, 0x00000697u, + 0x000038ceu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000038cdu, 0x0004003du, 0x00000011u, + 0x000038cfu, 0x000038ceu, 0x00040071u, 0x00000006u, 0x000038d0u, 0x000038cfu, 0x000300f7u, 0x000038d8u, + 0x00000000u, 0x000400fau, 0x00002324u, 0x000038d2u, 0x000038d5u, 0x000200f8u, 0x000038d5u, 0x00060050u, + 0x00000311u, 0x000038f4u, 0x000038d0u, 0x000038d0u, 0x000038d0u, 0x000500c2u, 0x00000311u, 0x000038f5u, + 0x000038f4u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x000038f7u, 0x000038f5u, 0x0000c236u, 0x000500c4u, + 0x00000311u, 0x000038fau, 0x000038f7u, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x000038fdu, 0x000038f7u, + 0x0000c238u, 0x000500c5u, 0x00000311u, 0x000038feu, 0x000038fau, 0x000038fdu, 0x000500c7u, 0x00000006u, + 0x00003900u, 0x000038d0u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003901u, 0x00003900u, 0x000006c8u, + 0x00040071u, 0x000004bfu, 0x00003903u, 0x000038feu, 0x0004007cu, 0x000004bbu, 0x00003904u, 0x00003903u, + 0x00040071u, 0x00000011u, 0x00003906u, 0x00003901u, 0x0004007cu, 0x00000012u, 0x00003907u, 0x00003906u, + 0x00050051u, 0x00000012u, 0x00003908u, 0x00003904u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003909u, + 0x00003904u, 0x00000001u, 0x00050051u, 0x00000012u, 0x0000390au, 0x00003904u, 0x00000002u, 0x00070050u, + 0x00000013u, 0x0000390bu, 0x00003908u, 0x00003909u, 0x0000390au, 0x00003907u, 0x000200f9u, 0x000038d8u, + 0x000200f8u, 0x000038d2u, 0x000500c2u, 0x00000006u, 0x000038dfu, 0x000038d0u, 0x00000262u, 0x000500c7u, + 0x00000006u, 0x000038e1u, 0x000038d0u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000038e3u, 0x000038dfu, + 0x0004007cu, 0x00000012u, 0x000038e4u, 0x000038e3u, 0x00040071u, 0x00000011u, 0x000038ecu, 0x000038e1u, + 0x0004007cu, 0x00000012u, 0x000038edu, 0x000038ecu, 0x00070050u, 0x00000013u, 0x000038eeu, 0x000038e4u, + 0x000038e4u, 0x000038e4u, 0x000038edu, 0x000200f9u, 0x000038d8u, 0x000200f8u, 0x000038d8u, 0x000700f5u, + 0x00000013u, 0x00007c36u, 0x000038eeu, 0x000038d2u, 0x0000390bu, 0x000038d5u, 0x000200f9u, 0x00003086u, + 0x000200f8u, 0x00003086u, 0x000700f5u, 0x00000013u, 0x00007e86u, 0x00007e50u, 0x00003077u, 0x00007c36u, + 0x000038d8u, 0x000200f9u, 0x000030b3u, 0x000200f8u, 0x00003023u, 0x0004007cu, 0x000000b4u, 0x00003025u, + 0x00007c16u, 0x000600a9u, 0x00000008u, 0x00003027u, 0x00002ff8u, 0x00000235u, 0x00000225u, 0x0004007cu, + 0x00000006u, 0x00003028u, 0x00003027u, 0x00050051u, 0x00000006u, 0x0000356au, 0x00003025u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000356bu, 0x00002e26u, 0x0000356au, 0x00050080u, 0x00000006u, 0x0000356cu, + 0x00002e24u, 0x0000356bu, 0x00050051u, 0x00000006u, 0x0000356eu, 0x00003025u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x0000356fu, 0x0000356eu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003571u, 0x0000356cu, + 0x0000356fu, 0x000500c7u, 0x00000006u, 0x00003573u, 0x00003571u, 0x00000f3bu, 0x000500c2u, 0x00000006u, + 0x00003575u, 0x00003573u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00003578u, 0x0000356au, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00003579u, 0x00003578u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x0000357bu, + 0x00003575u, 0x00003579u, 0x000500c6u, 0x00000006u, 0x0000357du, 0x0000357bu, 0x00000461u, 0x00080041u, + 0x00000697u, 0x00003580u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000357du, 0x0004003du, + 0x00000011u, 0x00003581u, 0x00003580u, 0x00040071u, 0x00000006u, 0x00003582u, 0x00003581u, 0x000500c2u, + 0x00000006u, 0x00003584u, 0x00003582u, 0x0000023eu, 0x000500c7u, 0x00000006u, 0x00003585u, 0x00003584u, + 0x0000100cu, 0x00050080u, 0x00000006u, 0x00003587u, 0x00003585u, 0x00003028u, 0x000500c6u, 0x00000006u, + 0x0000358au, 0x00003587u, 0x0000301eu, 0x000500c5u, 0x00000006u, 0x0000358du, 0x00000f6cu, 0x0000358au, + 0x00080041u, 0x00000697u, 0x0000358eu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000358du, + 0x0004003du, 0x00000011u, 0x0000358fu, 0x0000358eu, 0x00040071u, 0x00000006u, 0x00003590u, 0x0000358fu, + 0x000300f7u, 0x00003598u, 0x00000000u, 0x000400fau, 0x00002324u, 0x00003592u, 0x00003595u, 0x000200f8u, + 0x00003595u, 0x00060050u, 0x00000311u, 0x000035b4u, 0x00003590u, 0x00003590u, 0x00003590u, 0x000500c2u, + 0x00000311u, 0x000035b5u, 0x000035b4u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x000035b7u, 0x000035b5u, + 0x0000c236u, 0x000500c4u, 0x00000311u, 0x000035bau, 0x000035b7u, 0x0000c237u, 0x000500c2u, 0x00000311u, + 0x000035bdu, 0x000035b7u, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x000035beu, 0x000035bau, 0x000035bdu, + 0x000500c7u, 0x00000006u, 0x000035c0u, 0x00003590u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000035c1u, + 0x000035c0u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000035c3u, 0x000035beu, 0x0004007cu, 0x000004bbu, + 0x000035c4u, 0x000035c3u, 0x00040071u, 0x00000011u, 0x000035c6u, 0x000035c1u, 0x0004007cu, 0x00000012u, + 0x000035c7u, 0x000035c6u, 0x00050051u, 0x00000012u, 0x000035c8u, 0x000035c4u, 0x00000000u, 0x00050051u, + 0x00000012u, 0x000035c9u, 0x000035c4u, 0x00000001u, 0x00050051u, 0x00000012u, 0x000035cau, 0x000035c4u, + 0x00000002u, 0x00070050u, 0x00000013u, 0x000035cbu, 0x000035c8u, 0x000035c9u, 0x000035cau, 0x000035c7u, + 0x000200f9u, 0x00003598u, 0x000200f8u, 0x00003592u, 0x000500c2u, 0x00000006u, 0x0000359fu, 0x00003590u, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x000035a1u, 0x00003590u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x000035a3u, 0x0000359fu, 0x0004007cu, 0x00000012u, 0x000035a4u, 0x000035a3u, 0x00040071u, 0x00000011u, + 0x000035acu, 0x000035a1u, 0x0004007cu, 0x00000012u, 0x000035adu, 0x000035acu, 0x00070050u, 0x00000013u, + 0x000035aeu, 0x000035a4u, 0x000035a4u, 0x000035a4u, 0x000035adu, 0x000200f9u, 0x00003598u, 0x000200f8u, + 0x00003598u, 0x000700f5u, 0x00000013u, 0x00007c37u, 0x000035aeu, 0x00003592u, 0x000035cbu, 0x00003595u, + 0x000300f7u, 0x00003042u, 0x00000000u, 0x000400fau, 0x00002363u, 0x0000302fu, 0x00003042u, 0x000200f8u, + 0x0000302fu, 0x00050050u, 0x000000f2u, 0x00003032u, 0x0000c26cu, 0x00002fe0u, 0x0004007cu, 0x000000b4u, + 0x00003033u, 0x00003032u, 0x00050051u, 0x00000006u, 0x000035dau, 0x00003033u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000035dbu, 0x00002e26u, 0x000035dau, 0x00050080u, 0x00000006u, 0x000035dcu, 0x00002e24u, + 0x000035dbu, 0x00050051u, 0x00000006u, 0x000035deu, 0x00003033u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000035dfu, 0x000035deu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000035e1u, 0x000035dcu, 0x000035dfu, + 0x000500c7u, 0x00000006u, 0x000035e3u, 0x000035e1u, 0x00000f3bu, 0x000500c2u, 0x00000006u, 0x000035e5u, + 0x000035e3u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000035e8u, 0x000035dau, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000035e9u, 0x000035e8u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000035ebu, 0x000035e5u, + 0x000035e9u, 0x000500c6u, 0x00000006u, 0x000035edu, 0x000035ebu, 0x00000461u, 0x00080041u, 0x00000697u, + 0x000035f0u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000035edu, 0x0004003du, 0x00000011u, + 0x000035f1u, 0x000035f0u, 0x00040071u, 0x00000006u, 0x000035f2u, 0x000035f1u, 0x000500c2u, 0x00000006u, + 0x000035f4u, 0x000035f2u, 0x0000023eu, 0x000500c7u, 0x00000006u, 0x000035f5u, 0x000035f4u, 0x0000100cu, + 0x00050080u, 0x00000006u, 0x000035f7u, 0x000035f5u, 0x00000461u, 0x000500c6u, 0x00000006u, 0x000035fau, + 0x000035f7u, 0x0000301eu, 0x000500c5u, 0x00000006u, 0x000035fdu, 0x00000f6cu, 0x000035fau, 0x00080041u, + 0x00000697u, 0x000035feu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000035fdu, 0x0004003du, + 0x00000011u, 0x000035ffu, 0x000035feu, 0x00040071u, 0x00000006u, 0x00003600u, 0x000035ffu, 0x000300f7u, + 0x00003608u, 0x00000000u, 0x000400fau, 0x00002324u, 0x00003602u, 0x00003605u, 0x000200f8u, 0x00003605u, + 0x00060050u, 0x00000311u, 0x00003624u, 0x00003600u, 0x00003600u, 0x00003600u, 0x000500c2u, 0x00000311u, + 0x00003625u, 0x00003624u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00003627u, 0x00003625u, 0x0000c236u, + 0x000500c4u, 0x00000311u, 0x0000362au, 0x00003627u, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x0000362du, + 0x00003627u, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x0000362eu, 0x0000362au, 0x0000362du, 0x000500c7u, + 0x00000006u, 0x00003630u, 0x00003600u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003631u, 0x00003630u, + 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00003633u, 0x0000362eu, 0x0004007cu, 0x000004bbu, 0x00003634u, + 0x00003633u, 0x00040071u, 0x00000011u, 0x00003636u, 0x00003631u, 0x0004007cu, 0x00000012u, 0x00003637u, + 0x00003636u, 0x00050051u, 0x00000012u, 0x00003638u, 0x00003634u, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00003639u, 0x00003634u, 0x00000001u, 0x00050051u, 0x00000012u, 0x0000363au, 0x00003634u, 0x00000002u, + 0x00070050u, 0x00000013u, 0x0000363bu, 0x00003638u, 0x00003639u, 0x0000363au, 0x00003637u, 0x000200f9u, + 0x00003608u, 0x000200f8u, 0x00003602u, 0x000500c2u, 0x00000006u, 0x0000360fu, 0x00003600u, 0x00000262u, + 0x000500c7u, 0x00000006u, 0x00003611u, 0x00003600u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003613u, + 0x0000360fu, 0x0004007cu, 0x00000012u, 0x00003614u, 0x00003613u, 0x00040071u, 0x00000011u, 0x0000361cu, + 0x00003611u, 0x0004007cu, 0x00000012u, 0x0000361du, 0x0000361cu, 0x00070050u, 0x00000013u, 0x0000361eu, + 0x00003614u, 0x00003614u, 0x00003614u, 0x0000361du, 0x000200f9u, 0x00003608u, 0x000200f8u, 0x00003608u, + 0x000700f5u, 0x00000013u, 0x00007c3au, 0x0000361eu, 0x00003602u, 0x0000363bu, 0x00003605u, 0x00050050u, + 0x000000f2u, 0x0000303bu, 0x00007bc9u, 0x0000c26bu, 0x0004007cu, 0x000000b4u, 0x0000303cu, 0x0000303bu, + 0x00050051u, 0x00000006u, 0x0000364au, 0x0000303cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000364bu, + 0x00002e26u, 0x0000364au, 0x00050080u, 0x00000006u, 0x0000364cu, 0x00002e24u, 0x0000364bu, 0x00050051u, + 0x00000006u, 0x0000364eu, 0x0000303cu, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000364fu, 0x0000364eu, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x00003651u, 0x0000364cu, 0x0000364fu, 0x000500c7u, 0x00000006u, + 0x00003653u, 0x00003651u, 0x00000f3bu, 0x000500c2u, 0x00000006u, 0x00003655u, 0x00003653u, 0x0000022fu, + 0x000500c7u, 0x00000006u, 0x00003658u, 0x0000364au, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00003659u, + 0x00003658u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x0000365bu, 0x00003655u, 0x00003659u, 0x000500c6u, + 0x00000006u, 0x0000365du, 0x0000365bu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00003660u, 0x00000f6au, + 0x00000225u, 0x00002310u, 0x00000225u, 0x0000365du, 0x0004003du, 0x00000011u, 0x00003661u, 0x00003660u, + 0x00040071u, 0x00000006u, 0x00003662u, 0x00003661u, 0x000500c2u, 0x00000006u, 0x00003664u, 0x00003662u, + 0x0000023eu, 0x000500c7u, 0x00000006u, 0x00003665u, 0x00003664u, 0x0000100cu, 0x00050080u, 0x00000006u, + 0x00003667u, 0x00003665u, 0x0000038bu, 0x000500c6u, 0x00000006u, 0x0000366au, 0x00003667u, 0x0000301eu, + 0x000500c5u, 0x00000006u, 0x0000366du, 0x00000f6cu, 0x0000366au, 0x00080041u, 0x00000697u, 0x0000366eu, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000366du, 0x0004003du, 0x00000011u, 0x0000366fu, + 0x0000366eu, 0x00040071u, 0x00000006u, 0x00003670u, 0x0000366fu, 0x000300f7u, 0x00003678u, 0x00000000u, + 0x000400fau, 0x00002324u, 0x00003672u, 0x00003675u, 0x000200f8u, 0x00003675u, 0x00060050u, 0x00000311u, + 0x00003694u, 0x00003670u, 0x00003670u, 0x00003670u, 0x000500c2u, 0x00000311u, 0x00003695u, 0x00003694u, + 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00003697u, 0x00003695u, 0x0000c236u, 0x000500c4u, 0x00000311u, + 0x0000369au, 0x00003697u, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x0000369du, 0x00003697u, 0x0000c238u, + 0x000500c5u, 0x00000311u, 0x0000369eu, 0x0000369au, 0x0000369du, 0x000500c7u, 0x00000006u, 0x000036a0u, + 0x00003670u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000036a1u, 0x000036a0u, 0x000006c8u, 0x00040071u, + 0x000004bfu, 0x000036a3u, 0x0000369eu, 0x0004007cu, 0x000004bbu, 0x000036a4u, 0x000036a3u, 0x00040071u, + 0x00000011u, 0x000036a6u, 0x000036a1u, 0x0004007cu, 0x00000012u, 0x000036a7u, 0x000036a6u, 0x00050051u, + 0x00000012u, 0x000036a8u, 0x000036a4u, 0x00000000u, 0x00050051u, 0x00000012u, 0x000036a9u, 0x000036a4u, + 0x00000001u, 0x00050051u, 0x00000012u, 0x000036aau, 0x000036a4u, 0x00000002u, 0x00070050u, 0x00000013u, + 0x000036abu, 0x000036a8u, 0x000036a9u, 0x000036aau, 0x000036a7u, 0x000200f9u, 0x00003678u, 0x000200f8u, + 0x00003672u, 0x000500c2u, 0x00000006u, 0x0000367fu, 0x00003670u, 0x00000262u, 0x000500c7u, 0x00000006u, + 0x00003681u, 0x00003670u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00003683u, 0x0000367fu, 0x0004007cu, + 0x00000012u, 0x00003684u, 0x00003683u, 0x00040071u, 0x00000011u, 0x0000368cu, 0x00003681u, 0x0004007cu, + 0x00000012u, 0x0000368du, 0x0000368cu, 0x00070050u, 0x00000013u, 0x0000368eu, 0x00003684u, 0x00003684u, + 0x00003684u, 0x0000368du, 0x000200f9u, 0x00003678u, 0x000200f8u, 0x00003678u, 0x000700f5u, 0x00000013u, + 0x00007c3du, 0x0000368eu, 0x00003672u, 0x000036abu, 0x00003675u, 0x000200f9u, 0x00003042u, 0x000200f8u, + 0x00003042u, 0x000700f5u, 0x00000013u, 0x00007e06u, 0x00007dd5u, 0x00003598u, 0x00007c3du, 0x00003678u, + 0x000700f5u, 0x00000013u, 0x00007d85u, 0x00007d54u, 0x00003598u, 0x00007c3au, 0x00003678u, 0x000300f7u, + 0x0000304eu, 0x00000000u, 0x000400fau, 0x00002fecu, 0x00003044u, 0x0000304eu, 0x000200f8u, 0x00003044u, + 0x00050050u, 0x000000f2u, 0x00003047u, 0x0000c26cu, 0x0000c26bu, 0x0004007cu, 0x000000b4u, 0x00003048u, + 0x00003047u, 0x00050051u, 0x00000006u, 0x000036bau, 0x00003048u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000036bbu, 0x00002e26u, 0x000036bau, 0x00050080u, 0x00000006u, 0x000036bcu, 0x00002e24u, 0x000036bbu, + 0x00050051u, 0x00000006u, 0x000036beu, 0x00003048u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000036bfu, + 0x000036beu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000036c1u, 0x000036bcu, 0x000036bfu, 0x000500c7u, + 0x00000006u, 0x000036c3u, 0x000036c1u, 0x00000f3bu, 0x000500c2u, 0x00000006u, 0x000036c5u, 0x000036c3u, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000036c8u, 0x000036bau, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x000036c9u, 0x000036c8u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000036cbu, 0x000036c5u, 0x000036c9u, + 0x000500c6u, 0x00000006u, 0x000036cdu, 0x000036cbu, 0x00000461u, 0x00080041u, 0x00000697u, 0x000036d0u, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000036cdu, 0x0004003du, 0x00000011u, 0x000036d1u, + 0x000036d0u, 0x00040071u, 0x00000006u, 0x000036d2u, 0x000036d1u, 0x000500c2u, 0x00000006u, 0x000036d4u, + 0x000036d2u, 0x0000023eu, 0x000500c7u, 0x00000006u, 0x000036d5u, 0x000036d4u, 0x0000100cu, 0x00050080u, + 0x00000006u, 0x000036d7u, 0x000036d5u, 0x00000469u, 0x000500c6u, 0x00000006u, 0x000036dau, 0x000036d7u, + 0x0000301eu, 0x000500c5u, 0x00000006u, 0x000036ddu, 0x00000f6cu, 0x000036dau, 0x00080041u, 0x00000697u, + 0x000036deu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000036ddu, 0x0004003du, 0x00000011u, + 0x000036dfu, 0x000036deu, 0x00040071u, 0x00000006u, 0x000036e0u, 0x000036dfu, 0x000300f7u, 0x000036e8u, + 0x00000000u, 0x000400fau, 0x00002324u, 0x000036e2u, 0x000036e5u, 0x000200f8u, 0x000036e5u, 0x00060050u, + 0x00000311u, 0x00003704u, 0x000036e0u, 0x000036e0u, 0x000036e0u, 0x000500c2u, 0x00000311u, 0x00003705u, + 0x00003704u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00003707u, 0x00003705u, 0x0000c236u, 0x000500c4u, + 0x00000311u, 0x0000370au, 0x00003707u, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x0000370du, 0x00003707u, + 0x0000c238u, 0x000500c5u, 0x00000311u, 0x0000370eu, 0x0000370au, 0x0000370du, 0x000500c7u, 0x00000006u, + 0x00003710u, 0x000036e0u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00003711u, 0x00003710u, 0x000006c8u, + 0x00040071u, 0x000004bfu, 0x00003713u, 0x0000370eu, 0x0004007cu, 0x000004bbu, 0x00003714u, 0x00003713u, + 0x00040071u, 0x00000011u, 0x00003716u, 0x00003711u, 0x0004007cu, 0x00000012u, 0x00003717u, 0x00003716u, + 0x00050051u, 0x00000012u, 0x00003718u, 0x00003714u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003719u, + 0x00003714u, 0x00000001u, 0x00050051u, 0x00000012u, 0x0000371au, 0x00003714u, 0x00000002u, 0x00070050u, + 0x00000013u, 0x0000371bu, 0x00003718u, 0x00003719u, 0x0000371au, 0x00003717u, 0x000200f9u, 0x000036e8u, + 0x000200f8u, 0x000036e2u, 0x000500c2u, 0x00000006u, 0x000036efu, 0x000036e0u, 0x00000262u, 0x000500c7u, + 0x00000006u, 0x000036f1u, 0x000036e0u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000036f3u, 0x000036efu, + 0x0004007cu, 0x00000012u, 0x000036f4u, 0x000036f3u, 0x00040071u, 0x00000011u, 0x000036fcu, 0x000036f1u, + 0x0004007cu, 0x00000012u, 0x000036fdu, 0x000036fcu, 0x00070050u, 0x00000013u, 0x000036feu, 0x000036f4u, + 0x000036f4u, 0x000036f4u, 0x000036fdu, 0x000200f9u, 0x000036e8u, 0x000200f8u, 0x000036e8u, 0x000700f5u, + 0x00000013u, 0x00007c43u, 0x000036feu, 0x000036e2u, 0x0000371bu, 0x000036e5u, 0x000200f9u, 0x0000304eu, + 0x000200f8u, 0x0000304eu, 0x000700f5u, 0x00000013u, 0x00007e80u, 0x00007e50u, 0x00003042u, 0x00007c43u, + 0x000036e8u, 0x000200f9u, 0x000030b3u, 0x000200f8u, 0x000030b3u, 0x000900f5u, 0x00000013u, 0x00007e7fu, + 0x00007e80u, 0x0000304eu, 0x00007e86u, 0x00003086u, 0x00007e8bu, 0x000030b2u, 0x000900f5u, 0x00000013u, + 0x00007e04u, 0x00007e06u, 0x0000304eu, 0x00007e0bu, 0x00003086u, 0x00007e0fu, 0x000030b2u, 0x000900f5u, + 0x00000013u, 0x00007d83u, 0x00007d85u, 0x0000304eu, 0x00007d8bu, 0x00003086u, 0x00007d90u, 0x000030b2u, + 0x000900f5u, 0x00000013u, 0x00007c91u, 0x00007c37u, 0x0000304eu, 0x00007c2au, 0x00003086u, 0x00007c17u, + 0x000030b2u, 0x000200f9u, 0x000030b4u, 0x000200f8u, 0x000030b4u, 0x000700f5u, 0x00000013u, 0x00007e35u, + 0x00007e50u, 0x00003014u, 0x00007e7fu, 0x000030b3u, 0x000700f5u, 0x00000013u, 0x00007dbau, 0x00007dd5u, + 0x00003014u, 0x00007e04u, 0x000030b3u, 0x000700f5u, 0x00000013u, 0x00007d39u, 0x00007d54u, 0x00003014u, + 0x00007d83u, 0x000030b3u, 0x000700f5u, 0x00000013u, 0x00007c46u, 0x00007c61u, 0x00003014u, 0x00007c91u, + 0x000030b3u, 0x000200f9u, 0x000032dbu, 0x000200f8u, 0x000032dbu, 0x000700f5u, 0x00000013u, 0x00007e34u, + 0x00007e35u, 0x000030b4u, 0x00007e90u, 0x000032dau, 0x000700f5u, 0x00000013u, 0x00007db9u, 0x00007dbau, + 0x000030b4u, 0x00007e12u, 0x000032dau, 0x000700f5u, 0x00000013u, 0x00007d38u, 0x00007d39u, 0x000030b4u, + 0x00007d94u, 0x000032dau, 0x000700f5u, 0x00000013u, 0x00007c45u, 0x00007c46u, 0x000030b4u, 0x00007ca1u, + 0x000032dau, 0x000300f7u, 0x0000346bu, 0x00000000u, 0x000400fau, 0x00002ff6u, 0x000033b8u, 0x0000342bu, + 0x000200f8u, 0x0000342bu, 0x000300f7u, 0x0000346au, 0x00000000u, 0x000400fau, 0x00002fecu, 0x0000342du, + 0x00003439u, 0x000200f8u, 0x00003439u, 0x000600a9u, 0x00000069u, 0x0000c26du, 0x00002363u, 0x00002fbau, + 0x00002363u, 0x000300f7u, 0x00003469u, 0x00000000u, 0x000400fau, 0x0000c26du, 0x00003441u, 0x00003467u, + 0x000200f8u, 0x00003467u, 0x000200f9u, 0x00003469u, 0x000200f8u, 0x00003441u, 0x000300f7u, 0x0000344bu, + 0x00000000u, 0x000400fau, 0x00002ff8u, 0x00003444u, 0x00003449u, 0x000200f8u, 0x00003449u, 0x000200f9u, + 0x0000344bu, 0x000200f8u, 0x00003444u, 0x0007004fu, 0x000000f2u, 0x00003446u, 0x00007bc6u, 0x00007bc6u, + 0x00000001u, 0x00000000u, 0x00050082u, 0x000000f2u, 0x00003448u, 0x0000c23cu, 0x00003446u, 0x000200f9u, + 0x0000344bu, 0x000200f8u, 0x0000344bu, 0x000700f5u, 0x000000f2u, 0x00007d35u, 0x00003448u, 0x00003444u, + 0x00007bc6u, 0x00003449u, 0x00040072u, 0x000001b1u, 0x0000344du, 0x00007d35u, 0x00050082u, 0x00000013u, + 0x00003450u, 0x00007d38u, 0x00007c45u, 0x00050051u, 0x00000012u, 0x00003452u, 0x0000344du, 0x00000000u, + 0x00070050u, 0x00000013u, 0x00003453u, 0x00003452u, 0x00003452u, 0x00003452u, 0x00003452u, 0x00050084u, + 0x00000013u, 0x00003454u, 0x00003450u, 0x00003453u, 0x00050082u, 0x00000013u, 0x00003457u, 0x00007db9u, + 0x00007c45u, 0x00050051u, 0x00000012u, 0x00003459u, 0x0000344du, 0x00000001u, 0x00070050u, 0x00000013u, + 0x0000345au, 0x00003459u, 0x00003459u, 0x00003459u, 0x00003459u, 0x00050084u, 0x00000013u, 0x0000345bu, + 0x00003457u, 0x0000345au, 0x00050080u, 0x00000013u, 0x0000345du, 0x00003454u, 0x0000345bu, 0x00050080u, + 0x00000013u, 0x00003460u, 0x0000345du, 0x0000c23fu, 0x000500c3u, 0x00000013u, 0x00003463u, 0x00003460u, + 0x0000c240u, 0x00050080u, 0x00000013u, 0x00003466u, 0x00003463u, 0x00007c45u, 0x000200f9u, 0x00003469u, + 0x000200f8u, 0x00003469u, 0x000700f5u, 0x00000013u, 0x00007ef5u, 0x00003466u, 0x0000344bu, 0x00007c45u, + 0x00003467u, 0x000200f9u, 0x0000346au, 0x000200f8u, 0x0000342du, 0x00050080u, 0x00000013u, 0x00003430u, + 0x00007c45u, 0x00007db9u, 0x00050080u, 0x00000013u, 0x00003432u, 0x00003430u, 0x00007d38u, 0x00050080u, + 0x00000013u, 0x00003434u, 0x00003432u, 0x00007e34u, 0x00050080u, 0x00000013u, 0x00003436u, 0x00003434u, + 0x0000c239u, 0x000500c3u, 0x00000013u, 0x00003438u, 0x00003436u, 0x0000c239u, 0x000200f9u, 0x0000346au, + 0x000200f8u, 0x0000346au, 0x000700f5u, 0x00000013u, 0x00007ef4u, 0x00003438u, 0x0000342du, 0x00007ef5u, + 0x00003469u, 0x000200f9u, 0x0000346bu, 0x000200f8u, 0x000033b8u, 0x000300f7u, 0x0000342au, 0x00000000u, + 0x000400fau, 0x00002327u, 0x000033bau, 0x00003428u, 0x000200f8u, 0x00003428u, 0x000200f9u, 0x0000342au, + 0x000200f8u, 0x000033bau, 0x000300f7u, 0x00003420u, 0x00000000u, 0x000400fau, 0x00002363u, 0x000033bcu, + 0x00003404u, 0x000200f8u, 0x00003404u, 0x000300f7u, 0x00003411u, 0x00000000u, 0x000400fau, 0x00002feeu, + 0x0000340bu, 0x0000340eu, 0x000200f8u, 0x0000340eu, 0x0007004fu, 0x000001b1u, 0x00003410u, 0x00007c45u, + 0x00007c45u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00003411u, 0x000200f8u, 0x0000340bu, 0x0007004fu, + 0x000001b1u, 0x0000340du, 0x00007e34u, 0x00007e34u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00003411u, + 0x000200f8u, 0x00003411u, 0x000700f5u, 0x000001b1u, 0x00007eb2u, 0x0000340du, 0x0000340bu, 0x00003410u, + 0x0000340eu, 0x00050080u, 0x00000008u, 0x00003416u, 0x00003009u, 0x00002fc4u, 0x000500afu, 0x00000069u, + 0x00003417u, 0x00003416u, 0x0000116du, 0x000300f7u, 0x0000341eu, 0x00000000u, 0x000400fau, 0x00003417u, + 0x00003418u, 0x0000341bu, 0x000200f8u, 0x0000341bu, 0x0007004fu, 0x000001b1u, 0x0000341du, 0x00007c45u, + 0x00007c45u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000341eu, 0x000200f8u, 0x00003418u, 0x0007004fu, + 0x000001b1u, 0x0000341au, 0x00007e34u, 0x00007e34u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000341eu, + 0x000200f8u, 0x0000341eu, 0x000700f5u, 0x000001b1u, 0x00007eb6u, 0x0000341au, 0x00003418u, 0x0000341du, + 0x0000341bu, 0x000200f9u, 0x00003420u, 0x000200f8u, 0x000033bcu, 0x00050050u, 0x000000f2u, 0x000033c1u, + 0x00003009u, 0x00002fc4u, 0x000500aau, 0x00000884u, 0x000033c2u, 0x000033c1u, 0x0000140du, 0x00050051u, + 0x00000069u, 0x000033c3u, 0x000033c2u, 0x00000000u, 0x00050051u, 0x00000069u, 0x000033c4u, 0x000033c2u, + 0x00000001u, 0x00060050u, 0x00000368u, 0x000033c5u, 0x00002351u, 0x000033c3u, 0x000033c4u, 0x0004009bu, + 0x00000069u, 0x000033c6u, 0x000033c5u, 0x000300f7u, 0x000033e6u, 0x00000000u, 0x000400fau, 0x000033c6u, + 0x000033c8u, 0x000033d8u, 0x000200f8u, 0x000033d8u, 0x0007004fu, 0x000001b1u, 0x000033deu, 0x00007c45u, + 0x00007c45u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x000033e0u, 0x00007d38u, 0x00007d38u, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x000033e2u, 0x00007db9u, 0x00007db9u, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x000001b1u, 0x000033e4u, 0x00007e34u, 0x00007e34u, 0x00000000u, 0x00000001u, + 0x00050080u, 0x00000008u, 0x00004747u, 0x00003009u, 0x00002fc4u, 0x000500afu, 0x00000069u, 0x00004749u, + 0x00004747u, 0x0000116du, 0x00050050u, 0x00000884u, 0x0000474cu, 0x00004749u, 0x00004749u, 0x000600a9u, + 0x000001b1u, 0x0000474du, 0x0000474cu, 0x000033e4u, 0x000033deu, 0x000300f7u, 0x00004757u, 0x00000000u, + 0x000400fau, 0x00004749u, 0x00004750u, 0x00004755u, 0x000200f8u, 0x00004755u, 0x000200f9u, 0x00004757u, + 0x000200f8u, 0x00004750u, 0x0007004fu, 0x000000f2u, 0x00004752u, 0x000033c1u, 0x000033c1u, 0x00000001u, + 0x00000000u, 0x00050082u, 0x000000f2u, 0x00004754u, 0x0000c23cu, 0x00004752u, 0x000200f9u, 0x00004757u, + 0x000200f8u, 0x00004757u, 0x000700f5u, 0x000000f2u, 0x00007eb7u, 0x00004754u, 0x00004750u, 0x000033c1u, + 0x00004755u, 0x00040072u, 0x000001b1u, 0x00004759u, 0x00007eb7u, 0x00050082u, 0x000001b1u, 0x0000475cu, + 0x000033e0u, 0x0000474du, 0x00050051u, 0x00000012u, 0x0000475eu, 0x00004759u, 0x00000000u, 0x00050050u, + 0x000001b1u, 0x0000475fu, 0x0000475eu, 0x0000475eu, 0x00050084u, 0x000001b1u, 0x00004760u, 0x0000475cu, + 0x0000475fu, 0x00050082u, 0x000001b1u, 0x00004763u, 0x000033e2u, 0x0000474du, 0x00050051u, 0x00000012u, + 0x00004765u, 0x00004759u, 0x00000001u, 0x00050050u, 0x000001b1u, 0x00004766u, 0x00004765u, 0x00004765u, + 0x00050084u, 0x000001b1u, 0x00004767u, 0x00004763u, 0x00004766u, 0x00050080u, 0x000001b1u, 0x00004769u, + 0x00004760u, 0x00004767u, 0x00050080u, 0x000001b1u, 0x0000476cu, 0x00004769u, 0x0000c23du, 0x000500c3u, + 0x000001b1u, 0x0000476fu, 0x0000476cu, 0x0000c23eu, 0x00050080u, 0x000001b1u, 0x00004772u, 0x0000476fu, + 0x0000474du, 0x000200f9u, 0x000033e6u, 0x000200f8u, 0x000033c8u, 0x0007004fu, 0x000001b1u, 0x000033cau, + 0x00007c45u, 0x00007c45u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x000033ccu, 0x00007d38u, + 0x00007d38u, 0x00000000u, 0x00000001u, 0x00050080u, 0x000001b1u, 0x000033cdu, 0x000033cau, 0x000033ccu, + 0x0007004fu, 0x000001b1u, 0x000033cfu, 0x00007e34u, 0x00007e34u, 0x00000000u, 0x00000001u, 0x00050080u, + 0x000001b1u, 0x000033d0u, 0x000033cdu, 0x000033cfu, 0x0007004fu, 0x000001b1u, 0x000033d2u, 0x00007db9u, + 0x00007db9u, 0x00000000u, 0x00000001u, 0x00050080u, 0x000001b1u, 0x000033d3u, 0x000033d0u, 0x000033d2u, + 0x00050080u, 0x000001b1u, 0x000033d5u, 0x000033d3u, 0x0000c23bu, 0x000500c3u, 0x000001b1u, 0x000033d7u, + 0x000033d5u, 0x0000c23bu, 0x000200f9u, 0x000033e6u, 0x000200f8u, 0x000033e6u, 0x000700f5u, 0x000001b1u, + 0x00007ec5u, 0x000033d7u, 0x000033c8u, 0x00004772u, 0x00004757u, 0x000300f7u, 0x00003403u, 0x00000000u, + 0x000400fau, 0x00002fecu, 0x000033e8u, 0x000033f8u, 0x000200f8u, 0x000033f8u, 0x0007004fu, 0x000001b1u, + 0x000033fau, 0x00007c45u, 0x00007c45u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x000001b1u, 0x000033fcu, + 0x00007d38u, 0x00007d38u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x000001b1u, 0x000033feu, 0x00007db9u, + 0x00007db9u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x000001b1u, 0x00003400u, 0x00007e34u, 0x00007e34u, + 0x00000002u, 0x00000003u, 0x00050050u, 0x00000884u, 0x00004784u, 0x00002feeu, 0x00002feeu, 0x000600a9u, + 0x000001b1u, 0x00004785u, 0x00004784u, 0x00003400u, 0x000033fau, 0x000300f7u, 0x0000478fu, 0x00000000u, + 0x000400fau, 0x00002feeu, 0x00004788u, 0x0000478du, 0x000200f8u, 0x0000478du, 0x000200f9u, 0x0000478fu, + 0x000200f8u, 0x00004788u, 0x0007004fu, 0x000000f2u, 0x0000478au, 0x00007bc6u, 0x00007bc6u, 0x00000001u, + 0x00000000u, 0x00050082u, 0x000000f2u, 0x0000478cu, 0x0000c23cu, 0x0000478au, 0x000200f9u, 0x0000478fu, + 0x000200f8u, 0x0000478fu, 0x000700f5u, 0x000000f2u, 0x00007ec2u, 0x0000478cu, 0x00004788u, 0x00007bc6u, + 0x0000478du, 0x00040072u, 0x000001b1u, 0x00004791u, 0x00007ec2u, 0x00050082u, 0x000001b1u, 0x00004794u, + 0x000033fcu, 0x00004785u, 0x00050051u, 0x00000012u, 0x00004796u, 0x00004791u, 0x00000000u, 0x00050050u, + 0x000001b1u, 0x00004797u, 0x00004796u, 0x00004796u, 0x00050084u, 0x000001b1u, 0x00004798u, 0x00004794u, + 0x00004797u, 0x00050082u, 0x000001b1u, 0x0000479bu, 0x000033feu, 0x00004785u, 0x00050051u, 0x00000012u, + 0x0000479du, 0x00004791u, 0x00000001u, 0x00050050u, 0x000001b1u, 0x0000479eu, 0x0000479du, 0x0000479du, + 0x00050084u, 0x000001b1u, 0x0000479fu, 0x0000479bu, 0x0000479eu, 0x00050080u, 0x000001b1u, 0x000047a1u, + 0x00004798u, 0x0000479fu, 0x00050080u, 0x000001b1u, 0x000047a4u, 0x000047a1u, 0x0000c23du, 0x000500c3u, + 0x000001b1u, 0x000047a7u, 0x000047a4u, 0x0000c23eu, 0x00050080u, 0x000001b1u, 0x000047aau, 0x000047a7u, + 0x00004785u, 0x000200f9u, 0x00003403u, 0x000200f8u, 0x000033e8u, 0x0007004fu, 0x000001b1u, 0x000033eau, + 0x00007c45u, 0x00007c45u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x000001b1u, 0x000033ecu, 0x00007d38u, + 0x00007d38u, 0x00000002u, 0x00000003u, 0x00050080u, 0x000001b1u, 0x000033edu, 0x000033eau, 0x000033ecu, + 0x0007004fu, 0x000001b1u, 0x000033efu, 0x00007e34u, 0x00007e34u, 0x00000002u, 0x00000003u, 0x00050080u, + 0x000001b1u, 0x000033f0u, 0x000033edu, 0x000033efu, 0x0007004fu, 0x000001b1u, 0x000033f2u, 0x00007db9u, + 0x00007db9u, 0x00000002u, 0x00000003u, 0x00050080u, 0x000001b1u, 0x000033f3u, 0x000033f0u, 0x000033f2u, + 0x00050080u, 0x000001b1u, 0x000033f5u, 0x000033f3u, 0x0000c23bu, 0x000500c3u, 0x000001b1u, 0x000033f7u, + 0x000033f5u, 0x0000c23bu, 0x000200f9u, 0x00003403u, 0x000200f8u, 0x00003403u, 0x000700f5u, 0x000001b1u, + 0x00007ec8u, 0x000033f7u, 0x000033e8u, 0x000047aau, 0x0000478fu, 0x000200f9u, 0x00003420u, 0x000200f8u, + 0x00003420u, 0x000700f5u, 0x000001b1u, 0x00007ec7u, 0x00007ec8u, 0x00003403u, 0x00007eb2u, 0x0000341eu, + 0x000700f5u, 0x000001b1u, 0x00007ec3u, 0x00007ec5u, 0x00003403u, 0x00007eb6u, 0x0000341eu, 0x00050051u, + 0x00000012u, 0x00003423u, 0x00007ec3u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003424u, 0x00007ec3u, + 0x00000001u, 0x00050051u, 0x00000012u, 0x00003425u, 0x00007ec7u, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00003426u, 0x00007ec7u, 0x00000001u, 0x00070050u, 0x00000013u, 0x00003427u, 0x00003423u, 0x00003424u, + 0x00003425u, 0x00003426u, 0x000200f9u, 0x0000342au, 0x000200f8u, 0x0000342au, 0x000700f5u, 0x00000013u, + 0x00007ef3u, 0x00003427u, 0x00003420u, 0x00007c45u, 0x00003428u, 0x000200f9u, 0x0000346bu, 0x000200f8u, + 0x0000346bu, 0x000700f5u, 0x00000013u, 0x00007ef2u, 0x00007ef3u, 0x0000342au, 0x00007ef4u, 0x0000346au, + 0x000400a8u, 0x00000069u, 0x0000346eu, 0x00002363u, 0x000500a7u, 0x00000069u, 0x00003471u, 0x0000346eu, + 0x0000055eu, 0x000300f7u, 0x00003476u, 0x00000000u, 0x000400fau, 0x00003471u, 0x00003472u, 0x00003476u, + 0x000200f8u, 0x00003472u, 0x00040072u, 0x00000009u, 0x000047b4u, 0x00007ef2u, 0x000600cau, 0x00000009u, + 0x000047b5u, 0x000047b4u, 0x00000225u, 0x00000265u, 0x00050051u, 0x00000008u, 0x000047b7u, 0x000047b5u, + 0x00000002u, 0x00050051u, 0x00000012u, 0x000047b9u, 0x00002af0u, 0x00000000u, 0x00040072u, 0x00000008u, + 0x000047bau, 0x000047b9u, 0x00050051u, 0x00000008u, 0x000047bcu, 0x000047b5u, 0x00000001u, 0x00050084u, + 0x00000008u, 0x000047bdu, 0x000047bau, 0x000047bcu, 0x00050080u, 0x00000008u, 0x000047beu, 0x000047bdu, + 0x00000b11u, 0x000500c3u, 0x00000008u, 0x000047bfu, 0x000047beu, 0x00000262u, 0x00050080u, 0x00000008u, + 0x000047c0u, 0x000047b7u, 0x000047bfu, 0x00050051u, 0x00000012u, 0x000047c4u, 0x00002af0u, 0x00000001u, + 0x00040072u, 0x00000008u, 0x000047c5u, 0x000047c4u, 0x00050051u, 0x00000008u, 0x000047c7u, 0x000047b5u, + 0x00000000u, 0x00050084u, 0x00000008u, 0x000047c8u, 0x000047c5u, 0x000047c7u, 0x00050051u, 0x00000012u, + 0x000047cau, 0x00002af0u, 0x00000002u, 0x00040072u, 0x00000008u, 0x000047cbu, 0x000047cau, 0x00050084u, + 0x00000008u, 0x000047ceu, 0x000047cbu, 0x000047bcu, 0x00050080u, 0x00000008u, 0x000047cfu, 0x000047c8u, + 0x000047ceu, 0x00050080u, 0x00000008u, 0x000047d0u, 0x000047cfu, 0x00000b11u, 0x000500c3u, 0x00000008u, + 0x000047d1u, 0x000047d0u, 0x00000262u, 0x00050080u, 0x00000008u, 0x000047d2u, 0x000047b7u, 0x000047d1u, + 0x00050051u, 0x00000012u, 0x000047d6u, 0x00002af0u, 0x00000003u, 0x00040072u, 0x00000008u, 0x000047d7u, + 0x000047d6u, 0x00050084u, 0x00000008u, 0x000047dau, 0x000047d7u, 0x000047c7u, 0x00050080u, 0x00000008u, + 0x000047dbu, 0x000047dau, 0x00000b11u, 0x000500c3u, 0x00000008u, 0x000047dcu, 0x000047dbu, 0x00000262u, + 0x00050080u, 0x00000008u, 0x000047ddu, 0x000047b7u, 0x000047dcu, 0x00040072u, 0x00000012u, 0x000047e1u, + 0x000047c0u, 0x00040072u, 0x00000012u, 0x000047e3u, 0x000047d2u, 0x00040072u, 0x00000012u, 0x000047e5u, + 0x000047ddu, 0x00040072u, 0x00000012u, 0x000047e7u, 0x000047b7u, 0x00070050u, 0x00000013u, 0x000047e8u, + 0x000047e1u, 0x000047e3u, 0x000047e5u, 0x000047e7u, 0x000200f9u, 0x00003476u, 0x000200f8u, 0x00003476u, + 0x000700f5u, 0x00000013u, 0x00007ef6u, 0x00007ef2u, 0x0000346bu, 0x000047e8u, 0x00003472u, 0x000200f9u, + 0x0000243du, 0x000200f8u, 0x0000243du, 0x000700f5u, 0x00000013u, 0x0000b93eu, 0x00007e50u, 0x00002428u, + 0x00007e34u, 0x00003476u, 0x000700f5u, 0x00000013u, 0x0000b81cu, 0x00007dd5u, 0x00002428u, 0x00007db9u, + 0x00003476u, 0x000700f5u, 0x00000013u, 0x0000b6fau, 0x00007d54u, 0x00002428u, 0x00007d38u, 0x00003476u, + 0x000700f5u, 0x00000013u, 0x0000b5d8u, 0x00007c61u, 0x00002428u, 0x00007c45u, 0x00003476u, 0x000700f5u, + 0x00000013u, 0x00008210u, 0x0000821du, 0x00002428u, 0x00007ef6u, 0x00003476u, 0x000300f7u, 0x00002489u, + 0x00000000u, 0x000400fau, 0x0000235au, 0x0000243fu, 0x00002489u, 0x000200f8u, 0x0000243fu, 0x00050080u, + 0x00000008u, 0x00002448u, 0x000022fau, 0x0000022fu, 0x00050080u, 0x00000008u, 0x00002449u, 0x000022f5u, + 0x00002448u, 0x00070041u, 0x00000697u, 0x0000244au, 0x000002e0u, 0x00000225u, 0x00002449u, 0x00000262u, + 0x0004003du, 0x00000011u, 0x0000244bu, 0x0000244au, 0x00040071u, 0x00000006u, 0x0000244cu, 0x0000244bu, + 0x000500abu, 0x00000069u, 0x0000244du, 0x0000244cu, 0x00000332u, 0x00040072u, 0x00000008u, 0x00002450u, + 0x00002570u, 0x000500afu, 0x00000069u, 0x00002451u, 0x00002450u, 0x00000262u, 0x000600a9u, 0x00000008u, + 0x0000c26eu, 0x00002377u, 0x0000256eu, 0x0000256cu, 0x000500aau, 0x00000069u, 0x0000245cu, 0x00007aa9u, + 0x0000c26eu, 0x000500a7u, 0x00000069u, 0x0000245fu, 0x0000245cu, 0x00002451u, 0x000500a7u, 0x00000069u, + 0x00002461u, 0x0000245fu, 0x0000244du, 0x000300f7u, 0x00002487u, 0x00000000u, 0x000400fau, 0x00002461u, + 0x00002462u, 0x0000247cu, 0x000200f8u, 0x0000247cu, 0x00050084u, 0x00000008u, 0x0000247fu, 0x000023e4u, + 0x0000088bu, 0x00050080u, 0x00000008u, 0x00002480u, 0x000023e2u, 0x0000247fu, 0x00060050u, 0x00000044u, + 0x00004884u, 0x00002480u, 0x00002480u, 0x00002480u, 0x00050084u, 0x00000044u, 0x00004885u, 0x00002b5bu, + 0x00004884u, 0x00050080u, 0x00000044u, 0x00004886u, 0x00002b55u, 0x00004885u, 0x000500c3u, 0x00000044u, + 0x00004889u, 0x00004886u, 0x0000c22cu, 0x000300f7u, 0x00004893u, 0x00000000u, 0x000400fau, 0x00002330u, + 0x0000488bu, 0x00004890u, 0x000200f8u, 0x00004890u, 0x0007004fu, 0x000000f2u, 0x0000491eu, 0x00004889u, + 0x00004889u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004893u, 0x000200f8u, 0x0000488bu, 0x00050051u, + 0x00000008u, 0x000048a1u, 0x00004889u, 0x00000002u, 0x000500b3u, 0x00000069u, 0x000048a3u, 0x000048a1u, + 0x00000225u, 0x000500c7u, 0x00000008u, 0x000048a5u, 0x000048a1u, 0x00000c2bu, 0x0006000cu, 0x00000008u, + 0x00004902u, 0x00000001u, 0x0000004au, 0x000048a5u, 0x00050082u, 0x00000008u, 0x00004903u, 0x00000274u, + 0x00004902u, 0x0007000cu, 0x00000008u, 0x00004904u, 0x00000001u, 0x00000027u, 0x00004903u, 0x00000274u, + 0x000500c4u, 0x00000008u, 0x00004907u, 0x000048a5u, 0x00004904u, 0x000500c7u, 0x00000008u, 0x00004908u, + 0x00004907u, 0x00000b47u, 0x000500c7u, 0x00000008u, 0x0000490au, 0x00004908u, 0x00000363u, 0x000500c3u, + 0x00000008u, 0x0000490cu, 0x00004908u, 0x00000262u, 0x0003003eu, 0x000048fdu, 0x00000c0bu, 0x00050041u, + 0x000001b2u, 0x0000490du, 0x000048fdu, 0x0000490cu, 0x0004003du, 0x000001b1u, 0x0000490eu, 0x0000490du, + 0x00040072u, 0x000000f2u, 0x0000490fu, 0x0000490eu, 0x00050051u, 0x00000008u, 0x00004911u, 0x0000490fu, + 0x00000001u, 0x00050084u, 0x00000008u, 0x00004913u, 0x00004911u, 0x0000490au, 0x000500c3u, 0x00000008u, + 0x00004914u, 0x00004913u, 0x00000268u, 0x00050051u, 0x00000008u, 0x00004916u, 0x0000490fu, 0x00000000u, + 0x00050080u, 0x00000008u, 0x00004917u, 0x00004914u, 0x00004916u, 0x0007004fu, 0x000000f2u, 0x000048abu, + 0x00004889u, 0x00004889u, 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x000048aeu, 0x00004917u, + 0x00004917u, 0x00050084u, 0x000000f2u, 0x000048afu, 0x000048abu, 0x000048aeu, 0x000500c3u, 0x00000008u, + 0x000048b1u, 0x00000c3eu, 0x00004904u, 0x0004007eu, 0x00000008u, 0x000048b2u, 0x000048b1u, 0x000500c7u, + 0x00000008u, 0x000048b3u, 0x00000c3du, 0x000048b2u, 0x00050050u, 0x000000f2u, 0x000048b6u, 0x000048b3u, + 0x000048b3u, 0x000500c7u, 0x000000f2u, 0x000048b7u, 0x000048afu, 0x000048b6u, 0x000500abu, 0x00000069u, + 0x000048b9u, 0x00004904u, 0x00000274u, 0x000300f7u, 0x000048c4u, 0x00000000u, 0x000400fau, 0x000048b9u, + 0x000048bau, 0x000048c0u, 0x000200f8u, 0x000048c0u, 0x000500c4u, 0x000000f2u, 0x000048c3u, 0x000048afu, + 0x0000c230u, 0x000200f9u, 0x000048c4u, 0x000200f8u, 0x000048bau, 0x00050082u, 0x00000008u, 0x000048bdu, + 0x00000271u, 0x00004904u, 0x00050050u, 0x000000f2u, 0x000048beu, 0x000048bdu, 0x000048bdu, 0x000500c3u, + 0x000000f2u, 0x000048bfu, 0x000048afu, 0x000048beu, 0x000200f9u, 0x000048c4u, 0x000200f8u, 0x000048c4u, + 0x000700f5u, 0x000000f2u, 0x0000801du, 0x000048bfu, 0x000048bau, 0x000048c3u, 0x000048c0u, 0x000700f5u, + 0x000000f2u, 0x0000801bu, 0x000048bfu, 0x000048bau, 0x000048afu, 0x000048c0u, 0x000500abu, 0x00000884u, + 0x000048c6u, 0x000048b7u, 0x00000c57u, 0x0004009au, 0x00000069u, 0x000048c7u, 0x000048c6u, 0x000300f7u, + 0x000048f3u, 0x00000000u, 0x000400fau, 0x000048c7u, 0x000048c8u, 0x000048f3u, 0x000200f8u, 0x000048c8u, + 0x00050051u, 0x00000008u, 0x000048cau, 0x000048b7u, 0x00000000u, 0x000500abu, 0x00000069u, 0x000048ccu, + 0x000048cau, 0x000048b3u, 0x000300f7u, 0x000048d1u, 0x00000000u, 0x000400fau, 0x000048ccu, 0x000048cdu, + 0x000048d1u, 0x000200f8u, 0x000048cdu, 0x000500abu, 0x00000069u, 0x000048d0u, 0x000048cau, 0x00000225u, + 0x000200f9u, 0x000048d1u, 0x000200f8u, 0x000048d1u, 0x000700f5u, 0x00000069u, 0x000048d2u, 0x000048ccu, + 0x000048c8u, 0x000048d0u, 0x000048cdu, 0x000300f7u, 0x000048ddu, 0x00000000u, 0x000400fau, 0x000048d2u, + 0x000048d3u, 0x000048ddu, 0x000200f8u, 0x000048d3u, 0x00050051u, 0x00000008u, 0x000048d5u, 0x0000801bu, + 0x00000000u, 0x000500c7u, 0x00000008u, 0x000048d6u, 0x000048d5u, 0x00000c3eu, 0x000500aau, 0x00000069u, + 0x000048d7u, 0x000048d6u, 0x00000225u, 0x000300f7u, 0x000048dcu, 0x00000000u, 0x000400fau, 0x000048d7u, + 0x000048d8u, 0x000048dau, 0x000200f8u, 0x000048dau, 0x00060052u, 0x000000f2u, 0x000077fdu, 0x00000c70u, + 0x0000801du, 0x00000000u, 0x000200f9u, 0x000048dcu, 0x000200f8u, 0x000048d8u, 0x00060052u, 0x000000f2u, + 0x000077fbu, 0x00000c2bu, 0x0000801du, 0x00000000u, 0x000200f9u, 0x000048dcu, 0x000200f8u, 0x000048dcu, + 0x000700f5u, 0x000000f2u, 0x00008023u, 0x000077fbu, 0x000048d8u, 0x000077fdu, 0x000048dau, 0x000200f9u, + 0x000048ddu, 0x000200f8u, 0x000048ddu, 0x000700f5u, 0x000000f2u, 0x00008022u, 0x0000801du, 0x000048d1u, + 0x00008023u, 0x000048dcu, 0x00050051u, 0x00000008u, 0x000048dfu, 0x000048b7u, 0x00000001u, 0x000500abu, + 0x00000069u, 0x000048e1u, 0x000048dfu, 0x000048b3u, 0x000300f7u, 0x000048e6u, 0x00000000u, 0x000400fau, + 0x000048e1u, 0x000048e2u, 0x000048e6u, 0x000200f8u, 0x000048e2u, 0x000500abu, 0x00000069u, 0x000048e5u, + 0x000048dfu, 0x00000225u, 0x000200f9u, 0x000048e6u, 0x000200f8u, 0x000048e6u, 0x000700f5u, 0x00000069u, + 0x000048e7u, 0x000048e1u, 0x000048ddu, 0x000048e5u, 0x000048e2u, 0x000300f7u, 0x000048f2u, 0x00000000u, + 0x000400fau, 0x000048e7u, 0x000048e8u, 0x000048f2u, 0x000200f8u, 0x000048e8u, 0x00050051u, 0x00000008u, + 0x000048eau, 0x0000801bu, 0x00000001u, 0x000500c7u, 0x00000008u, 0x000048ebu, 0x000048eau, 0x00000c3eu, + 0x000500aau, 0x00000069u, 0x000048ecu, 0x000048ebu, 0x00000225u, 0x000300f7u, 0x000048f1u, 0x00000000u, + 0x000400fau, 0x000048ecu, 0x000048edu, 0x000048efu, 0x000200f8u, 0x000048efu, 0x00060052u, 0x000000f2u, + 0x00007804u, 0x00000c70u, 0x00008022u, 0x00000001u, 0x000200f9u, 0x000048f1u, 0x000200f8u, 0x000048edu, + 0x00060052u, 0x000000f2u, 0x00007802u, 0x00000c2bu, 0x00008022u, 0x00000001u, 0x000200f9u, 0x000048f1u, + 0x000200f8u, 0x000048f1u, 0x000700f5u, 0x000000f2u, 0x00008027u, 0x00007802u, 0x000048edu, 0x00007804u, + 0x000048efu, 0x000200f9u, 0x000048f2u, 0x000200f8u, 0x000048f2u, 0x000700f5u, 0x000000f2u, 0x00008026u, + 0x00008022u, 0x000048e6u, 0x00008027u, 0x000048f1u, 0x000200f9u, 0x000048f3u, 0x000200f8u, 0x000048f3u, + 0x000700f5u, 0x000000f2u, 0x00008025u, 0x0000801du, 0x000048c4u, 0x00008026u, 0x000048f2u, 0x00050050u, + 0x00000884u, 0x0000c26fu, 0x000048a3u, 0x000048a3u, 0x000600a9u, 0x000000f2u, 0x0000c270u, 0x0000c26fu, + 0x00000c8au, 0x00008025u, 0x0008000cu, 0x000000f2u, 0x000048f8u, 0x00000001u, 0x0000002du, 0x0000c270u, + 0x00000c8du, 0x00000c8eu, 0x000200f9u, 0x00004893u, 0x000200f8u, 0x00004893u, 0x000700f5u, 0x000000f2u, + 0x00008028u, 0x000048f8u, 0x000048f3u, 0x0000491eu, 0x00004890u, 0x000200f9u, 0x00002487u, 0x000200f8u, + 0x00002462u, 0x00070041u, 0x00001f51u, 0x0000246du, 0x000002e0u, 0x00000225u, 0x00002449u, 0x0000022fu, + 0x0004003du, 0x00000009u, 0x0000246eu, 0x0000246du, 0x0008004fu, 0x00000044u, 0x0000246fu, 0x0000246eu, + 0x0000246eu, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c3u, 0x00000044u, 0x00002471u, 0x0000246fu, + 0x0000c22cu, 0x000300f7u, 0x0000247bu, 0x00000000u, 0x000400fau, 0x00002330u, 0x00002473u, 0x00002478u, + 0x000200f8u, 0x00002478u, 0x0007004fu, 0x000000f2u, 0x00004872u, 0x00002471u, 0x00002471u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x0000247bu, 0x000200f8u, 0x00002473u, 0x00050051u, 0x00000008u, 0x000047f5u, + 0x00002471u, 0x00000002u, 0x000500b3u, 0x00000069u, 0x000047f7u, 0x000047f5u, 0x00000225u, 0x000500c7u, + 0x00000008u, 0x000047f9u, 0x000047f5u, 0x00000c2bu, 0x0006000cu, 0x00000008u, 0x00004856u, 0x00000001u, + 0x0000004au, 0x000047f9u, 0x00050082u, 0x00000008u, 0x00004857u, 0x00000274u, 0x00004856u, 0x0007000cu, + 0x00000008u, 0x00004858u, 0x00000001u, 0x00000027u, 0x00004857u, 0x00000274u, 0x000500c4u, 0x00000008u, + 0x0000485bu, 0x000047f9u, 0x00004858u, 0x000500c7u, 0x00000008u, 0x0000485cu, 0x0000485bu, 0x00000b47u, + 0x000500c7u, 0x00000008u, 0x0000485eu, 0x0000485cu, 0x00000363u, 0x000500c3u, 0x00000008u, 0x00004860u, + 0x0000485cu, 0x00000262u, 0x0003003eu, 0x00004851u, 0x00000c0bu, 0x00050041u, 0x000001b2u, 0x00004861u, + 0x00004851u, 0x00004860u, 0x0004003du, 0x000001b1u, 0x00004862u, 0x00004861u, 0x00040072u, 0x000000f2u, + 0x00004863u, 0x00004862u, 0x00050051u, 0x00000008u, 0x00004865u, 0x00004863u, 0x00000001u, 0x00050084u, + 0x00000008u, 0x00004867u, 0x00004865u, 0x0000485eu, 0x000500c3u, 0x00000008u, 0x00004868u, 0x00004867u, + 0x00000268u, 0x00050051u, 0x00000008u, 0x0000486au, 0x00004863u, 0x00000000u, 0x00050080u, 0x00000008u, + 0x0000486bu, 0x00004868u, 0x0000486au, 0x0007004fu, 0x000000f2u, 0x000047ffu, 0x00002471u, 0x00002471u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x00004802u, 0x0000486bu, 0x0000486bu, 0x00050084u, + 0x000000f2u, 0x00004803u, 0x000047ffu, 0x00004802u, 0x000500c3u, 0x00000008u, 0x00004805u, 0x00000c3eu, + 0x00004858u, 0x0004007eu, 0x00000008u, 0x00004806u, 0x00004805u, 0x000500c7u, 0x00000008u, 0x00004807u, + 0x00000c3du, 0x00004806u, 0x00050050u, 0x000000f2u, 0x0000480au, 0x00004807u, 0x00004807u, 0x000500c7u, + 0x000000f2u, 0x0000480bu, 0x00004803u, 0x0000480au, 0x000500abu, 0x00000069u, 0x0000480du, 0x00004858u, + 0x00000274u, 0x000300f7u, 0x00004818u, 0x00000000u, 0x000400fau, 0x0000480du, 0x0000480eu, 0x00004814u, + 0x000200f8u, 0x00004814u, 0x000500c4u, 0x000000f2u, 0x00004817u, 0x00004803u, 0x0000c230u, 0x000200f9u, + 0x00004818u, 0x000200f8u, 0x0000480eu, 0x00050082u, 0x00000008u, 0x00004811u, 0x00000271u, 0x00004858u, + 0x00050050u, 0x000000f2u, 0x00004812u, 0x00004811u, 0x00004811u, 0x000500c3u, 0x000000f2u, 0x00004813u, + 0x00004803u, 0x00004812u, 0x000200f9u, 0x00004818u, 0x000200f8u, 0x00004818u, 0x000700f5u, 0x000000f2u, + 0x0000802du, 0x00004813u, 0x0000480eu, 0x00004817u, 0x00004814u, 0x000700f5u, 0x000000f2u, 0x0000802bu, + 0x00004813u, 0x0000480eu, 0x00004803u, 0x00004814u, 0x000500abu, 0x00000884u, 0x0000481au, 0x0000480bu, + 0x00000c57u, 0x0004009au, 0x00000069u, 0x0000481bu, 0x0000481au, 0x000300f7u, 0x00004847u, 0x00000000u, + 0x000400fau, 0x0000481bu, 0x0000481cu, 0x00004847u, 0x000200f8u, 0x0000481cu, 0x00050051u, 0x00000008u, + 0x0000481eu, 0x0000480bu, 0x00000000u, 0x000500abu, 0x00000069u, 0x00004820u, 0x0000481eu, 0x00004807u, + 0x000300f7u, 0x00004825u, 0x00000000u, 0x000400fau, 0x00004820u, 0x00004821u, 0x00004825u, 0x000200f8u, + 0x00004821u, 0x000500abu, 0x00000069u, 0x00004824u, 0x0000481eu, 0x00000225u, 0x000200f9u, 0x00004825u, + 0x000200f8u, 0x00004825u, 0x000700f5u, 0x00000069u, 0x00004826u, 0x00004820u, 0x0000481cu, 0x00004824u, + 0x00004821u, 0x000300f7u, 0x00004831u, 0x00000000u, 0x000400fau, 0x00004826u, 0x00004827u, 0x00004831u, + 0x000200f8u, 0x00004827u, 0x00050051u, 0x00000008u, 0x00004829u, 0x0000802bu, 0x00000000u, 0x000500c7u, + 0x00000008u, 0x0000482au, 0x00004829u, 0x00000c3eu, 0x000500aau, 0x00000069u, 0x0000482bu, 0x0000482au, + 0x00000225u, 0x000300f7u, 0x00004830u, 0x00000000u, 0x000400fau, 0x0000482bu, 0x0000482cu, 0x0000482eu, + 0x000200f8u, 0x0000482eu, 0x00060052u, 0x000000f2u, 0x000077eau, 0x00000c70u, 0x0000802du, 0x00000000u, + 0x000200f9u, 0x00004830u, 0x000200f8u, 0x0000482cu, 0x00060052u, 0x000000f2u, 0x000077e8u, 0x00000c2bu, + 0x0000802du, 0x00000000u, 0x000200f9u, 0x00004830u, 0x000200f8u, 0x00004830u, 0x000700f5u, 0x000000f2u, + 0x00008033u, 0x000077e8u, 0x0000482cu, 0x000077eau, 0x0000482eu, 0x000200f9u, 0x00004831u, 0x000200f8u, + 0x00004831u, 0x000700f5u, 0x000000f2u, 0x00008032u, 0x0000802du, 0x00004825u, 0x00008033u, 0x00004830u, + 0x00050051u, 0x00000008u, 0x00004833u, 0x0000480bu, 0x00000001u, 0x000500abu, 0x00000069u, 0x00004835u, + 0x00004833u, 0x00004807u, 0x000300f7u, 0x0000483au, 0x00000000u, 0x000400fau, 0x00004835u, 0x00004836u, + 0x0000483au, 0x000200f8u, 0x00004836u, 0x000500abu, 0x00000069u, 0x00004839u, 0x00004833u, 0x00000225u, + 0x000200f9u, 0x0000483au, 0x000200f8u, 0x0000483au, 0x000700f5u, 0x00000069u, 0x0000483bu, 0x00004835u, + 0x00004831u, 0x00004839u, 0x00004836u, 0x000300f7u, 0x00004846u, 0x00000000u, 0x000400fau, 0x0000483bu, + 0x0000483cu, 0x00004846u, 0x000200f8u, 0x0000483cu, 0x00050051u, 0x00000008u, 0x0000483eu, 0x0000802bu, + 0x00000001u, 0x000500c7u, 0x00000008u, 0x0000483fu, 0x0000483eu, 0x00000c3eu, 0x000500aau, 0x00000069u, + 0x00004840u, 0x0000483fu, 0x00000225u, 0x000300f7u, 0x00004845u, 0x00000000u, 0x000400fau, 0x00004840u, + 0x00004841u, 0x00004843u, 0x000200f8u, 0x00004843u, 0x00060052u, 0x000000f2u, 0x000077f1u, 0x00000c70u, + 0x00008032u, 0x00000001u, 0x000200f9u, 0x00004845u, 0x000200f8u, 0x00004841u, 0x00060052u, 0x000000f2u, + 0x000077efu, 0x00000c2bu, 0x00008032u, 0x00000001u, 0x000200f9u, 0x00004845u, 0x000200f8u, 0x00004845u, + 0x000700f5u, 0x000000f2u, 0x00008037u, 0x000077efu, 0x00004841u, 0x000077f1u, 0x00004843u, 0x000200f9u, + 0x00004846u, 0x000200f8u, 0x00004846u, 0x000700f5u, 0x000000f2u, 0x00008036u, 0x00008032u, 0x0000483au, + 0x00008037u, 0x00004845u, 0x000200f9u, 0x00004847u, 0x000200f8u, 0x00004847u, 0x000700f5u, 0x000000f2u, + 0x00008035u, 0x0000802du, 0x00004818u, 0x00008036u, 0x00004846u, 0x00050050u, 0x00000884u, 0x0000c271u, + 0x000047f7u, 0x000047f7u, 0x000600a9u, 0x000000f2u, 0x0000c272u, 0x0000c271u, 0x00000c8au, 0x00008035u, + 0x0008000cu, 0x000000f2u, 0x0000484cu, 0x00000001u, 0x0000002du, 0x0000c272u, 0x00000c8du, 0x00000c8eu, + 0x000200f9u, 0x0000247bu, 0x000200f8u, 0x0000247bu, 0x000700f5u, 0x000000f2u, 0x0000820eu, 0x0000484cu, + 0x00004847u, 0x00004872u, 0x00002478u, 0x000200f9u, 0x00002487u, 0x000200f8u, 0x00002487u, 0x000700f5u, + 0x000000f2u, 0x0000820du, 0x0000820eu, 0x0000247bu, 0x00008028u, 0x00004893u, 0x000200f9u, 0x00002489u, + 0x000200f8u, 0x00002489u, 0x000700f5u, 0x000000f2u, 0x000081a9u, 0x00007b2au, 0x0000243du, 0x0000820du, + 0x00002487u, 0x000600a9u, 0x00000006u, 0x0000c273u, 0x0000235au, 0x00007baeu, 0x00008146u, 0x000600a9u, + 0x00000069u, 0x0000c274u, 0x0000235au, 0x0000055eu, 0x00002357u, 0x000300f7u, 0x000024abu, 0x00000000u, + 0x000400fau, 0x0000c274u, 0x0000248bu, 0x000024abu, 0x000200f8u, 0x0000248bu, 0x000400a8u, 0x00000069u, + 0x0000248eu, 0x00002366u, 0x000500a7u, 0x00000069u, 0x0000248fu, 0x00002360u, 0x0000248eu, 0x000300f7u, + 0x000024aau, 0x00000000u, 0x000400fau, 0x0000248fu, 0x00002490u, 0x00002495u, 0x000200f8u, 0x00002495u, + 0x00080041u, 0x00000676u, 0x00002498u, 0x00000a2du, 0x00000225u, 0x000020eau, 0x00000232u, 0x0000c273u, + 0x0004003du, 0x0000000fu, 0x00002499u, 0x00002498u, 0x00040071u, 0x00000006u, 0x0000249au, 0x00002499u, + 0x00060041u, 0x000002b9u, 0x00004960u, 0x000002b7u, 0x00000225u, 0x0000249au, 0x0004003du, 0x000002b3u, + 0x00004961u, 0x00004960u, 0x00050051u, 0x00000006u, 0x00004962u, 0x00004961u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x00004964u, 0x00004961u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00004966u, 0x00004961u, + 0x00000002u, 0x00050051u, 0x00000006u, 0x00004968u, 0x00004961u, 0x00000003u, 0x00050051u, 0x00000006u, + 0x0000496au, 0x00004961u, 0x00000004u, 0x00050051u, 0x00000006u, 0x0000496cu, 0x00004961u, 0x00000005u, + 0x00050051u, 0x0000000fu, 0x0000496eu, 0x00004961u, 0x00000006u, 0x00050051u, 0x0000000fu, 0x00004970u, + 0x00004961u, 0x00000007u, 0x00050051u, 0x0000000fu, 0x00004972u, 0x00004961u, 0x00000008u, 0x00050051u, + 0x0000000fu, 0x00004974u, 0x00004961u, 0x00000009u, 0x00050051u, 0x0000000fu, 0x00004976u, 0x00004961u, + 0x0000000au, 0x00050051u, 0x0000000fu, 0x00004978u, 0x00004961u, 0x0000000bu, 0x00050051u, 0x0000000fu, + 0x0000497au, 0x00004961u, 0x0000000cu, 0x00050051u, 0x0000000fu, 0x0000497cu, 0x00004961u, 0x0000000du, + 0x00040071u, 0x00000006u, 0x00004ad8u, 0x0000497cu, 0x0004007cu, 0x00000008u, 0x00004ad9u, 0x00004ad8u, + 0x000500c7u, 0x00000008u, 0x00004adau, 0x00004ad9u, 0x0000022fu, 0x000500abu, 0x00000069u, 0x00004adbu, + 0x00004adau, 0x00000225u, 0x0004007cu, 0x00000008u, 0x00004adeu, 0x00004962u, 0x0004007cu, 0x00000008u, + 0x00004ae1u, 0x00004964u, 0x00040071u, 0x00000006u, 0x00004ae4u, 0x00004976u, 0x0004007cu, 0x00000008u, + 0x00004ae5u, 0x00004ae4u, 0x00050051u, 0x00000008u, 0x00004ae7u, 0x000081a9u, 0x00000000u, 0x0008000cu, + 0x00000008u, 0x00004fc2u, 0x00000001u, 0x0000002du, 0x00004ae7u, 0x00000c70u, 0x00000c2bu, 0x000500b1u, + 0x00000069u, 0x00004fc4u, 0x00004ae5u, 0x0000026bu, 0x000300f7u, 0x00004fd0u, 0x00000000u, 0x000400fau, + 0x00004fc4u, 0x00004fc5u, 0x00004fc9u, 0x000200f8u, 0x00004fc9u, 0x00050082u, 0x00000008u, 0x00004fcbu, + 0x0000116du, 0x00004ae5u, 0x000500c4u, 0x00000008u, 0x00004fcdu, 0x00004fc2u, 0x00004fcbu, 0x000500c3u, + 0x00000008u, 0x00004fcfu, 0x00004fcdu, 0x00000559u, 0x000200f9u, 0x00004fd0u, 0x000200f8u, 0x00004fc5u, + 0x000500c3u, 0x00000008u, 0x00004fc8u, 0x00004fc2u, 0x00004ae5u, 0x000200f9u, 0x00004fd0u, 0x000200f8u, + 0x00004fd0u, 0x000700f5u, 0x00000008u, 0x0000825eu, 0x00004fc8u, 0x00004fc5u, 0x00004fcfu, 0x00004fc9u, + 0x000300f7u, 0x00004fecu, 0x00000000u, 0x000400fau, 0x00004adbu, 0x00004fd2u, 0x00004fe7u, 0x000200f8u, + 0x00004fe7u, 0x000500c4u, 0x00000008u, 0x00004fe9u, 0x00004adeu, 0x00000235u, 0x00050082u, 0x00000008u, + 0x00004febu, 0x0000825eu, 0x00004fe9u, 0x000200f9u, 0x00004fecu, 0x000200f8u, 0x00004fd2u, 0x000500c3u, + 0x00000008u, 0x00004fd4u, 0x0000825eu, 0x00000235u, 0x000500afu, 0x00000069u, 0x00004fd6u, 0x00004fd4u, + 0x00004ae1u, 0x000300f7u, 0x00004fe6u, 0x00000000u, 0x000400fau, 0x00004fd6u, 0x00004fd8u, 0x00004fe0u, + 0x000200f8u, 0x00004fe0u, 0x000500c4u, 0x00000008u, 0x00004fe3u, 0x00004adeu, 0x00000235u, 0x00050082u, + 0x00000008u, 0x00004fe4u, 0x0000825eu, 0x00004fe3u, 0x0007000cu, 0x00000008u, 0x00004fe5u, 0x00000001u, + 0x0000002au, 0x00004fe4u, 0x00000225u, 0x000200f9u, 0x00004fe6u, 0x000200f8u, 0x00004fd8u, 0x000500c3u, + 0x00000008u, 0x00004fdau, 0x00004ae1u, 0x00000232u, 0x000500c3u, 0x00000008u, 0x00004fdcu, 0x00004adeu, + 0x00000232u, 0x00050082u, 0x00000008u, 0x00004fddu, 0x00004fdau, 0x00004fdcu, 0x000500c7u, 0x00000008u, + 0x00004fdeu, 0x00004fddu, 0x00001184u, 0x000500c4u, 0x00000008u, 0x00004fdfu, 0x00004fdeu, 0x0000023bu, + 0x000200f9u, 0x00004fe6u, 0x000200f8u, 0x00004fe6u, 0x000700f5u, 0x00000008u, 0x00008260u, 0x00004fdfu, + 0x00004fd8u, 0x00004fe5u, 0x00004fe0u, 0x000200f9u, 0x00004fecu, 0x000200f8u, 0x00004fecu, 0x000700f5u, + 0x00000008u, 0x0000825fu, 0x00008260u, 0x00004fe6u, 0x00004febu, 0x00004fe7u, 0x000500c7u, 0x00000008u, + 0x00004aeeu, 0x00004ad9u, 0x00000238u, 0x000500abu, 0x00000069u, 0x00004aefu, 0x00004aeeu, 0x00000225u, + 0x0004007cu, 0x00000008u, 0x00004af2u, 0x00004966u, 0x0004007cu, 0x00000008u, 0x00004af5u, 0x00004968u, + 0x00040071u, 0x00000006u, 0x00004af8u, 0x0000497au, 0x0004007cu, 0x00000008u, 0x00004af9u, 0x00004af8u, + 0x00050051u, 0x00000008u, 0x00004afbu, 0x000081a9u, 0x00000001u, 0x0008000cu, 0x00000008u, 0x00004ff2u, + 0x00000001u, 0x0000002du, 0x00004afbu, 0x00000c70u, 0x00000c2bu, 0x000500b1u, 0x00000069u, 0x00004ff4u, + 0x00004af9u, 0x0000026bu, 0x000300f7u, 0x00005000u, 0x00000000u, 0x000400fau, 0x00004ff4u, 0x00004ff5u, + 0x00004ff9u, 0x000200f8u, 0x00004ff9u, 0x00050082u, 0x00000008u, 0x00004ffbu, 0x0000116du, 0x00004af9u, + 0x000500c4u, 0x00000008u, 0x00004ffdu, 0x00004ff2u, 0x00004ffbu, 0x000500c3u, 0x00000008u, 0x00004fffu, + 0x00004ffdu, 0x00000559u, 0x000200f9u, 0x00005000u, 0x000200f8u, 0x00004ff5u, 0x000500c3u, 0x00000008u, + 0x00004ff8u, 0x00004ff2u, 0x00004af9u, 0x000200f9u, 0x00005000u, 0x000200f8u, 0x00005000u, 0x000700f5u, + 0x00000008u, 0x00008264u, 0x00004ff8u, 0x00004ff5u, 0x00004fffu, 0x00004ff9u, 0x000300f7u, 0x0000501cu, + 0x00000000u, 0x000400fau, 0x00004aefu, 0x00005002u, 0x00005017u, 0x000200f8u, 0x00005017u, 0x000500c4u, + 0x00000008u, 0x00005019u, 0x00004af2u, 0x00000235u, 0x00050082u, 0x00000008u, 0x0000501bu, 0x00008264u, + 0x00005019u, 0x000200f9u, 0x0000501cu, 0x000200f8u, 0x00005002u, 0x000500c3u, 0x00000008u, 0x00005004u, + 0x00008264u, 0x00000235u, 0x000500afu, 0x00000069u, 0x00005006u, 0x00005004u, 0x00004af5u, 0x000300f7u, + 0x00005016u, 0x00000000u, 0x000400fau, 0x00005006u, 0x00005008u, 0x00005010u, 0x000200f8u, 0x00005010u, + 0x000500c4u, 0x00000008u, 0x00005013u, 0x00004af2u, 0x00000235u, 0x00050082u, 0x00000008u, 0x00005014u, + 0x00008264u, 0x00005013u, 0x0007000cu, 0x00000008u, 0x00005015u, 0x00000001u, 0x0000002au, 0x00005014u, + 0x00000225u, 0x000200f9u, 0x00005016u, 0x000200f8u, 0x00005008u, 0x000500c3u, 0x00000008u, 0x0000500au, + 0x00004af5u, 0x00000232u, 0x000500c3u, 0x00000008u, 0x0000500cu, 0x00004af2u, 0x00000232u, 0x00050082u, + 0x00000008u, 0x0000500du, 0x0000500au, 0x0000500cu, 0x000500c7u, 0x00000008u, 0x0000500eu, 0x0000500du, + 0x00001184u, 0x000500c4u, 0x00000008u, 0x0000500fu, 0x0000500eu, 0x0000023bu, 0x000200f9u, 0x00005016u, + 0x000200f8u, 0x00005016u, 0x000700f5u, 0x00000008u, 0x00008266u, 0x0000500fu, 0x00005008u, 0x00005015u, + 0x00005010u, 0x000200f9u, 0x0000501cu, 0x000200f8u, 0x0000501cu, 0x000700f5u, 0x00000008u, 0x00008265u, + 0x00008266u, 0x00005016u, 0x0000501bu, 0x00005017u, 0x00050050u, 0x000000f2u, 0x0000c24eu, 0x0000825fu, + 0x00008265u, 0x000500a6u, 0x00000069u, 0x00004b00u, 0x00002327u, 0x00002321u, 0x000300f7u, 0x00004b06u, + 0x00000000u, 0x000400fau, 0x00004b00u, 0x00004b01u, 0x00004b05u, 0x000200f8u, 0x00004b05u, 0x000200f9u, + 0x00004b06u, 0x000200f8u, 0x00004b01u, 0x000500c7u, 0x000000f2u, 0x00004b04u, 0x0000c24eu, 0x0000c233u, + 0x000200f9u, 0x00004b06u, 0x000200f8u, 0x00004b06u, 0x000700f5u, 0x000000f2u, 0x0000826au, 0x00004b04u, + 0x00004b01u, 0x00000c57u, 0x00004b05u, 0x00050051u, 0x00000008u, 0x00004b08u, 0x0000826au, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00004b0au, 0x0000826au, 0x00000001u, 0x00050080u, 0x00000008u, 0x00004b0bu, + 0x00004b08u, 0x00004b0au, 0x000500c3u, 0x000000f2u, 0x00004b0eu, 0x0000c24eu, 0x0000c232u, 0x00050051u, + 0x00000008u, 0x00004b11u, 0x00004b0eu, 0x00000000u, 0x00040071u, 0x00000006u, 0x00005023u, 0x00004974u, + 0x0004007cu, 0x00000008u, 0x00005024u, 0x00005023u, 0x000500abu, 0x00000069u, 0x00005025u, 0x00005024u, + 0x00000225u, 0x000300f7u, 0x0000503du, 0x00000000u, 0x000400fau, 0x00005025u, 0x00005026u, 0x0000503du, + 0x000200f8u, 0x00005026u, 0x000500c4u, 0x00000008u, 0x00005029u, 0x0000022fu, 0x00004974u, 0x000500c7u, + 0x00000008u, 0x0000502eu, 0x00004ad9u, 0x00000232u, 0x000500abu, 0x00000069u, 0x0000502fu, 0x0000502eu, + 0x00000225u, 0x000300f7u, 0x00005038u, 0x00000000u, 0x000400fau, 0x0000502fu, 0x00005030u, 0x00005038u, + 0x000200f8u, 0x00005030u, 0x000500c7u, 0x00000008u, 0x00005033u, 0x00004b11u, 0x00005029u, 0x00050082u, + 0x00000008u, 0x00005034u, 0x00005033u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00005035u, 0x00000001u, + 0x0000002au, 0x00005034u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x00005037u, 0x00004b11u, 0x00005035u, + 0x000200f9u, 0x00005038u, 0x000200f8u, 0x00005038u, 0x000700f5u, 0x00000008u, 0x0000826cu, 0x00004b11u, + 0x00005026u, 0x00005037u, 0x00005030u, 0x00050082u, 0x00000008u, 0x0000503au, 0x00005029u, 0x0000022fu, + 0x000500c7u, 0x00000008u, 0x0000503cu, 0x0000826cu, 0x0000503au, 0x000200f9u, 0x0000503du, 0x000200f8u, + 0x0000503du, 0x000700f5u, 0x00000008u, 0x0000826du, 0x00004b11u, 0x00004b06u, 0x0000503cu, 0x00005038u, + 0x00050051u, 0x00000008u, 0x00004b15u, 0x00004b0eu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00005044u, + 0x00004978u, 0x0004007cu, 0x00000008u, 0x00005045u, 0x00005044u, 0x000500abu, 0x00000069u, 0x00005046u, + 0x00005045u, 0x00000225u, 0x000300f7u, 0x0000505eu, 0x00000000u, 0x000400fau, 0x00005046u, 0x00005047u, + 0x0000505eu, 0x000200f8u, 0x00005047u, 0x000500c4u, 0x00000008u, 0x0000504au, 0x0000022fu, 0x00004978u, + 0x000500c7u, 0x00000008u, 0x0000504fu, 0x00004ad9u, 0x00000262u, 0x000500abu, 0x00000069u, 0x00005050u, + 0x0000504fu, 0x00000225u, 0x000300f7u, 0x00005059u, 0x00000000u, 0x000400fau, 0x00005050u, 0x00005051u, + 0x00005059u, 0x000200f8u, 0x00005051u, 0x000500c7u, 0x00000008u, 0x00005054u, 0x00004b15u, 0x0000504au, + 0x00050082u, 0x00000008u, 0x00005055u, 0x00005054u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00005056u, + 0x00000001u, 0x0000002au, 0x00005055u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x00005058u, 0x00004b15u, + 0x00005056u, 0x000200f9u, 0x00005059u, 0x000200f8u, 0x00005059u, 0x000700f5u, 0x00000008u, 0x00008270u, + 0x00004b15u, 0x00005047u, 0x00005058u, 0x00005051u, 0x00050082u, 0x00000008u, 0x0000505bu, 0x0000504au, + 0x0000022fu, 0x000500c7u, 0x00000008u, 0x0000505du, 0x00008270u, 0x0000505bu, 0x000200f9u, 0x0000505eu, + 0x000200f8u, 0x0000505eu, 0x000700f5u, 0x00000008u, 0x00008271u, 0x00004b15u, 0x0000503du, 0x0000505du, + 0x00005059u, 0x00050080u, 0x00000008u, 0x00004b19u, 0x00004b11u, 0x0000022fu, 0x000300f7u, 0x0000507fu, + 0x00000000u, 0x000400fau, 0x00005025u, 0x00005068u, 0x0000507fu, 0x000200f8u, 0x00005068u, 0x000500c4u, + 0x00000008u, 0x0000506bu, 0x0000022fu, 0x00004974u, 0x000500c7u, 0x00000008u, 0x00005070u, 0x00004ad9u, + 0x00000232u, 0x000500abu, 0x00000069u, 0x00005071u, 0x00005070u, 0x00000225u, 0x000300f7u, 0x0000507au, + 0x00000000u, 0x000400fau, 0x00005071u, 0x00005072u, 0x0000507au, 0x000200f8u, 0x00005072u, 0x000500c7u, + 0x00000008u, 0x00005075u, 0x00004b19u, 0x0000506bu, 0x00050082u, 0x00000008u, 0x00005076u, 0x00005075u, + 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00005077u, 0x00000001u, 0x0000002au, 0x00005076u, 0x00000225u, + 0x000500c6u, 0x00000008u, 0x00005079u, 0x00004b19u, 0x00005077u, 0x000200f9u, 0x0000507au, 0x000200f8u, + 0x0000507au, 0x000700f5u, 0x00000008u, 0x00008274u, 0x00004b19u, 0x00005068u, 0x00005079u, 0x00005072u, + 0x00050082u, 0x00000008u, 0x0000507cu, 0x0000506bu, 0x0000022fu, 0x000500c7u, 0x00000008u, 0x0000507eu, + 0x00008274u, 0x0000507cu, 0x000200f9u, 0x0000507fu, 0x000200f8u, 0x0000507fu, 0x000700f5u, 0x00000008u, + 0x00008275u, 0x00004b19u, 0x0000505eu, 0x0000507eu, 0x0000507au, 0x00050080u, 0x00000008u, 0x00004b1eu, + 0x00004b15u, 0x0000022fu, 0x000300f7u, 0x000050a0u, 0x00000000u, 0x000400fau, 0x00005046u, 0x00005089u, + 0x000050a0u, 0x000200f8u, 0x00005089u, 0x000500c4u, 0x00000008u, 0x0000508cu, 0x0000022fu, 0x00004978u, + 0x000500c7u, 0x00000008u, 0x00005091u, 0x00004ad9u, 0x00000262u, 0x000500abu, 0x00000069u, 0x00005092u, + 0x00005091u, 0x00000225u, 0x000300f7u, 0x0000509bu, 0x00000000u, 0x000400fau, 0x00005092u, 0x00005093u, + 0x0000509bu, 0x000200f8u, 0x00005093u, 0x000500c7u, 0x00000008u, 0x00005096u, 0x00004b1eu, 0x0000508cu, + 0x00050082u, 0x00000008u, 0x00005097u, 0x00005096u, 0x0000022fu, 0x0007000cu, 0x00000008u, 0x00005098u, + 0x00000001u, 0x0000002au, 0x00005097u, 0x00000225u, 0x000500c6u, 0x00000008u, 0x0000509au, 0x00004b1eu, + 0x00005098u, 0x000200f9u, 0x0000509bu, 0x000200f8u, 0x0000509bu, 0x000700f5u, 0x00000008u, 0x00008278u, + 0x00004b1eu, 0x00005089u, 0x0000509au, 0x00005093u, 0x00050082u, 0x00000008u, 0x0000509du, 0x0000508cu, + 0x0000022fu, 0x000500c7u, 0x00000008u, 0x0000509fu, 0x00008278u, 0x0000509du, 0x000200f9u, 0x000050a0u, + 0x000200f8u, 0x000050a0u, 0x000700f5u, 0x00000008u, 0x00008279u, 0x00004b1eu, 0x0000507fu, 0x0000509fu, + 0x0000509bu, 0x00050082u, 0x00000008u, 0x00004b23u, 0x00008279u, 0x00008271u, 0x0007000cu, 0x00000008u, + 0x00004b24u, 0x00000001u, 0x0000002au, 0x00004b23u, 0x00001401u, 0x000500c7u, 0x00000008u, 0x00004b26u, + 0x00008271u, 0x00000363u, 0x00050080u, 0x00000008u, 0x00004b28u, 0x00004b26u, 0x00004b24u, 0x000500aau, + 0x00000884u, 0x00004b2eu, 0x0000826au, 0x0000140du, 0x00050051u, 0x00000069u, 0x00004b2fu, 0x00004b2eu, + 0x00000000u, 0x00050051u, 0x00000069u, 0x00004b30u, 0x00004b2eu, 0x00000001u, 0x00070050u, 0x00000600u, + 0x00004b31u, 0x00002351u, 0x00002366u, 0x00004b2fu, 0x00004b30u, 0x0004009bu, 0x00000069u, 0x00004b32u, + 0x00004b31u, 0x000500afu, 0x00000069u, 0x00004b34u, 0x00004b0bu, 0x0000116du, 0x000600a9u, 0x00000008u, + 0x0000c275u, 0x00004b32u, 0x00000225u, 0x00004b0bu, 0x00040071u, 0x00000006u, 0x00004b3au, 0x0000496eu, + 0x0004007cu, 0x00000008u, 0x00004b3bu, 0x00004b3au, 0x000500aau, 0x00000069u, 0x00004b3cu, 0x00004b3bu, + 0x0000022fu, 0x000500afu, 0x00000069u, 0x00004b3eu, 0x0000c275u, 0x0000116du, 0x000300f7u, 0x00004b47u, + 0x00000000u, 0x000400fau, 0x00004b3eu, 0x00004b3fu, 0x00004b43u, 0x000200f8u, 0x00004b43u, 0x00050050u, + 0x000000f2u, 0x00004b46u, 0x0000826du, 0x00004b26u, 0x000200f9u, 0x00004b47u, 0x000200f8u, 0x00004b3fu, + 0x00050050u, 0x000000f2u, 0x00004b42u, 0x00008275u, 0x00004b28u, 0x000200f9u, 0x00004b47u, 0x000200f8u, + 0x00004b47u, 0x000700f5u, 0x000000f2u, 0x00008294u, 0x00004b42u, 0x00004b3fu, 0x00004b46u, 0x00004b43u, + 0x000500c7u, 0x00000008u, 0x00004b4au, 0x0000826du, 0x0000022fu, 0x000500c4u, 0x00000008u, 0x00004b4bu, + 0x00004b4au, 0x00000238u, 0x000500c3u, 0x00000008u, 0x00004b4eu, 0x00004b08u, 0x0000022fu, 0x000500c5u, + 0x00000008u, 0x00004b4fu, 0x00004b4bu, 0x00004b4eu, 0x000300f7u, 0x00004e21u, 0x00000000u, 0x000400fau, + 0x00002321u, 0x00004b51u, 0x00004bfbu, 0x000200f8u, 0x00004bfbu, 0x000300f7u, 0x00004e20u, 0x00000000u, + 0x000d00fbu, 0x00004b3bu, 0x00004e20u, 0x00000000u, 0x00004c00u, 0x00000001u, 0x00004c8au, 0x00000002u, + 0x00004cb8u, 0x00000003u, 0x00004d2du, 0x00000004u, 0x00004db7u, 0x000200f8u, 0x00004db7u, 0x00040071u, + 0x00000006u, 0x00004dbau, 0x00004970u, 0x0004007cu, 0x00000008u, 0x00004dbbu, 0x00004dbau, 0x000300f7u, + 0x00004e1fu, 0x00000000u, 0x000700fbu, 0x00004dbbu, 0x00004dbcu, 0x00000000u, 0x00004dddu, 0x00000001u, + 0x00004dfeu, 0x000200f8u, 0x00004dfeu, 0x0004007cu, 0x000000b4u, 0x00004e00u, 0x00008294u, 0x00050051u, + 0x00000006u, 0x000061f8u, 0x00004e00u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000061f9u, 0x0000496cu, + 0x000061f8u, 0x00050080u, 0x00000006u, 0x000061fau, 0x0000496au, 0x000061f9u, 0x00050051u, 0x00000006u, + 0x000061fcu, 0x00004e00u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000061feu, 0x000061fau, 0x000061fcu, + 0x000500c7u, 0x00000006u, 0x00006200u, 0x000061feu, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00006204u, + 0x000061f8u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00006205u, 0x00006204u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00006207u, 0x00006200u, 0x00006205u, 0x000500c6u, 0x00000006u, 0x00006209u, 0x00006207u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x0000620cu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00006209u, 0x0004003du, 0x0000000fu, 0x0000620du, 0x0000620cu, 0x00040071u, 0x00000006u, 0x0000620eu, + 0x0000620du, 0x00040071u, 0x00000011u, 0x00006210u, 0x0000620eu, 0x0004007cu, 0x00000012u, 0x00006211u, + 0x00006210u, 0x00070050u, 0x00000013u, 0x00006212u, 0x00006211u, 0x00006211u, 0x00006211u, 0x00006211u, + 0x000300f7u, 0x00004e14u, 0x00000000u, 0x000400fau, 0x00002327u, 0x00004e05u, 0x00004e14u, 0x000200f8u, + 0x00004e05u, 0x00050050u, 0x000000f2u, 0x00004e08u, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, + 0x00004e09u, 0x00004e08u, 0x00050051u, 0x00000006u, 0x0000621du, 0x00004e09u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000621eu, 0x0000496cu, 0x0000621du, 0x00050080u, 0x00000006u, 0x0000621fu, 0x0000496au, + 0x0000621eu, 0x00050051u, 0x00000006u, 0x00006221u, 0x00004e09u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00006223u, 0x0000621fu, 0x00006221u, 0x000500c7u, 0x00000006u, 0x00006225u, 0x00006223u, 0x00000e83u, + 0x000500c7u, 0x00000006u, 0x00006229u, 0x0000621du, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000622au, + 0x00006229u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x0000622cu, 0x00006225u, 0x0000622au, 0x000500c6u, + 0x00000006u, 0x0000622eu, 0x0000622cu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00006231u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x0000622eu, 0x0004003du, 0x0000000fu, 0x00006232u, 0x00006231u, + 0x00040071u, 0x00000006u, 0x00006233u, 0x00006232u, 0x00040071u, 0x00000011u, 0x00006235u, 0x00006233u, + 0x0004007cu, 0x00000012u, 0x00006236u, 0x00006235u, 0x00070050u, 0x00000013u, 0x00006237u, 0x00006236u, + 0x00006236u, 0x00006236u, 0x00006236u, 0x00050050u, 0x000000f2u, 0x00004e0fu, 0x0000826du, 0x00004b28u, + 0x0004007cu, 0x000000b4u, 0x00004e10u, 0x00004e0fu, 0x00050051u, 0x00000006u, 0x00006242u, 0x00004e10u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00006243u, 0x0000496cu, 0x00006242u, 0x00050080u, 0x00000006u, + 0x00006244u, 0x0000496au, 0x00006243u, 0x00050051u, 0x00000006u, 0x00006246u, 0x00004e10u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00006248u, 0x00006244u, 0x00006246u, 0x000500c7u, 0x00000006u, 0x0000624au, + 0x00006248u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x0000624eu, 0x00006242u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x0000624fu, 0x0000624eu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00006251u, 0x0000624au, + 0x0000624fu, 0x000500c6u, 0x00000006u, 0x00006253u, 0x00006251u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00006256u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00006253u, 0x0004003du, 0x0000000fu, + 0x00006257u, 0x00006256u, 0x00040071u, 0x00000006u, 0x00006258u, 0x00006257u, 0x00040071u, 0x00000011u, + 0x0000625au, 0x00006258u, 0x0004007cu, 0x00000012u, 0x0000625bu, 0x0000625au, 0x00070050u, 0x00000013u, + 0x0000625cu, 0x0000625bu, 0x0000625bu, 0x0000625bu, 0x0000625bu, 0x000200f9u, 0x00004e14u, 0x000200f8u, + 0x00004e14u, 0x000700f5u, 0x00000013u, 0x00008644u, 0x0000856eu, 0x00004dfeu, 0x0000625cu, 0x00004e05u, + 0x000700f5u, 0x00000013u, 0x0000854cu, 0x00008473u, 0x00004dfeu, 0x00006237u, 0x00004e05u, 0x000300f7u, + 0x00004e1eu, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004e16u, 0x00004e1eu, 0x000200f8u, 0x00004e16u, + 0x00050050u, 0x000000f2u, 0x00004e19u, 0x00008275u, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004e1au, + 0x00004e19u, 0x00050051u, 0x00000006u, 0x00006267u, 0x00004e1au, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00006268u, 0x0000496cu, 0x00006267u, 0x00050080u, 0x00000006u, 0x00006269u, 0x0000496au, 0x00006268u, + 0x00050051u, 0x00000006u, 0x0000626bu, 0x00004e1au, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000626du, + 0x00006269u, 0x0000626bu, 0x000500c7u, 0x00000006u, 0x0000626fu, 0x0000626du, 0x00000e83u, 0x000500c7u, + 0x00000006u, 0x00006273u, 0x00006267u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00006274u, 0x00006273u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00006276u, 0x0000626fu, 0x00006274u, 0x000500c6u, 0x00000006u, + 0x00006278u, 0x00006276u, 0x00000469u, 0x00080041u, 0x00000676u, 0x0000627bu, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00006278u, 0x0004003du, 0x0000000fu, 0x0000627cu, 0x0000627bu, 0x00040071u, + 0x00000006u, 0x0000627du, 0x0000627cu, 0x00040071u, 0x00000011u, 0x0000627fu, 0x0000627du, 0x0004007cu, + 0x00000012u, 0x00006280u, 0x0000627fu, 0x00070050u, 0x00000013u, 0x00006281u, 0x00006280u, 0x00006280u, + 0x00006280u, 0x00006280u, 0x000200f9u, 0x00004e1eu, 0x000200f8u, 0x00004e1eu, 0x000700f5u, 0x00000013u, + 0x0000873bu, 0x00008663u, 0x00004e14u, 0x00006281u, 0x00004e16u, 0x000200f9u, 0x00004e1fu, 0x000200f8u, + 0x00004dddu, 0x0004007cu, 0x000000b4u, 0x00004ddfu, 0x00008294u, 0x00050051u, 0x00000006u, 0x00006129u, + 0x00004ddfu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000612au, 0x0000496cu, 0x00006129u, 0x00050080u, + 0x00000006u, 0x0000612bu, 0x0000496au, 0x0000612au, 0x00050051u, 0x00000006u, 0x0000612du, 0x00004ddfu, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000612eu, 0x0000612du, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00006130u, 0x0000612bu, 0x0000612eu, 0x000500c7u, 0x00000006u, 0x00006132u, 0x00006130u, 0x00000e83u, + 0x000400c8u, 0x00000006u, 0x00006135u, 0x0000612du, 0x000500c7u, 0x00000006u, 0x00006136u, 0x00006135u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00006137u, 0x00006136u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x0000613bu, 0x00006129u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000613cu, 0x0000613bu, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x0000613eu, 0x00006132u, 0x0000613cu, 0x000500c6u, 0x00000006u, 0x00006140u, + 0x0000613eu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00006143u, 0x00000e9du, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00006140u, 0x0004003du, 0x0000000fu, 0x00006144u, 0x00006143u, 0x00040071u, 0x00000006u, + 0x00006145u, 0x00006144u, 0x000500c2u, 0x00000006u, 0x00006148u, 0x00006145u, 0x00006137u, 0x000500c7u, + 0x00000006u, 0x00006149u, 0x00006148u, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x0000614bu, 0x00006149u, + 0x00000238u, 0x000500c5u, 0x00000006u, 0x0000614du, 0x00006149u, 0x0000614bu, 0x00040071u, 0x00000011u, + 0x0000614fu, 0x0000614du, 0x0004007cu, 0x00000012u, 0x00006150u, 0x0000614fu, 0x00070050u, 0x00000013u, + 0x00006151u, 0x00006150u, 0x00006150u, 0x00006150u, 0x00006150u, 0x000300f7u, 0x00004df3u, 0x00000000u, + 0x000400fau, 0x00002327u, 0x00004de4u, 0x00004df3u, 0x000200f8u, 0x00004de4u, 0x00050050u, 0x000000f2u, + 0x00004de7u, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004de8u, 0x00004de7u, 0x00050051u, + 0x00000006u, 0x0000615du, 0x00004de8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000615eu, 0x0000496cu, + 0x0000615du, 0x00050080u, 0x00000006u, 0x0000615fu, 0x0000496au, 0x0000615eu, 0x00050051u, 0x00000006u, + 0x00006161u, 0x00004de8u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006162u, 0x00006161u, 0x0000022fu, + 0x00050080u, 0x00000006u, 0x00006164u, 0x0000615fu, 0x00006162u, 0x000500c7u, 0x00000006u, 0x00006166u, + 0x00006164u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00006169u, 0x00006161u, 0x000500c7u, 0x00000006u, + 0x0000616au, 0x00006169u, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000616bu, 0x0000616au, 0x00000709u, + 0x000500c7u, 0x00000006u, 0x0000616fu, 0x0000615du, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00006170u, + 0x0000616fu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00006172u, 0x00006166u, 0x00006170u, 0x000500c6u, + 0x00000006u, 0x00006174u, 0x00006172u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00006177u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00006174u, 0x0004003du, 0x0000000fu, 0x00006178u, 0x00006177u, + 0x00040071u, 0x00000006u, 0x00006179u, 0x00006178u, 0x000500c2u, 0x00000006u, 0x0000617cu, 0x00006179u, + 0x0000616bu, 0x000500c7u, 0x00000006u, 0x0000617du, 0x0000617cu, 0x00000ea6u, 0x000500c4u, 0x00000006u, + 0x0000617fu, 0x0000617du, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00006181u, 0x0000617du, 0x0000617fu, + 0x00040071u, 0x00000011u, 0x00006183u, 0x00006181u, 0x0004007cu, 0x00000012u, 0x00006184u, 0x00006183u, + 0x00070050u, 0x00000013u, 0x00006185u, 0x00006184u, 0x00006184u, 0x00006184u, 0x00006184u, 0x00050050u, + 0x000000f2u, 0x00004deeu, 0x0000826du, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004defu, 0x00004deeu, + 0x00050051u, 0x00000006u, 0x00006191u, 0x00004defu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006192u, + 0x0000496cu, 0x00006191u, 0x00050080u, 0x00000006u, 0x00006193u, 0x0000496au, 0x00006192u, 0x00050051u, + 0x00000006u, 0x00006195u, 0x00004defu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006196u, 0x00006195u, + 0x0000022fu, 0x00050080u, 0x00000006u, 0x00006198u, 0x00006193u, 0x00006196u, 0x000500c7u, 0x00000006u, + 0x0000619au, 0x00006198u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x0000619du, 0x00006195u, 0x000500c7u, + 0x00000006u, 0x0000619eu, 0x0000619du, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000619fu, 0x0000619eu, + 0x00000709u, 0x000500c7u, 0x00000006u, 0x000061a3u, 0x00006191u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x000061a4u, 0x000061a3u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000061a6u, 0x0000619au, 0x000061a4u, + 0x000500c6u, 0x00000006u, 0x000061a8u, 0x000061a6u, 0x00000469u, 0x00080041u, 0x00000676u, 0x000061abu, + 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000061a8u, 0x0004003du, 0x0000000fu, 0x000061acu, + 0x000061abu, 0x00040071u, 0x00000006u, 0x000061adu, 0x000061acu, 0x000500c2u, 0x00000006u, 0x000061b0u, + 0x000061adu, 0x0000619fu, 0x000500c7u, 0x00000006u, 0x000061b1u, 0x000061b0u, 0x00000ea6u, 0x000500c4u, + 0x00000006u, 0x000061b3u, 0x000061b1u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x000061b5u, 0x000061b1u, + 0x000061b3u, 0x00040071u, 0x00000011u, 0x000061b7u, 0x000061b5u, 0x0004007cu, 0x00000012u, 0x000061b8u, + 0x000061b7u, 0x00070050u, 0x00000013u, 0x000061b9u, 0x000061b8u, 0x000061b8u, 0x000061b8u, 0x000061b8u, + 0x000200f9u, 0x00004df3u, 0x000200f8u, 0x00004df3u, 0x000700f5u, 0x00000013u, 0x00008642u, 0x0000856eu, + 0x00004dddu, 0x000061b9u, 0x00004de4u, 0x000700f5u, 0x00000013u, 0x0000854au, 0x00008473u, 0x00004dddu, + 0x00006185u, 0x00004de4u, 0x000300f7u, 0x00004dfdu, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004df5u, + 0x00004dfdu, 0x000200f8u, 0x00004df5u, 0x00050050u, 0x000000f2u, 0x00004df8u, 0x00008275u, 0x00004b28u, + 0x0004007cu, 0x000000b4u, 0x00004df9u, 0x00004df8u, 0x00050051u, 0x00000006u, 0x000061c5u, 0x00004df9u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000061c6u, 0x0000496cu, 0x000061c5u, 0x00050080u, 0x00000006u, + 0x000061c7u, 0x0000496au, 0x000061c6u, 0x00050051u, 0x00000006u, 0x000061c9u, 0x00004df9u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000061cau, 0x000061c9u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000061ccu, + 0x000061c7u, 0x000061cau, 0x000500c7u, 0x00000006u, 0x000061ceu, 0x000061ccu, 0x00000e83u, 0x000400c8u, + 0x00000006u, 0x000061d1u, 0x000061c9u, 0x000500c7u, 0x00000006u, 0x000061d2u, 0x000061d1u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x000061d3u, 0x000061d2u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000061d7u, + 0x000061c5u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000061d8u, 0x000061d7u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x000061dau, 0x000061ceu, 0x000061d8u, 0x000500c6u, 0x00000006u, 0x000061dcu, 0x000061dau, + 0x00000469u, 0x00080041u, 0x00000676u, 0x000061dfu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x000061dcu, 0x0004003du, 0x0000000fu, 0x000061e0u, 0x000061dfu, 0x00040071u, 0x00000006u, 0x000061e1u, + 0x000061e0u, 0x000500c2u, 0x00000006u, 0x000061e4u, 0x000061e1u, 0x000061d3u, 0x000500c7u, 0x00000006u, + 0x000061e5u, 0x000061e4u, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x000061e7u, 0x000061e5u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x000061e9u, 0x000061e5u, 0x000061e7u, 0x00040071u, 0x00000011u, 0x000061ebu, + 0x000061e9u, 0x0004007cu, 0x00000012u, 0x000061ecu, 0x000061ebu, 0x00070050u, 0x00000013u, 0x000061edu, + 0x000061ecu, 0x000061ecu, 0x000061ecu, 0x000061ecu, 0x000200f9u, 0x00004dfdu, 0x000200f8u, 0x00004dfdu, + 0x000700f5u, 0x00000013u, 0x00008739u, 0x00008663u, 0x00004df3u, 0x000061edu, 0x00004df5u, 0x000200f9u, + 0x00004e1fu, 0x000200f8u, 0x00004dbcu, 0x0004007cu, 0x000000b4u, 0x00004dbeu, 0x00008294u, 0x00050051u, + 0x00000006u, 0x00006074u, 0x00004dbeu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006075u, 0x0000496cu, + 0x00006074u, 0x00050080u, 0x00000006u, 0x00006076u, 0x0000496au, 0x00006075u, 0x00050051u, 0x00000006u, + 0x00006078u, 0x00004dbeu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00006079u, 0x00006078u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x0000607bu, 0x00006076u, 0x00006079u, 0x000500c7u, 0x00000006u, 0x0000607du, + 0x0000607bu, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x0000607fu, 0x0000607du, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00006082u, 0x00006074u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00006083u, 0x00006082u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00006085u, 0x0000607fu, 0x00006083u, 0x000500c6u, 0x00000006u, + 0x00006087u, 0x00006085u, 0x00000461u, 0x00080041u, 0x00000697u, 0x0000608au, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00006087u, 0x0004003du, 0x00000011u, 0x0000608bu, 0x0000608au, 0x00040071u, + 0x00000006u, 0x0000608cu, 0x0000608bu, 0x000500c2u, 0x00000006u, 0x0000608eu, 0x0000608cu, 0x00000262u, + 0x00040071u, 0x00000011u, 0x0000608fu, 0x0000608eu, 0x0004007cu, 0x00000012u, 0x00006090u, 0x0000608fu, + 0x000500c7u, 0x00000006u, 0x00006092u, 0x0000608cu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00006093u, + 0x00006092u, 0x0004007cu, 0x00000012u, 0x00006094u, 0x00006093u, 0x00050050u, 0x000001b1u, 0x00006095u, + 0x00006090u, 0x00006094u, 0x0009004fu, 0x00000013u, 0x00006096u, 0x00006095u, 0x00006095u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004dd2u, 0x00000000u, 0x000400fau, 0x00002327u, + 0x00004dc3u, 0x00004dd2u, 0x000200f8u, 0x00004dc3u, 0x00050050u, 0x000000f2u, 0x00004dc6u, 0x00008275u, + 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004dc7u, 0x00004dc6u, 0x00050051u, 0x00000006u, 0x000060a1u, + 0x00004dc7u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000060a2u, 0x0000496cu, 0x000060a1u, 0x00050080u, + 0x00000006u, 0x000060a3u, 0x0000496au, 0x000060a2u, 0x00050051u, 0x00000006u, 0x000060a5u, 0x00004dc7u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000060a6u, 0x000060a5u, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x000060a8u, 0x000060a3u, 0x000060a6u, 0x000500c7u, 0x00000006u, 0x000060aau, 0x000060a8u, 0x00000e83u, + 0x000500c2u, 0x00000006u, 0x000060acu, 0x000060aau, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000060afu, + 0x000060a1u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000060b0u, 0x000060afu, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x000060b2u, 0x000060acu, 0x000060b0u, 0x000500c6u, 0x00000006u, 0x000060b4u, 0x000060b2u, + 0x00000461u, 0x00080041u, 0x00000697u, 0x000060b7u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x000060b4u, 0x0004003du, 0x00000011u, 0x000060b8u, 0x000060b7u, 0x00040071u, 0x00000006u, 0x000060b9u, + 0x000060b8u, 0x000500c2u, 0x00000006u, 0x000060bbu, 0x000060b9u, 0x00000262u, 0x00040071u, 0x00000011u, + 0x000060bcu, 0x000060bbu, 0x0004007cu, 0x00000012u, 0x000060bdu, 0x000060bcu, 0x000500c7u, 0x00000006u, + 0x000060bfu, 0x000060b9u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000060c0u, 0x000060bfu, 0x0004007cu, + 0x00000012u, 0x000060c1u, 0x000060c0u, 0x00050050u, 0x000001b1u, 0x000060c2u, 0x000060bdu, 0x000060c1u, + 0x0009004fu, 0x00000013u, 0x000060c3u, 0x000060c2u, 0x000060c2u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x00050050u, 0x000000f2u, 0x00004dcdu, 0x0000826du, 0x00004b28u, 0x0004007cu, 0x000000b4u, + 0x00004dceu, 0x00004dcdu, 0x00050051u, 0x00000006u, 0x000060ceu, 0x00004dceu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000060cfu, 0x0000496cu, 0x000060ceu, 0x00050080u, 0x00000006u, 0x000060d0u, 0x0000496au, + 0x000060cfu, 0x00050051u, 0x00000006u, 0x000060d2u, 0x00004dceu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000060d3u, 0x000060d2u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000060d5u, 0x000060d0u, 0x000060d3u, + 0x000500c7u, 0x00000006u, 0x000060d7u, 0x000060d5u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x000060d9u, + 0x000060d7u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000060dcu, 0x000060ceu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000060ddu, 0x000060dcu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000060dfu, 0x000060d9u, + 0x000060ddu, 0x000500c6u, 0x00000006u, 0x000060e1u, 0x000060dfu, 0x00000461u, 0x00080041u, 0x00000697u, + 0x000060e4u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000060e1u, 0x0004003du, 0x00000011u, + 0x000060e5u, 0x000060e4u, 0x00040071u, 0x00000006u, 0x000060e6u, 0x000060e5u, 0x000500c2u, 0x00000006u, + 0x000060e8u, 0x000060e6u, 0x00000262u, 0x00040071u, 0x00000011u, 0x000060e9u, 0x000060e8u, 0x0004007cu, + 0x00000012u, 0x000060eau, 0x000060e9u, 0x000500c7u, 0x00000006u, 0x000060ecu, 0x000060e6u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x000060edu, 0x000060ecu, 0x0004007cu, 0x00000012u, 0x000060eeu, 0x000060edu, + 0x00050050u, 0x000001b1u, 0x000060efu, 0x000060eau, 0x000060eeu, 0x0009004fu, 0x00000013u, 0x000060f0u, + 0x000060efu, 0x000060efu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004dd2u, + 0x000200f8u, 0x00004dd2u, 0x000700f5u, 0x00000013u, 0x00008640u, 0x0000856eu, 0x00004dbcu, 0x000060f0u, + 0x00004dc3u, 0x000700f5u, 0x00000013u, 0x00008548u, 0x00008473u, 0x00004dbcu, 0x000060c3u, 0x00004dc3u, + 0x000300f7u, 0x00004ddcu, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004dd4u, 0x00004ddcu, 0x000200f8u, + 0x00004dd4u, 0x00050050u, 0x000000f2u, 0x00004dd7u, 0x00008275u, 0x00004b28u, 0x0004007cu, 0x000000b4u, + 0x00004dd8u, 0x00004dd7u, 0x00050051u, 0x00000006u, 0x000060fbu, 0x00004dd8u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000060fcu, 0x0000496cu, 0x000060fbu, 0x00050080u, 0x00000006u, 0x000060fdu, 0x0000496au, + 0x000060fcu, 0x00050051u, 0x00000006u, 0x000060ffu, 0x00004dd8u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00006100u, 0x000060ffu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00006102u, 0x000060fdu, 0x00006100u, + 0x000500c7u, 0x00000006u, 0x00006104u, 0x00006102u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00006106u, + 0x00006104u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00006109u, 0x000060fbu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x0000610au, 0x00006109u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x0000610cu, 0x00006106u, + 0x0000610au, 0x000500c6u, 0x00000006u, 0x0000610eu, 0x0000610cu, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00006111u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000610eu, 0x0004003du, 0x00000011u, + 0x00006112u, 0x00006111u, 0x00040071u, 0x00000006u, 0x00006113u, 0x00006112u, 0x000500c2u, 0x00000006u, + 0x00006115u, 0x00006113u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00006116u, 0x00006115u, 0x0004007cu, + 0x00000012u, 0x00006117u, 0x00006116u, 0x000500c7u, 0x00000006u, 0x00006119u, 0x00006113u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x0000611au, 0x00006119u, 0x0004007cu, 0x00000012u, 0x0000611bu, 0x0000611au, + 0x00050050u, 0x000001b1u, 0x0000611cu, 0x00006117u, 0x0000611bu, 0x0009004fu, 0x00000013u, 0x0000611du, + 0x0000611cu, 0x0000611cu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004ddcu, + 0x000200f8u, 0x00004ddcu, 0x000700f5u, 0x00000013u, 0x00008737u, 0x00008663u, 0x00004dd2u, 0x0000611du, + 0x00004dd4u, 0x000200f9u, 0x00004e1fu, 0x000200f8u, 0x00004e1fu, 0x000900f5u, 0x00000013u, 0x00008736u, + 0x00008737u, 0x00004ddcu, 0x00008739u, 0x00004dfdu, 0x0000873bu, 0x00004e1eu, 0x000900f5u, 0x00000013u, + 0x0000863eu, 0x00008640u, 0x00004ddcu, 0x00008642u, 0x00004dfdu, 0x00008644u, 0x00004e1eu, 0x000900f5u, + 0x00000013u, 0x00008546u, 0x00008548u, 0x00004ddcu, 0x0000854au, 0x00004dfdu, 0x0000854cu, 0x00004e1eu, + 0x000900f5u, 0x00000013u, 0x000083d9u, 0x00006096u, 0x00004ddcu, 0x00006151u, 0x00004dfdu, 0x00006212u, + 0x00004e1eu, 0x000200f9u, 0x00004e20u, 0x000200f8u, 0x00004d2du, 0x00040071u, 0x00000006u, 0x00004d30u, + 0x00004970u, 0x0004007cu, 0x00000008u, 0x00004d31u, 0x00004d30u, 0x000300f7u, 0x00004db6u, 0x00000000u, + 0x000b00fbu, 0x00004d31u, 0x00004db6u, 0x00000000u, 0x00004d32u, 0x00000001u, 0x00004d53u, 0x00000002u, + 0x00004d74u, 0x00000003u, 0x00004d95u, 0x000200f8u, 0x00004d95u, 0x0004007cu, 0x000000b4u, 0x00004d97u, + 0x00008294u, 0x00050051u, 0x00000006u, 0x00005fc0u, 0x00004d97u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005fc1u, 0x0000496cu, 0x00005fc0u, 0x00050080u, 0x00000006u, 0x00005fc2u, 0x0000496au, 0x00005fc1u, + 0x00050051u, 0x00000006u, 0x00005fc4u, 0x00004d97u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005fc5u, + 0x00005fc4u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005fc7u, 0x00005fc2u, 0x00005fc5u, 0x000500c7u, + 0x00000006u, 0x00005fc9u, 0x00005fc7u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00005fcbu, 0x00005fc9u, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005fceu, 0x00005fc0u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00005fcfu, 0x00005fceu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005fd1u, 0x00005fcbu, 0x00005fcfu, + 0x000500c6u, 0x00000006u, 0x00005fd3u, 0x00005fd1u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005fd6u, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005fd3u, 0x0004003du, 0x00000011u, 0x00005fd7u, + 0x00005fd6u, 0x00040071u, 0x00000006u, 0x00005fd8u, 0x00005fd7u, 0x000500c2u, 0x00000006u, 0x00005fdau, + 0x00005fd8u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00005fdbu, 0x00005fdau, 0x0004007cu, 0x00000012u, + 0x00005fdcu, 0x00005fdbu, 0x000500c7u, 0x00000006u, 0x00005fdeu, 0x00005fd8u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00005fdfu, 0x00005fdeu, 0x0004007cu, 0x00000012u, 0x00005fe0u, 0x00005fdfu, 0x00050050u, + 0x000001b1u, 0x00005fe1u, 0x00005fdcu, 0x00005fe0u, 0x0009004fu, 0x00000013u, 0x00005fe2u, 0x00005fe1u, + 0x00005fe1u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004dabu, 0x00000000u, + 0x000400fau, 0x00002327u, 0x00004d9cu, 0x00004dabu, 0x000200f8u, 0x00004d9cu, 0x00050050u, 0x000000f2u, + 0x00004d9fu, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004da0u, 0x00004d9fu, 0x00050051u, + 0x00000006u, 0x00005fedu, 0x00004da0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005feeu, 0x0000496cu, + 0x00005fedu, 0x00050080u, 0x00000006u, 0x00005fefu, 0x0000496au, 0x00005feeu, 0x00050051u, 0x00000006u, + 0x00005ff1u, 0x00004da0u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005ff2u, 0x00005ff1u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x00005ff4u, 0x00005fefu, 0x00005ff2u, 0x000500c7u, 0x00000006u, 0x00005ff6u, + 0x00005ff4u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00005ff8u, 0x00005ff6u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00005ffbu, 0x00005fedu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005ffcu, 0x00005ffbu, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005ffeu, 0x00005ff8u, 0x00005ffcu, 0x000500c6u, 0x00000006u, + 0x00006000u, 0x00005ffeu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00006003u, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00006000u, 0x0004003du, 0x00000011u, 0x00006004u, 0x00006003u, 0x00040071u, + 0x00000006u, 0x00006005u, 0x00006004u, 0x000500c2u, 0x00000006u, 0x00006007u, 0x00006005u, 0x00000262u, + 0x00040071u, 0x00000011u, 0x00006008u, 0x00006007u, 0x0004007cu, 0x00000012u, 0x00006009u, 0x00006008u, + 0x000500c7u, 0x00000006u, 0x0000600bu, 0x00006005u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000600cu, + 0x0000600bu, 0x0004007cu, 0x00000012u, 0x0000600du, 0x0000600cu, 0x00050050u, 0x000001b1u, 0x0000600eu, + 0x00006009u, 0x0000600du, 0x0009004fu, 0x00000013u, 0x0000600fu, 0x0000600eu, 0x0000600eu, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x00004da6u, 0x0000826du, 0x00004b28u, + 0x0004007cu, 0x000000b4u, 0x00004da7u, 0x00004da6u, 0x00050051u, 0x00000006u, 0x0000601au, 0x00004da7u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000601bu, 0x0000496cu, 0x0000601au, 0x00050080u, 0x00000006u, + 0x0000601cu, 0x0000496au, 0x0000601bu, 0x00050051u, 0x00000006u, 0x0000601eu, 0x00004da7u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x0000601fu, 0x0000601eu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00006021u, + 0x0000601cu, 0x0000601fu, 0x000500c7u, 0x00000006u, 0x00006023u, 0x00006021u, 0x00000e83u, 0x000500c2u, + 0x00000006u, 0x00006025u, 0x00006023u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00006028u, 0x0000601au, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00006029u, 0x00006028u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x0000602bu, 0x00006025u, 0x00006029u, 0x000500c6u, 0x00000006u, 0x0000602du, 0x0000602bu, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00006030u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000602du, + 0x0004003du, 0x00000011u, 0x00006031u, 0x00006030u, 0x00040071u, 0x00000006u, 0x00006032u, 0x00006031u, + 0x000500c2u, 0x00000006u, 0x00006034u, 0x00006032u, 0x00000262u, 0x00040071u, 0x00000011u, 0x00006035u, + 0x00006034u, 0x0004007cu, 0x00000012u, 0x00006036u, 0x00006035u, 0x000500c7u, 0x00000006u, 0x00006038u, + 0x00006032u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00006039u, 0x00006038u, 0x0004007cu, 0x00000012u, + 0x0000603au, 0x00006039u, 0x00050050u, 0x000001b1u, 0x0000603bu, 0x00006036u, 0x0000603au, 0x0009004fu, + 0x00000013u, 0x0000603cu, 0x0000603bu, 0x0000603bu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004dabu, 0x000200f8u, 0x00004dabu, 0x000700f5u, 0x00000013u, 0x0000863du, 0x0000856eu, + 0x00004d95u, 0x0000603cu, 0x00004d9cu, 0x000700f5u, 0x00000013u, 0x00008545u, 0x00008473u, 0x00004d95u, + 0x0000600fu, 0x00004d9cu, 0x000300f7u, 0x00004db5u, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004dadu, + 0x00004db5u, 0x000200f8u, 0x00004dadu, 0x00050050u, 0x000000f2u, 0x00004db0u, 0x00008275u, 0x00004b28u, + 0x0004007cu, 0x000000b4u, 0x00004db1u, 0x00004db0u, 0x00050051u, 0x00000006u, 0x00006047u, 0x00004db1u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00006048u, 0x0000496cu, 0x00006047u, 0x00050080u, 0x00000006u, + 0x00006049u, 0x0000496au, 0x00006048u, 0x00050051u, 0x00000006u, 0x0000604bu, 0x00004db1u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x0000604cu, 0x0000604bu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x0000604eu, + 0x00006049u, 0x0000604cu, 0x000500c7u, 0x00000006u, 0x00006050u, 0x0000604eu, 0x00000e83u, 0x000500c2u, + 0x00000006u, 0x00006052u, 0x00006050u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00006055u, 0x00006047u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00006056u, 0x00006055u, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00006058u, 0x00006052u, 0x00006056u, 0x000500c6u, 0x00000006u, 0x0000605au, 0x00006058u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x0000605du, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000605au, + 0x0004003du, 0x00000011u, 0x0000605eu, 0x0000605du, 0x00040071u, 0x00000006u, 0x0000605fu, 0x0000605eu, + 0x000500c2u, 0x00000006u, 0x00006061u, 0x0000605fu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00006062u, + 0x00006061u, 0x0004007cu, 0x00000012u, 0x00006063u, 0x00006062u, 0x000500c7u, 0x00000006u, 0x00006065u, + 0x0000605fu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00006066u, 0x00006065u, 0x0004007cu, 0x00000012u, + 0x00006067u, 0x00006066u, 0x00050050u, 0x000001b1u, 0x00006068u, 0x00006063u, 0x00006067u, 0x0009004fu, + 0x00000013u, 0x00006069u, 0x00006068u, 0x00006068u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004db5u, 0x000200f8u, 0x00004db5u, 0x000700f5u, 0x00000013u, 0x00008734u, 0x00008663u, + 0x00004dabu, 0x00006069u, 0x00004dadu, 0x000200f9u, 0x00004db6u, 0x000200f8u, 0x00004d74u, 0x0004007cu, + 0x000000b4u, 0x00004d76u, 0x00008294u, 0x00050051u, 0x00000006u, 0x00005ed5u, 0x00004d76u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005ed6u, 0x0000496cu, 0x00005ed5u, 0x00050080u, 0x00000006u, 0x00005ed7u, + 0x0000496au, 0x00005ed6u, 0x00050051u, 0x00000006u, 0x00005ed9u, 0x00004d76u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005edau, 0x00005ed9u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005edcu, 0x00005ed7u, + 0x00005edau, 0x000500c7u, 0x00000006u, 0x00005edeu, 0x00005edcu, 0x00000e83u, 0x000500c2u, 0x00000006u, + 0x00005ee0u, 0x00005edeu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005ee3u, 0x00005ed5u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00005ee4u, 0x00005ee3u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005ee6u, + 0x00005ee0u, 0x00005ee4u, 0x000500c6u, 0x00000006u, 0x00005ee8u, 0x00005ee6u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x00005eebu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005ee8u, 0x0004003du, + 0x00000011u, 0x00005eecu, 0x00005eebu, 0x00040071u, 0x00000006u, 0x00005eedu, 0x00005eecu, 0x000500c2u, + 0x00000006u, 0x00005ef5u, 0x00005eedu, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005ef7u, 0x00005eedu, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005ef9u, 0x00005ef5u, 0x0004007cu, 0x00000012u, 0x00005efau, + 0x00005ef9u, 0x00040071u, 0x00000011u, 0x00005f02u, 0x00005ef7u, 0x0004007cu, 0x00000012u, 0x00005f03u, + 0x00005f02u, 0x00070050u, 0x00000013u, 0x00005f04u, 0x00005efau, 0x00005efau, 0x00005efau, 0x00005f03u, + 0x000300f7u, 0x00004d8au, 0x00000000u, 0x000400fau, 0x00002327u, 0x00004d7bu, 0x00004d8au, 0x000200f8u, + 0x00004d7bu, 0x00050050u, 0x000000f2u, 0x00004d7eu, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, + 0x00004d7fu, 0x00004d7eu, 0x00050051u, 0x00000006u, 0x00005f10u, 0x00004d7fu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005f11u, 0x0000496cu, 0x00005f10u, 0x00050080u, 0x00000006u, 0x00005f12u, 0x0000496au, + 0x00005f11u, 0x00050051u, 0x00000006u, 0x00005f14u, 0x00004d7fu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00005f15u, 0x00005f14u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005f17u, 0x00005f12u, 0x00005f15u, + 0x000500c7u, 0x00000006u, 0x00005f19u, 0x00005f17u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00005f1bu, + 0x00005f19u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005f1eu, 0x00005f10u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00005f1fu, 0x00005f1eu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005f21u, 0x00005f1bu, + 0x00005f1fu, 0x000500c6u, 0x00000006u, 0x00005f23u, 0x00005f21u, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00005f26u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005f23u, 0x0004003du, 0x00000011u, + 0x00005f27u, 0x00005f26u, 0x00040071u, 0x00000006u, 0x00005f28u, 0x00005f27u, 0x000500c2u, 0x00000006u, + 0x00005f30u, 0x00005f28u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005f32u, 0x00005f28u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00005f34u, 0x00005f30u, 0x0004007cu, 0x00000012u, 0x00005f35u, 0x00005f34u, + 0x00040071u, 0x00000011u, 0x00005f3du, 0x00005f32u, 0x0004007cu, 0x00000012u, 0x00005f3eu, 0x00005f3du, + 0x00070050u, 0x00000013u, 0x00005f3fu, 0x00005f35u, 0x00005f35u, 0x00005f35u, 0x00005f3eu, 0x00050050u, + 0x000000f2u, 0x00004d85u, 0x0000826du, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004d86u, 0x00004d85u, + 0x00050051u, 0x00000006u, 0x00005f4bu, 0x00004d86u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005f4cu, + 0x0000496cu, 0x00005f4bu, 0x00050080u, 0x00000006u, 0x00005f4du, 0x0000496au, 0x00005f4cu, 0x00050051u, + 0x00000006u, 0x00005f4fu, 0x00004d86u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005f50u, 0x00005f4fu, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005f52u, 0x00005f4du, 0x00005f50u, 0x000500c7u, 0x00000006u, + 0x00005f54u, 0x00005f52u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00005f56u, 0x00005f54u, 0x0000022fu, + 0x000500c7u, 0x00000006u, 0x00005f59u, 0x00005f4bu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005f5au, + 0x00005f59u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005f5cu, 0x00005f56u, 0x00005f5au, 0x000500c6u, + 0x00000006u, 0x00005f5eu, 0x00005f5cu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005f61u, 0x00000f6au, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00005f5eu, 0x0004003du, 0x00000011u, 0x00005f62u, 0x00005f61u, + 0x00040071u, 0x00000006u, 0x00005f63u, 0x00005f62u, 0x000500c2u, 0x00000006u, 0x00005f6bu, 0x00005f63u, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005f6du, 0x00005f63u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00005f6fu, 0x00005f6bu, 0x0004007cu, 0x00000012u, 0x00005f70u, 0x00005f6fu, 0x00040071u, 0x00000011u, + 0x00005f78u, 0x00005f6du, 0x0004007cu, 0x00000012u, 0x00005f79u, 0x00005f78u, 0x00070050u, 0x00000013u, + 0x00005f7au, 0x00005f70u, 0x00005f70u, 0x00005f70u, 0x00005f79u, 0x000200f9u, 0x00004d8au, 0x000200f8u, + 0x00004d8au, 0x000700f5u, 0x00000013u, 0x0000863bu, 0x0000856eu, 0x00004d74u, 0x00005f7au, 0x00004d7bu, + 0x000700f5u, 0x00000013u, 0x00008543u, 0x00008473u, 0x00004d74u, 0x00005f3fu, 0x00004d7bu, 0x000300f7u, + 0x00004d94u, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004d8cu, 0x00004d94u, 0x000200f8u, 0x00004d8cu, + 0x00050050u, 0x000000f2u, 0x00004d8fu, 0x00008275u, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004d90u, + 0x00004d8fu, 0x00050051u, 0x00000006u, 0x00005f86u, 0x00004d90u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005f87u, 0x0000496cu, 0x00005f86u, 0x00050080u, 0x00000006u, 0x00005f88u, 0x0000496au, 0x00005f87u, + 0x00050051u, 0x00000006u, 0x00005f8au, 0x00004d90u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005f8bu, + 0x00005f8au, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005f8du, 0x00005f88u, 0x00005f8bu, 0x000500c7u, + 0x00000006u, 0x00005f8fu, 0x00005f8du, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00005f91u, 0x00005f8fu, + 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005f94u, 0x00005f86u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00005f95u, 0x00005f94u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005f97u, 0x00005f91u, 0x00005f95u, + 0x000500c6u, 0x00000006u, 0x00005f99u, 0x00005f97u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005f9cu, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005f99u, 0x0004003du, 0x00000011u, 0x00005f9du, + 0x00005f9cu, 0x00040071u, 0x00000006u, 0x00005f9eu, 0x00005f9du, 0x000500c2u, 0x00000006u, 0x00005fa6u, + 0x00005f9eu, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005fa8u, 0x00005f9eu, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00005faau, 0x00005fa6u, 0x0004007cu, 0x00000012u, 0x00005fabu, 0x00005faau, 0x00040071u, + 0x00000011u, 0x00005fb3u, 0x00005fa8u, 0x0004007cu, 0x00000012u, 0x00005fb4u, 0x00005fb3u, 0x00070050u, + 0x00000013u, 0x00005fb5u, 0x00005fabu, 0x00005fabu, 0x00005fabu, 0x00005fb4u, 0x000200f9u, 0x00004d94u, + 0x000200f8u, 0x00004d94u, 0x000700f5u, 0x00000013u, 0x00008732u, 0x00008663u, 0x00004d8au, 0x00005fb5u, + 0x00004d8cu, 0x000200f9u, 0x00004db6u, 0x000200f8u, 0x00004d53u, 0x0004007cu, 0x000000b4u, 0x00004d55u, + 0x00008294u, 0x00050051u, 0x00000006u, 0x00005de6u, 0x00004d55u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005de7u, 0x0000496cu, 0x00005de6u, 0x00050080u, 0x00000006u, 0x00005de8u, 0x0000496au, 0x00005de7u, + 0x00050051u, 0x00000006u, 0x00005deau, 0x00004d55u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005decu, + 0x00005de8u, 0x00005deau, 0x000500c7u, 0x00000006u, 0x00005deeu, 0x00005decu, 0x00000e83u, 0x000500c7u, + 0x00000006u, 0x00005df2u, 0x00005de6u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005df3u, 0x00005df2u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005df5u, 0x00005deeu, 0x00005df3u, 0x000500c6u, 0x00000006u, + 0x00005df7u, 0x00005df5u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005dfau, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00005df7u, 0x0004003du, 0x0000000fu, 0x00005dfbu, 0x00005dfau, 0x00040071u, + 0x00000006u, 0x00005dfcu, 0x00005dfbu, 0x000500c2u, 0x00000006u, 0x00005dfeu, 0x00005dfcu, 0x00000238u, + 0x000500c7u, 0x00000006u, 0x00005e00u, 0x00005dfcu, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00005e02u, + 0x00005e00u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005e04u, 0x00005e00u, 0x00005e02u, 0x000500c4u, + 0x00000006u, 0x00005e06u, 0x00005dfeu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005e08u, 0x00005dfeu, + 0x00005e06u, 0x00040071u, 0x00000011u, 0x00005e0au, 0x00005e08u, 0x0004007cu, 0x00000012u, 0x00005e0bu, + 0x00005e0au, 0x00040071u, 0x00000011u, 0x00005e13u, 0x00005e04u, 0x0004007cu, 0x00000012u, 0x00005e14u, + 0x00005e13u, 0x00070050u, 0x00000013u, 0x00005e15u, 0x00005e0bu, 0x00005e0bu, 0x00005e0bu, 0x00005e14u, + 0x000300f7u, 0x00004d69u, 0x00000000u, 0x000400fau, 0x00002327u, 0x00004d5au, 0x00004d69u, 0x000200f8u, + 0x00004d5au, 0x00050050u, 0x000000f2u, 0x00004d5du, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, + 0x00004d5eu, 0x00004d5du, 0x00050051u, 0x00000006u, 0x00005e22u, 0x00004d5eu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005e23u, 0x0000496cu, 0x00005e22u, 0x00050080u, 0x00000006u, 0x00005e24u, 0x0000496au, + 0x00005e23u, 0x00050051u, 0x00000006u, 0x00005e26u, 0x00004d5eu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005e28u, 0x00005e24u, 0x00005e26u, 0x000500c7u, 0x00000006u, 0x00005e2au, 0x00005e28u, 0x00000e83u, + 0x000500c7u, 0x00000006u, 0x00005e2eu, 0x00005e22u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005e2fu, + 0x00005e2eu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005e31u, 0x00005e2au, 0x00005e2fu, 0x000500c6u, + 0x00000006u, 0x00005e33u, 0x00005e31u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005e36u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00005e33u, 0x0004003du, 0x0000000fu, 0x00005e37u, 0x00005e36u, + 0x00040071u, 0x00000006u, 0x00005e38u, 0x00005e37u, 0x000500c2u, 0x00000006u, 0x00005e3au, 0x00005e38u, + 0x00000238u, 0x000500c7u, 0x00000006u, 0x00005e3cu, 0x00005e38u, 0x00000ea6u, 0x000500c4u, 0x00000006u, + 0x00005e3eu, 0x00005e3cu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005e40u, 0x00005e3cu, 0x00005e3eu, + 0x000500c4u, 0x00000006u, 0x00005e42u, 0x00005e3au, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005e44u, + 0x00005e3au, 0x00005e42u, 0x00040071u, 0x00000011u, 0x00005e46u, 0x00005e44u, 0x0004007cu, 0x00000012u, + 0x00005e47u, 0x00005e46u, 0x00040071u, 0x00000011u, 0x00005e4fu, 0x00005e40u, 0x0004007cu, 0x00000012u, + 0x00005e50u, 0x00005e4fu, 0x00070050u, 0x00000013u, 0x00005e51u, 0x00005e47u, 0x00005e47u, 0x00005e47u, + 0x00005e50u, 0x00050050u, 0x000000f2u, 0x00004d64u, 0x0000826du, 0x00004b28u, 0x0004007cu, 0x000000b4u, + 0x00004d65u, 0x00004d64u, 0x00050051u, 0x00000006u, 0x00005e5eu, 0x00004d65u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005e5fu, 0x0000496cu, 0x00005e5eu, 0x00050080u, 0x00000006u, 0x00005e60u, 0x0000496au, + 0x00005e5fu, 0x00050051u, 0x00000006u, 0x00005e62u, 0x00004d65u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005e64u, 0x00005e60u, 0x00005e62u, 0x000500c7u, 0x00000006u, 0x00005e66u, 0x00005e64u, 0x00000e83u, + 0x000500c7u, 0x00000006u, 0x00005e6au, 0x00005e5eu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005e6bu, + 0x00005e6au, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005e6du, 0x00005e66u, 0x00005e6bu, 0x000500c6u, + 0x00000006u, 0x00005e6fu, 0x00005e6du, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005e72u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00005e6fu, 0x0004003du, 0x0000000fu, 0x00005e73u, 0x00005e72u, + 0x00040071u, 0x00000006u, 0x00005e74u, 0x00005e73u, 0x000500c2u, 0x00000006u, 0x00005e76u, 0x00005e74u, + 0x00000238u, 0x000500c7u, 0x00000006u, 0x00005e78u, 0x00005e74u, 0x00000ea6u, 0x000500c4u, 0x00000006u, + 0x00005e7au, 0x00005e78u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005e7cu, 0x00005e78u, 0x00005e7au, + 0x000500c4u, 0x00000006u, 0x00005e7eu, 0x00005e76u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005e80u, + 0x00005e76u, 0x00005e7eu, 0x00040071u, 0x00000011u, 0x00005e82u, 0x00005e80u, 0x0004007cu, 0x00000012u, + 0x00005e83u, 0x00005e82u, 0x00040071u, 0x00000011u, 0x00005e8bu, 0x00005e7cu, 0x0004007cu, 0x00000012u, + 0x00005e8cu, 0x00005e8bu, 0x00070050u, 0x00000013u, 0x00005e8du, 0x00005e83u, 0x00005e83u, 0x00005e83u, + 0x00005e8cu, 0x000200f9u, 0x00004d69u, 0x000200f8u, 0x00004d69u, 0x000700f5u, 0x00000013u, 0x00008639u, + 0x0000856eu, 0x00004d53u, 0x00005e8du, 0x00004d5au, 0x000700f5u, 0x00000013u, 0x00008541u, 0x00008473u, + 0x00004d53u, 0x00005e51u, 0x00004d5au, 0x000300f7u, 0x00004d73u, 0x00000000u, 0x000400fau, 0x00004b32u, + 0x00004d6bu, 0x00004d73u, 0x000200f8u, 0x00004d6bu, 0x00050050u, 0x000000f2u, 0x00004d6eu, 0x00008275u, + 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004d6fu, 0x00004d6eu, 0x00050051u, 0x00000006u, 0x00005e9au, + 0x00004d6fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005e9bu, 0x0000496cu, 0x00005e9au, 0x00050080u, + 0x00000006u, 0x00005e9cu, 0x0000496au, 0x00005e9bu, 0x00050051u, 0x00000006u, 0x00005e9eu, 0x00004d6fu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005ea0u, 0x00005e9cu, 0x00005e9eu, 0x000500c7u, 0x00000006u, + 0x00005ea2u, 0x00005ea0u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00005ea6u, 0x00005e9au, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00005ea7u, 0x00005ea6u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005ea9u, + 0x00005ea2u, 0x00005ea7u, 0x000500c6u, 0x00000006u, 0x00005eabu, 0x00005ea9u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00005eaeu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005eabu, 0x0004003du, + 0x0000000fu, 0x00005eafu, 0x00005eaeu, 0x00040071u, 0x00000006u, 0x00005eb0u, 0x00005eafu, 0x000500c2u, + 0x00000006u, 0x00005eb2u, 0x00005eb0u, 0x00000238u, 0x000500c7u, 0x00000006u, 0x00005eb4u, 0x00005eb0u, + 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00005eb6u, 0x00005eb4u, 0x00000238u, 0x000500c5u, 0x00000006u, + 0x00005eb8u, 0x00005eb4u, 0x00005eb6u, 0x000500c4u, 0x00000006u, 0x00005ebau, 0x00005eb2u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x00005ebcu, 0x00005eb2u, 0x00005ebau, 0x00040071u, 0x00000011u, 0x00005ebeu, + 0x00005ebcu, 0x0004007cu, 0x00000012u, 0x00005ebfu, 0x00005ebeu, 0x00040071u, 0x00000011u, 0x00005ec7u, + 0x00005eb8u, 0x0004007cu, 0x00000012u, 0x00005ec8u, 0x00005ec7u, 0x00070050u, 0x00000013u, 0x00005ec9u, + 0x00005ebfu, 0x00005ebfu, 0x00005ebfu, 0x00005ec8u, 0x000200f9u, 0x00004d73u, 0x000200f8u, 0x00004d73u, + 0x000700f5u, 0x00000013u, 0x00008730u, 0x00008663u, 0x00004d69u, 0x00005ec9u, 0x00004d6bu, 0x000200f9u, + 0x00004db6u, 0x000200f8u, 0x00004d32u, 0x0004007cu, 0x000000b4u, 0x00004d34u, 0x00008294u, 0x00050051u, + 0x00000006u, 0x00005cceu, 0x00004d34u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005ccfu, 0x0000496cu, + 0x00005cceu, 0x00050080u, 0x00000006u, 0x00005cd0u, 0x0000496au, 0x00005ccfu, 0x00050051u, 0x00000006u, + 0x00005cd2u, 0x00004d34u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005cd3u, 0x00005cd2u, 0x0000022fu, + 0x00050080u, 0x00000006u, 0x00005cd5u, 0x00005cd0u, 0x00005cd3u, 0x000500c7u, 0x00000006u, 0x00005cd7u, + 0x00005cd5u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00005cdau, 0x00005cd2u, 0x000500c7u, 0x00000006u, + 0x00005cdbu, 0x00005cdau, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005cdcu, 0x00005cdbu, 0x00000709u, + 0x000500c7u, 0x00000006u, 0x00005ce0u, 0x00005cceu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005ce1u, + 0x00005ce0u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005ce3u, 0x00005cd7u, 0x00005ce1u, 0x000500c6u, + 0x00000006u, 0x00005ce5u, 0x00005ce3u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005ce8u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00005ce5u, 0x0004003du, 0x0000000fu, 0x00005ce9u, 0x00005ce8u, + 0x00040071u, 0x00000006u, 0x00005ceau, 0x00005ce9u, 0x000500c2u, 0x00000006u, 0x00005cedu, 0x00005ceau, + 0x00005cdcu, 0x000500c7u, 0x00000006u, 0x00005ceeu, 0x00005cedu, 0x00000ea6u, 0x000500c7u, 0x00000006u, + 0x00005cf0u, 0x00005ceeu, 0x00000edeu, 0x000500c4u, 0x00000006u, 0x00005cf2u, 0x00005cf0u, 0x00000238u, + 0x000500c4u, 0x00000006u, 0x00005cf4u, 0x00005cf0u, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x00005cf5u, + 0x00005cf2u, 0x00005cf4u, 0x000500c2u, 0x00000006u, 0x00005cf7u, 0x00005cf0u, 0x00000232u, 0x000500c5u, + 0x00000006u, 0x00005cf8u, 0x00005cf5u, 0x00005cf7u, 0x00040071u, 0x00000011u, 0x00005cfau, 0x00005cf8u, + 0x0004007cu, 0x00000012u, 0x00005cfbu, 0x00005cfau, 0x000500c7u, 0x00000006u, 0x00005d03u, 0x00005ceeu, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005d04u, 0x00005d03u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00005d05u, 0x00005d04u, 0x0004007cu, 0x00000012u, 0x00005d06u, 0x00005d05u, 0x00070050u, 0x00000013u, + 0x00005d07u, 0x00005cfbu, 0x00005cfbu, 0x00005cfbu, 0x00005d06u, 0x000300f7u, 0x00004d48u, 0x00000000u, + 0x000400fau, 0x00002327u, 0x00004d39u, 0x00004d48u, 0x000200f8u, 0x00004d39u, 0x00050050u, 0x000000f2u, + 0x00004d3cu, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004d3du, 0x00004d3cu, 0x00050051u, + 0x00000006u, 0x00005d14u, 0x00004d3du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d15u, 0x0000496cu, + 0x00005d14u, 0x00050080u, 0x00000006u, 0x00005d16u, 0x0000496au, 0x00005d15u, 0x00050051u, 0x00000006u, + 0x00005d18u, 0x00004d3du, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005d19u, 0x00005d18u, 0x0000022fu, + 0x00050080u, 0x00000006u, 0x00005d1bu, 0x00005d16u, 0x00005d19u, 0x000500c7u, 0x00000006u, 0x00005d1du, + 0x00005d1bu, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00005d20u, 0x00005d18u, 0x000500c7u, 0x00000006u, + 0x00005d21u, 0x00005d20u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005d22u, 0x00005d21u, 0x00000709u, + 0x000500c7u, 0x00000006u, 0x00005d26u, 0x00005d14u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005d27u, + 0x00005d26u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005d29u, 0x00005d1du, 0x00005d27u, 0x000500c6u, + 0x00000006u, 0x00005d2bu, 0x00005d29u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005d2eu, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00005d2bu, 0x0004003du, 0x0000000fu, 0x00005d2fu, 0x00005d2eu, + 0x00040071u, 0x00000006u, 0x00005d30u, 0x00005d2fu, 0x000500c2u, 0x00000006u, 0x00005d33u, 0x00005d30u, + 0x00005d22u, 0x000500c7u, 0x00000006u, 0x00005d34u, 0x00005d33u, 0x00000ea6u, 0x000500c7u, 0x00000006u, + 0x00005d36u, 0x00005d34u, 0x00000edeu, 0x000500c4u, 0x00000006u, 0x00005d38u, 0x00005d36u, 0x00000238u, + 0x000500c4u, 0x00000006u, 0x00005d3au, 0x00005d36u, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x00005d3bu, + 0x00005d38u, 0x00005d3au, 0x000500c2u, 0x00000006u, 0x00005d3du, 0x00005d36u, 0x00000232u, 0x000500c5u, + 0x00000006u, 0x00005d3eu, 0x00005d3bu, 0x00005d3du, 0x00040071u, 0x00000011u, 0x00005d40u, 0x00005d3eu, + 0x0004007cu, 0x00000012u, 0x00005d41u, 0x00005d40u, 0x000500c7u, 0x00000006u, 0x00005d49u, 0x00005d34u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005d4au, 0x00005d49u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00005d4bu, 0x00005d4au, 0x0004007cu, 0x00000012u, 0x00005d4cu, 0x00005d4bu, 0x00070050u, 0x00000013u, + 0x00005d4du, 0x00005d41u, 0x00005d41u, 0x00005d41u, 0x00005d4cu, 0x00050050u, 0x000000f2u, 0x00004d43u, + 0x0000826du, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004d44u, 0x00004d43u, 0x00050051u, 0x00000006u, + 0x00005d5au, 0x00004d44u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005d5bu, 0x0000496cu, 0x00005d5au, + 0x00050080u, 0x00000006u, 0x00005d5cu, 0x0000496au, 0x00005d5bu, 0x00050051u, 0x00000006u, 0x00005d5eu, + 0x00004d44u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005d5fu, 0x00005d5eu, 0x0000022fu, 0x00050080u, + 0x00000006u, 0x00005d61u, 0x00005d5cu, 0x00005d5fu, 0x000500c7u, 0x00000006u, 0x00005d63u, 0x00005d61u, + 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00005d66u, 0x00005d5eu, 0x000500c7u, 0x00000006u, 0x00005d67u, + 0x00005d66u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005d68u, 0x00005d67u, 0x00000709u, 0x000500c7u, + 0x00000006u, 0x00005d6cu, 0x00005d5au, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005d6du, 0x00005d6cu, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005d6fu, 0x00005d63u, 0x00005d6du, 0x000500c6u, 0x00000006u, + 0x00005d71u, 0x00005d6fu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005d74u, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00005d71u, 0x0004003du, 0x0000000fu, 0x00005d75u, 0x00005d74u, 0x00040071u, + 0x00000006u, 0x00005d76u, 0x00005d75u, 0x000500c2u, 0x00000006u, 0x00005d79u, 0x00005d76u, 0x00005d68u, + 0x000500c7u, 0x00000006u, 0x00005d7au, 0x00005d79u, 0x00000ea6u, 0x000500c7u, 0x00000006u, 0x00005d7cu, + 0x00005d7au, 0x00000edeu, 0x000500c4u, 0x00000006u, 0x00005d7eu, 0x00005d7cu, 0x00000238u, 0x000500c4u, + 0x00000006u, 0x00005d80u, 0x00005d7cu, 0x0000022fu, 0x000500c5u, 0x00000006u, 0x00005d81u, 0x00005d7eu, + 0x00005d80u, 0x000500c2u, 0x00000006u, 0x00005d83u, 0x00005d7cu, 0x00000232u, 0x000500c5u, 0x00000006u, + 0x00005d84u, 0x00005d81u, 0x00005d83u, 0x00040071u, 0x00000011u, 0x00005d86u, 0x00005d84u, 0x0004007cu, + 0x00000012u, 0x00005d87u, 0x00005d86u, 0x000500c7u, 0x00000006u, 0x00005d8fu, 0x00005d7au, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00005d90u, 0x00005d8fu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005d91u, + 0x00005d90u, 0x0004007cu, 0x00000012u, 0x00005d92u, 0x00005d91u, 0x00070050u, 0x00000013u, 0x00005d93u, + 0x00005d87u, 0x00005d87u, 0x00005d87u, 0x00005d92u, 0x000200f9u, 0x00004d48u, 0x000200f8u, 0x00004d48u, + 0x000700f5u, 0x00000013u, 0x00008637u, 0x0000856eu, 0x00004d32u, 0x00005d93u, 0x00004d39u, 0x000700f5u, + 0x00000013u, 0x0000853fu, 0x00008473u, 0x00004d32u, 0x00005d4du, 0x00004d39u, 0x000300f7u, 0x00004d52u, + 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004d4au, 0x00004d52u, 0x000200f8u, 0x00004d4au, 0x00050050u, + 0x000000f2u, 0x00004d4du, 0x00008275u, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004d4eu, 0x00004d4du, + 0x00050051u, 0x00000006u, 0x00005da0u, 0x00004d4eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005da1u, + 0x0000496cu, 0x00005da0u, 0x00050080u, 0x00000006u, 0x00005da2u, 0x0000496au, 0x00005da1u, 0x00050051u, + 0x00000006u, 0x00005da4u, 0x00004d4eu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005da5u, 0x00005da4u, + 0x0000022fu, 0x00050080u, 0x00000006u, 0x00005da7u, 0x00005da2u, 0x00005da5u, 0x000500c7u, 0x00000006u, + 0x00005da9u, 0x00005da7u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00005dacu, 0x00005da4u, 0x000500c7u, + 0x00000006u, 0x00005dadu, 0x00005dacu, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005daeu, 0x00005dadu, + 0x00000709u, 0x000500c7u, 0x00000006u, 0x00005db2u, 0x00005da0u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00005db3u, 0x00005db2u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005db5u, 0x00005da9u, 0x00005db3u, + 0x000500c6u, 0x00000006u, 0x00005db7u, 0x00005db5u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005dbau, + 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005db7u, 0x0004003du, 0x0000000fu, 0x00005dbbu, + 0x00005dbau, 0x00040071u, 0x00000006u, 0x00005dbcu, 0x00005dbbu, 0x000500c2u, 0x00000006u, 0x00005dbfu, + 0x00005dbcu, 0x00005daeu, 0x000500c7u, 0x00000006u, 0x00005dc0u, 0x00005dbfu, 0x00000ea6u, 0x000500c7u, + 0x00000006u, 0x00005dc2u, 0x00005dc0u, 0x00000edeu, 0x000500c4u, 0x00000006u, 0x00005dc4u, 0x00005dc2u, + 0x00000238u, 0x000500c4u, 0x00000006u, 0x00005dc6u, 0x00005dc2u, 0x0000022fu, 0x000500c5u, 0x00000006u, + 0x00005dc7u, 0x00005dc4u, 0x00005dc6u, 0x000500c2u, 0x00000006u, 0x00005dc9u, 0x00005dc2u, 0x00000232u, + 0x000500c5u, 0x00000006u, 0x00005dcau, 0x00005dc7u, 0x00005dc9u, 0x00040071u, 0x00000011u, 0x00005dccu, + 0x00005dcau, 0x0004007cu, 0x00000012u, 0x00005dcdu, 0x00005dccu, 0x000500c7u, 0x00000006u, 0x00005dd5u, + 0x00005dc0u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005dd6u, 0x00005dd5u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00005dd7u, 0x00005dd6u, 0x0004007cu, 0x00000012u, 0x00005dd8u, 0x00005dd7u, 0x00070050u, + 0x00000013u, 0x00005dd9u, 0x00005dcdu, 0x00005dcdu, 0x00005dcdu, 0x00005dd8u, 0x000200f9u, 0x00004d52u, + 0x000200f8u, 0x00004d52u, 0x000700f5u, 0x00000013u, 0x0000872eu, 0x00008663u, 0x00004d48u, 0x00005dd9u, + 0x00004d4au, 0x000200f9u, 0x00004db6u, 0x000200f8u, 0x00004db6u, 0x000d00f5u, 0x00000013u, 0x0000872du, + 0x00008663u, 0x00004d2du, 0x0000872eu, 0x00004d52u, 0x00008730u, 0x00004d73u, 0x00008732u, 0x00004d94u, + 0x00008734u, 0x00004db5u, 0x000d00f5u, 0x00000013u, 0x00008635u, 0x0000856eu, 0x00004d2du, 0x00008637u, + 0x00004d52u, 0x00008639u, 0x00004d73u, 0x0000863bu, 0x00004d94u, 0x0000863du, 0x00004db5u, 0x000d00f5u, + 0x00000013u, 0x0000853du, 0x00008473u, 0x00004d2du, 0x0000853fu, 0x00004d52u, 0x00008541u, 0x00004d73u, + 0x00008543u, 0x00004d94u, 0x00008545u, 0x00004db5u, 0x000d00f5u, 0x00000013u, 0x000083d0u, 0x00008307u, + 0x00004d2du, 0x00005d07u, 0x00004d52u, 0x00005e15u, 0x00004d73u, 0x00005f04u, 0x00004d94u, 0x00005fe2u, + 0x00004db5u, 0x000200f9u, 0x00004e20u, 0x000200f8u, 0x00004cb8u, 0x00040071u, 0x00000006u, 0x00004cbbu, + 0x00004970u, 0x0004007cu, 0x00000008u, 0x00004cbcu, 0x00004cbbu, 0x000300f7u, 0x00004d2cu, 0x00000000u, + 0x000700fbu, 0x00004cbcu, 0x00004cbdu, 0x00000000u, 0x00004cdeu, 0x00000001u, 0x00004d0bu, 0x000200f8u, + 0x00004d0bu, 0x0004007cu, 0x000000b4u, 0x00004d0du, 0x00008294u, 0x00050051u, 0x00000006u, 0x00005c38u, + 0x00004d0du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005c39u, 0x0000496cu, 0x00005c38u, 0x00050080u, + 0x00000006u, 0x00005c3au, 0x0000496au, 0x00005c39u, 0x00050051u, 0x00000006u, 0x00005c3cu, 0x00004d0du, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005c3eu, 0x00005c3au, 0x00005c3cu, 0x000500c7u, 0x00000006u, + 0x00005c40u, 0x00005c3eu, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00005c44u, 0x00005c38u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00005c45u, 0x00005c44u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005c47u, + 0x00005c40u, 0x00005c45u, 0x000500c6u, 0x00000006u, 0x00005c49u, 0x00005c47u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00005c4cu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005c49u, 0x0004003du, + 0x0000000fu, 0x00005c4du, 0x00005c4cu, 0x00040071u, 0x00000006u, 0x00005c4eu, 0x00005c4du, 0x00040071u, + 0x00000011u, 0x00005c50u, 0x00005c4eu, 0x0004007cu, 0x00000012u, 0x00005c51u, 0x00005c50u, 0x00070050u, + 0x00000013u, 0x00005c52u, 0x00005c51u, 0x00005c51u, 0x00005c51u, 0x00005c51u, 0x000300f7u, 0x00004d21u, + 0x00000000u, 0x000400fau, 0x00002327u, 0x00004d12u, 0x00004d21u, 0x000200f8u, 0x00004d12u, 0x00050050u, + 0x000000f2u, 0x00004d15u, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004d16u, 0x00004d15u, + 0x00050051u, 0x00000006u, 0x00005c5du, 0x00004d16u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005c5eu, + 0x0000496cu, 0x00005c5du, 0x00050080u, 0x00000006u, 0x00005c5fu, 0x0000496au, 0x00005c5eu, 0x00050051u, + 0x00000006u, 0x00005c61u, 0x00004d16u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005c63u, 0x00005c5fu, + 0x00005c61u, 0x000500c7u, 0x00000006u, 0x00005c65u, 0x00005c63u, 0x00000e83u, 0x000500c7u, 0x00000006u, + 0x00005c69u, 0x00005c5du, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005c6au, 0x00005c69u, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00005c6cu, 0x00005c65u, 0x00005c6au, 0x000500c6u, 0x00000006u, 0x00005c6eu, + 0x00005c6cu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005c71u, 0x00000e9du, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00005c6eu, 0x0004003du, 0x0000000fu, 0x00005c72u, 0x00005c71u, 0x00040071u, 0x00000006u, + 0x00005c73u, 0x00005c72u, 0x00040071u, 0x00000011u, 0x00005c75u, 0x00005c73u, 0x0004007cu, 0x00000012u, + 0x00005c76u, 0x00005c75u, 0x00070050u, 0x00000013u, 0x00005c77u, 0x00005c76u, 0x00005c76u, 0x00005c76u, + 0x00005c76u, 0x00050050u, 0x000000f2u, 0x00004d1cu, 0x0000826du, 0x00004b28u, 0x0004007cu, 0x000000b4u, + 0x00004d1du, 0x00004d1cu, 0x00050051u, 0x00000006u, 0x00005c82u, 0x00004d1du, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005c83u, 0x0000496cu, 0x00005c82u, 0x00050080u, 0x00000006u, 0x00005c84u, 0x0000496au, + 0x00005c83u, 0x00050051u, 0x00000006u, 0x00005c86u, 0x00004d1du, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005c88u, 0x00005c84u, 0x00005c86u, 0x000500c7u, 0x00000006u, 0x00005c8au, 0x00005c88u, 0x00000e83u, + 0x000500c7u, 0x00000006u, 0x00005c8eu, 0x00005c82u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005c8fu, + 0x00005c8eu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005c91u, 0x00005c8au, 0x00005c8fu, 0x000500c6u, + 0x00000006u, 0x00005c93u, 0x00005c91u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005c96u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00005c93u, 0x0004003du, 0x0000000fu, 0x00005c97u, 0x00005c96u, + 0x00040071u, 0x00000006u, 0x00005c98u, 0x00005c97u, 0x00040071u, 0x00000011u, 0x00005c9au, 0x00005c98u, + 0x0004007cu, 0x00000012u, 0x00005c9bu, 0x00005c9au, 0x00070050u, 0x00000013u, 0x00005c9cu, 0x00005c9bu, + 0x00005c9bu, 0x00005c9bu, 0x00005c9bu, 0x000200f9u, 0x00004d21u, 0x000200f8u, 0x00004d21u, 0x000700f5u, + 0x00000013u, 0x00008634u, 0x0000856eu, 0x00004d0bu, 0x00005c9cu, 0x00004d12u, 0x000700f5u, 0x00000013u, + 0x0000853cu, 0x00008473u, 0x00004d0bu, 0x00005c77u, 0x00004d12u, 0x000300f7u, 0x00004d2bu, 0x00000000u, + 0x000400fau, 0x00004b32u, 0x00004d23u, 0x00004d2bu, 0x000200f8u, 0x00004d23u, 0x00050050u, 0x000000f2u, + 0x00004d26u, 0x00008275u, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004d27u, 0x00004d26u, 0x00050051u, + 0x00000006u, 0x00005ca7u, 0x00004d27u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005ca8u, 0x0000496cu, + 0x00005ca7u, 0x00050080u, 0x00000006u, 0x00005ca9u, 0x0000496au, 0x00005ca8u, 0x00050051u, 0x00000006u, + 0x00005cabu, 0x00004d27u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005cadu, 0x00005ca9u, 0x00005cabu, + 0x000500c7u, 0x00000006u, 0x00005cafu, 0x00005cadu, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00005cb3u, + 0x00005ca7u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005cb4u, 0x00005cb3u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00005cb6u, 0x00005cafu, 0x00005cb4u, 0x000500c6u, 0x00000006u, 0x00005cb8u, 0x00005cb6u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00005cbbu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00005cb8u, 0x0004003du, 0x0000000fu, 0x00005cbcu, 0x00005cbbu, 0x00040071u, 0x00000006u, 0x00005cbdu, + 0x00005cbcu, 0x00040071u, 0x00000011u, 0x00005cbfu, 0x00005cbdu, 0x0004007cu, 0x00000012u, 0x00005cc0u, + 0x00005cbfu, 0x00070050u, 0x00000013u, 0x00005cc1u, 0x00005cc0u, 0x00005cc0u, 0x00005cc0u, 0x00005cc0u, + 0x000200f9u, 0x00004d2bu, 0x000200f8u, 0x00004d2bu, 0x000700f5u, 0x00000013u, 0x0000872bu, 0x00008663u, + 0x00004d21u, 0x00005cc1u, 0x00004d23u, 0x000200f9u, 0x00004d2cu, 0x000200f8u, 0x00004cdeu, 0x0004007cu, + 0x000000b4u, 0x00004ce0u, 0x00008294u, 0x00040071u, 0x00000006u, 0x00004ce3u, 0x00004972u, 0x00050051u, + 0x00000006u, 0x00005b69u, 0x00004ce0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b6au, 0x0000496cu, + 0x00005b69u, 0x00050080u, 0x00000006u, 0x00005b6bu, 0x0000496au, 0x00005b6au, 0x00050051u, 0x00000006u, + 0x00005b6du, 0x00004ce0u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005b6eu, 0x00005b6du, 0x0000022fu, + 0x00050080u, 0x00000006u, 0x00005b70u, 0x00005b6bu, 0x00005b6eu, 0x000500c7u, 0x00000006u, 0x00005b72u, + 0x00005b70u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00005b75u, 0x00005b6du, 0x000500c7u, 0x00000006u, + 0x00005b76u, 0x00005b75u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005b77u, 0x00005b76u, 0x00000709u, + 0x000500c7u, 0x00000006u, 0x00005b7bu, 0x00005b69u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005b7cu, + 0x00005b7bu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005b7eu, 0x00005b72u, 0x00005b7cu, 0x000500c6u, + 0x00000006u, 0x00005b80u, 0x00005b7eu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005b83u, 0x00000e9du, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00005b80u, 0x0004003du, 0x0000000fu, 0x00005b84u, 0x00005b83u, + 0x00040071u, 0x00000006u, 0x00005b85u, 0x00005b84u, 0x000500c2u, 0x00000006u, 0x00005b88u, 0x00005b85u, + 0x00005b77u, 0x000500c7u, 0x00000006u, 0x00005b89u, 0x00005b88u, 0x00000ea6u, 0x000500c4u, 0x00000006u, + 0x00005b8bu, 0x00004ce3u, 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005b8du, 0x00005b89u, 0x00005b8bu, + 0x00040071u, 0x00000011u, 0x00005b8fu, 0x00005b8du, 0x0004007cu, 0x00000012u, 0x00005b90u, 0x00005b8fu, + 0x00070050u, 0x00000013u, 0x00005b91u, 0x00005b90u, 0x00005b90u, 0x00005b90u, 0x00005b90u, 0x000300f7u, + 0x00004cfdu, 0x00000000u, 0x000400fau, 0x00002327u, 0x00004ce8u, 0x00004cfdu, 0x000200f8u, 0x00004ce8u, + 0x00050050u, 0x000000f2u, 0x00004cebu, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004cecu, + 0x00004cebu, 0x00050051u, 0x00000006u, 0x00005b9du, 0x00004cecu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005b9eu, 0x0000496cu, 0x00005b9du, 0x00050080u, 0x00000006u, 0x00005b9fu, 0x0000496au, 0x00005b9eu, + 0x00050051u, 0x00000006u, 0x00005ba1u, 0x00004cecu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005ba2u, + 0x00005ba1u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00005ba4u, 0x00005b9fu, 0x00005ba2u, 0x000500c7u, + 0x00000006u, 0x00005ba6u, 0x00005ba4u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x00005ba9u, 0x00005ba1u, + 0x000500c7u, 0x00000006u, 0x00005baau, 0x00005ba9u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00005babu, + 0x00005baau, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00005bafu, 0x00005b9du, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00005bb0u, 0x00005bafu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005bb2u, 0x00005ba6u, + 0x00005bb0u, 0x000500c6u, 0x00000006u, 0x00005bb4u, 0x00005bb2u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x00005bb7u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005bb4u, 0x0004003du, 0x0000000fu, + 0x00005bb8u, 0x00005bb7u, 0x00040071u, 0x00000006u, 0x00005bb9u, 0x00005bb8u, 0x000500c2u, 0x00000006u, + 0x00005bbcu, 0x00005bb9u, 0x00005babu, 0x000500c7u, 0x00000006u, 0x00005bbdu, 0x00005bbcu, 0x00000ea6u, + 0x000500c5u, 0x00000006u, 0x00005bc1u, 0x00005bbdu, 0x00005b8bu, 0x00040071u, 0x00000011u, 0x00005bc3u, + 0x00005bc1u, 0x0004007cu, 0x00000012u, 0x00005bc4u, 0x00005bc3u, 0x00070050u, 0x00000013u, 0x00005bc5u, + 0x00005bc4u, 0x00005bc4u, 0x00005bc4u, 0x00005bc4u, 0x00050050u, 0x000000f2u, 0x00004cf5u, 0x0000826du, + 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004cf6u, 0x00004cf5u, 0x00050051u, 0x00000006u, 0x00005bd1u, + 0x00004cf6u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005bd2u, 0x0000496cu, 0x00005bd1u, 0x00050080u, + 0x00000006u, 0x00005bd3u, 0x0000496au, 0x00005bd2u, 0x00050051u, 0x00000006u, 0x00005bd5u, 0x00004cf6u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005bd6u, 0x00005bd5u, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00005bd8u, 0x00005bd3u, 0x00005bd6u, 0x000500c7u, 0x00000006u, 0x00005bdau, 0x00005bd8u, 0x00000e83u, + 0x000400c8u, 0x00000006u, 0x00005bddu, 0x00005bd5u, 0x000500c7u, 0x00000006u, 0x00005bdeu, 0x00005bddu, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005bdfu, 0x00005bdeu, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x00005be3u, 0x00005bd1u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005be4u, 0x00005be3u, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00005be6u, 0x00005bdau, 0x00005be4u, 0x000500c6u, 0x00000006u, 0x00005be8u, + 0x00005be6u, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005bebu, 0x00000e9du, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00005be8u, 0x0004003du, 0x0000000fu, 0x00005becu, 0x00005bebu, 0x00040071u, 0x00000006u, + 0x00005bedu, 0x00005becu, 0x000500c2u, 0x00000006u, 0x00005bf0u, 0x00005bedu, 0x00005bdfu, 0x000500c7u, + 0x00000006u, 0x00005bf1u, 0x00005bf0u, 0x00000ea6u, 0x000500c5u, 0x00000006u, 0x00005bf5u, 0x00005bf1u, + 0x00005b8bu, 0x00040071u, 0x00000011u, 0x00005bf7u, 0x00005bf5u, 0x0004007cu, 0x00000012u, 0x00005bf8u, + 0x00005bf7u, 0x00070050u, 0x00000013u, 0x00005bf9u, 0x00005bf8u, 0x00005bf8u, 0x00005bf8u, 0x00005bf8u, + 0x000200f9u, 0x00004cfdu, 0x000200f8u, 0x00004cfdu, 0x000700f5u, 0x00000013u, 0x00008632u, 0x0000856eu, + 0x00004cdeu, 0x00005bf9u, 0x00004ce8u, 0x000700f5u, 0x00000013u, 0x0000853au, 0x00008473u, 0x00004cdeu, + 0x00005bc5u, 0x00004ce8u, 0x000300f7u, 0x00004d0au, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004cffu, + 0x00004d0au, 0x000200f8u, 0x00004cffu, 0x00050050u, 0x000000f2u, 0x00004d02u, 0x00008275u, 0x00004b28u, + 0x0004007cu, 0x000000b4u, 0x00004d03u, 0x00004d02u, 0x00050051u, 0x00000006u, 0x00005c05u, 0x00004d03u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005c06u, 0x0000496cu, 0x00005c05u, 0x00050080u, 0x00000006u, + 0x00005c07u, 0x0000496au, 0x00005c06u, 0x00050051u, 0x00000006u, 0x00005c09u, 0x00004d03u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00005c0au, 0x00005c09u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00005c0cu, + 0x00005c07u, 0x00005c0au, 0x000500c7u, 0x00000006u, 0x00005c0eu, 0x00005c0cu, 0x00000e83u, 0x000400c8u, + 0x00000006u, 0x00005c11u, 0x00005c09u, 0x000500c7u, 0x00000006u, 0x00005c12u, 0x00005c11u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00005c13u, 0x00005c12u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00005c17u, + 0x00005c05u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005c18u, 0x00005c17u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00005c1au, 0x00005c0eu, 0x00005c18u, 0x000500c6u, 0x00000006u, 0x00005c1cu, 0x00005c1au, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00005c1fu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00005c1cu, 0x0004003du, 0x0000000fu, 0x00005c20u, 0x00005c1fu, 0x00040071u, 0x00000006u, 0x00005c21u, + 0x00005c20u, 0x000500c2u, 0x00000006u, 0x00005c24u, 0x00005c21u, 0x00005c13u, 0x000500c7u, 0x00000006u, + 0x00005c25u, 0x00005c24u, 0x00000ea6u, 0x000500c5u, 0x00000006u, 0x00005c29u, 0x00005c25u, 0x00005b8bu, + 0x00040071u, 0x00000011u, 0x00005c2bu, 0x00005c29u, 0x0004007cu, 0x00000012u, 0x00005c2cu, 0x00005c2bu, + 0x00070050u, 0x00000013u, 0x00005c2du, 0x00005c2cu, 0x00005c2cu, 0x00005c2cu, 0x00005c2cu, 0x000200f9u, + 0x00004d0au, 0x000200f8u, 0x00004d0au, 0x000700f5u, 0x00000013u, 0x00008729u, 0x00008663u, 0x00004cfdu, + 0x00005c2du, 0x00004cffu, 0x000200f9u, 0x00004d2cu, 0x000200f8u, 0x00004cbdu, 0x0004007cu, 0x000000b4u, + 0x00004cbfu, 0x00008294u, 0x00050051u, 0x00000006u, 0x00005ab4u, 0x00004cbfu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005ab5u, 0x0000496cu, 0x00005ab4u, 0x00050080u, 0x00000006u, 0x00005ab6u, 0x0000496au, + 0x00005ab5u, 0x00050051u, 0x00000006u, 0x00005ab8u, 0x00004cbfu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00005ab9u, 0x00005ab8u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005abbu, 0x00005ab6u, 0x00005ab9u, + 0x000500c7u, 0x00000006u, 0x00005abdu, 0x00005abbu, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00005abfu, + 0x00005abdu, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005ac2u, 0x00005ab4u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00005ac3u, 0x00005ac2u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005ac5u, 0x00005abfu, + 0x00005ac3u, 0x000500c6u, 0x00000006u, 0x00005ac7u, 0x00005ac5u, 0x00000461u, 0x00080041u, 0x00000697u, + 0x00005acau, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005ac7u, 0x0004003du, 0x00000011u, + 0x00005acbu, 0x00005acau, 0x00040071u, 0x00000006u, 0x00005accu, 0x00005acbu, 0x000500c2u, 0x00000006u, + 0x00005aceu, 0x00005accu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00005acfu, 0x00005aceu, 0x0004007cu, + 0x00000012u, 0x00005ad0u, 0x00005acfu, 0x000500c7u, 0x00000006u, 0x00005ad2u, 0x00005accu, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00005ad3u, 0x00005ad2u, 0x0004007cu, 0x00000012u, 0x00005ad4u, 0x00005ad3u, + 0x00050050u, 0x000001b1u, 0x00005ad5u, 0x00005ad0u, 0x00005ad4u, 0x0009004fu, 0x00000013u, 0x00005ad6u, + 0x00005ad5u, 0x00005ad5u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004cd3u, + 0x00000000u, 0x000400fau, 0x00002327u, 0x00004cc4u, 0x00004cd3u, 0x000200f8u, 0x00004cc4u, 0x00050050u, + 0x000000f2u, 0x00004cc7u, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004cc8u, 0x00004cc7u, + 0x00050051u, 0x00000006u, 0x00005ae1u, 0x00004cc8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005ae2u, + 0x0000496cu, 0x00005ae1u, 0x00050080u, 0x00000006u, 0x00005ae3u, 0x0000496au, 0x00005ae2u, 0x00050051u, + 0x00000006u, 0x00005ae5u, 0x00004cc8u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005ae6u, 0x00005ae5u, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005ae8u, 0x00005ae3u, 0x00005ae6u, 0x000500c7u, 0x00000006u, + 0x00005aeau, 0x00005ae8u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00005aecu, 0x00005aeau, 0x0000022fu, + 0x000500c7u, 0x00000006u, 0x00005aefu, 0x00005ae1u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005af0u, + 0x00005aefu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005af2u, 0x00005aecu, 0x00005af0u, 0x000500c6u, + 0x00000006u, 0x00005af4u, 0x00005af2u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005af7u, 0x00000f6au, + 0x00000225u, 0x00002310u, 0x00000225u, 0x00005af4u, 0x0004003du, 0x00000011u, 0x00005af8u, 0x00005af7u, + 0x00040071u, 0x00000006u, 0x00005af9u, 0x00005af8u, 0x000500c2u, 0x00000006u, 0x00005afbu, 0x00005af9u, + 0x00000262u, 0x00040071u, 0x00000011u, 0x00005afcu, 0x00005afbu, 0x0004007cu, 0x00000012u, 0x00005afdu, + 0x00005afcu, 0x000500c7u, 0x00000006u, 0x00005affu, 0x00005af9u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x00005b00u, 0x00005affu, 0x0004007cu, 0x00000012u, 0x00005b01u, 0x00005b00u, 0x00050050u, 0x000001b1u, + 0x00005b02u, 0x00005afdu, 0x00005b01u, 0x0009004fu, 0x00000013u, 0x00005b03u, 0x00005b02u, 0x00005b02u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x000000f2u, 0x00004cceu, 0x0000826du, + 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004ccfu, 0x00004cceu, 0x00050051u, 0x00000006u, 0x00005b0eu, + 0x00004ccfu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b0fu, 0x0000496cu, 0x00005b0eu, 0x00050080u, + 0x00000006u, 0x00005b10u, 0x0000496au, 0x00005b0fu, 0x00050051u, 0x00000006u, 0x00005b12u, 0x00004ccfu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00005b13u, 0x00005b12u, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x00005b15u, 0x00005b10u, 0x00005b13u, 0x000500c7u, 0x00000006u, 0x00005b17u, 0x00005b15u, 0x00000e83u, + 0x000500c2u, 0x00000006u, 0x00005b19u, 0x00005b17u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005b1cu, + 0x00005b0eu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005b1du, 0x00005b1cu, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00005b1fu, 0x00005b19u, 0x00005b1du, 0x000500c6u, 0x00000006u, 0x00005b21u, 0x00005b1fu, + 0x00000461u, 0x00080041u, 0x00000697u, 0x00005b24u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00005b21u, 0x0004003du, 0x00000011u, 0x00005b25u, 0x00005b24u, 0x00040071u, 0x00000006u, 0x00005b26u, + 0x00005b25u, 0x000500c2u, 0x00000006u, 0x00005b28u, 0x00005b26u, 0x00000262u, 0x00040071u, 0x00000011u, + 0x00005b29u, 0x00005b28u, 0x0004007cu, 0x00000012u, 0x00005b2au, 0x00005b29u, 0x000500c7u, 0x00000006u, + 0x00005b2cu, 0x00005b26u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005b2du, 0x00005b2cu, 0x0004007cu, + 0x00000012u, 0x00005b2eu, 0x00005b2du, 0x00050050u, 0x000001b1u, 0x00005b2fu, 0x00005b2au, 0x00005b2eu, + 0x0009004fu, 0x00000013u, 0x00005b30u, 0x00005b2fu, 0x00005b2fu, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00004cd3u, 0x000200f8u, 0x00004cd3u, 0x000700f5u, 0x00000013u, 0x00008630u, + 0x0000856eu, 0x00004cbdu, 0x00005b30u, 0x00004cc4u, 0x000700f5u, 0x00000013u, 0x00008538u, 0x00008473u, + 0x00004cbdu, 0x00005b03u, 0x00004cc4u, 0x000300f7u, 0x00004cddu, 0x00000000u, 0x000400fau, 0x00004b32u, + 0x00004cd5u, 0x00004cddu, 0x000200f8u, 0x00004cd5u, 0x00050050u, 0x000000f2u, 0x00004cd8u, 0x00008275u, + 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004cd9u, 0x00004cd8u, 0x00050051u, 0x00000006u, 0x00005b3bu, + 0x00004cd9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005b3cu, 0x0000496cu, 0x00005b3bu, 0x00050080u, + 0x00000006u, 0x00005b3du, 0x0000496au, 0x00005b3cu, 0x00050051u, 0x00000006u, 0x00005b3fu, 0x00004cd9u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00005b40u, 0x00005b3fu, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x00005b42u, 0x00005b3du, 0x00005b40u, 0x000500c7u, 0x00000006u, 0x00005b44u, 0x00005b42u, 0x00000e83u, + 0x000500c2u, 0x00000006u, 0x00005b46u, 0x00005b44u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x00005b49u, + 0x00005b3bu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005b4au, 0x00005b49u, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00005b4cu, 0x00005b46u, 0x00005b4au, 0x000500c6u, 0x00000006u, 0x00005b4eu, 0x00005b4cu, + 0x00000461u, 0x00080041u, 0x00000697u, 0x00005b51u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00005b4eu, 0x0004003du, 0x00000011u, 0x00005b52u, 0x00005b51u, 0x00040071u, 0x00000006u, 0x00005b53u, + 0x00005b52u, 0x000500c2u, 0x00000006u, 0x00005b55u, 0x00005b53u, 0x00000262u, 0x00040071u, 0x00000011u, + 0x00005b56u, 0x00005b55u, 0x0004007cu, 0x00000012u, 0x00005b57u, 0x00005b56u, 0x000500c7u, 0x00000006u, + 0x00005b59u, 0x00005b53u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005b5au, 0x00005b59u, 0x0004007cu, + 0x00000012u, 0x00005b5bu, 0x00005b5au, 0x00050050u, 0x000001b1u, 0x00005b5cu, 0x00005b57u, 0x00005b5bu, + 0x0009004fu, 0x00000013u, 0x00005b5du, 0x00005b5cu, 0x00005b5cu, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00004cddu, 0x000200f8u, 0x00004cddu, 0x000700f5u, 0x00000013u, 0x00008727u, + 0x00008663u, 0x00004cd3u, 0x00005b5du, 0x00004cd5u, 0x000200f9u, 0x00004d2cu, 0x000200f8u, 0x00004d2cu, + 0x000900f5u, 0x00000013u, 0x00008726u, 0x00008727u, 0x00004cddu, 0x00008729u, 0x00004d0au, 0x0000872bu, + 0x00004d2bu, 0x000900f5u, 0x00000013u, 0x0000862eu, 0x00008630u, 0x00004cddu, 0x00008632u, 0x00004d0au, + 0x00008634u, 0x00004d2bu, 0x000900f5u, 0x00000013u, 0x00008536u, 0x00008538u, 0x00004cddu, 0x0000853au, + 0x00004d0au, 0x0000853cu, 0x00004d2bu, 0x000900f5u, 0x00000013u, 0x000083c9u, 0x00005ad6u, 0x00004cddu, + 0x00005b91u, 0x00004d0au, 0x00005c52u, 0x00004d2bu, 0x000200f9u, 0x00004e20u, 0x000200f8u, 0x00004c8au, + 0x000500c3u, 0x00000008u, 0x00004c8cu, 0x0000826du, 0x0000022fu, 0x0004007cu, 0x00000006u, 0x00004c8du, + 0x00004c8cu, 0x00050082u, 0x00000008u, 0x00004c91u, 0x00008275u, 0x0000826du, 0x00050080u, 0x00000008u, + 0x00004c92u, 0x00008275u, 0x00004c91u, 0x000500c3u, 0x00000008u, 0x00004c93u, 0x00004c92u, 0x0000022fu, + 0x0004007cu, 0x00000006u, 0x00004c94u, 0x00004c93u, 0x00050050u, 0x000000f2u, 0x00004c97u, 0x0000826du, + 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004c98u, 0x00004c97u, 0x00050051u, 0x00000006u, 0x00005972u, + 0x00004c98u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005973u, 0x0000496cu, 0x00005972u, 0x00050080u, + 0x00000006u, 0x00005974u, 0x0000496au, 0x00005973u, 0x00050051u, 0x00000006u, 0x00005977u, 0x00004c98u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005978u, 0x00005974u, 0x00005977u, 0x000500c7u, 0x00000006u, + 0x0000597au, 0x00005978u, 0x00000f3bu, 0x00050084u, 0x00000006u, 0x0000597du, 0x00004c8du, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x0000597eu, 0x00005974u, 0x0000597du, 0x000500c7u, 0x00000006u, 0x00005980u, + 0x0000597eu, 0x00000f3bu, 0x000500c7u, 0x00000006u, 0x00005984u, 0x00005972u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00005985u, 0x00005984u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005987u, 0x0000597au, + 0x00005985u, 0x000500c6u, 0x00000006u, 0x00005989u, 0x00005987u, 0x00000469u, 0x000500c2u, 0x00000006u, + 0x0000598bu, 0x00005980u, 0x0000022fu, 0x000500c4u, 0x00000006u, 0x0000598fu, 0x00005984u, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x00005991u, 0x0000598bu, 0x0000598fu, 0x000500c6u, 0x00000006u, 0x00005993u, + 0x00005991u, 0x00000461u, 0x000500c5u, 0x00000006u, 0x00005996u, 0x00005989u, 0x00000f64u, 0x00080041u, + 0x00000676u, 0x00005997u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005996u, 0x0004003du, + 0x0000000fu, 0x00005998u, 0x00005997u, 0x00080041u, 0x00000697u, 0x0000599bu, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00005993u, 0x0004003du, 0x00000011u, 0x0000599cu, 0x0000599bu, 0x000500c2u, + 0x00000011u, 0x0000599eu, 0x0000599cu, 0x000010c1u, 0x000500c7u, 0x00000011u, 0x0000599fu, 0x0000599eu, + 0x00000350u, 0x00040071u, 0x0000000fu, 0x000059a0u, 0x0000599fu, 0x000500c2u, 0x00000011u, 0x000059a2u, + 0x0000599cu, 0x0000021fu, 0x000500c7u, 0x00000011u, 0x000059a3u, 0x000059a2u, 0x00000350u, 0x00040071u, + 0x0000000fu, 0x000059a4u, 0x000059a3u, 0x00040071u, 0x00000011u, 0x000059a6u, 0x000059a0u, 0x0004007cu, + 0x00000012u, 0x000059a7u, 0x000059a6u, 0x00050082u, 0x00000012u, 0x000059a8u, 0x000059a7u, 0x000010cdu, + 0x00040071u, 0x00000011u, 0x000059aau, 0x000059a4u, 0x0004007cu, 0x00000012u, 0x000059abu, 0x000059aau, + 0x00050082u, 0x00000012u, 0x000059acu, 0x000059abu, 0x000010cdu, 0x00040071u, 0x00000011u, 0x000059aeu, + 0x00005998u, 0x0004007cu, 0x00000012u, 0x000059afu, 0x000059aeu, 0x00070050u, 0x00000013u, 0x000059b3u, + 0x000059a8u, 0x000059acu, 0x000059afu, 0x000059afu, 0x000300f7u, 0x00004cb7u, 0x00000000u, 0x000400fau, + 0x00002327u, 0x00004c9eu, 0x00004cb7u, 0x000200f8u, 0x00004c9eu, 0x00050050u, 0x000000f2u, 0x00004ca1u, + 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004ca2u, 0x00004ca1u, 0x00050051u, 0x00000006u, + 0x000059c4u, 0x00004ca2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000059c5u, 0x0000496cu, 0x000059c4u, + 0x00050080u, 0x00000006u, 0x000059c6u, 0x0000496au, 0x000059c5u, 0x00050051u, 0x00000006u, 0x000059c9u, + 0x00004ca2u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000059cau, 0x000059c6u, 0x000059c9u, 0x000500c7u, + 0x00000006u, 0x000059ccu, 0x000059cau, 0x00000f3bu, 0x00050084u, 0x00000006u, 0x000059cfu, 0x00004c94u, + 0x0000038bu, 0x00050080u, 0x00000006u, 0x000059d0u, 0x000059c6u, 0x000059cfu, 0x000500c7u, 0x00000006u, + 0x000059d2u, 0x000059d0u, 0x00000f3bu, 0x000500c7u, 0x00000006u, 0x000059d6u, 0x000059c4u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x000059d7u, 0x000059d6u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000059d9u, + 0x000059ccu, 0x000059d7u, 0x000500c6u, 0x00000006u, 0x000059dbu, 0x000059d9u, 0x00000469u, 0x000500c2u, + 0x00000006u, 0x000059ddu, 0x000059d2u, 0x0000022fu, 0x000500c4u, 0x00000006u, 0x000059e1u, 0x000059d6u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000059e3u, 0x000059ddu, 0x000059e1u, 0x000500c6u, 0x00000006u, + 0x000059e5u, 0x000059e3u, 0x00000461u, 0x000500c5u, 0x00000006u, 0x000059e8u, 0x000059dbu, 0x00000f64u, + 0x00080041u, 0x00000676u, 0x000059e9u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000059e8u, + 0x0004003du, 0x0000000fu, 0x000059eau, 0x000059e9u, 0x00080041u, 0x00000697u, 0x000059edu, 0x00000f6au, + 0x00000225u, 0x00002310u, 0x00000225u, 0x000059e5u, 0x0004003du, 0x00000011u, 0x000059eeu, 0x000059edu, + 0x000500c2u, 0x00000011u, 0x000059f0u, 0x000059eeu, 0x000010c1u, 0x000500c7u, 0x00000011u, 0x000059f1u, + 0x000059f0u, 0x00000350u, 0x00040071u, 0x0000000fu, 0x000059f2u, 0x000059f1u, 0x000500c2u, 0x00000011u, + 0x000059f4u, 0x000059eeu, 0x0000021fu, 0x000500c7u, 0x00000011u, 0x000059f5u, 0x000059f4u, 0x00000350u, + 0x00040071u, 0x0000000fu, 0x000059f6u, 0x000059f5u, 0x00040071u, 0x00000011u, 0x000059f8u, 0x000059f2u, + 0x0004007cu, 0x00000012u, 0x000059f9u, 0x000059f8u, 0x00050082u, 0x00000012u, 0x000059fau, 0x000059f9u, + 0x000010cdu, 0x00040071u, 0x00000011u, 0x000059fcu, 0x000059f6u, 0x0004007cu, 0x00000012u, 0x000059fdu, + 0x000059fcu, 0x00050082u, 0x00000012u, 0x000059feu, 0x000059fdu, 0x000010cdu, 0x00040071u, 0x00000011u, + 0x00005a00u, 0x000059eau, 0x0004007cu, 0x00000012u, 0x00005a01u, 0x00005a00u, 0x00070050u, 0x00000013u, + 0x00005a05u, 0x000059fau, 0x000059feu, 0x00005a01u, 0x00005a01u, 0x00050050u, 0x000000f2u, 0x00004ca9u, + 0x0000826du, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004caau, 0x00004ca9u, 0x00050051u, 0x00000006u, + 0x00005a16u, 0x00004caau, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005a17u, 0x0000496cu, 0x00005a16u, + 0x00050080u, 0x00000006u, 0x00005a18u, 0x0000496au, 0x00005a17u, 0x00050051u, 0x00000006u, 0x00005a1bu, + 0x00004caau, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005a1cu, 0x00005a18u, 0x00005a1bu, 0x000500c7u, + 0x00000006u, 0x00005a1eu, 0x00005a1cu, 0x00000f3bu, 0x00050080u, 0x00000006u, 0x00005a22u, 0x00005a18u, + 0x0000597du, 0x000500c7u, 0x00000006u, 0x00005a24u, 0x00005a22u, 0x00000f3bu, 0x000500c7u, 0x00000006u, + 0x00005a28u, 0x00005a16u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005a29u, 0x00005a28u, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00005a2bu, 0x00005a1eu, 0x00005a29u, 0x000500c6u, 0x00000006u, 0x00005a2du, + 0x00005a2bu, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00005a2fu, 0x00005a24u, 0x0000022fu, 0x000500c4u, + 0x00000006u, 0x00005a33u, 0x00005a28u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005a35u, 0x00005a2fu, + 0x00005a33u, 0x000500c6u, 0x00000006u, 0x00005a37u, 0x00005a35u, 0x00000461u, 0x000500c5u, 0x00000006u, + 0x00005a3au, 0x00005a2du, 0x00000f64u, 0x00080041u, 0x00000676u, 0x00005a3bu, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00005a3au, 0x0004003du, 0x0000000fu, 0x00005a3cu, 0x00005a3bu, 0x00080041u, + 0x00000697u, 0x00005a3fu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005a37u, 0x0004003du, + 0x00000011u, 0x00005a40u, 0x00005a3fu, 0x000500c2u, 0x00000011u, 0x00005a42u, 0x00005a40u, 0x000010c1u, + 0x000500c7u, 0x00000011u, 0x00005a43u, 0x00005a42u, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00005a44u, + 0x00005a43u, 0x000500c2u, 0x00000011u, 0x00005a46u, 0x00005a40u, 0x0000021fu, 0x000500c7u, 0x00000011u, + 0x00005a47u, 0x00005a46u, 0x00000350u, 0x00040071u, 0x0000000fu, 0x00005a48u, 0x00005a47u, 0x00040071u, + 0x00000011u, 0x00005a4au, 0x00005a44u, 0x0004007cu, 0x00000012u, 0x00005a4bu, 0x00005a4au, 0x00050082u, + 0x00000012u, 0x00005a4cu, 0x00005a4bu, 0x000010cdu, 0x00040071u, 0x00000011u, 0x00005a4eu, 0x00005a48u, + 0x0004007cu, 0x00000012u, 0x00005a4fu, 0x00005a4eu, 0x00050082u, 0x00000012u, 0x00005a50u, 0x00005a4fu, + 0x000010cdu, 0x00040071u, 0x00000011u, 0x00005a52u, 0x00005a3cu, 0x0004007cu, 0x00000012u, 0x00005a53u, + 0x00005a52u, 0x00070050u, 0x00000013u, 0x00005a57u, 0x00005a4cu, 0x00005a50u, 0x00005a53u, 0x00005a53u, + 0x00050050u, 0x000000f2u, 0x00004cb1u, 0x00008275u, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004cb2u, + 0x00004cb1u, 0x00050051u, 0x00000006u, 0x00005a68u, 0x00004cb2u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005a69u, 0x0000496cu, 0x00005a68u, 0x00050080u, 0x00000006u, 0x00005a6au, 0x0000496au, 0x00005a69u, + 0x00050051u, 0x00000006u, 0x00005a6du, 0x00004cb2u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005a6eu, + 0x00005a6au, 0x00005a6du, 0x000500c7u, 0x00000006u, 0x00005a70u, 0x00005a6eu, 0x00000f3bu, 0x00050080u, + 0x00000006u, 0x00005a74u, 0x00005a6au, 0x000059cfu, 0x000500c7u, 0x00000006u, 0x00005a76u, 0x00005a74u, + 0x00000f3bu, 0x000500c7u, 0x00000006u, 0x00005a7au, 0x00005a68u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x00005a7bu, 0x00005a7au, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005a7du, 0x00005a70u, 0x00005a7bu, + 0x000500c6u, 0x00000006u, 0x00005a7fu, 0x00005a7du, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00005a81u, + 0x00005a76u, 0x0000022fu, 0x000500c4u, 0x00000006u, 0x00005a85u, 0x00005a7au, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00005a87u, 0x00005a81u, 0x00005a85u, 0x000500c6u, 0x00000006u, 0x00005a89u, 0x00005a87u, + 0x00000461u, 0x000500c5u, 0x00000006u, 0x00005a8cu, 0x00005a7fu, 0x00000f64u, 0x00080041u, 0x00000676u, + 0x00005a8du, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005a8cu, 0x0004003du, 0x0000000fu, + 0x00005a8eu, 0x00005a8du, 0x00080041u, 0x00000697u, 0x00005a91u, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00005a89u, 0x0004003du, 0x00000011u, 0x00005a92u, 0x00005a91u, 0x000500c2u, 0x00000011u, + 0x00005a94u, 0x00005a92u, 0x000010c1u, 0x000500c7u, 0x00000011u, 0x00005a95u, 0x00005a94u, 0x00000350u, + 0x00040071u, 0x0000000fu, 0x00005a96u, 0x00005a95u, 0x000500c2u, 0x00000011u, 0x00005a98u, 0x00005a92u, + 0x0000021fu, 0x000500c7u, 0x00000011u, 0x00005a99u, 0x00005a98u, 0x00000350u, 0x00040071u, 0x0000000fu, + 0x00005a9au, 0x00005a99u, 0x00040071u, 0x00000011u, 0x00005a9cu, 0x00005a96u, 0x0004007cu, 0x00000012u, + 0x00005a9du, 0x00005a9cu, 0x00050082u, 0x00000012u, 0x00005a9eu, 0x00005a9du, 0x000010cdu, 0x00040071u, + 0x00000011u, 0x00005aa0u, 0x00005a9au, 0x0004007cu, 0x00000012u, 0x00005aa1u, 0x00005aa0u, 0x00050082u, + 0x00000012u, 0x00005aa2u, 0x00005aa1u, 0x000010cdu, 0x00040071u, 0x00000011u, 0x00005aa4u, 0x00005a8eu, + 0x0004007cu, 0x00000012u, 0x00005aa5u, 0x00005aa4u, 0x00070050u, 0x00000013u, 0x00005aa9u, 0x00005a9eu, + 0x00005aa2u, 0x00005aa5u, 0x00005aa5u, 0x000200f9u, 0x00004cb7u, 0x000200f8u, 0x00004cb7u, 0x000700f5u, + 0x00000013u, 0x00008725u, 0x00008663u, 0x00004c8au, 0x00005aa9u, 0x00004c9eu, 0x000700f5u, 0x00000013u, + 0x0000862du, 0x0000856eu, 0x00004c8au, 0x00005a57u, 0x00004c9eu, 0x000700f5u, 0x00000013u, 0x00008535u, + 0x00008473u, 0x00004c8au, 0x00005a05u, 0x00004c9eu, 0x000200f9u, 0x00004e20u, 0x000200f8u, 0x00004c00u, + 0x00040071u, 0x00000006u, 0x00004c03u, 0x00004970u, 0x0004007cu, 0x00000008u, 0x00004c04u, 0x00004c03u, + 0x000300f7u, 0x00004c89u, 0x00000000u, 0x000b00fbu, 0x00004c04u, 0x00004c89u, 0x00000000u, 0x00004c05u, + 0x00000001u, 0x00004c26u, 0x00000002u, 0x00004c47u, 0x00000003u, 0x00004c68u, 0x000200f8u, 0x00004c68u, + 0x0004007cu, 0x000000b4u, 0x00004c6au, 0x00008294u, 0x00050051u, 0x00000006u, 0x00005881u, 0x00004c6au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005882u, 0x0000496cu, 0x00005881u, 0x00050080u, 0x00000006u, + 0x00005883u, 0x0000496au, 0x00005882u, 0x00050051u, 0x00000006u, 0x00005885u, 0x00004c6au, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00005886u, 0x00005885u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005888u, + 0x00005883u, 0x00005886u, 0x000500c7u, 0x00000006u, 0x0000588au, 0x00005888u, 0x00000f3bu, 0x000500c2u, + 0x00000006u, 0x0000588cu, 0x0000588au, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x0000588fu, 0x00005881u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005890u, 0x0000588fu, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00005892u, 0x0000588cu, 0x00005890u, 0x000500c6u, 0x00000006u, 0x00005894u, 0x00005892u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00005897u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005894u, + 0x0004003du, 0x00000011u, 0x00005898u, 0x00005897u, 0x00040071u, 0x00000006u, 0x00005899u, 0x00005898u, + 0x000500c5u, 0x00000006u, 0x0000589cu, 0x00005894u, 0x00000f6cu, 0x00080041u, 0x00000697u, 0x0000589du, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000589cu, 0x0004003du, 0x00000011u, 0x0000589eu, + 0x0000589du, 0x00040071u, 0x00000006u, 0x0000589fu, 0x0000589eu, 0x000500c2u, 0x00000006u, 0x000058a1u, + 0x00005899u, 0x00000262u, 0x00040071u, 0x00000011u, 0x000058a2u, 0x000058a1u, 0x0004007cu, 0x00000012u, + 0x000058a3u, 0x000058a2u, 0x000500c7u, 0x00000006u, 0x000058a5u, 0x00005899u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x000058a6u, 0x000058a5u, 0x0004007cu, 0x00000012u, 0x000058a7u, 0x000058a6u, 0x000500c2u, + 0x00000006u, 0x000058a9u, 0x0000589fu, 0x00000262u, 0x00040071u, 0x00000011u, 0x000058aau, 0x000058a9u, + 0x0004007cu, 0x00000012u, 0x000058abu, 0x000058aau, 0x000500c7u, 0x00000006u, 0x000058adu, 0x0000589fu, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x000058aeu, 0x000058adu, 0x0004007cu, 0x00000012u, 0x000058afu, + 0x000058aeu, 0x00070050u, 0x00000013u, 0x000058b0u, 0x000058a3u, 0x000058a7u, 0x000058abu, 0x000058afu, + 0x000300f7u, 0x00004c7eu, 0x00000000u, 0x000400fau, 0x00002327u, 0x00004c6fu, 0x00004c7eu, 0x000200f8u, + 0x00004c6fu, 0x00050050u, 0x000000f2u, 0x00004c72u, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, + 0x00004c73u, 0x00004c72u, 0x00050051u, 0x00000006u, 0x000058bcu, 0x00004c73u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000058bdu, 0x0000496cu, 0x000058bcu, 0x00050080u, 0x00000006u, 0x000058beu, 0x0000496au, + 0x000058bdu, 0x00050051u, 0x00000006u, 0x000058c0u, 0x00004c73u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000058c1u, 0x000058c0u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000058c3u, 0x000058beu, 0x000058c1u, + 0x000500c7u, 0x00000006u, 0x000058c5u, 0x000058c3u, 0x00000f3bu, 0x000500c2u, 0x00000006u, 0x000058c7u, + 0x000058c5u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000058cau, 0x000058bcu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000058cbu, 0x000058cau, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000058cdu, 0x000058c7u, + 0x000058cbu, 0x000500c6u, 0x00000006u, 0x000058cfu, 0x000058cdu, 0x00000461u, 0x00080041u, 0x00000697u, + 0x000058d2u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000058cfu, 0x0004003du, 0x00000011u, + 0x000058d3u, 0x000058d2u, 0x00040071u, 0x00000006u, 0x000058d4u, 0x000058d3u, 0x000500c5u, 0x00000006u, + 0x000058d7u, 0x000058cfu, 0x00000f6cu, 0x00080041u, 0x00000697u, 0x000058d8u, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x000058d7u, 0x0004003du, 0x00000011u, 0x000058d9u, 0x000058d8u, 0x00040071u, + 0x00000006u, 0x000058dau, 0x000058d9u, 0x000500c2u, 0x00000006u, 0x000058dcu, 0x000058d4u, 0x00000262u, + 0x00040071u, 0x00000011u, 0x000058ddu, 0x000058dcu, 0x0004007cu, 0x00000012u, 0x000058deu, 0x000058ddu, + 0x000500c7u, 0x00000006u, 0x000058e0u, 0x000058d4u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000058e1u, + 0x000058e0u, 0x0004007cu, 0x00000012u, 0x000058e2u, 0x000058e1u, 0x000500c2u, 0x00000006u, 0x000058e4u, + 0x000058dau, 0x00000262u, 0x00040071u, 0x00000011u, 0x000058e5u, 0x000058e4u, 0x0004007cu, 0x00000012u, + 0x000058e6u, 0x000058e5u, 0x000500c7u, 0x00000006u, 0x000058e8u, 0x000058dau, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x000058e9u, 0x000058e8u, 0x0004007cu, 0x00000012u, 0x000058eau, 0x000058e9u, 0x00070050u, + 0x00000013u, 0x000058ebu, 0x000058deu, 0x000058e2u, 0x000058e6u, 0x000058eau, 0x00050050u, 0x000000f2u, + 0x00004c79u, 0x0000826du, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004c7au, 0x00004c79u, 0x00050051u, + 0x00000006u, 0x000058f7u, 0x00004c7au, 0x00000001u, 0x00050084u, 0x00000006u, 0x000058f8u, 0x0000496cu, + 0x000058f7u, 0x00050080u, 0x00000006u, 0x000058f9u, 0x0000496au, 0x000058f8u, 0x00050051u, 0x00000006u, + 0x000058fbu, 0x00004c7au, 0x00000000u, 0x00050084u, 0x00000006u, 0x000058fcu, 0x000058fbu, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x000058feu, 0x000058f9u, 0x000058fcu, 0x000500c7u, 0x00000006u, 0x00005900u, + 0x000058feu, 0x00000f3bu, 0x000500c2u, 0x00000006u, 0x00005902u, 0x00005900u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00005905u, 0x000058f7u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005906u, 0x00005905u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005908u, 0x00005902u, 0x00005906u, 0x000500c6u, 0x00000006u, + 0x0000590au, 0x00005908u, 0x00000461u, 0x00080041u, 0x00000697u, 0x0000590du, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x0000590au, 0x0004003du, 0x00000011u, 0x0000590eu, 0x0000590du, 0x00040071u, + 0x00000006u, 0x0000590fu, 0x0000590eu, 0x000500c5u, 0x00000006u, 0x00005912u, 0x0000590au, 0x00000f6cu, + 0x00080041u, 0x00000697u, 0x00005913u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005912u, + 0x0004003du, 0x00000011u, 0x00005914u, 0x00005913u, 0x00040071u, 0x00000006u, 0x00005915u, 0x00005914u, + 0x000500c2u, 0x00000006u, 0x00005917u, 0x0000590fu, 0x00000262u, 0x00040071u, 0x00000011u, 0x00005918u, + 0x00005917u, 0x0004007cu, 0x00000012u, 0x00005919u, 0x00005918u, 0x000500c7u, 0x00000006u, 0x0000591bu, + 0x0000590fu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000591cu, 0x0000591bu, 0x0004007cu, 0x00000012u, + 0x0000591du, 0x0000591cu, 0x000500c2u, 0x00000006u, 0x0000591fu, 0x00005915u, 0x00000262u, 0x00040071u, + 0x00000011u, 0x00005920u, 0x0000591fu, 0x0004007cu, 0x00000012u, 0x00005921u, 0x00005920u, 0x000500c7u, + 0x00000006u, 0x00005923u, 0x00005915u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005924u, 0x00005923u, + 0x0004007cu, 0x00000012u, 0x00005925u, 0x00005924u, 0x00070050u, 0x00000013u, 0x00005926u, 0x00005919u, + 0x0000591du, 0x00005921u, 0x00005925u, 0x000200f9u, 0x00004c7eu, 0x000200f8u, 0x00004c7eu, 0x000700f5u, + 0x00000013u, 0x0000862cu, 0x0000856eu, 0x00004c68u, 0x00005926u, 0x00004c6fu, 0x000700f5u, 0x00000013u, + 0x00008534u, 0x00008473u, 0x00004c68u, 0x000058ebu, 0x00004c6fu, 0x000300f7u, 0x00004c88u, 0x00000000u, + 0x000400fau, 0x00004b32u, 0x00004c80u, 0x00004c88u, 0x000200f8u, 0x00004c80u, 0x00050050u, 0x000000f2u, + 0x00004c83u, 0x00008275u, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004c84u, 0x00004c83u, 0x00050051u, + 0x00000006u, 0x00005932u, 0x00004c84u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005933u, 0x0000496cu, + 0x00005932u, 0x00050080u, 0x00000006u, 0x00005934u, 0x0000496au, 0x00005933u, 0x00050051u, 0x00000006u, + 0x00005936u, 0x00004c84u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005937u, 0x00005936u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x00005939u, 0x00005934u, 0x00005937u, 0x000500c7u, 0x00000006u, 0x0000593bu, + 0x00005939u, 0x00000f3bu, 0x000500c2u, 0x00000006u, 0x0000593du, 0x0000593bu, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00005940u, 0x00005932u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005941u, 0x00005940u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x00005943u, 0x0000593du, 0x00005941u, 0x000500c6u, 0x00000006u, + 0x00005945u, 0x00005943u, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005948u, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00005945u, 0x0004003du, 0x00000011u, 0x00005949u, 0x00005948u, 0x00040071u, + 0x00000006u, 0x0000594au, 0x00005949u, 0x000500c5u, 0x00000006u, 0x0000594du, 0x00005945u, 0x00000f6cu, + 0x00080041u, 0x00000697u, 0x0000594eu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000594du, + 0x0004003du, 0x00000011u, 0x0000594fu, 0x0000594eu, 0x00040071u, 0x00000006u, 0x00005950u, 0x0000594fu, + 0x000500c2u, 0x00000006u, 0x00005952u, 0x0000594au, 0x00000262u, 0x00040071u, 0x00000011u, 0x00005953u, + 0x00005952u, 0x0004007cu, 0x00000012u, 0x00005954u, 0x00005953u, 0x000500c7u, 0x00000006u, 0x00005956u, + 0x0000594au, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005957u, 0x00005956u, 0x0004007cu, 0x00000012u, + 0x00005958u, 0x00005957u, 0x000500c2u, 0x00000006u, 0x0000595au, 0x00005950u, 0x00000262u, 0x00040071u, + 0x00000011u, 0x0000595bu, 0x0000595au, 0x0004007cu, 0x00000012u, 0x0000595cu, 0x0000595bu, 0x000500c7u, + 0x00000006u, 0x0000595eu, 0x00005950u, 0x000006c8u, 0x00040071u, 0x00000011u, 0x0000595fu, 0x0000595eu, + 0x0004007cu, 0x00000012u, 0x00005960u, 0x0000595fu, 0x00070050u, 0x00000013u, 0x00005961u, 0x00005954u, + 0x00005958u, 0x0000595cu, 0x00005960u, 0x000200f9u, 0x00004c88u, 0x000200f8u, 0x00004c88u, 0x000700f5u, + 0x00000013u, 0x00008723u, 0x00008663u, 0x00004c7eu, 0x00005961u, 0x00004c80u, 0x000200f9u, 0x00004c89u, + 0x000200f8u, 0x00004c47u, 0x0004007cu, 0x000000b4u, 0x00004c49u, 0x00008294u, 0x00050051u, 0x00000006u, + 0x00005775u, 0x00004c49u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005776u, 0x0000496cu, 0x00005775u, + 0x00050080u, 0x00000006u, 0x00005777u, 0x0000496au, 0x00005776u, 0x00050051u, 0x00000006u, 0x00005779u, + 0x00004c49u, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000577au, 0x00005779u, 0x0000038bu, 0x00050080u, + 0x00000006u, 0x0000577cu, 0x00005777u, 0x0000577au, 0x000500c7u, 0x00000006u, 0x0000577eu, 0x0000577cu, + 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00005780u, 0x0000577eu, 0x0000022fu, 0x000500c7u, 0x00000006u, + 0x00005783u, 0x00005775u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005784u, 0x00005783u, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x00005786u, 0x00005780u, 0x00005784u, 0x000500c6u, 0x00000006u, 0x00005788u, + 0x00005786u, 0x00000461u, 0x00080041u, 0x00000697u, 0x0000578bu, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00005788u, 0x0004003du, 0x00000011u, 0x0000578cu, 0x0000578bu, 0x00040071u, 0x00000006u, + 0x0000578du, 0x0000578cu, 0x00060050u, 0x00000311u, 0x00005795u, 0x0000578du, 0x0000578du, 0x0000578du, + 0x000500c2u, 0x00000311u, 0x00005796u, 0x00005795u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00005798u, + 0x00005796u, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x0000579bu, 0x00005798u, 0x0000c237u, 0x000500c2u, + 0x00000311u, 0x0000579eu, 0x00005798u, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x0000579fu, 0x0000579bu, + 0x0000579eu, 0x000500c7u, 0x00000006u, 0x000057a1u, 0x0000578du, 0x00000461u, 0x00050084u, 0x00000006u, + 0x000057a2u, 0x000057a1u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000057a4u, 0x0000579fu, 0x0004007cu, + 0x000004bbu, 0x000057a5u, 0x000057a4u, 0x00040071u, 0x00000011u, 0x000057a7u, 0x000057a2u, 0x0004007cu, + 0x00000012u, 0x000057a8u, 0x000057a7u, 0x00050051u, 0x00000012u, 0x000057a9u, 0x000057a5u, 0x00000000u, + 0x00050051u, 0x00000012u, 0x000057aau, 0x000057a5u, 0x00000001u, 0x00050051u, 0x00000012u, 0x000057abu, + 0x000057a5u, 0x00000002u, 0x00070050u, 0x00000013u, 0x000057acu, 0x000057a9u, 0x000057aau, 0x000057abu, + 0x000057a8u, 0x000300f7u, 0x00004c5du, 0x00000000u, 0x000400fau, 0x00002327u, 0x00004c4eu, 0x00004c5du, + 0x000200f8u, 0x00004c4eu, 0x00050050u, 0x000000f2u, 0x00004c51u, 0x00008275u, 0x00004b26u, 0x0004007cu, + 0x000000b4u, 0x00004c52u, 0x00004c51u, 0x00050051u, 0x00000006u, 0x000057b8u, 0x00004c52u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000057b9u, 0x0000496cu, 0x000057b8u, 0x00050080u, 0x00000006u, 0x000057bau, + 0x0000496au, 0x000057b9u, 0x00050051u, 0x00000006u, 0x000057bcu, 0x00004c52u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x000057bdu, 0x000057bcu, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000057bfu, 0x000057bau, + 0x000057bdu, 0x000500c7u, 0x00000006u, 0x000057c1u, 0x000057bfu, 0x00000e83u, 0x000500c2u, 0x00000006u, + 0x000057c3u, 0x000057c1u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x000057c6u, 0x000057b8u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x000057c7u, 0x000057c6u, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000057c9u, + 0x000057c3u, 0x000057c7u, 0x000500c6u, 0x00000006u, 0x000057cbu, 0x000057c9u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x000057ceu, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000057cbu, 0x0004003du, + 0x00000011u, 0x000057cfu, 0x000057ceu, 0x00040071u, 0x00000006u, 0x000057d0u, 0x000057cfu, 0x00060050u, + 0x00000311u, 0x000057d8u, 0x000057d0u, 0x000057d0u, 0x000057d0u, 0x000500c2u, 0x00000311u, 0x000057d9u, + 0x000057d8u, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x000057dbu, 0x000057d9u, 0x0000c236u, 0x000500c4u, + 0x00000311u, 0x000057deu, 0x000057dbu, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x000057e1u, 0x000057dbu, + 0x0000c238u, 0x000500c5u, 0x00000311u, 0x000057e2u, 0x000057deu, 0x000057e1u, 0x000500c7u, 0x00000006u, + 0x000057e4u, 0x000057d0u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000057e5u, 0x000057e4u, 0x000006c8u, + 0x00040071u, 0x000004bfu, 0x000057e7u, 0x000057e2u, 0x0004007cu, 0x000004bbu, 0x000057e8u, 0x000057e7u, + 0x00040071u, 0x00000011u, 0x000057eau, 0x000057e5u, 0x0004007cu, 0x00000012u, 0x000057ebu, 0x000057eau, + 0x00050051u, 0x00000012u, 0x000057ecu, 0x000057e8u, 0x00000000u, 0x00050051u, 0x00000012u, 0x000057edu, + 0x000057e8u, 0x00000001u, 0x00050051u, 0x00000012u, 0x000057eeu, 0x000057e8u, 0x00000002u, 0x00070050u, + 0x00000013u, 0x000057efu, 0x000057ecu, 0x000057edu, 0x000057eeu, 0x000057ebu, 0x00050050u, 0x000000f2u, + 0x00004c58u, 0x0000826du, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004c59u, 0x00004c58u, 0x00050051u, + 0x00000006u, 0x000057fbu, 0x00004c59u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000057fcu, 0x0000496cu, + 0x000057fbu, 0x00050080u, 0x00000006u, 0x000057fdu, 0x0000496au, 0x000057fcu, 0x00050051u, 0x00000006u, + 0x000057ffu, 0x00004c59u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005800u, 0x000057ffu, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x00005802u, 0x000057fdu, 0x00005800u, 0x000500c7u, 0x00000006u, 0x00005804u, + 0x00005802u, 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00005806u, 0x00005804u, 0x0000022fu, 0x000500c7u, + 0x00000006u, 0x00005809u, 0x000057fbu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000580au, 0x00005809u, + 0x0000022fu, 0x000500c6u, 0x00000006u, 0x0000580cu, 0x00005806u, 0x0000580au, 0x000500c6u, 0x00000006u, + 0x0000580eu, 0x0000580cu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005811u, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x0000580eu, 0x0004003du, 0x00000011u, 0x00005812u, 0x00005811u, 0x00040071u, + 0x00000006u, 0x00005813u, 0x00005812u, 0x00060050u, 0x00000311u, 0x0000581bu, 0x00005813u, 0x00005813u, + 0x00005813u, 0x000500c2u, 0x00000311u, 0x0000581cu, 0x0000581bu, 0x00000e44u, 0x000500c7u, 0x00000311u, + 0x0000581eu, 0x0000581cu, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00005821u, 0x0000581eu, 0x0000c237u, + 0x000500c2u, 0x00000311u, 0x00005824u, 0x0000581eu, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00005825u, + 0x00005821u, 0x00005824u, 0x000500c7u, 0x00000006u, 0x00005827u, 0x00005813u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00005828u, 0x00005827u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x0000582au, 0x00005825u, + 0x0004007cu, 0x000004bbu, 0x0000582bu, 0x0000582au, 0x00040071u, 0x00000011u, 0x0000582du, 0x00005828u, + 0x0004007cu, 0x00000012u, 0x0000582eu, 0x0000582du, 0x00050051u, 0x00000012u, 0x0000582fu, 0x0000582bu, + 0x00000000u, 0x00050051u, 0x00000012u, 0x00005830u, 0x0000582bu, 0x00000001u, 0x00050051u, 0x00000012u, + 0x00005831u, 0x0000582bu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005832u, 0x0000582fu, 0x00005830u, + 0x00005831u, 0x0000582eu, 0x000200f9u, 0x00004c5du, 0x000200f8u, 0x00004c5du, 0x000700f5u, 0x00000013u, + 0x0000862au, 0x0000856eu, 0x00004c47u, 0x00005832u, 0x00004c4eu, 0x000700f5u, 0x00000013u, 0x00008532u, + 0x00008473u, 0x00004c47u, 0x000057efu, 0x00004c4eu, 0x000300f7u, 0x00004c67u, 0x00000000u, 0x000400fau, + 0x00004b32u, 0x00004c5fu, 0x00004c67u, 0x000200f8u, 0x00004c5fu, 0x00050050u, 0x000000f2u, 0x00004c62u, + 0x00008275u, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004c63u, 0x00004c62u, 0x00050051u, 0x00000006u, + 0x0000583eu, 0x00004c63u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000583fu, 0x0000496cu, 0x0000583eu, + 0x00050080u, 0x00000006u, 0x00005840u, 0x0000496au, 0x0000583fu, 0x00050051u, 0x00000006u, 0x00005842u, + 0x00004c63u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005843u, 0x00005842u, 0x0000038bu, 0x00050080u, + 0x00000006u, 0x00005845u, 0x00005840u, 0x00005843u, 0x000500c7u, 0x00000006u, 0x00005847u, 0x00005845u, + 0x00000e83u, 0x000500c2u, 0x00000006u, 0x00005849u, 0x00005847u, 0x0000022fu, 0x000500c7u, 0x00000006u, + 0x0000584cu, 0x0000583eu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000584du, 0x0000584cu, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x0000584fu, 0x00005849u, 0x0000584du, 0x000500c6u, 0x00000006u, 0x00005851u, + 0x0000584fu, 0x00000461u, 0x00080041u, 0x00000697u, 0x00005854u, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00005851u, 0x0004003du, 0x00000011u, 0x00005855u, 0x00005854u, 0x00040071u, 0x00000006u, + 0x00005856u, 0x00005855u, 0x00060050u, 0x00000311u, 0x0000585eu, 0x00005856u, 0x00005856u, 0x00005856u, + 0x000500c2u, 0x00000311u, 0x0000585fu, 0x0000585eu, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x00005861u, + 0x0000585fu, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00005864u, 0x00005861u, 0x0000c237u, 0x000500c2u, + 0x00000311u, 0x00005867u, 0x00005861u, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00005868u, 0x00005864u, + 0x00005867u, 0x000500c7u, 0x00000006u, 0x0000586au, 0x00005856u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x0000586bu, 0x0000586au, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x0000586du, 0x00005868u, 0x0004007cu, + 0x000004bbu, 0x0000586eu, 0x0000586du, 0x00040071u, 0x00000011u, 0x00005870u, 0x0000586bu, 0x0004007cu, + 0x00000012u, 0x00005871u, 0x00005870u, 0x00050051u, 0x00000012u, 0x00005872u, 0x0000586eu, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00005873u, 0x0000586eu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00005874u, + 0x0000586eu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005875u, 0x00005872u, 0x00005873u, 0x00005874u, + 0x00005871u, 0x000200f9u, 0x00004c67u, 0x000200f8u, 0x00004c67u, 0x000700f5u, 0x00000013u, 0x00008721u, + 0x00008663u, 0x00004c5du, 0x00005875u, 0x00004c5fu, 0x000200f9u, 0x00004c89u, 0x000200f8u, 0x00004c26u, + 0x0004007cu, 0x000000b4u, 0x00004c28u, 0x00008294u, 0x00050051u, 0x00000006u, 0x000056e0u, 0x00004c28u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000056e1u, 0x0000496cu, 0x000056e0u, 0x00050080u, 0x00000006u, + 0x000056e2u, 0x0000496au, 0x000056e1u, 0x00050051u, 0x00000006u, 0x000056e4u, 0x00004c28u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x000056e6u, 0x000056e2u, 0x000056e4u, 0x000500c7u, 0x00000006u, 0x000056e8u, + 0x000056e6u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x000056ecu, 0x000056e0u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000056edu, 0x000056ecu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000056efu, 0x000056e8u, + 0x000056edu, 0x000500c6u, 0x00000006u, 0x000056f1u, 0x000056efu, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000056f4u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000056f1u, 0x0004003du, 0x0000000fu, + 0x000056f5u, 0x000056f4u, 0x00040071u, 0x00000006u, 0x000056f6u, 0x000056f5u, 0x00040071u, 0x00000011u, + 0x000056f8u, 0x000056f6u, 0x0004007cu, 0x00000012u, 0x000056f9u, 0x000056f8u, 0x00070050u, 0x00000013u, + 0x000056fau, 0x000056f9u, 0x000056f9u, 0x000056f9u, 0x000056f9u, 0x000300f7u, 0x00004c3cu, 0x00000000u, + 0x000400fau, 0x00002327u, 0x00004c2du, 0x00004c3cu, 0x000200f8u, 0x00004c2du, 0x00050050u, 0x000000f2u, + 0x00004c30u, 0x00008275u, 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004c31u, 0x00004c30u, 0x00050051u, + 0x00000006u, 0x00005705u, 0x00004c31u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005706u, 0x0000496cu, + 0x00005705u, 0x00050080u, 0x00000006u, 0x00005707u, 0x0000496au, 0x00005706u, 0x00050051u, 0x00000006u, + 0x00005709u, 0x00004c31u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000570bu, 0x00005707u, 0x00005709u, + 0x000500c7u, 0x00000006u, 0x0000570du, 0x0000570bu, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x00005711u, + 0x00005705u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005712u, 0x00005711u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00005714u, 0x0000570du, 0x00005712u, 0x000500c6u, 0x00000006u, 0x00005716u, 0x00005714u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00005719u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00005716u, 0x0004003du, 0x0000000fu, 0x0000571au, 0x00005719u, 0x00040071u, 0x00000006u, 0x0000571bu, + 0x0000571au, 0x00040071u, 0x00000011u, 0x0000571du, 0x0000571bu, 0x0004007cu, 0x00000012u, 0x0000571eu, + 0x0000571du, 0x00070050u, 0x00000013u, 0x0000571fu, 0x0000571eu, 0x0000571eu, 0x0000571eu, 0x0000571eu, + 0x00050050u, 0x000000f2u, 0x00004c37u, 0x0000826du, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004c38u, + 0x00004c37u, 0x00050051u, 0x00000006u, 0x0000572au, 0x00004c38u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000572bu, 0x0000496cu, 0x0000572au, 0x00050080u, 0x00000006u, 0x0000572cu, 0x0000496au, 0x0000572bu, + 0x00050051u, 0x00000006u, 0x0000572eu, 0x00004c38u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005730u, + 0x0000572cu, 0x0000572eu, 0x000500c7u, 0x00000006u, 0x00005732u, 0x00005730u, 0x00000e83u, 0x000500c7u, + 0x00000006u, 0x00005736u, 0x0000572au, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005737u, 0x00005736u, + 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005739u, 0x00005732u, 0x00005737u, 0x000500c6u, 0x00000006u, + 0x0000573bu, 0x00005739u, 0x00000469u, 0x00080041u, 0x00000676u, 0x0000573eu, 0x00000e9du, 0x00000225u, + 0x00002310u, 0x00000225u, 0x0000573bu, 0x0004003du, 0x0000000fu, 0x0000573fu, 0x0000573eu, 0x00040071u, + 0x00000006u, 0x00005740u, 0x0000573fu, 0x00040071u, 0x00000011u, 0x00005742u, 0x00005740u, 0x0004007cu, + 0x00000012u, 0x00005743u, 0x00005742u, 0x00070050u, 0x00000013u, 0x00005744u, 0x00005743u, 0x00005743u, + 0x00005743u, 0x00005743u, 0x000200f9u, 0x00004c3cu, 0x000200f8u, 0x00004c3cu, 0x000700f5u, 0x00000013u, + 0x00008628u, 0x0000856eu, 0x00004c26u, 0x00005744u, 0x00004c2du, 0x000700f5u, 0x00000013u, 0x00008530u, + 0x00008473u, 0x00004c26u, 0x0000571fu, 0x00004c2du, 0x000300f7u, 0x00004c46u, 0x00000000u, 0x000400fau, + 0x00004b32u, 0x00004c3eu, 0x00004c46u, 0x000200f8u, 0x00004c3eu, 0x00050050u, 0x000000f2u, 0x00004c41u, + 0x00008275u, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004c42u, 0x00004c41u, 0x00050051u, 0x00000006u, + 0x0000574fu, 0x00004c42u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005750u, 0x0000496cu, 0x0000574fu, + 0x00050080u, 0x00000006u, 0x00005751u, 0x0000496au, 0x00005750u, 0x00050051u, 0x00000006u, 0x00005753u, + 0x00004c42u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005755u, 0x00005751u, 0x00005753u, 0x000500c7u, + 0x00000006u, 0x00005757u, 0x00005755u, 0x00000e83u, 0x000500c7u, 0x00000006u, 0x0000575bu, 0x0000574fu, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000575cu, 0x0000575bu, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x0000575eu, 0x00005757u, 0x0000575cu, 0x000500c6u, 0x00000006u, 0x00005760u, 0x0000575eu, 0x00000469u, + 0x00080041u, 0x00000676u, 0x00005763u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005760u, + 0x0004003du, 0x0000000fu, 0x00005764u, 0x00005763u, 0x00040071u, 0x00000006u, 0x00005765u, 0x00005764u, + 0x00040071u, 0x00000011u, 0x00005767u, 0x00005765u, 0x0004007cu, 0x00000012u, 0x00005768u, 0x00005767u, + 0x00070050u, 0x00000013u, 0x00005769u, 0x00005768u, 0x00005768u, 0x00005768u, 0x00005768u, 0x000200f9u, + 0x00004c46u, 0x000200f8u, 0x00004c46u, 0x000700f5u, 0x00000013u, 0x0000871fu, 0x00008663u, 0x00004c3cu, + 0x00005769u, 0x00004c3eu, 0x000200f9u, 0x00004c89u, 0x000200f8u, 0x00004c05u, 0x0004007cu, 0x000000b4u, + 0x00004c07u, 0x00008294u, 0x00050051u, 0x00000006u, 0x00005611u, 0x00004c07u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005612u, 0x0000496cu, 0x00005611u, 0x00050080u, 0x00000006u, 0x00005613u, 0x0000496au, + 0x00005612u, 0x00050051u, 0x00000006u, 0x00005615u, 0x00004c07u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00005616u, 0x00005615u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x00005618u, 0x00005613u, 0x00005616u, + 0x000500c7u, 0x00000006u, 0x0000561au, 0x00005618u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x0000561du, + 0x00005615u, 0x000500c7u, 0x00000006u, 0x0000561eu, 0x0000561du, 0x00000461u, 0x00050084u, 0x00000006u, + 0x0000561fu, 0x0000561eu, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00005623u, 0x00005611u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00005624u, 0x00005623u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005626u, + 0x0000561au, 0x00005624u, 0x000500c6u, 0x00000006u, 0x00005628u, 0x00005626u, 0x00000469u, 0x00080041u, + 0x00000676u, 0x0000562bu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005628u, 0x0004003du, + 0x0000000fu, 0x0000562cu, 0x0000562bu, 0x00040071u, 0x00000006u, 0x0000562du, 0x0000562cu, 0x000500c2u, + 0x00000006u, 0x00005630u, 0x0000562du, 0x0000561fu, 0x000500c7u, 0x00000006u, 0x00005631u, 0x00005630u, + 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00005633u, 0x00005631u, 0x00000238u, 0x000500c5u, 0x00000006u, + 0x00005635u, 0x00005631u, 0x00005633u, 0x00040071u, 0x00000011u, 0x00005637u, 0x00005635u, 0x0004007cu, + 0x00000012u, 0x00005638u, 0x00005637u, 0x00070050u, 0x00000013u, 0x00005639u, 0x00005638u, 0x00005638u, + 0x00005638u, 0x00005638u, 0x000300f7u, 0x00004c1bu, 0x00000000u, 0x000400fau, 0x00002327u, 0x00004c0cu, + 0x00004c1bu, 0x000200f8u, 0x00004c0cu, 0x00050050u, 0x000000f2u, 0x00004c0fu, 0x00008275u, 0x00004b26u, + 0x0004007cu, 0x000000b4u, 0x00004c10u, 0x00004c0fu, 0x00050051u, 0x00000006u, 0x00005645u, 0x00004c10u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005646u, 0x0000496cu, 0x00005645u, 0x00050080u, 0x00000006u, + 0x00005647u, 0x0000496au, 0x00005646u, 0x00050051u, 0x00000006u, 0x00005649u, 0x00004c10u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000564au, 0x00005649u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x0000564cu, + 0x00005647u, 0x0000564au, 0x000500c7u, 0x00000006u, 0x0000564eu, 0x0000564cu, 0x00000e83u, 0x000400c8u, + 0x00000006u, 0x00005651u, 0x00005649u, 0x000500c7u, 0x00000006u, 0x00005652u, 0x00005651u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00005653u, 0x00005652u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x00005657u, + 0x00005645u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005658u, 0x00005657u, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x0000565au, 0x0000564eu, 0x00005658u, 0x000500c6u, 0x00000006u, 0x0000565cu, 0x0000565au, + 0x00000469u, 0x00080041u, 0x00000676u, 0x0000565fu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x0000565cu, 0x0004003du, 0x0000000fu, 0x00005660u, 0x0000565fu, 0x00040071u, 0x00000006u, 0x00005661u, + 0x00005660u, 0x000500c2u, 0x00000006u, 0x00005664u, 0x00005661u, 0x00005653u, 0x000500c7u, 0x00000006u, + 0x00005665u, 0x00005664u, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00005667u, 0x00005665u, 0x00000238u, + 0x000500c5u, 0x00000006u, 0x00005669u, 0x00005665u, 0x00005667u, 0x00040071u, 0x00000011u, 0x0000566bu, + 0x00005669u, 0x0004007cu, 0x00000012u, 0x0000566cu, 0x0000566bu, 0x00070050u, 0x00000013u, 0x0000566du, + 0x0000566cu, 0x0000566cu, 0x0000566cu, 0x0000566cu, 0x00050050u, 0x000000f2u, 0x00004c16u, 0x0000826du, + 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004c17u, 0x00004c16u, 0x00050051u, 0x00000006u, 0x00005679u, + 0x00004c17u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000567au, 0x0000496cu, 0x00005679u, 0x00050080u, + 0x00000006u, 0x0000567bu, 0x0000496au, 0x0000567au, 0x00050051u, 0x00000006u, 0x0000567du, 0x00004c17u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000567eu, 0x0000567du, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00005680u, 0x0000567bu, 0x0000567eu, 0x000500c7u, 0x00000006u, 0x00005682u, 0x00005680u, 0x00000e83u, + 0x000400c8u, 0x00000006u, 0x00005685u, 0x0000567du, 0x000500c7u, 0x00000006u, 0x00005686u, 0x00005685u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005687u, 0x00005686u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x0000568bu, 0x00005679u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000568cu, 0x0000568bu, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x0000568eu, 0x00005682u, 0x0000568cu, 0x000500c6u, 0x00000006u, 0x00005690u, + 0x0000568eu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005693u, 0x00000e9du, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00005690u, 0x0004003du, 0x0000000fu, 0x00005694u, 0x00005693u, 0x00040071u, 0x00000006u, + 0x00005695u, 0x00005694u, 0x000500c2u, 0x00000006u, 0x00005698u, 0x00005695u, 0x00005687u, 0x000500c7u, + 0x00000006u, 0x00005699u, 0x00005698u, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x0000569bu, 0x00005699u, + 0x00000238u, 0x000500c5u, 0x00000006u, 0x0000569du, 0x00005699u, 0x0000569bu, 0x00040071u, 0x00000011u, + 0x0000569fu, 0x0000569du, 0x0004007cu, 0x00000012u, 0x000056a0u, 0x0000569fu, 0x00070050u, 0x00000013u, + 0x000056a1u, 0x000056a0u, 0x000056a0u, 0x000056a0u, 0x000056a0u, 0x000200f9u, 0x00004c1bu, 0x000200f8u, + 0x00004c1bu, 0x000700f5u, 0x00000013u, 0x00008626u, 0x0000856eu, 0x00004c05u, 0x000056a1u, 0x00004c0cu, + 0x000700f5u, 0x00000013u, 0x0000852eu, 0x00008473u, 0x00004c05u, 0x0000566du, 0x00004c0cu, 0x000300f7u, + 0x00004c25u, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004c1du, 0x00004c25u, 0x000200f8u, 0x00004c1du, + 0x00050050u, 0x000000f2u, 0x00004c20u, 0x00008275u, 0x00004b28u, 0x0004007cu, 0x000000b4u, 0x00004c21u, + 0x00004c20u, 0x00050051u, 0x00000006u, 0x000056adu, 0x00004c21u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000056aeu, 0x0000496cu, 0x000056adu, 0x00050080u, 0x00000006u, 0x000056afu, 0x0000496au, 0x000056aeu, + 0x00050051u, 0x00000006u, 0x000056b1u, 0x00004c21u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000056b2u, + 0x000056b1u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000056b4u, 0x000056afu, 0x000056b2u, 0x000500c7u, + 0x00000006u, 0x000056b6u, 0x000056b4u, 0x00000e83u, 0x000400c8u, 0x00000006u, 0x000056b9u, 0x000056b1u, + 0x000500c7u, 0x00000006u, 0x000056bau, 0x000056b9u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000056bbu, + 0x000056bau, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000056bfu, 0x000056adu, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000056c0u, 0x000056bfu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000056c2u, 0x000056b6u, + 0x000056c0u, 0x000500c6u, 0x00000006u, 0x000056c4u, 0x000056c2u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000056c7u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000056c4u, 0x0004003du, 0x0000000fu, + 0x000056c8u, 0x000056c7u, 0x00040071u, 0x00000006u, 0x000056c9u, 0x000056c8u, 0x000500c2u, 0x00000006u, + 0x000056ccu, 0x000056c9u, 0x000056bbu, 0x000500c7u, 0x00000006u, 0x000056cdu, 0x000056ccu, 0x00000ea6u, + 0x000500c4u, 0x00000006u, 0x000056cfu, 0x000056cdu, 0x00000238u, 0x000500c5u, 0x00000006u, 0x000056d1u, + 0x000056cdu, 0x000056cfu, 0x00040071u, 0x00000011u, 0x000056d3u, 0x000056d1u, 0x0004007cu, 0x00000012u, + 0x000056d4u, 0x000056d3u, 0x00070050u, 0x00000013u, 0x000056d5u, 0x000056d4u, 0x000056d4u, 0x000056d4u, + 0x000056d4u, 0x000200f9u, 0x00004c25u, 0x000200f8u, 0x00004c25u, 0x000700f5u, 0x00000013u, 0x0000871du, + 0x00008663u, 0x00004c1bu, 0x000056d5u, 0x00004c1du, 0x000200f9u, 0x00004c89u, 0x000200f8u, 0x00004c89u, + 0x000d00f5u, 0x00000013u, 0x0000871cu, 0x00008663u, 0x00004c00u, 0x0000871du, 0x00004c25u, 0x0000871fu, + 0x00004c46u, 0x00008721u, 0x00004c67u, 0x00008723u, 0x00004c88u, 0x000d00f5u, 0x00000013u, 0x00008624u, + 0x0000856eu, 0x00004c00u, 0x00008626u, 0x00004c25u, 0x00008628u, 0x00004c46u, 0x0000862au, 0x00004c67u, + 0x0000862cu, 0x00004c88u, 0x000d00f5u, 0x00000013u, 0x0000852cu, 0x00008473u, 0x00004c00u, 0x0000852eu, + 0x00004c25u, 0x00008530u, 0x00004c46u, 0x00008532u, 0x00004c67u, 0x00008534u, 0x00004c88u, 0x000d00f5u, + 0x00000013u, 0x000083bfu, 0x00008307u, 0x00004c00u, 0x00005639u, 0x00004c25u, 0x000056fau, 0x00004c46u, + 0x000057acu, 0x00004c67u, 0x000058b0u, 0x00004c88u, 0x000200f9u, 0x00004e20u, 0x000200f8u, 0x00004e20u, + 0x000f00f5u, 0x00000013u, 0x0000871bu, 0x00008663u, 0x00004bfbu, 0x0000871cu, 0x00004c89u, 0x00008725u, + 0x00004cb7u, 0x00008726u, 0x00004d2cu, 0x0000872du, 0x00004db6u, 0x00008736u, 0x00004e1fu, 0x000f00f5u, + 0x00000013u, 0x00008623u, 0x0000856eu, 0x00004bfbu, 0x00008624u, 0x00004c89u, 0x0000862du, 0x00004cb7u, + 0x0000862eu, 0x00004d2cu, 0x00008635u, 0x00004db6u, 0x0000863eu, 0x00004e1fu, 0x000f00f5u, 0x00000013u, + 0x0000852bu, 0x00008473u, 0x00004bfbu, 0x0000852cu, 0x00004c89u, 0x00008535u, 0x00004cb7u, 0x00008536u, + 0x00004d2cu, 0x0000853du, 0x00004db6u, 0x00008546u, 0x00004e1fu, 0x000f00f5u, 0x00000013u, 0x000083beu, + 0x00008307u, 0x00004bfbu, 0x000083bfu, 0x00004c89u, 0x000059b3u, 0x00004cb7u, 0x000083c9u, 0x00004d2cu, + 0x000083d0u, 0x00004db6u, 0x000083d9u, 0x00004e1fu, 0x000200f9u, 0x00004e21u, 0x000200f8u, 0x00004b51u, + 0x000400a8u, 0x00000069u, 0x00004b53u, 0x00002327u, 0x000300f7u, 0x00004b5au, 0x00000000u, 0x000400fau, + 0x00004b53u, 0x00004b54u, 0x00004b5au, 0x000200f8u, 0x00004b54u, 0x00050050u, 0x000000f2u, 0x00004b57u, + 0x0000826du, 0x00004b26u, 0x000200f9u, 0x00004b5au, 0x000200f8u, 0x00004b5au, 0x000700f5u, 0x000000f2u, + 0x000082bau, 0x00008294u, 0x00004b51u, 0x00004b57u, 0x00004b54u, 0x000600a9u, 0x00000008u, 0x0000c276u, + 0x00004b53u, 0x00004b26u, 0x00004b28u, 0x000600a9u, 0x00000008u, 0x0000c277u, 0x00004b53u, 0x0000826du, + 0x00008275u, 0x000300f7u, 0x00004bfau, 0x00000000u, 0x000b00fbu, 0x00004b3bu, 0x00004bfau, 0x00000000u, + 0x00004b5fu, 0x00000002u, 0x00004b5fu, 0x00000003u, 0x00004b5fu, 0x00000004u, 0x00004b5fu, 0x000200f8u, + 0x00004b5fu, 0x000600a9u, 0x00000008u, 0x00004b63u, 0x00004b34u, 0x00000232u, 0x0000022fu, 0x0004007cu, + 0x00000006u, 0x00004b64u, 0x00004b63u, 0x00040071u, 0x00000006u, 0x00004b67u, 0x00004970u, 0x0004007cu, + 0x00000008u, 0x00004b68u, 0x00004b67u, 0x000300f7u, 0x00004bf9u, 0x00000000u, 0x000700fbu, 0x00004b68u, + 0x00004b69u, 0x00000000u, 0x00004b95u, 0x00000001u, 0x00004bcdu, 0x000200f8u, 0x00004bcdu, 0x0004007cu, + 0x000000b4u, 0x00004bcfu, 0x000082bau, 0x000600a9u, 0x00000008u, 0x00004bd1u, 0x00004b3eu, 0x00000235u, + 0x00000225u, 0x0004007cu, 0x00000006u, 0x00004bd2u, 0x00004bd1u, 0x00050051u, 0x00000006u, 0x00005460u, + 0x00004bcfu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005461u, 0x0000496cu, 0x00005460u, 0x00050080u, + 0x00000006u, 0x00005462u, 0x0000496au, 0x00005461u, 0x00050051u, 0x00000006u, 0x00005464u, 0x00004bcfu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005466u, 0x00005462u, 0x00005464u, 0x000500c7u, 0x00000006u, + 0x00005468u, 0x00005466u, 0x00000f3bu, 0x000500c7u, 0x00000006u, 0x0000546cu, 0x00005460u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x0000546du, 0x0000546cu, 0x00000232u, 0x000500c6u, 0x00000006u, 0x0000546fu, + 0x00005468u, 0x0000546du, 0x000500c6u, 0x00000006u, 0x00005471u, 0x0000546fu, 0x00000469u, 0x00080041u, + 0x00000676u, 0x00005474u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005471u, 0x0004003du, + 0x0000000fu, 0x00005475u, 0x00005474u, 0x00040071u, 0x00000006u, 0x00005476u, 0x00005475u, 0x000500c4u, + 0x00000006u, 0x00005478u, 0x00005476u, 0x00000232u, 0x00050080u, 0x00000006u, 0x0000547au, 0x00005478u, + 0x00004bd2u, 0x000500c6u, 0x00000006u, 0x0000547du, 0x0000547au, 0x00004b64u, 0x000500c5u, 0x00000006u, + 0x00005480u, 0x00000f6cu, 0x0000547du, 0x00080041u, 0x00000697u, 0x00005481u, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x00005480u, 0x0004003du, 0x00000011u, 0x00005482u, 0x00005481u, 0x00040071u, + 0x00000006u, 0x00005483u, 0x00005482u, 0x000300f7u, 0x0000548bu, 0x00000000u, 0x000400fau, 0x00002324u, + 0x00005485u, 0x00005488u, 0x000200f8u, 0x00005488u, 0x00060050u, 0x00000311u, 0x000054a7u, 0x00005483u, + 0x00005483u, 0x00005483u, 0x000500c2u, 0x00000311u, 0x000054a8u, 0x000054a7u, 0x00000e44u, 0x000500c7u, + 0x00000311u, 0x000054aau, 0x000054a8u, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x000054adu, 0x000054aau, + 0x0000c237u, 0x000500c2u, 0x00000311u, 0x000054b0u, 0x000054aau, 0x0000c238u, 0x000500c5u, 0x00000311u, + 0x000054b1u, 0x000054adu, 0x000054b0u, 0x000500c7u, 0x00000006u, 0x000054b3u, 0x00005483u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x000054b4u, 0x000054b3u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000054b6u, + 0x000054b1u, 0x0004007cu, 0x000004bbu, 0x000054b7u, 0x000054b6u, 0x00040071u, 0x00000011u, 0x000054b9u, + 0x000054b4u, 0x0004007cu, 0x00000012u, 0x000054bau, 0x000054b9u, 0x00050051u, 0x00000012u, 0x000054bbu, + 0x000054b7u, 0x00000000u, 0x00050051u, 0x00000012u, 0x000054bcu, 0x000054b7u, 0x00000001u, 0x00050051u, + 0x00000012u, 0x000054bdu, 0x000054b7u, 0x00000002u, 0x00070050u, 0x00000013u, 0x000054beu, 0x000054bbu, + 0x000054bcu, 0x000054bdu, 0x000054bau, 0x000200f9u, 0x0000548bu, 0x000200f8u, 0x00005485u, 0x000500c2u, + 0x00000006u, 0x00005492u, 0x00005483u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005494u, 0x00005483u, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005496u, 0x00005492u, 0x0004007cu, 0x00000012u, 0x00005497u, + 0x00005496u, 0x00040071u, 0x00000011u, 0x0000549fu, 0x00005494u, 0x0004007cu, 0x00000012u, 0x000054a0u, + 0x0000549fu, 0x00070050u, 0x00000013u, 0x000054a1u, 0x00005497u, 0x00005497u, 0x00005497u, 0x000054a0u, + 0x000200f9u, 0x0000548bu, 0x000200f8u, 0x0000548bu, 0x000700f5u, 0x00000013u, 0x000082bbu, 0x000054a1u, + 0x00005485u, 0x000054beu, 0x00005488u, 0x000300f7u, 0x00004becu, 0x00000000u, 0x000400fau, 0x00002366u, + 0x00004bd9u, 0x00004becu, 0x000200f8u, 0x00004bd9u, 0x00050050u, 0x000000f2u, 0x00004bdcu, 0x0000c277u, + 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004bddu, 0x00004bdcu, 0x00050051u, 0x00000006u, 0x000054cdu, + 0x00004bddu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000054ceu, 0x0000496cu, 0x000054cdu, 0x00050080u, + 0x00000006u, 0x000054cfu, 0x0000496au, 0x000054ceu, 0x00050051u, 0x00000006u, 0x000054d1u, 0x00004bddu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x000054d3u, 0x000054cfu, 0x000054d1u, 0x000500c7u, 0x00000006u, + 0x000054d5u, 0x000054d3u, 0x00000f3bu, 0x000500c7u, 0x00000006u, 0x000054d9u, 0x000054cdu, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x000054dau, 0x000054d9u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000054dcu, + 0x000054d5u, 0x000054dau, 0x000500c6u, 0x00000006u, 0x000054deu, 0x000054dcu, 0x00000469u, 0x00080041u, + 0x00000676u, 0x000054e1u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000054deu, 0x0004003du, + 0x0000000fu, 0x000054e2u, 0x000054e1u, 0x00040071u, 0x00000006u, 0x000054e3u, 0x000054e2u, 0x000500c4u, + 0x00000006u, 0x000054e5u, 0x000054e3u, 0x00000232u, 0x00050080u, 0x00000006u, 0x000054e7u, 0x000054e5u, + 0x00000461u, 0x000500c6u, 0x00000006u, 0x000054eau, 0x000054e7u, 0x00004b64u, 0x000500c5u, 0x00000006u, + 0x000054edu, 0x00000f6cu, 0x000054eau, 0x00080041u, 0x00000697u, 0x000054eeu, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x000054edu, 0x0004003du, 0x00000011u, 0x000054efu, 0x000054eeu, 0x00040071u, + 0x00000006u, 0x000054f0u, 0x000054efu, 0x000300f7u, 0x000054f8u, 0x00000000u, 0x000400fau, 0x00002324u, + 0x000054f2u, 0x000054f5u, 0x000200f8u, 0x000054f5u, 0x00060050u, 0x00000311u, 0x00005514u, 0x000054f0u, + 0x000054f0u, 0x000054f0u, 0x000500c2u, 0x00000311u, 0x00005515u, 0x00005514u, 0x00000e44u, 0x000500c7u, + 0x00000311u, 0x00005517u, 0x00005515u, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x0000551au, 0x00005517u, + 0x0000c237u, 0x000500c2u, 0x00000311u, 0x0000551du, 0x00005517u, 0x0000c238u, 0x000500c5u, 0x00000311u, + 0x0000551eu, 0x0000551au, 0x0000551du, 0x000500c7u, 0x00000006u, 0x00005520u, 0x000054f0u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00005521u, 0x00005520u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00005523u, + 0x0000551eu, 0x0004007cu, 0x000004bbu, 0x00005524u, 0x00005523u, 0x00040071u, 0x00000011u, 0x00005526u, + 0x00005521u, 0x0004007cu, 0x00000012u, 0x00005527u, 0x00005526u, 0x00050051u, 0x00000012u, 0x00005528u, + 0x00005524u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00005529u, 0x00005524u, 0x00000001u, 0x00050051u, + 0x00000012u, 0x0000552au, 0x00005524u, 0x00000002u, 0x00070050u, 0x00000013u, 0x0000552bu, 0x00005528u, + 0x00005529u, 0x0000552au, 0x00005527u, 0x000200f9u, 0x000054f8u, 0x000200f8u, 0x000054f2u, 0x000500c2u, + 0x00000006u, 0x000054ffu, 0x000054f0u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005501u, 0x000054f0u, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005503u, 0x000054ffu, 0x0004007cu, 0x00000012u, 0x00005504u, + 0x00005503u, 0x00040071u, 0x00000011u, 0x0000550cu, 0x00005501u, 0x0004007cu, 0x00000012u, 0x0000550du, + 0x0000550cu, 0x00070050u, 0x00000013u, 0x0000550eu, 0x00005504u, 0x00005504u, 0x00005504u, 0x0000550du, + 0x000200f9u, 0x000054f8u, 0x000200f8u, 0x000054f8u, 0x000700f5u, 0x00000013u, 0x000082c2u, 0x0000550eu, + 0x000054f2u, 0x0000552bu, 0x000054f5u, 0x00050050u, 0x000000f2u, 0x00004be5u, 0x0000826du, 0x0000c276u, + 0x0004007cu, 0x000000b4u, 0x00004be6u, 0x00004be5u, 0x00050051u, 0x00000006u, 0x0000553au, 0x00004be6u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000553bu, 0x0000496cu, 0x0000553au, 0x00050080u, 0x00000006u, + 0x0000553cu, 0x0000496au, 0x0000553bu, 0x00050051u, 0x00000006u, 0x0000553eu, 0x00004be6u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005540u, 0x0000553cu, 0x0000553eu, 0x000500c7u, 0x00000006u, 0x00005542u, + 0x00005540u, 0x00000f3bu, 0x000500c7u, 0x00000006u, 0x00005546u, 0x0000553au, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x00005547u, 0x00005546u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x00005549u, 0x00005542u, + 0x00005547u, 0x000500c6u, 0x00000006u, 0x0000554bu, 0x00005549u, 0x00000469u, 0x00080041u, 0x00000676u, + 0x0000554eu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x0000554bu, 0x0004003du, 0x0000000fu, + 0x0000554fu, 0x0000554eu, 0x00040071u, 0x00000006u, 0x00005550u, 0x0000554fu, 0x000500c4u, 0x00000006u, + 0x00005552u, 0x00005550u, 0x00000232u, 0x00050080u, 0x00000006u, 0x00005554u, 0x00005552u, 0x0000038bu, + 0x000500c6u, 0x00000006u, 0x00005557u, 0x00005554u, 0x00004b64u, 0x000500c5u, 0x00000006u, 0x0000555au, + 0x00000f6cu, 0x00005557u, 0x00080041u, 0x00000697u, 0x0000555bu, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x0000555au, 0x0004003du, 0x00000011u, 0x0000555cu, 0x0000555bu, 0x00040071u, 0x00000006u, + 0x0000555du, 0x0000555cu, 0x000300f7u, 0x00005565u, 0x00000000u, 0x000400fau, 0x00002324u, 0x0000555fu, + 0x00005562u, 0x000200f8u, 0x00005562u, 0x00060050u, 0x00000311u, 0x00005581u, 0x0000555du, 0x0000555du, + 0x0000555du, 0x000500c2u, 0x00000311u, 0x00005582u, 0x00005581u, 0x00000e44u, 0x000500c7u, 0x00000311u, + 0x00005584u, 0x00005582u, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00005587u, 0x00005584u, 0x0000c237u, + 0x000500c2u, 0x00000311u, 0x0000558au, 0x00005584u, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x0000558bu, + 0x00005587u, 0x0000558au, 0x000500c7u, 0x00000006u, 0x0000558du, 0x0000555du, 0x00000461u, 0x00050084u, + 0x00000006u, 0x0000558eu, 0x0000558du, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00005590u, 0x0000558bu, + 0x0004007cu, 0x000004bbu, 0x00005591u, 0x00005590u, 0x00040071u, 0x00000011u, 0x00005593u, 0x0000558eu, + 0x0004007cu, 0x00000012u, 0x00005594u, 0x00005593u, 0x00050051u, 0x00000012u, 0x00005595u, 0x00005591u, + 0x00000000u, 0x00050051u, 0x00000012u, 0x00005596u, 0x00005591u, 0x00000001u, 0x00050051u, 0x00000012u, + 0x00005597u, 0x00005591u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005598u, 0x00005595u, 0x00005596u, + 0x00005597u, 0x00005594u, 0x000200f9u, 0x00005565u, 0x000200f8u, 0x0000555fu, 0x000500c2u, 0x00000006u, + 0x0000556cu, 0x0000555du, 0x00000262u, 0x000500c7u, 0x00000006u, 0x0000556eu, 0x0000555du, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00005570u, 0x0000556cu, 0x0004007cu, 0x00000012u, 0x00005571u, 0x00005570u, + 0x00040071u, 0x00000011u, 0x00005579u, 0x0000556eu, 0x0004007cu, 0x00000012u, 0x0000557au, 0x00005579u, + 0x00070050u, 0x00000013u, 0x0000557bu, 0x00005571u, 0x00005571u, 0x00005571u, 0x0000557au, 0x000200f9u, + 0x00005565u, 0x000200f8u, 0x00005565u, 0x000700f5u, 0x00000013u, 0x000082c7u, 0x0000557bu, 0x0000555fu, + 0x00005598u, 0x00005562u, 0x000200f9u, 0x00004becu, 0x000200f8u, 0x00004becu, 0x000700f5u, 0x00000013u, + 0x00008620u, 0x0000856eu, 0x0000548bu, 0x000082c7u, 0x00005565u, 0x000700f5u, 0x00000013u, 0x00008527u, + 0x00008473u, 0x0000548bu, 0x000082c2u, 0x00005565u, 0x000300f7u, 0x00004bf8u, 0x00000000u, 0x000400fau, + 0x00004b32u, 0x00004beeu, 0x00004bf8u, 0x000200f8u, 0x00004beeu, 0x00050050u, 0x000000f2u, 0x00004bf1u, + 0x0000c277u, 0x0000c276u, 0x0004007cu, 0x000000b4u, 0x00004bf2u, 0x00004bf1u, 0x00050051u, 0x00000006u, + 0x000055a7u, 0x00004bf2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000055a8u, 0x0000496cu, 0x000055a7u, + 0x00050080u, 0x00000006u, 0x000055a9u, 0x0000496au, 0x000055a8u, 0x00050051u, 0x00000006u, 0x000055abu, + 0x00004bf2u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000055adu, 0x000055a9u, 0x000055abu, 0x000500c7u, + 0x00000006u, 0x000055afu, 0x000055adu, 0x00000f3bu, 0x000500c7u, 0x00000006u, 0x000055b3u, 0x000055a7u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x000055b4u, 0x000055b3u, 0x00000232u, 0x000500c6u, 0x00000006u, + 0x000055b6u, 0x000055afu, 0x000055b4u, 0x000500c6u, 0x00000006u, 0x000055b8u, 0x000055b6u, 0x00000469u, + 0x00080041u, 0x00000676u, 0x000055bbu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000055b8u, + 0x0004003du, 0x0000000fu, 0x000055bcu, 0x000055bbu, 0x00040071u, 0x00000006u, 0x000055bdu, 0x000055bcu, + 0x000500c4u, 0x00000006u, 0x000055bfu, 0x000055bdu, 0x00000232u, 0x00050080u, 0x00000006u, 0x000055c1u, + 0x000055bfu, 0x00000469u, 0x000500c6u, 0x00000006u, 0x000055c4u, 0x000055c1u, 0x00004b64u, 0x000500c5u, + 0x00000006u, 0x000055c7u, 0x00000f6cu, 0x000055c4u, 0x00080041u, 0x00000697u, 0x000055c8u, 0x00000f6au, + 0x00000225u, 0x00002310u, 0x00000225u, 0x000055c7u, 0x0004003du, 0x00000011u, 0x000055c9u, 0x000055c8u, + 0x00040071u, 0x00000006u, 0x000055cau, 0x000055c9u, 0x000300f7u, 0x000055d2u, 0x00000000u, 0x000400fau, + 0x00002324u, 0x000055ccu, 0x000055cfu, 0x000200f8u, 0x000055cfu, 0x00060050u, 0x00000311u, 0x000055eeu, + 0x000055cau, 0x000055cau, 0x000055cau, 0x000500c2u, 0x00000311u, 0x000055efu, 0x000055eeu, 0x00000e44u, + 0x000500c7u, 0x00000311u, 0x000055f1u, 0x000055efu, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x000055f4u, + 0x000055f1u, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x000055f7u, 0x000055f1u, 0x0000c238u, 0x000500c5u, + 0x00000311u, 0x000055f8u, 0x000055f4u, 0x000055f7u, 0x000500c7u, 0x00000006u, 0x000055fau, 0x000055cau, + 0x00000461u, 0x00050084u, 0x00000006u, 0x000055fbu, 0x000055fau, 0x000006c8u, 0x00040071u, 0x000004bfu, + 0x000055fdu, 0x000055f8u, 0x0004007cu, 0x000004bbu, 0x000055feu, 0x000055fdu, 0x00040071u, 0x00000011u, + 0x00005600u, 0x000055fbu, 0x0004007cu, 0x00000012u, 0x00005601u, 0x00005600u, 0x00050051u, 0x00000012u, + 0x00005602u, 0x000055feu, 0x00000000u, 0x00050051u, 0x00000012u, 0x00005603u, 0x000055feu, 0x00000001u, + 0x00050051u, 0x00000012u, 0x00005604u, 0x000055feu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005605u, + 0x00005602u, 0x00005603u, 0x00005604u, 0x00005601u, 0x000200f9u, 0x000055d2u, 0x000200f8u, 0x000055ccu, + 0x000500c2u, 0x00000006u, 0x000055d9u, 0x000055cau, 0x00000262u, 0x000500c7u, 0x00000006u, 0x000055dbu, + 0x000055cau, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000055ddu, 0x000055d9u, 0x0004007cu, 0x00000012u, + 0x000055deu, 0x000055ddu, 0x00040071u, 0x00000011u, 0x000055e6u, 0x000055dbu, 0x0004007cu, 0x00000012u, + 0x000055e7u, 0x000055e6u, 0x00070050u, 0x00000013u, 0x000055e8u, 0x000055deu, 0x000055deu, 0x000055deu, + 0x000055e7u, 0x000200f9u, 0x000055d2u, 0x000200f8u, 0x000055d2u, 0x000700f5u, 0x00000013u, 0x000082cdu, + 0x000055e8u, 0x000055ccu, 0x00005605u, 0x000055cfu, 0x000200f9u, 0x00004bf8u, 0x000200f8u, 0x00004bf8u, + 0x000700f5u, 0x00000013u, 0x00008716u, 0x00008663u, 0x00004becu, 0x000082cdu, 0x000055d2u, 0x000200f9u, + 0x00004bf9u, 0x000200f8u, 0x00004b95u, 0x0004007cu, 0x000000b4u, 0x00004b97u, 0x000082bau, 0x00040071u, + 0x00000006u, 0x00004b9au, 0x00004972u, 0x000600a9u, 0x00000008u, 0x00004b9cu, 0x00004b3eu, 0x00000235u, + 0x00000225u, 0x0004007cu, 0x00000006u, 0x00004b9du, 0x00004b9cu, 0x00050051u, 0x00000006u, 0x00005271u, + 0x00004b97u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005272u, 0x0000496cu, 0x00005271u, 0x00050080u, + 0x00000006u, 0x00005273u, 0x0000496au, 0x00005272u, 0x00050051u, 0x00000006u, 0x00005275u, 0x00004b97u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005276u, 0x00005275u, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00005278u, 0x00005273u, 0x00005276u, 0x000500c7u, 0x00000006u, 0x0000527au, 0x00005278u, 0x00000f3bu, + 0x000400c8u, 0x00000006u, 0x0000527du, 0x00005275u, 0x000500c7u, 0x00000006u, 0x0000527eu, 0x0000527du, + 0x00000461u, 0x00050084u, 0x00000006u, 0x0000527fu, 0x0000527eu, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x00005283u, 0x00005271u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005284u, 0x00005283u, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x00005286u, 0x0000527au, 0x00005284u, 0x000500c6u, 0x00000006u, 0x00005288u, + 0x00005286u, 0x00000469u, 0x00080041u, 0x00000676u, 0x0000528bu, 0x00000e9du, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00005288u, 0x0004003du, 0x0000000fu, 0x0000528cu, 0x0000528bu, 0x00040071u, 0x00000006u, + 0x0000528du, 0x0000528cu, 0x000500c2u, 0x00000006u, 0x00005290u, 0x0000528du, 0x0000527fu, 0x000500c7u, + 0x00000006u, 0x00005291u, 0x00005290u, 0x00000ea6u, 0x000500c4u, 0x00000006u, 0x00005293u, 0x00004b9au, + 0x00000238u, 0x000500c5u, 0x00000006u, 0x00005295u, 0x00005291u, 0x00005293u, 0x000500c4u, 0x00000006u, + 0x00005297u, 0x00005295u, 0x00000232u, 0x00050080u, 0x00000006u, 0x00005299u, 0x00005297u, 0x00004b9du, + 0x000500c6u, 0x00000006u, 0x0000529cu, 0x00005299u, 0x00004b64u, 0x000500c5u, 0x00000006u, 0x0000529fu, + 0x00000f6cu, 0x0000529cu, 0x00080041u, 0x00000697u, 0x000052a0u, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x0000529fu, 0x0004003du, 0x00000011u, 0x000052a1u, 0x000052a0u, 0x00040071u, 0x00000006u, + 0x000052a2u, 0x000052a1u, 0x000300f7u, 0x000052aau, 0x00000000u, 0x000400fau, 0x00002324u, 0x000052a4u, + 0x000052a7u, 0x000200f8u, 0x000052a7u, 0x00060050u, 0x00000311u, 0x000052c6u, 0x000052a2u, 0x000052a2u, + 0x000052a2u, 0x000500c2u, 0x00000311u, 0x000052c7u, 0x000052c6u, 0x00000e44u, 0x000500c7u, 0x00000311u, + 0x000052c9u, 0x000052c7u, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x000052ccu, 0x000052c9u, 0x0000c237u, + 0x000500c2u, 0x00000311u, 0x000052cfu, 0x000052c9u, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x000052d0u, + 0x000052ccu, 0x000052cfu, 0x000500c7u, 0x00000006u, 0x000052d2u, 0x000052a2u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x000052d3u, 0x000052d2u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000052d5u, 0x000052d0u, + 0x0004007cu, 0x000004bbu, 0x000052d6u, 0x000052d5u, 0x00040071u, 0x00000011u, 0x000052d8u, 0x000052d3u, + 0x0004007cu, 0x00000012u, 0x000052d9u, 0x000052d8u, 0x00050051u, 0x00000012u, 0x000052dau, 0x000052d6u, + 0x00000000u, 0x00050051u, 0x00000012u, 0x000052dbu, 0x000052d6u, 0x00000001u, 0x00050051u, 0x00000012u, + 0x000052dcu, 0x000052d6u, 0x00000002u, 0x00070050u, 0x00000013u, 0x000052ddu, 0x000052dau, 0x000052dbu, + 0x000052dcu, 0x000052d9u, 0x000200f9u, 0x000052aau, 0x000200f8u, 0x000052a4u, 0x000500c2u, 0x00000006u, + 0x000052b1u, 0x000052a2u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x000052b3u, 0x000052a2u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x000052b5u, 0x000052b1u, 0x0004007cu, 0x00000012u, 0x000052b6u, 0x000052b5u, + 0x00040071u, 0x00000011u, 0x000052beu, 0x000052b3u, 0x0004007cu, 0x00000012u, 0x000052bfu, 0x000052beu, + 0x00070050u, 0x00000013u, 0x000052c0u, 0x000052b6u, 0x000052b6u, 0x000052b6u, 0x000052bfu, 0x000200f9u, + 0x000052aau, 0x000200f8u, 0x000052aau, 0x000700f5u, 0x00000013u, 0x000082ceu, 0x000052c0u, 0x000052a4u, + 0x000052ddu, 0x000052a7u, 0x000300f7u, 0x00004bbdu, 0x00000000u, 0x000400fau, 0x00002366u, 0x00004ba4u, + 0x00004bbdu, 0x000200f8u, 0x00004ba4u, 0x00050050u, 0x000000f2u, 0x00004ba7u, 0x0000c277u, 0x00004b26u, + 0x0004007cu, 0x000000b4u, 0x00004ba8u, 0x00004ba7u, 0x00050051u, 0x00000006u, 0x000052edu, 0x00004ba8u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000052eeu, 0x0000496cu, 0x000052edu, 0x00050080u, 0x00000006u, + 0x000052efu, 0x0000496au, 0x000052eeu, 0x00050051u, 0x00000006u, 0x000052f1u, 0x00004ba8u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000052f2u, 0x000052f1u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000052f4u, + 0x000052efu, 0x000052f2u, 0x000500c7u, 0x00000006u, 0x000052f6u, 0x000052f4u, 0x00000f3bu, 0x000400c8u, + 0x00000006u, 0x000052f9u, 0x000052f1u, 0x000500c7u, 0x00000006u, 0x000052fau, 0x000052f9u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x000052fbu, 0x000052fau, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000052ffu, + 0x000052edu, 0x00000461u, 0x000500c4u, 0x00000006u, 0x00005300u, 0x000052ffu, 0x00000232u, 0x000500c6u, + 0x00000006u, 0x00005302u, 0x000052f6u, 0x00005300u, 0x000500c6u, 0x00000006u, 0x00005304u, 0x00005302u, + 0x00000469u, 0x00080041u, 0x00000676u, 0x00005307u, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00005304u, 0x0004003du, 0x0000000fu, 0x00005308u, 0x00005307u, 0x00040071u, 0x00000006u, 0x00005309u, + 0x00005308u, 0x000500c2u, 0x00000006u, 0x0000530cu, 0x00005309u, 0x000052fbu, 0x000500c7u, 0x00000006u, + 0x0000530du, 0x0000530cu, 0x00000ea6u, 0x000500c5u, 0x00000006u, 0x00005311u, 0x0000530du, 0x00005293u, + 0x000500c4u, 0x00000006u, 0x00005313u, 0x00005311u, 0x00000232u, 0x00050080u, 0x00000006u, 0x00005315u, + 0x00005313u, 0x00000461u, 0x000500c6u, 0x00000006u, 0x00005318u, 0x00005315u, 0x00004b64u, 0x000500c5u, + 0x00000006u, 0x0000531bu, 0x00000f6cu, 0x00005318u, 0x00080041u, 0x00000697u, 0x0000531cu, 0x00000f6au, + 0x00000225u, 0x00002310u, 0x00000225u, 0x0000531bu, 0x0004003du, 0x00000011u, 0x0000531du, 0x0000531cu, + 0x00040071u, 0x00000006u, 0x0000531eu, 0x0000531du, 0x000300f7u, 0x00005326u, 0x00000000u, 0x000400fau, + 0x00002324u, 0x00005320u, 0x00005323u, 0x000200f8u, 0x00005323u, 0x00060050u, 0x00000311u, 0x00005342u, + 0x0000531eu, 0x0000531eu, 0x0000531eu, 0x000500c2u, 0x00000311u, 0x00005343u, 0x00005342u, 0x00000e44u, + 0x000500c7u, 0x00000311u, 0x00005345u, 0x00005343u, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00005348u, + 0x00005345u, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x0000534bu, 0x00005345u, 0x0000c238u, 0x000500c5u, + 0x00000311u, 0x0000534cu, 0x00005348u, 0x0000534bu, 0x000500c7u, 0x00000006u, 0x0000534eu, 0x0000531eu, + 0x00000461u, 0x00050084u, 0x00000006u, 0x0000534fu, 0x0000534eu, 0x000006c8u, 0x00040071u, 0x000004bfu, + 0x00005351u, 0x0000534cu, 0x0004007cu, 0x000004bbu, 0x00005352u, 0x00005351u, 0x00040071u, 0x00000011u, + 0x00005354u, 0x0000534fu, 0x0004007cu, 0x00000012u, 0x00005355u, 0x00005354u, 0x00050051u, 0x00000012u, + 0x00005356u, 0x00005352u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00005357u, 0x00005352u, 0x00000001u, + 0x00050051u, 0x00000012u, 0x00005358u, 0x00005352u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005359u, + 0x00005356u, 0x00005357u, 0x00005358u, 0x00005355u, 0x000200f9u, 0x00005326u, 0x000200f8u, 0x00005320u, + 0x000500c2u, 0x00000006u, 0x0000532du, 0x0000531eu, 0x00000262u, 0x000500c7u, 0x00000006u, 0x0000532fu, + 0x0000531eu, 0x000006c8u, 0x00040071u, 0x00000011u, 0x00005331u, 0x0000532du, 0x0004007cu, 0x00000012u, + 0x00005332u, 0x00005331u, 0x00040071u, 0x00000011u, 0x0000533au, 0x0000532fu, 0x0004007cu, 0x00000012u, + 0x0000533bu, 0x0000533au, 0x00070050u, 0x00000013u, 0x0000533cu, 0x00005332u, 0x00005332u, 0x00005332u, + 0x0000533bu, 0x000200f9u, 0x00005326u, 0x000200f8u, 0x00005326u, 0x000700f5u, 0x00000013u, 0x000082d1u, + 0x0000533cu, 0x00005320u, 0x00005359u, 0x00005323u, 0x00050050u, 0x000000f2u, 0x00004bb3u, 0x0000826du, + 0x0000c276u, 0x0004007cu, 0x000000b4u, 0x00004bb4u, 0x00004bb3u, 0x00050051u, 0x00000006u, 0x00005369u, + 0x00004bb4u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000536au, 0x0000496cu, 0x00005369u, 0x00050080u, + 0x00000006u, 0x0000536bu, 0x0000496au, 0x0000536au, 0x00050051u, 0x00000006u, 0x0000536du, 0x00004bb4u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000536eu, 0x0000536du, 0x0000022fu, 0x00050080u, 0x00000006u, + 0x00005370u, 0x0000536bu, 0x0000536eu, 0x000500c7u, 0x00000006u, 0x00005372u, 0x00005370u, 0x00000f3bu, + 0x000400c8u, 0x00000006u, 0x00005375u, 0x0000536du, 0x000500c7u, 0x00000006u, 0x00005376u, 0x00005375u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00005377u, 0x00005376u, 0x00000709u, 0x000500c7u, 0x00000006u, + 0x0000537bu, 0x00005369u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000537cu, 0x0000537bu, 0x00000232u, + 0x000500c6u, 0x00000006u, 0x0000537eu, 0x00005372u, 0x0000537cu, 0x000500c6u, 0x00000006u, 0x00005380u, + 0x0000537eu, 0x00000469u, 0x00080041u, 0x00000676u, 0x00005383u, 0x00000e9du, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00005380u, 0x0004003du, 0x0000000fu, 0x00005384u, 0x00005383u, 0x00040071u, 0x00000006u, + 0x00005385u, 0x00005384u, 0x000500c2u, 0x00000006u, 0x00005388u, 0x00005385u, 0x00005377u, 0x000500c7u, + 0x00000006u, 0x00005389u, 0x00005388u, 0x00000ea6u, 0x000500c5u, 0x00000006u, 0x0000538du, 0x00005389u, + 0x00005293u, 0x000500c4u, 0x00000006u, 0x0000538fu, 0x0000538du, 0x00000232u, 0x00050080u, 0x00000006u, + 0x00005391u, 0x0000538fu, 0x0000038bu, 0x000500c6u, 0x00000006u, 0x00005394u, 0x00005391u, 0x00004b64u, + 0x000500c5u, 0x00000006u, 0x00005397u, 0x00000f6cu, 0x00005394u, 0x00080041u, 0x00000697u, 0x00005398u, + 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005397u, 0x0004003du, 0x00000011u, 0x00005399u, + 0x00005398u, 0x00040071u, 0x00000006u, 0x0000539au, 0x00005399u, 0x000300f7u, 0x000053a2u, 0x00000000u, + 0x000400fau, 0x00002324u, 0x0000539cu, 0x0000539fu, 0x000200f8u, 0x0000539fu, 0x00060050u, 0x00000311u, + 0x000053beu, 0x0000539au, 0x0000539au, 0x0000539au, 0x000500c2u, 0x00000311u, 0x000053bfu, 0x000053beu, + 0x00000e44u, 0x000500c7u, 0x00000311u, 0x000053c1u, 0x000053bfu, 0x0000c236u, 0x000500c4u, 0x00000311u, + 0x000053c4u, 0x000053c1u, 0x0000c237u, 0x000500c2u, 0x00000311u, 0x000053c7u, 0x000053c1u, 0x0000c238u, + 0x000500c5u, 0x00000311u, 0x000053c8u, 0x000053c4u, 0x000053c7u, 0x000500c7u, 0x00000006u, 0x000053cau, + 0x0000539au, 0x00000461u, 0x00050084u, 0x00000006u, 0x000053cbu, 0x000053cau, 0x000006c8u, 0x00040071u, + 0x000004bfu, 0x000053cdu, 0x000053c8u, 0x0004007cu, 0x000004bbu, 0x000053ceu, 0x000053cdu, 0x00040071u, + 0x00000011u, 0x000053d0u, 0x000053cbu, 0x0004007cu, 0x00000012u, 0x000053d1u, 0x000053d0u, 0x00050051u, + 0x00000012u, 0x000053d2u, 0x000053ceu, 0x00000000u, 0x00050051u, 0x00000012u, 0x000053d3u, 0x000053ceu, + 0x00000001u, 0x00050051u, 0x00000012u, 0x000053d4u, 0x000053ceu, 0x00000002u, 0x00070050u, 0x00000013u, + 0x000053d5u, 0x000053d2u, 0x000053d3u, 0x000053d4u, 0x000053d1u, 0x000200f9u, 0x000053a2u, 0x000200f8u, + 0x0000539cu, 0x000500c2u, 0x00000006u, 0x000053a9u, 0x0000539au, 0x00000262u, 0x000500c7u, 0x00000006u, + 0x000053abu, 0x0000539au, 0x000006c8u, 0x00040071u, 0x00000011u, 0x000053adu, 0x000053a9u, 0x0004007cu, + 0x00000012u, 0x000053aeu, 0x000053adu, 0x00040071u, 0x00000011u, 0x000053b6u, 0x000053abu, 0x0004007cu, + 0x00000012u, 0x000053b7u, 0x000053b6u, 0x00070050u, 0x00000013u, 0x000053b8u, 0x000053aeu, 0x000053aeu, + 0x000053aeu, 0x000053b7u, 0x000200f9u, 0x000053a2u, 0x000200f8u, 0x000053a2u, 0x000700f5u, 0x00000013u, + 0x000082d4u, 0x000053b8u, 0x0000539cu, 0x000053d5u, 0x0000539fu, 0x000200f9u, 0x00004bbdu, 0x000200f8u, + 0x00004bbdu, 0x000700f5u, 0x00000013u, 0x0000861cu, 0x0000856eu, 0x000052aau, 0x000082d4u, 0x000053a2u, + 0x000700f5u, 0x00000013u, 0x00008522u, 0x00008473u, 0x000052aau, 0x000082d1u, 0x000053a2u, 0x000300f7u, + 0x00004bccu, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004bbfu, 0x00004bccu, 0x000200f8u, 0x00004bbfu, + 0x00050050u, 0x000000f2u, 0x00004bc2u, 0x0000c277u, 0x0000c276u, 0x0004007cu, 0x000000b4u, 0x00004bc3u, + 0x00004bc2u, 0x00050051u, 0x00000006u, 0x000053e5u, 0x00004bc3u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000053e6u, 0x0000496cu, 0x000053e5u, 0x00050080u, 0x00000006u, 0x000053e7u, 0x0000496au, 0x000053e6u, + 0x00050051u, 0x00000006u, 0x000053e9u, 0x00004bc3u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000053eau, + 0x000053e9u, 0x0000022fu, 0x00050080u, 0x00000006u, 0x000053ecu, 0x000053e7u, 0x000053eau, 0x000500c7u, + 0x00000006u, 0x000053eeu, 0x000053ecu, 0x00000f3bu, 0x000400c8u, 0x00000006u, 0x000053f1u, 0x000053e9u, + 0x000500c7u, 0x00000006u, 0x000053f2u, 0x000053f1u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000053f3u, + 0x000053f2u, 0x00000709u, 0x000500c7u, 0x00000006u, 0x000053f7u, 0x000053e5u, 0x00000461u, 0x000500c4u, + 0x00000006u, 0x000053f8u, 0x000053f7u, 0x00000232u, 0x000500c6u, 0x00000006u, 0x000053fau, 0x000053eeu, + 0x000053f8u, 0x000500c6u, 0x00000006u, 0x000053fcu, 0x000053fau, 0x00000469u, 0x00080041u, 0x00000676u, + 0x000053ffu, 0x00000e9du, 0x00000225u, 0x00002310u, 0x00000225u, 0x000053fcu, 0x0004003du, 0x0000000fu, + 0x00005400u, 0x000053ffu, 0x00040071u, 0x00000006u, 0x00005401u, 0x00005400u, 0x000500c2u, 0x00000006u, + 0x00005404u, 0x00005401u, 0x000053f3u, 0x000500c7u, 0x00000006u, 0x00005405u, 0x00005404u, 0x00000ea6u, + 0x000500c5u, 0x00000006u, 0x00005409u, 0x00005405u, 0x00005293u, 0x000500c4u, 0x00000006u, 0x0000540bu, + 0x00005409u, 0x00000232u, 0x00050080u, 0x00000006u, 0x0000540du, 0x0000540bu, 0x00000469u, 0x000500c6u, + 0x00000006u, 0x00005410u, 0x0000540du, 0x00004b64u, 0x000500c5u, 0x00000006u, 0x00005413u, 0x00000f6cu, + 0x00005410u, 0x00080041u, 0x00000697u, 0x00005414u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00005413u, 0x0004003du, 0x00000011u, 0x00005415u, 0x00005414u, 0x00040071u, 0x00000006u, 0x00005416u, + 0x00005415u, 0x000300f7u, 0x0000541eu, 0x00000000u, 0x000400fau, 0x00002324u, 0x00005418u, 0x0000541bu, + 0x000200f8u, 0x0000541bu, 0x00060050u, 0x00000311u, 0x0000543au, 0x00005416u, 0x00005416u, 0x00005416u, + 0x000500c2u, 0x00000311u, 0x0000543bu, 0x0000543au, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x0000543du, + 0x0000543bu, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00005440u, 0x0000543du, 0x0000c237u, 0x000500c2u, + 0x00000311u, 0x00005443u, 0x0000543du, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00005444u, 0x00005440u, + 0x00005443u, 0x000500c7u, 0x00000006u, 0x00005446u, 0x00005416u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00005447u, 0x00005446u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00005449u, 0x00005444u, 0x0004007cu, + 0x000004bbu, 0x0000544au, 0x00005449u, 0x00040071u, 0x00000011u, 0x0000544cu, 0x00005447u, 0x0004007cu, + 0x00000012u, 0x0000544du, 0x0000544cu, 0x00050051u, 0x00000012u, 0x0000544eu, 0x0000544au, 0x00000000u, + 0x00050051u, 0x00000012u, 0x0000544fu, 0x0000544au, 0x00000001u, 0x00050051u, 0x00000012u, 0x00005450u, + 0x0000544au, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005451u, 0x0000544eu, 0x0000544fu, 0x00005450u, + 0x0000544du, 0x000200f9u, 0x0000541eu, 0x000200f8u, 0x00005418u, 0x000500c2u, 0x00000006u, 0x00005425u, + 0x00005416u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005427u, 0x00005416u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00005429u, 0x00005425u, 0x0004007cu, 0x00000012u, 0x0000542au, 0x00005429u, 0x00040071u, + 0x00000011u, 0x00005432u, 0x00005427u, 0x0004007cu, 0x00000012u, 0x00005433u, 0x00005432u, 0x00070050u, + 0x00000013u, 0x00005434u, 0x0000542au, 0x0000542au, 0x0000542au, 0x00005433u, 0x000200f9u, 0x0000541eu, + 0x000200f8u, 0x0000541eu, 0x000700f5u, 0x00000013u, 0x000082dau, 0x00005434u, 0x00005418u, 0x00005451u, + 0x0000541bu, 0x000200f9u, 0x00004bccu, 0x000200f8u, 0x00004bccu, 0x000700f5u, 0x00000013u, 0x00008711u, + 0x00008663u, 0x00004bbdu, 0x000082dau, 0x0000541eu, 0x000200f9u, 0x00004bf9u, 0x000200f8u, 0x00004b69u, + 0x0004007cu, 0x000000b4u, 0x00004b6bu, 0x000082bau, 0x000600a9u, 0x00000008u, 0x00004b6du, 0x00004b3eu, + 0x00000235u, 0x00000225u, 0x0004007cu, 0x00000006u, 0x00004b6eu, 0x00004b6du, 0x00050051u, 0x00000006u, + 0x000050b0u, 0x00004b6bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000050b1u, 0x0000496cu, 0x000050b0u, + 0x00050080u, 0x00000006u, 0x000050b2u, 0x0000496au, 0x000050b1u, 0x00050051u, 0x00000006u, 0x000050b4u, + 0x00004b6bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000050b5u, 0x000050b4u, 0x0000038bu, 0x00050080u, + 0x00000006u, 0x000050b7u, 0x000050b2u, 0x000050b5u, 0x000500c7u, 0x00000006u, 0x000050b9u, 0x000050b7u, + 0x00000f3bu, 0x000500c2u, 0x00000006u, 0x000050bbu, 0x000050b9u, 0x0000022fu, 0x000500c7u, 0x00000006u, + 0x000050beu, 0x000050b0u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x000050bfu, 0x000050beu, 0x0000022fu, + 0x000500c6u, 0x00000006u, 0x000050c1u, 0x000050bbu, 0x000050bfu, 0x000500c6u, 0x00000006u, 0x000050c3u, + 0x000050c1u, 0x00000461u, 0x00080041u, 0x00000697u, 0x000050c6u, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x000050c3u, 0x0004003du, 0x00000011u, 0x000050c7u, 0x000050c6u, 0x00040071u, 0x00000006u, + 0x000050c8u, 0x000050c7u, 0x000500c2u, 0x00000006u, 0x000050cau, 0x000050c8u, 0x0000023eu, 0x000500c7u, + 0x00000006u, 0x000050cbu, 0x000050cau, 0x0000100cu, 0x00050080u, 0x00000006u, 0x000050cdu, 0x000050cbu, + 0x00004b6eu, 0x000500c6u, 0x00000006u, 0x000050d0u, 0x000050cdu, 0x00004b64u, 0x000500c5u, 0x00000006u, + 0x000050d3u, 0x00000f6cu, 0x000050d0u, 0x00080041u, 0x00000697u, 0x000050d4u, 0x00000f6au, 0x00000225u, + 0x00002310u, 0x00000225u, 0x000050d3u, 0x0004003du, 0x00000011u, 0x000050d5u, 0x000050d4u, 0x00040071u, + 0x00000006u, 0x000050d6u, 0x000050d5u, 0x000300f7u, 0x000050deu, 0x00000000u, 0x000400fau, 0x00002324u, + 0x000050d8u, 0x000050dbu, 0x000200f8u, 0x000050dbu, 0x00060050u, 0x00000311u, 0x000050fau, 0x000050d6u, + 0x000050d6u, 0x000050d6u, 0x000500c2u, 0x00000311u, 0x000050fbu, 0x000050fau, 0x00000e44u, 0x000500c7u, + 0x00000311u, 0x000050fdu, 0x000050fbu, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00005100u, 0x000050fdu, + 0x0000c237u, 0x000500c2u, 0x00000311u, 0x00005103u, 0x000050fdu, 0x0000c238u, 0x000500c5u, 0x00000311u, + 0x00005104u, 0x00005100u, 0x00005103u, 0x000500c7u, 0x00000006u, 0x00005106u, 0x000050d6u, 0x00000461u, + 0x00050084u, 0x00000006u, 0x00005107u, 0x00005106u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00005109u, + 0x00005104u, 0x0004007cu, 0x000004bbu, 0x0000510au, 0x00005109u, 0x00040071u, 0x00000011u, 0x0000510cu, + 0x00005107u, 0x0004007cu, 0x00000012u, 0x0000510du, 0x0000510cu, 0x00050051u, 0x00000012u, 0x0000510eu, + 0x0000510au, 0x00000000u, 0x00050051u, 0x00000012u, 0x0000510fu, 0x0000510au, 0x00000001u, 0x00050051u, + 0x00000012u, 0x00005110u, 0x0000510au, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005111u, 0x0000510eu, + 0x0000510fu, 0x00005110u, 0x0000510du, 0x000200f9u, 0x000050deu, 0x000200f8u, 0x000050d8u, 0x000500c2u, + 0x00000006u, 0x000050e5u, 0x000050d6u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x000050e7u, 0x000050d6u, + 0x000006c8u, 0x00040071u, 0x00000011u, 0x000050e9u, 0x000050e5u, 0x0004007cu, 0x00000012u, 0x000050eau, + 0x000050e9u, 0x00040071u, 0x00000011u, 0x000050f2u, 0x000050e7u, 0x0004007cu, 0x00000012u, 0x000050f3u, + 0x000050f2u, 0x00070050u, 0x00000013u, 0x000050f4u, 0x000050eau, 0x000050eau, 0x000050eau, 0x000050f3u, + 0x000200f9u, 0x000050deu, 0x000200f8u, 0x000050deu, 0x000700f5u, 0x00000013u, 0x000082dbu, 0x000050f4u, + 0x000050d8u, 0x00005111u, 0x000050dbu, 0x000300f7u, 0x00004b88u, 0x00000000u, 0x000400fau, 0x00002366u, + 0x00004b75u, 0x00004b88u, 0x000200f8u, 0x00004b75u, 0x00050050u, 0x000000f2u, 0x00004b78u, 0x0000c277u, + 0x00004b26u, 0x0004007cu, 0x000000b4u, 0x00004b79u, 0x00004b78u, 0x00050051u, 0x00000006u, 0x00005120u, + 0x00004b79u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005121u, 0x0000496cu, 0x00005120u, 0x00050080u, + 0x00000006u, 0x00005122u, 0x0000496au, 0x00005121u, 0x00050051u, 0x00000006u, 0x00005124u, 0x00004b79u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00005125u, 0x00005124u, 0x0000038bu, 0x00050080u, 0x00000006u, + 0x00005127u, 0x00005122u, 0x00005125u, 0x000500c7u, 0x00000006u, 0x00005129u, 0x00005127u, 0x00000f3bu, + 0x000500c2u, 0x00000006u, 0x0000512bu, 0x00005129u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x0000512eu, + 0x00005120u, 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000512fu, 0x0000512eu, 0x0000022fu, 0x000500c6u, + 0x00000006u, 0x00005131u, 0x0000512bu, 0x0000512fu, 0x000500c6u, 0x00000006u, 0x00005133u, 0x00005131u, + 0x00000461u, 0x00080041u, 0x00000697u, 0x00005136u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00005133u, 0x0004003du, 0x00000011u, 0x00005137u, 0x00005136u, 0x00040071u, 0x00000006u, 0x00005138u, + 0x00005137u, 0x000500c2u, 0x00000006u, 0x0000513au, 0x00005138u, 0x0000023eu, 0x000500c7u, 0x00000006u, + 0x0000513bu, 0x0000513au, 0x0000100cu, 0x00050080u, 0x00000006u, 0x0000513du, 0x0000513bu, 0x00000461u, + 0x000500c6u, 0x00000006u, 0x00005140u, 0x0000513du, 0x00004b64u, 0x000500c5u, 0x00000006u, 0x00005143u, + 0x00000f6cu, 0x00005140u, 0x00080041u, 0x00000697u, 0x00005144u, 0x00000f6au, 0x00000225u, 0x00002310u, + 0x00000225u, 0x00005143u, 0x0004003du, 0x00000011u, 0x00005145u, 0x00005144u, 0x00040071u, 0x00000006u, + 0x00005146u, 0x00005145u, 0x000300f7u, 0x0000514eu, 0x00000000u, 0x000400fau, 0x00002324u, 0x00005148u, + 0x0000514bu, 0x000200f8u, 0x0000514bu, 0x00060050u, 0x00000311u, 0x0000516au, 0x00005146u, 0x00005146u, + 0x00005146u, 0x000500c2u, 0x00000311u, 0x0000516bu, 0x0000516au, 0x00000e44u, 0x000500c7u, 0x00000311u, + 0x0000516du, 0x0000516bu, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00005170u, 0x0000516du, 0x0000c237u, + 0x000500c2u, 0x00000311u, 0x00005173u, 0x0000516du, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00005174u, + 0x00005170u, 0x00005173u, 0x000500c7u, 0x00000006u, 0x00005176u, 0x00005146u, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00005177u, 0x00005176u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00005179u, 0x00005174u, + 0x0004007cu, 0x000004bbu, 0x0000517au, 0x00005179u, 0x00040071u, 0x00000011u, 0x0000517cu, 0x00005177u, + 0x0004007cu, 0x00000012u, 0x0000517du, 0x0000517cu, 0x00050051u, 0x00000012u, 0x0000517eu, 0x0000517au, + 0x00000000u, 0x00050051u, 0x00000012u, 0x0000517fu, 0x0000517au, 0x00000001u, 0x00050051u, 0x00000012u, + 0x00005180u, 0x0000517au, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005181u, 0x0000517eu, 0x0000517fu, + 0x00005180u, 0x0000517du, 0x000200f9u, 0x0000514eu, 0x000200f8u, 0x00005148u, 0x000500c2u, 0x00000006u, + 0x00005155u, 0x00005146u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005157u, 0x00005146u, 0x000006c8u, + 0x00040071u, 0x00000011u, 0x00005159u, 0x00005155u, 0x0004007cu, 0x00000012u, 0x0000515au, 0x00005159u, + 0x00040071u, 0x00000011u, 0x00005162u, 0x00005157u, 0x0004007cu, 0x00000012u, 0x00005163u, 0x00005162u, + 0x00070050u, 0x00000013u, 0x00005164u, 0x0000515au, 0x0000515au, 0x0000515au, 0x00005163u, 0x000200f9u, + 0x0000514eu, 0x000200f8u, 0x0000514eu, 0x000700f5u, 0x00000013u, 0x000082deu, 0x00005164u, 0x00005148u, + 0x00005181u, 0x0000514bu, 0x00050050u, 0x000000f2u, 0x00004b81u, 0x0000826du, 0x0000c276u, 0x0004007cu, + 0x000000b4u, 0x00004b82u, 0x00004b81u, 0x00050051u, 0x00000006u, 0x00005190u, 0x00004b82u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005191u, 0x0000496cu, 0x00005190u, 0x00050080u, 0x00000006u, 0x00005192u, + 0x0000496au, 0x00005191u, 0x00050051u, 0x00000006u, 0x00005194u, 0x00004b82u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005195u, 0x00005194u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005197u, 0x00005192u, + 0x00005195u, 0x000500c7u, 0x00000006u, 0x00005199u, 0x00005197u, 0x00000f3bu, 0x000500c2u, 0x00000006u, + 0x0000519bu, 0x00005199u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x0000519eu, 0x00005190u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x0000519fu, 0x0000519eu, 0x0000022fu, 0x000500c6u, 0x00000006u, 0x000051a1u, + 0x0000519bu, 0x0000519fu, 0x000500c6u, 0x00000006u, 0x000051a3u, 0x000051a1u, 0x00000461u, 0x00080041u, + 0x00000697u, 0x000051a6u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000051a3u, 0x0004003du, + 0x00000011u, 0x000051a7u, 0x000051a6u, 0x00040071u, 0x00000006u, 0x000051a8u, 0x000051a7u, 0x000500c2u, + 0x00000006u, 0x000051aau, 0x000051a8u, 0x0000023eu, 0x000500c7u, 0x00000006u, 0x000051abu, 0x000051aau, + 0x0000100cu, 0x00050080u, 0x00000006u, 0x000051adu, 0x000051abu, 0x0000038bu, 0x000500c6u, 0x00000006u, + 0x000051b0u, 0x000051adu, 0x00004b64u, 0x000500c5u, 0x00000006u, 0x000051b3u, 0x00000f6cu, 0x000051b0u, + 0x00080041u, 0x00000697u, 0x000051b4u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x000051b3u, + 0x0004003du, 0x00000011u, 0x000051b5u, 0x000051b4u, 0x00040071u, 0x00000006u, 0x000051b6u, 0x000051b5u, + 0x000300f7u, 0x000051beu, 0x00000000u, 0x000400fau, 0x00002324u, 0x000051b8u, 0x000051bbu, 0x000200f8u, + 0x000051bbu, 0x00060050u, 0x00000311u, 0x000051dau, 0x000051b6u, 0x000051b6u, 0x000051b6u, 0x000500c2u, + 0x00000311u, 0x000051dbu, 0x000051dau, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x000051ddu, 0x000051dbu, + 0x0000c236u, 0x000500c4u, 0x00000311u, 0x000051e0u, 0x000051ddu, 0x0000c237u, 0x000500c2u, 0x00000311u, + 0x000051e3u, 0x000051ddu, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x000051e4u, 0x000051e0u, 0x000051e3u, + 0x000500c7u, 0x00000006u, 0x000051e6u, 0x000051b6u, 0x00000461u, 0x00050084u, 0x00000006u, 0x000051e7u, + 0x000051e6u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x000051e9u, 0x000051e4u, 0x0004007cu, 0x000004bbu, + 0x000051eau, 0x000051e9u, 0x00040071u, 0x00000011u, 0x000051ecu, 0x000051e7u, 0x0004007cu, 0x00000012u, + 0x000051edu, 0x000051ecu, 0x00050051u, 0x00000012u, 0x000051eeu, 0x000051eau, 0x00000000u, 0x00050051u, + 0x00000012u, 0x000051efu, 0x000051eau, 0x00000001u, 0x00050051u, 0x00000012u, 0x000051f0u, 0x000051eau, + 0x00000002u, 0x00070050u, 0x00000013u, 0x000051f1u, 0x000051eeu, 0x000051efu, 0x000051f0u, 0x000051edu, + 0x000200f9u, 0x000051beu, 0x000200f8u, 0x000051b8u, 0x000500c2u, 0x00000006u, 0x000051c5u, 0x000051b6u, + 0x00000262u, 0x000500c7u, 0x00000006u, 0x000051c7u, 0x000051b6u, 0x000006c8u, 0x00040071u, 0x00000011u, + 0x000051c9u, 0x000051c5u, 0x0004007cu, 0x00000012u, 0x000051cau, 0x000051c9u, 0x00040071u, 0x00000011u, + 0x000051d2u, 0x000051c7u, 0x0004007cu, 0x00000012u, 0x000051d3u, 0x000051d2u, 0x00070050u, 0x00000013u, + 0x000051d4u, 0x000051cau, 0x000051cau, 0x000051cau, 0x000051d3u, 0x000200f9u, 0x000051beu, 0x000200f8u, + 0x000051beu, 0x000700f5u, 0x00000013u, 0x000082e1u, 0x000051d4u, 0x000051b8u, 0x000051f1u, 0x000051bbu, + 0x000200f9u, 0x00004b88u, 0x000200f8u, 0x00004b88u, 0x000700f5u, 0x00000013u, 0x00008617u, 0x0000856eu, + 0x000050deu, 0x000082e1u, 0x000051beu, 0x000700f5u, 0x00000013u, 0x0000851cu, 0x00008473u, 0x000050deu, + 0x000082deu, 0x000051beu, 0x000300f7u, 0x00004b94u, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004b8au, + 0x00004b94u, 0x000200f8u, 0x00004b8au, 0x00050050u, 0x000000f2u, 0x00004b8du, 0x0000c277u, 0x0000c276u, + 0x0004007cu, 0x000000b4u, 0x00004b8eu, 0x00004b8du, 0x00050051u, 0x00000006u, 0x00005200u, 0x00004b8eu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005201u, 0x0000496cu, 0x00005200u, 0x00050080u, 0x00000006u, + 0x00005202u, 0x0000496au, 0x00005201u, 0x00050051u, 0x00000006u, 0x00005204u, 0x00004b8eu, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00005205u, 0x00005204u, 0x0000038bu, 0x00050080u, 0x00000006u, 0x00005207u, + 0x00005202u, 0x00005205u, 0x000500c7u, 0x00000006u, 0x00005209u, 0x00005207u, 0x00000f3bu, 0x000500c2u, + 0x00000006u, 0x0000520bu, 0x00005209u, 0x0000022fu, 0x000500c7u, 0x00000006u, 0x0000520eu, 0x00005200u, + 0x00000461u, 0x000500c4u, 0x00000006u, 0x0000520fu, 0x0000520eu, 0x0000022fu, 0x000500c6u, 0x00000006u, + 0x00005211u, 0x0000520bu, 0x0000520fu, 0x000500c6u, 0x00000006u, 0x00005213u, 0x00005211u, 0x00000461u, + 0x00080041u, 0x00000697u, 0x00005216u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, 0x00005213u, + 0x0004003du, 0x00000011u, 0x00005217u, 0x00005216u, 0x00040071u, 0x00000006u, 0x00005218u, 0x00005217u, + 0x000500c2u, 0x00000006u, 0x0000521au, 0x00005218u, 0x0000023eu, 0x000500c7u, 0x00000006u, 0x0000521bu, + 0x0000521au, 0x0000100cu, 0x00050080u, 0x00000006u, 0x0000521du, 0x0000521bu, 0x00000469u, 0x000500c6u, + 0x00000006u, 0x00005220u, 0x0000521du, 0x00004b64u, 0x000500c5u, 0x00000006u, 0x00005223u, 0x00000f6cu, + 0x00005220u, 0x00080041u, 0x00000697u, 0x00005224u, 0x00000f6au, 0x00000225u, 0x00002310u, 0x00000225u, + 0x00005223u, 0x0004003du, 0x00000011u, 0x00005225u, 0x00005224u, 0x00040071u, 0x00000006u, 0x00005226u, + 0x00005225u, 0x000300f7u, 0x0000522eu, 0x00000000u, 0x000400fau, 0x00002324u, 0x00005228u, 0x0000522bu, + 0x000200f8u, 0x0000522bu, 0x00060050u, 0x00000311u, 0x0000524au, 0x00005226u, 0x00005226u, 0x00005226u, + 0x000500c2u, 0x00000311u, 0x0000524bu, 0x0000524au, 0x00000e44u, 0x000500c7u, 0x00000311u, 0x0000524du, + 0x0000524bu, 0x0000c236u, 0x000500c4u, 0x00000311u, 0x00005250u, 0x0000524du, 0x0000c237u, 0x000500c2u, + 0x00000311u, 0x00005253u, 0x0000524du, 0x0000c238u, 0x000500c5u, 0x00000311u, 0x00005254u, 0x00005250u, + 0x00005253u, 0x000500c7u, 0x00000006u, 0x00005256u, 0x00005226u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00005257u, 0x00005256u, 0x000006c8u, 0x00040071u, 0x000004bfu, 0x00005259u, 0x00005254u, 0x0004007cu, + 0x000004bbu, 0x0000525au, 0x00005259u, 0x00040071u, 0x00000011u, 0x0000525cu, 0x00005257u, 0x0004007cu, + 0x00000012u, 0x0000525du, 0x0000525cu, 0x00050051u, 0x00000012u, 0x0000525eu, 0x0000525au, 0x00000000u, + 0x00050051u, 0x00000012u, 0x0000525fu, 0x0000525au, 0x00000001u, 0x00050051u, 0x00000012u, 0x00005260u, + 0x0000525au, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005261u, 0x0000525eu, 0x0000525fu, 0x00005260u, + 0x0000525du, 0x000200f9u, 0x0000522eu, 0x000200f8u, 0x00005228u, 0x000500c2u, 0x00000006u, 0x00005235u, + 0x00005226u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00005237u, 0x00005226u, 0x000006c8u, 0x00040071u, + 0x00000011u, 0x00005239u, 0x00005235u, 0x0004007cu, 0x00000012u, 0x0000523au, 0x00005239u, 0x00040071u, + 0x00000011u, 0x00005242u, 0x00005237u, 0x0004007cu, 0x00000012u, 0x00005243u, 0x00005242u, 0x00070050u, + 0x00000013u, 0x00005244u, 0x0000523au, 0x0000523au, 0x0000523au, 0x00005243u, 0x000200f9u, 0x0000522eu, + 0x000200f8u, 0x0000522eu, 0x000700f5u, 0x00000013u, 0x000082e7u, 0x00005244u, 0x00005228u, 0x00005261u, + 0x0000522bu, 0x000200f9u, 0x00004b94u, 0x000200f8u, 0x00004b94u, 0x000700f5u, 0x00000013u, 0x0000870bu, + 0x00008663u, 0x00004b88u, 0x000082e7u, 0x0000522eu, 0x000200f9u, 0x00004bf9u, 0x000200f8u, 0x00004bf9u, + 0x000900f5u, 0x00000013u, 0x0000870au, 0x0000870bu, 0x00004b94u, 0x00008711u, 0x00004bccu, 0x00008716u, + 0x00004bf8u, 0x000900f5u, 0x00000013u, 0x00008615u, 0x00008617u, 0x00004b94u, 0x0000861cu, 0x00004bccu, + 0x00008620u, 0x00004bf8u, 0x000900f5u, 0x00000013u, 0x0000851au, 0x0000851cu, 0x00004b94u, 0x00008522u, + 0x00004bccu, 0x00008527u, 0x00004bf8u, 0x000900f5u, 0x00000013u, 0x000083aeu, 0x000082dbu, 0x00004b94u, + 0x000082ceu, 0x00004bccu, 0x000082bbu, 0x00004bf8u, 0x000200f9u, 0x00004bfau, 0x000200f8u, 0x00004bfau, + 0x000700f5u, 0x00000013u, 0x00008646u, 0x00008663u, 0x00004b5au, 0x0000870au, 0x00004bf9u, 0x000700f5u, + 0x00000013u, 0x00008551u, 0x0000856eu, 0x00004b5au, 0x00008615u, 0x00004bf9u, 0x000700f5u, 0x00000013u, + 0x00008456u, 0x00008473u, 0x00004b5au, 0x0000851au, 0x00004bf9u, 0x000700f5u, 0x00000013u, 0x000082eau, + 0x00008307u, 0x00004b5au, 0x000083aeu, 0x00004bf9u, 0x000200f9u, 0x00004e21u, 0x000200f8u, 0x00004e21u, + 0x000700f5u, 0x00000013u, 0x00008645u, 0x00008646u, 0x00004bfau, 0x0000871bu, 0x00004e20u, 0x000700f5u, + 0x00000013u, 0x00008550u, 0x00008551u, 0x00004bfau, 0x00008623u, 0x00004e20u, 0x000700f5u, 0x00000013u, + 0x00008455u, 0x00008456u, 0x00004bfau, 0x0000852bu, 0x00004e20u, 0x000700f5u, 0x00000013u, 0x000082e9u, + 0x000082eau, 0x00004bfau, 0x000083beu, 0x00004e20u, 0x000300f7u, 0x00004fb2u, 0x00000000u, 0x000400fau, + 0x00002360u, 0x00004e23u, 0x00004efcu, 0x000200f8u, 0x00004efcu, 0x000300f7u, 0x00004fb1u, 0x00000000u, + 0x000400fau, 0x00004b3cu, 0x00004efeu, 0x00004f71u, 0x000200f8u, 0x00004f71u, 0x000300f7u, 0x00004fb0u, + 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004f73u, 0x00004f7fu, 0x000200f8u, 0x00004f7fu, 0x000600a9u, + 0x00000069u, 0x0000c278u, 0x00002366u, 0x00004b00u, 0x00002366u, 0x000300f7u, 0x00004fafu, 0x00000000u, + 0x000400fau, 0x0000c278u, 0x00004f87u, 0x00004fadu, 0x000200f8u, 0x00004fadu, 0x000200f9u, 0x00004fafu, + 0x000200f8u, 0x00004f87u, 0x000300f7u, 0x00004f91u, 0x00000000u, 0x000400fau, 0x00004b3eu, 0x00004f8au, + 0x00004f8fu, 0x000200f8u, 0x00004f8fu, 0x000200f9u, 0x00004f91u, 0x000200f8u, 0x00004f8au, 0x0007004fu, + 0x000000f2u, 0x00004f8cu, 0x0000826au, 0x0000826au, 0x00000001u, 0x00000000u, 0x00050082u, 0x000000f2u, + 0x00004f8eu, 0x0000c23cu, 0x00004f8cu, 0x000200f9u, 0x00004f91u, 0x000200f8u, 0x00004f91u, 0x000700f5u, + 0x000000f2u, 0x00008452u, 0x00004f8eu, 0x00004f8au, 0x0000826au, 0x00004f8fu, 0x00040072u, 0x000001b1u, + 0x00004f93u, 0x00008452u, 0x00050082u, 0x00000013u, 0x00004f96u, 0x00008455u, 0x000082e9u, 0x00050051u, + 0x00000012u, 0x00004f98u, 0x00004f93u, 0x00000000u, 0x00070050u, 0x00000013u, 0x00004f99u, 0x00004f98u, + 0x00004f98u, 0x00004f98u, 0x00004f98u, 0x00050084u, 0x00000013u, 0x00004f9au, 0x00004f96u, 0x00004f99u, + 0x00050082u, 0x00000013u, 0x00004f9du, 0x00008550u, 0x000082e9u, 0x00050051u, 0x00000012u, 0x00004f9fu, + 0x00004f93u, 0x00000001u, 0x00070050u, 0x00000013u, 0x00004fa0u, 0x00004f9fu, 0x00004f9fu, 0x00004f9fu, + 0x00004f9fu, 0x00050084u, 0x00000013u, 0x00004fa1u, 0x00004f9du, 0x00004fa0u, 0x00050080u, 0x00000013u, + 0x00004fa3u, 0x00004f9au, 0x00004fa1u, 0x00050080u, 0x00000013u, 0x00004fa6u, 0x00004fa3u, 0x0000c23fu, + 0x000500c3u, 0x00000013u, 0x00004fa9u, 0x00004fa6u, 0x0000c240u, 0x00050080u, 0x00000013u, 0x00004facu, + 0x00004fa9u, 0x000082e9u, 0x000200f9u, 0x00004fafu, 0x000200f8u, 0x00004fafu, 0x000700f5u, 0x00000013u, + 0x00008780u, 0x00004facu, 0x00004f91u, 0x000082e9u, 0x00004fadu, 0x000200f9u, 0x00004fb0u, 0x000200f8u, + 0x00004f73u, 0x00050080u, 0x00000013u, 0x00004f76u, 0x000082e9u, 0x00008550u, 0x00050080u, 0x00000013u, + 0x00004f78u, 0x00004f76u, 0x00008455u, 0x00050080u, 0x00000013u, 0x00004f7au, 0x00004f78u, 0x00008645u, + 0x00050080u, 0x00000013u, 0x00004f7cu, 0x00004f7au, 0x0000c239u, 0x000500c3u, 0x00000013u, 0x00004f7eu, + 0x00004f7cu, 0x0000c239u, 0x000200f9u, 0x00004fb0u, 0x000200f8u, 0x00004fb0u, 0x000700f5u, 0x00000013u, + 0x0000877fu, 0x00004f7eu, 0x00004f73u, 0x00008780u, 0x00004fafu, 0x000200f9u, 0x00004fb1u, 0x000200f8u, + 0x00004efeu, 0x000300f7u, 0x00004f70u, 0x00000000u, 0x000400fau, 0x00002327u, 0x00004f00u, 0x00004f6eu, + 0x000200f8u, 0x00004f6eu, 0x000200f9u, 0x00004f70u, 0x000200f8u, 0x00004f00u, 0x000300f7u, 0x00004f66u, + 0x00000000u, 0x000400fau, 0x00002366u, 0x00004f02u, 0x00004f4au, 0x000200f8u, 0x00004f4au, 0x000300f7u, + 0x00004f57u, 0x00000000u, 0x000400fau, 0x00004b34u, 0x00004f51u, 0x00004f54u, 0x000200f8u, 0x00004f54u, + 0x0007004fu, 0x000001b1u, 0x00004f56u, 0x000082e9u, 0x000082e9u, 0x00000002u, 0x00000003u, 0x000200f9u, + 0x00004f57u, 0x000200f8u, 0x00004f51u, 0x0007004fu, 0x000001b1u, 0x00004f53u, 0x00008645u, 0x00008645u, + 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004f57u, 0x000200f8u, 0x00004f57u, 0x000700f5u, 0x000001b1u, + 0x0000873du, 0x00004f53u, 0x00004f51u, 0x00004f56u, 0x00004f54u, 0x00050080u, 0x00000008u, 0x00004f5cu, + 0x00004b4fu, 0x00004b0au, 0x000500afu, 0x00000069u, 0x00004f5du, 0x00004f5cu, 0x0000116du, 0x000300f7u, + 0x00004f64u, 0x00000000u, 0x000400fau, 0x00004f5du, 0x00004f5eu, 0x00004f61u, 0x000200f8u, 0x00004f61u, + 0x0007004fu, 0x000001b1u, 0x00004f63u, 0x000082e9u, 0x000082e9u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00004f64u, 0x000200f8u, 0x00004f5eu, 0x0007004fu, 0x000001b1u, 0x00004f60u, 0x00008645u, 0x00008645u, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004f64u, 0x000200f8u, 0x00004f64u, 0x000700f5u, 0x000001b1u, + 0x00008741u, 0x00004f60u, 0x00004f5eu, 0x00004f63u, 0x00004f61u, 0x000200f9u, 0x00004f66u, 0x000200f8u, + 0x00004f02u, 0x00050050u, 0x000000f2u, 0x00004f07u, 0x00004b4fu, 0x00004b0au, 0x000500aau, 0x00000884u, + 0x00004f08u, 0x00004f07u, 0x0000140du, 0x00050051u, 0x00000069u, 0x00004f09u, 0x00004f08u, 0x00000000u, + 0x00050051u, 0x00000069u, 0x00004f0au, 0x00004f08u, 0x00000001u, 0x00060050u, 0x00000368u, 0x00004f0bu, + 0x00002351u, 0x00004f09u, 0x00004f0au, 0x0004009bu, 0x00000069u, 0x00004f0cu, 0x00004f0bu, 0x000300f7u, + 0x00004f2cu, 0x00000000u, 0x000400fau, 0x00004f0cu, 0x00004f0eu, 0x00004f1eu, 0x000200f8u, 0x00004f1eu, + 0x0007004fu, 0x000001b1u, 0x00004f24u, 0x000082e9u, 0x000082e9u, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x000001b1u, 0x00004f26u, 0x00008455u, 0x00008455u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x000001b1u, + 0x00004f28u, 0x00008550u, 0x00008550u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x00004f2au, + 0x00008645u, 0x00008645u, 0x00000000u, 0x00000001u, 0x00050080u, 0x00000008u, 0x0000628du, 0x00004b4fu, + 0x00004b0au, 0x000500afu, 0x00000069u, 0x0000628fu, 0x0000628du, 0x0000116du, 0x00050050u, 0x00000884u, + 0x00006292u, 0x0000628fu, 0x0000628fu, 0x000600a9u, 0x000001b1u, 0x00006293u, 0x00006292u, 0x00004f2au, + 0x00004f24u, 0x000300f7u, 0x0000629du, 0x00000000u, 0x000400fau, 0x0000628fu, 0x00006296u, 0x0000629bu, + 0x000200f8u, 0x0000629bu, 0x000200f9u, 0x0000629du, 0x000200f8u, 0x00006296u, 0x0007004fu, 0x000000f2u, + 0x00006298u, 0x00004f07u, 0x00004f07u, 0x00000001u, 0x00000000u, 0x00050082u, 0x000000f2u, 0x0000629au, + 0x0000c23cu, 0x00006298u, 0x000200f9u, 0x0000629du, 0x000200f8u, 0x0000629du, 0x000700f5u, 0x000000f2u, + 0x00008742u, 0x0000629au, 0x00006296u, 0x00004f07u, 0x0000629bu, 0x00040072u, 0x000001b1u, 0x0000629fu, + 0x00008742u, 0x00050082u, 0x000001b1u, 0x000062a2u, 0x00004f26u, 0x00006293u, 0x00050051u, 0x00000012u, + 0x000062a4u, 0x0000629fu, 0x00000000u, 0x00050050u, 0x000001b1u, 0x000062a5u, 0x000062a4u, 0x000062a4u, + 0x00050084u, 0x000001b1u, 0x000062a6u, 0x000062a2u, 0x000062a5u, 0x00050082u, 0x000001b1u, 0x000062a9u, + 0x00004f28u, 0x00006293u, 0x00050051u, 0x00000012u, 0x000062abu, 0x0000629fu, 0x00000001u, 0x00050050u, + 0x000001b1u, 0x000062acu, 0x000062abu, 0x000062abu, 0x00050084u, 0x000001b1u, 0x000062adu, 0x000062a9u, + 0x000062acu, 0x00050080u, 0x000001b1u, 0x000062afu, 0x000062a6u, 0x000062adu, 0x00050080u, 0x000001b1u, + 0x000062b2u, 0x000062afu, 0x0000c23du, 0x000500c3u, 0x000001b1u, 0x000062b5u, 0x000062b2u, 0x0000c23eu, + 0x00050080u, 0x000001b1u, 0x000062b8u, 0x000062b5u, 0x00006293u, 0x000200f9u, 0x00004f2cu, 0x000200f8u, + 0x00004f0eu, 0x0007004fu, 0x000001b1u, 0x00004f10u, 0x000082e9u, 0x000082e9u, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x000001b1u, 0x00004f12u, 0x00008455u, 0x00008455u, 0x00000000u, 0x00000001u, 0x00050080u, + 0x000001b1u, 0x00004f13u, 0x00004f10u, 0x00004f12u, 0x0007004fu, 0x000001b1u, 0x00004f15u, 0x00008645u, + 0x00008645u, 0x00000000u, 0x00000001u, 0x00050080u, 0x000001b1u, 0x00004f16u, 0x00004f13u, 0x00004f15u, + 0x0007004fu, 0x000001b1u, 0x00004f18u, 0x00008550u, 0x00008550u, 0x00000000u, 0x00000001u, 0x00050080u, + 0x000001b1u, 0x00004f19u, 0x00004f16u, 0x00004f18u, 0x00050080u, 0x000001b1u, 0x00004f1bu, 0x00004f19u, + 0x0000c23bu, 0x000500c3u, 0x000001b1u, 0x00004f1du, 0x00004f1bu, 0x0000c23bu, 0x000200f9u, 0x00004f2cu, + 0x000200f8u, 0x00004f2cu, 0x000700f5u, 0x000001b1u, 0x00008750u, 0x00004f1du, 0x00004f0eu, 0x000062b8u, + 0x0000629du, 0x000300f7u, 0x00004f49u, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004f2eu, 0x00004f3eu, + 0x000200f8u, 0x00004f3eu, 0x0007004fu, 0x000001b1u, 0x00004f40u, 0x000082e9u, 0x000082e9u, 0x00000002u, + 0x00000003u, 0x0007004fu, 0x000001b1u, 0x00004f42u, 0x00008455u, 0x00008455u, 0x00000002u, 0x00000003u, + 0x0007004fu, 0x000001b1u, 0x00004f44u, 0x00008550u, 0x00008550u, 0x00000002u, 0x00000003u, 0x0007004fu, + 0x000001b1u, 0x00004f46u, 0x00008645u, 0x00008645u, 0x00000002u, 0x00000003u, 0x00050050u, 0x00000884u, + 0x000062cau, 0x00004b34u, 0x00004b34u, 0x000600a9u, 0x000001b1u, 0x000062cbu, 0x000062cau, 0x00004f46u, + 0x00004f40u, 0x000300f7u, 0x000062d5u, 0x00000000u, 0x000400fau, 0x00004b34u, 0x000062ceu, 0x000062d3u, + 0x000200f8u, 0x000062d3u, 0x000200f9u, 0x000062d5u, 0x000200f8u, 0x000062ceu, 0x0007004fu, 0x000000f2u, + 0x000062d0u, 0x0000826au, 0x0000826au, 0x00000001u, 0x00000000u, 0x00050082u, 0x000000f2u, 0x000062d2u, + 0x0000c23cu, 0x000062d0u, 0x000200f9u, 0x000062d5u, 0x000200f8u, 0x000062d5u, 0x000700f5u, 0x000000f2u, + 0x0000874du, 0x000062d2u, 0x000062ceu, 0x0000826au, 0x000062d3u, 0x00040072u, 0x000001b1u, 0x000062d7u, + 0x0000874du, 0x00050082u, 0x000001b1u, 0x000062dau, 0x00004f42u, 0x000062cbu, 0x00050051u, 0x00000012u, + 0x000062dcu, 0x000062d7u, 0x00000000u, 0x00050050u, 0x000001b1u, 0x000062ddu, 0x000062dcu, 0x000062dcu, + 0x00050084u, 0x000001b1u, 0x000062deu, 0x000062dau, 0x000062ddu, 0x00050082u, 0x000001b1u, 0x000062e1u, + 0x00004f44u, 0x000062cbu, 0x00050051u, 0x00000012u, 0x000062e3u, 0x000062d7u, 0x00000001u, 0x00050050u, + 0x000001b1u, 0x000062e4u, 0x000062e3u, 0x000062e3u, 0x00050084u, 0x000001b1u, 0x000062e5u, 0x000062e1u, + 0x000062e4u, 0x00050080u, 0x000001b1u, 0x000062e7u, 0x000062deu, 0x000062e5u, 0x00050080u, 0x000001b1u, + 0x000062eau, 0x000062e7u, 0x0000c23du, 0x000500c3u, 0x000001b1u, 0x000062edu, 0x000062eau, 0x0000c23eu, + 0x00050080u, 0x000001b1u, 0x000062f0u, 0x000062edu, 0x000062cbu, 0x000200f9u, 0x00004f49u, 0x000200f8u, + 0x00004f2eu, 0x0007004fu, 0x000001b1u, 0x00004f30u, 0x000082e9u, 0x000082e9u, 0x00000002u, 0x00000003u, + 0x0007004fu, 0x000001b1u, 0x00004f32u, 0x00008455u, 0x00008455u, 0x00000002u, 0x00000003u, 0x00050080u, + 0x000001b1u, 0x00004f33u, 0x00004f30u, 0x00004f32u, 0x0007004fu, 0x000001b1u, 0x00004f35u, 0x00008645u, + 0x00008645u, 0x00000002u, 0x00000003u, 0x00050080u, 0x000001b1u, 0x00004f36u, 0x00004f33u, 0x00004f35u, + 0x0007004fu, 0x000001b1u, 0x00004f38u, 0x00008550u, 0x00008550u, 0x00000002u, 0x00000003u, 0x00050080u, + 0x000001b1u, 0x00004f39u, 0x00004f36u, 0x00004f38u, 0x00050080u, 0x000001b1u, 0x00004f3bu, 0x00004f39u, + 0x0000c23bu, 0x000500c3u, 0x000001b1u, 0x00004f3du, 0x00004f3bu, 0x0000c23bu, 0x000200f9u, 0x00004f49u, + 0x000200f8u, 0x00004f49u, 0x000700f5u, 0x000001b1u, 0x00008753u, 0x00004f3du, 0x00004f2eu, 0x000062f0u, + 0x000062d5u, 0x000200f9u, 0x00004f66u, 0x000200f8u, 0x00004f66u, 0x000700f5u, 0x000001b1u, 0x00008752u, + 0x00008753u, 0x00004f49u, 0x0000873du, 0x00004f64u, 0x000700f5u, 0x000001b1u, 0x0000874eu, 0x00008750u, + 0x00004f49u, 0x00008741u, 0x00004f64u, 0x00050051u, 0x00000012u, 0x00004f69u, 0x0000874eu, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00004f6au, 0x0000874eu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00004f6bu, + 0x00008752u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004f6cu, 0x00008752u, 0x00000001u, 0x00070050u, + 0x00000013u, 0x00004f6du, 0x00004f69u, 0x00004f6au, 0x00004f6bu, 0x00004f6cu, 0x000200f9u, 0x00004f70u, + 0x000200f8u, 0x00004f70u, 0x000700f5u, 0x00000013u, 0x0000877eu, 0x00004f6du, 0x00004f66u, 0x000082e9u, + 0x00004f6eu, 0x000200f9u, 0x00004fb1u, 0x000200f8u, 0x00004fb1u, 0x000700f5u, 0x00000013u, 0x0000877du, + 0x0000877eu, 0x00004f70u, 0x0000877fu, 0x00004fb0u, 0x000200f9u, 0x00004fb2u, 0x000200f8u, 0x00004e23u, + 0x00040072u, 0x00000009u, 0x00004e25u, 0x00008210u, 0x000600cau, 0x00000009u, 0x00004e26u, 0x00004e25u, + 0x00000225u, 0x00000265u, 0x000300f7u, 0x00004efbu, 0x00000000u, 0x000400fau, 0x00002327u, 0x00004e28u, + 0x00004ef7u, 0x000200f8u, 0x00004ef7u, 0x0009004fu, 0x00000009u, 0x00004ef9u, 0x00004e26u, 0x00004e26u, + 0x00000002u, 0x00000002u, 0x00000002u, 0x00000002u, 0x00040072u, 0x00000013u, 0x00004efau, 0x00004ef9u, + 0x000200f9u, 0x00004efbu, 0x000200f8u, 0x00004e28u, 0x000300f7u, 0x00004e37u, 0x00000000u, 0x000400fau, + 0x00004b3cu, 0x00004e2au, 0x00004e35u, 0x000200f8u, 0x00004e35u, 0x000200f9u, 0x00004e37u, 0x000200f8u, + 0x00004e2au, 0x00050050u, 0x000000f2u, 0x00004e2fu, 0x00004b4fu, 0x00004b0au, 0x000500aau, 0x00000884u, + 0x00004e30u, 0x00004e2fu, 0x0000140du, 0x00050051u, 0x00000069u, 0x00004e31u, 0x00004e30u, 0x00000000u, + 0x00050051u, 0x00000069u, 0x00004e32u, 0x00004e30u, 0x00000001u, 0x00060050u, 0x00000368u, 0x00004e33u, + 0x00002351u, 0x00004e31u, 0x00004e32u, 0x0004009bu, 0x00000069u, 0x00004e34u, 0x00004e33u, 0x000200f9u, + 0x00004e37u, 0x000200f8u, 0x00004e37u, 0x000700f5u, 0x00000069u, 0x00008755u, 0x00004e34u, 0x00004e2au, + 0x00004b32u, 0x00004e35u, 0x000300f7u, 0x00004e48u, 0x00000000u, 0x000400fau, 0x00004b3cu, 0x00004e3du, + 0x00004e46u, 0x000200f8u, 0x00004e46u, 0x000200f9u, 0x00004e48u, 0x000200f8u, 0x00004e3du, 0x00050080u, + 0x00000008u, 0x00004e41u, 0x00004b4fu, 0x00004b0au, 0x000500afu, 0x00000069u, 0x00004e42u, 0x00004e41u, + 0x0000116du, 0x000400a8u, 0x00000069u, 0x00004e44u, 0x00008755u, 0x000500a7u, 0x00000069u, 0x00004e45u, + 0x00004e42u, 0x00004e44u, 0x000200f9u, 0x00004e48u, 0x000200f8u, 0x00004e48u, 0x000700f5u, 0x00000069u, + 0x00008758u, 0x00004e45u, 0x00004e3du, 0x00004b3eu, 0x00004e46u, 0x000300f7u, 0x00004e51u, 0x00000000u, + 0x000400fau, 0x00008758u, 0x00004e4bu, 0x00004e4eu, 0x000200f8u, 0x00004e4eu, 0x0007004fu, 0x000000f2u, + 0x00004e50u, 0x00004e26u, 0x00004e26u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004e51u, 0x000200f8u, + 0x00004e4bu, 0x0007004fu, 0x000000f2u, 0x00004e4du, 0x00004e26u, 0x00004e26u, 0x00000001u, 0x00000000u, + 0x000200f9u, 0x00004e51u, 0x000200f8u, 0x00004e51u, 0x000700f5u, 0x000000f2u, 0x00008759u, 0x00004e4du, + 0x00004e4bu, 0x00004e50u, 0x00004e4eu, 0x000300f7u, 0x00004e5au, 0x00000000u, 0x000400fau, 0x00004b3eu, + 0x00004e54u, 0x00004e57u, 0x000200f8u, 0x00004e57u, 0x0007004fu, 0x000000f2u, 0x00004e59u, 0x00004e26u, + 0x00004e26u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004e5au, 0x000200f8u, 0x00004e54u, 0x0007004fu, + 0x000000f2u, 0x00004e56u, 0x00004e26u, 0x00004e26u, 0x00000001u, 0x00000000u, 0x000200f9u, 0x00004e5au, + 0x000200f8u, 0x00004e5au, 0x000700f5u, 0x000000f2u, 0x0000875au, 0x00004e56u, 0x00004e54u, 0x00004e59u, + 0x00004e57u, 0x000300f7u, 0x00004ea0u, 0x00000000u, 0x000400fau, 0x00008755u, 0x00004e5du, 0x00004e7eu, + 0x000200f8u, 0x00004e7eu, 0x000500a7u, 0x00000069u, 0x00004e81u, 0x00008758u, 0x00004b3cu, 0x000300f7u, + 0x00004e88u, 0x00000000u, 0x000400fau, 0x00004e81u, 0x00004e82u, 0x00004e85u, 0x000200f8u, 0x00004e85u, + 0x0007004fu, 0x000001b1u, 0x00004e87u, 0x000082e9u, 0x000082e9u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00004e88u, 0x000200f8u, 0x00004e82u, 0x0007004fu, 0x000001b1u, 0x00004e84u, 0x00008645u, 0x00008645u, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004e88u, 0x000200f8u, 0x00004e88u, 0x000700f5u, 0x000001b1u, + 0x00008763u, 0x00004e84u, 0x00004e82u, 0x00004e87u, 0x00004e85u, 0x00040072u, 0x000000f2u, 0x00004e8au, + 0x00008763u, 0x00050051u, 0x00000008u, 0x00004e8cu, 0x00008759u, 0x00000000u, 0x0007004fu, 0x000001b1u, + 0x00004e8eu, 0x00008455u, 0x00008455u, 0x00000000u, 0x00000001u, 0x00040072u, 0x000000f2u, 0x00004e8fu, + 0x00004e8eu, 0x00050082u, 0x000000f2u, 0x00004e91u, 0x00004e8fu, 0x00004e8au, 0x00050050u, 0x000000f2u, + 0x00004e92u, 0x00004e8cu, 0x00004e8cu, 0x00050084u, 0x000000f2u, 0x00004e93u, 0x00004e92u, 0x00004e91u, + 0x00050051u, 0x00000008u, 0x00004e95u, 0x00008759u, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x00004e97u, + 0x00008550u, 0x00008550u, 0x00000000u, 0x00000001u, 0x00040072u, 0x000000f2u, 0x00004e98u, 0x00004e97u, + 0x00050082u, 0x000000f2u, 0x00004e9au, 0x00004e98u, 0x00004e8au, 0x00050050u, 0x000000f2u, 0x00004e9bu, + 0x00004e95u, 0x00004e95u, 0x00050084u, 0x000000f2u, 0x00004e9cu, 0x00004e9bu, 0x00004e9au, 0x00050080u, + 0x000000f2u, 0x00004e9du, 0x00004e93u, 0x00004e9cu, 0x00050080u, 0x000000f2u, 0x00004e9fu, 0x00004e9du, + 0x0000c242u, 0x000200f9u, 0x00004ea0u, 0x000200f8u, 0x00004e5du, 0x00050051u, 0x00000008u, 0x00004e5fu, + 0x00008759u, 0x00000000u, 0x0007004fu, 0x000001b1u, 0x00004e61u, 0x00008550u, 0x00008550u, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x000001b1u, 0x00004e63u, 0x00008645u, 0x00008645u, 0x00000000u, 0x00000001u, + 0x00050082u, 0x000001b1u, 0x00004e64u, 0x00004e61u, 0x00004e63u, 0x00040072u, 0x000000f2u, 0x00004e65u, + 0x00004e64u, 0x00050050u, 0x000000f2u, 0x00004e66u, 0x00004e5fu, 0x00004e5fu, 0x00050084u, 0x000000f2u, + 0x00004e67u, 0x00004e66u, 0x00004e65u, 0x00050051u, 0x00000008u, 0x00004e69u, 0x00008759u, 0x00000001u, + 0x0007004fu, 0x000001b1u, 0x00004e6bu, 0x00008455u, 0x00008455u, 0x00000000u, 0x00000001u, 0x00050082u, + 0x000001b1u, 0x00004e6eu, 0x00004e6bu, 0x00004e63u, 0x00040072u, 0x000000f2u, 0x00004e6fu, 0x00004e6eu, + 0x00050050u, 0x000000f2u, 0x00004e70u, 0x00004e69u, 0x00004e69u, 0x00050084u, 0x000000f2u, 0x00004e71u, + 0x00004e70u, 0x00004e6fu, 0x00050080u, 0x000000f2u, 0x00004e72u, 0x00004e67u, 0x00004e71u, 0x0007004fu, + 0x000001b1u, 0x00004e74u, 0x000082e9u, 0x000082e9u, 0x00000000u, 0x00000001u, 0x00050082u, 0x000001b1u, + 0x00004e77u, 0x00004e74u, 0x00004e63u, 0x000500c4u, 0x000001b1u, 0x00004e79u, 0x00004e77u, 0x0000c241u, + 0x00040072u, 0x000000f2u, 0x00004e7au, 0x00004e79u, 0x00050080u, 0x000000f2u, 0x00004e7bu, 0x00004e72u, + 0x00004e7au, 0x00050080u, 0x000000f2u, 0x00004e7du, 0x00004e7bu, 0x0000c242u, 0x000200f9u, 0x00004ea0u, + 0x000200f8u, 0x00004ea0u, 0x000700f5u, 0x000000f2u, 0x00008778u, 0x00004e7du, 0x00004e5du, 0x00004e9fu, + 0x00004e88u, 0x000300f7u, 0x00004ee5u, 0x00000000u, 0x000400fau, 0x00004b32u, 0x00004ea2u, 0x00004ec3u, + 0x000200f8u, 0x00004ec3u, 0x000500a7u, 0x00000069u, 0x00004ec6u, 0x00004b3eu, 0x00004b3cu, 0x000300f7u, + 0x00004ecdu, 0x00000000u, 0x000400fau, 0x00004ec6u, 0x00004ec7u, 0x00004ecau, 0x000200f8u, 0x00004ecau, + 0x0007004fu, 0x000001b1u, 0x00004eccu, 0x000082e9u, 0x000082e9u, 0x00000002u, 0x00000003u, 0x000200f9u, + 0x00004ecdu, 0x000200f8u, 0x00004ec7u, 0x0007004fu, 0x000001b1u, 0x00004ec9u, 0x00008645u, 0x00008645u, + 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004ecdu, 0x000200f8u, 0x00004ecdu, 0x000700f5u, 0x000001b1u, + 0x00008772u, 0x00004ec9u, 0x00004ec7u, 0x00004eccu, 0x00004ecau, 0x00040072u, 0x000000f2u, 0x00004ecfu, + 0x00008772u, 0x00050051u, 0x00000008u, 0x00004ed1u, 0x0000875au, 0x00000000u, 0x0007004fu, 0x000001b1u, + 0x00004ed3u, 0x00008455u, 0x00008455u, 0x00000002u, 0x00000003u, 0x00040072u, 0x000000f2u, 0x00004ed4u, + 0x00004ed3u, 0x00050082u, 0x000000f2u, 0x00004ed6u, 0x00004ed4u, 0x00004ecfu, 0x00050050u, 0x000000f2u, + 0x00004ed7u, 0x00004ed1u, 0x00004ed1u, 0x00050084u, 0x000000f2u, 0x00004ed8u, 0x00004ed7u, 0x00004ed6u, + 0x00050051u, 0x00000008u, 0x00004edau, 0x0000875au, 0x00000001u, 0x0007004fu, 0x000001b1u, 0x00004edcu, + 0x00008550u, 0x00008550u, 0x00000002u, 0x00000003u, 0x00040072u, 0x000000f2u, 0x00004eddu, 0x00004edcu, + 0x00050082u, 0x000000f2u, 0x00004edfu, 0x00004eddu, 0x00004ecfu, 0x00050050u, 0x000000f2u, 0x00004ee0u, + 0x00004edau, 0x00004edau, 0x00050084u, 0x000000f2u, 0x00004ee1u, 0x00004ee0u, 0x00004edfu, 0x00050080u, + 0x000000f2u, 0x00004ee2u, 0x00004ed8u, 0x00004ee1u, 0x00050080u, 0x000000f2u, 0x00004ee4u, 0x00004ee2u, + 0x0000c242u, 0x000200f9u, 0x00004ee5u, 0x000200f8u, 0x00004ea2u, 0x00050051u, 0x00000008u, 0x00004ea4u, + 0x0000875au, 0x00000000u, 0x0007004fu, 0x000001b1u, 0x00004ea6u, 0x00008550u, 0x00008550u, 0x00000002u, + 0x00000003u, 0x0007004fu, 0x000001b1u, 0x00004ea8u, 0x00008645u, 0x00008645u, 0x00000002u, 0x00000003u, + 0x00050082u, 0x000001b1u, 0x00004ea9u, 0x00004ea6u, 0x00004ea8u, 0x00040072u, 0x000000f2u, 0x00004eaau, + 0x00004ea9u, 0x00050050u, 0x000000f2u, 0x00004eabu, 0x00004ea4u, 0x00004ea4u, 0x00050084u, 0x000000f2u, + 0x00004eacu, 0x00004eabu, 0x00004eaau, 0x00050051u, 0x00000008u, 0x00004eaeu, 0x0000875au, 0x00000001u, + 0x0007004fu, 0x000001b1u, 0x00004eb0u, 0x00008455u, 0x00008455u, 0x00000002u, 0x00000003u, 0x00050082u, + 0x000001b1u, 0x00004eb3u, 0x00004eb0u, 0x00004ea8u, 0x00040072u, 0x000000f2u, 0x00004eb4u, 0x00004eb3u, + 0x00050050u, 0x000000f2u, 0x00004eb5u, 0x00004eaeu, 0x00004eaeu, 0x00050084u, 0x000000f2u, 0x00004eb6u, + 0x00004eb5u, 0x00004eb4u, 0x00050080u, 0x000000f2u, 0x00004eb7u, 0x00004eacu, 0x00004eb6u, 0x0007004fu, + 0x000001b1u, 0x00004eb9u, 0x000082e9u, 0x000082e9u, 0x00000002u, 0x00000003u, 0x00050082u, 0x000001b1u, + 0x00004ebcu, 0x00004eb9u, 0x00004ea8u, 0x000500c4u, 0x000001b1u, 0x00004ebeu, 0x00004ebcu, 0x0000c241u, + 0x00040072u, 0x000000f2u, 0x00004ebfu, 0x00004ebeu, 0x00050080u, 0x000000f2u, 0x00004ec0u, 0x00004eb7u, + 0x00004ebfu, 0x00050080u, 0x000000f2u, 0x00004ec2u, 0x00004ec0u, 0x0000c242u, 0x000200f9u, 0x00004ee5u, + 0x000200f8u, 0x00004ee5u, 0x000700f5u, 0x000000f2u, 0x0000877au, 0x00004ec2u, 0x00004ea2u, 0x00004ee4u, + 0x00004ecdu, 0x00050051u, 0x00000008u, 0x00004ee8u, 0x00008778u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00004ee9u, 0x00008778u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004eeau, 0x0000877au, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00004eebu, 0x0000877au, 0x00000001u, 0x00070050u, 0x00000009u, 0x00004eecu, + 0x00004ee8u, 0x00004ee9u, 0x00004eeau, 0x00004eebu, 0x000500c3u, 0x00000009u, 0x00004eefu, 0x00004eecu, + 0x0000c23au, 0x00050051u, 0x00000008u, 0x00004ef1u, 0x00004e26u, 0x00000002u, 0x00070050u, 0x00000009u, + 0x00004ef3u, 0x00004ef1u, 0x00004ef1u, 0x00004ef1u, 0x00004ef1u, 0x00050080u, 0x00000009u, 0x00004ef4u, + 0x00004eefu, 0x00004ef3u, 0x00040072u, 0x00000013u, 0x00004ef6u, 0x00004ef4u, 0x000200f9u, 0x00004efbu, + 0x000200f8u, 0x00004efbu, 0x000700f5u, 0x00000013u, 0x0000877cu, 0x00004ef6u, 0x00004ee5u, 0x00004efau, + 0x00004ef7u, 0x000200f9u, 0x00004fb2u, 0x000200f8u, 0x00004fb2u, 0x000700f5u, 0x00000013u, 0x0000877bu, + 0x0000877cu, 0x00004efbu, 0x0000877du, 0x00004fb1u, 0x000400a8u, 0x00000069u, 0x00004fb6u, 0x00002360u, + 0x000500a7u, 0x00000069u, 0x00004fb7u, 0x0000248eu, 0x00004fb6u, 0x000300f7u, 0x00004fbcu, 0x00000000u, + 0x000400fau, 0x00004fb7u, 0x00004fb8u, 0x00004fbcu, 0x000200f8u, 0x00004fb8u, 0x00040072u, 0x00000009u, + 0x000062fau, 0x0000877bu, 0x000600cau, 0x00000009u, 0x000062fbu, 0x000062fau, 0x00000225u, 0x00000265u, + 0x00050051u, 0x00000008u, 0x000062fdu, 0x000062fbu, 0x00000002u, 0x00050051u, 0x00000012u, 0x000062ffu, + 0x00002af0u, 0x00000000u, 0x00040072u, 0x00000008u, 0x00006300u, 0x000062ffu, 0x00050051u, 0x00000008u, + 0x00006302u, 0x000062fbu, 0x00000001u, 0x00050084u, 0x00000008u, 0x00006303u, 0x00006300u, 0x00006302u, + 0x00050080u, 0x00000008u, 0x00006304u, 0x00006303u, 0x00000b11u, 0x000500c3u, 0x00000008u, 0x00006305u, + 0x00006304u, 0x00000262u, 0x00050080u, 0x00000008u, 0x00006306u, 0x000062fdu, 0x00006305u, 0x00050051u, + 0x00000012u, 0x0000630au, 0x00002af0u, 0x00000001u, 0x00040072u, 0x00000008u, 0x0000630bu, 0x0000630au, + 0x00050051u, 0x00000008u, 0x0000630du, 0x000062fbu, 0x00000000u, 0x00050084u, 0x00000008u, 0x0000630eu, + 0x0000630bu, 0x0000630du, 0x00050051u, 0x00000012u, 0x00006310u, 0x00002af0u, 0x00000002u, 0x00040072u, + 0x00000008u, 0x00006311u, 0x00006310u, 0x00050084u, 0x00000008u, 0x00006314u, 0x00006311u, 0x00006302u, + 0x00050080u, 0x00000008u, 0x00006315u, 0x0000630eu, 0x00006314u, 0x00050080u, 0x00000008u, 0x00006316u, + 0x00006315u, 0x00000b11u, 0x000500c3u, 0x00000008u, 0x00006317u, 0x00006316u, 0x00000262u, 0x00050080u, + 0x00000008u, 0x00006318u, 0x000062fdu, 0x00006317u, 0x00050051u, 0x00000012u, 0x0000631cu, 0x00002af0u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x0000631du, 0x0000631cu, 0x00050084u, 0x00000008u, 0x00006320u, + 0x0000631du, 0x0000630du, 0x00050080u, 0x00000008u, 0x00006321u, 0x00006320u, 0x00000b11u, 0x000500c3u, + 0x00000008u, 0x00006322u, 0x00006321u, 0x00000262u, 0x00050080u, 0x00000008u, 0x00006323u, 0x000062fdu, + 0x00006322u, 0x00040072u, 0x00000012u, 0x00006327u, 0x00006306u, 0x00040072u, 0x00000012u, 0x00006329u, + 0x00006318u, 0x00040072u, 0x00000012u, 0x0000632bu, 0x00006323u, 0x00040072u, 0x00000012u, 0x0000632du, + 0x000062fdu, 0x00070050u, 0x00000013u, 0x0000632eu, 0x00006327u, 0x00006329u, 0x0000632bu, 0x0000632du, + 0x000200f9u, 0x00004fbcu, 0x000200f8u, 0x00004fbcu, 0x000700f5u, 0x00000013u, 0x00008781u, 0x0000877bu, + 0x00004fb2u, 0x0000632eu, 0x00004fb8u, 0x000200f9u, 0x000024aau, 0x000200f8u, 0x00002490u, 0x00040072u, + 0x00000009u, 0x00004927u, 0x00008210u, 0x000600cau, 0x00000009u, 0x00004928u, 0x00004927u, 0x00000225u, + 0x00000265u, 0x00050051u, 0x00000008u, 0x0000492au, 0x00004928u, 0x00000002u, 0x00050051u, 0x00000012u, + 0x0000492cu, 0x00002af0u, 0x00000000u, 0x00040072u, 0x00000008u, 0x0000492du, 0x0000492cu, 0x00050051u, + 0x00000008u, 0x0000492fu, 0x00004928u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00004930u, 0x0000492du, + 0x0000492fu, 0x00050080u, 0x00000008u, 0x00004931u, 0x00004930u, 0x00000b11u, 0x000500c3u, 0x00000008u, + 0x00004932u, 0x00004931u, 0x00000262u, 0x00050080u, 0x00000008u, 0x00004933u, 0x0000492au, 0x00004932u, + 0x00050051u, 0x00000012u, 0x00004937u, 0x00002af0u, 0x00000001u, 0x00040072u, 0x00000008u, 0x00004938u, + 0x00004937u, 0x00050051u, 0x00000008u, 0x0000493au, 0x00004928u, 0x00000000u, 0x00050084u, 0x00000008u, + 0x0000493bu, 0x00004938u, 0x0000493au, 0x00050051u, 0x00000012u, 0x0000493du, 0x00002af0u, 0x00000002u, + 0x00040072u, 0x00000008u, 0x0000493eu, 0x0000493du, 0x00050084u, 0x00000008u, 0x00004941u, 0x0000493eu, + 0x0000492fu, 0x00050080u, 0x00000008u, 0x00004942u, 0x0000493bu, 0x00004941u, 0x00050080u, 0x00000008u, + 0x00004943u, 0x00004942u, 0x00000b11u, 0x000500c3u, 0x00000008u, 0x00004944u, 0x00004943u, 0x00000262u, + 0x00050080u, 0x00000008u, 0x00004945u, 0x0000492au, 0x00004944u, 0x00050051u, 0x00000012u, 0x00004949u, + 0x00002af0u, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000494au, 0x00004949u, 0x00050084u, 0x00000008u, + 0x0000494du, 0x0000494au, 0x0000493au, 0x00050080u, 0x00000008u, 0x0000494eu, 0x0000494du, 0x00000b11u, + 0x000500c3u, 0x00000008u, 0x0000494fu, 0x0000494eu, 0x00000262u, 0x00050080u, 0x00000008u, 0x00004950u, + 0x0000492au, 0x0000494fu, 0x00040072u, 0x00000012u, 0x00004954u, 0x00004933u, 0x00040072u, 0x00000012u, + 0x00004956u, 0x00004945u, 0x00040072u, 0x00000012u, 0x00004958u, 0x00004950u, 0x00040072u, 0x00000012u, + 0x0000495au, 0x0000492au, 0x00070050u, 0x00000013u, 0x0000495bu, 0x00004954u, 0x00004956u, 0x00004958u, + 0x0000495au, 0x000200f9u, 0x000024aau, 0x000200f8u, 0x000024aau, 0x000700f5u, 0x00000013u, 0x0000bcecu, + 0x00008663u, 0x00002490u, 0x00008645u, 0x00004fbcu, 0x000700f5u, 0x00000013u, 0x0000bc44u, 0x0000856eu, + 0x00002490u, 0x00008550u, 0x00004fbcu, 0x000700f5u, 0x00000013u, 0x0000bb9cu, 0x00008473u, 0x00002490u, + 0x00008455u, 0x00004fbcu, 0x000700f5u, 0x00000013u, 0x0000baf4u, 0x00008307u, 0x00002490u, 0x000082e9u, + 0x00004fbcu, 0x000700f5u, 0x00000013u, 0x00008ab6u, 0x0000495bu, 0x00002490u, 0x00008781u, 0x00004fbcu, + 0x000200f9u, 0x000024abu, 0x000200f8u, 0x000024abu, 0x000700f5u, 0x00000013u, 0x0000bcebu, 0x00008663u, + 0x00002489u, 0x0000bcecu, 0x000024aau, 0x000700f5u, 0x00000013u, 0x0000bc43u, 0x0000856eu, 0x00002489u, + 0x0000bc44u, 0x000024aau, 0x000700f5u, 0x00000013u, 0x0000bb9bu, 0x00008473u, 0x00002489u, 0x0000bb9cu, + 0x000024aau, 0x000700f5u, 0x00000013u, 0x0000baf3u, 0x00008307u, 0x00002489u, 0x0000baf4u, 0x000024aau, + 0x000700f5u, 0x00000013u, 0x00008a04u, 0x00008a13u, 0x00002489u, 0x00008ab6u, 0x000024aau, 0x000600a9u, + 0x00000008u, 0x000024aeu, 0x00002342u, 0x0000022fu, 0x00000225u, 0x000500c3u, 0x00000008u, 0x000024afu, + 0x00007aa7u, 0x000024aeu, 0x000500c3u, 0x00000008u, 0x000024b1u, 0x0000259cu, 0x00000232u, 0x000500c7u, + 0x00000008u, 0x000024b3u, 0x0000259cu, 0x00000235u, 0x000500b1u, 0x00000069u, 0x00006334u, 0x000024b1u, + 0x00000232u, 0x000300f7u, 0x00006349u, 0x00000000u, 0x000400fau, 0x00006334u, 0x00006335u, 0x00006342u, + 0x000200f8u, 0x00006342u, 0x000500aau, 0x00000069u, 0x00006344u, 0x000024b1u, 0x00000232u, 0x000300f7u, + 0x00006348u, 0x00000000u, 0x000400fau, 0x00006344u, 0x00006345u, 0x00006347u, 0x000200f8u, 0x00006347u, + 0x000200f9u, 0x00006348u, 0x000200f8u, 0x00006345u, 0x000500c7u, 0x00000011u, 0x00006373u, 0x00008883u, + 0x00000349u, 0x00040071u, 0x00000006u, 0x00006374u, 0x00006373u, 0x0004007cu, 0x00000008u, 0x00006375u, + 0x00006374u, 0x000200f9u, 0x00006348u, 0x000200f8u, 0x00006348u, 0x000700f5u, 0x00000008u, 0x0000898du, + 0x00006375u, 0x00006345u, 0x00000225u, 0x00006347u, 0x000200f9u, 0x00006349u, 0x000200f8u, 0x00006335u, + 0x000500c7u, 0x00000008u, 0x00006338u, 0x000024afu, 0x00000235u, 0x00050084u, 0x00000008u, 0x00006339u, + 0x00006338u, 0x00000238u, 0x000500c7u, 0x00000008u, 0x0000633bu, 0x00007aa9u, 0x00000235u, 0x00050080u, + 0x00000008u, 0x0000633cu, 0x00006339u, 0x0000633bu, 0x0003003eu, 0x0000632fu, 0x00000397u, 0x00060041u, + 0x0000007bu, 0x0000633du, 0x0000632fu, 0x000024b1u, 0x0000633cu, 0x0004003du, 0x0000000fu, 0x0000633eu, + 0x0000633du, 0x00040071u, 0x00000006u, 0x0000633fu, 0x0000633eu, 0x0004007cu, 0x00000008u, 0x00006340u, + 0x0000633fu, 0x00050084u, 0x00000008u, 0x00006341u, 0x00006340u, 0x000003a5u, 0x000200f9u, 0x00006349u, + 0x000200f8u, 0x00006349u, 0x000700f5u, 0x00000008u, 0x0000898cu, 0x00006341u, 0x00006335u, 0x0000898du, + 0x00006348u, 0x000500aau, 0x00000069u, 0x0000634bu, 0x000024b3u, 0x00000235u, 0x000300f7u, 0x0000636fu, + 0x00000000u, 0x000400fau, 0x0000634bu, 0x0000634cu, 0x0000634du, 0x000200f8u, 0x0000634du, 0x000500aau, + 0x00000069u, 0x0000634fu, 0x000024b3u, 0x00000232u, 0x000300f7u, 0x0000636eu, 0x00000000u, 0x000400fau, + 0x0000634fu, 0x00006350u, 0x00006352u, 0x000200f8u, 0x00006352u, 0x000500afu, 0x00000069u, 0x00006354u, + 0x000024b1u, 0x00000232u, 0x000300f7u, 0x00006365u, 0x00000000u, 0x000400fau, 0x00006354u, 0x00006355u, + 0x00006362u, 0x000200f8u, 0x00006362u, 0x000500c7u, 0x00000008u, 0x00006364u, 0x0000898cu, 0x00000241u, + 0x000200f9u, 0x00006365u, 0x000200f8u, 0x00006355u, 0x000500c7u, 0x00000008u, 0x00006357u, 0x000024b1u, + 0x0000022fu, 0x000500c7u, 0x00000008u, 0x00006359u, 0x000024afu, 0x00000235u, 0x00050084u, 0x00000008u, + 0x0000635au, 0x00006359u, 0x00000238u, 0x000500c7u, 0x00000008u, 0x0000635cu, 0x00007aa9u, 0x00000235u, + 0x00050080u, 0x00000008u, 0x0000635du, 0x0000635au, 0x0000635cu, 0x0003003eu, 0x00006331u, 0x00000397u, + 0x00060041u, 0x0000007bu, 0x0000635eu, 0x00006331u, 0x00006357u, 0x0000635du, 0x0004003du, 0x0000000fu, + 0x0000635fu, 0x0000635eu, 0x00040071u, 0x00000006u, 0x00006360u, 0x0000635fu, 0x0004007cu, 0x00000008u, + 0x00006361u, 0x00006360u, 0x000200f9u, 0x00006365u, 0x000200f8u, 0x00006365u, 0x000700f5u, 0x00000008u, + 0x0000898eu, 0x00006361u, 0x00006355u, 0x00006364u, 0x00006362u, 0x000500aau, 0x00000069u, 0x00006368u, + 0x000024b3u, 0x0000022fu, 0x000300f7u, 0x0000636du, 0x00000000u, 0x000400fau, 0x00006368u, 0x00006369u, + 0x0000636du, 0x000200f8u, 0x00006369u, 0x000400c8u, 0x00000008u, 0x0000636bu, 0x0000898eu, 0x000500c7u, + 0x00000008u, 0x0000636cu, 0x0000636bu, 0x00000241u, 0x000200f9u, 0x0000636du, 0x000200f8u, 0x0000636du, + 0x000700f5u, 0x00000008u, 0x00008997u, 0x0000898eu, 0x00006365u, 0x0000636cu, 0x00006369u, 0x000200f9u, + 0x0000636eu, 0x000200f8u, 0x00006350u, 0x000500c7u, 0x00000011u, 0x00006379u, 0x00008883u, 0x00000339u, + 0x00040071u, 0x00000006u, 0x0000637au, 0x00006379u, 0x0004007cu, 0x00000008u, 0x0000637bu, 0x0000637au, + 0x000200f9u, 0x0000636eu, 0x000200f8u, 0x0000636eu, 0x000700f5u, 0x00000008u, 0x00008996u, 0x0000637bu, + 0x00006350u, 0x00008997u, 0x0000636du, 0x000200f9u, 0x0000636fu, 0x000200f8u, 0x0000634cu, 0x000200f9u, + 0x0000636fu, 0x000200f8u, 0x0000636fu, 0x000700f5u, 0x00000008u, 0x00008995u, 0x00000225u, 0x0000634cu, + 0x00008996u, 0x0000636eu, 0x000300f7u, 0x00002520u, 0x00000000u, 0x000400fau, 0x0000233fu, 0x000024b9u, + 0x00002504u, 0x000200f8u, 0x00002504u, 0x000500c7u, 0x00000011u, 0x00006777u, 0x00008883u, 0x00000339u, + 0x000500c4u, 0x00000011u, 0x00006778u, 0x00006777u, 0x0000033bu, 0x000500c5u, 0x00000011u, 0x00006779u, + 0x00006778u, 0x0000033du, 0x0004007cu, 0x00000012u, 0x0000677au, 0x00006779u, 0x00050051u, 0x0000000fu, + 0x00006796u, 0x00002596u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00006797u, 0x00006796u, 0x0004007cu, + 0x00000008u, 0x00006798u, 0x00006797u, 0x00050051u, 0x0000000fu, 0x0000679au, 0x00002598u, 0x00000000u, + 0x00040071u, 0x00000006u, 0x0000679bu, 0x0000679au, 0x0004007cu, 0x00000008u, 0x0000679cu, 0x0000679bu, + 0x000300f7u, 0x0000680eu, 0x00000000u, 0x000f00fbu, 0x00006798u, 0x000067edu, 0x00000000u, 0x000067f3u, + 0x00000001u, 0x000067f8u, 0x00000002u, 0x000067fdu, 0x00000004u, 0x00006802u, 0x00000007u, 0x00006808u, + 0x00000006u, 0x0000680du, 0x000200f8u, 0x0000680du, 0x000200f9u, 0x0000680eu, 0x000200f8u, 0x00006808u, + 0x00040072u, 0x00000008u, 0x0000680bu, 0x0000677au, 0x00060050u, 0x00000044u, 0x0000680cu, 0x0000680bu, + 0x0000680bu, 0x0000680bu, 0x000200f9u, 0x0000680eu, 0x000200f8u, 0x00006802u, 0x0008004fu, 0x00000047u, + 0x00006805u, 0x00002b34u, 0x00002b34u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x00006806u, 0x00006805u, 0x0004007cu, 0x00000044u, 0x00006807u, 0x00006806u, 0x000200f9u, 0x0000680eu, + 0x000200f8u, 0x000067fdu, 0x0008004fu, 0x000004bbu, 0x00006800u, 0x00008a04u, 0x00008a04u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006801u, 0x00006800u, 0x000200f9u, 0x0000680eu, + 0x000200f8u, 0x000067f8u, 0x0008004fu, 0x000004bbu, 0x000067fbu, 0x00008210u, 0x00008210u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x000067fcu, 0x000067fbu, 0x000200f9u, 0x0000680eu, + 0x000200f8u, 0x000067f3u, 0x000200f9u, 0x0000680eu, 0x000200f8u, 0x000067edu, 0x0008004fu, 0x00000047u, + 0x000067f0u, 0x00002adcu, 0x00002adcu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x000067f1u, 0x000067f0u, 0x0004007cu, 0x00000044u, 0x000067f2u, 0x000067f1u, 0x000200f9u, 0x0000680eu, + 0x000200f8u, 0x0000680eu, 0x001100f5u, 0x00000044u, 0x00008ce4u, 0x000067f2u, 0x000067edu, 0x0000c250u, + 0x000067f3u, 0x000067fcu, 0x000067f8u, 0x00006801u, 0x000067fdu, 0x00006807u, 0x00006802u, 0x0000680cu, + 0x00006808u, 0x00001ad6u, 0x0000680du, 0x000300f7u, 0x00006827u, 0x00000000u, 0x000d00fbu, 0x0000679cu, + 0x00006810u, 0x00000000u, 0x00006815u, 0x00000001u, 0x00006819u, 0x00000002u, 0x0000681du, 0x00000004u, + 0x00006821u, 0x00000006u, 0x00006826u, 0x000200f8u, 0x00006826u, 0x000200f9u, 0x00006827u, 0x000200f8u, + 0x00006821u, 0x00050051u, 0x0000000fu, 0x00006823u, 0x00002b34u, 0x00000003u, 0x00040071u, 0x00000006u, + 0x00006824u, 0x00006823u, 0x0004007cu, 0x00000008u, 0x00006825u, 0x00006824u, 0x000200f9u, 0x00006827u, + 0x000200f8u, 0x0000681du, 0x00050051u, 0x00000012u, 0x0000681fu, 0x00008a04u, 0x00000003u, 0x00040072u, + 0x00000008u, 0x00006820u, 0x0000681fu, 0x000200f9u, 0x00006827u, 0x000200f8u, 0x00006819u, 0x00050051u, + 0x00000012u, 0x0000681bu, 0x00008210u, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000681cu, 0x0000681bu, + 0x000200f9u, 0x00006827u, 0x000200f8u, 0x00006815u, 0x000200f9u, 0x00006827u, 0x000200f8u, 0x00006810u, + 0x00050051u, 0x0000000fu, 0x00006812u, 0x00002adcu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006813u, + 0x00006812u, 0x0004007cu, 0x00000008u, 0x00006814u, 0x00006813u, 0x000200f9u, 0x00006827u, 0x000200f8u, + 0x00006827u, 0x000f00f5u, 0x00000008u, 0x00008ce5u, 0x00006814u, 0x00006810u, 0x00000225u, 0x00006815u, + 0x0000681cu, 0x00006819u, 0x00006820u, 0x0000681du, 0x00006825u, 0x00006821u, 0x00001ad5u, 0x00006826u, + 0x00050051u, 0x00000008u, 0x0000682au, 0x00008ce4u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000682bu, + 0x00008ce4u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000682cu, 0x00008ce4u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x0000682du, 0x0000682au, 0x0000682bu, 0x0000682cu, 0x00008ce5u, 0x00050051u, 0x0000000fu, + 0x000067a0u, 0x00002596u, 0x00000001u, 0x00040071u, 0x00000006u, 0x000067a1u, 0x000067a0u, 0x0004007cu, + 0x00000008u, 0x000067a2u, 0x000067a1u, 0x00050051u, 0x0000000fu, 0x000067a4u, 0x00002598u, 0x00000001u, + 0x00040071u, 0x00000006u, 0x000067a5u, 0x000067a4u, 0x0004007cu, 0x00000008u, 0x000067a6u, 0x000067a5u, + 0x000300f7u, 0x0000685au, 0x00000000u, 0x000d00fbu, 0x000067a2u, 0x00006833u, 0x00000000u, 0x00006839u, + 0x00000001u, 0x0000683eu, 0x00000002u, 0x00006843u, 0x00000004u, 0x00006848u, 0x00000007u, 0x0000684eu, + 0x000200f8u, 0x0000684eu, 0x00050051u, 0x0000000fu, 0x00006850u, 0x00002adeu, 0x00000001u, 0x00040071u, + 0x00000006u, 0x00006851u, 0x00006850u, 0x0004007cu, 0x00000008u, 0x00006852u, 0x00006851u, 0x000500c4u, + 0x00000008u, 0x00006853u, 0x00006852u, 0x00000262u, 0x00050051u, 0x0000000fu, 0x00006855u, 0x00002adeu, + 0x00000002u, 0x00040071u, 0x00000006u, 0x00006856u, 0x00006855u, 0x0004007cu, 0x00000008u, 0x00006857u, + 0x00006856u, 0x000500c5u, 0x00000008u, 0x00006858u, 0x00006853u, 0x00006857u, 0x00060050u, 0x00000044u, + 0x00006859u, 0x00006858u, 0x00006858u, 0x00006858u, 0x000200f9u, 0x0000685au, 0x000200f8u, 0x00006848u, + 0x0008004fu, 0x00000047u, 0x0000684bu, 0x00002b34u, 0x00002b34u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040071u, 0x00000311u, 0x0000684cu, 0x0000684bu, 0x0004007cu, 0x00000044u, 0x0000684du, 0x0000684cu, + 0x000200f9u, 0x0000685au, 0x000200f8u, 0x00006843u, 0x0008004fu, 0x000004bbu, 0x00006846u, 0x00008a04u, + 0x00008a04u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006847u, 0x00006846u, + 0x000200f9u, 0x0000685au, 0x000200f8u, 0x0000683eu, 0x0008004fu, 0x000004bbu, 0x00006841u, 0x00008210u, + 0x00008210u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006842u, 0x00006841u, + 0x000200f9u, 0x0000685au, 0x000200f8u, 0x00006839u, 0x000200f9u, 0x0000685au, 0x000200f8u, 0x00006833u, + 0x0008004fu, 0x00000047u, 0x00006836u, 0x00002adeu, 0x00002adeu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040071u, 0x00000311u, 0x00006837u, 0x00006836u, 0x0004007cu, 0x00000044u, 0x00006838u, 0x00006837u, + 0x000200f9u, 0x0000685au, 0x000200f8u, 0x0000685au, 0x000f00f5u, 0x00000044u, 0x00008ce7u, 0x00006838u, + 0x00006833u, 0x0000c250u, 0x00006839u, 0x00006842u, 0x0000683eu, 0x00006847u, 0x00006843u, 0x0000684du, + 0x00006848u, 0x00006859u, 0x0000684eu, 0x000300f7u, 0x00006873u, 0x00000000u, 0x000d00fbu, 0x000067a6u, + 0x0000685cu, 0x00000000u, 0x00006861u, 0x00000001u, 0x00006865u, 0x00000002u, 0x00006869u, 0x00000004u, + 0x0000686du, 0x00000006u, 0x00006872u, 0x000200f8u, 0x00006872u, 0x000200f9u, 0x00006873u, 0x000200f8u, + 0x0000686du, 0x00050051u, 0x0000000fu, 0x0000686fu, 0x00002b34u, 0x00000003u, 0x00040071u, 0x00000006u, + 0x00006870u, 0x0000686fu, 0x0004007cu, 0x00000008u, 0x00006871u, 0x00006870u, 0x000200f9u, 0x00006873u, + 0x000200f8u, 0x00006869u, 0x00050051u, 0x00000012u, 0x0000686bu, 0x00008a04u, 0x00000003u, 0x00040072u, + 0x00000008u, 0x0000686cu, 0x0000686bu, 0x000200f9u, 0x00006873u, 0x000200f8u, 0x00006865u, 0x00050051u, + 0x00000012u, 0x00006867u, 0x00008210u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006868u, 0x00006867u, + 0x000200f9u, 0x00006873u, 0x000200f8u, 0x00006861u, 0x000200f9u, 0x00006873u, 0x000200f8u, 0x0000685cu, + 0x00050051u, 0x0000000fu, 0x0000685eu, 0x00002adeu, 0x00000003u, 0x00040071u, 0x00000006u, 0x0000685fu, + 0x0000685eu, 0x0004007cu, 0x00000008u, 0x00006860u, 0x0000685fu, 0x000200f9u, 0x00006873u, 0x000200f8u, + 0x00006873u, 0x000f00f5u, 0x00000008u, 0x00008ce8u, 0x00006860u, 0x0000685cu, 0x00000225u, 0x00006861u, + 0x00006868u, 0x00006865u, 0x0000686cu, 0x00006869u, 0x00006871u, 0x0000686du, 0x00001ad5u, 0x00006872u, + 0x00050051u, 0x00000008u, 0x00006876u, 0x00008ce7u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006877u, + 0x00008ce7u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00006878u, 0x00008ce7u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x00006879u, 0x00006876u, 0x00006877u, 0x00006878u, 0x00008ce8u, 0x00050051u, 0x0000000fu, + 0x000067aau, 0x00002596u, 0x00000002u, 0x00040071u, 0x00000006u, 0x000067abu, 0x000067aau, 0x0004007cu, + 0x00000008u, 0x000067acu, 0x000067abu, 0x00050051u, 0x0000000fu, 0x000067aeu, 0x00002598u, 0x00000002u, + 0x00040071u, 0x00000006u, 0x000067afu, 0x000067aeu, 0x0004007cu, 0x00000008u, 0x000067b0u, 0x000067afu, + 0x000300f7u, 0x000068c0u, 0x00000000u, 0x001700fbu, 0x000067acu, 0x0000687fu, 0x00000000u, 0x00006885u, + 0x00000007u, 0x0000688au, 0x00000001u, 0x0000688fu, 0x00000002u, 0x00006894u, 0x00000004u, 0x00006899u, + 0x00000008u, 0x0000689fu, 0x00000009u, 0x000068a4u, 0x0000000bu, 0x000068a9u, 0x0000000du, 0x000068afu, + 0x0000000fu, 0x000068b4u, 0x000200f8u, 0x000068b4u, 0x00050051u, 0x0000000fu, 0x000068b6u, 0x00002ae0u, + 0x00000001u, 0x00040071u, 0x00000006u, 0x000068b7u, 0x000068b6u, 0x0004007cu, 0x00000008u, 0x000068b8u, + 0x000068b7u, 0x000500c4u, 0x00000008u, 0x000068b9u, 0x000068b8u, 0x00000262u, 0x00050051u, 0x0000000fu, + 0x000068bbu, 0x00002ae0u, 0x00000002u, 0x00040071u, 0x00000006u, 0x000068bcu, 0x000068bbu, 0x0004007cu, + 0x00000008u, 0x000068bdu, 0x000068bcu, 0x000500c5u, 0x00000008u, 0x000068beu, 0x000068b9u, 0x000068bdu, + 0x00060050u, 0x00000044u, 0x000068bfu, 0x000068beu, 0x000068beu, 0x000068beu, 0x000200f9u, 0x000068c0u, + 0x000200f8u, 0x000068afu, 0x00040072u, 0x00000008u, 0x000068b2u, 0x00008ac0u, 0x00060050u, 0x00000044u, + 0x000068b3u, 0x000068b2u, 0x000068b2u, 0x000068b2u, 0x000200f9u, 0x000068c0u, 0x000200f8u, 0x000068a9u, + 0x0008004fu, 0x00000047u, 0x000068acu, 0x00002b34u, 0x00002b34u, 0x00000003u, 0x00000003u, 0x00000003u, + 0x00040071u, 0x00000311u, 0x000068adu, 0x000068acu, 0x0004007cu, 0x00000044u, 0x000068aeu, 0x000068adu, + 0x000200f9u, 0x000068c0u, 0x000200f8u, 0x000068a4u, 0x0008004fu, 0x000004bbu, 0x000068a7u, 0x00008a04u, + 0x00008a04u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, 0x00000044u, 0x000068a8u, 0x000068a7u, + 0x000200f9u, 0x000068c0u, 0x000200f8u, 0x0000689fu, 0x0008004fu, 0x000004bbu, 0x000068a2u, 0x00008210u, + 0x00008210u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, 0x00000044u, 0x000068a3u, 0x000068a2u, + 0x000200f9u, 0x000068c0u, 0x000200f8u, 0x00006899u, 0x0008004fu, 0x00000047u, 0x0000689cu, 0x00002b34u, + 0x00002b34u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x0000689du, 0x0000689cu, + 0x0004007cu, 0x00000044u, 0x0000689eu, 0x0000689du, 0x000200f9u, 0x000068c0u, 0x000200f8u, 0x00006894u, + 0x0008004fu, 0x000004bbu, 0x00006897u, 0x00008a04u, 0x00008a04u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x00006898u, 0x00006897u, 0x000200f9u, 0x000068c0u, 0x000200f8u, 0x0000688fu, + 0x0008004fu, 0x000004bbu, 0x00006892u, 0x00008210u, 0x00008210u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x00006893u, 0x00006892u, 0x000200f9u, 0x000068c0u, 0x000200f8u, 0x0000688au, + 0x000200f9u, 0x000068c0u, 0x000200f8u, 0x00006885u, 0x000200f9u, 0x000068c0u, 0x000200f8u, 0x0000687fu, + 0x0008004fu, 0x00000047u, 0x00006882u, 0x00002ae0u, 0x00002ae0u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040071u, 0x00000311u, 0x00006883u, 0x00006882u, 0x0004007cu, 0x00000044u, 0x00006884u, 0x00006883u, + 0x000200f9u, 0x000068c0u, 0x000200f8u, 0x000068c0u, 0x001900f5u, 0x00000044u, 0x00008ceau, 0x00006884u, + 0x0000687fu, 0x0000c250u, 0x00006885u, 0x0000c250u, 0x0000688au, 0x00006893u, 0x0000688fu, 0x00006898u, + 0x00006894u, 0x0000689eu, 0x00006899u, 0x000068a3u, 0x0000689fu, 0x000068a8u, 0x000068a4u, 0x000068aeu, + 0x000068a9u, 0x000068b3u, 0x000068afu, 0x000068bfu, 0x000068b4u, 0x000300f7u, 0x000068d8u, 0x00000000u, + 0x000b00fbu, 0x000067b0u, 0x000068c2u, 0x00000000u, 0x000068c7u, 0x00000001u, 0x000068cbu, 0x00000002u, + 0x000068cfu, 0x00000004u, 0x000068d3u, 0x000200f8u, 0x000068d3u, 0x00050051u, 0x0000000fu, 0x000068d5u, + 0x00002b34u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000068d6u, 0x000068d5u, 0x0004007cu, 0x00000008u, + 0x000068d7u, 0x000068d6u, 0x000200f9u, 0x000068d8u, 0x000200f8u, 0x000068cfu, 0x00050051u, 0x00000012u, + 0x000068d1u, 0x00008a04u, 0x00000003u, 0x00040072u, 0x00000008u, 0x000068d2u, 0x000068d1u, 0x000200f9u, + 0x000068d8u, 0x000200f8u, 0x000068cbu, 0x00050051u, 0x00000012u, 0x000068cdu, 0x00008210u, 0x00000003u, + 0x00040072u, 0x00000008u, 0x000068ceu, 0x000068cdu, 0x000200f9u, 0x000068d8u, 0x000200f8u, 0x000068c7u, + 0x00040072u, 0x00000008u, 0x000068cau, 0x00008ac0u, 0x000200f9u, 0x000068d8u, 0x000200f8u, 0x000068c2u, + 0x00050051u, 0x0000000fu, 0x000068c4u, 0x00002ae0u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000068c5u, + 0x000068c4u, 0x0004007cu, 0x00000008u, 0x000068c6u, 0x000068c5u, 0x000200f9u, 0x000068d8u, 0x000200f8u, + 0x000068d8u, 0x000d00f5u, 0x00000008u, 0x00008cebu, 0x000068c6u, 0x000068c2u, 0x000068cau, 0x000068c7u, + 0x000068ceu, 0x000068cbu, 0x000068d2u, 0x000068cfu, 0x000068d7u, 0x000068d3u, 0x00050051u, 0x00000008u, + 0x000068dbu, 0x00008ceau, 0x00000000u, 0x00050051u, 0x00000008u, 0x000068dcu, 0x00008ceau, 0x00000001u, + 0x00050051u, 0x00000008u, 0x000068ddu, 0x00008ceau, 0x00000002u, 0x00070050u, 0x00000009u, 0x000068deu, + 0x000068dbu, 0x000068dcu, 0x000068ddu, 0x00008cebu, 0x00050051u, 0x0000000fu, 0x000067b4u, 0x00002596u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x000067b5u, 0x000067b4u, 0x0004007cu, 0x00000008u, 0x000067b6u, + 0x000067b5u, 0x00050051u, 0x0000000fu, 0x000067b8u, 0x00002598u, 0x00000003u, 0x00040071u, 0x00000006u, + 0x000067b9u, 0x000067b8u, 0x0004007cu, 0x00000008u, 0x000067bau, 0x000067b9u, 0x000300f7u, 0x00006900u, + 0x00000000u, 0x000d00fbu, 0x000067b6u, 0x000068e4u, 0x00000000u, 0x000068eau, 0x00000001u, 0x000068efu, + 0x00000002u, 0x000068f4u, 0x00000004u, 0x000068f9u, 0x00000006u, 0x000068ffu, 0x000200f8u, 0x000068ffu, + 0x000200f9u, 0x00006900u, 0x000200f8u, 0x000068f9u, 0x0008004fu, 0x00000047u, 0x000068fcu, 0x00002b34u, + 0x00002b34u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000068fdu, 0x000068fcu, + 0x0004007cu, 0x00000044u, 0x000068feu, 0x000068fdu, 0x000200f9u, 0x00006900u, 0x000200f8u, 0x000068f4u, + 0x0008004fu, 0x000004bbu, 0x000068f7u, 0x00008a04u, 0x00008a04u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x000068f8u, 0x000068f7u, 0x000200f9u, 0x00006900u, 0x000200f8u, 0x000068efu, + 0x0008004fu, 0x000004bbu, 0x000068f2u, 0x00008210u, 0x00008210u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x000068f3u, 0x000068f2u, 0x000200f9u, 0x00006900u, 0x000200f8u, 0x000068eau, + 0x000200f9u, 0x00006900u, 0x000200f8u, 0x000068e4u, 0x0008004fu, 0x00000047u, 0x000068e7u, 0x00002ae2u, + 0x00002ae2u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000068e8u, 0x000068e7u, + 0x0004007cu, 0x00000044u, 0x000068e9u, 0x000068e8u, 0x000200f9u, 0x00006900u, 0x000200f8u, 0x00006900u, + 0x000f00f5u, 0x00000044u, 0x00008cedu, 0x000068e9u, 0x000068e4u, 0x0000c250u, 0x000068eau, 0x000068f3u, + 0x000068efu, 0x000068f8u, 0x000068f4u, 0x000068feu, 0x000068f9u, 0x00001ad6u, 0x000068ffu, 0x000300f7u, + 0x00006919u, 0x00000000u, 0x000d00fbu, 0x000067bau, 0x00006902u, 0x00000000u, 0x00006907u, 0x00000001u, + 0x0000690bu, 0x00000002u, 0x0000690fu, 0x00000004u, 0x00006913u, 0x00000006u, 0x00006918u, 0x000200f8u, + 0x00006918u, 0x000200f9u, 0x00006919u, 0x000200f8u, 0x00006913u, 0x00050051u, 0x0000000fu, 0x00006915u, + 0x00002b34u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006916u, 0x00006915u, 0x0004007cu, 0x00000008u, + 0x00006917u, 0x00006916u, 0x000200f9u, 0x00006919u, 0x000200f8u, 0x0000690fu, 0x00050051u, 0x00000012u, + 0x00006911u, 0x00008a04u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006912u, 0x00006911u, 0x000200f9u, + 0x00006919u, 0x000200f8u, 0x0000690bu, 0x00050051u, 0x00000012u, 0x0000690du, 0x00008210u, 0x00000003u, + 0x00040072u, 0x00000008u, 0x0000690eu, 0x0000690du, 0x000200f9u, 0x00006919u, 0x000200f8u, 0x00006907u, + 0x000200f9u, 0x00006919u, 0x000200f8u, 0x00006902u, 0x00050051u, 0x0000000fu, 0x00006904u, 0x00002ae2u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x00006905u, 0x00006904u, 0x0004007cu, 0x00000008u, 0x00006906u, + 0x00006905u, 0x000200f9u, 0x00006919u, 0x000200f8u, 0x00006919u, 0x000f00f5u, 0x00000008u, 0x00008ceeu, + 0x00006906u, 0x00006902u, 0x00000225u, 0x00006907u, 0x0000690eu, 0x0000690bu, 0x00006912u, 0x0000690fu, + 0x00006917u, 0x00006913u, 0x00001ad5u, 0x00006918u, 0x00050051u, 0x00000008u, 0x0000691cu, 0x00008cedu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x0000691du, 0x00008cedu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x0000691eu, 0x00008cedu, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000691fu, 0x0000691cu, 0x0000691du, + 0x0000691eu, 0x00008ceeu, 0x000600cau, 0x00000009u, 0x00006927u, 0x000068deu, 0x00000225u, 0x00000265u, + 0x00050082u, 0x00000009u, 0x00006941u, 0x0000682du, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x00006942u, + 0x00006941u, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00006944u, 0x00006942u, 0x0000c22fu, + 0x00050082u, 0x00000009u, 0x00006949u, 0x00006879u, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x0000694au, + 0x00006949u, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x0000694cu, 0x0000694au, 0x0000c22fu, + 0x00050082u, 0x00000009u, 0x00006951u, 0x0000691fu, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x00006952u, + 0x00006951u, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00006954u, 0x00006952u, 0x0000c22fu, + 0x00050082u, 0x00000009u, 0x00006930u, 0x00006944u, 0x0000694cu, 0x00050084u, 0x00000009u, 0x00006932u, + 0x00006930u, 0x00006927u, 0x00050080u, 0x00000009u, 0x00006935u, 0x00006932u, 0x0000c22fu, 0x000500c3u, + 0x00000009u, 0x00006938u, 0x00006935u, 0x0000c23au, 0x00040072u, 0x00000013u, 0x00006939u, 0x00006938u, + 0x00040072u, 0x00000013u, 0x0000693bu, 0x00006954u, 0x00050080u, 0x00000013u, 0x0000693cu, 0x00006939u, + 0x0000693bu, 0x00040072u, 0x00000009u, 0x000067c3u, 0x0000693cu, 0x00050082u, 0x00000009u, 0x00006959u, + 0x000067c3u, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x0000695bu, 0x00006959u, 0x00000225u, 0x00000265u, + 0x00050080u, 0x00000009u, 0x0000695eu, 0x0000695bu, 0x0000c22fu, 0x0008000cu, 0x00000009u, 0x00006960u, + 0x00000001u, 0x0000002du, 0x0000695eu, 0x00000b1bu, 0x00000b1cu, 0x00040072u, 0x00000013u, 0x00006961u, + 0x00006960u, 0x00050051u, 0x00000012u, 0x000067c6u, 0x00006961u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x000067c7u, 0x000067c6u, 0x00050080u, 0x00000008u, 0x000067cbu, 0x000067c7u, 0x0000022fu, 0x000500c3u, + 0x00000008u, 0x000067ccu, 0x000067cbu, 0x00000262u, 0x00050080u, 0x00000008u, 0x000067cdu, 0x000067c7u, + 0x000067ccu, 0x000300f7u, 0x000067dau, 0x00000000u, 0x000400fau, 0x0000232au, 0x000067cfu, 0x000067d7u, + 0x000200f8u, 0x000067d7u, 0x000500c4u, 0x00000008u, 0x000067d9u, 0x000023d2u, 0x0000023bu, 0x000200f9u, + 0x000067dau, 0x000200f8u, 0x000067cfu, 0x00050084u, 0x00000008u, 0x000067d2u, 0x000067cdu, 0x000023d2u, + 0x00050080u, 0x00000008u, 0x000067d3u, 0x000067d2u, 0x00000238u, 0x000500c3u, 0x00000008u, 0x000067d4u, + 0x000067d3u, 0x00000235u, 0x000500c3u, 0x00000008u, 0x000067d6u, 0x000067d4u, 0x0000023bu, 0x000200f9u, + 0x000067dau, 0x000200f8u, 0x000067dau, 0x000700f5u, 0x00000008u, 0x00008cfdu, 0x000067d6u, 0x000067cfu, + 0x000023d2u, 0x000067d7u, 0x000700f5u, 0x00000008u, 0x00008cf8u, 0x000067d4u, 0x000067cfu, 0x000067d9u, + 0x000067d7u, 0x000300f7u, 0x000067e2u, 0x00000000u, 0x000400fau, 0x0000232du, 0x000067dcu, 0x000067deu, + 0x000200f8u, 0x000067deu, 0x00050080u, 0x00000008u, 0x000067e1u, 0x000067cdu, 0x00008995u, 0x000200f9u, + 0x000067e2u, 0x000200f8u, 0x000067dcu, 0x000200f9u, 0x000067e2u, 0x000200f8u, 0x000067e2u, 0x000700f5u, + 0x00000008u, 0x00008cf9u, 0x00008cf8u, 0x000067dcu, 0x000067e1u, 0x000067deu, 0x0008000cu, 0x00000008u, + 0x000067e4u, 0x00000001u, 0x0000002du, 0x00008cf9u, 0x00000225u, 0x00000363u, 0x00040072u, 0x00000012u, + 0x000067e5u, 0x000067e4u, 0x00060052u, 0x00000013u, 0x0000799au, 0x000067e5u, 0x00006961u, 0x00000003u, + 0x00040072u, 0x00000b25u, 0x0000251cu, 0x0000799au, 0x0004007cu, 0x00000010u, 0x0000251du, 0x0000251cu, + 0x00050051u, 0x0000000fu, 0x0000251fu, 0x0000251du, 0x00000003u, 0x000200f9u, 0x00002520u, 0x000200f8u, + 0x000024b9u, 0x000500c7u, 0x00000011u, 0x0000637fu, 0x00008883u, 0x00000339u, 0x000500c4u, 0x00000011u, + 0x00006380u, 0x0000637fu, 0x0000033bu, 0x000500c5u, 0x00000011u, 0x00006381u, 0x00006380u, 0x0000033du, + 0x0004007cu, 0x00000012u, 0x00006382u, 0x00006381u, 0x00050051u, 0x0000000fu, 0x0000639fu, 0x00002592u, + 0x00000000u, 0x00040071u, 0x00000006u, 0x000063a0u, 0x0000639fu, 0x0004007cu, 0x00000008u, 0x000063a1u, + 0x000063a0u, 0x00050051u, 0x0000000fu, 0x000063a3u, 0x00002594u, 0x00000000u, 0x00040071u, 0x00000006u, + 0x000063a4u, 0x000063a3u, 0x0004007cu, 0x00000008u, 0x000063a5u, 0x000063a4u, 0x000300f7u, 0x00006416u, + 0x00000000u, 0x000f00fbu, 0x000063a1u, 0x000063f5u, 0x00000000u, 0x000063fbu, 0x00000001u, 0x00006400u, + 0x00000002u, 0x00006405u, 0x00000004u, 0x0000640au, 0x00000007u, 0x00006410u, 0x00000006u, 0x00006415u, + 0x000200f8u, 0x00006415u, 0x000200f9u, 0x00006416u, 0x000200f8u, 0x00006410u, 0x00040072u, 0x00000008u, + 0x00006413u, 0x00006382u, 0x00060050u, 0x00000044u, 0x00006414u, 0x00006413u, 0x00006413u, 0x00006413u, + 0x000200f9u, 0x00006416u, 0x000200f8u, 0x0000640au, 0x0008004fu, 0x00000047u, 0x0000640du, 0x00002b34u, + 0x00002b34u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x0000640eu, 0x0000640du, + 0x0004007cu, 0x00000044u, 0x0000640fu, 0x0000640eu, 0x000200f9u, 0x00006416u, 0x000200f8u, 0x00006405u, + 0x0008004fu, 0x000004bbu, 0x00006408u, 0x00008a04u, 0x00008a04u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x00006409u, 0x00006408u, 0x000200f9u, 0x00006416u, 0x000200f8u, 0x00006400u, + 0x0008004fu, 0x000004bbu, 0x00006403u, 0x00008210u, 0x00008210u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x00040072u, 0x00000044u, 0x00006404u, 0x00006403u, 0x000200f9u, 0x00006416u, 0x000200f8u, 0x000063fbu, + 0x000200f9u, 0x00006416u, 0x000200f8u, 0x000063f5u, 0x0008004fu, 0x00000047u, 0x000063f8u, 0x00002ad4u, + 0x00002ad4u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000063f9u, 0x000063f8u, + 0x0004007cu, 0x00000044u, 0x000063fau, 0x000063f9u, 0x000200f9u, 0x00006416u, 0x000200f8u, 0x00006416u, + 0x001100f5u, 0x00000044u, 0x00008cffu, 0x000063fau, 0x000063f5u, 0x0000c250u, 0x000063fbu, 0x00006404u, + 0x00006400u, 0x00006409u, 0x00006405u, 0x0000640fu, 0x0000640au, 0x00006414u, 0x00006410u, 0x00001ad6u, + 0x00006415u, 0x000300f7u, 0x0000642fu, 0x00000000u, 0x000d00fbu, 0x000063a5u, 0x00006418u, 0x00000000u, + 0x0000641du, 0x00000001u, 0x00006421u, 0x00000002u, 0x00006425u, 0x00000004u, 0x00006429u, 0x00000006u, + 0x0000642eu, 0x000200f8u, 0x0000642eu, 0x000200f9u, 0x0000642fu, 0x000200f8u, 0x00006429u, 0x00050051u, + 0x0000000fu, 0x0000642bu, 0x00002b34u, 0x00000003u, 0x00040071u, 0x00000006u, 0x0000642cu, 0x0000642bu, + 0x0004007cu, 0x00000008u, 0x0000642du, 0x0000642cu, 0x000200f9u, 0x0000642fu, 0x000200f8u, 0x00006425u, + 0x00050051u, 0x00000012u, 0x00006427u, 0x00008a04u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006428u, + 0x00006427u, 0x000200f9u, 0x0000642fu, 0x000200f8u, 0x00006421u, 0x00050051u, 0x00000012u, 0x00006423u, + 0x00008210u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006424u, 0x00006423u, 0x000200f9u, 0x0000642fu, + 0x000200f8u, 0x0000641du, 0x000200f9u, 0x0000642fu, 0x000200f8u, 0x00006418u, 0x00050051u, 0x0000000fu, + 0x0000641au, 0x00002ad4u, 0x00000003u, 0x00040071u, 0x00000006u, 0x0000641bu, 0x0000641au, 0x0004007cu, + 0x00000008u, 0x0000641cu, 0x0000641bu, 0x000200f9u, 0x0000642fu, 0x000200f8u, 0x0000642fu, 0x000f00f5u, + 0x00000008u, 0x00008d00u, 0x0000641cu, 0x00006418u, 0x00000225u, 0x0000641du, 0x00006424u, 0x00006421u, + 0x00006428u, 0x00006425u, 0x0000642du, 0x00006429u, 0x00001ad5u, 0x0000642eu, 0x00050051u, 0x00000008u, + 0x00006432u, 0x00008cffu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00006433u, 0x00008cffu, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00006434u, 0x00008cffu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006435u, + 0x00006432u, 0x00006433u, 0x00006434u, 0x00008d00u, 0x00050051u, 0x0000000fu, 0x000063a9u, 0x00002592u, + 0x00000001u, 0x00040071u, 0x00000006u, 0x000063aau, 0x000063a9u, 0x0004007cu, 0x00000008u, 0x000063abu, + 0x000063aau, 0x00050051u, 0x0000000fu, 0x000063adu, 0x00002594u, 0x00000001u, 0x00040071u, 0x00000006u, + 0x000063aeu, 0x000063adu, 0x0004007cu, 0x00000008u, 0x000063afu, 0x000063aeu, 0x000300f7u, 0x00006462u, + 0x00000000u, 0x000d00fbu, 0x000063abu, 0x0000643bu, 0x00000000u, 0x00006441u, 0x00000001u, 0x00006446u, + 0x00000002u, 0x0000644bu, 0x00000004u, 0x00006450u, 0x00000007u, 0x00006456u, 0x000200f8u, 0x00006456u, + 0x00050051u, 0x0000000fu, 0x00006458u, 0x00002ad6u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006459u, + 0x00006458u, 0x0004007cu, 0x00000008u, 0x0000645au, 0x00006459u, 0x000500c4u, 0x00000008u, 0x0000645bu, + 0x0000645au, 0x00000262u, 0x00050051u, 0x0000000fu, 0x0000645du, 0x00002ad6u, 0x00000002u, 0x00040071u, + 0x00000006u, 0x0000645eu, 0x0000645du, 0x0004007cu, 0x00000008u, 0x0000645fu, 0x0000645eu, 0x000500c5u, + 0x00000008u, 0x00006460u, 0x0000645bu, 0x0000645fu, 0x00060050u, 0x00000044u, 0x00006461u, 0x00006460u, + 0x00006460u, 0x00006460u, 0x000200f9u, 0x00006462u, 0x000200f8u, 0x00006450u, 0x0008004fu, 0x00000047u, + 0x00006453u, 0x00002b34u, 0x00002b34u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x00006454u, 0x00006453u, 0x0004007cu, 0x00000044u, 0x00006455u, 0x00006454u, 0x000200f9u, 0x00006462u, + 0x000200f8u, 0x0000644bu, 0x0008004fu, 0x000004bbu, 0x0000644eu, 0x00008a04u, 0x00008a04u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x0000644fu, 0x0000644eu, 0x000200f9u, 0x00006462u, + 0x000200f8u, 0x00006446u, 0x0008004fu, 0x000004bbu, 0x00006449u, 0x00008210u, 0x00008210u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x0000644au, 0x00006449u, 0x000200f9u, 0x00006462u, + 0x000200f8u, 0x00006441u, 0x000200f9u, 0x00006462u, 0x000200f8u, 0x0000643bu, 0x0008004fu, 0x00000047u, + 0x0000643eu, 0x00002ad6u, 0x00002ad6u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x0000643fu, 0x0000643eu, 0x0004007cu, 0x00000044u, 0x00006440u, 0x0000643fu, 0x000200f9u, 0x00006462u, + 0x000200f8u, 0x00006462u, 0x000f00f5u, 0x00000044u, 0x00008d02u, 0x00006440u, 0x0000643bu, 0x0000c250u, + 0x00006441u, 0x0000644au, 0x00006446u, 0x0000644fu, 0x0000644bu, 0x00006455u, 0x00006450u, 0x00006461u, + 0x00006456u, 0x000300f7u, 0x0000647bu, 0x00000000u, 0x000d00fbu, 0x000063afu, 0x00006464u, 0x00000000u, + 0x00006469u, 0x00000001u, 0x0000646du, 0x00000002u, 0x00006471u, 0x00000004u, 0x00006475u, 0x00000006u, + 0x0000647au, 0x000200f8u, 0x0000647au, 0x000200f9u, 0x0000647bu, 0x000200f8u, 0x00006475u, 0x00050051u, + 0x0000000fu, 0x00006477u, 0x00002b34u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006478u, 0x00006477u, + 0x0004007cu, 0x00000008u, 0x00006479u, 0x00006478u, 0x000200f9u, 0x0000647bu, 0x000200f8u, 0x00006471u, + 0x00050051u, 0x00000012u, 0x00006473u, 0x00008a04u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006474u, + 0x00006473u, 0x000200f9u, 0x0000647bu, 0x000200f8u, 0x0000646du, 0x00050051u, 0x00000012u, 0x0000646fu, + 0x00008210u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006470u, 0x0000646fu, 0x000200f9u, 0x0000647bu, + 0x000200f8u, 0x00006469u, 0x000200f9u, 0x0000647bu, 0x000200f8u, 0x00006464u, 0x00050051u, 0x0000000fu, + 0x00006466u, 0x00002ad6u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006467u, 0x00006466u, 0x0004007cu, + 0x00000008u, 0x00006468u, 0x00006467u, 0x000200f9u, 0x0000647bu, 0x000200f8u, 0x0000647bu, 0x000f00f5u, + 0x00000008u, 0x00008d03u, 0x00006468u, 0x00006464u, 0x00000225u, 0x00006469u, 0x00006470u, 0x0000646du, + 0x00006474u, 0x00006471u, 0x00006479u, 0x00006475u, 0x00001ad5u, 0x0000647au, 0x00050051u, 0x00000008u, + 0x0000647eu, 0x00008d02u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000647fu, 0x00008d02u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00006480u, 0x00008d02u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006481u, + 0x0000647eu, 0x0000647fu, 0x00006480u, 0x00008d03u, 0x00050051u, 0x0000000fu, 0x000063b3u, 0x00002592u, + 0x00000002u, 0x00040071u, 0x00000006u, 0x000063b4u, 0x000063b3u, 0x0004007cu, 0x00000008u, 0x000063b5u, + 0x000063b4u, 0x00050051u, 0x0000000fu, 0x000063b7u, 0x00002594u, 0x00000002u, 0x00040071u, 0x00000006u, + 0x000063b8u, 0x000063b7u, 0x0004007cu, 0x00000008u, 0x000063b9u, 0x000063b8u, 0x000300f7u, 0x000064c8u, + 0x00000000u, 0x001700fbu, 0x000063b5u, 0x00006487u, 0x00000000u, 0x0000648du, 0x00000007u, 0x00006492u, + 0x00000001u, 0x00006497u, 0x00000002u, 0x0000649cu, 0x00000004u, 0x000064a1u, 0x00000008u, 0x000064a7u, + 0x00000009u, 0x000064acu, 0x0000000bu, 0x000064b1u, 0x0000000du, 0x000064b7u, 0x0000000fu, 0x000064bcu, + 0x000200f8u, 0x000064bcu, 0x00050051u, 0x0000000fu, 0x000064beu, 0x00002ad8u, 0x00000001u, 0x00040071u, + 0x00000006u, 0x000064bfu, 0x000064beu, 0x0004007cu, 0x00000008u, 0x000064c0u, 0x000064bfu, 0x000500c4u, + 0x00000008u, 0x000064c1u, 0x000064c0u, 0x00000262u, 0x00050051u, 0x0000000fu, 0x000064c3u, 0x00002ad8u, + 0x00000002u, 0x00040071u, 0x00000006u, 0x000064c4u, 0x000064c3u, 0x0004007cu, 0x00000008u, 0x000064c5u, + 0x000064c4u, 0x000500c5u, 0x00000008u, 0x000064c6u, 0x000064c1u, 0x000064c5u, 0x00060050u, 0x00000044u, + 0x000064c7u, 0x000064c6u, 0x000064c6u, 0x000064c6u, 0x000200f9u, 0x000064c8u, 0x000200f8u, 0x000064b7u, + 0x00040072u, 0x00000008u, 0x000064bau, 0x00008ac0u, 0x00060050u, 0x00000044u, 0x000064bbu, 0x000064bau, + 0x000064bau, 0x000064bau, 0x000200f9u, 0x000064c8u, 0x000200f8u, 0x000064b1u, 0x0008004fu, 0x00000047u, + 0x000064b4u, 0x00002b34u, 0x00002b34u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040071u, 0x00000311u, + 0x000064b5u, 0x000064b4u, 0x0004007cu, 0x00000044u, 0x000064b6u, 0x000064b5u, 0x000200f9u, 0x000064c8u, + 0x000200f8u, 0x000064acu, 0x0008004fu, 0x000004bbu, 0x000064afu, 0x00008a04u, 0x00008a04u, 0x00000003u, + 0x00000003u, 0x00000003u, 0x00040072u, 0x00000044u, 0x000064b0u, 0x000064afu, 0x000200f9u, 0x000064c8u, + 0x000200f8u, 0x000064a7u, 0x0008004fu, 0x000004bbu, 0x000064aau, 0x00008210u, 0x00008210u, 0x00000003u, + 0x00000003u, 0x00000003u, 0x00040072u, 0x00000044u, 0x000064abu, 0x000064aau, 0x000200f9u, 0x000064c8u, + 0x000200f8u, 0x000064a1u, 0x0008004fu, 0x00000047u, 0x000064a4u, 0x00002b34u, 0x00002b34u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000064a5u, 0x000064a4u, 0x0004007cu, 0x00000044u, + 0x000064a6u, 0x000064a5u, 0x000200f9u, 0x000064c8u, 0x000200f8u, 0x0000649cu, 0x0008004fu, 0x000004bbu, + 0x0000649fu, 0x00008a04u, 0x00008a04u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, + 0x000064a0u, 0x0000649fu, 0x000200f9u, 0x000064c8u, 0x000200f8u, 0x00006497u, 0x0008004fu, 0x000004bbu, + 0x0000649au, 0x00008210u, 0x00008210u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, + 0x0000649bu, 0x0000649au, 0x000200f9u, 0x000064c8u, 0x000200f8u, 0x00006492u, 0x000200f9u, 0x000064c8u, + 0x000200f8u, 0x0000648du, 0x000200f9u, 0x000064c8u, 0x000200f8u, 0x00006487u, 0x0008004fu, 0x00000047u, + 0x0000648au, 0x00002ad8u, 0x00002ad8u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x0000648bu, 0x0000648au, 0x0004007cu, 0x00000044u, 0x0000648cu, 0x0000648bu, 0x000200f9u, 0x000064c8u, + 0x000200f8u, 0x000064c8u, 0x001900f5u, 0x00000044u, 0x00008d05u, 0x0000648cu, 0x00006487u, 0x0000c250u, + 0x0000648du, 0x0000c250u, 0x00006492u, 0x0000649bu, 0x00006497u, 0x000064a0u, 0x0000649cu, 0x000064a6u, + 0x000064a1u, 0x000064abu, 0x000064a7u, 0x000064b0u, 0x000064acu, 0x000064b6u, 0x000064b1u, 0x000064bbu, + 0x000064b7u, 0x000064c7u, 0x000064bcu, 0x000300f7u, 0x000064e0u, 0x00000000u, 0x000b00fbu, 0x000063b9u, + 0x000064cau, 0x00000000u, 0x000064cfu, 0x00000001u, 0x000064d3u, 0x00000002u, 0x000064d7u, 0x00000004u, + 0x000064dbu, 0x000200f8u, 0x000064dbu, 0x00050051u, 0x0000000fu, 0x000064ddu, 0x00002b34u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x000064deu, 0x000064ddu, 0x0004007cu, 0x00000008u, 0x000064dfu, 0x000064deu, + 0x000200f9u, 0x000064e0u, 0x000200f8u, 0x000064d7u, 0x00050051u, 0x00000012u, 0x000064d9u, 0x00008a04u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x000064dau, 0x000064d9u, 0x000200f9u, 0x000064e0u, 0x000200f8u, + 0x000064d3u, 0x00050051u, 0x00000012u, 0x000064d5u, 0x00008210u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x000064d6u, 0x000064d5u, 0x000200f9u, 0x000064e0u, 0x000200f8u, 0x000064cfu, 0x00040072u, 0x00000008u, + 0x000064d2u, 0x00008ac0u, 0x000200f9u, 0x000064e0u, 0x000200f8u, 0x000064cau, 0x00050051u, 0x0000000fu, + 0x000064ccu, 0x00002ad8u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000064cdu, 0x000064ccu, 0x0004007cu, + 0x00000008u, 0x000064ceu, 0x000064cdu, 0x000200f9u, 0x000064e0u, 0x000200f8u, 0x000064e0u, 0x000d00f5u, + 0x00000008u, 0x00008d06u, 0x000064ceu, 0x000064cau, 0x000064d2u, 0x000064cfu, 0x000064d6u, 0x000064d3u, + 0x000064dau, 0x000064d7u, 0x000064dfu, 0x000064dbu, 0x00050051u, 0x00000008u, 0x000064e3u, 0x00008d05u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000064e4u, 0x00008d05u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000064e5u, 0x00008d05u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000064e6u, 0x000064e3u, 0x000064e4u, + 0x000064e5u, 0x00008d06u, 0x00050051u, 0x0000000fu, 0x000063bdu, 0x00002592u, 0x00000003u, 0x00040071u, + 0x00000006u, 0x000063beu, 0x000063bdu, 0x0004007cu, 0x00000008u, 0x000063bfu, 0x000063beu, 0x00050051u, + 0x0000000fu, 0x000063c1u, 0x00002594u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000063c2u, 0x000063c1u, + 0x0004007cu, 0x00000008u, 0x000063c3u, 0x000063c2u, 0x000300f7u, 0x00006508u, 0x00000000u, 0x000d00fbu, + 0x000063bfu, 0x000064ecu, 0x00000000u, 0x000064f2u, 0x00000001u, 0x000064f7u, 0x00000002u, 0x000064fcu, + 0x00000004u, 0x00006501u, 0x00000006u, 0x00006507u, 0x000200f8u, 0x00006507u, 0x000200f9u, 0x00006508u, + 0x000200f8u, 0x00006501u, 0x0008004fu, 0x00000047u, 0x00006504u, 0x00002b34u, 0x00002b34u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x00006505u, 0x00006504u, 0x0004007cu, 0x00000044u, + 0x00006506u, 0x00006505u, 0x000200f9u, 0x00006508u, 0x000200f8u, 0x000064fcu, 0x0008004fu, 0x000004bbu, + 0x000064ffu, 0x00008a04u, 0x00008a04u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, + 0x00006500u, 0x000064ffu, 0x000200f9u, 0x00006508u, 0x000200f8u, 0x000064f7u, 0x0008004fu, 0x000004bbu, + 0x000064fau, 0x00008210u, 0x00008210u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, + 0x000064fbu, 0x000064fau, 0x000200f9u, 0x00006508u, 0x000200f8u, 0x000064f2u, 0x000200f9u, 0x00006508u, + 0x000200f8u, 0x000064ecu, 0x0008004fu, 0x00000047u, 0x000064efu, 0x00002adau, 0x00002adau, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000064f0u, 0x000064efu, 0x0004007cu, 0x00000044u, + 0x000064f1u, 0x000064f0u, 0x000200f9u, 0x00006508u, 0x000200f8u, 0x00006508u, 0x000f00f5u, 0x00000044u, + 0x00008d08u, 0x000064f1u, 0x000064ecu, 0x0000c250u, 0x000064f2u, 0x000064fbu, 0x000064f7u, 0x00006500u, + 0x000064fcu, 0x00006506u, 0x00006501u, 0x00001ad6u, 0x00006507u, 0x000300f7u, 0x00006521u, 0x00000000u, + 0x000d00fbu, 0x000063c3u, 0x0000650au, 0x00000000u, 0x0000650fu, 0x00000001u, 0x00006513u, 0x00000002u, + 0x00006517u, 0x00000004u, 0x0000651bu, 0x00000006u, 0x00006520u, 0x000200f8u, 0x00006520u, 0x000200f9u, + 0x00006521u, 0x000200f8u, 0x0000651bu, 0x00050051u, 0x0000000fu, 0x0000651du, 0x00002b34u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x0000651eu, 0x0000651du, 0x0004007cu, 0x00000008u, 0x0000651fu, 0x0000651eu, + 0x000200f9u, 0x00006521u, 0x000200f8u, 0x00006517u, 0x00050051u, 0x00000012u, 0x00006519u, 0x00008a04u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x0000651au, 0x00006519u, 0x000200f9u, 0x00006521u, 0x000200f8u, + 0x00006513u, 0x00050051u, 0x00000012u, 0x00006515u, 0x00008210u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x00006516u, 0x00006515u, 0x000200f9u, 0x00006521u, 0x000200f8u, 0x0000650fu, 0x000200f9u, 0x00006521u, + 0x000200f8u, 0x0000650au, 0x00050051u, 0x0000000fu, 0x0000650cu, 0x00002adau, 0x00000003u, 0x00040071u, + 0x00000006u, 0x0000650du, 0x0000650cu, 0x0004007cu, 0x00000008u, 0x0000650eu, 0x0000650du, 0x000200f9u, + 0x00006521u, 0x000200f8u, 0x00006521u, 0x000f00f5u, 0x00000008u, 0x00008d09u, 0x0000650eu, 0x0000650au, + 0x00000225u, 0x0000650fu, 0x00006516u, 0x00006513u, 0x0000651au, 0x00006517u, 0x0000651fu, 0x0000651bu, + 0x00001ad5u, 0x00006520u, 0x00050051u, 0x00000008u, 0x00006524u, 0x00008d08u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00006525u, 0x00008d08u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00006526u, 0x00008d08u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00006527u, 0x00006524u, 0x00006525u, 0x00006526u, 0x00008d09u, + 0x000600cau, 0x00000009u, 0x0000652fu, 0x000064e6u, 0x00000225u, 0x00000265u, 0x00050082u, 0x00000009u, + 0x00006549u, 0x00006435u, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x0000654au, 0x00006549u, 0x00000225u, + 0x00000265u, 0x00050080u, 0x00000009u, 0x0000654cu, 0x0000654au, 0x0000c22fu, 0x00050082u, 0x00000009u, + 0x00006551u, 0x00006481u, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x00006552u, 0x00006551u, 0x00000225u, + 0x00000265u, 0x00050080u, 0x00000009u, 0x00006554u, 0x00006552u, 0x0000c22fu, 0x00050082u, 0x00000009u, + 0x00006559u, 0x00006527u, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x0000655au, 0x00006559u, 0x00000225u, + 0x00000265u, 0x00050080u, 0x00000009u, 0x0000655cu, 0x0000655au, 0x0000c22fu, 0x00050082u, 0x00000009u, + 0x00006538u, 0x0000654cu, 0x00006554u, 0x00050084u, 0x00000009u, 0x0000653au, 0x00006538u, 0x0000652fu, + 0x00050080u, 0x00000009u, 0x0000653du, 0x0000653au, 0x0000c22fu, 0x000500c3u, 0x00000009u, 0x00006540u, + 0x0000653du, 0x0000c23au, 0x00040072u, 0x00000013u, 0x00006541u, 0x00006540u, 0x00040072u, 0x00000013u, + 0x00006543u, 0x0000655cu, 0x00050080u, 0x00000013u, 0x00006544u, 0x00006541u, 0x00006543u, 0x000300f7u, + 0x000063eeu, 0x00000000u, 0x000400fau, 0x0000234bu, 0x000063ccu, 0x000063edu, 0x000200f8u, 0x000063edu, + 0x000200f9u, 0x000063eeu, 0x000200f8u, 0x000063ccu, 0x00050051u, 0x00000012u, 0x000063ceu, 0x00006544u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x000063cfu, 0x000063ceu, 0x00050082u, 0x00000008u, 0x00006560u, + 0x000063cfu, 0x00000b11u, 0x000600cau, 0x00000008u, 0x00006561u, 0x00006560u, 0x00000225u, 0x00000265u, + 0x00050080u, 0x00000008u, 0x00006562u, 0x00006561u, 0x00000b11u, 0x0008000cu, 0x00000008u, 0x00006563u, + 0x00000001u, 0x0000002du, 0x00006562u, 0x00000225u, 0x00000363u, 0x00050080u, 0x00000008u, 0x000063d3u, + 0x00006563u, 0x0000022fu, 0x000500c3u, 0x00000008u, 0x000063d4u, 0x000063d3u, 0x00000262u, 0x00050080u, + 0x00000008u, 0x000063d5u, 0x00006563u, 0x000063d4u, 0x000300f7u, 0x000063e8u, 0x00000000u, 0x000400fau, + 0x0000232du, 0x000063d7u, 0x000063e4u, 0x000200f8u, 0x000063e4u, 0x00050080u, 0x00000008u, 0x000063e7u, + 0x000063d5u, 0x00008995u, 0x000200f9u, 0x000063e8u, 0x000200f8u, 0x000063d7u, 0x000300f7u, 0x000063e2u, + 0x00000000u, 0x000400fau, 0x0000232au, 0x000063d9u, 0x000063dfu, 0x000200f8u, 0x000063dfu, 0x000500c4u, + 0x00000008u, 0x000063e1u, 0x000023d2u, 0x0000023bu, 0x000200f9u, 0x000063e2u, 0x000200f8u, 0x000063d9u, + 0x00050084u, 0x00000008u, 0x000063dcu, 0x000063d5u, 0x000023d2u, 0x00050080u, 0x00000008u, 0x000063ddu, + 0x000063dcu, 0x00000238u, 0x000500c3u, 0x00000008u, 0x000063deu, 0x000063ddu, 0x00000235u, 0x000200f9u, + 0x000063e2u, 0x000200f8u, 0x000063e2u, 0x000700f5u, 0x00000008u, 0x00008d0au, 0x000063deu, 0x000063d9u, + 0x000063e1u, 0x000063dfu, 0x000200f9u, 0x000063e8u, 0x000200f8u, 0x000063e8u, 0x000700f5u, 0x00000008u, + 0x00008d0bu, 0x00008d0au, 0x000063e2u, 0x000063e7u, 0x000063e4u, 0x0008000cu, 0x00000008u, 0x000063eau, + 0x00000001u, 0x0000002du, 0x00008d0bu, 0x00000225u, 0x00000363u, 0x00040072u, 0x00000380u, 0x000063ebu, + 0x000063eau, 0x0004007cu, 0x0000000fu, 0x000063ecu, 0x000063ebu, 0x000200f9u, 0x000063eeu, 0x000200f8u, + 0x000063eeu, 0x000700f5u, 0x0000000fu, 0x00008d0cu, 0x000063ecu, 0x000063e8u, 0x0000038du, 0x000063edu, + 0x000500c7u, 0x00000006u, 0x000024e7u, 0x0000259au, 0x00001ff8u, 0x000500abu, 0x00000069u, 0x000024e8u, + 0x000024e7u, 0x00000332u, 0x000300f7u, 0x000024f8u, 0x00000000u, 0x000400fau, 0x000024e8u, 0x000024e9u, + 0x000024f8u, 0x000200f8u, 0x000024e9u, 0x00050080u, 0x00000008u, 0x000024ebu, 0x00007aa9u, 0x00001184u, + 0x0004007cu, 0x00000006u, 0x000024ecu, 0x000024ebu, 0x00050080u, 0x00000008u, 0x000024eeu, 0x00007aa7u, + 0x00000241u, 0x0004007cu, 0x00000006u, 0x000024efu, 0x000024eeu, 0x00060041u, 0x00001de9u, 0x000024f1u, + 0x00000ce7u, 0x00000225u, 0x00000235u, 0x0004003du, 0x00000006u, 0x000024f2u, 0x000024f1u, 0x00050080u, + 0x00000006u, 0x000024f3u, 0x000020eau, 0x000024f2u, 0x00050080u, 0x00000006u, 0x000024f4u, 0x000024f3u, + 0x00000e43u, 0x00060050u, 0x00000311u, 0x00006569u, 0x000024ecu, 0x000024efu, 0x000024f4u, 0x000500c2u, + 0x00000311u, 0x0000656cu, 0x00006569u, 0x0000c229u, 0x0008004fu, 0x00000311u, 0x0000656eu, 0x00006569u, + 0x00006569u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000311u, 0x0000656fu, 0x0000656cu, + 0x0000656eu, 0x00050084u, 0x00000311u, 0x00006571u, 0x0000656fu, 0x0000c22au, 0x000500c2u, 0x00000311u, + 0x00006574u, 0x00006571u, 0x0000c229u, 0x0008004fu, 0x00000311u, 0x00006576u, 0x00006571u, 0x00006571u, + 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000311u, 0x00006577u, 0x00006574u, 0x00006576u, + 0x00050084u, 0x00000311u, 0x00006579u, 0x00006577u, 0x0000c22au, 0x000500c2u, 0x00000311u, 0x0000657cu, + 0x00006579u, 0x0000c229u, 0x0008004fu, 0x00000311u, 0x0000657eu, 0x00006579u, 0x00006579u, 0x00000001u, + 0x00000002u, 0x00000000u, 0x000500c6u, 0x00000311u, 0x0000657fu, 0x0000657cu, 0x0000657eu, 0x00050084u, + 0x00000311u, 0x00006581u, 0x0000657fu, 0x0000c22au, 0x00050051u, 0x00000006u, 0x00006583u, 0x00006581u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006584u, 0x00006583u, 0x00000335u, 0x00040071u, 0x00000011u, + 0x00006585u, 0x00006584u, 0x000500c7u, 0x00000011u, 0x00006589u, 0x00006585u, 0x00000339u, 0x000500c4u, + 0x00000011u, 0x0000658au, 0x00006589u, 0x0000033bu, 0x000500c5u, 0x00000011u, 0x0000658bu, 0x0000658au, + 0x0000033du, 0x0004007cu, 0x00000012u, 0x0000658cu, 0x0000658bu, 0x000200f9u, 0x000024f8u, 0x000200f8u, + 0x000024f8u, 0x000700f5u, 0x00000011u, 0x00008d8bu, 0x00008883u, 0x000063eeu, 0x00006585u, 0x000024e9u, + 0x000700f5u, 0x00000012u, 0x00008d45u, 0x00006382u, 0x000063eeu, 0x0000658cu, 0x000024e9u, 0x00050051u, + 0x0000000fu, 0x000065a8u, 0x00002596u, 0x00000000u, 0x00040071u, 0x00000006u, 0x000065a9u, 0x000065a8u, + 0x0004007cu, 0x00000008u, 0x000065aau, 0x000065a9u, 0x00050051u, 0x0000000fu, 0x000065acu, 0x00002598u, + 0x00000000u, 0x00040071u, 0x00000006u, 0x000065adu, 0x000065acu, 0x0004007cu, 0x00000008u, 0x000065aeu, + 0x000065adu, 0x000300f7u, 0x00006620u, 0x00000000u, 0x000f00fbu, 0x000065aau, 0x000065ffu, 0x00000000u, + 0x00006605u, 0x00000001u, 0x0000660au, 0x00000002u, 0x0000660fu, 0x00000004u, 0x00006614u, 0x00000007u, + 0x0000661au, 0x00000006u, 0x0000661fu, 0x000200f8u, 0x0000661fu, 0x000200f9u, 0x00006620u, 0x000200f8u, + 0x0000661au, 0x00040072u, 0x00000008u, 0x0000661du, 0x00008d45u, 0x00060050u, 0x00000044u, 0x0000661eu, + 0x0000661du, 0x0000661du, 0x0000661du, 0x000200f9u, 0x00006620u, 0x000200f8u, 0x00006614u, 0x0008004fu, + 0x00000047u, 0x00006617u, 0x00002b34u, 0x00002b34u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x00000311u, 0x00006618u, 0x00006617u, 0x0004007cu, 0x00000044u, 0x00006619u, 0x00006618u, 0x000200f9u, + 0x00006620u, 0x000200f8u, 0x0000660fu, 0x0008004fu, 0x000004bbu, 0x00006612u, 0x00008210u, 0x00008210u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006613u, 0x00006612u, 0x000200f9u, + 0x00006620u, 0x000200f8u, 0x0000660au, 0x0008004fu, 0x000004bbu, 0x0000660du, 0x00008a04u, 0x00008a04u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x0000660eu, 0x0000660du, 0x000200f9u, + 0x00006620u, 0x000200f8u, 0x00006605u, 0x0008004fu, 0x000004bbu, 0x00006608u, 0x00006544u, 0x00006544u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006609u, 0x00006608u, 0x000200f9u, + 0x00006620u, 0x000200f8u, 0x000065ffu, 0x0008004fu, 0x00000047u, 0x00006602u, 0x00002adcu, 0x00002adcu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x00006603u, 0x00006602u, 0x0004007cu, + 0x00000044u, 0x00006604u, 0x00006603u, 0x000200f9u, 0x00006620u, 0x000200f8u, 0x00006620u, 0x001100f5u, + 0x00000044u, 0x00008d65u, 0x00006604u, 0x000065ffu, 0x00006609u, 0x00006605u, 0x0000660eu, 0x0000660au, + 0x00006613u, 0x0000660fu, 0x00006619u, 0x00006614u, 0x0000661eu, 0x0000661au, 0x00001ad6u, 0x0000661fu, + 0x000300f7u, 0x00006639u, 0x00000000u, 0x000d00fbu, 0x000065aeu, 0x00006622u, 0x00000000u, 0x00006627u, + 0x00000001u, 0x0000662bu, 0x00000002u, 0x0000662fu, 0x00000004u, 0x00006633u, 0x00000006u, 0x00006638u, + 0x000200f8u, 0x00006638u, 0x000200f9u, 0x00006639u, 0x000200f8u, 0x00006633u, 0x00050051u, 0x0000000fu, + 0x00006635u, 0x00002b34u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006636u, 0x00006635u, 0x0004007cu, + 0x00000008u, 0x00006637u, 0x00006636u, 0x000200f9u, 0x00006639u, 0x000200f8u, 0x0000662fu, 0x00050051u, + 0x00000012u, 0x00006631u, 0x00008210u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006632u, 0x00006631u, + 0x000200f9u, 0x00006639u, 0x000200f8u, 0x0000662bu, 0x00050051u, 0x00000012u, 0x0000662du, 0x00008a04u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x0000662eu, 0x0000662du, 0x000200f9u, 0x00006639u, 0x000200f8u, + 0x00006627u, 0x00050051u, 0x00000012u, 0x00006629u, 0x00006544u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x0000662au, 0x00006629u, 0x000200f9u, 0x00006639u, 0x000200f8u, 0x00006622u, 0x00050051u, 0x0000000fu, + 0x00006624u, 0x00002adcu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006625u, 0x00006624u, 0x0004007cu, + 0x00000008u, 0x00006626u, 0x00006625u, 0x000200f9u, 0x00006639u, 0x000200f8u, 0x00006639u, 0x000f00f5u, + 0x00000008u, 0x00008d66u, 0x00006626u, 0x00006622u, 0x0000662au, 0x00006627u, 0x0000662eu, 0x0000662bu, + 0x00006632u, 0x0000662fu, 0x00006637u, 0x00006633u, 0x00001ad5u, 0x00006638u, 0x00050051u, 0x00000008u, + 0x0000663cu, 0x00008d65u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000663du, 0x00008d65u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x0000663eu, 0x00008d65u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000663fu, + 0x0000663cu, 0x0000663du, 0x0000663eu, 0x00008d66u, 0x00050051u, 0x0000000fu, 0x000065b2u, 0x00002596u, + 0x00000001u, 0x00040071u, 0x00000006u, 0x000065b3u, 0x000065b2u, 0x0004007cu, 0x00000008u, 0x000065b4u, + 0x000065b3u, 0x00050051u, 0x0000000fu, 0x000065b6u, 0x00002598u, 0x00000001u, 0x00040071u, 0x00000006u, + 0x000065b7u, 0x000065b6u, 0x0004007cu, 0x00000008u, 0x000065b8u, 0x000065b7u, 0x000300f7u, 0x0000666cu, + 0x00000000u, 0x000d00fbu, 0x000065b4u, 0x00006645u, 0x00000000u, 0x0000664bu, 0x00000001u, 0x00006650u, + 0x00000002u, 0x00006655u, 0x00000004u, 0x0000665au, 0x00000007u, 0x00006660u, 0x000200f8u, 0x00006660u, + 0x00050051u, 0x0000000fu, 0x00006662u, 0x00002adeu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006663u, + 0x00006662u, 0x0004007cu, 0x00000008u, 0x00006664u, 0x00006663u, 0x000500c4u, 0x00000008u, 0x00006665u, + 0x00006664u, 0x00000262u, 0x00050051u, 0x0000000fu, 0x00006667u, 0x00002adeu, 0x00000002u, 0x00040071u, + 0x00000006u, 0x00006668u, 0x00006667u, 0x0004007cu, 0x00000008u, 0x00006669u, 0x00006668u, 0x000500c5u, + 0x00000008u, 0x0000666au, 0x00006665u, 0x00006669u, 0x00060050u, 0x00000044u, 0x0000666bu, 0x0000666au, + 0x0000666au, 0x0000666au, 0x000200f9u, 0x0000666cu, 0x000200f8u, 0x0000665au, 0x0008004fu, 0x00000047u, + 0x0000665du, 0x00002b34u, 0x00002b34u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, + 0x0000665eu, 0x0000665du, 0x0004007cu, 0x00000044u, 0x0000665fu, 0x0000665eu, 0x000200f9u, 0x0000666cu, + 0x000200f8u, 0x00006655u, 0x0008004fu, 0x000004bbu, 0x00006658u, 0x00008210u, 0x00008210u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006659u, 0x00006658u, 0x000200f9u, 0x0000666cu, + 0x000200f8u, 0x00006650u, 0x0008004fu, 0x000004bbu, 0x00006653u, 0x00008a04u, 0x00008a04u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006654u, 0x00006653u, 0x000200f9u, 0x0000666cu, + 0x000200f8u, 0x0000664bu, 0x0008004fu, 0x000004bbu, 0x0000664eu, 0x00006544u, 0x00006544u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x0000664fu, 0x0000664eu, 0x000200f9u, 0x0000666cu, + 0x000200f8u, 0x00006645u, 0x0008004fu, 0x00000047u, 0x00006648u, 0x00002adeu, 0x00002adeu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x00006649u, 0x00006648u, 0x0004007cu, 0x00000044u, + 0x0000664au, 0x00006649u, 0x000200f9u, 0x0000666cu, 0x000200f8u, 0x0000666cu, 0x000f00f5u, 0x00000044u, + 0x00008d68u, 0x0000664au, 0x00006645u, 0x0000664fu, 0x0000664bu, 0x00006654u, 0x00006650u, 0x00006659u, + 0x00006655u, 0x0000665fu, 0x0000665au, 0x0000666bu, 0x00006660u, 0x000300f7u, 0x00006685u, 0x00000000u, + 0x000d00fbu, 0x000065b8u, 0x0000666eu, 0x00000000u, 0x00006673u, 0x00000001u, 0x00006677u, 0x00000002u, + 0x0000667bu, 0x00000004u, 0x0000667fu, 0x00000006u, 0x00006684u, 0x000200f8u, 0x00006684u, 0x000200f9u, + 0x00006685u, 0x000200f8u, 0x0000667fu, 0x00050051u, 0x0000000fu, 0x00006681u, 0x00002b34u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00006682u, 0x00006681u, 0x0004007cu, 0x00000008u, 0x00006683u, 0x00006682u, + 0x000200f9u, 0x00006685u, 0x000200f8u, 0x0000667bu, 0x00050051u, 0x00000012u, 0x0000667du, 0x00008210u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x0000667eu, 0x0000667du, 0x000200f9u, 0x00006685u, 0x000200f8u, + 0x00006677u, 0x00050051u, 0x00000012u, 0x00006679u, 0x00008a04u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x0000667au, 0x00006679u, 0x000200f9u, 0x00006685u, 0x000200f8u, 0x00006673u, 0x00050051u, 0x00000012u, + 0x00006675u, 0x00006544u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006676u, 0x00006675u, 0x000200f9u, + 0x00006685u, 0x000200f8u, 0x0000666eu, 0x00050051u, 0x0000000fu, 0x00006670u, 0x00002adeu, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00006671u, 0x00006670u, 0x0004007cu, 0x00000008u, 0x00006672u, 0x00006671u, + 0x000200f9u, 0x00006685u, 0x000200f8u, 0x00006685u, 0x000f00f5u, 0x00000008u, 0x00008d69u, 0x00006672u, + 0x0000666eu, 0x00006676u, 0x00006673u, 0x0000667au, 0x00006677u, 0x0000667eu, 0x0000667bu, 0x00006683u, + 0x0000667fu, 0x00001ad5u, 0x00006684u, 0x00050051u, 0x00000008u, 0x00006688u, 0x00008d68u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00006689u, 0x00008d68u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000668au, + 0x00008d68u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000668bu, 0x00006688u, 0x00006689u, 0x0000668au, + 0x00008d69u, 0x00050051u, 0x0000000fu, 0x000065bcu, 0x00002596u, 0x00000002u, 0x00040071u, 0x00000006u, + 0x000065bdu, 0x000065bcu, 0x0004007cu, 0x00000008u, 0x000065beu, 0x000065bdu, 0x00050051u, 0x0000000fu, + 0x000065c0u, 0x00002598u, 0x00000002u, 0x00040071u, 0x00000006u, 0x000065c1u, 0x000065c0u, 0x0004007cu, + 0x00000008u, 0x000065c2u, 0x000065c1u, 0x000300f7u, 0x000066d2u, 0x00000000u, 0x001700fbu, 0x000065beu, + 0x00006691u, 0x00000000u, 0x00006697u, 0x00000007u, 0x0000669cu, 0x00000001u, 0x000066a1u, 0x00000002u, + 0x000066a6u, 0x00000004u, 0x000066abu, 0x00000008u, 0x000066b1u, 0x00000009u, 0x000066b6u, 0x0000000bu, + 0x000066bbu, 0x0000000du, 0x000066c1u, 0x0000000fu, 0x000066c6u, 0x000200f8u, 0x000066c6u, 0x00050051u, + 0x0000000fu, 0x000066c8u, 0x00002ae0u, 0x00000001u, 0x00040071u, 0x00000006u, 0x000066c9u, 0x000066c8u, + 0x0004007cu, 0x00000008u, 0x000066cau, 0x000066c9u, 0x000500c4u, 0x00000008u, 0x000066cbu, 0x000066cau, + 0x00000262u, 0x00050051u, 0x0000000fu, 0x000066cdu, 0x00002ae0u, 0x00000002u, 0x00040071u, 0x00000006u, + 0x000066ceu, 0x000066cdu, 0x0004007cu, 0x00000008u, 0x000066cfu, 0x000066ceu, 0x000500c5u, 0x00000008u, + 0x000066d0u, 0x000066cbu, 0x000066cfu, 0x00060050u, 0x00000044u, 0x000066d1u, 0x000066d0u, 0x000066d0u, + 0x000066d0u, 0x000200f9u, 0x000066d2u, 0x000200f8u, 0x000066c1u, 0x00040072u, 0x00000008u, 0x000066c4u, + 0x00008ac0u, 0x00060050u, 0x00000044u, 0x000066c5u, 0x000066c4u, 0x000066c4u, 0x000066c4u, 0x000200f9u, + 0x000066d2u, 0x000200f8u, 0x000066bbu, 0x0008004fu, 0x00000047u, 0x000066beu, 0x00002b34u, 0x00002b34u, + 0x00000003u, 0x00000003u, 0x00000003u, 0x00040071u, 0x00000311u, 0x000066bfu, 0x000066beu, 0x0004007cu, + 0x00000044u, 0x000066c0u, 0x000066bfu, 0x000200f9u, 0x000066d2u, 0x000200f8u, 0x000066b6u, 0x0008004fu, + 0x000004bbu, 0x000066b9u, 0x00008210u, 0x00008210u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, + 0x00000044u, 0x000066bau, 0x000066b9u, 0x000200f9u, 0x000066d2u, 0x000200f8u, 0x000066b1u, 0x0008004fu, + 0x000004bbu, 0x000066b4u, 0x00008a04u, 0x00008a04u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, + 0x00000044u, 0x000066b5u, 0x000066b4u, 0x000200f9u, 0x000066d2u, 0x000200f8u, 0x000066abu, 0x0008004fu, + 0x00000047u, 0x000066aeu, 0x00002b34u, 0x00002b34u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x00000311u, 0x000066afu, 0x000066aeu, 0x0004007cu, 0x00000044u, 0x000066b0u, 0x000066afu, 0x000200f9u, + 0x000066d2u, 0x000200f8u, 0x000066a6u, 0x0008004fu, 0x000004bbu, 0x000066a9u, 0x00008210u, 0x00008210u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x000066aau, 0x000066a9u, 0x000200f9u, + 0x000066d2u, 0x000200f8u, 0x000066a1u, 0x0008004fu, 0x000004bbu, 0x000066a4u, 0x00008a04u, 0x00008a04u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x000066a5u, 0x000066a4u, 0x000200f9u, + 0x000066d2u, 0x000200f8u, 0x0000669cu, 0x0008004fu, 0x000004bbu, 0x0000669fu, 0x00006544u, 0x00006544u, + 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, 0x00000044u, 0x000066a0u, 0x0000669fu, 0x000200f9u, + 0x000066d2u, 0x000200f8u, 0x00006697u, 0x0008004fu, 0x000004bbu, 0x0000669au, 0x00006544u, 0x00006544u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x0000669bu, 0x0000669au, 0x000200f9u, + 0x000066d2u, 0x000200f8u, 0x00006691u, 0x0008004fu, 0x00000047u, 0x00006694u, 0x00002ae0u, 0x00002ae0u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x00006695u, 0x00006694u, 0x0004007cu, + 0x00000044u, 0x00006696u, 0x00006695u, 0x000200f9u, 0x000066d2u, 0x000200f8u, 0x000066d2u, 0x001900f5u, + 0x00000044u, 0x00008d6bu, 0x00006696u, 0x00006691u, 0x0000669bu, 0x00006697u, 0x000066a0u, 0x0000669cu, + 0x000066a5u, 0x000066a1u, 0x000066aau, 0x000066a6u, 0x000066b0u, 0x000066abu, 0x000066b5u, 0x000066b1u, + 0x000066bau, 0x000066b6u, 0x000066c0u, 0x000066bbu, 0x000066c5u, 0x000066c1u, 0x000066d1u, 0x000066c6u, + 0x000300f7u, 0x000066eau, 0x00000000u, 0x000b00fbu, 0x000065c2u, 0x000066d4u, 0x00000000u, 0x000066d9u, + 0x00000001u, 0x000066ddu, 0x00000002u, 0x000066e1u, 0x00000004u, 0x000066e5u, 0x000200f8u, 0x000066e5u, + 0x00050051u, 0x0000000fu, 0x000066e7u, 0x00002b34u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000066e8u, + 0x000066e7u, 0x0004007cu, 0x00000008u, 0x000066e9u, 0x000066e8u, 0x000200f9u, 0x000066eau, 0x000200f8u, + 0x000066e1u, 0x00050051u, 0x00000012u, 0x000066e3u, 0x00008210u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x000066e4u, 0x000066e3u, 0x000200f9u, 0x000066eau, 0x000200f8u, 0x000066ddu, 0x00050051u, 0x00000012u, + 0x000066dfu, 0x00008a04u, 0x00000003u, 0x00040072u, 0x00000008u, 0x000066e0u, 0x000066dfu, 0x000200f9u, + 0x000066eau, 0x000200f8u, 0x000066d9u, 0x00040072u, 0x00000008u, 0x000066dcu, 0x00008ac0u, 0x000200f9u, + 0x000066eau, 0x000200f8u, 0x000066d4u, 0x00050051u, 0x0000000fu, 0x000066d6u, 0x00002ae0u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x000066d7u, 0x000066d6u, 0x0004007cu, 0x00000008u, 0x000066d8u, 0x000066d7u, + 0x000200f9u, 0x000066eau, 0x000200f8u, 0x000066eau, 0x000d00f5u, 0x00000008u, 0x00008d6cu, 0x000066d8u, + 0x000066d4u, 0x000066dcu, 0x000066d9u, 0x000066e0u, 0x000066ddu, 0x000066e4u, 0x000066e1u, 0x000066e9u, + 0x000066e5u, 0x00050051u, 0x00000008u, 0x000066edu, 0x00008d6bu, 0x00000000u, 0x00050051u, 0x00000008u, + 0x000066eeu, 0x00008d6bu, 0x00000001u, 0x00050051u, 0x00000008u, 0x000066efu, 0x00008d6bu, 0x00000002u, + 0x00070050u, 0x00000009u, 0x000066f0u, 0x000066edu, 0x000066eeu, 0x000066efu, 0x00008d6cu, 0x00050051u, + 0x0000000fu, 0x000065c6u, 0x00002596u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000065c7u, 0x000065c6u, + 0x0004007cu, 0x00000008u, 0x000065c8u, 0x000065c7u, 0x00050051u, 0x0000000fu, 0x000065cau, 0x00002598u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x000065cbu, 0x000065cau, 0x0004007cu, 0x00000008u, 0x000065ccu, + 0x000065cbu, 0x000300f7u, 0x00006712u, 0x00000000u, 0x000d00fbu, 0x000065c8u, 0x000066f6u, 0x00000000u, + 0x000066fcu, 0x00000001u, 0x00006701u, 0x00000002u, 0x00006706u, 0x00000004u, 0x0000670bu, 0x00000006u, + 0x00006711u, 0x000200f8u, 0x00006711u, 0x000200f9u, 0x00006712u, 0x000200f8u, 0x0000670bu, 0x0008004fu, + 0x00000047u, 0x0000670eu, 0x00002b34u, 0x00002b34u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x00000311u, 0x0000670fu, 0x0000670eu, 0x0004007cu, 0x00000044u, 0x00006710u, 0x0000670fu, 0x000200f9u, + 0x00006712u, 0x000200f8u, 0x00006706u, 0x0008004fu, 0x000004bbu, 0x00006709u, 0x00008210u, 0x00008210u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x0000670au, 0x00006709u, 0x000200f9u, + 0x00006712u, 0x000200f8u, 0x00006701u, 0x0008004fu, 0x000004bbu, 0x00006704u, 0x00008a04u, 0x00008a04u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006705u, 0x00006704u, 0x000200f9u, + 0x00006712u, 0x000200f8u, 0x000066fcu, 0x0008004fu, 0x000004bbu, 0x000066ffu, 0x00006544u, 0x00006544u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x00000044u, 0x00006700u, 0x000066ffu, 0x000200f9u, + 0x00006712u, 0x000200f8u, 0x000066f6u, 0x0008004fu, 0x00000047u, 0x000066f9u, 0x00002ae2u, 0x00002ae2u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x00000311u, 0x000066fau, 0x000066f9u, 0x0004007cu, + 0x00000044u, 0x000066fbu, 0x000066fau, 0x000200f9u, 0x00006712u, 0x000200f8u, 0x00006712u, 0x000f00f5u, + 0x00000044u, 0x00008d6eu, 0x000066fbu, 0x000066f6u, 0x00006700u, 0x000066fcu, 0x00006705u, 0x00006701u, + 0x0000670au, 0x00006706u, 0x00006710u, 0x0000670bu, 0x00001ad6u, 0x00006711u, 0x000300f7u, 0x0000672bu, + 0x00000000u, 0x000d00fbu, 0x000065ccu, 0x00006714u, 0x00000000u, 0x00006719u, 0x00000001u, 0x0000671du, + 0x00000002u, 0x00006721u, 0x00000004u, 0x00006725u, 0x00000006u, 0x0000672au, 0x000200f8u, 0x0000672au, + 0x000200f9u, 0x0000672bu, 0x000200f8u, 0x00006725u, 0x00050051u, 0x0000000fu, 0x00006727u, 0x00002b34u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x00006728u, 0x00006727u, 0x0004007cu, 0x00000008u, 0x00006729u, + 0x00006728u, 0x000200f9u, 0x0000672bu, 0x000200f8u, 0x00006721u, 0x00050051u, 0x00000012u, 0x00006723u, + 0x00008210u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006724u, 0x00006723u, 0x000200f9u, 0x0000672bu, + 0x000200f8u, 0x0000671du, 0x00050051u, 0x00000012u, 0x0000671fu, 0x00008a04u, 0x00000003u, 0x00040072u, + 0x00000008u, 0x00006720u, 0x0000671fu, 0x000200f9u, 0x0000672bu, 0x000200f8u, 0x00006719u, 0x00050051u, + 0x00000012u, 0x0000671bu, 0x00006544u, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000671cu, 0x0000671bu, + 0x000200f9u, 0x0000672bu, 0x000200f8u, 0x00006714u, 0x00050051u, 0x0000000fu, 0x00006716u, 0x00002ae2u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x00006717u, 0x00006716u, 0x0004007cu, 0x00000008u, 0x00006718u, + 0x00006717u, 0x000200f9u, 0x0000672bu, 0x000200f8u, 0x0000672bu, 0x000f00f5u, 0x00000008u, 0x00008d6fu, + 0x00006718u, 0x00006714u, 0x0000671cu, 0x00006719u, 0x00006720u, 0x0000671du, 0x00006724u, 0x00006721u, + 0x00006729u, 0x00006725u, 0x00001ad5u, 0x0000672au, 0x00050051u, 0x00000008u, 0x0000672eu, 0x00008d6eu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x0000672fu, 0x00008d6eu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00006730u, 0x00008d6eu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00006731u, 0x0000672eu, 0x0000672fu, + 0x00006730u, 0x00008d6fu, 0x000600cau, 0x00000009u, 0x00006739u, 0x000066f0u, 0x00000225u, 0x00000265u, + 0x00050082u, 0x00000009u, 0x00006753u, 0x0000663fu, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x00006754u, + 0x00006753u, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00006756u, 0x00006754u, 0x0000c22fu, + 0x00050082u, 0x00000009u, 0x0000675bu, 0x0000668bu, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x0000675cu, + 0x0000675bu, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x0000675eu, 0x0000675cu, 0x0000c22fu, + 0x00050082u, 0x00000009u, 0x00006763u, 0x00006731u, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x00006764u, + 0x00006763u, 0x00000225u, 0x00000265u, 0x00050080u, 0x00000009u, 0x00006766u, 0x00006764u, 0x0000c22fu, + 0x00050082u, 0x00000009u, 0x00006742u, 0x00006756u, 0x0000675eu, 0x00050084u, 0x00000009u, 0x00006744u, + 0x00006742u, 0x00006739u, 0x00050080u, 0x00000009u, 0x00006747u, 0x00006744u, 0x0000c22fu, 0x000500c3u, + 0x00000009u, 0x0000674au, 0x00006747u, 0x0000c23au, 0x00040072u, 0x00000013u, 0x0000674bu, 0x0000674au, + 0x00040072u, 0x00000013u, 0x0000674du, 0x00006766u, 0x00050080u, 0x00000013u, 0x0000674eu, 0x0000674bu, + 0x0000674du, 0x00040072u, 0x00000009u, 0x000065d5u, 0x0000674eu, 0x00050082u, 0x00000009u, 0x0000676bu, + 0x000065d5u, 0x0000c22fu, 0x000600cau, 0x00000009u, 0x0000676du, 0x0000676bu, 0x00000225u, 0x00000265u, + 0x00050080u, 0x00000009u, 0x00006770u, 0x0000676du, 0x0000c22fu, 0x0008000cu, 0x00000009u, 0x00006772u, + 0x00000001u, 0x0000002du, 0x00006770u, 0x00000b1bu, 0x00000b1cu, 0x00040072u, 0x00000013u, 0x00006773u, + 0x00006772u, 0x00050051u, 0x00000012u, 0x000065d8u, 0x00006773u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x000065d9u, 0x000065d8u, 0x00050080u, 0x00000008u, 0x000065ddu, 0x000065d9u, 0x0000022fu, 0x000500c3u, + 0x00000008u, 0x000065deu, 0x000065ddu, 0x00000262u, 0x00050080u, 0x00000008u, 0x000065dfu, 0x000065d9u, + 0x000065deu, 0x000300f7u, 0x000065ecu, 0x00000000u, 0x000400fau, 0x0000232au, 0x000065e1u, 0x000065e9u, + 0x000200f8u, 0x000065e9u, 0x000500c4u, 0x00000008u, 0x000065ebu, 0x000023d2u, 0x0000023bu, 0x000200f9u, + 0x000065ecu, 0x000200f8u, 0x000065e1u, 0x00050084u, 0x00000008u, 0x000065e4u, 0x000065dfu, 0x000023d2u, + 0x00050080u, 0x00000008u, 0x000065e5u, 0x000065e4u, 0x00000238u, 0x000500c3u, 0x00000008u, 0x000065e6u, + 0x000065e5u, 0x00000235u, 0x000500c3u, 0x00000008u, 0x000065e8u, 0x000065e6u, 0x0000023bu, 0x000200f9u, + 0x000065ecu, 0x000200f8u, 0x000065ecu, 0x000700f5u, 0x00000008u, 0x00008d7eu, 0x000065e8u, 0x000065e1u, + 0x000023d2u, 0x000065e9u, 0x000700f5u, 0x00000008u, 0x00008d79u, 0x000065e6u, 0x000065e1u, 0x000065ebu, + 0x000065e9u, 0x000300f7u, 0x000065f4u, 0x00000000u, 0x000400fau, 0x0000232du, 0x000065eeu, 0x000065f0u, + 0x000200f8u, 0x000065f0u, 0x00050080u, 0x00000008u, 0x000065f3u, 0x000065dfu, 0x00008995u, 0x000200f9u, + 0x000065f4u, 0x000200f8u, 0x000065eeu, 0x000200f9u, 0x000065f4u, 0x000200f8u, 0x000065f4u, 0x000700f5u, + 0x00000008u, 0x00008d7au, 0x00008d79u, 0x000065eeu, 0x000065f3u, 0x000065f0u, 0x0008000cu, 0x00000008u, + 0x000065f6u, 0x00000001u, 0x0000002du, 0x00008d7au, 0x00000225u, 0x00000363u, 0x00040072u, 0x00000012u, + 0x000065f7u, 0x000065f6u, 0x00060052u, 0x00000013u, 0x00007977u, 0x000065f7u, 0x00006773u, 0x00000003u, + 0x00040072u, 0x00000b25u, 0x00002502u, 0x00007977u, 0x0004007cu, 0x00000010u, 0x00002503u, 0x00002502u, + 0x000200f9u, 0x00002520u, 0x000200f8u, 0x00002520u, 0x000700f5u, 0x00000010u, 0x00008db0u, 0x00002503u, + 0x000065f4u, 0x0000251du, 0x000067e2u, 0x000700f5u, 0x0000000fu, 0x00008da2u, 0x00008d0cu, 0x000065f4u, + 0x0000251fu, 0x000067e2u, 0x000700f5u, 0x00000011u, 0x00008d80u, 0x00008d8bu, 0x000065f4u, 0x00008883u, + 0x000067e2u, 0x000700f5u, 0x00000008u, 0x00008d7fu, 0x00008d7eu, 0x000065f4u, 0x00008cfdu, 0x000067e2u, + 0x000500aau, 0x00000069u, 0x00002523u, 0x00008d7fu, 0x00000225u, 0x000500a7u, 0x00000069u, 0x00002524u, + 0x0000233cu, 0x00002523u, 0x000300f7u, 0x00002526u, 0x00000000u, 0x000400fau, 0x00002524u, 0x00002525u, + 0x00002526u, 0x000200f8u, 0x00002525u, 0x000200f9u, 0x0000254bu, 0x000200f8u, 0x00002526u, 0x000300f7u, + 0x00002535u, 0x00000000u, 0x000400fau, 0x0000234bu, 0x00002528u, 0x00002535u, 0x000200f8u, 0x00002528u, + 0x000300f7u, 0x0000252fu, 0x00000000u, 0x000400fau, 0x0000234eu, 0x0000252au, 0x0000252cu, 0x000200f8u, + 0x0000252cu, 0x00050051u, 0x0000000fu, 0x0000252eu, 0x00002ae6u, 0x00000003u, 0x000200f9u, 0x0000252fu, + 0x000200f8u, 0x0000252au, 0x000500c7u, 0x00000011u, 0x00006965u, 0x00008d80u, 0x00000350u, 0x00040071u, + 0x0000000fu, 0x00006966u, 0x00006965u, 0x000200f9u, 0x0000252fu, 0x000200f8u, 0x0000252fu, 0x000700f5u, + 0x0000000fu, 0x00008daeu, 0x00006966u, 0x0000252au, 0x0000252eu, 0x0000252cu, 0x000500b0u, 0x00000069u, + 0x00002532u, 0x00008da2u, 0x00008daeu, 0x000300f7u, 0x00002534u, 0x00000000u, 0x000400fau, 0x00002532u, + 0x00002533u, 0x00002534u, 0x000200f8u, 0x00002533u, 0x000200f9u, 0x0000254bu, 0x000200f8u, 0x00002534u, + 0x000200f9u, 0x00002535u, 0x000200f8u, 0x00002535u, 0x000500c4u, 0x00000008u, 0x00002539u, 0x00002d84u, + 0x00000265u, 0x000500c5u, 0x00000008u, 0x0000253bu, 0x00002539u, 0x0000898cu, 0x00040072u, 0x00000380u, + 0x0000253eu, 0x00008d7fu, 0x0004007cu, 0x0000000fu, 0x0000253fu, 0x0000253eu, 0x00050051u, 0x0000000fu, + 0x00002542u, 0x00002b34u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00002543u, 0x00002542u, 0x0004007cu, + 0x00000008u, 0x00002544u, 0x00002543u, 0x00050080u, 0x00000008u, 0x00002546u, 0x00002544u, 0x00008995u, + 0x0007000cu, 0x00000008u, 0x00002547u, 0x00000001u, 0x00000027u, 0x00002546u, 0x00000363u, 0x00040072u, + 0x00000380u, 0x00002548u, 0x00002547u, 0x0004007cu, 0x0000000fu, 0x00002549u, 0x00002548u, 0x000200f9u, + 0x0000254bu, 0x000200f8u, 0x0000254bu, 0x001900f5u, 0x00000012u, 0x0000be51u, 0x00008accu, 0x000022e2u, + 0x00008accu, 0x00002301u, 0x00008accu, 0x00002387u, 0x00008accu, 0x000023b2u, 0x00008accu, 0x000023b3u, + 0x00008accu, 0x000023c1u, 0x00008accu, 0x000023cfu, 0x00008accu, 0x000023dbu, 0x00008ac0u, 0x00002525u, + 0x00008ac0u, 0x00002533u, 0x00008ac0u, 0x00002535u, 0x001900f5u, 0x00000013u, 0x0000bdbeu, 0x00008a13u, + 0x000022e2u, 0x00008a13u, 0x00002301u, 0x00008a13u, 0x00002387u, 0x00008a13u, 0x000023b2u, 0x00008a13u, + 0x000023b3u, 0x00008a13u, 0x000023c1u, 0x00008a13u, 0x000023cfu, 0x00008a13u, 0x000023dbu, 0x00008a04u, + 0x00002525u, 0x00008a04u, 0x00002533u, 0x00008a04u, 0x00002535u, 0x001900f5u, 0x00000011u, 0x0000bd4cu, + 0x00008886u, 0x000022e2u, 0x00008886u, 0x00002301u, 0x00008883u, 0x00002387u, 0x00008883u, 0x000023b2u, + 0x00008883u, 0x000023b3u, 0x00008883u, 0x000023c1u, 0x00008883u, 0x000023cfu, 0x00008883u, 0x000023dbu, + 0x00008d80u, 0x00002525u, 0x00008d80u, 0x00002533u, 0x00008d80u, 0x00002535u, 0x001900f5u, 0x00000013u, + 0x0000bca2u, 0x00008663u, 0x000022e2u, 0x00008663u, 0x00002301u, 0x00008663u, 0x00002387u, 0x00008663u, + 0x000023b2u, 0x00008663u, 0x000023b3u, 0x00008663u, 0x000023c1u, 0x00008663u, 0x000023cfu, 0x00008663u, + 0x000023dbu, 0x0000bcebu, 0x00002525u, 0x0000bcebu, 0x00002533u, 0x0000bcebu, 0x00002535u, 0x001900f5u, + 0x00000013u, 0x0000bbfau, 0x0000856eu, 0x000022e2u, 0x0000856eu, 0x00002301u, 0x0000856eu, 0x00002387u, + 0x0000856eu, 0x000023b2u, 0x0000856eu, 0x000023b3u, 0x0000856eu, 0x000023c1u, 0x0000856eu, 0x000023cfu, + 0x0000856eu, 0x000023dbu, 0x0000bc43u, 0x00002525u, 0x0000bc43u, 0x00002533u, 0x0000bc43u, 0x00002535u, + 0x001900f5u, 0x00000013u, 0x0000bb52u, 0x00008473u, 0x000022e2u, 0x00008473u, 0x00002301u, 0x00008473u, + 0x00002387u, 0x00008473u, 0x000023b2u, 0x00008473u, 0x000023b3u, 0x00008473u, 0x000023c1u, 0x00008473u, + 0x000023cfu, 0x00008473u, 0x000023dbu, 0x0000bb9bu, 0x00002525u, 0x0000bb9bu, 0x00002533u, 0x0000bb9bu, + 0x00002535u, 0x001900f5u, 0x00000013u, 0x0000baaau, 0x00008307u, 0x000022e2u, 0x00008307u, 0x00002301u, + 0x00008307u, 0x00002387u, 0x00008307u, 0x000023b2u, 0x00008307u, 0x000023b3u, 0x00008307u, 0x000023c1u, + 0x00008307u, 0x000023cfu, 0x00008307u, 0x000023dbu, 0x0000baf3u, 0x00002525u, 0x0000baf3u, 0x00002533u, + 0x0000baf3u, 0x00002535u, 0x001900f5u, 0x00000013u, 0x0000ba17u, 0x0000821du, 0x000022e2u, 0x0000821du, + 0x00002301u, 0x0000821du, 0x00002387u, 0x0000821du, 0x000023b2u, 0x0000821du, 0x000023b3u, 0x0000821du, + 0x000023c1u, 0x0000821du, 0x000023cfu, 0x0000821du, 0x000023dbu, 0x00008210u, 0x00002525u, 0x00008210u, + 0x00002533u, 0x00008210u, 0x00002535u, 0x001900f5u, 0x00000013u, 0x0000b8f3u, 0x00007e50u, 0x000022e2u, + 0x00007e50u, 0x00002301u, 0x00007e50u, 0x00002387u, 0x00007e50u, 0x000023b2u, 0x00007e50u, 0x000023b3u, + 0x00007e50u, 0x000023c1u, 0x00007e50u, 0x000023cfu, 0x00007e50u, 0x000023dbu, 0x0000b93eu, 0x00002525u, + 0x0000b93eu, 0x00002533u, 0x0000b93eu, 0x00002535u, 0x001900f5u, 0x00000013u, 0x0000b7d1u, 0x00007dd5u, + 0x000022e2u, 0x00007dd5u, 0x00002301u, 0x00007dd5u, 0x00002387u, 0x00007dd5u, 0x000023b2u, 0x00007dd5u, + 0x000023b3u, 0x00007dd5u, 0x000023c1u, 0x00007dd5u, 0x000023cfu, 0x00007dd5u, 0x000023dbu, 0x0000b81cu, + 0x00002525u, 0x0000b81cu, 0x00002533u, 0x0000b81cu, 0x00002535u, 0x001900f5u, 0x00000013u, 0x0000b6afu, + 0x00007d54u, 0x000022e2u, 0x00007d54u, 0x00002301u, 0x00007d54u, 0x00002387u, 0x00007d54u, 0x000023b2u, + 0x00007d54u, 0x000023b3u, 0x00007d54u, 0x000023c1u, 0x00007d54u, 0x000023cfu, 0x00007d54u, 0x000023dbu, + 0x0000b6fau, 0x00002525u, 0x0000b6fau, 0x00002533u, 0x0000b6fau, 0x00002535u, 0x001900f5u, 0x00000013u, + 0x0000b58du, 0x00007c61u, 0x000022e2u, 0x00007c61u, 0x00002301u, 0x00007c61u, 0x00002387u, 0x00007c61u, + 0x000023b2u, 0x00007c61u, 0x000023b3u, 0x00007c61u, 0x000023c1u, 0x00007c61u, 0x000023cfu, 0x00007c61u, + 0x000023dbu, 0x0000b5d8u, 0x00002525u, 0x0000b5d8u, 0x00002533u, 0x0000b5d8u, 0x00002535u, 0x001900f5u, + 0x000000f2u, 0x0000b40bu, 0x00007b6eu, 0x000022e2u, 0x00007b6eu, 0x00002301u, 0x00007b6eu, 0x00002387u, + 0x00007b6eu, 0x000023b2u, 0x00007b6eu, 0x000023b3u, 0x00007b6eu, 0x000023c1u, 0x00007b6eu, 0x000023cfu, + 0x00007b6eu, 0x000023dbu, 0x00007b63u, 0x00002525u, 0x00007b63u, 0x00002533u, 0x00007b63u, 0x00002535u, + 0x001900f5u, 0x000000f2u, 0x0000b289u, 0x00007b4au, 0x000022e2u, 0x00007b4au, 0x00002301u, 0x00007b4au, + 0x00002387u, 0x00007b4au, 0x000023b2u, 0x00007b4au, 0x000023b3u, 0x00007b4au, 0x000023c1u, 0x00007b4au, + 0x000023cfu, 0x00007b4au, 0x000023dbu, 0x00007b3fu, 0x00002525u, 0x00007b3fu, 0x00002533u, 0x00007b3fu, + 0x00002535u, 0x001900f5u, 0x00000044u, 0x0000b0fbu, 0x00007ac6u, 0x000022e2u, 0x00007ac6u, 0x00002301u, + 0x00007ac6u, 0x00002387u, 0x00007ac6u, 0x000023b2u, 0x00007ac6u, 0x000023b3u, 0x00007ac6u, 0x000023c1u, + 0x00007ac6u, 0x000023cfu, 0x00007ac6u, 0x000023dbu, 0x00007ac0u, 0x00002525u, 0x00007ac0u, 0x00002533u, + 0x00007ac0u, 0x00002535u, 0x001900f5u, 0x00000044u, 0x0000af64u, 0x00007ab7u, 0x000022e2u, 0x00007ab7u, + 0x00002301u, 0x00007ab7u, 0x00002387u, 0x00007ab7u, 0x000023b2u, 0x00007ab7u, 0x000023b3u, 0x00007ab7u, + 0x000023c1u, 0x00007ab7u, 0x000023cfu, 0x00007ab7u, 0x000023dbu, 0x00007ab1u, 0x00002525u, 0x00007ab1u, + 0x00002533u, 0x00007ab1u, 0x00002535u, 0x001900f5u, 0x00000010u, 0x000091e6u, 0x000091e8u, 0x000022e2u, + 0x000091e8u, 0x00002301u, 0x000091e8u, 0x00002387u, 0x000091e8u, 0x000023b2u, 0x000091e8u, 0x000023b3u, + 0x000091e8u, 0x000023c1u, 0x000091e8u, 0x000023cfu, 0x000091e8u, 0x000023dbu, 0x000091e8u, 0x00002525u, + 0x000091e8u, 0x00002533u, 0x00008db0u, 0x00002535u, 0x001900f5u, 0x00000008u, 0x000090a3u, 0x000090a5u, + 0x000022e2u, 0x000090a5u, 0x00002301u, 0x000090a5u, 0x00002387u, 0x00008df1u, 0x000023b2u, 0x00008df1u, + 0x000023b3u, 0x000090a5u, 0x000023c1u, 0x000090a5u, 0x000023cfu, 0x000090a5u, 0x000023dbu, 0x000090a5u, + 0x00002525u, 0x000090a5u, 0x00002533u, 0x0000253bu, 0x00002535u, 0x001900f5u, 0x0000000fu, 0x00008f61u, + 0x00008f63u, 0x000022e2u, 0x00008f63u, 0x00002301u, 0x00008f63u, 0x00002387u, 0x0000062bu, 0x000023b2u, + 0x0000062bu, 0x000023b3u, 0x0000062cu, 0x000023c1u, 0x00008f63u, 0x000023cfu, 0x00008f63u, 0x000023dbu, + 0x00008f63u, 0x00002525u, 0x00008f63u, 0x00002533u, 0x0000253fu, 0x00002535u, 0x001900f5u, 0x0000000fu, + 0x00008df4u, 0x00008df6u, 0x000022e2u, 0x00008df6u, 0x00002301u, 0x00008df6u, 0x00002387u, 0x00008df6u, + 0x000023b2u, 0x00008df6u, 0x000023b3u, 0x00008df6u, 0x000023c1u, 0x00008df6u, 0x000023cfu, 0x00008df6u, + 0x000023dbu, 0x00008df6u, 0x00002525u, 0x00008df6u, 0x00002533u, 0x00002549u, 0x00002535u, 0x001900f5u, + 0x00000069u, 0x00008df3u, 0x0000053bu, 0x000022e2u, 0x0000053bu, 0x00002301u, 0x0000053bu, 0x00002387u, + 0x0000053bu, 0x000023b2u, 0x0000055eu, 0x000023b3u, 0x000023c2u, 0x000023c1u, 0x0000053bu, 0x000023cfu, + 0x0000053bu, 0x000023dbu, 0x0000053bu, 0x00002525u, 0x0000053bu, 0x00002533u, 0x0000055eu, 0x00002535u, + 0x000300f7u, 0x000020f6u, 0x00000000u, 0x000400fau, 0x00008df3u, 0x000020f5u, 0x000020f6u, 0x000200f8u, + 0x000020f5u, 0x00040071u, 0x00000006u, 0x000020f9u, 0x00008f61u, 0x0004007cu, 0x00000008u, 0x000020fau, + 0x000020f9u, 0x000500c7u, 0x00000008u, 0x000020fcu, 0x000020fau, 0x000020fbu, 0x000500abu, 0x00000069u, + 0x000020fdu, 0x000020fcu, 0x00000225u, 0x000300f7u, 0x000020ffu, 0x00000000u, 0x000400fau, 0x000020fdu, + 0x000020feu, 0x00002105u, 0x000200f8u, 0x00002105u, 0x000500c7u, 0x00000008u, 0x0000210au, 0x000020fau, + 0x0000116du, 0x000500abu, 0x00000069u, 0x0000210bu, 0x0000210au, 0x00000225u, 0x000300f7u, 0x0000210du, + 0x00000000u, 0x000400fau, 0x0000210bu, 0x0000210cu, 0x00002115u, 0x000200f8u, 0x00002115u, 0x000500c3u, + 0x00000008u, 0x00006b04u, 0x000090a3u, 0x00000265u, 0x000500c7u, 0x00000008u, 0x00006b07u, 0x000090a3u, + 0x00000a1au, 0x00080041u, 0x00000676u, 0x00006b11u, 0x00000a2du, 0x00000225u, 0x000020eau, 0x00000225u, + 0x00000461u, 0x0004003du, 0x0000000fu, 0x00006b12u, 0x00006b11u, 0x00040071u, 0x00000006u, 0x00006b13u, + 0x00006b12u, 0x00060041u, 0x0000024cu, 0x00006bb6u, 0x0000024au, 0x00000225u, 0x000020eau, 0x0004003du, + 0x00000246u, 0x00006bb7u, 0x00006bb6u, 0x00050051u, 0x00000010u, 0x00006bc8u, 0x00006bb7u, 0x00000008u, + 0x00050051u, 0x00000010u, 0x00006bcau, 0x00006bb7u, 0x00000009u, 0x00050051u, 0x00000011u, 0x00006bceu, + 0x00006bb7u, 0x0000000bu, 0x00050051u, 0x0000000fu, 0x00006bd0u, 0x00006bb7u, 0x0000000cu, 0x00060041u, + 0x0000029du, 0x00006bdbu, 0x0000029bu, 0x00000225u, 0x00006b13u, 0x0004003du, 0x00000297u, 0x00006bdcu, + 0x00006bdbu, 0x00050051u, 0x00000010u, 0x00006bddu, 0x00006bdcu, 0x00000000u, 0x00050051u, 0x00000010u, + 0x00006bdfu, 0x00006bdcu, 0x00000001u, 0x00050051u, 0x00000006u, 0x00006be1u, 0x00006bdcu, 0x00000002u, + 0x00050051u, 0x0000000fu, 0x00006be3u, 0x00006bdcu, 0x00000003u, 0x00050051u, 0x0000000fu, 0x00006be5u, + 0x00006bdcu, 0x00000004u, 0x000500c7u, 0x00000006u, 0x00006b1au, 0x00006be1u, 0x00000319u, 0x000500abu, + 0x00000069u, 0x00006b1bu, 0x00006b1au, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00006b1eu, 0x00006be1u, + 0x00000461u, 0x000500abu, 0x00000069u, 0x00006b1fu, 0x00006b1eu, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x00006b22u, 0x00006be1u, 0x0000038bu, 0x000500abu, 0x00000069u, 0x00006b23u, 0x00006b22u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00006b26u, 0x00006be1u, 0x00000335u, 0x000500abu, 0x00000069u, 0x00006b27u, + 0x00006b26u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00006b2au, 0x00006be1u, 0x00000a51u, 0x000500abu, + 0x00000069u, 0x00006b2bu, 0x00006b2au, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00006b2eu, 0x00006be1u, + 0x00000a57u, 0x000500abu, 0x00000069u, 0x00006b2fu, 0x00006b2eu, 0x00000332u, 0x000500c7u, 0x00000006u, + 0x00006b32u, 0x00006be1u, 0x00000a5du, 0x000500abu, 0x00000069u, 0x00006b33u, 0x00006b32u, 0x00000332u, + 0x000500c7u, 0x00000006u, 0x00006b36u, 0x00006be1u, 0x00000a63u, 0x000500abu, 0x00000069u, 0x00006b37u, + 0x00006b36u, 0x00000332u, 0x000300f7u, 0x00006bf7u, 0x00000000u, 0x000400fau, 0x00006b27u, 0x00006bf2u, + 0x00006bf6u, 0x000200f8u, 0x00006bf6u, 0x000200f9u, 0x00006bf7u, 0x000200f8u, 0x00006bf2u, 0x00050051u, + 0x0000000fu, 0x00006bf4u, 0x00009355u, 0x00000003u, 0x000500c7u, 0x0000000fu, 0x00006bf5u, 0x00006bf4u, + 0x00000941u, 0x000200f9u, 0x00006bf7u, 0x000200f8u, 0x00006bf7u, 0x000700f5u, 0x0000000fu, 0x000094bdu, + 0x00006bf5u, 0x00006bf2u, 0x00000941u, 0x00006bf6u, 0x000300f7u, 0x00006c08u, 0x00000000u, 0x000d00fbu, + 0x00000661u, 0x00006c08u, 0x00000000u, 0x00006bf9u, 0x00000001u, 0x00006bfau, 0x00000002u, 0x00006bfdu, + 0x00000003u, 0x00006c02u, 0x00000004u, 0x00006c05u, 0x000200f8u, 0x00006c05u, 0x0008004fu, 0x00000047u, + 0x00006c07u, 0x00009355u, 0x00009355u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006c08u, + 0x000200f8u, 0x00006c02u, 0x0008004fu, 0x00000047u, 0x00006c04u, 0x00009355u, 0x00009355u, 0x00000000u, + 0x00000000u, 0x00000000u, 0x000200f9u, 0x00006c08u, 0x000200f8u, 0x00006bfdu, 0x0008004fu, 0x00000047u, + 0x00006bffu, 0x00009355u, 0x00009355u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, 0x00000047u, + 0x00006c01u, 0x00006bffu, 0x0000c243u, 0x000200f9u, 0x00006c08u, 0x000200f8u, 0x00006bfau, 0x0008004fu, + 0x00000047u, 0x00006bfcu, 0x00009355u, 0x00009355u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000200f9u, + 0x00006c08u, 0x000200f8u, 0x00006bf9u, 0x000200f9u, 0x00006c08u, 0x000200f8u, 0x00006c08u, 0x000f00f5u, + 0x0000000fu, 0x00009630u, 0x000094bdu, 0x00006bf7u, 0x00000941u, 0x00006bf9u, 0x00000941u, 0x00006bfau, + 0x000094bdu, 0x00006bfdu, 0x000094bdu, 0x00006c02u, 0x000094bdu, 0x00006c05u, 0x000f00f5u, 0x00000047u, + 0x000094bfu, 0x000094c3u, 0x00006bf7u, 0x0000094cu, 0x00006bf9u, 0x00006bfcu, 0x00006bfau, 0x00006c01u, + 0x00006bfdu, 0x00006c04u, 0x00006c02u, 0x00006c07u, 0x00006c05u, 0x00050051u, 0x0000000fu, 0x00006c0bu, + 0x000094bfu, 0x00000000u, 0x00050051u, 0x0000000fu, 0x00006c0cu, 0x000094bfu, 0x00000001u, 0x00050051u, + 0x0000000fu, 0x00006c0du, 0x000094bfu, 0x00000002u, 0x00070050u, 0x00000010u, 0x00006c0eu, 0x00006c0bu, + 0x00006c0cu, 0x00006c0du, 0x00009630u, 0x000500c2u, 0x0000000fu, 0x00006b3cu, 0x00009630u, 0x00000393u, + 0x00040071u, 0x00000006u, 0x00006b3fu, 0x00006bceu, 0x0004007cu, 0x00000008u, 0x00006b40u, 0x00006b3fu, + 0x00040071u, 0x00000006u, 0x00006b43u, 0x00006bd0u, 0x0004007cu, 0x00000008u, 0x00006b44u, 0x00006b43u, + 0x00040071u, 0x00000006u, 0x00006b46u, 0x00006b3cu, 0x0004007cu, 0x00000008u, 0x00006b47u, 0x00006b46u, + 0x00040071u, 0x00000006u, 0x00006b4au, 0x00006be5u, 0x0004007cu, 0x00000008u, 0x00006b4bu, 0x00006b4au, + 0x00050080u, 0x00000008u, 0x00006c64u, 0x000020fau, 0x00006b47u, 0x000500afu, 0x00000069u, 0x00006c65u, + 0x00006c64u, 0x00000262u, 0x000300f7u, 0x00006cd1u, 0x00000000u, 0x000400fau, 0x00006b1fu, 0x00006c25u, + 0x00006cbbu, 0x000200f8u, 0x00006cbbu, 0x00050082u, 0x00000008u, 0x00006cbeu, 0x00000538u, 0x00006b44u, + 0x0007000cu, 0x00000008u, 0x00006cbfu, 0x00000001u, 0x00000027u, 0x00006cbeu, 0x00000238u, 0x00040072u, + 0x00000380u, 0x00006cc0u, 0x00006cbfu, 0x0004007cu, 0x0000000fu, 0x00006cc1u, 0x00006cc0u, 0x00050050u, + 0x0000006bu, 0x0000c252u, 0x0000038du, 0x00006cc1u, 0x000400a8u, 0x00000069u, 0x00006cc8u, 0x00006b1bu, + 0x000300f7u, 0x00006cceu, 0x00000000u, 0x000400fau, 0x00006cc8u, 0x00006cc9u, 0x00006cceu, 0x000200f8u, + 0x00006cc9u, 0x000400a8u, 0x00000069u, 0x00006ccbu, 0x00006c65u, 0x000500a7u, 0x00000069u, 0x00006ccdu, + 0x00006ccbu, 0x00006b33u, 0x000200f9u, 0x00006cceu, 0x000200f8u, 0x00006cceu, 0x000700f5u, 0x00000069u, + 0x00006ccfu, 0x00006b1bu, 0x00006cbbu, 0x00006ccdu, 0x00006cc9u, 0x000200f9u, 0x00006cd1u, 0x000200f8u, + 0x00006c25u, 0x00040071u, 0x00000006u, 0x00006cdbu, 0x00009635u, 0x0004007cu, 0x00000008u, 0x00006cdcu, + 0x00006cdbu, 0x000500c3u, 0x00000008u, 0x00006cdeu, 0x00006cdcu, 0x0000026bu, 0x000500c7u, 0x00000008u, + 0x00006ce0u, 0x00006cdcu, 0x000003dfu, 0x00050082u, 0x00000008u, 0x00006ce2u, 0x0000023eu, 0x00006cdeu, + 0x0007000cu, 0x00000008u, 0x00006ce3u, 0x00000001u, 0x0000002au, 0x00006ce2u, 0x00000225u, 0x000500c3u, + 0x00000008u, 0x00006ce5u, 0x000003e6u, 0x00006cdeu, 0x00050082u, 0x00000008u, 0x00006ce6u, 0x000003e6u, + 0x00006ce5u, 0x000500c4u, 0x00000008u, 0x00006ce9u, 0x00006ce0u, 0x00006ce3u, 0x00050080u, 0x00000008u, + 0x00006cebu, 0x00006ce9u, 0x00006ce6u, 0x00040071u, 0x00000006u, 0x00006c29u, 0x000097a1u, 0x0004007cu, + 0x00000008u, 0x00006c2au, 0x00006c29u, 0x000500c4u, 0x00000008u, 0x00006cefu, 0x0000022fu, 0x00006c2au, + 0x000500c7u, 0x00000008u, 0x00006c30u, 0x00006cdeu, 0x00000538u, 0x00050082u, 0x00000008u, 0x00006c35u, + 0x00006b44u, 0x00006c2au, 0x0008000cu, 0x00000008u, 0x00006c36u, 0x00000001u, 0x0000002du, 0x00006c35u, + 0x00000225u, 0x00000238u, 0x00040072u, 0x00000380u, 0x00006c37u, 0x00006c36u, 0x0004007cu, 0x0000000fu, + 0x00006c38u, 0x00006c37u, 0x00050082u, 0x00000008u, 0x00006c3eu, 0x00006c2au, 0x00006b44u, 0x0008000cu, + 0x00000008u, 0x00006c3fu, 0x00000001u, 0x0000002du, 0x00006c3eu, 0x00000225u, 0x00000238u, 0x00040072u, + 0x00000380u, 0x00006c40u, 0x00006c3fu, 0x0004007cu, 0x0000000fu, 0x00006c41u, 0x00006c40u, 0x00050050u, + 0x0000006bu, 0x0000c253u, 0x00006c38u, 0x00006c41u, 0x000500b1u, 0x00000069u, 0x00006c44u, 0x00006c30u, + 0x00000235u, 0x000300f7u, 0x00006c50u, 0x00000000u, 0x000400fau, 0x00006c44u, 0x00006c45u, 0x00006c50u, + 0x000200f8u, 0x00006c45u, 0x000500abu, 0x00000069u, 0x00006c47u, 0x00006cefu, 0x00000553u, 0x000300f7u, + 0x00006c4fu, 0x00000000u, 0x000400fau, 0x00006c47u, 0x00006c48u, 0x00006c4eu, 0x000200f8u, 0x00006c4eu, + 0x000200f9u, 0x00006c4fu, 0x000200f8u, 0x00006c48u, 0x000500c4u, 0x00000008u, 0x00006c4au, 0x00006cefu, + 0x0000022fu, 0x000500c3u, 0x00000008u, 0x00006c4cu, 0x00000559u, 0x00006c30u, 0x0007000cu, 0x00000008u, + 0x00006c4du, 0x00000001u, 0x0000002au, 0x00006c4au, 0x00006c4cu, 0x000200f9u, 0x00006c4fu, 0x000200f8u, + 0x00006c4fu, 0x000700f5u, 0x00000008u, 0x00009a7du, 0x00006c4du, 0x00006c48u, 0x0000055fu, 0x00006c4eu, + 0x000600a9u, 0x00000069u, 0x0000c279u, 0x00006c47u, 0x0000053bu, 0x0000055eu, 0x000200f9u, 0x00006c50u, + 0x000200f8u, 0x00006c50u, 0x000700f5u, 0x00000069u, 0x00009a80u, 0x0000053bu, 0x00006c25u, 0x0000c279u, + 0x00006c4fu, 0x000700f5u, 0x00000008u, 0x00009a7cu, 0x00006cefu, 0x00006c25u, 0x00009a7du, 0x00006c4fu, + 0x000500c5u, 0x00000008u, 0x00006c53u, 0x00006b40u, 0x00009a7cu, 0x000500abu, 0x00000069u, 0x00006cf3u, + 0x00006c53u, 0x00000225u, 0x000300f7u, 0x00006cf8u, 0x00000000u, 0x000400fau, 0x00006cf3u, 0x00006cf4u, + 0x00006cf8u, 0x000200f8u, 0x00006cf4u, 0x0006000cu, 0x00000008u, 0x00006cf6u, 0x00000001u, 0x0000004au, + 0x00006c53u, 0x000500c4u, 0x00000008u, 0x00006cf7u, 0x0000022fu, 0x00006cf6u, 0x000200f9u, 0x00006cf8u, + 0x000200f8u, 0x00006cf8u, 0x000700f5u, 0x00000008u, 0x00009a7eu, 0x00006c53u, 0x00006c50u, 0x00006cf7u, + 0x00006cf4u, 0x000500c4u, 0x00000008u, 0x00006c57u, 0x00009a7eu, 0x00000235u, 0x000400a8u, 0x00000069u, + 0x00006c59u, 0x00009a80u, 0x000300f7u, 0x00006c60u, 0x00000000u, 0x000400fau, 0x00006c59u, 0x00006c5au, + 0x00006c60u, 0x000200f8u, 0x00006c5au, 0x00050080u, 0x00000008u, 0x00006c5du, 0x00006b04u, 0x00006c57u, + 0x000500afu, 0x00000069u, 0x00006c5fu, 0x00006c5du, 0x00006cebu, 0x000200f9u, 0x00006c60u, 0x000200f8u, + 0x00006c60u, 0x000700f5u, 0x00000069u, 0x00006c61u, 0x00009a80u, 0x00006cf8u, 0x00006c5fu, 0x00006c5au, + 0x000400a8u, 0x00000069u, 0x00006c67u, 0x00006b1bu, 0x000300f7u, 0x00006c6fu, 0x00000000u, 0x000400fau, + 0x00006c67u, 0x00006c68u, 0x00006c6fu, 0x000200f8u, 0x00006c68u, 0x000400a8u, 0x00000069u, 0x00006c6au, + 0x00006c65u, 0x000500a7u, 0x00000069u, 0x00006c6cu, 0x00006c6au, 0x00006b33u, 0x000500a7u, 0x00000069u, + 0x00006c6eu, 0x00006c6cu, 0x00006c61u, 0x000200f9u, 0x00006c6fu, 0x000200f8u, 0x00006c6fu, 0x000700f5u, + 0x00000069u, 0x00006c70u, 0x00006b1bu, 0x00006c60u, 0x00006c6eu, 0x00006c68u, 0x000500aau, 0x00000069u, + 0x00006c73u, 0x00006cebu, 0x000003f2u, 0x000500b1u, 0x00000069u, 0x00006c76u, 0x00006b04u, 0x00006cebu, + 0x00050082u, 0x00000008u, 0x00006c79u, 0x00006b04u, 0x00006c57u, 0x000500b3u, 0x00000069u, 0x00006c7du, + 0x00006c79u, 0x00006cebu, 0x000500a6u, 0x00000069u, 0x00006c7eu, 0x00009a80u, 0x00006c7du, 0x000300f7u, + 0x00006cbau, 0x00000000u, 0x000b00fbu, 0x00006b4bu, 0x00006cbau, 0x00000000u, 0x00006c80u, 0x00000001u, + 0x00006c8au, 0x00000002u, 0x00006cafu, 0x00000003u, 0x00006cb3u, 0x000200f8u, 0x00006cb3u, 0x000500a7u, + 0x00000069u, 0x00006cb6u, 0x00006c61u, 0x00006c7eu, 0x000400a8u, 0x00000069u, 0x00006cb8u, 0x00006c73u, + 0x000500a7u, 0x00000069u, 0x00006cb9u, 0x00006cb6u, 0x00006cb8u, 0x000200f9u, 0x00006cbau, 0x000200f8u, + 0x00006cafu, 0x000500a6u, 0x00000069u, 0x00006cb2u, 0x00006c76u, 0x00006c73u, 0x000200f9u, 0x00006cbau, + 0x000200f8u, 0x00006c8au, 0x000400a8u, 0x00000069u, 0x00006c8cu, 0x00006c76u, 0x000400a8u, 0x00000069u, + 0x00006c8eu, 0x00006c61u, 0x000500a6u, 0x00000069u, 0x00006c8fu, 0x00006c8cu, 0x00006c8eu, 0x000400a8u, + 0x00000069u, 0x00006c91u, 0x00006c65u, 0x000500a6u, 0x00000069u, 0x00006c92u, 0x00006c8fu, 0x00006c91u, + 0x000300f7u, 0x00006caeu, 0x00000000u, 0x000400fau, 0x00006c92u, 0x00006c93u, 0x00006c9du, 0x000200f8u, + 0x00006c9du, 0x000500c7u, 0x00000008u, 0x00006c9fu, 0x00009a7eu, 0x0000055fu, 0x0006000cu, 0x00000008u, + 0x00006cfdu, 0x00000001u, 0x0000004au, 0x00006c9fu, 0x0007000cu, 0x00000008u, 0x00006cfeu, 0x00000001u, + 0x0000002au, 0x00006cfdu, 0x00000225u, 0x000500c3u, 0x00000008u, 0x00006ca3u, 0x00006cebu, 0x00006cfeu, + 0x000500c3u, 0x00000008u, 0x00006ca6u, 0x00006b04u, 0x00006cfeu, 0x00050082u, 0x00000008u, 0x00006ca7u, + 0x00006ca3u, 0x00006ca6u, 0x000500c7u, 0x00000008u, 0x00006ca8u, 0x00006ca7u, 0x00000538u, 0x00050084u, + 0x00000008u, 0x00006cabu, 0x00006ca8u, 0x000020fau, 0x000500c3u, 0x00000008u, 0x00006cacu, 0x00006cabu, + 0x00000235u, 0x0007000cu, 0x00000008u, 0x00006cadu, 0x00000001u, 0x00000027u, 0x00006cacu, 0x00000262u, + 0x000200f9u, 0x00006caeu, 0x000200f8u, 0x00006c93u, 0x000400a8u, 0x00000069u, 0x00006c95u, 0x00006c73u, + 0x000300f7u, 0x00006c9bu, 0x00000000u, 0x000400fau, 0x00006c95u, 0x00006c96u, 0x00006c9bu, 0x000200f8u, + 0x00006c96u, 0x000600a9u, 0x00000069u, 0x00006c9au, 0x00006c65u, 0x00006c76u, 0x00006c7eu, 0x000200f9u, + 0x00006c9bu, 0x000200f8u, 0x00006c9bu, 0x000700f5u, 0x00000069u, 0x00006c9cu, 0x00006c73u, 0x00006c93u, + 0x00006c9au, 0x00006c96u, 0x000200f9u, 0x00006caeu, 0x000200f8u, 0x00006caeu, 0x000700f5u, 0x00000008u, + 0x00009a91u, 0x000020fau, 0x00006c9bu, 0x00006cadu, 0x00006c9du, 0x000700f5u, 0x00000069u, 0x00009a8du, + 0x00006c9cu, 0x00006c9bu, 0x0000055eu, 0x00006c9du, 0x000200f9u, 0x00006cbau, 0x000200f8u, 0x00006c80u, + 0x000400a8u, 0x00000069u, 0x00006c82u, 0x00006c73u, 0x000300f7u, 0x00006c88u, 0x00000000u, 0x000400fau, + 0x00006c82u, 0x00006c83u, 0x00006c88u, 0x000200f8u, 0x00006c83u, 0x000600a9u, 0x00000069u, 0x00006c87u, + 0x00006c65u, 0x00006c76u, 0x00006c7eu, 0x000200f9u, 0x00006c88u, 0x000200f8u, 0x00006c88u, 0x000700f5u, + 0x00000069u, 0x00006c89u, 0x00006c73u, 0x00006c80u, 0x00006c87u, 0x00006c83u, 0x000200f9u, 0x00006cbau, + 0x000200f8u, 0x00006cbau, 0x000d00f5u, 0x00000008u, 0x00009a8fu, 0x000020fau, 0x00006c6fu, 0x000020fau, + 0x00006c88u, 0x00009a91u, 0x00006caeu, 0x000020fau, 0x00006cafu, 0x000020fau, 0x00006cb3u, 0x000d00f5u, + 0x00000069u, 0x00009a8cu, 0x0000053bu, 0x00006c6fu, 0x00006c89u, 0x00006c88u, 0x00009a8du, 0x00006caeu, + 0x00006cb2u, 0x00006cafu, 0x00006cb9u, 0x00006cb3u, 0x000200f9u, 0x00006cd1u, 0x000200f8u, 0x00006cd1u, + 0x000700f5u, 0x0000006bu, 0x00009a9eu, 0x0000c253u, 0x00006cbau, 0x0000c252u, 0x00006cceu, 0x000700f5u, + 0x00000069u, 0x00009a94u, 0x00006c70u, 0x00006cbau, 0x00006ccfu, 0x00006cceu, 0x000700f5u, 0x00000008u, + 0x00009a8eu, 0x00009a8fu, 0x00006cbau, 0x000020fau, 0x00006cceu, 0x000700f5u, 0x00000069u, 0x00009a8bu, + 0x00009a8cu, 0x00006cbau, 0x0000055eu, 0x00006cceu, 0x000300f7u, 0x00006b5fu, 0x00000000u, 0x000400fau, + 0x00009a8bu, 0x00006b59u, 0x00006b5fu, 0x000200f8u, 0x00006b59u, 0x000400a8u, 0x00000069u, 0x00006b5bu, + 0x00006b33u, 0x000500abu, 0x00000069u, 0x00006b5du, 0x00009a8eu, 0x00000225u, 0x000500a6u, 0x00000069u, + 0x00006b5eu, 0x00006b5bu, 0x00006b5du, 0x000200f9u, 0x00006b5fu, 0x000200f8u, 0x00006b5fu, 0x000700f5u, + 0x00000069u, 0x00006b60u, 0x00009a8bu, 0x00006cd1u, 0x00006b5eu, 0x00006b59u, 0x000300f7u, 0x00006bb1u, + 0x00000000u, 0x000400fau, 0x00006b60u, 0x00006b61u, 0x00006bb1u, 0x000200f8u, 0x00006b61u, 0x000300f7u, + 0x00006b7eu, 0x00000000u, 0x000400fau, 0x00006b2fu, 0x00006b6du, 0x00006b7eu, 0x000200f8u, 0x00006b6du, + 0x00050051u, 0x0000000fu, 0x00006d0bu, 0x00006bddu, 0x00000002u, 0x00040071u, 0x00000006u, 0x00006d0cu, + 0x00006d0bu, 0x0004007cu, 0x00000008u, 0x00006d0du, 0x00006d0cu, 0x000300f7u, 0x00006d1eu, 0x00000000u, + 0x000b00fbu, 0x00006d0du, 0x00006d1eu, 0x00000000u, 0x00006d0eu, 0x00000001u, 0x00006d12u, 0x00000002u, + 0x00006d16u, 0x00000003u, 0x00006d1au, 0x000200f8u, 0x00006d1au, 0x0008004fu, 0x00000047u, 0x00006d1du, + 0x00006bc8u, 0x00006bc8u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006d1eu, 0x000200f8u, + 0x00006d16u, 0x0008004fu, 0x00000047u, 0x00006d19u, 0x00006bcau, 0x00006bcau, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x00006d1eu, 0x000200f8u, 0x00006d12u, 0x0008004fu, 0x00000047u, 0x00006d15u, + 0x00006c0eu, 0x00006c0eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006d1eu, 0x000200f8u, + 0x00006d0eu, 0x0008004fu, 0x00000047u, 0x00006d11u, 0x000091e6u, 0x000091e6u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x00006d1eu, 0x000200f8u, 0x00006d1eu, 0x000d00f5u, 0x00000047u, 0x00009f40u, + 0x00009f4cu, 0x00006b6du, 0x00006d11u, 0x00006d0eu, 0x00006d15u, 0x00006d12u, 0x00006d19u, 0x00006d16u, + 0x00006d1du, 0x00006d1au, 0x00050051u, 0x0000000fu, 0x00006d2au, 0x00006bddu, 0x00000000u, 0x00040071u, + 0x00000006u, 0x00006d2bu, 0x00006d2au, 0x0004007cu, 0x00000008u, 0x00006d2cu, 0x00006d2bu, 0x000300f7u, + 0x00006d3du, 0x00000000u, 0x000b00fbu, 0x00006d2cu, 0x00006d3du, 0x00000000u, 0x00006d2du, 0x00000001u, + 0x00006d31u, 0x00000002u, 0x00006d35u, 0x00000003u, 0x00006d39u, 0x000200f8u, 0x00006d39u, 0x0008004fu, + 0x00000047u, 0x00006d3cu, 0x00006bc8u, 0x00006bc8u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006d3du, 0x000200f8u, 0x00006d35u, 0x0008004fu, 0x00000047u, 0x00006d38u, 0x00006bcau, 0x00006bcau, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006d3du, 0x000200f8u, 0x00006d31u, 0x0008004fu, + 0x00000047u, 0x00006d34u, 0x00006c0eu, 0x00006c0eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006d3du, 0x000200f8u, 0x00006d2du, 0x0008004fu, 0x00000047u, 0x00006d30u, 0x000091e6u, 0x000091e6u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006d3du, 0x000200f8u, 0x00006d3du, 0x000d00f5u, + 0x00000047u, 0x00009db7u, 0x00009dc5u, 0x00006d1eu, 0x00006d30u, 0x00006d2du, 0x00006d34u, 0x00006d31u, + 0x00006d38u, 0x00006d35u, 0x00006d3cu, 0x00006d39u, 0x00050051u, 0x0000000fu, 0x00006d5eu, 0x00006bddu, + 0x00000001u, 0x00040071u, 0x00000006u, 0x00006d5fu, 0x00006d5eu, 0x0004007cu, 0x00000008u, 0x00006d60u, + 0x00006d5fu, 0x000300f7u, 0x00006d6bu, 0x00000000u, 0x000b00fbu, 0x00006d60u, 0x00006d6bu, 0x00000000u, + 0x00006d61u, 0x00000001u, 0x00006d64u, 0x00000002u, 0x00006d67u, 0x00000003u, 0x00006d6au, 0x000200f8u, + 0x00006d6au, 0x000200f9u, 0x00006d6bu, 0x000200f8u, 0x00006d67u, 0x000200f9u, 0x00006d6bu, 0x000200f8u, + 0x00006d64u, 0x00050051u, 0x0000000fu, 0x00006d66u, 0x00006bc8u, 0x00000003u, 0x000200f9u, 0x00006d6bu, + 0x000200f8u, 0x00006d61u, 0x00050051u, 0x0000000fu, 0x00006d63u, 0x000091e6u, 0x00000003u, 0x000200f9u, + 0x00006d6bu, 0x000200f8u, 0x00006d6bu, 0x000d00f5u, 0x0000000fu, 0x00009aa9u, 0x00009ab9u, 0x00006d3du, + 0x00006d63u, 0x00006d61u, 0x00006d66u, 0x00006d64u, 0x00008df4u, 0x00006d67u, 0x0000038du, 0x00006d6au, + 0x00050051u, 0x0000000fu, 0x00006d6du, 0x00006bddu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006d6eu, + 0x00006d6du, 0x0004007cu, 0x00000008u, 0x00006d6fu, 0x00006d6eu, 0x000300f7u, 0x00006d79u, 0x00000000u, + 0x000b00fbu, 0x00006d6fu, 0x00006d79u, 0x00000000u, 0x00006d70u, 0x00000001u, 0x00006d74u, 0x00000002u, + 0x00006d77u, 0x00000003u, 0x00006d78u, 0x000200f8u, 0x00006d78u, 0x000200f9u, 0x00006d79u, 0x000200f8u, + 0x00006d77u, 0x000200f9u, 0x00006d79u, 0x000200f8u, 0x00006d74u, 0x000200f9u, 0x00006d79u, 0x000200f8u, + 0x00006d70u, 0x000400c8u, 0x0000000fu, 0x00006d72u, 0x00009aa9u, 0x000500c7u, 0x0000000fu, 0x00006d73u, + 0x00006d72u, 0x00000474u, 0x000200f9u, 0x00006d79u, 0x000200f8u, 0x00006d79u, 0x000d00f5u, 0x0000000fu, + 0x00009c2eu, 0x00009c3fu, 0x00006d6bu, 0x00006d73u, 0x00006d70u, 0x00009630u, 0x00006d74u, 0x00000474u, + 0x00006d77u, 0x0000038du, 0x00006d78u, 0x000500c2u, 0x0000000fu, 0x00006d7bu, 0x00009aa9u, 0x00000394u, + 0x000500c2u, 0x0000000fu, 0x00006d7du, 0x00009c2eu, 0x00000394u, 0x000500aau, 0x00000069u, 0x00006d82u, + 0x00006d6fu, 0x0000022fu, 0x000300f7u, 0x00006d8eu, 0x00000000u, 0x000400fau, 0x00006d82u, 0x00006d83u, + 0x00006d8eu, 0x000200f8u, 0x00006d83u, 0x00050051u, 0x0000000fu, 0x00006d86u, 0x00009a9eu, 0x00000000u, + 0x000500c2u, 0x0000000fu, 0x00006d87u, 0x00006d7bu, 0x00006d86u, 0x000500c7u, 0x0000000fu, 0x00006d88u, + 0x00006d87u, 0x000004b4u, 0x00050051u, 0x0000000fu, 0x00006d8bu, 0x00009a9eu, 0x00000001u, 0x000500c2u, + 0x0000000fu, 0x00006d8cu, 0x00006d7du, 0x00006d8bu, 0x000500c5u, 0x0000000fu, 0x00006d8du, 0x00006d8cu, + 0x00000394u, 0x000200f9u, 0x00006d8eu, 0x000200f8u, 0x00006d8eu, 0x000700f5u, 0x0000000fu, 0x0000a0c0u, + 0x00006d7du, 0x00006d79u, 0x00006d8du, 0x00006d83u, 0x000700f5u, 0x0000000fu, 0x00009f39u, 0x00006d7bu, + 0x00006d79u, 0x00006d88u, 0x00006d83u, 0x00040071u, 0x000004bfu, 0x00006d90u, 0x00009db7u, 0x0004007cu, + 0x000004bbu, 0x00006d91u, 0x00006d90u, 0x00040071u, 0x00000011u, 0x00006d93u, 0x00009f39u, 0x0004007cu, + 0x00000012u, 0x00006d94u, 0x00006d93u, 0x00060050u, 0x000004bbu, 0x00006d95u, 0x00006d94u, 0x00006d94u, + 0x00006d94u, 0x00050084u, 0x000004bbu, 0x00006d96u, 0x00006d91u, 0x00006d95u, 0x00040071u, 0x000004bfu, + 0x00006d98u, 0x00009f40u, 0x0004007cu, 0x000004bbu, 0x00006d99u, 0x00006d98u, 0x00040071u, 0x00000011u, + 0x00006d9bu, 0x0000a0c0u, 0x0004007cu, 0x00000012u, 0x00006d9cu, 0x00006d9bu, 0x00050080u, 0x00000012u, + 0x00006d9du, 0x00006d9cu, 0x000004cdu, 0x00060050u, 0x000004bbu, 0x00006d9eu, 0x00006d9du, 0x00006d9du, + 0x00006d9du, 0x00050084u, 0x000004bbu, 0x00006d9fu, 0x00006d99u, 0x00006d9eu, 0x00050080u, 0x000004bbu, + 0x00006da0u, 0x00006d96u, 0x00006d9fu, 0x000500c3u, 0x000004bbu, 0x00006da8u, 0x00006da0u, 0x0000c249u, + 0x00040072u, 0x00000381u, 0x00006da9u, 0x00006da8u, 0x0004007cu, 0x00000047u, 0x00006daau, 0x00006da9u, + 0x000500c7u, 0x00000047u, 0x00006de0u, 0x00006daau, 0x0000c24au, 0x00050051u, 0x0000000fu, 0x00006b77u, + 0x00006de0u, 0x00000000u, 0x00060052u, 0x00000010u, 0x000079f1u, 0x00006b77u, 0x000091e6u, 0x00000000u, + 0x00050051u, 0x0000000fu, 0x00006b79u, 0x00006de0u, 0x00000001u, 0x00060052u, 0x00000010u, 0x000079f3u, + 0x00006b79u, 0x000079f1u, 0x00000001u, 0x00050051u, 0x0000000fu, 0x00006b7bu, 0x00006de0u, 0x00000002u, + 0x00060052u, 0x00000010u, 0x000079f5u, 0x00006b7bu, 0x000079f3u, 0x00000002u, 0x000200f9u, 0x00006b7eu, + 0x000200f8u, 0x00006b7eu, 0x000700f5u, 0x00000047u, 0x0000c16bu, 0x00009f4cu, 0x00006b61u, 0x00009f40u, + 0x00006d8eu, 0x000700f5u, 0x00000047u, 0x0000c144u, 0x00009dc5u, 0x00006b61u, 0x00006daau, 0x00006d8eu, + 0x000700f5u, 0x0000000fu, 0x0000c11cu, 0x00009c3fu, 0x00006b61u, 0x0000a0c0u, 0x00006d8eu, 0x000700f5u, + 0x0000000fu, 0x0000c0f4u, 0x00009ab9u, 0x00006b61u, 0x00009f39u, 0x00006d8eu, 0x000700f5u, 0x00000010u, + 0x0000a0cfu, 0x000091e6u, 0x00006b61u, 0x000079f5u, 0x00006d8eu, 0x00070050u, 0x00000600u, 0x0000c27au, + 0x00006b2fu, 0x00006b2fu, 0x00006b2fu, 0x00006b2fu, 0x000600a9u, 0x00000010u, 0x0000c27bu, 0x0000c27au, + 0x00006bdfu, 0x00006bddu, 0x000300f7u, 0x00006ec5u, 0x00000000u, 0x000300fbu, 0x00000332u, 0x00006dedu, + 0x000200f8u, 0x00006dedu, 0x00050051u, 0x0000000fu, 0x00006defu, 0x0000c27bu, 0x00000002u, 0x00040071u, + 0x00000006u, 0x00006df0u, 0x00006defu, 0x0004007cu, 0x00000008u, 0x00006df1u, 0x00006df0u, 0x000300f7u, + 0x00006e02u, 0x00000000u, 0x000b00fbu, 0x00006df1u, 0x00006e02u, 0x00000000u, 0x00006df2u, 0x00000001u, + 0x00006df6u, 0x00000002u, 0x00006dfau, 0x00000003u, 0x00006dfeu, 0x000200f8u, 0x00006dfeu, 0x0008004fu, + 0x00000047u, 0x00006e01u, 0x00006bc8u, 0x00006bc8u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006e02u, 0x000200f8u, 0x00006dfau, 0x0008004fu, 0x00000047u, 0x00006dfdu, 0x00006bcau, 0x00006bcau, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006e02u, 0x000200f8u, 0x00006df6u, 0x0008004fu, + 0x00000047u, 0x00006df9u, 0x00006c0eu, 0x00006c0eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006e02u, 0x000200f8u, 0x00006df2u, 0x0008004fu, 0x00000047u, 0x00006df5u, 0x0000a0cfu, 0x0000a0cfu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006e02u, 0x000200f8u, 0x00006e02u, 0x000d00f5u, + 0x00000047u, 0x0000a58fu, 0x0000a59cu, 0x00006dedu, 0x00006df5u, 0x00006df2u, 0x00006df9u, 0x00006df6u, + 0x00006dfdu, 0x00006dfau, 0x00006e01u, 0x00006dfeu, 0x000400a8u, 0x00000069u, 0x00006e07u, 0x00006c65u, + 0x000500a7u, 0x00000069u, 0x00006e08u, 0x00006b2bu, 0x00006e07u, 0x000300f7u, 0x00006e0bu, 0x00000000u, + 0x000400fau, 0x00006e08u, 0x00006e09u, 0x00006e0bu, 0x000200f8u, 0x00006e09u, 0x000200f9u, 0x00006ec5u, + 0x000200f8u, 0x00006e0bu, 0x00050051u, 0x0000000fu, 0x00006e0eu, 0x0000c27bu, 0x00000000u, 0x00040071u, + 0x00000006u, 0x00006e0fu, 0x00006e0eu, 0x0004007cu, 0x00000008u, 0x00006e10u, 0x00006e0fu, 0x000300f7u, + 0x00006e21u, 0x00000000u, 0x000b00fbu, 0x00006e10u, 0x00006e21u, 0x00000000u, 0x00006e11u, 0x00000001u, + 0x00006e15u, 0x00000002u, 0x00006e19u, 0x00000003u, 0x00006e1du, 0x000200f8u, 0x00006e1du, 0x0008004fu, + 0x00000047u, 0x00006e20u, 0x00006bc8u, 0x00006bc8u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006e21u, 0x000200f8u, 0x00006e19u, 0x0008004fu, 0x00000047u, 0x00006e1cu, 0x00006bcau, 0x00006bcau, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006e21u, 0x000200f8u, 0x00006e15u, 0x0008004fu, + 0x00000047u, 0x00006e18u, 0x00006c0eu, 0x00006c0eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00006e21u, 0x000200f8u, 0x00006e11u, 0x0008004fu, 0x00000047u, 0x00006e14u, 0x0000a0cfu, 0x0000a0cfu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00006e21u, 0x000200f8u, 0x00006e21u, 0x000d00f5u, + 0x00000047u, 0x0000a3f9u, 0x0000a408u, 0x00006e0bu, 0x00006e14u, 0x00006e11u, 0x00006e18u, 0x00006e15u, + 0x00006e1cu, 0x00006e19u, 0x00006e20u, 0x00006e1du, 0x000400a8u, 0x00000069u, 0x00006e25u, 0x00009a94u, + 0x000400a8u, 0x00000069u, 0x00006e26u, 0x00006e25u, 0x000300f7u, 0x00006e3bu, 0x00000000u, 0x000400fau, + 0x00006e26u, 0x00006e27u, 0x00006e3bu, 0x000200f8u, 0x00006e27u, 0x00050051u, 0x0000000fu, 0x00006e29u, + 0x0000c27bu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006e2au, 0x00006e29u, 0x0004007cu, 0x00000008u, + 0x00006e2bu, 0x00006e2au, 0x000500aau, 0x00000069u, 0x00006e2cu, 0x00006e2bu, 0x00000225u, 0x000300f7u, + 0x00006e33u, 0x00000000u, 0x000400fau, 0x00006e2cu, 0x00006e2du, 0x00006e33u, 0x000200f8u, 0x00006e2du, + 0x00050051u, 0x0000000fu, 0x00006e2fu, 0x0000c27bu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006e30u, + 0x00006e2fu, 0x0004007cu, 0x00000008u, 0x00006e31u, 0x00006e30u, 0x000500aau, 0x00000069u, 0x00006e32u, + 0x00006e31u, 0x00000225u, 0x000200f9u, 0x00006e33u, 0x000200f8u, 0x00006e33u, 0x000700f5u, 0x00000069u, + 0x00006e34u, 0x00006e2cu, 0x00006e27u, 0x00006e32u, 0x00006e2du, 0x000300f7u, 0x00006e39u, 0x00000000u, + 0x000400fau, 0x00006e34u, 0x00006e35u, 0x00006e39u, 0x000200f8u, 0x00006e35u, 0x00050051u, 0x0000000fu, + 0x00006e37u, 0x0000a0cfu, 0x00000003u, 0x000500aau, 0x00000069u, 0x00006e38u, 0x00006e37u, 0x00000474u, + 0x000200f9u, 0x00006e39u, 0x000200f8u, 0x00006e39u, 0x000700f5u, 0x00000069u, 0x00006e3au, 0x00006e34u, + 0x00006e33u, 0x00006e38u, 0x00006e35u, 0x000200f9u, 0x00006e3bu, 0x000200f8u, 0x00006e3bu, 0x000700f5u, + 0x00000069u, 0x00006e3cu, 0x00006e25u, 0x00006e21u, 0x00006e3au, 0x00006e39u, 0x000300f7u, 0x00006e3fu, + 0x00000000u, 0x000400fau, 0x00006e3cu, 0x00006e3du, 0x00006e3fu, 0x000200f8u, 0x00006e3du, 0x000200f9u, + 0x00006ec5u, 0x000200f8u, 0x00006e3fu, 0x00050051u, 0x0000000fu, 0x00006e42u, 0x0000c27bu, 0x00000001u, + 0x00040071u, 0x00000006u, 0x00006e43u, 0x00006e42u, 0x0004007cu, 0x00000008u, 0x00006e44u, 0x00006e43u, + 0x000300f7u, 0x00006e4fu, 0x00000000u, 0x000b00fbu, 0x00006e44u, 0x00006e4fu, 0x00000000u, 0x00006e45u, + 0x00000001u, 0x00006e48u, 0x00000002u, 0x00006e4bu, 0x00000003u, 0x00006e4eu, 0x000200f8u, 0x00006e4eu, + 0x000200f9u, 0x00006e4fu, 0x000200f8u, 0x00006e4bu, 0x000200f9u, 0x00006e4fu, 0x000200f8u, 0x00006e48u, + 0x00050051u, 0x0000000fu, 0x00006e4au, 0x00006bc8u, 0x00000003u, 0x000200f9u, 0x00006e4fu, 0x000200f8u, + 0x00006e45u, 0x00050051u, 0x0000000fu, 0x00006e47u, 0x0000a0cfu, 0x00000003u, 0x000200f9u, 0x00006e4fu, + 0x000200f8u, 0x00006e4fu, 0x000d00f5u, 0x0000000fu, 0x0000a0d1u, 0x0000a0e2u, 0x00006e3fu, 0x00006e47u, + 0x00006e45u, 0x00006e4au, 0x00006e48u, 0x00008df4u, 0x00006e4bu, 0x0000038du, 0x00006e4eu, 0x00050051u, + 0x0000000fu, 0x00006e51u, 0x0000c27bu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006e52u, 0x00006e51u, + 0x0004007cu, 0x00000008u, 0x00006e53u, 0x00006e52u, 0x000300f7u, 0x00006e5du, 0x00000000u, 0x000b00fbu, + 0x00006e53u, 0x00006e5du, 0x00000000u, 0x00006e54u, 0x00000001u, 0x00006e58u, 0x00000002u, 0x00006e5bu, + 0x00000003u, 0x00006e5cu, 0x000200f8u, 0x00006e5cu, 0x000200f9u, 0x00006e5du, 0x000200f8u, 0x00006e5bu, + 0x000200f9u, 0x00006e5du, 0x000200f8u, 0x00006e58u, 0x000200f9u, 0x00006e5du, 0x000200f8u, 0x00006e54u, + 0x000400c8u, 0x0000000fu, 0x00006e56u, 0x0000a0d1u, 0x000500c7u, 0x0000000fu, 0x00006e57u, 0x00006e56u, + 0x00000474u, 0x000200f9u, 0x00006e5du, 0x000200f8u, 0x00006e5du, 0x000d00f5u, 0x0000000fu, 0x0000a263u, + 0x0000a275u, 0x00006e4fu, 0x00006e57u, 0x00006e54u, 0x00009630u, 0x00006e58u, 0x00000474u, 0x00006e5bu, + 0x0000038du, 0x00006e5cu, 0x000500c2u, 0x0000000fu, 0x00006e5fu, 0x0000a0d1u, 0x00000394u, 0x000500c2u, + 0x0000000fu, 0x00006e61u, 0x0000a263u, 0x00000394u, 0x000500aau, 0x00000069u, 0x00006e66u, 0x00006e53u, + 0x0000022fu, 0x000300f7u, 0x00006e72u, 0x00000000u, 0x000400fau, 0x00006e66u, 0x00006e67u, 0x00006e72u, + 0x000200f8u, 0x00006e67u, 0x00050051u, 0x0000000fu, 0x00006e6au, 0x00009a9eu, 0x00000000u, 0x000500c2u, + 0x0000000fu, 0x00006e6bu, 0x00006e5fu, 0x00006e6au, 0x000500c7u, 0x0000000fu, 0x00006e6cu, 0x00006e6bu, + 0x000004b4u, 0x00050051u, 0x0000000fu, 0x00006e6fu, 0x00009a9eu, 0x00000001u, 0x000500c2u, 0x0000000fu, + 0x00006e70u, 0x00006e61u, 0x00006e6fu, 0x000500c5u, 0x0000000fu, 0x00006e71u, 0x00006e70u, 0x00000394u, + 0x000200f9u, 0x00006e72u, 0x000200f8u, 0x00006e72u, 0x000700f5u, 0x0000000fu, 0x0000a71cu, 0x00006e61u, + 0x00006e5du, 0x00006e71u, 0x00006e67u, 0x000700f5u, 0x0000000fu, 0x0000a588u, 0x00006e5fu, 0x00006e5du, + 0x00006e6cu, 0x00006e67u, 0x00040071u, 0x000004bfu, 0x00006e74u, 0x0000a3f9u, 0x0004007cu, 0x000004bbu, + 0x00006e75u, 0x00006e74u, 0x00040071u, 0x00000011u, 0x00006e77u, 0x0000a588u, 0x0004007cu, 0x00000012u, + 0x00006e78u, 0x00006e77u, 0x00060050u, 0x000004bbu, 0x00006e79u, 0x00006e78u, 0x00006e78u, 0x00006e78u, + 0x00050084u, 0x000004bbu, 0x00006e7au, 0x00006e75u, 0x00006e79u, 0x00040071u, 0x000004bfu, 0x00006e7cu, + 0x0000a58fu, 0x0004007cu, 0x000004bbu, 0x00006e7du, 0x00006e7cu, 0x00040071u, 0x00000011u, 0x00006e7fu, + 0x0000a71cu, 0x0004007cu, 0x00000012u, 0x00006e80u, 0x00006e7fu, 0x00050080u, 0x00000012u, 0x00006e81u, + 0x00006e80u, 0x000004cdu, 0x00060050u, 0x000004bbu, 0x00006e82u, 0x00006e81u, 0x00006e81u, 0x00006e81u, + 0x00050084u, 0x000004bbu, 0x00006e83u, 0x00006e7du, 0x00006e82u, 0x00050080u, 0x000004bbu, 0x00006e84u, + 0x00006e7au, 0x00006e83u, 0x000500a6u, 0x00000069u, 0x00006e88u, 0x0000053bu, 0x00006b1bu, 0x000300f7u, + 0x00006ec1u, 0x00000000u, 0x000400fau, 0x00006e88u, 0x00006e89u, 0x00006e8fu, 0x000200f8u, 0x00006e8fu, + 0x00040071u, 0x00000006u, 0x00006e91u, 0x0000a588u, 0x0004007cu, 0x00000008u, 0x00006e92u, 0x00006e91u, + 0x000500c3u, 0x00000008u, 0x00006e93u, 0x00006e92u, 0x00000232u, 0x00040071u, 0x00000006u, 0x00006e95u, + 0x0000a71cu, 0x0004007cu, 0x00000008u, 0x00006e96u, 0x00006e95u, 0x000500c3u, 0x00000008u, 0x00006e97u, + 0x00006e96u, 0x00000232u, 0x00050080u, 0x00000008u, 0x00006e98u, 0x00006e93u, 0x00006e97u, 0x00050080u, + 0x00000008u, 0x00006e99u, 0x00006e98u, 0x0000022fu, 0x000500c3u, 0x000004bbu, 0x00006e9cu, 0x00006e84u, + 0x0000c24bu, 0x000500c7u, 0x000004bbu, 0x00006e9fu, 0x00006e9cu, 0x0000c24cu, 0x0004003du, 0x000004f2u, + 0x00006ea0u, 0x000004f4u, 0x000500c4u, 0x00000008u, 0x00006ea2u, 0x00006e99u, 0x0000026bu, 0x00050051u, + 0x00000012u, 0x00006ea4u, 0x00006e9fu, 0x00000000u, 0x00040072u, 0x00000008u, 0x00006ea5u, 0x00006ea4u, + 0x000500c5u, 0x00000008u, 0x00006ea6u, 0x00006ea2u, 0x00006ea5u, 0x0005005fu, 0x000004fcu, 0x00006ea7u, + 0x00006ea0u, 0x00006ea6u, 0x00050051u, 0x00000006u, 0x00006ea8u, 0x00006ea7u, 0x00000000u, 0x00040071u, + 0x0000000fu, 0x00006ea9u, 0x00006ea8u, 0x00050051u, 0x00000012u, 0x00006eafu, 0x00006e9fu, 0x00000001u, + 0x00040072u, 0x00000008u, 0x00006eb0u, 0x00006eafu, 0x000500c5u, 0x00000008u, 0x00006eb1u, 0x00006ea2u, + 0x00006eb0u, 0x0005005fu, 0x000004fcu, 0x00006eb2u, 0x00006ea0u, 0x00006eb1u, 0x00050051u, 0x00000006u, + 0x00006eb3u, 0x00006eb2u, 0x00000000u, 0x00040071u, 0x0000000fu, 0x00006eb4u, 0x00006eb3u, 0x00050051u, + 0x00000012u, 0x00006ebau, 0x00006e9fu, 0x00000002u, 0x00040072u, 0x00000008u, 0x00006ebbu, 0x00006ebau, + 0x000500c5u, 0x00000008u, 0x00006ebcu, 0x00006ea2u, 0x00006ebbu, 0x0005005fu, 0x000004fcu, 0x00006ebdu, + 0x00006ea0u, 0x00006ebcu, 0x00050051u, 0x00000006u, 0x00006ebeu, 0x00006ebdu, 0x00000000u, 0x00040071u, + 0x0000000fu, 0x00006ebfu, 0x00006ebeu, 0x00060050u, 0x00000047u, 0x0000c254u, 0x00006ea9u, 0x00006eb4u, + 0x00006ebfu, 0x000200f9u, 0x00006ec1u, 0x000200f8u, 0x00006e89u, 0x000500c3u, 0x000004bbu, 0x00006e8cu, + 0x00006e84u, 0x0000c249u, 0x00040072u, 0x00000381u, 0x00006e8du, 0x00006e8cu, 0x0004007cu, 0x00000047u, + 0x00006e8eu, 0x00006e8du, 0x000200f9u, 0x00006ec1u, 0x000200f8u, 0x00006ec1u, 0x000700f5u, 0x00000047u, + 0x0000a71du, 0x00006e8eu, 0x00006e89u, 0x0000c254u, 0x00006e8fu, 0x000500c7u, 0x00000047u, 0x00006ec4u, + 0x0000a71du, 0x0000c24au, 0x000200f9u, 0x00006ec5u, 0x000200f8u, 0x00006ec5u, 0x000900f5u, 0x00000047u, + 0x0000c1c7u, 0x0000a408u, 0x00006e09u, 0x0000a3f9u, 0x00006e3du, 0x0000a71du, 0x00006ec1u, 0x000900f5u, + 0x0000000fu, 0x0000c1acu, 0x0000a275u, 0x00006e09u, 0x0000a275u, 0x00006e3du, 0x0000a71cu, 0x00006ec1u, + 0x000900f5u, 0x0000000fu, 0x0000c191u, 0x0000a0e2u, 0x00006e09u, 0x0000a0e2u, 0x00006e3du, 0x0000a588u, + 0x00006ec1u, 0x000900f5u, 0x00000047u, 0x0000a71eu, 0x0000a58fu, 0x00006e09u, 0x0000a3f9u, 0x00006e3du, + 0x00006ec4u, 0x00006ec1u, 0x000300f7u, 0x00006b8eu, 0x00000000u, 0x000400fau, 0x00006b37u, 0x00006b88u, + 0x00006b8eu, 0x000200f8u, 0x00006b88u, 0x00040071u, 0x00000311u, 0x00006b8au, 0x0000a71eu, 0x0004007cu, + 0x00000044u, 0x00006b8bu, 0x00006b8au, 0x00060050u, 0x00000044u, 0x00006eceu, 0x00006b07u, 0x00006b07u, + 0x00006b07u, 0x000500c3u, 0x00000044u, 0x00006ecfu, 0x00006eceu, 0x00000358u, 0x000500c7u, 0x00000044u, + 0x00006ed1u, 0x00006ecfu, 0x0000c244u, 0x000500c7u, 0x00000044u, 0x00006ed4u, 0x00006b8bu, 0x0000c245u, + 0x00050080u, 0x00000044u, 0x00006ed6u, 0x00006ed4u, 0x0000c246u, 0x000500adu, 0x00000368u, 0x00006ed8u, + 0x00006b8bu, 0x00000367u, 0x000600a9u, 0x00000044u, 0x00006ed9u, 0x00006ed8u, 0x00000364u, 0x00006ed6u, + 0x000500c7u, 0x00000044u, 0x00006eddu, 0x00006b8bu, 0x0000c244u, 0x00050082u, 0x00000044u, 0x00006edeu, + 0x00006ed1u, 0x00006eddu, 0x000500c3u, 0x00000044u, 0x00006ee0u, 0x00006edeu, 0x0000c247u, 0x00050082u, + 0x00000044u, 0x00006ee3u, 0x00006ed9u, 0x00006b8bu, 0x000500c7u, 0x00000044u, 0x00006ee7u, 0x00006ee3u, + 0x00006ee0u, 0x00050080u, 0x00000044u, 0x00006ee8u, 0x00006b8bu, 0x00006ee7u, 0x000500c7u, 0x00000044u, + 0x00006eebu, 0x00006ee8u, 0x00000364u, 0x00040072u, 0x00000381u, 0x00006eecu, 0x00006eebu, 0x0004007cu, + 0x00000047u, 0x00006eedu, 0x00006eecu, 0x000200f9u, 0x00006b8eu, 0x000200f8u, 0x00006b8eu, 0x000700f5u, + 0x00000047u, 0x0000a73du, 0x0000a71eu, 0x00006ec5u, 0x00006eedu, 0x00006b88u, 0x00040071u, 0x00000006u, + 0x00006b94u, 0x00006be3u, 0x0004007cu, 0x00000008u, 0x00006b95u, 0x00006b94u, 0x000300f7u, 0x00006f06u, + 0x00000000u, 0x000b00fbu, 0x00006b95u, 0x00006f06u, 0x00000000u, 0x00006ef2u, 0x00000001u, 0x00006efeu, + 0x00000002u, 0x00006f03u, 0x00000003u, 0x00006f04u, 0x000200f8u, 0x00006f04u, 0x000200f9u, 0x00006f06u, + 0x000200f8u, 0x00006f03u, 0x000200f9u, 0x00006f06u, 0x000200f8u, 0x00006efeu, 0x00050080u, 0x00000008u, + 0x00006f01u, 0x00009a8eu, 0x00006b47u, 0x000500c7u, 0x00000008u, 0x00006f02u, 0x00006f01u, 0x00000241u, + 0x000200f9u, 0x00006f06u, 0x000200f8u, 0x00006ef2u, 0x000300f7u, 0x00006efdu, 0x00000000u, 0x000400fau, + 0x00009a94u, 0x00006ef4u, 0x00006ef9u, 0x000200f8u, 0x00006ef9u, 0x00050082u, 0x00000008u, 0x00006efbu, + 0x00009a8eu, 0x0000022fu, 0x000500c7u, 0x00000008u, 0x00006efcu, 0x00006efbu, 0x00000241u, 0x000200f9u, + 0x00006efdu, 0x000200f8u, 0x00006ef4u, 0x00050080u, 0x00000008u, 0x00006ef7u, 0x00006b47u, 0x00009a8eu, + 0x0007000cu, 0x00000008u, 0x00006ef8u, 0x00000001u, 0x00000027u, 0x00000241u, 0x00006ef7u, 0x000200f9u, + 0x00006efdu, 0x000200f8u, 0x00006efdu, 0x000700f5u, 0x00000008u, 0x0000a73bu, 0x00006ef8u, 0x00006ef4u, + 0x00006efcu, 0x00006ef9u, 0x000200f9u, 0x00006f06u, 0x000200f8u, 0x00006f06u, 0x000d00f5u, 0x00000008u, + 0x0000a73au, 0x00000225u, 0x00006b8eu, 0x0000a73bu, 0x00006efdu, 0x00006f02u, 0x00006efeu, 0x00000241u, + 0x00006f03u, 0x00006b47u, 0x00006f04u, 0x000500c4u, 0x00000008u, 0x00006b9bu, 0x0000a73au, 0x0000023bu, + 0x00040072u, 0x00000380u, 0x00006b9cu, 0x00006b9bu, 0x0004007cu, 0x0000000fu, 0x00006b9du, 0x00006b9cu, + 0x00050051u, 0x0000000fu, 0x00006b9eu, 0x0000a73du, 0x00000000u, 0x00050051u, 0x0000000fu, 0x00006b9fu, + 0x0000a73du, 0x00000001u, 0x00050051u, 0x0000000fu, 0x00006ba0u, 0x0000a73du, 0x00000002u, 0x00070050u, + 0x00000010u, 0x00006ba1u, 0x00006b9eu, 0x00006b9fu, 0x00006ba0u, 0x00006b9du, 0x000300f7u, 0x00006f14u, + 0x00000000u, 0x000400fau, 0x00000966u, 0x00006f09u, 0x00006f12u, 0x000200f8u, 0x00006f12u, 0x000200f9u, + 0x00006f14u, 0x000200f8u, 0x00006f09u, 0x00060052u, 0x00000010u, 0x00007a0du, 0x00006b9eu, 0x00009355u, + 0x00000000u, 0x00060052u, 0x00000010u, 0x00007a0fu, 0x00006b9fu, 0x00007a0du, 0x00000001u, 0x00060052u, + 0x00000010u, 0x00007a11u, 0x00006ba0u, 0x00007a0fu, 0x00000002u, 0x000200f9u, 0x00006f14u, 0x000200f8u, + 0x00006f14u, 0x000700f5u, 0x00000010u, 0x0000a768u, 0x00007a11u, 0x00006f09u, 0x00006ba1u, 0x00006f12u, + 0x000300f7u, 0x00006bb0u, 0x00000000u, 0x000400fau, 0x00006b23u, 0x00006ba4u, 0x00006bacu, 0x000200f8u, + 0x00006bacu, 0x000300f7u, 0x00006bafu, 0x00000000u, 0x000400fau, 0x00000858u, 0x00006badu, 0x00006bafu, + 0x000200f8u, 0x00006badu, 0x000300f7u, 0x00006f91u, 0x00000000u, 0x000700fbu, 0x00000661u, 0x00006f91u, + 0x00000002u, 0x00006f5eu, 0x00000003u, 0x00006f7bu, 0x000200f8u, 0x00006f7bu, 0x0007004fu, 0x0000006bu, + 0x00006f7du, 0x0000a768u, 0x0000a768u, 0x00000000u, 0x00000003u, 0x00040071u, 0x000000b4u, 0x00006f7eu, + 0x00006f7du, 0x00050051u, 0x00000006u, 0x00006f80u, 0x00006f7eu, 0x00000000u, 0x000500c4u, 0x00000006u, + 0x00006f81u, 0x00006f80u, 0x00000319u, 0x00050051u, 0x00000006u, 0x00006f83u, 0x00006f7eu, 0x00000001u, + 0x000500c5u, 0x00000006u, 0x00006f84u, 0x00006f81u, 0x00006f83u, 0x000500c7u, 0x00000006u, 0x00006f86u, + 0x00006f84u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00006f87u, 0x00006f86u, 0x00000469u, 0x000500c2u, + 0x00000006u, 0x00006f89u, 0x00006f84u, 0x0000038bu, 0x00040071u, 0x00000011u, 0x00006f8au, 0x00006f89u, + 0x000500c7u, 0x00000006u, 0x00006f8cu, 0x00006f84u, 0x00000469u, 0x000500c4u, 0x00000006u, 0x00006f8du, + 0x00006f8cu, 0x0000038bu, 0x000500c5u, 0x00000006u, 0x00006f8fu, 0x00006f8du, 0x00006f87u, 0x00040071u, + 0x0000000fu, 0x00006f90u, 0x00006f8fu, 0x000200f9u, 0x00006f91u, 0x000200f8u, 0x00006f5eu, 0x00050051u, + 0x0000000fu, 0x00006f60u, 0x0000a768u, 0x00000003u, 0x000500c2u, 0x0000000fu, 0x00006f61u, 0x00006f60u, + 0x00000394u, 0x00050051u, 0x0000000fu, 0x00006f63u, 0x0000a768u, 0x00000002u, 0x000500c7u, 0x0000000fu, + 0x00006f64u, 0x00006f63u, 0x00000626u, 0x000500c5u, 0x0000000fu, 0x00006f65u, 0x00006f61u, 0x00006f64u, + 0x00050051u, 0x0000000fu, 0x00006f67u, 0x0000a768u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00006f68u, + 0x00006f67u, 0x000500c7u, 0x00000006u, 0x00006f69u, 0x00006f68u, 0x000006a3u, 0x000500c4u, 0x00000006u, + 0x00006f6au, 0x00006f69u, 0x000006fcu, 0x00050051u, 0x0000000fu, 0x00006f6cu, 0x0000a768u, 0x00000001u, + 0x00040071u, 0x00000006u, 0x00006f6du, 0x00006f6cu, 0x000500c7u, 0x00000006u, 0x00006f6eu, 0x00006f6du, + 0x000006a3u, 0x000500c4u, 0x00000006u, 0x00006f6fu, 0x00006f6eu, 0x00000461u, 0x000500c5u, 0x00000006u, + 0x00006f71u, 0x00006f6au, 0x00006f6fu, 0x00040071u, 0x00000006u, 0x00006f74u, 0x00006f63u, 0x000500c7u, + 0x00000006u, 0x00006f75u, 0x00006f74u, 0x000006a3u, 0x000500c2u, 0x00000006u, 0x00006f76u, 0x00006f75u, + 0x00000709u, 0x000500c5u, 0x00000006u, 0x00006f78u, 0x00006f71u, 0x00006f76u, 0x00040071u, 0x00000011u, + 0x00006f7au, 0x00006f78u, 0x000200f9u, 0x00006f91u, 0x000200f8u, 0x00006f91u, 0x000900f5u, 0x0000000fu, + 0x0000c0a9u, 0x000097a1u, 0x00006badu, 0x00006f65u, 0x00006f5eu, 0x00006f90u, 0x00006f7bu, 0x000900f5u, + 0x00000011u, 0x0000c06bu, 0x00009635u, 0x00006badu, 0x00006f7au, 0x00006f5eu, 0x00006f8au, 0x00006f7bu, + 0x000200f9u, 0x00006bafu, 0x000200f8u, 0x00006bafu, 0x000700f5u, 0x0000000fu, 0x0000c08bu, 0x000097a1u, + 0x00006bacu, 0x0000c0a9u, 0x00006f91u, 0x000700f5u, 0x00000011u, 0x0000c04du, 0x00009635u, 0x00006bacu, + 0x0000c06bu, 0x00006f91u, 0x000200f9u, 0x00006bb0u, 0x000200f8u, 0x00006ba4u, 0x00050082u, 0x00000008u, + 0x00006f1cu, 0x000003f2u, 0x00006b04u, 0x0007000cu, 0x00000008u, 0x00006f1du, 0x00000001u, 0x0000002au, + 0x00006f1cu, 0x0000022fu, 0x0006000cu, 0x00000008u, 0x00006f1fu, 0x00000001u, 0x0000004au, 0x00006f1du, + 0x00050082u, 0x00000008u, 0x00006f20u, 0x000003f7u, 0x00006f1fu, 0x0008000cu, 0x00000008u, 0x00006f22u, + 0x00000001u, 0x0000002du, 0x00006f20u, 0x00000225u, 0x00000241u, 0x00050082u, 0x00000008u, 0x00006f24u, + 0x0000023eu, 0x00006f22u, 0x0007000cu, 0x00000008u, 0x00006f25u, 0x00000001u, 0x0000002au, 0x00006f24u, + 0x00000225u, 0x000500c3u, 0x00000008u, 0x00006f28u, 0x00006b04u, 0x00006f25u, 0x000500c7u, 0x00000008u, + 0x00006f29u, 0x00006f28u, 0x000003dfu, 0x000500c4u, 0x00000008u, 0x00006f2bu, 0x00006f22u, 0x0000026bu, + 0x00050080u, 0x00000008u, 0x00006f2du, 0x00006f2bu, 0x00006f29u, 0x00040072u, 0x00000012u, 0x00006f2eu, + 0x00006f2du, 0x0004007cu, 0x00000011u, 0x00006f2fu, 0x00006f2eu, 0x000300f7u, 0x00006babu, 0x00000000u, + 0x000400fau, 0x00000858u, 0x00006ba9u, 0x00006babu, 0x000200f8u, 0x00006ba9u, 0x00040071u, 0x00000006u, + 0x00006f33u, 0x00006f2fu, 0x000500c4u, 0x00000006u, 0x00006f34u, 0x00006f33u, 0x00000709u, 0x000500c5u, + 0x00000006u, 0x00006f37u, 0x00006f34u, 0x00006b43u, 0x000300f7u, 0x00006f58u, 0x00000000u, 0x000700fbu, + 0x00000661u, 0x00006f58u, 0x00000002u, 0x00006f38u, 0x00000003u, 0x00006f4du, 0x000200f8u, 0x00006f4du, + 0x000500c2u, 0x00000006u, 0x00006f4fu, 0x00006f37u, 0x00000736u, 0x000500c7u, 0x00000006u, 0x00006f50u, + 0x00006f4fu, 0x000006c8u, 0x00040071u, 0x0000000fu, 0x00006f51u, 0x00006f50u, 0x00060052u, 0x00000010u, + 0x00007a1bu, 0x00006f51u, 0x0000a768u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00006f54u, 0x00006f37u, + 0x0000038bu, 0x000500c7u, 0x00000006u, 0x00006f55u, 0x00006f54u, 0x000006c8u, 0x00040071u, 0x0000000fu, + 0x00006f56u, 0x00006f55u, 0x00060052u, 0x00000010u, 0x00007a1du, 0x00006f56u, 0x00007a1bu, 0x00000003u, + 0x000200f9u, 0x00006f58u, 0x000200f8u, 0x00006f38u, 0x000500c2u, 0x00000006u, 0x00006f3au, 0x00006f37u, + 0x00000736u, 0x000500c7u, 0x00000006u, 0x00006f3bu, 0x00006f3au, 0x000006a3u, 0x00040071u, 0x0000000fu, + 0x00006f3cu, 0x00006f3bu, 0x000500c2u, 0x00000006u, 0x00006f3fu, 0x00006f37u, 0x0000073cu, 0x000500c7u, + 0x00000006u, 0x00006f40u, 0x00006f3fu, 0x000006a3u, 0x00040071u, 0x0000000fu, 0x00006f41u, 0x00006f40u, + 0x000500c2u, 0x00000006u, 0x00006f44u, 0x00006f37u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x00006f45u, + 0x00006f44u, 0x000006a3u, 0x00040071u, 0x0000000fu, 0x00006f46u, 0x00006f45u, 0x000500c7u, 0x00000006u, + 0x00006f49u, 0x00006f37u, 0x00000747u, 0x000500c4u, 0x00000006u, 0x00006f4au, 0x00006f49u, 0x0000073cu, + 0x00040071u, 0x0000000fu, 0x00006f4bu, 0x00006f4au, 0x00070050u, 0x00000010u, 0x0000c255u, 0x00006f3cu, + 0x00006f41u, 0x00006f46u, 0x00006f4bu, 0x000200f9u, 0x00006f58u, 0x000200f8u, 0x00006f58u, 0x000900f5u, + 0x00000010u, 0x0000bfedu, 0x0000a768u, 0x00006ba9u, 0x0000c255u, 0x00006f38u, 0x00007a1du, 0x00006f4du, + 0x000200f9u, 0x00006babu, 0x000200f8u, 0x00006babu, 0x000700f5u, 0x00000010u, 0x0000bfecu, 0x0000a768u, + 0x00006ba4u, 0x0000bfedu, 0x00006f58u, 0x000200f9u, 0x00006bb0u, 0x000200f8u, 0x00006bb0u, 0x000700f5u, + 0x0000000fu, 0x0000c088u, 0x00006bd0u, 0x00006babu, 0x0000c08bu, 0x00006bafu, 0x000700f5u, 0x00000011u, + 0x0000c04au, 0x00006f2fu, 0x00006babu, 0x0000c04du, 0x00006bafu, 0x000700f5u, 0x00000010u, 0x0000bfebu, + 0x0000bfecu, 0x00006babu, 0x0000a768u, 0x00006bafu, 0x000600a9u, 0x00000069u, 0x0000c27cu, 0x00006b23u, + 0x0000055eu, 0x0000ac10u, 0x000200f9u, 0x00006bb1u, 0x000200f8u, 0x00006bb1u, 0x000700f5u, 0x00000047u, + 0x0000c1dbu, 0x0000a59cu, 0x00006b5fu, 0x0000a58fu, 0x00006bb0u, 0x000700f5u, 0x00000047u, 0x0000c1c1u, + 0x0000a408u, 0x00006b5fu, 0x0000c1c7u, 0x00006bb0u, 0x000700f5u, 0x0000000fu, 0x0000c1a6u, 0x0000a275u, + 0x00006b5fu, 0x0000c1acu, 0x00006bb0u, 0x000700f5u, 0x0000000fu, 0x0000c18bu, 0x0000a0e2u, 0x00006b5fu, + 0x0000c191u, 0x00006bb0u, 0x000700f5u, 0x00000047u, 0x0000c163u, 0x00009f4cu, 0x00006b5fu, 0x0000c16bu, + 0x00006bb0u, 0x000700f5u, 0x00000047u, 0x0000c13cu, 0x00009dc5u, 0x00006b5fu, 0x0000c144u, 0x00006bb0u, + 0x000700f5u, 0x0000000fu, 0x0000c114u, 0x00009c3fu, 0x00006b5fu, 0x0000c11cu, 0x00006bb0u, 0x000700f5u, + 0x0000000fu, 0x0000c0ecu, 0x00009ab9u, 0x00006b5fu, 0x0000c0f4u, 0x00006bb0u, 0x000700f5u, 0x0000000fu, + 0x0000c07bu, 0x000097a1u, 0x00006b5fu, 0x0000c088u, 0x00006bb0u, 0x000700f5u, 0x00000011u, 0x0000c03du, + 0x00009635u, 0x00006b5fu, 0x0000c04au, 0x00006bb0u, 0x000700f5u, 0x00000010u, 0x0000bfeau, 0x00009355u, + 0x00006b5fu, 0x0000bfebu, 0x00006bb0u, 0x000700f5u, 0x00000069u, 0x0000ad89u, 0x0000ac10u, 0x00006b5fu, + 0x0000c27cu, 0x00006bb0u, 0x000600a9u, 0x00000069u, 0x0000c27du, 0x00006b60u, 0x0000055eu, 0x0000aa8au, + 0x000200f9u, 0x0000210du, 0x000200f8u, 0x0000210cu, 0x0004007cu, 0x00000006u, 0x00002110u, 0x000090a3u, + 0x000300f7u, 0x00006a67u, 0x00000000u, 0x000900fbu, 0x00000661u, 0x00006a67u, 0x00000000u, 0x00006a48u, + 0x00000001u, 0x00006a49u, 0x00000002u, 0x00006a50u, 0x000200f8u, 0x00006a50u, 0x000500c2u, 0x00000006u, + 0x00006a52u, 0x00002110u, 0x00000262u, 0x000500c7u, 0x00000006u, 0x00006a53u, 0x00006a52u, 0x000006a3u, + 0x000500c2u, 0x00000006u, 0x00006a55u, 0x00002110u, 0x00000235u, 0x000500c7u, 0x00000006u, 0x00006a56u, + 0x00006a55u, 0x000006a3u, 0x000500c4u, 0x00000006u, 0x00006a58u, 0x00002110u, 0x00000232u, 0x000500c7u, + 0x00000006u, 0x00006a59u, 0x00006a58u, 0x000006a3u, 0x000500c7u, 0x00000006u, 0x00006a5bu, 0x00002110u, + 0x00000461u, 0x00050084u, 0x00000006u, 0x00006a5cu, 0x00006a5bu, 0x0000098fu, 0x00040071u, 0x0000000fu, + 0x00006a5eu, 0x00006a53u, 0x00040071u, 0x0000000fu, 0x00006a60u, 0x00006a56u, 0x00040071u, 0x0000000fu, + 0x00006a62u, 0x00006a59u, 0x00040071u, 0x0000000fu, 0x00006a64u, 0x00006a5cu, 0x00070050u, 0x00000010u, + 0x00006a65u, 0x00006a5eu, 0x00006a60u, 0x00006a62u, 0x00006a64u, 0x000300f7u, 0x00006a84u, 0x00000000u, + 0x000400fau, 0x00000966u, 0x00006a79u, 0x00006a82u, 0x000200f8u, 0x00006a82u, 0x000200f9u, 0x00006a84u, + 0x000200f8u, 0x00006a79u, 0x00060052u, 0x00000010u, 0x000079c4u, 0x00006a5eu, 0x00009355u, 0x00000000u, + 0x00060052u, 0x00000010u, 0x000079c6u, 0x00006a60u, 0x000079c4u, 0x00000001u, 0x00060052u, 0x00000010u, + 0x000079c8u, 0x00006a62u, 0x000079c6u, 0x00000002u, 0x000200f9u, 0x00006a84u, 0x000200f8u, 0x00006a84u, + 0x000700f5u, 0x00000010u, 0x0000a76bu, 0x000079c8u, 0x00006a79u, 0x00006a65u, 0x00006a82u, 0x000200f9u, + 0x00006a67u, 0x000200f8u, 0x00006a49u, 0x000500c7u, 0x00000006u, 0x00006a4bu, 0x00002110u, 0x000006c8u, + 0x00040071u, 0x0000000fu, 0x00006a4du, 0x00006a4bu, 0x00070050u, 0x00000010u, 0x00006a4eu, 0x00006a4du, + 0x00006a4du, 0x00006a4du, 0x00006a4du, 0x000300f7u, 0x00006a77u, 0x00000000u, 0x000400fau, 0x00000966u, + 0x00006a6cu, 0x00006a75u, 0x000200f8u, 0x00006a75u, 0x000200f9u, 0x00006a77u, 0x000200f8u, 0x00006a6cu, + 0x00060052u, 0x00000010u, 0x000079beu, 0x00006a4du, 0x00009355u, 0x00000000u, 0x00060052u, 0x00000010u, + 0x000079c0u, 0x00006a4du, 0x000079beu, 0x00000001u, 0x00060052u, 0x00000010u, 0x000079c2u, 0x00006a4du, + 0x000079c0u, 0x00000002u, 0x000200f9u, 0x00006a77u, 0x000200f8u, 0x00006a77u, 0x000700f5u, 0x00000010u, + 0x0000a76au, 0x000079c2u, 0x00006a6cu, 0x00006a4eu, 0x00006a75u, 0x000200f9u, 0x00006a67u, 0x000200f8u, + 0x00006a48u, 0x000200f9u, 0x00006a67u, 0x000200f8u, 0x00006a67u, 0x000b00f5u, 0x00000069u, 0x0000abfbu, + 0x0000aa8au, 0x0000210cu, 0x0000055eu, 0x00006a48u, 0x0000055eu, 0x00006a77u, 0x0000055eu, 0x00006a84u, + 0x000b00f5u, 0x00000010u, 0x0000a769u, 0x00009355u, 0x0000210cu, 0x00000618u, 0x00006a48u, 0x0000a76au, + 0x00006a77u, 0x0000a76bu, 0x00006a84u, 0x000300f7u, 0x00006a6au, 0x00000000u, 0x000400fau, 0x00000858u, + 0x00006a68u, 0x00006a6au, 0x000200f8u, 0x00006a68u, 0x000300f7u, 0x00006abdu, 0x00000000u, 0x000700fbu, + 0x00000661u, 0x00006abdu, 0x00000002u, 0x00006a8au, 0x00000003u, 0x00006aa7u, 0x000200f8u, 0x00006aa7u, + 0x0007004fu, 0x0000006bu, 0x00006aa9u, 0x0000a769u, 0x0000a769u, 0x00000000u, 0x00000003u, 0x00040071u, + 0x000000b4u, 0x00006aaau, 0x00006aa9u, 0x00050051u, 0x00000006u, 0x00006aacu, 0x00006aaau, 0x00000000u, + 0x000500c4u, 0x00000006u, 0x00006aadu, 0x00006aacu, 0x00000319u, 0x00050051u, 0x00000006u, 0x00006aafu, + 0x00006aaau, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00006ab0u, 0x00006aadu, 0x00006aafu, 0x000500c7u, + 0x00000006u, 0x00006ab2u, 0x00006ab0u, 0x00000461u, 0x00050084u, 0x00000006u, 0x00006ab3u, 0x00006ab2u, + 0x00000469u, 0x000500c2u, 0x00000006u, 0x00006ab5u, 0x00006ab0u, 0x0000038bu, 0x00040071u, 0x00000011u, + 0x00006ab6u, 0x00006ab5u, 0x000500c7u, 0x00000006u, 0x00006ab8u, 0x00006ab0u, 0x00000469u, 0x000500c4u, + 0x00000006u, 0x00006ab9u, 0x00006ab8u, 0x0000038bu, 0x000500c5u, 0x00000006u, 0x00006abbu, 0x00006ab9u, + 0x00006ab3u, 0x00040071u, 0x0000000fu, 0x00006abcu, 0x00006abbu, 0x000200f9u, 0x00006abdu, 0x000200f8u, + 0x00006a8au, 0x00050051u, 0x0000000fu, 0x00006a8cu, 0x0000a769u, 0x00000003u, 0x000500c2u, 0x0000000fu, + 0x00006a8du, 0x00006a8cu, 0x00000394u, 0x00050051u, 0x0000000fu, 0x00006a8fu, 0x0000a769u, 0x00000002u, + 0x000500c7u, 0x0000000fu, 0x00006a90u, 0x00006a8fu, 0x00000626u, 0x000500c5u, 0x0000000fu, 0x00006a91u, + 0x00006a8du, 0x00006a90u, 0x00050051u, 0x0000000fu, 0x00006a93u, 0x0000a769u, 0x00000000u, 0x00040071u, + 0x00000006u, 0x00006a94u, 0x00006a93u, 0x000500c7u, 0x00000006u, 0x00006a95u, 0x00006a94u, 0x000006a3u, + 0x000500c4u, 0x00000006u, 0x00006a96u, 0x00006a95u, 0x000006fcu, 0x00050051u, 0x0000000fu, 0x00006a98u, + 0x0000a769u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006a99u, 0x00006a98u, 0x000500c7u, 0x00000006u, + 0x00006a9au, 0x00006a99u, 0x000006a3u, 0x000500c4u, 0x00000006u, 0x00006a9bu, 0x00006a9au, 0x00000461u, + 0x000500c5u, 0x00000006u, 0x00006a9du, 0x00006a96u, 0x00006a9bu, 0x00040071u, 0x00000006u, 0x00006aa0u, + 0x00006a8fu, 0x000500c7u, 0x00000006u, 0x00006aa1u, 0x00006aa0u, 0x000006a3u, 0x000500c2u, 0x00000006u, + 0x00006aa2u, 0x00006aa1u, 0x00000709u, 0x000500c5u, 0x00000006u, 0x00006aa4u, 0x00006a9du, 0x00006aa2u, + 0x00040071u, 0x00000011u, 0x00006aa6u, 0x00006aa4u, 0x000200f9u, 0x00006abdu, 0x000200f8u, 0x00006abdu, + 0x000900f5u, 0x0000000fu, 0x0000c07au, 0x000097a1u, 0x00006a68u, 0x00006a91u, 0x00006a8au, 0x00006abcu, + 0x00006aa7u, 0x000900f5u, 0x00000011u, 0x0000c03cu, 0x00009635u, 0x00006a68u, 0x00006aa6u, 0x00006a8au, + 0x00006ab6u, 0x00006aa7u, 0x000200f9u, 0x00006a6au, 0x000200f8u, 0x00006a6au, 0x000700f5u, 0x0000000fu, + 0x0000c076u, 0x000097a1u, 0x00006a67u, 0x0000c07au, 0x00006abdu, 0x000700f5u, 0x00000011u, 0x0000c038u, + 0x00009635u, 0x00006a67u, 0x0000c03cu, 0x00006abdu, 0x000200f9u, 0x0000210du, 0x000200f8u, 0x0000210du, + 0x000700f5u, 0x00000047u, 0x0000c1d5u, 0x0000a59cu, 0x00006a6au, 0x0000c1dbu, 0x00006bb1u, 0x000700f5u, + 0x00000047u, 0x0000c1bbu, 0x0000a408u, 0x00006a6au, 0x0000c1c1u, 0x00006bb1u, 0x000700f5u, 0x0000000fu, + 0x0000c1a0u, 0x0000a275u, 0x00006a6au, 0x0000c1a6u, 0x00006bb1u, 0x000700f5u, 0x0000000fu, 0x0000c185u, + 0x0000a0e2u, 0x00006a6au, 0x0000c18bu, 0x00006bb1u, 0x000700f5u, 0x00000047u, 0x0000c15du, 0x00009f4cu, + 0x00006a6au, 0x0000c163u, 0x00006bb1u, 0x000700f5u, 0x00000047u, 0x0000c136u, 0x00009dc5u, 0x00006a6au, + 0x0000c13cu, 0x00006bb1u, 0x000700f5u, 0x0000000fu, 0x0000c10eu, 0x00009c3fu, 0x00006a6au, 0x0000c114u, + 0x00006bb1u, 0x000700f5u, 0x0000000fu, 0x0000c0e6u, 0x00009ab9u, 0x00006a6au, 0x0000c0ecu, 0x00006bb1u, + 0x000700f5u, 0x0000000fu, 0x0000c075u, 0x0000c076u, 0x00006a6au, 0x0000c07bu, 0x00006bb1u, 0x000700f5u, + 0x00000011u, 0x0000c037u, 0x0000c038u, 0x00006a6au, 0x0000c03du, 0x00006bb1u, 0x000700f5u, 0x00000047u, + 0x0000bff9u, 0x000094c3u, 0x00006a6au, 0x000094bfu, 0x00006bb1u, 0x000700f5u, 0x00000010u, 0x0000bfe7u, + 0x0000a769u, 0x00006a6au, 0x0000bfeau, 0x00006bb1u, 0x000700f5u, 0x00000069u, 0x0000ad83u, 0x0000ac10u, + 0x00006a6au, 0x0000ad89u, 0x00006bb1u, 0x000700f5u, 0x00000069u, 0x0000abf9u, 0x0000abfbu, 0x00006a6au, + 0x0000c27du, 0x00006bb1u, 0x000200f9u, 0x000020ffu, 0x000200f8u, 0x000020feu, 0x00070041u, 0x000006deu, + 0x00002102u, 0x0000024au, 0x00000225u, 0x000020eau, 0x00000268u, 0x0004003du, 0x00000006u, 0x00002103u, + 0x00002102u, 0x000300f7u, 0x000069d0u, 0x00000000u, 0x000b00fbu, 0x00000661u, 0x000069d0u, 0x00000004u, + 0x00006976u, 0x00000002u, 0x0000698du, 0x00000003u, 0x000069aau, 0x00000001u, 0x000069c3u, 0x000200f8u, + 0x000069c3u, 0x000500c7u, 0x00000006u, 0x000069c5u, 0x0000a770u, 0x00000469u, 0x000500c6u, 0x00000006u, + 0x000069c6u, 0x000069c5u, 0x00000469u, 0x00050084u, 0x00000006u, 0x000069c7u, 0x000069c6u, 0x00000319u, + 0x000500c2u, 0x00000006u, 0x000069c9u, 0x00002103u, 0x000069c7u, 0x000500c7u, 0x00000006u, 0x000069cbu, + 0x000069c9u, 0x000006c8u, 0x00040071u, 0x0000000fu, 0x000069cdu, 0x000069cbu, 0x00070050u, 0x00000010u, + 0x000069ceu, 0x000069cdu, 0x000069cdu, 0x000069cdu, 0x000069cdu, 0x000300f7u, 0x00006a07u, 0x00000000u, + 0x000400fau, 0x00000966u, 0x000069fcu, 0x00006a05u, 0x000200f8u, 0x00006a05u, 0x000200f9u, 0x00006a07u, + 0x000200f8u, 0x000069fcu, 0x00060052u, 0x00000010u, 0x000079b1u, 0x000069cdu, 0x00009355u, 0x00000000u, + 0x00060052u, 0x00000010u, 0x000079b3u, 0x000069cdu, 0x000079b1u, 0x00000001u, 0x00060052u, 0x00000010u, + 0x000079b5u, 0x000069cdu, 0x000079b3u, 0x00000002u, 0x000200f9u, 0x00006a07u, 0x000200f8u, 0x00006a07u, + 0x000700f5u, 0x00000010u, 0x0000a8dfu, 0x000079b5u, 0x000069fcu, 0x000069ceu, 0x00006a05u, 0x000200f9u, + 0x000069d0u, 0x000200f8u, 0x000069aau, 0x000500c7u, 0x00000006u, 0x000069acu, 0x0000a770u, 0x00000461u, + 0x000500c6u, 0x00000006u, 0x000069adu, 0x000069acu, 0x00000461u, 0x00050084u, 0x00000006u, 0x000069aeu, + 0x000069adu, 0x00000335u, 0x000500c2u, 0x00000006u, 0x000069b0u, 0x00002103u, 0x000069aeu, 0x000500c7u, + 0x00000006u, 0x000069b2u, 0x000069b0u, 0x000009eau, 0x000500c2u, 0x00000006u, 0x000069b4u, 0x000069b2u, + 0x00000319u, 0x000500c7u, 0x00000006u, 0x000069b5u, 0x000069b4u, 0x000006c8u, 0x000500c2u, 0x00000006u, + 0x000069b7u, 0x000069b2u, 0x00000332u, 0x000500c7u, 0x00000006u, 0x000069b8u, 0x000069b7u, 0x000006c8u, + 0x00040071u, 0x0000000fu, 0x000069bau, 0x000069b5u, 0x00040071u, 0x0000000fu, 0x000069c0u, 0x000069b8u, + 0x00070050u, 0x00000010u, 0x000069c1u, 0x000069bau, 0x000069bau, 0x000069bau, 0x000069c0u, 0x000300f7u, + 0x000069fau, 0x00000000u, 0x000400fau, 0x00000966u, 0x000069efu, 0x000069f8u, 0x000200f8u, 0x000069f8u, + 0x000200f9u, 0x000069fau, 0x000200f8u, 0x000069efu, 0x00060052u, 0x00000010u, 0x000079abu, 0x000069bau, + 0x00009355u, 0x00000000u, 0x00060052u, 0x00000010u, 0x000079adu, 0x000069bau, 0x000079abu, 0x00000001u, + 0x00060052u, 0x00000010u, 0x000079afu, 0x000069bau, 0x000079adu, 0x00000002u, 0x000200f9u, 0x000069fau, + 0x000200f8u, 0x000069fau, 0x000700f5u, 0x00000010u, 0x0000a8deu, 0x000079afu, 0x000069efu, 0x000069c1u, + 0x000069f8u, 0x000200f9u, 0x000069d0u, 0x000200f8u, 0x0000698du, 0x000500c7u, 0x00000006u, 0x0000698fu, + 0x0000a770u, 0x00000461u, 0x000500c6u, 0x00000006u, 0x00006990u, 0x0000698fu, 0x00000461u, 0x00050084u, + 0x00000006u, 0x00006991u, 0x00006990u, 0x00000335u, 0x000500c2u, 0x00000006u, 0x00006993u, 0x00002103u, + 0x00006991u, 0x000500c2u, 0x00000006u, 0x00006995u, 0x00006993u, 0x00000319u, 0x000500c7u, 0x00000006u, + 0x00006996u, 0x00006995u, 0x000006a3u, 0x000500c2u, 0x00000006u, 0x00006998u, 0x00006993u, 0x00000469u, + 0x000500c7u, 0x00000006u, 0x00006999u, 0x00006998u, 0x000006a3u, 0x000500c4u, 0x00000006u, 0x0000699bu, + 0x00006993u, 0x0000038bu, 0x000500c7u, 0x00000006u, 0x0000699cu, 0x0000699bu, 0x000006a3u, 0x000500c7u, + 0x00000006u, 0x0000699eu, 0x00006993u, 0x00000461u, 0x00050084u, 0x00000006u, 0x0000699fu, 0x0000699eu, + 0x0000098fu, 0x00040071u, 0x0000000fu, 0x000069a1u, 0x00006996u, 0x00040071u, 0x0000000fu, 0x000069a3u, + 0x00006999u, 0x00040071u, 0x0000000fu, 0x000069a5u, 0x0000699cu, 0x00040071u, 0x0000000fu, 0x000069a7u, + 0x0000699fu, 0x00070050u, 0x00000010u, 0x000069a8u, 0x000069a1u, 0x000069a3u, 0x000069a5u, 0x000069a7u, + 0x000300f7u, 0x000069edu, 0x00000000u, 0x000400fau, 0x00000966u, 0x000069e2u, 0x000069ebu, 0x000200f8u, + 0x000069ebu, 0x000200f9u, 0x000069edu, 0x000200f8u, 0x000069e2u, 0x00060052u, 0x00000010u, 0x000079a5u, + 0x000069a1u, 0x00009355u, 0x00000000u, 0x00060052u, 0x00000010u, 0x000079a7u, 0x000069a3u, 0x000079a5u, + 0x00000001u, 0x00060052u, 0x00000010u, 0x000079a9u, 0x000069a5u, 0x000079a7u, 0x00000002u, 0x000200f9u, + 0x000069edu, 0x000200f8u, 0x000069edu, 0x000700f5u, 0x00000010u, 0x0000a8ddu, 0x000079a9u, 0x000069e2u, + 0x000069a8u, 0x000069ebu, 0x000200f9u, 0x000069d0u, 0x000200f8u, 0x00006976u, 0x000500c2u, 0x00000006u, + 0x00006978u, 0x00002103u, 0x000006e3u, 0x000500c7u, 0x00000006u, 0x00006979u, 0x00006978u, 0x000006c8u, + 0x000500c2u, 0x00000006u, 0x0000697bu, 0x00002103u, 0x00000335u, 0x000500c7u, 0x00000006u, 0x0000697cu, + 0x0000697bu, 0x000006c8u, 0x000500c2u, 0x00000006u, 0x0000697eu, 0x00002103u, 0x00000319u, 0x000500c7u, + 0x00000006u, 0x0000697fu, 0x0000697eu, 0x000006c8u, 0x000500c2u, 0x00000006u, 0x00006981u, 0x00002103u, + 0x00000332u, 0x000500c7u, 0x00000006u, 0x00006982u, 0x00006981u, 0x000006c8u, 0x00040071u, 0x0000000fu, + 0x00006984u, 0x00006979u, 0x00040071u, 0x0000000fu, 0x00006986u, 0x0000697cu, 0x00040071u, 0x0000000fu, + 0x00006988u, 0x0000697fu, 0x00040071u, 0x0000000fu, 0x0000698au, 0x00006982u, 0x00070050u, 0x00000010u, + 0x0000698bu, 0x00006984u, 0x00006986u, 0x00006988u, 0x0000698au, 0x000300f7u, 0x000069e0u, 0x00000000u, + 0x000400fau, 0x00000966u, 0x000069d5u, 0x000069deu, 0x000200f8u, 0x000069deu, 0x000200f9u, 0x000069e0u, + 0x000200f8u, 0x000069d5u, 0x00060052u, 0x00000010u, 0x0000799fu, 0x00006984u, 0x00009355u, 0x00000000u, + 0x00060052u, 0x00000010u, 0x000079a1u, 0x00006986u, 0x0000799fu, 0x00000001u, 0x00060052u, 0x00000010u, + 0x000079a3u, 0x00006988u, 0x000079a1u, 0x00000002u, 0x000200f9u, 0x000069e0u, 0x000200f8u, 0x000069e0u, + 0x000700f5u, 0x00000010u, 0x0000a8dcu, 0x000079a3u, 0x000069d5u, 0x0000698bu, 0x000069deu, 0x000200f9u, + 0x000069d0u, 0x000200f8u, 0x000069d0u, 0x000d00f5u, 0x00000069u, 0x0000abf7u, 0x0000aa8au, 0x000020feu, + 0x0000055eu, 0x000069e0u, 0x0000055eu, 0x000069edu, 0x0000055eu, 0x000069fau, 0x0000055eu, 0x00006a07u, + 0x000d00f5u, 0x00000010u, 0x0000a8dbu, 0x00009355u, 0x000020feu, 0x0000a8dcu, 0x000069e0u, 0x0000a8ddu, + 0x000069edu, 0x0000a8deu, 0x000069fau, 0x0000a8dfu, 0x00006a07u, 0x000300f7u, 0x000069d3u, 0x00000000u, + 0x000400fau, 0x00000858u, 0x000069d1u, 0x000069d3u, 0x000200f8u, 0x000069d1u, 0x000300f7u, 0x00006a40u, + 0x00000000u, 0x000700fbu, 0x00000661u, 0x00006a40u, 0x00000002u, 0x00006a0du, 0x00000003u, 0x00006a2au, + 0x000200f8u, 0x00006a2au, 0x0007004fu, 0x0000006bu, 0x00006a2cu, 0x0000a8dbu, 0x0000a8dbu, 0x00000000u, + 0x00000003u, 0x00040071u, 0x000000b4u, 0x00006a2du, 0x00006a2cu, 0x00050051u, 0x00000006u, 0x00006a2fu, + 0x00006a2du, 0x00000000u, 0x000500c4u, 0x00000006u, 0x00006a30u, 0x00006a2fu, 0x00000319u, 0x00050051u, + 0x00000006u, 0x00006a32u, 0x00006a2du, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00006a33u, 0x00006a30u, + 0x00006a32u, 0x000500c7u, 0x00000006u, 0x00006a35u, 0x00006a33u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00006a36u, 0x00006a35u, 0x00000469u, 0x000500c2u, 0x00000006u, 0x00006a38u, 0x00006a33u, 0x0000038bu, + 0x00040071u, 0x00000011u, 0x00006a39u, 0x00006a38u, 0x000500c7u, 0x00000006u, 0x00006a3bu, 0x00006a33u, + 0x00000469u, 0x000500c4u, 0x00000006u, 0x00006a3cu, 0x00006a3bu, 0x0000038bu, 0x000500c5u, 0x00000006u, + 0x00006a3eu, 0x00006a3cu, 0x00006a36u, 0x00040071u, 0x0000000fu, 0x00006a3fu, 0x00006a3eu, 0x000200f9u, + 0x00006a40u, 0x000200f8u, 0x00006a0du, 0x00050051u, 0x0000000fu, 0x00006a0fu, 0x0000a8dbu, 0x00000003u, + 0x000500c2u, 0x0000000fu, 0x00006a10u, 0x00006a0fu, 0x00000394u, 0x00050051u, 0x0000000fu, 0x00006a12u, + 0x0000a8dbu, 0x00000002u, 0x000500c7u, 0x0000000fu, 0x00006a13u, 0x00006a12u, 0x00000626u, 0x000500c5u, + 0x0000000fu, 0x00006a14u, 0x00006a10u, 0x00006a13u, 0x00050051u, 0x0000000fu, 0x00006a16u, 0x0000a8dbu, + 0x00000000u, 0x00040071u, 0x00000006u, 0x00006a17u, 0x00006a16u, 0x000500c7u, 0x00000006u, 0x00006a18u, + 0x00006a17u, 0x000006a3u, 0x000500c4u, 0x00000006u, 0x00006a19u, 0x00006a18u, 0x000006fcu, 0x00050051u, + 0x0000000fu, 0x00006a1bu, 0x0000a8dbu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006a1cu, 0x00006a1bu, + 0x000500c7u, 0x00000006u, 0x00006a1du, 0x00006a1cu, 0x000006a3u, 0x000500c4u, 0x00000006u, 0x00006a1eu, + 0x00006a1du, 0x00000461u, 0x000500c5u, 0x00000006u, 0x00006a20u, 0x00006a19u, 0x00006a1eu, 0x00040071u, + 0x00000006u, 0x00006a23u, 0x00006a12u, 0x000500c7u, 0x00000006u, 0x00006a24u, 0x00006a23u, 0x000006a3u, + 0x000500c2u, 0x00000006u, 0x00006a25u, 0x00006a24u, 0x00000709u, 0x000500c5u, 0x00000006u, 0x00006a27u, + 0x00006a20u, 0x00006a25u, 0x00040071u, 0x00000011u, 0x00006a29u, 0x00006a27u, 0x000200f9u, 0x00006a40u, + 0x000200f8u, 0x00006a40u, 0x000900f5u, 0x0000000fu, 0x0000c074u, 0x000097a1u, 0x000069d1u, 0x00006a14u, + 0x00006a0du, 0x00006a3fu, 0x00006a2au, 0x000900f5u, 0x00000011u, 0x0000c036u, 0x00009635u, 0x000069d1u, + 0x00006a29u, 0x00006a0du, 0x00006a39u, 0x00006a2au, 0x000200f9u, 0x000069d3u, 0x000200f8u, 0x000069d3u, + 0x000700f5u, 0x0000000fu, 0x0000c06eu, 0x000097a1u, 0x000069d0u, 0x0000c074u, 0x00006a40u, 0x000700f5u, + 0x00000011u, 0x0000c030u, 0x00009635u, 0x000069d0u, 0x0000c036u, 0x00006a40u, 0x000200f9u, 0x000020ffu, + 0x000200f8u, 0x000020ffu, 0x000700f5u, 0x00000047u, 0x0000c1cdu, 0x0000a59cu, 0x000069d3u, 0x0000c1d5u, + 0x0000210du, 0x000700f5u, 0x00000047u, 0x0000c1b3u, 0x0000a408u, 0x000069d3u, 0x0000c1bbu, 0x0000210du, + 0x000700f5u, 0x0000000fu, 0x0000c198u, 0x0000a275u, 0x000069d3u, 0x0000c1a0u, 0x0000210du, 0x000700f5u, + 0x0000000fu, 0x0000c17du, 0x0000a0e2u, 0x000069d3u, 0x0000c185u, 0x0000210du, 0x000700f5u, 0x00000047u, + 0x0000c155u, 0x00009f4cu, 0x000069d3u, 0x0000c15du, 0x0000210du, 0x000700f5u, 0x00000047u, 0x0000c12eu, + 0x00009dc5u, 0x000069d3u, 0x0000c136u, 0x0000210du, 0x000700f5u, 0x0000000fu, 0x0000c106u, 0x00009c3fu, + 0x000069d3u, 0x0000c10eu, 0x0000210du, 0x000700f5u, 0x0000000fu, 0x0000c0deu, 0x00009ab9u, 0x000069d3u, + 0x0000c0e6u, 0x0000210du, 0x000700f5u, 0x0000000fu, 0x0000c06du, 0x0000c06eu, 0x000069d3u, 0x0000c075u, + 0x0000210du, 0x000700f5u, 0x00000011u, 0x0000c02fu, 0x0000c030u, 0x000069d3u, 0x0000c037u, 0x0000210du, + 0x000700f5u, 0x00000047u, 0x0000bff1u, 0x000094c3u, 0x000069d3u, 0x0000bff9u, 0x0000210du, 0x000700f5u, + 0x00000010u, 0x0000bfe4u, 0x0000a8dbu, 0x000069d3u, 0x0000bfe7u, 0x0000210du, 0x000700f5u, 0x00000069u, + 0x0000ad7bu, 0x0000ac10u, 0x000069d3u, 0x0000ad83u, 0x0000210du, 0x000700f5u, 0x00000069u, 0x0000abf5u, + 0x0000abf7u, 0x000069d3u, 0x0000abf9u, 0x0000210du, 0x000200f9u, 0x000020f6u, 0x000200f8u, 0x000020f6u, + 0x000700f5u, 0x00000047u, 0x0000c1ccu, 0x0000a59cu, 0x0000254bu, 0x0000c1cdu, 0x000020ffu, 0x000700f5u, + 0x00000047u, 0x0000c1b2u, 0x0000a408u, 0x0000254bu, 0x0000c1b3u, 0x000020ffu, 0x000700f5u, 0x0000000fu, + 0x0000c197u, 0x0000a275u, 0x0000254bu, 0x0000c198u, 0x000020ffu, 0x000700f5u, 0x0000000fu, 0x0000c17cu, + 0x0000a0e2u, 0x0000254bu, 0x0000c17du, 0x000020ffu, 0x000700f5u, 0x00000047u, 0x0000c154u, 0x00009f4cu, + 0x0000254bu, 0x0000c155u, 0x000020ffu, 0x000700f5u, 0x00000047u, 0x0000c12du, 0x00009dc5u, 0x0000254bu, + 0x0000c12eu, 0x000020ffu, 0x000700f5u, 0x0000000fu, 0x0000c105u, 0x00009c3fu, 0x0000254bu, 0x0000c106u, + 0x000020ffu, 0x000700f5u, 0x0000000fu, 0x0000c0ddu, 0x00009ab9u, 0x0000254bu, 0x0000c0deu, 0x000020ffu, + 0x000700f5u, 0x0000000fu, 0x0000c06cu, 0x000097a1u, 0x0000254bu, 0x0000c06du, 0x000020ffu, 0x000700f5u, + 0x00000011u, 0x0000c02eu, 0x00009635u, 0x0000254bu, 0x0000c02fu, 0x000020ffu, 0x000700f5u, 0x00000047u, + 0x0000bff0u, 0x000094c3u, 0x0000254bu, 0x0000bff1u, 0x000020ffu, 0x000700f5u, 0x00000010u, 0x0000bfe3u, + 0x00009355u, 0x0000254bu, 0x0000bfe4u, 0x000020ffu, 0x000700f5u, 0x00000069u, 0x0000ac11u, 0x0000ac10u, + 0x0000254bu, 0x0000ad7bu, 0x000020ffu, 0x000700f5u, 0x00000069u, 0x0000aa8bu, 0x0000aa8au, 0x0000254bu, + 0x0000abf5u, 0x000020ffu, 0x000200f9u, 0x000020d8u, 0x000200f8u, 0x000020d8u, 0x000200f9u, 0x000020d5u, + 0x000200f8u, 0x000020d7u, 0x000200f9u, 0x000020beu, 0x000200f8u, 0x000020beu, 0x000200f9u, 0x000020bbu, + 0x000200f8u, 0x000020bdu, 0x000500aeu, 0x00000884u, 0x00006fa1u, 0x000020adu, 0x0000215au, 0x0004009au, + 0x00000069u, 0x00006fa2u, 0x00006fa1u, 0x000600a9u, 0x00000069u, 0x0000c27eu, 0x00006fa2u, 0x0000053bu, + 0x00007a6bu, 0x000600a9u, 0x00000069u, 0x0000c27fu, 0x00006fa2u, 0x0000053bu, 0x00007a4eu, 0x000500c2u, + 0x00000006u, 0x00006fa6u, 0x000020b0u, 0x0000084fu, 0x00050050u, 0x000000b4u, 0x00006fa8u, 0x00000906u, + 0x00000906u, 0x000500c7u, 0x000000b4u, 0x00006fa9u, 0x000020adu, 0x00006fa8u, 0x00050050u, 0x000000f2u, + 0x00006fabu, 0x0000084fu, 0x0000084fu, 0x000500c2u, 0x000000b4u, 0x00006facu, 0x000020adu, 0x00006fabu, + 0x00050051u, 0x00000006u, 0x00006faeu, 0x00006fa9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00006fafu, + 0x00006faeu, 0x0000090fu, 0x00050051u, 0x00000006u, 0x00006fb1u, 0x00006fa9u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00006fb2u, 0x00006fafu, 0x00006fb1u, 0x00050051u, 0x00000006u, 0x00006fb6u, 0x00006facu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00006fb7u, 0x00006fa6u, 0x00006fb6u, 0x00050080u, 0x00000006u, + 0x00006fb8u, 0x000020b6u, 0x00006fb7u, 0x00050051u, 0x00000006u, 0x00006fbau, 0x00006facu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00006fbbu, 0x00006fb8u, 0x00006fbau, 0x000300f7u, 0x00007088u, 0x00000000u, + 0x000400fau, 0x0000c27fu, 0x00006fdau, 0x00007088u, 0x000200f8u, 0x00006fdau, 0x000300f7u, 0x00007087u, + 0x00000000u, 0x000d00fbu, 0x00000661u, 0x00007087u, 0x00000000u, 0x00006fdbu, 0x00000001u, 0x00006fefu, + 0x00000002u, 0x0000700bu, 0x00000003u, 0x00007039u, 0x00000004u, 0x00007055u, 0x000200f8u, 0x00007055u, + 0x000500c7u, 0x00000006u, 0x00007057u, 0x00006fbbu, 0x000006d0u, 0x00050084u, 0x00000006u, 0x00007059u, + 0x00006fb2u, 0x00000819u, 0x00050080u, 0x00000006u, 0x0000705bu, 0x00007057u, 0x00007059u, 0x00040071u, + 0x000004fcu, 0x0000705du, 0x00007a53u, 0x00050051u, 0x00000006u, 0x0000705fu, 0x0000705du, 0x00000000u, + 0x000500c4u, 0x00000006u, 0x00007060u, 0x0000705fu, 0x000006e3u, 0x00050051u, 0x00000006u, 0x00007062u, + 0x0000705du, 0x00000001u, 0x000500c4u, 0x00000006u, 0x00007063u, 0x00007062u, 0x00000335u, 0x000500c5u, + 0x00000006u, 0x00007064u, 0x00007060u, 0x00007063u, 0x00050051u, 0x00000006u, 0x00007066u, 0x0000705du, + 0x00000002u, 0x000500c4u, 0x00000006u, 0x00007067u, 0x00007066u, 0x00000319u, 0x000500c5u, 0x00000006u, + 0x00007068u, 0x00007064u, 0x00007067u, 0x00050051u, 0x00000006u, 0x0000706au, 0x0000705du, 0x00000003u, + 0x000500c4u, 0x00000006u, 0x0000706bu, 0x0000706au, 0x00000332u, 0x000500c5u, 0x00000006u, 0x0000706cu, + 0x00007068u, 0x0000706bu, 0x00060041u, 0x000006deu, 0x0000706fu, 0x000006dcu, 0x00000225u, 0x0000705bu, + 0x0003003eu, 0x0000706fu, 0x0000706cu, 0x00050084u, 0x00000006u, 0x00007071u, 0x0000038bu, 0x0000705bu, + 0x00050051u, 0x0000000fu, 0x00007073u, 0x00007a53u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00007074u, + 0x00007073u, 0x0004007cu, 0x00000008u, 0x00007075u, 0x00007074u, 0x000500c7u, 0x00000008u, 0x00007076u, + 0x00007075u, 0x0000022fu, 0x00050084u, 0x00000008u, 0x00007077u, 0x00007076u, 0x00000235u, 0x00040072u, + 0x00000380u, 0x00007078u, 0x00007077u, 0x0004007cu, 0x0000000fu, 0x00007079u, 0x00007078u, 0x00060041u, + 0x00000676u, 0x0000707au, 0x00000681u, 0x00000225u, 0x00007071u, 0x0003003eu, 0x0000707au, 0x00007079u, + 0x00050080u, 0x00000006u, 0x0000707du, 0x00007071u, 0x00000461u, 0x00050051u, 0x0000000fu, 0x0000707fu, + 0x00007a53u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00007080u, 0x0000707fu, 0x0004007cu, 0x00000008u, + 0x00007081u, 0x00007080u, 0x000500c7u, 0x00000008u, 0x00007082u, 0x00007081u, 0x0000022fu, 0x00050084u, + 0x00000008u, 0x00007083u, 0x00007082u, 0x00000235u, 0x00040072u, 0x00000380u, 0x00007084u, 0x00007083u, + 0x0004007cu, 0x0000000fu, 0x00007085u, 0x00007084u, 0x00060041u, 0x00000676u, 0x00007086u, 0x00000681u, + 0x00000225u, 0x0000707du, 0x0003003eu, 0x00007086u, 0x00007085u, 0x000200f9u, 0x00007087u, 0x000200f8u, + 0x00007039u, 0x000500c7u, 0x00000006u, 0x0000703bu, 0x00006fbbu, 0x00000688u, 0x00050084u, 0x00000006u, + 0x0000703du, 0x00006fb2u, 0x000007fau, 0x00050080u, 0x00000006u, 0x0000703fu, 0x0000703bu, 0x0000703du, + 0x0007004fu, 0x0000006bu, 0x00007041u, 0x00007a53u, 0x00007a53u, 0x00000000u, 0x00000003u, 0x00040071u, + 0x000000b4u, 0x00007042u, 0x00007041u, 0x00050051u, 0x00000006u, 0x00007044u, 0x00007042u, 0x00000000u, + 0x000500c4u, 0x00000006u, 0x00007045u, 0x00007044u, 0x00000319u, 0x00050051u, 0x00000006u, 0x00007047u, + 0x00007042u, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00007048u, 0x00007045u, 0x00007047u, 0x000500c6u, + 0x00000006u, 0x0000704au, 0x0000703fu, 0x00000461u, 0x00040071u, 0x00000011u, 0x0000704cu, 0x00007048u, + 0x00060041u, 0x00000697u, 0x0000704du, 0x00000694u, 0x00000225u, 0x0000704au, 0x0003003eu, 0x0000704du, + 0x0000704cu, 0x000500c7u, 0x00000006u, 0x00007051u, 0x00007047u, 0x00000461u, 0x00050084u, 0x00000006u, + 0x00007052u, 0x00007051u, 0x00000469u, 0x00040071u, 0x0000000fu, 0x00007053u, 0x00007052u, 0x00060041u, + 0x00000676u, 0x00007054u, 0x00000681u, 0x00000225u, 0x0000703fu, 0x0003003eu, 0x00007054u, 0x00007053u, + 0x000200f9u, 0x00007087u, 0x000200f8u, 0x0000700bu, 0x000500c7u, 0x00000006u, 0x0000700du, 0x00006fbbu, + 0x00000688u, 0x00050084u, 0x00000006u, 0x0000700fu, 0x00006fb2u, 0x000007c7u, 0x00050080u, 0x00000006u, + 0x00007011u, 0x0000700du, 0x0000700fu, 0x00040071u, 0x000004fcu, 0x00007013u, 0x00007a53u, 0x0008004fu, + 0x00000311u, 0x00007015u, 0x00007013u, 0x00007013u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, + 0x00000311u, 0x00007017u, 0x00007015u, 0x0000c227u, 0x00050051u, 0x00000006u, 0x00007019u, 0x00007017u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x0000701bu, 0x00007017u, 0x00000001u, 0x00050051u, 0x00000006u, + 0x0000701du, 0x00007017u, 0x00000002u, 0x00050051u, 0x00000006u, 0x0000701fu, 0x00007013u, 0x00000003u, + 0x000500c2u, 0x00000006u, 0x00007020u, 0x0000701fu, 0x0000073cu, 0x000500c4u, 0x00000006u, 0x00007023u, + 0x00007019u, 0x00000319u, 0x000500c4u, 0x00000006u, 0x00007026u, 0x0000701bu, 0x00000469u, 0x000500c5u, + 0x00000006u, 0x00007027u, 0x00007023u, 0x00007026u, 0x000500c2u, 0x00000006u, 0x0000702au, 0x0000701du, + 0x0000038bu, 0x000500c5u, 0x00000006u, 0x0000702bu, 0x00007027u, 0x0000702au, 0x000500c2u, 0x00000006u, + 0x0000702du, 0x00007020u, 0x0000038bu, 0x000500c5u, 0x00000006u, 0x0000702eu, 0x0000702bu, 0x0000702du, + 0x000500c6u, 0x00000006u, 0x00007030u, 0x00007011u, 0x00000461u, 0x00040071u, 0x00000011u, 0x00007032u, + 0x0000702eu, 0x00060041u, 0x00000697u, 0x00007033u, 0x00000694u, 0x00000225u, 0x00007030u, 0x0003003eu, + 0x00007033u, 0x00007032u, 0x000500c7u, 0x00000006u, 0x00007036u, 0x00007020u, 0x00000469u, 0x00040071u, + 0x0000000fu, 0x00007037u, 0x00007036u, 0x00060041u, 0x00000676u, 0x00007038u, 0x00000681u, 0x00000225u, + 0x00007011u, 0x0003003eu, 0x00007038u, 0x00007037u, 0x000200f9u, 0x00007087u, 0x000200f8u, 0x00006fefu, + 0x000500c7u, 0x00000006u, 0x00006ff1u, 0x00006fbbu, 0x00000668u, 0x00050084u, 0x00000006u, 0x00006ff3u, + 0x00006fb2u, 0x00000667u, 0x00050080u, 0x00000006u, 0x00006ff5u, 0x00006ff1u, 0x00006ff3u, 0x000500c6u, + 0x00000006u, 0x00006ff7u, 0x00006ff5u, 0x00000469u, 0x00050051u, 0x0000000fu, 0x00006ff9u, 0x00007a53u, + 0x00000000u, 0x00060041u, 0x00000676u, 0x00006ffau, 0x00000673u, 0x00000225u, 0x00006ff7u, 0x0003003eu, + 0x00006ffau, 0x00006ff9u, 0x000500c7u, 0x00000006u, 0x00006ffcu, 0x00006ff5u, 0x00000461u, 0x000500abu, + 0x00000069u, 0x00006ffdu, 0x00006ffcu, 0x00000332u, 0x000300f7u, 0x0000700au, 0x00000000u, 0x000400fau, + 0x00006ffdu, 0x00006ffeu, 0x0000700au, 0x000200f8u, 0x00006ffeu, 0x000500c2u, 0x00000006u, 0x00007000u, + 0x00006ff5u, 0x00000461u, 0x00040071u, 0x00000006u, 0x00007003u, 0x00006ff9u, 0x0004007cu, 0x00000008u, + 0x00007004u, 0x00007003u, 0x000500c7u, 0x00000008u, 0x00007005u, 0x00007004u, 0x0000022fu, 0x00050084u, + 0x00000008u, 0x00007006u, 0x00007005u, 0x00000235u, 0x00040072u, 0x00000380u, 0x00007007u, 0x00007006u, + 0x0004007cu, 0x0000000fu, 0x00007008u, 0x00007007u, 0x00060041u, 0x00000676u, 0x00007009u, 0x00000681u, + 0x00000225u, 0x00007000u, 0x0003003eu, 0x00007009u, 0x00007008u, 0x000200f9u, 0x0000700au, 0x000200f8u, + 0x0000700au, 0x000200f9u, 0x00007087u, 0x000200f8u, 0x00006fdbu, 0x000500c7u, 0x00000006u, 0x00006fddu, + 0x00006fbbu, 0x00000668u, 0x00050084u, 0x00000006u, 0x00006fdfu, 0x00006fb2u, 0x00000667u, 0x00050080u, + 0x00000006u, 0x00006fe1u, 0x00006fddu, 0x00006fdfu, 0x000500c6u, 0x00000006u, 0x00006fe3u, 0x00006fe1u, + 0x00000469u, 0x00060041u, 0x00000676u, 0x00006fe4u, 0x00000673u, 0x00000225u, 0x00006fe3u, 0x0003003eu, + 0x00006fe4u, 0x0000038du, 0x000500c7u, 0x00000006u, 0x00006fe6u, 0x00006fe1u, 0x00000461u, 0x000500abu, + 0x00000069u, 0x00006fe7u, 0x00006fe6u, 0x00000332u, 0x000300f7u, 0x00006feeu, 0x00000000u, 0x000400fau, + 0x00006fe7u, 0x00006fe8u, 0x00006feeu, 0x000200f8u, 0x00006fe8u, 0x000500c2u, 0x00000006u, 0x00006feau, + 0x00006fe1u, 0x00000461u, 0x00050051u, 0x0000000fu, 0x00006fecu, 0x00007a53u, 0x00000003u, 0x00060041u, + 0x00000676u, 0x00006fedu, 0x00000681u, 0x00000225u, 0x00006feau, 0x0003003eu, 0x00006fedu, 0x00006fecu, + 0x000200f9u, 0x00006feeu, 0x000200f8u, 0x00006feeu, 0x000200f9u, 0x00007087u, 0x000200f8u, 0x00007087u, + 0x000f00f5u, 0x00000006u, 0x00007a58u, 0x00006fbbu, 0x00006fdau, 0x00006fe1u, 0x00006feeu, 0x00006ff5u, + 0x0000700au, 0x00007011u, 0x0000700bu, 0x0000703fu, 0x00007039u, 0x0000705bu, 0x00007055u, 0x000200f9u, + 0x00007088u, 0x000200f8u, 0x00007088u, 0x000700f5u, 0x00000006u, 0x00007a57u, 0x00006fbbu, 0x000020bdu, + 0x00007a58u, 0x00007087u, 0x000300f7u, 0x0000708cu, 0x00000000u, 0x000400fau, 0x00000851u, 0x00007089u, + 0x0000708cu, 0x000200f8u, 0x00007089u, 0x000300e1u, 0x00000461u, 0x00000854u, 0x000300f7u, 0x0000709fu, + 0x00000000u, 0x000400fau, 0x0000c27fu, 0x0000708fu, 0x0000709fu, 0x000200f8u, 0x0000708fu, 0x000300f7u, + 0x0000709eu, 0x00000000u, 0x000d00fbu, 0x00000661u, 0x0000709eu, 0x00000000u, 0x00007090u, 0x00000001u, + 0x00007090u, 0x00000002u, 0x00007095u, 0x00000003u, 0x00007095u, 0x00000004u, 0x0000709au, 0x000200f8u, + 0x0000709au, 0x00050080u, 0x00000006u, 0x0000709cu, 0x00007a57u, 0x00000785u, 0x00060041u, 0x000006deu, + 0x0000709du, 0x000006dcu, 0x00000225u, 0x0000709cu, 0x0003003eu, 0x0000709du, 0x00000787u, 0x000200f9u, + 0x0000709eu, 0x000200f8u, 0x00007095u, 0x000500c6u, 0x00000006u, 0x00007097u, 0x00007a57u, 0x00000461u, + 0x00050080u, 0x00000006u, 0x00007098u, 0x00007097u, 0x0000077fu, 0x00060041u, 0x00000697u, 0x00007099u, + 0x00000694u, 0x00000225u, 0x00007098u, 0x0003003eu, 0x00007099u, 0x00000781u, 0x000200f9u, 0x0000709eu, + 0x000200f8u, 0x00007090u, 0x000500c6u, 0x00000006u, 0x00007092u, 0x00007a57u, 0x00000469u, 0x00050080u, + 0x00000006u, 0x00007093u, 0x00007092u, 0x00000667u, 0x00060041u, 0x00000676u, 0x00007094u, 0x00000673u, + 0x00000225u, 0x00007093u, 0x0003003eu, 0x00007094u, 0x00000474u, 0x000200f9u, 0x0000709eu, 0x000200f8u, + 0x0000709eu, 0x000200f9u, 0x0000709fu, 0x000200f8u, 0x0000709fu, 0x000200f9u, 0x0000708cu, 0x000200f8u, + 0x0000708cu, 0x00050080u, 0x00000006u, 0x00006fc4u, 0x000020b9u, 0x00006fb7u, 0x00050080u, 0x00000006u, + 0x00006fc7u, 0x00006fc4u, 0x00006fbau, 0x000300f7u, 0x000070c3u, 0x00000000u, 0x000400fau, 0x00000859u, + 0x000070a1u, 0x000070c3u, 0x000200f8u, 0x000070a1u, 0x000300f7u, 0x000070b9u, 0x00000000u, 0x000400fau, + 0x0000c27eu, 0x000070a3u, 0x000070b9u, 0x000200f8u, 0x000070a3u, 0x000500c7u, 0x00000006u, 0x000070a5u, + 0x00006fc7u, 0x00000688u, 0x00050084u, 0x00000006u, 0x000070a7u, 0x00006fb2u, 0x00000863u, 0x00050080u, + 0x00000006u, 0x000070a9u, 0x000070a5u, 0x000070a7u, 0x000500c6u, 0x00000006u, 0x000070abu, 0x000070a9u, + 0x00000461u, 0x000500c4u, 0x00000011u, 0x000070adu, 0x00007a79u, 0x000005f7u, 0x000500c2u, 0x0000000fu, + 0x000070afu, 0x00007a86u, 0x000005f7u, 0x00040071u, 0x00000011u, 0x000070b0u, 0x000070afu, 0x000500c5u, + 0x00000011u, 0x000070b1u, 0x000070adu, 0x000070b0u, 0x00060041u, 0x00000697u, 0x000070b2u, 0x00000694u, + 0x00000225u, 0x000070abu, 0x0003003eu, 0x000070b2u, 0x000070b1u, 0x00040071u, 0x00000011u, 0x000070b5u, + 0x00007a86u, 0x000500c7u, 0x00000011u, 0x000070b6u, 0x000070b5u, 0x000005fcu, 0x00040071u, 0x0000000fu, + 0x000070b7u, 0x000070b6u, 0x00060041u, 0x00000676u, 0x000070b8u, 0x00000681u, 0x00000225u, 0x000070a9u, + 0x0003003eu, 0x000070b8u, 0x000070b7u, 0x000200f9u, 0x000070b9u, 0x000200f8u, 0x000070b9u, 0x000700f5u, + 0x00000006u, 0x00007a91u, 0x00006fc7u, 0x000070a1u, 0x000070a9u, 0x000070a3u, 0x000300f7u, 0x000070c2u, + 0x00000000u, 0x000400fau, 0x00000851u, 0x000070bau, 0x000070c2u, 0x000200f8u, 0x000070bau, 0x000300e1u, + 0x00000461u, 0x00000854u, 0x000300f7u, 0x000070c1u, 0x00000000u, 0x000400fau, 0x0000c27eu, 0x000070bcu, + 0x000070c1u, 0x000200f8u, 0x000070bcu, 0x000500c6u, 0x00000006u, 0x000070beu, 0x00007a91u, 0x00000461u, + 0x00050080u, 0x00000006u, 0x000070bfu, 0x000070beu, 0x0000087du, 0x00060041u, 0x00000697u, 0x000070c0u, + 0x00000694u, 0x00000225u, 0x000070bfu, 0x0003003eu, 0x000070c0u, 0x00000781u, 0x000200f9u, 0x000070c1u, + 0x000200f8u, 0x000070c1u, 0x000200f9u, 0x000070c2u, 0x000200f8u, 0x000070c2u, 0x000200f9u, 0x000070c3u, + 0x000200f8u, 0x000070c3u, 0x000300f7u, 0x00006fcfu, 0x00000000u, 0x000400fau, 0x00000932u, 0x00006fcbu, + 0x00006fcfu, 0x000200f8u, 0x00006fcbu, 0x000500c2u, 0x00000006u, 0x000070ccu, 0x00006fb6u, 0x0000038bu, + 0x00050080u, 0x00000006u, 0x000070ceu, 0x00006fa6u, 0x00000469u, 0x000500c2u, 0x00000006u, 0x000070cfu, + 0x000070ceu, 0x0000038bu, 0x00050084u, 0x00000006u, 0x000070d0u, 0x000070ccu, 0x000070cfu, 0x000500c2u, + 0x00000006u, 0x000070d3u, 0x00006fbau, 0x0000038bu, 0x00050080u, 0x00000006u, 0x000070d4u, 0x000070d0u, + 0x000070d3u, 0x000500c7u, 0x000000b4u, 0x000070d7u, 0x00006facu, 0x0000c228u, 0x000600a9u, 0x00000006u, + 0x000070d9u, 0x0000c27fu, 0x00000461u, 0x00000332u, 0x000600a9u, 0x00000006u, 0x000070dbu, 0x0000c27eu, + 0x00000461u, 0x00000332u, 0x00050084u, 0x00000006u, 0x000070dcu, 0x0000038bu, 0x000070dbu, 0x00050080u, + 0x00000006u, 0x000070ddu, 0x000070d9u, 0x000070dcu, 0x00050051u, 0x00000006u, 0x000070dfu, 0x000070d7u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x000070e1u, 0x000070d7u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000070e2u, 0x000070e1u, 0x00000709u, 0x00050080u, 0x00000006u, 0x000070e3u, 0x000070dfu, 0x000070e2u, + 0x00050084u, 0x00000006u, 0x000070e4u, 0x0000038bu, 0x000070e3u, 0x000500c4u, 0x00000006u, 0x000070e6u, + 0x000070ddu, 0x000070e4u, 0x000200f9u, 0x000070e7u, 0x000200f8u, 0x000070e7u, 0x000700f5u, 0x00000069u, + 0x00007aa3u, 0x0000055eu, 0x00006fcbu, 0x0000c280u, 0x000070f9u, 0x000400f6u, 0x000070fbu, 0x000070f9u, + 0x00000000u, 0x000200f9u, 0x000070e8u, 0x000200f8u, 0x000070e8u, 0x00050152u, 0x00000006u, 0x000070eau, + 0x00000469u, 0x000070d4u, 0x000500aau, 0x00000069u, 0x000070ecu, 0x000070eau, 0x000070d4u, 0x000300f7u, + 0x000070f8u, 0x00000000u, 0x000400fau, 0x000070ecu, 0x000070edu, 0x000070f8u, 0x000200f8u, 0x000070edu, + 0x00060168u, 0x00000006u, 0x000070efu, 0x00000469u, 0x00000000u, 0x000070e6u, 0x0004014du, 0x00000069u, + 0x000070f0u, 0x00000469u, 0x000300f7u, 0x000070f7u, 0x00000000u, 0x000400fau, 0x000070f0u, 0x000070f1u, + 0x000070f7u, 0x000200f8u, 0x000070f1u, 0x00050080u, 0x00000006u, 0x000070f3u, 0x000008f1u, 0x000070d4u, + 0x00060041u, 0x000006deu, 0x000070f4u, 0x000006dcu, 0x00000225u, 0x000070f3u, 0x000700f1u, 0x00000006u, + 0x000070f6u, 0x000070f4u, 0x00000461u, 0x00000332u, 0x000070efu, 0x000200f9u, 0x000070f7u, 0x000200f8u, + 0x000070f7u, 0x000200f9u, 0x000070f8u, 0x000200f8u, 0x000070f8u, 0x000600a9u, 0x00000069u, 0x0000c280u, + 0x000070ecu, 0x0000053bu, 0x00007aa3u, 0x000200f9u, 0x000070f9u, 0x000200f8u, 0x000070f9u, 0x000400fau, + 0x0000c280u, 0x000070e7u, 0x000070fbu, 0x000200f8u, 0x000070fbu, 0x000200f9u, 0x00006fcfu, 0x000200f8u, + 0x00006fcfu, 0x000200f9u, 0x00002142u, 0x000200f8u, 0x00002142u, 0x000100fdu, 0x00010038u, 0x07230203u, + 0x00010300u, 0x000d000bu, 0x0000181du, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x0000002eu, + 0x00020011u, 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, + 0x6f74735fu, 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, + 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0008000fu, 0x00000005u, 0x00000004u, 0x6e69616du, + 0x00000000u, 0x00000802u, 0x0000080cu, 0x00000888u, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, + 0x00000001u, 0x00000001u, 0x00050048u, 0x000000a5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x000000a5u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000000a5u, 0x00000002u, 0x00000023u, + 0x00000008u, 0x00050048u, 0x000000a5u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000000a5u, + 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000000a5u, 0x00000005u, 0x00000023u, 0x00000014u, + 0x00050048u, 0x000000a5u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000000a5u, 0x00000007u, + 0x00000023u, 0x0000001cu, 0x00050048u, 0x000000a5u, 0x00000008u, 0x00000023u, 0x00000020u, 0x00050048u, + 0x000000a5u, 0x00000009u, 0x00000023u, 0x00000024u, 0x00050048u, 0x000000a5u, 0x0000000au, 0x00000023u, + 0x00000028u, 0x00050048u, 0x000000a5u, 0x0000000bu, 0x00000023u, 0x0000002cu, 0x00050048u, 0x000000a5u, + 0x0000000cu, 0x00000023u, 0x0000002eu, 0x00050048u, 0x000000a5u, 0x0000000du, 0x00000023u, 0x0000002fu, + 0x00050048u, 0x000000a5u, 0x0000000eu, 0x00000023u, 0x00000030u, 0x00040047u, 0x000000a6u, 0x00000006u, + 0x00000038u, 0x00040048u, 0x000000a7u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000000a7u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x000000a7u, 0x00000002u, 0x00040047u, 0x000000a9u, 0x00000022u, + 0x00000001u, 0x00040047u, 0x000000a9u, 0x00000021u, 0x00000002u, 0x00050048u, 0x00000109u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x00000109u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x00000109u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000109u, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00050048u, 0x00000109u, 0x00000004u, 0x00000023u, 0x0000000du, 0x00050048u, 0x00000109u, + 0x00000005u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x00000109u, 0x00000006u, 0x00000023u, 0x0000000fu, + 0x00040047u, 0x0000010au, 0x00000006u, 0x00000010u, 0x00040048u, 0x0000010bu, 0x00000000u, 0x00000018u, + 0x00050048u, 0x0000010bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000010bu, 0x00000002u, + 0x00040047u, 0x0000010du, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000010du, 0x00000021u, 0x00000005u, + 0x00040047u, 0x0000025cu, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000025cu, 0x00000021u, 0x0000000au, + 0x00040047u, 0x0000036au, 0x00000001u, 0x00000001u, 0x00040047u, 0x00000370u, 0x00000001u, 0x00000000u, + 0x00040047u, 0x00000379u, 0x00000006u, 0x00000001u, 0x00050048u, 0x0000037au, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000037au, 0x00000002u, 0x00040047u, 0x0000037cu, 0x00000022u, 0x00000000u, + 0x00040047u, 0x0000037cu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000388u, 0x00000006u, 0x00000001u, + 0x00050048u, 0x00000389u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000389u, 0x00000002u, + 0x00040047u, 0x0000038bu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000038bu, 0x00000021u, 0x00000001u, + 0x00040047u, 0x0000039du, 0x00000006u, 0x00000002u, 0x00050048u, 0x0000039eu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000039eu, 0x00000002u, 0x00040047u, 0x000003a0u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000003a0u, 0x00000021u, 0x00000000u, 0x00040047u, 0x000003e9u, 0x00000006u, 0x00000004u, + 0x00050048u, 0x000003eau, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000003eau, 0x00000002u, + 0x00040047u, 0x000003ecu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000003ecu, 0x00000021u, 0x00000000u, + 0x00040047u, 0x0000055au, 0x00000001u, 0x00000007u, 0x00040047u, 0x00000566u, 0x00000001u, 0x00000002u, + 0x00040047u, 0x00000725u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000726u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x00000726u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000726u, + 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, 0x00000727u, 0x00000006u, 0x00000010u, 0x00040048u, + 0x00000728u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000728u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x00000728u, 0x00000002u, 0x00040047u, 0x0000072au, 0x00000022u, 0x00000001u, 0x00040047u, + 0x0000072au, 0x00000021u, 0x00000006u, 0x00040047u, 0x00000802u, 0x0000000bu, 0x0000001cu, 0x00040047u, + 0x0000080cu, 0x0000000bu, 0x0000001au, 0x00040047u, 0x00000815u, 0x00000001u, 0x00000006u, 0x00040047u, + 0x00000816u, 0x00000001u, 0x00000003u, 0x00040047u, 0x00000817u, 0x00000001u, 0x00000004u, 0x00040047u, + 0x00000818u, 0x0000000bu, 0x00000019u, 0x00040047u, 0x00000820u, 0x00000001u, 0x00000005u, 0x00040047u, + 0x00000825u, 0x00000006u, 0x00000004u, 0x00040048u, 0x00000826u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000826u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000826u, 0x00000002u, 0x00040047u, + 0x00000828u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000828u, 0x00000021u, 0x0000000cu, 0x00050048u, + 0x0000082cu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x0000082cu, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x0000082cu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x0000082cu, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x0000082cu, 0x00000004u, 0x00000023u, 0x00000010u, + 0x00030047u, 0x0000082cu, 0x00000002u, 0x00040047u, 0x00000859u, 0x00000006u, 0x00000004u, 0x00040048u, + 0x0000085au, 0x00000000u, 0x00000018u, 0x00050048u, 0x0000085au, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x0000085au, 0x00000002u, 0x00040047u, 0x0000085cu, 0x00000022u, 0x00000000u, 0x00040047u, + 0x0000085cu, 0x00000021u, 0x00000007u, 0x00040047u, 0x00000863u, 0x00000006u, 0x00000004u, 0x00040048u, + 0x00000864u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000864u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x00000864u, 0x00000002u, 0x00040047u, 0x00000866u, 0x00000022u, 0x00000001u, 0x00040047u, + 0x00000866u, 0x00000021u, 0x0000000bu, 0x00040047u, 0x00000888u, 0x0000000bu, 0x0000001du, 0x00040047u, + 0x0000088du, 0x00000006u, 0x00000001u, 0x00040048u, 0x0000088eu, 0x00000000u, 0x00000018u, 0x00050048u, + 0x0000088eu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000088eu, 0x00000002u, 0x00040047u, + 0x00000890u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000890u, 0x00000021u, 0x00000006u, 0x00040047u, + 0x000008acu, 0x00000006u, 0x00000004u, 0x00040048u, 0x000008adu, 0x00000000u, 0x00000018u, 0x00050048u, + 0x000008adu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008adu, 0x00000002u, 0x00040047u, + 0x000008afu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008afu, 0x00000021u, 0x00000003u, 0x00040047u, + 0x000008bau, 0x00000006u, 0x00000004u, 0x00040048u, 0x000008bbu, 0x00000000u, 0x00000018u, 0x00050048u, + 0x000008bbu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008bbu, 0x00000002u, 0x00040047u, + 0x000008bdu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008bdu, 0x00000021u, 0x00000003u, 0x00040047u, + 0x000008c4u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000008c5u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x000008c5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008c5u, 0x00000002u, 0x00040047u, + 0x000008c7u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008c7u, 0x00000021u, 0x00000004u, 0x00040047u, + 0x000008cdu, 0x00000006u, 0x00000001u, 0x00040048u, 0x000008ceu, 0x00000000u, 0x00000018u, 0x00050048u, + 0x000008ceu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008ceu, 0x00000002u, 0x00040047u, + 0x000008d0u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008d0u, 0x00000021u, 0x00000005u, 0x00020013u, + 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, + 0x00040015u, 0x00000008u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000009u, 0x00000008u, 0x00000004u, + 0x00040017u, 0x00000014u, 0x00000008u, 0x00000003u, 0x00020014u, 0x0000002cu, 0x00040017u, 0x0000002eu, + 0x00000008u, 0x00000002u, 0x00040017u, 0x0000006fu, 0x00000006u, 0x00000002u, 0x0004002bu, 0x00000008u, + 0x0000009fu, 0x00000000u, 0x00040015u, 0x000000a0u, 0x00000008u, 0x00000000u, 0x00040017u, 0x000000a1u, + 0x000000a0u, 0x00000004u, 0x00040015u, 0x000000a2u, 0x00000010u, 0x00000000u, 0x00040015u, 0x000000a3u, + 0x00000010u, 0x00000001u, 0x00040017u, 0x000000a4u, 0x000000a3u, 0x00000004u, 0x0011001eu, 0x000000a5u, + 0x000000a1u, 0x000000a1u, 0x000000a1u, 0x000000a1u, 0x000000a1u, 0x000000a1u, 0x000000a1u, 0x000000a1u, + 0x000000a1u, 0x000000a1u, 0x00000006u, 0x000000a2u, 0x000000a0u, 0x000000a0u, 0x000000a4u, 0x0003001du, + 0x000000a6u, 0x000000a5u, 0x0003001eu, 0x000000a7u, 0x000000a6u, 0x00040020u, 0x000000a8u, 0x0000000cu, + 0x000000a7u, 0x0004003bu, 0x000000a8u, 0x000000a9u, 0x0000000cu, 0x00040020u, 0x000000abu, 0x0000000cu, + 0x000000a1u, 0x00040017u, 0x000000aeu, 0x00000006u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x000000b2u, + 0x00000001u, 0x0004002bu, 0x00000008u, 0x000000b8u, 0x00000002u, 0x0004002bu, 0x00000008u, 0x000000beu, + 0x00000003u, 0x0004002bu, 0x00000008u, 0x000000c4u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x000000cau, + 0x00000005u, 0x0004002bu, 0x00000008u, 0x000000d0u, 0x00000006u, 0x0004002bu, 0x00000008u, 0x000000d6u, + 0x00000007u, 0x0004002bu, 0x00000008u, 0x000000dcu, 0x00000008u, 0x0004002bu, 0x00000008u, 0x000000e2u, + 0x00000009u, 0x0004002bu, 0x00000008u, 0x000000e8u, 0x0000000au, 0x00040020u, 0x000000e9u, 0x0000000cu, + 0x00000006u, 0x0004002bu, 0x00000008u, 0x000000edu, 0x0000000bu, 0x00040020u, 0x000000eeu, 0x0000000cu, + 0x000000a2u, 0x0004002bu, 0x00000008u, 0x000000f4u, 0x0000000cu, 0x00040020u, 0x000000f5u, 0x0000000cu, + 0x000000a0u, 0x0009001eu, 0x00000109u, 0x000000a1u, 0x000000a1u, 0x00000006u, 0x000000a0u, 0x000000a0u, + 0x000000a0u, 0x000000a0u, 0x0003001du, 0x0000010au, 0x00000109u, 0x0003001eu, 0x0000010bu, 0x0000010au, + 0x00040020u, 0x0000010cu, 0x0000000cu, 0x0000010bu, 0x0004003bu, 0x0000010cu, 0x0000010du, 0x0000000cu, + 0x0006002cu, 0x00000014u, 0x0000012bu, 0x0000009fu, 0x000000beu, 0x000000d0u, 0x0004002bu, 0x00000008u, + 0x00000131u, 0x000000f8u, 0x0004002bu, 0x00000008u, 0x00000136u, 0x000000ffu, 0x0006002cu, 0x00000014u, + 0x00000137u, 0x00000136u, 0x00000136u, 0x00000136u, 0x0004002bu, 0x00000008u, 0x00000139u, 0x000000f7u, + 0x0006002cu, 0x00000014u, 0x0000013au, 0x00000139u, 0x00000139u, 0x00000139u, 0x00040017u, 0x0000013bu, + 0x0000002cu, 0x00000003u, 0x0004002bu, 0x00000008u, 0x00000144u, 0x0000001fu, 0x0004002bu, 0x00000008u, + 0x00000160u, 0x000007ffu, 0x0004002bu, 0x00000008u, 0x00000167u, 0x00040000u, 0x0004002bu, 0x00000008u, + 0x00000173u, 0x0003ffffu, 0x0004002bu, 0x00000008u, 0x00000178u, 0x00000011u, 0x0004002bu, 0x00000006u, + 0x00000196u, 0x00000002u, 0x0004002bu, 0x00000006u, 0x000001bbu, 0x00000000u, 0x0004002bu, 0x00000006u, + 0x000001ddu, 0x00000001u, 0x0004002bu, 0x00000006u, 0x000001e3u, 0x00000003u, 0x0004002bu, 0x00000008u, + 0x00000225u, 0x0000003cu, 0x00090019u, 0x0000025au, 0x00000006u, 0x00000005u, 0x00000000u, 0x00000000u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, 0x0000025bu, 0x00000000u, 0x0000025au, 0x0004003bu, + 0x0000025bu, 0x0000025cu, 0x00000000u, 0x0004002bu, 0x00000008u, 0x00000298u, 0x0000000fu, 0x0003002au, + 0x0000002cu, 0x0000029bu, 0x0004002bu, 0x00000008u, 0x000002abu, 0x00008000u, 0x0004002bu, 0x00000008u, + 0x000002b1u, 0x00000010u, 0x00030029u, 0x0000002cu, 0x000002b6u, 0x0004002bu, 0x00000008u, 0x000002b7u, + 0x0000ffffu, 0x00040032u, 0x00000008u, 0x0000036au, 0x00000000u, 0x00040032u, 0x00000006u, 0x00000370u, + 0x00000000u, 0x00060034u, 0x00000006u, 0x00000371u, 0x00000082u, 0x00000370u, 0x000001ddu, 0x0003001du, + 0x00000379u, 0x000000a0u, 0x0003001eu, 0x0000037au, 0x00000379u, 0x00040020u, 0x0000037bu, 0x0000000cu, + 0x0000037au, 0x0004003bu, 0x0000037bu, 0x0000037cu, 0x0000000cu, 0x0003001du, 0x00000388u, 0x000000a0u, + 0x0003001eu, 0x00000389u, 0x00000388u, 0x00040020u, 0x0000038au, 0x0000000cu, 0x00000389u, 0x0004003bu, + 0x0000038au, 0x0000038bu, 0x0000000cu, 0x00060034u, 0x00000006u, 0x00000394u, 0x000000c2u, 0x00000371u, + 0x000001ddu, 0x00060034u, 0x00000006u, 0x00000398u, 0x000000c2u, 0x00000370u, 0x000000b2u, 0x0003001du, + 0x0000039du, 0x000000a2u, 0x0003001eu, 0x0000039eu, 0x0000039du, 0x00040020u, 0x0000039fu, 0x0000000cu, + 0x0000039eu, 0x0004003bu, 0x0000039fu, 0x000003a0u, 0x0000000cu, 0x00040017u, 0x000003a6u, 0x00000006u, + 0x00000003u, 0x0004002bu, 0x00000006u, 0x000003aau, 0x00000008u, 0x0004002bu, 0x00000006u, 0x000003b1u, + 0x000000f8u, 0x00060034u, 0x00000006u, 0x000003c9u, 0x000000c2u, 0x00000370u, 0x000000b2u, 0x0004002bu, + 0x00000006u, 0x000003d8u, 0x000000ffu, 0x00060034u, 0x00000006u, 0x000003e0u, 0x000000c2u, 0x00000371u, + 0x00000196u, 0x00060034u, 0x00000006u, 0x000003e4u, 0x000000c2u, 0x00000370u, 0x000000b8u, 0x0003001du, + 0x000003e9u, 0x00000006u, 0x0003001eu, 0x000003eau, 0x000003e9u, 0x00040020u, 0x000003ebu, 0x0000000cu, + 0x000003eau, 0x0004003bu, 0x000003ebu, 0x000003ecu, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x000003f2u, + 0x00000018u, 0x0004002bu, 0x00000006u, 0x000003f3u, 0x00000010u, 0x0007002cu, 0x000000aeu, 0x000003f4u, + 0x000003f2u, 0x000003f3u, 0x000003aau, 0x000001bbu, 0x0007002cu, 0x000000aeu, 0x000003f6u, 0x000003d8u, + 0x000003d8u, 0x000003d8u, 0x000003d8u, 0x0004002bu, 0x00000006u, 0x0000040bu, 0x00000006u, 0x0004002bu, + 0x00000006u, 0x00000418u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x00000445u, 0x0000000au, 0x0004002bu, + 0x00000006u, 0x0000044bu, 0x00000005u, 0x0004002bu, 0x00000006u, 0x00000456u, 0x00000007u, 0x00060034u, + 0x00000006u, 0x0000046du, 0x000000c2u, 0x00000370u, 0x000000b2u, 0x00060034u, 0x00000006u, 0x00000492u, + 0x000000c2u, 0x00000370u, 0x000001ddu, 0x0004002bu, 0x00000006u, 0x00000494u, 0x0000ffffu, 0x00060034u, + 0x00000006u, 0x00000499u, 0x000000c2u, 0x00000370u, 0x00000196u, 0x0004002bu, 0x00000006u, 0x0000049bu, + 0xffffffffu, 0x00060034u, 0x00000006u, 0x000004dbu, 0x000000c2u, 0x00000370u, 0x000000b2u, 0x00060034u, + 0x00000006u, 0x0000050eu, 0x000000c2u, 0x00000370u, 0x000000b2u, 0x00060034u, 0x00000006u, 0x0000052du, + 0x000000c2u, 0x00000370u, 0x000000b8u, 0x00040032u, 0x00000008u, 0x0000055au, 0x00000000u, 0x00060034u, + 0x00000008u, 0x0000055bu, 0x000000c7u, 0x0000055au, 0x000000b2u, 0x00060034u, 0x0000002cu, 0x0000055cu, + 0x000000abu, 0x0000055bu, 0x0000009fu, 0x00060034u, 0x00000008u, 0x0000055du, 0x000000c3u, 0x0000055au, + 0x000000b2u, 0x00060034u, 0x0000002cu, 0x0000055eu, 0x000000aau, 0x0000055du, 0x0000009fu, 0x00060034u, + 0x0000002cu, 0x0000055fu, 0x000000a7u, 0x0000055cu, 0x0000055eu, 0x0004002bu, 0x00000006u, 0x00000562u, + 0x00000048u, 0x00030031u, 0x0000002cu, 0x00000566u, 0x00050034u, 0x0000002cu, 0x00000567u, 0x000000a8u, + 0x00000566u, 0x00060034u, 0x00000006u, 0x00000571u, 0x000000c2u, 0x00000370u, 0x000000b2u, 0x00060034u, + 0x00000006u, 0x0000058au, 0x000000c2u, 0x00000370u, 0x000001ddu, 0x00040017u, 0x00000592u, 0x0000002cu, + 0x00000002u, 0x00060034u, 0x00000008u, 0x00000599u, 0x000000c4u, 0x000000b2u, 0x0000055du, 0x00060034u, + 0x00000008u, 0x0000059au, 0x00000082u, 0x00000599u, 0x000000b2u, 0x00060034u, 0x00000006u, 0x0000059bu, + 0x00000080u, 0x0000059au, 0x000001bbu, 0x00060034u, 0x00000006u, 0x000005a4u, 0x00000080u, 0x00000599u, + 0x000001bbu, 0x00060034u, 0x00000008u, 0x000005efu, 0x00000084u, 0x00000599u, 0x00000599u, 0x00060034u, + 0x00000006u, 0x000005f0u, 0x00000080u, 0x000005efu, 0x000001bbu, 0x00060034u, 0x00000006u, 0x000005f1u, + 0x000000c2u, 0x00000370u, 0x000000b8u, 0x00060034u, 0x00000006u, 0x000005f2u, 0x00000084u, 0x000005f0u, + 0x000005f1u, 0x00060034u, 0x00000008u, 0x00000605u, 0x00000082u, 0x00000599u, 0x000000b2u, 0x00060034u, + 0x00000006u, 0x00000606u, 0x00000080u, 0x00000605u, 0x000001bbu, 0x00060034u, 0x00000006u, 0x0000060fu, + 0x00000080u, 0x00000599u, 0x000001bbu, 0x00060034u, 0x0000002cu, 0x00000631u, 0x000000abu, 0x0000055du, + 0x0000009fu, 0x00060034u, 0x0000002cu, 0x00000632u, 0x000000a7u, 0x0000055cu, 0x00000631u, 0x0004002bu, + 0x00000008u, 0x00000641u, 0x000000e0u, 0x0006002cu, 0x00000014u, 0x0000064cu, 0x0000009fu, 0x0000009fu, + 0x0000009fu, 0x00060034u, 0x0000002cu, 0x00000665u, 0x000000aau, 0x0000036au, 0x0000009fu, 0x0007002cu, + 0x00000009u, 0x00000676u, 0x0000009fu, 0x0000009fu, 0x0000009fu, 0x0000009fu, 0x0004002bu, 0x00000006u, + 0x0000068fu, 0x000000e0u, 0x0004002bu, 0x00000008u, 0x00000719u, 0x000001ffu, 0x0004001cu, 0x00000725u, + 0x000000a0u, 0x000003aau, 0x0005001eu, 0x00000726u, 0x000000a1u, 0x000000a1u, 0x00000725u, 0x0003001du, + 0x00000727u, 0x00000726u, 0x0003001eu, 0x00000728u, 0x00000727u, 0x00040020u, 0x00000729u, 0x0000000cu, + 0x00000728u, 0x0004003bu, 0x00000729u, 0x0000072au, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000750u, + 0x00000020u, 0x0004002bu, 0x00000006u, 0x00000756u, 0x00000040u, 0x0004002bu, 0x00000006u, 0x0000075cu, + 0x00000080u, 0x0004002bu, 0x00000006u, 0x00000762u, 0x00000100u, 0x00040020u, 0x00000801u, 0x00000001u, + 0x000003a6u, 0x0004003bu, 0x00000801u, 0x00000802u, 0x00000001u, 0x00040020u, 0x00000803u, 0x00000001u, + 0x00000006u, 0x0004003bu, 0x00000801u, 0x0000080cu, 0x00000001u, 0x00040032u, 0x00000008u, 0x00000815u, + 0x00000400u, 0x00040032u, 0x00000006u, 0x00000816u, 0x00000001u, 0x00040032u, 0x00000006u, 0x00000817u, + 0x00000001u, 0x00060033u, 0x000003a6u, 0x00000818u, 0x00000816u, 0x00000817u, 0x000001ddu, 0x00060034u, + 0x00000006u, 0x00000819u, 0x00000051u, 0x00000818u, 0x00000000u, 0x00060034u, 0x00000008u, 0x0000081au, + 0x00000080u, 0x00000819u, 0x000001bbu, 0x00060034u, 0x00000008u, 0x0000081bu, 0x00000087u, 0x00000815u, + 0x0000081au, 0x00040032u, 0x00000008u, 0x00000820u, 0x00000100u, 0x0004002bu, 0x00000008u, 0x00000821u, + 0x00000020u, 0x00060034u, 0x00000008u, 0x00000822u, 0x00000087u, 0x00000820u, 0x00000821u, 0x0003001du, + 0x00000825u, 0x00000006u, 0x0003001eu, 0x00000826u, 0x00000825u, 0x00040020u, 0x00000827u, 0x0000000cu, + 0x00000826u, 0x0004003bu, 0x00000827u, 0x00000828u, 0x0000000cu, 0x0007001eu, 0x0000082cu, 0x00000006u, + 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00040020u, 0x0000082du, 0x00000009u, 0x0000082cu, + 0x0004003bu, 0x0000082du, 0x0000082eu, 0x00000009u, 0x00040020u, 0x0000082fu, 0x00000009u, 0x00000006u, + 0x0003001du, 0x00000859u, 0x00000006u, 0x0003001eu, 0x0000085au, 0x00000859u, 0x00040020u, 0x0000085bu, + 0x0000000cu, 0x0000085au, 0x0004003bu, 0x0000085bu, 0x0000085cu, 0x0000000cu, 0x0003001du, 0x00000863u, + 0x00000006u, 0x0003001eu, 0x00000864u, 0x00000863u, 0x00040020u, 0x00000865u, 0x0000000cu, 0x00000864u, + 0x0004003bu, 0x00000865u, 0x00000866u, 0x0000000cu, 0x00060034u, 0x00000006u, 0x00000884u, 0x00000051u, + 0x00000818u, 0x00000000u, 0x00060034u, 0x00000006u, 0x00000885u, 0x00000051u, 0x00000818u, 0x00000001u, + 0x00060034u, 0x00000006u, 0x00000886u, 0x00000084u, 0x00000884u, 0x00000885u, 0x0004003bu, 0x00000803u, + 0x00000888u, 0x00000001u, 0x00040015u, 0x0000088cu, 0x00000008u, 0x00000001u, 0x0003001du, 0x0000088du, + 0x0000088cu, 0x0003001eu, 0x0000088eu, 0x0000088du, 0x00040020u, 0x0000088fu, 0x0000000cu, 0x0000088eu, + 0x0004003bu, 0x0000088fu, 0x00000890u, 0x0000000cu, 0x00040020u, 0x00000892u, 0x0000000cu, 0x0000088cu, + 0x0004002bu, 0x00000008u, 0x0000089bu, 0x00000040u, 0x0003001du, 0x000008acu, 0x00000006u, 0x0003001eu, + 0x000008adu, 0x000008acu, 0x00040020u, 0x000008aeu, 0x0000000cu, 0x000008adu, 0x0004003bu, 0x000008aeu, + 0x000008afu, 0x0000000cu, 0x0003001du, 0x000008bau, 0x000000a1u, 0x0003001eu, 0x000008bbu, 0x000008bau, + 0x00040020u, 0x000008bcu, 0x0000000cu, 0x000008bbu, 0x0004003bu, 0x000008bcu, 0x000008bdu, 0x0000000cu, + 0x0003001du, 0x000008c4u, 0x00000008u, 0x0003001eu, 0x000008c5u, 0x000008c4u, 0x00040020u, 0x000008c6u, + 0x0000000cu, 0x000008c5u, 0x0004003bu, 0x000008c6u, 0x000008c7u, 0x0000000cu, 0x00040020u, 0x000008c9u, + 0x0000000cu, 0x00000008u, 0x0003001du, 0x000008cdu, 0x000000a0u, 0x0003001eu, 0x000008ceu, 0x000008cdu, + 0x00040020u, 0x000008cfu, 0x0000000cu, 0x000008ceu, 0x0004003bu, 0x000008cfu, 0x000008d0u, 0x0000000cu, + 0x00030001u, 0x00000009u, 0x00001285u, 0x00030001u, 0x00000008u, 0x000012abu, 0x00030001u, 0x00000014u, + 0x000012dbu, 0x00030001u, 0x00000006u, 0x0000149au, 0x0006002cu, 0x000003a6u, 0x00001805u, 0x000003b1u, + 0x000003b1u, 0x000003b1u, 0x0005002cu, 0x0000006fu, 0x00001806u, 0x000001e3u, 0x000001e3u, 0x0006002cu, + 0x00000014u, 0x00001807u, 0x00000131u, 0x00000131u, 0x00000131u, 0x0006002cu, 0x00000014u, 0x00001808u, + 0x000000d6u, 0x000000d6u, 0x000000d6u, 0x0006002cu, 0x00000014u, 0x00001809u, 0x000000dcu, 0x000000dcu, + 0x000000dcu, 0x0006002cu, 0x00000014u, 0x0000180au, 0x00000144u, 0x00000144u, 0x00000144u, 0x0006002cu, + 0x00000014u, 0x0000180bu, 0x000000cau, 0x000000cau, 0x000000cau, 0x0006002cu, 0x00000014u, 0x0000180cu, + 0x000000b8u, 0x000000b8u, 0x000000b8u, 0x0006002cu, 0x00000014u, 0x0000180du, 0x00000160u, 0x00000160u, + 0x00000160u, 0x0004002bu, 0x000000a0u, 0x0000180eu, 0x00000000u, 0x0004002bu, 0x000000a0u, 0x0000180fu, + 0x000000ffu, 0x0004002bu, 0x000000a2u, 0x00001810u, 0x0000ffffu, 0x00040017u, 0x00001816u, 0x0000002cu, + 0x00000004u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, + 0x000300f7u, 0x00000943u, 0x00000000u, 0x000300fbu, 0x000001bbu, 0x00000944u, 0x000200f8u, 0x00000944u, + 0x0004003du, 0x000003a6u, 0x0000080du, 0x0000080cu, 0x0007004fu, 0x0000006fu, 0x0000080eu, 0x0000080du, + 0x0000080du, 0x00000000u, 0x00000001u, 0x0004007cu, 0x0000002eu, 0x0000080fu, 0x0000080eu, 0x00050051u, + 0x00000008u, 0x00000812u, 0x0000080fu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00000814u, 0x0000080fu, + 0x00000001u, 0x00050084u, 0x00000008u, 0x0000081cu, 0x00000814u, 0x0000081bu, 0x00050080u, 0x00000008u, + 0x0000081du, 0x00000812u, 0x0000081cu, 0x00050084u, 0x00000008u, 0x00000823u, 0x0000081du, 0x00000822u, + 0x00060041u, 0x000000e9u, 0x0000082au, 0x00000828u, 0x0000009fu, 0x0000081du, 0x0004003du, 0x00000006u, + 0x0000082bu, 0x0000082au, 0x00050041u, 0x0000082fu, 0x00000830u, 0x0000082eu, 0x000000c4u, 0x0004003du, + 0x00000006u, 0x00000831u, 0x00000830u, 0x000500c7u, 0x00000006u, 0x00000832u, 0x0000082bu, 0x00000831u, + 0x000500aau, 0x0000002cu, 0x00000834u, 0x00000832u, 0x000001bbu, 0x000300f7u, 0x00000836u, 0x00000000u, + 0x000400fau, 0x00000834u, 0x00000835u, 0x00000836u, 0x000200f8u, 0x00000835u, 0x000200f9u, 0x00000943u, + 0x000200f8u, 0x00000836u, 0x0004003du, 0x000003a6u, 0x00000839u, 0x00000802u, 0x0007004fu, 0x0000006fu, + 0x0000083au, 0x00000839u, 0x00000839u, 0x00000000u, 0x00000001u, 0x00050041u, 0x0000082fu, 0x0000083cu, + 0x0000082eu, 0x000000b8u, 0x0004003du, 0x00000006u, 0x0000083du, 0x0000083cu, 0x00050041u, 0x0000082fu, + 0x0000083fu, 0x0000082eu, 0x000000beu, 0x0004003du, 0x00000006u, 0x00000840u, 0x0000083fu, 0x00050041u, + 0x0000082fu, 0x00000842u, 0x0000082eu, 0x0000009fu, 0x0004003du, 0x00000006u, 0x00000843u, 0x00000842u, + 0x00050041u, 0x0000082fu, 0x00000845u, 0x0000082eu, 0x000000b2u, 0x0004003du, 0x00000006u, 0x00000846u, + 0x00000845u, 0x00050050u, 0x0000006fu, 0x00000956u, 0x0000083du, 0x00000840u, 0x000500b0u, 0x00000592u, + 0x00000957u, 0x0000083au, 0x00000956u, 0x0004009bu, 0x0000002cu, 0x00000958u, 0x00000957u, 0x000300f7u, + 0x00000981u, 0x00000000u, 0x000400fau, 0x00000958u, 0x00000959u, 0x00000981u, 0x000200f8u, 0x00000959u, + 0x00050050u, 0x0000006fu, 0x0000095bu, 0x0000059bu, 0x0000059bu, 0x000500c7u, 0x0000006fu, 0x0000095cu, + 0x0000083au, 0x0000095bu, 0x00050050u, 0x0000002eu, 0x0000095eu, 0x0000055du, 0x0000055du, 0x000500c2u, + 0x0000006fu, 0x0000095fu, 0x0000083au, 0x0000095eu, 0x00050051u, 0x00000006u, 0x00000961u, 0x0000095cu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00000962u, 0x00000961u, 0x000005a4u, 0x00050051u, 0x00000006u, + 0x00000964u, 0x0000095cu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00000965u, 0x00000962u, 0x00000964u, + 0x000500c2u, 0x00000006u, 0x00000968u, 0x0000083du, 0x0000055du, 0x00050051u, 0x00000006u, 0x0000096au, + 0x0000095fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000096bu, 0x00000968u, 0x0000096au, 0x00050080u, + 0x00000006u, 0x0000096cu, 0x00000843u, 0x0000096bu, 0x00050051u, 0x00000006u, 0x0000096eu, 0x0000095fu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x0000096fu, 0x0000096cu, 0x0000096eu, 0x000300f7u, 0x000009ebu, + 0x00000000u, 0x000d00fbu, 0x0000036au, 0x000009ebu, 0x00000000u, 0x00000988u, 0x00000001u, 0x00000988u, + 0x00000002u, 0x0000099fu, 0x00000003u, 0x000009c5u, 0x00000004u, 0x000009dcu, 0x000200f8u, 0x000009dcu, + 0x000500c7u, 0x00000006u, 0x000009deu, 0x0000096fu, 0x000003e0u, 0x00050084u, 0x00000006u, 0x000009e0u, + 0x00000965u, 0x000003e4u, 0x00050080u, 0x00000006u, 0x000009e2u, 0x000009deu, 0x000009e0u, 0x00060041u, + 0x000000e9u, 0x000009e4u, 0x000003ecu, 0x0000009fu, 0x000009e2u, 0x0004003du, 0x00000006u, 0x000009e5u, + 0x000009e4u, 0x00070050u, 0x000000aeu, 0x000009e7u, 0x000009e5u, 0x000009e5u, 0x000009e5u, 0x000009e5u, + 0x000500c2u, 0x000000aeu, 0x000009e8u, 0x000009e7u, 0x000003f4u, 0x000500c7u, 0x000000aeu, 0x000009e9u, + 0x000009e8u, 0x000003f6u, 0x0004007cu, 0x00000009u, 0x000009eau, 0x000009e9u, 0x000200f9u, 0x000009ebu, + 0x000200f8u, 0x000009c5u, 0x000500c7u, 0x00000006u, 0x000009c7u, 0x0000096fu, 0x00000394u, 0x00050084u, + 0x00000006u, 0x000009c9u, 0x00000965u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000009cbu, 0x000009c7u, + 0x000009c9u, 0x000500c6u, 0x00000006u, 0x000009cdu, 0x000009cbu, 0x000001ddu, 0x00060041u, 0x000000eeu, + 0x000009ceu, 0x000003a0u, 0x0000009fu, 0x000009cdu, 0x0004003du, 0x000000a2u, 0x000009cfu, 0x000009ceu, + 0x00040071u, 0x00000006u, 0x000009d0u, 0x000009cfu, 0x000500c2u, 0x00000006u, 0x000009d2u, 0x000009d0u, + 0x000003aau, 0x0004007cu, 0x00000008u, 0x000009d3u, 0x000009d2u, 0x000500c7u, 0x00000006u, 0x000009d6u, + 0x000009d0u, 0x000003d8u, 0x0004007cu, 0x00000008u, 0x000009d7u, 0x000009d6u, 0x00070050u, 0x00000009u, + 0x000009dbu, 0x000009d3u, 0x000009d3u, 0x000009d3u, 0x000009d7u, 0x000200f9u, 0x000009ebu, 0x000200f8u, + 0x0000099fu, 0x000500c7u, 0x00000006u, 0x000009a1u, 0x0000096fu, 0x00000394u, 0x00050084u, 0x00000006u, + 0x000009a3u, 0x00000965u, 0x00000398u, 0x00050080u, 0x00000006u, 0x000009a5u, 0x000009a1u, 0x000009a3u, + 0x000500c6u, 0x00000006u, 0x000009a7u, 0x000009a5u, 0x000001ddu, 0x00060041u, 0x000000eeu, 0x000009a8u, + 0x000003a0u, 0x0000009fu, 0x000009a7u, 0x0004003du, 0x000000a2u, 0x000009a9u, 0x000009a8u, 0x00040071u, + 0x00000006u, 0x000009aau, 0x000009a9u, 0x000500c2u, 0x00000006u, 0x000009acu, 0x000009aau, 0x000003aau, + 0x000500c2u, 0x00000006u, 0x000009aeu, 0x000009aau, 0x000001e3u, 0x000500c4u, 0x00000006u, 0x000009b0u, + 0x000009aau, 0x00000196u, 0x00060050u, 0x000003a6u, 0x000009b1u, 0x000009acu, 0x000009aeu, 0x000009b0u, + 0x000500c7u, 0x000003a6u, 0x000009b3u, 0x000009b1u, 0x00001805u, 0x0004007cu, 0x00000014u, 0x000009b5u, + 0x000009b3u, 0x00060041u, 0x000000f5u, 0x000009b7u, 0x0000038bu, 0x0000009fu, 0x000009a5u, 0x0004003du, + 0x000000a0u, 0x000009b8u, 0x000009b7u, 0x00040071u, 0x00000006u, 0x000009b9u, 0x000009b8u, 0x0004007cu, + 0x00000008u, 0x000009bau, 0x000009b9u, 0x000500c4u, 0x00000008u, 0x000009bbu, 0x000009bau, 0x000000cau, + 0x000500c7u, 0x00000006u, 0x000009bdu, 0x000009aau, 0x000001ddu, 0x000500c4u, 0x00000006u, 0x000009beu, + 0x000009bdu, 0x000000d6u, 0x0004007cu, 0x00000008u, 0x000009bfu, 0x000009beu, 0x000500c5u, 0x00000008u, + 0x000009c0u, 0x000009bbu, 0x000009bfu, 0x00050051u, 0x00000008u, 0x000009c1u, 0x000009b5u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000009c2u, 0x000009b5u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000009c3u, + 0x000009b5u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000009c4u, 0x000009c1u, 0x000009c2u, 0x000009c3u, + 0x000009c0u, 0x000200f9u, 0x000009ebu, 0x000200f8u, 0x00000988u, 0x000500c7u, 0x00000006u, 0x0000098au, + 0x0000096fu, 0x00000371u, 0x00050084u, 0x00000006u, 0x0000098cu, 0x00000965u, 0x00000370u, 0x00050080u, + 0x00000006u, 0x0000098eu, 0x0000098au, 0x0000098cu, 0x000500c6u, 0x00000006u, 0x00000990u, 0x0000098eu, + 0x000001e3u, 0x00060041u, 0x000000f5u, 0x00000991u, 0x0000037cu, 0x0000009fu, 0x00000990u, 0x0004003du, + 0x000000a0u, 0x00000992u, 0x00000991u, 0x00040071u, 0x00000006u, 0x00000993u, 0x00000992u, 0x0004007cu, + 0x00000008u, 0x00000994u, 0x00000993u, 0x000500c2u, 0x00000006u, 0x00000999u, 0x0000098eu, 0x000000b2u, + 0x00060041u, 0x000000f5u, 0x0000099au, 0x0000038bu, 0x0000009fu, 0x00000999u, 0x0004003du, 0x000000a0u, + 0x0000099bu, 0x0000099au, 0x00040071u, 0x00000006u, 0x0000099cu, 0x0000099bu, 0x0004007cu, 0x00000008u, + 0x0000099du, 0x0000099cu, 0x00070050u, 0x00000009u, 0x0000099eu, 0x00000994u, 0x00000994u, 0x00000994u, + 0x0000099du, 0x000200f9u, 0x000009ebu, 0x000200f8u, 0x000009ebu, 0x000d00f5u, 0x00000009u, 0x00001286u, + 0x00001285u, 0x00000959u, 0x0000099eu, 0x00000988u, 0x000009c4u, 0x0000099fu, 0x000009dbu, 0x000009c5u, + 0x000009eau, 0x000009dcu, 0x00050080u, 0x00000006u, 0x0000097au, 0x00000846u, 0x0000096bu, 0x00050080u, + 0x00000006u, 0x0000097du, 0x0000097au, 0x0000096eu, 0x000500c7u, 0x00000006u, 0x000009efu, 0x0000097du, + 0x00000394u, 0x00050084u, 0x00000006u, 0x000009f1u, 0x00000965u, 0x0000046du, 0x00050080u, 0x00000006u, + 0x000009f3u, 0x000009efu, 0x000009f1u, 0x000500c6u, 0x00000006u, 0x000009f5u, 0x000009f3u, 0x000001ddu, + 0x00060041u, 0x000000eeu, 0x000009f6u, 0x000003a0u, 0x0000009fu, 0x000009f5u, 0x0004003du, 0x000000a2u, + 0x000009f7u, 0x000009f6u, 0x00040071u, 0x00000006u, 0x000009f8u, 0x000009f7u, 0x0004007cu, 0x00000008u, + 0x000009f9u, 0x000009f8u, 0x000500c3u, 0x00000008u, 0x000009fbu, 0x000009f9u, 0x000000b8u, 0x00060041u, + 0x000000f5u, 0x000009fdu, 0x0000038bu, 0x0000009fu, 0x000009f3u, 0x0004003du, 0x000000a0u, 0x000009feu, + 0x000009fdu, 0x00040071u, 0x00000006u, 0x000009ffu, 0x000009feu, 0x0004007cu, 0x00000008u, 0x00000a00u, + 0x000009ffu, 0x000500c7u, 0x00000008u, 0x00000a02u, 0x000009f9u, 0x000000beu, 0x000500c4u, 0x00000008u, + 0x00000a03u, 0x00000a02u, 0x000000b8u, 0x000500c5u, 0x00000008u, 0x00000a04u, 0x00000a00u, 0x00000a03u, + 0x000200f9u, 0x00000981u, 0x000200f8u, 0x00000981u, 0x000700f5u, 0x00000006u, 0x00001499u, 0x0000149au, + 0x00000836u, 0x0000096fu, 0x000009ebu, 0x000700f5u, 0x00000008u, 0x000012b7u, 0x000012abu, 0x00000836u, + 0x00000a04u, 0x000009ebu, 0x000700f5u, 0x00000008u, 0x000012aau, 0x000012abu, 0x00000836u, 0x000009fbu, + 0x000009ebu, 0x000700f5u, 0x00000009u, 0x00001284u, 0x00001285u, 0x00000836u, 0x00001286u, 0x000009ebu, + 0x000200f9u, 0x00000848u, 0x000200f8u, 0x00000848u, 0x000700f5u, 0x00000008u, 0x000012b6u, 0x000012b7u, + 0x00000981u, 0x000012e4u, 0x0000084bu, 0x000700f5u, 0x00000008u, 0x000012a9u, 0x000012aau, 0x00000981u, + 0x000012e1u, 0x0000084bu, 0x000700f5u, 0x0000002cu, 0x0000129bu, 0x0000029bu, 0x00000981u, 0x00001540u, + 0x0000084bu, 0x000700f5u, 0x00000009u, 0x00001283u, 0x00001284u, 0x00000981u, 0x000012d3u, 0x0000084bu, + 0x000700f5u, 0x0000002cu, 0x0000127eu, 0x0000029bu, 0x00000981u, 0x00001523u, 0x0000084bu, 0x000700f5u, + 0x00000006u, 0x00001278u, 0x00000832u, 0x00000981u, 0x00000857u, 0x0000084bu, 0x000700f5u, 0x00000014u, + 0x0000142fu, 0x000012dbu, 0x00000981u, 0x0000142eu, 0x0000084bu, 0x000700f5u, 0x00000014u, 0x00001404u, + 0x000012dbu, 0x00000981u, 0x00001403u, 0x0000084bu, 0x000700f5u, 0x00000008u, 0x000013dau, 0x000012abu, + 0x00000981u, 0x000013d9u, 0x0000084bu, 0x000700f5u, 0x00000008u, 0x000013b0u, 0x000012abu, 0x00000981u, + 0x000013afu, 0x0000084bu, 0x000700f5u, 0x00000014u, 0x00001383u, 0x000012dbu, 0x00000981u, 0x00001382u, + 0x0000084bu, 0x000700f5u, 0x00000014u, 0x00001365u, 0x000012dbu, 0x00000981u, 0x00001364u, 0x0000084bu, + 0x000700f5u, 0x00000008u, 0x00001348u, 0x000012abu, 0x00000981u, 0x00001347u, 0x0000084bu, 0x000700f5u, + 0x00000008u, 0x0000132bu, 0x000012abu, 0x00000981u, 0x0000132au, 0x0000084bu, 0x000700f5u, 0x00000014u, + 0x000012d9u, 0x000012dbu, 0x00000981u, 0x000012d8u, 0x0000084bu, 0x000500abu, 0x0000002cu, 0x0000084eu, + 0x00001278u, 0x000001bbu, 0x000400f6u, 0x0000084au, 0x0000084bu, 0x00000000u, 0x000400fau, 0x0000084eu, + 0x00000849u, 0x0000084au, 0x000200f8u, 0x00000849u, 0x0006000cu, 0x00000008u, 0x00000851u, 0x00000001u, + 0x00000049u, 0x00001278u, 0x000500c4u, 0x00000008u, 0x00000853u, 0x000000b2u, 0x00000851u, 0x0004007cu, + 0x00000006u, 0x00000854u, 0x00000853u, 0x000400c8u, 0x00000006u, 0x00000855u, 0x00000854u, 0x000500c7u, + 0x00000006u, 0x00000857u, 0x00001278u, 0x00000855u, 0x00050080u, 0x00000008u, 0x0000085fu, 0x00000823u, + 0x00000851u, 0x00060041u, 0x000000e9u, 0x00000860u, 0x0000085cu, 0x0000009fu, 0x0000085fu, 0x0004003du, + 0x00000006u, 0x00000861u, 0x00000860u, 0x00060041u, 0x000000e9u, 0x0000086au, 0x00000866u, 0x0000009fu, + 0x0000085fu, 0x0004003du, 0x00000006u, 0x0000086bu, 0x0000086au, 0x000200f9u, 0x0000086cu, 0x000200f8u, + 0x0000086cu, 0x000700f5u, 0x00000014u, 0x0000142eu, 0x0000142fu, 0x00000849u, 0x000017aau, 0x0000086fu, + 0x000700f5u, 0x00000014u, 0x00001403u, 0x00001404u, 0x00000849u, 0x00001790u, 0x0000086fu, 0x000700f5u, + 0x00000008u, 0x000013d9u, 0x000013dau, 0x00000849u, 0x00001775u, 0x0000086fu, 0x000700f5u, 0x00000008u, + 0x000013afu, 0x000013b0u, 0x00000849u, 0x0000175au, 0x0000086fu, 0x000700f5u, 0x00000014u, 0x00001382u, + 0x00001383u, 0x00000849u, 0x00001732u, 0x0000086fu, 0x000700f5u, 0x00000014u, 0x00001364u, 0x00001365u, + 0x00000849u, 0x0000170bu, 0x0000086fu, 0x000700f5u, 0x00000008u, 0x00001347u, 0x00001348u, 0x00000849u, + 0x000016e3u, 0x0000086fu, 0x000700f5u, 0x00000008u, 0x0000132au, 0x0000132bu, 0x00000849u, 0x000016bbu, + 0x0000086fu, 0x000700f5u, 0x00000008u, 0x000012e4u, 0x000012b6u, 0x00000849u, 0x0000164au, 0x0000086fu, + 0x000700f5u, 0x00000008u, 0x000012e1u, 0x000012a9u, 0x00000849u, 0x0000160cu, 0x0000086fu, 0x000700f5u, + 0x00000014u, 0x000012d8u, 0x000012d9u, 0x00000849u, 0x000015ceu, 0x0000086fu, 0x000700f5u, 0x00000009u, + 0x000012d3u, 0x00001283u, 0x00000849u, 0x000015c1u, 0x0000086fu, 0x000700f5u, 0x00000006u, 0x000012d2u, + 0x00000861u, 0x00000849u, 0x000008e3u, 0x0000086fu, 0x000700f5u, 0x00000006u, 0x000012d1u, 0x0000086bu, + 0x00000849u, 0x0000087bu, 0x0000086fu, 0x000700f5u, 0x0000002cu, 0x00001540u, 0x0000129bu, 0x00000849u, + 0x00001541u, 0x0000086fu, 0x000700f5u, 0x0000002cu, 0x00001523u, 0x0000127eu, 0x00000849u, 0x00001524u, + 0x0000086fu, 0x000500abu, 0x0000002cu, 0x00000872u, 0x000012d1u, 0x000001bbu, 0x000400f6u, 0x0000086eu, + 0x0000086fu, 0x00000000u, 0x000400fau, 0x00000872u, 0x0000086du, 0x0000086eu, 0x000200f8u, 0x0000086du, + 0x0006000cu, 0x00000008u, 0x00000875u, 0x00000001u, 0x00000049u, 0x000012d1u, 0x000500c4u, 0x00000008u, + 0x00000877u, 0x000000b2u, 0x00000875u, 0x0004007cu, 0x00000006u, 0x00000878u, 0x00000877u, 0x000400c8u, + 0x00000006u, 0x00000879u, 0x00000878u, 0x000500c7u, 0x00000006u, 0x0000087bu, 0x000012d1u, 0x00000879u, + 0x00050084u, 0x00000008u, 0x0000087fu, 0x00000821u, 0x00000851u, 0x00050080u, 0x00000008u, 0x00000880u, + 0x00000875u, 0x0000087fu, 0x0004007cu, 0x00000006u, 0x00000881u, 0x00000880u, 0x00050084u, 0x00000006u, + 0x00000887u, 0x000012d2u, 0x00000886u, 0x0004003du, 0x00000006u, 0x00000889u, 0x00000888u, 0x00050080u, + 0x00000006u, 0x0000088au, 0x00000887u, 0x00000889u, 0x00060041u, 0x00000892u, 0x00000893u, 0x00000890u, + 0x0000009fu, 0x0000088au, 0x0004003du, 0x0000088cu, 0x00000894u, 0x00000893u, 0x00040072u, 0x00000008u, + 0x00000895u, 0x00000894u, 0x000500afu, 0x0000002cu, 0x00000897u, 0x00000895u, 0x0000009fu, 0x000300f7u, + 0x00000899u, 0x00000000u, 0x000400fau, 0x00000897u, 0x00000898u, 0x00000899u, 0x000200f8u, 0x00000898u, + 0x000500c7u, 0x00000008u, 0x0000089cu, 0x00000895u, 0x0000089bu, 0x000500abu, 0x0000002cu, 0x0000089du, + 0x0000089cu, 0x0000009fu, 0x000300f7u, 0x0000089fu, 0x00000000u, 0x000400fau, 0x0000089du, 0x0000089eu, + 0x000008a5u, 0x000200f8u, 0x000008a5u, 0x000500c7u, 0x00000008u, 0x000008a7u, 0x00000895u, 0x00000821u, + 0x000500abu, 0x0000002cu, 0x000008a8u, 0x000008a7u, 0x0000009fu, 0x000300f7u, 0x000008aau, 0x00000000u, + 0x000400fau, 0x000008a8u, 0x000008a9u, 0x000008b8u, 0x000200f8u, 0x000008b8u, 0x00060041u, 0x000000abu, + 0x000008bfu, 0x000008bdu, 0x0000009fu, 0x0000088au, 0x0004003du, 0x000000a1u, 0x000008c0u, 0x000008bfu, + 0x00040071u, 0x000000aeu, 0x000008c1u, 0x000008c0u, 0x0004007cu, 0x00000009u, 0x000008c2u, 0x000008c1u, + 0x00060041u, 0x000008c9u, 0x000008cau, 0x000008c7u, 0x0000009fu, 0x0000088au, 0x0004003du, 0x00000008u, + 0x000008cbu, 0x000008cau, 0x00060041u, 0x000000f5u, 0x000008d2u, 0x000008d0u, 0x0000009fu, 0x0000088au, + 0x0004003du, 0x000000a0u, 0x000008d3u, 0x000008d2u, 0x00040071u, 0x00000006u, 0x000008d4u, 0x000008d3u, + 0x0004007cu, 0x00000008u, 0x000008d5u, 0x000008d4u, 0x000500c3u, 0x00000008u, 0x00000ba2u, 0x000008cbu, + 0x000000e2u, 0x000500c7u, 0x00000008u, 0x00000ba5u, 0x000008cbu, 0x00000719u, 0x00080041u, 0x000000f5u, + 0x00000badu, 0x0000072au, 0x0000009fu, 0x00000881u, 0x0000009fu, 0x000001ddu, 0x0004003du, 0x000000a0u, + 0x00000baeu, 0x00000badu, 0x00040071u, 0x00000006u, 0x00000bafu, 0x00000baeu, 0x00070041u, 0x000000abu, + 0x00000c69u, 0x000000a9u, 0x0000009fu, 0x00000881u, 0x000000dcu, 0x0004003du, 0x000000a1u, 0x00000c6au, + 0x00000c69u, 0x00040071u, 0x000000aeu, 0x00000c6bu, 0x00000c6au, 0x0004007cu, 0x00000009u, 0x00000c6cu, + 0x00000c6bu, 0x00070041u, 0x000000abu, 0x00000c6eu, 0x000000a9u, 0x0000009fu, 0x00000881u, 0x000000e2u, + 0x0004003du, 0x000000a1u, 0x00000c6fu, 0x00000c6eu, 0x00040071u, 0x000000aeu, 0x00000c70u, 0x00000c6fu, + 0x0004007cu, 0x00000009u, 0x00000c71u, 0x00000c70u, 0x00070041u, 0x000000eeu, 0x00000c76u, 0x000000a9u, + 0x0000009fu, 0x00000881u, 0x000000edu, 0x0004003du, 0x000000a2u, 0x00000c77u, 0x00000c76u, 0x00040071u, + 0x00000006u, 0x00000c78u, 0x00000c77u, 0x0004007cu, 0x00000008u, 0x00000c79u, 0x00000c78u, 0x00070041u, + 0x000000f5u, 0x00000c7bu, 0x000000a9u, 0x0000009fu, 0x00000881u, 0x000000f4u, 0x0004003du, 0x000000a0u, + 0x00000c7cu, 0x00000c7bu, 0x00040071u, 0x00000006u, 0x00000c7du, 0x00000c7cu, 0x0004007cu, 0x00000008u, + 0x00000c7eu, 0x00000c7du, 0x00070041u, 0x000000abu, 0x00000c8cu, 0x0000010du, 0x0000009fu, 0x00000bafu, + 0x0000009fu, 0x0004003du, 0x000000a1u, 0x00000c8du, 0x00000c8cu, 0x00040071u, 0x000000aeu, 0x00000c8eu, + 0x00000c8du, 0x0004007cu, 0x00000009u, 0x00000c8fu, 0x00000c8eu, 0x00070041u, 0x000000abu, 0x00000c91u, + 0x0000010du, 0x0000009fu, 0x00000bafu, 0x000000b2u, 0x0004003du, 0x000000a1u, 0x00000c92u, 0x00000c91u, + 0x00040071u, 0x000000aeu, 0x00000c93u, 0x00000c92u, 0x0004007cu, 0x00000009u, 0x00000c94u, 0x00000c93u, + 0x00070041u, 0x000000e9u, 0x00000c96u, 0x0000010du, 0x0000009fu, 0x00000bafu, 0x000000b8u, 0x0004003du, + 0x00000006u, 0x00000c97u, 0x00000c96u, 0x00070041u, 0x000000f5u, 0x00000c99u, 0x0000010du, 0x0000009fu, + 0x00000bafu, 0x000000beu, 0x0004003du, 0x000000a0u, 0x00000c9au, 0x00000c99u, 0x00040071u, 0x00000006u, + 0x00000c9bu, 0x00000c9au, 0x0004007cu, 0x00000008u, 0x00000c9cu, 0x00000c9bu, 0x00070041u, 0x000000f5u, + 0x00000c9eu, 0x0000010du, 0x0000009fu, 0x00000bafu, 0x000000c4u, 0x0004003du, 0x000000a0u, 0x00000c9fu, + 0x00000c9eu, 0x00040071u, 0x00000006u, 0x00000ca0u, 0x00000c9fu, 0x0004007cu, 0x00000008u, 0x00000ca1u, + 0x00000ca0u, 0x000500c7u, 0x00000006u, 0x00000bb6u, 0x00000c97u, 0x000003aau, 0x000500abu, 0x0000002cu, + 0x00000bb7u, 0x00000bb6u, 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000bbau, 0x00000c97u, 0x000001ddu, + 0x000500abu, 0x0000002cu, 0x00000bbbu, 0x00000bbau, 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000bbeu, + 0x00000c97u, 0x00000196u, 0x000500abu, 0x0000002cu, 0x00000bbfu, 0x00000bbeu, 0x000001bbu, 0x000500c7u, + 0x00000006u, 0x00000bc2u, 0x00000c97u, 0x000003f3u, 0x000500abu, 0x0000002cu, 0x00000bc3u, 0x00000bc2u, + 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000bc6u, 0x00000c97u, 0x00000750u, 0x000500abu, 0x0000002cu, + 0x00000bc7u, 0x00000bc6u, 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000bcau, 0x00000c97u, 0x00000756u, + 0x000500abu, 0x0000002cu, 0x00000bcbu, 0x00000bcau, 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000bceu, + 0x00000c97u, 0x0000075cu, 0x000500abu, 0x0000002cu, 0x00000bcfu, 0x00000bceu, 0x000001bbu, 0x000500c7u, + 0x00000006u, 0x00000bd2u, 0x00000c97u, 0x00000762u, 0x000500abu, 0x0000002cu, 0x00000bd3u, 0x00000bd2u, + 0x000001bbu, 0x000300f7u, 0x00000caeu, 0x00000000u, 0x000400fau, 0x00000bc3u, 0x00000ca9u, 0x00000cadu, + 0x000200f8u, 0x00000cadu, 0x000200f9u, 0x00000caeu, 0x000200f8u, 0x00000ca9u, 0x00050051u, 0x00000008u, + 0x00000cabu, 0x000012d3u, 0x00000003u, 0x000500c7u, 0x00000008u, 0x00000cacu, 0x00000cabu, 0x00000641u, + 0x000200f9u, 0x00000caeu, 0x000200f8u, 0x00000caeu, 0x000700f5u, 0x00000008u, 0x000012d4u, 0x00000cacu, + 0x00000ca9u, 0x00000641u, 0x00000cadu, 0x000300f7u, 0x00000cbfu, 0x00000000u, 0x000d00fbu, 0x0000036au, + 0x00000cbfu, 0x00000000u, 0x00000cb0u, 0x00000001u, 0x00000cb1u, 0x00000002u, 0x00000cb4u, 0x00000003u, + 0x00000cb9u, 0x00000004u, 0x00000cbcu, 0x000200f8u, 0x00000cbcu, 0x0008004fu, 0x00000014u, 0x00000cbeu, + 0x000012d3u, 0x000012d3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000cbfu, 0x000200f8u, + 0x00000cb9u, 0x0008004fu, 0x00000014u, 0x00000cbbu, 0x000012d3u, 0x000012d3u, 0x00000000u, 0x00000000u, + 0x00000000u, 0x000200f9u, 0x00000cbfu, 0x000200f8u, 0x00000cb4u, 0x0008004fu, 0x00000014u, 0x00000cb6u, + 0x000012d3u, 0x000012d3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, 0x00000014u, 0x00000cb8u, + 0x00000cb6u, 0x00001807u, 0x000200f9u, 0x00000cbfu, 0x000200f8u, 0x00000cb1u, 0x0008004fu, 0x00000014u, + 0x00000cb3u, 0x000012d3u, 0x000012d3u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000200f9u, 0x00000cbfu, + 0x000200f8u, 0x00000cb0u, 0x000200f9u, 0x00000cbfu, 0x000200f8u, 0x00000cbfu, 0x000f00f5u, 0x00000008u, + 0x000012deu, 0x000012d4u, 0x00000caeu, 0x00000641u, 0x00000cb0u, 0x00000641u, 0x00000cb1u, 0x000012d4u, + 0x00000cb4u, 0x000012d4u, 0x00000cb9u, 0x000012d4u, 0x00000cbcu, 0x000f00f5u, 0x00000014u, 0x000012d6u, + 0x000012d8u, 0x00000caeu, 0x0000064cu, 0x00000cb0u, 0x00000cb3u, 0x00000cb1u, 0x00000cb8u, 0x00000cb4u, + 0x00000cbbu, 0x00000cb9u, 0x00000cbeu, 0x00000cbcu, 0x00050051u, 0x00000008u, 0x00000cc2u, 0x000012d6u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00000cc3u, 0x000012d6u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00000cc4u, 0x000012d6u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00000cc5u, 0x00000cc2u, 0x00000cc3u, + 0x00000cc4u, 0x000012deu, 0x000500c3u, 0x00000008u, 0x00000bd8u, 0x000012deu, 0x000000cau, 0x00050080u, + 0x00000008u, 0x00000d0fu, 0x00000895u, 0x00000bd8u, 0x000500afu, 0x0000002cu, 0x00000d10u, 0x00000d0fu, + 0x000000dcu, 0x000300f7u, 0x00000d7au, 0x00000000u, 0x000400fau, 0x00000bbbu, 0x00000cdcu, 0x00000d66u, + 0x000200f8u, 0x00000d66u, 0x00050082u, 0x00000008u, 0x00000d69u, 0x00000298u, 0x00000c7eu, 0x0007000cu, + 0x00000008u, 0x00000d6au, 0x00000001u, 0x00000027u, 0x00000d69u, 0x000000c4u, 0x00050050u, 0x0000002eu, + 0x00001811u, 0x0000009fu, 0x00000d6au, 0x000400a8u, 0x0000002cu, 0x00000d71u, 0x00000bb7u, 0x000300f7u, + 0x00000d77u, 0x00000000u, 0x000400fau, 0x00000d71u, 0x00000d72u, 0x00000d77u, 0x000200f8u, 0x00000d72u, + 0x000400a8u, 0x0000002cu, 0x00000d74u, 0x00000d10u, 0x000500a7u, 0x0000002cu, 0x00000d76u, 0x00000d74u, + 0x00000bcfu, 0x000200f9u, 0x00000d77u, 0x000200f8u, 0x00000d77u, 0x000700f5u, 0x0000002cu, 0x00000d78u, + 0x00000bb7u, 0x00000d66u, 0x00000d76u, 0x00000d72u, 0x000200f9u, 0x00000d7au, 0x000200f8u, 0x00000cdcu, + 0x000500c3u, 0x00000008u, 0x00000d85u, 0x000012e1u, 0x000000edu, 0x000500c7u, 0x00000008u, 0x00000d87u, + 0x000012e1u, 0x00000160u, 0x00050082u, 0x00000008u, 0x00000d89u, 0x000000d0u, 0x00000d85u, 0x0007000cu, + 0x00000008u, 0x00000d8au, 0x00000001u, 0x0000002au, 0x00000d89u, 0x0000009fu, 0x000500c3u, 0x00000008u, + 0x00000d8cu, 0x00000167u, 0x00000d85u, 0x00050082u, 0x00000008u, 0x00000d8du, 0x00000167u, 0x00000d8cu, + 0x000500c4u, 0x00000008u, 0x00000d90u, 0x00000d87u, 0x00000d8au, 0x00050080u, 0x00000008u, 0x00000d92u, + 0x00000d90u, 0x00000d8du, 0x000500c4u, 0x00000008u, 0x00000d96u, 0x000000b2u, 0x000012e4u, 0x000500c7u, + 0x00000008u, 0x00000ce3u, 0x00000d85u, 0x00000298u, 0x00050082u, 0x00000008u, 0x00000ce6u, 0x00000c7eu, + 0x000012e4u, 0x0008000cu, 0x00000008u, 0x00000ce7u, 0x00000001u, 0x0000002du, 0x00000ce6u, 0x0000009fu, + 0x000000c4u, 0x00050082u, 0x00000008u, 0x00000cebu, 0x000012e4u, 0x00000c7eu, 0x0008000cu, 0x00000008u, + 0x00000cecu, 0x00000001u, 0x0000002du, 0x00000cebu, 0x0000009fu, 0x000000c4u, 0x00050050u, 0x0000002eu, + 0x00001812u, 0x00000ce7u, 0x00000cecu, 0x000500b1u, 0x0000002cu, 0x00000cefu, 0x00000ce3u, 0x000000beu, + 0x000300f7u, 0x00000cfbu, 0x00000000u, 0x000400fau, 0x00000cefu, 0x00000cf0u, 0x00000cfbu, 0x000200f8u, + 0x00000cf0u, 0x000500abu, 0x0000002cu, 0x00000cf2u, 0x00000d96u, 0x000002abu, 0x000300f7u, 0x00000cfau, + 0x00000000u, 0x000400fau, 0x00000cf2u, 0x00000cf3u, 0x00000cf9u, 0x000200f8u, 0x00000cf9u, 0x000200f9u, + 0x00000cfau, 0x000200f8u, 0x00000cf3u, 0x000500c4u, 0x00000008u, 0x00000cf5u, 0x00000d96u, 0x000000b2u, + 0x000500c3u, 0x00000008u, 0x00000cf7u, 0x000002b1u, 0x00000ce3u, 0x0007000cu, 0x00000008u, 0x00000cf8u, + 0x00000001u, 0x0000002au, 0x00000cf5u, 0x00000cf7u, 0x000200f9u, 0x00000cfau, 0x000200f8u, 0x00000cfau, + 0x000700f5u, 0x00000008u, 0x000012f0u, 0x00000cf8u, 0x00000cf3u, 0x000002b7u, 0x00000cf9u, 0x000600a9u, + 0x0000002cu, 0x00001815u, 0x00000cf2u, 0x0000029bu, 0x000002b6u, 0x000200f9u, 0x00000cfbu, 0x000200f8u, + 0x00000cfbu, 0x000700f5u, 0x0000002cu, 0x000012f3u, 0x0000029bu, 0x00000cdcu, 0x00001815u, 0x00000cfau, + 0x000700f5u, 0x00000008u, 0x000012efu, 0x00000d96u, 0x00000cdcu, 0x000012f0u, 0x00000cfau, 0x000500c5u, + 0x00000008u, 0x00000cfeu, 0x00000c79u, 0x000012efu, 0x000500abu, 0x0000002cu, 0x00000d9au, 0x00000cfeu, + 0x0000009fu, 0x000300f7u, 0x00000d9fu, 0x00000000u, 0x000400fau, 0x00000d9au, 0x00000d9bu, 0x00000d9fu, + 0x000200f8u, 0x00000d9bu, 0x0006000cu, 0x00000008u, 0x00000d9du, 0x00000001u, 0x0000004au, 0x00000cfeu, + 0x000500c4u, 0x00000008u, 0x00000d9eu, 0x000000b2u, 0x00000d9du, 0x000200f9u, 0x00000d9fu, 0x000200f8u, + 0x00000d9fu, 0x000700f5u, 0x00000008u, 0x000012f1u, 0x00000cfeu, 0x00000cfbu, 0x00000d9eu, 0x00000d9bu, + 0x000500c4u, 0x00000008u, 0x00000d02u, 0x000012f1u, 0x000000beu, 0x000400a8u, 0x0000002cu, 0x00000d04u, + 0x000012f3u, 0x000300f7u, 0x00000d0bu, 0x00000000u, 0x000400fau, 0x00000d04u, 0x00000d05u, 0x00000d0bu, + 0x000200f8u, 0x00000d05u, 0x00050080u, 0x00000008u, 0x00000d08u, 0x00000ba2u, 0x00000d02u, 0x000500afu, + 0x0000002cu, 0x00000d0au, 0x00000d08u, 0x00000d92u, 0x000200f9u, 0x00000d0bu, 0x000200f8u, 0x00000d0bu, + 0x000700f5u, 0x0000002cu, 0x00000d0cu, 0x000012f3u, 0x00000d9fu, 0x00000d0au, 0x00000d05u, 0x000400a8u, + 0x0000002cu, 0x00000d12u, 0x00000bb7u, 0x000300f7u, 0x00000d1au, 0x00000000u, 0x000400fau, 0x00000d12u, + 0x00000d13u, 0x00000d1au, 0x000200f8u, 0x00000d13u, 0x000400a8u, 0x0000002cu, 0x00000d15u, 0x00000d10u, + 0x000500a7u, 0x0000002cu, 0x00000d17u, 0x00000d15u, 0x00000bcfu, 0x000500a7u, 0x0000002cu, 0x00000d19u, + 0x00000d17u, 0x00000d0cu, 0x000200f9u, 0x00000d1au, 0x000200f8u, 0x00000d1au, 0x000700f5u, 0x0000002cu, + 0x00000d1bu, 0x00000bb7u, 0x00000d0bu, 0x00000d19u, 0x00000d13u, 0x000500aau, 0x0000002cu, 0x00000d1eu, + 0x00000d92u, 0x00000173u, 0x000500b1u, 0x0000002cu, 0x00000d21u, 0x00000ba2u, 0x00000d92u, 0x00050082u, + 0x00000008u, 0x00000d24u, 0x00000ba2u, 0x00000d02u, 0x000500b3u, 0x0000002cu, 0x00000d28u, 0x00000d24u, + 0x00000d92u, 0x000500a6u, 0x0000002cu, 0x00000d29u, 0x000012f3u, 0x00000d28u, 0x000300f7u, 0x00000d65u, + 0x00000000u, 0x000b00fbu, 0x00000ca1u, 0x00000d65u, 0x00000000u, 0x00000d2bu, 0x00000001u, 0x00000d35u, + 0x00000002u, 0x00000d5au, 0x00000003u, 0x00000d5eu, 0x000200f8u, 0x00000d5eu, 0x000500a7u, 0x0000002cu, + 0x00000d61u, 0x00000d0cu, 0x00000d29u, 0x000400a8u, 0x0000002cu, 0x00000d63u, 0x00000d1eu, 0x000500a7u, + 0x0000002cu, 0x00000d64u, 0x00000d61u, 0x00000d63u, 0x000200f9u, 0x00000d65u, 0x000200f8u, 0x00000d5au, + 0x000500a6u, 0x0000002cu, 0x00000d5du, 0x00000d21u, 0x00000d1eu, 0x000200f9u, 0x00000d65u, 0x000200f8u, + 0x00000d35u, 0x000400a8u, 0x0000002cu, 0x00000d37u, 0x00000d21u, 0x000400a8u, 0x0000002cu, 0x00000d39u, + 0x00000d0cu, 0x000500a6u, 0x0000002cu, 0x00000d3au, 0x00000d37u, 0x00000d39u, 0x000400a8u, 0x0000002cu, + 0x00000d3cu, 0x00000d10u, 0x000500a6u, 0x0000002cu, 0x00000d3du, 0x00000d3au, 0x00000d3cu, 0x000300f7u, + 0x00000d59u, 0x00000000u, 0x000400fau, 0x00000d3du, 0x00000d3eu, 0x00000d48u, 0x000200f8u, 0x00000d48u, + 0x000500c7u, 0x00000008u, 0x00000d4au, 0x000012f1u, 0x000002b7u, 0x0006000cu, 0x00000008u, 0x00000da4u, + 0x00000001u, 0x0000004au, 0x00000d4au, 0x0007000cu, 0x00000008u, 0x00000da5u, 0x00000001u, 0x0000002au, + 0x00000da4u, 0x0000009fu, 0x000500c3u, 0x00000008u, 0x00000d4eu, 0x00000d92u, 0x00000da5u, 0x000500c3u, + 0x00000008u, 0x00000d51u, 0x00000ba2u, 0x00000da5u, 0x00050082u, 0x00000008u, 0x00000d52u, 0x00000d4eu, + 0x00000d51u, 0x000500c7u, 0x00000008u, 0x00000d53u, 0x00000d52u, 0x00000298u, 0x00050084u, 0x00000008u, + 0x00000d56u, 0x00000d53u, 0x00000895u, 0x000500c3u, 0x00000008u, 0x00000d57u, 0x00000d56u, 0x000000beu, + 0x0007000cu, 0x00000008u, 0x00000d58u, 0x00000001u, 0x00000027u, 0x00000d57u, 0x000000dcu, 0x000200f9u, + 0x00000d59u, 0x000200f8u, 0x00000d3eu, 0x000400a8u, 0x0000002cu, 0x00000d40u, 0x00000d1eu, 0x000300f7u, + 0x00000d46u, 0x00000000u, 0x000400fau, 0x00000d40u, 0x00000d41u, 0x00000d46u, 0x000200f8u, 0x00000d41u, + 0x000600a9u, 0x0000002cu, 0x00000d45u, 0x00000d10u, 0x00000d21u, 0x00000d29u, 0x000200f9u, 0x00000d46u, + 0x000200f8u, 0x00000d46u, 0x000700f5u, 0x0000002cu, 0x00000d47u, 0x00000d1eu, 0x00000d3eu, 0x00000d45u, + 0x00000d41u, 0x000200f9u, 0x00000d59u, 0x000200f8u, 0x00000d59u, 0x000700f5u, 0x00000008u, 0x00001304u, + 0x00000895u, 0x00000d46u, 0x00000d58u, 0x00000d48u, 0x000700f5u, 0x0000002cu, 0x00001300u, 0x00000d47u, + 0x00000d46u, 0x000002b6u, 0x00000d48u, 0x000200f9u, 0x00000d65u, 0x000200f8u, 0x00000d2bu, 0x000400a8u, + 0x0000002cu, 0x00000d2du, 0x00000d1eu, 0x000300f7u, 0x00000d33u, 0x00000000u, 0x000400fau, 0x00000d2du, + 0x00000d2eu, 0x00000d33u, 0x000200f8u, 0x00000d2eu, 0x000600a9u, 0x0000002cu, 0x00000d32u, 0x00000d10u, + 0x00000d21u, 0x00000d29u, 0x000200f9u, 0x00000d33u, 0x000200f8u, 0x00000d33u, 0x000700f5u, 0x0000002cu, + 0x00000d34u, 0x00000d1eu, 0x00000d2bu, 0x00000d32u, 0x00000d2eu, 0x000200f9u, 0x00000d65u, 0x000200f8u, + 0x00000d65u, 0x000d00f5u, 0x00000008u, 0x00001302u, 0x00000895u, 0x00000d1au, 0x00000895u, 0x00000d33u, + 0x00001304u, 0x00000d59u, 0x00000895u, 0x00000d5au, 0x00000895u, 0x00000d5eu, 0x000d00f5u, 0x0000002cu, + 0x000012ffu, 0x0000029bu, 0x00000d1au, 0x00000d34u, 0x00000d33u, 0x00001300u, 0x00000d59u, 0x00000d5du, + 0x00000d5au, 0x00000d64u, 0x00000d5eu, 0x000200f9u, 0x00000d7au, 0x000200f8u, 0x00000d7au, 0x000700f5u, + 0x0000002eu, 0x00001311u, 0x00001812u, 0x00000d65u, 0x00001811u, 0x00000d77u, 0x000700f5u, 0x0000002cu, + 0x00001307u, 0x00000d1bu, 0x00000d65u, 0x00000d78u, 0x00000d77u, 0x000700f5u, 0x00000008u, 0x00001301u, + 0x00001302u, 0x00000d65u, 0x00000895u, 0x00000d77u, 0x000700f5u, 0x0000002cu, 0x000012feu, 0x000012ffu, + 0x00000d65u, 0x000002b6u, 0x00000d77u, 0x000300f7u, 0x00000bf3u, 0x00000000u, 0x000400fau, 0x000012feu, + 0x00000bedu, 0x00000bf3u, 0x000200f8u, 0x00000bedu, 0x000400a8u, 0x0000002cu, 0x00000befu, 0x00000bcfu, + 0x000500abu, 0x0000002cu, 0x00000bf1u, 0x00001301u, 0x0000009fu, 0x000500a6u, 0x0000002cu, 0x00000bf2u, + 0x00000befu, 0x00000bf1u, 0x000200f9u, 0x00000bf3u, 0x000200f8u, 0x00000bf3u, 0x000700f5u, 0x0000002cu, + 0x00000bf4u, 0x000012feu, 0x00000d7au, 0x00000bf2u, 0x00000bedu, 0x000300f7u, 0x00000c3du, 0x00000000u, + 0x000400fau, 0x00000bf4u, 0x00000bf5u, 0x00000c3du, 0x000200f8u, 0x00000bf5u, 0x000300f7u, 0x00000c12u, + 0x00000000u, 0x000400fau, 0x00000bcbu, 0x00000c01u, 0x00000c12u, 0x000200f8u, 0x00000c01u, 0x00050051u, + 0x00000008u, 0x00000db2u, 0x00000c8fu, 0x00000002u, 0x000300f7u, 0x00000dc3u, 0x00000000u, 0x000b00fbu, + 0x00000db2u, 0x00000dc3u, 0x00000000u, 0x00000db3u, 0x00000001u, 0x00000db7u, 0x00000002u, 0x00000dbbu, + 0x00000003u, 0x00000dbfu, 0x000200f8u, 0x00000dbfu, 0x0008004fu, 0x00000014u, 0x00000dc2u, 0x00000c6cu, + 0x00000c6cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000dc3u, 0x000200f8u, 0x00000dbbu, + 0x0008004fu, 0x00000014u, 0x00000dbeu, 0x00000c71u, 0x00000c71u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00000dc3u, 0x000200f8u, 0x00000db7u, 0x0008004fu, 0x00000014u, 0x00000dbau, 0x00000cc5u, + 0x00000cc5u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000dc3u, 0x000200f8u, 0x00000db3u, + 0x0008004fu, 0x00000014u, 0x00000db6u, 0x000008c2u, 0x000008c2u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00000dc3u, 0x000200f8u, 0x00000dc3u, 0x000d00f5u, 0x00000014u, 0x00001378u, 0x00001382u, + 0x00000c01u, 0x00000db6u, 0x00000db3u, 0x00000dbau, 0x00000db7u, 0x00000dbeu, 0x00000dbbu, 0x00000dc2u, + 0x00000dbfu, 0x00050051u, 0x00000008u, 0x00000dcfu, 0x00000c8fu, 0x00000000u, 0x000300f7u, 0x00000de0u, + 0x00000000u, 0x000b00fbu, 0x00000dcfu, 0x00000de0u, 0x00000000u, 0x00000dd0u, 0x00000001u, 0x00000dd4u, + 0x00000002u, 0x00000dd8u, 0x00000003u, 0x00000ddcu, 0x000200f8u, 0x00000ddcu, 0x0008004fu, 0x00000014u, + 0x00000ddfu, 0x00000c6cu, 0x00000c6cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000de0u, + 0x000200f8u, 0x00000dd8u, 0x0008004fu, 0x00000014u, 0x00000ddbu, 0x00000c71u, 0x00000c71u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000de0u, 0x000200f8u, 0x00000dd4u, 0x0008004fu, 0x00000014u, + 0x00000dd7u, 0x00000cc5u, 0x00000cc5u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000de0u, + 0x000200f8u, 0x00000dd0u, 0x0008004fu, 0x00000014u, 0x00000dd3u, 0x000008c2u, 0x000008c2u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000de0u, 0x000200f8u, 0x00000de0u, 0x000d00f5u, 0x00000014u, + 0x00001358u, 0x00001364u, 0x00000dc3u, 0x00000dd3u, 0x00000dd0u, 0x00000dd7u, 0x00000dd4u, 0x00000ddbu, + 0x00000dd8u, 0x00000ddfu, 0x00000ddcu, 0x00050051u, 0x00000008u, 0x00000dfdu, 0x00000c8fu, 0x00000001u, + 0x000300f7u, 0x00000e08u, 0x00000000u, 0x000b00fbu, 0x00000dfdu, 0x00000e08u, 0x00000000u, 0x00000dfeu, + 0x00000001u, 0x00000e01u, 0x00000002u, 0x00000e04u, 0x00000003u, 0x00000e07u, 0x000200f8u, 0x00000e07u, + 0x000200f9u, 0x00000e08u, 0x000200f8u, 0x00000e04u, 0x000200f9u, 0x00000e08u, 0x000200f8u, 0x00000e01u, + 0x00050051u, 0x00000008u, 0x00000e03u, 0x00000c6cu, 0x00000003u, 0x000200f9u, 0x00000e08u, 0x000200f8u, + 0x00000dfeu, 0x00050051u, 0x00000008u, 0x00000e00u, 0x000008c2u, 0x00000003u, 0x000200f9u, 0x00000e08u, + 0x000200f8u, 0x00000e08u, 0x000d00f5u, 0x00000008u, 0x0000131cu, 0x0000132au, 0x00000de0u, 0x00000e00u, + 0x00000dfeu, 0x00000e03u, 0x00000e01u, 0x000008d5u, 0x00000e04u, 0x0000009fu, 0x00000e07u, 0x00050051u, + 0x00000008u, 0x00000e0au, 0x00000c8fu, 0x00000003u, 0x000300f7u, 0x00000e14u, 0x00000000u, 0x000b00fbu, + 0x00000e0au, 0x00000e14u, 0x00000000u, 0x00000e0bu, 0x00000001u, 0x00000e0fu, 0x00000002u, 0x00000e12u, + 0x00000003u, 0x00000e13u, 0x000200f8u, 0x00000e13u, 0x000200f9u, 0x00000e14u, 0x000200f8u, 0x00000e12u, + 0x000200f9u, 0x00000e14u, 0x000200f8u, 0x00000e0fu, 0x000200f9u, 0x00000e14u, 0x000200f8u, 0x00000e0bu, + 0x000400c8u, 0x00000008u, 0x00000e0du, 0x0000131cu, 0x000500c7u, 0x00000008u, 0x00000e0eu, 0x00000e0du, + 0x00000136u, 0x000200f9u, 0x00000e14u, 0x000200f8u, 0x00000e14u, 0x000d00f5u, 0x00000008u, 0x00001338u, + 0x00001347u, 0x00000e08u, 0x00000e0eu, 0x00000e0bu, 0x000012deu, 0x00000e0fu, 0x00000136u, 0x00000e12u, + 0x0000009fu, 0x00000e13u, 0x000500c3u, 0x00000008u, 0x00000e16u, 0x0000131cu, 0x000000beu, 0x000500c3u, + 0x00000008u, 0x00000e18u, 0x00001338u, 0x000000beu, 0x000500aau, 0x0000002cu, 0x00000e1bu, 0x00000e0au, + 0x000000b2u, 0x000300f7u, 0x00000e27u, 0x00000000u, 0x000400fau, 0x00000e1bu, 0x00000e1cu, 0x00000e27u, + 0x000200f8u, 0x00000e1cu, 0x00050051u, 0x00000008u, 0x00000e1fu, 0x00001311u, 0x00000000u, 0x000500c3u, + 0x00000008u, 0x00000e20u, 0x00000e16u, 0x00000e1fu, 0x000500c7u, 0x00000008u, 0x00000e21u, 0x00000e20u, + 0x00000225u, 0x00050051u, 0x00000008u, 0x00000e24u, 0x00001311u, 0x00000001u, 0x000500c3u, 0x00000008u, + 0x00000e25u, 0x00000e18u, 0x00000e24u, 0x000500c5u, 0x00000008u, 0x00000e26u, 0x00000e25u, 0x000000beu, + 0x000200f9u, 0x00000e27u, 0x000200f8u, 0x00000e27u, 0x000700f5u, 0x00000008u, 0x0000138fu, 0x00000e18u, + 0x00000e14u, 0x00000e26u, 0x00000e1cu, 0x000700f5u, 0x00000008u, 0x00001371u, 0x00000e16u, 0x00000e14u, + 0x00000e21u, 0x00000e1cu, 0x00060050u, 0x00000014u, 0x00000e2eu, 0x00001371u, 0x00001371u, 0x00001371u, + 0x00050084u, 0x00000014u, 0x00000e2fu, 0x00001358u, 0x00000e2eu, 0x00050080u, 0x00000008u, 0x00000e36u, + 0x0000138fu, 0x000000b2u, 0x00060050u, 0x00000014u, 0x00000e37u, 0x00000e36u, 0x00000e36u, 0x00000e36u, + 0x00050084u, 0x00000014u, 0x00000e38u, 0x00001378u, 0x00000e37u, 0x00050080u, 0x00000014u, 0x00000e39u, + 0x00000e2fu, 0x00000e38u, 0x000500c3u, 0x00000014u, 0x00000e41u, 0x00000e39u, 0x0000180bu, 0x000500c7u, + 0x00000014u, 0x00000e74u, 0x00000e41u, 0x00000137u, 0x00050051u, 0x00000008u, 0x00000c0bu, 0x00000e74u, + 0x00000000u, 0x00060052u, 0x00000009u, 0x00001221u, 0x00000c0bu, 0x000008c2u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00000c0du, 0x00000e74u, 0x00000001u, 0x00060052u, 0x00000009u, 0x00001223u, 0x00000c0du, + 0x00001221u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00000c0fu, 0x00000e74u, 0x00000002u, 0x00060052u, + 0x00000009u, 0x00001225u, 0x00000c0fu, 0x00001223u, 0x00000002u, 0x000200f9u, 0x00000c12u, 0x000200f8u, + 0x00000c12u, 0x000700f5u, 0x00000014u, 0x00001749u, 0x00001382u, 0x00000bf5u, 0x00001378u, 0x00000e27u, + 0x000700f5u, 0x00000014u, 0x00001722u, 0x00001364u, 0x00000bf5u, 0x00000e41u, 0x00000e27u, 0x000700f5u, + 0x00000008u, 0x000016fau, 0x00001347u, 0x00000bf5u, 0x0000138fu, 0x00000e27u, 0x000700f5u, 0x00000008u, + 0x000016d2u, 0x0000132au, 0x00000bf5u, 0x00001371u, 0x00000e27u, 0x000700f5u, 0x00000009u, 0x0000139eu, + 0x000008c2u, 0x00000bf5u, 0x00001225u, 0x00000e27u, 0x00070050u, 0x00001816u, 0x00001817u, 0x00000bcbu, + 0x00000bcbu, 0x00000bcbu, 0x00000bcbu, 0x000600a9u, 0x00000009u, 0x00001818u, 0x00001817u, 0x00000c94u, + 0x00000c8fu, 0x000300f7u, 0x00000f46u, 0x00000000u, 0x000300fbu, 0x000001bbu, 0x00000e81u, 0x000200f8u, + 0x00000e81u, 0x00050051u, 0x00000008u, 0x00000e83u, 0x00001818u, 0x00000002u, 0x000300f7u, 0x00000e94u, + 0x00000000u, 0x000b00fbu, 0x00000e83u, 0x00000e94u, 0x00000000u, 0x00000e84u, 0x00000001u, 0x00000e88u, + 0x00000002u, 0x00000e8cu, 0x00000003u, 0x00000e90u, 0x000200f8u, 0x00000e90u, 0x0008004fu, 0x00000014u, + 0x00000e93u, 0x00000c6cu, 0x00000c6cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000e94u, + 0x000200f8u, 0x00000e8cu, 0x0008004fu, 0x00000014u, 0x00000e8fu, 0x00000c71u, 0x00000c71u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000e94u, 0x000200f8u, 0x00000e88u, 0x0008004fu, 0x00000014u, + 0x00000e8bu, 0x00000cc5u, 0x00000cc5u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000e94u, + 0x000200f8u, 0x00000e84u, 0x0008004fu, 0x00000014u, 0x00000e87u, 0x0000139eu, 0x0000139eu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000e94u, 0x000200f8u, 0x00000e94u, 0x000d00f5u, 0x00000014u, + 0x00001423u, 0x0000142eu, 0x00000e81u, 0x00000e87u, 0x00000e84u, 0x00000e8bu, 0x00000e88u, 0x00000e8fu, + 0x00000e8cu, 0x00000e93u, 0x00000e90u, 0x000400a8u, 0x0000002cu, 0x00000e99u, 0x00000d10u, 0x000500a7u, + 0x0000002cu, 0x00000e9au, 0x00000bc7u, 0x00000e99u, 0x000300f7u, 0x00000e9du, 0x00000000u, 0x000400fau, + 0x00000e9au, 0x00000e9bu, 0x00000e9du, 0x000200f8u, 0x00000e9bu, 0x000200f9u, 0x00000f46u, 0x000200f8u, + 0x00000e9du, 0x00050051u, 0x00000008u, 0x00000ea0u, 0x00001818u, 0x00000000u, 0x000300f7u, 0x00000eb1u, + 0x00000000u, 0x000b00fbu, 0x00000ea0u, 0x00000eb1u, 0x00000000u, 0x00000ea1u, 0x00000001u, 0x00000ea5u, + 0x00000002u, 0x00000ea9u, 0x00000003u, 0x00000eadu, 0x000200f8u, 0x00000eadu, 0x0008004fu, 0x00000014u, + 0x00000eb0u, 0x00000c6cu, 0x00000c6cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000eb1u, + 0x000200f8u, 0x00000ea9u, 0x0008004fu, 0x00000014u, 0x00000eacu, 0x00000c71u, 0x00000c71u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000eb1u, 0x000200f8u, 0x00000ea5u, 0x0008004fu, 0x00000014u, + 0x00000ea8u, 0x00000cc5u, 0x00000cc5u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000eb1u, + 0x000200f8u, 0x00000ea1u, 0x0008004fu, 0x00000014u, 0x00000ea4u, 0x0000139eu, 0x0000139eu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000eb1u, 0x000200f8u, 0x00000eb1u, 0x000d00f5u, 0x00000014u, + 0x000013f6u, 0x00001403u, 0x00000e9du, 0x00000ea4u, 0x00000ea1u, 0x00000ea8u, 0x00000ea5u, 0x00000eacu, + 0x00000ea9u, 0x00000eb0u, 0x00000eadu, 0x000400a8u, 0x0000002cu, 0x00000eb5u, 0x00001307u, 0x000400a8u, + 0x0000002cu, 0x00000eb6u, 0x00000eb5u, 0x000300f7u, 0x00000ec7u, 0x00000000u, 0x000400fau, 0x00000eb6u, + 0x00000eb7u, 0x00000ec7u, 0x000200f8u, 0x00000eb7u, 0x00050051u, 0x00000008u, 0x00000eb9u, 0x00001818u, + 0x00000001u, 0x000500aau, 0x0000002cu, 0x00000ebau, 0x00000eb9u, 0x0000009fu, 0x000300f7u, 0x00000ebfu, + 0x00000000u, 0x000400fau, 0x00000ebau, 0x00000ebbu, 0x00000ebfu, 0x000200f8u, 0x00000ebbu, 0x00050051u, + 0x00000008u, 0x00000ebdu, 0x00001818u, 0x00000003u, 0x000500aau, 0x0000002cu, 0x00000ebeu, 0x00000ebdu, + 0x0000009fu, 0x000200f9u, 0x00000ebfu, 0x000200f8u, 0x00000ebfu, 0x000700f5u, 0x0000002cu, 0x00000ec0u, + 0x00000ebau, 0x00000eb7u, 0x00000ebeu, 0x00000ebbu, 0x000300f7u, 0x00000ec5u, 0x00000000u, 0x000400fau, + 0x00000ec0u, 0x00000ec1u, 0x00000ec5u, 0x000200f8u, 0x00000ec1u, 0x00050051u, 0x00000008u, 0x00000ec3u, + 0x0000139eu, 0x00000003u, 0x000500aau, 0x0000002cu, 0x00000ec4u, 0x00000ec3u, 0x00000136u, 0x000200f9u, + 0x00000ec5u, 0x000200f8u, 0x00000ec5u, 0x000700f5u, 0x0000002cu, 0x00000ec6u, 0x00000ec0u, 0x00000ebfu, + 0x00000ec4u, 0x00000ec1u, 0x000200f9u, 0x00000ec7u, 0x000200f8u, 0x00000ec7u, 0x000700f5u, 0x0000002cu, + 0x00000ec8u, 0x00000eb5u, 0x00000eb1u, 0x00000ec6u, 0x00000ec5u, 0x000300f7u, 0x00000ecbu, 0x00000000u, + 0x000400fau, 0x00000ec8u, 0x00000ec9u, 0x00000ecbu, 0x000200f8u, 0x00000ec9u, 0x000200f9u, 0x00000f46u, + 0x000200f8u, 0x00000ecbu, 0x00050051u, 0x00000008u, 0x00000eceu, 0x00001818u, 0x00000001u, 0x000300f7u, + 0x00000ed9u, 0x00000000u, 0x000b00fbu, 0x00000eceu, 0x00000ed9u, 0x00000000u, 0x00000ecfu, 0x00000001u, + 0x00000ed2u, 0x00000002u, 0x00000ed5u, 0x00000003u, 0x00000ed8u, 0x000200f8u, 0x00000ed8u, 0x000200f9u, + 0x00000ed9u, 0x000200f8u, 0x00000ed5u, 0x000200f9u, 0x00000ed9u, 0x000200f8u, 0x00000ed2u, 0x00050051u, + 0x00000008u, 0x00000ed4u, 0x00000c6cu, 0x00000003u, 0x000200f9u, 0x00000ed9u, 0x000200f8u, 0x00000ecfu, + 0x00050051u, 0x00000008u, 0x00000ed1u, 0x0000139eu, 0x00000003u, 0x000200f9u, 0x00000ed9u, 0x000200f8u, + 0x00000ed9u, 0x000d00f5u, 0x00000008u, 0x000013a0u, 0x000013afu, 0x00000ecbu, 0x00000ed1u, 0x00000ecfu, + 0x00000ed4u, 0x00000ed2u, 0x000008d5u, 0x00000ed5u, 0x0000009fu, 0x00000ed8u, 0x00050051u, 0x00000008u, + 0x00000edbu, 0x00001818u, 0x00000003u, 0x000300f7u, 0x00000ee5u, 0x00000000u, 0x000b00fbu, 0x00000edbu, + 0x00000ee5u, 0x00000000u, 0x00000edcu, 0x00000001u, 0x00000ee0u, 0x00000002u, 0x00000ee3u, 0x00000003u, + 0x00000ee4u, 0x000200f8u, 0x00000ee4u, 0x000200f9u, 0x00000ee5u, 0x000200f8u, 0x00000ee3u, 0x000200f9u, + 0x00000ee5u, 0x000200f8u, 0x00000ee0u, 0x000200f9u, 0x00000ee5u, 0x000200f8u, 0x00000edcu, 0x000400c8u, + 0x00000008u, 0x00000edeu, 0x000013a0u, 0x000500c7u, 0x00000008u, 0x00000edfu, 0x00000edeu, 0x00000136u, + 0x000200f9u, 0x00000ee5u, 0x000200f8u, 0x00000ee5u, 0x000d00f5u, 0x00000008u, 0x000013c9u, 0x000013d9u, + 0x00000ed9u, 0x00000edfu, 0x00000edcu, 0x000012deu, 0x00000ee0u, 0x00000136u, 0x00000ee3u, 0x0000009fu, + 0x00000ee4u, 0x000500c3u, 0x00000008u, 0x00000ee7u, 0x000013a0u, 0x000000beu, 0x000500c3u, 0x00000008u, + 0x00000ee9u, 0x000013c9u, 0x000000beu, 0x000500aau, 0x0000002cu, 0x00000eecu, 0x00000edbu, 0x000000b2u, + 0x000300f7u, 0x00000ef8u, 0x00000000u, 0x000400fau, 0x00000eecu, 0x00000eedu, 0x00000ef8u, 0x000200f8u, + 0x00000eedu, 0x00050051u, 0x00000008u, 0x00000ef0u, 0x00001311u, 0x00000000u, 0x000500c3u, 0x00000008u, + 0x00000ef1u, 0x00000ee7u, 0x00000ef0u, 0x000500c7u, 0x00000008u, 0x00000ef2u, 0x00000ef1u, 0x00000225u, + 0x00050051u, 0x00000008u, 0x00000ef5u, 0x00001311u, 0x00000001u, 0x000500c3u, 0x00000008u, 0x00000ef6u, + 0x00000ee9u, 0x00000ef5u, 0x000500c5u, 0x00000008u, 0x00000ef7u, 0x00000ef6u, 0x000000beu, 0x000200f9u, + 0x00000ef8u, 0x000200f8u, 0x00000ef8u, 0x000700f5u, 0x00000008u, 0x00001447u, 0x00000ee9u, 0x00000ee5u, + 0x00000ef7u, 0x00000eedu, 0x000700f5u, 0x00000008u, 0x0000141cu, 0x00000ee7u, 0x00000ee5u, 0x00000ef2u, + 0x00000eedu, 0x00060050u, 0x00000014u, 0x00000effu, 0x0000141cu, 0x0000141cu, 0x0000141cu, 0x00050084u, + 0x00000014u, 0x00000f00u, 0x000013f6u, 0x00000effu, 0x00050080u, 0x00000008u, 0x00000f07u, 0x00001447u, + 0x000000b2u, 0x00060050u, 0x00000014u, 0x00000f08u, 0x00000f07u, 0x00000f07u, 0x00000f07u, 0x00050084u, + 0x00000014u, 0x00000f09u, 0x00001423u, 0x00000f08u, 0x00050080u, 0x00000014u, 0x00000f0au, 0x00000f00u, + 0x00000f09u, 0x000500a6u, 0x0000002cu, 0x00000f0eu, 0x0000029bu, 0x00000bb7u, 0x000300f7u, 0x00000f42u, + 0x00000000u, 0x000400fau, 0x00000f0eu, 0x00000f0fu, 0x00000f17u, 0x000200f8u, 0x00000f17u, 0x000500c3u, + 0x00000008u, 0x00000f19u, 0x0000141cu, 0x000000b8u, 0x000500c3u, 0x00000008u, 0x00000f1bu, 0x00001447u, + 0x000000b8u, 0x00050080u, 0x00000008u, 0x00000f1cu, 0x00000f19u, 0x00000f1bu, 0x00050080u, 0x00000008u, + 0x00000f1du, 0x00000f1cu, 0x000000b2u, 0x000500c3u, 0x00000014u, 0x00000f20u, 0x00000f0au, 0x0000180cu, + 0x000500c7u, 0x00000014u, 0x00000f23u, 0x00000f20u, 0x0000180du, 0x0004003du, 0x0000025au, 0x00000f24u, + 0x0000025cu, 0x000500c4u, 0x00000008u, 0x00000f26u, 0x00000f1du, 0x000000edu, 0x00050051u, 0x00000008u, + 0x00000f28u, 0x00000f23u, 0x00000000u, 0x000500c5u, 0x00000008u, 0x00000f29u, 0x00000f26u, 0x00000f28u, + 0x0005005fu, 0x000000aeu, 0x00000f2au, 0x00000f24u, 0x00000f29u, 0x00050051u, 0x00000006u, 0x00000f2bu, + 0x00000f2au, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00000f2cu, 0x00000f2bu, 0x00050051u, 0x00000008u, + 0x00000f32u, 0x00000f23u, 0x00000001u, 0x000500c5u, 0x00000008u, 0x00000f33u, 0x00000f26u, 0x00000f32u, + 0x0005005fu, 0x000000aeu, 0x00000f34u, 0x00000f24u, 0x00000f33u, 0x00050051u, 0x00000006u, 0x00000f35u, + 0x00000f34u, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00000f36u, 0x00000f35u, 0x00050051u, 0x00000008u, + 0x00000f3cu, 0x00000f23u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x00000f3du, 0x00000f26u, 0x00000f3cu, + 0x0005005fu, 0x000000aeu, 0x00000f3eu, 0x00000f24u, 0x00000f3du, 0x00050051u, 0x00000006u, 0x00000f3fu, + 0x00000f3eu, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00000f40u, 0x00000f3fu, 0x00060050u, 0x00000014u, + 0x00001813u, 0x00000f2cu, 0x00000f36u, 0x00000f40u, 0x000200f9u, 0x00000f42u, 0x000200f8u, 0x00000f0fu, + 0x000500c3u, 0x00000014u, 0x00000f12u, 0x00000f0au, 0x0000180bu, 0x000200f9u, 0x00000f42u, 0x000200f8u, + 0x00000f42u, 0x000700f5u, 0x00000014u, 0x00001448u, 0x00000f12u, 0x00000f0fu, 0x00001813u, 0x00000f17u, + 0x000500c7u, 0x00000014u, 0x00000f45u, 0x00001448u, 0x00000137u, 0x000200f9u, 0x00000f46u, 0x000200f8u, + 0x00000f46u, 0x000900f5u, 0x00000014u, 0x000017a5u, 0x00001403u, 0x00000e9bu, 0x000013f6u, 0x00000ec9u, + 0x00001448u, 0x00000f42u, 0x000900f5u, 0x00000008u, 0x0000178au, 0x000013d9u, 0x00000e9bu, 0x000013d9u, + 0x00000ec9u, 0x00001447u, 0x00000f42u, 0x000900f5u, 0x00000008u, 0x0000176fu, 0x000013afu, 0x00000e9bu, + 0x000013afu, 0x00000ec9u, 0x0000141cu, 0x00000f42u, 0x000900f5u, 0x00000014u, 0x00001449u, 0x00001423u, + 0x00000e9bu, 0x000013f6u, 0x00000ec9u, 0x00000f45u, 0x00000f42u, 0x000300f7u, 0x00000c20u, 0x00000000u, + 0x000400fau, 0x00000bd3u, 0x00000c1cu, 0x00000c20u, 0x000200f8u, 0x00000c1cu, 0x00060050u, 0x00000014u, + 0x00000f4fu, 0x00000ba5u, 0x00000ba5u, 0x00000ba5u, 0x000500c3u, 0x00000014u, 0x00000f50u, 0x00000f4fu, + 0x0000012bu, 0x000500c7u, 0x00000014u, 0x00000f52u, 0x00000f50u, 0x00001808u, 0x000500c7u, 0x00000014u, + 0x00000f55u, 0x00001449u, 0x00001807u, 0x00050080u, 0x00000014u, 0x00000f57u, 0x00000f55u, 0x00001809u, + 0x000500adu, 0x0000013bu, 0x00000f59u, 0x00001449u, 0x0000013au, 0x000600a9u, 0x00000014u, 0x00000f5au, + 0x00000f59u, 0x00000137u, 0x00000f57u, 0x000500c7u, 0x00000014u, 0x00000f5eu, 0x00001449u, 0x00001808u, + 0x00050082u, 0x00000014u, 0x00000f5fu, 0x00000f52u, 0x00000f5eu, 0x000500c3u, 0x00000014u, 0x00000f61u, + 0x00000f5fu, 0x0000180au, 0x00050082u, 0x00000014u, 0x00000f64u, 0x00000f5au, 0x00001449u, 0x000500c7u, + 0x00000014u, 0x00000f68u, 0x00000f64u, 0x00000f61u, 0x00050080u, 0x00000014u, 0x00000f69u, 0x00001449u, + 0x00000f68u, 0x000500c7u, 0x00000014u, 0x00000f6cu, 0x00000f69u, 0x00000137u, 0x000200f9u, 0x00000c20u, + 0x000200f8u, 0x00000c20u, 0x000700f5u, 0x00000014u, 0x00001468u, 0x00001449u, 0x00000f46u, 0x00000f6cu, + 0x00000c1cu, 0x000300f7u, 0x00000f89u, 0x00000000u, 0x000b00fbu, 0x00000c9cu, 0x00000f89u, 0x00000000u, + 0x00000f75u, 0x00000001u, 0x00000f81u, 0x00000002u, 0x00000f86u, 0x00000003u, 0x00000f87u, 0x000200f8u, + 0x00000f87u, 0x000200f9u, 0x00000f89u, 0x000200f8u, 0x00000f86u, 0x000200f9u, 0x00000f89u, 0x000200f8u, + 0x00000f81u, 0x00050080u, 0x00000008u, 0x00000f84u, 0x00001301u, 0x00000bd8u, 0x000500c7u, 0x00000008u, + 0x00000f85u, 0x00000f84u, 0x000000d6u, 0x000200f9u, 0x00000f89u, 0x000200f8u, 0x00000f75u, 0x000300f7u, + 0x00000f80u, 0x00000000u, 0x000400fau, 0x00001307u, 0x00000f77u, 0x00000f7cu, 0x000200f8u, 0x00000f7cu, + 0x00050082u, 0x00000008u, 0x00000f7eu, 0x00001301u, 0x000000b2u, 0x000500c7u, 0x00000008u, 0x00000f7fu, + 0x00000f7eu, 0x000000d6u, 0x000200f9u, 0x00000f80u, 0x000200f8u, 0x00000f77u, 0x00050080u, 0x00000008u, + 0x00000f7au, 0x00000bd8u, 0x00001301u, 0x0007000cu, 0x00000008u, 0x00000f7bu, 0x00000001u, 0x00000027u, + 0x000000d6u, 0x00000f7au, 0x000200f9u, 0x00000f80u, 0x000200f8u, 0x00000f80u, 0x000700f5u, 0x00000008u, + 0x00001466u, 0x00000f7bu, 0x00000f77u, 0x00000f7fu, 0x00000f7cu, 0x000200f9u, 0x00000f89u, 0x000200f8u, + 0x00000f89u, 0x000d00f5u, 0x00000008u, 0x00001465u, 0x0000009fu, 0x00000c20u, 0x00001466u, 0x00000f80u, + 0x00000f85u, 0x00000f81u, 0x000000d6u, 0x00000f86u, 0x00000bd8u, 0x00000f87u, 0x000500c4u, 0x00000008u, + 0x00000c29u, 0x00001465u, 0x000000cau, 0x00050051u, 0x00000008u, 0x00000c2au, 0x00001468u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00000c2bu, 0x00001468u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00000c2cu, + 0x00001468u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00000c2du, 0x00000c2au, 0x00000c2bu, 0x00000c2cu, + 0x00000c29u, 0x000300f7u, 0x00000f97u, 0x00000000u, 0x000400fau, 0x00000665u, 0x00000f8cu, 0x00000f95u, + 0x000200f8u, 0x00000f95u, 0x000200f9u, 0x00000f97u, 0x000200f8u, 0x00000f8cu, 0x00060052u, 0x00000009u, + 0x0000123du, 0x00000c2au, 0x000012d3u, 0x00000000u, 0x00060052u, 0x00000009u, 0x0000123fu, 0x00000c2bu, + 0x0000123du, 0x00000001u, 0x00060052u, 0x00000009u, 0x00001241u, 0x00000c2cu, 0x0000123fu, 0x00000002u, + 0x000200f9u, 0x00000f97u, 0x000200f8u, 0x00000f97u, 0x000700f5u, 0x00000009u, 0x00001493u, 0x00001241u, + 0x00000f8cu, 0x00000c2du, 0x00000f95u, 0x000300f7u, 0x00000c3cu, 0x00000000u, 0x000400fau, 0x00000bbfu, + 0x00000c30u, 0x00000c38u, 0x000200f8u, 0x00000c38u, 0x000300f7u, 0x00000c3bu, 0x00000000u, 0x000400fau, + 0x00000566u, 0x00000c39u, 0x00000c3bu, 0x000200f8u, 0x00000c39u, 0x000300f7u, 0x00001012u, 0x00000000u, + 0x000700fbu, 0x0000036au, 0x00001012u, 0x00000002u, 0x00000fdfu, 0x00000003u, 0x00000ffcu, 0x000200f8u, + 0x00000ffcu, 0x0007004fu, 0x0000002eu, 0x00000ffeu, 0x00001493u, 0x00001493u, 0x00000000u, 0x00000003u, + 0x0004007cu, 0x0000006fu, 0x00000fffu, 0x00000ffeu, 0x00050051u, 0x00000006u, 0x00001001u, 0x00000fffu, + 0x00000000u, 0x000500c4u, 0x00000006u, 0x00001002u, 0x00001001u, 0x000003aau, 0x00050051u, 0x00000006u, + 0x00001004u, 0x00000fffu, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00001005u, 0x00001002u, 0x00001004u, + 0x000500c7u, 0x00000006u, 0x00001007u, 0x00001005u, 0x000001ddu, 0x00050084u, 0x00000006u, 0x00001008u, + 0x00001007u, 0x000001e3u, 0x000500c2u, 0x00000006u, 0x0000100au, 0x00001005u, 0x00000196u, 0x0004007cu, + 0x00000008u, 0x0000100bu, 0x0000100au, 0x000500c7u, 0x00000006u, 0x0000100du, 0x00001005u, 0x000001e3u, + 0x000500c4u, 0x00000006u, 0x0000100eu, 0x0000100du, 0x00000196u, 0x000500c5u, 0x00000006u, 0x00001010u, + 0x0000100eu, 0x00001008u, 0x0004007cu, 0x00000008u, 0x00001011u, 0x00001010u, 0x000200f9u, 0x00001012u, + 0x000200f8u, 0x00000fdfu, 0x00050051u, 0x00000008u, 0x00000fe1u, 0x00001493u, 0x00000003u, 0x000500c3u, + 0x00000008u, 0x00000fe2u, 0x00000fe1u, 0x000000beu, 0x00050051u, 0x00000008u, 0x00000fe4u, 0x00001493u, + 0x00000002u, 0x000500c7u, 0x00000008u, 0x00000fe5u, 0x00000fe4u, 0x000000dcu, 0x000500c5u, 0x00000008u, + 0x00000fe6u, 0x00000fe2u, 0x00000fe5u, 0x00050051u, 0x00000008u, 0x00000fe8u, 0x00001493u, 0x00000000u, + 0x0004007cu, 0x00000006u, 0x00000fe9u, 0x00000fe8u, 0x000500c7u, 0x00000006u, 0x00000feau, 0x00000fe9u, + 0x000003b1u, 0x000500c4u, 0x00000006u, 0x00000febu, 0x00000feau, 0x0000040bu, 0x00050051u, 0x00000008u, + 0x00000fedu, 0x00001493u, 0x00000001u, 0x0004007cu, 0x00000006u, 0x00000feeu, 0x00000fedu, 0x000500c7u, + 0x00000006u, 0x00000fefu, 0x00000feeu, 0x000003b1u, 0x000500c4u, 0x00000006u, 0x00000ff0u, 0x00000fefu, + 0x000001ddu, 0x000500c5u, 0x00000006u, 0x00000ff2u, 0x00000febu, 0x00000ff0u, 0x0004007cu, 0x00000006u, + 0x00000ff5u, 0x00000fe4u, 0x000500c7u, 0x00000006u, 0x00000ff6u, 0x00000ff5u, 0x000003b1u, 0x000500c2u, + 0x00000006u, 0x00000ff7u, 0x00000ff6u, 0x00000418u, 0x000500c5u, 0x00000006u, 0x00000ff9u, 0x00000ff2u, + 0x00000ff7u, 0x0004007cu, 0x00000008u, 0x00000ffbu, 0x00000ff9u, 0x000200f9u, 0x00001012u, 0x000200f8u, + 0x00001012u, 0x000900f5u, 0x00000008u, 0x00001687u, 0x000012e4u, 0x00000c39u, 0x00000fe6u, 0x00000fdfu, + 0x00001011u, 0x00000ffcu, 0x000900f5u, 0x00000008u, 0x00001649u, 0x000012e1u, 0x00000c39u, 0x00000ffbu, + 0x00000fdfu, 0x0000100bu, 0x00000ffcu, 0x000200f9u, 0x00000c3bu, 0x000200f8u, 0x00000c3bu, 0x000700f5u, + 0x00000008u, 0x00001669u, 0x000012e4u, 0x00000c38u, 0x00001687u, 0x00001012u, 0x000700f5u, 0x00000008u, + 0x0000162bu, 0x000012e1u, 0x00000c38u, 0x00001649u, 0x00001012u, 0x000200f9u, 0x00000c3cu, 0x000200f8u, + 0x00000c30u, 0x00050082u, 0x00000008u, 0x00000f9fu, 0x00000173u, 0x00000ba2u, 0x0007000cu, 0x00000008u, + 0x00000fa0u, 0x00000001u, 0x0000002au, 0x00000f9fu, 0x000000b2u, 0x0006000cu, 0x00000008u, 0x00000fa2u, + 0x00000001u, 0x0000004au, 0x00000fa0u, 0x00050082u, 0x00000008u, 0x00000fa3u, 0x00000178u, 0x00000fa2u, + 0x0008000cu, 0x00000008u, 0x00000fa5u, 0x00000001u, 0x0000002du, 0x00000fa3u, 0x0000009fu, 0x000000d6u, + 0x00050082u, 0x00000008u, 0x00000fa7u, 0x000000d0u, 0x00000fa5u, 0x0007000cu, 0x00000008u, 0x00000fa8u, + 0x00000001u, 0x0000002au, 0x00000fa7u, 0x0000009fu, 0x000500c3u, 0x00000008u, 0x00000fabu, 0x00000ba2u, + 0x00000fa8u, 0x000500c7u, 0x00000008u, 0x00000facu, 0x00000fabu, 0x00000160u, 0x000500c4u, 0x00000008u, + 0x00000faeu, 0x00000fa5u, 0x000000edu, 0x00050080u, 0x00000008u, 0x00000fb0u, 0x00000faeu, 0x00000facu, + 0x000300f7u, 0x00000c37u, 0x00000000u, 0x000400fau, 0x00000566u, 0x00000c35u, 0x00000c37u, 0x000200f8u, + 0x00000c35u, 0x0004007cu, 0x00000006u, 0x00000fb4u, 0x00000fb0u, 0x000500c4u, 0x00000006u, 0x00000fb5u, + 0x00000fb4u, 0x00000418u, 0x0004007cu, 0x00000006u, 0x00000fb7u, 0x00000c7eu, 0x000500c5u, 0x00000006u, + 0x00000fb8u, 0x00000fb5u, 0x00000fb7u, 0x000300f7u, 0x00000fd9u, 0x00000000u, 0x000700fbu, 0x0000036au, + 0x00000fd9u, 0x00000002u, 0x00000fb9u, 0x00000003u, 0x00000fceu, 0x000200f8u, 0x00000fceu, 0x000500c2u, + 0x00000006u, 0x00000fd0u, 0x00000fb8u, 0x00000445u, 0x000500c7u, 0x00000006u, 0x00000fd1u, 0x00000fd0u, + 0x000003d8u, 0x0004007cu, 0x00000008u, 0x00000fd2u, 0x00000fd1u, 0x00060052u, 0x00000009u, 0x0000124bu, + 0x00000fd2u, 0x00001493u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00000fd5u, 0x00000fb8u, 0x00000196u, + 0x000500c7u, 0x00000006u, 0x00000fd6u, 0x00000fd5u, 0x000003d8u, 0x0004007cu, 0x00000008u, 0x00000fd7u, + 0x00000fd6u, 0x00060052u, 0x00000009u, 0x0000124du, 0x00000fd7u, 0x0000124bu, 0x00000003u, 0x000200f9u, + 0x00000fd9u, 0x000200f8u, 0x00000fb9u, 0x000500c2u, 0x00000006u, 0x00000fbbu, 0x00000fb8u, 0x00000445u, + 0x000500c7u, 0x00000006u, 0x00000fbcu, 0x00000fbbu, 0x000003b1u, 0x0004007cu, 0x00000008u, 0x00000fbdu, + 0x00000fbcu, 0x000500c2u, 0x00000006u, 0x00000fc0u, 0x00000fb8u, 0x0000044bu, 0x000500c7u, 0x00000006u, + 0x00000fc1u, 0x00000fc0u, 0x000003b1u, 0x0004007cu, 0x00000008u, 0x00000fc2u, 0x00000fc1u, 0x000500c2u, + 0x00000006u, 0x00000fc5u, 0x00000fb8u, 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000fc6u, 0x00000fc5u, + 0x000003b1u, 0x0004007cu, 0x00000008u, 0x00000fc7u, 0x00000fc6u, 0x000500c7u, 0x00000006u, 0x00000fcau, + 0x00000fb8u, 0x00000456u, 0x000500c4u, 0x00000006u, 0x00000fcbu, 0x00000fcau, 0x0000044bu, 0x0004007cu, + 0x00000008u, 0x00000fccu, 0x00000fcbu, 0x00070050u, 0x00000009u, 0x00001814u, 0x00000fbdu, 0x00000fc2u, + 0x00000fc7u, 0x00000fccu, 0x000200f9u, 0x00000fd9u, 0x000200f8u, 0x00000fd9u, 0x000900f5u, 0x00000009u, + 0x000015cbu, 0x00001493u, 0x00000c35u, 0x00001814u, 0x00000fb9u, 0x0000124du, 0x00000fceu, 0x000200f9u, + 0x00000c37u, 0x000200f8u, 0x00000c37u, 0x000700f5u, 0x00000009u, 0x000015cau, 0x00001493u, 0x00000c30u, + 0x000015cbu, 0x00000fd9u, 0x000200f9u, 0x00000c3cu, 0x000200f8u, 0x00000c3cu, 0x000700f5u, 0x00000008u, + 0x00001666u, 0x00000c7eu, 0x00000c37u, 0x00001669u, 0x00000c3bu, 0x000700f5u, 0x00000008u, 0x00001628u, + 0x00000fb0u, 0x00000c37u, 0x0000162bu, 0x00000c3bu, 0x000700f5u, 0x00000009u, 0x000015c9u, 0x000015cau, + 0x00000c37u, 0x00001493u, 0x00000c3bu, 0x000600a9u, 0x0000002cu, 0x00001819u, 0x00000bbfu, 0x000002b6u, + 0x00001540u, 0x000200f9u, 0x00000c3du, 0x000200f8u, 0x00000c3du, 0x000700f5u, 0x00000014u, 0x000017b9u, + 0x0000142eu, 0x00000bf3u, 0x00001423u, 0x00000c3cu, 0x000700f5u, 0x00000014u, 0x0000179fu, 0x00001403u, + 0x00000bf3u, 0x000017a5u, 0x00000c3cu, 0x000700f5u, 0x00000008u, 0x00001784u, 0x000013d9u, 0x00000bf3u, + 0x0000178au, 0x00000c3cu, 0x000700f5u, 0x00000008u, 0x00001769u, 0x000013afu, 0x00000bf3u, 0x0000176fu, + 0x00000c3cu, 0x000700f5u, 0x00000014u, 0x00001741u, 0x00001382u, 0x00000bf3u, 0x00001749u, 0x00000c3cu, + 0x000700f5u, 0x00000014u, 0x0000171au, 0x00001364u, 0x00000bf3u, 0x00001722u, 0x00000c3cu, 0x000700f5u, + 0x00000008u, 0x000016f2u, 0x00001347u, 0x00000bf3u, 0x000016fau, 0x00000c3cu, 0x000700f5u, 0x00000008u, + 0x000016cau, 0x0000132au, 0x00000bf3u, 0x000016d2u, 0x00000c3cu, 0x000700f5u, 0x00000008u, 0x00001659u, + 0x000012e4u, 0x00000bf3u, 0x00001666u, 0x00000c3cu, 0x000700f5u, 0x00000008u, 0x0000161bu, 0x000012e1u, + 0x00000bf3u, 0x00001628u, 0x00000c3cu, 0x000700f5u, 0x00000009u, 0x000015c8u, 0x000012d3u, 0x00000bf3u, + 0x000015c9u, 0x00000c3cu, 0x000700f5u, 0x0000002cu, 0x00001550u, 0x00001540u, 0x00000bf3u, 0x00001819u, + 0x00000c3cu, 0x000600a9u, 0x0000002cu, 0x0000181au, 0x00000bf4u, 0x000002b6u, 0x00001523u, 0x000200f9u, + 0x000008aau, 0x000200f8u, 0x000008a9u, 0x00060041u, 0x000000e9u, 0x000008b1u, 0x000008afu, 0x0000009fu, + 0x0000088au, 0x0004003du, 0x00000006u, 0x000008b2u, 0x000008b1u, 0x000300f7u, 0x00000b05u, 0x00000000u, + 0x000900fbu, 0x0000036au, 0x00000b05u, 0x00000000u, 0x00000ae6u, 0x00000001u, 0x00000ae7u, 0x00000002u, + 0x00000aeeu, 0x000200f8u, 0x00000aeeu, 0x000500c2u, 0x00000006u, 0x00000af0u, 0x000008b2u, 0x000000dcu, + 0x000500c7u, 0x00000006u, 0x00000af1u, 0x00000af0u, 0x000003b1u, 0x000500c2u, 0x00000006u, 0x00000af3u, + 0x000008b2u, 0x000000beu, 0x000500c7u, 0x00000006u, 0x00000af4u, 0x00000af3u, 0x000003b1u, 0x000500c4u, + 0x00000006u, 0x00000af6u, 0x000008b2u, 0x000000b8u, 0x000500c7u, 0x00000006u, 0x00000af7u, 0x00000af6u, + 0x000003b1u, 0x000500c7u, 0x00000006u, 0x00000af9u, 0x000008b2u, 0x000001ddu, 0x00050084u, 0x00000006u, + 0x00000afau, 0x00000af9u, 0x0000068fu, 0x0004007cu, 0x00000008u, 0x00000afcu, 0x00000af1u, 0x0004007cu, + 0x00000008u, 0x00000afeu, 0x00000af4u, 0x0004007cu, 0x00000008u, 0x00000b00u, 0x00000af7u, 0x0004007cu, + 0x00000008u, 0x00000b02u, 0x00000afau, 0x00070050u, 0x00000009u, 0x00000b03u, 0x00000afcu, 0x00000afeu, + 0x00000b00u, 0x00000b02u, 0x000300f7u, 0x00000b22u, 0x00000000u, 0x000400fau, 0x00000665u, 0x00000b17u, + 0x00000b20u, 0x000200f8u, 0x00000b20u, 0x000200f9u, 0x00000b22u, 0x000200f8u, 0x00000b17u, 0x00060052u, + 0x00000009u, 0x000011f4u, 0x00000afcu, 0x000012d3u, 0x00000000u, 0x00060052u, 0x00000009u, 0x000011f6u, + 0x00000afeu, 0x000011f4u, 0x00000001u, 0x00060052u, 0x00000009u, 0x000011f8u, 0x00000b00u, 0x000011f6u, + 0x00000002u, 0x000200f9u, 0x00000b22u, 0x000200f8u, 0x00000b22u, 0x000700f5u, 0x00000009u, 0x00001496u, + 0x000011f8u, 0x00000b17u, 0x00000b03u, 0x00000b20u, 0x000200f9u, 0x00000b05u, 0x000200f8u, 0x00000ae7u, + 0x000500c7u, 0x00000006u, 0x00000ae9u, 0x000008b2u, 0x000003d8u, 0x0004007cu, 0x00000008u, 0x00000aebu, + 0x00000ae9u, 0x00070050u, 0x00000009u, 0x00000aecu, 0x00000aebu, 0x00000aebu, 0x00000aebu, 0x00000aebu, + 0x000300f7u, 0x00000b15u, 0x00000000u, 0x000400fau, 0x00000665u, 0x00000b0au, 0x00000b13u, 0x000200f8u, + 0x00000b13u, 0x000200f9u, 0x00000b15u, 0x000200f8u, 0x00000b0au, 0x00060052u, 0x00000009u, 0x000011eeu, + 0x00000aebu, 0x000012d3u, 0x00000000u, 0x00060052u, 0x00000009u, 0x000011f0u, 0x00000aebu, 0x000011eeu, + 0x00000001u, 0x00060052u, 0x00000009u, 0x000011f2u, 0x00000aebu, 0x000011f0u, 0x00000002u, 0x000200f9u, + 0x00000b15u, 0x000200f8u, 0x00000b15u, 0x000700f5u, 0x00000009u, 0x00001495u, 0x000011f2u, 0x00000b0au, + 0x00000aecu, 0x00000b13u, 0x000200f9u, 0x00000b05u, 0x000200f8u, 0x00000ae6u, 0x000200f9u, 0x00000b05u, + 0x000200f8u, 0x00000b05u, 0x000b00f5u, 0x0000002cu, 0x0000152bu, 0x00001523u, 0x000008a9u, 0x000002b6u, + 0x00000ae6u, 0x000002b6u, 0x00000b15u, 0x000002b6u, 0x00000b22u, 0x000b00f5u, 0x00000009u, 0x00001494u, + 0x000012d3u, 0x000008a9u, 0x00000676u, 0x00000ae6u, 0x00001495u, 0x00000b15u, 0x00001496u, 0x00000b22u, + 0x000300f7u, 0x00000b08u, 0x00000000u, 0x000400fau, 0x00000566u, 0x00000b06u, 0x00000b08u, 0x000200f8u, + 0x00000b06u, 0x000300f7u, 0x00000b5bu, 0x00000000u, 0x000700fbu, 0x0000036au, 0x00000b5bu, 0x00000002u, + 0x00000b28u, 0x00000003u, 0x00000b45u, 0x000200f8u, 0x00000b45u, 0x0007004fu, 0x0000002eu, 0x00000b47u, + 0x00001494u, 0x00001494u, 0x00000000u, 0x00000003u, 0x0004007cu, 0x0000006fu, 0x00000b48u, 0x00000b47u, + 0x00050051u, 0x00000006u, 0x00000b4au, 0x00000b48u, 0x00000000u, 0x000500c4u, 0x00000006u, 0x00000b4bu, + 0x00000b4au, 0x000003aau, 0x00050051u, 0x00000006u, 0x00000b4du, 0x00000b48u, 0x00000001u, 0x000500c5u, + 0x00000006u, 0x00000b4eu, 0x00000b4bu, 0x00000b4du, 0x000500c7u, 0x00000006u, 0x00000b50u, 0x00000b4eu, + 0x000001ddu, 0x00050084u, 0x00000006u, 0x00000b51u, 0x00000b50u, 0x000001e3u, 0x000500c2u, 0x00000006u, + 0x00000b53u, 0x00000b4eu, 0x00000196u, 0x0004007cu, 0x00000008u, 0x00000b54u, 0x00000b53u, 0x000500c7u, + 0x00000006u, 0x00000b56u, 0x00000b4eu, 0x000001e3u, 0x000500c4u, 0x00000006u, 0x00000b57u, 0x00000b56u, + 0x00000196u, 0x000500c5u, 0x00000006u, 0x00000b59u, 0x00000b57u, 0x00000b51u, 0x0004007cu, 0x00000008u, + 0x00000b5au, 0x00000b59u, 0x000200f9u, 0x00000b5bu, 0x000200f8u, 0x00000b28u, 0x00050051u, 0x00000008u, + 0x00000b2au, 0x00001494u, 0x00000003u, 0x000500c3u, 0x00000008u, 0x00000b2bu, 0x00000b2au, 0x000000beu, + 0x00050051u, 0x00000008u, 0x00000b2du, 0x00001494u, 0x00000002u, 0x000500c7u, 0x00000008u, 0x00000b2eu, + 0x00000b2du, 0x000000dcu, 0x000500c5u, 0x00000008u, 0x00000b2fu, 0x00000b2bu, 0x00000b2eu, 0x00050051u, + 0x00000008u, 0x00000b31u, 0x00001494u, 0x00000000u, 0x0004007cu, 0x00000006u, 0x00000b32u, 0x00000b31u, + 0x000500c7u, 0x00000006u, 0x00000b33u, 0x00000b32u, 0x000003b1u, 0x000500c4u, 0x00000006u, 0x00000b34u, + 0x00000b33u, 0x0000040bu, 0x00050051u, 0x00000008u, 0x00000b36u, 0x00001494u, 0x00000001u, 0x0004007cu, + 0x00000006u, 0x00000b37u, 0x00000b36u, 0x000500c7u, 0x00000006u, 0x00000b38u, 0x00000b37u, 0x000003b1u, + 0x000500c4u, 0x00000006u, 0x00000b39u, 0x00000b38u, 0x000001ddu, 0x000500c5u, 0x00000006u, 0x00000b3bu, + 0x00000b34u, 0x00000b39u, 0x0004007cu, 0x00000006u, 0x00000b3eu, 0x00000b2du, 0x000500c7u, 0x00000006u, + 0x00000b3fu, 0x00000b3eu, 0x000003b1u, 0x000500c2u, 0x00000006u, 0x00000b40u, 0x00000b3fu, 0x00000418u, + 0x000500c5u, 0x00000006u, 0x00000b42u, 0x00000b3bu, 0x00000b40u, 0x0004007cu, 0x00000008u, 0x00000b44u, + 0x00000b42u, 0x000200f9u, 0x00000b5bu, 0x000200f8u, 0x00000b5bu, 0x000900f5u, 0x00000008u, 0x00001658u, + 0x000012e4u, 0x00000b06u, 0x00000b2fu, 0x00000b28u, 0x00000b5au, 0x00000b45u, 0x000900f5u, 0x00000008u, + 0x0000161au, 0x000012e1u, 0x00000b06u, 0x00000b44u, 0x00000b28u, 0x00000b54u, 0x00000b45u, 0x000200f9u, + 0x00000b08u, 0x000200f8u, 0x00000b08u, 0x000700f5u, 0x00000008u, 0x00001654u, 0x000012e4u, 0x00000b05u, + 0x00001658u, 0x00000b5bu, 0x000700f5u, 0x00000008u, 0x00001616u, 0x000012e1u, 0x00000b05u, 0x0000161au, + 0x00000b5bu, 0x000200f9u, 0x000008aau, 0x000200f8u, 0x000008aau, 0x000700f5u, 0x00000014u, 0x000017b3u, + 0x0000142eu, 0x00000b08u, 0x000017b9u, 0x00000c3du, 0x000700f5u, 0x00000014u, 0x00001799u, 0x00001403u, + 0x00000b08u, 0x0000179fu, 0x00000c3du, 0x000700f5u, 0x00000008u, 0x0000177eu, 0x000013d9u, 0x00000b08u, + 0x00001784u, 0x00000c3du, 0x000700f5u, 0x00000008u, 0x00001763u, 0x000013afu, 0x00000b08u, 0x00001769u, + 0x00000c3du, 0x000700f5u, 0x00000014u, 0x0000173bu, 0x00001382u, 0x00000b08u, 0x00001741u, 0x00000c3du, + 0x000700f5u, 0x00000014u, 0x00001714u, 0x00001364u, 0x00000b08u, 0x0000171au, 0x00000c3du, 0x000700f5u, + 0x00000008u, 0x000016ecu, 0x00001347u, 0x00000b08u, 0x000016f2u, 0x00000c3du, 0x000700f5u, 0x00000008u, + 0x000016c4u, 0x0000132au, 0x00000b08u, 0x000016cau, 0x00000c3du, 0x000700f5u, 0x00000008u, 0x00001653u, + 0x00001654u, 0x00000b08u, 0x00001659u, 0x00000c3du, 0x000700f5u, 0x00000008u, 0x00001615u, 0x00001616u, + 0x00000b08u, 0x0000161bu, 0x00000c3du, 0x000700f5u, 0x00000014u, 0x000015d7u, 0x000012d8u, 0x00000b08u, + 0x000012d6u, 0x00000c3du, 0x000700f5u, 0x00000009u, 0x000015c5u, 0x00001494u, 0x00000b08u, 0x000015c8u, + 0x00000c3du, 0x000700f5u, 0x0000002cu, 0x0000154au, 0x00001540u, 0x00000b08u, 0x00001550u, 0x00000c3du, + 0x000700f5u, 0x0000002cu, 0x00001529u, 0x0000152bu, 0x00000b08u, 0x0000181au, 0x00000c3du, 0x000200f9u, + 0x0000089fu, 0x000200f8u, 0x0000089eu, 0x00070041u, 0x000000e9u, 0x000008a2u, 0x000000a9u, 0x0000009fu, + 0x00000881u, 0x000000e8u, 0x0004003du, 0x00000006u, 0x000008a3u, 0x000008a2u, 0x000300f7u, 0x00000a6eu, + 0x00000000u, 0x000b00fbu, 0x0000036au, 0x00000a6eu, 0x00000004u, 0x00000a14u, 0x00000002u, 0x00000a2bu, + 0x00000003u, 0x00000a48u, 0x00000001u, 0x00000a61u, 0x000200f8u, 0x00000a61u, 0x000500c7u, 0x00000006u, + 0x00000a63u, 0x00001499u, 0x000001e3u, 0x000500c6u, 0x00000006u, 0x00000a64u, 0x00000a63u, 0x000001e3u, + 0x00050084u, 0x00000006u, 0x00000a65u, 0x00000a64u, 0x000003aau, 0x000500c2u, 0x00000006u, 0x00000a67u, + 0x000008a3u, 0x00000a65u, 0x000500c7u, 0x00000006u, 0x00000a69u, 0x00000a67u, 0x000003d8u, 0x0004007cu, + 0x00000008u, 0x00000a6bu, 0x00000a69u, 0x00070050u, 0x00000009u, 0x00000a6cu, 0x00000a6bu, 0x00000a6bu, + 0x00000a6bu, 0x00000a6bu, 0x000300f7u, 0x00000aa5u, 0x00000000u, 0x000400fau, 0x00000665u, 0x00000a9au, + 0x00000aa3u, 0x000200f8u, 0x00000aa3u, 0x000200f9u, 0x00000aa5u, 0x000200f8u, 0x00000a9au, 0x00060052u, + 0x00000009u, 0x000011e1u, 0x00000a6bu, 0x000012d3u, 0x00000000u, 0x00060052u, 0x00000009u, 0x000011e3u, + 0x00000a6bu, 0x000011e1u, 0x00000001u, 0x00060052u, 0x00000009u, 0x000011e5u, 0x00000a6bu, 0x000011e3u, + 0x00000002u, 0x000200f9u, 0x00000aa5u, 0x000200f8u, 0x00000aa5u, 0x000700f5u, 0x00000009u, 0x000014a1u, + 0x000011e5u, 0x00000a9au, 0x00000a6cu, 0x00000aa3u, 0x000200f9u, 0x00000a6eu, 0x000200f8u, 0x00000a48u, + 0x000500c7u, 0x00000006u, 0x00000a4au, 0x00001499u, 0x000001ddu, 0x000500c6u, 0x00000006u, 0x00000a4bu, + 0x00000a4au, 0x000001ddu, 0x00050084u, 0x00000006u, 0x00000a4cu, 0x00000a4bu, 0x000003f3u, 0x000500c2u, + 0x00000006u, 0x00000a4eu, 0x000008a3u, 0x00000a4cu, 0x000500c7u, 0x00000006u, 0x00000a50u, 0x00000a4eu, + 0x00000494u, 0x000500c2u, 0x00000006u, 0x00000a52u, 0x00000a50u, 0x000003aau, 0x000500c7u, 0x00000006u, + 0x00000a53u, 0x00000a52u, 0x000003d8u, 0x000500c2u, 0x00000006u, 0x00000a55u, 0x00000a50u, 0x000001bbu, + 0x000500c7u, 0x00000006u, 0x00000a56u, 0x00000a55u, 0x000003d8u, 0x0004007cu, 0x00000008u, 0x00000a58u, + 0x00000a53u, 0x0004007cu, 0x00000008u, 0x00000a5eu, 0x00000a56u, 0x00070050u, 0x00000009u, 0x00000a5fu, + 0x00000a58u, 0x00000a58u, 0x00000a58u, 0x00000a5eu, 0x000300f7u, 0x00000a98u, 0x00000000u, 0x000400fau, + 0x00000665u, 0x00000a8du, 0x00000a96u, 0x000200f8u, 0x00000a96u, 0x000200f9u, 0x00000a98u, 0x000200f8u, + 0x00000a8du, 0x00060052u, 0x00000009u, 0x000011dbu, 0x00000a58u, 0x000012d3u, 0x00000000u, 0x00060052u, + 0x00000009u, 0x000011ddu, 0x00000a58u, 0x000011dbu, 0x00000001u, 0x00060052u, 0x00000009u, 0x000011dfu, + 0x00000a58u, 0x000011ddu, 0x00000002u, 0x000200f9u, 0x00000a98u, 0x000200f8u, 0x00000a98u, 0x000700f5u, + 0x00000009u, 0x000014a0u, 0x000011dfu, 0x00000a8du, 0x00000a5fu, 0x00000a96u, 0x000200f9u, 0x00000a6eu, + 0x000200f8u, 0x00000a2bu, 0x000500c7u, 0x00000006u, 0x00000a2du, 0x00001499u, 0x000001ddu, 0x000500c6u, + 0x00000006u, 0x00000a2eu, 0x00000a2du, 0x000001ddu, 0x00050084u, 0x00000006u, 0x00000a2fu, 0x00000a2eu, + 0x000003f3u, 0x000500c2u, 0x00000006u, 0x00000a31u, 0x000008a3u, 0x00000a2fu, 0x000500c2u, 0x00000006u, + 0x00000a33u, 0x00000a31u, 0x000003aau, 0x000500c7u, 0x00000006u, 0x00000a34u, 0x00000a33u, 0x000003b1u, + 0x000500c2u, 0x00000006u, 0x00000a36u, 0x00000a31u, 0x000001e3u, 0x000500c7u, 0x00000006u, 0x00000a37u, + 0x00000a36u, 0x000003b1u, 0x000500c4u, 0x00000006u, 0x00000a39u, 0x00000a31u, 0x00000196u, 0x000500c7u, + 0x00000006u, 0x00000a3au, 0x00000a39u, 0x000003b1u, 0x000500c7u, 0x00000006u, 0x00000a3cu, 0x00000a31u, + 0x000001ddu, 0x00050084u, 0x00000006u, 0x00000a3du, 0x00000a3cu, 0x0000068fu, 0x0004007cu, 0x00000008u, + 0x00000a3fu, 0x00000a34u, 0x0004007cu, 0x00000008u, 0x00000a41u, 0x00000a37u, 0x0004007cu, 0x00000008u, + 0x00000a43u, 0x00000a3au, 0x0004007cu, 0x00000008u, 0x00000a45u, 0x00000a3du, 0x00070050u, 0x00000009u, + 0x00000a46u, 0x00000a3fu, 0x00000a41u, 0x00000a43u, 0x00000a45u, 0x000300f7u, 0x00000a8bu, 0x00000000u, + 0x000400fau, 0x00000665u, 0x00000a80u, 0x00000a89u, 0x000200f8u, 0x00000a89u, 0x000200f9u, 0x00000a8bu, + 0x000200f8u, 0x00000a80u, 0x00060052u, 0x00000009u, 0x000011d5u, 0x00000a3fu, 0x000012d3u, 0x00000000u, + 0x00060052u, 0x00000009u, 0x000011d7u, 0x00000a41u, 0x000011d5u, 0x00000001u, 0x00060052u, 0x00000009u, + 0x000011d9u, 0x00000a43u, 0x000011d7u, 0x00000002u, 0x000200f9u, 0x00000a8bu, 0x000200f8u, 0x00000a8bu, + 0x000700f5u, 0x00000009u, 0x0000149fu, 0x000011d9u, 0x00000a80u, 0x00000a46u, 0x00000a89u, 0x000200f9u, + 0x00000a6eu, 0x000200f8u, 0x00000a14u, 0x000500c2u, 0x00000006u, 0x00000a16u, 0x000008a3u, 0x000003f2u, + 0x000500c7u, 0x00000006u, 0x00000a17u, 0x00000a16u, 0x000003d8u, 0x000500c2u, 0x00000006u, 0x00000a19u, + 0x000008a3u, 0x000003f3u, 0x000500c7u, 0x00000006u, 0x00000a1au, 0x00000a19u, 0x000003d8u, 0x000500c2u, + 0x00000006u, 0x00000a1cu, 0x000008a3u, 0x000003aau, 0x000500c7u, 0x00000006u, 0x00000a1du, 0x00000a1cu, + 0x000003d8u, 0x000500c2u, 0x00000006u, 0x00000a1fu, 0x000008a3u, 0x000001bbu, 0x000500c7u, 0x00000006u, + 0x00000a20u, 0x00000a1fu, 0x000003d8u, 0x0004007cu, 0x00000008u, 0x00000a22u, 0x00000a17u, 0x0004007cu, + 0x00000008u, 0x00000a24u, 0x00000a1au, 0x0004007cu, 0x00000008u, 0x00000a26u, 0x00000a1du, 0x0004007cu, + 0x00000008u, 0x00000a28u, 0x00000a20u, 0x00070050u, 0x00000009u, 0x00000a29u, 0x00000a22u, 0x00000a24u, + 0x00000a26u, 0x00000a28u, 0x000300f7u, 0x00000a7eu, 0x00000000u, 0x000400fau, 0x00000665u, 0x00000a73u, + 0x00000a7cu, 0x000200f8u, 0x00000a7cu, 0x000200f9u, 0x00000a7eu, 0x000200f8u, 0x00000a73u, 0x00060052u, + 0x00000009u, 0x000011cfu, 0x00000a22u, 0x000012d3u, 0x00000000u, 0x00060052u, 0x00000009u, 0x000011d1u, + 0x00000a24u, 0x000011cfu, 0x00000001u, 0x00060052u, 0x00000009u, 0x000011d3u, 0x00000a26u, 0x000011d1u, + 0x00000002u, 0x000200f9u, 0x00000a7eu, 0x000200f8u, 0x00000a7eu, 0x000700f5u, 0x00000009u, 0x0000149eu, + 0x000011d3u, 0x00000a73u, 0x00000a29u, 0x00000a7cu, 0x000200f9u, 0x00000a6eu, 0x000200f8u, 0x00000a6eu, + 0x000d00f5u, 0x0000002cu, 0x00001527u, 0x00001523u, 0x0000089eu, 0x000002b6u, 0x00000a7eu, 0x000002b6u, + 0x00000a8bu, 0x000002b6u, 0x00000a98u, 0x000002b6u, 0x00000aa5u, 0x000d00f5u, 0x00000009u, 0x0000149du, + 0x000012d3u, 0x0000089eu, 0x0000149eu, 0x00000a7eu, 0x0000149fu, 0x00000a8bu, 0x000014a0u, 0x00000a98u, + 0x000014a1u, 0x00000aa5u, 0x000300f7u, 0x00000a71u, 0x00000000u, 0x000400fau, 0x00000566u, 0x00000a6fu, + 0x00000a71u, 0x000200f8u, 0x00000a6fu, 0x000300f7u, 0x00000adeu, 0x00000000u, 0x000700fbu, 0x0000036au, + 0x00000adeu, 0x00000002u, 0x00000aabu, 0x00000003u, 0x00000ac8u, 0x000200f8u, 0x00000ac8u, 0x0007004fu, + 0x0000002eu, 0x00000acau, 0x0000149du, 0x0000149du, 0x00000000u, 0x00000003u, 0x0004007cu, 0x0000006fu, + 0x00000acbu, 0x00000acau, 0x00050051u, 0x00000006u, 0x00000acdu, 0x00000acbu, 0x00000000u, 0x000500c4u, + 0x00000006u, 0x00000aceu, 0x00000acdu, 0x000003aau, 0x00050051u, 0x00000006u, 0x00000ad0u, 0x00000acbu, + 0x00000001u, 0x000500c5u, 0x00000006u, 0x00000ad1u, 0x00000aceu, 0x00000ad0u, 0x000500c7u, 0x00000006u, + 0x00000ad3u, 0x00000ad1u, 0x000001ddu, 0x00050084u, 0x00000006u, 0x00000ad4u, 0x00000ad3u, 0x000001e3u, + 0x000500c2u, 0x00000006u, 0x00000ad6u, 0x00000ad1u, 0x00000196u, 0x0004007cu, 0x00000008u, 0x00000ad7u, + 0x00000ad6u, 0x000500c7u, 0x00000006u, 0x00000ad9u, 0x00000ad1u, 0x000001e3u, 0x000500c4u, 0x00000006u, + 0x00000adau, 0x00000ad9u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x00000adcu, 0x00000adau, 0x00000ad4u, + 0x0004007cu, 0x00000008u, 0x00000addu, 0x00000adcu, 0x000200f9u, 0x00000adeu, 0x000200f8u, 0x00000aabu, + 0x00050051u, 0x00000008u, 0x00000aadu, 0x0000149du, 0x00000003u, 0x000500c3u, 0x00000008u, 0x00000aaeu, + 0x00000aadu, 0x000000beu, 0x00050051u, 0x00000008u, 0x00000ab0u, 0x0000149du, 0x00000002u, 0x000500c7u, + 0x00000008u, 0x00000ab1u, 0x00000ab0u, 0x000000dcu, 0x000500c5u, 0x00000008u, 0x00000ab2u, 0x00000aaeu, + 0x00000ab1u, 0x00050051u, 0x00000008u, 0x00000ab4u, 0x0000149du, 0x00000000u, 0x0004007cu, 0x00000006u, + 0x00000ab5u, 0x00000ab4u, 0x000500c7u, 0x00000006u, 0x00000ab6u, 0x00000ab5u, 0x000003b1u, 0x000500c4u, + 0x00000006u, 0x00000ab7u, 0x00000ab6u, 0x0000040bu, 0x00050051u, 0x00000008u, 0x00000ab9u, 0x0000149du, + 0x00000001u, 0x0004007cu, 0x00000006u, 0x00000abau, 0x00000ab9u, 0x000500c7u, 0x00000006u, 0x00000abbu, + 0x00000abau, 0x000003b1u, 0x000500c4u, 0x00000006u, 0x00000abcu, 0x00000abbu, 0x000001ddu, 0x000500c5u, + 0x00000006u, 0x00000abeu, 0x00000ab7u, 0x00000abcu, 0x0004007cu, 0x00000006u, 0x00000ac1u, 0x00000ab0u, + 0x000500c7u, 0x00000006u, 0x00000ac2u, 0x00000ac1u, 0x000003b1u, 0x000500c2u, 0x00000006u, 0x00000ac3u, + 0x00000ac2u, 0x00000418u, 0x000500c5u, 0x00000006u, 0x00000ac5u, 0x00000abeu, 0x00000ac3u, 0x0004007cu, + 0x00000008u, 0x00000ac7u, 0x00000ac5u, 0x000200f9u, 0x00000adeu, 0x000200f8u, 0x00000adeu, 0x000900f5u, + 0x00000008u, 0x00001652u, 0x000012e4u, 0x00000a6fu, 0x00000ab2u, 0x00000aabu, 0x00000addu, 0x00000ac8u, + 0x000900f5u, 0x00000008u, 0x00001614u, 0x000012e1u, 0x00000a6fu, 0x00000ac7u, 0x00000aabu, 0x00000ad7u, + 0x00000ac8u, 0x000200f9u, 0x00000a71u, 0x000200f8u, 0x00000a71u, 0x000700f5u, 0x00000008u, 0x0000164cu, + 0x000012e4u, 0x00000a6eu, 0x00001652u, 0x00000adeu, 0x000700f5u, 0x00000008u, 0x0000160eu, 0x000012e1u, + 0x00000a6eu, 0x00001614u, 0x00000adeu, 0x000200f9u, 0x0000089fu, 0x000200f8u, 0x0000089fu, 0x000700f5u, + 0x00000014u, 0x000017abu, 0x0000142eu, 0x00000a71u, 0x000017b3u, 0x000008aau, 0x000700f5u, 0x00000014u, + 0x00001791u, 0x00001403u, 0x00000a71u, 0x00001799u, 0x000008aau, 0x000700f5u, 0x00000008u, 0x00001776u, + 0x000013d9u, 0x00000a71u, 0x0000177eu, 0x000008aau, 0x000700f5u, 0x00000008u, 0x0000175bu, 0x000013afu, + 0x00000a71u, 0x00001763u, 0x000008aau, 0x000700f5u, 0x00000014u, 0x00001733u, 0x00001382u, 0x00000a71u, + 0x0000173bu, 0x000008aau, 0x000700f5u, 0x00000014u, 0x0000170cu, 0x00001364u, 0x00000a71u, 0x00001714u, + 0x000008aau, 0x000700f5u, 0x00000008u, 0x000016e4u, 0x00001347u, 0x00000a71u, 0x000016ecu, 0x000008aau, + 0x000700f5u, 0x00000008u, 0x000016bcu, 0x0000132au, 0x00000a71u, 0x000016c4u, 0x000008aau, 0x000700f5u, + 0x00000008u, 0x0000164bu, 0x0000164cu, 0x00000a71u, 0x00001653u, 0x000008aau, 0x000700f5u, 0x00000008u, + 0x0000160du, 0x0000160eu, 0x00000a71u, 0x00001615u, 0x000008aau, 0x000700f5u, 0x00000014u, 0x000015cfu, + 0x000012d8u, 0x00000a71u, 0x000015d7u, 0x000008aau, 0x000700f5u, 0x00000009u, 0x000015c2u, 0x0000149du, + 0x00000a71u, 0x000015c5u, 0x000008aau, 0x000700f5u, 0x0000002cu, 0x00001542u, 0x00001540u, 0x00000a71u, + 0x0000154au, 0x000008aau, 0x000700f5u, 0x0000002cu, 0x00001525u, 0x00001527u, 0x00000a71u, 0x00001529u, + 0x000008aau, 0x000200f9u, 0x00000899u, 0x000200f8u, 0x00000899u, 0x000700f5u, 0x00000014u, 0x000017aau, + 0x0000142eu, 0x0000086du, 0x000017abu, 0x0000089fu, 0x000700f5u, 0x00000014u, 0x00001790u, 0x00001403u, + 0x0000086du, 0x00001791u, 0x0000089fu, 0x000700f5u, 0x00000008u, 0x00001775u, 0x000013d9u, 0x0000086du, + 0x00001776u, 0x0000089fu, 0x000700f5u, 0x00000008u, 0x0000175au, 0x000013afu, 0x0000086du, 0x0000175bu, + 0x0000089fu, 0x000700f5u, 0x00000014u, 0x00001732u, 0x00001382u, 0x0000086du, 0x00001733u, 0x0000089fu, + 0x000700f5u, 0x00000014u, 0x0000170bu, 0x00001364u, 0x0000086du, 0x0000170cu, 0x0000089fu, 0x000700f5u, + 0x00000008u, 0x000016e3u, 0x00001347u, 0x0000086du, 0x000016e4u, 0x0000089fu, 0x000700f5u, 0x00000008u, + 0x000016bbu, 0x0000132au, 0x0000086du, 0x000016bcu, 0x0000089fu, 0x000700f5u, 0x00000008u, 0x0000164au, + 0x000012e4u, 0x0000086du, 0x0000164bu, 0x0000089fu, 0x000700f5u, 0x00000008u, 0x0000160cu, 0x000012e1u, + 0x0000086du, 0x0000160du, 0x0000089fu, 0x000700f5u, 0x00000014u, 0x000015ceu, 0x000012d8u, 0x0000086du, + 0x000015cfu, 0x0000089fu, 0x000700f5u, 0x00000009u, 0x000015c1u, 0x000012d3u, 0x0000086du, 0x000015c2u, + 0x0000089fu, 0x000700f5u, 0x0000002cu, 0x00001541u, 0x00001540u, 0x0000086du, 0x00001542u, 0x0000089fu, + 0x000700f5u, 0x0000002cu, 0x00001524u, 0x00001523u, 0x0000086du, 0x00001525u, 0x0000089fu, 0x00050080u, + 0x00000006u, 0x000008e3u, 0x000012d2u, 0x000000b2u, 0x000200f9u, 0x0000086fu, 0x000200f8u, 0x0000086fu, + 0x000200f9u, 0x0000086cu, 0x000200f8u, 0x0000086eu, 0x000200f9u, 0x0000084bu, 0x000200f8u, 0x0000084bu, + 0x000200f9u, 0x00000848u, 0x000200f8u, 0x0000084au, 0x000500aeu, 0x00000592u, 0x00001022u, 0x0000083au, + 0x00000956u, 0x0004009au, 0x0000002cu, 0x00001023u, 0x00001022u, 0x000600a9u, 0x0000002cu, 0x0000181bu, + 0x00001023u, 0x0000029bu, 0x0000129bu, 0x000600a9u, 0x0000002cu, 0x0000181cu, 0x00001023u, 0x0000029bu, + 0x0000127eu, 0x000500c2u, 0x00000006u, 0x00001027u, 0x0000083du, 0x0000055du, 0x00050050u, 0x0000006fu, + 0x00001029u, 0x00000606u, 0x00000606u, 0x000500c7u, 0x0000006fu, 0x0000102au, 0x0000083au, 0x00001029u, + 0x00050050u, 0x0000002eu, 0x0000102cu, 0x0000055du, 0x0000055du, 0x000500c2u, 0x0000006fu, 0x0000102du, + 0x0000083au, 0x0000102cu, 0x00050051u, 0x00000006u, 0x0000102fu, 0x0000102au, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00001030u, 0x0000102fu, 0x0000060fu, 0x00050051u, 0x00000006u, 0x00001032u, 0x0000102au, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00001033u, 0x00001030u, 0x00001032u, 0x00050051u, 0x00000006u, + 0x00001037u, 0x0000102du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00001038u, 0x00001027u, 0x00001037u, + 0x00050080u, 0x00000006u, 0x00001039u, 0x00000843u, 0x00001038u, 0x00050051u, 0x00000006u, 0x0000103bu, + 0x0000102du, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000103cu, 0x00001039u, 0x0000103bu, 0x000300f7u, + 0x00001103u, 0x00000000u, 0x000400fau, 0x0000181cu, 0x0000105bu, 0x00001103u, 0x000200f8u, 0x0000105bu, + 0x000300f7u, 0x00001102u, 0x00000000u, 0x000d00fbu, 0x0000036au, 0x00001102u, 0x00000000u, 0x0000105cu, + 0x00000001u, 0x00001072u, 0x00000002u, 0x0000108cu, 0x00000003u, 0x000010bau, 0x00000004u, 0x000010d6u, + 0x000200f8u, 0x000010d6u, 0x000500c7u, 0x00000006u, 0x000010d8u, 0x0000103cu, 0x000003e0u, 0x00050084u, + 0x00000006u, 0x000010dau, 0x00001033u, 0x0000052du, 0x00050080u, 0x00000006u, 0x000010dcu, 0x000010d8u, + 0x000010dau, 0x0004007cu, 0x000000aeu, 0x000010deu, 0x00001283u, 0x00050051u, 0x00000006u, 0x000010e0u, + 0x000010deu, 0x00000000u, 0x000500c4u, 0x00000006u, 0x000010e1u, 0x000010e0u, 0x000003f2u, 0x00050051u, + 0x00000006u, 0x000010e3u, 0x000010deu, 0x00000001u, 0x000500c4u, 0x00000006u, 0x000010e4u, 0x000010e3u, + 0x000003f3u, 0x000500c5u, 0x00000006u, 0x000010e5u, 0x000010e1u, 0x000010e4u, 0x00050051u, 0x00000006u, + 0x000010e7u, 0x000010deu, 0x00000002u, 0x000500c4u, 0x00000006u, 0x000010e8u, 0x000010e7u, 0x000003aau, + 0x000500c5u, 0x00000006u, 0x000010e9u, 0x000010e5u, 0x000010e8u, 0x00050051u, 0x00000006u, 0x000010ebu, + 0x000010deu, 0x00000003u, 0x000500c4u, 0x00000006u, 0x000010ecu, 0x000010ebu, 0x000001bbu, 0x000500c5u, + 0x00000006u, 0x000010edu, 0x000010e9u, 0x000010ecu, 0x00060041u, 0x000000e9u, 0x000010f0u, 0x000003ecu, + 0x0000009fu, 0x000010dcu, 0x0003003eu, 0x000010f0u, 0x000010edu, 0x00050084u, 0x00000006u, 0x000010f2u, + 0x00000196u, 0x000010dcu, 0x00050051u, 0x00000008u, 0x000010f4u, 0x00001283u, 0x00000001u, 0x000500c7u, + 0x00000008u, 0x000010f5u, 0x000010f4u, 0x000000b2u, 0x00050084u, 0x00000008u, 0x000010f6u, 0x000010f5u, + 0x000000beu, 0x00040071u, 0x000000a0u, 0x000010f7u, 0x000010f6u, 0x00060041u, 0x000000f5u, 0x000010f8u, + 0x0000038bu, 0x0000009fu, 0x000010f2u, 0x0003003eu, 0x000010f8u, 0x000010f7u, 0x00050080u, 0x00000006u, + 0x000010fbu, 0x000010f2u, 0x000001ddu, 0x00050051u, 0x00000008u, 0x000010fdu, 0x00001283u, 0x00000003u, + 0x000500c7u, 0x00000008u, 0x000010feu, 0x000010fdu, 0x000000b2u, 0x00050084u, 0x00000008u, 0x000010ffu, + 0x000010feu, 0x000000beu, 0x00040071u, 0x000000a0u, 0x00001100u, 0x000010ffu, 0x00060041u, 0x000000f5u, + 0x00001101u, 0x0000038bu, 0x0000009fu, 0x000010fbu, 0x0003003eu, 0x00001101u, 0x00001100u, 0x000200f9u, + 0x00001102u, 0x000200f8u, 0x000010bau, 0x000500c7u, 0x00000006u, 0x000010bcu, 0x0000103cu, 0x00000394u, + 0x00050084u, 0x00000006u, 0x000010beu, 0x00001033u, 0x0000050eu, 0x00050080u, 0x00000006u, 0x000010c0u, + 0x000010bcu, 0x000010beu, 0x0007004fu, 0x0000002eu, 0x000010c2u, 0x00001283u, 0x00001283u, 0x00000000u, + 0x00000003u, 0x0004007cu, 0x0000006fu, 0x000010c3u, 0x000010c2u, 0x00050051u, 0x00000006u, 0x000010c5u, + 0x000010c3u, 0x00000000u, 0x000500c4u, 0x00000006u, 0x000010c6u, 0x000010c5u, 0x000003aau, 0x00050051u, + 0x00000006u, 0x000010c8u, 0x000010c3u, 0x00000001u, 0x000500c5u, 0x00000006u, 0x000010c9u, 0x000010c6u, + 0x000010c8u, 0x000500c6u, 0x00000006u, 0x000010cbu, 0x000010c0u, 0x000001ddu, 0x00040071u, 0x000000a2u, + 0x000010cdu, 0x000010c9u, 0x00060041u, 0x000000eeu, 0x000010ceu, 0x000003a0u, 0x0000009fu, 0x000010cbu, + 0x0003003eu, 0x000010ceu, 0x000010cdu, 0x000500c7u, 0x00000006u, 0x000010d2u, 0x000010c8u, 0x000001ddu, + 0x00050084u, 0x00000006u, 0x000010d3u, 0x000010d2u, 0x000001e3u, 0x00040071u, 0x000000a0u, 0x000010d4u, + 0x000010d3u, 0x00060041u, 0x000000f5u, 0x000010d5u, 0x0000038bu, 0x0000009fu, 0x000010c0u, 0x0003003eu, + 0x000010d5u, 0x000010d4u, 0x000200f9u, 0x00001102u, 0x000200f8u, 0x0000108cu, 0x000500c7u, 0x00000006u, + 0x0000108eu, 0x0000103cu, 0x00000394u, 0x00050084u, 0x00000006u, 0x00001090u, 0x00001033u, 0x000004dbu, + 0x00050080u, 0x00000006u, 0x00001092u, 0x0000108eu, 0x00001090u, 0x0004007cu, 0x000000aeu, 0x00001094u, + 0x00001283u, 0x0008004fu, 0x000003a6u, 0x00001096u, 0x00001094u, 0x00001094u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000500c7u, 0x000003a6u, 0x00001098u, 0x00001096u, 0x00001805u, 0x00050051u, 0x00000006u, + 0x0000109au, 0x00001098u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000109cu, 0x00001098u, 0x00000001u, + 0x00050051u, 0x00000006u, 0x0000109eu, 0x00001098u, 0x00000002u, 0x00050051u, 0x00000006u, 0x000010a0u, + 0x00001094u, 0x00000003u, 0x000500c2u, 0x00000006u, 0x000010a1u, 0x000010a0u, 0x0000044bu, 0x000500c4u, + 0x00000006u, 0x000010a4u, 0x0000109au, 0x000003aau, 0x000500c4u, 0x00000006u, 0x000010a7u, 0x0000109cu, + 0x000001e3u, 0x000500c5u, 0x00000006u, 0x000010a8u, 0x000010a4u, 0x000010a7u, 0x000500c2u, 0x00000006u, + 0x000010abu, 0x0000109eu, 0x00000196u, 0x000500c5u, 0x00000006u, 0x000010acu, 0x000010a8u, 0x000010abu, + 0x000500c2u, 0x00000006u, 0x000010aeu, 0x000010a1u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x000010afu, + 0x000010acu, 0x000010aeu, 0x000500c6u, 0x00000006u, 0x000010b1u, 0x00001092u, 0x000001ddu, 0x00040071u, + 0x000000a2u, 0x000010b3u, 0x000010afu, 0x00060041u, 0x000000eeu, 0x000010b4u, 0x000003a0u, 0x0000009fu, + 0x000010b1u, 0x0003003eu, 0x000010b4u, 0x000010b3u, 0x000500c7u, 0x00000006u, 0x000010b7u, 0x000010a1u, + 0x000001e3u, 0x00040071u, 0x000000a0u, 0x000010b8u, 0x000010b7u, 0x00060041u, 0x000000f5u, 0x000010b9u, + 0x0000038bu, 0x0000009fu, 0x00001092u, 0x0003003eu, 0x000010b9u, 0x000010b8u, 0x000200f9u, 0x00001102u, + 0x000200f8u, 0x00001072u, 0x000500c7u, 0x00000006u, 0x00001074u, 0x0000103cu, 0x00000371u, 0x00050084u, + 0x00000006u, 0x00001076u, 0x00001033u, 0x00000370u, 0x00050080u, 0x00000006u, 0x00001078u, 0x00001074u, + 0x00001076u, 0x000500c6u, 0x00000006u, 0x0000107au, 0x00001078u, 0x000001e3u, 0x00050051u, 0x00000008u, + 0x0000107cu, 0x00001283u, 0x00000000u, 0x00040071u, 0x000000a0u, 0x0000107du, 0x0000107cu, 0x00060041u, + 0x000000f5u, 0x0000107eu, 0x0000037cu, 0x0000009fu, 0x0000107au, 0x0003003eu, 0x0000107eu, 0x0000107du, + 0x000500c7u, 0x00000006u, 0x00001080u, 0x00001078u, 0x000001ddu, 0x000500abu, 0x0000002cu, 0x00001081u, + 0x00001080u, 0x000001bbu, 0x000300f7u, 0x0000108bu, 0x00000000u, 0x000400fau, 0x00001081u, 0x00001082u, + 0x0000108bu, 0x000200f8u, 0x00001082u, 0x000500c2u, 0x00000006u, 0x00001084u, 0x00001078u, 0x000001ddu, + 0x000500c7u, 0x00000008u, 0x00001087u, 0x0000107cu, 0x000000b2u, 0x00050084u, 0x00000008u, 0x00001088u, + 0x00001087u, 0x000000beu, 0x00040071u, 0x000000a0u, 0x00001089u, 0x00001088u, 0x00060041u, 0x000000f5u, + 0x0000108au, 0x0000038bu, 0x0000009fu, 0x00001084u, 0x0003003eu, 0x0000108au, 0x00001089u, 0x000200f9u, + 0x0000108bu, 0x000200f8u, 0x0000108bu, 0x000200f9u, 0x00001102u, 0x000200f8u, 0x0000105cu, 0x000500c7u, + 0x00000006u, 0x0000105eu, 0x0000103cu, 0x00000371u, 0x00050084u, 0x00000006u, 0x00001060u, 0x00001033u, + 0x00000370u, 0x00050080u, 0x00000006u, 0x00001062u, 0x0000105eu, 0x00001060u, 0x000500c6u, 0x00000006u, + 0x00001064u, 0x00001062u, 0x000001e3u, 0x00060041u, 0x000000f5u, 0x00001066u, 0x0000037cu, 0x0000009fu, + 0x00001064u, 0x0003003eu, 0x00001066u, 0x0000180eu, 0x000500c7u, 0x00000006u, 0x00001068u, 0x00001062u, + 0x000001ddu, 0x000500abu, 0x0000002cu, 0x00001069u, 0x00001068u, 0x000001bbu, 0x000300f7u, 0x00001071u, + 0x00000000u, 0x000400fau, 0x00001069u, 0x0000106au, 0x00001071u, 0x000200f8u, 0x0000106au, 0x000500c2u, + 0x00000006u, 0x0000106cu, 0x00001062u, 0x000001ddu, 0x00050051u, 0x00000008u, 0x0000106eu, 0x00001283u, + 0x00000003u, 0x00040071u, 0x000000a0u, 0x0000106fu, 0x0000106eu, 0x00060041u, 0x000000f5u, 0x00001070u, + 0x0000038bu, 0x0000009fu, 0x0000106cu, 0x0003003eu, 0x00001070u, 0x0000106fu, 0x000200f9u, 0x00001071u, + 0x000200f8u, 0x00001071u, 0x000200f9u, 0x00001102u, 0x000200f8u, 0x00001102u, 0x000f00f5u, 0x00000006u, + 0x00001288u, 0x0000103cu, 0x0000105bu, 0x00001062u, 0x00001071u, 0x00001078u, 0x0000108bu, 0x00001092u, + 0x0000108cu, 0x000010c0u, 0x000010bau, 0x000010dcu, 0x000010d6u, 0x000200f9u, 0x00001103u, 0x000200f8u, + 0x00001103u, 0x000700f5u, 0x00000006u, 0x00001287u, 0x0000103cu, 0x0000084au, 0x00001288u, 0x00001102u, + 0x000300f7u, 0x00001107u, 0x00000000u, 0x000400fau, 0x0000055fu, 0x00001104u, 0x00001107u, 0x000200f8u, + 0x00001104u, 0x000300e1u, 0x000001ddu, 0x00000562u, 0x000300f7u, 0x0000111cu, 0x00000000u, 0x000400fau, + 0x0000181cu, 0x0000110au, 0x0000111cu, 0x000200f8u, 0x0000110au, 0x000300f7u, 0x0000111bu, 0x00000000u, + 0x000d00fbu, 0x0000036au, 0x0000111bu, 0x00000000u, 0x0000110bu, 0x00000001u, 0x0000110bu, 0x00000002u, + 0x00001111u, 0x00000003u, 0x00001111u, 0x00000004u, 0x00001117u, 0x000200f8u, 0x00001117u, 0x00050080u, + 0x00000006u, 0x00001119u, 0x00001287u, 0x00000499u, 0x00060041u, 0x000000e9u, 0x0000111au, 0x000003ecu, + 0x0000009fu, 0x00001119u, 0x0003003eu, 0x0000111au, 0x0000049bu, 0x000200f9u, 0x0000111bu, 0x000200f8u, + 0x00001111u, 0x000500c6u, 0x00000006u, 0x00001113u, 0x00001287u, 0x000001ddu, 0x00050080u, 0x00000006u, + 0x00001114u, 0x00001113u, 0x00000492u, 0x00060041u, 0x000000eeu, 0x00001116u, 0x000003a0u, 0x0000009fu, + 0x00001114u, 0x0003003eu, 0x00001116u, 0x00001810u, 0x000200f9u, 0x0000111bu, 0x000200f8u, 0x0000110bu, + 0x000500c6u, 0x00000006u, 0x0000110du, 0x00001287u, 0x000001e3u, 0x00050080u, 0x00000006u, 0x0000110eu, + 0x0000110du, 0x00000370u, 0x00060041u, 0x000000f5u, 0x00001110u, 0x0000037cu, 0x0000009fu, 0x0000110eu, + 0x0003003eu, 0x00001110u, 0x0000180fu, 0x000200f9u, 0x0000111bu, 0x000200f8u, 0x0000111bu, 0x000200f9u, + 0x0000111cu, 0x000200f8u, 0x0000111cu, 0x000200f9u, 0x00001107u, 0x000200f8u, 0x00001107u, 0x00050080u, + 0x00000006u, 0x00001045u, 0x00000846u, 0x00001038u, 0x00050080u, 0x00000006u, 0x00001048u, 0x00001045u, + 0x0000103bu, 0x000300f7u, 0x00001140u, 0x00000000u, 0x000400fau, 0x00000567u, 0x0000111eu, 0x00001140u, + 0x000200f8u, 0x0000111eu, 0x000300f7u, 0x00001135u, 0x00000000u, 0x000400fau, 0x0000181bu, 0x00001120u, + 0x00001135u, 0x000200f8u, 0x00001120u, 0x000500c7u, 0x00000006u, 0x00001122u, 0x00001048u, 0x00000394u, + 0x00050084u, 0x00000006u, 0x00001124u, 0x00001033u, 0x00000571u, 0x00050080u, 0x00000006u, 0x00001126u, + 0x00001122u, 0x00001124u, 0x000500c6u, 0x00000006u, 0x00001128u, 0x00001126u, 0x000001ddu, 0x000500c4u, + 0x00000008u, 0x0000112au, 0x000012a9u, 0x000000b8u, 0x000500c3u, 0x00000008u, 0x0000112cu, 0x000012b6u, + 0x000000b8u, 0x000500c5u, 0x00000008u, 0x0000112du, 0x0000112au, 0x0000112cu, 0x00040071u, 0x000000a2u, + 0x0000112eu, 0x0000112du, 0x00060041u, 0x000000eeu, 0x0000112fu, 0x000003a0u, 0x0000009fu, 0x00001128u, + 0x0003003eu, 0x0000112fu, 0x0000112eu, 0x000500c7u, 0x00000008u, 0x00001132u, 0x000012b6u, 0x000000beu, + 0x00040071u, 0x000000a0u, 0x00001133u, 0x00001132u, 0x00060041u, 0x000000f5u, 0x00001134u, 0x0000038bu, + 0x0000009fu, 0x00001126u, 0x0003003eu, 0x00001134u, 0x00001133u, 0x000200f9u, 0x00001135u, 0x000200f8u, + 0x00001135u, 0x000700f5u, 0x00000006u, 0x000012c0u, 0x00001048u, 0x0000111eu, 0x00001126u, 0x00001120u, + 0x000300f7u, 0x0000113fu, 0x00000000u, 0x000400fau, 0x0000055fu, 0x00001136u, 0x0000113fu, 0x000200f8u, + 0x00001136u, 0x000300e1u, 0x000001ddu, 0x00000562u, 0x000300f7u, 0x0000113eu, 0x00000000u, 0x000400fau, + 0x0000181bu, 0x00001138u, 0x0000113eu, 0x000200f8u, 0x00001138u, 0x000500c6u, 0x00000006u, 0x0000113au, + 0x000012c0u, 0x000001ddu, 0x00050080u, 0x00000006u, 0x0000113bu, 0x0000113au, 0x0000058au, 0x00060041u, + 0x000000eeu, 0x0000113du, 0x000003a0u, 0x0000009fu, 0x0000113bu, 0x0003003eu, 0x0000113du, 0x00001810u, + 0x000200f9u, 0x0000113eu, 0x000200f8u, 0x0000113eu, 0x000200f9u, 0x0000113fu, 0x000200f8u, 0x0000113fu, + 0x000200f9u, 0x00001140u, 0x000200f8u, 0x00001140u, 0x000300f7u, 0x00001050u, 0x00000000u, 0x000400fau, + 0x00000632u, 0x0000104cu, 0x00001050u, 0x000200f8u, 0x0000104cu, 0x000500c2u, 0x00000006u, 0x00001147u, + 0x00001037u, 0x00000196u, 0x00050080u, 0x00000006u, 0x00001149u, 0x00001027u, 0x000001e3u, 0x000500c2u, + 0x00000006u, 0x0000114au, 0x00001149u, 0x00000196u, 0x00050084u, 0x00000006u, 0x0000114bu, 0x00001147u, + 0x0000114au, 0x000500c2u, 0x00000006u, 0x0000114eu, 0x0000103bu, 0x00000196u, 0x00050080u, 0x00000006u, + 0x0000114fu, 0x0000114bu, 0x0000114eu, 0x000500c7u, 0x0000006fu, 0x00001152u, 0x0000102du, 0x00001806u, + 0x000600a9u, 0x00000006u, 0x00001154u, 0x0000181cu, 0x000001ddu, 0x000001bbu, 0x000600a9u, 0x00000006u, + 0x00001156u, 0x0000181bu, 0x000001ddu, 0x000001bbu, 0x00050084u, 0x00000006u, 0x00001157u, 0x00000196u, + 0x00001156u, 0x00050080u, 0x00000006u, 0x00001158u, 0x00001154u, 0x00001157u, 0x00050051u, 0x00000006u, + 0x0000115au, 0x00001152u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000115cu, 0x00001152u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000115du, 0x0000115cu, 0x00000418u, 0x00050080u, 0x00000006u, 0x0000115eu, + 0x0000115au, 0x0000115du, 0x00050084u, 0x00000006u, 0x0000115fu, 0x00000196u, 0x0000115eu, 0x000500c4u, + 0x00000006u, 0x00001161u, 0x00001158u, 0x0000115fu, 0x000500abu, 0x0000002cu, 0x00001163u, 0x00001161u, + 0x000001bbu, 0x000300f7u, 0x0000116au, 0x00000000u, 0x000400fau, 0x00001163u, 0x00001164u, 0x0000116au, + 0x000200f8u, 0x00001164u, 0x00050080u, 0x00000006u, 0x00001166u, 0x000005f2u, 0x0000114fu, 0x00060041u, + 0x000000e9u, 0x00001167u, 0x000003ecu, 0x0000009fu, 0x00001166u, 0x000700f1u, 0x00000006u, 0x00001169u, + 0x00001167u, 0x000001ddu, 0x000001bbu, 0x00001161u, 0x000200f9u, 0x0000116au, 0x000200f8u, 0x0000116au, + 0x000200f9u, 0x00001050u, 0x000200f8u, 0x00001050u, 0x000200f9u, 0x00000943u, 0x000200f8u, 0x00000943u, + 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x0000183cu, 0x00000000u, 0x00020011u, + 0x00000001u, 0x00020011u, 0x0000002eu, 0x00020011u, 0x0000003du, 0x00020011u, 0x0000003fu, 0x00020011u, + 0x00000040u, 0x00020011u, 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, + 0x74696238u, 0x6f74735fu, 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, + 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0008000fu, 0x00000005u, 0x00000004u, + 0x6e69616du, 0x00000000u, 0x00000810u, 0x0000081au, 0x00000896u, 0x00060010u, 0x00000004u, 0x00000011u, + 0x00000001u, 0x00000001u, 0x00000001u, 0x00050048u, 0x000000a5u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00050048u, 0x000000a5u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000000a5u, 0x00000002u, + 0x00000023u, 0x00000008u, 0x00050048u, 0x000000a5u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, + 0x000000a5u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000000a5u, 0x00000005u, 0x00000023u, + 0x00000014u, 0x00050048u, 0x000000a5u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000000a5u, + 0x00000007u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x000000a5u, 0x00000008u, 0x00000023u, 0x00000020u, + 0x00050048u, 0x000000a5u, 0x00000009u, 0x00000023u, 0x00000024u, 0x00050048u, 0x000000a5u, 0x0000000au, + 0x00000023u, 0x00000028u, 0x00050048u, 0x000000a5u, 0x0000000bu, 0x00000023u, 0x0000002cu, 0x00050048u, + 0x000000a5u, 0x0000000cu, 0x00000023u, 0x0000002eu, 0x00050048u, 0x000000a5u, 0x0000000du, 0x00000023u, + 0x0000002fu, 0x00050048u, 0x000000a5u, 0x0000000eu, 0x00000023u, 0x00000030u, 0x00040047u, 0x000000a6u, + 0x00000006u, 0x00000038u, 0x00040048u, 0x000000a7u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000000a7u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000000a7u, 0x00000002u, 0x00040047u, 0x000000a9u, + 0x00000022u, 0x00000001u, 0x00040047u, 0x000000a9u, 0x00000021u, 0x00000002u, 0x00050048u, 0x00000109u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000109u, 0x00000001u, 0x00000023u, 0x00000004u, + 0x00050048u, 0x00000109u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000109u, 0x00000003u, + 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000109u, 0x00000004u, 0x00000023u, 0x0000000du, 0x00050048u, + 0x00000109u, 0x00000005u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x00000109u, 0x00000006u, 0x00000023u, + 0x0000000fu, 0x00040047u, 0x0000010au, 0x00000006u, 0x00000010u, 0x00040048u, 0x0000010bu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x0000010bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000010bu, + 0x00000002u, 0x00040047u, 0x0000010du, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000010du, 0x00000021u, + 0x00000005u, 0x00040047u, 0x0000025cu, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000025cu, 0x00000021u, + 0x0000000au, 0x00040047u, 0x0000036au, 0x00000001u, 0x00000001u, 0x00040047u, 0x00000370u, 0x00000001u, + 0x00000000u, 0x00040047u, 0x00000379u, 0x00000006u, 0x00000001u, 0x00050048u, 0x0000037au, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x0000037au, 0x00000002u, 0x00040047u, 0x0000037cu, 0x00000022u, + 0x00000000u, 0x00040047u, 0x0000037cu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000388u, 0x00000006u, + 0x00000001u, 0x00050048u, 0x00000389u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000389u, + 0x00000002u, 0x00040047u, 0x0000038bu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000038bu, 0x00000021u, + 0x00000001u, 0x00040047u, 0x0000039du, 0x00000006u, 0x00000002u, 0x00050048u, 0x0000039eu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x0000039eu, 0x00000002u, 0x00040047u, 0x000003a0u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x000003a0u, 0x00000021u, 0x00000000u, 0x00040047u, 0x000003e9u, 0x00000006u, + 0x00000004u, 0x00050048u, 0x000003eau, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000003eau, + 0x00000002u, 0x00040047u, 0x000003ecu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000003ecu, 0x00000021u, + 0x00000000u, 0x00040047u, 0x0000055au, 0x00000001u, 0x00000007u, 0x00040047u, 0x00000566u, 0x00000001u, + 0x00000002u, 0x00040047u, 0x00000733u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000734u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x00000734u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x00000734u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, 0x00000735u, 0x00000006u, 0x00000010u, + 0x00040048u, 0x00000736u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000736u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000736u, 0x00000002u, 0x00040047u, 0x00000738u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000738u, 0x00000021u, 0x00000006u, 0x00040047u, 0x00000810u, 0x0000000bu, 0x0000001cu, + 0x00040047u, 0x0000081au, 0x0000000bu, 0x0000001au, 0x00040047u, 0x00000823u, 0x00000001u, 0x00000006u, + 0x00040047u, 0x00000824u, 0x00000001u, 0x00000003u, 0x00040047u, 0x00000825u, 0x00000001u, 0x00000004u, + 0x00040047u, 0x00000826u, 0x0000000bu, 0x00000019u, 0x00040047u, 0x0000082eu, 0x00000001u, 0x00000005u, + 0x00040047u, 0x00000833u, 0x00000006u, 0x00000004u, 0x00040048u, 0x00000834u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x00000834u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000834u, 0x00000002u, + 0x00040047u, 0x00000836u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000836u, 0x00000021u, 0x0000000cu, + 0x00050048u, 0x0000083au, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x0000083au, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x0000083au, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, + 0x0000083au, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x0000083au, 0x00000004u, 0x00000023u, + 0x00000010u, 0x00030047u, 0x0000083au, 0x00000002u, 0x00040047u, 0x00000867u, 0x00000006u, 0x00000004u, + 0x00040048u, 0x00000868u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000868u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000868u, 0x00000002u, 0x00040047u, 0x0000086au, 0x00000022u, 0x00000000u, + 0x00040047u, 0x0000086au, 0x00000021u, 0x00000007u, 0x00040047u, 0x00000871u, 0x00000006u, 0x00000004u, + 0x00040048u, 0x00000872u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000872u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000872u, 0x00000002u, 0x00040047u, 0x00000874u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000874u, 0x00000021u, 0x0000000bu, 0x00040047u, 0x00000896u, 0x0000000bu, 0x0000001du, + 0x00040047u, 0x0000089bu, 0x00000006u, 0x00000001u, 0x00040048u, 0x0000089cu, 0x00000000u, 0x00000018u, + 0x00050048u, 0x0000089cu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000089cu, 0x00000002u, + 0x00040047u, 0x0000089eu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000089eu, 0x00000021u, 0x00000006u, + 0x00040047u, 0x000008bau, 0x00000006u, 0x00000004u, 0x00040048u, 0x000008bbu, 0x00000000u, 0x00000018u, + 0x00050048u, 0x000008bbu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008bbu, 0x00000002u, + 0x00040047u, 0x000008bdu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008bdu, 0x00000021u, 0x00000003u, + 0x00040047u, 0x000008c8u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000008c9u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x000008c9u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008c9u, 0x00000002u, + 0x00040047u, 0x000008cbu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008cbu, 0x00000021u, 0x00000003u, + 0x00040047u, 0x000008d2u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000008d3u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x000008d3u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008d3u, 0x00000002u, + 0x00040047u, 0x000008d5u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008d5u, 0x00000021u, 0x00000004u, + 0x00040047u, 0x000008dbu, 0x00000006u, 0x00000001u, 0x00040048u, 0x000008dcu, 0x00000000u, 0x00000018u, + 0x00050048u, 0x000008dcu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008dcu, 0x00000002u, + 0x00040047u, 0x000008deu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008deu, 0x00000021u, 0x00000005u, + 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, + 0x00000000u, 0x00040015u, 0x00000008u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000009u, 0x00000008u, + 0x00000004u, 0x00040017u, 0x00000014u, 0x00000008u, 0x00000003u, 0x00020014u, 0x0000002cu, 0x00040017u, + 0x0000002eu, 0x00000008u, 0x00000002u, 0x00040017u, 0x0000006fu, 0x00000006u, 0x00000002u, 0x0004002bu, + 0x00000008u, 0x0000009fu, 0x00000000u, 0x00040015u, 0x000000a0u, 0x00000008u, 0x00000000u, 0x00040017u, + 0x000000a1u, 0x000000a0u, 0x00000004u, 0x00040015u, 0x000000a2u, 0x00000010u, 0x00000000u, 0x00040015u, + 0x000000a3u, 0x00000010u, 0x00000001u, 0x00040017u, 0x000000a4u, 0x000000a3u, 0x00000004u, 0x0011001eu, + 0x000000a5u, 0x000000a1u, 0x000000a1u, 0x000000a1u, 0x000000a1u, 0x000000a1u, 0x000000a1u, 0x000000a1u, + 0x000000a1u, 0x000000a1u, 0x000000a1u, 0x00000006u, 0x000000a2u, 0x000000a0u, 0x000000a0u, 0x000000a4u, + 0x0003001du, 0x000000a6u, 0x000000a5u, 0x0003001eu, 0x000000a7u, 0x000000a6u, 0x00040020u, 0x000000a8u, + 0x0000000cu, 0x000000a7u, 0x0004003bu, 0x000000a8u, 0x000000a9u, 0x0000000cu, 0x00040020u, 0x000000abu, + 0x0000000cu, 0x000000a1u, 0x00040017u, 0x000000aeu, 0x00000006u, 0x00000004u, 0x0004002bu, 0x00000008u, + 0x000000b2u, 0x00000001u, 0x0004002bu, 0x00000008u, 0x000000b8u, 0x00000002u, 0x0004002bu, 0x00000008u, + 0x000000beu, 0x00000003u, 0x0004002bu, 0x00000008u, 0x000000c4u, 0x00000004u, 0x0004002bu, 0x00000008u, + 0x000000cau, 0x00000005u, 0x0004002bu, 0x00000008u, 0x000000d0u, 0x00000006u, 0x0004002bu, 0x00000008u, + 0x000000d6u, 0x00000007u, 0x0004002bu, 0x00000008u, 0x000000dcu, 0x00000008u, 0x0004002bu, 0x00000008u, + 0x000000e2u, 0x00000009u, 0x0004002bu, 0x00000008u, 0x000000e8u, 0x0000000au, 0x00040020u, 0x000000e9u, + 0x0000000cu, 0x00000006u, 0x0004002bu, 0x00000008u, 0x000000edu, 0x0000000bu, 0x00040020u, 0x000000eeu, + 0x0000000cu, 0x000000a2u, 0x0004002bu, 0x00000008u, 0x000000f4u, 0x0000000cu, 0x00040020u, 0x000000f5u, + 0x0000000cu, 0x000000a0u, 0x0009001eu, 0x00000109u, 0x000000a1u, 0x000000a1u, 0x00000006u, 0x000000a0u, + 0x000000a0u, 0x000000a0u, 0x000000a0u, 0x0003001du, 0x0000010au, 0x00000109u, 0x0003001eu, 0x0000010bu, + 0x0000010au, 0x00040020u, 0x0000010cu, 0x0000000cu, 0x0000010bu, 0x0004003bu, 0x0000010cu, 0x0000010du, + 0x0000000cu, 0x0006002cu, 0x00000014u, 0x0000012bu, 0x0000009fu, 0x000000beu, 0x000000d0u, 0x0004002bu, + 0x00000008u, 0x00000131u, 0x000000f8u, 0x0004002bu, 0x00000008u, 0x00000136u, 0x000000ffu, 0x0006002cu, + 0x00000014u, 0x00000137u, 0x00000136u, 0x00000136u, 0x00000136u, 0x0004002bu, 0x00000008u, 0x00000139u, + 0x000000f7u, 0x0006002cu, 0x00000014u, 0x0000013au, 0x00000139u, 0x00000139u, 0x00000139u, 0x00040017u, + 0x0000013bu, 0x0000002cu, 0x00000003u, 0x0004002bu, 0x00000008u, 0x00000144u, 0x0000001fu, 0x0004002bu, + 0x00000008u, 0x00000160u, 0x000007ffu, 0x0004002bu, 0x00000008u, 0x00000167u, 0x00040000u, 0x0004002bu, + 0x00000008u, 0x00000173u, 0x0003ffffu, 0x0004002bu, 0x00000008u, 0x00000178u, 0x00000011u, 0x0004002bu, + 0x00000006u, 0x00000196u, 0x00000002u, 0x0004002bu, 0x00000006u, 0x000001bbu, 0x00000000u, 0x0004002bu, + 0x00000006u, 0x000001ddu, 0x00000001u, 0x0004002bu, 0x00000006u, 0x000001e3u, 0x00000003u, 0x0004002bu, + 0x00000008u, 0x00000225u, 0x0000003cu, 0x00090019u, 0x0000025au, 0x00000006u, 0x00000005u, 0x00000000u, + 0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, 0x0000025bu, 0x00000000u, 0x0000025au, + 0x0004003bu, 0x0000025bu, 0x0000025cu, 0x00000000u, 0x0004002bu, 0x00000008u, 0x00000298u, 0x0000000fu, + 0x0003002au, 0x0000002cu, 0x0000029bu, 0x0004002bu, 0x00000008u, 0x000002abu, 0x00008000u, 0x0004002bu, + 0x00000008u, 0x000002b1u, 0x00000010u, 0x00030029u, 0x0000002cu, 0x000002b6u, 0x0004002bu, 0x00000008u, + 0x000002b7u, 0x0000ffffu, 0x00040032u, 0x00000008u, 0x0000036au, 0x00000000u, 0x00040032u, 0x00000006u, + 0x00000370u, 0x00000000u, 0x00060034u, 0x00000006u, 0x00000371u, 0x00000082u, 0x00000370u, 0x000001ddu, + 0x0003001du, 0x00000379u, 0x000000a0u, 0x0003001eu, 0x0000037au, 0x00000379u, 0x00040020u, 0x0000037bu, + 0x0000000cu, 0x0000037au, 0x0004003bu, 0x0000037bu, 0x0000037cu, 0x0000000cu, 0x0003001du, 0x00000388u, + 0x000000a0u, 0x0003001eu, 0x00000389u, 0x00000388u, 0x00040020u, 0x0000038au, 0x0000000cu, 0x00000389u, + 0x0004003bu, 0x0000038au, 0x0000038bu, 0x0000000cu, 0x00060034u, 0x00000006u, 0x00000394u, 0x000000c2u, + 0x00000371u, 0x000001ddu, 0x00060034u, 0x00000006u, 0x00000398u, 0x000000c2u, 0x00000370u, 0x000000b2u, + 0x0003001du, 0x0000039du, 0x000000a2u, 0x0003001eu, 0x0000039eu, 0x0000039du, 0x00040020u, 0x0000039fu, + 0x0000000cu, 0x0000039eu, 0x0004003bu, 0x0000039fu, 0x000003a0u, 0x0000000cu, 0x00040017u, 0x000003a6u, + 0x00000006u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x000003aau, 0x00000008u, 0x0004002bu, 0x00000006u, + 0x000003b1u, 0x000000f8u, 0x00060034u, 0x00000006u, 0x000003c9u, 0x000000c2u, 0x00000370u, 0x000000b2u, + 0x0004002bu, 0x00000006u, 0x000003d8u, 0x000000ffu, 0x00060034u, 0x00000006u, 0x000003e0u, 0x000000c2u, + 0x00000371u, 0x00000196u, 0x00060034u, 0x00000006u, 0x000003e4u, 0x000000c2u, 0x00000370u, 0x000000b8u, + 0x0003001du, 0x000003e9u, 0x00000006u, 0x0003001eu, 0x000003eau, 0x000003e9u, 0x00040020u, 0x000003ebu, + 0x0000000cu, 0x000003eau, 0x0004003bu, 0x000003ebu, 0x000003ecu, 0x0000000cu, 0x0004002bu, 0x00000006u, + 0x000003f2u, 0x00000018u, 0x0004002bu, 0x00000006u, 0x000003f3u, 0x00000010u, 0x0007002cu, 0x000000aeu, + 0x000003f4u, 0x000003f2u, 0x000003f3u, 0x000003aau, 0x000001bbu, 0x0007002cu, 0x000000aeu, 0x000003f6u, + 0x000003d8u, 0x000003d8u, 0x000003d8u, 0x000003d8u, 0x0004002bu, 0x00000006u, 0x0000040bu, 0x00000006u, + 0x0004002bu, 0x00000006u, 0x00000418u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x00000445u, 0x0000000au, + 0x0004002bu, 0x00000006u, 0x0000044bu, 0x00000005u, 0x0004002bu, 0x00000006u, 0x00000456u, 0x00000007u, + 0x00060034u, 0x00000006u, 0x0000046du, 0x000000c2u, 0x00000370u, 0x000000b2u, 0x00060034u, 0x00000006u, + 0x00000492u, 0x000000c2u, 0x00000370u, 0x000001ddu, 0x0004002bu, 0x00000006u, 0x00000494u, 0x0000ffffu, + 0x00060034u, 0x00000006u, 0x00000499u, 0x000000c2u, 0x00000370u, 0x00000196u, 0x0004002bu, 0x00000006u, + 0x0000049bu, 0xffffffffu, 0x00060034u, 0x00000006u, 0x000004dbu, 0x000000c2u, 0x00000370u, 0x000000b2u, + 0x00060034u, 0x00000006u, 0x0000050eu, 0x000000c2u, 0x00000370u, 0x000000b2u, 0x00060034u, 0x00000006u, + 0x0000052du, 0x000000c2u, 0x00000370u, 0x000000b8u, 0x00040032u, 0x00000008u, 0x0000055au, 0x00000000u, + 0x00060034u, 0x00000008u, 0x0000055bu, 0x000000c7u, 0x0000055au, 0x000000b2u, 0x00060034u, 0x0000002cu, + 0x0000055cu, 0x000000abu, 0x0000055bu, 0x0000009fu, 0x00060034u, 0x00000008u, 0x0000055du, 0x000000c3u, + 0x0000055au, 0x000000b2u, 0x00060034u, 0x0000002cu, 0x0000055eu, 0x000000aau, 0x0000055du, 0x0000009fu, + 0x00060034u, 0x0000002cu, 0x0000055fu, 0x000000a7u, 0x0000055cu, 0x0000055eu, 0x0004002bu, 0x00000006u, + 0x00000562u, 0x00000048u, 0x00030031u, 0x0000002cu, 0x00000566u, 0x00050034u, 0x0000002cu, 0x00000567u, + 0x000000a8u, 0x00000566u, 0x00060034u, 0x00000006u, 0x00000571u, 0x000000c2u, 0x00000370u, 0x000000b2u, + 0x00060034u, 0x00000006u, 0x0000058au, 0x000000c2u, 0x00000370u, 0x000001ddu, 0x00040017u, 0x00000592u, + 0x0000002cu, 0x00000002u, 0x00060034u, 0x00000008u, 0x00000599u, 0x000000c4u, 0x000000b2u, 0x0000055du, + 0x00060034u, 0x00000008u, 0x0000059au, 0x00000082u, 0x00000599u, 0x000000b2u, 0x00060034u, 0x00000006u, + 0x0000059bu, 0x00000080u, 0x0000059au, 0x000001bbu, 0x00060034u, 0x00000006u, 0x000005a4u, 0x00000080u, + 0x00000599u, 0x000001bbu, 0x00060034u, 0x00000008u, 0x000005fcu, 0x00000084u, 0x00000599u, 0x00000599u, + 0x00060034u, 0x00000006u, 0x000005fdu, 0x00000080u, 0x000005fcu, 0x000001bbu, 0x00060034u, 0x00000006u, + 0x000005feu, 0x000000c2u, 0x00000370u, 0x000000b8u, 0x00060034u, 0x00000006u, 0x000005ffu, 0x00000084u, + 0x000005fdu, 0x000005feu, 0x00060034u, 0x00000008u, 0x00000613u, 0x00000082u, 0x00000599u, 0x000000b2u, + 0x00060034u, 0x00000006u, 0x00000614u, 0x00000080u, 0x00000613u, 0x000001bbu, 0x00060034u, 0x00000006u, + 0x0000061du, 0x00000080u, 0x00000599u, 0x000001bbu, 0x00060034u, 0x0000002cu, 0x0000063fu, 0x000000abu, + 0x0000055du, 0x0000009fu, 0x00060034u, 0x0000002cu, 0x00000640u, 0x000000a7u, 0x0000055cu, 0x0000063fu, + 0x0004002bu, 0x00000008u, 0x0000064fu, 0x000000e0u, 0x0006002cu, 0x00000014u, 0x0000065au, 0x0000009fu, + 0x0000009fu, 0x0000009fu, 0x00060034u, 0x0000002cu, 0x00000673u, 0x000000aau, 0x0000036au, 0x0000009fu, + 0x0007002cu, 0x00000009u, 0x00000684u, 0x0000009fu, 0x0000009fu, 0x0000009fu, 0x0000009fu, 0x0004002bu, + 0x00000006u, 0x0000069du, 0x000000e0u, 0x0004002bu, 0x00000008u, 0x00000727u, 0x000001ffu, 0x0004001cu, + 0x00000733u, 0x000000a0u, 0x000003aau, 0x0005001eu, 0x00000734u, 0x000000a1u, 0x000000a1u, 0x00000733u, + 0x0003001du, 0x00000735u, 0x00000734u, 0x0003001eu, 0x00000736u, 0x00000735u, 0x00040020u, 0x00000737u, + 0x0000000cu, 0x00000736u, 0x0004003bu, 0x00000737u, 0x00000738u, 0x0000000cu, 0x0004002bu, 0x00000006u, + 0x0000075eu, 0x00000020u, 0x0004002bu, 0x00000006u, 0x00000764u, 0x00000040u, 0x0004002bu, 0x00000006u, + 0x0000076au, 0x00000080u, 0x0004002bu, 0x00000006u, 0x00000770u, 0x00000100u, 0x00040020u, 0x0000080fu, + 0x00000001u, 0x000003a6u, 0x0004003bu, 0x0000080fu, 0x00000810u, 0x00000001u, 0x00040020u, 0x00000811u, + 0x00000001u, 0x00000006u, 0x0004003bu, 0x0000080fu, 0x0000081au, 0x00000001u, 0x00040032u, 0x00000008u, + 0x00000823u, 0x00000400u, 0x00040032u, 0x00000006u, 0x00000824u, 0x00000001u, 0x00040032u, 0x00000006u, + 0x00000825u, 0x00000001u, 0x00060033u, 0x000003a6u, 0x00000826u, 0x00000824u, 0x00000825u, 0x000001ddu, + 0x00060034u, 0x00000006u, 0x00000827u, 0x00000051u, 0x00000826u, 0x00000000u, 0x00060034u, 0x00000008u, + 0x00000828u, 0x00000080u, 0x00000827u, 0x000001bbu, 0x00060034u, 0x00000008u, 0x00000829u, 0x00000087u, + 0x00000823u, 0x00000828u, 0x00040032u, 0x00000008u, 0x0000082eu, 0x00000100u, 0x0004002bu, 0x00000008u, + 0x0000082fu, 0x00000020u, 0x00060034u, 0x00000008u, 0x00000830u, 0x00000087u, 0x0000082eu, 0x0000082fu, + 0x0003001du, 0x00000833u, 0x00000006u, 0x0003001eu, 0x00000834u, 0x00000833u, 0x00040020u, 0x00000835u, + 0x0000000cu, 0x00000834u, 0x0004003bu, 0x00000835u, 0x00000836u, 0x0000000cu, 0x0007001eu, 0x0000083au, + 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00040020u, 0x0000083bu, 0x00000009u, + 0x0000083au, 0x0004003bu, 0x0000083bu, 0x0000083cu, 0x00000009u, 0x00040020u, 0x0000083du, 0x00000009u, + 0x00000006u, 0x0003001du, 0x00000867u, 0x00000006u, 0x0003001eu, 0x00000868u, 0x00000867u, 0x00040020u, + 0x00000869u, 0x0000000cu, 0x00000868u, 0x0004003bu, 0x00000869u, 0x0000086au, 0x0000000cu, 0x0003001du, + 0x00000871u, 0x00000006u, 0x0003001eu, 0x00000872u, 0x00000871u, 0x00040020u, 0x00000873u, 0x0000000cu, + 0x00000872u, 0x0004003bu, 0x00000873u, 0x00000874u, 0x0000000cu, 0x00060034u, 0x00000006u, 0x00000892u, + 0x00000051u, 0x00000826u, 0x00000000u, 0x00060034u, 0x00000006u, 0x00000893u, 0x00000051u, 0x00000826u, + 0x00000001u, 0x00060034u, 0x00000006u, 0x00000894u, 0x00000084u, 0x00000892u, 0x00000893u, 0x0004003bu, + 0x00000811u, 0x00000896u, 0x00000001u, 0x00040015u, 0x0000089au, 0x00000008u, 0x00000001u, 0x0003001du, + 0x0000089bu, 0x0000089au, 0x0003001eu, 0x0000089cu, 0x0000089bu, 0x00040020u, 0x0000089du, 0x0000000cu, + 0x0000089cu, 0x0004003bu, 0x0000089du, 0x0000089eu, 0x0000000cu, 0x00040020u, 0x000008a0u, 0x0000000cu, + 0x0000089au, 0x0004002bu, 0x00000008u, 0x000008a9u, 0x00000040u, 0x0003001du, 0x000008bau, 0x00000006u, + 0x0003001eu, 0x000008bbu, 0x000008bau, 0x00040020u, 0x000008bcu, 0x0000000cu, 0x000008bbu, 0x0004003bu, + 0x000008bcu, 0x000008bdu, 0x0000000cu, 0x0003001du, 0x000008c8u, 0x000000a1u, 0x0003001eu, 0x000008c9u, + 0x000008c8u, 0x00040020u, 0x000008cau, 0x0000000cu, 0x000008c9u, 0x0004003bu, 0x000008cau, 0x000008cbu, + 0x0000000cu, 0x0003001du, 0x000008d2u, 0x00000008u, 0x0003001eu, 0x000008d3u, 0x000008d2u, 0x00040020u, + 0x000008d4u, 0x0000000cu, 0x000008d3u, 0x0004003bu, 0x000008d4u, 0x000008d5u, 0x0000000cu, 0x00040020u, + 0x000008d7u, 0x0000000cu, 0x00000008u, 0x0003001du, 0x000008dbu, 0x000000a0u, 0x0003001eu, 0x000008dcu, + 0x000008dbu, 0x00040020u, 0x000008ddu, 0x0000000cu, 0x000008dcu, 0x0004003bu, 0x000008ddu, 0x000008deu, + 0x0000000cu, 0x00030001u, 0x00000009u, 0x000012a1u, 0x00030001u, 0x00000008u, 0x000012c7u, 0x00030001u, + 0x00000014u, 0x000012f9u, 0x00030001u, 0x00000006u, 0x000014b8u, 0x0006002cu, 0x000003a6u, 0x00001823u, + 0x000003b1u, 0x000003b1u, 0x000003b1u, 0x0005002cu, 0x0000006fu, 0x00001824u, 0x000001e3u, 0x000001e3u, + 0x0006002cu, 0x00000014u, 0x00001825u, 0x00000131u, 0x00000131u, 0x00000131u, 0x0006002cu, 0x00000014u, + 0x00001826u, 0x000000d6u, 0x000000d6u, 0x000000d6u, 0x0006002cu, 0x00000014u, 0x00001827u, 0x000000dcu, + 0x000000dcu, 0x000000dcu, 0x0006002cu, 0x00000014u, 0x00001828u, 0x00000144u, 0x00000144u, 0x00000144u, + 0x0006002cu, 0x00000014u, 0x00001829u, 0x000000cau, 0x000000cau, 0x000000cau, 0x0006002cu, 0x00000014u, + 0x0000182au, 0x000000b8u, 0x000000b8u, 0x000000b8u, 0x0006002cu, 0x00000014u, 0x0000182bu, 0x00000160u, + 0x00000160u, 0x00000160u, 0x0004002bu, 0x000000a0u, 0x0000182cu, 0x00000000u, 0x0004002bu, 0x000000a0u, + 0x0000182du, 0x000000ffu, 0x0004002bu, 0x000000a2u, 0x0000182eu, 0x0000ffffu, 0x00040017u, 0x00001834u, + 0x0000002cu, 0x00000004u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, + 0x00000005u, 0x000300f7u, 0x00000951u, 0x00000000u, 0x000300fbu, 0x000001bbu, 0x00000952u, 0x000200f8u, + 0x00000952u, 0x0004003du, 0x000003a6u, 0x0000081bu, 0x0000081au, 0x0007004fu, 0x0000006fu, 0x0000081cu, + 0x0000081bu, 0x0000081bu, 0x00000000u, 0x00000001u, 0x0004007cu, 0x0000002eu, 0x0000081du, 0x0000081cu, + 0x00050051u, 0x00000008u, 0x00000820u, 0x0000081du, 0x00000000u, 0x00050051u, 0x00000008u, 0x00000822u, + 0x0000081du, 0x00000001u, 0x00050084u, 0x00000008u, 0x0000082au, 0x00000822u, 0x00000829u, 0x00050080u, + 0x00000008u, 0x0000082bu, 0x00000820u, 0x0000082au, 0x00050084u, 0x00000008u, 0x00000831u, 0x0000082bu, + 0x00000830u, 0x00060041u, 0x000000e9u, 0x00000838u, 0x00000836u, 0x0000009fu, 0x0000082bu, 0x0004003du, + 0x00000006u, 0x00000839u, 0x00000838u, 0x00050041u, 0x0000083du, 0x0000083eu, 0x0000083cu, 0x000000c4u, + 0x0004003du, 0x00000006u, 0x0000083fu, 0x0000083eu, 0x000500c7u, 0x00000006u, 0x00000840u, 0x00000839u, + 0x0000083fu, 0x000500aau, 0x0000002cu, 0x00000842u, 0x00000840u, 0x000001bbu, 0x000300f7u, 0x00000844u, + 0x00000000u, 0x000400fau, 0x00000842u, 0x00000843u, 0x00000844u, 0x000200f8u, 0x00000843u, 0x000200f9u, + 0x00000951u, 0x000200f8u, 0x00000844u, 0x0004003du, 0x000003a6u, 0x00000847u, 0x00000810u, 0x0007004fu, + 0x0000006fu, 0x00000848u, 0x00000847u, 0x00000847u, 0x00000000u, 0x00000001u, 0x00050041u, 0x0000083du, + 0x0000084au, 0x0000083cu, 0x000000b8u, 0x0004003du, 0x00000006u, 0x0000084bu, 0x0000084au, 0x00050041u, + 0x0000083du, 0x0000084du, 0x0000083cu, 0x000000beu, 0x0004003du, 0x00000006u, 0x0000084eu, 0x0000084du, + 0x00050041u, 0x0000083du, 0x00000850u, 0x0000083cu, 0x0000009fu, 0x0004003du, 0x00000006u, 0x00000851u, + 0x00000850u, 0x00050041u, 0x0000083du, 0x00000853u, 0x0000083cu, 0x000000b2u, 0x0004003du, 0x00000006u, + 0x00000854u, 0x00000853u, 0x00050050u, 0x0000006fu, 0x00000964u, 0x0000084bu, 0x0000084eu, 0x000500b0u, + 0x00000592u, 0x00000965u, 0x00000848u, 0x00000964u, 0x0004009bu, 0x0000002cu, 0x00000966u, 0x00000965u, + 0x000300f7u, 0x0000098fu, 0x00000000u, 0x000400fau, 0x00000966u, 0x00000967u, 0x0000098fu, 0x000200f8u, + 0x00000967u, 0x00050050u, 0x0000006fu, 0x00000969u, 0x0000059bu, 0x0000059bu, 0x000500c7u, 0x0000006fu, + 0x0000096au, 0x00000848u, 0x00000969u, 0x00050050u, 0x0000002eu, 0x0000096cu, 0x0000055du, 0x0000055du, + 0x000500c2u, 0x0000006fu, 0x0000096du, 0x00000848u, 0x0000096cu, 0x00050051u, 0x00000006u, 0x0000096fu, + 0x0000096au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000970u, 0x0000096fu, 0x000005a4u, 0x00050051u, + 0x00000006u, 0x00000972u, 0x0000096au, 0x00000000u, 0x00050080u, 0x00000006u, 0x00000973u, 0x00000970u, + 0x00000972u, 0x000500c2u, 0x00000006u, 0x00000976u, 0x0000084bu, 0x0000055du, 0x00050051u, 0x00000006u, + 0x00000978u, 0x0000096du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000979u, 0x00000976u, 0x00000978u, + 0x00050080u, 0x00000006u, 0x0000097au, 0x00000851u, 0x00000979u, 0x00050051u, 0x00000006u, 0x0000097cu, + 0x0000096du, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000097du, 0x0000097au, 0x0000097cu, 0x000300f7u, + 0x000009f9u, 0x00000000u, 0x000d00fbu, 0x0000036au, 0x000009f9u, 0x00000000u, 0x00000996u, 0x00000001u, + 0x00000996u, 0x00000002u, 0x000009adu, 0x00000003u, 0x000009d3u, 0x00000004u, 0x000009eau, 0x000200f8u, + 0x000009eau, 0x000500c7u, 0x00000006u, 0x000009ecu, 0x0000097du, 0x000003e0u, 0x00050084u, 0x00000006u, + 0x000009eeu, 0x00000973u, 0x000003e4u, 0x00050080u, 0x00000006u, 0x000009f0u, 0x000009ecu, 0x000009eeu, + 0x00060041u, 0x000000e9u, 0x000009f2u, 0x000003ecu, 0x0000009fu, 0x000009f0u, 0x0004003du, 0x00000006u, + 0x000009f3u, 0x000009f2u, 0x00070050u, 0x000000aeu, 0x000009f5u, 0x000009f3u, 0x000009f3u, 0x000009f3u, + 0x000009f3u, 0x000500c2u, 0x000000aeu, 0x000009f6u, 0x000009f5u, 0x000003f4u, 0x000500c7u, 0x000000aeu, + 0x000009f7u, 0x000009f6u, 0x000003f6u, 0x0004007cu, 0x00000009u, 0x000009f8u, 0x000009f7u, 0x000200f9u, + 0x000009f9u, 0x000200f8u, 0x000009d3u, 0x000500c7u, 0x00000006u, 0x000009d5u, 0x0000097du, 0x00000394u, + 0x00050084u, 0x00000006u, 0x000009d7u, 0x00000973u, 0x000003c9u, 0x00050080u, 0x00000006u, 0x000009d9u, + 0x000009d5u, 0x000009d7u, 0x000500c6u, 0x00000006u, 0x000009dbu, 0x000009d9u, 0x000001ddu, 0x00060041u, + 0x000000eeu, 0x000009dcu, 0x000003a0u, 0x0000009fu, 0x000009dbu, 0x0004003du, 0x000000a2u, 0x000009ddu, + 0x000009dcu, 0x00040071u, 0x00000006u, 0x000009deu, 0x000009ddu, 0x000500c2u, 0x00000006u, 0x000009e0u, + 0x000009deu, 0x000003aau, 0x0004007cu, 0x00000008u, 0x000009e1u, 0x000009e0u, 0x000500c7u, 0x00000006u, + 0x000009e4u, 0x000009deu, 0x000003d8u, 0x0004007cu, 0x00000008u, 0x000009e5u, 0x000009e4u, 0x00070050u, + 0x00000009u, 0x000009e9u, 0x000009e1u, 0x000009e1u, 0x000009e1u, 0x000009e5u, 0x000200f9u, 0x000009f9u, + 0x000200f8u, 0x000009adu, 0x000500c7u, 0x00000006u, 0x000009afu, 0x0000097du, 0x00000394u, 0x00050084u, + 0x00000006u, 0x000009b1u, 0x00000973u, 0x00000398u, 0x00050080u, 0x00000006u, 0x000009b3u, 0x000009afu, + 0x000009b1u, 0x000500c6u, 0x00000006u, 0x000009b5u, 0x000009b3u, 0x000001ddu, 0x00060041u, 0x000000eeu, + 0x000009b6u, 0x000003a0u, 0x0000009fu, 0x000009b5u, 0x0004003du, 0x000000a2u, 0x000009b7u, 0x000009b6u, + 0x00040071u, 0x00000006u, 0x000009b8u, 0x000009b7u, 0x000500c2u, 0x00000006u, 0x000009bau, 0x000009b8u, + 0x000003aau, 0x000500c2u, 0x00000006u, 0x000009bcu, 0x000009b8u, 0x000001e3u, 0x000500c4u, 0x00000006u, + 0x000009beu, 0x000009b8u, 0x00000196u, 0x00060050u, 0x000003a6u, 0x000009bfu, 0x000009bau, 0x000009bcu, + 0x000009beu, 0x000500c7u, 0x000003a6u, 0x000009c1u, 0x000009bfu, 0x00001823u, 0x0004007cu, 0x00000014u, + 0x000009c3u, 0x000009c1u, 0x00060041u, 0x000000f5u, 0x000009c5u, 0x0000038bu, 0x0000009fu, 0x000009b3u, + 0x0004003du, 0x000000a0u, 0x000009c6u, 0x000009c5u, 0x00040071u, 0x00000006u, 0x000009c7u, 0x000009c6u, + 0x0004007cu, 0x00000008u, 0x000009c8u, 0x000009c7u, 0x000500c4u, 0x00000008u, 0x000009c9u, 0x000009c8u, + 0x000000cau, 0x000500c7u, 0x00000006u, 0x000009cbu, 0x000009b8u, 0x000001ddu, 0x000500c4u, 0x00000006u, + 0x000009ccu, 0x000009cbu, 0x000000d6u, 0x0004007cu, 0x00000008u, 0x000009cdu, 0x000009ccu, 0x000500c5u, + 0x00000008u, 0x000009ceu, 0x000009c9u, 0x000009cdu, 0x00050051u, 0x00000008u, 0x000009cfu, 0x000009c3u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000009d0u, 0x000009c3u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000009d1u, 0x000009c3u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000009d2u, 0x000009cfu, 0x000009d0u, + 0x000009d1u, 0x000009ceu, 0x000200f9u, 0x000009f9u, 0x000200f8u, 0x00000996u, 0x000500c7u, 0x00000006u, + 0x00000998u, 0x0000097du, 0x00000371u, 0x00050084u, 0x00000006u, 0x0000099au, 0x00000973u, 0x00000370u, + 0x00050080u, 0x00000006u, 0x0000099cu, 0x00000998u, 0x0000099au, 0x000500c6u, 0x00000006u, 0x0000099eu, + 0x0000099cu, 0x000001e3u, 0x00060041u, 0x000000f5u, 0x0000099fu, 0x0000037cu, 0x0000009fu, 0x0000099eu, + 0x0004003du, 0x000000a0u, 0x000009a0u, 0x0000099fu, 0x00040071u, 0x00000006u, 0x000009a1u, 0x000009a0u, + 0x0004007cu, 0x00000008u, 0x000009a2u, 0x000009a1u, 0x000500c2u, 0x00000006u, 0x000009a7u, 0x0000099cu, + 0x000000b2u, 0x00060041u, 0x000000f5u, 0x000009a8u, 0x0000038bu, 0x0000009fu, 0x000009a7u, 0x0004003du, + 0x000000a0u, 0x000009a9u, 0x000009a8u, 0x00040071u, 0x00000006u, 0x000009aau, 0x000009a9u, 0x0004007cu, + 0x00000008u, 0x000009abu, 0x000009aau, 0x00070050u, 0x00000009u, 0x000009acu, 0x000009a2u, 0x000009a2u, + 0x000009a2u, 0x000009abu, 0x000200f9u, 0x000009f9u, 0x000200f8u, 0x000009f9u, 0x000d00f5u, 0x00000009u, + 0x000012a2u, 0x000012a1u, 0x00000967u, 0x000009acu, 0x00000996u, 0x000009d2u, 0x000009adu, 0x000009e9u, + 0x000009d3u, 0x000009f8u, 0x000009eau, 0x00050080u, 0x00000006u, 0x00000988u, 0x00000854u, 0x00000979u, + 0x00050080u, 0x00000006u, 0x0000098bu, 0x00000988u, 0x0000097cu, 0x000500c7u, 0x00000006u, 0x000009fdu, + 0x0000098bu, 0x00000394u, 0x00050084u, 0x00000006u, 0x000009ffu, 0x00000973u, 0x0000046du, 0x00050080u, + 0x00000006u, 0x00000a01u, 0x000009fdu, 0x000009ffu, 0x000500c6u, 0x00000006u, 0x00000a03u, 0x00000a01u, + 0x000001ddu, 0x00060041u, 0x000000eeu, 0x00000a04u, 0x000003a0u, 0x0000009fu, 0x00000a03u, 0x0004003du, + 0x000000a2u, 0x00000a05u, 0x00000a04u, 0x00040071u, 0x00000006u, 0x00000a06u, 0x00000a05u, 0x0004007cu, + 0x00000008u, 0x00000a07u, 0x00000a06u, 0x000500c3u, 0x00000008u, 0x00000a09u, 0x00000a07u, 0x000000b8u, + 0x00060041u, 0x000000f5u, 0x00000a0bu, 0x0000038bu, 0x0000009fu, 0x00000a01u, 0x0004003du, 0x000000a0u, + 0x00000a0cu, 0x00000a0bu, 0x00040071u, 0x00000006u, 0x00000a0du, 0x00000a0cu, 0x0004007cu, 0x00000008u, + 0x00000a0eu, 0x00000a0du, 0x000500c7u, 0x00000008u, 0x00000a10u, 0x00000a07u, 0x000000beu, 0x000500c4u, + 0x00000008u, 0x00000a11u, 0x00000a10u, 0x000000b8u, 0x000500c5u, 0x00000008u, 0x00000a12u, 0x00000a0eu, + 0x00000a11u, 0x000200f9u, 0x0000098fu, 0x000200f8u, 0x0000098fu, 0x000700f5u, 0x00000006u, 0x000014b7u, + 0x000014b8u, 0x00000844u, 0x0000097du, 0x000009f9u, 0x000700f5u, 0x00000008u, 0x000012d3u, 0x000012c7u, + 0x00000844u, 0x00000a12u, 0x000009f9u, 0x000700f5u, 0x00000008u, 0x000012c6u, 0x000012c7u, 0x00000844u, + 0x00000a09u, 0x000009f9u, 0x000700f5u, 0x00000009u, 0x000012a0u, 0x000012a1u, 0x00000844u, 0x000012a2u, + 0x000009f9u, 0x000200f9u, 0x00000856u, 0x000200f8u, 0x00000856u, 0x000700f5u, 0x00000008u, 0x000012d2u, + 0x000012d3u, 0x0000098fu, 0x00001302u, 0x00000859u, 0x000700f5u, 0x00000008u, 0x000012c5u, 0x000012c6u, + 0x0000098fu, 0x000012ffu, 0x00000859u, 0x000700f5u, 0x0000002cu, 0x000012b7u, 0x0000029bu, 0x0000098fu, + 0x0000155eu, 0x00000859u, 0x000700f5u, 0x00000009u, 0x0000129fu, 0x000012a0u, 0x0000098fu, 0x000012f1u, + 0x00000859u, 0x000700f5u, 0x0000002cu, 0x0000129au, 0x0000029bu, 0x0000098fu, 0x00001541u, 0x00000859u, + 0x000700f5u, 0x00000006u, 0x00001294u, 0x00000840u, 0x0000098fu, 0x00000865u, 0x00000859u, 0x000700f5u, + 0x00000014u, 0x0000144du, 0x000012f9u, 0x0000098fu, 0x0000144cu, 0x00000859u, 0x000700f5u, 0x00000014u, + 0x00001422u, 0x000012f9u, 0x0000098fu, 0x00001421u, 0x00000859u, 0x000700f5u, 0x00000008u, 0x000013f8u, + 0x000012c7u, 0x0000098fu, 0x000013f7u, 0x00000859u, 0x000700f5u, 0x00000008u, 0x000013ceu, 0x000012c7u, + 0x0000098fu, 0x000013cdu, 0x00000859u, 0x000700f5u, 0x00000014u, 0x000013a1u, 0x000012f9u, 0x0000098fu, + 0x000013a0u, 0x00000859u, 0x000700f5u, 0x00000014u, 0x00001383u, 0x000012f9u, 0x0000098fu, 0x00001382u, + 0x00000859u, 0x000700f5u, 0x00000008u, 0x00001366u, 0x000012c7u, 0x0000098fu, 0x00001365u, 0x00000859u, + 0x000700f5u, 0x00000008u, 0x00001349u, 0x000012c7u, 0x0000098fu, 0x00001348u, 0x00000859u, 0x000700f5u, + 0x00000014u, 0x000012f7u, 0x000012f9u, 0x0000098fu, 0x000012f6u, 0x00000859u, 0x000500abu, 0x0000002cu, + 0x0000085cu, 0x00001294u, 0x000001bbu, 0x000400f6u, 0x00000858u, 0x00000859u, 0x00000000u, 0x000400fau, + 0x0000085cu, 0x00000857u, 0x00000858u, 0x000200f8u, 0x00000857u, 0x0006000cu, 0x00000008u, 0x0000085fu, + 0x00000001u, 0x00000049u, 0x00001294u, 0x000500c4u, 0x00000008u, 0x00000861u, 0x000000b2u, 0x0000085fu, + 0x0004007cu, 0x00000006u, 0x00000862u, 0x00000861u, 0x000400c8u, 0x00000006u, 0x00000863u, 0x00000862u, + 0x000500c7u, 0x00000006u, 0x00000865u, 0x00001294u, 0x00000863u, 0x00050080u, 0x00000008u, 0x0000086du, + 0x00000831u, 0x0000085fu, 0x00060041u, 0x000000e9u, 0x0000086eu, 0x0000086au, 0x0000009fu, 0x0000086du, + 0x0004003du, 0x00000006u, 0x0000086fu, 0x0000086eu, 0x00060041u, 0x000000e9u, 0x00000878u, 0x00000874u, + 0x0000009fu, 0x0000086du, 0x0004003du, 0x00000006u, 0x00000879u, 0x00000878u, 0x000200f9u, 0x0000087au, + 0x000200f8u, 0x0000087au, 0x000700f5u, 0x00000014u, 0x0000144cu, 0x0000144du, 0x00000857u, 0x000017c8u, + 0x0000087du, 0x000700f5u, 0x00000014u, 0x00001421u, 0x00001422u, 0x00000857u, 0x000017aeu, 0x0000087du, + 0x000700f5u, 0x00000008u, 0x000013f7u, 0x000013f8u, 0x00000857u, 0x00001793u, 0x0000087du, 0x000700f5u, + 0x00000008u, 0x000013cdu, 0x000013ceu, 0x00000857u, 0x00001778u, 0x0000087du, 0x000700f5u, 0x00000014u, + 0x000013a0u, 0x000013a1u, 0x00000857u, 0x00001750u, 0x0000087du, 0x000700f5u, 0x00000014u, 0x00001382u, + 0x00001383u, 0x00000857u, 0x00001729u, 0x0000087du, 0x000700f5u, 0x00000008u, 0x00001365u, 0x00001366u, + 0x00000857u, 0x00001701u, 0x0000087du, 0x000700f5u, 0x00000008u, 0x00001348u, 0x00001349u, 0x00000857u, + 0x000016d9u, 0x0000087du, 0x000700f5u, 0x00000008u, 0x00001302u, 0x000012d2u, 0x00000857u, 0x00001668u, + 0x0000087du, 0x000700f5u, 0x00000008u, 0x000012ffu, 0x000012c5u, 0x00000857u, 0x0000162au, 0x0000087du, + 0x000700f5u, 0x00000014u, 0x000012f6u, 0x000012f7u, 0x00000857u, 0x000015ecu, 0x0000087du, 0x000700f5u, + 0x00000009u, 0x000012f1u, 0x0000129fu, 0x00000857u, 0x000015dfu, 0x0000087du, 0x000700f5u, 0x00000006u, + 0x000012f0u, 0x0000086fu, 0x00000857u, 0x000008f1u, 0x0000087du, 0x000700f5u, 0x00000006u, 0x000012efu, + 0x00000879u, 0x00000857u, 0x00000889u, 0x0000087du, 0x000700f5u, 0x0000002cu, 0x0000155eu, 0x000012b7u, + 0x00000857u, 0x0000155fu, 0x0000087du, 0x000700f5u, 0x0000002cu, 0x00001541u, 0x0000129au, 0x00000857u, + 0x00001542u, 0x0000087du, 0x000500abu, 0x0000002cu, 0x00000880u, 0x000012efu, 0x000001bbu, 0x000400f6u, + 0x0000087cu, 0x0000087du, 0x00000000u, 0x000400fau, 0x00000880u, 0x0000087bu, 0x0000087cu, 0x000200f8u, + 0x0000087bu, 0x0006000cu, 0x00000008u, 0x00000883u, 0x00000001u, 0x00000049u, 0x000012efu, 0x000500c4u, + 0x00000008u, 0x00000885u, 0x000000b2u, 0x00000883u, 0x0004007cu, 0x00000006u, 0x00000886u, 0x00000885u, + 0x000400c8u, 0x00000006u, 0x00000887u, 0x00000886u, 0x000500c7u, 0x00000006u, 0x00000889u, 0x000012efu, + 0x00000887u, 0x00050084u, 0x00000008u, 0x0000088du, 0x0000082fu, 0x0000085fu, 0x00050080u, 0x00000008u, + 0x0000088eu, 0x00000883u, 0x0000088du, 0x0004007cu, 0x00000006u, 0x0000088fu, 0x0000088eu, 0x00050084u, + 0x00000006u, 0x00000895u, 0x000012f0u, 0x00000894u, 0x0004003du, 0x00000006u, 0x00000897u, 0x00000896u, + 0x00050080u, 0x00000006u, 0x00000898u, 0x00000895u, 0x00000897u, 0x00060041u, 0x000008a0u, 0x000008a1u, + 0x0000089eu, 0x0000009fu, 0x00000898u, 0x0004003du, 0x0000089au, 0x000008a2u, 0x000008a1u, 0x00040072u, + 0x00000008u, 0x000008a3u, 0x000008a2u, 0x000500afu, 0x0000002cu, 0x000008a5u, 0x000008a3u, 0x0000009fu, + 0x000300f7u, 0x000008a7u, 0x00000000u, 0x000400fau, 0x000008a5u, 0x000008a6u, 0x000008a7u, 0x000200f8u, + 0x000008a6u, 0x000500c7u, 0x00000008u, 0x000008aau, 0x000008a3u, 0x000008a9u, 0x000500abu, 0x0000002cu, + 0x000008abu, 0x000008aau, 0x0000009fu, 0x000300f7u, 0x000008adu, 0x00000000u, 0x000400fau, 0x000008abu, + 0x000008acu, 0x000008b3u, 0x000200f8u, 0x000008b3u, 0x000500c7u, 0x00000008u, 0x000008b5u, 0x000008a3u, + 0x0000082fu, 0x000500abu, 0x0000002cu, 0x000008b6u, 0x000008b5u, 0x0000009fu, 0x000300f7u, 0x000008b8u, + 0x00000000u, 0x000400fau, 0x000008b6u, 0x000008b7u, 0x000008c6u, 0x000200f8u, 0x000008c6u, 0x00060041u, + 0x000000abu, 0x000008cdu, 0x000008cbu, 0x0000009fu, 0x00000898u, 0x0004003du, 0x000000a1u, 0x000008ceu, + 0x000008cdu, 0x00040071u, 0x000000aeu, 0x000008cfu, 0x000008ceu, 0x0004007cu, 0x00000009u, 0x000008d0u, + 0x000008cfu, 0x00060041u, 0x000008d7u, 0x000008d8u, 0x000008d5u, 0x0000009fu, 0x00000898u, 0x0004003du, + 0x00000008u, 0x000008d9u, 0x000008d8u, 0x00060041u, 0x000000f5u, 0x000008e0u, 0x000008deu, 0x0000009fu, + 0x00000898u, 0x0004003du, 0x000000a0u, 0x000008e1u, 0x000008e0u, 0x00040071u, 0x00000006u, 0x000008e2u, + 0x000008e1u, 0x0004007cu, 0x00000008u, 0x000008e3u, 0x000008e2u, 0x000500c3u, 0x00000008u, 0x00000bb0u, + 0x000008d9u, 0x000000e2u, 0x000500c7u, 0x00000008u, 0x00000bb3u, 0x000008d9u, 0x00000727u, 0x00080041u, + 0x000000f5u, 0x00000bbbu, 0x00000738u, 0x0000009fu, 0x0000088fu, 0x0000009fu, 0x000001ddu, 0x0004003du, + 0x000000a0u, 0x00000bbcu, 0x00000bbbu, 0x00040071u, 0x00000006u, 0x00000bbdu, 0x00000bbcu, 0x00070041u, + 0x000000abu, 0x00000c77u, 0x000000a9u, 0x0000009fu, 0x0000088fu, 0x000000dcu, 0x0004003du, 0x000000a1u, + 0x00000c78u, 0x00000c77u, 0x00040071u, 0x000000aeu, 0x00000c79u, 0x00000c78u, 0x0004007cu, 0x00000009u, + 0x00000c7au, 0x00000c79u, 0x00070041u, 0x000000abu, 0x00000c7cu, 0x000000a9u, 0x0000009fu, 0x0000088fu, + 0x000000e2u, 0x0004003du, 0x000000a1u, 0x00000c7du, 0x00000c7cu, 0x00040071u, 0x000000aeu, 0x00000c7eu, + 0x00000c7du, 0x0004007cu, 0x00000009u, 0x00000c7fu, 0x00000c7eu, 0x00070041u, 0x000000eeu, 0x00000c84u, + 0x000000a9u, 0x0000009fu, 0x0000088fu, 0x000000edu, 0x0004003du, 0x000000a2u, 0x00000c85u, 0x00000c84u, + 0x00040071u, 0x00000006u, 0x00000c86u, 0x00000c85u, 0x0004007cu, 0x00000008u, 0x00000c87u, 0x00000c86u, + 0x00070041u, 0x000000f5u, 0x00000c89u, 0x000000a9u, 0x0000009fu, 0x0000088fu, 0x000000f4u, 0x0004003du, + 0x000000a0u, 0x00000c8au, 0x00000c89u, 0x00040071u, 0x00000006u, 0x00000c8bu, 0x00000c8au, 0x0004007cu, + 0x00000008u, 0x00000c8cu, 0x00000c8bu, 0x00070041u, 0x000000abu, 0x00000c9au, 0x0000010du, 0x0000009fu, + 0x00000bbdu, 0x0000009fu, 0x0004003du, 0x000000a1u, 0x00000c9bu, 0x00000c9au, 0x00040071u, 0x000000aeu, + 0x00000c9cu, 0x00000c9bu, 0x0004007cu, 0x00000009u, 0x00000c9du, 0x00000c9cu, 0x00070041u, 0x000000abu, + 0x00000c9fu, 0x0000010du, 0x0000009fu, 0x00000bbdu, 0x000000b2u, 0x0004003du, 0x000000a1u, 0x00000ca0u, + 0x00000c9fu, 0x00040071u, 0x000000aeu, 0x00000ca1u, 0x00000ca0u, 0x0004007cu, 0x00000009u, 0x00000ca2u, + 0x00000ca1u, 0x00070041u, 0x000000e9u, 0x00000ca4u, 0x0000010du, 0x0000009fu, 0x00000bbdu, 0x000000b8u, + 0x0004003du, 0x00000006u, 0x00000ca5u, 0x00000ca4u, 0x00070041u, 0x000000f5u, 0x00000ca7u, 0x0000010du, + 0x0000009fu, 0x00000bbdu, 0x000000beu, 0x0004003du, 0x000000a0u, 0x00000ca8u, 0x00000ca7u, 0x00040071u, + 0x00000006u, 0x00000ca9u, 0x00000ca8u, 0x0004007cu, 0x00000008u, 0x00000caau, 0x00000ca9u, 0x00070041u, + 0x000000f5u, 0x00000cacu, 0x0000010du, 0x0000009fu, 0x00000bbdu, 0x000000c4u, 0x0004003du, 0x000000a0u, + 0x00000cadu, 0x00000cacu, 0x00040071u, 0x00000006u, 0x00000caeu, 0x00000cadu, 0x0004007cu, 0x00000008u, + 0x00000cafu, 0x00000caeu, 0x000500c7u, 0x00000006u, 0x00000bc4u, 0x00000ca5u, 0x000003aau, 0x000500abu, + 0x0000002cu, 0x00000bc5u, 0x00000bc4u, 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000bc8u, 0x00000ca5u, + 0x000001ddu, 0x000500abu, 0x0000002cu, 0x00000bc9u, 0x00000bc8u, 0x000001bbu, 0x000500c7u, 0x00000006u, + 0x00000bccu, 0x00000ca5u, 0x00000196u, 0x000500abu, 0x0000002cu, 0x00000bcdu, 0x00000bccu, 0x000001bbu, + 0x000500c7u, 0x00000006u, 0x00000bd0u, 0x00000ca5u, 0x000003f3u, 0x000500abu, 0x0000002cu, 0x00000bd1u, + 0x00000bd0u, 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000bd4u, 0x00000ca5u, 0x0000075eu, 0x000500abu, + 0x0000002cu, 0x00000bd5u, 0x00000bd4u, 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000bd8u, 0x00000ca5u, + 0x00000764u, 0x000500abu, 0x0000002cu, 0x00000bd9u, 0x00000bd8u, 0x000001bbu, 0x000500c7u, 0x00000006u, + 0x00000bdcu, 0x00000ca5u, 0x0000076au, 0x000500abu, 0x0000002cu, 0x00000bddu, 0x00000bdcu, 0x000001bbu, + 0x000500c7u, 0x00000006u, 0x00000be0u, 0x00000ca5u, 0x00000770u, 0x000500abu, 0x0000002cu, 0x00000be1u, + 0x00000be0u, 0x000001bbu, 0x000300f7u, 0x00000cbcu, 0x00000000u, 0x000400fau, 0x00000bd1u, 0x00000cb7u, + 0x00000cbbu, 0x000200f8u, 0x00000cbbu, 0x000200f9u, 0x00000cbcu, 0x000200f8u, 0x00000cb7u, 0x00050051u, + 0x00000008u, 0x00000cb9u, 0x000012f1u, 0x00000003u, 0x000500c7u, 0x00000008u, 0x00000cbau, 0x00000cb9u, + 0x0000064fu, 0x000200f9u, 0x00000cbcu, 0x000200f8u, 0x00000cbcu, 0x000700f5u, 0x00000008u, 0x000012f2u, + 0x00000cbau, 0x00000cb7u, 0x0000064fu, 0x00000cbbu, 0x000300f7u, 0x00000ccdu, 0x00000000u, 0x000d00fbu, + 0x0000036au, 0x00000ccdu, 0x00000000u, 0x00000cbeu, 0x00000001u, 0x00000cbfu, 0x00000002u, 0x00000cc2u, + 0x00000003u, 0x00000cc7u, 0x00000004u, 0x00000ccau, 0x000200f8u, 0x00000ccau, 0x0008004fu, 0x00000014u, + 0x00000cccu, 0x000012f1u, 0x000012f1u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ccdu, + 0x000200f8u, 0x00000cc7u, 0x0008004fu, 0x00000014u, 0x00000cc9u, 0x000012f1u, 0x000012f1u, 0x00000000u, + 0x00000000u, 0x00000000u, 0x000200f9u, 0x00000ccdu, 0x000200f8u, 0x00000cc2u, 0x0008004fu, 0x00000014u, + 0x00000cc4u, 0x000012f1u, 0x000012f1u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, 0x00000014u, + 0x00000cc6u, 0x00000cc4u, 0x00001825u, 0x000200f9u, 0x00000ccdu, 0x000200f8u, 0x00000cbfu, 0x0008004fu, + 0x00000014u, 0x00000cc1u, 0x000012f1u, 0x000012f1u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000200f9u, + 0x00000ccdu, 0x000200f8u, 0x00000cbeu, 0x000200f9u, 0x00000ccdu, 0x000200f8u, 0x00000ccdu, 0x000f00f5u, + 0x00000008u, 0x000012fcu, 0x000012f2u, 0x00000cbcu, 0x0000064fu, 0x00000cbeu, 0x0000064fu, 0x00000cbfu, + 0x000012f2u, 0x00000cc2u, 0x000012f2u, 0x00000cc7u, 0x000012f2u, 0x00000ccau, 0x000f00f5u, 0x00000014u, + 0x000012f4u, 0x000012f6u, 0x00000cbcu, 0x0000065au, 0x00000cbeu, 0x00000cc1u, 0x00000cbfu, 0x00000cc6u, + 0x00000cc2u, 0x00000cc9u, 0x00000cc7u, 0x00000cccu, 0x00000ccau, 0x00050051u, 0x00000008u, 0x00000cd0u, + 0x000012f4u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00000cd1u, 0x000012f4u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x00000cd2u, 0x000012f4u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00000cd3u, 0x00000cd0u, + 0x00000cd1u, 0x00000cd2u, 0x000012fcu, 0x000500c3u, 0x00000008u, 0x00000be6u, 0x000012fcu, 0x000000cau, + 0x00050080u, 0x00000008u, 0x00000d1du, 0x000008a3u, 0x00000be6u, 0x000500afu, 0x0000002cu, 0x00000d1eu, + 0x00000d1du, 0x000000dcu, 0x000300f7u, 0x00000d88u, 0x00000000u, 0x000400fau, 0x00000bc9u, 0x00000ceau, + 0x00000d74u, 0x000200f8u, 0x00000d74u, 0x00050082u, 0x00000008u, 0x00000d77u, 0x00000298u, 0x00000c8cu, + 0x0007000cu, 0x00000008u, 0x00000d78u, 0x00000001u, 0x00000027u, 0x00000d77u, 0x000000c4u, 0x00050050u, + 0x0000002eu, 0x0000182fu, 0x0000009fu, 0x00000d78u, 0x000400a8u, 0x0000002cu, 0x00000d7fu, 0x00000bc5u, + 0x000300f7u, 0x00000d85u, 0x00000000u, 0x000400fau, 0x00000d7fu, 0x00000d80u, 0x00000d85u, 0x000200f8u, + 0x00000d80u, 0x000400a8u, 0x0000002cu, 0x00000d82u, 0x00000d1eu, 0x000500a7u, 0x0000002cu, 0x00000d84u, + 0x00000d82u, 0x00000bddu, 0x000200f9u, 0x00000d85u, 0x000200f8u, 0x00000d85u, 0x000700f5u, 0x0000002cu, + 0x00000d86u, 0x00000bc5u, 0x00000d74u, 0x00000d84u, 0x00000d80u, 0x000200f9u, 0x00000d88u, 0x000200f8u, + 0x00000ceau, 0x000500c3u, 0x00000008u, 0x00000d93u, 0x000012ffu, 0x000000edu, 0x000500c7u, 0x00000008u, + 0x00000d95u, 0x000012ffu, 0x00000160u, 0x00050082u, 0x00000008u, 0x00000d97u, 0x000000d0u, 0x00000d93u, + 0x0007000cu, 0x00000008u, 0x00000d98u, 0x00000001u, 0x0000002au, 0x00000d97u, 0x0000009fu, 0x000500c3u, + 0x00000008u, 0x00000d9au, 0x00000167u, 0x00000d93u, 0x00050082u, 0x00000008u, 0x00000d9bu, 0x00000167u, + 0x00000d9au, 0x000500c4u, 0x00000008u, 0x00000d9eu, 0x00000d95u, 0x00000d98u, 0x00050080u, 0x00000008u, + 0x00000da0u, 0x00000d9eu, 0x00000d9bu, 0x000500c4u, 0x00000008u, 0x00000da4u, 0x000000b2u, 0x00001302u, + 0x000500c7u, 0x00000008u, 0x00000cf1u, 0x00000d93u, 0x00000298u, 0x00050082u, 0x00000008u, 0x00000cf4u, + 0x00000c8cu, 0x00001302u, 0x0008000cu, 0x00000008u, 0x00000cf5u, 0x00000001u, 0x0000002du, 0x00000cf4u, + 0x0000009fu, 0x000000c4u, 0x00050082u, 0x00000008u, 0x00000cf9u, 0x00001302u, 0x00000c8cu, 0x0008000cu, + 0x00000008u, 0x00000cfau, 0x00000001u, 0x0000002du, 0x00000cf9u, 0x0000009fu, 0x000000c4u, 0x00050050u, + 0x0000002eu, 0x00001830u, 0x00000cf5u, 0x00000cfau, 0x000500b1u, 0x0000002cu, 0x00000cfdu, 0x00000cf1u, + 0x000000beu, 0x000300f7u, 0x00000d09u, 0x00000000u, 0x000400fau, 0x00000cfdu, 0x00000cfeu, 0x00000d09u, + 0x000200f8u, 0x00000cfeu, 0x000500abu, 0x0000002cu, 0x00000d00u, 0x00000da4u, 0x000002abu, 0x000300f7u, + 0x00000d08u, 0x00000000u, 0x000400fau, 0x00000d00u, 0x00000d01u, 0x00000d07u, 0x000200f8u, 0x00000d07u, + 0x000200f9u, 0x00000d08u, 0x000200f8u, 0x00000d01u, 0x000500c4u, 0x00000008u, 0x00000d03u, 0x00000da4u, + 0x000000b2u, 0x000500c3u, 0x00000008u, 0x00000d05u, 0x000002b1u, 0x00000cf1u, 0x0007000cu, 0x00000008u, + 0x00000d06u, 0x00000001u, 0x0000002au, 0x00000d03u, 0x00000d05u, 0x000200f9u, 0x00000d08u, 0x000200f8u, + 0x00000d08u, 0x000700f5u, 0x00000008u, 0x0000130eu, 0x00000d06u, 0x00000d01u, 0x000002b7u, 0x00000d07u, + 0x000600a9u, 0x0000002cu, 0x00001833u, 0x00000d00u, 0x0000029bu, 0x000002b6u, 0x000200f9u, 0x00000d09u, + 0x000200f8u, 0x00000d09u, 0x000700f5u, 0x0000002cu, 0x00001311u, 0x0000029bu, 0x00000ceau, 0x00001833u, + 0x00000d08u, 0x000700f5u, 0x00000008u, 0x0000130du, 0x00000da4u, 0x00000ceau, 0x0000130eu, 0x00000d08u, + 0x000500c5u, 0x00000008u, 0x00000d0cu, 0x00000c87u, 0x0000130du, 0x000500abu, 0x0000002cu, 0x00000da8u, + 0x00000d0cu, 0x0000009fu, 0x000300f7u, 0x00000dadu, 0x00000000u, 0x000400fau, 0x00000da8u, 0x00000da9u, + 0x00000dadu, 0x000200f8u, 0x00000da9u, 0x0006000cu, 0x00000008u, 0x00000dabu, 0x00000001u, 0x0000004au, + 0x00000d0cu, 0x000500c4u, 0x00000008u, 0x00000dacu, 0x000000b2u, 0x00000dabu, 0x000200f9u, 0x00000dadu, + 0x000200f8u, 0x00000dadu, 0x000700f5u, 0x00000008u, 0x0000130fu, 0x00000d0cu, 0x00000d09u, 0x00000dacu, + 0x00000da9u, 0x000500c4u, 0x00000008u, 0x00000d10u, 0x0000130fu, 0x000000beu, 0x000400a8u, 0x0000002cu, + 0x00000d12u, 0x00001311u, 0x000300f7u, 0x00000d19u, 0x00000000u, 0x000400fau, 0x00000d12u, 0x00000d13u, + 0x00000d19u, 0x000200f8u, 0x00000d13u, 0x00050080u, 0x00000008u, 0x00000d16u, 0x00000bb0u, 0x00000d10u, + 0x000500afu, 0x0000002cu, 0x00000d18u, 0x00000d16u, 0x00000da0u, 0x000200f9u, 0x00000d19u, 0x000200f8u, + 0x00000d19u, 0x000700f5u, 0x0000002cu, 0x00000d1au, 0x00001311u, 0x00000dadu, 0x00000d18u, 0x00000d13u, + 0x000400a8u, 0x0000002cu, 0x00000d20u, 0x00000bc5u, 0x000300f7u, 0x00000d28u, 0x00000000u, 0x000400fau, + 0x00000d20u, 0x00000d21u, 0x00000d28u, 0x000200f8u, 0x00000d21u, 0x000400a8u, 0x0000002cu, 0x00000d23u, + 0x00000d1eu, 0x000500a7u, 0x0000002cu, 0x00000d25u, 0x00000d23u, 0x00000bddu, 0x000500a7u, 0x0000002cu, + 0x00000d27u, 0x00000d25u, 0x00000d1au, 0x000200f9u, 0x00000d28u, 0x000200f8u, 0x00000d28u, 0x000700f5u, + 0x0000002cu, 0x00000d29u, 0x00000bc5u, 0x00000d19u, 0x00000d27u, 0x00000d21u, 0x000500aau, 0x0000002cu, + 0x00000d2cu, 0x00000da0u, 0x00000173u, 0x000500b1u, 0x0000002cu, 0x00000d2fu, 0x00000bb0u, 0x00000da0u, + 0x00050082u, 0x00000008u, 0x00000d32u, 0x00000bb0u, 0x00000d10u, 0x000500b3u, 0x0000002cu, 0x00000d36u, + 0x00000d32u, 0x00000da0u, 0x000500a6u, 0x0000002cu, 0x00000d37u, 0x00001311u, 0x00000d36u, 0x000300f7u, + 0x00000d73u, 0x00000000u, 0x000b00fbu, 0x00000cafu, 0x00000d73u, 0x00000000u, 0x00000d39u, 0x00000001u, + 0x00000d43u, 0x00000002u, 0x00000d68u, 0x00000003u, 0x00000d6cu, 0x000200f8u, 0x00000d6cu, 0x000500a7u, + 0x0000002cu, 0x00000d6fu, 0x00000d1au, 0x00000d37u, 0x000400a8u, 0x0000002cu, 0x00000d71u, 0x00000d2cu, + 0x000500a7u, 0x0000002cu, 0x00000d72u, 0x00000d6fu, 0x00000d71u, 0x000200f9u, 0x00000d73u, 0x000200f8u, + 0x00000d68u, 0x000500a6u, 0x0000002cu, 0x00000d6bu, 0x00000d2fu, 0x00000d2cu, 0x000200f9u, 0x00000d73u, + 0x000200f8u, 0x00000d43u, 0x000400a8u, 0x0000002cu, 0x00000d45u, 0x00000d2fu, 0x000400a8u, 0x0000002cu, + 0x00000d47u, 0x00000d1au, 0x000500a6u, 0x0000002cu, 0x00000d48u, 0x00000d45u, 0x00000d47u, 0x000400a8u, + 0x0000002cu, 0x00000d4au, 0x00000d1eu, 0x000500a6u, 0x0000002cu, 0x00000d4bu, 0x00000d48u, 0x00000d4au, + 0x000300f7u, 0x00000d67u, 0x00000000u, 0x000400fau, 0x00000d4bu, 0x00000d4cu, 0x00000d56u, 0x000200f8u, + 0x00000d56u, 0x000500c7u, 0x00000008u, 0x00000d58u, 0x0000130fu, 0x000002b7u, 0x0006000cu, 0x00000008u, + 0x00000db2u, 0x00000001u, 0x0000004au, 0x00000d58u, 0x0007000cu, 0x00000008u, 0x00000db3u, 0x00000001u, + 0x0000002au, 0x00000db2u, 0x0000009fu, 0x000500c3u, 0x00000008u, 0x00000d5cu, 0x00000da0u, 0x00000db3u, + 0x000500c3u, 0x00000008u, 0x00000d5fu, 0x00000bb0u, 0x00000db3u, 0x00050082u, 0x00000008u, 0x00000d60u, + 0x00000d5cu, 0x00000d5fu, 0x000500c7u, 0x00000008u, 0x00000d61u, 0x00000d60u, 0x00000298u, 0x00050084u, + 0x00000008u, 0x00000d64u, 0x00000d61u, 0x000008a3u, 0x000500c3u, 0x00000008u, 0x00000d65u, 0x00000d64u, + 0x000000beu, 0x0007000cu, 0x00000008u, 0x00000d66u, 0x00000001u, 0x00000027u, 0x00000d65u, 0x000000dcu, + 0x000200f9u, 0x00000d67u, 0x000200f8u, 0x00000d4cu, 0x000400a8u, 0x0000002cu, 0x00000d4eu, 0x00000d2cu, + 0x000300f7u, 0x00000d54u, 0x00000000u, 0x000400fau, 0x00000d4eu, 0x00000d4fu, 0x00000d54u, 0x000200f8u, + 0x00000d4fu, 0x000600a9u, 0x0000002cu, 0x00000d53u, 0x00000d1eu, 0x00000d2fu, 0x00000d37u, 0x000200f9u, + 0x00000d54u, 0x000200f8u, 0x00000d54u, 0x000700f5u, 0x0000002cu, 0x00000d55u, 0x00000d2cu, 0x00000d4cu, + 0x00000d53u, 0x00000d4fu, 0x000200f9u, 0x00000d67u, 0x000200f8u, 0x00000d67u, 0x000700f5u, 0x00000008u, + 0x00001322u, 0x000008a3u, 0x00000d54u, 0x00000d66u, 0x00000d56u, 0x000700f5u, 0x0000002cu, 0x0000131eu, + 0x00000d55u, 0x00000d54u, 0x000002b6u, 0x00000d56u, 0x000200f9u, 0x00000d73u, 0x000200f8u, 0x00000d39u, + 0x000400a8u, 0x0000002cu, 0x00000d3bu, 0x00000d2cu, 0x000300f7u, 0x00000d41u, 0x00000000u, 0x000400fau, + 0x00000d3bu, 0x00000d3cu, 0x00000d41u, 0x000200f8u, 0x00000d3cu, 0x000600a9u, 0x0000002cu, 0x00000d40u, + 0x00000d1eu, 0x00000d2fu, 0x00000d37u, 0x000200f9u, 0x00000d41u, 0x000200f8u, 0x00000d41u, 0x000700f5u, + 0x0000002cu, 0x00000d42u, 0x00000d2cu, 0x00000d39u, 0x00000d40u, 0x00000d3cu, 0x000200f9u, 0x00000d73u, + 0x000200f8u, 0x00000d73u, 0x000d00f5u, 0x00000008u, 0x00001320u, 0x000008a3u, 0x00000d28u, 0x000008a3u, + 0x00000d41u, 0x00001322u, 0x00000d67u, 0x000008a3u, 0x00000d68u, 0x000008a3u, 0x00000d6cu, 0x000d00f5u, + 0x0000002cu, 0x0000131du, 0x0000029bu, 0x00000d28u, 0x00000d42u, 0x00000d41u, 0x0000131eu, 0x00000d67u, + 0x00000d6bu, 0x00000d68u, 0x00000d72u, 0x00000d6cu, 0x000200f9u, 0x00000d88u, 0x000200f8u, 0x00000d88u, + 0x000700f5u, 0x0000002eu, 0x0000132fu, 0x00001830u, 0x00000d73u, 0x0000182fu, 0x00000d85u, 0x000700f5u, + 0x0000002cu, 0x00001325u, 0x00000d29u, 0x00000d73u, 0x00000d86u, 0x00000d85u, 0x000700f5u, 0x00000008u, + 0x0000131fu, 0x00001320u, 0x00000d73u, 0x000008a3u, 0x00000d85u, 0x000700f5u, 0x0000002cu, 0x0000131cu, + 0x0000131du, 0x00000d73u, 0x000002b6u, 0x00000d85u, 0x000300f7u, 0x00000c01u, 0x00000000u, 0x000400fau, + 0x0000131cu, 0x00000bfbu, 0x00000c01u, 0x000200f8u, 0x00000bfbu, 0x000400a8u, 0x0000002cu, 0x00000bfdu, + 0x00000bddu, 0x000500abu, 0x0000002cu, 0x00000bffu, 0x0000131fu, 0x0000009fu, 0x000500a6u, 0x0000002cu, + 0x00000c00u, 0x00000bfdu, 0x00000bffu, 0x000200f9u, 0x00000c01u, 0x000200f8u, 0x00000c01u, 0x000700f5u, + 0x0000002cu, 0x00000c02u, 0x0000131cu, 0x00000d88u, 0x00000c00u, 0x00000bfbu, 0x000300f7u, 0x00000c4bu, + 0x00000000u, 0x000400fau, 0x00000c02u, 0x00000c03u, 0x00000c4bu, 0x000200f8u, 0x00000c03u, 0x000300f7u, + 0x00000c20u, 0x00000000u, 0x000400fau, 0x00000bd9u, 0x00000c0fu, 0x00000c20u, 0x000200f8u, 0x00000c0fu, + 0x00050051u, 0x00000008u, 0x00000dc0u, 0x00000c9du, 0x00000002u, 0x000300f7u, 0x00000dd1u, 0x00000000u, + 0x000b00fbu, 0x00000dc0u, 0x00000dd1u, 0x00000000u, 0x00000dc1u, 0x00000001u, 0x00000dc5u, 0x00000002u, + 0x00000dc9u, 0x00000003u, 0x00000dcdu, 0x000200f8u, 0x00000dcdu, 0x0008004fu, 0x00000014u, 0x00000dd0u, + 0x00000c7au, 0x00000c7au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000dd1u, 0x000200f8u, + 0x00000dc9u, 0x0008004fu, 0x00000014u, 0x00000dccu, 0x00000c7fu, 0x00000c7fu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x00000dd1u, 0x000200f8u, 0x00000dc5u, 0x0008004fu, 0x00000014u, 0x00000dc8u, + 0x00000cd3u, 0x00000cd3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000dd1u, 0x000200f8u, + 0x00000dc1u, 0x0008004fu, 0x00000014u, 0x00000dc4u, 0x000008d0u, 0x000008d0u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x00000dd1u, 0x000200f8u, 0x00000dd1u, 0x000d00f5u, 0x00000014u, 0x00001396u, + 0x000013a0u, 0x00000c0fu, 0x00000dc4u, 0x00000dc1u, 0x00000dc8u, 0x00000dc5u, 0x00000dccu, 0x00000dc9u, + 0x00000dd0u, 0x00000dcdu, 0x00050051u, 0x00000008u, 0x00000dddu, 0x00000c9du, 0x00000000u, 0x000300f7u, + 0x00000deeu, 0x00000000u, 0x000b00fbu, 0x00000dddu, 0x00000deeu, 0x00000000u, 0x00000ddeu, 0x00000001u, + 0x00000de2u, 0x00000002u, 0x00000de6u, 0x00000003u, 0x00000deau, 0x000200f8u, 0x00000deau, 0x0008004fu, + 0x00000014u, 0x00000dedu, 0x00000c7au, 0x00000c7au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00000deeu, 0x000200f8u, 0x00000de6u, 0x0008004fu, 0x00000014u, 0x00000de9u, 0x00000c7fu, 0x00000c7fu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000deeu, 0x000200f8u, 0x00000de2u, 0x0008004fu, + 0x00000014u, 0x00000de5u, 0x00000cd3u, 0x00000cd3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00000deeu, 0x000200f8u, 0x00000ddeu, 0x0008004fu, 0x00000014u, 0x00000de1u, 0x000008d0u, 0x000008d0u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000deeu, 0x000200f8u, 0x00000deeu, 0x000d00f5u, + 0x00000014u, 0x00001376u, 0x00001382u, 0x00000dd1u, 0x00000de1u, 0x00000ddeu, 0x00000de5u, 0x00000de2u, + 0x00000de9u, 0x00000de6u, 0x00000dedu, 0x00000deau, 0x00050051u, 0x00000008u, 0x00000e0bu, 0x00000c9du, + 0x00000001u, 0x000300f7u, 0x00000e16u, 0x00000000u, 0x000b00fbu, 0x00000e0bu, 0x00000e16u, 0x00000000u, + 0x00000e0cu, 0x00000001u, 0x00000e0fu, 0x00000002u, 0x00000e12u, 0x00000003u, 0x00000e15u, 0x000200f8u, + 0x00000e15u, 0x000200f9u, 0x00000e16u, 0x000200f8u, 0x00000e12u, 0x000200f9u, 0x00000e16u, 0x000200f8u, + 0x00000e0fu, 0x00050051u, 0x00000008u, 0x00000e11u, 0x00000c7au, 0x00000003u, 0x000200f9u, 0x00000e16u, + 0x000200f8u, 0x00000e0cu, 0x00050051u, 0x00000008u, 0x00000e0eu, 0x000008d0u, 0x00000003u, 0x000200f9u, + 0x00000e16u, 0x000200f8u, 0x00000e16u, 0x000d00f5u, 0x00000008u, 0x0000133au, 0x00001348u, 0x00000deeu, + 0x00000e0eu, 0x00000e0cu, 0x00000e11u, 0x00000e0fu, 0x000008e3u, 0x00000e12u, 0x0000009fu, 0x00000e15u, + 0x00050051u, 0x00000008u, 0x00000e18u, 0x00000c9du, 0x00000003u, 0x000300f7u, 0x00000e22u, 0x00000000u, + 0x000b00fbu, 0x00000e18u, 0x00000e22u, 0x00000000u, 0x00000e19u, 0x00000001u, 0x00000e1du, 0x00000002u, + 0x00000e20u, 0x00000003u, 0x00000e21u, 0x000200f8u, 0x00000e21u, 0x000200f9u, 0x00000e22u, 0x000200f8u, + 0x00000e20u, 0x000200f9u, 0x00000e22u, 0x000200f8u, 0x00000e1du, 0x000200f9u, 0x00000e22u, 0x000200f8u, + 0x00000e19u, 0x000400c8u, 0x00000008u, 0x00000e1bu, 0x0000133au, 0x000500c7u, 0x00000008u, 0x00000e1cu, + 0x00000e1bu, 0x00000136u, 0x000200f9u, 0x00000e22u, 0x000200f8u, 0x00000e22u, 0x000d00f5u, 0x00000008u, + 0x00001356u, 0x00001365u, 0x00000e16u, 0x00000e1cu, 0x00000e19u, 0x000012fcu, 0x00000e1du, 0x00000136u, + 0x00000e20u, 0x0000009fu, 0x00000e21u, 0x000500c3u, 0x00000008u, 0x00000e24u, 0x0000133au, 0x000000beu, + 0x000500c3u, 0x00000008u, 0x00000e26u, 0x00001356u, 0x000000beu, 0x000500aau, 0x0000002cu, 0x00000e29u, + 0x00000e18u, 0x000000b2u, 0x000300f7u, 0x00000e35u, 0x00000000u, 0x000400fau, 0x00000e29u, 0x00000e2au, + 0x00000e35u, 0x000200f8u, 0x00000e2au, 0x00050051u, 0x00000008u, 0x00000e2du, 0x0000132fu, 0x00000000u, + 0x000500c3u, 0x00000008u, 0x00000e2eu, 0x00000e24u, 0x00000e2du, 0x000500c7u, 0x00000008u, 0x00000e2fu, + 0x00000e2eu, 0x00000225u, 0x00050051u, 0x00000008u, 0x00000e32u, 0x0000132fu, 0x00000001u, 0x000500c3u, + 0x00000008u, 0x00000e33u, 0x00000e26u, 0x00000e32u, 0x000500c5u, 0x00000008u, 0x00000e34u, 0x00000e33u, + 0x000000beu, 0x000200f9u, 0x00000e35u, 0x000200f8u, 0x00000e35u, 0x000700f5u, 0x00000008u, 0x000013adu, + 0x00000e26u, 0x00000e22u, 0x00000e34u, 0x00000e2au, 0x000700f5u, 0x00000008u, 0x0000138fu, 0x00000e24u, + 0x00000e22u, 0x00000e2fu, 0x00000e2au, 0x00060050u, 0x00000014u, 0x00000e3cu, 0x0000138fu, 0x0000138fu, + 0x0000138fu, 0x00050084u, 0x00000014u, 0x00000e3du, 0x00001376u, 0x00000e3cu, 0x00050080u, 0x00000008u, + 0x00000e44u, 0x000013adu, 0x000000b2u, 0x00060050u, 0x00000014u, 0x00000e45u, 0x00000e44u, 0x00000e44u, + 0x00000e44u, 0x00050084u, 0x00000014u, 0x00000e46u, 0x00001396u, 0x00000e45u, 0x00050080u, 0x00000014u, + 0x00000e47u, 0x00000e3du, 0x00000e46u, 0x000500c3u, 0x00000014u, 0x00000e4fu, 0x00000e47u, 0x00001829u, + 0x000500c7u, 0x00000014u, 0x00000e82u, 0x00000e4fu, 0x00000137u, 0x00050051u, 0x00000008u, 0x00000c19u, + 0x00000e82u, 0x00000000u, 0x00060052u, 0x00000009u, 0x0000123du, 0x00000c19u, 0x000008d0u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00000c1bu, 0x00000e82u, 0x00000001u, 0x00060052u, 0x00000009u, 0x0000123fu, + 0x00000c1bu, 0x0000123du, 0x00000001u, 0x00050051u, 0x00000008u, 0x00000c1du, 0x00000e82u, 0x00000002u, + 0x00060052u, 0x00000009u, 0x00001241u, 0x00000c1du, 0x0000123fu, 0x00000002u, 0x000200f9u, 0x00000c20u, + 0x000200f8u, 0x00000c20u, 0x000700f5u, 0x00000014u, 0x00001767u, 0x000013a0u, 0x00000c03u, 0x00001396u, + 0x00000e35u, 0x000700f5u, 0x00000014u, 0x00001740u, 0x00001382u, 0x00000c03u, 0x00000e4fu, 0x00000e35u, + 0x000700f5u, 0x00000008u, 0x00001718u, 0x00001365u, 0x00000c03u, 0x000013adu, 0x00000e35u, 0x000700f5u, + 0x00000008u, 0x000016f0u, 0x00001348u, 0x00000c03u, 0x0000138fu, 0x00000e35u, 0x000700f5u, 0x00000009u, + 0x000013bcu, 0x000008d0u, 0x00000c03u, 0x00001241u, 0x00000e35u, 0x00070050u, 0x00001834u, 0x00001835u, + 0x00000bd9u, 0x00000bd9u, 0x00000bd9u, 0x00000bd9u, 0x000600a9u, 0x00000009u, 0x00001836u, 0x00001835u, + 0x00000ca2u, 0x00000c9du, 0x000300f7u, 0x00000f54u, 0x00000000u, 0x000300fbu, 0x000001bbu, 0x00000e8fu, + 0x000200f8u, 0x00000e8fu, 0x00050051u, 0x00000008u, 0x00000e91u, 0x00001836u, 0x00000002u, 0x000300f7u, + 0x00000ea2u, 0x00000000u, 0x000b00fbu, 0x00000e91u, 0x00000ea2u, 0x00000000u, 0x00000e92u, 0x00000001u, + 0x00000e96u, 0x00000002u, 0x00000e9au, 0x00000003u, 0x00000e9eu, 0x000200f8u, 0x00000e9eu, 0x0008004fu, + 0x00000014u, 0x00000ea1u, 0x00000c7au, 0x00000c7au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00000ea2u, 0x000200f8u, 0x00000e9au, 0x0008004fu, 0x00000014u, 0x00000e9du, 0x00000c7fu, 0x00000c7fu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ea2u, 0x000200f8u, 0x00000e96u, 0x0008004fu, + 0x00000014u, 0x00000e99u, 0x00000cd3u, 0x00000cd3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00000ea2u, 0x000200f8u, 0x00000e92u, 0x0008004fu, 0x00000014u, 0x00000e95u, 0x000013bcu, 0x000013bcu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ea2u, 0x000200f8u, 0x00000ea2u, 0x000d00f5u, + 0x00000014u, 0x00001441u, 0x0000144cu, 0x00000e8fu, 0x00000e95u, 0x00000e92u, 0x00000e99u, 0x00000e96u, + 0x00000e9du, 0x00000e9au, 0x00000ea1u, 0x00000e9eu, 0x000400a8u, 0x0000002cu, 0x00000ea7u, 0x00000d1eu, + 0x000500a7u, 0x0000002cu, 0x00000ea8u, 0x00000bd5u, 0x00000ea7u, 0x000300f7u, 0x00000eabu, 0x00000000u, + 0x000400fau, 0x00000ea8u, 0x00000ea9u, 0x00000eabu, 0x000200f8u, 0x00000ea9u, 0x000200f9u, 0x00000f54u, + 0x000200f8u, 0x00000eabu, 0x00050051u, 0x00000008u, 0x00000eaeu, 0x00001836u, 0x00000000u, 0x000300f7u, + 0x00000ebfu, 0x00000000u, 0x000b00fbu, 0x00000eaeu, 0x00000ebfu, 0x00000000u, 0x00000eafu, 0x00000001u, + 0x00000eb3u, 0x00000002u, 0x00000eb7u, 0x00000003u, 0x00000ebbu, 0x000200f8u, 0x00000ebbu, 0x0008004fu, + 0x00000014u, 0x00000ebeu, 0x00000c7au, 0x00000c7au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00000ebfu, 0x000200f8u, 0x00000eb7u, 0x0008004fu, 0x00000014u, 0x00000ebau, 0x00000c7fu, 0x00000c7fu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ebfu, 0x000200f8u, 0x00000eb3u, 0x0008004fu, + 0x00000014u, 0x00000eb6u, 0x00000cd3u, 0x00000cd3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00000ebfu, 0x000200f8u, 0x00000eafu, 0x0008004fu, 0x00000014u, 0x00000eb2u, 0x000013bcu, 0x000013bcu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ebfu, 0x000200f8u, 0x00000ebfu, 0x000d00f5u, + 0x00000014u, 0x00001414u, 0x00001421u, 0x00000eabu, 0x00000eb2u, 0x00000eafu, 0x00000eb6u, 0x00000eb3u, + 0x00000ebau, 0x00000eb7u, 0x00000ebeu, 0x00000ebbu, 0x000400a8u, 0x0000002cu, 0x00000ec3u, 0x00001325u, + 0x000400a8u, 0x0000002cu, 0x00000ec4u, 0x00000ec3u, 0x000300f7u, 0x00000ed5u, 0x00000000u, 0x000400fau, + 0x00000ec4u, 0x00000ec5u, 0x00000ed5u, 0x000200f8u, 0x00000ec5u, 0x00050051u, 0x00000008u, 0x00000ec7u, + 0x00001836u, 0x00000001u, 0x000500aau, 0x0000002cu, 0x00000ec8u, 0x00000ec7u, 0x0000009fu, 0x000300f7u, + 0x00000ecdu, 0x00000000u, 0x000400fau, 0x00000ec8u, 0x00000ec9u, 0x00000ecdu, 0x000200f8u, 0x00000ec9u, + 0x00050051u, 0x00000008u, 0x00000ecbu, 0x00001836u, 0x00000003u, 0x000500aau, 0x0000002cu, 0x00000eccu, + 0x00000ecbu, 0x0000009fu, 0x000200f9u, 0x00000ecdu, 0x000200f8u, 0x00000ecdu, 0x000700f5u, 0x0000002cu, + 0x00000eceu, 0x00000ec8u, 0x00000ec5u, 0x00000eccu, 0x00000ec9u, 0x000300f7u, 0x00000ed3u, 0x00000000u, + 0x000400fau, 0x00000eceu, 0x00000ecfu, 0x00000ed3u, 0x000200f8u, 0x00000ecfu, 0x00050051u, 0x00000008u, + 0x00000ed1u, 0x000013bcu, 0x00000003u, 0x000500aau, 0x0000002cu, 0x00000ed2u, 0x00000ed1u, 0x00000136u, + 0x000200f9u, 0x00000ed3u, 0x000200f8u, 0x00000ed3u, 0x000700f5u, 0x0000002cu, 0x00000ed4u, 0x00000eceu, + 0x00000ecdu, 0x00000ed2u, 0x00000ecfu, 0x000200f9u, 0x00000ed5u, 0x000200f8u, 0x00000ed5u, 0x000700f5u, + 0x0000002cu, 0x00000ed6u, 0x00000ec3u, 0x00000ebfu, 0x00000ed4u, 0x00000ed3u, 0x000300f7u, 0x00000ed9u, + 0x00000000u, 0x000400fau, 0x00000ed6u, 0x00000ed7u, 0x00000ed9u, 0x000200f8u, 0x00000ed7u, 0x000200f9u, + 0x00000f54u, 0x000200f8u, 0x00000ed9u, 0x00050051u, 0x00000008u, 0x00000edcu, 0x00001836u, 0x00000001u, + 0x000300f7u, 0x00000ee7u, 0x00000000u, 0x000b00fbu, 0x00000edcu, 0x00000ee7u, 0x00000000u, 0x00000eddu, + 0x00000001u, 0x00000ee0u, 0x00000002u, 0x00000ee3u, 0x00000003u, 0x00000ee6u, 0x000200f8u, 0x00000ee6u, + 0x000200f9u, 0x00000ee7u, 0x000200f8u, 0x00000ee3u, 0x000200f9u, 0x00000ee7u, 0x000200f8u, 0x00000ee0u, + 0x00050051u, 0x00000008u, 0x00000ee2u, 0x00000c7au, 0x00000003u, 0x000200f9u, 0x00000ee7u, 0x000200f8u, + 0x00000eddu, 0x00050051u, 0x00000008u, 0x00000edfu, 0x000013bcu, 0x00000003u, 0x000200f9u, 0x00000ee7u, + 0x000200f8u, 0x00000ee7u, 0x000d00f5u, 0x00000008u, 0x000013beu, 0x000013cdu, 0x00000ed9u, 0x00000edfu, + 0x00000eddu, 0x00000ee2u, 0x00000ee0u, 0x000008e3u, 0x00000ee3u, 0x0000009fu, 0x00000ee6u, 0x00050051u, + 0x00000008u, 0x00000ee9u, 0x00001836u, 0x00000003u, 0x000300f7u, 0x00000ef3u, 0x00000000u, 0x000b00fbu, + 0x00000ee9u, 0x00000ef3u, 0x00000000u, 0x00000eeau, 0x00000001u, 0x00000eeeu, 0x00000002u, 0x00000ef1u, + 0x00000003u, 0x00000ef2u, 0x000200f8u, 0x00000ef2u, 0x000200f9u, 0x00000ef3u, 0x000200f8u, 0x00000ef1u, + 0x000200f9u, 0x00000ef3u, 0x000200f8u, 0x00000eeeu, 0x000200f9u, 0x00000ef3u, 0x000200f8u, 0x00000eeau, + 0x000400c8u, 0x00000008u, 0x00000eecu, 0x000013beu, 0x000500c7u, 0x00000008u, 0x00000eedu, 0x00000eecu, + 0x00000136u, 0x000200f9u, 0x00000ef3u, 0x000200f8u, 0x00000ef3u, 0x000d00f5u, 0x00000008u, 0x000013e7u, + 0x000013f7u, 0x00000ee7u, 0x00000eedu, 0x00000eeau, 0x000012fcu, 0x00000eeeu, 0x00000136u, 0x00000ef1u, + 0x0000009fu, 0x00000ef2u, 0x000500c3u, 0x00000008u, 0x00000ef5u, 0x000013beu, 0x000000beu, 0x000500c3u, + 0x00000008u, 0x00000ef7u, 0x000013e7u, 0x000000beu, 0x000500aau, 0x0000002cu, 0x00000efau, 0x00000ee9u, + 0x000000b2u, 0x000300f7u, 0x00000f06u, 0x00000000u, 0x000400fau, 0x00000efau, 0x00000efbu, 0x00000f06u, + 0x000200f8u, 0x00000efbu, 0x00050051u, 0x00000008u, 0x00000efeu, 0x0000132fu, 0x00000000u, 0x000500c3u, + 0x00000008u, 0x00000effu, 0x00000ef5u, 0x00000efeu, 0x000500c7u, 0x00000008u, 0x00000f00u, 0x00000effu, + 0x00000225u, 0x00050051u, 0x00000008u, 0x00000f03u, 0x0000132fu, 0x00000001u, 0x000500c3u, 0x00000008u, + 0x00000f04u, 0x00000ef7u, 0x00000f03u, 0x000500c5u, 0x00000008u, 0x00000f05u, 0x00000f04u, 0x000000beu, + 0x000200f9u, 0x00000f06u, 0x000200f8u, 0x00000f06u, 0x000700f5u, 0x00000008u, 0x00001465u, 0x00000ef7u, + 0x00000ef3u, 0x00000f05u, 0x00000efbu, 0x000700f5u, 0x00000008u, 0x0000143au, 0x00000ef5u, 0x00000ef3u, + 0x00000f00u, 0x00000efbu, 0x00060050u, 0x00000014u, 0x00000f0du, 0x0000143au, 0x0000143au, 0x0000143au, + 0x00050084u, 0x00000014u, 0x00000f0eu, 0x00001414u, 0x00000f0du, 0x00050080u, 0x00000008u, 0x00000f15u, + 0x00001465u, 0x000000b2u, 0x00060050u, 0x00000014u, 0x00000f16u, 0x00000f15u, 0x00000f15u, 0x00000f15u, + 0x00050084u, 0x00000014u, 0x00000f17u, 0x00001441u, 0x00000f16u, 0x00050080u, 0x00000014u, 0x00000f18u, + 0x00000f0eu, 0x00000f17u, 0x000500a6u, 0x0000002cu, 0x00000f1cu, 0x0000029bu, 0x00000bc5u, 0x000300f7u, + 0x00000f50u, 0x00000000u, 0x000400fau, 0x00000f1cu, 0x00000f1du, 0x00000f25u, 0x000200f8u, 0x00000f25u, + 0x000500c3u, 0x00000008u, 0x00000f27u, 0x0000143au, 0x000000b8u, 0x000500c3u, 0x00000008u, 0x00000f29u, + 0x00001465u, 0x000000b8u, 0x00050080u, 0x00000008u, 0x00000f2au, 0x00000f27u, 0x00000f29u, 0x00050080u, + 0x00000008u, 0x00000f2bu, 0x00000f2au, 0x000000b2u, 0x000500c3u, 0x00000014u, 0x00000f2eu, 0x00000f18u, + 0x0000182au, 0x000500c7u, 0x00000014u, 0x00000f31u, 0x00000f2eu, 0x0000182bu, 0x0004003du, 0x0000025au, + 0x00000f32u, 0x0000025cu, 0x000500c4u, 0x00000008u, 0x00000f34u, 0x00000f2bu, 0x000000edu, 0x00050051u, + 0x00000008u, 0x00000f36u, 0x00000f31u, 0x00000000u, 0x000500c5u, 0x00000008u, 0x00000f37u, 0x00000f34u, + 0x00000f36u, 0x0005005fu, 0x000000aeu, 0x00000f38u, 0x00000f32u, 0x00000f37u, 0x00050051u, 0x00000006u, + 0x00000f39u, 0x00000f38u, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00000f3au, 0x00000f39u, 0x00050051u, + 0x00000008u, 0x00000f40u, 0x00000f31u, 0x00000001u, 0x000500c5u, 0x00000008u, 0x00000f41u, 0x00000f34u, + 0x00000f40u, 0x0005005fu, 0x000000aeu, 0x00000f42u, 0x00000f32u, 0x00000f41u, 0x00050051u, 0x00000006u, + 0x00000f43u, 0x00000f42u, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00000f44u, 0x00000f43u, 0x00050051u, + 0x00000008u, 0x00000f4au, 0x00000f31u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x00000f4bu, 0x00000f34u, + 0x00000f4au, 0x0005005fu, 0x000000aeu, 0x00000f4cu, 0x00000f32u, 0x00000f4bu, 0x00050051u, 0x00000006u, + 0x00000f4du, 0x00000f4cu, 0x00000000u, 0x0004007cu, 0x00000008u, 0x00000f4eu, 0x00000f4du, 0x00060050u, + 0x00000014u, 0x00001831u, 0x00000f3au, 0x00000f44u, 0x00000f4eu, 0x000200f9u, 0x00000f50u, 0x000200f8u, + 0x00000f1du, 0x000500c3u, 0x00000014u, 0x00000f20u, 0x00000f18u, 0x00001829u, 0x000200f9u, 0x00000f50u, + 0x000200f8u, 0x00000f50u, 0x000700f5u, 0x00000014u, 0x00001466u, 0x00000f20u, 0x00000f1du, 0x00001831u, + 0x00000f25u, 0x000500c7u, 0x00000014u, 0x00000f53u, 0x00001466u, 0x00000137u, 0x000200f9u, 0x00000f54u, + 0x000200f8u, 0x00000f54u, 0x000900f5u, 0x00000014u, 0x000017c3u, 0x00001421u, 0x00000ea9u, 0x00001414u, + 0x00000ed7u, 0x00001466u, 0x00000f50u, 0x000900f5u, 0x00000008u, 0x000017a8u, 0x000013f7u, 0x00000ea9u, + 0x000013f7u, 0x00000ed7u, 0x00001465u, 0x00000f50u, 0x000900f5u, 0x00000008u, 0x0000178du, 0x000013cdu, + 0x00000ea9u, 0x000013cdu, 0x00000ed7u, 0x0000143au, 0x00000f50u, 0x000900f5u, 0x00000014u, 0x00001467u, + 0x00001441u, 0x00000ea9u, 0x00001414u, 0x00000ed7u, 0x00000f53u, 0x00000f50u, 0x000300f7u, 0x00000c2eu, + 0x00000000u, 0x000400fau, 0x00000be1u, 0x00000c2au, 0x00000c2eu, 0x000200f8u, 0x00000c2au, 0x00060050u, + 0x00000014u, 0x00000f5du, 0x00000bb3u, 0x00000bb3u, 0x00000bb3u, 0x000500c3u, 0x00000014u, 0x00000f5eu, + 0x00000f5du, 0x0000012bu, 0x000500c7u, 0x00000014u, 0x00000f60u, 0x00000f5eu, 0x00001826u, 0x000500c7u, + 0x00000014u, 0x00000f63u, 0x00001467u, 0x00001825u, 0x00050080u, 0x00000014u, 0x00000f65u, 0x00000f63u, + 0x00001827u, 0x000500adu, 0x0000013bu, 0x00000f67u, 0x00001467u, 0x0000013au, 0x000600a9u, 0x00000014u, + 0x00000f68u, 0x00000f67u, 0x00000137u, 0x00000f65u, 0x000500c7u, 0x00000014u, 0x00000f6cu, 0x00001467u, + 0x00001826u, 0x00050082u, 0x00000014u, 0x00000f6du, 0x00000f60u, 0x00000f6cu, 0x000500c3u, 0x00000014u, + 0x00000f6fu, 0x00000f6du, 0x00001828u, 0x00050082u, 0x00000014u, 0x00000f72u, 0x00000f68u, 0x00001467u, + 0x000500c7u, 0x00000014u, 0x00000f76u, 0x00000f72u, 0x00000f6fu, 0x00050080u, 0x00000014u, 0x00000f77u, + 0x00001467u, 0x00000f76u, 0x000500c7u, 0x00000014u, 0x00000f7au, 0x00000f77u, 0x00000137u, 0x000200f9u, + 0x00000c2eu, 0x000200f8u, 0x00000c2eu, 0x000700f5u, 0x00000014u, 0x00001486u, 0x00001467u, 0x00000f54u, + 0x00000f7au, 0x00000c2au, 0x000300f7u, 0x00000f97u, 0x00000000u, 0x000b00fbu, 0x00000caau, 0x00000f97u, + 0x00000000u, 0x00000f83u, 0x00000001u, 0x00000f8fu, 0x00000002u, 0x00000f94u, 0x00000003u, 0x00000f95u, + 0x000200f8u, 0x00000f95u, 0x000200f9u, 0x00000f97u, 0x000200f8u, 0x00000f94u, 0x000200f9u, 0x00000f97u, + 0x000200f8u, 0x00000f8fu, 0x00050080u, 0x00000008u, 0x00000f92u, 0x0000131fu, 0x00000be6u, 0x000500c7u, + 0x00000008u, 0x00000f93u, 0x00000f92u, 0x000000d6u, 0x000200f9u, 0x00000f97u, 0x000200f8u, 0x00000f83u, + 0x000300f7u, 0x00000f8eu, 0x00000000u, 0x000400fau, 0x00001325u, 0x00000f85u, 0x00000f8au, 0x000200f8u, + 0x00000f8au, 0x00050082u, 0x00000008u, 0x00000f8cu, 0x0000131fu, 0x000000b2u, 0x000500c7u, 0x00000008u, + 0x00000f8du, 0x00000f8cu, 0x000000d6u, 0x000200f9u, 0x00000f8eu, 0x000200f8u, 0x00000f85u, 0x00050080u, + 0x00000008u, 0x00000f88u, 0x00000be6u, 0x0000131fu, 0x0007000cu, 0x00000008u, 0x00000f89u, 0x00000001u, + 0x00000027u, 0x000000d6u, 0x00000f88u, 0x000200f9u, 0x00000f8eu, 0x000200f8u, 0x00000f8eu, 0x000700f5u, + 0x00000008u, 0x00001484u, 0x00000f89u, 0x00000f85u, 0x00000f8du, 0x00000f8au, 0x000200f9u, 0x00000f97u, + 0x000200f8u, 0x00000f97u, 0x000d00f5u, 0x00000008u, 0x00001483u, 0x0000009fu, 0x00000c2eu, 0x00001484u, + 0x00000f8eu, 0x00000f93u, 0x00000f8fu, 0x000000d6u, 0x00000f94u, 0x00000be6u, 0x00000f95u, 0x000500c4u, + 0x00000008u, 0x00000c37u, 0x00001483u, 0x000000cau, 0x00050051u, 0x00000008u, 0x00000c38u, 0x00001486u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00000c39u, 0x00001486u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00000c3au, 0x00001486u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00000c3bu, 0x00000c38u, 0x00000c39u, + 0x00000c3au, 0x00000c37u, 0x000300f7u, 0x00000fa5u, 0x00000000u, 0x000400fau, 0x00000673u, 0x00000f9au, + 0x00000fa3u, 0x000200f8u, 0x00000fa3u, 0x000200f9u, 0x00000fa5u, 0x000200f8u, 0x00000f9au, 0x00060052u, + 0x00000009u, 0x00001259u, 0x00000c38u, 0x000012f1u, 0x00000000u, 0x00060052u, 0x00000009u, 0x0000125bu, + 0x00000c39u, 0x00001259u, 0x00000001u, 0x00060052u, 0x00000009u, 0x0000125du, 0x00000c3au, 0x0000125bu, + 0x00000002u, 0x000200f9u, 0x00000fa5u, 0x000200f8u, 0x00000fa5u, 0x000700f5u, 0x00000009u, 0x000014b1u, + 0x0000125du, 0x00000f9au, 0x00000c3bu, 0x00000fa3u, 0x000300f7u, 0x00000c4au, 0x00000000u, 0x000400fau, + 0x00000bcdu, 0x00000c3eu, 0x00000c46u, 0x000200f8u, 0x00000c46u, 0x000300f7u, 0x00000c49u, 0x00000000u, + 0x000400fau, 0x00000566u, 0x00000c47u, 0x00000c49u, 0x000200f8u, 0x00000c47u, 0x000300f7u, 0x00001020u, + 0x00000000u, 0x000700fbu, 0x0000036au, 0x00001020u, 0x00000002u, 0x00000fedu, 0x00000003u, 0x0000100au, + 0x000200f8u, 0x0000100au, 0x0007004fu, 0x0000002eu, 0x0000100cu, 0x000014b1u, 0x000014b1u, 0x00000000u, + 0x00000003u, 0x0004007cu, 0x0000006fu, 0x0000100du, 0x0000100cu, 0x00050051u, 0x00000006u, 0x0000100fu, + 0x0000100du, 0x00000000u, 0x000500c4u, 0x00000006u, 0x00001010u, 0x0000100fu, 0x000003aau, 0x00050051u, + 0x00000006u, 0x00001012u, 0x0000100du, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00001013u, 0x00001010u, + 0x00001012u, 0x000500c7u, 0x00000006u, 0x00001015u, 0x00001013u, 0x000001ddu, 0x00050084u, 0x00000006u, + 0x00001016u, 0x00001015u, 0x000001e3u, 0x000500c2u, 0x00000006u, 0x00001018u, 0x00001013u, 0x00000196u, + 0x0004007cu, 0x00000008u, 0x00001019u, 0x00001018u, 0x000500c7u, 0x00000006u, 0x0000101bu, 0x00001013u, + 0x000001e3u, 0x000500c4u, 0x00000006u, 0x0000101cu, 0x0000101bu, 0x00000196u, 0x000500c5u, 0x00000006u, + 0x0000101eu, 0x0000101cu, 0x00001016u, 0x0004007cu, 0x00000008u, 0x0000101fu, 0x0000101eu, 0x000200f9u, + 0x00001020u, 0x000200f8u, 0x00000fedu, 0x00050051u, 0x00000008u, 0x00000fefu, 0x000014b1u, 0x00000003u, + 0x000500c3u, 0x00000008u, 0x00000ff0u, 0x00000fefu, 0x000000beu, 0x00050051u, 0x00000008u, 0x00000ff2u, + 0x000014b1u, 0x00000002u, 0x000500c7u, 0x00000008u, 0x00000ff3u, 0x00000ff2u, 0x000000dcu, 0x000500c5u, + 0x00000008u, 0x00000ff4u, 0x00000ff0u, 0x00000ff3u, 0x00050051u, 0x00000008u, 0x00000ff6u, 0x000014b1u, + 0x00000000u, 0x0004007cu, 0x00000006u, 0x00000ff7u, 0x00000ff6u, 0x000500c7u, 0x00000006u, 0x00000ff8u, + 0x00000ff7u, 0x000003b1u, 0x000500c4u, 0x00000006u, 0x00000ff9u, 0x00000ff8u, 0x0000040bu, 0x00050051u, + 0x00000008u, 0x00000ffbu, 0x000014b1u, 0x00000001u, 0x0004007cu, 0x00000006u, 0x00000ffcu, 0x00000ffbu, + 0x000500c7u, 0x00000006u, 0x00000ffdu, 0x00000ffcu, 0x000003b1u, 0x000500c4u, 0x00000006u, 0x00000ffeu, + 0x00000ffdu, 0x000001ddu, 0x000500c5u, 0x00000006u, 0x00001000u, 0x00000ff9u, 0x00000ffeu, 0x0004007cu, + 0x00000006u, 0x00001003u, 0x00000ff2u, 0x000500c7u, 0x00000006u, 0x00001004u, 0x00001003u, 0x000003b1u, + 0x000500c2u, 0x00000006u, 0x00001005u, 0x00001004u, 0x00000418u, 0x000500c5u, 0x00000006u, 0x00001007u, + 0x00001000u, 0x00001005u, 0x0004007cu, 0x00000008u, 0x00001009u, 0x00001007u, 0x000200f9u, 0x00001020u, + 0x000200f8u, 0x00001020u, 0x000900f5u, 0x00000008u, 0x000016a5u, 0x00001302u, 0x00000c47u, 0x00000ff4u, + 0x00000fedu, 0x0000101fu, 0x0000100au, 0x000900f5u, 0x00000008u, 0x00001667u, 0x000012ffu, 0x00000c47u, + 0x00001009u, 0x00000fedu, 0x00001019u, 0x0000100au, 0x000200f9u, 0x00000c49u, 0x000200f8u, 0x00000c49u, + 0x000700f5u, 0x00000008u, 0x00001687u, 0x00001302u, 0x00000c46u, 0x000016a5u, 0x00001020u, 0x000700f5u, + 0x00000008u, 0x00001649u, 0x000012ffu, 0x00000c46u, 0x00001667u, 0x00001020u, 0x000200f9u, 0x00000c4au, + 0x000200f8u, 0x00000c3eu, 0x00050082u, 0x00000008u, 0x00000fadu, 0x00000173u, 0x00000bb0u, 0x0007000cu, + 0x00000008u, 0x00000faeu, 0x00000001u, 0x0000002au, 0x00000fadu, 0x000000b2u, 0x0006000cu, 0x00000008u, + 0x00000fb0u, 0x00000001u, 0x0000004au, 0x00000faeu, 0x00050082u, 0x00000008u, 0x00000fb1u, 0x00000178u, + 0x00000fb0u, 0x0008000cu, 0x00000008u, 0x00000fb3u, 0x00000001u, 0x0000002du, 0x00000fb1u, 0x0000009fu, + 0x000000d6u, 0x00050082u, 0x00000008u, 0x00000fb5u, 0x000000d0u, 0x00000fb3u, 0x0007000cu, 0x00000008u, + 0x00000fb6u, 0x00000001u, 0x0000002au, 0x00000fb5u, 0x0000009fu, 0x000500c3u, 0x00000008u, 0x00000fb9u, + 0x00000bb0u, 0x00000fb6u, 0x000500c7u, 0x00000008u, 0x00000fbau, 0x00000fb9u, 0x00000160u, 0x000500c4u, + 0x00000008u, 0x00000fbcu, 0x00000fb3u, 0x000000edu, 0x00050080u, 0x00000008u, 0x00000fbeu, 0x00000fbcu, + 0x00000fbau, 0x000300f7u, 0x00000c45u, 0x00000000u, 0x000400fau, 0x00000566u, 0x00000c43u, 0x00000c45u, + 0x000200f8u, 0x00000c43u, 0x0004007cu, 0x00000006u, 0x00000fc2u, 0x00000fbeu, 0x000500c4u, 0x00000006u, + 0x00000fc3u, 0x00000fc2u, 0x00000418u, 0x0004007cu, 0x00000006u, 0x00000fc5u, 0x00000c8cu, 0x000500c5u, + 0x00000006u, 0x00000fc6u, 0x00000fc3u, 0x00000fc5u, 0x000300f7u, 0x00000fe7u, 0x00000000u, 0x000700fbu, + 0x0000036au, 0x00000fe7u, 0x00000002u, 0x00000fc7u, 0x00000003u, 0x00000fdcu, 0x000200f8u, 0x00000fdcu, + 0x000500c2u, 0x00000006u, 0x00000fdeu, 0x00000fc6u, 0x00000445u, 0x000500c7u, 0x00000006u, 0x00000fdfu, + 0x00000fdeu, 0x000003d8u, 0x0004007cu, 0x00000008u, 0x00000fe0u, 0x00000fdfu, 0x00060052u, 0x00000009u, + 0x00001267u, 0x00000fe0u, 0x000014b1u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00000fe3u, 0x00000fc6u, + 0x00000196u, 0x000500c7u, 0x00000006u, 0x00000fe4u, 0x00000fe3u, 0x000003d8u, 0x0004007cu, 0x00000008u, + 0x00000fe5u, 0x00000fe4u, 0x00060052u, 0x00000009u, 0x00001269u, 0x00000fe5u, 0x00001267u, 0x00000003u, + 0x000200f9u, 0x00000fe7u, 0x000200f8u, 0x00000fc7u, 0x000500c2u, 0x00000006u, 0x00000fc9u, 0x00000fc6u, + 0x00000445u, 0x000500c7u, 0x00000006u, 0x00000fcau, 0x00000fc9u, 0x000003b1u, 0x0004007cu, 0x00000008u, + 0x00000fcbu, 0x00000fcau, 0x000500c2u, 0x00000006u, 0x00000fceu, 0x00000fc6u, 0x0000044bu, 0x000500c7u, + 0x00000006u, 0x00000fcfu, 0x00000fceu, 0x000003b1u, 0x0004007cu, 0x00000008u, 0x00000fd0u, 0x00000fcfu, + 0x000500c2u, 0x00000006u, 0x00000fd3u, 0x00000fc6u, 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000fd4u, + 0x00000fd3u, 0x000003b1u, 0x0004007cu, 0x00000008u, 0x00000fd5u, 0x00000fd4u, 0x000500c7u, 0x00000006u, + 0x00000fd8u, 0x00000fc6u, 0x00000456u, 0x000500c4u, 0x00000006u, 0x00000fd9u, 0x00000fd8u, 0x0000044bu, + 0x0004007cu, 0x00000008u, 0x00000fdau, 0x00000fd9u, 0x00070050u, 0x00000009u, 0x00001832u, 0x00000fcbu, + 0x00000fd0u, 0x00000fd5u, 0x00000fdau, 0x000200f9u, 0x00000fe7u, 0x000200f8u, 0x00000fe7u, 0x000900f5u, + 0x00000009u, 0x000015e9u, 0x000014b1u, 0x00000c43u, 0x00001832u, 0x00000fc7u, 0x00001269u, 0x00000fdcu, + 0x000200f9u, 0x00000c45u, 0x000200f8u, 0x00000c45u, 0x000700f5u, 0x00000009u, 0x000015e8u, 0x000014b1u, + 0x00000c3eu, 0x000015e9u, 0x00000fe7u, 0x000200f9u, 0x00000c4au, 0x000200f8u, 0x00000c4au, 0x000700f5u, + 0x00000008u, 0x00001684u, 0x00000c8cu, 0x00000c45u, 0x00001687u, 0x00000c49u, 0x000700f5u, 0x00000008u, + 0x00001646u, 0x00000fbeu, 0x00000c45u, 0x00001649u, 0x00000c49u, 0x000700f5u, 0x00000009u, 0x000015e7u, + 0x000015e8u, 0x00000c45u, 0x000014b1u, 0x00000c49u, 0x000600a9u, 0x0000002cu, 0x00001837u, 0x00000bcdu, + 0x000002b6u, 0x0000155eu, 0x000200f9u, 0x00000c4bu, 0x000200f8u, 0x00000c4bu, 0x000700f5u, 0x00000014u, + 0x000017d7u, 0x0000144cu, 0x00000c01u, 0x00001441u, 0x00000c4au, 0x000700f5u, 0x00000014u, 0x000017bdu, + 0x00001421u, 0x00000c01u, 0x000017c3u, 0x00000c4au, 0x000700f5u, 0x00000008u, 0x000017a2u, 0x000013f7u, + 0x00000c01u, 0x000017a8u, 0x00000c4au, 0x000700f5u, 0x00000008u, 0x00001787u, 0x000013cdu, 0x00000c01u, + 0x0000178du, 0x00000c4au, 0x000700f5u, 0x00000014u, 0x0000175fu, 0x000013a0u, 0x00000c01u, 0x00001767u, + 0x00000c4au, 0x000700f5u, 0x00000014u, 0x00001738u, 0x00001382u, 0x00000c01u, 0x00001740u, 0x00000c4au, + 0x000700f5u, 0x00000008u, 0x00001710u, 0x00001365u, 0x00000c01u, 0x00001718u, 0x00000c4au, 0x000700f5u, + 0x00000008u, 0x000016e8u, 0x00001348u, 0x00000c01u, 0x000016f0u, 0x00000c4au, 0x000700f5u, 0x00000008u, + 0x00001677u, 0x00001302u, 0x00000c01u, 0x00001684u, 0x00000c4au, 0x000700f5u, 0x00000008u, 0x00001639u, + 0x000012ffu, 0x00000c01u, 0x00001646u, 0x00000c4au, 0x000700f5u, 0x00000009u, 0x000015e6u, 0x000012f1u, + 0x00000c01u, 0x000015e7u, 0x00000c4au, 0x000700f5u, 0x0000002cu, 0x0000156eu, 0x0000155eu, 0x00000c01u, + 0x00001837u, 0x00000c4au, 0x000600a9u, 0x0000002cu, 0x00001838u, 0x00000c02u, 0x000002b6u, 0x00001541u, + 0x000200f9u, 0x000008b8u, 0x000200f8u, 0x000008b7u, 0x00060041u, 0x000000e9u, 0x000008bfu, 0x000008bdu, + 0x0000009fu, 0x00000898u, 0x0004003du, 0x00000006u, 0x000008c0u, 0x000008bfu, 0x000300f7u, 0x00000b13u, + 0x00000000u, 0x000900fbu, 0x0000036au, 0x00000b13u, 0x00000000u, 0x00000af4u, 0x00000001u, 0x00000af5u, + 0x00000002u, 0x00000afcu, 0x000200f8u, 0x00000afcu, 0x000500c2u, 0x00000006u, 0x00000afeu, 0x000008c0u, + 0x000000dcu, 0x000500c7u, 0x00000006u, 0x00000affu, 0x00000afeu, 0x000003b1u, 0x000500c2u, 0x00000006u, + 0x00000b01u, 0x000008c0u, 0x000000beu, 0x000500c7u, 0x00000006u, 0x00000b02u, 0x00000b01u, 0x000003b1u, + 0x000500c4u, 0x00000006u, 0x00000b04u, 0x000008c0u, 0x000000b8u, 0x000500c7u, 0x00000006u, 0x00000b05u, + 0x00000b04u, 0x000003b1u, 0x000500c7u, 0x00000006u, 0x00000b07u, 0x000008c0u, 0x000001ddu, 0x00050084u, + 0x00000006u, 0x00000b08u, 0x00000b07u, 0x0000069du, 0x0004007cu, 0x00000008u, 0x00000b0au, 0x00000affu, + 0x0004007cu, 0x00000008u, 0x00000b0cu, 0x00000b02u, 0x0004007cu, 0x00000008u, 0x00000b0eu, 0x00000b05u, + 0x0004007cu, 0x00000008u, 0x00000b10u, 0x00000b08u, 0x00070050u, 0x00000009u, 0x00000b11u, 0x00000b0au, + 0x00000b0cu, 0x00000b0eu, 0x00000b10u, 0x000300f7u, 0x00000b30u, 0x00000000u, 0x000400fau, 0x00000673u, + 0x00000b25u, 0x00000b2eu, 0x000200f8u, 0x00000b2eu, 0x000200f9u, 0x00000b30u, 0x000200f8u, 0x00000b25u, + 0x00060052u, 0x00000009u, 0x00001210u, 0x00000b0au, 0x000012f1u, 0x00000000u, 0x00060052u, 0x00000009u, + 0x00001212u, 0x00000b0cu, 0x00001210u, 0x00000001u, 0x00060052u, 0x00000009u, 0x00001214u, 0x00000b0eu, + 0x00001212u, 0x00000002u, 0x000200f9u, 0x00000b30u, 0x000200f8u, 0x00000b30u, 0x000700f5u, 0x00000009u, + 0x000014b4u, 0x00001214u, 0x00000b25u, 0x00000b11u, 0x00000b2eu, 0x000200f9u, 0x00000b13u, 0x000200f8u, + 0x00000af5u, 0x000500c7u, 0x00000006u, 0x00000af7u, 0x000008c0u, 0x000003d8u, 0x0004007cu, 0x00000008u, + 0x00000af9u, 0x00000af7u, 0x00070050u, 0x00000009u, 0x00000afau, 0x00000af9u, 0x00000af9u, 0x00000af9u, + 0x00000af9u, 0x000300f7u, 0x00000b23u, 0x00000000u, 0x000400fau, 0x00000673u, 0x00000b18u, 0x00000b21u, + 0x000200f8u, 0x00000b21u, 0x000200f9u, 0x00000b23u, 0x000200f8u, 0x00000b18u, 0x00060052u, 0x00000009u, + 0x0000120au, 0x00000af9u, 0x000012f1u, 0x00000000u, 0x00060052u, 0x00000009u, 0x0000120cu, 0x00000af9u, + 0x0000120au, 0x00000001u, 0x00060052u, 0x00000009u, 0x0000120eu, 0x00000af9u, 0x0000120cu, 0x00000002u, + 0x000200f9u, 0x00000b23u, 0x000200f8u, 0x00000b23u, 0x000700f5u, 0x00000009u, 0x000014b3u, 0x0000120eu, + 0x00000b18u, 0x00000afau, 0x00000b21u, 0x000200f9u, 0x00000b13u, 0x000200f8u, 0x00000af4u, 0x000200f9u, + 0x00000b13u, 0x000200f8u, 0x00000b13u, 0x000b00f5u, 0x0000002cu, 0x00001549u, 0x00001541u, 0x000008b7u, + 0x000002b6u, 0x00000af4u, 0x000002b6u, 0x00000b23u, 0x000002b6u, 0x00000b30u, 0x000b00f5u, 0x00000009u, + 0x000014b2u, 0x000012f1u, 0x000008b7u, 0x00000684u, 0x00000af4u, 0x000014b3u, 0x00000b23u, 0x000014b4u, + 0x00000b30u, 0x000300f7u, 0x00000b16u, 0x00000000u, 0x000400fau, 0x00000566u, 0x00000b14u, 0x00000b16u, + 0x000200f8u, 0x00000b14u, 0x000300f7u, 0x00000b69u, 0x00000000u, 0x000700fbu, 0x0000036au, 0x00000b69u, + 0x00000002u, 0x00000b36u, 0x00000003u, 0x00000b53u, 0x000200f8u, 0x00000b53u, 0x0007004fu, 0x0000002eu, + 0x00000b55u, 0x000014b2u, 0x000014b2u, 0x00000000u, 0x00000003u, 0x0004007cu, 0x0000006fu, 0x00000b56u, + 0x00000b55u, 0x00050051u, 0x00000006u, 0x00000b58u, 0x00000b56u, 0x00000000u, 0x000500c4u, 0x00000006u, + 0x00000b59u, 0x00000b58u, 0x000003aau, 0x00050051u, 0x00000006u, 0x00000b5bu, 0x00000b56u, 0x00000001u, + 0x000500c5u, 0x00000006u, 0x00000b5cu, 0x00000b59u, 0x00000b5bu, 0x000500c7u, 0x00000006u, 0x00000b5eu, + 0x00000b5cu, 0x000001ddu, 0x00050084u, 0x00000006u, 0x00000b5fu, 0x00000b5eu, 0x000001e3u, 0x000500c2u, + 0x00000006u, 0x00000b61u, 0x00000b5cu, 0x00000196u, 0x0004007cu, 0x00000008u, 0x00000b62u, 0x00000b61u, + 0x000500c7u, 0x00000006u, 0x00000b64u, 0x00000b5cu, 0x000001e3u, 0x000500c4u, 0x00000006u, 0x00000b65u, + 0x00000b64u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x00000b67u, 0x00000b65u, 0x00000b5fu, 0x0004007cu, + 0x00000008u, 0x00000b68u, 0x00000b67u, 0x000200f9u, 0x00000b69u, 0x000200f8u, 0x00000b36u, 0x00050051u, + 0x00000008u, 0x00000b38u, 0x000014b2u, 0x00000003u, 0x000500c3u, 0x00000008u, 0x00000b39u, 0x00000b38u, + 0x000000beu, 0x00050051u, 0x00000008u, 0x00000b3bu, 0x000014b2u, 0x00000002u, 0x000500c7u, 0x00000008u, + 0x00000b3cu, 0x00000b3bu, 0x000000dcu, 0x000500c5u, 0x00000008u, 0x00000b3du, 0x00000b39u, 0x00000b3cu, + 0x00050051u, 0x00000008u, 0x00000b3fu, 0x000014b2u, 0x00000000u, 0x0004007cu, 0x00000006u, 0x00000b40u, + 0x00000b3fu, 0x000500c7u, 0x00000006u, 0x00000b41u, 0x00000b40u, 0x000003b1u, 0x000500c4u, 0x00000006u, + 0x00000b42u, 0x00000b41u, 0x0000040bu, 0x00050051u, 0x00000008u, 0x00000b44u, 0x000014b2u, 0x00000001u, + 0x0004007cu, 0x00000006u, 0x00000b45u, 0x00000b44u, 0x000500c7u, 0x00000006u, 0x00000b46u, 0x00000b45u, + 0x000003b1u, 0x000500c4u, 0x00000006u, 0x00000b47u, 0x00000b46u, 0x000001ddu, 0x000500c5u, 0x00000006u, + 0x00000b49u, 0x00000b42u, 0x00000b47u, 0x0004007cu, 0x00000006u, 0x00000b4cu, 0x00000b3bu, 0x000500c7u, + 0x00000006u, 0x00000b4du, 0x00000b4cu, 0x000003b1u, 0x000500c2u, 0x00000006u, 0x00000b4eu, 0x00000b4du, + 0x00000418u, 0x000500c5u, 0x00000006u, 0x00000b50u, 0x00000b49u, 0x00000b4eu, 0x0004007cu, 0x00000008u, + 0x00000b52u, 0x00000b50u, 0x000200f9u, 0x00000b69u, 0x000200f8u, 0x00000b69u, 0x000900f5u, 0x00000008u, + 0x00001676u, 0x00001302u, 0x00000b14u, 0x00000b3du, 0x00000b36u, 0x00000b68u, 0x00000b53u, 0x000900f5u, + 0x00000008u, 0x00001638u, 0x000012ffu, 0x00000b14u, 0x00000b52u, 0x00000b36u, 0x00000b62u, 0x00000b53u, + 0x000200f9u, 0x00000b16u, 0x000200f8u, 0x00000b16u, 0x000700f5u, 0x00000008u, 0x00001672u, 0x00001302u, + 0x00000b13u, 0x00001676u, 0x00000b69u, 0x000700f5u, 0x00000008u, 0x00001634u, 0x000012ffu, 0x00000b13u, + 0x00001638u, 0x00000b69u, 0x000200f9u, 0x000008b8u, 0x000200f8u, 0x000008b8u, 0x000700f5u, 0x00000014u, + 0x000017d1u, 0x0000144cu, 0x00000b16u, 0x000017d7u, 0x00000c4bu, 0x000700f5u, 0x00000014u, 0x000017b7u, + 0x00001421u, 0x00000b16u, 0x000017bdu, 0x00000c4bu, 0x000700f5u, 0x00000008u, 0x0000179cu, 0x000013f7u, + 0x00000b16u, 0x000017a2u, 0x00000c4bu, 0x000700f5u, 0x00000008u, 0x00001781u, 0x000013cdu, 0x00000b16u, + 0x00001787u, 0x00000c4bu, 0x000700f5u, 0x00000014u, 0x00001759u, 0x000013a0u, 0x00000b16u, 0x0000175fu, + 0x00000c4bu, 0x000700f5u, 0x00000014u, 0x00001732u, 0x00001382u, 0x00000b16u, 0x00001738u, 0x00000c4bu, + 0x000700f5u, 0x00000008u, 0x0000170au, 0x00001365u, 0x00000b16u, 0x00001710u, 0x00000c4bu, 0x000700f5u, + 0x00000008u, 0x000016e2u, 0x00001348u, 0x00000b16u, 0x000016e8u, 0x00000c4bu, 0x000700f5u, 0x00000008u, + 0x00001671u, 0x00001672u, 0x00000b16u, 0x00001677u, 0x00000c4bu, 0x000700f5u, 0x00000008u, 0x00001633u, + 0x00001634u, 0x00000b16u, 0x00001639u, 0x00000c4bu, 0x000700f5u, 0x00000014u, 0x000015f5u, 0x000012f6u, + 0x00000b16u, 0x000012f4u, 0x00000c4bu, 0x000700f5u, 0x00000009u, 0x000015e3u, 0x000014b2u, 0x00000b16u, + 0x000015e6u, 0x00000c4bu, 0x000700f5u, 0x0000002cu, 0x00001568u, 0x0000155eu, 0x00000b16u, 0x0000156eu, + 0x00000c4bu, 0x000700f5u, 0x0000002cu, 0x00001547u, 0x00001549u, 0x00000b16u, 0x00001838u, 0x00000c4bu, + 0x000200f9u, 0x000008adu, 0x000200f8u, 0x000008acu, 0x00070041u, 0x000000e9u, 0x000008b0u, 0x000000a9u, + 0x0000009fu, 0x0000088fu, 0x000000e8u, 0x0004003du, 0x00000006u, 0x000008b1u, 0x000008b0u, 0x000300f7u, + 0x00000a7cu, 0x00000000u, 0x000b00fbu, 0x0000036au, 0x00000a7cu, 0x00000004u, 0x00000a22u, 0x00000002u, + 0x00000a39u, 0x00000003u, 0x00000a56u, 0x00000001u, 0x00000a6fu, 0x000200f8u, 0x00000a6fu, 0x000500c7u, + 0x00000006u, 0x00000a71u, 0x000014b7u, 0x000001e3u, 0x000500c6u, 0x00000006u, 0x00000a72u, 0x00000a71u, + 0x000001e3u, 0x00050084u, 0x00000006u, 0x00000a73u, 0x00000a72u, 0x000003aau, 0x000500c2u, 0x00000006u, + 0x00000a75u, 0x000008b1u, 0x00000a73u, 0x000500c7u, 0x00000006u, 0x00000a77u, 0x00000a75u, 0x000003d8u, + 0x0004007cu, 0x00000008u, 0x00000a79u, 0x00000a77u, 0x00070050u, 0x00000009u, 0x00000a7au, 0x00000a79u, + 0x00000a79u, 0x00000a79u, 0x00000a79u, 0x000300f7u, 0x00000ab3u, 0x00000000u, 0x000400fau, 0x00000673u, + 0x00000aa8u, 0x00000ab1u, 0x000200f8u, 0x00000ab1u, 0x000200f9u, 0x00000ab3u, 0x000200f8u, 0x00000aa8u, + 0x00060052u, 0x00000009u, 0x000011fdu, 0x00000a79u, 0x000012f1u, 0x00000000u, 0x00060052u, 0x00000009u, + 0x000011ffu, 0x00000a79u, 0x000011fdu, 0x00000001u, 0x00060052u, 0x00000009u, 0x00001201u, 0x00000a79u, + 0x000011ffu, 0x00000002u, 0x000200f9u, 0x00000ab3u, 0x000200f8u, 0x00000ab3u, 0x000700f5u, 0x00000009u, + 0x000014bfu, 0x00001201u, 0x00000aa8u, 0x00000a7au, 0x00000ab1u, 0x000200f9u, 0x00000a7cu, 0x000200f8u, + 0x00000a56u, 0x000500c7u, 0x00000006u, 0x00000a58u, 0x000014b7u, 0x000001ddu, 0x000500c6u, 0x00000006u, + 0x00000a59u, 0x00000a58u, 0x000001ddu, 0x00050084u, 0x00000006u, 0x00000a5au, 0x00000a59u, 0x000003f3u, + 0x000500c2u, 0x00000006u, 0x00000a5cu, 0x000008b1u, 0x00000a5au, 0x000500c7u, 0x00000006u, 0x00000a5eu, + 0x00000a5cu, 0x00000494u, 0x000500c2u, 0x00000006u, 0x00000a60u, 0x00000a5eu, 0x000003aau, 0x000500c7u, + 0x00000006u, 0x00000a61u, 0x00000a60u, 0x000003d8u, 0x000500c2u, 0x00000006u, 0x00000a63u, 0x00000a5eu, + 0x000001bbu, 0x000500c7u, 0x00000006u, 0x00000a64u, 0x00000a63u, 0x000003d8u, 0x0004007cu, 0x00000008u, + 0x00000a66u, 0x00000a61u, 0x0004007cu, 0x00000008u, 0x00000a6cu, 0x00000a64u, 0x00070050u, 0x00000009u, + 0x00000a6du, 0x00000a66u, 0x00000a66u, 0x00000a66u, 0x00000a6cu, 0x000300f7u, 0x00000aa6u, 0x00000000u, + 0x000400fau, 0x00000673u, 0x00000a9bu, 0x00000aa4u, 0x000200f8u, 0x00000aa4u, 0x000200f9u, 0x00000aa6u, + 0x000200f8u, 0x00000a9bu, 0x00060052u, 0x00000009u, 0x000011f7u, 0x00000a66u, 0x000012f1u, 0x00000000u, + 0x00060052u, 0x00000009u, 0x000011f9u, 0x00000a66u, 0x000011f7u, 0x00000001u, 0x00060052u, 0x00000009u, + 0x000011fbu, 0x00000a66u, 0x000011f9u, 0x00000002u, 0x000200f9u, 0x00000aa6u, 0x000200f8u, 0x00000aa6u, + 0x000700f5u, 0x00000009u, 0x000014beu, 0x000011fbu, 0x00000a9bu, 0x00000a6du, 0x00000aa4u, 0x000200f9u, + 0x00000a7cu, 0x000200f8u, 0x00000a39u, 0x000500c7u, 0x00000006u, 0x00000a3bu, 0x000014b7u, 0x000001ddu, + 0x000500c6u, 0x00000006u, 0x00000a3cu, 0x00000a3bu, 0x000001ddu, 0x00050084u, 0x00000006u, 0x00000a3du, + 0x00000a3cu, 0x000003f3u, 0x000500c2u, 0x00000006u, 0x00000a3fu, 0x000008b1u, 0x00000a3du, 0x000500c2u, + 0x00000006u, 0x00000a41u, 0x00000a3fu, 0x000003aau, 0x000500c7u, 0x00000006u, 0x00000a42u, 0x00000a41u, + 0x000003b1u, 0x000500c2u, 0x00000006u, 0x00000a44u, 0x00000a3fu, 0x000001e3u, 0x000500c7u, 0x00000006u, + 0x00000a45u, 0x00000a44u, 0x000003b1u, 0x000500c4u, 0x00000006u, 0x00000a47u, 0x00000a3fu, 0x00000196u, + 0x000500c7u, 0x00000006u, 0x00000a48u, 0x00000a47u, 0x000003b1u, 0x000500c7u, 0x00000006u, 0x00000a4au, + 0x00000a3fu, 0x000001ddu, 0x00050084u, 0x00000006u, 0x00000a4bu, 0x00000a4au, 0x0000069du, 0x0004007cu, + 0x00000008u, 0x00000a4du, 0x00000a42u, 0x0004007cu, 0x00000008u, 0x00000a4fu, 0x00000a45u, 0x0004007cu, + 0x00000008u, 0x00000a51u, 0x00000a48u, 0x0004007cu, 0x00000008u, 0x00000a53u, 0x00000a4bu, 0x00070050u, + 0x00000009u, 0x00000a54u, 0x00000a4du, 0x00000a4fu, 0x00000a51u, 0x00000a53u, 0x000300f7u, 0x00000a99u, + 0x00000000u, 0x000400fau, 0x00000673u, 0x00000a8eu, 0x00000a97u, 0x000200f8u, 0x00000a97u, 0x000200f9u, + 0x00000a99u, 0x000200f8u, 0x00000a8eu, 0x00060052u, 0x00000009u, 0x000011f1u, 0x00000a4du, 0x000012f1u, + 0x00000000u, 0x00060052u, 0x00000009u, 0x000011f3u, 0x00000a4fu, 0x000011f1u, 0x00000001u, 0x00060052u, + 0x00000009u, 0x000011f5u, 0x00000a51u, 0x000011f3u, 0x00000002u, 0x000200f9u, 0x00000a99u, 0x000200f8u, + 0x00000a99u, 0x000700f5u, 0x00000009u, 0x000014bdu, 0x000011f5u, 0x00000a8eu, 0x00000a54u, 0x00000a97u, + 0x000200f9u, 0x00000a7cu, 0x000200f8u, 0x00000a22u, 0x000500c2u, 0x00000006u, 0x00000a24u, 0x000008b1u, + 0x000003f2u, 0x000500c7u, 0x00000006u, 0x00000a25u, 0x00000a24u, 0x000003d8u, 0x000500c2u, 0x00000006u, + 0x00000a27u, 0x000008b1u, 0x000003f3u, 0x000500c7u, 0x00000006u, 0x00000a28u, 0x00000a27u, 0x000003d8u, + 0x000500c2u, 0x00000006u, 0x00000a2au, 0x000008b1u, 0x000003aau, 0x000500c7u, 0x00000006u, 0x00000a2bu, + 0x00000a2au, 0x000003d8u, 0x000500c2u, 0x00000006u, 0x00000a2du, 0x000008b1u, 0x000001bbu, 0x000500c7u, + 0x00000006u, 0x00000a2eu, 0x00000a2du, 0x000003d8u, 0x0004007cu, 0x00000008u, 0x00000a30u, 0x00000a25u, + 0x0004007cu, 0x00000008u, 0x00000a32u, 0x00000a28u, 0x0004007cu, 0x00000008u, 0x00000a34u, 0x00000a2bu, + 0x0004007cu, 0x00000008u, 0x00000a36u, 0x00000a2eu, 0x00070050u, 0x00000009u, 0x00000a37u, 0x00000a30u, + 0x00000a32u, 0x00000a34u, 0x00000a36u, 0x000300f7u, 0x00000a8cu, 0x00000000u, 0x000400fau, 0x00000673u, + 0x00000a81u, 0x00000a8au, 0x000200f8u, 0x00000a8au, 0x000200f9u, 0x00000a8cu, 0x000200f8u, 0x00000a81u, + 0x00060052u, 0x00000009u, 0x000011ebu, 0x00000a30u, 0x000012f1u, 0x00000000u, 0x00060052u, 0x00000009u, + 0x000011edu, 0x00000a32u, 0x000011ebu, 0x00000001u, 0x00060052u, 0x00000009u, 0x000011efu, 0x00000a34u, + 0x000011edu, 0x00000002u, 0x000200f9u, 0x00000a8cu, 0x000200f8u, 0x00000a8cu, 0x000700f5u, 0x00000009u, + 0x000014bcu, 0x000011efu, 0x00000a81u, 0x00000a37u, 0x00000a8au, 0x000200f9u, 0x00000a7cu, 0x000200f8u, + 0x00000a7cu, 0x000d00f5u, 0x0000002cu, 0x00001545u, 0x00001541u, 0x000008acu, 0x000002b6u, 0x00000a8cu, + 0x000002b6u, 0x00000a99u, 0x000002b6u, 0x00000aa6u, 0x000002b6u, 0x00000ab3u, 0x000d00f5u, 0x00000009u, + 0x000014bbu, 0x000012f1u, 0x000008acu, 0x000014bcu, 0x00000a8cu, 0x000014bdu, 0x00000a99u, 0x000014beu, + 0x00000aa6u, 0x000014bfu, 0x00000ab3u, 0x000300f7u, 0x00000a7fu, 0x00000000u, 0x000400fau, 0x00000566u, + 0x00000a7du, 0x00000a7fu, 0x000200f8u, 0x00000a7du, 0x000300f7u, 0x00000aecu, 0x00000000u, 0x000700fbu, + 0x0000036au, 0x00000aecu, 0x00000002u, 0x00000ab9u, 0x00000003u, 0x00000ad6u, 0x000200f8u, 0x00000ad6u, + 0x0007004fu, 0x0000002eu, 0x00000ad8u, 0x000014bbu, 0x000014bbu, 0x00000000u, 0x00000003u, 0x0004007cu, + 0x0000006fu, 0x00000ad9u, 0x00000ad8u, 0x00050051u, 0x00000006u, 0x00000adbu, 0x00000ad9u, 0x00000000u, + 0x000500c4u, 0x00000006u, 0x00000adcu, 0x00000adbu, 0x000003aau, 0x00050051u, 0x00000006u, 0x00000adeu, + 0x00000ad9u, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00000adfu, 0x00000adcu, 0x00000adeu, 0x000500c7u, + 0x00000006u, 0x00000ae1u, 0x00000adfu, 0x000001ddu, 0x00050084u, 0x00000006u, 0x00000ae2u, 0x00000ae1u, + 0x000001e3u, 0x000500c2u, 0x00000006u, 0x00000ae4u, 0x00000adfu, 0x00000196u, 0x0004007cu, 0x00000008u, + 0x00000ae5u, 0x00000ae4u, 0x000500c7u, 0x00000006u, 0x00000ae7u, 0x00000adfu, 0x000001e3u, 0x000500c4u, + 0x00000006u, 0x00000ae8u, 0x00000ae7u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x00000aeau, 0x00000ae8u, + 0x00000ae2u, 0x0004007cu, 0x00000008u, 0x00000aebu, 0x00000aeau, 0x000200f9u, 0x00000aecu, 0x000200f8u, + 0x00000ab9u, 0x00050051u, 0x00000008u, 0x00000abbu, 0x000014bbu, 0x00000003u, 0x000500c3u, 0x00000008u, + 0x00000abcu, 0x00000abbu, 0x000000beu, 0x00050051u, 0x00000008u, 0x00000abeu, 0x000014bbu, 0x00000002u, + 0x000500c7u, 0x00000008u, 0x00000abfu, 0x00000abeu, 0x000000dcu, 0x000500c5u, 0x00000008u, 0x00000ac0u, + 0x00000abcu, 0x00000abfu, 0x00050051u, 0x00000008u, 0x00000ac2u, 0x000014bbu, 0x00000000u, 0x0004007cu, + 0x00000006u, 0x00000ac3u, 0x00000ac2u, 0x000500c7u, 0x00000006u, 0x00000ac4u, 0x00000ac3u, 0x000003b1u, + 0x000500c4u, 0x00000006u, 0x00000ac5u, 0x00000ac4u, 0x0000040bu, 0x00050051u, 0x00000008u, 0x00000ac7u, + 0x000014bbu, 0x00000001u, 0x0004007cu, 0x00000006u, 0x00000ac8u, 0x00000ac7u, 0x000500c7u, 0x00000006u, + 0x00000ac9u, 0x00000ac8u, 0x000003b1u, 0x000500c4u, 0x00000006u, 0x00000acau, 0x00000ac9u, 0x000001ddu, + 0x000500c5u, 0x00000006u, 0x00000accu, 0x00000ac5u, 0x00000acau, 0x0004007cu, 0x00000006u, 0x00000acfu, + 0x00000abeu, 0x000500c7u, 0x00000006u, 0x00000ad0u, 0x00000acfu, 0x000003b1u, 0x000500c2u, 0x00000006u, + 0x00000ad1u, 0x00000ad0u, 0x00000418u, 0x000500c5u, 0x00000006u, 0x00000ad3u, 0x00000accu, 0x00000ad1u, + 0x0004007cu, 0x00000008u, 0x00000ad5u, 0x00000ad3u, 0x000200f9u, 0x00000aecu, 0x000200f8u, 0x00000aecu, + 0x000900f5u, 0x00000008u, 0x00001670u, 0x00001302u, 0x00000a7du, 0x00000ac0u, 0x00000ab9u, 0x00000aebu, + 0x00000ad6u, 0x000900f5u, 0x00000008u, 0x00001632u, 0x000012ffu, 0x00000a7du, 0x00000ad5u, 0x00000ab9u, + 0x00000ae5u, 0x00000ad6u, 0x000200f9u, 0x00000a7fu, 0x000200f8u, 0x00000a7fu, 0x000700f5u, 0x00000008u, + 0x0000166au, 0x00001302u, 0x00000a7cu, 0x00001670u, 0x00000aecu, 0x000700f5u, 0x00000008u, 0x0000162cu, + 0x000012ffu, 0x00000a7cu, 0x00001632u, 0x00000aecu, 0x000200f9u, 0x000008adu, 0x000200f8u, 0x000008adu, + 0x000700f5u, 0x00000014u, 0x000017c9u, 0x0000144cu, 0x00000a7fu, 0x000017d1u, 0x000008b8u, 0x000700f5u, + 0x00000014u, 0x000017afu, 0x00001421u, 0x00000a7fu, 0x000017b7u, 0x000008b8u, 0x000700f5u, 0x00000008u, + 0x00001794u, 0x000013f7u, 0x00000a7fu, 0x0000179cu, 0x000008b8u, 0x000700f5u, 0x00000008u, 0x00001779u, + 0x000013cdu, 0x00000a7fu, 0x00001781u, 0x000008b8u, 0x000700f5u, 0x00000014u, 0x00001751u, 0x000013a0u, + 0x00000a7fu, 0x00001759u, 0x000008b8u, 0x000700f5u, 0x00000014u, 0x0000172au, 0x00001382u, 0x00000a7fu, + 0x00001732u, 0x000008b8u, 0x000700f5u, 0x00000008u, 0x00001702u, 0x00001365u, 0x00000a7fu, 0x0000170au, + 0x000008b8u, 0x000700f5u, 0x00000008u, 0x000016dau, 0x00001348u, 0x00000a7fu, 0x000016e2u, 0x000008b8u, + 0x000700f5u, 0x00000008u, 0x00001669u, 0x0000166au, 0x00000a7fu, 0x00001671u, 0x000008b8u, 0x000700f5u, + 0x00000008u, 0x0000162bu, 0x0000162cu, 0x00000a7fu, 0x00001633u, 0x000008b8u, 0x000700f5u, 0x00000014u, + 0x000015edu, 0x000012f6u, 0x00000a7fu, 0x000015f5u, 0x000008b8u, 0x000700f5u, 0x00000009u, 0x000015e0u, + 0x000014bbu, 0x00000a7fu, 0x000015e3u, 0x000008b8u, 0x000700f5u, 0x0000002cu, 0x00001560u, 0x0000155eu, + 0x00000a7fu, 0x00001568u, 0x000008b8u, 0x000700f5u, 0x0000002cu, 0x00001543u, 0x00001545u, 0x00000a7fu, + 0x00001547u, 0x000008b8u, 0x000200f9u, 0x000008a7u, 0x000200f8u, 0x000008a7u, 0x000700f5u, 0x00000014u, + 0x000017c8u, 0x0000144cu, 0x0000087bu, 0x000017c9u, 0x000008adu, 0x000700f5u, 0x00000014u, 0x000017aeu, + 0x00001421u, 0x0000087bu, 0x000017afu, 0x000008adu, 0x000700f5u, 0x00000008u, 0x00001793u, 0x000013f7u, + 0x0000087bu, 0x00001794u, 0x000008adu, 0x000700f5u, 0x00000008u, 0x00001778u, 0x000013cdu, 0x0000087bu, + 0x00001779u, 0x000008adu, 0x000700f5u, 0x00000014u, 0x00001750u, 0x000013a0u, 0x0000087bu, 0x00001751u, + 0x000008adu, 0x000700f5u, 0x00000014u, 0x00001729u, 0x00001382u, 0x0000087bu, 0x0000172au, 0x000008adu, + 0x000700f5u, 0x00000008u, 0x00001701u, 0x00001365u, 0x0000087bu, 0x00001702u, 0x000008adu, 0x000700f5u, + 0x00000008u, 0x000016d9u, 0x00001348u, 0x0000087bu, 0x000016dau, 0x000008adu, 0x000700f5u, 0x00000008u, + 0x00001668u, 0x00001302u, 0x0000087bu, 0x00001669u, 0x000008adu, 0x000700f5u, 0x00000008u, 0x0000162au, + 0x000012ffu, 0x0000087bu, 0x0000162bu, 0x000008adu, 0x000700f5u, 0x00000014u, 0x000015ecu, 0x000012f6u, + 0x0000087bu, 0x000015edu, 0x000008adu, 0x000700f5u, 0x00000009u, 0x000015dfu, 0x000012f1u, 0x0000087bu, + 0x000015e0u, 0x000008adu, 0x000700f5u, 0x0000002cu, 0x0000155fu, 0x0000155eu, 0x0000087bu, 0x00001560u, + 0x000008adu, 0x000700f5u, 0x0000002cu, 0x00001542u, 0x00001541u, 0x0000087bu, 0x00001543u, 0x000008adu, + 0x00050080u, 0x00000006u, 0x000008f1u, 0x000012f0u, 0x000000b2u, 0x000200f9u, 0x0000087du, 0x000200f8u, + 0x0000087du, 0x000200f9u, 0x0000087au, 0x000200f8u, 0x0000087cu, 0x000200f9u, 0x00000859u, 0x000200f8u, + 0x00000859u, 0x000200f9u, 0x00000856u, 0x000200f8u, 0x00000858u, 0x000500aeu, 0x00000592u, 0x00001030u, + 0x00000848u, 0x00000964u, 0x0004009au, 0x0000002cu, 0x00001031u, 0x00001030u, 0x000600a9u, 0x0000002cu, + 0x00001839u, 0x00001031u, 0x0000029bu, 0x000012b7u, 0x000600a9u, 0x0000002cu, 0x0000183au, 0x00001031u, + 0x0000029bu, 0x0000129au, 0x000500c2u, 0x00000006u, 0x00001035u, 0x0000084bu, 0x0000055du, 0x00050050u, + 0x0000006fu, 0x00001037u, 0x00000614u, 0x00000614u, 0x000500c7u, 0x0000006fu, 0x00001038u, 0x00000848u, + 0x00001037u, 0x00050050u, 0x0000002eu, 0x0000103au, 0x0000055du, 0x0000055du, 0x000500c2u, 0x0000006fu, + 0x0000103bu, 0x00000848u, 0x0000103au, 0x00050051u, 0x00000006u, 0x0000103du, 0x00001038u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000103eu, 0x0000103du, 0x0000061du, 0x00050051u, 0x00000006u, 0x00001040u, + 0x00001038u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00001041u, 0x0000103eu, 0x00001040u, 0x00050051u, + 0x00000006u, 0x00001045u, 0x0000103bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00001046u, 0x00001035u, + 0x00001045u, 0x00050080u, 0x00000006u, 0x00001047u, 0x00000851u, 0x00001046u, 0x00050051u, 0x00000006u, + 0x00001049u, 0x0000103bu, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000104au, 0x00001047u, 0x00001049u, + 0x000300f7u, 0x00001111u, 0x00000000u, 0x000400fau, 0x0000183au, 0x00001069u, 0x00001111u, 0x000200f8u, + 0x00001069u, 0x000300f7u, 0x00001110u, 0x00000000u, 0x000d00fbu, 0x0000036au, 0x00001110u, 0x00000000u, + 0x0000106au, 0x00000001u, 0x00001080u, 0x00000002u, 0x0000109au, 0x00000003u, 0x000010c8u, 0x00000004u, + 0x000010e4u, 0x000200f8u, 0x000010e4u, 0x000500c7u, 0x00000006u, 0x000010e6u, 0x0000104au, 0x000003e0u, + 0x00050084u, 0x00000006u, 0x000010e8u, 0x00001041u, 0x0000052du, 0x00050080u, 0x00000006u, 0x000010eau, + 0x000010e6u, 0x000010e8u, 0x0004007cu, 0x000000aeu, 0x000010ecu, 0x0000129fu, 0x00050051u, 0x00000006u, + 0x000010eeu, 0x000010ecu, 0x00000000u, 0x000500c4u, 0x00000006u, 0x000010efu, 0x000010eeu, 0x000003f2u, + 0x00050051u, 0x00000006u, 0x000010f1u, 0x000010ecu, 0x00000001u, 0x000500c4u, 0x00000006u, 0x000010f2u, + 0x000010f1u, 0x000003f3u, 0x000500c5u, 0x00000006u, 0x000010f3u, 0x000010efu, 0x000010f2u, 0x00050051u, + 0x00000006u, 0x000010f5u, 0x000010ecu, 0x00000002u, 0x000500c4u, 0x00000006u, 0x000010f6u, 0x000010f5u, + 0x000003aau, 0x000500c5u, 0x00000006u, 0x000010f7u, 0x000010f3u, 0x000010f6u, 0x00050051u, 0x00000006u, + 0x000010f9u, 0x000010ecu, 0x00000003u, 0x000500c4u, 0x00000006u, 0x000010fau, 0x000010f9u, 0x000001bbu, + 0x000500c5u, 0x00000006u, 0x000010fbu, 0x000010f7u, 0x000010fau, 0x00060041u, 0x000000e9u, 0x000010feu, + 0x000003ecu, 0x0000009fu, 0x000010eau, 0x0003003eu, 0x000010feu, 0x000010fbu, 0x00050084u, 0x00000006u, + 0x00001100u, 0x00000196u, 0x000010eau, 0x00050051u, 0x00000008u, 0x00001102u, 0x0000129fu, 0x00000001u, + 0x000500c7u, 0x00000008u, 0x00001103u, 0x00001102u, 0x000000b2u, 0x00050084u, 0x00000008u, 0x00001104u, + 0x00001103u, 0x000000beu, 0x00040071u, 0x000000a0u, 0x00001105u, 0x00001104u, 0x00060041u, 0x000000f5u, + 0x00001106u, 0x0000038bu, 0x0000009fu, 0x00001100u, 0x0003003eu, 0x00001106u, 0x00001105u, 0x00050080u, + 0x00000006u, 0x00001109u, 0x00001100u, 0x000001ddu, 0x00050051u, 0x00000008u, 0x0000110bu, 0x0000129fu, + 0x00000003u, 0x000500c7u, 0x00000008u, 0x0000110cu, 0x0000110bu, 0x000000b2u, 0x00050084u, 0x00000008u, + 0x0000110du, 0x0000110cu, 0x000000beu, 0x00040071u, 0x000000a0u, 0x0000110eu, 0x0000110du, 0x00060041u, + 0x000000f5u, 0x0000110fu, 0x0000038bu, 0x0000009fu, 0x00001109u, 0x0003003eu, 0x0000110fu, 0x0000110eu, + 0x000200f9u, 0x00001110u, 0x000200f8u, 0x000010c8u, 0x000500c7u, 0x00000006u, 0x000010cau, 0x0000104au, + 0x00000394u, 0x00050084u, 0x00000006u, 0x000010ccu, 0x00001041u, 0x0000050eu, 0x00050080u, 0x00000006u, + 0x000010ceu, 0x000010cau, 0x000010ccu, 0x0007004fu, 0x0000002eu, 0x000010d0u, 0x0000129fu, 0x0000129fu, + 0x00000000u, 0x00000003u, 0x0004007cu, 0x0000006fu, 0x000010d1u, 0x000010d0u, 0x00050051u, 0x00000006u, + 0x000010d3u, 0x000010d1u, 0x00000000u, 0x000500c4u, 0x00000006u, 0x000010d4u, 0x000010d3u, 0x000003aau, + 0x00050051u, 0x00000006u, 0x000010d6u, 0x000010d1u, 0x00000001u, 0x000500c5u, 0x00000006u, 0x000010d7u, + 0x000010d4u, 0x000010d6u, 0x000500c6u, 0x00000006u, 0x000010d9u, 0x000010ceu, 0x000001ddu, 0x00040071u, + 0x000000a2u, 0x000010dbu, 0x000010d7u, 0x00060041u, 0x000000eeu, 0x000010dcu, 0x000003a0u, 0x0000009fu, + 0x000010d9u, 0x0003003eu, 0x000010dcu, 0x000010dbu, 0x000500c7u, 0x00000006u, 0x000010e0u, 0x000010d6u, + 0x000001ddu, 0x00050084u, 0x00000006u, 0x000010e1u, 0x000010e0u, 0x000001e3u, 0x00040071u, 0x000000a0u, + 0x000010e2u, 0x000010e1u, 0x00060041u, 0x000000f5u, 0x000010e3u, 0x0000038bu, 0x0000009fu, 0x000010ceu, + 0x0003003eu, 0x000010e3u, 0x000010e2u, 0x000200f9u, 0x00001110u, 0x000200f8u, 0x0000109au, 0x000500c7u, + 0x00000006u, 0x0000109cu, 0x0000104au, 0x00000394u, 0x00050084u, 0x00000006u, 0x0000109eu, 0x00001041u, + 0x000004dbu, 0x00050080u, 0x00000006u, 0x000010a0u, 0x0000109cu, 0x0000109eu, 0x0004007cu, 0x000000aeu, + 0x000010a2u, 0x0000129fu, 0x0008004fu, 0x000003a6u, 0x000010a4u, 0x000010a2u, 0x000010a2u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000500c7u, 0x000003a6u, 0x000010a6u, 0x000010a4u, 0x00001823u, 0x00050051u, + 0x00000006u, 0x000010a8u, 0x000010a6u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000010aau, 0x000010a6u, + 0x00000001u, 0x00050051u, 0x00000006u, 0x000010acu, 0x000010a6u, 0x00000002u, 0x00050051u, 0x00000006u, + 0x000010aeu, 0x000010a2u, 0x00000003u, 0x000500c2u, 0x00000006u, 0x000010afu, 0x000010aeu, 0x0000044bu, + 0x000500c4u, 0x00000006u, 0x000010b2u, 0x000010a8u, 0x000003aau, 0x000500c4u, 0x00000006u, 0x000010b5u, + 0x000010aau, 0x000001e3u, 0x000500c5u, 0x00000006u, 0x000010b6u, 0x000010b2u, 0x000010b5u, 0x000500c2u, + 0x00000006u, 0x000010b9u, 0x000010acu, 0x00000196u, 0x000500c5u, 0x00000006u, 0x000010bau, 0x000010b6u, + 0x000010b9u, 0x000500c2u, 0x00000006u, 0x000010bcu, 0x000010afu, 0x00000196u, 0x000500c5u, 0x00000006u, + 0x000010bdu, 0x000010bau, 0x000010bcu, 0x000500c6u, 0x00000006u, 0x000010bfu, 0x000010a0u, 0x000001ddu, + 0x00040071u, 0x000000a2u, 0x000010c1u, 0x000010bdu, 0x00060041u, 0x000000eeu, 0x000010c2u, 0x000003a0u, + 0x0000009fu, 0x000010bfu, 0x0003003eu, 0x000010c2u, 0x000010c1u, 0x000500c7u, 0x00000006u, 0x000010c5u, + 0x000010afu, 0x000001e3u, 0x00040071u, 0x000000a0u, 0x000010c6u, 0x000010c5u, 0x00060041u, 0x000000f5u, + 0x000010c7u, 0x0000038bu, 0x0000009fu, 0x000010a0u, 0x0003003eu, 0x000010c7u, 0x000010c6u, 0x000200f9u, + 0x00001110u, 0x000200f8u, 0x00001080u, 0x000500c7u, 0x00000006u, 0x00001082u, 0x0000104au, 0x00000371u, + 0x00050084u, 0x00000006u, 0x00001084u, 0x00001041u, 0x00000370u, 0x00050080u, 0x00000006u, 0x00001086u, + 0x00001082u, 0x00001084u, 0x000500c6u, 0x00000006u, 0x00001088u, 0x00001086u, 0x000001e3u, 0x00050051u, + 0x00000008u, 0x0000108au, 0x0000129fu, 0x00000000u, 0x00040071u, 0x000000a0u, 0x0000108bu, 0x0000108au, + 0x00060041u, 0x000000f5u, 0x0000108cu, 0x0000037cu, 0x0000009fu, 0x00001088u, 0x0003003eu, 0x0000108cu, + 0x0000108bu, 0x000500c7u, 0x00000006u, 0x0000108eu, 0x00001086u, 0x000001ddu, 0x000500abu, 0x0000002cu, + 0x0000108fu, 0x0000108eu, 0x000001bbu, 0x000300f7u, 0x00001099u, 0x00000000u, 0x000400fau, 0x0000108fu, + 0x00001090u, 0x00001099u, 0x000200f8u, 0x00001090u, 0x000500c2u, 0x00000006u, 0x00001092u, 0x00001086u, + 0x000001ddu, 0x000500c7u, 0x00000008u, 0x00001095u, 0x0000108au, 0x000000b2u, 0x00050084u, 0x00000008u, + 0x00001096u, 0x00001095u, 0x000000beu, 0x00040071u, 0x000000a0u, 0x00001097u, 0x00001096u, 0x00060041u, + 0x000000f5u, 0x00001098u, 0x0000038bu, 0x0000009fu, 0x00001092u, 0x0003003eu, 0x00001098u, 0x00001097u, + 0x000200f9u, 0x00001099u, 0x000200f8u, 0x00001099u, 0x000200f9u, 0x00001110u, 0x000200f8u, 0x0000106au, + 0x000500c7u, 0x00000006u, 0x0000106cu, 0x0000104au, 0x00000371u, 0x00050084u, 0x00000006u, 0x0000106eu, + 0x00001041u, 0x00000370u, 0x00050080u, 0x00000006u, 0x00001070u, 0x0000106cu, 0x0000106eu, 0x000500c6u, + 0x00000006u, 0x00001072u, 0x00001070u, 0x000001e3u, 0x00060041u, 0x000000f5u, 0x00001074u, 0x0000037cu, + 0x0000009fu, 0x00001072u, 0x0003003eu, 0x00001074u, 0x0000182cu, 0x000500c7u, 0x00000006u, 0x00001076u, + 0x00001070u, 0x000001ddu, 0x000500abu, 0x0000002cu, 0x00001077u, 0x00001076u, 0x000001bbu, 0x000300f7u, + 0x0000107fu, 0x00000000u, 0x000400fau, 0x00001077u, 0x00001078u, 0x0000107fu, 0x000200f8u, 0x00001078u, + 0x000500c2u, 0x00000006u, 0x0000107au, 0x00001070u, 0x000001ddu, 0x00050051u, 0x00000008u, 0x0000107cu, + 0x0000129fu, 0x00000003u, 0x00040071u, 0x000000a0u, 0x0000107du, 0x0000107cu, 0x00060041u, 0x000000f5u, + 0x0000107eu, 0x0000038bu, 0x0000009fu, 0x0000107au, 0x0003003eu, 0x0000107eu, 0x0000107du, 0x000200f9u, + 0x0000107fu, 0x000200f8u, 0x0000107fu, 0x000200f9u, 0x00001110u, 0x000200f8u, 0x00001110u, 0x000f00f5u, + 0x00000006u, 0x000012a4u, 0x0000104au, 0x00001069u, 0x00001070u, 0x0000107fu, 0x00001086u, 0x00001099u, + 0x000010a0u, 0x0000109au, 0x000010ceu, 0x000010c8u, 0x000010eau, 0x000010e4u, 0x000200f9u, 0x00001111u, + 0x000200f8u, 0x00001111u, 0x000700f5u, 0x00000006u, 0x000012a3u, 0x0000104au, 0x00000858u, 0x000012a4u, + 0x00001110u, 0x000300f7u, 0x00001115u, 0x00000000u, 0x000400fau, 0x0000055fu, 0x00001112u, 0x00001115u, + 0x000200f8u, 0x00001112u, 0x000300e1u, 0x000001ddu, 0x00000562u, 0x000300f7u, 0x0000112au, 0x00000000u, + 0x000400fau, 0x0000183au, 0x00001118u, 0x0000112au, 0x000200f8u, 0x00001118u, 0x000300f7u, 0x00001129u, + 0x00000000u, 0x000d00fbu, 0x0000036au, 0x00001129u, 0x00000000u, 0x00001119u, 0x00000001u, 0x00001119u, + 0x00000002u, 0x0000111fu, 0x00000003u, 0x0000111fu, 0x00000004u, 0x00001125u, 0x000200f8u, 0x00001125u, + 0x00050080u, 0x00000006u, 0x00001127u, 0x000012a3u, 0x00000499u, 0x00060041u, 0x000000e9u, 0x00001128u, + 0x000003ecu, 0x0000009fu, 0x00001127u, 0x0003003eu, 0x00001128u, 0x0000049bu, 0x000200f9u, 0x00001129u, + 0x000200f8u, 0x0000111fu, 0x000500c6u, 0x00000006u, 0x00001121u, 0x000012a3u, 0x000001ddu, 0x00050080u, + 0x00000006u, 0x00001122u, 0x00001121u, 0x00000492u, 0x00060041u, 0x000000eeu, 0x00001124u, 0x000003a0u, + 0x0000009fu, 0x00001122u, 0x0003003eu, 0x00001124u, 0x0000182eu, 0x000200f9u, 0x00001129u, 0x000200f8u, + 0x00001119u, 0x000500c6u, 0x00000006u, 0x0000111bu, 0x000012a3u, 0x000001e3u, 0x00050080u, 0x00000006u, + 0x0000111cu, 0x0000111bu, 0x00000370u, 0x00060041u, 0x000000f5u, 0x0000111eu, 0x0000037cu, 0x0000009fu, + 0x0000111cu, 0x0003003eu, 0x0000111eu, 0x0000182du, 0x000200f9u, 0x00001129u, 0x000200f8u, 0x00001129u, + 0x000200f9u, 0x0000112au, 0x000200f8u, 0x0000112au, 0x000200f9u, 0x00001115u, 0x000200f8u, 0x00001115u, + 0x00050080u, 0x00000006u, 0x00001053u, 0x00000854u, 0x00001046u, 0x00050080u, 0x00000006u, 0x00001056u, + 0x00001053u, 0x00001049u, 0x000300f7u, 0x0000114eu, 0x00000000u, 0x000400fau, 0x00000567u, 0x0000112cu, + 0x0000114eu, 0x000200f8u, 0x0000112cu, 0x000300f7u, 0x00001143u, 0x00000000u, 0x000400fau, 0x00001839u, + 0x0000112eu, 0x00001143u, 0x000200f8u, 0x0000112eu, 0x000500c7u, 0x00000006u, 0x00001130u, 0x00001056u, + 0x00000394u, 0x00050084u, 0x00000006u, 0x00001132u, 0x00001041u, 0x00000571u, 0x00050080u, 0x00000006u, + 0x00001134u, 0x00001130u, 0x00001132u, 0x000500c6u, 0x00000006u, 0x00001136u, 0x00001134u, 0x000001ddu, + 0x000500c4u, 0x00000008u, 0x00001138u, 0x000012c5u, 0x000000b8u, 0x000500c3u, 0x00000008u, 0x0000113au, + 0x000012d2u, 0x000000b8u, 0x000500c5u, 0x00000008u, 0x0000113bu, 0x00001138u, 0x0000113au, 0x00040071u, + 0x000000a2u, 0x0000113cu, 0x0000113bu, 0x00060041u, 0x000000eeu, 0x0000113du, 0x000003a0u, 0x0000009fu, + 0x00001136u, 0x0003003eu, 0x0000113du, 0x0000113cu, 0x000500c7u, 0x00000008u, 0x00001140u, 0x000012d2u, + 0x000000beu, 0x00040071u, 0x000000a0u, 0x00001141u, 0x00001140u, 0x00060041u, 0x000000f5u, 0x00001142u, + 0x0000038bu, 0x0000009fu, 0x00001134u, 0x0003003eu, 0x00001142u, 0x00001141u, 0x000200f9u, 0x00001143u, + 0x000200f8u, 0x00001143u, 0x000700f5u, 0x00000006u, 0x000012dcu, 0x00001056u, 0x0000112cu, 0x00001134u, + 0x0000112eu, 0x000300f7u, 0x0000114du, 0x00000000u, 0x000400fau, 0x0000055fu, 0x00001144u, 0x0000114du, + 0x000200f8u, 0x00001144u, 0x000300e1u, 0x000001ddu, 0x00000562u, 0x000300f7u, 0x0000114cu, 0x00000000u, + 0x000400fau, 0x00001839u, 0x00001146u, 0x0000114cu, 0x000200f8u, 0x00001146u, 0x000500c6u, 0x00000006u, + 0x00001148u, 0x000012dcu, 0x000001ddu, 0x00050080u, 0x00000006u, 0x00001149u, 0x00001148u, 0x0000058au, + 0x00060041u, 0x000000eeu, 0x0000114bu, 0x000003a0u, 0x0000009fu, 0x00001149u, 0x0003003eu, 0x0000114bu, + 0x0000182eu, 0x000200f9u, 0x0000114cu, 0x000200f8u, 0x0000114cu, 0x000200f9u, 0x0000114du, 0x000200f8u, + 0x0000114du, 0x000200f9u, 0x0000114eu, 0x000200f8u, 0x0000114eu, 0x000300f7u, 0x0000105eu, 0x00000000u, + 0x000400fau, 0x00000640u, 0x0000105au, 0x0000105eu, 0x000200f8u, 0x0000105au, 0x000500c2u, 0x00000006u, + 0x00001157u, 0x00001045u, 0x00000196u, 0x00050080u, 0x00000006u, 0x00001159u, 0x00001035u, 0x000001e3u, + 0x000500c2u, 0x00000006u, 0x0000115au, 0x00001159u, 0x00000196u, 0x00050084u, 0x00000006u, 0x0000115bu, + 0x00001157u, 0x0000115au, 0x000500c2u, 0x00000006u, 0x0000115eu, 0x00001049u, 0x00000196u, 0x00050080u, + 0x00000006u, 0x0000115fu, 0x0000115bu, 0x0000115eu, 0x000500c7u, 0x0000006fu, 0x00001162u, 0x0000103bu, + 0x00001824u, 0x000600a9u, 0x00000006u, 0x00001164u, 0x0000183au, 0x000001ddu, 0x000001bbu, 0x000600a9u, + 0x00000006u, 0x00001166u, 0x00001839u, 0x000001ddu, 0x000001bbu, 0x00050084u, 0x00000006u, 0x00001167u, + 0x00000196u, 0x00001166u, 0x00050080u, 0x00000006u, 0x00001168u, 0x00001164u, 0x00001167u, 0x00050051u, + 0x00000006u, 0x0000116au, 0x00001162u, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000116cu, 0x00001162u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000116du, 0x0000116cu, 0x00000418u, 0x00050080u, 0x00000006u, + 0x0000116eu, 0x0000116au, 0x0000116du, 0x00050084u, 0x00000006u, 0x0000116fu, 0x00000196u, 0x0000116eu, + 0x000500c4u, 0x00000006u, 0x00001171u, 0x00001168u, 0x0000116fu, 0x000200f9u, 0x00001172u, 0x000200f8u, + 0x00001172u, 0x000700f5u, 0x0000002cu, 0x000012eeu, 0x000002b6u, 0x0000105au, 0x0000183bu, 0x00001184u, + 0x000400f6u, 0x00001186u, 0x00001184u, 0x00000000u, 0x000200f9u, 0x00001173u, 0x000200f8u, 0x00001173u, + 0x00050152u, 0x00000006u, 0x00001175u, 0x000001e3u, 0x0000115fu, 0x000500aau, 0x0000002cu, 0x00001177u, + 0x00001175u, 0x0000115fu, 0x000300f7u, 0x00001183u, 0x00000000u, 0x000400fau, 0x00001177u, 0x00001178u, + 0x00001183u, 0x000200f8u, 0x00001178u, 0x00060168u, 0x00000006u, 0x0000117au, 0x000001e3u, 0x00000000u, + 0x00001171u, 0x0004014du, 0x0000002cu, 0x0000117bu, 0x000001e3u, 0x000300f7u, 0x00001182u, 0x00000000u, + 0x000400fau, 0x0000117bu, 0x0000117cu, 0x00001182u, 0x000200f8u, 0x0000117cu, 0x00050080u, 0x00000006u, + 0x0000117eu, 0x000005ffu, 0x0000115fu, 0x00060041u, 0x000000e9u, 0x0000117fu, 0x000003ecu, 0x0000009fu, + 0x0000117eu, 0x000700f1u, 0x00000006u, 0x00001181u, 0x0000117fu, 0x000001ddu, 0x000001bbu, 0x0000117au, + 0x000200f9u, 0x00001182u, 0x000200f8u, 0x00001182u, 0x000200f9u, 0x00001183u, 0x000200f8u, 0x00001183u, + 0x000600a9u, 0x0000002cu, 0x0000183bu, 0x00001177u, 0x0000029bu, 0x000012eeu, 0x000200f9u, 0x00001184u, + 0x000200f8u, 0x00001184u, 0x000400fau, 0x0000183bu, 0x00001172u, 0x00001186u, 0x000200f8u, 0x00001186u, + 0x000200f9u, 0x0000105eu, 0x000200f8u, 0x0000105eu, 0x000200f9u, 0x00000951u, 0x000200f8u, 0x00000951u, + 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x00001890u, 0x00000000u, 0x00020011u, + 0x00000001u, 0x00020011u, 0x00000016u, 0x00020011u, 0x00000027u, 0x00020011u, 0x0000002eu, 0x00020011u, + 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, + 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, + 0x0003000eu, 0x00000000u, 0x00000001u, 0x0008000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, + 0x00000823u, 0x0000082eu, 0x000008aau, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, + 0x00000001u, 0x00050048u, 0x000000a9u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000000a9u, + 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000000a9u, 0x00000002u, 0x00000023u, 0x00000008u, + 0x00050048u, 0x000000a9u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000000a9u, 0x00000004u, + 0x00000023u, 0x00000010u, 0x00050048u, 0x000000a9u, 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, + 0x000000a9u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000000a9u, 0x00000007u, 0x00000023u, + 0x0000001cu, 0x00050048u, 0x000000a9u, 0x00000008u, 0x00000023u, 0x00000020u, 0x00050048u, 0x000000a9u, + 0x00000009u, 0x00000023u, 0x00000024u, 0x00050048u, 0x000000a9u, 0x0000000au, 0x00000023u, 0x00000028u, + 0x00050048u, 0x000000a9u, 0x0000000bu, 0x00000023u, 0x0000002cu, 0x00050048u, 0x000000a9u, 0x0000000cu, + 0x00000023u, 0x0000002eu, 0x00050048u, 0x000000a9u, 0x0000000du, 0x00000023u, 0x0000002fu, 0x00050048u, + 0x000000a9u, 0x0000000eu, 0x00000023u, 0x00000030u, 0x00040047u, 0x000000aau, 0x00000006u, 0x00000038u, + 0x00040048u, 0x000000abu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000000abu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000000abu, 0x00000002u, 0x00040047u, 0x000000adu, 0x00000022u, 0x00000001u, + 0x00040047u, 0x000000adu, 0x00000021u, 0x00000002u, 0x00050048u, 0x000000e5u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x000000e5u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000000e5u, + 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000000e5u, 0x00000003u, 0x00000023u, 0x0000000cu, + 0x00050048u, 0x000000e5u, 0x00000004u, 0x00000023u, 0x0000000du, 0x00050048u, 0x000000e5u, 0x00000005u, + 0x00000023u, 0x0000000eu, 0x00050048u, 0x000000e5u, 0x00000006u, 0x00000023u, 0x0000000fu, 0x00040047u, + 0x000000e6u, 0x00000006u, 0x00000010u, 0x00040048u, 0x000000e7u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x000000e7u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000000e7u, 0x00000002u, 0x00040047u, + 0x000000e9u, 0x00000022u, 0x00000001u, 0x00040047u, 0x000000e9u, 0x00000021u, 0x00000005u, 0x00040047u, + 0x00000254u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000254u, 0x00000021u, 0x0000000au, 0x00040047u, + 0x00000375u, 0x00000001u, 0x00000001u, 0x00040047u, 0x0000037bu, 0x00000001u, 0x00000000u, 0x00040047u, + 0x00000384u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000385u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x00000385u, 0x00000002u, 0x00040047u, 0x00000387u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x00000387u, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000392u, 0x00000006u, 0x00000001u, 0x00050048u, + 0x00000393u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000393u, 0x00000002u, 0x00040047u, + 0x00000395u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000395u, 0x00000021u, 0x00000001u, 0x00040047u, + 0x000003a5u, 0x00000006u, 0x00000002u, 0x00050048u, 0x000003a6u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000003a6u, 0x00000002u, 0x00040047u, 0x000003a8u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000003a8u, 0x00000021u, 0x00000000u, 0x00040047u, 0x000003f1u, 0x00000006u, 0x00000004u, 0x00050048u, + 0x000003f2u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000003f2u, 0x00000002u, 0x00040047u, + 0x000003f4u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000003f4u, 0x00000021u, 0x00000000u, 0x00040047u, + 0x00000568u, 0x00000001u, 0x00000007u, 0x00040047u, 0x00000574u, 0x00000001u, 0x00000002u, 0x00040047u, + 0x00000738u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000739u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00050048u, 0x00000739u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000739u, 0x00000002u, + 0x00000023u, 0x00000008u, 0x00040047u, 0x0000073au, 0x00000006u, 0x00000010u, 0x00040048u, 0x0000073bu, + 0x00000000u, 0x00000018u, 0x00050048u, 0x0000073bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x0000073bu, 0x00000002u, 0x00040047u, 0x0000073du, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000073du, + 0x00000021u, 0x00000006u, 0x00040047u, 0x00000823u, 0x0000000bu, 0x0000001cu, 0x00040047u, 0x0000082eu, + 0x0000000bu, 0x0000001au, 0x00040047u, 0x00000837u, 0x00000001u, 0x00000006u, 0x00040047u, 0x00000838u, + 0x00000001u, 0x00000003u, 0x00040047u, 0x00000839u, 0x00000001u, 0x00000004u, 0x00040047u, 0x0000083au, + 0x0000000bu, 0x00000019u, 0x00040047u, 0x00000842u, 0x00000001u, 0x00000005u, 0x00040047u, 0x00000847u, + 0x00000006u, 0x00000004u, 0x00040048u, 0x00000848u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000848u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000848u, 0x00000002u, 0x00040047u, 0x0000084au, + 0x00000022u, 0x00000001u, 0x00040047u, 0x0000084au, 0x00000021u, 0x0000000cu, 0x00050048u, 0x0000084eu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x0000084eu, 0x00000001u, 0x00000023u, 0x00000004u, + 0x00050048u, 0x0000084eu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x0000084eu, 0x00000003u, + 0x00000023u, 0x0000000cu, 0x00050048u, 0x0000084eu, 0x00000004u, 0x00000023u, 0x00000010u, 0x00030047u, + 0x0000084eu, 0x00000002u, 0x00040047u, 0x0000087bu, 0x00000006u, 0x00000004u, 0x00040048u, 0x0000087cu, + 0x00000000u, 0x00000018u, 0x00050048u, 0x0000087cu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x0000087cu, 0x00000002u, 0x00040047u, 0x0000087eu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000087eu, + 0x00000021u, 0x00000007u, 0x00040047u, 0x00000885u, 0x00000006u, 0x00000004u, 0x00040048u, 0x00000886u, + 0x00000000u, 0x00000018u, 0x00050048u, 0x00000886u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000886u, 0x00000002u, 0x00040047u, 0x00000888u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000888u, + 0x00000021u, 0x0000000bu, 0x00040047u, 0x000008aau, 0x0000000bu, 0x0000001du, 0x00040047u, 0x000008aeu, + 0x00000006u, 0x00000001u, 0x00040048u, 0x000008afu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000008afu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008afu, 0x00000002u, 0x00040047u, 0x000008b1u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000008b1u, 0x00000021u, 0x00000006u, 0x00040047u, 0x000008cdu, + 0x00000006u, 0x00000004u, 0x00040048u, 0x000008ceu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000008ceu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008ceu, 0x00000002u, 0x00040047u, 0x000008d0u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000008d0u, 0x00000021u, 0x00000003u, 0x00040047u, 0x000008dbu, + 0x00000006u, 0x00000004u, 0x00040048u, 0x000008dcu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000008dcu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008dcu, 0x00000002u, 0x00040047u, 0x000008deu, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000008deu, 0x00000021u, 0x00000003u, 0x00040047u, 0x000008e9u, + 0x00000006u, 0x00000004u, 0x00040048u, 0x000008eau, 0x00000000u, 0x00000018u, 0x00050048u, 0x000008eau, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008eau, 0x00000002u, 0x00040047u, 0x000008ecu, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000008ecu, 0x00000021u, 0x00000004u, 0x00040047u, 0x000008f2u, + 0x00000006u, 0x00000001u, 0x00040048u, 0x000008f3u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000008f3u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008f3u, 0x00000002u, 0x00040047u, 0x000008f5u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x000008f5u, 0x00000021u, 0x00000005u, 0x00020013u, 0x00000002u, + 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x00040015u, + 0x00000008u, 0x00000008u, 0x00000000u, 0x00040017u, 0x00000009u, 0x00000008u, 0x00000004u, 0x00040015u, + 0x0000000au, 0x00000010u, 0x00000000u, 0x00040015u, 0x0000000bu, 0x00000010u, 0x00000001u, 0x00040017u, + 0x0000000cu, 0x0000000bu, 0x00000004u, 0x00040015u, 0x00000017u, 0x00000020u, 0x00000001u, 0x00040017u, + 0x00000018u, 0x00000017u, 0x00000003u, 0x00040017u, 0x0000001bu, 0x00000008u, 0x00000003u, 0x00020014u, + 0x00000034u, 0x00040017u, 0x00000036u, 0x00000008u, 0x00000002u, 0x00040017u, 0x00000078u, 0x00000006u, + 0x00000002u, 0x0011001eu, 0x000000a9u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, + 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000006u, 0x0000000au, 0x00000008u, + 0x00000008u, 0x0000000cu, 0x0003001du, 0x000000aau, 0x000000a9u, 0x0003001eu, 0x000000abu, 0x000000aau, + 0x00040020u, 0x000000acu, 0x0000000cu, 0x000000abu, 0x0004003bu, 0x000000acu, 0x000000adu, 0x0000000cu, + 0x0004002bu, 0x00000017u, 0x000000aeu, 0x00000000u, 0x00040020u, 0x000000b0u, 0x0000000cu, 0x000000a9u, + 0x0004002bu, 0x00000017u, 0x000000b8u, 0x00000001u, 0x0004002bu, 0x00000017u, 0x000000bbu, 0x00000002u, + 0x0004002bu, 0x00000017u, 0x000000beu, 0x00000003u, 0x0004002bu, 0x00000017u, 0x000000c1u, 0x00000004u, + 0x0004002bu, 0x00000017u, 0x000000c4u, 0x00000005u, 0x0004002bu, 0x00000017u, 0x000000c7u, 0x00000006u, + 0x0004002bu, 0x00000017u, 0x000000cau, 0x00000007u, 0x0004002bu, 0x00000017u, 0x000000cdu, 0x00000008u, + 0x0004002bu, 0x00000017u, 0x000000d0u, 0x00000009u, 0x0004002bu, 0x00000017u, 0x000000d3u, 0x0000000au, + 0x0004002bu, 0x00000017u, 0x000000d6u, 0x0000000bu, 0x0009001eu, 0x000000e5u, 0x00000009u, 0x00000009u, + 0x00000006u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, 0x000000e6u, 0x000000e5u, + 0x0003001eu, 0x000000e7u, 0x000000e6u, 0x00040020u, 0x000000e8u, 0x0000000cu, 0x000000e7u, 0x0004003bu, + 0x000000e8u, 0x000000e9u, 0x0000000cu, 0x00040020u, 0x000000ebu, 0x0000000cu, 0x000000e5u, 0x0006002cu, + 0x00000018u, 0x00000104u, 0x000000aeu, 0x000000beu, 0x000000c7u, 0x0004002bu, 0x00000017u, 0x0000010au, + 0x000000f8u, 0x0004002bu, 0x00000017u, 0x0000010fu, 0x000000ffu, 0x0006002cu, 0x00000018u, 0x00000110u, + 0x0000010fu, 0x0000010fu, 0x0000010fu, 0x0004002bu, 0x00000017u, 0x00000112u, 0x000000f7u, 0x0006002cu, + 0x00000018u, 0x00000113u, 0x00000112u, 0x00000112u, 0x00000112u, 0x00040017u, 0x00000114u, 0x00000034u, + 0x00000003u, 0x0004002bu, 0x00000017u, 0x0000011du, 0x0000001fu, 0x00040015u, 0x0000012cu, 0x00000008u, + 0x00000001u, 0x00040017u, 0x0000012du, 0x0000012cu, 0x00000003u, 0x0004002bu, 0x00000017u, 0x0000013bu, + 0x000007ffu, 0x0004002bu, 0x00000017u, 0x00000142u, 0x00040000u, 0x0004002bu, 0x00000017u, 0x0000014eu, + 0x0003ffffu, 0x0004002bu, 0x00000017u, 0x00000153u, 0x00000011u, 0x0004002bu, 0x00000006u, 0x00000173u, + 0x00000002u, 0x0004002bu, 0x00000006u, 0x0000019bu, 0x00000000u, 0x0004002bu, 0x00000006u, 0x000001bfu, + 0x00000001u, 0x0004002bu, 0x00000006u, 0x000001c7u, 0x00000003u, 0x0004002bu, 0x00000008u, 0x000001d2u, + 0x000000ffu, 0x0004002bu, 0x00000008u, 0x000001edu, 0x00000000u, 0x0004002bu, 0x00000008u, 0x00000204u, + 0x00000003u, 0x0004002bu, 0x00000008u, 0x00000214u, 0x0000003cu, 0x00040017u, 0x0000021bu, 0x0000000bu, + 0x00000003u, 0x00040017u, 0x0000021fu, 0x0000000au, 0x00000003u, 0x0004002bu, 0x0000000bu, 0x0000022du, + 0x00000001u, 0x0004002bu, 0x0000000bu, 0x00000239u, 0x00000005u, 0x0004002bu, 0x0000000bu, 0x0000024au, + 0x00000002u, 0x0004002bu, 0x0000000bu, 0x0000024eu, 0x000007ffu, 0x00090019u, 0x00000252u, 0x00000006u, + 0x00000005u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, 0x00000253u, + 0x00000000u, 0x00000252u, 0x0004003bu, 0x00000253u, 0x00000254u, 0x00000000u, 0x00040017u, 0x0000025du, + 0x00000006u, 0x00000004u, 0x0004002bu, 0x00000017u, 0x00000299u, 0x0000000fu, 0x0003002au, 0x00000034u, + 0x0000029cu, 0x0004002bu, 0x00000017u, 0x000002b4u, 0x00008000u, 0x0004002bu, 0x00000017u, 0x000002bau, + 0x00000010u, 0x00030029u, 0x00000034u, 0x000002bfu, 0x0004002bu, 0x00000017u, 0x000002c0u, 0x0000ffffu, + 0x00040032u, 0x00000017u, 0x00000375u, 0x00000000u, 0x00040032u, 0x00000006u, 0x0000037bu, 0x00000000u, + 0x00060034u, 0x00000006u, 0x0000037cu, 0x00000082u, 0x0000037bu, 0x000001bfu, 0x0003001du, 0x00000384u, + 0x00000008u, 0x0003001eu, 0x00000385u, 0x00000384u, 0x00040020u, 0x00000386u, 0x0000000cu, 0x00000385u, + 0x0004003bu, 0x00000386u, 0x00000387u, 0x0000000cu, 0x00040020u, 0x0000038au, 0x0000000cu, 0x00000008u, + 0x0003001du, 0x00000392u, 0x00000008u, 0x0003001eu, 0x00000393u, 0x00000392u, 0x00040020u, 0x00000394u, + 0x0000000cu, 0x00000393u, 0x0004003bu, 0x00000394u, 0x00000395u, 0x0000000cu, 0x00060034u, 0x00000006u, + 0x0000039cu, 0x000000c2u, 0x0000037cu, 0x000001bfu, 0x00060034u, 0x00000006u, 0x000003a0u, 0x000000c2u, + 0x0000037bu, 0x000000b8u, 0x0003001du, 0x000003a5u, 0x0000000au, 0x0003001eu, 0x000003a6u, 0x000003a5u, + 0x00040020u, 0x000003a7u, 0x0000000cu, 0x000003a6u, 0x0004003bu, 0x000003a7u, 0x000003a8u, 0x0000000cu, + 0x00040020u, 0x000003abu, 0x0000000cu, 0x0000000au, 0x00040017u, 0x000003afu, 0x00000006u, 0x00000003u, + 0x0004002bu, 0x00000006u, 0x000003b3u, 0x00000008u, 0x0004002bu, 0x00000006u, 0x000003bau, 0x000000f8u, + 0x0004002bu, 0x00000008u, 0x000003c2u, 0x00000005u, 0x00060034u, 0x00000006u, 0x000003d1u, 0x000000c2u, + 0x0000037bu, 0x000000b8u, 0x0004002bu, 0x00000006u, 0x000003e0u, 0x000000ffu, 0x00060034u, 0x00000006u, + 0x000003e8u, 0x000000c2u, 0x0000037cu, 0x00000173u, 0x00060034u, 0x00000006u, 0x000003ecu, 0x000000c2u, + 0x0000037bu, 0x000000bbu, 0x0003001du, 0x000003f1u, 0x00000006u, 0x0003001eu, 0x000003f2u, 0x000003f1u, + 0x00040020u, 0x000003f3u, 0x0000000cu, 0x000003f2u, 0x0004003bu, 0x000003f3u, 0x000003f4u, 0x0000000cu, + 0x00040020u, 0x000003f6u, 0x0000000cu, 0x00000006u, 0x0004002bu, 0x00000006u, 0x000003fbu, 0x00000018u, + 0x0004002bu, 0x00000006u, 0x000003fcu, 0x00000010u, 0x0007002cu, 0x0000025du, 0x000003fdu, 0x000003fbu, + 0x000003fcu, 0x000003b3u, 0x0000019bu, 0x0007002cu, 0x0000025du, 0x000003ffu, 0x000003e0u, 0x000003e0u, + 0x000003e0u, 0x000003e0u, 0x0004002bu, 0x00000008u, 0x0000040eu, 0x00000008u, 0x0004002bu, 0x00000006u, + 0x00000416u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x00000423u, 0x00000004u, 0x0004002bu, 0x00000006u, + 0x00000450u, 0x0000000au, 0x0004002bu, 0x00000006u, 0x00000456u, 0x00000005u, 0x0004002bu, 0x00000006u, + 0x00000461u, 0x00000007u, 0x00060034u, 0x00000006u, 0x00000478u, 0x000000c2u, 0x0000037bu, 0x000000b8u, + 0x0004002bu, 0x0000000au, 0x00000482u, 0x00000002u, 0x0004002bu, 0x0000000au, 0x00000488u, 0x00000003u, + 0x00060034u, 0x00000006u, 0x0000049bu, 0x000000c2u, 0x0000037bu, 0x000001bfu, 0x0004002bu, 0x0000000au, + 0x0000049du, 0x0000ffffu, 0x00060034u, 0x00000006u, 0x000004a1u, 0x000000c2u, 0x0000037bu, 0x00000173u, + 0x0004002bu, 0x00000006u, 0x000004a3u, 0xffffffffu, 0x00060034u, 0x00000006u, 0x000004e3u, 0x000000c2u, + 0x0000037bu, 0x000000b8u, 0x00060034u, 0x00000006u, 0x00000516u, 0x000000c2u, 0x0000037bu, 0x000000b8u, + 0x00060034u, 0x00000006u, 0x00000535u, 0x000000c2u, 0x0000037bu, 0x000000bbu, 0x00040032u, 0x00000017u, + 0x00000568u, 0x00000000u, 0x00060034u, 0x00000017u, 0x00000569u, 0x000000c7u, 0x00000568u, 0x000000b8u, + 0x00060034u, 0x00000034u, 0x0000056au, 0x000000abu, 0x00000569u, 0x000000aeu, 0x00060034u, 0x00000017u, + 0x0000056bu, 0x000000c3u, 0x00000568u, 0x000000b8u, 0x00060034u, 0x00000034u, 0x0000056cu, 0x000000aau, + 0x0000056bu, 0x000000aeu, 0x00060034u, 0x00000034u, 0x0000056du, 0x000000a7u, 0x0000056au, 0x0000056cu, + 0x0004002bu, 0x00000006u, 0x00000570u, 0x00000048u, 0x00030031u, 0x00000034u, 0x00000574u, 0x00050034u, + 0x00000034u, 0x00000575u, 0x000000a8u, 0x00000574u, 0x00060034u, 0x00000006u, 0x0000057fu, 0x000000c2u, + 0x0000037bu, 0x000000b8u, 0x00060034u, 0x00000006u, 0x00000599u, 0x000000c2u, 0x0000037bu, 0x000001bfu, + 0x00040017u, 0x000005a0u, 0x00000034u, 0x00000002u, 0x00060034u, 0x00000017u, 0x000005a7u, 0x000000c4u, + 0x000000b8u, 0x0000056bu, 0x00060034u, 0x00000017u, 0x000005a8u, 0x00000082u, 0x000005a7u, 0x000000b8u, + 0x00060034u, 0x00000006u, 0x000005a9u, 0x00000080u, 0x000005a8u, 0x0000019bu, 0x00040017u, 0x000005adu, + 0x00000017u, 0x00000002u, 0x00060034u, 0x00000006u, 0x000005b3u, 0x00000080u, 0x000005a7u, 0x0000019bu, + 0x00060034u, 0x00000017u, 0x000005feu, 0x00000084u, 0x000005a7u, 0x000005a7u, 0x00060034u, 0x00000006u, + 0x000005ffu, 0x00000080u, 0x000005feu, 0x0000019bu, 0x00060034u, 0x00000006u, 0x00000600u, 0x000000c2u, + 0x0000037bu, 0x000000bbu, 0x00060034u, 0x00000006u, 0x00000601u, 0x00000084u, 0x000005ffu, 0x00000600u, + 0x00060034u, 0x00000017u, 0x00000614u, 0x00000082u, 0x000005a7u, 0x000000b8u, 0x00060034u, 0x00000006u, + 0x00000615u, 0x00000080u, 0x00000614u, 0x0000019bu, 0x00060034u, 0x00000006u, 0x0000061eu, 0x00000080u, + 0x000005a7u, 0x0000019bu, 0x00060034u, 0x00000034u, 0x00000640u, 0x000000abu, 0x0000056bu, 0x000000aeu, + 0x00060034u, 0x00000034u, 0x00000641u, 0x000000a7u, 0x0000056au, 0x00000640u, 0x0004002bu, 0x00000008u, + 0x00000650u, 0x000000e0u, 0x0006002cu, 0x0000001bu, 0x0000065bu, 0x000001edu, 0x000001edu, 0x000001edu, + 0x0004002bu, 0x00000008u, 0x00000662u, 0x000000f8u, 0x00060034u, 0x00000034u, 0x00000675u, 0x000000aau, + 0x00000375u, 0x000000aeu, 0x0007002cu, 0x00000009u, 0x00000686u, 0x000001edu, 0x000001edu, 0x000001edu, + 0x000001edu, 0x0004002bu, 0x00000006u, 0x0000069fu, 0x000000e0u, 0x0004002bu, 0x00000006u, 0x000006fau, + 0x0000ffffu, 0x0004002bu, 0x00000017u, 0x0000072au, 0x000001ffu, 0x0004001cu, 0x00000738u, 0x00000008u, + 0x000003b3u, 0x0005001eu, 0x00000739u, 0x00000009u, 0x00000009u, 0x00000738u, 0x0003001du, 0x0000073au, + 0x00000739u, 0x0003001eu, 0x0000073bu, 0x0000073au, 0x00040020u, 0x0000073cu, 0x0000000cu, 0x0000073bu, + 0x0004003bu, 0x0000073cu, 0x0000073du, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000761u, 0x00000020u, + 0x0004002bu, 0x00000006u, 0x00000767u, 0x00000040u, 0x0004002bu, 0x00000006u, 0x0000076du, 0x00000080u, + 0x0004002bu, 0x00000006u, 0x00000773u, 0x00000100u, 0x00040020u, 0x00000822u, 0x00000001u, 0x000003afu, + 0x0004003bu, 0x00000822u, 0x00000823u, 0x00000001u, 0x00040020u, 0x00000824u, 0x00000001u, 0x00000006u, + 0x0004003bu, 0x00000822u, 0x0000082eu, 0x00000001u, 0x00040032u, 0x00000017u, 0x00000837u, 0x00000400u, + 0x00040032u, 0x00000006u, 0x00000838u, 0x00000001u, 0x00040032u, 0x00000006u, 0x00000839u, 0x00000001u, + 0x00060033u, 0x000003afu, 0x0000083au, 0x00000838u, 0x00000839u, 0x000001bfu, 0x00060034u, 0x00000006u, + 0x0000083bu, 0x00000051u, 0x0000083au, 0x00000000u, 0x00060034u, 0x00000017u, 0x0000083cu, 0x00000080u, + 0x0000083bu, 0x0000019bu, 0x00060034u, 0x00000017u, 0x0000083du, 0x00000087u, 0x00000837u, 0x0000083cu, + 0x00040032u, 0x00000017u, 0x00000842u, 0x00000100u, 0x0004002bu, 0x00000017u, 0x00000843u, 0x00000020u, + 0x00060034u, 0x00000017u, 0x00000844u, 0x00000087u, 0x00000842u, 0x00000843u, 0x0003001du, 0x00000847u, + 0x00000006u, 0x0003001eu, 0x00000848u, 0x00000847u, 0x00040020u, 0x00000849u, 0x0000000cu, 0x00000848u, + 0x0004003bu, 0x00000849u, 0x0000084au, 0x0000000cu, 0x0007001eu, 0x0000084eu, 0x00000006u, 0x00000006u, + 0x00000006u, 0x00000006u, 0x00000006u, 0x00040020u, 0x0000084fu, 0x00000009u, 0x0000084eu, 0x0004003bu, + 0x0000084fu, 0x00000850u, 0x00000009u, 0x00040020u, 0x00000851u, 0x00000009u, 0x00000006u, 0x0003001du, + 0x0000087bu, 0x00000006u, 0x0003001eu, 0x0000087cu, 0x0000087bu, 0x00040020u, 0x0000087du, 0x0000000cu, + 0x0000087cu, 0x0004003bu, 0x0000087du, 0x0000087eu, 0x0000000cu, 0x0003001du, 0x00000885u, 0x00000006u, + 0x0003001eu, 0x00000886u, 0x00000885u, 0x00040020u, 0x00000887u, 0x0000000cu, 0x00000886u, 0x0004003bu, + 0x00000887u, 0x00000888u, 0x0000000cu, 0x00060034u, 0x00000006u, 0x000008a6u, 0x00000051u, 0x0000083au, + 0x00000000u, 0x00060034u, 0x00000006u, 0x000008a7u, 0x00000051u, 0x0000083au, 0x00000001u, 0x00060034u, + 0x00000006u, 0x000008a8u, 0x00000084u, 0x000008a6u, 0x000008a7u, 0x0004003bu, 0x00000824u, 0x000008aau, + 0x00000001u, 0x0003001du, 0x000008aeu, 0x0000012cu, 0x0003001eu, 0x000008afu, 0x000008aeu, 0x00040020u, + 0x000008b0u, 0x0000000cu, 0x000008afu, 0x0004003bu, 0x000008b0u, 0x000008b1u, 0x0000000cu, 0x00040020u, + 0x000008b3u, 0x0000000cu, 0x0000012cu, 0x0004002bu, 0x00000017u, 0x000008bcu, 0x00000040u, 0x0003001du, + 0x000008cdu, 0x00000006u, 0x0003001eu, 0x000008ceu, 0x000008cdu, 0x00040020u, 0x000008cfu, 0x0000000cu, + 0x000008ceu, 0x0004003bu, 0x000008cfu, 0x000008d0u, 0x0000000cu, 0x0003001du, 0x000008dbu, 0x00000009u, + 0x0003001eu, 0x000008dcu, 0x000008dbu, 0x00040020u, 0x000008ddu, 0x0000000cu, 0x000008dcu, 0x0004003bu, + 0x000008ddu, 0x000008deu, 0x0000000cu, 0x00040020u, 0x000008e0u, 0x0000000cu, 0x00000009u, 0x0003001du, + 0x000008e9u, 0x00000017u, 0x0003001eu, 0x000008eau, 0x000008e9u, 0x00040020u, 0x000008ebu, 0x0000000cu, + 0x000008eau, 0x0004003bu, 0x000008ebu, 0x000008ecu, 0x0000000cu, 0x00040020u, 0x000008eeu, 0x0000000cu, + 0x00000017u, 0x0003001du, 0x000008f2u, 0x00000008u, 0x0003001eu, 0x000008f3u, 0x000008f2u, 0x00040020u, + 0x000008f4u, 0x0000000cu, 0x000008f3u, 0x0004003bu, 0x000008f4u, 0x000008f5u, 0x0000000cu, 0x00030001u, + 0x00000009u, 0x000012f7u, 0x00030001u, 0x0000000au, 0x0000131du, 0x00030001u, 0x00000008u, 0x0000132au, + 0x00030001u, 0x0000001bu, 0x0000134eu, 0x00030001u, 0x00000006u, 0x0000150du, 0x0006002cu, 0x000003afu, + 0x00001878u, 0x000003bau, 0x000003bau, 0x000003bau, 0x0005002cu, 0x00000078u, 0x00001879u, 0x000001c7u, + 0x000001c7u, 0x0006002cu, 0x0000001bu, 0x0000187au, 0x00000662u, 0x00000662u, 0x00000662u, 0x0006002cu, + 0x00000018u, 0x0000187bu, 0x000000cau, 0x000000cau, 0x000000cau, 0x0006002cu, 0x00000018u, 0x0000187cu, + 0x0000010au, 0x0000010au, 0x0000010au, 0x0006002cu, 0x00000018u, 0x0000187du, 0x000000cdu, 0x000000cdu, + 0x000000cdu, 0x0006002cu, 0x00000018u, 0x0000187eu, 0x0000011du, 0x0000011du, 0x0000011du, 0x0006002cu, + 0x0000021bu, 0x00001880u, 0x00000239u, 0x00000239u, 0x00000239u, 0x0006002cu, 0x0000001bu, 0x00001881u, + 0x000001d2u, 0x000001d2u, 0x000001d2u, 0x0006002cu, 0x0000021bu, 0x00001882u, 0x0000024au, 0x0000024au, + 0x0000024au, 0x0006002cu, 0x0000021bu, 0x00001883u, 0x0000024eu, 0x0000024eu, 0x0000024eu, 0x00040017u, + 0x00001889u, 0x00000034u, 0x00000004u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, + 0x000200f8u, 0x00000005u, 0x000300f7u, 0x0000096eu, 0x00000000u, 0x000300fbu, 0x0000019bu, 0x0000096fu, + 0x000200f8u, 0x0000096fu, 0x0004003du, 0x000003afu, 0x0000082fu, 0x0000082eu, 0x0007004fu, 0x00000078u, + 0x00000830u, 0x0000082fu, 0x0000082fu, 0x00000000u, 0x00000001u, 0x0004007cu, 0x000005adu, 0x00000831u, + 0x00000830u, 0x00050051u, 0x00000017u, 0x00000834u, 0x00000831u, 0x00000000u, 0x00050051u, 0x00000017u, + 0x00000836u, 0x00000831u, 0x00000001u, 0x00050084u, 0x00000017u, 0x0000083eu, 0x00000836u, 0x0000083du, + 0x00050080u, 0x00000017u, 0x0000083fu, 0x00000834u, 0x0000083eu, 0x00050084u, 0x00000017u, 0x00000845u, + 0x0000083fu, 0x00000844u, 0x00060041u, 0x000003f6u, 0x0000084cu, 0x0000084au, 0x000000aeu, 0x0000083fu, + 0x0004003du, 0x00000006u, 0x0000084du, 0x0000084cu, 0x00050041u, 0x00000851u, 0x00000852u, 0x00000850u, + 0x000000c1u, 0x0004003du, 0x00000006u, 0x00000853u, 0x00000852u, 0x000500c7u, 0x00000006u, 0x00000854u, + 0x0000084du, 0x00000853u, 0x000500aau, 0x00000034u, 0x00000856u, 0x00000854u, 0x0000019bu, 0x000300f7u, + 0x00000858u, 0x00000000u, 0x000400fau, 0x00000856u, 0x00000857u, 0x00000858u, 0x000200f8u, 0x00000857u, + 0x000200f9u, 0x0000096eu, 0x000200f8u, 0x00000858u, 0x0004003du, 0x000003afu, 0x0000085bu, 0x00000823u, + 0x0007004fu, 0x00000078u, 0x0000085cu, 0x0000085bu, 0x0000085bu, 0x00000000u, 0x00000001u, 0x00050041u, + 0x00000851u, 0x0000085eu, 0x00000850u, 0x000000bbu, 0x0004003du, 0x00000006u, 0x0000085fu, 0x0000085eu, + 0x00050041u, 0x00000851u, 0x00000861u, 0x00000850u, 0x000000beu, 0x0004003du, 0x00000006u, 0x00000862u, + 0x00000861u, 0x00050041u, 0x00000851u, 0x00000864u, 0x00000850u, 0x000000aeu, 0x0004003du, 0x00000006u, + 0x00000865u, 0x00000864u, 0x00050041u, 0x00000851u, 0x00000867u, 0x00000850u, 0x000000b8u, 0x0004003du, + 0x00000006u, 0x00000868u, 0x00000867u, 0x00050050u, 0x00000078u, 0x00000981u, 0x0000085fu, 0x00000862u, + 0x000500b0u, 0x000005a0u, 0x00000982u, 0x0000085cu, 0x00000981u, 0x0004009bu, 0x00000034u, 0x00000983u, + 0x00000982u, 0x000300f7u, 0x000009acu, 0x00000000u, 0x000400fau, 0x00000983u, 0x00000984u, 0x000009acu, + 0x000200f8u, 0x00000984u, 0x00050050u, 0x00000078u, 0x00000986u, 0x000005a9u, 0x000005a9u, 0x000500c7u, + 0x00000078u, 0x00000987u, 0x0000085cu, 0x00000986u, 0x00050050u, 0x000005adu, 0x00000989u, 0x0000056bu, + 0x0000056bu, 0x000500c2u, 0x00000078u, 0x0000098au, 0x0000085cu, 0x00000989u, 0x00050051u, 0x00000006u, + 0x0000098cu, 0x00000987u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000098du, 0x0000098cu, 0x000005b3u, + 0x00050051u, 0x00000006u, 0x0000098fu, 0x00000987u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00000990u, + 0x0000098du, 0x0000098fu, 0x000500c2u, 0x00000006u, 0x00000993u, 0x0000085fu, 0x0000056bu, 0x00050051u, + 0x00000006u, 0x00000995u, 0x0000098au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000996u, 0x00000993u, + 0x00000995u, 0x00050080u, 0x00000006u, 0x00000997u, 0x00000865u, 0x00000996u, 0x00050051u, 0x00000006u, + 0x00000999u, 0x0000098au, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000099au, 0x00000997u, 0x00000999u, + 0x000300f7u, 0x00000a10u, 0x00000000u, 0x000d00fbu, 0x00000375u, 0x00000a10u, 0x00000000u, 0x000009b3u, + 0x00000001u, 0x000009b3u, 0x00000002u, 0x000009c6u, 0x00000003u, 0x000009eau, 0x00000004u, 0x00000a01u, + 0x000200f8u, 0x00000a01u, 0x000500c7u, 0x00000006u, 0x00000a03u, 0x0000099au, 0x000003e8u, 0x00050084u, + 0x00000006u, 0x00000a05u, 0x00000990u, 0x000003ecu, 0x00050080u, 0x00000006u, 0x00000a07u, 0x00000a03u, + 0x00000a05u, 0x00060041u, 0x000003f6u, 0x00000a09u, 0x000003f4u, 0x000000aeu, 0x00000a07u, 0x0004003du, + 0x00000006u, 0x00000a0au, 0x00000a09u, 0x00070050u, 0x0000025du, 0x00000a0cu, 0x00000a0au, 0x00000a0au, + 0x00000a0au, 0x00000a0au, 0x000500c2u, 0x0000025du, 0x00000a0du, 0x00000a0cu, 0x000003fdu, 0x000500c7u, + 0x0000025du, 0x00000a0eu, 0x00000a0du, 0x000003ffu, 0x00040071u, 0x00000009u, 0x00000a0fu, 0x00000a0eu, + 0x000200f9u, 0x00000a10u, 0x000200f8u, 0x000009eau, 0x000500c7u, 0x00000006u, 0x000009ecu, 0x0000099au, + 0x0000039cu, 0x00050084u, 0x00000006u, 0x000009eeu, 0x00000990u, 0x000003d1u, 0x00050080u, 0x00000006u, + 0x000009f0u, 0x000009ecu, 0x000009eeu, 0x000500c6u, 0x00000006u, 0x000009f2u, 0x000009f0u, 0x000001bfu, + 0x00060041u, 0x000003abu, 0x000009f3u, 0x000003a8u, 0x000000aeu, 0x000009f2u, 0x0004003du, 0x0000000au, + 0x000009f4u, 0x000009f3u, 0x00040071u, 0x00000006u, 0x000009f5u, 0x000009f4u, 0x000500c2u, 0x00000006u, + 0x000009f7u, 0x000009f5u, 0x000003b3u, 0x00040071u, 0x00000008u, 0x000009f8u, 0x000009f7u, 0x000500c7u, + 0x00000006u, 0x000009fbu, 0x000009f5u, 0x000003e0u, 0x00040071u, 0x00000008u, 0x000009fcu, 0x000009fbu, + 0x00070050u, 0x00000009u, 0x00000a00u, 0x000009f8u, 0x000009f8u, 0x000009f8u, 0x000009fcu, 0x000200f9u, + 0x00000a10u, 0x000200f8u, 0x000009c6u, 0x000500c7u, 0x00000006u, 0x000009c8u, 0x0000099au, 0x0000039cu, + 0x00050084u, 0x00000006u, 0x000009cau, 0x00000990u, 0x000003a0u, 0x00050080u, 0x00000006u, 0x000009ccu, + 0x000009c8u, 0x000009cau, 0x000500c6u, 0x00000006u, 0x000009ceu, 0x000009ccu, 0x000001bfu, 0x00060041u, + 0x000003abu, 0x000009cfu, 0x000003a8u, 0x000000aeu, 0x000009ceu, 0x0004003du, 0x0000000au, 0x000009d0u, + 0x000009cfu, 0x00040071u, 0x00000006u, 0x000009d1u, 0x000009d0u, 0x000500c2u, 0x00000006u, 0x000009d3u, + 0x000009d1u, 0x000003b3u, 0x000500c2u, 0x00000006u, 0x000009d5u, 0x000009d1u, 0x000001c7u, 0x000500c4u, + 0x00000006u, 0x000009d7u, 0x000009d1u, 0x00000173u, 0x00060050u, 0x000003afu, 0x000009d8u, 0x000009d3u, + 0x000009d5u, 0x000009d7u, 0x000500c7u, 0x000003afu, 0x000009dau, 0x000009d8u, 0x00001878u, 0x00040071u, + 0x0000001bu, 0x000009dcu, 0x000009dau, 0x00060041u, 0x0000038au, 0x000009deu, 0x00000395u, 0x000000aeu, + 0x000009ccu, 0x0004003du, 0x00000008u, 0x000009dfu, 0x000009deu, 0x000500c4u, 0x00000008u, 0x000009e0u, + 0x000009dfu, 0x000003c2u, 0x000500c7u, 0x00000006u, 0x000009e2u, 0x000009d1u, 0x000001bfu, 0x000500c4u, + 0x00000006u, 0x000009e3u, 0x000009e2u, 0x000000cau, 0x00040071u, 0x00000008u, 0x000009e4u, 0x000009e3u, + 0x000500c5u, 0x00000008u, 0x000009e5u, 0x000009e0u, 0x000009e4u, 0x00050051u, 0x00000008u, 0x000009e6u, + 0x000009dcu, 0x00000000u, 0x00050051u, 0x00000008u, 0x000009e7u, 0x000009dcu, 0x00000001u, 0x00050051u, + 0x00000008u, 0x000009e8u, 0x000009dcu, 0x00000002u, 0x00070050u, 0x00000009u, 0x000009e9u, 0x000009e6u, + 0x000009e7u, 0x000009e8u, 0x000009e5u, 0x000200f9u, 0x00000a10u, 0x000200f8u, 0x000009b3u, 0x000500c7u, + 0x00000006u, 0x000009b5u, 0x0000099au, 0x0000037cu, 0x00050084u, 0x00000006u, 0x000009b7u, 0x00000990u, + 0x0000037bu, 0x00050080u, 0x00000006u, 0x000009b9u, 0x000009b5u, 0x000009b7u, 0x000500c6u, 0x00000006u, + 0x000009bbu, 0x000009b9u, 0x000001c7u, 0x00060041u, 0x0000038au, 0x000009bcu, 0x00000387u, 0x000000aeu, + 0x000009bbu, 0x0004003du, 0x00000008u, 0x000009bdu, 0x000009bcu, 0x000500c2u, 0x00000006u, 0x000009c2u, + 0x000009b9u, 0x000000b8u, 0x00060041u, 0x0000038au, 0x000009c3u, 0x00000395u, 0x000000aeu, 0x000009c2u, + 0x0004003du, 0x00000008u, 0x000009c4u, 0x000009c3u, 0x00070050u, 0x00000009u, 0x000009c5u, 0x000009bdu, + 0x000009bdu, 0x000009bdu, 0x000009c4u, 0x000200f9u, 0x00000a10u, 0x000200f8u, 0x00000a10u, 0x000d00f5u, + 0x00000009u, 0x000012f8u, 0x000012f7u, 0x00000984u, 0x000009c5u, 0x000009b3u, 0x000009e9u, 0x000009c6u, + 0x00000a00u, 0x000009eau, 0x00000a0fu, 0x00000a01u, 0x00050080u, 0x00000006u, 0x000009a5u, 0x00000868u, + 0x00000996u, 0x00050080u, 0x00000006u, 0x000009a8u, 0x000009a5u, 0x00000999u, 0x000500c7u, 0x00000006u, + 0x00000a14u, 0x000009a8u, 0x0000039cu, 0x00050084u, 0x00000006u, 0x00000a16u, 0x00000990u, 0x00000478u, + 0x00050080u, 0x00000006u, 0x00000a18u, 0x00000a14u, 0x00000a16u, 0x000500c6u, 0x00000006u, 0x00000a1au, + 0x00000a18u, 0x000001bfu, 0x00060041u, 0x000003abu, 0x00000a1bu, 0x000003a8u, 0x000000aeu, 0x00000a1au, + 0x0004003du, 0x0000000au, 0x00000a1cu, 0x00000a1bu, 0x000500c2u, 0x0000000au, 0x00000a1eu, 0x00000a1cu, + 0x00000482u, 0x00060041u, 0x0000038au, 0x00000a20u, 0x00000395u, 0x000000aeu, 0x00000a18u, 0x0004003du, + 0x00000008u, 0x00000a21u, 0x00000a20u, 0x000500c7u, 0x0000000au, 0x00000a23u, 0x00000a1cu, 0x00000488u, + 0x000500c4u, 0x0000000au, 0x00000a24u, 0x00000a23u, 0x00000482u, 0x00040071u, 0x00000008u, 0x00000a25u, + 0x00000a24u, 0x000500c5u, 0x00000008u, 0x00000a26u, 0x00000a21u, 0x00000a25u, 0x000200f9u, 0x000009acu, + 0x000200f8u, 0x000009acu, 0x000700f5u, 0x00000006u, 0x0000150cu, 0x0000150du, 0x00000858u, 0x0000099au, + 0x00000a10u, 0x000700f5u, 0x00000008u, 0x00001329u, 0x0000132au, 0x00000858u, 0x00000a26u, 0x00000a10u, + 0x000700f5u, 0x0000000au, 0x0000131cu, 0x0000131du, 0x00000858u, 0x00000a1eu, 0x00000a10u, 0x000700f5u, + 0x00000009u, 0x000012f6u, 0x000012f7u, 0x00000858u, 0x000012f8u, 0x00000a10u, 0x000200f9u, 0x0000086au, + 0x000200f8u, 0x0000086au, 0x000700f5u, 0x00000008u, 0x00001328u, 0x00001329u, 0x000009acu, 0x00001357u, + 0x0000086du, 0x000700f5u, 0x0000000au, 0x0000131bu, 0x0000131cu, 0x000009acu, 0x00001354u, 0x0000086du, + 0x000700f5u, 0x00000034u, 0x0000130du, 0x0000029cu, 0x000009acu, 0x000015b3u, 0x0000086du, 0x000700f5u, + 0x00000009u, 0x000012f5u, 0x000012f6u, 0x000009acu, 0x00001346u, 0x0000086du, 0x000700f5u, 0x00000034u, + 0x000012f0u, 0x0000029cu, 0x000009acu, 0x00001596u, 0x0000086du, 0x000700f5u, 0x00000006u, 0x000012eau, + 0x00000854u, 0x000009acu, 0x00000879u, 0x0000086du, 0x000700f5u, 0x0000001bu, 0x000014a2u, 0x0000134eu, + 0x000009acu, 0x000014a1u, 0x0000086du, 0x000700f5u, 0x0000001bu, 0x00001477u, 0x0000134eu, 0x000009acu, + 0x00001476u, 0x0000086du, 0x000700f5u, 0x00000008u, 0x0000144du, 0x0000132au, 0x000009acu, 0x0000144cu, + 0x0000086du, 0x000700f5u, 0x00000008u, 0x00001423u, 0x0000132au, 0x000009acu, 0x00001422u, 0x0000086du, + 0x000700f5u, 0x0000001bu, 0x000013f6u, 0x0000134eu, 0x000009acu, 0x000013f5u, 0x0000086du, 0x000700f5u, + 0x0000001bu, 0x000013d8u, 0x0000134eu, 0x000009acu, 0x000013d7u, 0x0000086du, 0x000700f5u, 0x00000008u, + 0x000013bbu, 0x0000132au, 0x000009acu, 0x000013bau, 0x0000086du, 0x000700f5u, 0x00000008u, 0x0000139eu, + 0x0000132au, 0x000009acu, 0x0000139du, 0x0000086du, 0x000700f5u, 0x0000001bu, 0x0000134cu, 0x0000134eu, + 0x000009acu, 0x0000134bu, 0x0000086du, 0x000500abu, 0x00000034u, 0x00000870u, 0x000012eau, 0x0000019bu, + 0x000400f6u, 0x0000086cu, 0x0000086du, 0x00000000u, 0x000400fau, 0x00000870u, 0x0000086bu, 0x0000086cu, + 0x000200f8u, 0x0000086bu, 0x0006000cu, 0x00000017u, 0x00000873u, 0x00000001u, 0x00000049u, 0x000012eau, + 0x000500c4u, 0x00000017u, 0x00000875u, 0x000000b8u, 0x00000873u, 0x0004007cu, 0x00000006u, 0x00000876u, + 0x00000875u, 0x000400c8u, 0x00000006u, 0x00000877u, 0x00000876u, 0x000500c7u, 0x00000006u, 0x00000879u, + 0x000012eau, 0x00000877u, 0x00050080u, 0x00000017u, 0x00000881u, 0x00000845u, 0x00000873u, 0x00060041u, + 0x000003f6u, 0x00000882u, 0x0000087eu, 0x000000aeu, 0x00000881u, 0x0004003du, 0x00000006u, 0x00000883u, + 0x00000882u, 0x00060041u, 0x000003f6u, 0x0000088cu, 0x00000888u, 0x000000aeu, 0x00000881u, 0x0004003du, + 0x00000006u, 0x0000088du, 0x0000088cu, 0x000200f9u, 0x0000088eu, 0x000200f8u, 0x0000088eu, 0x000700f5u, + 0x0000001bu, 0x000014a1u, 0x000014a2u, 0x0000086bu, 0x0000181du, 0x00000891u, 0x000700f5u, 0x0000001bu, + 0x00001476u, 0x00001477u, 0x0000086bu, 0x00001803u, 0x00000891u, 0x000700f5u, 0x00000008u, 0x0000144cu, + 0x0000144du, 0x0000086bu, 0x000017e8u, 0x00000891u, 0x000700f5u, 0x00000008u, 0x00001422u, 0x00001423u, + 0x0000086bu, 0x000017cdu, 0x00000891u, 0x000700f5u, 0x0000001bu, 0x000013f5u, 0x000013f6u, 0x0000086bu, + 0x000017a5u, 0x00000891u, 0x000700f5u, 0x0000001bu, 0x000013d7u, 0x000013d8u, 0x0000086bu, 0x0000177eu, + 0x00000891u, 0x000700f5u, 0x00000008u, 0x000013bau, 0x000013bbu, 0x0000086bu, 0x00001756u, 0x00000891u, + 0x000700f5u, 0x00000008u, 0x0000139du, 0x0000139eu, 0x0000086bu, 0x0000172eu, 0x00000891u, 0x000700f5u, + 0x00000008u, 0x00001357u, 0x00001328u, 0x0000086bu, 0x000016bdu, 0x00000891u, 0x000700f5u, 0x0000000au, + 0x00001354u, 0x0000131bu, 0x0000086bu, 0x0000167fu, 0x00000891u, 0x000700f5u, 0x0000001bu, 0x0000134bu, + 0x0000134cu, 0x0000086bu, 0x00001641u, 0x00000891u, 0x000700f5u, 0x00000009u, 0x00001346u, 0x000012f5u, + 0x0000086bu, 0x00001634u, 0x00000891u, 0x000700f5u, 0x00000006u, 0x00001345u, 0x00000883u, 0x0000086bu, + 0x00000908u, 0x00000891u, 0x000700f5u, 0x00000006u, 0x00001344u, 0x0000088du, 0x0000086bu, 0x0000089du, + 0x00000891u, 0x000700f5u, 0x00000034u, 0x000015b3u, 0x0000130du, 0x0000086bu, 0x000015b4u, 0x00000891u, + 0x000700f5u, 0x00000034u, 0x00001596u, 0x000012f0u, 0x0000086bu, 0x00001597u, 0x00000891u, 0x000500abu, + 0x00000034u, 0x00000894u, 0x00001344u, 0x0000019bu, 0x000400f6u, 0x00000890u, 0x00000891u, 0x00000000u, + 0x000400fau, 0x00000894u, 0x0000088fu, 0x00000890u, 0x000200f8u, 0x0000088fu, 0x0006000cu, 0x00000017u, + 0x00000897u, 0x00000001u, 0x00000049u, 0x00001344u, 0x000500c4u, 0x00000017u, 0x00000899u, 0x000000b8u, + 0x00000897u, 0x0004007cu, 0x00000006u, 0x0000089au, 0x00000899u, 0x000400c8u, 0x00000006u, 0x0000089bu, + 0x0000089au, 0x000500c7u, 0x00000006u, 0x0000089du, 0x00001344u, 0x0000089bu, 0x00050084u, 0x00000017u, + 0x000008a1u, 0x00000843u, 0x00000873u, 0x00050080u, 0x00000017u, 0x000008a2u, 0x00000897u, 0x000008a1u, + 0x0004007cu, 0x00000006u, 0x000008a3u, 0x000008a2u, 0x00050084u, 0x00000006u, 0x000008a9u, 0x00001345u, + 0x000008a8u, 0x0004003du, 0x00000006u, 0x000008abu, 0x000008aau, 0x00050080u, 0x00000006u, 0x000008acu, + 0x000008a9u, 0x000008abu, 0x00060041u, 0x000008b3u, 0x000008b4u, 0x000008b1u, 0x000000aeu, 0x000008acu, + 0x0004003du, 0x0000012cu, 0x000008b5u, 0x000008b4u, 0x00040072u, 0x00000017u, 0x000008b6u, 0x000008b5u, + 0x000500afu, 0x00000034u, 0x000008b8u, 0x000008b6u, 0x000000aeu, 0x000300f7u, 0x000008bau, 0x00000000u, + 0x000400fau, 0x000008b8u, 0x000008b9u, 0x000008bau, 0x000200f8u, 0x000008b9u, 0x000500c7u, 0x00000017u, + 0x000008bdu, 0x000008b6u, 0x000008bcu, 0x000500abu, 0x00000034u, 0x000008beu, 0x000008bdu, 0x000000aeu, + 0x000300f7u, 0x000008c0u, 0x00000000u, 0x000400fau, 0x000008beu, 0x000008bfu, 0x000008c6u, 0x000200f8u, + 0x000008c6u, 0x000500c7u, 0x00000017u, 0x000008c8u, 0x000008b6u, 0x00000843u, 0x000500abu, 0x00000034u, + 0x000008c9u, 0x000008c8u, 0x000000aeu, 0x000300f7u, 0x000008cbu, 0x00000000u, 0x000400fau, 0x000008c9u, + 0x000008cau, 0x000008d9u, 0x000200f8u, 0x000008d9u, 0x00060041u, 0x000008e0u, 0x000008e1u, 0x000008deu, + 0x000000aeu, 0x000008acu, 0x0004003du, 0x00000009u, 0x000008e2u, 0x000008e1u, 0x00060041u, 0x000008eeu, + 0x000008efu, 0x000008ecu, 0x000000aeu, 0x000008acu, 0x0004003du, 0x00000017u, 0x000008f0u, 0x000008efu, + 0x00060041u, 0x0000038au, 0x000008f7u, 0x000008f5u, 0x000000aeu, 0x000008acu, 0x0004003du, 0x00000008u, + 0x000008f8u, 0x000008f7u, 0x00040072u, 0x0000012cu, 0x000008fbu, 0x000008b6u, 0x0004007cu, 0x00000008u, + 0x000008fcu, 0x000008fbu, 0x000500c3u, 0x00000017u, 0x00000bc4u, 0x000008f0u, 0x000000d0u, 0x000500c7u, + 0x00000017u, 0x00000bc7u, 0x000008f0u, 0x0000072au, 0x00040071u, 0x00000006u, 0x00000bcau, 0x000008fcu, + 0x0004007cu, 0x00000017u, 0x00000bcbu, 0x00000bcau, 0x00080041u, 0x0000038au, 0x00000bd1u, 0x0000073du, + 0x000000aeu, 0x000008a3u, 0x000000aeu, 0x000001bfu, 0x0004003du, 0x00000008u, 0x00000bd2u, 0x00000bd1u, + 0x00040071u, 0x00000006u, 0x00000bd3u, 0x00000bd2u, 0x00060041u, 0x000000b0u, 0x00000c76u, 0x000000adu, + 0x000000aeu, 0x000008a3u, 0x0004003du, 0x000000a9u, 0x00000c77u, 0x00000c76u, 0x00050051u, 0x00000009u, + 0x00000c88u, 0x00000c77u, 0x00000008u, 0x00050051u, 0x00000009u, 0x00000c8au, 0x00000c77u, 0x00000009u, + 0x00050051u, 0x0000000au, 0x00000c8eu, 0x00000c77u, 0x0000000bu, 0x00050051u, 0x00000008u, 0x00000c90u, + 0x00000c77u, 0x0000000cu, 0x00060041u, 0x000000ebu, 0x00000c9bu, 0x000000e9u, 0x000000aeu, 0x00000bd3u, + 0x0004003du, 0x000000e5u, 0x00000c9cu, 0x00000c9bu, 0x00050051u, 0x00000009u, 0x00000c9du, 0x00000c9cu, + 0x00000000u, 0x00050051u, 0x00000009u, 0x00000c9fu, 0x00000c9cu, 0x00000001u, 0x00050051u, 0x00000006u, + 0x00000ca1u, 0x00000c9cu, 0x00000002u, 0x00050051u, 0x00000008u, 0x00000ca3u, 0x00000c9cu, 0x00000003u, + 0x00050051u, 0x00000008u, 0x00000ca5u, 0x00000c9cu, 0x00000004u, 0x000500c7u, 0x00000006u, 0x00000bdau, + 0x00000ca1u, 0x000003b3u, 0x000500abu, 0x00000034u, 0x00000bdbu, 0x00000bdau, 0x0000019bu, 0x000500c7u, + 0x00000006u, 0x00000bdeu, 0x00000ca1u, 0x000001bfu, 0x000500abu, 0x00000034u, 0x00000bdfu, 0x00000bdeu, + 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000be2u, 0x00000ca1u, 0x00000173u, 0x000500abu, 0x00000034u, + 0x00000be3u, 0x00000be2u, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000be6u, 0x00000ca1u, 0x000003fcu, + 0x000500abu, 0x00000034u, 0x00000be7u, 0x00000be6u, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000beau, + 0x00000ca1u, 0x00000761u, 0x000500abu, 0x00000034u, 0x00000bebu, 0x00000beau, 0x0000019bu, 0x000500c7u, + 0x00000006u, 0x00000beeu, 0x00000ca1u, 0x00000767u, 0x000500abu, 0x00000034u, 0x00000befu, 0x00000beeu, + 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000bf2u, 0x00000ca1u, 0x0000076du, 0x000500abu, 0x00000034u, + 0x00000bf3u, 0x00000bf2u, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000bf6u, 0x00000ca1u, 0x00000773u, + 0x000500abu, 0x00000034u, 0x00000bf7u, 0x00000bf6u, 0x0000019bu, 0x000300f7u, 0x00000cb7u, 0x00000000u, + 0x000400fau, 0x00000be7u, 0x00000cb2u, 0x00000cb6u, 0x000200f8u, 0x00000cb6u, 0x000200f9u, 0x00000cb7u, + 0x000200f8u, 0x00000cb2u, 0x00050051u, 0x00000008u, 0x00000cb4u, 0x00001346u, 0x00000003u, 0x000500c7u, + 0x00000008u, 0x00000cb5u, 0x00000cb4u, 0x00000650u, 0x000200f9u, 0x00000cb7u, 0x000200f8u, 0x00000cb7u, + 0x000700f5u, 0x00000008u, 0x00001347u, 0x00000cb5u, 0x00000cb2u, 0x00000650u, 0x00000cb6u, 0x000300f7u, + 0x00000cc8u, 0x00000000u, 0x000d00fbu, 0x00000375u, 0x00000cc8u, 0x00000000u, 0x00000cb9u, 0x00000001u, + 0x00000cbau, 0x00000002u, 0x00000cbdu, 0x00000003u, 0x00000cc2u, 0x00000004u, 0x00000cc5u, 0x000200f8u, + 0x00000cc5u, 0x0008004fu, 0x0000001bu, 0x00000cc7u, 0x00001346u, 0x00001346u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x00000cc8u, 0x000200f8u, 0x00000cc2u, 0x0008004fu, 0x0000001bu, 0x00000cc4u, + 0x00001346u, 0x00001346u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000200f9u, 0x00000cc8u, 0x000200f8u, + 0x00000cbdu, 0x0008004fu, 0x0000001bu, 0x00000cbfu, 0x00001346u, 0x00001346u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000500c7u, 0x0000001bu, 0x00000cc1u, 0x00000cbfu, 0x0000187au, 0x000200f9u, 0x00000cc8u, + 0x000200f8u, 0x00000cbau, 0x0008004fu, 0x0000001bu, 0x00000cbcu, 0x00001346u, 0x00001346u, 0x00000000u, + 0x00000000u, 0x00000000u, 0x000200f9u, 0x00000cc8u, 0x000200f8u, 0x00000cb9u, 0x000200f9u, 0x00000cc8u, + 0x000200f8u, 0x00000cc8u, 0x000f00f5u, 0x00000008u, 0x00001351u, 0x00001347u, 0x00000cb7u, 0x00000650u, + 0x00000cb9u, 0x00000650u, 0x00000cbau, 0x00001347u, 0x00000cbdu, 0x00001347u, 0x00000cc2u, 0x00001347u, + 0x00000cc5u, 0x000f00f5u, 0x0000001bu, 0x00001349u, 0x0000134bu, 0x00000cb7u, 0x0000065bu, 0x00000cb9u, + 0x00000cbcu, 0x00000cbau, 0x00000cc1u, 0x00000cbdu, 0x00000cc4u, 0x00000cc2u, 0x00000cc7u, 0x00000cc5u, + 0x00050051u, 0x00000008u, 0x00000ccbu, 0x00001349u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00000cccu, + 0x00001349u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00000ccdu, 0x00001349u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x00000cceu, 0x00000ccbu, 0x00000cccu, 0x00000ccdu, 0x00001351u, 0x000500c2u, 0x00000008u, + 0x00000bfcu, 0x00001351u, 0x000003c2u, 0x00040071u, 0x00000006u, 0x00000bffu, 0x00000c8eu, 0x0004007cu, + 0x00000017u, 0x00000c00u, 0x00000bffu, 0x00040071u, 0x00000006u, 0x00000c03u, 0x00000c90u, 0x0004007cu, + 0x00000017u, 0x00000c04u, 0x00000c03u, 0x00040071u, 0x00000006u, 0x00000c06u, 0x00000bfcu, 0x0004007cu, + 0x00000017u, 0x00000c07u, 0x00000c06u, 0x00040071u, 0x00000006u, 0x00000c0au, 0x00000ca5u, 0x0004007cu, + 0x00000017u, 0x00000c0bu, 0x00000c0au, 0x00050080u, 0x00000017u, 0x00000d24u, 0x00000bcbu, 0x00000c07u, + 0x000500afu, 0x00000034u, 0x00000d25u, 0x00000d24u, 0x000000cdu, 0x000300f7u, 0x00000d91u, 0x00000000u, + 0x000400fau, 0x00000bdfu, 0x00000ce5u, 0x00000d7bu, 0x000200f8u, 0x00000d7bu, 0x00050082u, 0x00000017u, + 0x00000d7eu, 0x00000299u, 0x00000c04u, 0x0007000cu, 0x00000017u, 0x00000d7fu, 0x00000001u, 0x00000027u, + 0x00000d7eu, 0x000000c1u, 0x00040072u, 0x0000012cu, 0x00000d80u, 0x00000d7fu, 0x0004007cu, 0x00000008u, + 0x00000d81u, 0x00000d80u, 0x00050050u, 0x00000036u, 0x00001884u, 0x000001edu, 0x00000d81u, 0x000400a8u, + 0x00000034u, 0x00000d88u, 0x00000bdbu, 0x000300f7u, 0x00000d8eu, 0x00000000u, 0x000400fau, 0x00000d88u, + 0x00000d89u, 0x00000d8eu, 0x000200f8u, 0x00000d89u, 0x000400a8u, 0x00000034u, 0x00000d8bu, 0x00000d25u, + 0x000500a7u, 0x00000034u, 0x00000d8du, 0x00000d8bu, 0x00000bf3u, 0x000200f9u, 0x00000d8eu, 0x000200f8u, + 0x00000d8eu, 0x000700f5u, 0x00000034u, 0x00000d8fu, 0x00000bdbu, 0x00000d7bu, 0x00000d8du, 0x00000d89u, + 0x000200f9u, 0x00000d91u, 0x000200f8u, 0x00000ce5u, 0x00040071u, 0x00000006u, 0x00000d9bu, 0x00001354u, + 0x0004007cu, 0x00000017u, 0x00000d9cu, 0x00000d9bu, 0x000500c3u, 0x00000017u, 0x00000d9eu, 0x00000d9cu, + 0x000000d6u, 0x000500c7u, 0x00000017u, 0x00000da0u, 0x00000d9cu, 0x0000013bu, 0x00050082u, 0x00000017u, + 0x00000da2u, 0x000000c7u, 0x00000d9eu, 0x0007000cu, 0x00000017u, 0x00000da3u, 0x00000001u, 0x0000002au, + 0x00000da2u, 0x000000aeu, 0x000500c3u, 0x00000017u, 0x00000da5u, 0x00000142u, 0x00000d9eu, 0x00050082u, + 0x00000017u, 0x00000da6u, 0x00000142u, 0x00000da5u, 0x000500c4u, 0x00000017u, 0x00000da9u, 0x00000da0u, + 0x00000da3u, 0x00050080u, 0x00000017u, 0x00000dabu, 0x00000da9u, 0x00000da6u, 0x00040071u, 0x00000006u, + 0x00000ce9u, 0x00001357u, 0x0004007cu, 0x00000017u, 0x00000ceau, 0x00000ce9u, 0x000500c4u, 0x00000017u, + 0x00000dafu, 0x000000b8u, 0x00000ceau, 0x000500c7u, 0x00000017u, 0x00000cf0u, 0x00000d9eu, 0x00000299u, + 0x00050082u, 0x00000017u, 0x00000cf5u, 0x00000c04u, 0x00000ceau, 0x0008000cu, 0x00000017u, 0x00000cf6u, + 0x00000001u, 0x0000002du, 0x00000cf5u, 0x000000aeu, 0x000000c1u, 0x00040072u, 0x0000012cu, 0x00000cf7u, + 0x00000cf6u, 0x0004007cu, 0x00000008u, 0x00000cf8u, 0x00000cf7u, 0x00050082u, 0x00000017u, 0x00000cfeu, + 0x00000ceau, 0x00000c04u, 0x0008000cu, 0x00000017u, 0x00000cffu, 0x00000001u, 0x0000002du, 0x00000cfeu, + 0x000000aeu, 0x000000c1u, 0x00040072u, 0x0000012cu, 0x00000d00u, 0x00000cffu, 0x0004007cu, 0x00000008u, + 0x00000d01u, 0x00000d00u, 0x00050050u, 0x00000036u, 0x00001885u, 0x00000cf8u, 0x00000d01u, 0x000500b1u, + 0x00000034u, 0x00000d04u, 0x00000cf0u, 0x000000beu, 0x000300f7u, 0x00000d10u, 0x00000000u, 0x000400fau, + 0x00000d04u, 0x00000d05u, 0x00000d10u, 0x000200f8u, 0x00000d05u, 0x000500abu, 0x00000034u, 0x00000d07u, + 0x00000dafu, 0x000002b4u, 0x000300f7u, 0x00000d0fu, 0x00000000u, 0x000400fau, 0x00000d07u, 0x00000d08u, + 0x00000d0eu, 0x000200f8u, 0x00000d0eu, 0x000200f9u, 0x00000d0fu, 0x000200f8u, 0x00000d08u, 0x000500c4u, + 0x00000017u, 0x00000d0au, 0x00000dafu, 0x000000b8u, 0x000500c3u, 0x00000017u, 0x00000d0cu, 0x000002bau, + 0x00000cf0u, 0x0007000cu, 0x00000017u, 0x00000d0du, 0x00000001u, 0x0000002au, 0x00000d0au, 0x00000d0cu, + 0x000200f9u, 0x00000d0fu, 0x000200f8u, 0x00000d0fu, 0x000700f5u, 0x00000017u, 0x00001363u, 0x00000d0du, + 0x00000d08u, 0x000002c0u, 0x00000d0eu, 0x000600a9u, 0x00000034u, 0x00001888u, 0x00000d07u, 0x0000029cu, + 0x000002bfu, 0x000200f9u, 0x00000d10u, 0x000200f8u, 0x00000d10u, 0x000700f5u, 0x00000034u, 0x00001366u, + 0x0000029cu, 0x00000ce5u, 0x00001888u, 0x00000d0fu, 0x000700f5u, 0x00000017u, 0x00001362u, 0x00000dafu, + 0x00000ce5u, 0x00001363u, 0x00000d0fu, 0x000500c5u, 0x00000017u, 0x00000d13u, 0x00000c00u, 0x00001362u, + 0x000500abu, 0x00000034u, 0x00000db3u, 0x00000d13u, 0x000000aeu, 0x000300f7u, 0x00000db8u, 0x00000000u, + 0x000400fau, 0x00000db3u, 0x00000db4u, 0x00000db8u, 0x000200f8u, 0x00000db4u, 0x0006000cu, 0x00000017u, + 0x00000db6u, 0x00000001u, 0x0000004au, 0x00000d13u, 0x000500c4u, 0x00000017u, 0x00000db7u, 0x000000b8u, + 0x00000db6u, 0x000200f9u, 0x00000db8u, 0x000200f8u, 0x00000db8u, 0x000700f5u, 0x00000017u, 0x00001364u, + 0x00000d13u, 0x00000d10u, 0x00000db7u, 0x00000db4u, 0x000500c4u, 0x00000017u, 0x00000d17u, 0x00001364u, + 0x000000beu, 0x000400a8u, 0x00000034u, 0x00000d19u, 0x00001366u, 0x000300f7u, 0x00000d20u, 0x00000000u, + 0x000400fau, 0x00000d19u, 0x00000d1au, 0x00000d20u, 0x000200f8u, 0x00000d1au, 0x00050080u, 0x00000017u, + 0x00000d1du, 0x00000bc4u, 0x00000d17u, 0x000500afu, 0x00000034u, 0x00000d1fu, 0x00000d1du, 0x00000dabu, + 0x000200f9u, 0x00000d20u, 0x000200f8u, 0x00000d20u, 0x000700f5u, 0x00000034u, 0x00000d21u, 0x00001366u, + 0x00000db8u, 0x00000d1fu, 0x00000d1au, 0x000400a8u, 0x00000034u, 0x00000d27u, 0x00000bdbu, 0x000300f7u, + 0x00000d2fu, 0x00000000u, 0x000400fau, 0x00000d27u, 0x00000d28u, 0x00000d2fu, 0x000200f8u, 0x00000d28u, + 0x000400a8u, 0x00000034u, 0x00000d2au, 0x00000d25u, 0x000500a7u, 0x00000034u, 0x00000d2cu, 0x00000d2au, + 0x00000bf3u, 0x000500a7u, 0x00000034u, 0x00000d2eu, 0x00000d2cu, 0x00000d21u, 0x000200f9u, 0x00000d2fu, + 0x000200f8u, 0x00000d2fu, 0x000700f5u, 0x00000034u, 0x00000d30u, 0x00000bdbu, 0x00000d20u, 0x00000d2eu, + 0x00000d28u, 0x000500aau, 0x00000034u, 0x00000d33u, 0x00000dabu, 0x0000014eu, 0x000500b1u, 0x00000034u, + 0x00000d36u, 0x00000bc4u, 0x00000dabu, 0x00050082u, 0x00000017u, 0x00000d39u, 0x00000bc4u, 0x00000d17u, + 0x000500b3u, 0x00000034u, 0x00000d3du, 0x00000d39u, 0x00000dabu, 0x000500a6u, 0x00000034u, 0x00000d3eu, + 0x00001366u, 0x00000d3du, 0x000300f7u, 0x00000d7au, 0x00000000u, 0x000b00fbu, 0x00000c0bu, 0x00000d7au, + 0x00000000u, 0x00000d40u, 0x00000001u, 0x00000d4au, 0x00000002u, 0x00000d6fu, 0x00000003u, 0x00000d73u, + 0x000200f8u, 0x00000d73u, 0x000500a7u, 0x00000034u, 0x00000d76u, 0x00000d21u, 0x00000d3eu, 0x000400a8u, + 0x00000034u, 0x00000d78u, 0x00000d33u, 0x000500a7u, 0x00000034u, 0x00000d79u, 0x00000d76u, 0x00000d78u, + 0x000200f9u, 0x00000d7au, 0x000200f8u, 0x00000d6fu, 0x000500a6u, 0x00000034u, 0x00000d72u, 0x00000d36u, + 0x00000d33u, 0x000200f9u, 0x00000d7au, 0x000200f8u, 0x00000d4au, 0x000400a8u, 0x00000034u, 0x00000d4cu, + 0x00000d36u, 0x000400a8u, 0x00000034u, 0x00000d4eu, 0x00000d21u, 0x000500a6u, 0x00000034u, 0x00000d4fu, + 0x00000d4cu, 0x00000d4eu, 0x000400a8u, 0x00000034u, 0x00000d51u, 0x00000d25u, 0x000500a6u, 0x00000034u, + 0x00000d52u, 0x00000d4fu, 0x00000d51u, 0x000300f7u, 0x00000d6eu, 0x00000000u, 0x000400fau, 0x00000d52u, + 0x00000d53u, 0x00000d5du, 0x000200f8u, 0x00000d5du, 0x000500c7u, 0x00000017u, 0x00000d5fu, 0x00001364u, + 0x000002c0u, 0x0006000cu, 0x00000017u, 0x00000dbdu, 0x00000001u, 0x0000004au, 0x00000d5fu, 0x0007000cu, + 0x00000017u, 0x00000dbeu, 0x00000001u, 0x0000002au, 0x00000dbdu, 0x000000aeu, 0x000500c3u, 0x00000017u, + 0x00000d63u, 0x00000dabu, 0x00000dbeu, 0x000500c3u, 0x00000017u, 0x00000d66u, 0x00000bc4u, 0x00000dbeu, + 0x00050082u, 0x00000017u, 0x00000d67u, 0x00000d63u, 0x00000d66u, 0x000500c7u, 0x00000017u, 0x00000d68u, + 0x00000d67u, 0x00000299u, 0x00050084u, 0x00000017u, 0x00000d6bu, 0x00000d68u, 0x00000bcbu, 0x000500c3u, + 0x00000017u, 0x00000d6cu, 0x00000d6bu, 0x000000beu, 0x0007000cu, 0x00000017u, 0x00000d6du, 0x00000001u, + 0x00000027u, 0x00000d6cu, 0x000000cdu, 0x000200f9u, 0x00000d6eu, 0x000200f8u, 0x00000d53u, 0x000400a8u, + 0x00000034u, 0x00000d55u, 0x00000d33u, 0x000300f7u, 0x00000d5bu, 0x00000000u, 0x000400fau, 0x00000d55u, + 0x00000d56u, 0x00000d5bu, 0x000200f8u, 0x00000d56u, 0x000600a9u, 0x00000034u, 0x00000d5au, 0x00000d25u, + 0x00000d36u, 0x00000d3eu, 0x000200f9u, 0x00000d5bu, 0x000200f8u, 0x00000d5bu, 0x000700f5u, 0x00000034u, + 0x00000d5cu, 0x00000d33u, 0x00000d53u, 0x00000d5au, 0x00000d56u, 0x000200f9u, 0x00000d6eu, 0x000200f8u, + 0x00000d6eu, 0x000700f5u, 0x00000017u, 0x00001377u, 0x00000bcbu, 0x00000d5bu, 0x00000d6du, 0x00000d5du, + 0x000700f5u, 0x00000034u, 0x00001373u, 0x00000d5cu, 0x00000d5bu, 0x000002bfu, 0x00000d5du, 0x000200f9u, + 0x00000d7au, 0x000200f8u, 0x00000d40u, 0x000400a8u, 0x00000034u, 0x00000d42u, 0x00000d33u, 0x000300f7u, + 0x00000d48u, 0x00000000u, 0x000400fau, 0x00000d42u, 0x00000d43u, 0x00000d48u, 0x000200f8u, 0x00000d43u, + 0x000600a9u, 0x00000034u, 0x00000d47u, 0x00000d25u, 0x00000d36u, 0x00000d3eu, 0x000200f9u, 0x00000d48u, + 0x000200f8u, 0x00000d48u, 0x000700f5u, 0x00000034u, 0x00000d49u, 0x00000d33u, 0x00000d40u, 0x00000d47u, + 0x00000d43u, 0x000200f9u, 0x00000d7au, 0x000200f8u, 0x00000d7au, 0x000d00f5u, 0x00000017u, 0x00001375u, + 0x00000bcbu, 0x00000d2fu, 0x00000bcbu, 0x00000d48u, 0x00001377u, 0x00000d6eu, 0x00000bcbu, 0x00000d6fu, + 0x00000bcbu, 0x00000d73u, 0x000d00f5u, 0x00000034u, 0x00001372u, 0x0000029cu, 0x00000d2fu, 0x00000d49u, + 0x00000d48u, 0x00001373u, 0x00000d6eu, 0x00000d72u, 0x00000d6fu, 0x00000d79u, 0x00000d73u, 0x000200f9u, + 0x00000d91u, 0x000200f8u, 0x00000d91u, 0x000700f5u, 0x00000036u, 0x00001384u, 0x00001885u, 0x00000d7au, + 0x00001884u, 0x00000d8eu, 0x000700f5u, 0x00000034u, 0x0000137au, 0x00000d30u, 0x00000d7au, 0x00000d8fu, + 0x00000d8eu, 0x000700f5u, 0x00000017u, 0x00001374u, 0x00001375u, 0x00000d7au, 0x00000bcbu, 0x00000d8eu, + 0x000700f5u, 0x00000034u, 0x00001371u, 0x00001372u, 0x00000d7au, 0x000002bfu, 0x00000d8eu, 0x000300f7u, + 0x00000c1fu, 0x00000000u, 0x000400fau, 0x00001371u, 0x00000c19u, 0x00000c1fu, 0x000200f8u, 0x00000c19u, + 0x000400a8u, 0x00000034u, 0x00000c1bu, 0x00000bf3u, 0x000500abu, 0x00000034u, 0x00000c1du, 0x00001374u, + 0x000000aeu, 0x000500a6u, 0x00000034u, 0x00000c1eu, 0x00000c1bu, 0x00000c1du, 0x000200f9u, 0x00000c1fu, + 0x000200f8u, 0x00000c1fu, 0x000700f5u, 0x00000034u, 0x00000c20u, 0x00001371u, 0x00000d91u, 0x00000c1eu, + 0x00000c19u, 0x000300f7u, 0x00000c71u, 0x00000000u, 0x000400fau, 0x00000c20u, 0x00000c21u, 0x00000c71u, + 0x000200f8u, 0x00000c21u, 0x000300f7u, 0x00000c3eu, 0x00000000u, 0x000400fau, 0x00000befu, 0x00000c2du, + 0x00000c3eu, 0x000200f8u, 0x00000c2du, 0x00050051u, 0x00000008u, 0x00000dcbu, 0x00000c9du, 0x00000002u, + 0x00040071u, 0x00000006u, 0x00000dccu, 0x00000dcbu, 0x0004007cu, 0x00000017u, 0x00000dcdu, 0x00000dccu, + 0x000300f7u, 0x00000ddeu, 0x00000000u, 0x000b00fbu, 0x00000dcdu, 0x00000ddeu, 0x00000000u, 0x00000dceu, + 0x00000001u, 0x00000dd2u, 0x00000002u, 0x00000dd6u, 0x00000003u, 0x00000ddau, 0x000200f8u, 0x00000ddau, + 0x0008004fu, 0x0000001bu, 0x00000dddu, 0x00000c88u, 0x00000c88u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00000ddeu, 0x000200f8u, 0x00000dd6u, 0x0008004fu, 0x0000001bu, 0x00000dd9u, 0x00000c8au, + 0x00000c8au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ddeu, 0x000200f8u, 0x00000dd2u, + 0x0008004fu, 0x0000001bu, 0x00000dd5u, 0x00000cceu, 0x00000cceu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00000ddeu, 0x000200f8u, 0x00000dceu, 0x0008004fu, 0x0000001bu, 0x00000dd1u, 0x000008e2u, + 0x000008e2u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ddeu, 0x000200f8u, 0x00000ddeu, + 0x000d00f5u, 0x0000001bu, 0x000013ebu, 0x000013f5u, 0x00000c2du, 0x00000dd1u, 0x00000dceu, 0x00000dd5u, + 0x00000dd2u, 0x00000dd9u, 0x00000dd6u, 0x00000dddu, 0x00000ddau, 0x00050051u, 0x00000008u, 0x00000deau, + 0x00000c9du, 0x00000000u, 0x00040071u, 0x00000006u, 0x00000debu, 0x00000deau, 0x0004007cu, 0x00000017u, + 0x00000decu, 0x00000debu, 0x000300f7u, 0x00000dfdu, 0x00000000u, 0x000b00fbu, 0x00000decu, 0x00000dfdu, + 0x00000000u, 0x00000dedu, 0x00000001u, 0x00000df1u, 0x00000002u, 0x00000df5u, 0x00000003u, 0x00000df9u, + 0x000200f8u, 0x00000df9u, 0x0008004fu, 0x0000001bu, 0x00000dfcu, 0x00000c88u, 0x00000c88u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000dfdu, 0x000200f8u, 0x00000df5u, 0x0008004fu, 0x0000001bu, + 0x00000df8u, 0x00000c8au, 0x00000c8au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000dfdu, + 0x000200f8u, 0x00000df1u, 0x0008004fu, 0x0000001bu, 0x00000df4u, 0x00000cceu, 0x00000cceu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000dfdu, 0x000200f8u, 0x00000dedu, 0x0008004fu, 0x0000001bu, + 0x00000df0u, 0x000008e2u, 0x000008e2u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000dfdu, + 0x000200f8u, 0x00000dfdu, 0x000d00f5u, 0x0000001bu, 0x000013cbu, 0x000013d7u, 0x00000ddeu, 0x00000df0u, + 0x00000dedu, 0x00000df4u, 0x00000df1u, 0x00000df8u, 0x00000df5u, 0x00000dfcu, 0x00000df9u, 0x00050051u, + 0x00000008u, 0x00000e1eu, 0x00000c9du, 0x00000001u, 0x00040071u, 0x00000006u, 0x00000e1fu, 0x00000e1eu, + 0x0004007cu, 0x00000017u, 0x00000e20u, 0x00000e1fu, 0x000300f7u, 0x00000e2bu, 0x00000000u, 0x000b00fbu, + 0x00000e20u, 0x00000e2bu, 0x00000000u, 0x00000e21u, 0x00000001u, 0x00000e24u, 0x00000002u, 0x00000e27u, + 0x00000003u, 0x00000e2au, 0x000200f8u, 0x00000e2au, 0x000200f9u, 0x00000e2bu, 0x000200f8u, 0x00000e27u, + 0x000200f9u, 0x00000e2bu, 0x000200f8u, 0x00000e24u, 0x00050051u, 0x00000008u, 0x00000e26u, 0x00000c88u, + 0x00000003u, 0x000200f9u, 0x00000e2bu, 0x000200f8u, 0x00000e21u, 0x00050051u, 0x00000008u, 0x00000e23u, + 0x000008e2u, 0x00000003u, 0x000200f9u, 0x00000e2bu, 0x000200f8u, 0x00000e2bu, 0x000d00f5u, 0x00000008u, + 0x0000138fu, 0x0000139du, 0x00000dfdu, 0x00000e23u, 0x00000e21u, 0x00000e26u, 0x00000e24u, 0x000008f8u, + 0x00000e27u, 0x000001edu, 0x00000e2au, 0x00050051u, 0x00000008u, 0x00000e2du, 0x00000c9du, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00000e2eu, 0x00000e2du, 0x0004007cu, 0x00000017u, 0x00000e2fu, 0x00000e2eu, + 0x000300f7u, 0x00000e39u, 0x00000000u, 0x000b00fbu, 0x00000e2fu, 0x00000e39u, 0x00000000u, 0x00000e30u, + 0x00000001u, 0x00000e34u, 0x00000002u, 0x00000e37u, 0x00000003u, 0x00000e38u, 0x000200f8u, 0x00000e38u, + 0x000200f9u, 0x00000e39u, 0x000200f8u, 0x00000e37u, 0x000200f9u, 0x00000e39u, 0x000200f8u, 0x00000e34u, + 0x000200f9u, 0x00000e39u, 0x000200f8u, 0x00000e30u, 0x000400c8u, 0x00000008u, 0x00000e32u, 0x0000138fu, + 0x000500c7u, 0x00000008u, 0x00000e33u, 0x00000e32u, 0x000001d2u, 0x000200f9u, 0x00000e39u, 0x000200f8u, + 0x00000e39u, 0x000d00f5u, 0x00000008u, 0x000013abu, 0x000013bau, 0x00000e2bu, 0x00000e33u, 0x00000e30u, + 0x00001351u, 0x00000e34u, 0x000001d2u, 0x00000e37u, 0x000001edu, 0x00000e38u, 0x000500c2u, 0x00000008u, + 0x00000e3bu, 0x0000138fu, 0x00000204u, 0x000500c2u, 0x00000008u, 0x00000e3du, 0x000013abu, 0x00000204u, + 0x000500aau, 0x00000034u, 0x00000e42u, 0x00000e2fu, 0x000000b8u, 0x000300f7u, 0x00000e4eu, 0x00000000u, + 0x000400fau, 0x00000e42u, 0x00000e43u, 0x00000e4eu, 0x000200f8u, 0x00000e43u, 0x00050051u, 0x00000008u, + 0x00000e46u, 0x00001384u, 0x00000000u, 0x000500c2u, 0x00000008u, 0x00000e47u, 0x00000e3bu, 0x00000e46u, + 0x000500c7u, 0x00000008u, 0x00000e48u, 0x00000e47u, 0x00000214u, 0x00050051u, 0x00000008u, 0x00000e4bu, + 0x00001384u, 0x00000001u, 0x000500c2u, 0x00000008u, 0x00000e4cu, 0x00000e3du, 0x00000e4bu, 0x000500c5u, + 0x00000008u, 0x00000e4du, 0x00000e4cu, 0x00000204u, 0x000200f9u, 0x00000e4eu, 0x000200f8u, 0x00000e4eu, + 0x000700f5u, 0x00000008u, 0x00001402u, 0x00000e3du, 0x00000e39u, 0x00000e4du, 0x00000e43u, 0x000700f5u, + 0x00000008u, 0x000013e4u, 0x00000e3bu, 0x00000e39u, 0x00000e48u, 0x00000e43u, 0x00040071u, 0x0000021fu, + 0x00000e50u, 0x000013cbu, 0x0004007cu, 0x0000021bu, 0x00000e51u, 0x00000e50u, 0x00040071u, 0x0000000au, + 0x00000e53u, 0x000013e4u, 0x0004007cu, 0x0000000bu, 0x00000e54u, 0x00000e53u, 0x00060050u, 0x0000021bu, + 0x00000e55u, 0x00000e54u, 0x00000e54u, 0x00000e54u, 0x00050084u, 0x0000021bu, 0x00000e56u, 0x00000e51u, + 0x00000e55u, 0x00040071u, 0x0000021fu, 0x00000e58u, 0x000013ebu, 0x0004007cu, 0x0000021bu, 0x00000e59u, + 0x00000e58u, 0x00040071u, 0x0000000au, 0x00000e5bu, 0x00001402u, 0x0004007cu, 0x0000000bu, 0x00000e5cu, + 0x00000e5bu, 0x00050080u, 0x0000000bu, 0x00000e5du, 0x00000e5cu, 0x0000022du, 0x00060050u, 0x0000021bu, + 0x00000e5eu, 0x00000e5du, 0x00000e5du, 0x00000e5du, 0x00050084u, 0x0000021bu, 0x00000e5fu, 0x00000e59u, + 0x00000e5eu, 0x00050080u, 0x0000021bu, 0x00000e60u, 0x00000e56u, 0x00000e5fu, 0x000500c3u, 0x0000021bu, + 0x00000e68u, 0x00000e60u, 0x00001880u, 0x00040072u, 0x0000012du, 0x00000e69u, 0x00000e68u, 0x0004007cu, + 0x0000001bu, 0x00000e6au, 0x00000e69u, 0x000500c7u, 0x0000001bu, 0x00000ea0u, 0x00000e6au, 0x00001881u, + 0x00050051u, 0x00000008u, 0x00000c37u, 0x00000ea0u, 0x00000000u, 0x00060052u, 0x00000009u, 0x00001293u, + 0x00000c37u, 0x000008e2u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00000c39u, 0x00000ea0u, 0x00000001u, + 0x00060052u, 0x00000009u, 0x00001295u, 0x00000c39u, 0x00001293u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00000c3bu, 0x00000ea0u, 0x00000002u, 0x00060052u, 0x00000009u, 0x00001297u, 0x00000c3bu, 0x00001295u, + 0x00000002u, 0x000200f9u, 0x00000c3eu, 0x000200f8u, 0x00000c3eu, 0x000700f5u, 0x0000001bu, 0x000017bcu, + 0x000013f5u, 0x00000c21u, 0x000013ebu, 0x00000e4eu, 0x000700f5u, 0x0000001bu, 0x00001795u, 0x000013d7u, + 0x00000c21u, 0x00000e6au, 0x00000e4eu, 0x000700f5u, 0x00000008u, 0x0000176du, 0x000013bau, 0x00000c21u, + 0x00001402u, 0x00000e4eu, 0x000700f5u, 0x00000008u, 0x00001745u, 0x0000139du, 0x00000c21u, 0x000013e4u, + 0x00000e4eu, 0x000700f5u, 0x00000009u, 0x00001411u, 0x000008e2u, 0x00000c21u, 0x00001297u, 0x00000e4eu, + 0x00070050u, 0x00001889u, 0x0000188au, 0x00000befu, 0x00000befu, 0x00000befu, 0x00000befu, 0x000600a9u, + 0x00000009u, 0x0000188bu, 0x0000188au, 0x00000c9fu, 0x00000c9du, 0x000300f7u, 0x00000f85u, 0x00000000u, + 0x000300fbu, 0x0000019bu, 0x00000eadu, 0x000200f8u, 0x00000eadu, 0x00050051u, 0x00000008u, 0x00000eafu, + 0x0000188bu, 0x00000002u, 0x00040071u, 0x00000006u, 0x00000eb0u, 0x00000eafu, 0x0004007cu, 0x00000017u, + 0x00000eb1u, 0x00000eb0u, 0x000300f7u, 0x00000ec2u, 0x00000000u, 0x000b00fbu, 0x00000eb1u, 0x00000ec2u, + 0x00000000u, 0x00000eb2u, 0x00000001u, 0x00000eb6u, 0x00000002u, 0x00000ebau, 0x00000003u, 0x00000ebeu, + 0x000200f8u, 0x00000ebeu, 0x0008004fu, 0x0000001bu, 0x00000ec1u, 0x00000c88u, 0x00000c88u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ec2u, 0x000200f8u, 0x00000ebau, 0x0008004fu, 0x0000001bu, + 0x00000ebdu, 0x00000c8au, 0x00000c8au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ec2u, + 0x000200f8u, 0x00000eb6u, 0x0008004fu, 0x0000001bu, 0x00000eb9u, 0x00000cceu, 0x00000cceu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ec2u, 0x000200f8u, 0x00000eb2u, 0x0008004fu, 0x0000001bu, + 0x00000eb5u, 0x00001411u, 0x00001411u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ec2u, + 0x000200f8u, 0x00000ec2u, 0x000d00f5u, 0x0000001bu, 0x00001496u, 0x000014a1u, 0x00000eadu, 0x00000eb5u, + 0x00000eb2u, 0x00000eb9u, 0x00000eb6u, 0x00000ebdu, 0x00000ebau, 0x00000ec1u, 0x00000ebeu, 0x000400a8u, + 0x00000034u, 0x00000ec7u, 0x00000d25u, 0x000500a7u, 0x00000034u, 0x00000ec8u, 0x00000bebu, 0x00000ec7u, + 0x000300f7u, 0x00000ecbu, 0x00000000u, 0x000400fau, 0x00000ec8u, 0x00000ec9u, 0x00000ecbu, 0x000200f8u, + 0x00000ec9u, 0x000200f9u, 0x00000f85u, 0x000200f8u, 0x00000ecbu, 0x00050051u, 0x00000008u, 0x00000eceu, + 0x0000188bu, 0x00000000u, 0x00040071u, 0x00000006u, 0x00000ecfu, 0x00000eceu, 0x0004007cu, 0x00000017u, + 0x00000ed0u, 0x00000ecfu, 0x000300f7u, 0x00000ee1u, 0x00000000u, 0x000b00fbu, 0x00000ed0u, 0x00000ee1u, + 0x00000000u, 0x00000ed1u, 0x00000001u, 0x00000ed5u, 0x00000002u, 0x00000ed9u, 0x00000003u, 0x00000eddu, + 0x000200f8u, 0x00000eddu, 0x0008004fu, 0x0000001bu, 0x00000ee0u, 0x00000c88u, 0x00000c88u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ee1u, 0x000200f8u, 0x00000ed9u, 0x0008004fu, 0x0000001bu, + 0x00000edcu, 0x00000c8au, 0x00000c8au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ee1u, + 0x000200f8u, 0x00000ed5u, 0x0008004fu, 0x0000001bu, 0x00000ed8u, 0x00000cceu, 0x00000cceu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ee1u, 0x000200f8u, 0x00000ed1u, 0x0008004fu, 0x0000001bu, + 0x00000ed4u, 0x00001411u, 0x00001411u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ee1u, + 0x000200f8u, 0x00000ee1u, 0x000d00f5u, 0x0000001bu, 0x00001469u, 0x00001476u, 0x00000ecbu, 0x00000ed4u, + 0x00000ed1u, 0x00000ed8u, 0x00000ed5u, 0x00000edcu, 0x00000ed9u, 0x00000ee0u, 0x00000eddu, 0x000400a8u, + 0x00000034u, 0x00000ee5u, 0x0000137au, 0x000400a8u, 0x00000034u, 0x00000ee6u, 0x00000ee5u, 0x000300f7u, + 0x00000efbu, 0x00000000u, 0x000400fau, 0x00000ee6u, 0x00000ee7u, 0x00000efbu, 0x000200f8u, 0x00000ee7u, + 0x00050051u, 0x00000008u, 0x00000ee9u, 0x0000188bu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00000eeau, + 0x00000ee9u, 0x0004007cu, 0x00000017u, 0x00000eebu, 0x00000eeau, 0x000500aau, 0x00000034u, 0x00000eecu, + 0x00000eebu, 0x000000aeu, 0x000300f7u, 0x00000ef3u, 0x00000000u, 0x000400fau, 0x00000eecu, 0x00000eedu, + 0x00000ef3u, 0x000200f8u, 0x00000eedu, 0x00050051u, 0x00000008u, 0x00000eefu, 0x0000188bu, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00000ef0u, 0x00000eefu, 0x0004007cu, 0x00000017u, 0x00000ef1u, 0x00000ef0u, + 0x000500aau, 0x00000034u, 0x00000ef2u, 0x00000ef1u, 0x000000aeu, 0x000200f9u, 0x00000ef3u, 0x000200f8u, + 0x00000ef3u, 0x000700f5u, 0x00000034u, 0x00000ef4u, 0x00000eecu, 0x00000ee7u, 0x00000ef2u, 0x00000eedu, + 0x000300f7u, 0x00000ef9u, 0x00000000u, 0x000400fau, 0x00000ef4u, 0x00000ef5u, 0x00000ef9u, 0x000200f8u, + 0x00000ef5u, 0x00050051u, 0x00000008u, 0x00000ef7u, 0x00001411u, 0x00000003u, 0x000500aau, 0x00000034u, + 0x00000ef8u, 0x00000ef7u, 0x000001d2u, 0x000200f9u, 0x00000ef9u, 0x000200f8u, 0x00000ef9u, 0x000700f5u, + 0x00000034u, 0x00000efau, 0x00000ef4u, 0x00000ef3u, 0x00000ef8u, 0x00000ef5u, 0x000200f9u, 0x00000efbu, + 0x000200f8u, 0x00000efbu, 0x000700f5u, 0x00000034u, 0x00000efcu, 0x00000ee5u, 0x00000ee1u, 0x00000efau, + 0x00000ef9u, 0x000300f7u, 0x00000effu, 0x00000000u, 0x000400fau, 0x00000efcu, 0x00000efdu, 0x00000effu, + 0x000200f8u, 0x00000efdu, 0x000200f9u, 0x00000f85u, 0x000200f8u, 0x00000effu, 0x00050051u, 0x00000008u, + 0x00000f02u, 0x0000188bu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00000f03u, 0x00000f02u, 0x0004007cu, + 0x00000017u, 0x00000f04u, 0x00000f03u, 0x000300f7u, 0x00000f0fu, 0x00000000u, 0x000b00fbu, 0x00000f04u, + 0x00000f0fu, 0x00000000u, 0x00000f05u, 0x00000001u, 0x00000f08u, 0x00000002u, 0x00000f0bu, 0x00000003u, + 0x00000f0eu, 0x000200f8u, 0x00000f0eu, 0x000200f9u, 0x00000f0fu, 0x000200f8u, 0x00000f0bu, 0x000200f9u, + 0x00000f0fu, 0x000200f8u, 0x00000f08u, 0x00050051u, 0x00000008u, 0x00000f0au, 0x00000c88u, 0x00000003u, + 0x000200f9u, 0x00000f0fu, 0x000200f8u, 0x00000f05u, 0x00050051u, 0x00000008u, 0x00000f07u, 0x00001411u, + 0x00000003u, 0x000200f9u, 0x00000f0fu, 0x000200f8u, 0x00000f0fu, 0x000d00f5u, 0x00000008u, 0x00001413u, + 0x00001422u, 0x00000effu, 0x00000f07u, 0x00000f05u, 0x00000f0au, 0x00000f08u, 0x000008f8u, 0x00000f0bu, + 0x000001edu, 0x00000f0eu, 0x00050051u, 0x00000008u, 0x00000f11u, 0x0000188bu, 0x00000003u, 0x00040071u, + 0x00000006u, 0x00000f12u, 0x00000f11u, 0x0004007cu, 0x00000017u, 0x00000f13u, 0x00000f12u, 0x000300f7u, + 0x00000f1du, 0x00000000u, 0x000b00fbu, 0x00000f13u, 0x00000f1du, 0x00000000u, 0x00000f14u, 0x00000001u, + 0x00000f18u, 0x00000002u, 0x00000f1bu, 0x00000003u, 0x00000f1cu, 0x000200f8u, 0x00000f1cu, 0x000200f9u, + 0x00000f1du, 0x000200f8u, 0x00000f1bu, 0x000200f9u, 0x00000f1du, 0x000200f8u, 0x00000f18u, 0x000200f9u, + 0x00000f1du, 0x000200f8u, 0x00000f14u, 0x000400c8u, 0x00000008u, 0x00000f16u, 0x00001413u, 0x000500c7u, + 0x00000008u, 0x00000f17u, 0x00000f16u, 0x000001d2u, 0x000200f9u, 0x00000f1du, 0x000200f8u, 0x00000f1du, + 0x000d00f5u, 0x00000008u, 0x0000143cu, 0x0000144cu, 0x00000f0fu, 0x00000f17u, 0x00000f14u, 0x00001351u, + 0x00000f18u, 0x000001d2u, 0x00000f1bu, 0x000001edu, 0x00000f1cu, 0x000500c2u, 0x00000008u, 0x00000f1fu, + 0x00001413u, 0x00000204u, 0x000500c2u, 0x00000008u, 0x00000f21u, 0x0000143cu, 0x00000204u, 0x000500aau, + 0x00000034u, 0x00000f26u, 0x00000f13u, 0x000000b8u, 0x000300f7u, 0x00000f32u, 0x00000000u, 0x000400fau, + 0x00000f26u, 0x00000f27u, 0x00000f32u, 0x000200f8u, 0x00000f27u, 0x00050051u, 0x00000008u, 0x00000f2au, + 0x00001384u, 0x00000000u, 0x000500c2u, 0x00000008u, 0x00000f2bu, 0x00000f1fu, 0x00000f2au, 0x000500c7u, + 0x00000008u, 0x00000f2cu, 0x00000f2bu, 0x00000214u, 0x00050051u, 0x00000008u, 0x00000f2fu, 0x00001384u, + 0x00000001u, 0x000500c2u, 0x00000008u, 0x00000f30u, 0x00000f21u, 0x00000f2fu, 0x000500c5u, 0x00000008u, + 0x00000f31u, 0x00000f30u, 0x00000204u, 0x000200f9u, 0x00000f32u, 0x000200f8u, 0x00000f32u, 0x000700f5u, + 0x00000008u, 0x000014bau, 0x00000f21u, 0x00000f1du, 0x00000f31u, 0x00000f27u, 0x000700f5u, 0x00000008u, + 0x0000148fu, 0x00000f1fu, 0x00000f1du, 0x00000f2cu, 0x00000f27u, 0x00040071u, 0x0000021fu, 0x00000f34u, + 0x00001469u, 0x0004007cu, 0x0000021bu, 0x00000f35u, 0x00000f34u, 0x00040071u, 0x0000000au, 0x00000f37u, + 0x0000148fu, 0x0004007cu, 0x0000000bu, 0x00000f38u, 0x00000f37u, 0x00060050u, 0x0000021bu, 0x00000f39u, + 0x00000f38u, 0x00000f38u, 0x00000f38u, 0x00050084u, 0x0000021bu, 0x00000f3au, 0x00000f35u, 0x00000f39u, + 0x00040071u, 0x0000021fu, 0x00000f3cu, 0x00001496u, 0x0004007cu, 0x0000021bu, 0x00000f3du, 0x00000f3cu, + 0x00040071u, 0x0000000au, 0x00000f3fu, 0x000014bau, 0x0004007cu, 0x0000000bu, 0x00000f40u, 0x00000f3fu, + 0x00050080u, 0x0000000bu, 0x00000f41u, 0x00000f40u, 0x0000022du, 0x00060050u, 0x0000021bu, 0x00000f42u, + 0x00000f41u, 0x00000f41u, 0x00000f41u, 0x00050084u, 0x0000021bu, 0x00000f43u, 0x00000f3du, 0x00000f42u, + 0x00050080u, 0x0000021bu, 0x00000f44u, 0x00000f3au, 0x00000f43u, 0x000500a6u, 0x00000034u, 0x00000f48u, + 0x0000029cu, 0x00000bdbu, 0x000300f7u, 0x00000f81u, 0x00000000u, 0x000400fau, 0x00000f48u, 0x00000f49u, + 0x00000f4fu, 0x000200f8u, 0x00000f4fu, 0x00040071u, 0x00000006u, 0x00000f51u, 0x0000148fu, 0x0004007cu, + 0x00000017u, 0x00000f52u, 0x00000f51u, 0x000500c3u, 0x00000017u, 0x00000f53u, 0x00000f52u, 0x000000bbu, + 0x00040071u, 0x00000006u, 0x00000f55u, 0x000014bau, 0x0004007cu, 0x00000017u, 0x00000f56u, 0x00000f55u, + 0x000500c3u, 0x00000017u, 0x00000f57u, 0x00000f56u, 0x000000bbu, 0x00050080u, 0x00000017u, 0x00000f58u, + 0x00000f53u, 0x00000f57u, 0x00050080u, 0x00000017u, 0x00000f59u, 0x00000f58u, 0x000000b8u, 0x000500c3u, + 0x0000021bu, 0x00000f5cu, 0x00000f44u, 0x00001882u, 0x000500c7u, 0x0000021bu, 0x00000f5fu, 0x00000f5cu, + 0x00001883u, 0x0004003du, 0x00000252u, 0x00000f60u, 0x00000254u, 0x000500c4u, 0x00000017u, 0x00000f62u, + 0x00000f59u, 0x000000d6u, 0x00050051u, 0x0000000bu, 0x00000f64u, 0x00000f5fu, 0x00000000u, 0x00040072u, + 0x00000017u, 0x00000f65u, 0x00000f64u, 0x000500c5u, 0x00000017u, 0x00000f66u, 0x00000f62u, 0x00000f65u, + 0x0005005fu, 0x0000025du, 0x00000f67u, 0x00000f60u, 0x00000f66u, 0x00050051u, 0x00000006u, 0x00000f68u, + 0x00000f67u, 0x00000000u, 0x00040071u, 0x00000008u, 0x00000f69u, 0x00000f68u, 0x00050051u, 0x0000000bu, + 0x00000f6fu, 0x00000f5fu, 0x00000001u, 0x00040072u, 0x00000017u, 0x00000f70u, 0x00000f6fu, 0x000500c5u, + 0x00000017u, 0x00000f71u, 0x00000f62u, 0x00000f70u, 0x0005005fu, 0x0000025du, 0x00000f72u, 0x00000f60u, + 0x00000f71u, 0x00050051u, 0x00000006u, 0x00000f73u, 0x00000f72u, 0x00000000u, 0x00040071u, 0x00000008u, + 0x00000f74u, 0x00000f73u, 0x00050051u, 0x0000000bu, 0x00000f7au, 0x00000f5fu, 0x00000002u, 0x00040072u, + 0x00000017u, 0x00000f7bu, 0x00000f7au, 0x000500c5u, 0x00000017u, 0x00000f7cu, 0x00000f62u, 0x00000f7bu, + 0x0005005fu, 0x0000025du, 0x00000f7du, 0x00000f60u, 0x00000f7cu, 0x00050051u, 0x00000006u, 0x00000f7eu, + 0x00000f7du, 0x00000000u, 0x00040071u, 0x00000008u, 0x00000f7fu, 0x00000f7eu, 0x00060050u, 0x0000001bu, + 0x00001886u, 0x00000f69u, 0x00000f74u, 0x00000f7fu, 0x000200f9u, 0x00000f81u, 0x000200f8u, 0x00000f49u, + 0x000500c3u, 0x0000021bu, 0x00000f4cu, 0x00000f44u, 0x00001880u, 0x00040072u, 0x0000012du, 0x00000f4du, + 0x00000f4cu, 0x0004007cu, 0x0000001bu, 0x00000f4eu, 0x00000f4du, 0x000200f9u, 0x00000f81u, 0x000200f8u, + 0x00000f81u, 0x000700f5u, 0x0000001bu, 0x000014bbu, 0x00000f4eu, 0x00000f49u, 0x00001886u, 0x00000f4fu, + 0x000500c7u, 0x0000001bu, 0x00000f84u, 0x000014bbu, 0x00001881u, 0x000200f9u, 0x00000f85u, 0x000200f8u, + 0x00000f85u, 0x000900f5u, 0x0000001bu, 0x00001818u, 0x00001476u, 0x00000ec9u, 0x00001469u, 0x00000efdu, + 0x000014bbu, 0x00000f81u, 0x000900f5u, 0x00000008u, 0x000017fdu, 0x0000144cu, 0x00000ec9u, 0x0000144cu, + 0x00000efdu, 0x000014bau, 0x00000f81u, 0x000900f5u, 0x00000008u, 0x000017e2u, 0x00001422u, 0x00000ec9u, + 0x00001422u, 0x00000efdu, 0x0000148fu, 0x00000f81u, 0x000900f5u, 0x0000001bu, 0x000014bcu, 0x00001496u, + 0x00000ec9u, 0x00001469u, 0x00000efdu, 0x00000f84u, 0x00000f81u, 0x000300f7u, 0x00000c4eu, 0x00000000u, + 0x000400fau, 0x00000bf7u, 0x00000c48u, 0x00000c4eu, 0x000200f8u, 0x00000c48u, 0x00040071u, 0x000003afu, + 0x00000c4au, 0x000014bcu, 0x0004007cu, 0x00000018u, 0x00000c4bu, 0x00000c4au, 0x00060050u, 0x00000018u, + 0x00000f8eu, 0x00000bc7u, 0x00000bc7u, 0x00000bc7u, 0x000500c3u, 0x00000018u, 0x00000f8fu, 0x00000f8eu, + 0x00000104u, 0x000500c7u, 0x00000018u, 0x00000f91u, 0x00000f8fu, 0x0000187bu, 0x000500c7u, 0x00000018u, + 0x00000f94u, 0x00000c4bu, 0x0000187cu, 0x00050080u, 0x00000018u, 0x00000f96u, 0x00000f94u, 0x0000187du, + 0x000500adu, 0x00000114u, 0x00000f98u, 0x00000c4bu, 0x00000113u, 0x000600a9u, 0x00000018u, 0x00000f99u, + 0x00000f98u, 0x00000110u, 0x00000f96u, 0x000500c7u, 0x00000018u, 0x00000f9du, 0x00000c4bu, 0x0000187bu, + 0x00050082u, 0x00000018u, 0x00000f9eu, 0x00000f91u, 0x00000f9du, 0x000500c3u, 0x00000018u, 0x00000fa0u, + 0x00000f9eu, 0x0000187eu, 0x00050082u, 0x00000018u, 0x00000fa3u, 0x00000f99u, 0x00000c4bu, 0x000500c7u, + 0x00000018u, 0x00000fa7u, 0x00000fa3u, 0x00000fa0u, 0x00050080u, 0x00000018u, 0x00000fa8u, 0x00000c4bu, + 0x00000fa7u, 0x000500c7u, 0x00000018u, 0x00000fabu, 0x00000fa8u, 0x00000110u, 0x00040072u, 0x0000012du, + 0x00000facu, 0x00000fabu, 0x0004007cu, 0x0000001bu, 0x00000fadu, 0x00000facu, 0x000200f9u, 0x00000c4eu, + 0x000200f8u, 0x00000c4eu, 0x000700f5u, 0x0000001bu, 0x000014dbu, 0x000014bcu, 0x00000f85u, 0x00000fadu, + 0x00000c48u, 0x00040071u, 0x00000006u, 0x00000c54u, 0x00000ca3u, 0x0004007cu, 0x00000017u, 0x00000c55u, + 0x00000c54u, 0x000300f7u, 0x00000fc6u, 0x00000000u, 0x000b00fbu, 0x00000c55u, 0x00000fc6u, 0x00000000u, + 0x00000fb2u, 0x00000001u, 0x00000fbeu, 0x00000002u, 0x00000fc3u, 0x00000003u, 0x00000fc4u, 0x000200f8u, + 0x00000fc4u, 0x000200f9u, 0x00000fc6u, 0x000200f8u, 0x00000fc3u, 0x000200f9u, 0x00000fc6u, 0x000200f8u, + 0x00000fbeu, 0x00050080u, 0x00000017u, 0x00000fc1u, 0x00001374u, 0x00000c07u, 0x000500c7u, 0x00000017u, + 0x00000fc2u, 0x00000fc1u, 0x000000cau, 0x000200f9u, 0x00000fc6u, 0x000200f8u, 0x00000fb2u, 0x000300f7u, + 0x00000fbdu, 0x00000000u, 0x000400fau, 0x0000137au, 0x00000fb4u, 0x00000fb9u, 0x000200f8u, 0x00000fb9u, + 0x00050082u, 0x00000017u, 0x00000fbbu, 0x00001374u, 0x000000b8u, 0x000500c7u, 0x00000017u, 0x00000fbcu, + 0x00000fbbu, 0x000000cau, 0x000200f9u, 0x00000fbdu, 0x000200f8u, 0x00000fb4u, 0x00050080u, 0x00000017u, + 0x00000fb7u, 0x00000c07u, 0x00001374u, 0x0007000cu, 0x00000017u, 0x00000fb8u, 0x00000001u, 0x00000027u, + 0x000000cau, 0x00000fb7u, 0x000200f9u, 0x00000fbdu, 0x000200f8u, 0x00000fbdu, 0x000700f5u, 0x00000017u, + 0x000014d9u, 0x00000fb8u, 0x00000fb4u, 0x00000fbcu, 0x00000fb9u, 0x000200f9u, 0x00000fc6u, 0x000200f8u, + 0x00000fc6u, 0x000d00f5u, 0x00000017u, 0x000014d8u, 0x000000aeu, 0x00000c4eu, 0x000014d9u, 0x00000fbdu, + 0x00000fc2u, 0x00000fbeu, 0x000000cau, 0x00000fc3u, 0x00000c07u, 0x00000fc4u, 0x000500c4u, 0x00000017u, + 0x00000c5bu, 0x000014d8u, 0x000000c4u, 0x00040072u, 0x0000012cu, 0x00000c5cu, 0x00000c5bu, 0x0004007cu, + 0x00000008u, 0x00000c5du, 0x00000c5cu, 0x00050051u, 0x00000008u, 0x00000c5eu, 0x000014dbu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00000c5fu, 0x000014dbu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00000c60u, + 0x000014dbu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00000c61u, 0x00000c5eu, 0x00000c5fu, 0x00000c60u, + 0x00000c5du, 0x000300f7u, 0x00000fd4u, 0x00000000u, 0x000400fau, 0x00000675u, 0x00000fc9u, 0x00000fd2u, + 0x000200f8u, 0x00000fd2u, 0x000200f9u, 0x00000fd4u, 0x000200f8u, 0x00000fc9u, 0x00060052u, 0x00000009u, + 0x000012afu, 0x00000c5eu, 0x00001346u, 0x00000000u, 0x00060052u, 0x00000009u, 0x000012b1u, 0x00000c5fu, + 0x000012afu, 0x00000001u, 0x00060052u, 0x00000009u, 0x000012b3u, 0x00000c60u, 0x000012b1u, 0x00000002u, + 0x000200f9u, 0x00000fd4u, 0x000200f8u, 0x00000fd4u, 0x000700f5u, 0x00000009u, 0x00001506u, 0x000012b3u, + 0x00000fc9u, 0x00000c61u, 0x00000fd2u, 0x000300f7u, 0x00000c70u, 0x00000000u, 0x000400fau, 0x00000be3u, + 0x00000c64u, 0x00000c6cu, 0x000200f8u, 0x00000c6cu, 0x000300f7u, 0x00000c6fu, 0x00000000u, 0x000400fau, + 0x00000574u, 0x00000c6du, 0x00000c6fu, 0x000200f8u, 0x00000c6du, 0x000300f7u, 0x00001051u, 0x00000000u, + 0x000700fbu, 0x00000375u, 0x00001051u, 0x00000002u, 0x0000101eu, 0x00000003u, 0x0000103bu, 0x000200f8u, + 0x0000103bu, 0x0007004fu, 0x00000036u, 0x0000103du, 0x00001506u, 0x00001506u, 0x00000000u, 0x00000003u, + 0x00040071u, 0x00000078u, 0x0000103eu, 0x0000103du, 0x00050051u, 0x00000006u, 0x00001040u, 0x0000103eu, + 0x00000000u, 0x000500c4u, 0x00000006u, 0x00001041u, 0x00001040u, 0x000003b3u, 0x00050051u, 0x00000006u, + 0x00001043u, 0x0000103eu, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00001044u, 0x00001041u, 0x00001043u, + 0x000500c7u, 0x00000006u, 0x00001046u, 0x00001044u, 0x000001bfu, 0x00050084u, 0x00000006u, 0x00001047u, + 0x00001046u, 0x000001c7u, 0x000500c2u, 0x00000006u, 0x00001049u, 0x00001044u, 0x00000173u, 0x00040071u, + 0x0000000au, 0x0000104au, 0x00001049u, 0x000500c7u, 0x00000006u, 0x0000104cu, 0x00001044u, 0x000001c7u, + 0x000500c4u, 0x00000006u, 0x0000104du, 0x0000104cu, 0x00000173u, 0x000500c5u, 0x00000006u, 0x0000104fu, + 0x0000104du, 0x00001047u, 0x00040071u, 0x00000008u, 0x00001050u, 0x0000104fu, 0x000200f9u, 0x00001051u, + 0x000200f8u, 0x0000101eu, 0x00050051u, 0x00000008u, 0x00001020u, 0x00001506u, 0x00000003u, 0x000500c2u, + 0x00000008u, 0x00001021u, 0x00001020u, 0x00000204u, 0x00050051u, 0x00000008u, 0x00001023u, 0x00001506u, + 0x00000002u, 0x000500c7u, 0x00000008u, 0x00001024u, 0x00001023u, 0x0000040eu, 0x000500c5u, 0x00000008u, + 0x00001025u, 0x00001021u, 0x00001024u, 0x00050051u, 0x00000008u, 0x00001027u, 0x00001506u, 0x00000000u, + 0x00040071u, 0x00000006u, 0x00001028u, 0x00001027u, 0x000500c7u, 0x00000006u, 0x00001029u, 0x00001028u, + 0x000003bau, 0x000500c4u, 0x00000006u, 0x0000102au, 0x00001029u, 0x00000416u, 0x00050051u, 0x00000008u, + 0x0000102cu, 0x00001506u, 0x00000001u, 0x00040071u, 0x00000006u, 0x0000102du, 0x0000102cu, 0x000500c7u, + 0x00000006u, 0x0000102eu, 0x0000102du, 0x000003bau, 0x000500c4u, 0x00000006u, 0x0000102fu, 0x0000102eu, + 0x000001bfu, 0x000500c5u, 0x00000006u, 0x00001031u, 0x0000102au, 0x0000102fu, 0x00040071u, 0x00000006u, + 0x00001034u, 0x00001023u, 0x000500c7u, 0x00000006u, 0x00001035u, 0x00001034u, 0x000003bau, 0x000500c2u, + 0x00000006u, 0x00001036u, 0x00001035u, 0x00000423u, 0x000500c5u, 0x00000006u, 0x00001038u, 0x00001031u, + 0x00001036u, 0x00040071u, 0x0000000au, 0x0000103au, 0x00001038u, 0x000200f9u, 0x00001051u, 0x000200f8u, + 0x00001051u, 0x000900f5u, 0x00000008u, 0x000016fau, 0x00001357u, 0x00000c6du, 0x00001025u, 0x0000101eu, + 0x00001050u, 0x0000103bu, 0x000900f5u, 0x0000000au, 0x000016bcu, 0x00001354u, 0x00000c6du, 0x0000103au, + 0x0000101eu, 0x0000104au, 0x0000103bu, 0x000200f9u, 0x00000c6fu, 0x000200f8u, 0x00000c6fu, 0x000700f5u, + 0x00000008u, 0x000016dcu, 0x00001357u, 0x00000c6cu, 0x000016fau, 0x00001051u, 0x000700f5u, 0x0000000au, + 0x0000169eu, 0x00001354u, 0x00000c6cu, 0x000016bcu, 0x00001051u, 0x000200f9u, 0x00000c70u, 0x000200f8u, + 0x00000c64u, 0x00050082u, 0x00000017u, 0x00000fdcu, 0x0000014eu, 0x00000bc4u, 0x0007000cu, 0x00000017u, + 0x00000fddu, 0x00000001u, 0x0000002au, 0x00000fdcu, 0x000000b8u, 0x0006000cu, 0x00000017u, 0x00000fdfu, + 0x00000001u, 0x0000004au, 0x00000fddu, 0x00050082u, 0x00000017u, 0x00000fe0u, 0x00000153u, 0x00000fdfu, + 0x0008000cu, 0x00000017u, 0x00000fe2u, 0x00000001u, 0x0000002du, 0x00000fe0u, 0x000000aeu, 0x000000cau, + 0x00050082u, 0x00000017u, 0x00000fe4u, 0x000000c7u, 0x00000fe2u, 0x0007000cu, 0x00000017u, 0x00000fe5u, + 0x00000001u, 0x0000002au, 0x00000fe4u, 0x000000aeu, 0x000500c3u, 0x00000017u, 0x00000fe8u, 0x00000bc4u, + 0x00000fe5u, 0x000500c7u, 0x00000017u, 0x00000fe9u, 0x00000fe8u, 0x0000013bu, 0x000500c4u, 0x00000017u, + 0x00000febu, 0x00000fe2u, 0x000000d6u, 0x00050080u, 0x00000017u, 0x00000fedu, 0x00000febu, 0x00000fe9u, + 0x00040072u, 0x0000000bu, 0x00000feeu, 0x00000fedu, 0x0004007cu, 0x0000000au, 0x00000fefu, 0x00000feeu, + 0x000300f7u, 0x00000c6bu, 0x00000000u, 0x000400fau, 0x00000574u, 0x00000c69u, 0x00000c6bu, 0x000200f8u, + 0x00000c69u, 0x00040071u, 0x00000006u, 0x00000ff3u, 0x00000fefu, 0x000500c4u, 0x00000006u, 0x00000ff4u, + 0x00000ff3u, 0x00000423u, 0x000500c5u, 0x00000006u, 0x00000ff7u, 0x00000ff4u, 0x00000c03u, 0x000300f7u, + 0x00001018u, 0x00000000u, 0x000700fbu, 0x00000375u, 0x00001018u, 0x00000002u, 0x00000ff8u, 0x00000003u, + 0x0000100du, 0x000200f8u, 0x0000100du, 0x000500c2u, 0x00000006u, 0x0000100fu, 0x00000ff7u, 0x00000450u, + 0x000500c7u, 0x00000006u, 0x00001010u, 0x0000100fu, 0x000003e0u, 0x00040071u, 0x00000008u, 0x00001011u, + 0x00001010u, 0x00060052u, 0x00000009u, 0x000012bdu, 0x00001011u, 0x00001506u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00001014u, 0x00000ff7u, 0x00000173u, 0x000500c7u, 0x00000006u, 0x00001015u, 0x00001014u, + 0x000003e0u, 0x00040071u, 0x00000008u, 0x00001016u, 0x00001015u, 0x00060052u, 0x00000009u, 0x000012bfu, + 0x00001016u, 0x000012bdu, 0x00000003u, 0x000200f9u, 0x00001018u, 0x000200f8u, 0x00000ff8u, 0x000500c2u, + 0x00000006u, 0x00000ffau, 0x00000ff7u, 0x00000450u, 0x000500c7u, 0x00000006u, 0x00000ffbu, 0x00000ffau, + 0x000003bau, 0x00040071u, 0x00000008u, 0x00000ffcu, 0x00000ffbu, 0x000500c2u, 0x00000006u, 0x00000fffu, + 0x00000ff7u, 0x00000456u, 0x000500c7u, 0x00000006u, 0x00001000u, 0x00000fffu, 0x000003bau, 0x00040071u, + 0x00000008u, 0x00001001u, 0x00001000u, 0x000500c2u, 0x00000006u, 0x00001004u, 0x00000ff7u, 0x0000019bu, + 0x000500c7u, 0x00000006u, 0x00001005u, 0x00001004u, 0x000003bau, 0x00040071u, 0x00000008u, 0x00001006u, + 0x00001005u, 0x000500c7u, 0x00000006u, 0x00001009u, 0x00000ff7u, 0x00000461u, 0x000500c4u, 0x00000006u, + 0x0000100au, 0x00001009u, 0x00000456u, 0x00040071u, 0x00000008u, 0x0000100bu, 0x0000100au, 0x00070050u, + 0x00000009u, 0x00001887u, 0x00000ffcu, 0x00001001u, 0x00001006u, 0x0000100bu, 0x000200f9u, 0x00001018u, + 0x000200f8u, 0x00001018u, 0x000900f5u, 0x00000009u, 0x0000163eu, 0x00001506u, 0x00000c69u, 0x00001887u, + 0x00000ff8u, 0x000012bfu, 0x0000100du, 0x000200f9u, 0x00000c6bu, 0x000200f8u, 0x00000c6bu, 0x000700f5u, + 0x00000009u, 0x0000163du, 0x00001506u, 0x00000c64u, 0x0000163eu, 0x00001018u, 0x000200f9u, 0x00000c70u, + 0x000200f8u, 0x00000c70u, 0x000700f5u, 0x00000008u, 0x000016d9u, 0x00000c90u, 0x00000c6bu, 0x000016dcu, + 0x00000c6fu, 0x000700f5u, 0x0000000au, 0x0000169bu, 0x00000fefu, 0x00000c6bu, 0x0000169eu, 0x00000c6fu, + 0x000700f5u, 0x00000009u, 0x0000163cu, 0x0000163du, 0x00000c6bu, 0x00001506u, 0x00000c6fu, 0x000600a9u, + 0x00000034u, 0x0000188cu, 0x00000be3u, 0x000002bfu, 0x000015b3u, 0x000200f9u, 0x00000c71u, 0x000200f8u, + 0x00000c71u, 0x000700f5u, 0x0000001bu, 0x0000182cu, 0x000014a1u, 0x00000c1fu, 0x00001496u, 0x00000c70u, + 0x000700f5u, 0x0000001bu, 0x00001812u, 0x00001476u, 0x00000c1fu, 0x00001818u, 0x00000c70u, 0x000700f5u, + 0x00000008u, 0x000017f7u, 0x0000144cu, 0x00000c1fu, 0x000017fdu, 0x00000c70u, 0x000700f5u, 0x00000008u, + 0x000017dcu, 0x00001422u, 0x00000c1fu, 0x000017e2u, 0x00000c70u, 0x000700f5u, 0x0000001bu, 0x000017b4u, + 0x000013f5u, 0x00000c1fu, 0x000017bcu, 0x00000c70u, 0x000700f5u, 0x0000001bu, 0x0000178du, 0x000013d7u, + 0x00000c1fu, 0x00001795u, 0x00000c70u, 0x000700f5u, 0x00000008u, 0x00001765u, 0x000013bau, 0x00000c1fu, + 0x0000176du, 0x00000c70u, 0x000700f5u, 0x00000008u, 0x0000173du, 0x0000139du, 0x00000c1fu, 0x00001745u, + 0x00000c70u, 0x000700f5u, 0x00000008u, 0x000016ccu, 0x00001357u, 0x00000c1fu, 0x000016d9u, 0x00000c70u, + 0x000700f5u, 0x0000000au, 0x0000168eu, 0x00001354u, 0x00000c1fu, 0x0000169bu, 0x00000c70u, 0x000700f5u, + 0x00000009u, 0x0000163bu, 0x00001346u, 0x00000c1fu, 0x0000163cu, 0x00000c70u, 0x000700f5u, 0x00000034u, + 0x000015c3u, 0x000015b3u, 0x00000c1fu, 0x0000188cu, 0x00000c70u, 0x000600a9u, 0x00000034u, 0x0000188du, + 0x00000c20u, 0x000002bfu, 0x00001596u, 0x000200f9u, 0x000008cbu, 0x000200f8u, 0x000008cau, 0x00060041u, + 0x000003f6u, 0x000008d2u, 0x000008d0u, 0x000000aeu, 0x000008acu, 0x0004003du, 0x00000006u, 0x000008d3u, + 0x000008d2u, 0x000300f7u, 0x00000b27u, 0x00000000u, 0x000900fbu, 0x00000375u, 0x00000b27u, 0x00000000u, + 0x00000b08u, 0x00000001u, 0x00000b09u, 0x00000002u, 0x00000b10u, 0x000200f8u, 0x00000b10u, 0x000500c2u, + 0x00000006u, 0x00000b12u, 0x000008d3u, 0x000000cdu, 0x000500c7u, 0x00000006u, 0x00000b13u, 0x00000b12u, + 0x000003bau, 0x000500c2u, 0x00000006u, 0x00000b15u, 0x000008d3u, 0x000000beu, 0x000500c7u, 0x00000006u, + 0x00000b16u, 0x00000b15u, 0x000003bau, 0x000500c4u, 0x00000006u, 0x00000b18u, 0x000008d3u, 0x000000bbu, + 0x000500c7u, 0x00000006u, 0x00000b19u, 0x00000b18u, 0x000003bau, 0x000500c7u, 0x00000006u, 0x00000b1bu, + 0x000008d3u, 0x000001bfu, 0x00050084u, 0x00000006u, 0x00000b1cu, 0x00000b1bu, 0x0000069fu, 0x00040071u, + 0x00000008u, 0x00000b1eu, 0x00000b13u, 0x00040071u, 0x00000008u, 0x00000b20u, 0x00000b16u, 0x00040071u, + 0x00000008u, 0x00000b22u, 0x00000b19u, 0x00040071u, 0x00000008u, 0x00000b24u, 0x00000b1cu, 0x00070050u, + 0x00000009u, 0x00000b25u, 0x00000b1eu, 0x00000b20u, 0x00000b22u, 0x00000b24u, 0x000300f7u, 0x00000b44u, + 0x00000000u, 0x000400fau, 0x00000675u, 0x00000b39u, 0x00000b42u, 0x000200f8u, 0x00000b42u, 0x000200f9u, + 0x00000b44u, 0x000200f8u, 0x00000b39u, 0x00060052u, 0x00000009u, 0x00001266u, 0x00000b1eu, 0x00001346u, + 0x00000000u, 0x00060052u, 0x00000009u, 0x00001268u, 0x00000b20u, 0x00001266u, 0x00000001u, 0x00060052u, + 0x00000009u, 0x0000126au, 0x00000b22u, 0x00001268u, 0x00000002u, 0x000200f9u, 0x00000b44u, 0x000200f8u, + 0x00000b44u, 0x000700f5u, 0x00000009u, 0x00001509u, 0x0000126au, 0x00000b39u, 0x00000b25u, 0x00000b42u, + 0x000200f9u, 0x00000b27u, 0x000200f8u, 0x00000b09u, 0x000500c7u, 0x00000006u, 0x00000b0bu, 0x000008d3u, + 0x000003e0u, 0x00040071u, 0x00000008u, 0x00000b0du, 0x00000b0bu, 0x00070050u, 0x00000009u, 0x00000b0eu, + 0x00000b0du, 0x00000b0du, 0x00000b0du, 0x00000b0du, 0x000300f7u, 0x00000b37u, 0x00000000u, 0x000400fau, + 0x00000675u, 0x00000b2cu, 0x00000b35u, 0x000200f8u, 0x00000b35u, 0x000200f9u, 0x00000b37u, 0x000200f8u, + 0x00000b2cu, 0x00060052u, 0x00000009u, 0x00001260u, 0x00000b0du, 0x00001346u, 0x00000000u, 0x00060052u, + 0x00000009u, 0x00001262u, 0x00000b0du, 0x00001260u, 0x00000001u, 0x00060052u, 0x00000009u, 0x00001264u, + 0x00000b0du, 0x00001262u, 0x00000002u, 0x000200f9u, 0x00000b37u, 0x000200f8u, 0x00000b37u, 0x000700f5u, + 0x00000009u, 0x00001508u, 0x00001264u, 0x00000b2cu, 0x00000b0eu, 0x00000b35u, 0x000200f9u, 0x00000b27u, + 0x000200f8u, 0x00000b08u, 0x000200f9u, 0x00000b27u, 0x000200f8u, 0x00000b27u, 0x000b00f5u, 0x00000034u, + 0x0000159eu, 0x00001596u, 0x000008cau, 0x000002bfu, 0x00000b08u, 0x000002bfu, 0x00000b37u, 0x000002bfu, + 0x00000b44u, 0x000b00f5u, 0x00000009u, 0x00001507u, 0x00001346u, 0x000008cau, 0x00000686u, 0x00000b08u, + 0x00001508u, 0x00000b37u, 0x00001509u, 0x00000b44u, 0x000300f7u, 0x00000b2au, 0x00000000u, 0x000400fau, + 0x00000574u, 0x00000b28u, 0x00000b2au, 0x000200f8u, 0x00000b28u, 0x000300f7u, 0x00000b7du, 0x00000000u, + 0x000700fbu, 0x00000375u, 0x00000b7du, 0x00000002u, 0x00000b4au, 0x00000003u, 0x00000b67u, 0x000200f8u, + 0x00000b67u, 0x0007004fu, 0x00000036u, 0x00000b69u, 0x00001507u, 0x00001507u, 0x00000000u, 0x00000003u, + 0x00040071u, 0x00000078u, 0x00000b6au, 0x00000b69u, 0x00050051u, 0x00000006u, 0x00000b6cu, 0x00000b6au, + 0x00000000u, 0x000500c4u, 0x00000006u, 0x00000b6du, 0x00000b6cu, 0x000003b3u, 0x00050051u, 0x00000006u, + 0x00000b6fu, 0x00000b6au, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00000b70u, 0x00000b6du, 0x00000b6fu, + 0x000500c7u, 0x00000006u, 0x00000b72u, 0x00000b70u, 0x000001bfu, 0x00050084u, 0x00000006u, 0x00000b73u, + 0x00000b72u, 0x000001c7u, 0x000500c2u, 0x00000006u, 0x00000b75u, 0x00000b70u, 0x00000173u, 0x00040071u, + 0x0000000au, 0x00000b76u, 0x00000b75u, 0x000500c7u, 0x00000006u, 0x00000b78u, 0x00000b70u, 0x000001c7u, + 0x000500c4u, 0x00000006u, 0x00000b79u, 0x00000b78u, 0x00000173u, 0x000500c5u, 0x00000006u, 0x00000b7bu, + 0x00000b79u, 0x00000b73u, 0x00040071u, 0x00000008u, 0x00000b7cu, 0x00000b7bu, 0x000200f9u, 0x00000b7du, + 0x000200f8u, 0x00000b4au, 0x00050051u, 0x00000008u, 0x00000b4cu, 0x00001507u, 0x00000003u, 0x000500c2u, + 0x00000008u, 0x00000b4du, 0x00000b4cu, 0x00000204u, 0x00050051u, 0x00000008u, 0x00000b4fu, 0x00001507u, + 0x00000002u, 0x000500c7u, 0x00000008u, 0x00000b50u, 0x00000b4fu, 0x0000040eu, 0x000500c5u, 0x00000008u, + 0x00000b51u, 0x00000b4du, 0x00000b50u, 0x00050051u, 0x00000008u, 0x00000b53u, 0x00001507u, 0x00000000u, + 0x00040071u, 0x00000006u, 0x00000b54u, 0x00000b53u, 0x000500c7u, 0x00000006u, 0x00000b55u, 0x00000b54u, + 0x000003bau, 0x000500c4u, 0x00000006u, 0x00000b56u, 0x00000b55u, 0x00000416u, 0x00050051u, 0x00000008u, + 0x00000b58u, 0x00001507u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00000b59u, 0x00000b58u, 0x000500c7u, + 0x00000006u, 0x00000b5au, 0x00000b59u, 0x000003bau, 0x000500c4u, 0x00000006u, 0x00000b5bu, 0x00000b5au, + 0x000001bfu, 0x000500c5u, 0x00000006u, 0x00000b5du, 0x00000b56u, 0x00000b5bu, 0x00040071u, 0x00000006u, + 0x00000b60u, 0x00000b4fu, 0x000500c7u, 0x00000006u, 0x00000b61u, 0x00000b60u, 0x000003bau, 0x000500c2u, + 0x00000006u, 0x00000b62u, 0x00000b61u, 0x00000423u, 0x000500c5u, 0x00000006u, 0x00000b64u, 0x00000b5du, + 0x00000b62u, 0x00040071u, 0x0000000au, 0x00000b66u, 0x00000b64u, 0x000200f9u, 0x00000b7du, 0x000200f8u, + 0x00000b7du, 0x000900f5u, 0x00000008u, 0x000016cbu, 0x00001357u, 0x00000b28u, 0x00000b51u, 0x00000b4au, + 0x00000b7cu, 0x00000b67u, 0x000900f5u, 0x0000000au, 0x0000168du, 0x00001354u, 0x00000b28u, 0x00000b66u, + 0x00000b4au, 0x00000b76u, 0x00000b67u, 0x000200f9u, 0x00000b2au, 0x000200f8u, 0x00000b2au, 0x000700f5u, + 0x00000008u, 0x000016c7u, 0x00001357u, 0x00000b27u, 0x000016cbu, 0x00000b7du, 0x000700f5u, 0x0000000au, + 0x00001689u, 0x00001354u, 0x00000b27u, 0x0000168du, 0x00000b7du, 0x000200f9u, 0x000008cbu, 0x000200f8u, + 0x000008cbu, 0x000700f5u, 0x0000001bu, 0x00001826u, 0x000014a1u, 0x00000b2au, 0x0000182cu, 0x00000c71u, + 0x000700f5u, 0x0000001bu, 0x0000180cu, 0x00001476u, 0x00000b2au, 0x00001812u, 0x00000c71u, 0x000700f5u, + 0x00000008u, 0x000017f1u, 0x0000144cu, 0x00000b2au, 0x000017f7u, 0x00000c71u, 0x000700f5u, 0x00000008u, + 0x000017d6u, 0x00001422u, 0x00000b2au, 0x000017dcu, 0x00000c71u, 0x000700f5u, 0x0000001bu, 0x000017aeu, + 0x000013f5u, 0x00000b2au, 0x000017b4u, 0x00000c71u, 0x000700f5u, 0x0000001bu, 0x00001787u, 0x000013d7u, + 0x00000b2au, 0x0000178du, 0x00000c71u, 0x000700f5u, 0x00000008u, 0x0000175fu, 0x000013bau, 0x00000b2au, + 0x00001765u, 0x00000c71u, 0x000700f5u, 0x00000008u, 0x00001737u, 0x0000139du, 0x00000b2au, 0x0000173du, + 0x00000c71u, 0x000700f5u, 0x00000008u, 0x000016c6u, 0x000016c7u, 0x00000b2au, 0x000016ccu, 0x00000c71u, + 0x000700f5u, 0x0000000au, 0x00001688u, 0x00001689u, 0x00000b2au, 0x0000168eu, 0x00000c71u, 0x000700f5u, + 0x0000001bu, 0x0000164au, 0x0000134bu, 0x00000b2au, 0x00001349u, 0x00000c71u, 0x000700f5u, 0x00000009u, + 0x00001638u, 0x00001507u, 0x00000b2au, 0x0000163bu, 0x00000c71u, 0x000700f5u, 0x00000034u, 0x000015bdu, + 0x000015b3u, 0x00000b2au, 0x000015c3u, 0x00000c71u, 0x000700f5u, 0x00000034u, 0x0000159cu, 0x0000159eu, + 0x00000b2au, 0x0000188du, 0x00000c71u, 0x000200f9u, 0x000008c0u, 0x000200f8u, 0x000008bfu, 0x00070041u, + 0x000003f6u, 0x000008c3u, 0x000000adu, 0x000000aeu, 0x000008a3u, 0x000000d3u, 0x0004003du, 0x00000006u, + 0x000008c4u, 0x000008c3u, 0x000300f7u, 0x00000a90u, 0x00000000u, 0x000b00fbu, 0x00000375u, 0x00000a90u, + 0x00000004u, 0x00000a36u, 0x00000002u, 0x00000a4du, 0x00000003u, 0x00000a6au, 0x00000001u, 0x00000a83u, + 0x000200f8u, 0x00000a83u, 0x000500c7u, 0x00000006u, 0x00000a85u, 0x0000150cu, 0x000001c7u, 0x000500c6u, + 0x00000006u, 0x00000a86u, 0x00000a85u, 0x000001c7u, 0x00050084u, 0x00000006u, 0x00000a87u, 0x00000a86u, + 0x000003b3u, 0x000500c2u, 0x00000006u, 0x00000a89u, 0x000008c4u, 0x00000a87u, 0x000500c7u, 0x00000006u, + 0x00000a8bu, 0x00000a89u, 0x000003e0u, 0x00040071u, 0x00000008u, 0x00000a8du, 0x00000a8bu, 0x00070050u, + 0x00000009u, 0x00000a8eu, 0x00000a8du, 0x00000a8du, 0x00000a8du, 0x00000a8du, 0x000300f7u, 0x00000ac7u, + 0x00000000u, 0x000400fau, 0x00000675u, 0x00000abcu, 0x00000ac5u, 0x000200f8u, 0x00000ac5u, 0x000200f9u, + 0x00000ac7u, 0x000200f8u, 0x00000abcu, 0x00060052u, 0x00000009u, 0x00001253u, 0x00000a8du, 0x00001346u, + 0x00000000u, 0x00060052u, 0x00000009u, 0x00001255u, 0x00000a8du, 0x00001253u, 0x00000001u, 0x00060052u, + 0x00000009u, 0x00001257u, 0x00000a8du, 0x00001255u, 0x00000002u, 0x000200f9u, 0x00000ac7u, 0x000200f8u, + 0x00000ac7u, 0x000700f5u, 0x00000009u, 0x00001514u, 0x00001257u, 0x00000abcu, 0x00000a8eu, 0x00000ac5u, + 0x000200f9u, 0x00000a90u, 0x000200f8u, 0x00000a6au, 0x000500c7u, 0x00000006u, 0x00000a6cu, 0x0000150cu, + 0x000001bfu, 0x000500c6u, 0x00000006u, 0x00000a6du, 0x00000a6cu, 0x000001bfu, 0x00050084u, 0x00000006u, + 0x00000a6eu, 0x00000a6du, 0x000003fcu, 0x000500c2u, 0x00000006u, 0x00000a70u, 0x000008c4u, 0x00000a6eu, + 0x000500c7u, 0x00000006u, 0x00000a72u, 0x00000a70u, 0x000006fau, 0x000500c2u, 0x00000006u, 0x00000a74u, + 0x00000a72u, 0x000003b3u, 0x000500c7u, 0x00000006u, 0x00000a75u, 0x00000a74u, 0x000003e0u, 0x000500c2u, + 0x00000006u, 0x00000a77u, 0x00000a72u, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000a78u, 0x00000a77u, + 0x000003e0u, 0x00040071u, 0x00000008u, 0x00000a7au, 0x00000a75u, 0x00040071u, 0x00000008u, 0x00000a80u, + 0x00000a78u, 0x00070050u, 0x00000009u, 0x00000a81u, 0x00000a7au, 0x00000a7au, 0x00000a7au, 0x00000a80u, + 0x000300f7u, 0x00000abau, 0x00000000u, 0x000400fau, 0x00000675u, 0x00000aafu, 0x00000ab8u, 0x000200f8u, + 0x00000ab8u, 0x000200f9u, 0x00000abau, 0x000200f8u, 0x00000aafu, 0x00060052u, 0x00000009u, 0x0000124du, + 0x00000a7au, 0x00001346u, 0x00000000u, 0x00060052u, 0x00000009u, 0x0000124fu, 0x00000a7au, 0x0000124du, + 0x00000001u, 0x00060052u, 0x00000009u, 0x00001251u, 0x00000a7au, 0x0000124fu, 0x00000002u, 0x000200f9u, + 0x00000abau, 0x000200f8u, 0x00000abau, 0x000700f5u, 0x00000009u, 0x00001513u, 0x00001251u, 0x00000aafu, + 0x00000a81u, 0x00000ab8u, 0x000200f9u, 0x00000a90u, 0x000200f8u, 0x00000a4du, 0x000500c7u, 0x00000006u, + 0x00000a4fu, 0x0000150cu, 0x000001bfu, 0x000500c6u, 0x00000006u, 0x00000a50u, 0x00000a4fu, 0x000001bfu, + 0x00050084u, 0x00000006u, 0x00000a51u, 0x00000a50u, 0x000003fcu, 0x000500c2u, 0x00000006u, 0x00000a53u, + 0x000008c4u, 0x00000a51u, 0x000500c2u, 0x00000006u, 0x00000a55u, 0x00000a53u, 0x000003b3u, 0x000500c7u, + 0x00000006u, 0x00000a56u, 0x00000a55u, 0x000003bau, 0x000500c2u, 0x00000006u, 0x00000a58u, 0x00000a53u, + 0x000001c7u, 0x000500c7u, 0x00000006u, 0x00000a59u, 0x00000a58u, 0x000003bau, 0x000500c4u, 0x00000006u, + 0x00000a5bu, 0x00000a53u, 0x00000173u, 0x000500c7u, 0x00000006u, 0x00000a5cu, 0x00000a5bu, 0x000003bau, + 0x000500c7u, 0x00000006u, 0x00000a5eu, 0x00000a53u, 0x000001bfu, 0x00050084u, 0x00000006u, 0x00000a5fu, + 0x00000a5eu, 0x0000069fu, 0x00040071u, 0x00000008u, 0x00000a61u, 0x00000a56u, 0x00040071u, 0x00000008u, + 0x00000a63u, 0x00000a59u, 0x00040071u, 0x00000008u, 0x00000a65u, 0x00000a5cu, 0x00040071u, 0x00000008u, + 0x00000a67u, 0x00000a5fu, 0x00070050u, 0x00000009u, 0x00000a68u, 0x00000a61u, 0x00000a63u, 0x00000a65u, + 0x00000a67u, 0x000300f7u, 0x00000aadu, 0x00000000u, 0x000400fau, 0x00000675u, 0x00000aa2u, 0x00000aabu, + 0x000200f8u, 0x00000aabu, 0x000200f9u, 0x00000aadu, 0x000200f8u, 0x00000aa2u, 0x00060052u, 0x00000009u, + 0x00001247u, 0x00000a61u, 0x00001346u, 0x00000000u, 0x00060052u, 0x00000009u, 0x00001249u, 0x00000a63u, + 0x00001247u, 0x00000001u, 0x00060052u, 0x00000009u, 0x0000124bu, 0x00000a65u, 0x00001249u, 0x00000002u, + 0x000200f9u, 0x00000aadu, 0x000200f8u, 0x00000aadu, 0x000700f5u, 0x00000009u, 0x00001512u, 0x0000124bu, + 0x00000aa2u, 0x00000a68u, 0x00000aabu, 0x000200f9u, 0x00000a90u, 0x000200f8u, 0x00000a36u, 0x000500c2u, + 0x00000006u, 0x00000a38u, 0x000008c4u, 0x000003fbu, 0x000500c7u, 0x00000006u, 0x00000a39u, 0x00000a38u, + 0x000003e0u, 0x000500c2u, 0x00000006u, 0x00000a3bu, 0x000008c4u, 0x000003fcu, 0x000500c7u, 0x00000006u, + 0x00000a3cu, 0x00000a3bu, 0x000003e0u, 0x000500c2u, 0x00000006u, 0x00000a3eu, 0x000008c4u, 0x000003b3u, + 0x000500c7u, 0x00000006u, 0x00000a3fu, 0x00000a3eu, 0x000003e0u, 0x000500c2u, 0x00000006u, 0x00000a41u, + 0x000008c4u, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000a42u, 0x00000a41u, 0x000003e0u, 0x00040071u, + 0x00000008u, 0x00000a44u, 0x00000a39u, 0x00040071u, 0x00000008u, 0x00000a46u, 0x00000a3cu, 0x00040071u, + 0x00000008u, 0x00000a48u, 0x00000a3fu, 0x00040071u, 0x00000008u, 0x00000a4au, 0x00000a42u, 0x00070050u, + 0x00000009u, 0x00000a4bu, 0x00000a44u, 0x00000a46u, 0x00000a48u, 0x00000a4au, 0x000300f7u, 0x00000aa0u, + 0x00000000u, 0x000400fau, 0x00000675u, 0x00000a95u, 0x00000a9eu, 0x000200f8u, 0x00000a9eu, 0x000200f9u, + 0x00000aa0u, 0x000200f8u, 0x00000a95u, 0x00060052u, 0x00000009u, 0x00001241u, 0x00000a44u, 0x00001346u, + 0x00000000u, 0x00060052u, 0x00000009u, 0x00001243u, 0x00000a46u, 0x00001241u, 0x00000001u, 0x00060052u, + 0x00000009u, 0x00001245u, 0x00000a48u, 0x00001243u, 0x00000002u, 0x000200f9u, 0x00000aa0u, 0x000200f8u, + 0x00000aa0u, 0x000700f5u, 0x00000009u, 0x00001511u, 0x00001245u, 0x00000a95u, 0x00000a4bu, 0x00000a9eu, + 0x000200f9u, 0x00000a90u, 0x000200f8u, 0x00000a90u, 0x000d00f5u, 0x00000034u, 0x0000159au, 0x00001596u, + 0x000008bfu, 0x000002bfu, 0x00000aa0u, 0x000002bfu, 0x00000aadu, 0x000002bfu, 0x00000abau, 0x000002bfu, + 0x00000ac7u, 0x000d00f5u, 0x00000009u, 0x00001510u, 0x00001346u, 0x000008bfu, 0x00001511u, 0x00000aa0u, + 0x00001512u, 0x00000aadu, 0x00001513u, 0x00000abau, 0x00001514u, 0x00000ac7u, 0x000300f7u, 0x00000a93u, + 0x00000000u, 0x000400fau, 0x00000574u, 0x00000a91u, 0x00000a93u, 0x000200f8u, 0x00000a91u, 0x000300f7u, + 0x00000b00u, 0x00000000u, 0x000700fbu, 0x00000375u, 0x00000b00u, 0x00000002u, 0x00000acdu, 0x00000003u, + 0x00000aeau, 0x000200f8u, 0x00000aeau, 0x0007004fu, 0x00000036u, 0x00000aecu, 0x00001510u, 0x00001510u, + 0x00000000u, 0x00000003u, 0x00040071u, 0x00000078u, 0x00000aedu, 0x00000aecu, 0x00050051u, 0x00000006u, + 0x00000aefu, 0x00000aedu, 0x00000000u, 0x000500c4u, 0x00000006u, 0x00000af0u, 0x00000aefu, 0x000003b3u, + 0x00050051u, 0x00000006u, 0x00000af2u, 0x00000aedu, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00000af3u, + 0x00000af0u, 0x00000af2u, 0x000500c7u, 0x00000006u, 0x00000af5u, 0x00000af3u, 0x000001bfu, 0x00050084u, + 0x00000006u, 0x00000af6u, 0x00000af5u, 0x000001c7u, 0x000500c2u, 0x00000006u, 0x00000af8u, 0x00000af3u, + 0x00000173u, 0x00040071u, 0x0000000au, 0x00000af9u, 0x00000af8u, 0x000500c7u, 0x00000006u, 0x00000afbu, + 0x00000af3u, 0x000001c7u, 0x000500c4u, 0x00000006u, 0x00000afcu, 0x00000afbu, 0x00000173u, 0x000500c5u, + 0x00000006u, 0x00000afeu, 0x00000afcu, 0x00000af6u, 0x00040071u, 0x00000008u, 0x00000affu, 0x00000afeu, + 0x000200f9u, 0x00000b00u, 0x000200f8u, 0x00000acdu, 0x00050051u, 0x00000008u, 0x00000acfu, 0x00001510u, + 0x00000003u, 0x000500c2u, 0x00000008u, 0x00000ad0u, 0x00000acfu, 0x00000204u, 0x00050051u, 0x00000008u, + 0x00000ad2u, 0x00001510u, 0x00000002u, 0x000500c7u, 0x00000008u, 0x00000ad3u, 0x00000ad2u, 0x0000040eu, + 0x000500c5u, 0x00000008u, 0x00000ad4u, 0x00000ad0u, 0x00000ad3u, 0x00050051u, 0x00000008u, 0x00000ad6u, + 0x00001510u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00000ad7u, 0x00000ad6u, 0x000500c7u, 0x00000006u, + 0x00000ad8u, 0x00000ad7u, 0x000003bau, 0x000500c4u, 0x00000006u, 0x00000ad9u, 0x00000ad8u, 0x00000416u, + 0x00050051u, 0x00000008u, 0x00000adbu, 0x00001510u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00000adcu, + 0x00000adbu, 0x000500c7u, 0x00000006u, 0x00000addu, 0x00000adcu, 0x000003bau, 0x000500c4u, 0x00000006u, + 0x00000adeu, 0x00000addu, 0x000001bfu, 0x000500c5u, 0x00000006u, 0x00000ae0u, 0x00000ad9u, 0x00000adeu, + 0x00040071u, 0x00000006u, 0x00000ae3u, 0x00000ad2u, 0x000500c7u, 0x00000006u, 0x00000ae4u, 0x00000ae3u, + 0x000003bau, 0x000500c2u, 0x00000006u, 0x00000ae5u, 0x00000ae4u, 0x00000423u, 0x000500c5u, 0x00000006u, + 0x00000ae7u, 0x00000ae0u, 0x00000ae5u, 0x00040071u, 0x0000000au, 0x00000ae9u, 0x00000ae7u, 0x000200f9u, + 0x00000b00u, 0x000200f8u, 0x00000b00u, 0x000900f5u, 0x00000008u, 0x000016c5u, 0x00001357u, 0x00000a91u, + 0x00000ad4u, 0x00000acdu, 0x00000affu, 0x00000aeau, 0x000900f5u, 0x0000000au, 0x00001687u, 0x00001354u, + 0x00000a91u, 0x00000ae9u, 0x00000acdu, 0x00000af9u, 0x00000aeau, 0x000200f9u, 0x00000a93u, 0x000200f8u, + 0x00000a93u, 0x000700f5u, 0x00000008u, 0x000016bfu, 0x00001357u, 0x00000a90u, 0x000016c5u, 0x00000b00u, + 0x000700f5u, 0x0000000au, 0x00001681u, 0x00001354u, 0x00000a90u, 0x00001687u, 0x00000b00u, 0x000200f9u, + 0x000008c0u, 0x000200f8u, 0x000008c0u, 0x000700f5u, 0x0000001bu, 0x0000181eu, 0x000014a1u, 0x00000a93u, + 0x00001826u, 0x000008cbu, 0x000700f5u, 0x0000001bu, 0x00001804u, 0x00001476u, 0x00000a93u, 0x0000180cu, + 0x000008cbu, 0x000700f5u, 0x00000008u, 0x000017e9u, 0x0000144cu, 0x00000a93u, 0x000017f1u, 0x000008cbu, + 0x000700f5u, 0x00000008u, 0x000017ceu, 0x00001422u, 0x00000a93u, 0x000017d6u, 0x000008cbu, 0x000700f5u, + 0x0000001bu, 0x000017a6u, 0x000013f5u, 0x00000a93u, 0x000017aeu, 0x000008cbu, 0x000700f5u, 0x0000001bu, + 0x0000177fu, 0x000013d7u, 0x00000a93u, 0x00001787u, 0x000008cbu, 0x000700f5u, 0x00000008u, 0x00001757u, + 0x000013bau, 0x00000a93u, 0x0000175fu, 0x000008cbu, 0x000700f5u, 0x00000008u, 0x0000172fu, 0x0000139du, + 0x00000a93u, 0x00001737u, 0x000008cbu, 0x000700f5u, 0x00000008u, 0x000016beu, 0x000016bfu, 0x00000a93u, + 0x000016c6u, 0x000008cbu, 0x000700f5u, 0x0000000au, 0x00001680u, 0x00001681u, 0x00000a93u, 0x00001688u, + 0x000008cbu, 0x000700f5u, 0x0000001bu, 0x00001642u, 0x0000134bu, 0x00000a93u, 0x0000164au, 0x000008cbu, + 0x000700f5u, 0x00000009u, 0x00001635u, 0x00001510u, 0x00000a93u, 0x00001638u, 0x000008cbu, 0x000700f5u, + 0x00000034u, 0x000015b5u, 0x000015b3u, 0x00000a93u, 0x000015bdu, 0x000008cbu, 0x000700f5u, 0x00000034u, + 0x00001598u, 0x0000159au, 0x00000a93u, 0x0000159cu, 0x000008cbu, 0x000200f9u, 0x000008bau, 0x000200f8u, + 0x000008bau, 0x000700f5u, 0x0000001bu, 0x0000181du, 0x000014a1u, 0x0000088fu, 0x0000181eu, 0x000008c0u, + 0x000700f5u, 0x0000001bu, 0x00001803u, 0x00001476u, 0x0000088fu, 0x00001804u, 0x000008c0u, 0x000700f5u, + 0x00000008u, 0x000017e8u, 0x0000144cu, 0x0000088fu, 0x000017e9u, 0x000008c0u, 0x000700f5u, 0x00000008u, + 0x000017cdu, 0x00001422u, 0x0000088fu, 0x000017ceu, 0x000008c0u, 0x000700f5u, 0x0000001bu, 0x000017a5u, + 0x000013f5u, 0x0000088fu, 0x000017a6u, 0x000008c0u, 0x000700f5u, 0x0000001bu, 0x0000177eu, 0x000013d7u, + 0x0000088fu, 0x0000177fu, 0x000008c0u, 0x000700f5u, 0x00000008u, 0x00001756u, 0x000013bau, 0x0000088fu, + 0x00001757u, 0x000008c0u, 0x000700f5u, 0x00000008u, 0x0000172eu, 0x0000139du, 0x0000088fu, 0x0000172fu, + 0x000008c0u, 0x000700f5u, 0x00000008u, 0x000016bdu, 0x00001357u, 0x0000088fu, 0x000016beu, 0x000008c0u, + 0x000700f5u, 0x0000000au, 0x0000167fu, 0x00001354u, 0x0000088fu, 0x00001680u, 0x000008c0u, 0x000700f5u, + 0x0000001bu, 0x00001641u, 0x0000134bu, 0x0000088fu, 0x00001642u, 0x000008c0u, 0x000700f5u, 0x00000009u, + 0x00001634u, 0x00001346u, 0x0000088fu, 0x00001635u, 0x000008c0u, 0x000700f5u, 0x00000034u, 0x000015b4u, + 0x000015b3u, 0x0000088fu, 0x000015b5u, 0x000008c0u, 0x000700f5u, 0x00000034u, 0x00001597u, 0x00001596u, + 0x0000088fu, 0x00001598u, 0x000008c0u, 0x00050080u, 0x00000006u, 0x00000908u, 0x00001345u, 0x000000b8u, + 0x000200f9u, 0x00000891u, 0x000200f8u, 0x00000891u, 0x000200f9u, 0x0000088eu, 0x000200f8u, 0x00000890u, + 0x000200f9u, 0x0000086du, 0x000200f8u, 0x0000086du, 0x000200f9u, 0x0000086au, 0x000200f8u, 0x0000086cu, + 0x000500aeu, 0x000005a0u, 0x00001061u, 0x0000085cu, 0x00000981u, 0x0004009au, 0x00000034u, 0x00001062u, + 0x00001061u, 0x000600a9u, 0x00000034u, 0x0000188eu, 0x00001062u, 0x0000029cu, 0x0000130du, 0x000600a9u, + 0x00000034u, 0x0000188fu, 0x00001062u, 0x0000029cu, 0x000012f0u, 0x000500c2u, 0x00000006u, 0x00001066u, + 0x0000085fu, 0x0000056bu, 0x00050050u, 0x00000078u, 0x00001068u, 0x00000615u, 0x00000615u, 0x000500c7u, + 0x00000078u, 0x00001069u, 0x0000085cu, 0x00001068u, 0x00050050u, 0x000005adu, 0x0000106bu, 0x0000056bu, + 0x0000056bu, 0x000500c2u, 0x00000078u, 0x0000106cu, 0x0000085cu, 0x0000106bu, 0x00050051u, 0x00000006u, + 0x0000106eu, 0x00001069u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000106fu, 0x0000106eu, 0x0000061eu, + 0x00050051u, 0x00000006u, 0x00001071u, 0x00001069u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00001072u, + 0x0000106fu, 0x00001071u, 0x00050051u, 0x00000006u, 0x00001076u, 0x0000106cu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00001077u, 0x00001066u, 0x00001076u, 0x00050080u, 0x00000006u, 0x00001078u, 0x00000865u, + 0x00001077u, 0x00050051u, 0x00000006u, 0x0000107au, 0x0000106cu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x0000107bu, 0x00001078u, 0x0000107au, 0x000300f7u, 0x00001148u, 0x00000000u, 0x000400fau, 0x0000188fu, + 0x0000109au, 0x00001148u, 0x000200f8u, 0x0000109au, 0x000300f7u, 0x00001147u, 0x00000000u, 0x000d00fbu, + 0x00000375u, 0x00001147u, 0x00000000u, 0x0000109bu, 0x00000001u, 0x000010afu, 0x00000002u, 0x000010cbu, + 0x00000003u, 0x000010f9u, 0x00000004u, 0x00001115u, 0x000200f8u, 0x00001115u, 0x000500c7u, 0x00000006u, + 0x00001117u, 0x0000107bu, 0x000003e8u, 0x00050084u, 0x00000006u, 0x00001119u, 0x00001072u, 0x00000535u, + 0x00050080u, 0x00000006u, 0x0000111bu, 0x00001117u, 0x00001119u, 0x00040071u, 0x0000025du, 0x0000111du, + 0x000012f5u, 0x00050051u, 0x00000006u, 0x0000111fu, 0x0000111du, 0x00000000u, 0x000500c4u, 0x00000006u, + 0x00001120u, 0x0000111fu, 0x000003fbu, 0x00050051u, 0x00000006u, 0x00001122u, 0x0000111du, 0x00000001u, + 0x000500c4u, 0x00000006u, 0x00001123u, 0x00001122u, 0x000003fcu, 0x000500c5u, 0x00000006u, 0x00001124u, + 0x00001120u, 0x00001123u, 0x00050051u, 0x00000006u, 0x00001126u, 0x0000111du, 0x00000002u, 0x000500c4u, + 0x00000006u, 0x00001127u, 0x00001126u, 0x000003b3u, 0x000500c5u, 0x00000006u, 0x00001128u, 0x00001124u, + 0x00001127u, 0x00050051u, 0x00000006u, 0x0000112au, 0x0000111du, 0x00000003u, 0x000500c4u, 0x00000006u, + 0x0000112bu, 0x0000112au, 0x0000019bu, 0x000500c5u, 0x00000006u, 0x0000112cu, 0x00001128u, 0x0000112bu, + 0x00060041u, 0x000003f6u, 0x0000112fu, 0x000003f4u, 0x000000aeu, 0x0000111bu, 0x0003003eu, 0x0000112fu, + 0x0000112cu, 0x00050084u, 0x00000006u, 0x00001131u, 0x00000173u, 0x0000111bu, 0x00050051u, 0x00000008u, + 0x00001133u, 0x000012f5u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00001134u, 0x00001133u, 0x0004007cu, + 0x00000017u, 0x00001135u, 0x00001134u, 0x000500c7u, 0x00000017u, 0x00001136u, 0x00001135u, 0x000000b8u, + 0x00050084u, 0x00000017u, 0x00001137u, 0x00001136u, 0x000000beu, 0x00040072u, 0x0000012cu, 0x00001138u, + 0x00001137u, 0x0004007cu, 0x00000008u, 0x00001139u, 0x00001138u, 0x00060041u, 0x0000038au, 0x0000113au, + 0x00000395u, 0x000000aeu, 0x00001131u, 0x0003003eu, 0x0000113au, 0x00001139u, 0x00050080u, 0x00000006u, + 0x0000113du, 0x00001131u, 0x000001bfu, 0x00050051u, 0x00000008u, 0x0000113fu, 0x000012f5u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00001140u, 0x0000113fu, 0x0004007cu, 0x00000017u, 0x00001141u, 0x00001140u, + 0x000500c7u, 0x00000017u, 0x00001142u, 0x00001141u, 0x000000b8u, 0x00050084u, 0x00000017u, 0x00001143u, + 0x00001142u, 0x000000beu, 0x00040072u, 0x0000012cu, 0x00001144u, 0x00001143u, 0x0004007cu, 0x00000008u, + 0x00001145u, 0x00001144u, 0x00060041u, 0x0000038au, 0x00001146u, 0x00000395u, 0x000000aeu, 0x0000113du, + 0x0003003eu, 0x00001146u, 0x00001145u, 0x000200f9u, 0x00001147u, 0x000200f8u, 0x000010f9u, 0x000500c7u, + 0x00000006u, 0x000010fbu, 0x0000107bu, 0x0000039cu, 0x00050084u, 0x00000006u, 0x000010fdu, 0x00001072u, + 0x00000516u, 0x00050080u, 0x00000006u, 0x000010ffu, 0x000010fbu, 0x000010fdu, 0x0007004fu, 0x00000036u, + 0x00001101u, 0x000012f5u, 0x000012f5u, 0x00000000u, 0x00000003u, 0x00040071u, 0x00000078u, 0x00001102u, + 0x00001101u, 0x00050051u, 0x00000006u, 0x00001104u, 0x00001102u, 0x00000000u, 0x000500c4u, 0x00000006u, + 0x00001105u, 0x00001104u, 0x000003b3u, 0x00050051u, 0x00000006u, 0x00001107u, 0x00001102u, 0x00000001u, + 0x000500c5u, 0x00000006u, 0x00001108u, 0x00001105u, 0x00001107u, 0x000500c6u, 0x00000006u, 0x0000110au, + 0x000010ffu, 0x000001bfu, 0x00040071u, 0x0000000au, 0x0000110cu, 0x00001108u, 0x00060041u, 0x000003abu, + 0x0000110du, 0x000003a8u, 0x000000aeu, 0x0000110au, 0x0003003eu, 0x0000110du, 0x0000110cu, 0x000500c7u, + 0x00000006u, 0x00001111u, 0x00001107u, 0x000001bfu, 0x00050084u, 0x00000006u, 0x00001112u, 0x00001111u, + 0x000001c7u, 0x00040071u, 0x00000008u, 0x00001113u, 0x00001112u, 0x00060041u, 0x0000038au, 0x00001114u, + 0x00000395u, 0x000000aeu, 0x000010ffu, 0x0003003eu, 0x00001114u, 0x00001113u, 0x000200f9u, 0x00001147u, + 0x000200f8u, 0x000010cbu, 0x000500c7u, 0x00000006u, 0x000010cdu, 0x0000107bu, 0x0000039cu, 0x00050084u, + 0x00000006u, 0x000010cfu, 0x00001072u, 0x000004e3u, 0x00050080u, 0x00000006u, 0x000010d1u, 0x000010cdu, + 0x000010cfu, 0x00040071u, 0x0000025du, 0x000010d3u, 0x000012f5u, 0x0008004fu, 0x000003afu, 0x000010d5u, + 0x000010d3u, 0x000010d3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, 0x000003afu, 0x000010d7u, + 0x000010d5u, 0x00001878u, 0x00050051u, 0x00000006u, 0x000010d9u, 0x000010d7u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x000010dbu, 0x000010d7u, 0x00000001u, 0x00050051u, 0x00000006u, 0x000010ddu, 0x000010d7u, + 0x00000002u, 0x00050051u, 0x00000006u, 0x000010dfu, 0x000010d3u, 0x00000003u, 0x000500c2u, 0x00000006u, + 0x000010e0u, 0x000010dfu, 0x00000456u, 0x000500c4u, 0x00000006u, 0x000010e3u, 0x000010d9u, 0x000003b3u, + 0x000500c4u, 0x00000006u, 0x000010e6u, 0x000010dbu, 0x000001c7u, 0x000500c5u, 0x00000006u, 0x000010e7u, + 0x000010e3u, 0x000010e6u, 0x000500c2u, 0x00000006u, 0x000010eau, 0x000010ddu, 0x00000173u, 0x000500c5u, + 0x00000006u, 0x000010ebu, 0x000010e7u, 0x000010eau, 0x000500c2u, 0x00000006u, 0x000010edu, 0x000010e0u, + 0x00000173u, 0x000500c5u, 0x00000006u, 0x000010eeu, 0x000010ebu, 0x000010edu, 0x000500c6u, 0x00000006u, + 0x000010f0u, 0x000010d1u, 0x000001bfu, 0x00040071u, 0x0000000au, 0x000010f2u, 0x000010eeu, 0x00060041u, + 0x000003abu, 0x000010f3u, 0x000003a8u, 0x000000aeu, 0x000010f0u, 0x0003003eu, 0x000010f3u, 0x000010f2u, + 0x000500c7u, 0x00000006u, 0x000010f6u, 0x000010e0u, 0x000001c7u, 0x00040071u, 0x00000008u, 0x000010f7u, + 0x000010f6u, 0x00060041u, 0x0000038au, 0x000010f8u, 0x00000395u, 0x000000aeu, 0x000010d1u, 0x0003003eu, + 0x000010f8u, 0x000010f7u, 0x000200f9u, 0x00001147u, 0x000200f8u, 0x000010afu, 0x000500c7u, 0x00000006u, + 0x000010b1u, 0x0000107bu, 0x0000037cu, 0x00050084u, 0x00000006u, 0x000010b3u, 0x00001072u, 0x0000037bu, + 0x00050080u, 0x00000006u, 0x000010b5u, 0x000010b1u, 0x000010b3u, 0x000500c6u, 0x00000006u, 0x000010b7u, + 0x000010b5u, 0x000001c7u, 0x00050051u, 0x00000008u, 0x000010b9u, 0x000012f5u, 0x00000000u, 0x00060041u, + 0x0000038au, 0x000010bau, 0x00000387u, 0x000000aeu, 0x000010b7u, 0x0003003eu, 0x000010bau, 0x000010b9u, + 0x000500c7u, 0x00000006u, 0x000010bcu, 0x000010b5u, 0x000001bfu, 0x000500abu, 0x00000034u, 0x000010bdu, + 0x000010bcu, 0x0000019bu, 0x000300f7u, 0x000010cau, 0x00000000u, 0x000400fau, 0x000010bdu, 0x000010beu, + 0x000010cau, 0x000200f8u, 0x000010beu, 0x000500c2u, 0x00000006u, 0x000010c0u, 0x000010b5u, 0x000001bfu, + 0x00040071u, 0x00000006u, 0x000010c3u, 0x000010b9u, 0x0004007cu, 0x00000017u, 0x000010c4u, 0x000010c3u, + 0x000500c7u, 0x00000017u, 0x000010c5u, 0x000010c4u, 0x000000b8u, 0x00050084u, 0x00000017u, 0x000010c6u, + 0x000010c5u, 0x000000beu, 0x00040072u, 0x0000012cu, 0x000010c7u, 0x000010c6u, 0x0004007cu, 0x00000008u, + 0x000010c8u, 0x000010c7u, 0x00060041u, 0x0000038au, 0x000010c9u, 0x00000395u, 0x000000aeu, 0x000010c0u, + 0x0003003eu, 0x000010c9u, 0x000010c8u, 0x000200f9u, 0x000010cau, 0x000200f8u, 0x000010cau, 0x000200f9u, + 0x00001147u, 0x000200f8u, 0x0000109bu, 0x000500c7u, 0x00000006u, 0x0000109du, 0x0000107bu, 0x0000037cu, + 0x00050084u, 0x00000006u, 0x0000109fu, 0x00001072u, 0x0000037bu, 0x00050080u, 0x00000006u, 0x000010a1u, + 0x0000109du, 0x0000109fu, 0x000500c6u, 0x00000006u, 0x000010a3u, 0x000010a1u, 0x000001c7u, 0x00060041u, + 0x0000038au, 0x000010a4u, 0x00000387u, 0x000000aeu, 0x000010a3u, 0x0003003eu, 0x000010a4u, 0x000001edu, + 0x000500c7u, 0x00000006u, 0x000010a6u, 0x000010a1u, 0x000001bfu, 0x000500abu, 0x00000034u, 0x000010a7u, + 0x000010a6u, 0x0000019bu, 0x000300f7u, 0x000010aeu, 0x00000000u, 0x000400fau, 0x000010a7u, 0x000010a8u, + 0x000010aeu, 0x000200f8u, 0x000010a8u, 0x000500c2u, 0x00000006u, 0x000010aau, 0x000010a1u, 0x000001bfu, + 0x00050051u, 0x00000008u, 0x000010acu, 0x000012f5u, 0x00000003u, 0x00060041u, 0x0000038au, 0x000010adu, + 0x00000395u, 0x000000aeu, 0x000010aau, 0x0003003eu, 0x000010adu, 0x000010acu, 0x000200f9u, 0x000010aeu, + 0x000200f8u, 0x000010aeu, 0x000200f9u, 0x00001147u, 0x000200f8u, 0x00001147u, 0x000f00f5u, 0x00000006u, + 0x000012fau, 0x0000107bu, 0x0000109au, 0x000010a1u, 0x000010aeu, 0x000010b5u, 0x000010cau, 0x000010d1u, + 0x000010cbu, 0x000010ffu, 0x000010f9u, 0x0000111bu, 0x00001115u, 0x000200f9u, 0x00001148u, 0x000200f8u, + 0x00001148u, 0x000700f5u, 0x00000006u, 0x000012f9u, 0x0000107bu, 0x0000086cu, 0x000012fau, 0x00001147u, + 0x000300f7u, 0x0000114cu, 0x00000000u, 0x000400fau, 0x0000056du, 0x00001149u, 0x0000114cu, 0x000200f8u, + 0x00001149u, 0x000300e1u, 0x000001bfu, 0x00000570u, 0x000300f7u, 0x0000115fu, 0x00000000u, 0x000400fau, + 0x0000188fu, 0x0000114fu, 0x0000115fu, 0x000200f8u, 0x0000114fu, 0x000300f7u, 0x0000115eu, 0x00000000u, + 0x000d00fbu, 0x00000375u, 0x0000115eu, 0x00000000u, 0x00001150u, 0x00000001u, 0x00001150u, 0x00000002u, + 0x00001155u, 0x00000003u, 0x00001155u, 0x00000004u, 0x0000115au, 0x000200f8u, 0x0000115au, 0x00050080u, + 0x00000006u, 0x0000115cu, 0x000012f9u, 0x000004a1u, 0x00060041u, 0x000003f6u, 0x0000115du, 0x000003f4u, + 0x000000aeu, 0x0000115cu, 0x0003003eu, 0x0000115du, 0x000004a3u, 0x000200f9u, 0x0000115eu, 0x000200f8u, + 0x00001155u, 0x000500c6u, 0x00000006u, 0x00001157u, 0x000012f9u, 0x000001bfu, 0x00050080u, 0x00000006u, + 0x00001158u, 0x00001157u, 0x0000049bu, 0x00060041u, 0x000003abu, 0x00001159u, 0x000003a8u, 0x000000aeu, + 0x00001158u, 0x0003003eu, 0x00001159u, 0x0000049du, 0x000200f9u, 0x0000115eu, 0x000200f8u, 0x00001150u, + 0x000500c6u, 0x00000006u, 0x00001152u, 0x000012f9u, 0x000001c7u, 0x00050080u, 0x00000006u, 0x00001153u, + 0x00001152u, 0x0000037bu, 0x00060041u, 0x0000038au, 0x00001154u, 0x00000387u, 0x000000aeu, 0x00001153u, + 0x0003003eu, 0x00001154u, 0x000001d2u, 0x000200f9u, 0x0000115eu, 0x000200f8u, 0x0000115eu, 0x000200f9u, + 0x0000115fu, 0x000200f8u, 0x0000115fu, 0x000200f9u, 0x0000114cu, 0x000200f8u, 0x0000114cu, 0x00050080u, + 0x00000006u, 0x00001084u, 0x00000868u, 0x00001077u, 0x00050080u, 0x00000006u, 0x00001087u, 0x00001084u, + 0x0000107au, 0x000300f7u, 0x00001183u, 0x00000000u, 0x000400fau, 0x00000575u, 0x00001161u, 0x00001183u, + 0x000200f8u, 0x00001161u, 0x000300f7u, 0x00001179u, 0x00000000u, 0x000400fau, 0x0000188eu, 0x00001163u, + 0x00001179u, 0x000200f8u, 0x00001163u, 0x000500c7u, 0x00000006u, 0x00001165u, 0x00001087u, 0x0000039cu, + 0x00050084u, 0x00000006u, 0x00001167u, 0x00001072u, 0x0000057fu, 0x00050080u, 0x00000006u, 0x00001169u, + 0x00001165u, 0x00001167u, 0x000500c6u, 0x00000006u, 0x0000116bu, 0x00001169u, 0x000001bfu, 0x000500c4u, + 0x0000000au, 0x0000116du, 0x0000131bu, 0x00000482u, 0x000500c2u, 0x00000008u, 0x0000116fu, 0x00001328u, + 0x00000482u, 0x00040071u, 0x0000000au, 0x00001170u, 0x0000116fu, 0x000500c5u, 0x0000000au, 0x00001171u, + 0x0000116du, 0x00001170u, 0x00060041u, 0x000003abu, 0x00001172u, 0x000003a8u, 0x000000aeu, 0x0000116bu, + 0x0003003eu, 0x00001172u, 0x00001171u, 0x00040071u, 0x0000000au, 0x00001175u, 0x00001328u, 0x000500c7u, + 0x0000000au, 0x00001176u, 0x00001175u, 0x00000488u, 0x00040071u, 0x00000008u, 0x00001177u, 0x00001176u, + 0x00060041u, 0x0000038au, 0x00001178u, 0x00000395u, 0x000000aeu, 0x00001169u, 0x0003003eu, 0x00001178u, + 0x00001177u, 0x000200f9u, 0x00001179u, 0x000200f8u, 0x00001179u, 0x000700f5u, 0x00000006u, 0x00001333u, + 0x00001087u, 0x00001161u, 0x00001169u, 0x00001163u, 0x000300f7u, 0x00001182u, 0x00000000u, 0x000400fau, + 0x0000056du, 0x0000117au, 0x00001182u, 0x000200f8u, 0x0000117au, 0x000300e1u, 0x000001bfu, 0x00000570u, + 0x000300f7u, 0x00001181u, 0x00000000u, 0x000400fau, 0x0000188eu, 0x0000117cu, 0x00001181u, 0x000200f8u, + 0x0000117cu, 0x000500c6u, 0x00000006u, 0x0000117eu, 0x00001333u, 0x000001bfu, 0x00050080u, 0x00000006u, + 0x0000117fu, 0x0000117eu, 0x00000599u, 0x00060041u, 0x000003abu, 0x00001180u, 0x000003a8u, 0x000000aeu, + 0x0000117fu, 0x0003003eu, 0x00001180u, 0x0000049du, 0x000200f9u, 0x00001181u, 0x000200f8u, 0x00001181u, + 0x000200f9u, 0x00001182u, 0x000200f8u, 0x00001182u, 0x000200f9u, 0x00001183u, 0x000200f8u, 0x00001183u, + 0x000300f7u, 0x0000108fu, 0x00000000u, 0x000400fau, 0x00000641u, 0x0000108bu, 0x0000108fu, 0x000200f8u, + 0x0000108bu, 0x000500c2u, 0x00000006u, 0x0000118au, 0x00001076u, 0x00000173u, 0x00050080u, 0x00000006u, + 0x0000118cu, 0x00001066u, 0x000001c7u, 0x000500c2u, 0x00000006u, 0x0000118du, 0x0000118cu, 0x00000173u, + 0x00050084u, 0x00000006u, 0x0000118eu, 0x0000118au, 0x0000118du, 0x000500c2u, 0x00000006u, 0x00001191u, + 0x0000107au, 0x00000173u, 0x00050080u, 0x00000006u, 0x00001192u, 0x0000118eu, 0x00001191u, 0x000500c7u, + 0x00000078u, 0x00001195u, 0x0000106cu, 0x00001879u, 0x000600a9u, 0x00000006u, 0x00001197u, 0x0000188fu, + 0x000001bfu, 0x0000019bu, 0x000600a9u, 0x00000006u, 0x00001199u, 0x0000188eu, 0x000001bfu, 0x0000019bu, + 0x00050084u, 0x00000006u, 0x0000119au, 0x00000173u, 0x00001199u, 0x00050080u, 0x00000006u, 0x0000119bu, + 0x00001197u, 0x0000119au, 0x00050051u, 0x00000006u, 0x0000119du, 0x00001195u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x0000119fu, 0x00001195u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000011a0u, 0x0000119fu, + 0x00000423u, 0x00050080u, 0x00000006u, 0x000011a1u, 0x0000119du, 0x000011a0u, 0x00050084u, 0x00000006u, + 0x000011a2u, 0x00000173u, 0x000011a1u, 0x000500c4u, 0x00000006u, 0x000011a4u, 0x0000119bu, 0x000011a2u, + 0x000500abu, 0x00000034u, 0x000011a6u, 0x000011a4u, 0x0000019bu, 0x000300f7u, 0x000011adu, 0x00000000u, + 0x000400fau, 0x000011a6u, 0x000011a7u, 0x000011adu, 0x000200f8u, 0x000011a7u, 0x00050080u, 0x00000006u, + 0x000011a9u, 0x00000601u, 0x00001192u, 0x00060041u, 0x000003f6u, 0x000011aau, 0x000003f4u, 0x000000aeu, + 0x000011a9u, 0x000700f1u, 0x00000006u, 0x000011acu, 0x000011aau, 0x000001bfu, 0x0000019bu, 0x000011a4u, + 0x000200f9u, 0x000011adu, 0x000200f8u, 0x000011adu, 0x000200f9u, 0x0000108fu, 0x000200f8u, 0x0000108fu, + 0x000200f9u, 0x0000096eu, 0x000200f8u, 0x0000096eu, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, + 0x000d000bu, 0x000018afu, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x00000016u, 0x00020011u, + 0x00000027u, 0x00020011u, 0x0000002eu, 0x00020011u, 0x0000003du, 0x00020011u, 0x0000003fu, 0x00020011u, + 0x00000040u, 0x00020011u, 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, + 0x74696238u, 0x6f74735fu, 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, + 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0008000fu, 0x00000005u, 0x00000004u, + 0x6e69616du, 0x00000000u, 0x00000831u, 0x0000083cu, 0x000008b8u, 0x00060010u, 0x00000004u, 0x00000011u, + 0x00000001u, 0x00000001u, 0x00000001u, 0x00050048u, 0x000000a9u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00050048u, 0x000000a9u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000000a9u, 0x00000002u, + 0x00000023u, 0x00000008u, 0x00050048u, 0x000000a9u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, + 0x000000a9u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000000a9u, 0x00000005u, 0x00000023u, + 0x00000014u, 0x00050048u, 0x000000a9u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000000a9u, + 0x00000007u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x000000a9u, 0x00000008u, 0x00000023u, 0x00000020u, + 0x00050048u, 0x000000a9u, 0x00000009u, 0x00000023u, 0x00000024u, 0x00050048u, 0x000000a9u, 0x0000000au, + 0x00000023u, 0x00000028u, 0x00050048u, 0x000000a9u, 0x0000000bu, 0x00000023u, 0x0000002cu, 0x00050048u, + 0x000000a9u, 0x0000000cu, 0x00000023u, 0x0000002eu, 0x00050048u, 0x000000a9u, 0x0000000du, 0x00000023u, + 0x0000002fu, 0x00050048u, 0x000000a9u, 0x0000000eu, 0x00000023u, 0x00000030u, 0x00040047u, 0x000000aau, + 0x00000006u, 0x00000038u, 0x00040048u, 0x000000abu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000000abu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000000abu, 0x00000002u, 0x00040047u, 0x000000adu, + 0x00000022u, 0x00000001u, 0x00040047u, 0x000000adu, 0x00000021u, 0x00000002u, 0x00050048u, 0x000000e5u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000000e5u, 0x00000001u, 0x00000023u, 0x00000004u, + 0x00050048u, 0x000000e5u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000000e5u, 0x00000003u, + 0x00000023u, 0x0000000cu, 0x00050048u, 0x000000e5u, 0x00000004u, 0x00000023u, 0x0000000du, 0x00050048u, + 0x000000e5u, 0x00000005u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x000000e5u, 0x00000006u, 0x00000023u, + 0x0000000fu, 0x00040047u, 0x000000e6u, 0x00000006u, 0x00000010u, 0x00040048u, 0x000000e7u, 0x00000000u, + 0x00000018u, 0x00050048u, 0x000000e7u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000000e7u, + 0x00000002u, 0x00040047u, 0x000000e9u, 0x00000022u, 0x00000001u, 0x00040047u, 0x000000e9u, 0x00000021u, + 0x00000005u, 0x00040047u, 0x00000254u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000254u, 0x00000021u, + 0x0000000au, 0x00040047u, 0x00000375u, 0x00000001u, 0x00000001u, 0x00040047u, 0x0000037bu, 0x00000001u, + 0x00000000u, 0x00040047u, 0x00000384u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000385u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000385u, 0x00000002u, 0x00040047u, 0x00000387u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000387u, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000392u, 0x00000006u, + 0x00000001u, 0x00050048u, 0x00000393u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000393u, + 0x00000002u, 0x00040047u, 0x00000395u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000395u, 0x00000021u, + 0x00000001u, 0x00040047u, 0x000003a5u, 0x00000006u, 0x00000002u, 0x00050048u, 0x000003a6u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x000003a6u, 0x00000002u, 0x00040047u, 0x000003a8u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x000003a8u, 0x00000021u, 0x00000000u, 0x00040047u, 0x000003f1u, 0x00000006u, + 0x00000004u, 0x00050048u, 0x000003f2u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000003f2u, + 0x00000002u, 0x00040047u, 0x000003f4u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000003f4u, 0x00000021u, + 0x00000000u, 0x00040047u, 0x00000568u, 0x00000001u, 0x00000007u, 0x00040047u, 0x00000574u, 0x00000001u, + 0x00000002u, 0x00040047u, 0x00000746u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000747u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x00000747u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x00000747u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, 0x00000748u, 0x00000006u, 0x00000010u, + 0x00040048u, 0x00000749u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000749u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000749u, 0x00000002u, 0x00040047u, 0x0000074bu, 0x00000022u, 0x00000001u, + 0x00040047u, 0x0000074bu, 0x00000021u, 0x00000006u, 0x00040047u, 0x00000831u, 0x0000000bu, 0x0000001cu, + 0x00040047u, 0x0000083cu, 0x0000000bu, 0x0000001au, 0x00040047u, 0x00000845u, 0x00000001u, 0x00000006u, + 0x00040047u, 0x00000846u, 0x00000001u, 0x00000003u, 0x00040047u, 0x00000847u, 0x00000001u, 0x00000004u, + 0x00040047u, 0x00000848u, 0x0000000bu, 0x00000019u, 0x00040047u, 0x00000850u, 0x00000001u, 0x00000005u, + 0x00040047u, 0x00000855u, 0x00000006u, 0x00000004u, 0x00040048u, 0x00000856u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x00000856u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000856u, 0x00000002u, + 0x00040047u, 0x00000858u, 0x00000022u, 0x00000001u, 0x00040047u, 0x00000858u, 0x00000021u, 0x0000000cu, + 0x00050048u, 0x0000085cu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x0000085cu, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x0000085cu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, + 0x0000085cu, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x0000085cu, 0x00000004u, 0x00000023u, + 0x00000010u, 0x00030047u, 0x0000085cu, 0x00000002u, 0x00040047u, 0x00000889u, 0x00000006u, 0x00000004u, + 0x00040048u, 0x0000088au, 0x00000000u, 0x00000018u, 0x00050048u, 0x0000088au, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000088au, 0x00000002u, 0x00040047u, 0x0000088cu, 0x00000022u, 0x00000000u, + 0x00040047u, 0x0000088cu, 0x00000021u, 0x00000007u, 0x00040047u, 0x00000893u, 0x00000006u, 0x00000004u, + 0x00040048u, 0x00000894u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000894u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000894u, 0x00000002u, 0x00040047u, 0x00000896u, 0x00000022u, 0x00000001u, + 0x00040047u, 0x00000896u, 0x00000021u, 0x0000000bu, 0x00040047u, 0x000008b8u, 0x0000000bu, 0x0000001du, + 0x00040047u, 0x000008bcu, 0x00000006u, 0x00000001u, 0x00040048u, 0x000008bdu, 0x00000000u, 0x00000018u, + 0x00050048u, 0x000008bdu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008bdu, 0x00000002u, + 0x00040047u, 0x000008bfu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008bfu, 0x00000021u, 0x00000006u, + 0x00040047u, 0x000008dbu, 0x00000006u, 0x00000004u, 0x00040048u, 0x000008dcu, 0x00000000u, 0x00000018u, + 0x00050048u, 0x000008dcu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008dcu, 0x00000002u, + 0x00040047u, 0x000008deu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008deu, 0x00000021u, 0x00000003u, + 0x00040047u, 0x000008e9u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000008eau, 0x00000000u, 0x00000018u, + 0x00050048u, 0x000008eau, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008eau, 0x00000002u, + 0x00040047u, 0x000008ecu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008ecu, 0x00000021u, 0x00000003u, + 0x00040047u, 0x000008f7u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000008f8u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x000008f8u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000008f8u, 0x00000002u, + 0x00040047u, 0x000008fau, 0x00000022u, 0x00000000u, 0x00040047u, 0x000008fau, 0x00000021u, 0x00000004u, + 0x00040047u, 0x00000900u, 0x00000006u, 0x00000001u, 0x00040048u, 0x00000901u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x00000901u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000901u, 0x00000002u, + 0x00040047u, 0x00000903u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000903u, 0x00000021u, 0x00000005u, + 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, + 0x00000000u, 0x00040015u, 0x00000008u, 0x00000008u, 0x00000000u, 0x00040017u, 0x00000009u, 0x00000008u, + 0x00000004u, 0x00040015u, 0x0000000au, 0x00000010u, 0x00000000u, 0x00040015u, 0x0000000bu, 0x00000010u, + 0x00000001u, 0x00040017u, 0x0000000cu, 0x0000000bu, 0x00000004u, 0x00040015u, 0x00000017u, 0x00000020u, + 0x00000001u, 0x00040017u, 0x00000018u, 0x00000017u, 0x00000003u, 0x00040017u, 0x0000001bu, 0x00000008u, + 0x00000003u, 0x00020014u, 0x00000034u, 0x00040017u, 0x00000036u, 0x00000008u, 0x00000002u, 0x00040017u, + 0x00000078u, 0x00000006u, 0x00000002u, 0x0011001eu, 0x000000a9u, 0x00000009u, 0x00000009u, 0x00000009u, + 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000006u, + 0x0000000au, 0x00000008u, 0x00000008u, 0x0000000cu, 0x0003001du, 0x000000aau, 0x000000a9u, 0x0003001eu, + 0x000000abu, 0x000000aau, 0x00040020u, 0x000000acu, 0x0000000cu, 0x000000abu, 0x0004003bu, 0x000000acu, + 0x000000adu, 0x0000000cu, 0x0004002bu, 0x00000017u, 0x000000aeu, 0x00000000u, 0x00040020u, 0x000000b0u, + 0x0000000cu, 0x000000a9u, 0x0004002bu, 0x00000017u, 0x000000b8u, 0x00000001u, 0x0004002bu, 0x00000017u, + 0x000000bbu, 0x00000002u, 0x0004002bu, 0x00000017u, 0x000000beu, 0x00000003u, 0x0004002bu, 0x00000017u, + 0x000000c1u, 0x00000004u, 0x0004002bu, 0x00000017u, 0x000000c4u, 0x00000005u, 0x0004002bu, 0x00000017u, + 0x000000c7u, 0x00000006u, 0x0004002bu, 0x00000017u, 0x000000cau, 0x00000007u, 0x0004002bu, 0x00000017u, + 0x000000cdu, 0x00000008u, 0x0004002bu, 0x00000017u, 0x000000d0u, 0x00000009u, 0x0004002bu, 0x00000017u, + 0x000000d3u, 0x0000000au, 0x0004002bu, 0x00000017u, 0x000000d6u, 0x0000000bu, 0x0009001eu, 0x000000e5u, + 0x00000009u, 0x00000009u, 0x00000006u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, + 0x000000e6u, 0x000000e5u, 0x0003001eu, 0x000000e7u, 0x000000e6u, 0x00040020u, 0x000000e8u, 0x0000000cu, + 0x000000e7u, 0x0004003bu, 0x000000e8u, 0x000000e9u, 0x0000000cu, 0x00040020u, 0x000000ebu, 0x0000000cu, + 0x000000e5u, 0x0006002cu, 0x00000018u, 0x00000104u, 0x000000aeu, 0x000000beu, 0x000000c7u, 0x0004002bu, + 0x00000017u, 0x0000010au, 0x000000f8u, 0x0004002bu, 0x00000017u, 0x0000010fu, 0x000000ffu, 0x0006002cu, + 0x00000018u, 0x00000110u, 0x0000010fu, 0x0000010fu, 0x0000010fu, 0x0004002bu, 0x00000017u, 0x00000112u, + 0x000000f7u, 0x0006002cu, 0x00000018u, 0x00000113u, 0x00000112u, 0x00000112u, 0x00000112u, 0x00040017u, + 0x00000114u, 0x00000034u, 0x00000003u, 0x0004002bu, 0x00000017u, 0x0000011du, 0x0000001fu, 0x00040015u, + 0x0000012cu, 0x00000008u, 0x00000001u, 0x00040017u, 0x0000012du, 0x0000012cu, 0x00000003u, 0x0004002bu, + 0x00000017u, 0x0000013bu, 0x000007ffu, 0x0004002bu, 0x00000017u, 0x00000142u, 0x00040000u, 0x0004002bu, + 0x00000017u, 0x0000014eu, 0x0003ffffu, 0x0004002bu, 0x00000017u, 0x00000153u, 0x00000011u, 0x0004002bu, + 0x00000006u, 0x00000173u, 0x00000002u, 0x0004002bu, 0x00000006u, 0x0000019bu, 0x00000000u, 0x0004002bu, + 0x00000006u, 0x000001bfu, 0x00000001u, 0x0004002bu, 0x00000006u, 0x000001c7u, 0x00000003u, 0x0004002bu, + 0x00000008u, 0x000001d2u, 0x000000ffu, 0x0004002bu, 0x00000008u, 0x000001edu, 0x00000000u, 0x0004002bu, + 0x00000008u, 0x00000204u, 0x00000003u, 0x0004002bu, 0x00000008u, 0x00000214u, 0x0000003cu, 0x00040017u, + 0x0000021bu, 0x0000000bu, 0x00000003u, 0x00040017u, 0x0000021fu, 0x0000000au, 0x00000003u, 0x0004002bu, + 0x0000000bu, 0x0000022du, 0x00000001u, 0x0004002bu, 0x0000000bu, 0x00000239u, 0x00000005u, 0x0004002bu, + 0x0000000bu, 0x0000024au, 0x00000002u, 0x0004002bu, 0x0000000bu, 0x0000024eu, 0x000007ffu, 0x00090019u, + 0x00000252u, 0x00000006u, 0x00000005u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00040020u, 0x00000253u, 0x00000000u, 0x00000252u, 0x0004003bu, 0x00000253u, 0x00000254u, 0x00000000u, + 0x00040017u, 0x0000025du, 0x00000006u, 0x00000004u, 0x0004002bu, 0x00000017u, 0x00000299u, 0x0000000fu, + 0x0003002au, 0x00000034u, 0x0000029cu, 0x0004002bu, 0x00000017u, 0x000002b4u, 0x00008000u, 0x0004002bu, + 0x00000017u, 0x000002bau, 0x00000010u, 0x00030029u, 0x00000034u, 0x000002bfu, 0x0004002bu, 0x00000017u, + 0x000002c0u, 0x0000ffffu, 0x00040032u, 0x00000017u, 0x00000375u, 0x00000000u, 0x00040032u, 0x00000006u, + 0x0000037bu, 0x00000000u, 0x00060034u, 0x00000006u, 0x0000037cu, 0x00000082u, 0x0000037bu, 0x000001bfu, + 0x0003001du, 0x00000384u, 0x00000008u, 0x0003001eu, 0x00000385u, 0x00000384u, 0x00040020u, 0x00000386u, + 0x0000000cu, 0x00000385u, 0x0004003bu, 0x00000386u, 0x00000387u, 0x0000000cu, 0x00040020u, 0x0000038au, + 0x0000000cu, 0x00000008u, 0x0003001du, 0x00000392u, 0x00000008u, 0x0003001eu, 0x00000393u, 0x00000392u, + 0x00040020u, 0x00000394u, 0x0000000cu, 0x00000393u, 0x0004003bu, 0x00000394u, 0x00000395u, 0x0000000cu, + 0x00060034u, 0x00000006u, 0x0000039cu, 0x000000c2u, 0x0000037cu, 0x000001bfu, 0x00060034u, 0x00000006u, + 0x000003a0u, 0x000000c2u, 0x0000037bu, 0x000000b8u, 0x0003001du, 0x000003a5u, 0x0000000au, 0x0003001eu, + 0x000003a6u, 0x000003a5u, 0x00040020u, 0x000003a7u, 0x0000000cu, 0x000003a6u, 0x0004003bu, 0x000003a7u, + 0x000003a8u, 0x0000000cu, 0x00040020u, 0x000003abu, 0x0000000cu, 0x0000000au, 0x00040017u, 0x000003afu, + 0x00000006u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x000003b3u, 0x00000008u, 0x0004002bu, 0x00000006u, + 0x000003bau, 0x000000f8u, 0x0004002bu, 0x00000008u, 0x000003c2u, 0x00000005u, 0x00060034u, 0x00000006u, + 0x000003d1u, 0x000000c2u, 0x0000037bu, 0x000000b8u, 0x0004002bu, 0x00000006u, 0x000003e0u, 0x000000ffu, + 0x00060034u, 0x00000006u, 0x000003e8u, 0x000000c2u, 0x0000037cu, 0x00000173u, 0x00060034u, 0x00000006u, + 0x000003ecu, 0x000000c2u, 0x0000037bu, 0x000000bbu, 0x0003001du, 0x000003f1u, 0x00000006u, 0x0003001eu, + 0x000003f2u, 0x000003f1u, 0x00040020u, 0x000003f3u, 0x0000000cu, 0x000003f2u, 0x0004003bu, 0x000003f3u, + 0x000003f4u, 0x0000000cu, 0x00040020u, 0x000003f6u, 0x0000000cu, 0x00000006u, 0x0004002bu, 0x00000006u, + 0x000003fbu, 0x00000018u, 0x0004002bu, 0x00000006u, 0x000003fcu, 0x00000010u, 0x0007002cu, 0x0000025du, + 0x000003fdu, 0x000003fbu, 0x000003fcu, 0x000003b3u, 0x0000019bu, 0x0007002cu, 0x0000025du, 0x000003ffu, + 0x000003e0u, 0x000003e0u, 0x000003e0u, 0x000003e0u, 0x0004002bu, 0x00000008u, 0x0000040eu, 0x00000008u, + 0x0004002bu, 0x00000006u, 0x00000416u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x00000423u, 0x00000004u, + 0x0004002bu, 0x00000006u, 0x00000450u, 0x0000000au, 0x0004002bu, 0x00000006u, 0x00000456u, 0x00000005u, + 0x0004002bu, 0x00000006u, 0x00000461u, 0x00000007u, 0x00060034u, 0x00000006u, 0x00000478u, 0x000000c2u, + 0x0000037bu, 0x000000b8u, 0x0004002bu, 0x0000000au, 0x00000482u, 0x00000002u, 0x0004002bu, 0x0000000au, + 0x00000488u, 0x00000003u, 0x00060034u, 0x00000006u, 0x0000049bu, 0x000000c2u, 0x0000037bu, 0x000001bfu, + 0x0004002bu, 0x0000000au, 0x0000049du, 0x0000ffffu, 0x00060034u, 0x00000006u, 0x000004a1u, 0x000000c2u, + 0x0000037bu, 0x00000173u, 0x0004002bu, 0x00000006u, 0x000004a3u, 0xffffffffu, 0x00060034u, 0x00000006u, + 0x000004e3u, 0x000000c2u, 0x0000037bu, 0x000000b8u, 0x00060034u, 0x00000006u, 0x00000516u, 0x000000c2u, + 0x0000037bu, 0x000000b8u, 0x00060034u, 0x00000006u, 0x00000535u, 0x000000c2u, 0x0000037bu, 0x000000bbu, + 0x00040032u, 0x00000017u, 0x00000568u, 0x00000000u, 0x00060034u, 0x00000017u, 0x00000569u, 0x000000c7u, + 0x00000568u, 0x000000b8u, 0x00060034u, 0x00000034u, 0x0000056au, 0x000000abu, 0x00000569u, 0x000000aeu, + 0x00060034u, 0x00000017u, 0x0000056bu, 0x000000c3u, 0x00000568u, 0x000000b8u, 0x00060034u, 0x00000034u, + 0x0000056cu, 0x000000aau, 0x0000056bu, 0x000000aeu, 0x00060034u, 0x00000034u, 0x0000056du, 0x000000a7u, + 0x0000056au, 0x0000056cu, 0x0004002bu, 0x00000006u, 0x00000570u, 0x00000048u, 0x00030031u, 0x00000034u, + 0x00000574u, 0x00050034u, 0x00000034u, 0x00000575u, 0x000000a8u, 0x00000574u, 0x00060034u, 0x00000006u, + 0x0000057fu, 0x000000c2u, 0x0000037bu, 0x000000b8u, 0x00060034u, 0x00000006u, 0x00000599u, 0x000000c2u, + 0x0000037bu, 0x000001bfu, 0x00040017u, 0x000005a0u, 0x00000034u, 0x00000002u, 0x00060034u, 0x00000017u, + 0x000005a7u, 0x000000c4u, 0x000000b8u, 0x0000056bu, 0x00060034u, 0x00000017u, 0x000005a8u, 0x00000082u, + 0x000005a7u, 0x000000b8u, 0x00060034u, 0x00000006u, 0x000005a9u, 0x00000080u, 0x000005a8u, 0x0000019bu, + 0x00040017u, 0x000005adu, 0x00000017u, 0x00000002u, 0x00060034u, 0x00000006u, 0x000005b3u, 0x00000080u, + 0x000005a7u, 0x0000019bu, 0x00060034u, 0x00000017u, 0x0000060bu, 0x00000084u, 0x000005a7u, 0x000005a7u, + 0x00060034u, 0x00000006u, 0x0000060cu, 0x00000080u, 0x0000060bu, 0x0000019bu, 0x00060034u, 0x00000006u, + 0x0000060du, 0x000000c2u, 0x0000037bu, 0x000000bbu, 0x00060034u, 0x00000006u, 0x0000060eu, 0x00000084u, + 0x0000060cu, 0x0000060du, 0x00060034u, 0x00000017u, 0x00000622u, 0x00000082u, 0x000005a7u, 0x000000b8u, + 0x00060034u, 0x00000006u, 0x00000623u, 0x00000080u, 0x00000622u, 0x0000019bu, 0x00060034u, 0x00000006u, + 0x0000062cu, 0x00000080u, 0x000005a7u, 0x0000019bu, 0x00060034u, 0x00000034u, 0x0000064eu, 0x000000abu, + 0x0000056bu, 0x000000aeu, 0x00060034u, 0x00000034u, 0x0000064fu, 0x000000a7u, 0x0000056au, 0x0000064eu, + 0x0004002bu, 0x00000008u, 0x0000065eu, 0x000000e0u, 0x0006002cu, 0x0000001bu, 0x00000669u, 0x000001edu, + 0x000001edu, 0x000001edu, 0x0004002bu, 0x00000008u, 0x00000670u, 0x000000f8u, 0x00060034u, 0x00000034u, + 0x00000683u, 0x000000aau, 0x00000375u, 0x000000aeu, 0x0007002cu, 0x00000009u, 0x00000694u, 0x000001edu, + 0x000001edu, 0x000001edu, 0x000001edu, 0x0004002bu, 0x00000006u, 0x000006adu, 0x000000e0u, 0x0004002bu, + 0x00000006u, 0x00000708u, 0x0000ffffu, 0x0004002bu, 0x00000017u, 0x00000738u, 0x000001ffu, 0x0004001cu, + 0x00000746u, 0x00000008u, 0x000003b3u, 0x0005001eu, 0x00000747u, 0x00000009u, 0x00000009u, 0x00000746u, + 0x0003001du, 0x00000748u, 0x00000747u, 0x0003001eu, 0x00000749u, 0x00000748u, 0x00040020u, 0x0000074au, + 0x0000000cu, 0x00000749u, 0x0004003bu, 0x0000074au, 0x0000074bu, 0x0000000cu, 0x0004002bu, 0x00000006u, + 0x0000076fu, 0x00000020u, 0x0004002bu, 0x00000006u, 0x00000775u, 0x00000040u, 0x0004002bu, 0x00000006u, + 0x0000077bu, 0x00000080u, 0x0004002bu, 0x00000006u, 0x00000781u, 0x00000100u, 0x00040020u, 0x00000830u, + 0x00000001u, 0x000003afu, 0x0004003bu, 0x00000830u, 0x00000831u, 0x00000001u, 0x00040020u, 0x00000832u, + 0x00000001u, 0x00000006u, 0x0004003bu, 0x00000830u, 0x0000083cu, 0x00000001u, 0x00040032u, 0x00000017u, + 0x00000845u, 0x00000400u, 0x00040032u, 0x00000006u, 0x00000846u, 0x00000001u, 0x00040032u, 0x00000006u, + 0x00000847u, 0x00000001u, 0x00060033u, 0x000003afu, 0x00000848u, 0x00000846u, 0x00000847u, 0x000001bfu, + 0x00060034u, 0x00000006u, 0x00000849u, 0x00000051u, 0x00000848u, 0x00000000u, 0x00060034u, 0x00000017u, + 0x0000084au, 0x00000080u, 0x00000849u, 0x0000019bu, 0x00060034u, 0x00000017u, 0x0000084bu, 0x00000087u, + 0x00000845u, 0x0000084au, 0x00040032u, 0x00000017u, 0x00000850u, 0x00000100u, 0x0004002bu, 0x00000017u, + 0x00000851u, 0x00000020u, 0x00060034u, 0x00000017u, 0x00000852u, 0x00000087u, 0x00000850u, 0x00000851u, + 0x0003001du, 0x00000855u, 0x00000006u, 0x0003001eu, 0x00000856u, 0x00000855u, 0x00040020u, 0x00000857u, + 0x0000000cu, 0x00000856u, 0x0004003bu, 0x00000857u, 0x00000858u, 0x0000000cu, 0x0007001eu, 0x0000085cu, + 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00040020u, 0x0000085du, 0x00000009u, + 0x0000085cu, 0x0004003bu, 0x0000085du, 0x0000085eu, 0x00000009u, 0x00040020u, 0x0000085fu, 0x00000009u, + 0x00000006u, 0x0003001du, 0x00000889u, 0x00000006u, 0x0003001eu, 0x0000088au, 0x00000889u, 0x00040020u, + 0x0000088bu, 0x0000000cu, 0x0000088au, 0x0004003bu, 0x0000088bu, 0x0000088cu, 0x0000000cu, 0x0003001du, + 0x00000893u, 0x00000006u, 0x0003001eu, 0x00000894u, 0x00000893u, 0x00040020u, 0x00000895u, 0x0000000cu, + 0x00000894u, 0x0004003bu, 0x00000895u, 0x00000896u, 0x0000000cu, 0x00060034u, 0x00000006u, 0x000008b4u, + 0x00000051u, 0x00000848u, 0x00000000u, 0x00060034u, 0x00000006u, 0x000008b5u, 0x00000051u, 0x00000848u, + 0x00000001u, 0x00060034u, 0x00000006u, 0x000008b6u, 0x00000084u, 0x000008b4u, 0x000008b5u, 0x0004003bu, + 0x00000832u, 0x000008b8u, 0x00000001u, 0x0003001du, 0x000008bcu, 0x0000012cu, 0x0003001eu, 0x000008bdu, + 0x000008bcu, 0x00040020u, 0x000008beu, 0x0000000cu, 0x000008bdu, 0x0004003bu, 0x000008beu, 0x000008bfu, + 0x0000000cu, 0x00040020u, 0x000008c1u, 0x0000000cu, 0x0000012cu, 0x0004002bu, 0x00000017u, 0x000008cau, + 0x00000040u, 0x0003001du, 0x000008dbu, 0x00000006u, 0x0003001eu, 0x000008dcu, 0x000008dbu, 0x00040020u, + 0x000008ddu, 0x0000000cu, 0x000008dcu, 0x0004003bu, 0x000008ddu, 0x000008deu, 0x0000000cu, 0x0003001du, + 0x000008e9u, 0x00000009u, 0x0003001eu, 0x000008eau, 0x000008e9u, 0x00040020u, 0x000008ebu, 0x0000000cu, + 0x000008eau, 0x0004003bu, 0x000008ebu, 0x000008ecu, 0x0000000cu, 0x00040020u, 0x000008eeu, 0x0000000cu, + 0x00000009u, 0x0003001du, 0x000008f7u, 0x00000017u, 0x0003001eu, 0x000008f8u, 0x000008f7u, 0x00040020u, + 0x000008f9u, 0x0000000cu, 0x000008f8u, 0x0004003bu, 0x000008f9u, 0x000008fau, 0x0000000cu, 0x00040020u, + 0x000008fcu, 0x0000000cu, 0x00000017u, 0x0003001du, 0x00000900u, 0x00000008u, 0x0003001eu, 0x00000901u, + 0x00000900u, 0x00040020u, 0x00000902u, 0x0000000cu, 0x00000901u, 0x0004003bu, 0x00000902u, 0x00000903u, + 0x0000000cu, 0x00030001u, 0x00000009u, 0x00001313u, 0x00030001u, 0x0000000au, 0x00001339u, 0x00030001u, + 0x00000008u, 0x00001346u, 0x00030001u, 0x0000001bu, 0x0000136cu, 0x00030001u, 0x00000006u, 0x0000152bu, + 0x0006002cu, 0x000003afu, 0x00001896u, 0x000003bau, 0x000003bau, 0x000003bau, 0x0005002cu, 0x00000078u, + 0x00001897u, 0x000001c7u, 0x000001c7u, 0x0006002cu, 0x0000001bu, 0x00001898u, 0x00000670u, 0x00000670u, + 0x00000670u, 0x0006002cu, 0x00000018u, 0x00001899u, 0x000000cau, 0x000000cau, 0x000000cau, 0x0006002cu, + 0x00000018u, 0x0000189au, 0x0000010au, 0x0000010au, 0x0000010au, 0x0006002cu, 0x00000018u, 0x0000189bu, + 0x000000cdu, 0x000000cdu, 0x000000cdu, 0x0006002cu, 0x00000018u, 0x0000189cu, 0x0000011du, 0x0000011du, + 0x0000011du, 0x0006002cu, 0x0000021bu, 0x0000189eu, 0x00000239u, 0x00000239u, 0x00000239u, 0x0006002cu, + 0x0000001bu, 0x0000189fu, 0x000001d2u, 0x000001d2u, 0x000001d2u, 0x0006002cu, 0x0000021bu, 0x000018a0u, + 0x0000024au, 0x0000024au, 0x0000024au, 0x0006002cu, 0x0000021bu, 0x000018a1u, 0x0000024eu, 0x0000024eu, + 0x0000024eu, 0x00040017u, 0x000018a7u, 0x00000034u, 0x00000004u, 0x00050036u, 0x00000002u, 0x00000004u, + 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x000300f7u, 0x0000097cu, 0x00000000u, 0x000300fbu, + 0x0000019bu, 0x0000097du, 0x000200f8u, 0x0000097du, 0x0004003du, 0x000003afu, 0x0000083du, 0x0000083cu, + 0x0007004fu, 0x00000078u, 0x0000083eu, 0x0000083du, 0x0000083du, 0x00000000u, 0x00000001u, 0x0004007cu, + 0x000005adu, 0x0000083fu, 0x0000083eu, 0x00050051u, 0x00000017u, 0x00000842u, 0x0000083fu, 0x00000000u, + 0x00050051u, 0x00000017u, 0x00000844u, 0x0000083fu, 0x00000001u, 0x00050084u, 0x00000017u, 0x0000084cu, + 0x00000844u, 0x0000084bu, 0x00050080u, 0x00000017u, 0x0000084du, 0x00000842u, 0x0000084cu, 0x00050084u, + 0x00000017u, 0x00000853u, 0x0000084du, 0x00000852u, 0x00060041u, 0x000003f6u, 0x0000085au, 0x00000858u, + 0x000000aeu, 0x0000084du, 0x0004003du, 0x00000006u, 0x0000085bu, 0x0000085au, 0x00050041u, 0x0000085fu, + 0x00000860u, 0x0000085eu, 0x000000c1u, 0x0004003du, 0x00000006u, 0x00000861u, 0x00000860u, 0x000500c7u, + 0x00000006u, 0x00000862u, 0x0000085bu, 0x00000861u, 0x000500aau, 0x00000034u, 0x00000864u, 0x00000862u, + 0x0000019bu, 0x000300f7u, 0x00000866u, 0x00000000u, 0x000400fau, 0x00000864u, 0x00000865u, 0x00000866u, + 0x000200f8u, 0x00000865u, 0x000200f9u, 0x0000097cu, 0x000200f8u, 0x00000866u, 0x0004003du, 0x000003afu, + 0x00000869u, 0x00000831u, 0x0007004fu, 0x00000078u, 0x0000086au, 0x00000869u, 0x00000869u, 0x00000000u, + 0x00000001u, 0x00050041u, 0x0000085fu, 0x0000086cu, 0x0000085eu, 0x000000bbu, 0x0004003du, 0x00000006u, + 0x0000086du, 0x0000086cu, 0x00050041u, 0x0000085fu, 0x0000086fu, 0x0000085eu, 0x000000beu, 0x0004003du, + 0x00000006u, 0x00000870u, 0x0000086fu, 0x00050041u, 0x0000085fu, 0x00000872u, 0x0000085eu, 0x000000aeu, + 0x0004003du, 0x00000006u, 0x00000873u, 0x00000872u, 0x00050041u, 0x0000085fu, 0x00000875u, 0x0000085eu, + 0x000000b8u, 0x0004003du, 0x00000006u, 0x00000876u, 0x00000875u, 0x00050050u, 0x00000078u, 0x0000098fu, + 0x0000086du, 0x00000870u, 0x000500b0u, 0x000005a0u, 0x00000990u, 0x0000086au, 0x0000098fu, 0x0004009bu, + 0x00000034u, 0x00000991u, 0x00000990u, 0x000300f7u, 0x000009bau, 0x00000000u, 0x000400fau, 0x00000991u, + 0x00000992u, 0x000009bau, 0x000200f8u, 0x00000992u, 0x00050050u, 0x00000078u, 0x00000994u, 0x000005a9u, + 0x000005a9u, 0x000500c7u, 0x00000078u, 0x00000995u, 0x0000086au, 0x00000994u, 0x00050050u, 0x000005adu, + 0x00000997u, 0x0000056bu, 0x0000056bu, 0x000500c2u, 0x00000078u, 0x00000998u, 0x0000086au, 0x00000997u, + 0x00050051u, 0x00000006u, 0x0000099au, 0x00000995u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000099bu, + 0x0000099au, 0x000005b3u, 0x00050051u, 0x00000006u, 0x0000099du, 0x00000995u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x0000099eu, 0x0000099bu, 0x0000099du, 0x000500c2u, 0x00000006u, 0x000009a1u, 0x0000086du, + 0x0000056bu, 0x00050051u, 0x00000006u, 0x000009a3u, 0x00000998u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000009a4u, 0x000009a1u, 0x000009a3u, 0x00050080u, 0x00000006u, 0x000009a5u, 0x00000873u, 0x000009a4u, + 0x00050051u, 0x00000006u, 0x000009a7u, 0x00000998u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000009a8u, + 0x000009a5u, 0x000009a7u, 0x000300f7u, 0x00000a1eu, 0x00000000u, 0x000d00fbu, 0x00000375u, 0x00000a1eu, + 0x00000000u, 0x000009c1u, 0x00000001u, 0x000009c1u, 0x00000002u, 0x000009d4u, 0x00000003u, 0x000009f8u, + 0x00000004u, 0x00000a0fu, 0x000200f8u, 0x00000a0fu, 0x000500c7u, 0x00000006u, 0x00000a11u, 0x000009a8u, + 0x000003e8u, 0x00050084u, 0x00000006u, 0x00000a13u, 0x0000099eu, 0x000003ecu, 0x00050080u, 0x00000006u, + 0x00000a15u, 0x00000a11u, 0x00000a13u, 0x00060041u, 0x000003f6u, 0x00000a17u, 0x000003f4u, 0x000000aeu, + 0x00000a15u, 0x0004003du, 0x00000006u, 0x00000a18u, 0x00000a17u, 0x00070050u, 0x0000025du, 0x00000a1au, + 0x00000a18u, 0x00000a18u, 0x00000a18u, 0x00000a18u, 0x000500c2u, 0x0000025du, 0x00000a1bu, 0x00000a1au, + 0x000003fdu, 0x000500c7u, 0x0000025du, 0x00000a1cu, 0x00000a1bu, 0x000003ffu, 0x00040071u, 0x00000009u, + 0x00000a1du, 0x00000a1cu, 0x000200f9u, 0x00000a1eu, 0x000200f8u, 0x000009f8u, 0x000500c7u, 0x00000006u, + 0x000009fau, 0x000009a8u, 0x0000039cu, 0x00050084u, 0x00000006u, 0x000009fcu, 0x0000099eu, 0x000003d1u, + 0x00050080u, 0x00000006u, 0x000009feu, 0x000009fau, 0x000009fcu, 0x000500c6u, 0x00000006u, 0x00000a00u, + 0x000009feu, 0x000001bfu, 0x00060041u, 0x000003abu, 0x00000a01u, 0x000003a8u, 0x000000aeu, 0x00000a00u, + 0x0004003du, 0x0000000au, 0x00000a02u, 0x00000a01u, 0x00040071u, 0x00000006u, 0x00000a03u, 0x00000a02u, + 0x000500c2u, 0x00000006u, 0x00000a05u, 0x00000a03u, 0x000003b3u, 0x00040071u, 0x00000008u, 0x00000a06u, + 0x00000a05u, 0x000500c7u, 0x00000006u, 0x00000a09u, 0x00000a03u, 0x000003e0u, 0x00040071u, 0x00000008u, + 0x00000a0au, 0x00000a09u, 0x00070050u, 0x00000009u, 0x00000a0eu, 0x00000a06u, 0x00000a06u, 0x00000a06u, + 0x00000a0au, 0x000200f9u, 0x00000a1eu, 0x000200f8u, 0x000009d4u, 0x000500c7u, 0x00000006u, 0x000009d6u, + 0x000009a8u, 0x0000039cu, 0x00050084u, 0x00000006u, 0x000009d8u, 0x0000099eu, 0x000003a0u, 0x00050080u, + 0x00000006u, 0x000009dau, 0x000009d6u, 0x000009d8u, 0x000500c6u, 0x00000006u, 0x000009dcu, 0x000009dau, + 0x000001bfu, 0x00060041u, 0x000003abu, 0x000009ddu, 0x000003a8u, 0x000000aeu, 0x000009dcu, 0x0004003du, + 0x0000000au, 0x000009deu, 0x000009ddu, 0x00040071u, 0x00000006u, 0x000009dfu, 0x000009deu, 0x000500c2u, + 0x00000006u, 0x000009e1u, 0x000009dfu, 0x000003b3u, 0x000500c2u, 0x00000006u, 0x000009e3u, 0x000009dfu, + 0x000001c7u, 0x000500c4u, 0x00000006u, 0x000009e5u, 0x000009dfu, 0x00000173u, 0x00060050u, 0x000003afu, + 0x000009e6u, 0x000009e1u, 0x000009e3u, 0x000009e5u, 0x000500c7u, 0x000003afu, 0x000009e8u, 0x000009e6u, + 0x00001896u, 0x00040071u, 0x0000001bu, 0x000009eau, 0x000009e8u, 0x00060041u, 0x0000038au, 0x000009ecu, + 0x00000395u, 0x000000aeu, 0x000009dau, 0x0004003du, 0x00000008u, 0x000009edu, 0x000009ecu, 0x000500c4u, + 0x00000008u, 0x000009eeu, 0x000009edu, 0x000003c2u, 0x000500c7u, 0x00000006u, 0x000009f0u, 0x000009dfu, + 0x000001bfu, 0x000500c4u, 0x00000006u, 0x000009f1u, 0x000009f0u, 0x000000cau, 0x00040071u, 0x00000008u, + 0x000009f2u, 0x000009f1u, 0x000500c5u, 0x00000008u, 0x000009f3u, 0x000009eeu, 0x000009f2u, 0x00050051u, + 0x00000008u, 0x000009f4u, 0x000009eau, 0x00000000u, 0x00050051u, 0x00000008u, 0x000009f5u, 0x000009eau, + 0x00000001u, 0x00050051u, 0x00000008u, 0x000009f6u, 0x000009eau, 0x00000002u, 0x00070050u, 0x00000009u, + 0x000009f7u, 0x000009f4u, 0x000009f5u, 0x000009f6u, 0x000009f3u, 0x000200f9u, 0x00000a1eu, 0x000200f8u, + 0x000009c1u, 0x000500c7u, 0x00000006u, 0x000009c3u, 0x000009a8u, 0x0000037cu, 0x00050084u, 0x00000006u, + 0x000009c5u, 0x0000099eu, 0x0000037bu, 0x00050080u, 0x00000006u, 0x000009c7u, 0x000009c3u, 0x000009c5u, + 0x000500c6u, 0x00000006u, 0x000009c9u, 0x000009c7u, 0x000001c7u, 0x00060041u, 0x0000038au, 0x000009cau, + 0x00000387u, 0x000000aeu, 0x000009c9u, 0x0004003du, 0x00000008u, 0x000009cbu, 0x000009cau, 0x000500c2u, + 0x00000006u, 0x000009d0u, 0x000009c7u, 0x000000b8u, 0x00060041u, 0x0000038au, 0x000009d1u, 0x00000395u, + 0x000000aeu, 0x000009d0u, 0x0004003du, 0x00000008u, 0x000009d2u, 0x000009d1u, 0x00070050u, 0x00000009u, + 0x000009d3u, 0x000009cbu, 0x000009cbu, 0x000009cbu, 0x000009d2u, 0x000200f9u, 0x00000a1eu, 0x000200f8u, + 0x00000a1eu, 0x000d00f5u, 0x00000009u, 0x00001314u, 0x00001313u, 0x00000992u, 0x000009d3u, 0x000009c1u, + 0x000009f7u, 0x000009d4u, 0x00000a0eu, 0x000009f8u, 0x00000a1du, 0x00000a0fu, 0x00050080u, 0x00000006u, + 0x000009b3u, 0x00000876u, 0x000009a4u, 0x00050080u, 0x00000006u, 0x000009b6u, 0x000009b3u, 0x000009a7u, + 0x000500c7u, 0x00000006u, 0x00000a22u, 0x000009b6u, 0x0000039cu, 0x00050084u, 0x00000006u, 0x00000a24u, + 0x0000099eu, 0x00000478u, 0x00050080u, 0x00000006u, 0x00000a26u, 0x00000a22u, 0x00000a24u, 0x000500c6u, + 0x00000006u, 0x00000a28u, 0x00000a26u, 0x000001bfu, 0x00060041u, 0x000003abu, 0x00000a29u, 0x000003a8u, + 0x000000aeu, 0x00000a28u, 0x0004003du, 0x0000000au, 0x00000a2au, 0x00000a29u, 0x000500c2u, 0x0000000au, + 0x00000a2cu, 0x00000a2au, 0x00000482u, 0x00060041u, 0x0000038au, 0x00000a2eu, 0x00000395u, 0x000000aeu, + 0x00000a26u, 0x0004003du, 0x00000008u, 0x00000a2fu, 0x00000a2eu, 0x000500c7u, 0x0000000au, 0x00000a31u, + 0x00000a2au, 0x00000488u, 0x000500c4u, 0x0000000au, 0x00000a32u, 0x00000a31u, 0x00000482u, 0x00040071u, + 0x00000008u, 0x00000a33u, 0x00000a32u, 0x000500c5u, 0x00000008u, 0x00000a34u, 0x00000a2fu, 0x00000a33u, + 0x000200f9u, 0x000009bau, 0x000200f8u, 0x000009bau, 0x000700f5u, 0x00000006u, 0x0000152au, 0x0000152bu, + 0x00000866u, 0x000009a8u, 0x00000a1eu, 0x000700f5u, 0x00000008u, 0x00001345u, 0x00001346u, 0x00000866u, + 0x00000a34u, 0x00000a1eu, 0x000700f5u, 0x0000000au, 0x00001338u, 0x00001339u, 0x00000866u, 0x00000a2cu, + 0x00000a1eu, 0x000700f5u, 0x00000009u, 0x00001312u, 0x00001313u, 0x00000866u, 0x00001314u, 0x00000a1eu, + 0x000200f9u, 0x00000878u, 0x000200f8u, 0x00000878u, 0x000700f5u, 0x00000008u, 0x00001344u, 0x00001345u, + 0x000009bau, 0x00001375u, 0x0000087bu, 0x000700f5u, 0x0000000au, 0x00001337u, 0x00001338u, 0x000009bau, + 0x00001372u, 0x0000087bu, 0x000700f5u, 0x00000034u, 0x00001329u, 0x0000029cu, 0x000009bau, 0x000015d1u, + 0x0000087bu, 0x000700f5u, 0x00000009u, 0x00001311u, 0x00001312u, 0x000009bau, 0x00001364u, 0x0000087bu, + 0x000700f5u, 0x00000034u, 0x0000130cu, 0x0000029cu, 0x000009bau, 0x000015b4u, 0x0000087bu, 0x000700f5u, + 0x00000006u, 0x00001306u, 0x00000862u, 0x000009bau, 0x00000887u, 0x0000087bu, 0x000700f5u, 0x0000001bu, + 0x000014c0u, 0x0000136cu, 0x000009bau, 0x000014bfu, 0x0000087bu, 0x000700f5u, 0x0000001bu, 0x00001495u, + 0x0000136cu, 0x000009bau, 0x00001494u, 0x0000087bu, 0x000700f5u, 0x00000008u, 0x0000146bu, 0x00001346u, + 0x000009bau, 0x0000146au, 0x0000087bu, 0x000700f5u, 0x00000008u, 0x00001441u, 0x00001346u, 0x000009bau, + 0x00001440u, 0x0000087bu, 0x000700f5u, 0x0000001bu, 0x00001414u, 0x0000136cu, 0x000009bau, 0x00001413u, + 0x0000087bu, 0x000700f5u, 0x0000001bu, 0x000013f6u, 0x0000136cu, 0x000009bau, 0x000013f5u, 0x0000087bu, + 0x000700f5u, 0x00000008u, 0x000013d9u, 0x00001346u, 0x000009bau, 0x000013d8u, 0x0000087bu, 0x000700f5u, + 0x00000008u, 0x000013bcu, 0x00001346u, 0x000009bau, 0x000013bbu, 0x0000087bu, 0x000700f5u, 0x0000001bu, + 0x0000136au, 0x0000136cu, 0x000009bau, 0x00001369u, 0x0000087bu, 0x000500abu, 0x00000034u, 0x0000087eu, + 0x00001306u, 0x0000019bu, 0x000400f6u, 0x0000087au, 0x0000087bu, 0x00000000u, 0x000400fau, 0x0000087eu, + 0x00000879u, 0x0000087au, 0x000200f8u, 0x00000879u, 0x0006000cu, 0x00000017u, 0x00000881u, 0x00000001u, + 0x00000049u, 0x00001306u, 0x000500c4u, 0x00000017u, 0x00000883u, 0x000000b8u, 0x00000881u, 0x0004007cu, + 0x00000006u, 0x00000884u, 0x00000883u, 0x000400c8u, 0x00000006u, 0x00000885u, 0x00000884u, 0x000500c7u, + 0x00000006u, 0x00000887u, 0x00001306u, 0x00000885u, 0x00050080u, 0x00000017u, 0x0000088fu, 0x00000853u, + 0x00000881u, 0x00060041u, 0x000003f6u, 0x00000890u, 0x0000088cu, 0x000000aeu, 0x0000088fu, 0x0004003du, + 0x00000006u, 0x00000891u, 0x00000890u, 0x00060041u, 0x000003f6u, 0x0000089au, 0x00000896u, 0x000000aeu, + 0x0000088fu, 0x0004003du, 0x00000006u, 0x0000089bu, 0x0000089au, 0x000200f9u, 0x0000089cu, 0x000200f8u, + 0x0000089cu, 0x000700f5u, 0x0000001bu, 0x000014bfu, 0x000014c0u, 0x00000879u, 0x0000183bu, 0x0000089fu, + 0x000700f5u, 0x0000001bu, 0x00001494u, 0x00001495u, 0x00000879u, 0x00001821u, 0x0000089fu, 0x000700f5u, + 0x00000008u, 0x0000146au, 0x0000146bu, 0x00000879u, 0x00001806u, 0x0000089fu, 0x000700f5u, 0x00000008u, + 0x00001440u, 0x00001441u, 0x00000879u, 0x000017ebu, 0x0000089fu, 0x000700f5u, 0x0000001bu, 0x00001413u, + 0x00001414u, 0x00000879u, 0x000017c3u, 0x0000089fu, 0x000700f5u, 0x0000001bu, 0x000013f5u, 0x000013f6u, + 0x00000879u, 0x0000179cu, 0x0000089fu, 0x000700f5u, 0x00000008u, 0x000013d8u, 0x000013d9u, 0x00000879u, + 0x00001774u, 0x0000089fu, 0x000700f5u, 0x00000008u, 0x000013bbu, 0x000013bcu, 0x00000879u, 0x0000174cu, + 0x0000089fu, 0x000700f5u, 0x00000008u, 0x00001375u, 0x00001344u, 0x00000879u, 0x000016dbu, 0x0000089fu, + 0x000700f5u, 0x0000000au, 0x00001372u, 0x00001337u, 0x00000879u, 0x0000169du, 0x0000089fu, 0x000700f5u, + 0x0000001bu, 0x00001369u, 0x0000136au, 0x00000879u, 0x0000165fu, 0x0000089fu, 0x000700f5u, 0x00000009u, + 0x00001364u, 0x00001311u, 0x00000879u, 0x00001652u, 0x0000089fu, 0x000700f5u, 0x00000006u, 0x00001363u, + 0x00000891u, 0x00000879u, 0x00000916u, 0x0000089fu, 0x000700f5u, 0x00000006u, 0x00001362u, 0x0000089bu, + 0x00000879u, 0x000008abu, 0x0000089fu, 0x000700f5u, 0x00000034u, 0x000015d1u, 0x00001329u, 0x00000879u, + 0x000015d2u, 0x0000089fu, 0x000700f5u, 0x00000034u, 0x000015b4u, 0x0000130cu, 0x00000879u, 0x000015b5u, + 0x0000089fu, 0x000500abu, 0x00000034u, 0x000008a2u, 0x00001362u, 0x0000019bu, 0x000400f6u, 0x0000089eu, + 0x0000089fu, 0x00000000u, 0x000400fau, 0x000008a2u, 0x0000089du, 0x0000089eu, 0x000200f8u, 0x0000089du, + 0x0006000cu, 0x00000017u, 0x000008a5u, 0x00000001u, 0x00000049u, 0x00001362u, 0x000500c4u, 0x00000017u, + 0x000008a7u, 0x000000b8u, 0x000008a5u, 0x0004007cu, 0x00000006u, 0x000008a8u, 0x000008a7u, 0x000400c8u, + 0x00000006u, 0x000008a9u, 0x000008a8u, 0x000500c7u, 0x00000006u, 0x000008abu, 0x00001362u, 0x000008a9u, + 0x00050084u, 0x00000017u, 0x000008afu, 0x00000851u, 0x00000881u, 0x00050080u, 0x00000017u, 0x000008b0u, + 0x000008a5u, 0x000008afu, 0x0004007cu, 0x00000006u, 0x000008b1u, 0x000008b0u, 0x00050084u, 0x00000006u, + 0x000008b7u, 0x00001363u, 0x000008b6u, 0x0004003du, 0x00000006u, 0x000008b9u, 0x000008b8u, 0x00050080u, + 0x00000006u, 0x000008bau, 0x000008b7u, 0x000008b9u, 0x00060041u, 0x000008c1u, 0x000008c2u, 0x000008bfu, + 0x000000aeu, 0x000008bau, 0x0004003du, 0x0000012cu, 0x000008c3u, 0x000008c2u, 0x00040072u, 0x00000017u, + 0x000008c4u, 0x000008c3u, 0x000500afu, 0x00000034u, 0x000008c6u, 0x000008c4u, 0x000000aeu, 0x000300f7u, + 0x000008c8u, 0x00000000u, 0x000400fau, 0x000008c6u, 0x000008c7u, 0x000008c8u, 0x000200f8u, 0x000008c7u, + 0x000500c7u, 0x00000017u, 0x000008cbu, 0x000008c4u, 0x000008cau, 0x000500abu, 0x00000034u, 0x000008ccu, + 0x000008cbu, 0x000000aeu, 0x000300f7u, 0x000008ceu, 0x00000000u, 0x000400fau, 0x000008ccu, 0x000008cdu, + 0x000008d4u, 0x000200f8u, 0x000008d4u, 0x000500c7u, 0x00000017u, 0x000008d6u, 0x000008c4u, 0x00000851u, + 0x000500abu, 0x00000034u, 0x000008d7u, 0x000008d6u, 0x000000aeu, 0x000300f7u, 0x000008d9u, 0x00000000u, + 0x000400fau, 0x000008d7u, 0x000008d8u, 0x000008e7u, 0x000200f8u, 0x000008e7u, 0x00060041u, 0x000008eeu, + 0x000008efu, 0x000008ecu, 0x000000aeu, 0x000008bau, 0x0004003du, 0x00000009u, 0x000008f0u, 0x000008efu, + 0x00060041u, 0x000008fcu, 0x000008fdu, 0x000008fau, 0x000000aeu, 0x000008bau, 0x0004003du, 0x00000017u, + 0x000008feu, 0x000008fdu, 0x00060041u, 0x0000038au, 0x00000905u, 0x00000903u, 0x000000aeu, 0x000008bau, + 0x0004003du, 0x00000008u, 0x00000906u, 0x00000905u, 0x00040072u, 0x0000012cu, 0x00000909u, 0x000008c4u, + 0x0004007cu, 0x00000008u, 0x0000090au, 0x00000909u, 0x000500c3u, 0x00000017u, 0x00000bd2u, 0x000008feu, + 0x000000d0u, 0x000500c7u, 0x00000017u, 0x00000bd5u, 0x000008feu, 0x00000738u, 0x00040071u, 0x00000006u, + 0x00000bd8u, 0x0000090au, 0x0004007cu, 0x00000017u, 0x00000bd9u, 0x00000bd8u, 0x00080041u, 0x0000038au, + 0x00000bdfu, 0x0000074bu, 0x000000aeu, 0x000008b1u, 0x000000aeu, 0x000001bfu, 0x0004003du, 0x00000008u, + 0x00000be0u, 0x00000bdfu, 0x00040071u, 0x00000006u, 0x00000be1u, 0x00000be0u, 0x00060041u, 0x000000b0u, + 0x00000c84u, 0x000000adu, 0x000000aeu, 0x000008b1u, 0x0004003du, 0x000000a9u, 0x00000c85u, 0x00000c84u, + 0x00050051u, 0x00000009u, 0x00000c96u, 0x00000c85u, 0x00000008u, 0x00050051u, 0x00000009u, 0x00000c98u, + 0x00000c85u, 0x00000009u, 0x00050051u, 0x0000000au, 0x00000c9cu, 0x00000c85u, 0x0000000bu, 0x00050051u, + 0x00000008u, 0x00000c9eu, 0x00000c85u, 0x0000000cu, 0x00060041u, 0x000000ebu, 0x00000ca9u, 0x000000e9u, + 0x000000aeu, 0x00000be1u, 0x0004003du, 0x000000e5u, 0x00000caau, 0x00000ca9u, 0x00050051u, 0x00000009u, + 0x00000cabu, 0x00000caau, 0x00000000u, 0x00050051u, 0x00000009u, 0x00000cadu, 0x00000caau, 0x00000001u, + 0x00050051u, 0x00000006u, 0x00000cafu, 0x00000caau, 0x00000002u, 0x00050051u, 0x00000008u, 0x00000cb1u, + 0x00000caau, 0x00000003u, 0x00050051u, 0x00000008u, 0x00000cb3u, 0x00000caau, 0x00000004u, 0x000500c7u, + 0x00000006u, 0x00000be8u, 0x00000cafu, 0x000003b3u, 0x000500abu, 0x00000034u, 0x00000be9u, 0x00000be8u, + 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000becu, 0x00000cafu, 0x000001bfu, 0x000500abu, 0x00000034u, + 0x00000bedu, 0x00000becu, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000bf0u, 0x00000cafu, 0x00000173u, + 0x000500abu, 0x00000034u, 0x00000bf1u, 0x00000bf0u, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000bf4u, + 0x00000cafu, 0x000003fcu, 0x000500abu, 0x00000034u, 0x00000bf5u, 0x00000bf4u, 0x0000019bu, 0x000500c7u, + 0x00000006u, 0x00000bf8u, 0x00000cafu, 0x0000076fu, 0x000500abu, 0x00000034u, 0x00000bf9u, 0x00000bf8u, + 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000bfcu, 0x00000cafu, 0x00000775u, 0x000500abu, 0x00000034u, + 0x00000bfdu, 0x00000bfcu, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000c00u, 0x00000cafu, 0x0000077bu, + 0x000500abu, 0x00000034u, 0x00000c01u, 0x00000c00u, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000c04u, + 0x00000cafu, 0x00000781u, 0x000500abu, 0x00000034u, 0x00000c05u, 0x00000c04u, 0x0000019bu, 0x000300f7u, + 0x00000cc5u, 0x00000000u, 0x000400fau, 0x00000bf5u, 0x00000cc0u, 0x00000cc4u, 0x000200f8u, 0x00000cc4u, + 0x000200f9u, 0x00000cc5u, 0x000200f8u, 0x00000cc0u, 0x00050051u, 0x00000008u, 0x00000cc2u, 0x00001364u, + 0x00000003u, 0x000500c7u, 0x00000008u, 0x00000cc3u, 0x00000cc2u, 0x0000065eu, 0x000200f9u, 0x00000cc5u, + 0x000200f8u, 0x00000cc5u, 0x000700f5u, 0x00000008u, 0x00001365u, 0x00000cc3u, 0x00000cc0u, 0x0000065eu, + 0x00000cc4u, 0x000300f7u, 0x00000cd6u, 0x00000000u, 0x000d00fbu, 0x00000375u, 0x00000cd6u, 0x00000000u, + 0x00000cc7u, 0x00000001u, 0x00000cc8u, 0x00000002u, 0x00000ccbu, 0x00000003u, 0x00000cd0u, 0x00000004u, + 0x00000cd3u, 0x000200f8u, 0x00000cd3u, 0x0008004fu, 0x0000001bu, 0x00000cd5u, 0x00001364u, 0x00001364u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000cd6u, 0x000200f8u, 0x00000cd0u, 0x0008004fu, + 0x0000001bu, 0x00000cd2u, 0x00001364u, 0x00001364u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000200f9u, + 0x00000cd6u, 0x000200f8u, 0x00000ccbu, 0x0008004fu, 0x0000001bu, 0x00000ccdu, 0x00001364u, 0x00001364u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, 0x0000001bu, 0x00000ccfu, 0x00000ccdu, 0x00001898u, + 0x000200f9u, 0x00000cd6u, 0x000200f8u, 0x00000cc8u, 0x0008004fu, 0x0000001bu, 0x00000ccau, 0x00001364u, + 0x00001364u, 0x00000000u, 0x00000000u, 0x00000000u, 0x000200f9u, 0x00000cd6u, 0x000200f8u, 0x00000cc7u, + 0x000200f9u, 0x00000cd6u, 0x000200f8u, 0x00000cd6u, 0x000f00f5u, 0x00000008u, 0x0000136fu, 0x00001365u, + 0x00000cc5u, 0x0000065eu, 0x00000cc7u, 0x0000065eu, 0x00000cc8u, 0x00001365u, 0x00000ccbu, 0x00001365u, + 0x00000cd0u, 0x00001365u, 0x00000cd3u, 0x000f00f5u, 0x0000001bu, 0x00001367u, 0x00001369u, 0x00000cc5u, + 0x00000669u, 0x00000cc7u, 0x00000ccau, 0x00000cc8u, 0x00000ccfu, 0x00000ccbu, 0x00000cd2u, 0x00000cd0u, + 0x00000cd5u, 0x00000cd3u, 0x00050051u, 0x00000008u, 0x00000cd9u, 0x00001367u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00000cdau, 0x00001367u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00000cdbu, 0x00001367u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00000cdcu, 0x00000cd9u, 0x00000cdau, 0x00000cdbu, 0x0000136fu, + 0x000500c2u, 0x00000008u, 0x00000c0au, 0x0000136fu, 0x000003c2u, 0x00040071u, 0x00000006u, 0x00000c0du, + 0x00000c9cu, 0x0004007cu, 0x00000017u, 0x00000c0eu, 0x00000c0du, 0x00040071u, 0x00000006u, 0x00000c11u, + 0x00000c9eu, 0x0004007cu, 0x00000017u, 0x00000c12u, 0x00000c11u, 0x00040071u, 0x00000006u, 0x00000c14u, + 0x00000c0au, 0x0004007cu, 0x00000017u, 0x00000c15u, 0x00000c14u, 0x00040071u, 0x00000006u, 0x00000c18u, + 0x00000cb3u, 0x0004007cu, 0x00000017u, 0x00000c19u, 0x00000c18u, 0x00050080u, 0x00000017u, 0x00000d32u, + 0x00000bd9u, 0x00000c15u, 0x000500afu, 0x00000034u, 0x00000d33u, 0x00000d32u, 0x000000cdu, 0x000300f7u, + 0x00000d9fu, 0x00000000u, 0x000400fau, 0x00000bedu, 0x00000cf3u, 0x00000d89u, 0x000200f8u, 0x00000d89u, + 0x00050082u, 0x00000017u, 0x00000d8cu, 0x00000299u, 0x00000c12u, 0x0007000cu, 0x00000017u, 0x00000d8du, + 0x00000001u, 0x00000027u, 0x00000d8cu, 0x000000c1u, 0x00040072u, 0x0000012cu, 0x00000d8eu, 0x00000d8du, + 0x0004007cu, 0x00000008u, 0x00000d8fu, 0x00000d8eu, 0x00050050u, 0x00000036u, 0x000018a2u, 0x000001edu, + 0x00000d8fu, 0x000400a8u, 0x00000034u, 0x00000d96u, 0x00000be9u, 0x000300f7u, 0x00000d9cu, 0x00000000u, + 0x000400fau, 0x00000d96u, 0x00000d97u, 0x00000d9cu, 0x000200f8u, 0x00000d97u, 0x000400a8u, 0x00000034u, + 0x00000d99u, 0x00000d33u, 0x000500a7u, 0x00000034u, 0x00000d9bu, 0x00000d99u, 0x00000c01u, 0x000200f9u, + 0x00000d9cu, 0x000200f8u, 0x00000d9cu, 0x000700f5u, 0x00000034u, 0x00000d9du, 0x00000be9u, 0x00000d89u, + 0x00000d9bu, 0x00000d97u, 0x000200f9u, 0x00000d9fu, 0x000200f8u, 0x00000cf3u, 0x00040071u, 0x00000006u, + 0x00000da9u, 0x00001372u, 0x0004007cu, 0x00000017u, 0x00000daau, 0x00000da9u, 0x000500c3u, 0x00000017u, + 0x00000dacu, 0x00000daau, 0x000000d6u, 0x000500c7u, 0x00000017u, 0x00000daeu, 0x00000daau, 0x0000013bu, + 0x00050082u, 0x00000017u, 0x00000db0u, 0x000000c7u, 0x00000dacu, 0x0007000cu, 0x00000017u, 0x00000db1u, + 0x00000001u, 0x0000002au, 0x00000db0u, 0x000000aeu, 0x000500c3u, 0x00000017u, 0x00000db3u, 0x00000142u, + 0x00000dacu, 0x00050082u, 0x00000017u, 0x00000db4u, 0x00000142u, 0x00000db3u, 0x000500c4u, 0x00000017u, + 0x00000db7u, 0x00000daeu, 0x00000db1u, 0x00050080u, 0x00000017u, 0x00000db9u, 0x00000db7u, 0x00000db4u, + 0x00040071u, 0x00000006u, 0x00000cf7u, 0x00001375u, 0x0004007cu, 0x00000017u, 0x00000cf8u, 0x00000cf7u, + 0x000500c4u, 0x00000017u, 0x00000dbdu, 0x000000b8u, 0x00000cf8u, 0x000500c7u, 0x00000017u, 0x00000cfeu, + 0x00000dacu, 0x00000299u, 0x00050082u, 0x00000017u, 0x00000d03u, 0x00000c12u, 0x00000cf8u, 0x0008000cu, + 0x00000017u, 0x00000d04u, 0x00000001u, 0x0000002du, 0x00000d03u, 0x000000aeu, 0x000000c1u, 0x00040072u, + 0x0000012cu, 0x00000d05u, 0x00000d04u, 0x0004007cu, 0x00000008u, 0x00000d06u, 0x00000d05u, 0x00050082u, + 0x00000017u, 0x00000d0cu, 0x00000cf8u, 0x00000c12u, 0x0008000cu, 0x00000017u, 0x00000d0du, 0x00000001u, + 0x0000002du, 0x00000d0cu, 0x000000aeu, 0x000000c1u, 0x00040072u, 0x0000012cu, 0x00000d0eu, 0x00000d0du, + 0x0004007cu, 0x00000008u, 0x00000d0fu, 0x00000d0eu, 0x00050050u, 0x00000036u, 0x000018a3u, 0x00000d06u, + 0x00000d0fu, 0x000500b1u, 0x00000034u, 0x00000d12u, 0x00000cfeu, 0x000000beu, 0x000300f7u, 0x00000d1eu, + 0x00000000u, 0x000400fau, 0x00000d12u, 0x00000d13u, 0x00000d1eu, 0x000200f8u, 0x00000d13u, 0x000500abu, + 0x00000034u, 0x00000d15u, 0x00000dbdu, 0x000002b4u, 0x000300f7u, 0x00000d1du, 0x00000000u, 0x000400fau, + 0x00000d15u, 0x00000d16u, 0x00000d1cu, 0x000200f8u, 0x00000d1cu, 0x000200f9u, 0x00000d1du, 0x000200f8u, + 0x00000d16u, 0x000500c4u, 0x00000017u, 0x00000d18u, 0x00000dbdu, 0x000000b8u, 0x000500c3u, 0x00000017u, + 0x00000d1au, 0x000002bau, 0x00000cfeu, 0x0007000cu, 0x00000017u, 0x00000d1bu, 0x00000001u, 0x0000002au, + 0x00000d18u, 0x00000d1au, 0x000200f9u, 0x00000d1du, 0x000200f8u, 0x00000d1du, 0x000700f5u, 0x00000017u, + 0x00001381u, 0x00000d1bu, 0x00000d16u, 0x000002c0u, 0x00000d1cu, 0x000600a9u, 0x00000034u, 0x000018a6u, + 0x00000d15u, 0x0000029cu, 0x000002bfu, 0x000200f9u, 0x00000d1eu, 0x000200f8u, 0x00000d1eu, 0x000700f5u, + 0x00000034u, 0x00001384u, 0x0000029cu, 0x00000cf3u, 0x000018a6u, 0x00000d1du, 0x000700f5u, 0x00000017u, + 0x00001380u, 0x00000dbdu, 0x00000cf3u, 0x00001381u, 0x00000d1du, 0x000500c5u, 0x00000017u, 0x00000d21u, + 0x00000c0eu, 0x00001380u, 0x000500abu, 0x00000034u, 0x00000dc1u, 0x00000d21u, 0x000000aeu, 0x000300f7u, + 0x00000dc6u, 0x00000000u, 0x000400fau, 0x00000dc1u, 0x00000dc2u, 0x00000dc6u, 0x000200f8u, 0x00000dc2u, + 0x0006000cu, 0x00000017u, 0x00000dc4u, 0x00000001u, 0x0000004au, 0x00000d21u, 0x000500c4u, 0x00000017u, + 0x00000dc5u, 0x000000b8u, 0x00000dc4u, 0x000200f9u, 0x00000dc6u, 0x000200f8u, 0x00000dc6u, 0x000700f5u, + 0x00000017u, 0x00001382u, 0x00000d21u, 0x00000d1eu, 0x00000dc5u, 0x00000dc2u, 0x000500c4u, 0x00000017u, + 0x00000d25u, 0x00001382u, 0x000000beu, 0x000400a8u, 0x00000034u, 0x00000d27u, 0x00001384u, 0x000300f7u, + 0x00000d2eu, 0x00000000u, 0x000400fau, 0x00000d27u, 0x00000d28u, 0x00000d2eu, 0x000200f8u, 0x00000d28u, + 0x00050080u, 0x00000017u, 0x00000d2bu, 0x00000bd2u, 0x00000d25u, 0x000500afu, 0x00000034u, 0x00000d2du, + 0x00000d2bu, 0x00000db9u, 0x000200f9u, 0x00000d2eu, 0x000200f8u, 0x00000d2eu, 0x000700f5u, 0x00000034u, + 0x00000d2fu, 0x00001384u, 0x00000dc6u, 0x00000d2du, 0x00000d28u, 0x000400a8u, 0x00000034u, 0x00000d35u, + 0x00000be9u, 0x000300f7u, 0x00000d3du, 0x00000000u, 0x000400fau, 0x00000d35u, 0x00000d36u, 0x00000d3du, + 0x000200f8u, 0x00000d36u, 0x000400a8u, 0x00000034u, 0x00000d38u, 0x00000d33u, 0x000500a7u, 0x00000034u, + 0x00000d3au, 0x00000d38u, 0x00000c01u, 0x000500a7u, 0x00000034u, 0x00000d3cu, 0x00000d3au, 0x00000d2fu, + 0x000200f9u, 0x00000d3du, 0x000200f8u, 0x00000d3du, 0x000700f5u, 0x00000034u, 0x00000d3eu, 0x00000be9u, + 0x00000d2eu, 0x00000d3cu, 0x00000d36u, 0x000500aau, 0x00000034u, 0x00000d41u, 0x00000db9u, 0x0000014eu, + 0x000500b1u, 0x00000034u, 0x00000d44u, 0x00000bd2u, 0x00000db9u, 0x00050082u, 0x00000017u, 0x00000d47u, + 0x00000bd2u, 0x00000d25u, 0x000500b3u, 0x00000034u, 0x00000d4bu, 0x00000d47u, 0x00000db9u, 0x000500a6u, + 0x00000034u, 0x00000d4cu, 0x00001384u, 0x00000d4bu, 0x000300f7u, 0x00000d88u, 0x00000000u, 0x000b00fbu, + 0x00000c19u, 0x00000d88u, 0x00000000u, 0x00000d4eu, 0x00000001u, 0x00000d58u, 0x00000002u, 0x00000d7du, + 0x00000003u, 0x00000d81u, 0x000200f8u, 0x00000d81u, 0x000500a7u, 0x00000034u, 0x00000d84u, 0x00000d2fu, + 0x00000d4cu, 0x000400a8u, 0x00000034u, 0x00000d86u, 0x00000d41u, 0x000500a7u, 0x00000034u, 0x00000d87u, + 0x00000d84u, 0x00000d86u, 0x000200f9u, 0x00000d88u, 0x000200f8u, 0x00000d7du, 0x000500a6u, 0x00000034u, + 0x00000d80u, 0x00000d44u, 0x00000d41u, 0x000200f9u, 0x00000d88u, 0x000200f8u, 0x00000d58u, 0x000400a8u, + 0x00000034u, 0x00000d5au, 0x00000d44u, 0x000400a8u, 0x00000034u, 0x00000d5cu, 0x00000d2fu, 0x000500a6u, + 0x00000034u, 0x00000d5du, 0x00000d5au, 0x00000d5cu, 0x000400a8u, 0x00000034u, 0x00000d5fu, 0x00000d33u, + 0x000500a6u, 0x00000034u, 0x00000d60u, 0x00000d5du, 0x00000d5fu, 0x000300f7u, 0x00000d7cu, 0x00000000u, + 0x000400fau, 0x00000d60u, 0x00000d61u, 0x00000d6bu, 0x000200f8u, 0x00000d6bu, 0x000500c7u, 0x00000017u, + 0x00000d6du, 0x00001382u, 0x000002c0u, 0x0006000cu, 0x00000017u, 0x00000dcbu, 0x00000001u, 0x0000004au, + 0x00000d6du, 0x0007000cu, 0x00000017u, 0x00000dccu, 0x00000001u, 0x0000002au, 0x00000dcbu, 0x000000aeu, + 0x000500c3u, 0x00000017u, 0x00000d71u, 0x00000db9u, 0x00000dccu, 0x000500c3u, 0x00000017u, 0x00000d74u, + 0x00000bd2u, 0x00000dccu, 0x00050082u, 0x00000017u, 0x00000d75u, 0x00000d71u, 0x00000d74u, 0x000500c7u, + 0x00000017u, 0x00000d76u, 0x00000d75u, 0x00000299u, 0x00050084u, 0x00000017u, 0x00000d79u, 0x00000d76u, + 0x00000bd9u, 0x000500c3u, 0x00000017u, 0x00000d7au, 0x00000d79u, 0x000000beu, 0x0007000cu, 0x00000017u, + 0x00000d7bu, 0x00000001u, 0x00000027u, 0x00000d7au, 0x000000cdu, 0x000200f9u, 0x00000d7cu, 0x000200f8u, + 0x00000d61u, 0x000400a8u, 0x00000034u, 0x00000d63u, 0x00000d41u, 0x000300f7u, 0x00000d69u, 0x00000000u, + 0x000400fau, 0x00000d63u, 0x00000d64u, 0x00000d69u, 0x000200f8u, 0x00000d64u, 0x000600a9u, 0x00000034u, + 0x00000d68u, 0x00000d33u, 0x00000d44u, 0x00000d4cu, 0x000200f9u, 0x00000d69u, 0x000200f8u, 0x00000d69u, + 0x000700f5u, 0x00000034u, 0x00000d6au, 0x00000d41u, 0x00000d61u, 0x00000d68u, 0x00000d64u, 0x000200f9u, + 0x00000d7cu, 0x000200f8u, 0x00000d7cu, 0x000700f5u, 0x00000017u, 0x00001395u, 0x00000bd9u, 0x00000d69u, + 0x00000d7bu, 0x00000d6bu, 0x000700f5u, 0x00000034u, 0x00001391u, 0x00000d6au, 0x00000d69u, 0x000002bfu, + 0x00000d6bu, 0x000200f9u, 0x00000d88u, 0x000200f8u, 0x00000d4eu, 0x000400a8u, 0x00000034u, 0x00000d50u, + 0x00000d41u, 0x000300f7u, 0x00000d56u, 0x00000000u, 0x000400fau, 0x00000d50u, 0x00000d51u, 0x00000d56u, + 0x000200f8u, 0x00000d51u, 0x000600a9u, 0x00000034u, 0x00000d55u, 0x00000d33u, 0x00000d44u, 0x00000d4cu, + 0x000200f9u, 0x00000d56u, 0x000200f8u, 0x00000d56u, 0x000700f5u, 0x00000034u, 0x00000d57u, 0x00000d41u, + 0x00000d4eu, 0x00000d55u, 0x00000d51u, 0x000200f9u, 0x00000d88u, 0x000200f8u, 0x00000d88u, 0x000d00f5u, + 0x00000017u, 0x00001393u, 0x00000bd9u, 0x00000d3du, 0x00000bd9u, 0x00000d56u, 0x00001395u, 0x00000d7cu, + 0x00000bd9u, 0x00000d7du, 0x00000bd9u, 0x00000d81u, 0x000d00f5u, 0x00000034u, 0x00001390u, 0x0000029cu, + 0x00000d3du, 0x00000d57u, 0x00000d56u, 0x00001391u, 0x00000d7cu, 0x00000d80u, 0x00000d7du, 0x00000d87u, + 0x00000d81u, 0x000200f9u, 0x00000d9fu, 0x000200f8u, 0x00000d9fu, 0x000700f5u, 0x00000036u, 0x000013a2u, + 0x000018a3u, 0x00000d88u, 0x000018a2u, 0x00000d9cu, 0x000700f5u, 0x00000034u, 0x00001398u, 0x00000d3eu, + 0x00000d88u, 0x00000d9du, 0x00000d9cu, 0x000700f5u, 0x00000017u, 0x00001392u, 0x00001393u, 0x00000d88u, + 0x00000bd9u, 0x00000d9cu, 0x000700f5u, 0x00000034u, 0x0000138fu, 0x00001390u, 0x00000d88u, 0x000002bfu, + 0x00000d9cu, 0x000300f7u, 0x00000c2du, 0x00000000u, 0x000400fau, 0x0000138fu, 0x00000c27u, 0x00000c2du, + 0x000200f8u, 0x00000c27u, 0x000400a8u, 0x00000034u, 0x00000c29u, 0x00000c01u, 0x000500abu, 0x00000034u, + 0x00000c2bu, 0x00001392u, 0x000000aeu, 0x000500a6u, 0x00000034u, 0x00000c2cu, 0x00000c29u, 0x00000c2bu, + 0x000200f9u, 0x00000c2du, 0x000200f8u, 0x00000c2du, 0x000700f5u, 0x00000034u, 0x00000c2eu, 0x0000138fu, + 0x00000d9fu, 0x00000c2cu, 0x00000c27u, 0x000300f7u, 0x00000c7fu, 0x00000000u, 0x000400fau, 0x00000c2eu, + 0x00000c2fu, 0x00000c7fu, 0x000200f8u, 0x00000c2fu, 0x000300f7u, 0x00000c4cu, 0x00000000u, 0x000400fau, + 0x00000bfdu, 0x00000c3bu, 0x00000c4cu, 0x000200f8u, 0x00000c3bu, 0x00050051u, 0x00000008u, 0x00000dd9u, + 0x00000cabu, 0x00000002u, 0x00040071u, 0x00000006u, 0x00000ddau, 0x00000dd9u, 0x0004007cu, 0x00000017u, + 0x00000ddbu, 0x00000ddau, 0x000300f7u, 0x00000decu, 0x00000000u, 0x000b00fbu, 0x00000ddbu, 0x00000decu, + 0x00000000u, 0x00000ddcu, 0x00000001u, 0x00000de0u, 0x00000002u, 0x00000de4u, 0x00000003u, 0x00000de8u, + 0x000200f8u, 0x00000de8u, 0x0008004fu, 0x0000001bu, 0x00000debu, 0x00000c96u, 0x00000c96u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000decu, 0x000200f8u, 0x00000de4u, 0x0008004fu, 0x0000001bu, + 0x00000de7u, 0x00000c98u, 0x00000c98u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000decu, + 0x000200f8u, 0x00000de0u, 0x0008004fu, 0x0000001bu, 0x00000de3u, 0x00000cdcu, 0x00000cdcu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000decu, 0x000200f8u, 0x00000ddcu, 0x0008004fu, 0x0000001bu, + 0x00000ddfu, 0x000008f0u, 0x000008f0u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000decu, + 0x000200f8u, 0x00000decu, 0x000d00f5u, 0x0000001bu, 0x00001409u, 0x00001413u, 0x00000c3bu, 0x00000ddfu, + 0x00000ddcu, 0x00000de3u, 0x00000de0u, 0x00000de7u, 0x00000de4u, 0x00000debu, 0x00000de8u, 0x00050051u, + 0x00000008u, 0x00000df8u, 0x00000cabu, 0x00000000u, 0x00040071u, 0x00000006u, 0x00000df9u, 0x00000df8u, + 0x0004007cu, 0x00000017u, 0x00000dfau, 0x00000df9u, 0x000300f7u, 0x00000e0bu, 0x00000000u, 0x000b00fbu, + 0x00000dfau, 0x00000e0bu, 0x00000000u, 0x00000dfbu, 0x00000001u, 0x00000dffu, 0x00000002u, 0x00000e03u, + 0x00000003u, 0x00000e07u, 0x000200f8u, 0x00000e07u, 0x0008004fu, 0x0000001bu, 0x00000e0au, 0x00000c96u, + 0x00000c96u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000e0bu, 0x000200f8u, 0x00000e03u, + 0x0008004fu, 0x0000001bu, 0x00000e06u, 0x00000c98u, 0x00000c98u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00000e0bu, 0x000200f8u, 0x00000dffu, 0x0008004fu, 0x0000001bu, 0x00000e02u, 0x00000cdcu, + 0x00000cdcu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000e0bu, 0x000200f8u, 0x00000dfbu, + 0x0008004fu, 0x0000001bu, 0x00000dfeu, 0x000008f0u, 0x000008f0u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00000e0bu, 0x000200f8u, 0x00000e0bu, 0x000d00f5u, 0x0000001bu, 0x000013e9u, 0x000013f5u, + 0x00000decu, 0x00000dfeu, 0x00000dfbu, 0x00000e02u, 0x00000dffu, 0x00000e06u, 0x00000e03u, 0x00000e0au, + 0x00000e07u, 0x00050051u, 0x00000008u, 0x00000e2cu, 0x00000cabu, 0x00000001u, 0x00040071u, 0x00000006u, + 0x00000e2du, 0x00000e2cu, 0x0004007cu, 0x00000017u, 0x00000e2eu, 0x00000e2du, 0x000300f7u, 0x00000e39u, + 0x00000000u, 0x000b00fbu, 0x00000e2eu, 0x00000e39u, 0x00000000u, 0x00000e2fu, 0x00000001u, 0x00000e32u, + 0x00000002u, 0x00000e35u, 0x00000003u, 0x00000e38u, 0x000200f8u, 0x00000e38u, 0x000200f9u, 0x00000e39u, + 0x000200f8u, 0x00000e35u, 0x000200f9u, 0x00000e39u, 0x000200f8u, 0x00000e32u, 0x00050051u, 0x00000008u, + 0x00000e34u, 0x00000c96u, 0x00000003u, 0x000200f9u, 0x00000e39u, 0x000200f8u, 0x00000e2fu, 0x00050051u, + 0x00000008u, 0x00000e31u, 0x000008f0u, 0x00000003u, 0x000200f9u, 0x00000e39u, 0x000200f8u, 0x00000e39u, + 0x000d00f5u, 0x00000008u, 0x000013adu, 0x000013bbu, 0x00000e0bu, 0x00000e31u, 0x00000e2fu, 0x00000e34u, + 0x00000e32u, 0x00000906u, 0x00000e35u, 0x000001edu, 0x00000e38u, 0x00050051u, 0x00000008u, 0x00000e3bu, + 0x00000cabu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00000e3cu, 0x00000e3bu, 0x0004007cu, 0x00000017u, + 0x00000e3du, 0x00000e3cu, 0x000300f7u, 0x00000e47u, 0x00000000u, 0x000b00fbu, 0x00000e3du, 0x00000e47u, + 0x00000000u, 0x00000e3eu, 0x00000001u, 0x00000e42u, 0x00000002u, 0x00000e45u, 0x00000003u, 0x00000e46u, + 0x000200f8u, 0x00000e46u, 0x000200f9u, 0x00000e47u, 0x000200f8u, 0x00000e45u, 0x000200f9u, 0x00000e47u, + 0x000200f8u, 0x00000e42u, 0x000200f9u, 0x00000e47u, 0x000200f8u, 0x00000e3eu, 0x000400c8u, 0x00000008u, + 0x00000e40u, 0x000013adu, 0x000500c7u, 0x00000008u, 0x00000e41u, 0x00000e40u, 0x000001d2u, 0x000200f9u, + 0x00000e47u, 0x000200f8u, 0x00000e47u, 0x000d00f5u, 0x00000008u, 0x000013c9u, 0x000013d8u, 0x00000e39u, + 0x00000e41u, 0x00000e3eu, 0x0000136fu, 0x00000e42u, 0x000001d2u, 0x00000e45u, 0x000001edu, 0x00000e46u, + 0x000500c2u, 0x00000008u, 0x00000e49u, 0x000013adu, 0x00000204u, 0x000500c2u, 0x00000008u, 0x00000e4bu, + 0x000013c9u, 0x00000204u, 0x000500aau, 0x00000034u, 0x00000e50u, 0x00000e3du, 0x000000b8u, 0x000300f7u, + 0x00000e5cu, 0x00000000u, 0x000400fau, 0x00000e50u, 0x00000e51u, 0x00000e5cu, 0x000200f8u, 0x00000e51u, + 0x00050051u, 0x00000008u, 0x00000e54u, 0x000013a2u, 0x00000000u, 0x000500c2u, 0x00000008u, 0x00000e55u, + 0x00000e49u, 0x00000e54u, 0x000500c7u, 0x00000008u, 0x00000e56u, 0x00000e55u, 0x00000214u, 0x00050051u, + 0x00000008u, 0x00000e59u, 0x000013a2u, 0x00000001u, 0x000500c2u, 0x00000008u, 0x00000e5au, 0x00000e4bu, + 0x00000e59u, 0x000500c5u, 0x00000008u, 0x00000e5bu, 0x00000e5au, 0x00000204u, 0x000200f9u, 0x00000e5cu, + 0x000200f8u, 0x00000e5cu, 0x000700f5u, 0x00000008u, 0x00001420u, 0x00000e4bu, 0x00000e47u, 0x00000e5bu, + 0x00000e51u, 0x000700f5u, 0x00000008u, 0x00001402u, 0x00000e49u, 0x00000e47u, 0x00000e56u, 0x00000e51u, + 0x00040071u, 0x0000021fu, 0x00000e5eu, 0x000013e9u, 0x0004007cu, 0x0000021bu, 0x00000e5fu, 0x00000e5eu, + 0x00040071u, 0x0000000au, 0x00000e61u, 0x00001402u, 0x0004007cu, 0x0000000bu, 0x00000e62u, 0x00000e61u, + 0x00060050u, 0x0000021bu, 0x00000e63u, 0x00000e62u, 0x00000e62u, 0x00000e62u, 0x00050084u, 0x0000021bu, + 0x00000e64u, 0x00000e5fu, 0x00000e63u, 0x00040071u, 0x0000021fu, 0x00000e66u, 0x00001409u, 0x0004007cu, + 0x0000021bu, 0x00000e67u, 0x00000e66u, 0x00040071u, 0x0000000au, 0x00000e69u, 0x00001420u, 0x0004007cu, + 0x0000000bu, 0x00000e6au, 0x00000e69u, 0x00050080u, 0x0000000bu, 0x00000e6bu, 0x00000e6au, 0x0000022du, + 0x00060050u, 0x0000021bu, 0x00000e6cu, 0x00000e6bu, 0x00000e6bu, 0x00000e6bu, 0x00050084u, 0x0000021bu, + 0x00000e6du, 0x00000e67u, 0x00000e6cu, 0x00050080u, 0x0000021bu, 0x00000e6eu, 0x00000e64u, 0x00000e6du, + 0x000500c3u, 0x0000021bu, 0x00000e76u, 0x00000e6eu, 0x0000189eu, 0x00040072u, 0x0000012du, 0x00000e77u, + 0x00000e76u, 0x0004007cu, 0x0000001bu, 0x00000e78u, 0x00000e77u, 0x000500c7u, 0x0000001bu, 0x00000eaeu, + 0x00000e78u, 0x0000189fu, 0x00050051u, 0x00000008u, 0x00000c45u, 0x00000eaeu, 0x00000000u, 0x00060052u, + 0x00000009u, 0x000012afu, 0x00000c45u, 0x000008f0u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00000c47u, + 0x00000eaeu, 0x00000001u, 0x00060052u, 0x00000009u, 0x000012b1u, 0x00000c47u, 0x000012afu, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00000c49u, 0x00000eaeu, 0x00000002u, 0x00060052u, 0x00000009u, 0x000012b3u, + 0x00000c49u, 0x000012b1u, 0x00000002u, 0x000200f9u, 0x00000c4cu, 0x000200f8u, 0x00000c4cu, 0x000700f5u, + 0x0000001bu, 0x000017dau, 0x00001413u, 0x00000c2fu, 0x00001409u, 0x00000e5cu, 0x000700f5u, 0x0000001bu, + 0x000017b3u, 0x000013f5u, 0x00000c2fu, 0x00000e78u, 0x00000e5cu, 0x000700f5u, 0x00000008u, 0x0000178bu, + 0x000013d8u, 0x00000c2fu, 0x00001420u, 0x00000e5cu, 0x000700f5u, 0x00000008u, 0x00001763u, 0x000013bbu, + 0x00000c2fu, 0x00001402u, 0x00000e5cu, 0x000700f5u, 0x00000009u, 0x0000142fu, 0x000008f0u, 0x00000c2fu, + 0x000012b3u, 0x00000e5cu, 0x00070050u, 0x000018a7u, 0x000018a8u, 0x00000bfdu, 0x00000bfdu, 0x00000bfdu, + 0x00000bfdu, 0x000600a9u, 0x00000009u, 0x000018a9u, 0x000018a8u, 0x00000cadu, 0x00000cabu, 0x000300f7u, + 0x00000f93u, 0x00000000u, 0x000300fbu, 0x0000019bu, 0x00000ebbu, 0x000200f8u, 0x00000ebbu, 0x00050051u, + 0x00000008u, 0x00000ebdu, 0x000018a9u, 0x00000002u, 0x00040071u, 0x00000006u, 0x00000ebeu, 0x00000ebdu, + 0x0004007cu, 0x00000017u, 0x00000ebfu, 0x00000ebeu, 0x000300f7u, 0x00000ed0u, 0x00000000u, 0x000b00fbu, + 0x00000ebfu, 0x00000ed0u, 0x00000000u, 0x00000ec0u, 0x00000001u, 0x00000ec4u, 0x00000002u, 0x00000ec8u, + 0x00000003u, 0x00000eccu, 0x000200f8u, 0x00000eccu, 0x0008004fu, 0x0000001bu, 0x00000ecfu, 0x00000c96u, + 0x00000c96u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ed0u, 0x000200f8u, 0x00000ec8u, + 0x0008004fu, 0x0000001bu, 0x00000ecbu, 0x00000c98u, 0x00000c98u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00000ed0u, 0x000200f8u, 0x00000ec4u, 0x0008004fu, 0x0000001bu, 0x00000ec7u, 0x00000cdcu, + 0x00000cdcu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000ed0u, 0x000200f8u, 0x00000ec0u, + 0x0008004fu, 0x0000001bu, 0x00000ec3u, 0x0000142fu, 0x0000142fu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00000ed0u, 0x000200f8u, 0x00000ed0u, 0x000d00f5u, 0x0000001bu, 0x000014b4u, 0x000014bfu, + 0x00000ebbu, 0x00000ec3u, 0x00000ec0u, 0x00000ec7u, 0x00000ec4u, 0x00000ecbu, 0x00000ec8u, 0x00000ecfu, + 0x00000eccu, 0x000400a8u, 0x00000034u, 0x00000ed5u, 0x00000d33u, 0x000500a7u, 0x00000034u, 0x00000ed6u, + 0x00000bf9u, 0x00000ed5u, 0x000300f7u, 0x00000ed9u, 0x00000000u, 0x000400fau, 0x00000ed6u, 0x00000ed7u, + 0x00000ed9u, 0x000200f8u, 0x00000ed7u, 0x000200f9u, 0x00000f93u, 0x000200f8u, 0x00000ed9u, 0x00050051u, + 0x00000008u, 0x00000edcu, 0x000018a9u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00000eddu, 0x00000edcu, + 0x0004007cu, 0x00000017u, 0x00000edeu, 0x00000eddu, 0x000300f7u, 0x00000eefu, 0x00000000u, 0x000b00fbu, + 0x00000edeu, 0x00000eefu, 0x00000000u, 0x00000edfu, 0x00000001u, 0x00000ee3u, 0x00000002u, 0x00000ee7u, + 0x00000003u, 0x00000eebu, 0x000200f8u, 0x00000eebu, 0x0008004fu, 0x0000001bu, 0x00000eeeu, 0x00000c96u, + 0x00000c96u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000eefu, 0x000200f8u, 0x00000ee7u, + 0x0008004fu, 0x0000001bu, 0x00000eeau, 0x00000c98u, 0x00000c98u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00000eefu, 0x000200f8u, 0x00000ee3u, 0x0008004fu, 0x0000001bu, 0x00000ee6u, 0x00000cdcu, + 0x00000cdcu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00000eefu, 0x000200f8u, 0x00000edfu, + 0x0008004fu, 0x0000001bu, 0x00000ee2u, 0x0000142fu, 0x0000142fu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00000eefu, 0x000200f8u, 0x00000eefu, 0x000d00f5u, 0x0000001bu, 0x00001487u, 0x00001494u, + 0x00000ed9u, 0x00000ee2u, 0x00000edfu, 0x00000ee6u, 0x00000ee3u, 0x00000eeau, 0x00000ee7u, 0x00000eeeu, + 0x00000eebu, 0x000400a8u, 0x00000034u, 0x00000ef3u, 0x00001398u, 0x000400a8u, 0x00000034u, 0x00000ef4u, + 0x00000ef3u, 0x000300f7u, 0x00000f09u, 0x00000000u, 0x000400fau, 0x00000ef4u, 0x00000ef5u, 0x00000f09u, + 0x000200f8u, 0x00000ef5u, 0x00050051u, 0x00000008u, 0x00000ef7u, 0x000018a9u, 0x00000001u, 0x00040071u, + 0x00000006u, 0x00000ef8u, 0x00000ef7u, 0x0004007cu, 0x00000017u, 0x00000ef9u, 0x00000ef8u, 0x000500aau, + 0x00000034u, 0x00000efau, 0x00000ef9u, 0x000000aeu, 0x000300f7u, 0x00000f01u, 0x00000000u, 0x000400fau, + 0x00000efau, 0x00000efbu, 0x00000f01u, 0x000200f8u, 0x00000efbu, 0x00050051u, 0x00000008u, 0x00000efdu, + 0x000018a9u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00000efeu, 0x00000efdu, 0x0004007cu, 0x00000017u, + 0x00000effu, 0x00000efeu, 0x000500aau, 0x00000034u, 0x00000f00u, 0x00000effu, 0x000000aeu, 0x000200f9u, + 0x00000f01u, 0x000200f8u, 0x00000f01u, 0x000700f5u, 0x00000034u, 0x00000f02u, 0x00000efau, 0x00000ef5u, + 0x00000f00u, 0x00000efbu, 0x000300f7u, 0x00000f07u, 0x00000000u, 0x000400fau, 0x00000f02u, 0x00000f03u, + 0x00000f07u, 0x000200f8u, 0x00000f03u, 0x00050051u, 0x00000008u, 0x00000f05u, 0x0000142fu, 0x00000003u, + 0x000500aau, 0x00000034u, 0x00000f06u, 0x00000f05u, 0x000001d2u, 0x000200f9u, 0x00000f07u, 0x000200f8u, + 0x00000f07u, 0x000700f5u, 0x00000034u, 0x00000f08u, 0x00000f02u, 0x00000f01u, 0x00000f06u, 0x00000f03u, + 0x000200f9u, 0x00000f09u, 0x000200f8u, 0x00000f09u, 0x000700f5u, 0x00000034u, 0x00000f0au, 0x00000ef3u, + 0x00000eefu, 0x00000f08u, 0x00000f07u, 0x000300f7u, 0x00000f0du, 0x00000000u, 0x000400fau, 0x00000f0au, + 0x00000f0bu, 0x00000f0du, 0x000200f8u, 0x00000f0bu, 0x000200f9u, 0x00000f93u, 0x000200f8u, 0x00000f0du, + 0x00050051u, 0x00000008u, 0x00000f10u, 0x000018a9u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00000f11u, + 0x00000f10u, 0x0004007cu, 0x00000017u, 0x00000f12u, 0x00000f11u, 0x000300f7u, 0x00000f1du, 0x00000000u, + 0x000b00fbu, 0x00000f12u, 0x00000f1du, 0x00000000u, 0x00000f13u, 0x00000001u, 0x00000f16u, 0x00000002u, + 0x00000f19u, 0x00000003u, 0x00000f1cu, 0x000200f8u, 0x00000f1cu, 0x000200f9u, 0x00000f1du, 0x000200f8u, + 0x00000f19u, 0x000200f9u, 0x00000f1du, 0x000200f8u, 0x00000f16u, 0x00050051u, 0x00000008u, 0x00000f18u, + 0x00000c96u, 0x00000003u, 0x000200f9u, 0x00000f1du, 0x000200f8u, 0x00000f13u, 0x00050051u, 0x00000008u, + 0x00000f15u, 0x0000142fu, 0x00000003u, 0x000200f9u, 0x00000f1du, 0x000200f8u, 0x00000f1du, 0x000d00f5u, + 0x00000008u, 0x00001431u, 0x00001440u, 0x00000f0du, 0x00000f15u, 0x00000f13u, 0x00000f18u, 0x00000f16u, + 0x00000906u, 0x00000f19u, 0x000001edu, 0x00000f1cu, 0x00050051u, 0x00000008u, 0x00000f1fu, 0x000018a9u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x00000f20u, 0x00000f1fu, 0x0004007cu, 0x00000017u, 0x00000f21u, + 0x00000f20u, 0x000300f7u, 0x00000f2bu, 0x00000000u, 0x000b00fbu, 0x00000f21u, 0x00000f2bu, 0x00000000u, + 0x00000f22u, 0x00000001u, 0x00000f26u, 0x00000002u, 0x00000f29u, 0x00000003u, 0x00000f2au, 0x000200f8u, + 0x00000f2au, 0x000200f9u, 0x00000f2bu, 0x000200f8u, 0x00000f29u, 0x000200f9u, 0x00000f2bu, 0x000200f8u, + 0x00000f26u, 0x000200f9u, 0x00000f2bu, 0x000200f8u, 0x00000f22u, 0x000400c8u, 0x00000008u, 0x00000f24u, + 0x00001431u, 0x000500c7u, 0x00000008u, 0x00000f25u, 0x00000f24u, 0x000001d2u, 0x000200f9u, 0x00000f2bu, + 0x000200f8u, 0x00000f2bu, 0x000d00f5u, 0x00000008u, 0x0000145au, 0x0000146au, 0x00000f1du, 0x00000f25u, + 0x00000f22u, 0x0000136fu, 0x00000f26u, 0x000001d2u, 0x00000f29u, 0x000001edu, 0x00000f2au, 0x000500c2u, + 0x00000008u, 0x00000f2du, 0x00001431u, 0x00000204u, 0x000500c2u, 0x00000008u, 0x00000f2fu, 0x0000145au, + 0x00000204u, 0x000500aau, 0x00000034u, 0x00000f34u, 0x00000f21u, 0x000000b8u, 0x000300f7u, 0x00000f40u, + 0x00000000u, 0x000400fau, 0x00000f34u, 0x00000f35u, 0x00000f40u, 0x000200f8u, 0x00000f35u, 0x00050051u, + 0x00000008u, 0x00000f38u, 0x000013a2u, 0x00000000u, 0x000500c2u, 0x00000008u, 0x00000f39u, 0x00000f2du, + 0x00000f38u, 0x000500c7u, 0x00000008u, 0x00000f3au, 0x00000f39u, 0x00000214u, 0x00050051u, 0x00000008u, + 0x00000f3du, 0x000013a2u, 0x00000001u, 0x000500c2u, 0x00000008u, 0x00000f3eu, 0x00000f2fu, 0x00000f3du, + 0x000500c5u, 0x00000008u, 0x00000f3fu, 0x00000f3eu, 0x00000204u, 0x000200f9u, 0x00000f40u, 0x000200f8u, + 0x00000f40u, 0x000700f5u, 0x00000008u, 0x000014d8u, 0x00000f2fu, 0x00000f2bu, 0x00000f3fu, 0x00000f35u, + 0x000700f5u, 0x00000008u, 0x000014adu, 0x00000f2du, 0x00000f2bu, 0x00000f3au, 0x00000f35u, 0x00040071u, + 0x0000021fu, 0x00000f42u, 0x00001487u, 0x0004007cu, 0x0000021bu, 0x00000f43u, 0x00000f42u, 0x00040071u, + 0x0000000au, 0x00000f45u, 0x000014adu, 0x0004007cu, 0x0000000bu, 0x00000f46u, 0x00000f45u, 0x00060050u, + 0x0000021bu, 0x00000f47u, 0x00000f46u, 0x00000f46u, 0x00000f46u, 0x00050084u, 0x0000021bu, 0x00000f48u, + 0x00000f43u, 0x00000f47u, 0x00040071u, 0x0000021fu, 0x00000f4au, 0x000014b4u, 0x0004007cu, 0x0000021bu, + 0x00000f4bu, 0x00000f4au, 0x00040071u, 0x0000000au, 0x00000f4du, 0x000014d8u, 0x0004007cu, 0x0000000bu, + 0x00000f4eu, 0x00000f4du, 0x00050080u, 0x0000000bu, 0x00000f4fu, 0x00000f4eu, 0x0000022du, 0x00060050u, + 0x0000021bu, 0x00000f50u, 0x00000f4fu, 0x00000f4fu, 0x00000f4fu, 0x00050084u, 0x0000021bu, 0x00000f51u, + 0x00000f4bu, 0x00000f50u, 0x00050080u, 0x0000021bu, 0x00000f52u, 0x00000f48u, 0x00000f51u, 0x000500a6u, + 0x00000034u, 0x00000f56u, 0x0000029cu, 0x00000be9u, 0x000300f7u, 0x00000f8fu, 0x00000000u, 0x000400fau, + 0x00000f56u, 0x00000f57u, 0x00000f5du, 0x000200f8u, 0x00000f5du, 0x00040071u, 0x00000006u, 0x00000f5fu, + 0x000014adu, 0x0004007cu, 0x00000017u, 0x00000f60u, 0x00000f5fu, 0x000500c3u, 0x00000017u, 0x00000f61u, + 0x00000f60u, 0x000000bbu, 0x00040071u, 0x00000006u, 0x00000f63u, 0x000014d8u, 0x0004007cu, 0x00000017u, + 0x00000f64u, 0x00000f63u, 0x000500c3u, 0x00000017u, 0x00000f65u, 0x00000f64u, 0x000000bbu, 0x00050080u, + 0x00000017u, 0x00000f66u, 0x00000f61u, 0x00000f65u, 0x00050080u, 0x00000017u, 0x00000f67u, 0x00000f66u, + 0x000000b8u, 0x000500c3u, 0x0000021bu, 0x00000f6au, 0x00000f52u, 0x000018a0u, 0x000500c7u, 0x0000021bu, + 0x00000f6du, 0x00000f6au, 0x000018a1u, 0x0004003du, 0x00000252u, 0x00000f6eu, 0x00000254u, 0x000500c4u, + 0x00000017u, 0x00000f70u, 0x00000f67u, 0x000000d6u, 0x00050051u, 0x0000000bu, 0x00000f72u, 0x00000f6du, + 0x00000000u, 0x00040072u, 0x00000017u, 0x00000f73u, 0x00000f72u, 0x000500c5u, 0x00000017u, 0x00000f74u, + 0x00000f70u, 0x00000f73u, 0x0005005fu, 0x0000025du, 0x00000f75u, 0x00000f6eu, 0x00000f74u, 0x00050051u, + 0x00000006u, 0x00000f76u, 0x00000f75u, 0x00000000u, 0x00040071u, 0x00000008u, 0x00000f77u, 0x00000f76u, + 0x00050051u, 0x0000000bu, 0x00000f7du, 0x00000f6du, 0x00000001u, 0x00040072u, 0x00000017u, 0x00000f7eu, + 0x00000f7du, 0x000500c5u, 0x00000017u, 0x00000f7fu, 0x00000f70u, 0x00000f7eu, 0x0005005fu, 0x0000025du, + 0x00000f80u, 0x00000f6eu, 0x00000f7fu, 0x00050051u, 0x00000006u, 0x00000f81u, 0x00000f80u, 0x00000000u, + 0x00040071u, 0x00000008u, 0x00000f82u, 0x00000f81u, 0x00050051u, 0x0000000bu, 0x00000f88u, 0x00000f6du, + 0x00000002u, 0x00040072u, 0x00000017u, 0x00000f89u, 0x00000f88u, 0x000500c5u, 0x00000017u, 0x00000f8au, + 0x00000f70u, 0x00000f89u, 0x0005005fu, 0x0000025du, 0x00000f8bu, 0x00000f6eu, 0x00000f8au, 0x00050051u, + 0x00000006u, 0x00000f8cu, 0x00000f8bu, 0x00000000u, 0x00040071u, 0x00000008u, 0x00000f8du, 0x00000f8cu, + 0x00060050u, 0x0000001bu, 0x000018a4u, 0x00000f77u, 0x00000f82u, 0x00000f8du, 0x000200f9u, 0x00000f8fu, + 0x000200f8u, 0x00000f57u, 0x000500c3u, 0x0000021bu, 0x00000f5au, 0x00000f52u, 0x0000189eu, 0x00040072u, + 0x0000012du, 0x00000f5bu, 0x00000f5au, 0x0004007cu, 0x0000001bu, 0x00000f5cu, 0x00000f5bu, 0x000200f9u, + 0x00000f8fu, 0x000200f8u, 0x00000f8fu, 0x000700f5u, 0x0000001bu, 0x000014d9u, 0x00000f5cu, 0x00000f57u, + 0x000018a4u, 0x00000f5du, 0x000500c7u, 0x0000001bu, 0x00000f92u, 0x000014d9u, 0x0000189fu, 0x000200f9u, + 0x00000f93u, 0x000200f8u, 0x00000f93u, 0x000900f5u, 0x0000001bu, 0x00001836u, 0x00001494u, 0x00000ed7u, + 0x00001487u, 0x00000f0bu, 0x000014d9u, 0x00000f8fu, 0x000900f5u, 0x00000008u, 0x0000181bu, 0x0000146au, + 0x00000ed7u, 0x0000146au, 0x00000f0bu, 0x000014d8u, 0x00000f8fu, 0x000900f5u, 0x00000008u, 0x00001800u, + 0x00001440u, 0x00000ed7u, 0x00001440u, 0x00000f0bu, 0x000014adu, 0x00000f8fu, 0x000900f5u, 0x0000001bu, + 0x000014dau, 0x000014b4u, 0x00000ed7u, 0x00001487u, 0x00000f0bu, 0x00000f92u, 0x00000f8fu, 0x000300f7u, + 0x00000c5cu, 0x00000000u, 0x000400fau, 0x00000c05u, 0x00000c56u, 0x00000c5cu, 0x000200f8u, 0x00000c56u, + 0x00040071u, 0x000003afu, 0x00000c58u, 0x000014dau, 0x0004007cu, 0x00000018u, 0x00000c59u, 0x00000c58u, + 0x00060050u, 0x00000018u, 0x00000f9cu, 0x00000bd5u, 0x00000bd5u, 0x00000bd5u, 0x000500c3u, 0x00000018u, + 0x00000f9du, 0x00000f9cu, 0x00000104u, 0x000500c7u, 0x00000018u, 0x00000f9fu, 0x00000f9du, 0x00001899u, + 0x000500c7u, 0x00000018u, 0x00000fa2u, 0x00000c59u, 0x0000189au, 0x00050080u, 0x00000018u, 0x00000fa4u, + 0x00000fa2u, 0x0000189bu, 0x000500adu, 0x00000114u, 0x00000fa6u, 0x00000c59u, 0x00000113u, 0x000600a9u, + 0x00000018u, 0x00000fa7u, 0x00000fa6u, 0x00000110u, 0x00000fa4u, 0x000500c7u, 0x00000018u, 0x00000fabu, + 0x00000c59u, 0x00001899u, 0x00050082u, 0x00000018u, 0x00000facu, 0x00000f9fu, 0x00000fabu, 0x000500c3u, + 0x00000018u, 0x00000faeu, 0x00000facu, 0x0000189cu, 0x00050082u, 0x00000018u, 0x00000fb1u, 0x00000fa7u, + 0x00000c59u, 0x000500c7u, 0x00000018u, 0x00000fb5u, 0x00000fb1u, 0x00000faeu, 0x00050080u, 0x00000018u, + 0x00000fb6u, 0x00000c59u, 0x00000fb5u, 0x000500c7u, 0x00000018u, 0x00000fb9u, 0x00000fb6u, 0x00000110u, + 0x00040072u, 0x0000012du, 0x00000fbau, 0x00000fb9u, 0x0004007cu, 0x0000001bu, 0x00000fbbu, 0x00000fbau, + 0x000200f9u, 0x00000c5cu, 0x000200f8u, 0x00000c5cu, 0x000700f5u, 0x0000001bu, 0x000014f9u, 0x000014dau, + 0x00000f93u, 0x00000fbbu, 0x00000c56u, 0x00040071u, 0x00000006u, 0x00000c62u, 0x00000cb1u, 0x0004007cu, + 0x00000017u, 0x00000c63u, 0x00000c62u, 0x000300f7u, 0x00000fd4u, 0x00000000u, 0x000b00fbu, 0x00000c63u, + 0x00000fd4u, 0x00000000u, 0x00000fc0u, 0x00000001u, 0x00000fccu, 0x00000002u, 0x00000fd1u, 0x00000003u, + 0x00000fd2u, 0x000200f8u, 0x00000fd2u, 0x000200f9u, 0x00000fd4u, 0x000200f8u, 0x00000fd1u, 0x000200f9u, + 0x00000fd4u, 0x000200f8u, 0x00000fccu, 0x00050080u, 0x00000017u, 0x00000fcfu, 0x00001392u, 0x00000c15u, + 0x000500c7u, 0x00000017u, 0x00000fd0u, 0x00000fcfu, 0x000000cau, 0x000200f9u, 0x00000fd4u, 0x000200f8u, + 0x00000fc0u, 0x000300f7u, 0x00000fcbu, 0x00000000u, 0x000400fau, 0x00001398u, 0x00000fc2u, 0x00000fc7u, + 0x000200f8u, 0x00000fc7u, 0x00050082u, 0x00000017u, 0x00000fc9u, 0x00001392u, 0x000000b8u, 0x000500c7u, + 0x00000017u, 0x00000fcau, 0x00000fc9u, 0x000000cau, 0x000200f9u, 0x00000fcbu, 0x000200f8u, 0x00000fc2u, + 0x00050080u, 0x00000017u, 0x00000fc5u, 0x00000c15u, 0x00001392u, 0x0007000cu, 0x00000017u, 0x00000fc6u, + 0x00000001u, 0x00000027u, 0x000000cau, 0x00000fc5u, 0x000200f9u, 0x00000fcbu, 0x000200f8u, 0x00000fcbu, + 0x000700f5u, 0x00000017u, 0x000014f7u, 0x00000fc6u, 0x00000fc2u, 0x00000fcau, 0x00000fc7u, 0x000200f9u, + 0x00000fd4u, 0x000200f8u, 0x00000fd4u, 0x000d00f5u, 0x00000017u, 0x000014f6u, 0x000000aeu, 0x00000c5cu, + 0x000014f7u, 0x00000fcbu, 0x00000fd0u, 0x00000fccu, 0x000000cau, 0x00000fd1u, 0x00000c15u, 0x00000fd2u, + 0x000500c4u, 0x00000017u, 0x00000c69u, 0x000014f6u, 0x000000c4u, 0x00040072u, 0x0000012cu, 0x00000c6au, + 0x00000c69u, 0x0004007cu, 0x00000008u, 0x00000c6bu, 0x00000c6au, 0x00050051u, 0x00000008u, 0x00000c6cu, + 0x000014f9u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00000c6du, 0x000014f9u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x00000c6eu, 0x000014f9u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00000c6fu, 0x00000c6cu, + 0x00000c6du, 0x00000c6eu, 0x00000c6bu, 0x000300f7u, 0x00000fe2u, 0x00000000u, 0x000400fau, 0x00000683u, + 0x00000fd7u, 0x00000fe0u, 0x000200f8u, 0x00000fe0u, 0x000200f9u, 0x00000fe2u, 0x000200f8u, 0x00000fd7u, + 0x00060052u, 0x00000009u, 0x000012cbu, 0x00000c6cu, 0x00001364u, 0x00000000u, 0x00060052u, 0x00000009u, + 0x000012cdu, 0x00000c6du, 0x000012cbu, 0x00000001u, 0x00060052u, 0x00000009u, 0x000012cfu, 0x00000c6eu, + 0x000012cdu, 0x00000002u, 0x000200f9u, 0x00000fe2u, 0x000200f8u, 0x00000fe2u, 0x000700f5u, 0x00000009u, + 0x00001524u, 0x000012cfu, 0x00000fd7u, 0x00000c6fu, 0x00000fe0u, 0x000300f7u, 0x00000c7eu, 0x00000000u, + 0x000400fau, 0x00000bf1u, 0x00000c72u, 0x00000c7au, 0x000200f8u, 0x00000c7au, 0x000300f7u, 0x00000c7du, + 0x00000000u, 0x000400fau, 0x00000574u, 0x00000c7bu, 0x00000c7du, 0x000200f8u, 0x00000c7bu, 0x000300f7u, + 0x0000105fu, 0x00000000u, 0x000700fbu, 0x00000375u, 0x0000105fu, 0x00000002u, 0x0000102cu, 0x00000003u, + 0x00001049u, 0x000200f8u, 0x00001049u, 0x0007004fu, 0x00000036u, 0x0000104bu, 0x00001524u, 0x00001524u, + 0x00000000u, 0x00000003u, 0x00040071u, 0x00000078u, 0x0000104cu, 0x0000104bu, 0x00050051u, 0x00000006u, + 0x0000104eu, 0x0000104cu, 0x00000000u, 0x000500c4u, 0x00000006u, 0x0000104fu, 0x0000104eu, 0x000003b3u, + 0x00050051u, 0x00000006u, 0x00001051u, 0x0000104cu, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00001052u, + 0x0000104fu, 0x00001051u, 0x000500c7u, 0x00000006u, 0x00001054u, 0x00001052u, 0x000001bfu, 0x00050084u, + 0x00000006u, 0x00001055u, 0x00001054u, 0x000001c7u, 0x000500c2u, 0x00000006u, 0x00001057u, 0x00001052u, + 0x00000173u, 0x00040071u, 0x0000000au, 0x00001058u, 0x00001057u, 0x000500c7u, 0x00000006u, 0x0000105au, + 0x00001052u, 0x000001c7u, 0x000500c4u, 0x00000006u, 0x0000105bu, 0x0000105au, 0x00000173u, 0x000500c5u, + 0x00000006u, 0x0000105du, 0x0000105bu, 0x00001055u, 0x00040071u, 0x00000008u, 0x0000105eu, 0x0000105du, + 0x000200f9u, 0x0000105fu, 0x000200f8u, 0x0000102cu, 0x00050051u, 0x00000008u, 0x0000102eu, 0x00001524u, + 0x00000003u, 0x000500c2u, 0x00000008u, 0x0000102fu, 0x0000102eu, 0x00000204u, 0x00050051u, 0x00000008u, + 0x00001031u, 0x00001524u, 0x00000002u, 0x000500c7u, 0x00000008u, 0x00001032u, 0x00001031u, 0x0000040eu, + 0x000500c5u, 0x00000008u, 0x00001033u, 0x0000102fu, 0x00001032u, 0x00050051u, 0x00000008u, 0x00001035u, + 0x00001524u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00001036u, 0x00001035u, 0x000500c7u, 0x00000006u, + 0x00001037u, 0x00001036u, 0x000003bau, 0x000500c4u, 0x00000006u, 0x00001038u, 0x00001037u, 0x00000416u, + 0x00050051u, 0x00000008u, 0x0000103au, 0x00001524u, 0x00000001u, 0x00040071u, 0x00000006u, 0x0000103bu, + 0x0000103au, 0x000500c7u, 0x00000006u, 0x0000103cu, 0x0000103bu, 0x000003bau, 0x000500c4u, 0x00000006u, + 0x0000103du, 0x0000103cu, 0x000001bfu, 0x000500c5u, 0x00000006u, 0x0000103fu, 0x00001038u, 0x0000103du, + 0x00040071u, 0x00000006u, 0x00001042u, 0x00001031u, 0x000500c7u, 0x00000006u, 0x00001043u, 0x00001042u, + 0x000003bau, 0x000500c2u, 0x00000006u, 0x00001044u, 0x00001043u, 0x00000423u, 0x000500c5u, 0x00000006u, + 0x00001046u, 0x0000103fu, 0x00001044u, 0x00040071u, 0x0000000au, 0x00001048u, 0x00001046u, 0x000200f9u, + 0x0000105fu, 0x000200f8u, 0x0000105fu, 0x000900f5u, 0x00000008u, 0x00001718u, 0x00001375u, 0x00000c7bu, + 0x00001033u, 0x0000102cu, 0x0000105eu, 0x00001049u, 0x000900f5u, 0x0000000au, 0x000016dau, 0x00001372u, + 0x00000c7bu, 0x00001048u, 0x0000102cu, 0x00001058u, 0x00001049u, 0x000200f9u, 0x00000c7du, 0x000200f8u, + 0x00000c7du, 0x000700f5u, 0x00000008u, 0x000016fau, 0x00001375u, 0x00000c7au, 0x00001718u, 0x0000105fu, + 0x000700f5u, 0x0000000au, 0x000016bcu, 0x00001372u, 0x00000c7au, 0x000016dau, 0x0000105fu, 0x000200f9u, + 0x00000c7eu, 0x000200f8u, 0x00000c72u, 0x00050082u, 0x00000017u, 0x00000feau, 0x0000014eu, 0x00000bd2u, + 0x0007000cu, 0x00000017u, 0x00000febu, 0x00000001u, 0x0000002au, 0x00000feau, 0x000000b8u, 0x0006000cu, + 0x00000017u, 0x00000fedu, 0x00000001u, 0x0000004au, 0x00000febu, 0x00050082u, 0x00000017u, 0x00000feeu, + 0x00000153u, 0x00000fedu, 0x0008000cu, 0x00000017u, 0x00000ff0u, 0x00000001u, 0x0000002du, 0x00000feeu, + 0x000000aeu, 0x000000cau, 0x00050082u, 0x00000017u, 0x00000ff2u, 0x000000c7u, 0x00000ff0u, 0x0007000cu, + 0x00000017u, 0x00000ff3u, 0x00000001u, 0x0000002au, 0x00000ff2u, 0x000000aeu, 0x000500c3u, 0x00000017u, + 0x00000ff6u, 0x00000bd2u, 0x00000ff3u, 0x000500c7u, 0x00000017u, 0x00000ff7u, 0x00000ff6u, 0x0000013bu, + 0x000500c4u, 0x00000017u, 0x00000ff9u, 0x00000ff0u, 0x000000d6u, 0x00050080u, 0x00000017u, 0x00000ffbu, + 0x00000ff9u, 0x00000ff7u, 0x00040072u, 0x0000000bu, 0x00000ffcu, 0x00000ffbu, 0x0004007cu, 0x0000000au, + 0x00000ffdu, 0x00000ffcu, 0x000300f7u, 0x00000c79u, 0x00000000u, 0x000400fau, 0x00000574u, 0x00000c77u, + 0x00000c79u, 0x000200f8u, 0x00000c77u, 0x00040071u, 0x00000006u, 0x00001001u, 0x00000ffdu, 0x000500c4u, + 0x00000006u, 0x00001002u, 0x00001001u, 0x00000423u, 0x000500c5u, 0x00000006u, 0x00001005u, 0x00001002u, + 0x00000c11u, 0x000300f7u, 0x00001026u, 0x00000000u, 0x000700fbu, 0x00000375u, 0x00001026u, 0x00000002u, + 0x00001006u, 0x00000003u, 0x0000101bu, 0x000200f8u, 0x0000101bu, 0x000500c2u, 0x00000006u, 0x0000101du, + 0x00001005u, 0x00000450u, 0x000500c7u, 0x00000006u, 0x0000101eu, 0x0000101du, 0x000003e0u, 0x00040071u, + 0x00000008u, 0x0000101fu, 0x0000101eu, 0x00060052u, 0x00000009u, 0x000012d9u, 0x0000101fu, 0x00001524u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00001022u, 0x00001005u, 0x00000173u, 0x000500c7u, 0x00000006u, + 0x00001023u, 0x00001022u, 0x000003e0u, 0x00040071u, 0x00000008u, 0x00001024u, 0x00001023u, 0x00060052u, + 0x00000009u, 0x000012dbu, 0x00001024u, 0x000012d9u, 0x00000003u, 0x000200f9u, 0x00001026u, 0x000200f8u, + 0x00001006u, 0x000500c2u, 0x00000006u, 0x00001008u, 0x00001005u, 0x00000450u, 0x000500c7u, 0x00000006u, + 0x00001009u, 0x00001008u, 0x000003bau, 0x00040071u, 0x00000008u, 0x0000100au, 0x00001009u, 0x000500c2u, + 0x00000006u, 0x0000100du, 0x00001005u, 0x00000456u, 0x000500c7u, 0x00000006u, 0x0000100eu, 0x0000100du, + 0x000003bau, 0x00040071u, 0x00000008u, 0x0000100fu, 0x0000100eu, 0x000500c2u, 0x00000006u, 0x00001012u, + 0x00001005u, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00001013u, 0x00001012u, 0x000003bau, 0x00040071u, + 0x00000008u, 0x00001014u, 0x00001013u, 0x000500c7u, 0x00000006u, 0x00001017u, 0x00001005u, 0x00000461u, + 0x000500c4u, 0x00000006u, 0x00001018u, 0x00001017u, 0x00000456u, 0x00040071u, 0x00000008u, 0x00001019u, + 0x00001018u, 0x00070050u, 0x00000009u, 0x000018a5u, 0x0000100au, 0x0000100fu, 0x00001014u, 0x00001019u, + 0x000200f9u, 0x00001026u, 0x000200f8u, 0x00001026u, 0x000900f5u, 0x00000009u, 0x0000165cu, 0x00001524u, + 0x00000c77u, 0x000018a5u, 0x00001006u, 0x000012dbu, 0x0000101bu, 0x000200f9u, 0x00000c79u, 0x000200f8u, + 0x00000c79u, 0x000700f5u, 0x00000009u, 0x0000165bu, 0x00001524u, 0x00000c72u, 0x0000165cu, 0x00001026u, + 0x000200f9u, 0x00000c7eu, 0x000200f8u, 0x00000c7eu, 0x000700f5u, 0x00000008u, 0x000016f7u, 0x00000c9eu, + 0x00000c79u, 0x000016fau, 0x00000c7du, 0x000700f5u, 0x0000000au, 0x000016b9u, 0x00000ffdu, 0x00000c79u, + 0x000016bcu, 0x00000c7du, 0x000700f5u, 0x00000009u, 0x0000165au, 0x0000165bu, 0x00000c79u, 0x00001524u, + 0x00000c7du, 0x000600a9u, 0x00000034u, 0x000018aau, 0x00000bf1u, 0x000002bfu, 0x000015d1u, 0x000200f9u, + 0x00000c7fu, 0x000200f8u, 0x00000c7fu, 0x000700f5u, 0x0000001bu, 0x0000184au, 0x000014bfu, 0x00000c2du, + 0x000014b4u, 0x00000c7eu, 0x000700f5u, 0x0000001bu, 0x00001830u, 0x00001494u, 0x00000c2du, 0x00001836u, + 0x00000c7eu, 0x000700f5u, 0x00000008u, 0x00001815u, 0x0000146au, 0x00000c2du, 0x0000181bu, 0x00000c7eu, + 0x000700f5u, 0x00000008u, 0x000017fau, 0x00001440u, 0x00000c2du, 0x00001800u, 0x00000c7eu, 0x000700f5u, + 0x0000001bu, 0x000017d2u, 0x00001413u, 0x00000c2du, 0x000017dau, 0x00000c7eu, 0x000700f5u, 0x0000001bu, + 0x000017abu, 0x000013f5u, 0x00000c2du, 0x000017b3u, 0x00000c7eu, 0x000700f5u, 0x00000008u, 0x00001783u, + 0x000013d8u, 0x00000c2du, 0x0000178bu, 0x00000c7eu, 0x000700f5u, 0x00000008u, 0x0000175bu, 0x000013bbu, + 0x00000c2du, 0x00001763u, 0x00000c7eu, 0x000700f5u, 0x00000008u, 0x000016eau, 0x00001375u, 0x00000c2du, + 0x000016f7u, 0x00000c7eu, 0x000700f5u, 0x0000000au, 0x000016acu, 0x00001372u, 0x00000c2du, 0x000016b9u, + 0x00000c7eu, 0x000700f5u, 0x00000009u, 0x00001659u, 0x00001364u, 0x00000c2du, 0x0000165au, 0x00000c7eu, + 0x000700f5u, 0x00000034u, 0x000015e1u, 0x000015d1u, 0x00000c2du, 0x000018aau, 0x00000c7eu, 0x000600a9u, + 0x00000034u, 0x000018abu, 0x00000c2eu, 0x000002bfu, 0x000015b4u, 0x000200f9u, 0x000008d9u, 0x000200f8u, + 0x000008d8u, 0x00060041u, 0x000003f6u, 0x000008e0u, 0x000008deu, 0x000000aeu, 0x000008bau, 0x0004003du, + 0x00000006u, 0x000008e1u, 0x000008e0u, 0x000300f7u, 0x00000b35u, 0x00000000u, 0x000900fbu, 0x00000375u, + 0x00000b35u, 0x00000000u, 0x00000b16u, 0x00000001u, 0x00000b17u, 0x00000002u, 0x00000b1eu, 0x000200f8u, + 0x00000b1eu, 0x000500c2u, 0x00000006u, 0x00000b20u, 0x000008e1u, 0x000000cdu, 0x000500c7u, 0x00000006u, + 0x00000b21u, 0x00000b20u, 0x000003bau, 0x000500c2u, 0x00000006u, 0x00000b23u, 0x000008e1u, 0x000000beu, + 0x000500c7u, 0x00000006u, 0x00000b24u, 0x00000b23u, 0x000003bau, 0x000500c4u, 0x00000006u, 0x00000b26u, + 0x000008e1u, 0x000000bbu, 0x000500c7u, 0x00000006u, 0x00000b27u, 0x00000b26u, 0x000003bau, 0x000500c7u, + 0x00000006u, 0x00000b29u, 0x000008e1u, 0x000001bfu, 0x00050084u, 0x00000006u, 0x00000b2au, 0x00000b29u, + 0x000006adu, 0x00040071u, 0x00000008u, 0x00000b2cu, 0x00000b21u, 0x00040071u, 0x00000008u, 0x00000b2eu, + 0x00000b24u, 0x00040071u, 0x00000008u, 0x00000b30u, 0x00000b27u, 0x00040071u, 0x00000008u, 0x00000b32u, + 0x00000b2au, 0x00070050u, 0x00000009u, 0x00000b33u, 0x00000b2cu, 0x00000b2eu, 0x00000b30u, 0x00000b32u, + 0x000300f7u, 0x00000b52u, 0x00000000u, 0x000400fau, 0x00000683u, 0x00000b47u, 0x00000b50u, 0x000200f8u, + 0x00000b50u, 0x000200f9u, 0x00000b52u, 0x000200f8u, 0x00000b47u, 0x00060052u, 0x00000009u, 0x00001282u, + 0x00000b2cu, 0x00001364u, 0x00000000u, 0x00060052u, 0x00000009u, 0x00001284u, 0x00000b2eu, 0x00001282u, + 0x00000001u, 0x00060052u, 0x00000009u, 0x00001286u, 0x00000b30u, 0x00001284u, 0x00000002u, 0x000200f9u, + 0x00000b52u, 0x000200f8u, 0x00000b52u, 0x000700f5u, 0x00000009u, 0x00001527u, 0x00001286u, 0x00000b47u, + 0x00000b33u, 0x00000b50u, 0x000200f9u, 0x00000b35u, 0x000200f8u, 0x00000b17u, 0x000500c7u, 0x00000006u, + 0x00000b19u, 0x000008e1u, 0x000003e0u, 0x00040071u, 0x00000008u, 0x00000b1bu, 0x00000b19u, 0x00070050u, + 0x00000009u, 0x00000b1cu, 0x00000b1bu, 0x00000b1bu, 0x00000b1bu, 0x00000b1bu, 0x000300f7u, 0x00000b45u, + 0x00000000u, 0x000400fau, 0x00000683u, 0x00000b3au, 0x00000b43u, 0x000200f8u, 0x00000b43u, 0x000200f9u, + 0x00000b45u, 0x000200f8u, 0x00000b3au, 0x00060052u, 0x00000009u, 0x0000127cu, 0x00000b1bu, 0x00001364u, + 0x00000000u, 0x00060052u, 0x00000009u, 0x0000127eu, 0x00000b1bu, 0x0000127cu, 0x00000001u, 0x00060052u, + 0x00000009u, 0x00001280u, 0x00000b1bu, 0x0000127eu, 0x00000002u, 0x000200f9u, 0x00000b45u, 0x000200f8u, + 0x00000b45u, 0x000700f5u, 0x00000009u, 0x00001526u, 0x00001280u, 0x00000b3au, 0x00000b1cu, 0x00000b43u, + 0x000200f9u, 0x00000b35u, 0x000200f8u, 0x00000b16u, 0x000200f9u, 0x00000b35u, 0x000200f8u, 0x00000b35u, + 0x000b00f5u, 0x00000034u, 0x000015bcu, 0x000015b4u, 0x000008d8u, 0x000002bfu, 0x00000b16u, 0x000002bfu, + 0x00000b45u, 0x000002bfu, 0x00000b52u, 0x000b00f5u, 0x00000009u, 0x00001525u, 0x00001364u, 0x000008d8u, + 0x00000694u, 0x00000b16u, 0x00001526u, 0x00000b45u, 0x00001527u, 0x00000b52u, 0x000300f7u, 0x00000b38u, + 0x00000000u, 0x000400fau, 0x00000574u, 0x00000b36u, 0x00000b38u, 0x000200f8u, 0x00000b36u, 0x000300f7u, + 0x00000b8bu, 0x00000000u, 0x000700fbu, 0x00000375u, 0x00000b8bu, 0x00000002u, 0x00000b58u, 0x00000003u, + 0x00000b75u, 0x000200f8u, 0x00000b75u, 0x0007004fu, 0x00000036u, 0x00000b77u, 0x00001525u, 0x00001525u, + 0x00000000u, 0x00000003u, 0x00040071u, 0x00000078u, 0x00000b78u, 0x00000b77u, 0x00050051u, 0x00000006u, + 0x00000b7au, 0x00000b78u, 0x00000000u, 0x000500c4u, 0x00000006u, 0x00000b7bu, 0x00000b7au, 0x000003b3u, + 0x00050051u, 0x00000006u, 0x00000b7du, 0x00000b78u, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00000b7eu, + 0x00000b7bu, 0x00000b7du, 0x000500c7u, 0x00000006u, 0x00000b80u, 0x00000b7eu, 0x000001bfu, 0x00050084u, + 0x00000006u, 0x00000b81u, 0x00000b80u, 0x000001c7u, 0x000500c2u, 0x00000006u, 0x00000b83u, 0x00000b7eu, + 0x00000173u, 0x00040071u, 0x0000000au, 0x00000b84u, 0x00000b83u, 0x000500c7u, 0x00000006u, 0x00000b86u, + 0x00000b7eu, 0x000001c7u, 0x000500c4u, 0x00000006u, 0x00000b87u, 0x00000b86u, 0x00000173u, 0x000500c5u, + 0x00000006u, 0x00000b89u, 0x00000b87u, 0x00000b81u, 0x00040071u, 0x00000008u, 0x00000b8au, 0x00000b89u, + 0x000200f9u, 0x00000b8bu, 0x000200f8u, 0x00000b58u, 0x00050051u, 0x00000008u, 0x00000b5au, 0x00001525u, + 0x00000003u, 0x000500c2u, 0x00000008u, 0x00000b5bu, 0x00000b5au, 0x00000204u, 0x00050051u, 0x00000008u, + 0x00000b5du, 0x00001525u, 0x00000002u, 0x000500c7u, 0x00000008u, 0x00000b5eu, 0x00000b5du, 0x0000040eu, + 0x000500c5u, 0x00000008u, 0x00000b5fu, 0x00000b5bu, 0x00000b5eu, 0x00050051u, 0x00000008u, 0x00000b61u, + 0x00001525u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00000b62u, 0x00000b61u, 0x000500c7u, 0x00000006u, + 0x00000b63u, 0x00000b62u, 0x000003bau, 0x000500c4u, 0x00000006u, 0x00000b64u, 0x00000b63u, 0x00000416u, + 0x00050051u, 0x00000008u, 0x00000b66u, 0x00001525u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00000b67u, + 0x00000b66u, 0x000500c7u, 0x00000006u, 0x00000b68u, 0x00000b67u, 0x000003bau, 0x000500c4u, 0x00000006u, + 0x00000b69u, 0x00000b68u, 0x000001bfu, 0x000500c5u, 0x00000006u, 0x00000b6bu, 0x00000b64u, 0x00000b69u, + 0x00040071u, 0x00000006u, 0x00000b6eu, 0x00000b5du, 0x000500c7u, 0x00000006u, 0x00000b6fu, 0x00000b6eu, + 0x000003bau, 0x000500c2u, 0x00000006u, 0x00000b70u, 0x00000b6fu, 0x00000423u, 0x000500c5u, 0x00000006u, + 0x00000b72u, 0x00000b6bu, 0x00000b70u, 0x00040071u, 0x0000000au, 0x00000b74u, 0x00000b72u, 0x000200f9u, + 0x00000b8bu, 0x000200f8u, 0x00000b8bu, 0x000900f5u, 0x00000008u, 0x000016e9u, 0x00001375u, 0x00000b36u, + 0x00000b5fu, 0x00000b58u, 0x00000b8au, 0x00000b75u, 0x000900f5u, 0x0000000au, 0x000016abu, 0x00001372u, + 0x00000b36u, 0x00000b74u, 0x00000b58u, 0x00000b84u, 0x00000b75u, 0x000200f9u, 0x00000b38u, 0x000200f8u, + 0x00000b38u, 0x000700f5u, 0x00000008u, 0x000016e5u, 0x00001375u, 0x00000b35u, 0x000016e9u, 0x00000b8bu, + 0x000700f5u, 0x0000000au, 0x000016a7u, 0x00001372u, 0x00000b35u, 0x000016abu, 0x00000b8bu, 0x000200f9u, + 0x000008d9u, 0x000200f8u, 0x000008d9u, 0x000700f5u, 0x0000001bu, 0x00001844u, 0x000014bfu, 0x00000b38u, + 0x0000184au, 0x00000c7fu, 0x000700f5u, 0x0000001bu, 0x0000182au, 0x00001494u, 0x00000b38u, 0x00001830u, + 0x00000c7fu, 0x000700f5u, 0x00000008u, 0x0000180fu, 0x0000146au, 0x00000b38u, 0x00001815u, 0x00000c7fu, + 0x000700f5u, 0x00000008u, 0x000017f4u, 0x00001440u, 0x00000b38u, 0x000017fau, 0x00000c7fu, 0x000700f5u, + 0x0000001bu, 0x000017ccu, 0x00001413u, 0x00000b38u, 0x000017d2u, 0x00000c7fu, 0x000700f5u, 0x0000001bu, + 0x000017a5u, 0x000013f5u, 0x00000b38u, 0x000017abu, 0x00000c7fu, 0x000700f5u, 0x00000008u, 0x0000177du, + 0x000013d8u, 0x00000b38u, 0x00001783u, 0x00000c7fu, 0x000700f5u, 0x00000008u, 0x00001755u, 0x000013bbu, + 0x00000b38u, 0x0000175bu, 0x00000c7fu, 0x000700f5u, 0x00000008u, 0x000016e4u, 0x000016e5u, 0x00000b38u, + 0x000016eau, 0x00000c7fu, 0x000700f5u, 0x0000000au, 0x000016a6u, 0x000016a7u, 0x00000b38u, 0x000016acu, + 0x00000c7fu, 0x000700f5u, 0x0000001bu, 0x00001668u, 0x00001369u, 0x00000b38u, 0x00001367u, 0x00000c7fu, + 0x000700f5u, 0x00000009u, 0x00001656u, 0x00001525u, 0x00000b38u, 0x00001659u, 0x00000c7fu, 0x000700f5u, + 0x00000034u, 0x000015dbu, 0x000015d1u, 0x00000b38u, 0x000015e1u, 0x00000c7fu, 0x000700f5u, 0x00000034u, + 0x000015bau, 0x000015bcu, 0x00000b38u, 0x000018abu, 0x00000c7fu, 0x000200f9u, 0x000008ceu, 0x000200f8u, + 0x000008cdu, 0x00070041u, 0x000003f6u, 0x000008d1u, 0x000000adu, 0x000000aeu, 0x000008b1u, 0x000000d3u, + 0x0004003du, 0x00000006u, 0x000008d2u, 0x000008d1u, 0x000300f7u, 0x00000a9eu, 0x00000000u, 0x000b00fbu, + 0x00000375u, 0x00000a9eu, 0x00000004u, 0x00000a44u, 0x00000002u, 0x00000a5bu, 0x00000003u, 0x00000a78u, + 0x00000001u, 0x00000a91u, 0x000200f8u, 0x00000a91u, 0x000500c7u, 0x00000006u, 0x00000a93u, 0x0000152au, + 0x000001c7u, 0x000500c6u, 0x00000006u, 0x00000a94u, 0x00000a93u, 0x000001c7u, 0x00050084u, 0x00000006u, + 0x00000a95u, 0x00000a94u, 0x000003b3u, 0x000500c2u, 0x00000006u, 0x00000a97u, 0x000008d2u, 0x00000a95u, + 0x000500c7u, 0x00000006u, 0x00000a99u, 0x00000a97u, 0x000003e0u, 0x00040071u, 0x00000008u, 0x00000a9bu, + 0x00000a99u, 0x00070050u, 0x00000009u, 0x00000a9cu, 0x00000a9bu, 0x00000a9bu, 0x00000a9bu, 0x00000a9bu, + 0x000300f7u, 0x00000ad5u, 0x00000000u, 0x000400fau, 0x00000683u, 0x00000acau, 0x00000ad3u, 0x000200f8u, + 0x00000ad3u, 0x000200f9u, 0x00000ad5u, 0x000200f8u, 0x00000acau, 0x00060052u, 0x00000009u, 0x0000126fu, + 0x00000a9bu, 0x00001364u, 0x00000000u, 0x00060052u, 0x00000009u, 0x00001271u, 0x00000a9bu, 0x0000126fu, + 0x00000001u, 0x00060052u, 0x00000009u, 0x00001273u, 0x00000a9bu, 0x00001271u, 0x00000002u, 0x000200f9u, + 0x00000ad5u, 0x000200f8u, 0x00000ad5u, 0x000700f5u, 0x00000009u, 0x00001532u, 0x00001273u, 0x00000acau, + 0x00000a9cu, 0x00000ad3u, 0x000200f9u, 0x00000a9eu, 0x000200f8u, 0x00000a78u, 0x000500c7u, 0x00000006u, + 0x00000a7au, 0x0000152au, 0x000001bfu, 0x000500c6u, 0x00000006u, 0x00000a7bu, 0x00000a7au, 0x000001bfu, + 0x00050084u, 0x00000006u, 0x00000a7cu, 0x00000a7bu, 0x000003fcu, 0x000500c2u, 0x00000006u, 0x00000a7eu, + 0x000008d2u, 0x00000a7cu, 0x000500c7u, 0x00000006u, 0x00000a80u, 0x00000a7eu, 0x00000708u, 0x000500c2u, + 0x00000006u, 0x00000a82u, 0x00000a80u, 0x000003b3u, 0x000500c7u, 0x00000006u, 0x00000a83u, 0x00000a82u, + 0x000003e0u, 0x000500c2u, 0x00000006u, 0x00000a85u, 0x00000a80u, 0x0000019bu, 0x000500c7u, 0x00000006u, + 0x00000a86u, 0x00000a85u, 0x000003e0u, 0x00040071u, 0x00000008u, 0x00000a88u, 0x00000a83u, 0x00040071u, + 0x00000008u, 0x00000a8eu, 0x00000a86u, 0x00070050u, 0x00000009u, 0x00000a8fu, 0x00000a88u, 0x00000a88u, + 0x00000a88u, 0x00000a8eu, 0x000300f7u, 0x00000ac8u, 0x00000000u, 0x000400fau, 0x00000683u, 0x00000abdu, + 0x00000ac6u, 0x000200f8u, 0x00000ac6u, 0x000200f9u, 0x00000ac8u, 0x000200f8u, 0x00000abdu, 0x00060052u, + 0x00000009u, 0x00001269u, 0x00000a88u, 0x00001364u, 0x00000000u, 0x00060052u, 0x00000009u, 0x0000126bu, + 0x00000a88u, 0x00001269u, 0x00000001u, 0x00060052u, 0x00000009u, 0x0000126du, 0x00000a88u, 0x0000126bu, + 0x00000002u, 0x000200f9u, 0x00000ac8u, 0x000200f8u, 0x00000ac8u, 0x000700f5u, 0x00000009u, 0x00001531u, + 0x0000126du, 0x00000abdu, 0x00000a8fu, 0x00000ac6u, 0x000200f9u, 0x00000a9eu, 0x000200f8u, 0x00000a5bu, + 0x000500c7u, 0x00000006u, 0x00000a5du, 0x0000152au, 0x000001bfu, 0x000500c6u, 0x00000006u, 0x00000a5eu, + 0x00000a5du, 0x000001bfu, 0x00050084u, 0x00000006u, 0x00000a5fu, 0x00000a5eu, 0x000003fcu, 0x000500c2u, + 0x00000006u, 0x00000a61u, 0x000008d2u, 0x00000a5fu, 0x000500c2u, 0x00000006u, 0x00000a63u, 0x00000a61u, + 0x000003b3u, 0x000500c7u, 0x00000006u, 0x00000a64u, 0x00000a63u, 0x000003bau, 0x000500c2u, 0x00000006u, + 0x00000a66u, 0x00000a61u, 0x000001c7u, 0x000500c7u, 0x00000006u, 0x00000a67u, 0x00000a66u, 0x000003bau, + 0x000500c4u, 0x00000006u, 0x00000a69u, 0x00000a61u, 0x00000173u, 0x000500c7u, 0x00000006u, 0x00000a6au, + 0x00000a69u, 0x000003bau, 0x000500c7u, 0x00000006u, 0x00000a6cu, 0x00000a61u, 0x000001bfu, 0x00050084u, + 0x00000006u, 0x00000a6du, 0x00000a6cu, 0x000006adu, 0x00040071u, 0x00000008u, 0x00000a6fu, 0x00000a64u, + 0x00040071u, 0x00000008u, 0x00000a71u, 0x00000a67u, 0x00040071u, 0x00000008u, 0x00000a73u, 0x00000a6au, + 0x00040071u, 0x00000008u, 0x00000a75u, 0x00000a6du, 0x00070050u, 0x00000009u, 0x00000a76u, 0x00000a6fu, + 0x00000a71u, 0x00000a73u, 0x00000a75u, 0x000300f7u, 0x00000abbu, 0x00000000u, 0x000400fau, 0x00000683u, + 0x00000ab0u, 0x00000ab9u, 0x000200f8u, 0x00000ab9u, 0x000200f9u, 0x00000abbu, 0x000200f8u, 0x00000ab0u, + 0x00060052u, 0x00000009u, 0x00001263u, 0x00000a6fu, 0x00001364u, 0x00000000u, 0x00060052u, 0x00000009u, + 0x00001265u, 0x00000a71u, 0x00001263u, 0x00000001u, 0x00060052u, 0x00000009u, 0x00001267u, 0x00000a73u, + 0x00001265u, 0x00000002u, 0x000200f9u, 0x00000abbu, 0x000200f8u, 0x00000abbu, 0x000700f5u, 0x00000009u, + 0x00001530u, 0x00001267u, 0x00000ab0u, 0x00000a76u, 0x00000ab9u, 0x000200f9u, 0x00000a9eu, 0x000200f8u, + 0x00000a44u, 0x000500c2u, 0x00000006u, 0x00000a46u, 0x000008d2u, 0x000003fbu, 0x000500c7u, 0x00000006u, + 0x00000a47u, 0x00000a46u, 0x000003e0u, 0x000500c2u, 0x00000006u, 0x00000a49u, 0x000008d2u, 0x000003fcu, + 0x000500c7u, 0x00000006u, 0x00000a4au, 0x00000a49u, 0x000003e0u, 0x000500c2u, 0x00000006u, 0x00000a4cu, + 0x000008d2u, 0x000003b3u, 0x000500c7u, 0x00000006u, 0x00000a4du, 0x00000a4cu, 0x000003e0u, 0x000500c2u, + 0x00000006u, 0x00000a4fu, 0x000008d2u, 0x0000019bu, 0x000500c7u, 0x00000006u, 0x00000a50u, 0x00000a4fu, + 0x000003e0u, 0x00040071u, 0x00000008u, 0x00000a52u, 0x00000a47u, 0x00040071u, 0x00000008u, 0x00000a54u, + 0x00000a4au, 0x00040071u, 0x00000008u, 0x00000a56u, 0x00000a4du, 0x00040071u, 0x00000008u, 0x00000a58u, + 0x00000a50u, 0x00070050u, 0x00000009u, 0x00000a59u, 0x00000a52u, 0x00000a54u, 0x00000a56u, 0x00000a58u, + 0x000300f7u, 0x00000aaeu, 0x00000000u, 0x000400fau, 0x00000683u, 0x00000aa3u, 0x00000aacu, 0x000200f8u, + 0x00000aacu, 0x000200f9u, 0x00000aaeu, 0x000200f8u, 0x00000aa3u, 0x00060052u, 0x00000009u, 0x0000125du, + 0x00000a52u, 0x00001364u, 0x00000000u, 0x00060052u, 0x00000009u, 0x0000125fu, 0x00000a54u, 0x0000125du, + 0x00000001u, 0x00060052u, 0x00000009u, 0x00001261u, 0x00000a56u, 0x0000125fu, 0x00000002u, 0x000200f9u, + 0x00000aaeu, 0x000200f8u, 0x00000aaeu, 0x000700f5u, 0x00000009u, 0x0000152fu, 0x00001261u, 0x00000aa3u, + 0x00000a59u, 0x00000aacu, 0x000200f9u, 0x00000a9eu, 0x000200f8u, 0x00000a9eu, 0x000d00f5u, 0x00000034u, + 0x000015b8u, 0x000015b4u, 0x000008cdu, 0x000002bfu, 0x00000aaeu, 0x000002bfu, 0x00000abbu, 0x000002bfu, + 0x00000ac8u, 0x000002bfu, 0x00000ad5u, 0x000d00f5u, 0x00000009u, 0x0000152eu, 0x00001364u, 0x000008cdu, + 0x0000152fu, 0x00000aaeu, 0x00001530u, 0x00000abbu, 0x00001531u, 0x00000ac8u, 0x00001532u, 0x00000ad5u, + 0x000300f7u, 0x00000aa1u, 0x00000000u, 0x000400fau, 0x00000574u, 0x00000a9fu, 0x00000aa1u, 0x000200f8u, + 0x00000a9fu, 0x000300f7u, 0x00000b0eu, 0x00000000u, 0x000700fbu, 0x00000375u, 0x00000b0eu, 0x00000002u, + 0x00000adbu, 0x00000003u, 0x00000af8u, 0x000200f8u, 0x00000af8u, 0x0007004fu, 0x00000036u, 0x00000afau, + 0x0000152eu, 0x0000152eu, 0x00000000u, 0x00000003u, 0x00040071u, 0x00000078u, 0x00000afbu, 0x00000afau, + 0x00050051u, 0x00000006u, 0x00000afdu, 0x00000afbu, 0x00000000u, 0x000500c4u, 0x00000006u, 0x00000afeu, + 0x00000afdu, 0x000003b3u, 0x00050051u, 0x00000006u, 0x00000b00u, 0x00000afbu, 0x00000001u, 0x000500c5u, + 0x00000006u, 0x00000b01u, 0x00000afeu, 0x00000b00u, 0x000500c7u, 0x00000006u, 0x00000b03u, 0x00000b01u, + 0x000001bfu, 0x00050084u, 0x00000006u, 0x00000b04u, 0x00000b03u, 0x000001c7u, 0x000500c2u, 0x00000006u, + 0x00000b06u, 0x00000b01u, 0x00000173u, 0x00040071u, 0x0000000au, 0x00000b07u, 0x00000b06u, 0x000500c7u, + 0x00000006u, 0x00000b09u, 0x00000b01u, 0x000001c7u, 0x000500c4u, 0x00000006u, 0x00000b0au, 0x00000b09u, + 0x00000173u, 0x000500c5u, 0x00000006u, 0x00000b0cu, 0x00000b0au, 0x00000b04u, 0x00040071u, 0x00000008u, + 0x00000b0du, 0x00000b0cu, 0x000200f9u, 0x00000b0eu, 0x000200f8u, 0x00000adbu, 0x00050051u, 0x00000008u, + 0x00000addu, 0x0000152eu, 0x00000003u, 0x000500c2u, 0x00000008u, 0x00000adeu, 0x00000addu, 0x00000204u, + 0x00050051u, 0x00000008u, 0x00000ae0u, 0x0000152eu, 0x00000002u, 0x000500c7u, 0x00000008u, 0x00000ae1u, + 0x00000ae0u, 0x0000040eu, 0x000500c5u, 0x00000008u, 0x00000ae2u, 0x00000adeu, 0x00000ae1u, 0x00050051u, + 0x00000008u, 0x00000ae4u, 0x0000152eu, 0x00000000u, 0x00040071u, 0x00000006u, 0x00000ae5u, 0x00000ae4u, + 0x000500c7u, 0x00000006u, 0x00000ae6u, 0x00000ae5u, 0x000003bau, 0x000500c4u, 0x00000006u, 0x00000ae7u, + 0x00000ae6u, 0x00000416u, 0x00050051u, 0x00000008u, 0x00000ae9u, 0x0000152eu, 0x00000001u, 0x00040071u, + 0x00000006u, 0x00000aeau, 0x00000ae9u, 0x000500c7u, 0x00000006u, 0x00000aebu, 0x00000aeau, 0x000003bau, + 0x000500c4u, 0x00000006u, 0x00000aecu, 0x00000aebu, 0x000001bfu, 0x000500c5u, 0x00000006u, 0x00000aeeu, + 0x00000ae7u, 0x00000aecu, 0x00040071u, 0x00000006u, 0x00000af1u, 0x00000ae0u, 0x000500c7u, 0x00000006u, + 0x00000af2u, 0x00000af1u, 0x000003bau, 0x000500c2u, 0x00000006u, 0x00000af3u, 0x00000af2u, 0x00000423u, + 0x000500c5u, 0x00000006u, 0x00000af5u, 0x00000aeeu, 0x00000af3u, 0x00040071u, 0x0000000au, 0x00000af7u, + 0x00000af5u, 0x000200f9u, 0x00000b0eu, 0x000200f8u, 0x00000b0eu, 0x000900f5u, 0x00000008u, 0x000016e3u, + 0x00001375u, 0x00000a9fu, 0x00000ae2u, 0x00000adbu, 0x00000b0du, 0x00000af8u, 0x000900f5u, 0x0000000au, + 0x000016a5u, 0x00001372u, 0x00000a9fu, 0x00000af7u, 0x00000adbu, 0x00000b07u, 0x00000af8u, 0x000200f9u, + 0x00000aa1u, 0x000200f8u, 0x00000aa1u, 0x000700f5u, 0x00000008u, 0x000016ddu, 0x00001375u, 0x00000a9eu, + 0x000016e3u, 0x00000b0eu, 0x000700f5u, 0x0000000au, 0x0000169fu, 0x00001372u, 0x00000a9eu, 0x000016a5u, + 0x00000b0eu, 0x000200f9u, 0x000008ceu, 0x000200f8u, 0x000008ceu, 0x000700f5u, 0x0000001bu, 0x0000183cu, + 0x000014bfu, 0x00000aa1u, 0x00001844u, 0x000008d9u, 0x000700f5u, 0x0000001bu, 0x00001822u, 0x00001494u, + 0x00000aa1u, 0x0000182au, 0x000008d9u, 0x000700f5u, 0x00000008u, 0x00001807u, 0x0000146au, 0x00000aa1u, + 0x0000180fu, 0x000008d9u, 0x000700f5u, 0x00000008u, 0x000017ecu, 0x00001440u, 0x00000aa1u, 0x000017f4u, + 0x000008d9u, 0x000700f5u, 0x0000001bu, 0x000017c4u, 0x00001413u, 0x00000aa1u, 0x000017ccu, 0x000008d9u, + 0x000700f5u, 0x0000001bu, 0x0000179du, 0x000013f5u, 0x00000aa1u, 0x000017a5u, 0x000008d9u, 0x000700f5u, + 0x00000008u, 0x00001775u, 0x000013d8u, 0x00000aa1u, 0x0000177du, 0x000008d9u, 0x000700f5u, 0x00000008u, + 0x0000174du, 0x000013bbu, 0x00000aa1u, 0x00001755u, 0x000008d9u, 0x000700f5u, 0x00000008u, 0x000016dcu, + 0x000016ddu, 0x00000aa1u, 0x000016e4u, 0x000008d9u, 0x000700f5u, 0x0000000au, 0x0000169eu, 0x0000169fu, + 0x00000aa1u, 0x000016a6u, 0x000008d9u, 0x000700f5u, 0x0000001bu, 0x00001660u, 0x00001369u, 0x00000aa1u, + 0x00001668u, 0x000008d9u, 0x000700f5u, 0x00000009u, 0x00001653u, 0x0000152eu, 0x00000aa1u, 0x00001656u, + 0x000008d9u, 0x000700f5u, 0x00000034u, 0x000015d3u, 0x000015d1u, 0x00000aa1u, 0x000015dbu, 0x000008d9u, + 0x000700f5u, 0x00000034u, 0x000015b6u, 0x000015b8u, 0x00000aa1u, 0x000015bau, 0x000008d9u, 0x000200f9u, + 0x000008c8u, 0x000200f8u, 0x000008c8u, 0x000700f5u, 0x0000001bu, 0x0000183bu, 0x000014bfu, 0x0000089du, + 0x0000183cu, 0x000008ceu, 0x000700f5u, 0x0000001bu, 0x00001821u, 0x00001494u, 0x0000089du, 0x00001822u, + 0x000008ceu, 0x000700f5u, 0x00000008u, 0x00001806u, 0x0000146au, 0x0000089du, 0x00001807u, 0x000008ceu, + 0x000700f5u, 0x00000008u, 0x000017ebu, 0x00001440u, 0x0000089du, 0x000017ecu, 0x000008ceu, 0x000700f5u, + 0x0000001bu, 0x000017c3u, 0x00001413u, 0x0000089du, 0x000017c4u, 0x000008ceu, 0x000700f5u, 0x0000001bu, + 0x0000179cu, 0x000013f5u, 0x0000089du, 0x0000179du, 0x000008ceu, 0x000700f5u, 0x00000008u, 0x00001774u, + 0x000013d8u, 0x0000089du, 0x00001775u, 0x000008ceu, 0x000700f5u, 0x00000008u, 0x0000174cu, 0x000013bbu, + 0x0000089du, 0x0000174du, 0x000008ceu, 0x000700f5u, 0x00000008u, 0x000016dbu, 0x00001375u, 0x0000089du, + 0x000016dcu, 0x000008ceu, 0x000700f5u, 0x0000000au, 0x0000169du, 0x00001372u, 0x0000089du, 0x0000169eu, + 0x000008ceu, 0x000700f5u, 0x0000001bu, 0x0000165fu, 0x00001369u, 0x0000089du, 0x00001660u, 0x000008ceu, + 0x000700f5u, 0x00000009u, 0x00001652u, 0x00001364u, 0x0000089du, 0x00001653u, 0x000008ceu, 0x000700f5u, + 0x00000034u, 0x000015d2u, 0x000015d1u, 0x0000089du, 0x000015d3u, 0x000008ceu, 0x000700f5u, 0x00000034u, + 0x000015b5u, 0x000015b4u, 0x0000089du, 0x000015b6u, 0x000008ceu, 0x00050080u, 0x00000006u, 0x00000916u, + 0x00001363u, 0x000000b8u, 0x000200f9u, 0x0000089fu, 0x000200f8u, 0x0000089fu, 0x000200f9u, 0x0000089cu, + 0x000200f8u, 0x0000089eu, 0x000200f9u, 0x0000087bu, 0x000200f8u, 0x0000087bu, 0x000200f9u, 0x00000878u, + 0x000200f8u, 0x0000087au, 0x000500aeu, 0x000005a0u, 0x0000106fu, 0x0000086au, 0x0000098fu, 0x0004009au, + 0x00000034u, 0x00001070u, 0x0000106fu, 0x000600a9u, 0x00000034u, 0x000018acu, 0x00001070u, 0x0000029cu, + 0x00001329u, 0x000600a9u, 0x00000034u, 0x000018adu, 0x00001070u, 0x0000029cu, 0x0000130cu, 0x000500c2u, + 0x00000006u, 0x00001074u, 0x0000086du, 0x0000056bu, 0x00050050u, 0x00000078u, 0x00001076u, 0x00000623u, + 0x00000623u, 0x000500c7u, 0x00000078u, 0x00001077u, 0x0000086au, 0x00001076u, 0x00050050u, 0x000005adu, + 0x00001079u, 0x0000056bu, 0x0000056bu, 0x000500c2u, 0x00000078u, 0x0000107au, 0x0000086au, 0x00001079u, + 0x00050051u, 0x00000006u, 0x0000107cu, 0x00001077u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000107du, + 0x0000107cu, 0x0000062cu, 0x00050051u, 0x00000006u, 0x0000107fu, 0x00001077u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00001080u, 0x0000107du, 0x0000107fu, 0x00050051u, 0x00000006u, 0x00001084u, 0x0000107au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00001085u, 0x00001074u, 0x00001084u, 0x00050080u, 0x00000006u, + 0x00001086u, 0x00000873u, 0x00001085u, 0x00050051u, 0x00000006u, 0x00001088u, 0x0000107au, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00001089u, 0x00001086u, 0x00001088u, 0x000300f7u, 0x00001156u, 0x00000000u, + 0x000400fau, 0x000018adu, 0x000010a8u, 0x00001156u, 0x000200f8u, 0x000010a8u, 0x000300f7u, 0x00001155u, + 0x00000000u, 0x000d00fbu, 0x00000375u, 0x00001155u, 0x00000000u, 0x000010a9u, 0x00000001u, 0x000010bdu, + 0x00000002u, 0x000010d9u, 0x00000003u, 0x00001107u, 0x00000004u, 0x00001123u, 0x000200f8u, 0x00001123u, + 0x000500c7u, 0x00000006u, 0x00001125u, 0x00001089u, 0x000003e8u, 0x00050084u, 0x00000006u, 0x00001127u, + 0x00001080u, 0x00000535u, 0x00050080u, 0x00000006u, 0x00001129u, 0x00001125u, 0x00001127u, 0x00040071u, + 0x0000025du, 0x0000112bu, 0x00001311u, 0x00050051u, 0x00000006u, 0x0000112du, 0x0000112bu, 0x00000000u, + 0x000500c4u, 0x00000006u, 0x0000112eu, 0x0000112du, 0x000003fbu, 0x00050051u, 0x00000006u, 0x00001130u, + 0x0000112bu, 0x00000001u, 0x000500c4u, 0x00000006u, 0x00001131u, 0x00001130u, 0x000003fcu, 0x000500c5u, + 0x00000006u, 0x00001132u, 0x0000112eu, 0x00001131u, 0x00050051u, 0x00000006u, 0x00001134u, 0x0000112bu, + 0x00000002u, 0x000500c4u, 0x00000006u, 0x00001135u, 0x00001134u, 0x000003b3u, 0x000500c5u, 0x00000006u, + 0x00001136u, 0x00001132u, 0x00001135u, 0x00050051u, 0x00000006u, 0x00001138u, 0x0000112bu, 0x00000003u, + 0x000500c4u, 0x00000006u, 0x00001139u, 0x00001138u, 0x0000019bu, 0x000500c5u, 0x00000006u, 0x0000113au, + 0x00001136u, 0x00001139u, 0x00060041u, 0x000003f6u, 0x0000113du, 0x000003f4u, 0x000000aeu, 0x00001129u, + 0x0003003eu, 0x0000113du, 0x0000113au, 0x00050084u, 0x00000006u, 0x0000113fu, 0x00000173u, 0x00001129u, + 0x00050051u, 0x00000008u, 0x00001141u, 0x00001311u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00001142u, + 0x00001141u, 0x0004007cu, 0x00000017u, 0x00001143u, 0x00001142u, 0x000500c7u, 0x00000017u, 0x00001144u, + 0x00001143u, 0x000000b8u, 0x00050084u, 0x00000017u, 0x00001145u, 0x00001144u, 0x000000beu, 0x00040072u, + 0x0000012cu, 0x00001146u, 0x00001145u, 0x0004007cu, 0x00000008u, 0x00001147u, 0x00001146u, 0x00060041u, + 0x0000038au, 0x00001148u, 0x00000395u, 0x000000aeu, 0x0000113fu, 0x0003003eu, 0x00001148u, 0x00001147u, + 0x00050080u, 0x00000006u, 0x0000114bu, 0x0000113fu, 0x000001bfu, 0x00050051u, 0x00000008u, 0x0000114du, + 0x00001311u, 0x00000003u, 0x00040071u, 0x00000006u, 0x0000114eu, 0x0000114du, 0x0004007cu, 0x00000017u, + 0x0000114fu, 0x0000114eu, 0x000500c7u, 0x00000017u, 0x00001150u, 0x0000114fu, 0x000000b8u, 0x00050084u, + 0x00000017u, 0x00001151u, 0x00001150u, 0x000000beu, 0x00040072u, 0x0000012cu, 0x00001152u, 0x00001151u, + 0x0004007cu, 0x00000008u, 0x00001153u, 0x00001152u, 0x00060041u, 0x0000038au, 0x00001154u, 0x00000395u, + 0x000000aeu, 0x0000114bu, 0x0003003eu, 0x00001154u, 0x00001153u, 0x000200f9u, 0x00001155u, 0x000200f8u, + 0x00001107u, 0x000500c7u, 0x00000006u, 0x00001109u, 0x00001089u, 0x0000039cu, 0x00050084u, 0x00000006u, + 0x0000110bu, 0x00001080u, 0x00000516u, 0x00050080u, 0x00000006u, 0x0000110du, 0x00001109u, 0x0000110bu, + 0x0007004fu, 0x00000036u, 0x0000110fu, 0x00001311u, 0x00001311u, 0x00000000u, 0x00000003u, 0x00040071u, + 0x00000078u, 0x00001110u, 0x0000110fu, 0x00050051u, 0x00000006u, 0x00001112u, 0x00001110u, 0x00000000u, + 0x000500c4u, 0x00000006u, 0x00001113u, 0x00001112u, 0x000003b3u, 0x00050051u, 0x00000006u, 0x00001115u, + 0x00001110u, 0x00000001u, 0x000500c5u, 0x00000006u, 0x00001116u, 0x00001113u, 0x00001115u, 0x000500c6u, + 0x00000006u, 0x00001118u, 0x0000110du, 0x000001bfu, 0x00040071u, 0x0000000au, 0x0000111au, 0x00001116u, + 0x00060041u, 0x000003abu, 0x0000111bu, 0x000003a8u, 0x000000aeu, 0x00001118u, 0x0003003eu, 0x0000111bu, + 0x0000111au, 0x000500c7u, 0x00000006u, 0x0000111fu, 0x00001115u, 0x000001bfu, 0x00050084u, 0x00000006u, + 0x00001120u, 0x0000111fu, 0x000001c7u, 0x00040071u, 0x00000008u, 0x00001121u, 0x00001120u, 0x00060041u, + 0x0000038au, 0x00001122u, 0x00000395u, 0x000000aeu, 0x0000110du, 0x0003003eu, 0x00001122u, 0x00001121u, + 0x000200f9u, 0x00001155u, 0x000200f8u, 0x000010d9u, 0x000500c7u, 0x00000006u, 0x000010dbu, 0x00001089u, + 0x0000039cu, 0x00050084u, 0x00000006u, 0x000010ddu, 0x00001080u, 0x000004e3u, 0x00050080u, 0x00000006u, + 0x000010dfu, 0x000010dbu, 0x000010ddu, 0x00040071u, 0x0000025du, 0x000010e1u, 0x00001311u, 0x0008004fu, + 0x000003afu, 0x000010e3u, 0x000010e1u, 0x000010e1u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c7u, + 0x000003afu, 0x000010e5u, 0x000010e3u, 0x00001896u, 0x00050051u, 0x00000006u, 0x000010e7u, 0x000010e5u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x000010e9u, 0x000010e5u, 0x00000001u, 0x00050051u, 0x00000006u, + 0x000010ebu, 0x000010e5u, 0x00000002u, 0x00050051u, 0x00000006u, 0x000010edu, 0x000010e1u, 0x00000003u, + 0x000500c2u, 0x00000006u, 0x000010eeu, 0x000010edu, 0x00000456u, 0x000500c4u, 0x00000006u, 0x000010f1u, + 0x000010e7u, 0x000003b3u, 0x000500c4u, 0x00000006u, 0x000010f4u, 0x000010e9u, 0x000001c7u, 0x000500c5u, + 0x00000006u, 0x000010f5u, 0x000010f1u, 0x000010f4u, 0x000500c2u, 0x00000006u, 0x000010f8u, 0x000010ebu, + 0x00000173u, 0x000500c5u, 0x00000006u, 0x000010f9u, 0x000010f5u, 0x000010f8u, 0x000500c2u, 0x00000006u, + 0x000010fbu, 0x000010eeu, 0x00000173u, 0x000500c5u, 0x00000006u, 0x000010fcu, 0x000010f9u, 0x000010fbu, + 0x000500c6u, 0x00000006u, 0x000010feu, 0x000010dfu, 0x000001bfu, 0x00040071u, 0x0000000au, 0x00001100u, + 0x000010fcu, 0x00060041u, 0x000003abu, 0x00001101u, 0x000003a8u, 0x000000aeu, 0x000010feu, 0x0003003eu, + 0x00001101u, 0x00001100u, 0x000500c7u, 0x00000006u, 0x00001104u, 0x000010eeu, 0x000001c7u, 0x00040071u, + 0x00000008u, 0x00001105u, 0x00001104u, 0x00060041u, 0x0000038au, 0x00001106u, 0x00000395u, 0x000000aeu, + 0x000010dfu, 0x0003003eu, 0x00001106u, 0x00001105u, 0x000200f9u, 0x00001155u, 0x000200f8u, 0x000010bdu, + 0x000500c7u, 0x00000006u, 0x000010bfu, 0x00001089u, 0x0000037cu, 0x00050084u, 0x00000006u, 0x000010c1u, + 0x00001080u, 0x0000037bu, 0x00050080u, 0x00000006u, 0x000010c3u, 0x000010bfu, 0x000010c1u, 0x000500c6u, + 0x00000006u, 0x000010c5u, 0x000010c3u, 0x000001c7u, 0x00050051u, 0x00000008u, 0x000010c7u, 0x00001311u, + 0x00000000u, 0x00060041u, 0x0000038au, 0x000010c8u, 0x00000387u, 0x000000aeu, 0x000010c5u, 0x0003003eu, + 0x000010c8u, 0x000010c7u, 0x000500c7u, 0x00000006u, 0x000010cau, 0x000010c3u, 0x000001bfu, 0x000500abu, + 0x00000034u, 0x000010cbu, 0x000010cau, 0x0000019bu, 0x000300f7u, 0x000010d8u, 0x00000000u, 0x000400fau, + 0x000010cbu, 0x000010ccu, 0x000010d8u, 0x000200f8u, 0x000010ccu, 0x000500c2u, 0x00000006u, 0x000010ceu, + 0x000010c3u, 0x000001bfu, 0x00040071u, 0x00000006u, 0x000010d1u, 0x000010c7u, 0x0004007cu, 0x00000017u, + 0x000010d2u, 0x000010d1u, 0x000500c7u, 0x00000017u, 0x000010d3u, 0x000010d2u, 0x000000b8u, 0x00050084u, + 0x00000017u, 0x000010d4u, 0x000010d3u, 0x000000beu, 0x00040072u, 0x0000012cu, 0x000010d5u, 0x000010d4u, + 0x0004007cu, 0x00000008u, 0x000010d6u, 0x000010d5u, 0x00060041u, 0x0000038au, 0x000010d7u, 0x00000395u, + 0x000000aeu, 0x000010ceu, 0x0003003eu, 0x000010d7u, 0x000010d6u, 0x000200f9u, 0x000010d8u, 0x000200f8u, + 0x000010d8u, 0x000200f9u, 0x00001155u, 0x000200f8u, 0x000010a9u, 0x000500c7u, 0x00000006u, 0x000010abu, + 0x00001089u, 0x0000037cu, 0x00050084u, 0x00000006u, 0x000010adu, 0x00001080u, 0x0000037bu, 0x00050080u, + 0x00000006u, 0x000010afu, 0x000010abu, 0x000010adu, 0x000500c6u, 0x00000006u, 0x000010b1u, 0x000010afu, + 0x000001c7u, 0x00060041u, 0x0000038au, 0x000010b2u, 0x00000387u, 0x000000aeu, 0x000010b1u, 0x0003003eu, + 0x000010b2u, 0x000001edu, 0x000500c7u, 0x00000006u, 0x000010b4u, 0x000010afu, 0x000001bfu, 0x000500abu, + 0x00000034u, 0x000010b5u, 0x000010b4u, 0x0000019bu, 0x000300f7u, 0x000010bcu, 0x00000000u, 0x000400fau, + 0x000010b5u, 0x000010b6u, 0x000010bcu, 0x000200f8u, 0x000010b6u, 0x000500c2u, 0x00000006u, 0x000010b8u, + 0x000010afu, 0x000001bfu, 0x00050051u, 0x00000008u, 0x000010bau, 0x00001311u, 0x00000003u, 0x00060041u, + 0x0000038au, 0x000010bbu, 0x00000395u, 0x000000aeu, 0x000010b8u, 0x0003003eu, 0x000010bbu, 0x000010bau, + 0x000200f9u, 0x000010bcu, 0x000200f8u, 0x000010bcu, 0x000200f9u, 0x00001155u, 0x000200f8u, 0x00001155u, + 0x000f00f5u, 0x00000006u, 0x00001316u, 0x00001089u, 0x000010a8u, 0x000010afu, 0x000010bcu, 0x000010c3u, + 0x000010d8u, 0x000010dfu, 0x000010d9u, 0x0000110du, 0x00001107u, 0x00001129u, 0x00001123u, 0x000200f9u, + 0x00001156u, 0x000200f8u, 0x00001156u, 0x000700f5u, 0x00000006u, 0x00001315u, 0x00001089u, 0x0000087au, + 0x00001316u, 0x00001155u, 0x000300f7u, 0x0000115au, 0x00000000u, 0x000400fau, 0x0000056du, 0x00001157u, + 0x0000115au, 0x000200f8u, 0x00001157u, 0x000300e1u, 0x000001bfu, 0x00000570u, 0x000300f7u, 0x0000116du, + 0x00000000u, 0x000400fau, 0x000018adu, 0x0000115du, 0x0000116du, 0x000200f8u, 0x0000115du, 0x000300f7u, + 0x0000116cu, 0x00000000u, 0x000d00fbu, 0x00000375u, 0x0000116cu, 0x00000000u, 0x0000115eu, 0x00000001u, + 0x0000115eu, 0x00000002u, 0x00001163u, 0x00000003u, 0x00001163u, 0x00000004u, 0x00001168u, 0x000200f8u, + 0x00001168u, 0x00050080u, 0x00000006u, 0x0000116au, 0x00001315u, 0x000004a1u, 0x00060041u, 0x000003f6u, + 0x0000116bu, 0x000003f4u, 0x000000aeu, 0x0000116au, 0x0003003eu, 0x0000116bu, 0x000004a3u, 0x000200f9u, + 0x0000116cu, 0x000200f8u, 0x00001163u, 0x000500c6u, 0x00000006u, 0x00001165u, 0x00001315u, 0x000001bfu, + 0x00050080u, 0x00000006u, 0x00001166u, 0x00001165u, 0x0000049bu, 0x00060041u, 0x000003abu, 0x00001167u, + 0x000003a8u, 0x000000aeu, 0x00001166u, 0x0003003eu, 0x00001167u, 0x0000049du, 0x000200f9u, 0x0000116cu, + 0x000200f8u, 0x0000115eu, 0x000500c6u, 0x00000006u, 0x00001160u, 0x00001315u, 0x000001c7u, 0x00050080u, + 0x00000006u, 0x00001161u, 0x00001160u, 0x0000037bu, 0x00060041u, 0x0000038au, 0x00001162u, 0x00000387u, + 0x000000aeu, 0x00001161u, 0x0003003eu, 0x00001162u, 0x000001d2u, 0x000200f9u, 0x0000116cu, 0x000200f8u, + 0x0000116cu, 0x000200f9u, 0x0000116du, 0x000200f8u, 0x0000116du, 0x000200f9u, 0x0000115au, 0x000200f8u, + 0x0000115au, 0x00050080u, 0x00000006u, 0x00001092u, 0x00000876u, 0x00001085u, 0x00050080u, 0x00000006u, + 0x00001095u, 0x00001092u, 0x00001088u, 0x000300f7u, 0x00001191u, 0x00000000u, 0x000400fau, 0x00000575u, + 0x0000116fu, 0x00001191u, 0x000200f8u, 0x0000116fu, 0x000300f7u, 0x00001187u, 0x00000000u, 0x000400fau, + 0x000018acu, 0x00001171u, 0x00001187u, 0x000200f8u, 0x00001171u, 0x000500c7u, 0x00000006u, 0x00001173u, + 0x00001095u, 0x0000039cu, 0x00050084u, 0x00000006u, 0x00001175u, 0x00001080u, 0x0000057fu, 0x00050080u, + 0x00000006u, 0x00001177u, 0x00001173u, 0x00001175u, 0x000500c6u, 0x00000006u, 0x00001179u, 0x00001177u, + 0x000001bfu, 0x000500c4u, 0x0000000au, 0x0000117bu, 0x00001337u, 0x00000482u, 0x000500c2u, 0x00000008u, + 0x0000117du, 0x00001344u, 0x00000482u, 0x00040071u, 0x0000000au, 0x0000117eu, 0x0000117du, 0x000500c5u, + 0x0000000au, 0x0000117fu, 0x0000117bu, 0x0000117eu, 0x00060041u, 0x000003abu, 0x00001180u, 0x000003a8u, + 0x000000aeu, 0x00001179u, 0x0003003eu, 0x00001180u, 0x0000117fu, 0x00040071u, 0x0000000au, 0x00001183u, + 0x00001344u, 0x000500c7u, 0x0000000au, 0x00001184u, 0x00001183u, 0x00000488u, 0x00040071u, 0x00000008u, + 0x00001185u, 0x00001184u, 0x00060041u, 0x0000038au, 0x00001186u, 0x00000395u, 0x000000aeu, 0x00001177u, + 0x0003003eu, 0x00001186u, 0x00001185u, 0x000200f9u, 0x00001187u, 0x000200f8u, 0x00001187u, 0x000700f5u, + 0x00000006u, 0x0000134fu, 0x00001095u, 0x0000116fu, 0x00001177u, 0x00001171u, 0x000300f7u, 0x00001190u, + 0x00000000u, 0x000400fau, 0x0000056du, 0x00001188u, 0x00001190u, 0x000200f8u, 0x00001188u, 0x000300e1u, + 0x000001bfu, 0x00000570u, 0x000300f7u, 0x0000118fu, 0x00000000u, 0x000400fau, 0x000018acu, 0x0000118au, + 0x0000118fu, 0x000200f8u, 0x0000118au, 0x000500c6u, 0x00000006u, 0x0000118cu, 0x0000134fu, 0x000001bfu, + 0x00050080u, 0x00000006u, 0x0000118du, 0x0000118cu, 0x00000599u, 0x00060041u, 0x000003abu, 0x0000118eu, + 0x000003a8u, 0x000000aeu, 0x0000118du, 0x0003003eu, 0x0000118eu, 0x0000049du, 0x000200f9u, 0x0000118fu, + 0x000200f8u, 0x0000118fu, 0x000200f9u, 0x00001190u, 0x000200f8u, 0x00001190u, 0x000200f9u, 0x00001191u, + 0x000200f8u, 0x00001191u, 0x000300f7u, 0x0000109du, 0x00000000u, 0x000400fau, 0x0000064fu, 0x00001099u, + 0x0000109du, 0x000200f8u, 0x00001099u, 0x000500c2u, 0x00000006u, 0x0000119au, 0x00001084u, 0x00000173u, + 0x00050080u, 0x00000006u, 0x0000119cu, 0x00001074u, 0x000001c7u, 0x000500c2u, 0x00000006u, 0x0000119du, + 0x0000119cu, 0x00000173u, 0x00050084u, 0x00000006u, 0x0000119eu, 0x0000119au, 0x0000119du, 0x000500c2u, + 0x00000006u, 0x000011a1u, 0x00001088u, 0x00000173u, 0x00050080u, 0x00000006u, 0x000011a2u, 0x0000119eu, + 0x000011a1u, 0x000500c7u, 0x00000078u, 0x000011a5u, 0x0000107au, 0x00001897u, 0x000600a9u, 0x00000006u, + 0x000011a7u, 0x000018adu, 0x000001bfu, 0x0000019bu, 0x000600a9u, 0x00000006u, 0x000011a9u, 0x000018acu, + 0x000001bfu, 0x0000019bu, 0x00050084u, 0x00000006u, 0x000011aau, 0x00000173u, 0x000011a9u, 0x00050080u, + 0x00000006u, 0x000011abu, 0x000011a7u, 0x000011aau, 0x00050051u, 0x00000006u, 0x000011adu, 0x000011a5u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x000011afu, 0x000011a5u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000011b0u, 0x000011afu, 0x00000423u, 0x00050080u, 0x00000006u, 0x000011b1u, 0x000011adu, 0x000011b0u, + 0x00050084u, 0x00000006u, 0x000011b2u, 0x00000173u, 0x000011b1u, 0x000500c4u, 0x00000006u, 0x000011b4u, + 0x000011abu, 0x000011b2u, 0x000200f9u, 0x000011b5u, 0x000200f8u, 0x000011b5u, 0x000700f5u, 0x00000034u, + 0x00001361u, 0x000002bfu, 0x00001099u, 0x000018aeu, 0x000011c7u, 0x000400f6u, 0x000011c9u, 0x000011c7u, + 0x00000000u, 0x000200f9u, 0x000011b6u, 0x000200f8u, 0x000011b6u, 0x00050152u, 0x00000006u, 0x000011b8u, + 0x000001c7u, 0x000011a2u, 0x000500aau, 0x00000034u, 0x000011bau, 0x000011b8u, 0x000011a2u, 0x000300f7u, + 0x000011c6u, 0x00000000u, 0x000400fau, 0x000011bau, 0x000011bbu, 0x000011c6u, 0x000200f8u, 0x000011bbu, + 0x00060168u, 0x00000006u, 0x000011bdu, 0x000001c7u, 0x00000000u, 0x000011b4u, 0x0004014du, 0x00000034u, + 0x000011beu, 0x000001c7u, 0x000300f7u, 0x000011c5u, 0x00000000u, 0x000400fau, 0x000011beu, 0x000011bfu, + 0x000011c5u, 0x000200f8u, 0x000011bfu, 0x00050080u, 0x00000006u, 0x000011c1u, 0x0000060eu, 0x000011a2u, + 0x00060041u, 0x000003f6u, 0x000011c2u, 0x000003f4u, 0x000000aeu, 0x000011c1u, 0x000700f1u, 0x00000006u, + 0x000011c4u, 0x000011c2u, 0x000001bfu, 0x0000019bu, 0x000011bdu, 0x000200f9u, 0x000011c5u, 0x000200f8u, + 0x000011c5u, 0x000200f9u, 0x000011c6u, 0x000200f8u, 0x000011c6u, 0x000600a9u, 0x00000034u, 0x000018aeu, + 0x000011bau, 0x0000029cu, 0x00001361u, 0x000200f9u, 0x000011c7u, 0x000200f8u, 0x000011c7u, 0x000400fau, + 0x000018aeu, 0x000011b5u, 0x000011c9u, 0x000200f8u, 0x000011c9u, 0x000200f9u, 0x0000109du, 0x000200f8u, + 0x0000109du, 0x000200f9u, 0x0000097cu, 0x000200f8u, 0x0000097cu, 0x000100fdu, 0x00010038u, 0x07230203u, + 0x00010300u, 0x000d000bu, 0x000085aau, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x00001151u, + 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, + 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, + 0x00000000u, 0x00000001u, 0x0008000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x0000189fu, + 0x000018aeu, 0x000018c8u, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, + 0x00050048u, 0x00000188u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000188u, 0x00000001u, + 0x00000023u, 0x00000010u, 0x00050048u, 0x00000188u, 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, + 0x00000188u, 0x00000003u, 0x00000023u, 0x00000030u, 0x00050048u, 0x00000188u, 0x00000004u, 0x00000023u, + 0x00000040u, 0x00050048u, 0x00000188u, 0x00000005u, 0x00000023u, 0x00000050u, 0x00050048u, 0x00000188u, + 0x00000006u, 0x00000023u, 0x00000060u, 0x00050048u, 0x00000188u, 0x00000007u, 0x00000023u, 0x00000070u, + 0x00040047u, 0x00000189u, 0x00000006u, 0x00000080u, 0x00040048u, 0x0000018au, 0x00000000u, 0x00000018u, + 0x00050048u, 0x0000018au, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000018au, 0x00000002u, + 0x00040047u, 0x0000018cu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000018cu, 0x00000021u, 0x00000001u, + 0x00050048u, 0x000001b2u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000001b2u, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x000001b2u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, + 0x000001b2u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000001b2u, 0x00000004u, 0x00000023u, + 0x00000010u, 0x00050048u, 0x000001b2u, 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, 0x000001b2u, + 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000001b2u, 0x00000007u, 0x00000023u, 0x0000001cu, + 0x00050048u, 0x000001b2u, 0x00000008u, 0x00000023u, 0x00000020u, 0x00050048u, 0x000001b2u, 0x00000009u, + 0x00000023u, 0x00000024u, 0x00050048u, 0x000001b2u, 0x0000000au, 0x00000023u, 0x00000028u, 0x00050048u, + 0x000001b2u, 0x0000000bu, 0x00000023u, 0x0000002cu, 0x00050048u, 0x000001b2u, 0x0000000cu, 0x00000023u, + 0x0000002eu, 0x00050048u, 0x000001b2u, 0x0000000du, 0x00000023u, 0x0000002fu, 0x00050048u, 0x000001b2u, + 0x0000000eu, 0x00000023u, 0x00000030u, 0x00040047u, 0x000001b3u, 0x00000006u, 0x00000038u, 0x00040048u, + 0x000001b4u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001b4u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000001b4u, 0x00000002u, 0x00040047u, 0x000001b6u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000001b6u, 0x00000021u, 0x00000002u, 0x00050048u, 0x0000020fu, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00050048u, 0x0000020fu, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x0000020fu, 0x00000002u, + 0x00000023u, 0x00000008u, 0x00050048u, 0x0000020fu, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, + 0x0000020fu, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x0000020fu, 0x00000005u, 0x00000023u, + 0x00000014u, 0x00050048u, 0x0000020fu, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x0000020fu, + 0x00000007u, 0x00000023u, 0x0000001cu, 0x00040047u, 0x00000210u, 0x00000006u, 0x00000020u, 0x00040048u, + 0x00000211u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000211u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x00000211u, 0x00000002u, 0x00040047u, 0x00000213u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x00000213u, 0x00000021u, 0x00000003u, 0x00050048u, 0x00000232u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00050048u, 0x00000232u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000232u, 0x00000002u, + 0x00000023u, 0x00000008u, 0x00050048u, 0x00000232u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00040047u, + 0x00000233u, 0x00000006u, 0x00000010u, 0x00040048u, 0x00000234u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000234u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000234u, 0x00000002u, 0x00040047u, + 0x00000236u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000236u, 0x00000021u, 0x00000005u, 0x00050048u, + 0x00000249u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000249u, 0x00000001u, 0x00000023u, + 0x00000010u, 0x00050048u, 0x00000249u, 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, 0x00000249u, + 0x00000003u, 0x00000023u, 0x00000028u, 0x00050048u, 0x00000249u, 0x00000004u, 0x00000023u, 0x00000030u, + 0x00050048u, 0x00000249u, 0x00000005u, 0x00000023u, 0x00000034u, 0x00050048u, 0x00000249u, 0x00000006u, + 0x00000023u, 0x00000038u, 0x00050048u, 0x00000249u, 0x00000007u, 0x00000023u, 0x0000003cu, 0x00050048u, + 0x00000249u, 0x00000008u, 0x00000023u, 0x0000003eu, 0x00040047u, 0x0000024au, 0x00000006u, 0x00000040u, + 0x00040048u, 0x0000024bu, 0x00000000u, 0x00000018u, 0x00050048u, 0x0000024bu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000024bu, 0x00000002u, 0x00040047u, 0x0000024du, 0x00000022u, 0x00000000u, + 0x00040047u, 0x0000024du, 0x00000021u, 0x00000006u, 0x00050048u, 0x00000276u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x00000276u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000276u, + 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000276u, 0x00000003u, 0x00000023u, 0x0000000cu, + 0x00050048u, 0x00000276u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000276u, 0x00000005u, + 0x00000023u, 0x00000014u, 0x00050048u, 0x00000276u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, + 0x00000276u, 0x00000007u, 0x00000023u, 0x00000019u, 0x00050048u, 0x00000276u, 0x00000008u, 0x00000023u, + 0x0000001au, 0x00050048u, 0x00000276u, 0x00000009u, 0x00000023u, 0x0000001bu, 0x00050048u, 0x00000276u, + 0x0000000au, 0x00000023u, 0x0000001cu, 0x00050048u, 0x00000276u, 0x0000000bu, 0x00000023u, 0x0000001du, + 0x00050048u, 0x00000276u, 0x0000000cu, 0x00000023u, 0x0000001eu, 0x00050048u, 0x00000276u, 0x0000000du, + 0x00000023u, 0x0000001fu, 0x00040047u, 0x00000277u, 0x00000006u, 0x00000020u, 0x00040048u, 0x00000278u, + 0x00000000u, 0x00000018u, 0x00050048u, 0x00000278u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000278u, 0x00000002u, 0x00040047u, 0x0000027au, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000027au, + 0x00000021u, 0x00000008u, 0x00040047u, 0x000004ccu, 0x00000001u, 0x00000002u, 0x00050048u, 0x00000526u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000526u, 0x00000001u, 0x00000023u, 0x00000004u, + 0x00050048u, 0x00000526u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000526u, 0x00000003u, + 0x00000023u, 0x0000000cu, 0x00050048u, 0x00000527u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00000527u, 0x00000002u, 0x00040047u, 0x00000529u, 0x00000022u, 0x00000002u, 0x00040047u, 0x00000529u, + 0x00000021u, 0x00000000u, 0x00040047u, 0x000006ccu, 0x00000006u, 0x00000001u, 0x00050048u, 0x000006cdu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00040047u, 0x000006ceu, 0x00000006u, 0x00001000u, 0x00040048u, + 0x000006cfu, 0x00000000u, 0x00000018u, 0x00050048u, 0x000006cfu, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000006cfu, 0x00000002u, 0x00040047u, 0x000006d1u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000006d1u, 0x00000021u, 0x00000007u, 0x00040047u, 0x00000793u, 0x00000006u, 0x00000002u, 0x00050048u, + 0x00000794u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00040047u, 0x00000795u, 0x00000006u, 0x00001000u, + 0x00040048u, 0x00000796u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000796u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000796u, 0x00000002u, 0x00040047u, 0x00000798u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x00000798u, 0x00000021u, 0x00000007u, 0x00050048u, 0x000014e8u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x000014e8u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000014e8u, + 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000014e8u, 0x00000003u, 0x00000023u, 0x0000000cu, + 0x00050048u, 0x000014e8u, 0x00000004u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x000014e8u, 0x00000005u, + 0x00000023u, 0x00000010u, 0x00050048u, 0x000014e8u, 0x00000006u, 0x00000023u, 0x00000014u, 0x00050048u, + 0x000014e8u, 0x00000007u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000014e8u, 0x00000008u, 0x00000023u, + 0x0000001cu, 0x00050048u, 0x000014e8u, 0x00000009u, 0x00000023u, 0x0000001eu, 0x00050048u, 0x000014e8u, + 0x0000000au, 0x00000023u, 0x0000001fu, 0x00040047u, 0x000014e9u, 0x00000006u, 0x00000020u, 0x00040048u, + 0x000014eau, 0x00000000u, 0x00000018u, 0x00050048u, 0x000014eau, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000014eau, 0x00000002u, 0x00040047u, 0x000014ecu, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000014ecu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00001520u, 0x00000006u, 0x00000001u, 0x00050048u, + 0x00001521u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00001521u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x00001521u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, 0x00001522u, + 0x00000006u, 0x00000010u, 0x00040048u, 0x00001523u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00001523u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00001523u, 0x00000002u, 0x00040047u, 0x00001525u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x00001525u, 0x00000021u, 0x00000004u, 0x00040047u, 0x0000154du, + 0x00000001u, 0x00000007u, 0x00040047u, 0x00001550u, 0x00000001u, 0x00000003u, 0x00040047u, 0x0000155eu, + 0x00000001u, 0x00000004u, 0x00040047u, 0x0000156bu, 0x00000001u, 0x00000005u, 0x00040047u, 0x00001578u, + 0x00000001u, 0x00000006u, 0x00040047u, 0x0000189au, 0x00000006u, 0x00000010u, 0x00040048u, 0x0000189bu, + 0x00000000u, 0x00000018u, 0x00050048u, 0x0000189bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x0000189bu, 0x00000002u, 0x00040047u, 0x0000189du, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000189du, + 0x00000021u, 0x00000000u, 0x00040047u, 0x0000189fu, 0x0000000bu, 0x0000001au, 0x00040047u, 0x000018a9u, + 0x00000001u, 0x00000000u, 0x00040047u, 0x000018aau, 0x00000001u, 0x00000001u, 0x00040047u, 0x000018abu, + 0x0000000bu, 0x00000019u, 0x00040047u, 0x000018aeu, 0x0000000bu, 0x0000001bu, 0x00040047u, 0x000018c8u, + 0x0000000bu, 0x0000001du, 0x00040047u, 0x000018deu, 0x00000006u, 0x00000004u, 0x00040048u, 0x000018dfu, + 0x00000000u, 0x00000019u, 0x00050048u, 0x000018dfu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x000018dfu, 0x00000002u, 0x00040047u, 0x000018e1u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000018e1u, + 0x00000021u, 0x00000009u, 0x00040047u, 0x000018e8u, 0x00000006u, 0x00000001u, 0x00040048u, 0x000018e9u, + 0x00000000u, 0x00000019u, 0x00050048u, 0x000018e9u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x000018e9u, 0x00000002u, 0x00040047u, 0x000018ebu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000018ebu, + 0x00000021u, 0x0000000bu, 0x00040047u, 0x000018f1u, 0x00000006u, 0x00000004u, 0x00040048u, 0x000018f2u, + 0x00000000u, 0x00000019u, 0x00050048u, 0x000018f2u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x000018f2u, 0x00000002u, 0x00040047u, 0x000018f4u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000018f4u, + 0x00000021u, 0x0000000au, 0x00040047u, 0x000018ffu, 0x00000006u, 0x00000004u, 0x00040048u, 0x00001900u, + 0x00000000u, 0x00000019u, 0x00050048u, 0x00001900u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x00001900u, 0x00000002u, 0x00040047u, 0x00001902u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00001902u, + 0x00000021u, 0x00000009u, 0x00040047u, 0x0000190au, 0x00000006u, 0x00000001u, 0x00040048u, 0x0000190bu, + 0x00000000u, 0x00000019u, 0x00050048u, 0x0000190bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x0000190bu, 0x00000002u, 0x00040047u, 0x0000190du, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000190du, + 0x00000021u, 0x0000000cu, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, + 0x00000006u, 0x00000020u, 0x00000000u, 0x00040015u, 0x00000008u, 0x00000020u, 0x00000001u, 0x00040017u, + 0x00000009u, 0x00000008u, 0x00000004u, 0x00040020u, 0x00000038u, 0x00000007u, 0x00000008u, 0x00040017u, + 0x0000004du, 0x00000008u, 0x00000002u, 0x00040017u, 0x00000052u, 0x00000008u, 0x00000003u, 0x00020014u, + 0x00000058u, 0x00040020u, 0x00000068u, 0x00000007u, 0x0000004du, 0x00040017u, 0x000000a0u, 0x00000006u, + 0x00000002u, 0x0004002bu, 0x00000008u, 0x00000187u, 0x00000000u, 0x000a001eu, 0x00000188u, 0x00000009u, + 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x0003001du, + 0x00000189u, 0x00000188u, 0x0003001eu, 0x0000018au, 0x00000189u, 0x00040020u, 0x0000018bu, 0x0000000cu, + 0x0000018au, 0x0004003bu, 0x0000018bu, 0x0000018cu, 0x0000000cu, 0x00040020u, 0x0000018eu, 0x0000000cu, + 0x00000188u, 0x0004002bu, 0x00000008u, 0x00000196u, 0x00000001u, 0x0004002bu, 0x00000008u, 0x00000199u, + 0x00000002u, 0x0004002bu, 0x00000008u, 0x0000019cu, 0x00000003u, 0x0004002bu, 0x00000008u, 0x0000019fu, + 0x00000004u, 0x0004002bu, 0x00000008u, 0x000001a2u, 0x00000005u, 0x0004002bu, 0x00000008u, 0x000001a5u, + 0x00000006u, 0x0004002bu, 0x00000008u, 0x000001a8u, 0x00000007u, 0x00040015u, 0x000001adu, 0x00000008u, + 0x00000000u, 0x00040017u, 0x000001aeu, 0x000001adu, 0x00000004u, 0x00040015u, 0x000001afu, 0x00000010u, + 0x00000000u, 0x00040015u, 0x000001b0u, 0x00000010u, 0x00000001u, 0x00040017u, 0x000001b1u, 0x000001b0u, + 0x00000004u, 0x0011001eu, 0x000001b2u, 0x000001aeu, 0x000001aeu, 0x000001aeu, 0x000001aeu, 0x000001aeu, + 0x000001aeu, 0x000001aeu, 0x000001aeu, 0x000001aeu, 0x000001aeu, 0x00000006u, 0x000001afu, 0x000001adu, + 0x000001adu, 0x000001b1u, 0x0003001du, 0x000001b3u, 0x000001b2u, 0x0003001eu, 0x000001b4u, 0x000001b3u, + 0x00040020u, 0x000001b5u, 0x0000000cu, 0x000001b4u, 0x0004003bu, 0x000001b5u, 0x000001b6u, 0x0000000cu, + 0x00040020u, 0x000001b8u, 0x0000000cu, 0x000001aeu, 0x00040017u, 0x000001bbu, 0x00000006u, 0x00000004u, + 0x0004002bu, 0x00000008u, 0x000001e2u, 0x00000008u, 0x0004002bu, 0x00000008u, 0x000001e8u, 0x00000009u, + 0x0004002bu, 0x00000008u, 0x000001eeu, 0x0000000au, 0x00040020u, 0x000001efu, 0x0000000cu, 0x00000006u, + 0x0004002bu, 0x00000008u, 0x000001f3u, 0x0000000bu, 0x00040020u, 0x000001f4u, 0x0000000cu, 0x000001afu, + 0x0004002bu, 0x00000008u, 0x000001fau, 0x0000000cu, 0x00040020u, 0x000001fbu, 0x0000000cu, 0x000001adu, + 0x0004002bu, 0x00000008u, 0x00000201u, 0x0000000du, 0x0004002bu, 0x00000008u, 0x00000207u, 0x0000000eu, + 0x00040020u, 0x00000208u, 0x0000000cu, 0x000001b1u, 0x000a001eu, 0x0000020fu, 0x000001aeu, 0x000001aeu, + 0x000001aeu, 0x000001aeu, 0x00000006u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, 0x00000210u, + 0x0000020fu, 0x0003001eu, 0x00000211u, 0x00000210u, 0x00040020u, 0x00000212u, 0x0000000cu, 0x00000211u, + 0x0004003bu, 0x00000212u, 0x00000213u, 0x0000000cu, 0x00040020u, 0x0000022cu, 0x0000000cu, 0x00000008u, + 0x0006001eu, 0x00000232u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, 0x00000233u, + 0x00000232u, 0x0003001eu, 0x00000234u, 0x00000233u, 0x00040020u, 0x00000235u, 0x0000000cu, 0x00000234u, + 0x0004003bu, 0x00000235u, 0x00000236u, 0x0000000cu, 0x00040020u, 0x00000238u, 0x0000000cu, 0x00000232u, + 0x00040017u, 0x00000248u, 0x000001afu, 0x00000004u, 0x000b001eu, 0x00000249u, 0x00000009u, 0x00000009u, + 0x00000248u, 0x00000248u, 0x00000008u, 0x00000008u, 0x00000008u, 0x000001b0u, 0x000001afu, 0x0003001du, + 0x0000024au, 0x00000249u, 0x0003001eu, 0x0000024bu, 0x0000024au, 0x00040020u, 0x0000024cu, 0x0000000cu, + 0x0000024bu, 0x0004003bu, 0x0000024cu, 0x0000024du, 0x0000000cu, 0x00040020u, 0x0000024fu, 0x0000000cu, + 0x00000009u, 0x00040020u, 0x00000256u, 0x0000000cu, 0x00000248u, 0x00040020u, 0x0000026au, 0x0000000cu, + 0x000001b0u, 0x0010001eu, 0x00000276u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00000006u, 0x000001adu, 0x000001adu, 0x000001adu, 0x000001adu, 0x000001adu, 0x000001adu, 0x000001adu, + 0x000001adu, 0x0003001du, 0x00000277u, 0x00000276u, 0x0003001eu, 0x00000278u, 0x00000277u, 0x00040020u, + 0x00000279u, 0x0000000cu, 0x00000278u, 0x0004003bu, 0x00000279u, 0x0000027au, 0x0000000cu, 0x00040017u, + 0x000002b8u, 0x00000006u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x000002c0u, 0x00000008u, 0x0004002bu, + 0x00000006u, 0x000002c6u, 0x41c64e6du, 0x0004002bu, 0x00000006u, 0x000002d9u, 0x00000000u, 0x0004002bu, + 0x00000006u, 0x000002dcu, 0x00000010u, 0x0004002bu, 0x00000008u, 0x000002e2u, 0x00000020u, 0x0004002bu, + 0x00000008u, 0x000002ebu, 0x000001ffu, 0x0004002bu, 0x00000008u, 0x000002f0u, 0x000000ffu, 0x0007002cu, + 0x00000009u, 0x000002f5u, 0x00000187u, 0x0000019fu, 0x00000199u, 0x000001a5u, 0x00040017u, 0x000002fau, + 0x00000058u, 0x00000004u, 0x0007002cu, 0x00000009u, 0x00000312u, 0x00000187u, 0x00000187u, 0x00000187u, + 0x00000187u, 0x0007002cu, 0x00000009u, 0x00000313u, 0x00000196u, 0x00000196u, 0x00000196u, 0x00000196u, + 0x0007002cu, 0x00000009u, 0x00000320u, 0x00000196u, 0x00000199u, 0x0000019fu, 0x000001e2u, 0x0004002bu, + 0x00000008u, 0x00000323u, 0x00000010u, 0x0004002bu, 0x00000008u, 0x00000324u, 0x00000040u, 0x0004002bu, + 0x00000008u, 0x00000325u, 0x00000080u, 0x0007002cu, 0x00000009u, 0x00000326u, 0x00000323u, 0x000002e2u, + 0x00000324u, 0x00000325u, 0x0004002bu, 0x00000006u, 0x0000032cu, 0x00000001u, 0x0004002bu, 0x00000006u, + 0x00000330u, 0x00000002u, 0x0004002bu, 0x00000006u, 0x00000333u, 0x00000003u, 0x0007002cu, 0x00000009u, + 0x00000346u, 0x000002f0u, 0x000002f0u, 0x000002f0u, 0x000002f0u, 0x0004002bu, 0x00000008u, 0x00000360u, + 0x00020000u, 0x0004002bu, 0x00000008u, 0x0000036au, 0x0003ffffu, 0x0004002bu, 0x00000008u, 0x00000377u, + 0x00003fffu, 0x0004002bu, 0x00000006u, 0x0000037du, 0x00000040u, 0x0004001cu, 0x0000037eu, 0x0000004du, + 0x0000037du, 0x0004002bu, 0x00000008u, 0x0000037fu, 0x00004000u, 0x0004002bu, 0x00000008u, 0x00000380u, + 0xfffffc10u, 0x0005002cu, 0x0000004du, 0x00000381u, 0x0000037fu, 0x00000380u, 0x0004002bu, 0x00000008u, + 0x00000382u, 0x00003f04u, 0x0004002bu, 0x00000008u, 0x00000383u, 0xfffffc30u, 0x0005002cu, 0x0000004du, + 0x00000384u, 0x00000382u, 0x00000383u, 0x0004002bu, 0x00000008u, 0x00000385u, 0x00003e10u, 0x0004002bu, + 0x00000008u, 0x00000386u, 0xfffffc48u, 0x0005002cu, 0x0000004du, 0x00000387u, 0x00000385u, 0x00000386u, + 0x0004002bu, 0x00000008u, 0x00000388u, 0x00003d22u, 0x0004002bu, 0x00000008u, 0x00000389u, 0xfffffc68u, + 0x0005002cu, 0x0000004du, 0x0000038au, 0x00000388u, 0x00000389u, 0x0004002bu, 0x00000008u, 0x0000038bu, + 0x00003c3cu, 0x0004002bu, 0x00000008u, 0x0000038cu, 0xfffffc84u, 0x0005002cu, 0x0000004du, 0x0000038du, + 0x0000038bu, 0x0000038cu, 0x0004002bu, 0x00000008u, 0x0000038eu, 0x00003b5du, 0x0004002bu, 0x00000008u, + 0x0000038fu, 0xfffffc98u, 0x0005002cu, 0x0000004du, 0x00000390u, 0x0000038eu, 0x0000038fu, 0x0004002bu, + 0x00000008u, 0x00000391u, 0x00003a83u, 0x0004002bu, 0x00000008u, 0x00000392u, 0xfffffcb8u, 0x0005002cu, + 0x0000004du, 0x00000393u, 0x00000391u, 0x00000392u, 0x0004002bu, 0x00000008u, 0x00000394u, 0x000039b1u, + 0x0004002bu, 0x00000008u, 0x00000395u, 0xfffffcccu, 0x0005002cu, 0x0000004du, 0x00000396u, 0x00000394u, + 0x00000395u, 0x0004002bu, 0x00000008u, 0x00000397u, 0x000038e4u, 0x0004002bu, 0x00000008u, 0x00000398u, + 0xfffffce0u, 0x0005002cu, 0x0000004du, 0x00000399u, 0x00000397u, 0x00000398u, 0x0004002bu, 0x00000008u, + 0x0000039au, 0x0000381cu, 0x0004002bu, 0x00000008u, 0x0000039bu, 0xfffffcf8u, 0x0005002cu, 0x0000004du, + 0x0000039cu, 0x0000039au, 0x0000039bu, 0x0004002bu, 0x00000008u, 0x0000039du, 0x0000375au, 0x0004002bu, + 0x00000008u, 0x0000039eu, 0xfffffd0cu, 0x0005002cu, 0x0000004du, 0x0000039fu, 0x0000039du, 0x0000039eu, + 0x0004002bu, 0x00000008u, 0x000003a0u, 0x0000369du, 0x0004002bu, 0x00000008u, 0x000003a1u, 0xfffffd20u, + 0x0005002cu, 0x0000004du, 0x000003a2u, 0x000003a0u, 0x000003a1u, 0x0004002bu, 0x00000008u, 0x000003a3u, + 0x000035e5u, 0x0004002bu, 0x00000008u, 0x000003a4u, 0xfffffd34u, 0x0005002cu, 0x0000004du, 0x000003a5u, + 0x000003a3u, 0x000003a4u, 0x0004002bu, 0x00000008u, 0x000003a6u, 0x00003532u, 0x0004002bu, 0x00000008u, + 0x000003a7u, 0xfffffd44u, 0x0005002cu, 0x0000004du, 0x000003a8u, 0x000003a6u, 0x000003a7u, 0x0004002bu, + 0x00000008u, 0x000003a9u, 0x00003483u, 0x0004002bu, 0x00000008u, 0x000003aau, 0xfffffd58u, 0x0005002cu, + 0x0000004du, 0x000003abu, 0x000003a9u, 0x000003aau, 0x0004002bu, 0x00000008u, 0x000003acu, 0x000033d9u, + 0x0004002bu, 0x00000008u, 0x000003adu, 0xfffffd68u, 0x0005002cu, 0x0000004du, 0x000003aeu, 0x000003acu, + 0x000003adu, 0x0004002bu, 0x00000008u, 0x000003afu, 0x00003333u, 0x0004002bu, 0x00000008u, 0x000003b0u, + 0xfffffd78u, 0x0005002cu, 0x0000004du, 0x000003b1u, 0x000003afu, 0x000003b0u, 0x0004002bu, 0x00000008u, + 0x000003b2u, 0x00003291u, 0x0004002bu, 0x00000008u, 0x000003b3u, 0xfffffd8cu, 0x0005002cu, 0x0000004du, + 0x000003b4u, 0x000003b2u, 0x000003b3u, 0x0004002bu, 0x00000008u, 0x000003b5u, 0x000031f4u, 0x0004002bu, + 0x00000008u, 0x000003b6u, 0xfffffd94u, 0x0005002cu, 0x0000004du, 0x000003b7u, 0x000003b5u, 0x000003b6u, + 0x0004002bu, 0x00000008u, 0x000003b8u, 0x00003159u, 0x0004002bu, 0x00000008u, 0x000003b9u, 0xfffffda8u, + 0x0005002cu, 0x0000004du, 0x000003bau, 0x000003b8u, 0x000003b9u, 0x0004002bu, 0x00000008u, 0x000003bbu, + 0x000030c3u, 0x0004002bu, 0x00000008u, 0x000003bcu, 0xfffffdb4u, 0x0005002cu, 0x0000004du, 0x000003bdu, + 0x000003bbu, 0x000003bcu, 0x0004002bu, 0x00000008u, 0x000003beu, 0x00003030u, 0x0004002bu, 0x00000008u, + 0x000003bfu, 0xfffffdc4u, 0x0005002cu, 0x0000004du, 0x000003c0u, 0x000003beu, 0x000003bfu, 0x0004002bu, + 0x00000008u, 0x000003c1u, 0x00002fa1u, 0x0004002bu, 0x00000008u, 0x000003c2u, 0xfffffdd0u, 0x0005002cu, + 0x0000004du, 0x000003c3u, 0x000003c1u, 0x000003c2u, 0x0004002bu, 0x00000008u, 0x000003c4u, 0x00002f15u, + 0x0004002bu, 0x00000008u, 0x000003c5u, 0xfffffddcu, 0x0005002cu, 0x0000004du, 0x000003c6u, 0x000003c4u, + 0x000003c5u, 0x0004002bu, 0x00000008u, 0x000003c7u, 0x00002e8cu, 0x0004002bu, 0x00000008u, 0x000003c8u, + 0xfffffde8u, 0x0005002cu, 0x0000004du, 0x000003c9u, 0x000003c7u, 0x000003c8u, 0x0004002bu, 0x00000008u, + 0x000003cau, 0x00002e06u, 0x0004002bu, 0x00000008u, 0x000003cbu, 0xfffffdf4u, 0x0005002cu, 0x0000004du, + 0x000003ccu, 0x000003cau, 0x000003cbu, 0x0004002bu, 0x00000008u, 0x000003cdu, 0x00002d83u, 0x0004002bu, + 0x00000008u, 0x000003ceu, 0xfffffe00u, 0x0005002cu, 0x0000004du, 0x000003cfu, 0x000003cdu, 0x000003ceu, + 0x0004002bu, 0x00000008u, 0x000003d0u, 0x00002d03u, 0x0004002bu, 0x00000008u, 0x000003d1u, 0xfffffe0cu, + 0x0005002cu, 0x0000004du, 0x000003d2u, 0x000003d0u, 0x000003d1u, 0x0004002bu, 0x00000008u, 0x000003d3u, + 0x00002c86u, 0x0004002bu, 0x00000008u, 0x000003d4u, 0xfffffe14u, 0x0005002cu, 0x0000004du, 0x000003d5u, + 0x000003d3u, 0x000003d4u, 0x0004002bu, 0x00000008u, 0x000003d6u, 0x00002c0bu, 0x0004002bu, 0x00000008u, + 0x000003d7u, 0xfffffe20u, 0x0005002cu, 0x0000004du, 0x000003d8u, 0x000003d6u, 0x000003d7u, 0x0004002bu, + 0x00000008u, 0x000003d9u, 0x00002b93u, 0x0004002bu, 0x00000008u, 0x000003dau, 0xfffffe2cu, 0x0005002cu, + 0x0000004du, 0x000003dbu, 0x000003d9u, 0x000003dau, 0x0004002bu, 0x00000008u, 0x000003dcu, 0x00002b1eu, + 0x0004002bu, 0x00000008u, 0x000003ddu, 0xfffffe34u, 0x0005002cu, 0x0000004du, 0x000003deu, 0x000003dcu, + 0x000003ddu, 0x0004002bu, 0x00000008u, 0x000003dfu, 0x00002aabu, 0x0004002bu, 0x00000008u, 0x000003e0u, + 0xfffffe3cu, 0x0005002cu, 0x0000004du, 0x000003e1u, 0x000003dfu, 0x000003e0u, 0x0004002bu, 0x00000008u, + 0x000003e2u, 0x00002a3au, 0x0004002bu, 0x00000008u, 0x000003e3u, 0xfffffe48u, 0x0005002cu, 0x0000004du, + 0x000003e4u, 0x000003e2u, 0x000003e3u, 0x0004002bu, 0x00000008u, 0x000003e5u, 0x000029ccu, 0x0004002bu, + 0x00000008u, 0x000003e6u, 0xfffffe50u, 0x0005002cu, 0x0000004du, 0x000003e7u, 0x000003e5u, 0x000003e6u, + 0x0004002bu, 0x00000008u, 0x000003e8u, 0x00002960u, 0x0004002bu, 0x00000008u, 0x000003e9u, 0xfffffe58u, + 0x0005002cu, 0x0000004du, 0x000003eau, 0x000003e8u, 0x000003e9u, 0x0004002bu, 0x00000008u, 0x000003ebu, + 0x000028f6u, 0x0004002bu, 0x00000008u, 0x000003ecu, 0xfffffe60u, 0x0005002cu, 0x0000004du, 0x000003edu, + 0x000003ebu, 0x000003ecu, 0x0004002bu, 0x00000008u, 0x000003eeu, 0x0000288eu, 0x0004002bu, 0x00000008u, + 0x000003efu, 0xfffffe68u, 0x0005002cu, 0x0000004du, 0x000003f0u, 0x000003eeu, 0x000003efu, 0x0004002bu, + 0x00000008u, 0x000003f1u, 0x00002828u, 0x0004002bu, 0x00000008u, 0x000003f2u, 0xfffffe70u, 0x0005002cu, + 0x0000004du, 0x000003f3u, 0x000003f1u, 0x000003f2u, 0x0004002bu, 0x00000008u, 0x000003f4u, 0x000027c4u, + 0x0004002bu, 0x00000008u, 0x000003f5u, 0xfffffe78u, 0x0005002cu, 0x0000004du, 0x000003f6u, 0x000003f4u, + 0x000003f5u, 0x0004002bu, 0x00000008u, 0x000003f7u, 0x00002762u, 0x0004002bu, 0x00000008u, 0x000003f8u, + 0xfffffe80u, 0x0005002cu, 0x0000004du, 0x000003f9u, 0x000003f7u, 0x000003f8u, 0x0004002bu, 0x00000008u, + 0x000003fau, 0x00002702u, 0x0004002bu, 0x00000008u, 0x000003fbu, 0xfffffe88u, 0x0005002cu, 0x0000004du, + 0x000003fcu, 0x000003fau, 0x000003fbu, 0x0004002bu, 0x00000008u, 0x000003fdu, 0x000026a4u, 0x0004002bu, + 0x00000008u, 0x000003feu, 0xfffffe90u, 0x0005002cu, 0x0000004du, 0x000003ffu, 0x000003fdu, 0x000003feu, + 0x0004002bu, 0x00000008u, 0x00000400u, 0x00002648u, 0x0004002bu, 0x00000008u, 0x00000401u, 0xfffffe94u, + 0x0005002cu, 0x0000004du, 0x00000402u, 0x00000400u, 0x00000401u, 0x0004002bu, 0x00000008u, 0x00000403u, + 0x000025edu, 0x0004002bu, 0x00000008u, 0x00000404u, 0xfffffe9cu, 0x0005002cu, 0x0000004du, 0x00000405u, + 0x00000403u, 0x00000404u, 0x0004002bu, 0x00000008u, 0x00000406u, 0x00002594u, 0x0004002bu, 0x00000008u, + 0x00000407u, 0xfffffea4u, 0x0005002cu, 0x0000004du, 0x00000408u, 0x00000406u, 0x00000407u, 0x0004002bu, + 0x00000008u, 0x00000409u, 0x0000253du, 0x0004002bu, 0x00000008u, 0x0000040au, 0xfffffea8u, 0x0005002cu, + 0x0000004du, 0x0000040bu, 0x00000409u, 0x0000040au, 0x0004002bu, 0x00000008u, 0x0000040cu, 0x000024e7u, + 0x0004002bu, 0x00000008u, 0x0000040du, 0xfffffeacu, 0x0005002cu, 0x0000004du, 0x0000040eu, 0x0000040cu, + 0x0000040du, 0x0004002bu, 0x00000008u, 0x0000040fu, 0x00002492u, 0x0004002bu, 0x00000008u, 0x00000410u, + 0xfffffeb4u, 0x0005002cu, 0x0000004du, 0x00000411u, 0x0000040fu, 0x00000410u, 0x0004002bu, 0x00000008u, + 0x00000412u, 0x0000243fu, 0x0004002bu, 0x00000008u, 0x00000413u, 0xfffffebcu, 0x0005002cu, 0x0000004du, + 0x00000414u, 0x00000412u, 0x00000413u, 0x0004002bu, 0x00000008u, 0x00000415u, 0x000023eeu, 0x0004002bu, + 0x00000008u, 0x00000416u, 0xfffffec0u, 0x0005002cu, 0x0000004du, 0x00000417u, 0x00000415u, 0x00000416u, + 0x0004002bu, 0x00000008u, 0x00000418u, 0x0000239eu, 0x0004002bu, 0x00000008u, 0x00000419u, 0xfffffec4u, + 0x0005002cu, 0x0000004du, 0x0000041au, 0x00000418u, 0x00000419u, 0x0004002bu, 0x00000008u, 0x0000041bu, + 0x0000234fu, 0x0004002bu, 0x00000008u, 0x0000041cu, 0xfffffeccu, 0x0005002cu, 0x0000004du, 0x0000041du, + 0x0000041bu, 0x0000041cu, 0x0004002bu, 0x00000008u, 0x0000041eu, 0x00002302u, 0x0004002bu, 0x00000008u, + 0x0000041fu, 0xfffffed0u, 0x0005002cu, 0x0000004du, 0x00000420u, 0x0000041eu, 0x0000041fu, 0x0004002bu, + 0x00000008u, 0x00000421u, 0x000022b6u, 0x0004002bu, 0x00000008u, 0x00000422u, 0xfffffed8u, 0x0005002cu, + 0x0000004du, 0x00000423u, 0x00000421u, 0x00000422u, 0x0004002bu, 0x00000008u, 0x00000424u, 0x0000226cu, + 0x0005002cu, 0x0000004du, 0x00000425u, 0x00000424u, 0x00000422u, 0x0004002bu, 0x00000008u, 0x00000426u, + 0x00002222u, 0x0004002bu, 0x00000008u, 0x00000427u, 0xfffffee0u, 0x0005002cu, 0x0000004du, 0x00000428u, + 0x00000426u, 0x00000427u, 0x0004002bu, 0x00000008u, 0x00000429u, 0x000021dau, 0x0004002bu, 0x00000008u, + 0x0000042au, 0xfffffee4u, 0x0005002cu, 0x0000004du, 0x0000042bu, 0x00000429u, 0x0000042au, 0x0004002bu, + 0x00000008u, 0x0000042cu, 0x00002193u, 0x0004002bu, 0x00000008u, 0x0000042du, 0xfffffee8u, 0x0005002cu, + 0x0000004du, 0x0000042eu, 0x0000042cu, 0x0000042du, 0x0004002bu, 0x00000008u, 0x0000042fu, 0x0000214du, + 0x0004002bu, 0x00000008u, 0x00000430u, 0xfffffeecu, 0x0005002cu, 0x0000004du, 0x00000431u, 0x0000042fu, + 0x00000430u, 0x0004002bu, 0x00000008u, 0x00000432u, 0x00002108u, 0x0004002bu, 0x00000008u, 0x00000433u, + 0xfffffef4u, 0x0005002cu, 0x0000004du, 0x00000434u, 0x00000432u, 0x00000433u, 0x0004002bu, 0x00000008u, + 0x00000435u, 0x000020c5u, 0x0005002cu, 0x0000004du, 0x00000436u, 0x00000435u, 0x00000433u, 0x0004002bu, + 0x00000008u, 0x00000437u, 0x00002082u, 0x0004002bu, 0x00000008u, 0x00000438u, 0xfffffefcu, 0x0005002cu, + 0x0000004du, 0x00000439u, 0x00000437u, 0x00000438u, 0x0004002bu, 0x00000008u, 0x0000043au, 0x00002041u, + 0x0005002cu, 0x0000004du, 0x0000043bu, 0x0000043au, 0x00000438u, 0x0043002cu, 0x0000037eu, 0x0000043cu, + 0x00000381u, 0x00000384u, 0x00000387u, 0x0000038au, 0x0000038du, 0x00000390u, 0x00000393u, 0x00000396u, + 0x00000399u, 0x0000039cu, 0x0000039fu, 0x000003a2u, 0x000003a5u, 0x000003a8u, 0x000003abu, 0x000003aeu, + 0x000003b1u, 0x000003b4u, 0x000003b7u, 0x000003bau, 0x000003bdu, 0x000003c0u, 0x000003c3u, 0x000003c6u, + 0x000003c9u, 0x000003ccu, 0x000003cfu, 0x000003d2u, 0x000003d5u, 0x000003d8u, 0x000003dbu, 0x000003deu, + 0x000003e1u, 0x000003e4u, 0x000003e7u, 0x000003eau, 0x000003edu, 0x000003f0u, 0x000003f3u, 0x000003f6u, + 0x000003f9u, 0x000003fcu, 0x000003ffu, 0x00000402u, 0x00000405u, 0x00000408u, 0x0000040bu, 0x0000040eu, + 0x00000411u, 0x00000414u, 0x00000417u, 0x0000041au, 0x0000041du, 0x00000420u, 0x00000423u, 0x00000425u, + 0x00000428u, 0x0000042bu, 0x0000042eu, 0x00000431u, 0x00000434u, 0x00000436u, 0x00000439u, 0x0000043bu, + 0x00040020u, 0x0000043fu, 0x00000007u, 0x0000037eu, 0x0004002bu, 0x00000008u, 0x0000045eu, 0x00007fffu, + 0x0004002bu, 0x00000008u, 0x00000470u, 0x3fffffffu, 0x0004002bu, 0x00000008u, 0x00000471u, 0x20000000u, + 0x0005002cu, 0x0000004du, 0x0000048au, 0x00000187u, 0x00000187u, 0x00040017u, 0x0000048bu, 0x00000058u, + 0x00000002u, 0x0004002bu, 0x00000008u, 0x000004a4u, 0xffff8000u, 0x00030029u, 0x00000058u, 0x000004a6u, + 0x0005002cu, 0x0000004du, 0x000004bfu, 0x0000045eu, 0x0000045eu, 0x0004002bu, 0x00000008u, 0x000004c1u, + 0xffff0000u, 0x0005002cu, 0x0000004du, 0x000004c2u, 0x000004c1u, 0x000004c1u, 0x0004002bu, 0x00000008u, + 0x000004c3u, 0x0000ffffu, 0x0005002cu, 0x0000004du, 0x000004c4u, 0x000004c3u, 0x000004c3u, 0x0004002bu, + 0x00000008u, 0x000004c9u, 0xffffffe0u, 0x00040032u, 0x00000008u, 0x000004ccu, 0x00000000u, 0x0004002bu, + 0x00000008u, 0x000004cdu, 0x0000001au, 0x00060034u, 0x00000008u, 0x000004ceu, 0x000000c3u, 0x000004ccu, + 0x000004cdu, 0x00060034u, 0x00000008u, 0x000004cfu, 0x000000c7u, 0x000004ceu, 0x0000019cu, 0x00060034u, + 0x00000008u, 0x000004edu, 0x00000080u, 0x00000199u, 0x000004cfu, 0x00060034u, 0x00000008u, 0x0000050au, + 0x00000080u, 0x0000019fu, 0x000004cfu, 0x0006001eu, 0x00000526u, 0x00000008u, 0x00000008u, 0x00000008u, + 0x00000006u, 0x0003001eu, 0x00000527u, 0x00000526u, 0x00040020u, 0x00000528u, 0x00000002u, 0x00000527u, + 0x0004003bu, 0x00000528u, 0x00000529u, 0x00000002u, 0x00040020u, 0x0000052au, 0x00000002u, 0x00000008u, + 0x0004002bu, 0x00000008u, 0x00000537u, 0xffffffffu, 0x00060034u, 0x00000008u, 0x00000596u, 0x000000c4u, + 0x00000196u, 0x000004cfu, 0x00060034u, 0x00000058u, 0x00000597u, 0x000000adu, 0x00000596u, 0x00000196u, + 0x00060034u, 0x00000008u, 0x000005edu, 0x00000082u, 0x00000596u, 0x00000196u, 0x00060034u, 0x00000008u, + 0x00000601u, 0x00000080u, 0x00000199u, 0x000004cfu, 0x00060034u, 0x00000008u, 0x00000611u, 0x00000080u, + 0x000001a2u, 0x000004cfu, 0x0005002cu, 0x0000004du, 0x00000636u, 0x00000187u, 0x00000196u, 0x0004002bu, + 0x00000006u, 0x0000067au, 0x0000000bu, 0x0004002bu, 0x00000006u, 0x0000067bu, 0x00000006u, 0x0006002cu, + 0x000002b8u, 0x0000067cu, 0x0000067au, 0x0000067bu, 0x0000032cu, 0x0004002bu, 0x00000006u, 0x0000067eu, + 0x0000001fu, 0x0004002bu, 0x00000006u, 0x0000068bu, 0x000000ffu, 0x0004002bu, 0x00000006u, 0x000006b6u, + 0x00000fffu, 0x0004002bu, 0x00000006u, 0x000006beu, 0x00000004u, 0x0004002bu, 0x00000006u, 0x000006cbu, + 0x00001000u, 0x0004001cu, 0x000006ccu, 0x000001adu, 0x000006cbu, 0x0003001eu, 0x000006cdu, 0x000006ccu, + 0x0003001du, 0x000006ceu, 0x000006cdu, 0x0003001eu, 0x000006cfu, 0x000006ceu, 0x00040020u, 0x000006d0u, + 0x0000000cu, 0x000006cfu, 0x0004003bu, 0x000006d0u, 0x000006d1u, 0x0000000cu, 0x0004002bu, 0x00000006u, + 0x000006dau, 0x0000000fu, 0x0004002bu, 0x00000006u, 0x00000711u, 0x0000000eu, 0x0004002bu, 0x00000006u, + 0x00000769u, 0x000007ffu, 0x0004002bu, 0x00000006u, 0x00000792u, 0x00000800u, 0x0004001cu, 0x00000793u, + 0x000001afu, 0x00000792u, 0x0003001eu, 0x00000794u, 0x00000793u, 0x0003001du, 0x00000795u, 0x00000794u, + 0x0003001eu, 0x00000796u, 0x00000795u, 0x00040020u, 0x00000797u, 0x0000000cu, 0x00000796u, 0x0004003bu, + 0x00000797u, 0x00000798u, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x0000079au, 0x00000400u, 0x0004002bu, + 0x00000006u, 0x00000838u, 0xfffffffcu, 0x0004002bu, 0x00000008u, 0x0000099eu, 0x000003ffu, 0x0004002bu, + 0x00000008u, 0x000009e0u, 0x000007ffu, 0x0004002bu, 0x00000006u, 0x00000a0cu, 0x00001fffu, 0x0004002bu, + 0x00000008u, 0x00000a61u, 0x0000000fu, 0x0004002bu, 0x00000008u, 0x00000a63u, 0x00000011u, 0x0004002bu, + 0x00000006u, 0x00000ab4u, 0x0000000cu, 0x0004002bu, 0x00000008u, 0x00000ad7u, 0x00000400u, 0x0004002bu, + 0x00000008u, 0x00000bd3u, 0x0000001fu, 0x0004002bu, 0x00000008u, 0x00000c02u, 0xffffff01u, 0x0005002cu, + 0x0000004du, 0x00000c0eu, 0x00000323u, 0x00000323u, 0x00040017u, 0x0000103fu, 0x00000058u, 0x00000003u, + 0x0003002au, 0x00000058u, 0x000011eeu, 0x0004002bu, 0x00000008u, 0x0000122cu, 0xffffff00u, 0x0004002bu, + 0x00000006u, 0x00001258u, 0x00000007u, 0x0004001cu, 0x00001281u, 0x00000008u, 0x000002dcu, 0x0004001cu, + 0x00001282u, 0x00001281u, 0x00000330u, 0x0013002cu, 0x00001281u, 0x00001283u, 0x00000187u, 0x000001a5u, + 0x00000196u, 0x000001a8u, 0x0000019fu, 0x00000199u, 0x000001a2u, 0x0000019cu, 0x0000019cu, 0x000001a2u, + 0x00000199u, 0x0000019fu, 0x000001a8u, 0x00000196u, 0x000001a5u, 0x00000187u, 0x0013002cu, 0x00001281u, + 0x00001284u, 0x00000187u, 0x0000019fu, 0x00000196u, 0x000001a2u, 0x0000019fu, 0x00000187u, 0x000001a2u, + 0x00000196u, 0x0000019cu, 0x000001a8u, 0x00000199u, 0x000001a5u, 0x000001a8u, 0x0000019cu, 0x000001a5u, + 0x00000199u, 0x0005002cu, 0x00001282u, 0x00001285u, 0x00001283u, 0x00001284u, 0x00040020u, 0x0000128du, + 0x00000007u, 0x00001282u, 0x0004002bu, 0x00000008u, 0x00001291u, 0x00000049u, 0x0004002bu, 0x00000008u, + 0x0000130bu, 0x00000100u, 0x0006002cu, 0x00000052u, 0x0000130cu, 0x0000130bu, 0x0000130bu, 0x0000130bu, + 0x00060034u, 0x00000008u, 0x000014e0u, 0x00000082u, 0x00000596u, 0x00000196u, 0x000d001eu, 0x000014e8u, + 0x00000008u, 0x00000008u, 0x00000008u, 0x000001b0u, 0x000001b0u, 0x00000008u, 0x00000008u, 0x00000008u, + 0x000001b0u, 0x000001adu, 0x000001adu, 0x0003001du, 0x000014e9u, 0x000014e8u, 0x0003001eu, 0x000014eau, + 0x000014e9u, 0x00040020u, 0x000014ebu, 0x0000000cu, 0x000014eau, 0x0004003bu, 0x000014ebu, 0x000014ecu, + 0x0000000cu, 0x00060034u, 0x00000058u, 0x000014f1u, 0x000000adu, 0x00000596u, 0x00000196u, 0x0004002bu, + 0x00000006u, 0x000014f5u, 0x00000020u, 0x00060034u, 0x00000008u, 0x000014fau, 0x00000082u, 0x00000596u, + 0x00000196u, 0x00050034u, 0x00000008u, 0x000014fbu, 0x000000c8u, 0x000014fau, 0x00060034u, 0x00000008u, + 0x000014feu, 0x00000082u, 0x00000596u, 0x00000196u, 0x00050034u, 0x00000008u, 0x000014ffu, 0x000000c8u, + 0x000014feu, 0x0004001cu, 0x00001520u, 0x000001adu, 0x000002c0u, 0x0005001eu, 0x00001521u, 0x000001aeu, + 0x000001aeu, 0x00001520u, 0x0003001du, 0x00001522u, 0x00001521u, 0x0003001eu, 0x00001523u, 0x00001522u, + 0x00040020u, 0x00001524u, 0x0000000cu, 0x00001523u, 0x0004003bu, 0x00001524u, 0x00001525u, 0x0000000cu, + 0x0004002bu, 0x00000008u, 0x00001547u, 0x40000000u, 0x00060034u, 0x00000008u, 0x00001548u, 0x000000c7u, + 0x000004ccu, 0x00001547u, 0x00060034u, 0x00000058u, 0x00001549u, 0x000000abu, 0x00001548u, 0x00000187u, + 0x00060034u, 0x00000006u, 0x0000154cu, 0x00000080u, 0x000004ccu, 0x000002d9u, 0x00040032u, 0x00000008u, + 0x0000154du, 0x00000000u, 0x00060034u, 0x00000008u, 0x0000154eu, 0x000000c3u, 0x0000154du, 0x00000187u, + 0x00060034u, 0x00000008u, 0x0000154fu, 0x000000c7u, 0x0000154eu, 0x000002f0u, 0x00040032u, 0x00000008u, + 0x00001550u, 0x00000000u, 0x00060034u, 0x00000008u, 0x00001551u, 0x000000c3u, 0x00001550u, 0x00000187u, + 0x00060034u, 0x00000008u, 0x00001552u, 0x000000c7u, 0x00001551u, 0x000002f0u, 0x00060034u, 0x00000008u, + 0x00001554u, 0x000000c3u, 0x00001550u, 0x000001e2u, 0x00060034u, 0x00000008u, 0x00001555u, 0x000000c7u, + 0x00001554u, 0x000002f0u, 0x00060034u, 0x00000008u, 0x00001557u, 0x000000c3u, 0x00001550u, 0x00000323u, + 0x00060034u, 0x00000008u, 0x00001558u, 0x000000c7u, 0x00001557u, 0x000002f0u, 0x0004002bu, 0x00000008u, + 0x0000155au, 0x00000018u, 0x00060034u, 0x00000008u, 0x0000155bu, 0x000000c3u, 0x00001550u, 0x0000155au, + 0x00060034u, 0x00000008u, 0x0000155cu, 0x000000c7u, 0x0000155bu, 0x000002f0u, 0x00040032u, 0x00000008u, + 0x0000155eu, 0x00000000u, 0x00060034u, 0x00000008u, 0x0000155fu, 0x000000c3u, 0x0000155eu, 0x00000187u, + 0x00060034u, 0x00000008u, 0x00001560u, 0x000000c7u, 0x0000155fu, 0x000002f0u, 0x00060034u, 0x00000008u, + 0x00001562u, 0x000000c3u, 0x0000155eu, 0x000001e2u, 0x00060034u, 0x00000008u, 0x00001563u, 0x000000c7u, + 0x00001562u, 0x000002f0u, 0x00060034u, 0x00000008u, 0x00001565u, 0x000000c3u, 0x0000155eu, 0x00000323u, + 0x00060034u, 0x00000008u, 0x00001566u, 0x000000c7u, 0x00001565u, 0x000002f0u, 0x00060034u, 0x00000008u, + 0x00001568u, 0x000000c3u, 0x0000155eu, 0x0000155au, 0x00060034u, 0x00000008u, 0x00001569u, 0x000000c7u, + 0x00001568u, 0x000002f0u, 0x00040032u, 0x00000008u, 0x0000156bu, 0x00000000u, 0x00060034u, 0x00000008u, + 0x0000156cu, 0x000000c3u, 0x0000156bu, 0x00000187u, 0x00060034u, 0x00000008u, 0x0000156du, 0x000000c7u, + 0x0000156cu, 0x000002f0u, 0x00060034u, 0x00000008u, 0x0000156fu, 0x000000c3u, 0x0000156bu, 0x000001e2u, + 0x00060034u, 0x00000008u, 0x00001570u, 0x000000c7u, 0x0000156fu, 0x000002f0u, 0x00060034u, 0x00000008u, + 0x00001572u, 0x000000c3u, 0x0000156bu, 0x00000323u, 0x00060034u, 0x00000008u, 0x00001573u, 0x000000c7u, + 0x00001572u, 0x000002f0u, 0x00060034u, 0x00000008u, 0x00001575u, 0x000000c3u, 0x0000156bu, 0x0000155au, + 0x00060034u, 0x00000008u, 0x00001576u, 0x000000c7u, 0x00001575u, 0x000002f0u, 0x00040032u, 0x00000008u, + 0x00001578u, 0x00000000u, 0x00060034u, 0x00000008u, 0x00001579u, 0x000000c3u, 0x00001578u, 0x00000187u, + 0x00060034u, 0x00000008u, 0x0000157au, 0x000000c7u, 0x00001579u, 0x000002f0u, 0x00060034u, 0x00000008u, + 0x0000157cu, 0x000000c3u, 0x00001578u, 0x000001e2u, 0x00060034u, 0x00000008u, 0x0000157du, 0x000000c7u, + 0x0000157cu, 0x000002f0u, 0x00060034u, 0x00000008u, 0x0000157fu, 0x000000c3u, 0x00001578u, 0x00000323u, + 0x00060034u, 0x00000008u, 0x00001580u, 0x000000c7u, 0x0000157fu, 0x000002f0u, 0x00060034u, 0x00000008u, + 0x00001582u, 0x000000c3u, 0x00001578u, 0x0000155au, 0x00060034u, 0x00000008u, 0x00001583u, 0x000000c7u, + 0x00001582u, 0x000002f0u, 0x0004002bu, 0x00000006u, 0x0000158fu, 0x00004000u, 0x0004002bu, 0x00000006u, + 0x00001598u, 0x00000080u, 0x0004002bu, 0x00000006u, 0x000015a1u, 0x00000200u, 0x0004002bu, 0x00000006u, + 0x000015b2u, 0x00000100u, 0x0004002bu, 0x00000006u, 0x000015bfu, 0x00002000u, 0x0004002bu, 0x00000006u, + 0x000015c4u, 0x00008000u, 0x0004002bu, 0x00000006u, 0x000015c9u, 0x00010000u, 0x0004002bu, 0x00000006u, + 0x000015ceu, 0x00020000u, 0x0004002bu, 0x00000006u, 0x000015d3u, 0x00040000u, 0x0004002bu, 0x00000006u, + 0x000015d8u, 0x00080000u, 0x0004002bu, 0x00000006u, 0x000015ddu, 0x00200000u, 0x0004002bu, 0x00000006u, + 0x000015e2u, 0x00100000u, 0x0004002bu, 0x00000006u, 0x000015e7u, 0x00400000u, 0x0004002bu, 0x00000006u, + 0x000015ecu, 0x00800000u, 0x0004002bu, 0x00000006u, 0x000015f1u, 0x01000000u, 0x0004002bu, 0x00000006u, + 0x000015f5u, 0x10000000u, 0x00040020u, 0x000015ffu, 0x00000002u, 0x00000006u, 0x00060034u, 0x00000008u, + 0x0000163eu, 0x000000c7u, 0x000004ccu, 0x00000471u, 0x00060034u, 0x00000058u, 0x0000163fu, 0x000000abu, + 0x0000163eu, 0x00000187u, 0x00060034u, 0x00000008u, 0x00001642u, 0x000000c3u, 0x0000154du, 0x00000323u, + 0x00060034u, 0x00000008u, 0x00001643u, 0x000000c7u, 0x00001642u, 0x000002f0u, 0x00060034u, 0x00000008u, + 0x00001645u, 0x000000c3u, 0x0000154du, 0x000001e2u, 0x00060034u, 0x00000008u, 0x00001646u, 0x000000c7u, + 0x00001645u, 0x000002f0u, 0x00060034u, 0x00000058u, 0x000016b7u, 0x000000adu, 0x00000596u, 0x00000196u, + 0x00060034u, 0x00000008u, 0x0000171fu, 0x000000c7u, 0x000004ccu, 0x00000471u, 0x00060034u, 0x00000058u, + 0x00001720u, 0x000000abu, 0x0000171fu, 0x00000187u, 0x00060034u, 0x00000008u, 0x000017afu, 0x000000c7u, + 0x000004ccu, 0x00000471u, 0x00060034u, 0x00000058u, 0x000017b0u, 0x000000abu, 0x000017afu, 0x00000187u, + 0x0004002bu, 0x00000006u, 0x0000181du, 0x02000000u, 0x0003001du, 0x0000189au, 0x000001bbu, 0x0003001eu, + 0x0000189bu, 0x0000189au, 0x00040020u, 0x0000189cu, 0x0000000cu, 0x0000189bu, 0x0004003bu, 0x0000189cu, + 0x0000189du, 0x0000000cu, 0x00040020u, 0x0000189eu, 0x00000001u, 0x000002b8u, 0x0004003bu, 0x0000189eu, + 0x0000189fu, 0x00000001u, 0x00040020u, 0x000018a0u, 0x00000001u, 0x00000006u, 0x00040020u, 0x000018a3u, + 0x0000000cu, 0x000001bbu, 0x00040032u, 0x00000006u, 0x000018a9u, 0x00000001u, 0x00040032u, 0x00000006u, + 0x000018aau, 0x00000001u, 0x00060033u, 0x000002b8u, 0x000018abu, 0x000018a9u, 0x000018aau, 0x0000032cu, + 0x0004003bu, 0x0000189eu, 0x000018aeu, 0x00000001u, 0x00060034u, 0x00000006u, 0x000018c4u, 0x00000051u, + 0x000018abu, 0x00000000u, 0x00060034u, 0x00000006u, 0x000018c5u, 0x00000051u, 0x000018abu, 0x00000001u, + 0x00060034u, 0x00000006u, 0x000018c6u, 0x00000084u, 0x000018c4u, 0x000018c5u, 0x0004003bu, 0x000018a0u, + 0x000018c8u, 0x00000001u, 0x0003001du, 0x000018deu, 0x000001aeu, 0x0003001eu, 0x000018dfu, 0x000018deu, + 0x00040020u, 0x000018e0u, 0x0000000cu, 0x000018dfu, 0x0004003bu, 0x000018e0u, 0x000018e1u, 0x0000000cu, + 0x0003001du, 0x000018e8u, 0x000001adu, 0x0003001eu, 0x000018e9u, 0x000018e8u, 0x00040020u, 0x000018eau, + 0x0000000cu, 0x000018e9u, 0x0004003bu, 0x000018eau, 0x000018ebu, 0x0000000cu, 0x0003001du, 0x000018f1u, + 0x00000008u, 0x0003001eu, 0x000018f2u, 0x000018f1u, 0x00040020u, 0x000018f3u, 0x0000000cu, 0x000018f2u, + 0x0004003bu, 0x000018f3u, 0x000018f4u, 0x0000000cu, 0x0003001du, 0x000018ffu, 0x00000006u, 0x0003001eu, + 0x00001900u, 0x000018ffu, 0x00040020u, 0x00001901u, 0x0000000cu, 0x00001900u, 0x0004003bu, 0x00001901u, + 0x00001902u, 0x0000000cu, 0x00040015u, 0x00001909u, 0x00000008u, 0x00000001u, 0x0003001du, 0x0000190au, + 0x00001909u, 0x0003001eu, 0x0000190bu, 0x0000190au, 0x00040020u, 0x0000190cu, 0x0000000cu, 0x0000190bu, + 0x0004003bu, 0x0000190cu, 0x0000190du, 0x0000000cu, 0x00040020u, 0x00001911u, 0x0000000cu, 0x00001909u, + 0x00030001u, 0x00000052u, 0x00006644u, 0x00030001u, 0x0000004du, 0x000066cfu, 0x00030001u, 0x00000009u, + 0x000067e2u, 0x00030001u, 0x00000008u, 0x0000774au, 0x0006002cu, 0x000002b8u, 0x0000855fu, 0x000002c0u, + 0x000002c0u, 0x000002c0u, 0x0006002cu, 0x000002b8u, 0x00008560u, 0x000002c6u, 0x000002c6u, 0x000002c6u, + 0x0006002cu, 0x00000052u, 0x00008561u, 0x000004c9u, 0x000004c9u, 0x000004c9u, 0x0006002cu, 0x00000052u, + 0x00008562u, 0x00000323u, 0x00000323u, 0x00000323u, 0x0007002cu, 0x00000009u, 0x00008563u, 0x000004c9u, + 0x000004c9u, 0x000004c9u, 0x000004c9u, 0x0007002cu, 0x00000009u, 0x00008564u, 0x00000207u, 0x00000207u, + 0x00000207u, 0x00000207u, 0x0007002cu, 0x00000009u, 0x00008565u, 0x00000325u, 0x00000325u, 0x00000325u, + 0x00000325u, 0x0005002cu, 0x0000004du, 0x00008566u, 0x00000196u, 0x00000196u, 0x0006002cu, 0x00000052u, + 0x00008567u, 0x000004a4u, 0x000004a4u, 0x000004a4u, 0x0005002cu, 0x0000004du, 0x00008568u, 0x000001a2u, + 0x000001a2u, 0x0005002cu, 0x0000004du, 0x00008569u, 0x00000bd3u, 0x00000bd3u, 0x0005002cu, 0x000000a0u, + 0x0000856au, 0x00000a0cu, 0x00000a0cu, 0x0005002cu, 0x000000a0u, 0x0000856bu, 0x00000330u, 0x00000330u, + 0x0006002cu, 0x000002b8u, 0x0000856cu, 0x0000067eu, 0x0000067eu, 0x0000067eu, 0x0006002cu, 0x000002b8u, + 0x0000856du, 0x00000333u, 0x00000333u, 0x00000333u, 0x0006002cu, 0x000002b8u, 0x0000856eu, 0x00000330u, + 0x00000330u, 0x00000330u, 0x0007002cu, 0x00000009u, 0x0000856fu, 0x000001e2u, 0x000001e2u, 0x000001e2u, + 0x000001e2u, 0x0007002cu, 0x00000009u, 0x00008570u, 0x00000199u, 0x00000199u, 0x00000199u, 0x00000199u, + 0x0005002cu, 0x0000004du, 0x00008571u, 0x00000199u, 0x00000199u, 0x0005002cu, 0x0000004du, 0x00008572u, + 0x000002e2u, 0x000002e2u, 0x0007002cu, 0x00000009u, 0x00008573u, 0x00000323u, 0x00000323u, 0x00000323u, + 0x00000323u, 0x0007002cu, 0x00000009u, 0x00008574u, 0x000001a2u, 0x000001a2u, 0x000001a2u, 0x000001a2u, + 0x0005002cu, 0x0000004du, 0x00008575u, 0x000001a5u, 0x000001a5u, 0x0005002cu, 0x0000004du, 0x00008576u, + 0x00000325u, 0x00000325u, 0x0006002cu, 0x00000052u, 0x0000857du, 0x00000187u, 0x00000187u, 0x00000187u, + 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003bu, + 0x0000128du, 0x000058ccu, 0x00000007u, 0x0004003bu, 0x0000128du, 0x000058ceu, 0x00000007u, 0x0004003bu, + 0x0000043fu, 0x00003f80u, 0x00000007u, 0x0004003bu, 0x0000043fu, 0x00003ed2u, 0x00000007u, 0x0004003bu, + 0x0000043fu, 0x000024b5u, 0x00000007u, 0x0004003bu, 0x0000043fu, 0x0000242du, 0x00000007u, 0x0004003bu, + 0x0000043fu, 0x000023a5u, 0x00000007u, 0x0004003bu, 0x0000043fu, 0x00001dbfu, 0x00000007u, 0x00050041u, + 0x000018a0u, 0x000018a1u, 0x0000189fu, 0x000002d9u, 0x0004003du, 0x00000006u, 0x000018a2u, 0x000018a1u, + 0x00060041u, 0x000018a3u, 0x000018a4u, 0x0000189du, 0x00000187u, 0x000018a2u, 0x0004003du, 0x000001bbu, + 0x000018a5u, 0x000018a4u, 0x00050051u, 0x00000006u, 0x000018a8u, 0x000018a5u, 0x00000000u, 0x00050051u, + 0x00000006u, 0x000018acu, 0x000018abu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000018adu, 0x000018a8u, + 0x000018acu, 0x00050041u, 0x000018a0u, 0x000018afu, 0x000018aeu, 0x000002d9u, 0x0004003du, 0x00000006u, + 0x000018b0u, 0x000018afu, 0x00050080u, 0x00000006u, 0x000018b1u, 0x000018adu, 0x000018b0u, 0x0004007cu, + 0x00000008u, 0x000018b2u, 0x000018b1u, 0x00050051u, 0x00000006u, 0x000018b5u, 0x000018a5u, 0x00000001u, + 0x00050051u, 0x00000006u, 0x000018b6u, 0x000018abu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000018b7u, + 0x000018b5u, 0x000018b6u, 0x00050041u, 0x000018a0u, 0x000018b8u, 0x000018aeu, 0x0000032cu, 0x0004003du, + 0x00000006u, 0x000018b9u, 0x000018b8u, 0x00050080u, 0x00000006u, 0x000018bau, 0x000018b7u, 0x000018b9u, + 0x0004007cu, 0x00000008u, 0x000018bbu, 0x000018bau, 0x00050051u, 0x00000006u, 0x000018beu, 0x000018a5u, + 0x00000002u, 0x00050051u, 0x00000006u, 0x000018c1u, 0x000018a5u, 0x00000003u, 0x00050084u, 0x00000006u, + 0x000018c7u, 0x000018beu, 0x000018c6u, 0x0004003du, 0x00000006u, 0x000018c9u, 0x000018c8u, 0x00050080u, + 0x00000006u, 0x000018cau, 0x000018c7u, 0x000018c9u, 0x000300f7u, 0x00001c8bu, 0x00000000u, 0x000300fbu, + 0x000002d9u, 0x000019f7u, 0x000200f8u, 0x000019f7u, 0x00060041u, 0x00000238u, 0x00001c91u, 0x00000236u, + 0x00000187u, 0x000018c1u, 0x0004003du, 0x00000232u, 0x00001c92u, 0x00001c91u, 0x00050051u, 0x00000008u, + 0x00001c93u, 0x00001c92u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00001c95u, 0x00001c92u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00001c97u, 0x00001c92u, 0x00000002u, 0x00050084u, 0x00000008u, 0x000019fdu, + 0x00000596u, 0x00001c95u, 0x000500b1u, 0x00000058u, 0x000019feu, 0x000018bbu, 0x000019fdu, 0x000400a8u, + 0x00000058u, 0x000019ffu, 0x000019feu, 0x000300f7u, 0x00001a07u, 0x00000000u, 0x000400fau, 0x000019ffu, + 0x00001a00u, 0x00001a07u, 0x000200f8u, 0x00001a00u, 0x00050084u, 0x00000008u, 0x00001a04u, 0x00001c97u, + 0x00000596u, 0x00050080u, 0x00000008u, 0x00001a05u, 0x00001a04u, 0x000014e0u, 0x000500adu, 0x00000058u, + 0x00001a06u, 0x000018bbu, 0x00001a05u, 0x000200f9u, 0x00001a07u, 0x000200f8u, 0x00001a07u, 0x000700f5u, + 0x00000058u, 0x00001a08u, 0x000019feu, 0x000019f7u, 0x00001a06u, 0x00001a00u, 0x000300f7u, 0x00001a0au, + 0x00000000u, 0x000400fau, 0x00001a08u, 0x00001a09u, 0x00001a0au, 0x000200f8u, 0x00001a09u, 0x000200f9u, + 0x00001c8bu, 0x000200f8u, 0x00001a0au, 0x00070041u, 0x000001fbu, 0x00001a0cu, 0x000014ecu, 0x00000187u, + 0x000018c1u, 0x000001e8u, 0x0004003du, 0x000001adu, 0x00001a0du, 0x00001a0cu, 0x00040071u, 0x00000006u, + 0x00001a0eu, 0x00001a0du, 0x000300f7u, 0x00001a19u, 0x00000000u, 0x000400fau, 0x000014f1u, 0x00001a0fu, + 0x00001a19u, 0x000200f8u, 0x00001a0fu, 0x000500c7u, 0x00000006u, 0x00001a11u, 0x00001a0eu, 0x000014f5u, + 0x000500abu, 0x00000058u, 0x00001a12u, 0x00001a11u, 0x000002d9u, 0x000300f7u, 0x00001a18u, 0x00000000u, + 0x000400fau, 0x00001a12u, 0x00001a13u, 0x00001a18u, 0x000200f8u, 0x00001a13u, 0x000500c7u, 0x00000008u, + 0x00001a15u, 0x000018b2u, 0x000014fbu, 0x000500c7u, 0x00000008u, 0x00001a17u, 0x000018bbu, 0x000014ffu, + 0x000200f9u, 0x00001a18u, 0x000200f8u, 0x00001a18u, 0x000700f5u, 0x00000008u, 0x00006635u, 0x000018b2u, + 0x00001a0fu, 0x00001a15u, 0x00001a13u, 0x000700f5u, 0x00000008u, 0x00006631u, 0x000018bbu, 0x00001a0fu, + 0x00001a17u, 0x00001a13u, 0x000200f9u, 0x00001a19u, 0x000200f8u, 0x00001a19u, 0x000700f5u, 0x00000008u, + 0x00006634u, 0x000018b2u, 0x00001a0au, 0x00006635u, 0x00001a18u, 0x000700f5u, 0x00000008u, 0x00006630u, + 0x000018bbu, 0x00001a0au, 0x00006631u, 0x00001a18u, 0x00050084u, 0x00000008u, 0x00001a1cu, 0x00000596u, + 0x00001c93u, 0x00050082u, 0x00000008u, 0x00001a21u, 0x00006630u, 0x000019fdu, 0x00050080u, 0x00000008u, + 0x00001a22u, 0x00001a1cu, 0x00001a21u, 0x0004007cu, 0x00000006u, 0x00001a23u, 0x00001a22u, 0x00070041u, + 0x0000024fu, 0x00001c9fu, 0x0000024du, 0x00000187u, 0x00001a23u, 0x00000187u, 0x0004003du, 0x00000009u, + 0x00001ca0u, 0x00001c9fu, 0x00070041u, 0x0000024fu, 0x00001ca2u, 0x0000024du, 0x00000187u, 0x00001a23u, + 0x00000196u, 0x0004003du, 0x00000009u, 0x00001ca3u, 0x00001ca2u, 0x00070041u, 0x00000256u, 0x00001ca5u, + 0x0000024du, 0x00000187u, 0x00001a23u, 0x00000199u, 0x0004003du, 0x00000248u, 0x00001ca6u, 0x00001ca5u, + 0x00040071u, 0x000001bbu, 0x00001ca7u, 0x00001ca6u, 0x0004007cu, 0x00000009u, 0x00001ca8u, 0x00001ca7u, + 0x00070041u, 0x00000256u, 0x00001caau, 0x0000024du, 0x00000187u, 0x00001a23u, 0x0000019cu, 0x0004003du, + 0x00000248u, 0x00001cabu, 0x00001caau, 0x00040071u, 0x000001bbu, 0x00001cacu, 0x00001cabu, 0x0004007cu, + 0x00000009u, 0x00001cadu, 0x00001cacu, 0x00070041u, 0x0000022cu, 0x00001cafu, 0x0000024du, 0x00000187u, + 0x00001a23u, 0x0000019fu, 0x0004003du, 0x00000008u, 0x00001cb0u, 0x00001cafu, 0x00070041u, 0x0000022cu, + 0x00001cb2u, 0x0000024du, 0x00000187u, 0x00001a23u, 0x000001a2u, 0x0004003du, 0x00000008u, 0x00001cb3u, + 0x00001cb2u, 0x00070041u, 0x0000022cu, 0x00001cb5u, 0x0000024du, 0x00000187u, 0x00001a23u, 0x000001a5u, + 0x0004003du, 0x00000008u, 0x00001cb6u, 0x00001cb5u, 0x00070041u, 0x0000026au, 0x00001cb8u, 0x0000024du, + 0x00000187u, 0x00001a23u, 0x000001a8u, 0x0004003du, 0x000001b0u, 0x00001cb9u, 0x00001cb8u, 0x00040072u, + 0x00000008u, 0x00001cbau, 0x00001cb9u, 0x00070041u, 0x000001f4u, 0x00001cbcu, 0x0000024du, 0x00000187u, + 0x00001a23u, 0x000001e2u, 0x0004003du, 0x000001afu, 0x00001cbdu, 0x00001cbcu, 0x00040071u, 0x00000006u, + 0x00001cbeu, 0x00001cbdu, 0x0004007cu, 0x00000008u, 0x00001cbfu, 0x00001cbeu, 0x000500aau, 0x00000058u, + 0x00001a27u, 0x00001cbfu, 0x00000187u, 0x000300f7u, 0x00001a29u, 0x00000000u, 0x000400fau, 0x00001a27u, + 0x00001a28u, 0x00001a29u, 0x000200f8u, 0x00001a28u, 0x000200f9u, 0x00001c8bu, 0x000200f8u, 0x00001a29u, + 0x00070041u, 0x000001fbu, 0x00001a2bu, 0x000014ecu, 0x00000187u, 0x000018c1u, 0x000001eeu, 0x0004003du, + 0x000001adu, 0x00001a2cu, 0x00001a2bu, 0x00040071u, 0x00000006u, 0x00001a2du, 0x00001a2cu, 0x00060041u, + 0x0000018eu, 0x00001cc5u, 0x0000018cu, 0x00000187u, 0x000018c1u, 0x0004003du, 0x00000188u, 0x00001cc6u, + 0x00001cc5u, 0x00050051u, 0x00000009u, 0x00001cc9u, 0x00001cc6u, 0x00000001u, 0x00050051u, 0x00000009u, + 0x00001ccdu, 0x00001cc6u, 0x00000003u, 0x00050051u, 0x00000009u, 0x00001cd1u, 0x00001cc6u, 0x00000005u, + 0x00050051u, 0x00000009u, 0x00001cd5u, 0x00001cc6u, 0x00000007u, 0x00070041u, 0x000001b8u, 0x00001a31u, + 0x00001525u, 0x00000187u, 0x000018c1u, 0x00000187u, 0x0004003du, 0x000001aeu, 0x00001a32u, 0x00001a31u, + 0x00040071u, 0x000001bbu, 0x00001a33u, 0x00001a32u, 0x00050051u, 0x00000006u, 0x00001a35u, 0x00001a33u, + 0x00000000u, 0x00050051u, 0x00000006u, 0x00001a37u, 0x00001a33u, 0x00000002u, 0x00070041u, 0x000001b8u, + 0x00001cdbu, 0x00000213u, 0x00000187u, 0x00001a35u, 0x00000187u, 0x0004003du, 0x000001aeu, 0x00001cdcu, + 0x00001cdbu, 0x00040071u, 0x000001bbu, 0x00001cddu, 0x00001cdcu, 0x0004007cu, 0x00000009u, 0x00001cdeu, + 0x00001cddu, 0x00070041u, 0x000001b8u, 0x00001ce0u, 0x00000213u, 0x00000187u, 0x00001a35u, 0x00000196u, + 0x0004003du, 0x000001aeu, 0x00001ce1u, 0x00001ce0u, 0x00040071u, 0x000001bbu, 0x00001ce2u, 0x00001ce1u, + 0x0004007cu, 0x00000009u, 0x00001ce3u, 0x00001ce2u, 0x00070041u, 0x000001b8u, 0x00001ce5u, 0x00000213u, + 0x00000187u, 0x00001a35u, 0x00000199u, 0x0004003du, 0x000001aeu, 0x00001ce6u, 0x00001ce5u, 0x00040071u, + 0x000001bbu, 0x00001ce7u, 0x00001ce6u, 0x0004007cu, 0x00000009u, 0x00001ce8u, 0x00001ce7u, 0x00070041u, + 0x000001b8u, 0x00001ceau, 0x00000213u, 0x00000187u, 0x00001a35u, 0x0000019cu, 0x0004003du, 0x000001aeu, + 0x00001cebu, 0x00001ceau, 0x00040071u, 0x000001bbu, 0x00001cecu, 0x00001cebu, 0x0004007cu, 0x00000009u, + 0x00001cedu, 0x00001cecu, 0x00070041u, 0x000001efu, 0x00001cefu, 0x00000213u, 0x00000187u, 0x00001a35u, + 0x0000019fu, 0x0004003du, 0x00000006u, 0x00001cf0u, 0x00001cefu, 0x00070041u, 0x0000022cu, 0x00001cf2u, + 0x00000213u, 0x00000187u, 0x00001a35u, 0x000001a2u, 0x0004003du, 0x00000008u, 0x00001cf3u, 0x00001cf2u, + 0x000300f7u, 0x00001a57u, 0x00000000u, 0x000400fau, 0x00001549u, 0x00001a46u, 0x00001a57u, 0x000200f8u, + 0x00001a46u, 0x00070050u, 0x00000009u, 0x00008577u, 0x00001552u, 0x00001555u, 0x00001558u, 0x0000155cu, + 0x00070050u, 0x00000009u, 0x00008578u, 0x00001560u, 0x00001563u, 0x00001566u, 0x00001569u, 0x00070050u, + 0x00000009u, 0x00008579u, 0x0000156du, 0x00001570u, 0x00001573u, 0x00001576u, 0x00070050u, 0x00000009u, + 0x0000857au, 0x0000157au, 0x0000157du, 0x00001580u, 0x00001583u, 0x000200f9u, 0x00001a57u, 0x000200f8u, + 0x00001a57u, 0x000700f5u, 0x00000009u, 0x00007cccu, 0x00001ce3u, 0x00001a29u, 0x00008578u, 0x00001a46u, + 0x000700f5u, 0x00000009u, 0x00007bb6u, 0x00001cdeu, 0x00001a29u, 0x00008577u, 0x00001a46u, 0x000700f5u, + 0x00000009u, 0x00007971u, 0x00001cedu, 0x00001a29u, 0x0000857au, 0x00001a46u, 0x000700f5u, 0x00000009u, + 0x0000785bu, 0x00001ce8u, 0x00001a29u, 0x00008579u, 0x00001a46u, 0x000600a9u, 0x00000008u, 0x0000857fu, + 0x00001549u, 0x0000154fu, 0x00001cf3u, 0x000600a9u, 0x00000006u, 0x00008580u, 0x00001549u, 0x0000154cu, + 0x00001cf0u, 0x000500c7u, 0x00000006u, 0x00001a59u, 0x00008580u, 0x000002dcu, 0x000500abu, 0x00000058u, + 0x00001a5au, 0x00001a59u, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a5cu, 0x00008580u, 0x000014f5u, + 0x000500abu, 0x00000058u, 0x00001a5du, 0x00001a5cu, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a5fu, + 0x00008580u, 0x0000158fu, 0x000500abu, 0x00000058u, 0x00001a60u, 0x00001a5fu, 0x000002d9u, 0x000500c7u, + 0x00000006u, 0x00001a62u, 0x00008580u, 0x0000037du, 0x000500abu, 0x00000058u, 0x00001a63u, 0x00001a62u, + 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a65u, 0x00008580u, 0x00001598u, 0x000500abu, 0x00000058u, + 0x00001a66u, 0x00001a65u, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a68u, 0x00008580u, 0x000002c0u, + 0x000500abu, 0x00000058u, 0x00001a69u, 0x00001a68u, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a6bu, + 0x00008580u, 0x000015a1u, 0x000500abu, 0x00000058u, 0x00001a6cu, 0x00001a6bu, 0x000002d9u, 0x000500c7u, + 0x00000006u, 0x00001a6eu, 0x00008580u, 0x0000079au, 0x000500abu, 0x00000058u, 0x00001a6fu, 0x00001a6eu, + 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a71u, 0x00008580u, 0x00000792u, 0x000500abu, 0x00000058u, + 0x00001a72u, 0x00001a71u, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a74u, 0x00008580u, 0x000006beu, + 0x000500abu, 0x00000058u, 0x00001a75u, 0x00001a74u, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a77u, + 0x00008580u, 0x000015b2u, 0x000500abu, 0x00000058u, 0x00001a78u, 0x00001a77u, 0x000002d9u, 0x000500c7u, + 0x00000006u, 0x00001a7au, 0x00008580u, 0x0000032cu, 0x000500abu, 0x00000058u, 0x00001a7bu, 0x00001a7au, + 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a7du, 0x00008580u, 0x000006cbu, 0x000500abu, 0x00000058u, + 0x00001a7eu, 0x00001a7du, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a80u, 0x00008580u, 0x000015bfu, + 0x000500abu, 0x00000058u, 0x00001a81u, 0x00001a80u, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a83u, + 0x00008580u, 0x000015c4u, 0x000500abu, 0x00000058u, 0x00001a84u, 0x00001a83u, 0x000002d9u, 0x000500c7u, + 0x00000006u, 0x00001a86u, 0x00008580u, 0x000015c9u, 0x000500abu, 0x00000058u, 0x00001a87u, 0x00001a86u, + 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a89u, 0x00008580u, 0x000015ceu, 0x000500abu, 0x00000058u, + 0x00001a8au, 0x00001a89u, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a8cu, 0x00008580u, 0x000015d3u, + 0x000500abu, 0x00000058u, 0x00001a8du, 0x00001a8cu, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a8fu, + 0x00008580u, 0x000015d8u, 0x000500abu, 0x00000058u, 0x00001a90u, 0x00001a8fu, 0x000002d9u, 0x000500c7u, + 0x00000006u, 0x00001a92u, 0x00008580u, 0x000015ddu, 0x000500abu, 0x00000058u, 0x00001a93u, 0x00001a92u, + 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a95u, 0x00008580u, 0x000015e2u, 0x000500abu, 0x00000058u, + 0x00001a96u, 0x00001a95u, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a98u, 0x00008580u, 0x000015e7u, + 0x000500abu, 0x00000058u, 0x00001a99u, 0x00001a98u, 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001a9bu, + 0x00008580u, 0x000015ecu, 0x000500abu, 0x00000058u, 0x00001a9cu, 0x00001a9bu, 0x000002d9u, 0x000500c7u, + 0x00000006u, 0x00001a9eu, 0x00008580u, 0x000015f1u, 0x000500abu, 0x00000058u, 0x00001a9fu, 0x00001a9eu, + 0x000002d9u, 0x000500c7u, 0x00000006u, 0x00001aa1u, 0x00008580u, 0x000015f5u, 0x000500abu, 0x00000058u, + 0x00001aa2u, 0x00001aa1u, 0x000002d9u, 0x000300f7u, 0x00001aadu, 0x00000000u, 0x000400fau, 0x00001aa2u, + 0x00001aa3u, 0x00001aadu, 0x000200f8u, 0x00001aa3u, 0x0004007cu, 0x00000006u, 0x00001aa5u, 0x00006634u, + 0x0004007cu, 0x00000006u, 0x00001aa7u, 0x00006630u, 0x00060041u, 0x000015ffu, 0x00001aa9u, 0x00000529u, + 0x00000187u, 0x0000019cu, 0x0004003du, 0x00000006u, 0x00001aaau, 0x00001aa9u, 0x00050080u, 0x00000006u, + 0x00001aabu, 0x000018c1u, 0x00001aaau, 0x00060050u, 0x000002b8u, 0x00001cfau, 0x00001aa5u, 0x00001aa7u, + 0x00001aabu, 0x000500c2u, 0x000002b8u, 0x00001cfdu, 0x00001cfau, 0x0000855fu, 0x0008004fu, 0x000002b8u, + 0x00001cffu, 0x00001cfau, 0x00001cfau, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x000002b8u, + 0x00001d00u, 0x00001cfdu, 0x00001cffu, 0x00050084u, 0x000002b8u, 0x00001d02u, 0x00001d00u, 0x00008560u, + 0x000500c2u, 0x000002b8u, 0x00001d05u, 0x00001d02u, 0x0000855fu, 0x0008004fu, 0x000002b8u, 0x00001d07u, + 0x00001d02u, 0x00001d02u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x000002b8u, 0x00001d08u, + 0x00001d05u, 0x00001d07u, 0x00050084u, 0x000002b8u, 0x00001d0au, 0x00001d08u, 0x00008560u, 0x000500c2u, + 0x000002b8u, 0x00001d0du, 0x00001d0au, 0x0000855fu, 0x0008004fu, 0x000002b8u, 0x00001d0fu, 0x00001d0au, + 0x00001d0au, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x000002b8u, 0x00001d10u, 0x00001d0du, + 0x00001d0fu, 0x00050084u, 0x000002b8u, 0x00001d12u, 0x00001d10u, 0x00008560u, 0x00050051u, 0x00000006u, + 0x00001d14u, 0x00001d12u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00001d15u, 0x00001d14u, 0x000002dcu, + 0x0004007cu, 0x00000008u, 0x00001d16u, 0x00001d15u, 0x000200f9u, 0x00001aadu, 0x000200f8u, 0x00001aadu, + 0x000700f5u, 0x00000008u, 0x00007505u, 0x00000187u, 0x00001a57u, 0x00001d16u, 0x00001aa3u, 0x000500c7u, + 0x00000006u, 0x00001aafu, 0x00001a0eu, 0x0000032cu, 0x000500abu, 0x00000058u, 0x00001ab0u, 0x00001aafu, + 0x000002d9u, 0x000300f7u, 0x00001b01u, 0x00000000u, 0x000400fau, 0x00001a81u, 0x00001ab2u, 0x00001af1u, + 0x000200f8u, 0x00001af1u, 0x000300f7u, 0x00001b00u, 0x00000000u, 0x000400fau, 0x00001a7eu, 0x00001af3u, + 0x00001b00u, 0x000200f8u, 0x00001af3u, 0x000500afu, 0x00000058u, 0x00001af8u, 0x00006634u, 0x00001cb3u, + 0x000300f7u, 0x00001afeu, 0x00000000u, 0x000400fau, 0x00001af8u, 0x00001af9u, 0x00001afeu, 0x000200f8u, + 0x00001af9u, 0x000500b3u, 0x00000058u, 0x00001afdu, 0x00006634u, 0x00001cb6u, 0x000200f9u, 0x00001afeu, + 0x000200f8u, 0x00001afeu, 0x000700f5u, 0x00000058u, 0x00001affu, 0x00001af8u, 0x00001af3u, 0x00001afdu, + 0x00001af9u, 0x000200f9u, 0x00001c8bu, 0x000200f8u, 0x00001b00u, 0x000200f9u, 0x00001b01u, 0x000200f8u, + 0x00001ab2u, 0x000500afu, 0x00000058u, 0x00001ab6u, 0x00006634u, 0x00001cb3u, 0x000300f7u, 0x00001abcu, + 0x00000000u, 0x000400fau, 0x00001ab6u, 0x00001ab7u, 0x00001abcu, 0x000200f8u, 0x00001ab7u, 0x000500b3u, + 0x00000058u, 0x00001abbu, 0x00006634u, 0x00001cb6u, 0x000200f9u, 0x00001abcu, 0x000200f8u, 0x00001abcu, + 0x000700f5u, 0x00000058u, 0x00001abdu, 0x00001ab6u, 0x00001ab2u, 0x00001abbu, 0x00001ab7u, 0x000400a8u, + 0x00000058u, 0x00001abfu, 0x00001abdu, 0x000300f7u, 0x00001ac1u, 0x00000000u, 0x000400fau, 0x00001abfu, + 0x00001ac0u, 0x00001ac1u, 0x000200f8u, 0x00001ac0u, 0x000200f9u, 0x00001c8bu, 0x000200f8u, 0x00001ac1u, + 0x000300f7u, 0x00001d2cu, 0x00000000u, 0x000400fau, 0x00001ab0u, 0x00001d22u, 0x00001d27u, 0x000200f8u, + 0x00001d27u, 0x00050082u, 0x00000008u, 0x00001d2bu, 0x00001cb6u, 0x00006634u, 0x000200f9u, 0x00001d2cu, + 0x000200f8u, 0x00001d22u, 0x00050082u, 0x00000008u, 0x00001d26u, 0x00006634u, 0x00001cb3u, 0x000200f9u, + 0x00001d2cu, 0x000200f8u, 0x00001d2cu, 0x000700f5u, 0x00000008u, 0x00007fc2u, 0x00001d26u, 0x00001d22u, + 0x00001d2bu, 0x00001d27u, 0x000500c3u, 0x00000008u, 0x00001d2fu, 0x00007fc2u, 0x000004cfu, 0x00060041u, + 0x0000052au, 0x00001d31u, 0x00000529u, 0x00000187u, 0x00000196u, 0x0004003du, 0x00000008u, 0x00001d32u, + 0x00001d31u, 0x000500c7u, 0x00000008u, 0x00001d33u, 0x00001d2fu, 0x00001d32u, 0x00050082u, 0x00000008u, + 0x00001d36u, 0x00001d2fu, 0x00001d33u, 0x00060041u, 0x0000052au, 0x00001d38u, 0x00000529u, 0x00000187u, + 0x00000187u, 0x0004003du, 0x00000008u, 0x00001d39u, 0x00001d38u, 0x000500c3u, 0x00000008u, 0x00001d3au, + 0x00001d2fu, 0x00001d39u, 0x000600a9u, 0x00000008u, 0x00001d3cu, 0x00001ab0u, 0x00000196u, 0x00000537u, + 0x00050084u, 0x00000008u, 0x00001d3du, 0x00001d3au, 0x00001d3cu, 0x0008004fu, 0x00000052u, 0x00001d40u, + 0x00001ca3u, 0x00001ca3u, 0x00000000u, 0x00000001u, 0x00000003u, 0x0008004fu, 0x00000052u, 0x00001d42u, + 0x00001cd1u, 0x00001cd1u, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, 0x00000052u, 0x00001d44u, + 0x00001d42u, 0x00008561u, 0x00060050u, 0x00000052u, 0x00001d46u, 0x00001d3du, 0x00001d3du, 0x00001d3du, + 0x00050084u, 0x00000052u, 0x00001d47u, 0x00001d44u, 0x00001d46u, 0x00050080u, 0x00000052u, 0x00001d48u, + 0x00001d40u, 0x00001d47u, 0x000300f7u, 0x00001d56u, 0x00000000u, 0x000400fau, 0x00001a69u, 0x00001d4au, + 0x00001d51u, 0x000200f8u, 0x00001d51u, 0x000500c3u, 0x00000052u, 0x00001d54u, 0x00001d48u, 0x00008562u, + 0x0007004fu, 0x0000004du, 0x00001de2u, 0x00001d54u, 0x00001d54u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00001d56u, 0x000200f8u, 0x00001d4au, 0x000500c3u, 0x00000052u, 0x00001d4du, 0x00001d48u, 0x00008562u, + 0x00050051u, 0x00000008u, 0x00001d63u, 0x00001d4du, 0x00000002u, 0x000500b3u, 0x00000058u, 0x00001d65u, + 0x00001d63u, 0x00000187u, 0x000500c7u, 0x00000008u, 0x00001d67u, 0x00001d63u, 0x0000045eu, 0x0006000cu, + 0x00000008u, 0x00001dc4u, 0x00000001u, 0x0000004au, 0x00001d67u, 0x00050082u, 0x00000008u, 0x00001dc5u, + 0x00000207u, 0x00001dc4u, 0x0007000cu, 0x00000008u, 0x00001dc6u, 0x00000001u, 0x00000027u, 0x00001dc5u, + 0x00000207u, 0x000500c4u, 0x00000008u, 0x00001dc9u, 0x00001d67u, 0x00001dc6u, 0x000500c7u, 0x00000008u, + 0x00001dcau, 0x00001dc9u, 0x00000377u, 0x000500c7u, 0x00000008u, 0x00001dccu, 0x00001dcau, 0x000002f0u, + 0x000500c3u, 0x00000008u, 0x00001dceu, 0x00001dcau, 0x000001e2u, 0x0003003eu, 0x00001dbfu, 0x0000043cu, + 0x00050041u, 0x00000068u, 0x00001dcfu, 0x00001dbfu, 0x00001dceu, 0x0004003du, 0x0000004du, 0x00001dd0u, + 0x00001dcfu, 0x00050051u, 0x00000008u, 0x00001dd5u, 0x00001dd0u, 0x00000001u, 0x00050084u, 0x00000008u, + 0x00001dd7u, 0x00001dd5u, 0x00001dccu, 0x000500c3u, 0x00000008u, 0x00001dd8u, 0x00001dd7u, 0x000001eeu, + 0x00050051u, 0x00000008u, 0x00001ddau, 0x00001dd0u, 0x00000000u, 0x00050080u, 0x00000008u, 0x00001ddbu, + 0x00001dd8u, 0x00001ddau, 0x0007004fu, 0x0000004du, 0x00001d6du, 0x00001d4du, 0x00001d4du, 0x00000000u, + 0x00000001u, 0x00050050u, 0x0000004du, 0x00001d70u, 0x00001ddbu, 0x00001ddbu, 0x00050084u, 0x0000004du, + 0x00001d71u, 0x00001d6du, 0x00001d70u, 0x000500c3u, 0x00000008u, 0x00001d73u, 0x00000471u, 0x00001dc6u, + 0x0004007eu, 0x00000008u, 0x00001d74u, 0x00001d73u, 0x000500c7u, 0x00000008u, 0x00001d75u, 0x00000470u, + 0x00001d74u, 0x00050050u, 0x0000004du, 0x00001d78u, 0x00001d75u, 0x00001d75u, 0x000500c7u, 0x0000004du, + 0x00001d79u, 0x00001d71u, 0x00001d78u, 0x000500abu, 0x00000058u, 0x00001d7bu, 0x00001dc6u, 0x00000207u, + 0x000300f7u, 0x00001d86u, 0x00000000u, 0x000400fau, 0x00001d7bu, 0x00001d7cu, 0x00001d82u, 0x000200f8u, + 0x00001d82u, 0x000500c4u, 0x0000004du, 0x00001d85u, 0x00001d71u, 0x00008566u, 0x000200f9u, 0x00001d86u, + 0x000200f8u, 0x00001d7cu, 0x00050082u, 0x00000008u, 0x00001d7fu, 0x00000201u, 0x00001dc6u, 0x00050050u, + 0x0000004du, 0x00001d80u, 0x00001d7fu, 0x00001d7fu, 0x000500c3u, 0x0000004du, 0x00001d81u, 0x00001d71u, + 0x00001d80u, 0x000200f9u, 0x00001d86u, 0x000200f8u, 0x00001d86u, 0x000700f5u, 0x0000004du, 0x00007fc6u, + 0x00001d81u, 0x00001d7cu, 0x00001d85u, 0x00001d82u, 0x000700f5u, 0x0000004du, 0x00007fc4u, 0x00001d81u, + 0x00001d7cu, 0x00001d71u, 0x00001d82u, 0x000500abu, 0x0000048bu, 0x00001d88u, 0x00001d79u, 0x0000048au, + 0x0004009au, 0x00000058u, 0x00001d89u, 0x00001d88u, 0x000300f7u, 0x00001db5u, 0x00000000u, 0x000400fau, + 0x00001d89u, 0x00001d8au, 0x00001db5u, 0x000200f8u, 0x00001d8au, 0x00050051u, 0x00000008u, 0x00001d8cu, + 0x00001d79u, 0x00000000u, 0x000500abu, 0x00000058u, 0x00001d8eu, 0x00001d8cu, 0x00001d75u, 0x000300f7u, + 0x00001d93u, 0x00000000u, 0x000400fau, 0x00001d8eu, 0x00001d8fu, 0x00001d93u, 0x000200f8u, 0x00001d8fu, + 0x000500abu, 0x00000058u, 0x00001d92u, 0x00001d8cu, 0x00000187u, 0x000200f9u, 0x00001d93u, 0x000200f8u, + 0x00001d93u, 0x000700f5u, 0x00000058u, 0x00001d94u, 0x00001d8eu, 0x00001d8au, 0x00001d92u, 0x00001d8fu, + 0x000300f7u, 0x00001d9fu, 0x00000000u, 0x000400fau, 0x00001d94u, 0x00001d95u, 0x00001d9fu, 0x000200f8u, + 0x00001d95u, 0x00050051u, 0x00000008u, 0x00001d97u, 0x00007fc4u, 0x00000000u, 0x000500c7u, 0x00000008u, + 0x00001d98u, 0x00001d97u, 0x00000471u, 0x000500aau, 0x00000058u, 0x00001d99u, 0x00001d98u, 0x00000187u, + 0x000300f7u, 0x00001d9eu, 0x00000000u, 0x000400fau, 0x00001d99u, 0x00001d9au, 0x00001d9cu, 0x000200f8u, + 0x00001d9cu, 0x00060052u, 0x0000004du, 0x000062dau, 0x000004a4u, 0x00007fc6u, 0x00000000u, 0x000200f9u, + 0x00001d9eu, 0x000200f8u, 0x00001d9au, 0x00060052u, 0x0000004du, 0x000062d8u, 0x0000045eu, 0x00007fc6u, + 0x00000000u, 0x000200f9u, 0x00001d9eu, 0x000200f8u, 0x00001d9eu, 0x000700f5u, 0x0000004du, 0x00007fccu, + 0x000062d8u, 0x00001d9au, 0x000062dau, 0x00001d9cu, 0x000200f9u, 0x00001d9fu, 0x000200f8u, 0x00001d9fu, + 0x000700f5u, 0x0000004du, 0x00007fcbu, 0x00007fc6u, 0x00001d93u, 0x00007fccu, 0x00001d9eu, 0x00050051u, + 0x00000008u, 0x00001da1u, 0x00001d79u, 0x00000001u, 0x000500abu, 0x00000058u, 0x00001da3u, 0x00001da1u, + 0x00001d75u, 0x000300f7u, 0x00001da8u, 0x00000000u, 0x000400fau, 0x00001da3u, 0x00001da4u, 0x00001da8u, + 0x000200f8u, 0x00001da4u, 0x000500abu, 0x00000058u, 0x00001da7u, 0x00001da1u, 0x00000187u, 0x000200f9u, + 0x00001da8u, 0x000200f8u, 0x00001da8u, 0x000700f5u, 0x00000058u, 0x00001da9u, 0x00001da3u, 0x00001d9fu, + 0x00001da7u, 0x00001da4u, 0x000300f7u, 0x00001db4u, 0x00000000u, 0x000400fau, 0x00001da9u, 0x00001daau, + 0x00001db4u, 0x000200f8u, 0x00001daau, 0x00050051u, 0x00000008u, 0x00001dacu, 0x00007fc4u, 0x00000001u, + 0x000500c7u, 0x00000008u, 0x00001dadu, 0x00001dacu, 0x00000471u, 0x000500aau, 0x00000058u, 0x00001daeu, + 0x00001dadu, 0x00000187u, 0x000300f7u, 0x00001db3u, 0x00000000u, 0x000400fau, 0x00001daeu, 0x00001dafu, + 0x00001db1u, 0x000200f8u, 0x00001db1u, 0x00060052u, 0x0000004du, 0x000062e1u, 0x000004a4u, 0x00007fcbu, + 0x00000001u, 0x000200f9u, 0x00001db3u, 0x000200f8u, 0x00001dafu, 0x00060052u, 0x0000004du, 0x000062dfu, + 0x0000045eu, 0x00007fcbu, 0x00000001u, 0x000200f9u, 0x00001db3u, 0x000200f8u, 0x00001db3u, 0x000700f5u, + 0x0000004du, 0x00007fd0u, 0x000062dfu, 0x00001dafu, 0x000062e1u, 0x00001db1u, 0x000200f9u, 0x00001db4u, + 0x000200f8u, 0x00001db4u, 0x000700f5u, 0x0000004du, 0x00007fcfu, 0x00007fcbu, 0x00001da8u, 0x00007fd0u, + 0x00001db3u, 0x000200f9u, 0x00001db5u, 0x000200f8u, 0x00001db5u, 0x000700f5u, 0x0000004du, 0x00007fceu, + 0x00007fc6u, 0x00001d86u, 0x00007fcfu, 0x00001db4u, 0x00050050u, 0x0000048bu, 0x00008581u, 0x00001d65u, + 0x00001d65u, 0x000600a9u, 0x0000004du, 0x00008582u, 0x00008581u, 0x000004bfu, 0x00007fceu, 0x0008000cu, + 0x0000004du, 0x00001dbau, 0x00000001u, 0x0000002du, 0x00008582u, 0x000004c2u, 0x000004c4u, 0x000200f9u, + 0x00001d56u, 0x000200f8u, 0x00001d56u, 0x000700f5u, 0x0000004du, 0x00007fd1u, 0x00001dbau, 0x00001db5u, + 0x00001de2u, 0x00001d51u, 0x000500c7u, 0x00000006u, 0x00001accu, 0x00001a2du, 0x00001258u, 0x00080041u, + 0x000001fbu, 0x00001acfu, 0x00001525u, 0x00000187u, 0x000018c1u, 0x00000199u, 0x00001accu, 0x0004003du, + 0x000001adu, 0x00001ad0u, 0x00001acfu, 0x00040071u, 0x00000006u, 0x00001ad1u, 0x00001ad0u, 0x00070041u, + 0x000001efu, 0x00001de6u, 0x0000027au, 0x00000187u, 0x00001ad1u, 0x00000187u, 0x0004003du, 0x00000006u, + 0x00001de7u, 0x00001de6u, 0x00070041u, 0x000001efu, 0x00001decu, 0x0000027au, 0x00000187u, 0x00001ad1u, + 0x00000199u, 0x0004003du, 0x00000006u, 0x00001dedu, 0x00001decu, 0x00070041u, 0x000001efu, 0x00001df2u, + 0x0000027au, 0x00000187u, 0x00001ad1u, 0x0000019fu, 0x0004003du, 0x00000006u, 0x00001df3u, 0x00001df2u, + 0x00070041u, 0x000001efu, 0x00001df5u, 0x0000027au, 0x00000187u, 0x00001ad1u, 0x000001a2u, 0x0004003du, + 0x00000006u, 0x00001df6u, 0x00001df5u, 0x00070041u, 0x000001fbu, 0x00001dfdu, 0x0000027au, 0x00000187u, + 0x00001ad1u, 0x000001a8u, 0x0004003du, 0x000001adu, 0x00001dfeu, 0x00001dfdu, 0x00040071u, 0x00000006u, + 0x00001dffu, 0x00001dfeu, 0x0004007cu, 0x00000008u, 0x00001e00u, 0x00001dffu, 0x00070041u, 0x000001fbu, + 0x00001e02u, 0x0000027au, 0x00000187u, 0x00001ad1u, 0x000001e2u, 0x0004003du, 0x000001adu, 0x00001e03u, + 0x00001e02u, 0x00040071u, 0x00000006u, 0x00001e04u, 0x00001e03u, 0x0004007cu, 0x00000008u, 0x00001e05u, + 0x00001e04u, 0x00070041u, 0x000001fbu, 0x00001e07u, 0x0000027au, 0x00000187u, 0x00001ad1u, 0x000001e8u, + 0x0004003du, 0x000001adu, 0x00001e08u, 0x00001e07u, 0x00040071u, 0x00000006u, 0x00001e09u, 0x00001e08u, + 0x0004007cu, 0x00000008u, 0x00001e0au, 0x00001e09u, 0x00070041u, 0x000001fbu, 0x00001e0cu, 0x0000027au, + 0x00000187u, 0x00001ad1u, 0x000001eeu, 0x0004003du, 0x000001adu, 0x00001e0du, 0x00001e0cu, 0x00040071u, + 0x00000006u, 0x00001e0eu, 0x00001e0du, 0x0004007cu, 0x00000008u, 0x00001e0fu, 0x00001e0eu, 0x00070041u, + 0x000001fbu, 0x00001e11u, 0x0000027au, 0x00000187u, 0x00001ad1u, 0x000001f3u, 0x0004003du, 0x000001adu, + 0x00001e12u, 0x00001e11u, 0x00040071u, 0x00000006u, 0x00001e13u, 0x00001e12u, 0x0004007cu, 0x00000008u, + 0x00001e14u, 0x00001e13u, 0x00070041u, 0x000001fbu, 0x00001e16u, 0x0000027au, 0x00000187u, 0x00001ad1u, + 0x000001fau, 0x0004003du, 0x000001adu, 0x00001e17u, 0x00001e16u, 0x00040071u, 0x00000006u, 0x00001e18u, + 0x00001e17u, 0x0004007cu, 0x00000008u, 0x00001e19u, 0x00001e18u, 0x00070041u, 0x000001fbu, 0x00001e1bu, + 0x0000027au, 0x00000187u, 0x00001ad1u, 0x00000201u, 0x0004003du, 0x000001adu, 0x00001e1cu, 0x00001e1bu, + 0x00040071u, 0x00000006u, 0x00001e1du, 0x00001e1cu, 0x0004007cu, 0x00000008u, 0x00001e1eu, 0x00001e1du, + 0x000600a9u, 0x00000008u, 0x00008583u, 0x0000163fu, 0x00001646u, 0x00001e00u, 0x0004007cu, 0x00000008u, + 0x00001e37u, 0x00001de7u, 0x00050051u, 0x00000008u, 0x00001e3bu, 0x00007fd1u, 0x00000000u, 0x0008000cu, + 0x00000008u, 0x00001e71u, 0x00000001u, 0x0000002du, 0x00001e3bu, 0x000004a4u, 0x0000045eu, 0x000500b1u, + 0x00000058u, 0x00001e73u, 0x00001e0fu, 0x000001f3u, 0x000300f7u, 0x00001e7fu, 0x00000000u, 0x000400fau, + 0x00001e73u, 0x00001e74u, 0x00001e78u, 0x000200f8u, 0x00001e78u, 0x00050082u, 0x00000008u, 0x00001e7au, + 0x000002e2u, 0x00001e0fu, 0x000500c4u, 0x00000008u, 0x00001e7cu, 0x00001e71u, 0x00001e7au, 0x000500c3u, + 0x00000008u, 0x00001e7eu, 0x00001e7cu, 0x00000323u, 0x000200f9u, 0x00001e7fu, 0x000200f8u, 0x00001e74u, + 0x000500c3u, 0x00000008u, 0x00001e77u, 0x00001e71u, 0x00001e0fu, 0x000200f9u, 0x00001e7fu, 0x000200f8u, + 0x00001e7fu, 0x000700f5u, 0x00000008u, 0x00007fd4u, 0x00001e77u, 0x00001e74u, 0x00001e7eu, 0x00001e78u, + 0x000500c4u, 0x00000008u, 0x00001e81u, 0x00001e37u, 0x0000019cu, 0x00050082u, 0x00000008u, 0x00001e83u, + 0x00007fd4u, 0x00001e81u, 0x0004007cu, 0x00000008u, 0x00001e40u, 0x00001dedu, 0x00050051u, 0x00000008u, + 0x00001e44u, 0x00007fd1u, 0x00000001u, 0x0008000cu, 0x00000008u, 0x00001e88u, 0x00000001u, 0x0000002du, + 0x00001e44u, 0x000004a4u, 0x0000045eu, 0x000500b1u, 0x00000058u, 0x00001e8au, 0x00001e19u, 0x000001f3u, + 0x000300f7u, 0x00001e96u, 0x00000000u, 0x000400fau, 0x00001e8au, 0x00001e8bu, 0x00001e8fu, 0x000200f8u, + 0x00001e8fu, 0x00050082u, 0x00000008u, 0x00001e91u, 0x000002e2u, 0x00001e19u, 0x000500c4u, 0x00000008u, + 0x00001e93u, 0x00001e88u, 0x00001e91u, 0x000500c3u, 0x00000008u, 0x00001e95u, 0x00001e93u, 0x00000323u, + 0x000200f9u, 0x00001e96u, 0x000200f8u, 0x00001e8bu, 0x000500c3u, 0x00000008u, 0x00001e8eu, 0x00001e88u, + 0x00001e19u, 0x000200f9u, 0x00001e96u, 0x000200f8u, 0x00001e96u, 0x000700f5u, 0x00000008u, 0x00007fd6u, + 0x00001e8eu, 0x00001e8bu, 0x00001e95u, 0x00001e8fu, 0x000500c4u, 0x00000008u, 0x00001e98u, 0x00001e40u, + 0x0000019cu, 0x00050082u, 0x00000008u, 0x00001e9au, 0x00007fd6u, 0x00001e98u, 0x00050050u, 0x0000004du, + 0x0000857eu, 0x00001e83u, 0x00001e9au, 0x000500c3u, 0x0000004du, 0x00001e49u, 0x0000857eu, 0x00008568u, + 0x00060041u, 0x0000052au, 0x00001e4au, 0x00000529u, 0x00000187u, 0x00000199u, 0x0004003du, 0x00000008u, + 0x00001e4bu, 0x00001e4au, 0x000500aau, 0x00000058u, 0x00001e4cu, 0x00001e4bu, 0x00000187u, 0x000300f7u, + 0x00001e6cu, 0x00000000u, 0x000400fau, 0x00001e4cu, 0x00001e4du, 0x00001e4eu, 0x000200f8u, 0x00001e4eu, + 0x000500aau, 0x00000058u, 0x00001e51u, 0x00001e4bu, 0x00000196u, 0x000300f7u, 0x00001e6bu, 0x00000000u, + 0x000400fau, 0x00001e51u, 0x00001e52u, 0x00001e63u, 0x000200f8u, 0x00001e63u, 0x000500b1u, 0x00000058u, + 0x0000204au, 0x00001d36u, 0x00000199u, 0x000300f7u, 0x00002050u, 0x00000000u, 0x000400fau, 0x0000204au, + 0x0000204cu, 0x00002050u, 0x000200f8u, 0x0000204cu, 0x000500abu, 0x00000058u, 0x0000204fu, 0x00008583u, + 0x00000199u, 0x000200f9u, 0x00002050u, 0x000200f8u, 0x00002050u, 0x000700f5u, 0x00000058u, 0x00002051u, + 0x0000204au, 0x00001e63u, 0x0000204fu, 0x0000204cu, 0x000400a8u, 0x00000058u, 0x00002053u, 0x00001a5au, + 0x000500a7u, 0x00000058u, 0x00002054u, 0x00002051u, 0x00002053u, 0x0007000cu, 0x00000008u, 0x00002057u, + 0x00000001u, 0x00000027u, 0x00008583u, 0x00000199u, 0x000500aau, 0x00000058u, 0x0000205au, 0x00008583u, + 0x0000019cu, 0x000500a6u, 0x00000058u, 0x0000205du, 0x0000205au, 0x00001a5au, 0x000600a9u, 0x00000008u, + 0x0000205eu, 0x0000205du, 0x0000099eu, 0x000009e0u, 0x000300f7u, 0x00002140u, 0x00000000u, 0x000400fau, + 0x00002054u, 0x00002060u, 0x000020dfu, 0x000200f8u, 0x000020dfu, 0x00050051u, 0x00000008u, 0x000020e2u, + 0x00001e49u, 0x00000000u, 0x00050080u, 0x00000008u, 0x000020e3u, 0x000020e2u, 0x00001d36u, 0x000500abu, + 0x00000058u, 0x00002189u, 0x00001e0au, 0x00000187u, 0x000300f7u, 0x0000219fu, 0x00000000u, 0x000400fau, + 0x00002189u, 0x0000218au, 0x0000219fu, 0x000200f8u, 0x0000218au, 0x000500c4u, 0x00000008u, 0x0000218du, + 0x00000196u, 0x00001e0au, 0x000500c7u, 0x00000008u, 0x00002190u, 0x00001e1eu, 0x00000199u, 0x000500abu, + 0x00000058u, 0x00002191u, 0x00002190u, 0x00000187u, 0x000300f7u, 0x0000219au, 0x00000000u, 0x000400fau, + 0x00002191u, 0x00002192u, 0x0000219au, 0x000200f8u, 0x00002192u, 0x000500c7u, 0x00000008u, 0x00002195u, + 0x000020e3u, 0x0000218du, 0x00050082u, 0x00000008u, 0x00002196u, 0x00002195u, 0x00000196u, 0x0007000cu, + 0x00000008u, 0x00002197u, 0x00000001u, 0x0000002au, 0x00002196u, 0x00000187u, 0x000500c6u, 0x00000008u, + 0x00002199u, 0x000020e3u, 0x00002197u, 0x000200f9u, 0x0000219au, 0x000200f8u, 0x0000219au, 0x000700f5u, + 0x00000008u, 0x00007fd9u, 0x000020e3u, 0x0000218au, 0x00002199u, 0x00002192u, 0x00050082u, 0x00000008u, + 0x0000219cu, 0x0000218du, 0x00000196u, 0x000500c7u, 0x00000008u, 0x0000219eu, 0x00007fd9u, 0x0000219cu, + 0x000200f9u, 0x0000219fu, 0x000200f8u, 0x0000219fu, 0x000700f5u, 0x00000008u, 0x00007fdau, 0x000020e3u, + 0x000020dfu, 0x0000219eu, 0x0000219au, 0x00050051u, 0x00000008u, 0x000020ebu, 0x00001e49u, 0x00000001u, + 0x000500abu, 0x00000058u, 0x000021a6u, 0x00001e14u, 0x00000187u, 0x000300f7u, 0x000021bcu, 0x00000000u, + 0x000400fau, 0x000021a6u, 0x000021a7u, 0x000021bcu, 0x000200f8u, 0x000021a7u, 0x000500c4u, 0x00000008u, + 0x000021aau, 0x00000196u, 0x00001e14u, 0x000500c7u, 0x00000008u, 0x000021adu, 0x00001e1eu, 0x000001e2u, + 0x000500abu, 0x00000058u, 0x000021aeu, 0x000021adu, 0x00000187u, 0x000300f7u, 0x000021b7u, 0x00000000u, + 0x000400fau, 0x000021aeu, 0x000021afu, 0x000021b7u, 0x000200f8u, 0x000021afu, 0x000500c7u, 0x00000008u, + 0x000021b2u, 0x000020ebu, 0x000021aau, 0x00050082u, 0x00000008u, 0x000021b3u, 0x000021b2u, 0x00000196u, + 0x0007000cu, 0x00000008u, 0x000021b4u, 0x00000001u, 0x0000002au, 0x000021b3u, 0x00000187u, 0x000500c6u, + 0x00000008u, 0x000021b6u, 0x000020ebu, 0x000021b4u, 0x000200f9u, 0x000021b7u, 0x000200f8u, 0x000021b7u, + 0x000700f5u, 0x00000008u, 0x00007fddu, 0x000020ebu, 0x000021a7u, 0x000021b6u, 0x000021afu, 0x00050082u, + 0x00000008u, 0x000021b9u, 0x000021aau, 0x00000196u, 0x000500c7u, 0x00000008u, 0x000021bbu, 0x00007fddu, + 0x000021b9u, 0x000200f9u, 0x000021bcu, 0x000200f8u, 0x000021bcu, 0x000700f5u, 0x00000008u, 0x00007fdeu, + 0x000020ebu, 0x0000219fu, 0x000021bbu, 0x000021b7u, 0x0004007cu, 0x00000006u, 0x000020f2u, 0x00007fdeu, + 0x00050084u, 0x00000006u, 0x000020f3u, 0x00001df6u, 0x000020f2u, 0x00050080u, 0x00000006u, 0x000020f4u, + 0x00001df3u, 0x000020f3u, 0x00050084u, 0x00000006u, 0x000020f6u, 0x000020f4u, 0x00000330u, 0x000500c4u, + 0x00000008u, 0x000020f9u, 0x00007fdau, 0x00002057u, 0x0004007cu, 0x00000006u, 0x000020fau, 0x000020f9u, + 0x00050080u, 0x00000006u, 0x000020fbu, 0x000020f6u, 0x000020fau, 0x000500c7u, 0x00000006u, 0x000020fcu, + 0x000020fbu, 0x00000a0cu, 0x000500c7u, 0x00000006u, 0x000020ffu, 0x000020f2u, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00002100u, 0x000020ffu, 0x000002c0u, 0x000500c6u, 0x00000006u, 0x00002102u, 0x000020fcu, + 0x00002100u, 0x000500c2u, 0x00000006u, 0x00002104u, 0x00002102u, 0x00000330u, 0x0004007cu, 0x00000006u, + 0x00002106u, 0x0000205eu, 0x000500c7u, 0x00000006u, 0x00002108u, 0x00002104u, 0x00002106u, 0x000500c6u, + 0x00000006u, 0x0000210bu, 0x00002108u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x0000210cu, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000210bu, 0x0004003du, 0x000001afu, 0x0000210du, 0x0000210cu, + 0x00040071u, 0x00000006u, 0x0000210eu, 0x0000210du, 0x0004007cu, 0x00000008u, 0x0000210fu, 0x0000210eu, + 0x000300f7u, 0x0000213fu, 0x00000000u, 0x000400fau, 0x00001a5au, 0x00002111u, 0x0000213fu, 0x000200f8u, + 0x00002111u, 0x000500aau, 0x00000058u, 0x00002114u, 0x00008583u, 0x00000187u, 0x000300f7u, 0x00002136u, + 0x00000000u, 0x000400fau, 0x00002114u, 0x00002115u, 0x00002128u, 0x000200f8u, 0x00002128u, 0x000500c7u, + 0x00000006u, 0x0000212au, 0x00002102u, 0x00000330u, 0x00050084u, 0x00000006u, 0x0000212bu, 0x000006beu, + 0x0000212au, 0x00050082u, 0x00000006u, 0x0000212cu, 0x000002c0u, 0x0000212bu, 0x000500c3u, 0x00000008u, + 0x0000212eu, 0x0000210fu, 0x0000212cu, 0x000500c7u, 0x00000008u, 0x00002130u, 0x0000212eu, 0x000002f0u, + 0x000500c4u, 0x00000008u, 0x00002132u, 0x00002130u, 0x00000199u, 0x00050080u, 0x00000008u, 0x00002135u, + 0x00002132u, 0x00001d36u, 0x000200f9u, 0x00002136u, 0x000200f8u, 0x00002115u, 0x000500c7u, 0x00000006u, + 0x00002117u, 0x00002102u, 0x00000333u, 0x00050084u, 0x00000006u, 0x00002118u, 0x000006beu, 0x00002117u, + 0x00050082u, 0x00000006u, 0x00002119u, 0x00000ab4u, 0x00002118u, 0x000500c3u, 0x00000008u, 0x0000211bu, + 0x0000210fu, 0x00002119u, 0x000500c7u, 0x00000008u, 0x0000211du, 0x0000211bu, 0x00000a61u, 0x000500c4u, + 0x00000008u, 0x00002120u, 0x00001e05u, 0x0000019fu, 0x000500c5u, 0x00000008u, 0x00002122u, 0x0000211du, + 0x00002120u, 0x000500c4u, 0x00000008u, 0x00002124u, 0x00002122u, 0x00000199u, 0x00050080u, 0x00000008u, + 0x00002127u, 0x00002124u, 0x00001d36u, 0x000200f9u, 0x00002136u, 0x000200f8u, 0x00002136u, 0x000700f5u, + 0x00000008u, 0x00007fdfu, 0x00002127u, 0x00002115u, 0x00002135u, 0x00002128u, 0x000500c5u, 0x00000008u, + 0x00002139u, 0x00007fdfu, 0x00000ad7u, 0x000500c6u, 0x00000008u, 0x0000213au, 0x00002139u, 0x00000196u, + 0x00080041u, 0x000001f4u, 0x0000213bu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000213au, + 0x0004003du, 0x000001afu, 0x0000213cu, 0x0000213bu, 0x00040071u, 0x00000006u, 0x0000213du, 0x0000213cu, + 0x0004007cu, 0x00000008u, 0x0000213eu, 0x0000213du, 0x000200f9u, 0x0000213fu, 0x000200f8u, 0x0000213fu, + 0x000700f5u, 0x00000008u, 0x00007febu, 0x0000210fu, 0x000021bcu, 0x0000213eu, 0x00002136u, 0x000200f9u, + 0x00002140u, 0x000200f8u, 0x00002060u, 0x00050084u, 0x00000008u, 0x00002062u, 0x00000199u, 0x00001d36u, + 0x00050051u, 0x00000008u, 0x00002064u, 0x00001e49u, 0x00000000u, 0x00050080u, 0x00000008u, 0x00002065u, + 0x00002064u, 0x00002062u, 0x00050050u, 0x0000004du, 0x00002147u, 0x00002065u, 0x00002065u, 0x00050080u, + 0x0000004du, 0x00002148u, 0x00002147u, 0x00000636u, 0x000500abu, 0x00000058u, 0x0000214bu, 0x00001e0au, + 0x00000187u, 0x000300f7u, 0x00002165u, 0x00000000u, 0x000400fau, 0x0000214bu, 0x0000214cu, 0x00002165u, + 0x000200f8u, 0x0000214cu, 0x000500c4u, 0x00000008u, 0x0000214fu, 0x00000196u, 0x00001e0au, 0x000500c7u, + 0x00000008u, 0x00002152u, 0x00001e1eu, 0x00000199u, 0x000500abu, 0x00000058u, 0x00002153u, 0x00002152u, + 0x00000187u, 0x000300f7u, 0x0000215fu, 0x00000000u, 0x000400fau, 0x00002153u, 0x00002154u, 0x0000215fu, + 0x000200f8u, 0x00002154u, 0x00050050u, 0x0000004du, 0x00002157u, 0x0000214fu, 0x0000214fu, 0x000500c7u, + 0x0000004du, 0x00002158u, 0x00002148u, 0x00002157u, 0x00050082u, 0x0000004du, 0x0000215au, 0x00002158u, + 0x00008566u, 0x0007000cu, 0x0000004du, 0x0000215cu, 0x00000001u, 0x0000002au, 0x0000215au, 0x0000048au, + 0x000500c6u, 0x0000004du, 0x0000215eu, 0x00002148u, 0x0000215cu, 0x000200f9u, 0x0000215fu, 0x000200f8u, + 0x0000215fu, 0x000700f5u, 0x0000004du, 0x00007fe0u, 0x00002148u, 0x0000214cu, 0x0000215eu, 0x00002154u, + 0x00050082u, 0x00000008u, 0x00002161u, 0x0000214fu, 0x00000196u, 0x00050050u, 0x0000004du, 0x00002163u, + 0x00002161u, 0x00002161u, 0x000500c7u, 0x0000004du, 0x00002164u, 0x00007fe0u, 0x00002163u, 0x000200f9u, + 0x00002165u, 0x000200f8u, 0x00002165u, 0x000700f5u, 0x0000004du, 0x00007fe1u, 0x00002148u, 0x00002060u, + 0x00002164u, 0x0000215fu, 0x00050051u, 0x00000008u, 0x0000206du, 0x00001e49u, 0x00000001u, 0x000500abu, + 0x00000058u, 0x0000216cu, 0x00001e14u, 0x00000187u, 0x000300f7u, 0x00002182u, 0x00000000u, 0x000400fau, + 0x0000216cu, 0x0000216du, 0x00002182u, 0x000200f8u, 0x0000216du, 0x000500c4u, 0x00000008u, 0x00002170u, + 0x00000196u, 0x00001e14u, 0x000500c7u, 0x00000008u, 0x00002173u, 0x00001e1eu, 0x000001e2u, 0x000500abu, + 0x00000058u, 0x00002174u, 0x00002173u, 0x00000187u, 0x000300f7u, 0x0000217du, 0x00000000u, 0x000400fau, + 0x00002174u, 0x00002175u, 0x0000217du, 0x000200f8u, 0x00002175u, 0x000500c7u, 0x00000008u, 0x00002178u, + 0x0000206du, 0x00002170u, 0x00050082u, 0x00000008u, 0x00002179u, 0x00002178u, 0x00000196u, 0x0007000cu, + 0x00000008u, 0x0000217au, 0x00000001u, 0x0000002au, 0x00002179u, 0x00000187u, 0x000500c6u, 0x00000008u, + 0x0000217cu, 0x0000206du, 0x0000217au, 0x000200f9u, 0x0000217du, 0x000200f8u, 0x0000217du, 0x000700f5u, + 0x00000008u, 0x00007fe4u, 0x0000206du, 0x0000216du, 0x0000217cu, 0x00002175u, 0x00050082u, 0x00000008u, + 0x0000217fu, 0x00002170u, 0x00000196u, 0x000500c7u, 0x00000008u, 0x00002181u, 0x00007fe4u, 0x0000217fu, + 0x000200f9u, 0x00002182u, 0x000200f8u, 0x00002182u, 0x000700f5u, 0x00000008u, 0x00007fe5u, 0x0000206du, + 0x00002165u, 0x00002181u, 0x0000217du, 0x0004007cu, 0x00000006u, 0x00002074u, 0x00007fe5u, 0x00050084u, + 0x00000006u, 0x00002075u, 0x00001df6u, 0x00002074u, 0x00050080u, 0x00000006u, 0x00002076u, 0x00001df3u, + 0x00002075u, 0x00050084u, 0x00000006u, 0x00002078u, 0x00002076u, 0x00000330u, 0x00050050u, 0x0000004du, + 0x0000207bu, 0x00002057u, 0x00002057u, 0x000500c4u, 0x0000004du, 0x0000207cu, 0x00007fe1u, 0x0000207bu, + 0x0004007cu, 0x000000a0u, 0x0000207du, 0x0000207cu, 0x00050050u, 0x000000a0u, 0x0000207eu, 0x00002078u, + 0x00002078u, 0x00050080u, 0x000000a0u, 0x0000207fu, 0x0000207eu, 0x0000207du, 0x000500c7u, 0x000000a0u, + 0x00002081u, 0x0000207fu, 0x0000856au, 0x000500c7u, 0x00000006u, 0x00002084u, 0x00002074u, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x00002085u, 0x00002084u, 0x000002c0u, 0x00050050u, 0x000000a0u, 0x00002087u, + 0x00002085u, 0x00002085u, 0x000500c6u, 0x000000a0u, 0x00002088u, 0x00002081u, 0x00002087u, 0x000500c2u, + 0x000000a0u, 0x0000208bu, 0x00002088u, 0x0000856bu, 0x0004007cu, 0x00000006u, 0x0000208du, 0x0000205eu, + 0x00050050u, 0x000000a0u, 0x0000208fu, 0x0000208du, 0x0000208du, 0x000500c7u, 0x000000a0u, 0x00002090u, + 0x0000208bu, 0x0000208fu, 0x00050051u, 0x00000006u, 0x00002093u, 0x00002090u, 0x00000000u, 0x000500c6u, + 0x00000006u, 0x00002094u, 0x00002093u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00002095u, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002094u, 0x0004003du, 0x000001afu, 0x00002096u, 0x00002095u, + 0x00040071u, 0x00000006u, 0x00002097u, 0x00002096u, 0x0004007cu, 0x00000008u, 0x00002098u, 0x00002097u, + 0x00050051u, 0x00000006u, 0x0000209bu, 0x00002090u, 0x00000001u, 0x000500c6u, 0x00000006u, 0x0000209cu, + 0x0000209bu, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x0000209du, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x0000209cu, 0x0004003du, 0x000001afu, 0x0000209eu, 0x0000209du, 0x00040071u, 0x00000006u, + 0x0000209fu, 0x0000209eu, 0x0004007cu, 0x00000008u, 0x000020a0u, 0x0000209fu, 0x000500aau, 0x00000058u, + 0x000020a3u, 0x00008583u, 0x00000196u, 0x000300f7u, 0x000020dau, 0x00000000u, 0x000400fau, 0x000020a3u, + 0x000020a4u, 0x000020b9u, 0x000200f8u, 0x000020b9u, 0x000500aau, 0x00000058u, 0x000020bcu, 0x00008583u, + 0x00000187u, 0x000300f7u, 0x000020d9u, 0x00000000u, 0x000400fau, 0x000020bcu, 0x000020bdu, 0x000020d4u, + 0x000200f8u, 0x000020d4u, 0x000500c3u, 0x00000008u, 0x000020d6u, 0x00002098u, 0x000001e2u, 0x000500c3u, + 0x00000008u, 0x000020d8u, 0x000020a0u, 0x000001e2u, 0x000200f9u, 0x000020d9u, 0x000200f8u, 0x000020bdu, + 0x00050051u, 0x00000006u, 0x000020bfu, 0x00002088u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x000020c0u, + 0x000020bfu, 0x00000333u, 0x0004007cu, 0x00000008u, 0x000020c1u, 0x000020c0u, 0x00050084u, 0x00000008u, + 0x000020c2u, 0x0000019fu, 0x000020c1u, 0x00050082u, 0x00000008u, 0x000020c3u, 0x000001fau, 0x000020c2u, + 0x000500c3u, 0x00000008u, 0x000020c5u, 0x00002098u, 0x000020c3u, 0x00050051u, 0x00000006u, 0x000020c7u, + 0x00002088u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x000020c8u, 0x000020c7u, 0x00000333u, 0x0004007cu, + 0x00000008u, 0x000020c9u, 0x000020c8u, 0x00050084u, 0x00000008u, 0x000020cau, 0x0000019fu, 0x000020c9u, + 0x00050082u, 0x00000008u, 0x000020cbu, 0x000001fau, 0x000020cau, 0x000500c3u, 0x00000008u, 0x000020cdu, + 0x000020a0u, 0x000020cbu, 0x000500c7u, 0x00000008u, 0x000020cfu, 0x000020c5u, 0x00000a61u, 0x00050084u, + 0x00000008u, 0x000020d0u, 0x000020cfu, 0x00000a63u, 0x000500c7u, 0x00000008u, 0x000020d2u, 0x000020cdu, + 0x00000a61u, 0x00050084u, 0x00000008u, 0x000020d3u, 0x000020d2u, 0x00000a63u, 0x000200f9u, 0x000020d9u, + 0x000200f8u, 0x000020d9u, 0x000700f5u, 0x00000008u, 0x00007fe9u, 0x000020d3u, 0x000020bdu, 0x000020d8u, + 0x000020d4u, 0x000700f5u, 0x00000008u, 0x00007fe7u, 0x000020d0u, 0x000020bdu, 0x000020d6u, 0x000020d4u, + 0x000200f9u, 0x000020dau, 0x000200f8u, 0x000020a4u, 0x00050051u, 0x00000006u, 0x000020a6u, 0x00002088u, + 0x00000000u, 0x000500c7u, 0x00000006u, 0x000020a7u, 0x000020a6u, 0x00000330u, 0x0004007cu, 0x00000008u, + 0x000020a8u, 0x000020a7u, 0x00050084u, 0x00000008u, 0x000020a9u, 0x0000019fu, 0x000020a8u, 0x00050082u, + 0x00000008u, 0x000020aau, 0x000001e2u, 0x000020a9u, 0x000500c3u, 0x00000008u, 0x000020acu, 0x00002098u, + 0x000020aau, 0x00050051u, 0x00000006u, 0x000020aeu, 0x00002088u, 0x00000001u, 0x000500c7u, 0x00000006u, + 0x000020afu, 0x000020aeu, 0x00000330u, 0x0004007cu, 0x00000008u, 0x000020b0u, 0x000020afu, 0x00050084u, + 0x00000008u, 0x000020b1u, 0x0000019fu, 0x000020b0u, 0x00050082u, 0x00000008u, 0x000020b2u, 0x000001e2u, + 0x000020b1u, 0x000500c3u, 0x00000008u, 0x000020b4u, 0x000020a0u, 0x000020b2u, 0x000500c7u, 0x00000008u, + 0x000020b6u, 0x000020acu, 0x000002f0u, 0x000500c7u, 0x00000008u, 0x000020b8u, 0x000020b4u, 0x000002f0u, + 0x000200f9u, 0x000020dau, 0x000200f8u, 0x000020dau, 0x000700f5u, 0x00000008u, 0x00007fe8u, 0x000020b8u, + 0x000020a4u, 0x00007fe9u, 0x000020d9u, 0x000700f5u, 0x00000008u, 0x00007fe6u, 0x000020b6u, 0x000020a4u, + 0x00007fe7u, 0x000020d9u, 0x000500c4u, 0x00000008u, 0x000020dcu, 0x00007fe6u, 0x000001e2u, 0x000500c5u, + 0x00000008u, 0x000020deu, 0x000020dcu, 0x00007fe8u, 0x000200f9u, 0x00002140u, 0x000200f8u, 0x00002140u, + 0x000700f5u, 0x00000008u, 0x00007feau, 0x000020deu, 0x000020dau, 0x00007febu, 0x0000213fu, 0x000200f9u, + 0x00001e6bu, 0x000200f8u, 0x00001e52u, 0x000500c3u, 0x00000008u, 0x00001e54u, 0x00001d36u, 0x00000196u, + 0x000500b1u, 0x00000058u, 0x00001eb9u, 0x00001e54u, 0x00000199u, 0x000300f7u, 0x00001ebfu, 0x00000000u, + 0x000400fau, 0x00001eb9u, 0x00001ebbu, 0x00001ebfu, 0x000200f8u, 0x00001ebbu, 0x000500abu, 0x00000058u, + 0x00001ebeu, 0x00008583u, 0x00000199u, 0x000200f9u, 0x00001ebfu, 0x000200f8u, 0x00001ebfu, 0x000700f5u, + 0x00000058u, 0x00001ec0u, 0x00001eb9u, 0x00001e52u, 0x00001ebeu, 0x00001ebbu, 0x000400a8u, 0x00000058u, + 0x00001ec2u, 0x00001a5au, 0x000500a7u, 0x00000058u, 0x00001ec3u, 0x00001ec0u, 0x00001ec2u, 0x0007000cu, + 0x00000008u, 0x00001ec6u, 0x00000001u, 0x00000027u, 0x00008583u, 0x00000199u, 0x000500aau, 0x00000058u, + 0x00001ec9u, 0x00008583u, 0x0000019cu, 0x000500a6u, 0x00000058u, 0x00001eccu, 0x00001ec9u, 0x00001a5au, + 0x000600a9u, 0x00000008u, 0x00001ecdu, 0x00001eccu, 0x0000099eu, 0x000009e0u, 0x000300f7u, 0x00001fafu, + 0x00000000u, 0x000400fau, 0x00001ec3u, 0x00001ecfu, 0x00001f4eu, 0x000200f8u, 0x00001f4eu, 0x00050051u, + 0x00000008u, 0x00001f51u, 0x00001e49u, 0x00000000u, 0x00050080u, 0x00000008u, 0x00001f52u, 0x00001f51u, + 0x00001e54u, 0x000500abu, 0x00000058u, 0x00001ff8u, 0x00001e0au, 0x00000187u, 0x000300f7u, 0x0000200eu, + 0x00000000u, 0x000400fau, 0x00001ff8u, 0x00001ff9u, 0x0000200eu, 0x000200f8u, 0x00001ff9u, 0x000500c4u, + 0x00000008u, 0x00001ffcu, 0x00000196u, 0x00001e0au, 0x000500c7u, 0x00000008u, 0x00001fffu, 0x00001e1eu, + 0x00000199u, 0x000500abu, 0x00000058u, 0x00002000u, 0x00001fffu, 0x00000187u, 0x000300f7u, 0x00002009u, + 0x00000000u, 0x000400fau, 0x00002000u, 0x00002001u, 0x00002009u, 0x000200f8u, 0x00002001u, 0x000500c7u, + 0x00000008u, 0x00002004u, 0x00001f52u, 0x00001ffcu, 0x00050082u, 0x00000008u, 0x00002005u, 0x00002004u, + 0x00000196u, 0x0007000cu, 0x00000008u, 0x00002006u, 0x00000001u, 0x0000002au, 0x00002005u, 0x00000187u, + 0x000500c6u, 0x00000008u, 0x00002008u, 0x00001f52u, 0x00002006u, 0x000200f9u, 0x00002009u, 0x000200f8u, + 0x00002009u, 0x000700f5u, 0x00000008u, 0x00007fedu, 0x00001f52u, 0x00001ff9u, 0x00002008u, 0x00002001u, + 0x00050082u, 0x00000008u, 0x0000200bu, 0x00001ffcu, 0x00000196u, 0x000500c7u, 0x00000008u, 0x0000200du, + 0x00007fedu, 0x0000200bu, 0x000200f9u, 0x0000200eu, 0x000200f8u, 0x0000200eu, 0x000700f5u, 0x00000008u, + 0x00007feeu, 0x00001f52u, 0x00001f4eu, 0x0000200du, 0x00002009u, 0x00050051u, 0x00000008u, 0x00001f5au, + 0x00001e49u, 0x00000001u, 0x000500abu, 0x00000058u, 0x00002015u, 0x00001e14u, 0x00000187u, 0x000300f7u, + 0x0000202bu, 0x00000000u, 0x000400fau, 0x00002015u, 0x00002016u, 0x0000202bu, 0x000200f8u, 0x00002016u, + 0x000500c4u, 0x00000008u, 0x00002019u, 0x00000196u, 0x00001e14u, 0x000500c7u, 0x00000008u, 0x0000201cu, + 0x00001e1eu, 0x000001e2u, 0x000500abu, 0x00000058u, 0x0000201du, 0x0000201cu, 0x00000187u, 0x000300f7u, + 0x00002026u, 0x00000000u, 0x000400fau, 0x0000201du, 0x0000201eu, 0x00002026u, 0x000200f8u, 0x0000201eu, + 0x000500c7u, 0x00000008u, 0x00002021u, 0x00001f5au, 0x00002019u, 0x00050082u, 0x00000008u, 0x00002022u, + 0x00002021u, 0x00000196u, 0x0007000cu, 0x00000008u, 0x00002023u, 0x00000001u, 0x0000002au, 0x00002022u, + 0x00000187u, 0x000500c6u, 0x00000008u, 0x00002025u, 0x00001f5au, 0x00002023u, 0x000200f9u, 0x00002026u, + 0x000200f8u, 0x00002026u, 0x000700f5u, 0x00000008u, 0x00007ff1u, 0x00001f5au, 0x00002016u, 0x00002025u, + 0x0000201eu, 0x00050082u, 0x00000008u, 0x00002028u, 0x00002019u, 0x00000196u, 0x000500c7u, 0x00000008u, + 0x0000202au, 0x00007ff1u, 0x00002028u, 0x000200f9u, 0x0000202bu, 0x000200f8u, 0x0000202bu, 0x000700f5u, + 0x00000008u, 0x00007ff2u, 0x00001f5au, 0x0000200eu, 0x0000202au, 0x00002026u, 0x0004007cu, 0x00000006u, + 0x00001f61u, 0x00007ff2u, 0x00050084u, 0x00000006u, 0x00001f62u, 0x00001df6u, 0x00001f61u, 0x00050080u, + 0x00000006u, 0x00001f63u, 0x00001df3u, 0x00001f62u, 0x00050084u, 0x00000006u, 0x00001f65u, 0x00001f63u, + 0x00000330u, 0x000500c4u, 0x00000008u, 0x00001f68u, 0x00007feeu, 0x00001ec6u, 0x0004007cu, 0x00000006u, + 0x00001f69u, 0x00001f68u, 0x00050080u, 0x00000006u, 0x00001f6au, 0x00001f65u, 0x00001f69u, 0x000500c7u, + 0x00000006u, 0x00001f6bu, 0x00001f6au, 0x00000a0cu, 0x000500c7u, 0x00000006u, 0x00001f6eu, 0x00001f61u, + 0x0000032cu, 0x00050084u, 0x00000006u, 0x00001f6fu, 0x00001f6eu, 0x000002c0u, 0x000500c6u, 0x00000006u, + 0x00001f71u, 0x00001f6bu, 0x00001f6fu, 0x000500c2u, 0x00000006u, 0x00001f73u, 0x00001f71u, 0x00000330u, + 0x0004007cu, 0x00000006u, 0x00001f75u, 0x00001ecdu, 0x000500c7u, 0x00000006u, 0x00001f77u, 0x00001f73u, + 0x00001f75u, 0x000500c6u, 0x00000006u, 0x00001f7au, 0x00001f77u, 0x0000032cu, 0x00080041u, 0x000001f4u, + 0x00001f7bu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00001f7au, 0x0004003du, 0x000001afu, + 0x00001f7cu, 0x00001f7bu, 0x00040071u, 0x00000006u, 0x00001f7du, 0x00001f7cu, 0x0004007cu, 0x00000008u, + 0x00001f7eu, 0x00001f7du, 0x000300f7u, 0x00001faeu, 0x00000000u, 0x000400fau, 0x00001a5au, 0x00001f80u, + 0x00001faeu, 0x000200f8u, 0x00001f80u, 0x000500aau, 0x00000058u, 0x00001f83u, 0x00008583u, 0x00000187u, + 0x000300f7u, 0x00001fa5u, 0x00000000u, 0x000400fau, 0x00001f83u, 0x00001f84u, 0x00001f97u, 0x000200f8u, + 0x00001f97u, 0x000500c7u, 0x00000006u, 0x00001f99u, 0x00001f71u, 0x00000330u, 0x00050084u, 0x00000006u, + 0x00001f9au, 0x000006beu, 0x00001f99u, 0x00050082u, 0x00000006u, 0x00001f9bu, 0x000002c0u, 0x00001f9au, + 0x000500c3u, 0x00000008u, 0x00001f9du, 0x00001f7eu, 0x00001f9bu, 0x000500c7u, 0x00000008u, 0x00001f9fu, + 0x00001f9du, 0x000002f0u, 0x000500c4u, 0x00000008u, 0x00001fa1u, 0x00001f9fu, 0x00000199u, 0x00050080u, + 0x00000008u, 0x00001fa4u, 0x00001fa1u, 0x00001e54u, 0x000200f9u, 0x00001fa5u, 0x000200f8u, 0x00001f84u, + 0x000500c7u, 0x00000006u, 0x00001f86u, 0x00001f71u, 0x00000333u, 0x00050084u, 0x00000006u, 0x00001f87u, + 0x000006beu, 0x00001f86u, 0x00050082u, 0x00000006u, 0x00001f88u, 0x00000ab4u, 0x00001f87u, 0x000500c3u, + 0x00000008u, 0x00001f8au, 0x00001f7eu, 0x00001f88u, 0x000500c7u, 0x00000008u, 0x00001f8cu, 0x00001f8au, + 0x00000a61u, 0x000500c4u, 0x00000008u, 0x00001f8fu, 0x00001e05u, 0x0000019fu, 0x000500c5u, 0x00000008u, + 0x00001f91u, 0x00001f8cu, 0x00001f8fu, 0x000500c4u, 0x00000008u, 0x00001f93u, 0x00001f91u, 0x00000199u, + 0x00050080u, 0x00000008u, 0x00001f96u, 0x00001f93u, 0x00001e54u, 0x000200f9u, 0x00001fa5u, 0x000200f8u, + 0x00001fa5u, 0x000700f5u, 0x00000008u, 0x00007ff3u, 0x00001f96u, 0x00001f84u, 0x00001fa4u, 0x00001f97u, + 0x000500c5u, 0x00000008u, 0x00001fa8u, 0x00007ff3u, 0x00000ad7u, 0x000500c6u, 0x00000008u, 0x00001fa9u, + 0x00001fa8u, 0x00000196u, 0x00080041u, 0x000001f4u, 0x00001faau, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00001fa9u, 0x0004003du, 0x000001afu, 0x00001fabu, 0x00001faau, 0x00040071u, 0x00000006u, + 0x00001facu, 0x00001fabu, 0x0004007cu, 0x00000008u, 0x00001fadu, 0x00001facu, 0x000200f9u, 0x00001faeu, + 0x000200f8u, 0x00001faeu, 0x000700f5u, 0x00000008u, 0x00007fffu, 0x00001f7eu, 0x0000202bu, 0x00001fadu, + 0x00001fa5u, 0x000200f9u, 0x00001fafu, 0x000200f8u, 0x00001ecfu, 0x00050084u, 0x00000008u, 0x00001ed1u, + 0x00000199u, 0x00001e54u, 0x00050051u, 0x00000008u, 0x00001ed3u, 0x00001e49u, 0x00000000u, 0x00050080u, + 0x00000008u, 0x00001ed4u, 0x00001ed3u, 0x00001ed1u, 0x00050050u, 0x0000004du, 0x00001fb6u, 0x00001ed4u, + 0x00001ed4u, 0x00050080u, 0x0000004du, 0x00001fb7u, 0x00001fb6u, 0x00000636u, 0x000500abu, 0x00000058u, + 0x00001fbau, 0x00001e0au, 0x00000187u, 0x000300f7u, 0x00001fd4u, 0x00000000u, 0x000400fau, 0x00001fbau, + 0x00001fbbu, 0x00001fd4u, 0x000200f8u, 0x00001fbbu, 0x000500c4u, 0x00000008u, 0x00001fbeu, 0x00000196u, + 0x00001e0au, 0x000500c7u, 0x00000008u, 0x00001fc1u, 0x00001e1eu, 0x00000199u, 0x000500abu, 0x00000058u, + 0x00001fc2u, 0x00001fc1u, 0x00000187u, 0x000300f7u, 0x00001fceu, 0x00000000u, 0x000400fau, 0x00001fc2u, + 0x00001fc3u, 0x00001fceu, 0x000200f8u, 0x00001fc3u, 0x00050050u, 0x0000004du, 0x00001fc6u, 0x00001fbeu, + 0x00001fbeu, 0x000500c7u, 0x0000004du, 0x00001fc7u, 0x00001fb7u, 0x00001fc6u, 0x00050082u, 0x0000004du, + 0x00001fc9u, 0x00001fc7u, 0x00008566u, 0x0007000cu, 0x0000004du, 0x00001fcbu, 0x00000001u, 0x0000002au, + 0x00001fc9u, 0x0000048au, 0x000500c6u, 0x0000004du, 0x00001fcdu, 0x00001fb7u, 0x00001fcbu, 0x000200f9u, + 0x00001fceu, 0x000200f8u, 0x00001fceu, 0x000700f5u, 0x0000004du, 0x00007ff4u, 0x00001fb7u, 0x00001fbbu, + 0x00001fcdu, 0x00001fc3u, 0x00050082u, 0x00000008u, 0x00001fd0u, 0x00001fbeu, 0x00000196u, 0x00050050u, + 0x0000004du, 0x00001fd2u, 0x00001fd0u, 0x00001fd0u, 0x000500c7u, 0x0000004du, 0x00001fd3u, 0x00007ff4u, + 0x00001fd2u, 0x000200f9u, 0x00001fd4u, 0x000200f8u, 0x00001fd4u, 0x000700f5u, 0x0000004du, 0x00007ff5u, + 0x00001fb7u, 0x00001ecfu, 0x00001fd3u, 0x00001fceu, 0x00050051u, 0x00000008u, 0x00001edcu, 0x00001e49u, + 0x00000001u, 0x000500abu, 0x00000058u, 0x00001fdbu, 0x00001e14u, 0x00000187u, 0x000300f7u, 0x00001ff1u, + 0x00000000u, 0x000400fau, 0x00001fdbu, 0x00001fdcu, 0x00001ff1u, 0x000200f8u, 0x00001fdcu, 0x000500c4u, + 0x00000008u, 0x00001fdfu, 0x00000196u, 0x00001e14u, 0x000500c7u, 0x00000008u, 0x00001fe2u, 0x00001e1eu, + 0x000001e2u, 0x000500abu, 0x00000058u, 0x00001fe3u, 0x00001fe2u, 0x00000187u, 0x000300f7u, 0x00001fecu, + 0x00000000u, 0x000400fau, 0x00001fe3u, 0x00001fe4u, 0x00001fecu, 0x000200f8u, 0x00001fe4u, 0x000500c7u, + 0x00000008u, 0x00001fe7u, 0x00001edcu, 0x00001fdfu, 0x00050082u, 0x00000008u, 0x00001fe8u, 0x00001fe7u, + 0x00000196u, 0x0007000cu, 0x00000008u, 0x00001fe9u, 0x00000001u, 0x0000002au, 0x00001fe8u, 0x00000187u, + 0x000500c6u, 0x00000008u, 0x00001febu, 0x00001edcu, 0x00001fe9u, 0x000200f9u, 0x00001fecu, 0x000200f8u, + 0x00001fecu, 0x000700f5u, 0x00000008u, 0x00007ff8u, 0x00001edcu, 0x00001fdcu, 0x00001febu, 0x00001fe4u, + 0x00050082u, 0x00000008u, 0x00001feeu, 0x00001fdfu, 0x00000196u, 0x000500c7u, 0x00000008u, 0x00001ff0u, + 0x00007ff8u, 0x00001feeu, 0x000200f9u, 0x00001ff1u, 0x000200f8u, 0x00001ff1u, 0x000700f5u, 0x00000008u, + 0x00007ff9u, 0x00001edcu, 0x00001fd4u, 0x00001ff0u, 0x00001fecu, 0x0004007cu, 0x00000006u, 0x00001ee3u, + 0x00007ff9u, 0x00050084u, 0x00000006u, 0x00001ee4u, 0x00001df6u, 0x00001ee3u, 0x00050080u, 0x00000006u, + 0x00001ee5u, 0x00001df3u, 0x00001ee4u, 0x00050084u, 0x00000006u, 0x00001ee7u, 0x00001ee5u, 0x00000330u, + 0x00050050u, 0x0000004du, 0x00001eeau, 0x00001ec6u, 0x00001ec6u, 0x000500c4u, 0x0000004du, 0x00001eebu, + 0x00007ff5u, 0x00001eeau, 0x0004007cu, 0x000000a0u, 0x00001eecu, 0x00001eebu, 0x00050050u, 0x000000a0u, + 0x00001eedu, 0x00001ee7u, 0x00001ee7u, 0x00050080u, 0x000000a0u, 0x00001eeeu, 0x00001eedu, 0x00001eecu, + 0x000500c7u, 0x000000a0u, 0x00001ef0u, 0x00001eeeu, 0x0000856au, 0x000500c7u, 0x00000006u, 0x00001ef3u, + 0x00001ee3u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00001ef4u, 0x00001ef3u, 0x000002c0u, 0x00050050u, + 0x000000a0u, 0x00001ef6u, 0x00001ef4u, 0x00001ef4u, 0x000500c6u, 0x000000a0u, 0x00001ef7u, 0x00001ef0u, + 0x00001ef6u, 0x000500c2u, 0x000000a0u, 0x00001efau, 0x00001ef7u, 0x0000856bu, 0x0004007cu, 0x00000006u, + 0x00001efcu, 0x00001ecdu, 0x00050050u, 0x000000a0u, 0x00001efeu, 0x00001efcu, 0x00001efcu, 0x000500c7u, + 0x000000a0u, 0x00001effu, 0x00001efau, 0x00001efeu, 0x00050051u, 0x00000006u, 0x00001f02u, 0x00001effu, + 0x00000000u, 0x000500c6u, 0x00000006u, 0x00001f03u, 0x00001f02u, 0x0000032cu, 0x00080041u, 0x000001f4u, + 0x00001f04u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00001f03u, 0x0004003du, 0x000001afu, + 0x00001f05u, 0x00001f04u, 0x00040071u, 0x00000006u, 0x00001f06u, 0x00001f05u, 0x0004007cu, 0x00000008u, + 0x00001f07u, 0x00001f06u, 0x00050051u, 0x00000006u, 0x00001f0au, 0x00001effu, 0x00000001u, 0x000500c6u, + 0x00000006u, 0x00001f0bu, 0x00001f0au, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00001f0cu, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00001f0bu, 0x0004003du, 0x000001afu, 0x00001f0du, 0x00001f0cu, + 0x00040071u, 0x00000006u, 0x00001f0eu, 0x00001f0du, 0x0004007cu, 0x00000008u, 0x00001f0fu, 0x00001f0eu, + 0x000500aau, 0x00000058u, 0x00001f12u, 0x00008583u, 0x00000196u, 0x000300f7u, 0x00001f49u, 0x00000000u, + 0x000400fau, 0x00001f12u, 0x00001f13u, 0x00001f28u, 0x000200f8u, 0x00001f28u, 0x000500aau, 0x00000058u, + 0x00001f2bu, 0x00008583u, 0x00000187u, 0x000300f7u, 0x00001f48u, 0x00000000u, 0x000400fau, 0x00001f2bu, + 0x00001f2cu, 0x00001f43u, 0x000200f8u, 0x00001f43u, 0x000500c3u, 0x00000008u, 0x00001f45u, 0x00001f07u, + 0x000001e2u, 0x000500c3u, 0x00000008u, 0x00001f47u, 0x00001f0fu, 0x000001e2u, 0x000200f9u, 0x00001f48u, + 0x000200f8u, 0x00001f2cu, 0x00050051u, 0x00000006u, 0x00001f2eu, 0x00001ef7u, 0x00000000u, 0x000500c7u, + 0x00000006u, 0x00001f2fu, 0x00001f2eu, 0x00000333u, 0x0004007cu, 0x00000008u, 0x00001f30u, 0x00001f2fu, + 0x00050084u, 0x00000008u, 0x00001f31u, 0x0000019fu, 0x00001f30u, 0x00050082u, 0x00000008u, 0x00001f32u, + 0x000001fau, 0x00001f31u, 0x000500c3u, 0x00000008u, 0x00001f34u, 0x00001f07u, 0x00001f32u, 0x00050051u, + 0x00000006u, 0x00001f36u, 0x00001ef7u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x00001f37u, 0x00001f36u, + 0x00000333u, 0x0004007cu, 0x00000008u, 0x00001f38u, 0x00001f37u, 0x00050084u, 0x00000008u, 0x00001f39u, + 0x0000019fu, 0x00001f38u, 0x00050082u, 0x00000008u, 0x00001f3au, 0x000001fau, 0x00001f39u, 0x000500c3u, + 0x00000008u, 0x00001f3cu, 0x00001f0fu, 0x00001f3au, 0x000500c7u, 0x00000008u, 0x00001f3eu, 0x00001f34u, + 0x00000a61u, 0x00050084u, 0x00000008u, 0x00001f3fu, 0x00001f3eu, 0x00000a63u, 0x000500c7u, 0x00000008u, + 0x00001f41u, 0x00001f3cu, 0x00000a61u, 0x00050084u, 0x00000008u, 0x00001f42u, 0x00001f41u, 0x00000a63u, + 0x000200f9u, 0x00001f48u, 0x000200f8u, 0x00001f48u, 0x000700f5u, 0x00000008u, 0x00007ffdu, 0x00001f42u, + 0x00001f2cu, 0x00001f47u, 0x00001f43u, 0x000700f5u, 0x00000008u, 0x00007ffbu, 0x00001f3fu, 0x00001f2cu, + 0x00001f45u, 0x00001f43u, 0x000200f9u, 0x00001f49u, 0x000200f8u, 0x00001f13u, 0x00050051u, 0x00000006u, + 0x00001f15u, 0x00001ef7u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x00001f16u, 0x00001f15u, 0x00000330u, + 0x0004007cu, 0x00000008u, 0x00001f17u, 0x00001f16u, 0x00050084u, 0x00000008u, 0x00001f18u, 0x0000019fu, + 0x00001f17u, 0x00050082u, 0x00000008u, 0x00001f19u, 0x000001e2u, 0x00001f18u, 0x000500c3u, 0x00000008u, + 0x00001f1bu, 0x00001f07u, 0x00001f19u, 0x00050051u, 0x00000006u, 0x00001f1du, 0x00001ef7u, 0x00000001u, + 0x000500c7u, 0x00000006u, 0x00001f1eu, 0x00001f1du, 0x00000330u, 0x0004007cu, 0x00000008u, 0x00001f1fu, + 0x00001f1eu, 0x00050084u, 0x00000008u, 0x00001f20u, 0x0000019fu, 0x00001f1fu, 0x00050082u, 0x00000008u, + 0x00001f21u, 0x000001e2u, 0x00001f20u, 0x000500c3u, 0x00000008u, 0x00001f23u, 0x00001f0fu, 0x00001f21u, + 0x000500c7u, 0x00000008u, 0x00001f25u, 0x00001f1bu, 0x000002f0u, 0x000500c7u, 0x00000008u, 0x00001f27u, + 0x00001f23u, 0x000002f0u, 0x000200f9u, 0x00001f49u, 0x000200f8u, 0x00001f49u, 0x000700f5u, 0x00000008u, + 0x00007ffcu, 0x00001f27u, 0x00001f13u, 0x00007ffdu, 0x00001f48u, 0x000700f5u, 0x00000008u, 0x00007ffau, + 0x00001f25u, 0x00001f13u, 0x00007ffbu, 0x00001f48u, 0x000500c4u, 0x00000008u, 0x00001f4bu, 0x00007ffau, + 0x000001e2u, 0x000500c5u, 0x00000008u, 0x00001f4du, 0x00001f4bu, 0x00007ffcu, 0x000200f9u, 0x00001fafu, + 0x000200f8u, 0x00001fafu, 0x000700f5u, 0x00000008u, 0x00007ffeu, 0x00001f4du, 0x00001f49u, 0x00007fffu, + 0x00001faeu, 0x000500c7u, 0x00000008u, 0x00001e5cu, 0x00001d36u, 0x00000196u, 0x00050084u, 0x00000008u, + 0x00001e5du, 0x000001e2u, 0x00001e5cu, 0x00050082u, 0x00000008u, 0x00001e5eu, 0x000001e2u, 0x00001e5du, + 0x000500c3u, 0x00000008u, 0x00001e60u, 0x00007ffeu, 0x00001e5eu, 0x000500c7u, 0x00000008u, 0x00001e62u, + 0x00001e60u, 0x000002f0u, 0x000200f9u, 0x00001e6bu, 0x000200f8u, 0x00001e6bu, 0x000700f5u, 0x00000008u, + 0x00008001u, 0x00001e62u, 0x00001fafu, 0x00007feau, 0x00002140u, 0x000200f9u, 0x00001e6cu, 0x000200f8u, + 0x00001e4du, 0x000200f9u, 0x00001e6cu, 0x000200f8u, 0x00001e6cu, 0x000700f5u, 0x00000008u, 0x00008000u, + 0x00000187u, 0x00001e4du, 0x00008001u, 0x00001e6bu, 0x000300f7u, 0x00001ae7u, 0x00000000u, 0x000400fau, + 0x00001a84u, 0x00001ae3u, 0x00001ae7u, 0x000200f8u, 0x00001ae3u, 0x000500aau, 0x00000058u, 0x00001ae6u, + 0x00001e4bu, 0x00000199u, 0x000200f9u, 0x00001ae7u, 0x000200f8u, 0x00001ae7u, 0x000700f5u, 0x00000058u, + 0x00001ae8u, 0x00001a84u, 0x00001e6cu, 0x00001ae6u, 0x00001ae3u, 0x000300f7u, 0x00001aedu, 0x00000000u, + 0x000400fau, 0x00001ae8u, 0x00001ae9u, 0x00001aedu, 0x000200f8u, 0x00001ae9u, 0x000500c7u, 0x00000008u, + 0x00001aebu, 0x00008000u, 0x00000196u, 0x000500aau, 0x00000058u, 0x00001aecu, 0x00001aebu, 0x00000187u, + 0x000200f9u, 0x00001aedu, 0x000200f8u, 0x00001aedu, 0x000700f5u, 0x00000058u, 0x00001aeeu, 0x00001ae8u, + 0x00001ae7u, 0x00001aecu, 0x00001ae9u, 0x000300f7u, 0x00001af0u, 0x00000000u, 0x000400fau, 0x00001aeeu, + 0x00001aefu, 0x00001af0u, 0x000200f8u, 0x00001aefu, 0x000200f9u, 0x00001c8bu, 0x000200f8u, 0x00001af0u, + 0x000200f9u, 0x00001c8bu, 0x000200f8u, 0x00001b01u, 0x000500c4u, 0x00000008u, 0x000021cau, 0x00006634u, + 0x0000019cu, 0x00070050u, 0x00000009u, 0x000021cbu, 0x000021cau, 0x000021cau, 0x000021cau, 0x000021cau, + 0x00050080u, 0x00000009u, 0x000021ccu, 0x000002f5u, 0x000021cbu, 0x0009004fu, 0x00000009u, 0x000021cfu, + 0x00001ca8u, 0x00001ca8u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000001u, 0x000500b1u, 0x000002fau, + 0x000021d0u, 0x000021ccu, 0x000021cfu, 0x0009004fu, 0x00000009u, 0x000021d3u, 0x00001ca8u, 0x00001ca8u, + 0x00000002u, 0x00000002u, 0x00000003u, 0x00000003u, 0x000500b1u, 0x000002fau, 0x000021d4u, 0x000021ccu, + 0x000021d3u, 0x0009004fu, 0x00000009u, 0x000021d7u, 0x00001cadu, 0x00001cadu, 0x00000000u, 0x00000000u, + 0x00000001u, 0x00000001u, 0x000500afu, 0x000002fau, 0x000021d8u, 0x000021ccu, 0x000021d7u, 0x0009004fu, + 0x00000009u, 0x000021dbu, 0x00001cadu, 0x00001cadu, 0x00000002u, 0x00000002u, 0x00000003u, 0x00000003u, + 0x000500afu, 0x000002fau, 0x000021dcu, 0x000021ccu, 0x000021dbu, 0x000600a9u, 0x00000009u, 0x000021deu, + 0x000021d0u, 0x00000313u, 0x00000312u, 0x000600a9u, 0x00000009u, 0x000021e0u, 0x000021d8u, 0x00000313u, + 0x00000312u, 0x000500c5u, 0x00000009u, 0x000021e1u, 0x000021deu, 0x000021e0u, 0x000600a9u, 0x00000009u, + 0x000021e3u, 0x000021d4u, 0x00000313u, 0x00000312u, 0x000600a9u, 0x00000009u, 0x000021e5u, 0x000021dcu, + 0x00000313u, 0x00000312u, 0x000500c5u, 0x00000009u, 0x000021e6u, 0x000021e3u, 0x000021e5u, 0x00050084u, + 0x00000009u, 0x000021e8u, 0x000021e1u, 0x00000320u, 0x00050084u, 0x00000009u, 0x000021eau, 0x000021e6u, + 0x00000326u, 0x00050080u, 0x00000009u, 0x000021ebu, 0x000021e8u, 0x000021eau, 0x00050051u, 0x00000008u, + 0x000021edu, 0x000021ebu, 0x00000000u, 0x00050051u, 0x00000008u, 0x000021efu, 0x000021ebu, 0x00000001u, + 0x000500c5u, 0x00000008u, 0x000021f0u, 0x000021edu, 0x000021efu, 0x00050051u, 0x00000008u, 0x000021f2u, + 0x000021ebu, 0x00000002u, 0x00050051u, 0x00000008u, 0x000021f4u, 0x000021ebu, 0x00000003u, 0x000500c5u, + 0x00000008u, 0x000021f5u, 0x000021f2u, 0x000021f4u, 0x000500c5u, 0x00000008u, 0x000021f6u, 0x000021f0u, + 0x000021f5u, 0x000400c8u, 0x00000008u, 0x000021f8u, 0x000021f6u, 0x000500c7u, 0x00000008u, 0x000021f9u, + 0x000021f8u, 0x000002f0u, 0x000500aau, 0x00000058u, 0x00001b09u, 0x000021f9u, 0x00000187u, 0x000300f7u, + 0x00001b0bu, 0x00000000u, 0x000400fau, 0x00001b09u, 0x00001b0au, 0x00001b0bu, 0x000200f8u, 0x00001b0au, + 0x000200f9u, 0x00001c8bu, 0x000200f8u, 0x00001b0bu, 0x000400cdu, 0x00000008u, 0x00001b0du, 0x000021f9u, + 0x000400a8u, 0x00000058u, 0x00001b0fu, 0x00001a75u, 0x000300f7u, 0x00001b14u, 0x00000000u, 0x000400fau, + 0x00001b0fu, 0x00001b10u, 0x00001b14u, 0x000200f8u, 0x00001b10u, 0x000500c7u, 0x00000008u, 0x00001b12u, + 0x000021f9u, 0x00000196u, 0x000500aau, 0x00000058u, 0x00001b13u, 0x00001b12u, 0x00000187u, 0x000200f9u, + 0x00001b14u, 0x000200f8u, 0x00001b14u, 0x000700f5u, 0x00000058u, 0x00001b15u, 0x00001b0fu, 0x00001b0bu, + 0x00001b13u, 0x00001b10u, 0x000300f7u, 0x00001b17u, 0x00000000u, 0x000400fau, 0x00001b15u, 0x00001b16u, + 0x00001b17u, 0x000200f8u, 0x00001b16u, 0x000200f9u, 0x00001c8bu, 0x000200f8u, 0x00001b17u, 0x00070041u, + 0x000001b8u, 0x000021fdu, 0x000001b6u, 0x00000187u, 0x000018c1u, 0x00000187u, 0x0004003du, 0x000001aeu, + 0x000021feu, 0x000021fdu, 0x00040071u, 0x000001bbu, 0x000021ffu, 0x000021feu, 0x0004007cu, 0x00000009u, + 0x00002200u, 0x000021ffu, 0x00070041u, 0x000001b8u, 0x00002202u, 0x000001b6u, 0x00000187u, 0x000018c1u, + 0x00000196u, 0x0004003du, 0x000001aeu, 0x00002203u, 0x00002202u, 0x00040071u, 0x000001bbu, 0x00002204u, + 0x00002203u, 0x0004007cu, 0x00000009u, 0x00002205u, 0x00002204u, 0x00070041u, 0x000001b8u, 0x00002207u, + 0x000001b6u, 0x00000187u, 0x000018c1u, 0x00000199u, 0x0004003du, 0x000001aeu, 0x00002208u, 0x00002207u, + 0x00040071u, 0x000001bbu, 0x00002209u, 0x00002208u, 0x0004007cu, 0x00000009u, 0x0000220au, 0x00002209u, + 0x00070041u, 0x000001b8u, 0x0000220cu, 0x000001b6u, 0x00000187u, 0x000018c1u, 0x0000019cu, 0x0004003du, + 0x000001aeu, 0x0000220du, 0x0000220cu, 0x00040071u, 0x000001bbu, 0x0000220eu, 0x0000220du, 0x0004007cu, + 0x00000009u, 0x0000220fu, 0x0000220eu, 0x00070041u, 0x000001b8u, 0x00002211u, 0x000001b6u, 0x00000187u, + 0x000018c1u, 0x0000019fu, 0x0004003du, 0x000001aeu, 0x00002212u, 0x00002211u, 0x00040071u, 0x000001bbu, + 0x00002213u, 0x00002212u, 0x0004007cu, 0x00000009u, 0x00002214u, 0x00002213u, 0x00070041u, 0x000001b8u, + 0x00002216u, 0x000001b6u, 0x00000187u, 0x000018c1u, 0x000001a2u, 0x0004003du, 0x000001aeu, 0x00002217u, + 0x00002216u, 0x00040071u, 0x000001bbu, 0x00002218u, 0x00002217u, 0x0004007cu, 0x00000009u, 0x00002219u, + 0x00002218u, 0x00070041u, 0x000001b8u, 0x0000221bu, 0x000001b6u, 0x00000187u, 0x000018c1u, 0x000001a5u, + 0x0004003du, 0x000001aeu, 0x0000221cu, 0x0000221bu, 0x00040071u, 0x000001bbu, 0x0000221du, 0x0000221cu, + 0x0004007cu, 0x00000009u, 0x0000221eu, 0x0000221du, 0x00070041u, 0x000001b8u, 0x00002220u, 0x000001b6u, + 0x00000187u, 0x000018c1u, 0x000001a8u, 0x0004003du, 0x000001aeu, 0x00002221u, 0x00002220u, 0x00040071u, + 0x000001bbu, 0x00002222u, 0x00002221u, 0x0004007cu, 0x00000009u, 0x00002223u, 0x00002222u, 0x00070041u, + 0x000001b8u, 0x0000222au, 0x000001b6u, 0x00000187u, 0x000018c1u, 0x000001e8u, 0x0004003du, 0x000001aeu, + 0x0000222bu, 0x0000222au, 0x00040071u, 0x000001bbu, 0x0000222cu, 0x0000222bu, 0x0004007cu, 0x00000009u, + 0x0000222du, 0x0000222cu, 0x00070041u, 0x000001fbu, 0x0000223cu, 0x000001b6u, 0x00000187u, 0x000018c1u, + 0x00000201u, 0x0004003du, 0x000001adu, 0x0000223du, 0x0000223cu, 0x00040071u, 0x00000006u, 0x0000223eu, + 0x0000223du, 0x0004007cu, 0x00000008u, 0x0000223fu, 0x0000223eu, 0x00070041u, 0x00000208u, 0x00002241u, + 0x000001b6u, 0x00000187u, 0x000018c1u, 0x00000207u, 0x0004003du, 0x000001b1u, 0x00002242u, 0x00002241u, + 0x00040072u, 0x00000009u, 0x00002243u, 0x00002242u, 0x00050082u, 0x00000008u, 0x00001b1du, 0x00006634u, + 0x00001cb0u, 0x000600a9u, 0x00000008u, 0x00001b1fu, 0x00001ab0u, 0x00000196u, 0x00000537u, 0x000500c7u, + 0x00000009u, 0x0000224eu, 0x00001cc9u, 0x00008563u, 0x00070050u, 0x00000009u, 0x0000224fu, 0x000004cfu, + 0x000004cfu, 0x000004cfu, 0x000004cfu, 0x000500c3u, 0x00000009u, 0x00002250u, 0x0000224eu, 0x0000224fu, + 0x00070050u, 0x00000009u, 0x00002252u, 0x00001b1du, 0x00001b1du, 0x00001b1du, 0x00001b1du, 0x00050084u, + 0x00000009u, 0x00002253u, 0x00002250u, 0x00002252u, 0x00050080u, 0x00000009u, 0x00002255u, 0x00001ca0u, + 0x00002253u, 0x000500c3u, 0x00000009u, 0x00002258u, 0x00002255u, 0x00008564u, 0x0006000cu, 0x00000008u, + 0x0000225fu, 0x00000001u, 0x00000049u, 0x000021f9u, 0x000500c3u, 0x00000008u, 0x00002261u, 0x0000225fu, + 0x00000196u, 0x000500c7u, 0x00000008u, 0x00002263u, 0x0000225fu, 0x00000196u, 0x000500c4u, 0x00000008u, + 0x00002264u, 0x00002263u, 0x00000196u, 0x000500c7u, 0x00000008u, 0x00002266u, 0x00002261u, 0x00000196u, + 0x00050080u, 0x00000008u, 0x00002267u, 0x00002264u, 0x00002266u, 0x00070050u, 0x00000009u, 0x00002269u, + 0x000004edu, 0x000004edu, 0x000004edu, 0x000004edu, 0x000500c4u, 0x00000009u, 0x0000226au, 0x00002258u, + 0x00002269u, 0x000500c3u, 0x00000009u, 0x0000226eu, 0x00001cc9u, 0x00008564u, 0x00070050u, 0x00000009u, + 0x00002274u, 0x00002267u, 0x00002267u, 0x00002267u, 0x00002267u, 0x00050084u, 0x00000009u, 0x00002275u, + 0x00002274u, 0x0000226eu, 0x000500c3u, 0x00000009u, 0x00002279u, 0x00001ccdu, 0x00008564u, 0x00070050u, + 0x00000009u, 0x0000227fu, 0x00002261u, 0x00002261u, 0x00002261u, 0x00002261u, 0x00050084u, 0x00000009u, + 0x00002280u, 0x0000227fu, 0x00002279u, 0x00050080u, 0x00000009u, 0x00002281u, 0x00002275u, 0x00002280u, + 0x00050080u, 0x00000009u, 0x00002283u, 0x0000226au, 0x00002281u, 0x00070050u, 0x00000009u, 0x00002285u, + 0x0000050au, 0x0000050au, 0x0000050au, 0x0000050au, 0x000500c3u, 0x00000009u, 0x00002286u, 0x00002283u, + 0x00002285u, 0x00050082u, 0x00000009u, 0x00002297u, 0x00002286u, 0x00008565u, 0x000600cau, 0x00000009u, + 0x00002299u, 0x00002297u, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, 0x0000229cu, 0x00002299u, + 0x00008565u, 0x0008000cu, 0x00000009u, 0x0000229eu, 0x00000001u, 0x0000002du, 0x0000229cu, 0x00000312u, + 0x00000346u, 0x000500a7u, 0x00000058u, 0x00001b2bu, 0x000016b7u, 0x00001a96u, 0x000300f7u, 0x00001b34u, + 0x00000000u, 0x000400fau, 0x00001b2bu, 0x00001b2cu, 0x00001b34u, 0x000200f8u, 0x00001b2cu, 0x000500c7u, + 0x00000006u, 0x00001b2eu, 0x00001a0eu, 0x0000037du, 0x000500abu, 0x00000058u, 0x00001b2fu, 0x00001b2eu, + 0x000002d9u, 0x000300f7u, 0x00001b33u, 0x00000000u, 0x000400fau, 0x00001b2fu, 0x00001b30u, 0x00001b33u, + 0x000200f8u, 0x00001b30u, 0x00050084u, 0x00000008u, 0x00001b32u, 0x00001b1fu, 0x00000596u, 0x000200f9u, + 0x00001b33u, 0x000200f8u, 0x00001b33u, 0x000700f5u, 0x00000008u, 0x0000663au, 0x00001b1fu, 0x00001b2cu, + 0x00001b32u, 0x00001b30u, 0x000200f9u, 0x00001b34u, 0x000200f8u, 0x00001b34u, 0x000700f5u, 0x00000008u, + 0x00006639u, 0x00001b1fu, 0x00001b17u, 0x0000663au, 0x00001b33u, 0x0008004fu, 0x00000052u, 0x000022b7u, + 0x00001ca3u, 0x00001ca3u, 0x00000000u, 0x00000001u, 0x00000003u, 0x0008004fu, 0x00000052u, 0x000022b9u, + 0x00001cd1u, 0x00001cd1u, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, 0x00000052u, 0x000022bbu, + 0x000022b9u, 0x00008561u, 0x00060050u, 0x00000052u, 0x000022bcu, 0x000004cfu, 0x000004cfu, 0x000004cfu, + 0x000500c3u, 0x00000052u, 0x000022bdu, 0x000022bbu, 0x000022bcu, 0x00060050u, 0x00000052u, 0x000022bfu, + 0x00001b1du, 0x00001b1du, 0x00001b1du, 0x00050084u, 0x00000052u, 0x000022c0u, 0x000022bdu, 0x000022bfu, + 0x00050080u, 0x00000052u, 0x000022c1u, 0x000022b7u, 0x000022c0u, 0x000300f7u, 0x000022e6u, 0x00000000u, + 0x000400fau, 0x00001a96u, 0x000022c3u, 0x000022e6u, 0x000200f8u, 0x000022c3u, 0x00060050u, 0x00000052u, + 0x000022ccu, 0x00006639u, 0x00006639u, 0x00006639u, 0x00050084u, 0x00000052u, 0x000022cdu, 0x000022ccu, + 0x000022bdu, 0x00050080u, 0x00000052u, 0x000022ceu, 0x000022c1u, 0x000022cdu, 0x000300f7u, 0x000022e5u, + 0x00000000u, 0x000400fau, 0x00000597u, 0x000022cfu, 0x000022dcu, 0x000200f8u, 0x000022dcu, 0x0008004fu, + 0x00000052u, 0x000022dfu, 0x00001cd5u, 0x00001cd5u, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, + 0x00000052u, 0x000022e1u, 0x000022dfu, 0x00008567u, 0x000500c3u, 0x00000052u, 0x000022e3u, 0x000022e1u, + 0x000022bcu, 0x00050080u, 0x00000052u, 0x000022e4u, 0x000022c1u, 0x000022e3u, 0x000200f9u, 0x000022e5u, + 0x000200f8u, 0x000022cfu, 0x0006000cu, 0x00000008u, 0x000022d2u, 0x00000001u, 0x00000005u, 0x00006639u, + 0x0008004fu, 0x00000052u, 0x000022d4u, 0x00001cd5u, 0x00001cd5u, 0x00000000u, 0x00000001u, 0x00000003u, + 0x000500c7u, 0x00000052u, 0x000022d6u, 0x000022d4u, 0x00008567u, 0x000500c3u, 0x00000052u, 0x000022d8u, + 0x000022d6u, 0x000022bcu, 0x00060050u, 0x00000052u, 0x000022d9u, 0x000022d2u, 0x000022d2u, 0x000022d2u, + 0x00050084u, 0x00000052u, 0x000022dau, 0x000022d9u, 0x000022d8u, 0x00050080u, 0x00000052u, 0x000022dbu, + 0x000022c1u, 0x000022dau, 0x000200f9u, 0x000022e5u, 0x000200f8u, 0x000022e5u, 0x000700f5u, 0x00000052u, + 0x00006651u, 0x000022dbu, 0x000022cfu, 0x000022e4u, 0x000022dcu, 0x000200f9u, 0x000022e6u, 0x000200f8u, + 0x000022e6u, 0x000700f5u, 0x00000052u, 0x00006648u, 0x00006644u, 0x00001b34u, 0x00006651u, 0x000022e5u, + 0x000700f5u, 0x00000052u, 0x0000663du, 0x00006644u, 0x00001b34u, 0x000022ceu, 0x000022e5u, 0x000300f7u, + 0x0000230eu, 0x00000000u, 0x000400fau, 0x00001a69u, 0x000022e8u, 0x000022feu, 0x000200f8u, 0x000022feu, + 0x000500c3u, 0x00000052u, 0x00002301u, 0x000022c1u, 0x00008562u, 0x0007004fu, 0x0000004du, 0x000024d8u, + 0x00002301u, 0x00002301u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x0000230du, 0x00000000u, 0x000400fau, + 0x00001a96u, 0x00002304u, 0x0000230du, 0x000200f8u, 0x00002304u, 0x000500c3u, 0x00000052u, 0x00002307u, + 0x0000663du, 0x00008562u, 0x0007004fu, 0x0000004du, 0x000024dcu, 0x00002307u, 0x00002307u, 0x00000000u, + 0x00000001u, 0x000500c3u, 0x00000052u, 0x0000230bu, 0x00006648u, 0x00008562u, 0x0007004fu, 0x0000004du, + 0x000024e0u, 0x0000230bu, 0x0000230bu, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000230du, 0x000200f8u, + 0x0000230du, 0x000700f5u, 0x0000004du, 0x000066f8u, 0x000066cfu, 0x000022feu, 0x000024e0u, 0x00002304u, + 0x000700f5u, 0x0000004du, 0x000066e2u, 0x000066cfu, 0x000022feu, 0x000024dcu, 0x00002304u, 0x000200f9u, + 0x0000230eu, 0x000200f8u, 0x000022e8u, 0x000500c3u, 0x00000052u, 0x000022ebu, 0x000022c1u, 0x00008562u, + 0x00050051u, 0x00000008u, 0x00002349u, 0x000022ebu, 0x00000002u, 0x000500b3u, 0x00000058u, 0x0000234bu, + 0x00002349u, 0x00000187u, 0x000500c7u, 0x00000008u, 0x0000234du, 0x00002349u, 0x0000045eu, 0x0006000cu, + 0x00000008u, 0x000023aau, 0x00000001u, 0x0000004au, 0x0000234du, 0x00050082u, 0x00000008u, 0x000023abu, + 0x00000207u, 0x000023aau, 0x0007000cu, 0x00000008u, 0x000023acu, 0x00000001u, 0x00000027u, 0x000023abu, + 0x00000207u, 0x000500c4u, 0x00000008u, 0x000023afu, 0x0000234du, 0x000023acu, 0x000500c7u, 0x00000008u, + 0x000023b0u, 0x000023afu, 0x00000377u, 0x000500c7u, 0x00000008u, 0x000023b2u, 0x000023b0u, 0x000002f0u, + 0x000500c3u, 0x00000008u, 0x000023b4u, 0x000023b0u, 0x000001e2u, 0x0003003eu, 0x000023a5u, 0x0000043cu, + 0x00050041u, 0x00000068u, 0x000023b5u, 0x000023a5u, 0x000023b4u, 0x0004003du, 0x0000004du, 0x000023b6u, + 0x000023b5u, 0x00050051u, 0x00000008u, 0x000023bbu, 0x000023b6u, 0x00000001u, 0x00050084u, 0x00000008u, + 0x000023bdu, 0x000023bbu, 0x000023b2u, 0x000500c3u, 0x00000008u, 0x000023beu, 0x000023bdu, 0x000001eeu, + 0x00050051u, 0x00000008u, 0x000023c0u, 0x000023b6u, 0x00000000u, 0x00050080u, 0x00000008u, 0x000023c1u, + 0x000023beu, 0x000023c0u, 0x0007004fu, 0x0000004du, 0x00002353u, 0x000022ebu, 0x000022ebu, 0x00000000u, + 0x00000001u, 0x00050050u, 0x0000004du, 0x00002356u, 0x000023c1u, 0x000023c1u, 0x00050084u, 0x0000004du, + 0x00002357u, 0x00002353u, 0x00002356u, 0x000500c3u, 0x00000008u, 0x00002359u, 0x00000471u, 0x000023acu, + 0x0004007eu, 0x00000008u, 0x0000235au, 0x00002359u, 0x000500c7u, 0x00000008u, 0x0000235bu, 0x00000470u, + 0x0000235au, 0x00050050u, 0x0000004du, 0x0000235eu, 0x0000235bu, 0x0000235bu, 0x000500c7u, 0x0000004du, + 0x0000235fu, 0x00002357u, 0x0000235eu, 0x000500abu, 0x00000058u, 0x00002361u, 0x000023acu, 0x00000207u, + 0x000300f7u, 0x0000236cu, 0x00000000u, 0x000400fau, 0x00002361u, 0x00002362u, 0x00002368u, 0x000200f8u, + 0x00002368u, 0x000500c4u, 0x0000004du, 0x0000236bu, 0x00002357u, 0x00008566u, 0x000200f9u, 0x0000236cu, + 0x000200f8u, 0x00002362u, 0x00050082u, 0x00000008u, 0x00002365u, 0x00000201u, 0x000023acu, 0x00050050u, + 0x0000004du, 0x00002366u, 0x00002365u, 0x00002365u, 0x000500c3u, 0x0000004du, 0x00002367u, 0x00002357u, + 0x00002366u, 0x000200f9u, 0x0000236cu, 0x000200f8u, 0x0000236cu, 0x000700f5u, 0x0000004du, 0x00006657u, + 0x00002367u, 0x00002362u, 0x0000236bu, 0x00002368u, 0x000700f5u, 0x0000004du, 0x00006655u, 0x00002367u, + 0x00002362u, 0x00002357u, 0x00002368u, 0x000500abu, 0x0000048bu, 0x0000236eu, 0x0000235fu, 0x0000048au, + 0x0004009au, 0x00000058u, 0x0000236fu, 0x0000236eu, 0x000300f7u, 0x0000239bu, 0x00000000u, 0x000400fau, + 0x0000236fu, 0x00002370u, 0x0000239bu, 0x000200f8u, 0x00002370u, 0x00050051u, 0x00000008u, 0x00002372u, + 0x0000235fu, 0x00000000u, 0x000500abu, 0x00000058u, 0x00002374u, 0x00002372u, 0x0000235bu, 0x000300f7u, + 0x00002379u, 0x00000000u, 0x000400fau, 0x00002374u, 0x00002375u, 0x00002379u, 0x000200f8u, 0x00002375u, + 0x000500abu, 0x00000058u, 0x00002378u, 0x00002372u, 0x00000187u, 0x000200f9u, 0x00002379u, 0x000200f8u, + 0x00002379u, 0x000700f5u, 0x00000058u, 0x0000237au, 0x00002374u, 0x00002370u, 0x00002378u, 0x00002375u, + 0x000300f7u, 0x00002385u, 0x00000000u, 0x000400fau, 0x0000237au, 0x0000237bu, 0x00002385u, 0x000200f8u, + 0x0000237bu, 0x00050051u, 0x00000008u, 0x0000237du, 0x00006655u, 0x00000000u, 0x000500c7u, 0x00000008u, + 0x0000237eu, 0x0000237du, 0x00000471u, 0x000500aau, 0x00000058u, 0x0000237fu, 0x0000237eu, 0x00000187u, + 0x000300f7u, 0x00002384u, 0x00000000u, 0x000400fau, 0x0000237fu, 0x00002380u, 0x00002382u, 0x000200f8u, + 0x00002382u, 0x00060052u, 0x0000004du, 0x00006317u, 0x000004a4u, 0x00006657u, 0x00000000u, 0x000200f9u, + 0x00002384u, 0x000200f8u, 0x00002380u, 0x00060052u, 0x0000004du, 0x00006315u, 0x0000045eu, 0x00006657u, + 0x00000000u, 0x000200f9u, 0x00002384u, 0x000200f8u, 0x00002384u, 0x000700f5u, 0x0000004du, 0x0000665du, + 0x00006315u, 0x00002380u, 0x00006317u, 0x00002382u, 0x000200f9u, 0x00002385u, 0x000200f8u, 0x00002385u, + 0x000700f5u, 0x0000004du, 0x0000665cu, 0x00006657u, 0x00002379u, 0x0000665du, 0x00002384u, 0x000600a9u, + 0x00000058u, 0x00008584u, 0x0000237au, 0x000004a6u, 0x000011eeu, 0x00050051u, 0x00000008u, 0x00002387u, + 0x0000235fu, 0x00000001u, 0x000500abu, 0x00000058u, 0x00002389u, 0x00002387u, 0x0000235bu, 0x000300f7u, + 0x0000238eu, 0x00000000u, 0x000400fau, 0x00002389u, 0x0000238au, 0x0000238eu, 0x000200f8u, 0x0000238au, + 0x000500abu, 0x00000058u, 0x0000238du, 0x00002387u, 0x00000187u, 0x000200f9u, 0x0000238eu, 0x000200f8u, + 0x0000238eu, 0x000700f5u, 0x00000058u, 0x0000238fu, 0x00002389u, 0x00002385u, 0x0000238du, 0x0000238au, + 0x000300f7u, 0x0000239au, 0x00000000u, 0x000400fau, 0x0000238fu, 0x00002390u, 0x0000239au, 0x000200f8u, + 0x00002390u, 0x00050051u, 0x00000008u, 0x00002392u, 0x00006655u, 0x00000001u, 0x000500c7u, 0x00000008u, + 0x00002393u, 0x00002392u, 0x00000471u, 0x000500aau, 0x00000058u, 0x00002394u, 0x00002393u, 0x00000187u, + 0x000300f7u, 0x00002399u, 0x00000000u, 0x000400fau, 0x00002394u, 0x00002395u, 0x00002397u, 0x000200f8u, + 0x00002397u, 0x00060052u, 0x0000004du, 0x0000631eu, 0x000004a4u, 0x0000665cu, 0x00000001u, 0x000200f9u, + 0x00002399u, 0x000200f8u, 0x00002395u, 0x00060052u, 0x0000004du, 0x0000631cu, 0x0000045eu, 0x0000665cu, + 0x00000001u, 0x000200f9u, 0x00002399u, 0x000200f8u, 0x00002399u, 0x000700f5u, 0x0000004du, 0x00006661u, + 0x0000631cu, 0x00002395u, 0x0000631eu, 0x00002397u, 0x000200f9u, 0x0000239au, 0x000200f8u, 0x0000239au, + 0x000700f5u, 0x0000004du, 0x00006660u, 0x0000665cu, 0x0000238eu, 0x00006661u, 0x00002399u, 0x000600a9u, + 0x00000058u, 0x00008585u, 0x0000238fu, 0x000004a6u, 0x00008584u, 0x000200f9u, 0x0000239bu, 0x000200f8u, + 0x0000239bu, 0x000700f5u, 0x00000058u, 0x00006663u, 0x000011eeu, 0x0000236cu, 0x00008585u, 0x0000239au, + 0x000700f5u, 0x0000004du, 0x0000665fu, 0x00006657u, 0x0000236cu, 0x00006660u, 0x0000239au, 0x000600a9u, + 0x00000058u, 0x00008586u, 0x0000234bu, 0x000004a6u, 0x00006663u, 0x00050050u, 0x0000048bu, 0x00008587u, + 0x0000234bu, 0x0000234bu, 0x000600a9u, 0x0000004du, 0x00008588u, 0x00008587u, 0x000004bfu, 0x0000665fu, + 0x0008000cu, 0x0000004du, 0x000023a0u, 0x00000001u, 0x0000002du, 0x00008588u, 0x000004c2u, 0x000004c4u, + 0x000300f7u, 0x000022fdu, 0x00000000u, 0x000400fau, 0x00001a96u, 0x000022f0u, 0x000022fdu, 0x000200f8u, + 0x000022f0u, 0x000500c3u, 0x00000052u, 0x000022f3u, 0x0000663du, 0x00008562u, 0x00050051u, 0x00000008u, + 0x000023d1u, 0x000022f3u, 0x00000002u, 0x000500b3u, 0x00000058u, 0x000023d3u, 0x000023d1u, 0x00000187u, + 0x000500c7u, 0x00000008u, 0x000023d5u, 0x000023d1u, 0x0000045eu, 0x0006000cu, 0x00000008u, 0x00002432u, + 0x00000001u, 0x0000004au, 0x000023d5u, 0x00050082u, 0x00000008u, 0x00002433u, 0x00000207u, 0x00002432u, + 0x0007000cu, 0x00000008u, 0x00002434u, 0x00000001u, 0x00000027u, 0x00002433u, 0x00000207u, 0x000500c4u, + 0x00000008u, 0x00002437u, 0x000023d5u, 0x00002434u, 0x000500c7u, 0x00000008u, 0x00002438u, 0x00002437u, + 0x00000377u, 0x000500c7u, 0x00000008u, 0x0000243au, 0x00002438u, 0x000002f0u, 0x000500c3u, 0x00000008u, + 0x0000243cu, 0x00002438u, 0x000001e2u, 0x0003003eu, 0x0000242du, 0x0000043cu, 0x00050041u, 0x00000068u, + 0x0000243du, 0x0000242du, 0x0000243cu, 0x0004003du, 0x0000004du, 0x0000243eu, 0x0000243du, 0x00050051u, + 0x00000008u, 0x00002443u, 0x0000243eu, 0x00000001u, 0x00050084u, 0x00000008u, 0x00002445u, 0x00002443u, + 0x0000243au, 0x000500c3u, 0x00000008u, 0x00002446u, 0x00002445u, 0x000001eeu, 0x00050051u, 0x00000008u, + 0x00002448u, 0x0000243eu, 0x00000000u, 0x00050080u, 0x00000008u, 0x00002449u, 0x00002446u, 0x00002448u, + 0x0007004fu, 0x0000004du, 0x000023dbu, 0x000022f3u, 0x000022f3u, 0x00000000u, 0x00000001u, 0x00050050u, + 0x0000004du, 0x000023deu, 0x00002449u, 0x00002449u, 0x00050084u, 0x0000004du, 0x000023dfu, 0x000023dbu, + 0x000023deu, 0x000500c3u, 0x00000008u, 0x000023e1u, 0x00000471u, 0x00002434u, 0x0004007eu, 0x00000008u, + 0x000023e2u, 0x000023e1u, 0x000500c7u, 0x00000008u, 0x000023e3u, 0x00000470u, 0x000023e2u, 0x00050050u, + 0x0000004du, 0x000023e6u, 0x000023e3u, 0x000023e3u, 0x000500c7u, 0x0000004du, 0x000023e7u, 0x000023dfu, + 0x000023e6u, 0x000500abu, 0x00000058u, 0x000023e9u, 0x00002434u, 0x00000207u, 0x000300f7u, 0x000023f4u, + 0x00000000u, 0x000400fau, 0x000023e9u, 0x000023eau, 0x000023f0u, 0x000200f8u, 0x000023f0u, 0x000500c4u, + 0x0000004du, 0x000023f3u, 0x000023dfu, 0x00008566u, 0x000200f9u, 0x000023f4u, 0x000200f8u, 0x000023eau, + 0x00050082u, 0x00000008u, 0x000023edu, 0x00000201u, 0x00002434u, 0x00050050u, 0x0000004du, 0x000023eeu, + 0x000023edu, 0x000023edu, 0x000500c3u, 0x0000004du, 0x000023efu, 0x000023dfu, 0x000023eeu, 0x000200f9u, + 0x000023f4u, 0x000200f8u, 0x000023f4u, 0x000700f5u, 0x0000004du, 0x00006675u, 0x000023efu, 0x000023eau, + 0x000023f3u, 0x000023f0u, 0x000700f5u, 0x0000004du, 0x00006673u, 0x000023efu, 0x000023eau, 0x000023dfu, + 0x000023f0u, 0x000500abu, 0x0000048bu, 0x000023f6u, 0x000023e7u, 0x0000048au, 0x0004009au, 0x00000058u, + 0x000023f7u, 0x000023f6u, 0x000300f7u, 0x00002423u, 0x00000000u, 0x000400fau, 0x000023f7u, 0x000023f8u, + 0x00002423u, 0x000200f8u, 0x000023f8u, 0x00050051u, 0x00000008u, 0x000023fau, 0x000023e7u, 0x00000000u, + 0x000500abu, 0x00000058u, 0x000023fcu, 0x000023fau, 0x000023e3u, 0x000300f7u, 0x00002401u, 0x00000000u, + 0x000400fau, 0x000023fcu, 0x000023fdu, 0x00002401u, 0x000200f8u, 0x000023fdu, 0x000500abu, 0x00000058u, + 0x00002400u, 0x000023fau, 0x00000187u, 0x000200f9u, 0x00002401u, 0x000200f8u, 0x00002401u, 0x000700f5u, + 0x00000058u, 0x00002402u, 0x000023fcu, 0x000023f8u, 0x00002400u, 0x000023fdu, 0x000300f7u, 0x0000240du, + 0x00000000u, 0x000400fau, 0x00002402u, 0x00002403u, 0x0000240du, 0x000200f8u, 0x00002403u, 0x00050051u, + 0x00000008u, 0x00002405u, 0x00006673u, 0x00000000u, 0x000500c7u, 0x00000008u, 0x00002406u, 0x00002405u, + 0x00000471u, 0x000500aau, 0x00000058u, 0x00002407u, 0x00002406u, 0x00000187u, 0x000300f7u, 0x0000240cu, + 0x00000000u, 0x000400fau, 0x00002407u, 0x00002408u, 0x0000240au, 0x000200f8u, 0x0000240au, 0x00060052u, + 0x0000004du, 0x0000632au, 0x000004a4u, 0x00006675u, 0x00000000u, 0x000200f9u, 0x0000240cu, 0x000200f8u, + 0x00002408u, 0x00060052u, 0x0000004du, 0x00006328u, 0x0000045eu, 0x00006675u, 0x00000000u, 0x000200f9u, + 0x0000240cu, 0x000200f8u, 0x0000240cu, 0x000700f5u, 0x0000004du, 0x0000667bu, 0x00006328u, 0x00002408u, + 0x0000632au, 0x0000240au, 0x000200f9u, 0x0000240du, 0x000200f8u, 0x0000240du, 0x000700f5u, 0x0000004du, + 0x0000667au, 0x00006675u, 0x00002401u, 0x0000667bu, 0x0000240cu, 0x000600a9u, 0x00000058u, 0x00008589u, + 0x00002402u, 0x000004a6u, 0x00008586u, 0x00050051u, 0x00000008u, 0x0000240fu, 0x000023e7u, 0x00000001u, + 0x000500abu, 0x00000058u, 0x00002411u, 0x0000240fu, 0x000023e3u, 0x000300f7u, 0x00002416u, 0x00000000u, + 0x000400fau, 0x00002411u, 0x00002412u, 0x00002416u, 0x000200f8u, 0x00002412u, 0x000500abu, 0x00000058u, + 0x00002415u, 0x0000240fu, 0x00000187u, 0x000200f9u, 0x00002416u, 0x000200f8u, 0x00002416u, 0x000700f5u, + 0x00000058u, 0x00002417u, 0x00002411u, 0x0000240du, 0x00002415u, 0x00002412u, 0x000300f7u, 0x00002422u, + 0x00000000u, 0x000400fau, 0x00002417u, 0x00002418u, 0x00002422u, 0x000200f8u, 0x00002418u, 0x00050051u, + 0x00000008u, 0x0000241au, 0x00006673u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x0000241bu, 0x0000241au, + 0x00000471u, 0x000500aau, 0x00000058u, 0x0000241cu, 0x0000241bu, 0x00000187u, 0x000300f7u, 0x00002421u, + 0x00000000u, 0x000400fau, 0x0000241cu, 0x0000241du, 0x0000241fu, 0x000200f8u, 0x0000241fu, 0x00060052u, + 0x0000004du, 0x00006331u, 0x000004a4u, 0x0000667au, 0x00000001u, 0x000200f9u, 0x00002421u, 0x000200f8u, + 0x0000241du, 0x00060052u, 0x0000004du, 0x0000632fu, 0x0000045eu, 0x0000667au, 0x00000001u, 0x000200f9u, + 0x00002421u, 0x000200f8u, 0x00002421u, 0x000700f5u, 0x0000004du, 0x0000667fu, 0x0000632fu, 0x0000241du, + 0x00006331u, 0x0000241fu, 0x000200f9u, 0x00002422u, 0x000200f8u, 0x00002422u, 0x000700f5u, 0x0000004du, + 0x0000667eu, 0x0000667au, 0x00002416u, 0x0000667fu, 0x00002421u, 0x000600a9u, 0x00000058u, 0x0000858au, + 0x00002417u, 0x000004a6u, 0x00008589u, 0x000200f9u, 0x00002423u, 0x000200f8u, 0x00002423u, 0x000700f5u, + 0x00000058u, 0x00006681u, 0x00008586u, 0x000023f4u, 0x0000858au, 0x00002422u, 0x000700f5u, 0x0000004du, + 0x0000667du, 0x00006675u, 0x000023f4u, 0x0000667eu, 0x00002422u, 0x000600a9u, 0x00000058u, 0x0000858bu, + 0x000023d3u, 0x000004a6u, 0x00006681u, 0x00050050u, 0x0000048bu, 0x0000858cu, 0x000023d3u, 0x000023d3u, + 0x000600a9u, 0x0000004du, 0x0000858du, 0x0000858cu, 0x000004bfu, 0x0000667du, 0x0008000cu, 0x0000004du, + 0x00002428u, 0x00000001u, 0x0000002du, 0x0000858du, 0x000004c2u, 0x000004c4u, 0x000500c3u, 0x00000052u, + 0x000022f9u, 0x00006648u, 0x00008562u, 0x00050051u, 0x00000008u, 0x00002459u, 0x000022f9u, 0x00000002u, + 0x000500b3u, 0x00000058u, 0x0000245bu, 0x00002459u, 0x00000187u, 0x000500c7u, 0x00000008u, 0x0000245du, + 0x00002459u, 0x0000045eu, 0x0006000cu, 0x00000008u, 0x000024bau, 0x00000001u, 0x0000004au, 0x0000245du, + 0x00050082u, 0x00000008u, 0x000024bbu, 0x00000207u, 0x000024bau, 0x0007000cu, 0x00000008u, 0x000024bcu, + 0x00000001u, 0x00000027u, 0x000024bbu, 0x00000207u, 0x000500c4u, 0x00000008u, 0x000024bfu, 0x0000245du, + 0x000024bcu, 0x000500c7u, 0x00000008u, 0x000024c0u, 0x000024bfu, 0x00000377u, 0x000500c7u, 0x00000008u, + 0x000024c2u, 0x000024c0u, 0x000002f0u, 0x000500c3u, 0x00000008u, 0x000024c4u, 0x000024c0u, 0x000001e2u, + 0x0003003eu, 0x000024b5u, 0x0000043cu, 0x00050041u, 0x00000068u, 0x000024c5u, 0x000024b5u, 0x000024c4u, + 0x0004003du, 0x0000004du, 0x000024c6u, 0x000024c5u, 0x00050051u, 0x00000008u, 0x000024cbu, 0x000024c6u, + 0x00000001u, 0x00050084u, 0x00000008u, 0x000024cdu, 0x000024cbu, 0x000024c2u, 0x000500c3u, 0x00000008u, + 0x000024ceu, 0x000024cdu, 0x000001eeu, 0x00050051u, 0x00000008u, 0x000024d0u, 0x000024c6u, 0x00000000u, + 0x00050080u, 0x00000008u, 0x000024d1u, 0x000024ceu, 0x000024d0u, 0x0007004fu, 0x0000004du, 0x00002463u, + 0x000022f9u, 0x000022f9u, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000004du, 0x00002466u, 0x000024d1u, + 0x000024d1u, 0x00050084u, 0x0000004du, 0x00002467u, 0x00002463u, 0x00002466u, 0x000500c3u, 0x00000008u, + 0x00002469u, 0x00000471u, 0x000024bcu, 0x0004007eu, 0x00000008u, 0x0000246au, 0x00002469u, 0x000500c7u, + 0x00000008u, 0x0000246bu, 0x00000470u, 0x0000246au, 0x00050050u, 0x0000004du, 0x0000246eu, 0x0000246bu, + 0x0000246bu, 0x000500c7u, 0x0000004du, 0x0000246fu, 0x00002467u, 0x0000246eu, 0x000500abu, 0x00000058u, + 0x00002471u, 0x000024bcu, 0x00000207u, 0x000300f7u, 0x0000247cu, 0x00000000u, 0x000400fau, 0x00002471u, + 0x00002472u, 0x00002478u, 0x000200f8u, 0x00002478u, 0x000500c4u, 0x0000004du, 0x0000247bu, 0x00002467u, + 0x00008566u, 0x000200f9u, 0x0000247cu, 0x000200f8u, 0x00002472u, 0x00050082u, 0x00000008u, 0x00002475u, + 0x00000201u, 0x000024bcu, 0x00050050u, 0x0000004du, 0x00002476u, 0x00002475u, 0x00002475u, 0x000500c3u, + 0x0000004du, 0x00002477u, 0x00002467u, 0x00002476u, 0x000200f9u, 0x0000247cu, 0x000200f8u, 0x0000247cu, + 0x000700f5u, 0x0000004du, 0x0000669cu, 0x00002477u, 0x00002472u, 0x0000247bu, 0x00002478u, 0x000700f5u, + 0x0000004du, 0x0000669au, 0x00002477u, 0x00002472u, 0x00002467u, 0x00002478u, 0x000500abu, 0x0000048bu, + 0x0000247eu, 0x0000246fu, 0x0000048au, 0x0004009au, 0x00000058u, 0x0000247fu, 0x0000247eu, 0x000300f7u, + 0x000024abu, 0x00000000u, 0x000400fau, 0x0000247fu, 0x00002480u, 0x000024abu, 0x000200f8u, 0x00002480u, + 0x00050051u, 0x00000008u, 0x00002482u, 0x0000246fu, 0x00000000u, 0x000500abu, 0x00000058u, 0x00002484u, + 0x00002482u, 0x0000246bu, 0x000300f7u, 0x00002489u, 0x00000000u, 0x000400fau, 0x00002484u, 0x00002485u, + 0x00002489u, 0x000200f8u, 0x00002485u, 0x000500abu, 0x00000058u, 0x00002488u, 0x00002482u, 0x00000187u, + 0x000200f9u, 0x00002489u, 0x000200f8u, 0x00002489u, 0x000700f5u, 0x00000058u, 0x0000248au, 0x00002484u, + 0x00002480u, 0x00002488u, 0x00002485u, 0x000300f7u, 0x00002495u, 0x00000000u, 0x000400fau, 0x0000248au, + 0x0000248bu, 0x00002495u, 0x000200f8u, 0x0000248bu, 0x00050051u, 0x00000008u, 0x0000248du, 0x0000669au, + 0x00000000u, 0x000500c7u, 0x00000008u, 0x0000248eu, 0x0000248du, 0x00000471u, 0x000500aau, 0x00000058u, + 0x0000248fu, 0x0000248eu, 0x00000187u, 0x000300f7u, 0x00002494u, 0x00000000u, 0x000400fau, 0x0000248fu, + 0x00002490u, 0x00002492u, 0x000200f8u, 0x00002492u, 0x00060052u, 0x0000004du, 0x0000633du, 0x000004a4u, + 0x0000669cu, 0x00000000u, 0x000200f9u, 0x00002494u, 0x000200f8u, 0x00002490u, 0x00060052u, 0x0000004du, + 0x0000633bu, 0x0000045eu, 0x0000669cu, 0x00000000u, 0x000200f9u, 0x00002494u, 0x000200f8u, 0x00002494u, + 0x000700f5u, 0x0000004du, 0x000066a2u, 0x0000633bu, 0x00002490u, 0x0000633du, 0x00002492u, 0x000200f9u, + 0x00002495u, 0x000200f8u, 0x00002495u, 0x000700f5u, 0x0000004du, 0x000066a1u, 0x0000669cu, 0x00002489u, + 0x000066a2u, 0x00002494u, 0x000600a9u, 0x00000058u, 0x0000858eu, 0x0000248au, 0x000004a6u, 0x0000858bu, + 0x00050051u, 0x00000008u, 0x00002497u, 0x0000246fu, 0x00000001u, 0x000500abu, 0x00000058u, 0x00002499u, + 0x00002497u, 0x0000246bu, 0x000300f7u, 0x0000249eu, 0x00000000u, 0x000400fau, 0x00002499u, 0x0000249au, + 0x0000249eu, 0x000200f8u, 0x0000249au, 0x000500abu, 0x00000058u, 0x0000249du, 0x00002497u, 0x00000187u, + 0x000200f9u, 0x0000249eu, 0x000200f8u, 0x0000249eu, 0x000700f5u, 0x00000058u, 0x0000249fu, 0x00002499u, + 0x00002495u, 0x0000249du, 0x0000249au, 0x000300f7u, 0x000024aau, 0x00000000u, 0x000400fau, 0x0000249fu, + 0x000024a0u, 0x000024aau, 0x000200f8u, 0x000024a0u, 0x00050051u, 0x00000008u, 0x000024a2u, 0x0000669au, + 0x00000001u, 0x000500c7u, 0x00000008u, 0x000024a3u, 0x000024a2u, 0x00000471u, 0x000500aau, 0x00000058u, + 0x000024a4u, 0x000024a3u, 0x00000187u, 0x000300f7u, 0x000024a9u, 0x00000000u, 0x000400fau, 0x000024a4u, + 0x000024a5u, 0x000024a7u, 0x000200f8u, 0x000024a7u, 0x00060052u, 0x0000004du, 0x00006344u, 0x000004a4u, + 0x000066a1u, 0x00000001u, 0x000200f9u, 0x000024a9u, 0x000200f8u, 0x000024a5u, 0x00060052u, 0x0000004du, + 0x00006342u, 0x0000045eu, 0x000066a1u, 0x00000001u, 0x000200f9u, 0x000024a9u, 0x000200f8u, 0x000024a9u, + 0x000700f5u, 0x0000004du, 0x000066a6u, 0x00006342u, 0x000024a5u, 0x00006344u, 0x000024a7u, 0x000200f9u, + 0x000024aau, 0x000200f8u, 0x000024aau, 0x000700f5u, 0x0000004du, 0x000066a5u, 0x000066a1u, 0x0000249eu, + 0x000066a6u, 0x000024a9u, 0x000600a9u, 0x00000058u, 0x0000858fu, 0x0000249fu, 0x000004a6u, 0x0000858eu, + 0x000200f9u, 0x000024abu, 0x000200f8u, 0x000024abu, 0x000700f5u, 0x00000058u, 0x000066a8u, 0x0000858bu, + 0x0000247cu, 0x0000858fu, 0x000024aau, 0x000700f5u, 0x0000004du, 0x000066a4u, 0x0000669cu, 0x0000247cu, + 0x000066a5u, 0x000024aau, 0x000600a9u, 0x00000058u, 0x00008590u, 0x0000245bu, 0x000004a6u, 0x000066a8u, + 0x00050050u, 0x0000048bu, 0x00008591u, 0x0000245bu, 0x0000245bu, 0x000600a9u, 0x0000004du, 0x00008592u, + 0x00008591u, 0x000004bfu, 0x000066a4u, 0x0008000cu, 0x0000004du, 0x000024b0u, 0x00000001u, 0x0000002du, + 0x00008592u, 0x000004c2u, 0x000004c4u, 0x000200f9u, 0x000022fdu, 0x000200f8u, 0x000022fdu, 0x000700f5u, + 0x00000058u, 0x000066fau, 0x00008586u, 0x0000239bu, 0x00008590u, 0x000024abu, 0x000700f5u, 0x0000004du, + 0x000066e4u, 0x000066cfu, 0x0000239bu, 0x000024b0u, 0x000024abu, 0x000700f5u, 0x0000004du, 0x000066c4u, + 0x000066cfu, 0x0000239bu, 0x00002428u, 0x000024abu, 0x000200f9u, 0x0000230eu, 0x000200f8u, 0x0000230eu, + 0x000700f5u, 0x00000058u, 0x000066f9u, 0x000066fau, 0x000022fdu, 0x000011eeu, 0x0000230du, 0x000700f5u, + 0x0000004du, 0x000066e3u, 0x000066e4u, 0x000022fdu, 0x000066f8u, 0x0000230du, 0x000700f5u, 0x0000004du, + 0x000066c3u, 0x000066c4u, 0x000022fdu, 0x000066e2u, 0x0000230du, 0x000700f5u, 0x0000004du, 0x000066aeu, + 0x000023a0u, 0x000022fdu, 0x000024d8u, 0x0000230du, 0x00050051u, 0x00000008u, 0x00002310u, 0x00001ca3u, + 0x00000002u, 0x00050051u, 0x00000008u, 0x00002312u, 0x00001cd1u, 0x00000002u, 0x000500c3u, 0x00000008u, + 0x00002314u, 0x00001b1du, 0x000004cfu, 0x00050084u, 0x00000008u, 0x00002315u, 0x00002312u, 0x00002314u, + 0x00050080u, 0x00000008u, 0x00002316u, 0x00002310u, 0x00002315u, 0x000500c3u, 0x00000008u, 0x00002319u, + 0x00002312u, 0x000004cfu, 0x000500c7u, 0x00000008u, 0x0000231bu, 0x00001b1du, 0x000005edu, 0x00050084u, + 0x00000008u, 0x0000231cu, 0x00002319u, 0x0000231bu, 0x00050080u, 0x00000008u, 0x0000231du, 0x00002316u, + 0x0000231cu, 0x000500c3u, 0x00000008u, 0x0000231fu, 0x0000231du, 0x000001eeu, 0x000500c4u, 0x00000008u, + 0x0000232bu, 0x0000231fu, 0x00000601u, 0x000500c3u, 0x00000008u, 0x0000232fu, 0x00002312u, 0x000001eeu, + 0x00050084u, 0x00000008u, 0x00002330u, 0x00002267u, 0x0000232fu, 0x00050051u, 0x00000008u, 0x00002333u, + 0x00001cd5u, 0x00000002u, 0x000500c3u, 0x00000008u, 0x00002334u, 0x00002333u, 0x000001eeu, 0x00050084u, + 0x00000008u, 0x00002335u, 0x00002261u, 0x00002334u, 0x00050080u, 0x00000008u, 0x00002336u, 0x00002330u, + 0x00002335u, 0x00050080u, 0x00000008u, 0x00002338u, 0x0000232bu, 0x00002336u, 0x000500c3u, 0x00000008u, + 0x0000233au, 0x00002338u, 0x00000611u, 0x00050082u, 0x00000008u, 0x000024e4u, 0x0000233au, 0x00000360u, + 0x000500c4u, 0x00000008u, 0x000024e6u, 0x000024e4u, 0x00000201u, 0x000500c3u, 0x00000008u, 0x000024e8u, + 0x000024e6u, 0x00000201u, 0x00050080u, 0x00000008u, 0x000024eau, 0x000024e8u, 0x00000360u, 0x0008000cu, + 0x00000008u, 0x000024ecu, 0x00000001u, 0x0000002du, 0x000024eau, 0x00000187u, 0x0000036au, 0x000500c7u, + 0x00000006u, 0x00001b48u, 0x00001a2du, 0x00001258u, 0x00050080u, 0x00000006u, 0x00001b4au, 0x00001b48u, + 0x0000032cu, 0x000500c7u, 0x00000006u, 0x00001b4bu, 0x00001b4au, 0x00001258u, 0x000500c2u, 0x00000006u, + 0x00001b4du, 0x00001a2du, 0x00000333u, 0x000300f7u, 0x00001b61u, 0x00000000u, 0x000400fau, 0x00001a96u, + 0x00001b51u, 0x00001b61u, 0x000200f8u, 0x00001b51u, 0x000300f7u, 0x00002548u, 0x00000000u, 0x000400fau, + 0x000066f9u, 0x000024f7u, 0x000024f8u, 0x000200f8u, 0x000024f8u, 0x00050082u, 0x0000004du, 0x000024fbu, + 0x000066c3u, 0x000066aeu, 0x000500c3u, 0x0000004du, 0x000024feu, 0x000024fbu, 0x00008569u, 0x000500c6u, + 0x0000004du, 0x00002500u, 0x000024fbu, 0x000024feu, 0x00050082u, 0x0000004du, 0x00002503u, 0x000066e3u, + 0x000066aeu, 0x000500c3u, 0x0000004du, 0x00002506u, 0x00002503u, 0x00008569u, 0x000500c6u, 0x0000004du, + 0x00002508u, 0x00002503u, 0x00002506u, 0x0007000cu, 0x0000004du, 0x0000250bu, 0x00000001u, 0x0000002au, + 0x00002500u, 0x00002508u, 0x00050051u, 0x00000008u, 0x0000250du, 0x0000250bu, 0x00000000u, 0x00050051u, + 0x00000008u, 0x0000250fu, 0x0000250bu, 0x00000001u, 0x0007000cu, 0x00000008u, 0x00002510u, 0x00000001u, + 0x0000002au, 0x0000250du, 0x0000250fu, 0x000500afu, 0x00000058u, 0x00002512u, 0x00002510u, 0x0000037fu, + 0x000300f7u, 0x00002547u, 0x00000000u, 0x000400fau, 0x00002512u, 0x00002513u, 0x00002515u, 0x000200f8u, + 0x00002515u, 0x000500b1u, 0x00000058u, 0x00002517u, 0x00002510u, 0x000002e2u, 0x000300f7u, 0x00002546u, + 0x00000000u, 0x000400fau, 0x00002517u, 0x00002518u, 0x0000252cu, 0x000200f8u, 0x0000252cu, 0x000500c3u, + 0x00000008u, 0x0000252eu, 0x00002510u, 0x000001a2u, 0x0006000cu, 0x00000008u, 0x0000252fu, 0x00000001u, + 0x0000004au, 0x0000252eu, 0x0007000cu, 0x00000008u, 0x00002530u, 0x00000001u, 0x0000002au, 0x0000252fu, + 0x00000187u, 0x0004007cu, 0x00000006u, 0x00002532u, 0x00002530u, 0x000500aeu, 0x00000058u, 0x00002534u, + 0x00002532u, 0x00001b4du, 0x000400a8u, 0x00000058u, 0x00002537u, 0x00001a6fu, 0x000500a7u, 0x00000058u, + 0x00002538u, 0x00002534u, 0x00002537u, 0x000400a8u, 0x00000058u, 0x0000253au, 0x00001a72u, 0x000500a7u, + 0x00000058u, 0x0000253bu, 0x00002538u, 0x0000253au, 0x000300f7u, 0x00002545u, 0x00000000u, 0x000400fau, + 0x0000253bu, 0x0000253cu, 0x0000253du, 0x000200f8u, 0x0000253du, 0x000500c4u, 0x00000008u, 0x0000253fu, + 0x00002510u, 0x0000019cu, 0x000500c3u, 0x00000008u, 0x00002541u, 0x0000253fu, 0x00002530u, 0x000500c7u, + 0x00000008u, 0x00002542u, 0x00002541u, 0x000002f0u, 0x000200f9u, 0x00002545u, 0x000200f8u, 0x0000253cu, + 0x000200f9u, 0x00002545u, 0x000200f8u, 0x00002545u, 0x000700f5u, 0x00000008u, 0x00006725u, 0x000002f0u, + 0x0000253cu, 0x00002542u, 0x0000253du, 0x000600a9u, 0x00000006u, 0x00008593u, 0x0000253bu, 0x000002d9u, + 0x00002532u, 0x000200f9u, 0x00002546u, 0x000200f8u, 0x00002518u, 0x000500aau, 0x00000058u, 0x0000251au, + 0x00001b4du, 0x000002d9u, 0x000400a8u, 0x00000058u, 0x0000251cu, 0x00001a6fu, 0x000400a8u, 0x00000058u, + 0x0000251eu, 0x00001a72u, 0x000500a7u, 0x00000058u, 0x0000251fu, 0x0000251cu, 0x0000251eu, 0x000300f7u, + 0x0000252bu, 0x00000000u, 0x000400fau, 0x0000251fu, 0x00002520u, 0x00002523u, 0x000200f8u, 0x00002523u, + 0x0007000cu, 0x00000008u, 0x00002526u, 0x00000001u, 0x0000002au, 0x0000223fu, 0x00002510u, 0x000500c4u, + 0x00000008u, 0x00002527u, 0x00002526u, 0x0000019cu, 0x000600a9u, 0x00000008u, 0x00002529u, 0x00001a6fu, + 0x0000122cu, 0x00000187u, 0x00050080u, 0x00000008u, 0x0000252au, 0x00002527u, 0x00002529u, 0x000200f9u, + 0x0000252bu, 0x000200f8u, 0x00002520u, 0x000600a9u, 0x00000008u, 0x00002522u, 0x0000251au, 0x000002f0u, + 0x00000187u, 0x000200f9u, 0x0000252bu, 0x000200f8u, 0x0000252bu, 0x000700f5u, 0x00000008u, 0x00006724u, + 0x00002522u, 0x00002520u, 0x0000252au, 0x00002523u, 0x000200f9u, 0x00002546u, 0x000200f8u, 0x00002546u, + 0x000700f5u, 0x00000008u, 0x00006723u, 0x00006724u, 0x0000252bu, 0x00006725u, 0x00002545u, 0x000700f5u, + 0x00000006u, 0x0000670au, 0x000002d9u, 0x0000252bu, 0x00008593u, 0x00002545u, 0x000700f5u, 0x00000058u, + 0x000066feu, 0x0000251au, 0x0000252bu, 0x00002534u, 0x00002545u, 0x000600a9u, 0x00000058u, 0x00008594u, + 0x00002517u, 0x000004a6u, 0x000011eeu, 0x000200f9u, 0x00002547u, 0x000200f8u, 0x00002513u, 0x000200f9u, + 0x00002547u, 0x000200f8u, 0x00002547u, 0x000700f5u, 0x00000008u, 0x00006722u, 0x000002f0u, 0x00002513u, + 0x00006723u, 0x00002546u, 0x000700f5u, 0x00000058u, 0x00006710u, 0x000011eeu, 0x00002513u, 0x00008594u, + 0x00002546u, 0x000700f5u, 0x00000006u, 0x00006709u, 0x00001b4du, 0x00002513u, 0x0000670au, 0x00002546u, + 0x000700f5u, 0x00000058u, 0x000066fdu, 0x000004a6u, 0x00002513u, 0x000066feu, 0x00002546u, 0x000200f9u, + 0x00002548u, 0x000200f8u, 0x000024f7u, 0x000200f9u, 0x00002548u, 0x000200f8u, 0x00002548u, 0x000700f5u, + 0x00000008u, 0x00006721u, 0x000002f0u, 0x000024f7u, 0x00006722u, 0x00002547u, 0x000700f5u, 0x00000058u, + 0x0000670fu, 0x000011eeu, 0x000024f7u, 0x00006710u, 0x00002547u, 0x000700f5u, 0x00000006u, 0x00006708u, + 0x000002d9u, 0x000024f7u, 0x00006709u, 0x00002547u, 0x000700f5u, 0x00000058u, 0x000066fcu, 0x000004a6u, + 0x000024f7u, 0x000066fdu, 0x00002547u, 0x000300f7u, 0x0000257au, 0x00000000u, 0x000400fau, 0x00001a6cu, + 0x0000254au, 0x0000257au, 0x000200f8u, 0x0000254au, 0x000600a9u, 0x00000006u, 0x00008595u, 0x000066fcu, + 0x00001b4du, 0x00006708u, 0x000400a8u, 0x00000058u, 0x00002550u, 0x00001a72u, 0x000300f7u, 0x00002579u, + 0x00000000u, 0x000400fau, 0x00002550u, 0x00002551u, 0x00002566u, 0x000200f8u, 0x00002566u, 0x00050080u, + 0x00000006u, 0x00002569u, 0x00001b48u, 0x00008595u, 0x000500a6u, 0x00000058u, 0x0000256cu, 0x000066fcu, + 0x0000670fu, 0x000600a9u, 0x00000008u, 0x0000256du, 0x0000256cu, 0x00000196u, 0x00000199u, 0x0004007cu, + 0x00000006u, 0x0000256eu, 0x0000256du, 0x00050080u, 0x00000006u, 0x0000256fu, 0x00002569u, 0x0000256eu, + 0x000500c7u, 0x00000006u, 0x00002570u, 0x0000256fu, 0x00001258u, 0x000600a9u, 0x00000008u, 0x00002575u, + 0x0000670fu, 0x00000187u, 0x00000196u, 0x0004007cu, 0x00000006u, 0x00002576u, 0x00002575u, 0x00050080u, + 0x00000006u, 0x00002577u, 0x00002569u, 0x00002576u, 0x000500c7u, 0x00000006u, 0x00002578u, 0x00002577u, + 0x00001258u, 0x000200f9u, 0x00002579u, 0x000200f8u, 0x00002551u, 0x00050080u, 0x00000006u, 0x00002554u, + 0x00001b48u, 0x00008595u, 0x000500c7u, 0x00000006u, 0x00002555u, 0x00002554u, 0x00001258u, 0x000400a8u, + 0x00000058u, 0x00002557u, 0x000066fcu, 0x000300f7u, 0x0000255du, 0x00000000u, 0x000400fau, 0x00002557u, + 0x00002558u, 0x0000255du, 0x000200f8u, 0x00002558u, 0x000400a8u, 0x00000058u, 0x0000255au, 0x00001a6fu, + 0x000500a7u, 0x00000058u, 0x0000255cu, 0x0000255au, 0x0000670fu, 0x000200f9u, 0x0000255du, 0x000200f8u, + 0x0000255du, 0x000700f5u, 0x00000058u, 0x0000255eu, 0x000066fcu, 0x00002551u, 0x0000255cu, 0x00002558u, + 0x000300f7u, 0x00002565u, 0x00000000u, 0x000400fau, 0x0000255eu, 0x0000255fu, 0x00002561u, 0x000200f8u, + 0x00002561u, 0x00050080u, 0x00000006u, 0x00002563u, 0x00002555u, 0x0000032cu, 0x000500c7u, 0x00000006u, + 0x00002564u, 0x00002563u, 0x00001258u, 0x000200f9u, 0x00002565u, 0x000200f8u, 0x0000255fu, 0x000200f9u, + 0x00002565u, 0x000200f8u, 0x00002565u, 0x000700f5u, 0x00000006u, 0x0000671fu, 0x00002555u, 0x0000255fu, + 0x00002564u, 0x00002561u, 0x000200f9u, 0x00002579u, 0x000200f8u, 0x00002579u, 0x000700f5u, 0x00000006u, + 0x0000671eu, 0x0000671fu, 0x00002565u, 0x00002570u, 0x00002566u, 0x000700f5u, 0x00000006u, 0x00006716u, + 0x00002555u, 0x00002565u, 0x00002578u, 0x00002566u, 0x000200f9u, 0x0000257au, 0x000200f8u, 0x0000257au, + 0x000700f5u, 0x00000006u, 0x00006718u, 0x00001b4bu, 0x00002548u, 0x0000671eu, 0x00002579u, 0x000700f5u, + 0x00000006u, 0x00006715u, 0x00001b48u, 0x00002548u, 0x00006716u, 0x00002579u, 0x000200f9u, 0x00001b61u, + 0x000200f8u, 0x00001b61u, 0x000700f5u, 0x00000008u, 0x0000773du, 0x0000774au, 0x0000230eu, 0x00006721u, + 0x0000257au, 0x000700f5u, 0x00000006u, 0x00006cbdu, 0x00001b4bu, 0x0000230eu, 0x00006718u, 0x0000257au, + 0x000700f5u, 0x00000006u, 0x0000672au, 0x00001b48u, 0x0000230eu, 0x00006715u, 0x0000257au, 0x000300f7u, + 0x00001b7au, 0x00000000u, 0x000400fau, 0x00001a8du, 0x00001b63u, 0x00001b7au, 0x000200f8u, 0x00001b63u, + 0x00080041u, 0x000001fbu, 0x00001b66u, 0x00001525u, 0x00000187u, 0x000018c1u, 0x00000199u, 0x0000672au, + 0x0004003du, 0x000001adu, 0x00001b67u, 0x00001b66u, 0x00040071u, 0x00000006u, 0x00001b68u, 0x00001b67u, + 0x00070041u, 0x000001efu, 0x0000257eu, 0x0000027au, 0x00000187u, 0x00001b68u, 0x00000187u, 0x0004003du, + 0x00000006u, 0x0000257fu, 0x0000257eu, 0x00070041u, 0x000001efu, 0x00002581u, 0x0000027au, 0x00000187u, + 0x00001b68u, 0x00000196u, 0x0004003du, 0x00000006u, 0x00002582u, 0x00002581u, 0x00070041u, 0x000001efu, + 0x00002584u, 0x0000027au, 0x00000187u, 0x00001b68u, 0x00000199u, 0x0004003du, 0x00000006u, 0x00002585u, + 0x00002584u, 0x00070041u, 0x000001efu, 0x00002587u, 0x0000027au, 0x00000187u, 0x00001b68u, 0x0000019cu, + 0x0004003du, 0x00000006u, 0x00002588u, 0x00002587u, 0x00070041u, 0x000001efu, 0x0000258au, 0x0000027au, + 0x00000187u, 0x00001b68u, 0x0000019fu, 0x0004003du, 0x00000006u, 0x0000258bu, 0x0000258au, 0x00070041u, + 0x000001efu, 0x0000258du, 0x0000027au, 0x00000187u, 0x00001b68u, 0x000001a2u, 0x0004003du, 0x00000006u, + 0x0000258eu, 0x0000258du, 0x00070041u, 0x000001fbu, 0x00002590u, 0x0000027au, 0x00000187u, 0x00001b68u, + 0x000001a5u, 0x0004003du, 0x000001adu, 0x00002591u, 0x00002590u, 0x00040071u, 0x00000006u, 0x00002592u, + 0x00002591u, 0x0004007cu, 0x00000008u, 0x00002593u, 0x00002592u, 0x00070041u, 0x000001fbu, 0x00002595u, + 0x0000027au, 0x00000187u, 0x00001b68u, 0x000001a8u, 0x0004003du, 0x000001adu, 0x00002596u, 0x00002595u, + 0x00040071u, 0x00000006u, 0x00002597u, 0x00002596u, 0x0004007cu, 0x00000008u, 0x00002598u, 0x00002597u, + 0x00070041u, 0x000001fbu, 0x0000259au, 0x0000027au, 0x00000187u, 0x00001b68u, 0x000001e2u, 0x0004003du, + 0x000001adu, 0x0000259bu, 0x0000259au, 0x00040071u, 0x00000006u, 0x0000259cu, 0x0000259bu, 0x0004007cu, + 0x00000008u, 0x0000259du, 0x0000259cu, 0x00070041u, 0x000001fbu, 0x0000259fu, 0x0000027au, 0x00000187u, + 0x00001b68u, 0x000001e8u, 0x0004003du, 0x000001adu, 0x000025a0u, 0x0000259fu, 0x00040071u, 0x00000006u, + 0x000025a1u, 0x000025a0u, 0x0004007cu, 0x00000008u, 0x000025a2u, 0x000025a1u, 0x00070041u, 0x000001fbu, + 0x000025a4u, 0x0000027au, 0x00000187u, 0x00001b68u, 0x000001eeu, 0x0004003du, 0x000001adu, 0x000025a5u, + 0x000025a4u, 0x00040071u, 0x00000006u, 0x000025a6u, 0x000025a5u, 0x0004007cu, 0x00000008u, 0x000025a7u, + 0x000025a6u, 0x00070041u, 0x000001fbu, 0x000025a9u, 0x0000027au, 0x00000187u, 0x00001b68u, 0x000001f3u, + 0x0004003du, 0x000001adu, 0x000025aau, 0x000025a9u, 0x00040071u, 0x00000006u, 0x000025abu, 0x000025aau, + 0x0004007cu, 0x00000008u, 0x000025acu, 0x000025abu, 0x00070041u, 0x000001fbu, 0x000025aeu, 0x0000027au, + 0x00000187u, 0x00001b68u, 0x000001fau, 0x0004003du, 0x000001adu, 0x000025afu, 0x000025aeu, 0x00040071u, + 0x00000006u, 0x000025b0u, 0x000025afu, 0x0004007cu, 0x00000008u, 0x000025b1u, 0x000025b0u, 0x00070041u, + 0x000001fbu, 0x000025b3u, 0x0000027au, 0x00000187u, 0x00001b68u, 0x00000201u, 0x0004003du, 0x000001adu, + 0x000025b4u, 0x000025b3u, 0x00040071u, 0x00000006u, 0x000025b5u, 0x000025b4u, 0x0004007cu, 0x00000008u, + 0x000025b6u, 0x000025b5u, 0x000600a9u, 0x00000008u, 0x00008596u, 0x00001720u, 0x00001643u, 0x00002593u, + 0x000600a9u, 0x00000008u, 0x00008597u, 0x00001720u, 0x00001646u, 0x00002598u, 0x000500c7u, 0x00000008u, + 0x00002711u, 0x000025b6u, 0x00000196u, 0x000500abu, 0x00000058u, 0x00002712u, 0x00002711u, 0x00000187u, + 0x0004007cu, 0x00000008u, 0x00002715u, 0x0000257fu, 0x0004007cu, 0x00000008u, 0x00002718u, 0x00002582u, + 0x00050051u, 0x00000008u, 0x0000271cu, 0x000066aeu, 0x00000000u, 0x0008000cu, 0x00000008u, 0x00002be5u, + 0x00000001u, 0x0000002du, 0x0000271cu, 0x000004a4u, 0x0000045eu, 0x000500b1u, 0x00000058u, 0x00002be7u, + 0x000025a7u, 0x000001f3u, 0x000300f7u, 0x00002bf3u, 0x00000000u, 0x000400fau, 0x00002be7u, 0x00002be8u, + 0x00002becu, 0x000200f8u, 0x00002becu, 0x00050082u, 0x00000008u, 0x00002beeu, 0x000002e2u, 0x000025a7u, + 0x000500c4u, 0x00000008u, 0x00002bf0u, 0x00002be5u, 0x00002beeu, 0x000500c3u, 0x00000008u, 0x00002bf2u, + 0x00002bf0u, 0x00000323u, 0x000200f9u, 0x00002bf3u, 0x000200f8u, 0x00002be8u, 0x000500c3u, 0x00000008u, + 0x00002bebu, 0x00002be5u, 0x000025a7u, 0x000200f9u, 0x00002bf3u, 0x000200f8u, 0x00002bf3u, 0x000700f5u, + 0x00000008u, 0x00006739u, 0x00002bebu, 0x00002be8u, 0x00002bf2u, 0x00002becu, 0x000300f7u, 0x00002c0fu, + 0x00000000u, 0x000400fau, 0x00002712u, 0x00002bf5u, 0x00002c0au, 0x000200f8u, 0x00002c0au, 0x000500c4u, + 0x00000008u, 0x00002c0cu, 0x00002715u, 0x0000019cu, 0x00050082u, 0x00000008u, 0x00002c0eu, 0x00006739u, + 0x00002c0cu, 0x000200f9u, 0x00002c0fu, 0x000200f8u, 0x00002bf5u, 0x000500c3u, 0x00000008u, 0x00002bf7u, + 0x00006739u, 0x0000019cu, 0x000500afu, 0x00000058u, 0x00002bf9u, 0x00002bf7u, 0x00002718u, 0x000300f7u, + 0x00002c09u, 0x00000000u, 0x000400fau, 0x00002bf9u, 0x00002bfbu, 0x00002c03u, 0x000200f8u, 0x00002c03u, + 0x000500c4u, 0x00000008u, 0x00002c06u, 0x00002715u, 0x0000019cu, 0x00050082u, 0x00000008u, 0x00002c07u, + 0x00006739u, 0x00002c06u, 0x0007000cu, 0x00000008u, 0x00002c08u, 0x00000001u, 0x0000002au, 0x00002c07u, + 0x00000187u, 0x000200f9u, 0x00002c09u, 0x000200f8u, 0x00002bfbu, 0x000500c3u, 0x00000008u, 0x00002bfdu, + 0x00002718u, 0x00000199u, 0x000500c3u, 0x00000008u, 0x00002bffu, 0x00002715u, 0x00000199u, 0x00050082u, + 0x00000008u, 0x00002c00u, 0x00002bfdu, 0x00002bffu, 0x000500c7u, 0x00000008u, 0x00002c01u, 0x00002c00u, + 0x0000099eu, 0x000500c4u, 0x00000008u, 0x00002c02u, 0x00002c01u, 0x000001a2u, 0x000200f9u, 0x00002c09u, + 0x000200f8u, 0x00002c09u, 0x000700f5u, 0x00000008u, 0x0000673bu, 0x00002c02u, 0x00002bfbu, 0x00002c08u, + 0x00002c03u, 0x000200f9u, 0x00002c0fu, 0x000200f8u, 0x00002c0fu, 0x000700f5u, 0x00000008u, 0x0000673au, + 0x0000673bu, 0x00002c09u, 0x00002c0eu, 0x00002c0au, 0x000500c7u, 0x00000008u, 0x00002721u, 0x000025b6u, + 0x0000019fu, 0x000500abu, 0x00000058u, 0x00002722u, 0x00002721u, 0x00000187u, 0x0004007cu, 0x00000008u, + 0x00002725u, 0x00002585u, 0x0004007cu, 0x00000008u, 0x00002728u, 0x00002588u, 0x00050051u, 0x00000008u, + 0x0000272cu, 0x000066aeu, 0x00000001u, 0x0008000cu, 0x00000008u, 0x00002c15u, 0x00000001u, 0x0000002du, + 0x0000272cu, 0x000004a4u, 0x0000045eu, 0x000500b1u, 0x00000058u, 0x00002c17u, 0x000025b1u, 0x000001f3u, + 0x000300f7u, 0x00002c23u, 0x00000000u, 0x000400fau, 0x00002c17u, 0x00002c18u, 0x00002c1cu, 0x000200f8u, + 0x00002c1cu, 0x00050082u, 0x00000008u, 0x00002c1eu, 0x000002e2u, 0x000025b1u, 0x000500c4u, 0x00000008u, + 0x00002c20u, 0x00002c15u, 0x00002c1eu, 0x000500c3u, 0x00000008u, 0x00002c22u, 0x00002c20u, 0x00000323u, + 0x000200f9u, 0x00002c23u, 0x000200f8u, 0x00002c18u, 0x000500c3u, 0x00000008u, 0x00002c1bu, 0x00002c15u, + 0x000025b1u, 0x000200f9u, 0x00002c23u, 0x000200f8u, 0x00002c23u, 0x000700f5u, 0x00000008u, 0x0000673fu, + 0x00002c1bu, 0x00002c18u, 0x00002c22u, 0x00002c1cu, 0x000300f7u, 0x00002c3fu, 0x00000000u, 0x000400fau, + 0x00002722u, 0x00002c25u, 0x00002c3au, 0x000200f8u, 0x00002c3au, 0x000500c4u, 0x00000008u, 0x00002c3cu, + 0x00002725u, 0x0000019cu, 0x00050082u, 0x00000008u, 0x00002c3eu, 0x0000673fu, 0x00002c3cu, 0x000200f9u, + 0x00002c3fu, 0x000200f8u, 0x00002c25u, 0x000500c3u, 0x00000008u, 0x00002c27u, 0x0000673fu, 0x0000019cu, + 0x000500afu, 0x00000058u, 0x00002c29u, 0x00002c27u, 0x00002728u, 0x000300f7u, 0x00002c39u, 0x00000000u, + 0x000400fau, 0x00002c29u, 0x00002c2bu, 0x00002c33u, 0x000200f8u, 0x00002c33u, 0x000500c4u, 0x00000008u, + 0x00002c36u, 0x00002725u, 0x0000019cu, 0x00050082u, 0x00000008u, 0x00002c37u, 0x0000673fu, 0x00002c36u, + 0x0007000cu, 0x00000008u, 0x00002c38u, 0x00000001u, 0x0000002au, 0x00002c37u, 0x00000187u, 0x000200f9u, + 0x00002c39u, 0x000200f8u, 0x00002c2bu, 0x000500c3u, 0x00000008u, 0x00002c2du, 0x00002728u, 0x00000199u, + 0x000500c3u, 0x00000008u, 0x00002c2fu, 0x00002725u, 0x00000199u, 0x00050082u, 0x00000008u, 0x00002c30u, + 0x00002c2du, 0x00002c2fu, 0x000500c7u, 0x00000008u, 0x00002c31u, 0x00002c30u, 0x0000099eu, 0x000500c4u, + 0x00000008u, 0x00002c32u, 0x00002c31u, 0x000001a2u, 0x000200f9u, 0x00002c39u, 0x000200f8u, 0x00002c39u, + 0x000700f5u, 0x00000008u, 0x00006741u, 0x00002c32u, 0x00002c2bu, 0x00002c38u, 0x00002c33u, 0x000200f9u, + 0x00002c3fu, 0x000200f8u, 0x00002c3fu, 0x000700f5u, 0x00000008u, 0x00006740u, 0x00006741u, 0x00002c39u, + 0x00002c3eu, 0x00002c3au, 0x00050050u, 0x0000004du, 0x0000857bu, 0x0000673au, 0x00006740u, 0x000500a6u, + 0x00000058u, 0x00002731u, 0x00001a60u, 0x00001a5au, 0x000300f7u, 0x00002737u, 0x00000000u, 0x000400fau, + 0x00002731u, 0x00002732u, 0x00002736u, 0x000200f8u, 0x00002736u, 0x000200f9u, 0x00002737u, 0x000200f8u, + 0x00002732u, 0x000500c7u, 0x0000004du, 0x00002735u, 0x0000857bu, 0x00008569u, 0x000200f9u, 0x00002737u, + 0x000200f8u, 0x00002737u, 0x000700f5u, 0x0000004du, 0x00006745u, 0x00002735u, 0x00002732u, 0x0000048au, + 0x00002736u, 0x00050051u, 0x00000008u, 0x00002739u, 0x00006745u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x0000273bu, 0x00006745u, 0x00000001u, 0x00050080u, 0x00000008u, 0x0000273cu, 0x00002739u, 0x0000273bu, + 0x000500c3u, 0x0000004du, 0x0000273fu, 0x0000857bu, 0x00008568u, 0x00050051u, 0x00000008u, 0x00002742u, + 0x0000273fu, 0x00000000u, 0x000500abu, 0x00000058u, 0x00002c46u, 0x000025a2u, 0x00000187u, 0x000300f7u, + 0x00002c5cu, 0x00000000u, 0x000400fau, 0x00002c46u, 0x00002c47u, 0x00002c5cu, 0x000200f8u, 0x00002c47u, + 0x000500c4u, 0x00000008u, 0x00002c4au, 0x00000196u, 0x000025a2u, 0x000500c7u, 0x00000008u, 0x00002c4du, + 0x000025b6u, 0x00000199u, 0x000500abu, 0x00000058u, 0x00002c4eu, 0x00002c4du, 0x00000187u, 0x000300f7u, + 0x00002c57u, 0x00000000u, 0x000400fau, 0x00002c4eu, 0x00002c4fu, 0x00002c57u, 0x000200f8u, 0x00002c4fu, + 0x000500c7u, 0x00000008u, 0x00002c52u, 0x00002742u, 0x00002c4au, 0x00050082u, 0x00000008u, 0x00002c53u, + 0x00002c52u, 0x00000196u, 0x0007000cu, 0x00000008u, 0x00002c54u, 0x00000001u, 0x0000002au, 0x00002c53u, + 0x00000187u, 0x000500c6u, 0x00000008u, 0x00002c56u, 0x00002742u, 0x00002c54u, 0x000200f9u, 0x00002c57u, + 0x000200f8u, 0x00002c57u, 0x000700f5u, 0x00000008u, 0x00006747u, 0x00002742u, 0x00002c47u, 0x00002c56u, + 0x00002c4fu, 0x00050082u, 0x00000008u, 0x00002c59u, 0x00002c4au, 0x00000196u, 0x000500c7u, 0x00000008u, + 0x00002c5bu, 0x00006747u, 0x00002c59u, 0x000200f9u, 0x00002c5cu, 0x000200f8u, 0x00002c5cu, 0x000700f5u, + 0x00000008u, 0x00006748u, 0x00002742u, 0x00002737u, 0x00002c5bu, 0x00002c57u, 0x00050051u, 0x00000008u, + 0x00002746u, 0x0000273fu, 0x00000001u, 0x000500abu, 0x00000058u, 0x00002c63u, 0x000025acu, 0x00000187u, + 0x000300f7u, 0x00002c79u, 0x00000000u, 0x000400fau, 0x00002c63u, 0x00002c64u, 0x00002c79u, 0x000200f8u, + 0x00002c64u, 0x000500c4u, 0x00000008u, 0x00002c67u, 0x00000196u, 0x000025acu, 0x000500c7u, 0x00000008u, + 0x00002c6au, 0x000025b6u, 0x000001e2u, 0x000500abu, 0x00000058u, 0x00002c6bu, 0x00002c6au, 0x00000187u, + 0x000300f7u, 0x00002c74u, 0x00000000u, 0x000400fau, 0x00002c6bu, 0x00002c6cu, 0x00002c74u, 0x000200f8u, + 0x00002c6cu, 0x000500c7u, 0x00000008u, 0x00002c6fu, 0x00002746u, 0x00002c67u, 0x00050082u, 0x00000008u, + 0x00002c70u, 0x00002c6fu, 0x00000196u, 0x0007000cu, 0x00000008u, 0x00002c71u, 0x00000001u, 0x0000002au, + 0x00002c70u, 0x00000187u, 0x000500c6u, 0x00000008u, 0x00002c73u, 0x00002746u, 0x00002c71u, 0x000200f9u, + 0x00002c74u, 0x000200f8u, 0x00002c74u, 0x000700f5u, 0x00000008u, 0x0000674bu, 0x00002746u, 0x00002c64u, + 0x00002c73u, 0x00002c6cu, 0x00050082u, 0x00000008u, 0x00002c76u, 0x00002c67u, 0x00000196u, 0x000500c7u, + 0x00000008u, 0x00002c78u, 0x0000674bu, 0x00002c76u, 0x000200f9u, 0x00002c79u, 0x000200f8u, 0x00002c79u, + 0x000700f5u, 0x00000008u, 0x0000674cu, 0x00002746u, 0x00002c5cu, 0x00002c78u, 0x00002c74u, 0x00050080u, + 0x00000008u, 0x0000274au, 0x00002742u, 0x00000196u, 0x000300f7u, 0x00002c96u, 0x00000000u, 0x000400fau, + 0x00002c46u, 0x00002c81u, 0x00002c96u, 0x000200f8u, 0x00002c81u, 0x000500c4u, 0x00000008u, 0x00002c84u, + 0x00000196u, 0x000025a2u, 0x000500c7u, 0x00000008u, 0x00002c87u, 0x000025b6u, 0x00000199u, 0x000500abu, + 0x00000058u, 0x00002c88u, 0x00002c87u, 0x00000187u, 0x000300f7u, 0x00002c91u, 0x00000000u, 0x000400fau, + 0x00002c88u, 0x00002c89u, 0x00002c91u, 0x000200f8u, 0x00002c89u, 0x000500c7u, 0x00000008u, 0x00002c8cu, + 0x0000274au, 0x00002c84u, 0x00050082u, 0x00000008u, 0x00002c8du, 0x00002c8cu, 0x00000196u, 0x0007000cu, + 0x00000008u, 0x00002c8eu, 0x00000001u, 0x0000002au, 0x00002c8du, 0x00000187u, 0x000500c6u, 0x00000008u, + 0x00002c90u, 0x0000274au, 0x00002c8eu, 0x000200f9u, 0x00002c91u, 0x000200f8u, 0x00002c91u, 0x000700f5u, + 0x00000008u, 0x0000674fu, 0x0000274au, 0x00002c81u, 0x00002c90u, 0x00002c89u, 0x00050082u, 0x00000008u, + 0x00002c93u, 0x00002c84u, 0x00000196u, 0x000500c7u, 0x00000008u, 0x00002c95u, 0x0000674fu, 0x00002c93u, + 0x000200f9u, 0x00002c96u, 0x000200f8u, 0x00002c96u, 0x000700f5u, 0x00000008u, 0x00006750u, 0x0000274au, + 0x00002c79u, 0x00002c95u, 0x00002c91u, 0x00050080u, 0x00000008u, 0x0000274fu, 0x00002746u, 0x00000196u, + 0x000300f7u, 0x00002cb3u, 0x00000000u, 0x000400fau, 0x00002c63u, 0x00002c9eu, 0x00002cb3u, 0x000200f8u, + 0x00002c9eu, 0x000500c4u, 0x00000008u, 0x00002ca1u, 0x00000196u, 0x000025acu, 0x000500c7u, 0x00000008u, + 0x00002ca4u, 0x000025b6u, 0x000001e2u, 0x000500abu, 0x00000058u, 0x00002ca5u, 0x00002ca4u, 0x00000187u, + 0x000300f7u, 0x00002caeu, 0x00000000u, 0x000400fau, 0x00002ca5u, 0x00002ca6u, 0x00002caeu, 0x000200f8u, + 0x00002ca6u, 0x000500c7u, 0x00000008u, 0x00002ca9u, 0x0000274fu, 0x00002ca1u, 0x00050082u, 0x00000008u, + 0x00002caau, 0x00002ca9u, 0x00000196u, 0x0007000cu, 0x00000008u, 0x00002cabu, 0x00000001u, 0x0000002au, + 0x00002caau, 0x00000187u, 0x000500c6u, 0x00000008u, 0x00002cadu, 0x0000274fu, 0x00002cabu, 0x000200f9u, + 0x00002caeu, 0x000200f8u, 0x00002caeu, 0x000700f5u, 0x00000008u, 0x00006753u, 0x0000274fu, 0x00002c9eu, + 0x00002cadu, 0x00002ca6u, 0x00050082u, 0x00000008u, 0x00002cb0u, 0x00002ca1u, 0x00000196u, 0x000500c7u, + 0x00000008u, 0x00002cb2u, 0x00006753u, 0x00002cb0u, 0x000200f9u, 0x00002cb3u, 0x000200f8u, 0x00002cb3u, + 0x000700f5u, 0x00000008u, 0x00006754u, 0x0000274fu, 0x00002c96u, 0x00002cb2u, 0x00002caeu, 0x00050082u, + 0x00000008u, 0x00002754u, 0x00006754u, 0x0000674cu, 0x0007000cu, 0x00000008u, 0x00002755u, 0x00000001u, + 0x0000002au, 0x00002754u, 0x00000c02u, 0x000500c7u, 0x00000008u, 0x00002757u, 0x0000674cu, 0x000002f0u, + 0x00050080u, 0x00000008u, 0x00002759u, 0x00002757u, 0x00002755u, 0x000500aau, 0x0000048bu, 0x0000275fu, + 0x00006745u, 0x00000c0eu, 0x00050051u, 0x00000058u, 0x00002760u, 0x0000275fu, 0x00000000u, 0x00050051u, + 0x00000058u, 0x00002761u, 0x0000275fu, 0x00000001u, 0x00070050u, 0x000002fau, 0x00002762u, 0x00001a8au, + 0x00001a9cu, 0x00002760u, 0x00002761u, 0x0004009bu, 0x00000058u, 0x00002763u, 0x00002762u, 0x000500afu, + 0x00000058u, 0x00002765u, 0x0000273cu, 0x000002e2u, 0x000600a9u, 0x00000008u, 0x00008598u, 0x00002763u, + 0x00000187u, 0x0000273cu, 0x000500aau, 0x00000058u, 0x0000276bu, 0x00008596u, 0x00000196u, 0x000500afu, + 0x00000058u, 0x0000276du, 0x00008598u, 0x000002e2u, 0x000300f7u, 0x00002776u, 0x00000000u, 0x000400fau, + 0x0000276du, 0x0000276eu, 0x00002772u, 0x000200f8u, 0x00002772u, 0x00050050u, 0x0000004du, 0x00002775u, + 0x00006748u, 0x00002757u, 0x000200f9u, 0x00002776u, 0x000200f8u, 0x0000276eu, 0x00050050u, 0x0000004du, + 0x00002771u, 0x00006750u, 0x00002759u, 0x000200f9u, 0x00002776u, 0x000200f8u, 0x00002776u, 0x000700f5u, + 0x0000004du, 0x0000676fu, 0x00002771u, 0x0000276eu, 0x00002775u, 0x00002772u, 0x000500c7u, 0x00000008u, + 0x00002779u, 0x00006748u, 0x00000196u, 0x000500c4u, 0x00000008u, 0x0000277au, 0x00002779u, 0x0000019fu, + 0x000500c3u, 0x00000008u, 0x0000277du, 0x00002739u, 0x00000196u, 0x000500c5u, 0x00000008u, 0x0000277eu, + 0x0000277au, 0x0000277du, 0x000300f7u, 0x00002a42u, 0x00000000u, 0x000400fau, 0x00001a5au, 0x00002780u, + 0x00002826u, 0x000200f8u, 0x00002826u, 0x000300f7u, 0x00002a41u, 0x00000000u, 0x000d00fbu, 0x00008596u, + 0x00002a41u, 0x00000000u, 0x00002829u, 0x00000001u, 0x000028b1u, 0x00000002u, 0x000028dfu, 0x00000003u, + 0x00002952u, 0x00000004u, 0x000029dau, 0x000200f8u, 0x000029dau, 0x000300f7u, 0x00002a40u, 0x00000000u, + 0x000700fbu, 0x00008597u, 0x000029ddu, 0x00000000u, 0x000029feu, 0x00000001u, 0x00002a1fu, 0x000200f8u, + 0x00002a1fu, 0x0004007cu, 0x000000a0u, 0x00002a21u, 0x0000676fu, 0x00050051u, 0x00000006u, 0x00003d37u, + 0x00002a21u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d38u, 0x0000258eu, 0x00003d37u, 0x00050080u, + 0x00000006u, 0x00003d39u, 0x0000258bu, 0x00003d38u, 0x00050051u, 0x00000006u, 0x00003d3bu, 0x00002a21u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00003d3du, 0x00003d39u, 0x00003d3bu, 0x000500c7u, 0x00000006u, + 0x00003d3fu, 0x00003d3du, 0x000006b6u, 0x000500c7u, 0x00000006u, 0x00003d43u, 0x00003d37u, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x00003d44u, 0x00003d43u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003d46u, + 0x00003d3fu, 0x00003d44u, 0x000500c6u, 0x00000006u, 0x00003d48u, 0x00003d46u, 0x00000333u, 0x00080041u, + 0x000001fbu, 0x00003d4bu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003d48u, 0x0004003du, + 0x000001adu, 0x00003d4cu, 0x00003d4bu, 0x00040071u, 0x00000006u, 0x00003d4du, 0x00003d4cu, 0x0004007cu, + 0x00000008u, 0x00003d4fu, 0x00003d4du, 0x00070050u, 0x00000009u, 0x00003d50u, 0x00003d4fu, 0x00003d4fu, + 0x00003d4fu, 0x00003d4fu, 0x000300f7u, 0x00002a35u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x00002a26u, + 0x00002a35u, 0x000200f8u, 0x00002a26u, 0x00050050u, 0x0000004du, 0x00002a29u, 0x00006750u, 0x00002757u, + 0x0004007cu, 0x000000a0u, 0x00002a2au, 0x00002a29u, 0x00050051u, 0x00000006u, 0x00003d5bu, 0x00002a2au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d5cu, 0x0000258eu, 0x00003d5bu, 0x00050080u, 0x00000006u, + 0x00003d5du, 0x0000258bu, 0x00003d5cu, 0x00050051u, 0x00000006u, 0x00003d5fu, 0x00002a2au, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00003d61u, 0x00003d5du, 0x00003d5fu, 0x000500c7u, 0x00000006u, 0x00003d63u, + 0x00003d61u, 0x000006b6u, 0x000500c7u, 0x00000006u, 0x00003d67u, 0x00003d5bu, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00003d68u, 0x00003d67u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003d6au, 0x00003d63u, + 0x00003d68u, 0x000500c6u, 0x00000006u, 0x00003d6cu, 0x00003d6au, 0x00000333u, 0x00080041u, 0x000001fbu, + 0x00003d6fu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003d6cu, 0x0004003du, 0x000001adu, + 0x00003d70u, 0x00003d6fu, 0x00040071u, 0x00000006u, 0x00003d71u, 0x00003d70u, 0x0004007cu, 0x00000008u, + 0x00003d73u, 0x00003d71u, 0x00070050u, 0x00000009u, 0x00003d74u, 0x00003d73u, 0x00003d73u, 0x00003d73u, + 0x00003d73u, 0x00050050u, 0x0000004du, 0x00002a30u, 0x00006748u, 0x00002759u, 0x0004007cu, 0x000000a0u, + 0x00002a31u, 0x00002a30u, 0x00050051u, 0x00000006u, 0x00003d7fu, 0x00002a31u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003d80u, 0x0000258eu, 0x00003d7fu, 0x00050080u, 0x00000006u, 0x00003d81u, 0x0000258bu, + 0x00003d80u, 0x00050051u, 0x00000006u, 0x00003d83u, 0x00002a31u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003d85u, 0x00003d81u, 0x00003d83u, 0x000500c7u, 0x00000006u, 0x00003d87u, 0x00003d85u, 0x000006b6u, + 0x000500c7u, 0x00000006u, 0x00003d8bu, 0x00003d7fu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003d8cu, + 0x00003d8bu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003d8eu, 0x00003d87u, 0x00003d8cu, 0x000500c6u, + 0x00000006u, 0x00003d90u, 0x00003d8eu, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003d93u, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003d90u, 0x0004003du, 0x000001adu, 0x00003d94u, 0x00003d93u, + 0x00040071u, 0x00000006u, 0x00003d95u, 0x00003d94u, 0x0004007cu, 0x00000008u, 0x00003d97u, 0x00003d95u, + 0x00070050u, 0x00000009u, 0x00003d98u, 0x00003d97u, 0x00003d97u, 0x00003d97u, 0x00003d97u, 0x000200f9u, + 0x00002a35u, 0x000200f8u, 0x00002a35u, 0x000700f5u, 0x00000009u, 0x000069a9u, 0x000067e2u, 0x00002a1fu, + 0x00003d98u, 0x00002a26u, 0x000700f5u, 0x00000009u, 0x0000692eu, 0x000067e2u, 0x00002a1fu, 0x00003d74u, + 0x00002a26u, 0x000300f7u, 0x00002a3fu, 0x00000000u, 0x000400fau, 0x00002763u, 0x00002a37u, 0x00002a3fu, + 0x000200f8u, 0x00002a37u, 0x00050050u, 0x0000004du, 0x00002a3au, 0x00006750u, 0x00002759u, 0x0004007cu, + 0x000000a0u, 0x00002a3bu, 0x00002a3au, 0x00050051u, 0x00000006u, 0x00003da3u, 0x00002a3bu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003da4u, 0x0000258eu, 0x00003da3u, 0x00050080u, 0x00000006u, 0x00003da5u, + 0x0000258bu, 0x00003da4u, 0x00050051u, 0x00000006u, 0x00003da7u, 0x00002a3bu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003da9u, 0x00003da5u, 0x00003da7u, 0x000500c7u, 0x00000006u, 0x00003dabu, 0x00003da9u, + 0x000006b6u, 0x000500c7u, 0x00000006u, 0x00003dafu, 0x00003da3u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00003db0u, 0x00003dafu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003db2u, 0x00003dabu, 0x00003db0u, + 0x000500c6u, 0x00000006u, 0x00003db4u, 0x00003db2u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003db7u, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003db4u, 0x0004003du, 0x000001adu, 0x00003db8u, + 0x00003db7u, 0x00040071u, 0x00000006u, 0x00003db9u, 0x00003db8u, 0x0004007cu, 0x00000008u, 0x00003dbbu, + 0x00003db9u, 0x00070050u, 0x00000009u, 0x00003dbcu, 0x00003dbbu, 0x00003dbbu, 0x00003dbbu, 0x00003dbbu, + 0x000200f9u, 0x00002a3fu, 0x000200f8u, 0x00002a3fu, 0x000700f5u, 0x00000009u, 0x00006a23u, 0x000067e2u, + 0x00002a35u, 0x00003dbcu, 0x00002a37u, 0x000200f9u, 0x00002a40u, 0x000200f8u, 0x000029feu, 0x0004007cu, + 0x000000a0u, 0x00002a00u, 0x0000676fu, 0x00050051u, 0x00000006u, 0x00003c6cu, 0x00002a00u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003c6du, 0x0000258eu, 0x00003c6cu, 0x00050080u, 0x00000006u, 0x00003c6eu, + 0x0000258bu, 0x00003c6du, 0x00050051u, 0x00000006u, 0x00003c70u, 0x00002a00u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003c71u, 0x00003c70u, 0x00000196u, 0x00050080u, 0x00000006u, 0x00003c73u, 0x00003c6eu, + 0x00003c71u, 0x000500c7u, 0x00000006u, 0x00003c75u, 0x00003c73u, 0x000006b6u, 0x000400c8u, 0x00000006u, + 0x00003c78u, 0x00003c70u, 0x000500c7u, 0x00000006u, 0x00003c79u, 0x00003c78u, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00003c7au, 0x00003c79u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00003c7eu, 0x00003c6cu, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003c7fu, 0x00003c7eu, 0x00000199u, 0x000500c6u, 0x00000006u, + 0x00003c81u, 0x00003c75u, 0x00003c7fu, 0x000500c6u, 0x00000006u, 0x00003c83u, 0x00003c81u, 0x00000333u, + 0x00080041u, 0x000001fbu, 0x00003c86u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003c83u, + 0x0004003du, 0x000001adu, 0x00003c87u, 0x00003c86u, 0x00040071u, 0x00000006u, 0x00003c88u, 0x00003c87u, + 0x000500c2u, 0x00000006u, 0x00003c8bu, 0x00003c88u, 0x00003c7au, 0x000500c7u, 0x00000006u, 0x00003c8cu, + 0x00003c8bu, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00003c8eu, 0x00003c8cu, 0x0000019fu, 0x000500c5u, + 0x00000006u, 0x00003c90u, 0x00003c8cu, 0x00003c8eu, 0x0004007cu, 0x00000008u, 0x00003c92u, 0x00003c90u, + 0x00070050u, 0x00000009u, 0x00003c93u, 0x00003c92u, 0x00003c92u, 0x00003c92u, 0x00003c92u, 0x000300f7u, + 0x00002a14u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x00002a05u, 0x00002a14u, 0x000200f8u, 0x00002a05u, + 0x00050050u, 0x0000004du, 0x00002a08u, 0x00006750u, 0x00002757u, 0x0004007cu, 0x000000a0u, 0x00002a09u, + 0x00002a08u, 0x00050051u, 0x00000006u, 0x00003c9fu, 0x00002a09u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003ca0u, 0x0000258eu, 0x00003c9fu, 0x00050080u, 0x00000006u, 0x00003ca1u, 0x0000258bu, 0x00003ca0u, + 0x00050051u, 0x00000006u, 0x00003ca3u, 0x00002a09u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003ca4u, + 0x00003ca3u, 0x00000196u, 0x00050080u, 0x00000006u, 0x00003ca6u, 0x00003ca1u, 0x00003ca4u, 0x000500c7u, + 0x00000006u, 0x00003ca8u, 0x00003ca6u, 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00003cabu, 0x00003ca3u, + 0x000500c7u, 0x00000006u, 0x00003cacu, 0x00003cabu, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00003cadu, + 0x00003cacu, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00003cb1u, 0x00003c9fu, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00003cb2u, 0x00003cb1u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003cb4u, 0x00003ca8u, + 0x00003cb2u, 0x000500c6u, 0x00000006u, 0x00003cb6u, 0x00003cb4u, 0x00000333u, 0x00080041u, 0x000001fbu, + 0x00003cb9u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003cb6u, 0x0004003du, 0x000001adu, + 0x00003cbau, 0x00003cb9u, 0x00040071u, 0x00000006u, 0x00003cbbu, 0x00003cbau, 0x000500c2u, 0x00000006u, + 0x00003cbeu, 0x00003cbbu, 0x00003cadu, 0x000500c7u, 0x00000006u, 0x00003cbfu, 0x00003cbeu, 0x000006dau, + 0x000500c4u, 0x00000006u, 0x00003cc1u, 0x00003cbfu, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00003cc3u, + 0x00003cbfu, 0x00003cc1u, 0x0004007cu, 0x00000008u, 0x00003cc5u, 0x00003cc3u, 0x00070050u, 0x00000009u, + 0x00003cc6u, 0x00003cc5u, 0x00003cc5u, 0x00003cc5u, 0x00003cc5u, 0x00050050u, 0x0000004du, 0x00002a0fu, + 0x00006748u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x00002a10u, 0x00002a0fu, 0x00050051u, 0x00000006u, + 0x00003cd2u, 0x00002a10u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003cd3u, 0x0000258eu, 0x00003cd2u, + 0x00050080u, 0x00000006u, 0x00003cd4u, 0x0000258bu, 0x00003cd3u, 0x00050051u, 0x00000006u, 0x00003cd6u, + 0x00002a10u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003cd7u, 0x00003cd6u, 0x00000196u, 0x00050080u, + 0x00000006u, 0x00003cd9u, 0x00003cd4u, 0x00003cd7u, 0x000500c7u, 0x00000006u, 0x00003cdbu, 0x00003cd9u, + 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00003cdeu, 0x00003cd6u, 0x000500c7u, 0x00000006u, 0x00003cdfu, + 0x00003cdeu, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00003ce0u, 0x00003cdfu, 0x000006beu, 0x000500c7u, + 0x00000006u, 0x00003ce4u, 0x00003cd2u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003ce5u, 0x00003ce4u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003ce7u, 0x00003cdbu, 0x00003ce5u, 0x000500c6u, 0x00000006u, + 0x00003ce9u, 0x00003ce7u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003cecu, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00003ce9u, 0x0004003du, 0x000001adu, 0x00003cedu, 0x00003cecu, 0x00040071u, + 0x00000006u, 0x00003ceeu, 0x00003cedu, 0x000500c2u, 0x00000006u, 0x00003cf1u, 0x00003ceeu, 0x00003ce0u, + 0x000500c7u, 0x00000006u, 0x00003cf2u, 0x00003cf1u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00003cf4u, + 0x00003cf2u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00003cf6u, 0x00003cf2u, 0x00003cf4u, 0x0004007cu, + 0x00000008u, 0x00003cf8u, 0x00003cf6u, 0x00070050u, 0x00000009u, 0x00003cf9u, 0x00003cf8u, 0x00003cf8u, + 0x00003cf8u, 0x00003cf8u, 0x000200f9u, 0x00002a14u, 0x000200f8u, 0x00002a14u, 0x000700f5u, 0x00000009u, + 0x000069a7u, 0x000067e2u, 0x000029feu, 0x00003cf9u, 0x00002a05u, 0x000700f5u, 0x00000009u, 0x0000692cu, + 0x000067e2u, 0x000029feu, 0x00003cc6u, 0x00002a05u, 0x000300f7u, 0x00002a1eu, 0x00000000u, 0x000400fau, + 0x00002763u, 0x00002a16u, 0x00002a1eu, 0x000200f8u, 0x00002a16u, 0x00050050u, 0x0000004du, 0x00002a19u, + 0x00006750u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x00002a1au, 0x00002a19u, 0x00050051u, 0x00000006u, + 0x00003d05u, 0x00002a1au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d06u, 0x0000258eu, 0x00003d05u, + 0x00050080u, 0x00000006u, 0x00003d07u, 0x0000258bu, 0x00003d06u, 0x00050051u, 0x00000006u, 0x00003d09u, + 0x00002a1au, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003d0au, 0x00003d09u, 0x00000196u, 0x00050080u, + 0x00000006u, 0x00003d0cu, 0x00003d07u, 0x00003d0au, 0x000500c7u, 0x00000006u, 0x00003d0eu, 0x00003d0cu, + 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00003d11u, 0x00003d09u, 0x000500c7u, 0x00000006u, 0x00003d12u, + 0x00003d11u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00003d13u, 0x00003d12u, 0x000006beu, 0x000500c7u, + 0x00000006u, 0x00003d17u, 0x00003d05u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003d18u, 0x00003d17u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003d1au, 0x00003d0eu, 0x00003d18u, 0x000500c6u, 0x00000006u, + 0x00003d1cu, 0x00003d1au, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003d1fu, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00003d1cu, 0x0004003du, 0x000001adu, 0x00003d20u, 0x00003d1fu, 0x00040071u, + 0x00000006u, 0x00003d21u, 0x00003d20u, 0x000500c2u, 0x00000006u, 0x00003d24u, 0x00003d21u, 0x00003d13u, + 0x000500c7u, 0x00000006u, 0x00003d25u, 0x00003d24u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00003d27u, + 0x00003d25u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00003d29u, 0x00003d25u, 0x00003d27u, 0x0004007cu, + 0x00000008u, 0x00003d2bu, 0x00003d29u, 0x00070050u, 0x00000009u, 0x00003d2cu, 0x00003d2bu, 0x00003d2bu, + 0x00003d2bu, 0x00003d2bu, 0x000200f9u, 0x00002a1eu, 0x000200f8u, 0x00002a1eu, 0x000700f5u, 0x00000009u, + 0x00006a21u, 0x000067e2u, 0x00002a14u, 0x00003d2cu, 0x00002a16u, 0x000200f9u, 0x00002a40u, 0x000200f8u, + 0x000029ddu, 0x0004007cu, 0x000000a0u, 0x000029dfu, 0x0000676fu, 0x00050051u, 0x00000006u, 0x00003bbfu, + 0x000029dfu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003bc0u, 0x0000258eu, 0x00003bbfu, 0x00050080u, + 0x00000006u, 0x00003bc1u, 0x0000258bu, 0x00003bc0u, 0x00050051u, 0x00000006u, 0x00003bc3u, 0x000029dfu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003bc4u, 0x00003bc3u, 0x00000330u, 0x00050080u, 0x00000006u, + 0x00003bc6u, 0x00003bc1u, 0x00003bc4u, 0x000500c7u, 0x00000006u, 0x00003bc8u, 0x00003bc6u, 0x000006b6u, + 0x000500c2u, 0x00000006u, 0x00003bcau, 0x00003bc8u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00003bcdu, + 0x00003bbfu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003bceu, 0x00003bcdu, 0x00000196u, 0x000500c6u, + 0x00000006u, 0x00003bd0u, 0x00003bcau, 0x00003bceu, 0x000500c6u, 0x00000006u, 0x00003bd2u, 0x00003bd0u, + 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003bd5u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00003bd2u, 0x0004003du, 0x000001afu, 0x00003bd6u, 0x00003bd5u, 0x00040071u, 0x00000006u, 0x00003bd7u, + 0x00003bd6u, 0x000500c2u, 0x00000006u, 0x00003bd9u, 0x00003bd7u, 0x000001e2u, 0x0004007cu, 0x00000008u, + 0x00003bdau, 0x00003bd9u, 0x000500c7u, 0x00000006u, 0x00003bdcu, 0x00003bd7u, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00003bddu, 0x00003bdcu, 0x00050050u, 0x0000004du, 0x00003bdeu, 0x00003bdau, 0x00003bddu, + 0x0009004fu, 0x00000009u, 0x00003bdfu, 0x00003bdeu, 0x00003bdeu, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000300f7u, 0x000029f3u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x000029e4u, 0x000029f3u, + 0x000200f8u, 0x000029e4u, 0x00050050u, 0x0000004du, 0x000029e7u, 0x00006750u, 0x00002757u, 0x0004007cu, + 0x000000a0u, 0x000029e8u, 0x000029e7u, 0x00050051u, 0x00000006u, 0x00003beau, 0x000029e8u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003bebu, 0x0000258eu, 0x00003beau, 0x00050080u, 0x00000006u, 0x00003becu, + 0x0000258bu, 0x00003bebu, 0x00050051u, 0x00000006u, 0x00003beeu, 0x000029e8u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003befu, 0x00003beeu, 0x00000330u, 0x00050080u, 0x00000006u, 0x00003bf1u, 0x00003becu, + 0x00003befu, 0x000500c7u, 0x00000006u, 0x00003bf3u, 0x00003bf1u, 0x000006b6u, 0x000500c2u, 0x00000006u, + 0x00003bf5u, 0x00003bf3u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00003bf8u, 0x00003beau, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x00003bf9u, 0x00003bf8u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003bfbu, + 0x00003bf5u, 0x00003bf9u, 0x000500c6u, 0x00000006u, 0x00003bfdu, 0x00003bfbu, 0x0000032cu, 0x00080041u, + 0x000001f4u, 0x00003c00u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003bfdu, 0x0004003du, + 0x000001afu, 0x00003c01u, 0x00003c00u, 0x00040071u, 0x00000006u, 0x00003c02u, 0x00003c01u, 0x000500c2u, + 0x00000006u, 0x00003c04u, 0x00003c02u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00003c05u, 0x00003c04u, + 0x000500c7u, 0x00000006u, 0x00003c07u, 0x00003c02u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003c08u, + 0x00003c07u, 0x00050050u, 0x0000004du, 0x00003c09u, 0x00003c05u, 0x00003c08u, 0x0009004fu, 0x00000009u, + 0x00003c0au, 0x00003c09u, 0x00003c09u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, + 0x0000004du, 0x000029eeu, 0x00006748u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x000029efu, 0x000029eeu, + 0x00050051u, 0x00000006u, 0x00003c15u, 0x000029efu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003c16u, + 0x0000258eu, 0x00003c15u, 0x00050080u, 0x00000006u, 0x00003c17u, 0x0000258bu, 0x00003c16u, 0x00050051u, + 0x00000006u, 0x00003c19u, 0x000029efu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c1au, 0x00003c19u, + 0x00000330u, 0x00050080u, 0x00000006u, 0x00003c1cu, 0x00003c17u, 0x00003c1au, 0x000500c7u, 0x00000006u, + 0x00003c1eu, 0x00003c1cu, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003c20u, 0x00003c1eu, 0x00000196u, + 0x000500c7u, 0x00000006u, 0x00003c23u, 0x00003c15u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003c24u, + 0x00003c23u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003c26u, 0x00003c20u, 0x00003c24u, 0x000500c6u, + 0x00000006u, 0x00003c28u, 0x00003c26u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003c2bu, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003c28u, 0x0004003du, 0x000001afu, 0x00003c2cu, 0x00003c2bu, + 0x00040071u, 0x00000006u, 0x00003c2du, 0x00003c2cu, 0x000500c2u, 0x00000006u, 0x00003c2fu, 0x00003c2du, + 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00003c30u, 0x00003c2fu, 0x000500c7u, 0x00000006u, 0x00003c32u, + 0x00003c2du, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003c33u, 0x00003c32u, 0x00050050u, 0x0000004du, + 0x00003c34u, 0x00003c30u, 0x00003c33u, 0x0009004fu, 0x00000009u, 0x00003c35u, 0x00003c34u, 0x00003c34u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000029f3u, 0x000200f8u, 0x000029f3u, + 0x000700f5u, 0x00000009u, 0x000069a5u, 0x000067e2u, 0x000029ddu, 0x00003c35u, 0x000029e4u, 0x000700f5u, + 0x00000009u, 0x0000692au, 0x000067e2u, 0x000029ddu, 0x00003c0au, 0x000029e4u, 0x000300f7u, 0x000029fdu, + 0x00000000u, 0x000400fau, 0x00002763u, 0x000029f5u, 0x000029fdu, 0x000200f8u, 0x000029f5u, 0x00050050u, + 0x0000004du, 0x000029f8u, 0x00006750u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x000029f9u, 0x000029f8u, + 0x00050051u, 0x00000006u, 0x00003c40u, 0x000029f9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003c41u, + 0x0000258eu, 0x00003c40u, 0x00050080u, 0x00000006u, 0x00003c42u, 0x0000258bu, 0x00003c41u, 0x00050051u, + 0x00000006u, 0x00003c44u, 0x000029f9u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c45u, 0x00003c44u, + 0x00000330u, 0x00050080u, 0x00000006u, 0x00003c47u, 0x00003c42u, 0x00003c45u, 0x000500c7u, 0x00000006u, + 0x00003c49u, 0x00003c47u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003c4bu, 0x00003c49u, 0x00000196u, + 0x000500c7u, 0x00000006u, 0x00003c4eu, 0x00003c40u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003c4fu, + 0x00003c4eu, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003c51u, 0x00003c4bu, 0x00003c4fu, 0x000500c6u, + 0x00000006u, 0x00003c53u, 0x00003c51u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003c56u, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003c53u, 0x0004003du, 0x000001afu, 0x00003c57u, 0x00003c56u, + 0x00040071u, 0x00000006u, 0x00003c58u, 0x00003c57u, 0x000500c2u, 0x00000006u, 0x00003c5au, 0x00003c58u, + 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00003c5bu, 0x00003c5au, 0x000500c7u, 0x00000006u, 0x00003c5du, + 0x00003c58u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003c5eu, 0x00003c5du, 0x00050050u, 0x0000004du, + 0x00003c5fu, 0x00003c5bu, 0x00003c5eu, 0x0009004fu, 0x00000009u, 0x00003c60u, 0x00003c5fu, 0x00003c5fu, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000029fdu, 0x000200f8u, 0x000029fdu, + 0x000700f5u, 0x00000009u, 0x00006a1fu, 0x000067e2u, 0x000029f3u, 0x00003c60u, 0x000029f5u, 0x000200f9u, + 0x00002a40u, 0x000200f8u, 0x00002a40u, 0x000900f5u, 0x00000009u, 0x00006a1eu, 0x00006a1fu, 0x000029fdu, + 0x00006a21u, 0x00002a1eu, 0x00006a23u, 0x00002a3fu, 0x000900f5u, 0x00000009u, 0x000069a3u, 0x000069a5u, + 0x000029fdu, 0x000069a7u, 0x00002a1eu, 0x000069a9u, 0x00002a3fu, 0x000900f5u, 0x00000009u, 0x00006928u, + 0x0000692au, 0x000029fdu, 0x0000692cu, 0x00002a1eu, 0x0000692eu, 0x00002a3fu, 0x000900f5u, 0x00000009u, + 0x00006838u, 0x00003bdfu, 0x000029fdu, 0x00003c93u, 0x00002a1eu, 0x00003d50u, 0x00002a3fu, 0x000200f9u, + 0x00002a41u, 0x000200f8u, 0x00002952u, 0x000300f7u, 0x000029d9u, 0x00000000u, 0x000b00fbu, 0x00008597u, + 0x000029d9u, 0x00000000u, 0x00002955u, 0x00000001u, 0x00002976u, 0x00000002u, 0x00002997u, 0x00000003u, + 0x000029b8u, 0x000200f8u, 0x000029b8u, 0x0004007cu, 0x000000a0u, 0x000029bau, 0x0000676fu, 0x00050051u, + 0x00000006u, 0x00003b13u, 0x000029bau, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003b14u, 0x0000258eu, + 0x00003b13u, 0x00050080u, 0x00000006u, 0x00003b15u, 0x0000258bu, 0x00003b14u, 0x00050051u, 0x00000006u, + 0x00003b17u, 0x000029bau, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003b18u, 0x00003b17u, 0x00000330u, + 0x00050080u, 0x00000006u, 0x00003b1au, 0x00003b15u, 0x00003b18u, 0x000500c7u, 0x00000006u, 0x00003b1cu, + 0x00003b1au, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003b1eu, 0x00003b1cu, 0x00000196u, 0x000500c7u, + 0x00000006u, 0x00003b21u, 0x00003b13u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003b22u, 0x00003b21u, + 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003b24u, 0x00003b1eu, 0x00003b22u, 0x000500c6u, 0x00000006u, + 0x00003b26u, 0x00003b24u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003b29u, 0x00000798u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00003b26u, 0x0004003du, 0x000001afu, 0x00003b2au, 0x00003b29u, 0x00040071u, + 0x00000006u, 0x00003b2bu, 0x00003b2au, 0x000500c2u, 0x00000006u, 0x00003b2du, 0x00003b2bu, 0x000001e2u, + 0x0004007cu, 0x00000008u, 0x00003b2eu, 0x00003b2du, 0x000500c7u, 0x00000006u, 0x00003b30u, 0x00003b2bu, + 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003b31u, 0x00003b30u, 0x00050050u, 0x0000004du, 0x00003b32u, + 0x00003b2eu, 0x00003b31u, 0x0009004fu, 0x00000009u, 0x00003b33u, 0x00003b32u, 0x00003b32u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x000029ceu, 0x00000000u, 0x000400fau, 0x00001a60u, + 0x000029bfu, 0x000029ceu, 0x000200f8u, 0x000029bfu, 0x00050050u, 0x0000004du, 0x000029c2u, 0x00006750u, + 0x00002757u, 0x0004007cu, 0x000000a0u, 0x000029c3u, 0x000029c2u, 0x00050051u, 0x00000006u, 0x00003b3eu, + 0x000029c3u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003b3fu, 0x0000258eu, 0x00003b3eu, 0x00050080u, + 0x00000006u, 0x00003b40u, 0x0000258bu, 0x00003b3fu, 0x00050051u, 0x00000006u, 0x00003b42u, 0x000029c3u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003b43u, 0x00003b42u, 0x00000330u, 0x00050080u, 0x00000006u, + 0x00003b45u, 0x00003b40u, 0x00003b43u, 0x000500c7u, 0x00000006u, 0x00003b47u, 0x00003b45u, 0x000006b6u, + 0x000500c2u, 0x00000006u, 0x00003b49u, 0x00003b47u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00003b4cu, + 0x00003b3eu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003b4du, 0x00003b4cu, 0x00000196u, 0x000500c6u, + 0x00000006u, 0x00003b4fu, 0x00003b49u, 0x00003b4du, 0x000500c6u, 0x00000006u, 0x00003b51u, 0x00003b4fu, + 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003b54u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00003b51u, 0x0004003du, 0x000001afu, 0x00003b55u, 0x00003b54u, 0x00040071u, 0x00000006u, 0x00003b56u, + 0x00003b55u, 0x000500c2u, 0x00000006u, 0x00003b58u, 0x00003b56u, 0x000001e2u, 0x0004007cu, 0x00000008u, + 0x00003b59u, 0x00003b58u, 0x000500c7u, 0x00000006u, 0x00003b5bu, 0x00003b56u, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00003b5cu, 0x00003b5bu, 0x00050050u, 0x0000004du, 0x00003b5du, 0x00003b59u, 0x00003b5cu, + 0x0009004fu, 0x00000009u, 0x00003b5eu, 0x00003b5du, 0x00003b5du, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x00050050u, 0x0000004du, 0x000029c9u, 0x00006748u, 0x00002759u, 0x0004007cu, 0x000000a0u, + 0x000029cau, 0x000029c9u, 0x00050051u, 0x00000006u, 0x00003b69u, 0x000029cau, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003b6au, 0x0000258eu, 0x00003b69u, 0x00050080u, 0x00000006u, 0x00003b6bu, 0x0000258bu, + 0x00003b6au, 0x00050051u, 0x00000006u, 0x00003b6du, 0x000029cau, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003b6eu, 0x00003b6du, 0x00000330u, 0x00050080u, 0x00000006u, 0x00003b70u, 0x00003b6bu, 0x00003b6eu, + 0x000500c7u, 0x00000006u, 0x00003b72u, 0x00003b70u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003b74u, + 0x00003b72u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00003b77u, 0x00003b69u, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00003b78u, 0x00003b77u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003b7au, 0x00003b74u, + 0x00003b78u, 0x000500c6u, 0x00000006u, 0x00003b7cu, 0x00003b7au, 0x0000032cu, 0x00080041u, 0x000001f4u, + 0x00003b7fu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003b7cu, 0x0004003du, 0x000001afu, + 0x00003b80u, 0x00003b7fu, 0x00040071u, 0x00000006u, 0x00003b81u, 0x00003b80u, 0x000500c2u, 0x00000006u, + 0x00003b83u, 0x00003b81u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00003b84u, 0x00003b83u, 0x000500c7u, + 0x00000006u, 0x00003b86u, 0x00003b81u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003b87u, 0x00003b86u, + 0x00050050u, 0x0000004du, 0x00003b88u, 0x00003b84u, 0x00003b87u, 0x0009004fu, 0x00000009u, 0x00003b89u, + 0x00003b88u, 0x00003b88u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000029ceu, + 0x000200f8u, 0x000029ceu, 0x000700f5u, 0x00000009u, 0x000069a2u, 0x000067e2u, 0x000029b8u, 0x00003b89u, + 0x000029bfu, 0x000700f5u, 0x00000009u, 0x00006927u, 0x000067e2u, 0x000029b8u, 0x00003b5eu, 0x000029bfu, + 0x000300f7u, 0x000029d8u, 0x00000000u, 0x000400fau, 0x00002763u, 0x000029d0u, 0x000029d8u, 0x000200f8u, + 0x000029d0u, 0x00050050u, 0x0000004du, 0x000029d3u, 0x00006750u, 0x00002759u, 0x0004007cu, 0x000000a0u, + 0x000029d4u, 0x000029d3u, 0x00050051u, 0x00000006u, 0x00003b94u, 0x000029d4u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003b95u, 0x0000258eu, 0x00003b94u, 0x00050080u, 0x00000006u, 0x00003b96u, 0x0000258bu, + 0x00003b95u, 0x00050051u, 0x00000006u, 0x00003b98u, 0x000029d4u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003b99u, 0x00003b98u, 0x00000330u, 0x00050080u, 0x00000006u, 0x00003b9bu, 0x00003b96u, 0x00003b99u, + 0x000500c7u, 0x00000006u, 0x00003b9du, 0x00003b9bu, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003b9fu, + 0x00003b9du, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00003ba2u, 0x00003b94u, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00003ba3u, 0x00003ba2u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003ba5u, 0x00003b9fu, + 0x00003ba3u, 0x000500c6u, 0x00000006u, 0x00003ba7u, 0x00003ba5u, 0x0000032cu, 0x00080041u, 0x000001f4u, + 0x00003baau, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003ba7u, 0x0004003du, 0x000001afu, + 0x00003babu, 0x00003baau, 0x00040071u, 0x00000006u, 0x00003bacu, 0x00003babu, 0x000500c2u, 0x00000006u, + 0x00003baeu, 0x00003bacu, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00003bafu, 0x00003baeu, 0x000500c7u, + 0x00000006u, 0x00003bb1u, 0x00003bacu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003bb2u, 0x00003bb1u, + 0x00050050u, 0x0000004du, 0x00003bb3u, 0x00003bafu, 0x00003bb2u, 0x0009004fu, 0x00000009u, 0x00003bb4u, + 0x00003bb3u, 0x00003bb3u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000029d8u, + 0x000200f8u, 0x000029d8u, 0x000700f5u, 0x00000009u, 0x00006a1cu, 0x000067e2u, 0x000029ceu, 0x00003bb4u, + 0x000029d0u, 0x000200f9u, 0x000029d9u, 0x000200f8u, 0x00002997u, 0x0004007cu, 0x000000a0u, 0x00002999u, + 0x0000676fu, 0x00050051u, 0x00000006u, 0x00003a38u, 0x00002999u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003a39u, 0x0000258eu, 0x00003a38u, 0x00050080u, 0x00000006u, 0x00003a3au, 0x0000258bu, 0x00003a39u, + 0x00050051u, 0x00000006u, 0x00003a3cu, 0x00002999u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003a3du, + 0x00003a3cu, 0x00000330u, 0x00050080u, 0x00000006u, 0x00003a3fu, 0x00003a3au, 0x00003a3du, 0x000500c7u, + 0x00000006u, 0x00003a41u, 0x00003a3fu, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003a43u, 0x00003a41u, + 0x00000196u, 0x000500c7u, 0x00000006u, 0x00003a46u, 0x00003a38u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00003a47u, 0x00003a46u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003a49u, 0x00003a43u, 0x00003a47u, + 0x000500c6u, 0x00000006u, 0x00003a4bu, 0x00003a49u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003a4eu, + 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003a4bu, 0x0004003du, 0x000001afu, 0x00003a4fu, + 0x00003a4eu, 0x00040071u, 0x00000006u, 0x00003a50u, 0x00003a4fu, 0x000500c2u, 0x00000006u, 0x00003a58u, + 0x00003a50u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00003a5au, 0x00003a50u, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00003a5cu, 0x00003a58u, 0x0004007cu, 0x00000008u, 0x00003a62u, 0x00003a5au, 0x00070050u, + 0x00000009u, 0x00003a63u, 0x00003a5cu, 0x00003a5cu, 0x00003a5cu, 0x00003a62u, 0x000300f7u, 0x000029adu, + 0x00000000u, 0x000400fau, 0x00001a60u, 0x0000299eu, 0x000029adu, 0x000200f8u, 0x0000299eu, 0x00050050u, + 0x0000004du, 0x000029a1u, 0x00006750u, 0x00002757u, 0x0004007cu, 0x000000a0u, 0x000029a2u, 0x000029a1u, + 0x00050051u, 0x00000006u, 0x00003a6fu, 0x000029a2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003a70u, + 0x0000258eu, 0x00003a6fu, 0x00050080u, 0x00000006u, 0x00003a71u, 0x0000258bu, 0x00003a70u, 0x00050051u, + 0x00000006u, 0x00003a73u, 0x000029a2u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003a74u, 0x00003a73u, + 0x00000330u, 0x00050080u, 0x00000006u, 0x00003a76u, 0x00003a71u, 0x00003a74u, 0x000500c7u, 0x00000006u, + 0x00003a78u, 0x00003a76u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003a7au, 0x00003a78u, 0x00000196u, + 0x000500c7u, 0x00000006u, 0x00003a7du, 0x00003a6fu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003a7eu, + 0x00003a7du, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003a80u, 0x00003a7au, 0x00003a7eu, 0x000500c6u, + 0x00000006u, 0x00003a82u, 0x00003a80u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003a85u, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003a82u, 0x0004003du, 0x000001afu, 0x00003a86u, 0x00003a85u, + 0x00040071u, 0x00000006u, 0x00003a87u, 0x00003a86u, 0x000500c2u, 0x00000006u, 0x00003a8fu, 0x00003a87u, + 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00003a91u, 0x00003a87u, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x00003a93u, 0x00003a8fu, 0x0004007cu, 0x00000008u, 0x00003a99u, 0x00003a91u, 0x00070050u, 0x00000009u, + 0x00003a9au, 0x00003a93u, 0x00003a93u, 0x00003a93u, 0x00003a99u, 0x00050050u, 0x0000004du, 0x000029a8u, + 0x00006748u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x000029a9u, 0x000029a8u, 0x00050051u, 0x00000006u, + 0x00003aa6u, 0x000029a9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003aa7u, 0x0000258eu, 0x00003aa6u, + 0x00050080u, 0x00000006u, 0x00003aa8u, 0x0000258bu, 0x00003aa7u, 0x00050051u, 0x00000006u, 0x00003aaau, + 0x000029a9u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003aabu, 0x00003aaau, 0x00000330u, 0x00050080u, + 0x00000006u, 0x00003aadu, 0x00003aa8u, 0x00003aabu, 0x000500c7u, 0x00000006u, 0x00003aafu, 0x00003aadu, + 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003ab1u, 0x00003aafu, 0x00000196u, 0x000500c7u, 0x00000006u, + 0x00003ab4u, 0x00003aa6u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003ab5u, 0x00003ab4u, 0x00000196u, + 0x000500c6u, 0x00000006u, 0x00003ab7u, 0x00003ab1u, 0x00003ab5u, 0x000500c6u, 0x00000006u, 0x00003ab9u, + 0x00003ab7u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003abcu, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00003ab9u, 0x0004003du, 0x000001afu, 0x00003abdu, 0x00003abcu, 0x00040071u, 0x00000006u, + 0x00003abeu, 0x00003abdu, 0x000500c2u, 0x00000006u, 0x00003ac6u, 0x00003abeu, 0x000001e2u, 0x000500c7u, + 0x00000006u, 0x00003ac8u, 0x00003abeu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003acau, 0x00003ac6u, + 0x0004007cu, 0x00000008u, 0x00003ad0u, 0x00003ac8u, 0x00070050u, 0x00000009u, 0x00003ad1u, 0x00003acau, + 0x00003acau, 0x00003acau, 0x00003ad0u, 0x000200f9u, 0x000029adu, 0x000200f8u, 0x000029adu, 0x000700f5u, + 0x00000009u, 0x000069a0u, 0x000067e2u, 0x00002997u, 0x00003ad1u, 0x0000299eu, 0x000700f5u, 0x00000009u, + 0x00006925u, 0x000067e2u, 0x00002997u, 0x00003a9au, 0x0000299eu, 0x000300f7u, 0x000029b7u, 0x00000000u, + 0x000400fau, 0x00002763u, 0x000029afu, 0x000029b7u, 0x000200f8u, 0x000029afu, 0x00050050u, 0x0000004du, + 0x000029b2u, 0x00006750u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x000029b3u, 0x000029b2u, 0x00050051u, + 0x00000006u, 0x00003addu, 0x000029b3u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003adeu, 0x0000258eu, + 0x00003addu, 0x00050080u, 0x00000006u, 0x00003adfu, 0x0000258bu, 0x00003adeu, 0x00050051u, 0x00000006u, + 0x00003ae1u, 0x000029b3u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003ae2u, 0x00003ae1u, 0x00000330u, + 0x00050080u, 0x00000006u, 0x00003ae4u, 0x00003adfu, 0x00003ae2u, 0x000500c7u, 0x00000006u, 0x00003ae6u, + 0x00003ae4u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003ae8u, 0x00003ae6u, 0x00000196u, 0x000500c7u, + 0x00000006u, 0x00003aebu, 0x00003addu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003aecu, 0x00003aebu, + 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003aeeu, 0x00003ae8u, 0x00003aecu, 0x000500c6u, 0x00000006u, + 0x00003af0u, 0x00003aeeu, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003af3u, 0x00000798u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00003af0u, 0x0004003du, 0x000001afu, 0x00003af4u, 0x00003af3u, 0x00040071u, + 0x00000006u, 0x00003af5u, 0x00003af4u, 0x000500c2u, 0x00000006u, 0x00003afdu, 0x00003af5u, 0x000001e2u, + 0x000500c7u, 0x00000006u, 0x00003affu, 0x00003af5u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003b01u, + 0x00003afdu, 0x0004007cu, 0x00000008u, 0x00003b07u, 0x00003affu, 0x00070050u, 0x00000009u, 0x00003b08u, + 0x00003b01u, 0x00003b01u, 0x00003b01u, 0x00003b07u, 0x000200f9u, 0x000029b7u, 0x000200f8u, 0x000029b7u, + 0x000700f5u, 0x00000009u, 0x00006a1au, 0x000067e2u, 0x000029adu, 0x00003b08u, 0x000029afu, 0x000200f9u, + 0x000029d9u, 0x000200f8u, 0x00002976u, 0x0004007cu, 0x000000a0u, 0x00002978u, 0x0000676fu, 0x00050051u, + 0x00000006u, 0x00003959u, 0x00002978u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000395au, 0x0000258eu, + 0x00003959u, 0x00050080u, 0x00000006u, 0x0000395bu, 0x0000258bu, 0x0000395au, 0x00050051u, 0x00000006u, + 0x0000395du, 0x00002978u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000395fu, 0x0000395bu, 0x0000395du, + 0x000500c7u, 0x00000006u, 0x00003961u, 0x0000395fu, 0x000006b6u, 0x000500c7u, 0x00000006u, 0x00003965u, + 0x00003959u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003966u, 0x00003965u, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x00003968u, 0x00003961u, 0x00003966u, 0x000500c6u, 0x00000006u, 0x0000396au, 0x00003968u, + 0x00000333u, 0x00080041u, 0x000001fbu, 0x0000396du, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x0000396au, 0x0004003du, 0x000001adu, 0x0000396eu, 0x0000396du, 0x00040071u, 0x00000006u, 0x0000396fu, + 0x0000396eu, 0x000500c2u, 0x00000006u, 0x00003971u, 0x0000396fu, 0x0000019fu, 0x000500c7u, 0x00000006u, + 0x00003973u, 0x0000396fu, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00003975u, 0x00003973u, 0x0000019fu, + 0x000500c5u, 0x00000006u, 0x00003977u, 0x00003973u, 0x00003975u, 0x000500c4u, 0x00000006u, 0x00003979u, + 0x00003971u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x0000397bu, 0x00003971u, 0x00003979u, 0x0004007cu, + 0x00000008u, 0x0000397du, 0x0000397bu, 0x0004007cu, 0x00000008u, 0x00003983u, 0x00003977u, 0x00070050u, + 0x00000009u, 0x00003984u, 0x0000397du, 0x0000397du, 0x0000397du, 0x00003983u, 0x000300f7u, 0x0000298cu, + 0x00000000u, 0x000400fau, 0x00001a60u, 0x0000297du, 0x0000298cu, 0x000200f8u, 0x0000297du, 0x00050050u, + 0x0000004du, 0x00002980u, 0x00006750u, 0x00002757u, 0x0004007cu, 0x000000a0u, 0x00002981u, 0x00002980u, + 0x00050051u, 0x00000006u, 0x00003991u, 0x00002981u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003992u, + 0x0000258eu, 0x00003991u, 0x00050080u, 0x00000006u, 0x00003993u, 0x0000258bu, 0x00003992u, 0x00050051u, + 0x00000006u, 0x00003995u, 0x00002981u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003997u, 0x00003993u, + 0x00003995u, 0x000500c7u, 0x00000006u, 0x00003999u, 0x00003997u, 0x000006b6u, 0x000500c7u, 0x00000006u, + 0x0000399du, 0x00003991u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000399eu, 0x0000399du, 0x00000199u, + 0x000500c6u, 0x00000006u, 0x000039a0u, 0x00003999u, 0x0000399eu, 0x000500c6u, 0x00000006u, 0x000039a2u, + 0x000039a0u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000039a5u, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x000039a2u, 0x0004003du, 0x000001adu, 0x000039a6u, 0x000039a5u, 0x00040071u, 0x00000006u, + 0x000039a7u, 0x000039a6u, 0x000500c2u, 0x00000006u, 0x000039a9u, 0x000039a7u, 0x0000019fu, 0x000500c7u, + 0x00000006u, 0x000039abu, 0x000039a7u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x000039adu, 0x000039abu, + 0x0000019fu, 0x000500c5u, 0x00000006u, 0x000039afu, 0x000039abu, 0x000039adu, 0x000500c4u, 0x00000006u, + 0x000039b1u, 0x000039a9u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x000039b3u, 0x000039a9u, 0x000039b1u, + 0x0004007cu, 0x00000008u, 0x000039b5u, 0x000039b3u, 0x0004007cu, 0x00000008u, 0x000039bbu, 0x000039afu, + 0x00070050u, 0x00000009u, 0x000039bcu, 0x000039b5u, 0x000039b5u, 0x000039b5u, 0x000039bbu, 0x00050050u, + 0x0000004du, 0x00002987u, 0x00006748u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x00002988u, 0x00002987u, + 0x00050051u, 0x00000006u, 0x000039c9u, 0x00002988u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000039cau, + 0x0000258eu, 0x000039c9u, 0x00050080u, 0x00000006u, 0x000039cbu, 0x0000258bu, 0x000039cau, 0x00050051u, + 0x00000006u, 0x000039cdu, 0x00002988u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000039cfu, 0x000039cbu, + 0x000039cdu, 0x000500c7u, 0x00000006u, 0x000039d1u, 0x000039cfu, 0x000006b6u, 0x000500c7u, 0x00000006u, + 0x000039d5u, 0x000039c9u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000039d6u, 0x000039d5u, 0x00000199u, + 0x000500c6u, 0x00000006u, 0x000039d8u, 0x000039d1u, 0x000039d6u, 0x000500c6u, 0x00000006u, 0x000039dau, + 0x000039d8u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000039ddu, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x000039dau, 0x0004003du, 0x000001adu, 0x000039deu, 0x000039ddu, 0x00040071u, 0x00000006u, + 0x000039dfu, 0x000039deu, 0x000500c2u, 0x00000006u, 0x000039e1u, 0x000039dfu, 0x0000019fu, 0x000500c7u, + 0x00000006u, 0x000039e3u, 0x000039dfu, 0x000006dau, 0x000500c4u, 0x00000006u, 0x000039e5u, 0x000039e3u, + 0x0000019fu, 0x000500c5u, 0x00000006u, 0x000039e7u, 0x000039e3u, 0x000039e5u, 0x000500c4u, 0x00000006u, + 0x000039e9u, 0x000039e1u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x000039ebu, 0x000039e1u, 0x000039e9u, + 0x0004007cu, 0x00000008u, 0x000039edu, 0x000039ebu, 0x0004007cu, 0x00000008u, 0x000039f3u, 0x000039e7u, + 0x00070050u, 0x00000009u, 0x000039f4u, 0x000039edu, 0x000039edu, 0x000039edu, 0x000039f3u, 0x000200f9u, + 0x0000298cu, 0x000200f8u, 0x0000298cu, 0x000700f5u, 0x00000009u, 0x0000699eu, 0x000067e2u, 0x00002976u, + 0x000039f4u, 0x0000297du, 0x000700f5u, 0x00000009u, 0x00006923u, 0x000067e2u, 0x00002976u, 0x000039bcu, + 0x0000297du, 0x000300f7u, 0x00002996u, 0x00000000u, 0x000400fau, 0x00002763u, 0x0000298eu, 0x00002996u, + 0x000200f8u, 0x0000298eu, 0x00050050u, 0x0000004du, 0x00002991u, 0x00006750u, 0x00002759u, 0x0004007cu, + 0x000000a0u, 0x00002992u, 0x00002991u, 0x00050051u, 0x00000006u, 0x00003a01u, 0x00002992u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003a02u, 0x0000258eu, 0x00003a01u, 0x00050080u, 0x00000006u, 0x00003a03u, + 0x0000258bu, 0x00003a02u, 0x00050051u, 0x00000006u, 0x00003a05u, 0x00002992u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003a07u, 0x00003a03u, 0x00003a05u, 0x000500c7u, 0x00000006u, 0x00003a09u, 0x00003a07u, + 0x000006b6u, 0x000500c7u, 0x00000006u, 0x00003a0du, 0x00003a01u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00003a0eu, 0x00003a0du, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003a10u, 0x00003a09u, 0x00003a0eu, + 0x000500c6u, 0x00000006u, 0x00003a12u, 0x00003a10u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003a15u, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003a12u, 0x0004003du, 0x000001adu, 0x00003a16u, + 0x00003a15u, 0x00040071u, 0x00000006u, 0x00003a17u, 0x00003a16u, 0x000500c2u, 0x00000006u, 0x00003a19u, + 0x00003a17u, 0x0000019fu, 0x000500c7u, 0x00000006u, 0x00003a1bu, 0x00003a17u, 0x000006dau, 0x000500c4u, + 0x00000006u, 0x00003a1du, 0x00003a1bu, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00003a1fu, 0x00003a1bu, + 0x00003a1du, 0x000500c4u, 0x00000006u, 0x00003a21u, 0x00003a19u, 0x0000019fu, 0x000500c5u, 0x00000006u, + 0x00003a23u, 0x00003a19u, 0x00003a21u, 0x0004007cu, 0x00000008u, 0x00003a25u, 0x00003a23u, 0x0004007cu, + 0x00000008u, 0x00003a2bu, 0x00003a1fu, 0x00070050u, 0x00000009u, 0x00003a2cu, 0x00003a25u, 0x00003a25u, + 0x00003a25u, 0x00003a2bu, 0x000200f9u, 0x00002996u, 0x000200f8u, 0x00002996u, 0x000700f5u, 0x00000009u, + 0x00006a18u, 0x000067e2u, 0x0000298cu, 0x00003a2cu, 0x0000298eu, 0x000200f9u, 0x000029d9u, 0x000200f8u, + 0x00002955u, 0x0004007cu, 0x000000a0u, 0x00002957u, 0x0000676fu, 0x00050051u, 0x00000006u, 0x00003851u, + 0x00002957u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003852u, 0x0000258eu, 0x00003851u, 0x00050080u, + 0x00000006u, 0x00003853u, 0x0000258bu, 0x00003852u, 0x00050051u, 0x00000006u, 0x00003855u, 0x00002957u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003856u, 0x00003855u, 0x00000196u, 0x00050080u, 0x00000006u, + 0x00003858u, 0x00003853u, 0x00003856u, 0x000500c7u, 0x00000006u, 0x0000385au, 0x00003858u, 0x000006b6u, + 0x000400c8u, 0x00000006u, 0x0000385du, 0x00003855u, 0x000500c7u, 0x00000006u, 0x0000385eu, 0x0000385du, + 0x0000032cu, 0x00050084u, 0x00000006u, 0x0000385fu, 0x0000385eu, 0x000006beu, 0x000500c7u, 0x00000006u, + 0x00003863u, 0x00003851u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003864u, 0x00003863u, 0x00000199u, + 0x000500c6u, 0x00000006u, 0x00003866u, 0x0000385au, 0x00003864u, 0x000500c6u, 0x00000006u, 0x00003868u, + 0x00003866u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x0000386bu, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00003868u, 0x0004003du, 0x000001adu, 0x0000386cu, 0x0000386bu, 0x00040071u, 0x00000006u, + 0x0000386du, 0x0000386cu, 0x000500c2u, 0x00000006u, 0x00003870u, 0x0000386du, 0x0000385fu, 0x000500c7u, + 0x00000006u, 0x00003871u, 0x00003870u, 0x000006dau, 0x000500c7u, 0x00000006u, 0x00003873u, 0x00003871u, + 0x00000711u, 0x000500c4u, 0x00000006u, 0x00003875u, 0x00003873u, 0x0000019fu, 0x000500c4u, 0x00000006u, + 0x00003877u, 0x00003873u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x00003878u, 0x00003875u, 0x00003877u, + 0x000500c2u, 0x00000006u, 0x0000387au, 0x00003873u, 0x00000199u, 0x000500c5u, 0x00000006u, 0x0000387bu, + 0x00003878u, 0x0000387au, 0x0004007cu, 0x00000008u, 0x0000387du, 0x0000387bu, 0x000500c7u, 0x00000006u, + 0x00003883u, 0x00003871u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00003884u, 0x00003883u, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x00003885u, 0x00003884u, 0x00070050u, 0x00000009u, 0x00003886u, 0x0000387du, + 0x0000387du, 0x0000387du, 0x00003885u, 0x000300f7u, 0x0000296bu, 0x00000000u, 0x000400fau, 0x00001a60u, + 0x0000295cu, 0x0000296bu, 0x000200f8u, 0x0000295cu, 0x00050050u, 0x0000004du, 0x0000295fu, 0x00006750u, + 0x00002757u, 0x0004007cu, 0x000000a0u, 0x00002960u, 0x0000295fu, 0x00050051u, 0x00000006u, 0x00003893u, + 0x00002960u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003894u, 0x0000258eu, 0x00003893u, 0x00050080u, + 0x00000006u, 0x00003895u, 0x0000258bu, 0x00003894u, 0x00050051u, 0x00000006u, 0x00003897u, 0x00002960u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003898u, 0x00003897u, 0x00000196u, 0x00050080u, 0x00000006u, + 0x0000389au, 0x00003895u, 0x00003898u, 0x000500c7u, 0x00000006u, 0x0000389cu, 0x0000389au, 0x000006b6u, + 0x000400c8u, 0x00000006u, 0x0000389fu, 0x00003897u, 0x000500c7u, 0x00000006u, 0x000038a0u, 0x0000389fu, + 0x0000032cu, 0x00050084u, 0x00000006u, 0x000038a1u, 0x000038a0u, 0x000006beu, 0x000500c7u, 0x00000006u, + 0x000038a5u, 0x00003893u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000038a6u, 0x000038a5u, 0x00000199u, + 0x000500c6u, 0x00000006u, 0x000038a8u, 0x0000389cu, 0x000038a6u, 0x000500c6u, 0x00000006u, 0x000038aau, + 0x000038a8u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000038adu, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x000038aau, 0x0004003du, 0x000001adu, 0x000038aeu, 0x000038adu, 0x00040071u, 0x00000006u, + 0x000038afu, 0x000038aeu, 0x000500c2u, 0x00000006u, 0x000038b2u, 0x000038afu, 0x000038a1u, 0x000500c7u, + 0x00000006u, 0x000038b3u, 0x000038b2u, 0x000006dau, 0x000500c7u, 0x00000006u, 0x000038b5u, 0x000038b3u, + 0x00000711u, 0x000500c4u, 0x00000006u, 0x000038b7u, 0x000038b5u, 0x0000019fu, 0x000500c4u, 0x00000006u, + 0x000038b9u, 0x000038b5u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x000038bau, 0x000038b7u, 0x000038b9u, + 0x000500c2u, 0x00000006u, 0x000038bcu, 0x000038b5u, 0x00000199u, 0x000500c5u, 0x00000006u, 0x000038bdu, + 0x000038bau, 0x000038bcu, 0x0004007cu, 0x00000008u, 0x000038bfu, 0x000038bdu, 0x000500c7u, 0x00000006u, + 0x000038c5u, 0x000038b3u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x000038c6u, 0x000038c5u, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x000038c7u, 0x000038c6u, 0x00070050u, 0x00000009u, 0x000038c8u, 0x000038bfu, + 0x000038bfu, 0x000038bfu, 0x000038c7u, 0x00050050u, 0x0000004du, 0x00002966u, 0x00006748u, 0x00002759u, + 0x0004007cu, 0x000000a0u, 0x00002967u, 0x00002966u, 0x00050051u, 0x00000006u, 0x000038d5u, 0x00002967u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000038d6u, 0x0000258eu, 0x000038d5u, 0x00050080u, 0x00000006u, + 0x000038d7u, 0x0000258bu, 0x000038d6u, 0x00050051u, 0x00000006u, 0x000038d9u, 0x00002967u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000038dau, 0x000038d9u, 0x00000196u, 0x00050080u, 0x00000006u, 0x000038dcu, + 0x000038d7u, 0x000038dau, 0x000500c7u, 0x00000006u, 0x000038deu, 0x000038dcu, 0x000006b6u, 0x000400c8u, + 0x00000006u, 0x000038e1u, 0x000038d9u, 0x000500c7u, 0x00000006u, 0x000038e2u, 0x000038e1u, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x000038e3u, 0x000038e2u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x000038e7u, + 0x000038d5u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000038e8u, 0x000038e7u, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x000038eau, 0x000038deu, 0x000038e8u, 0x000500c6u, 0x00000006u, 0x000038ecu, 0x000038eau, + 0x00000333u, 0x00080041u, 0x000001fbu, 0x000038efu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000038ecu, 0x0004003du, 0x000001adu, 0x000038f0u, 0x000038efu, 0x00040071u, 0x00000006u, 0x000038f1u, + 0x000038f0u, 0x000500c2u, 0x00000006u, 0x000038f4u, 0x000038f1u, 0x000038e3u, 0x000500c7u, 0x00000006u, + 0x000038f5u, 0x000038f4u, 0x000006dau, 0x000500c7u, 0x00000006u, 0x000038f7u, 0x000038f5u, 0x00000711u, + 0x000500c4u, 0x00000006u, 0x000038f9u, 0x000038f7u, 0x0000019fu, 0x000500c4u, 0x00000006u, 0x000038fbu, + 0x000038f7u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x000038fcu, 0x000038f9u, 0x000038fbu, 0x000500c2u, + 0x00000006u, 0x000038feu, 0x000038f7u, 0x00000199u, 0x000500c5u, 0x00000006u, 0x000038ffu, 0x000038fcu, + 0x000038feu, 0x0004007cu, 0x00000008u, 0x00003901u, 0x000038ffu, 0x000500c7u, 0x00000006u, 0x00003907u, + 0x000038f5u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00003908u, 0x00003907u, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00003909u, 0x00003908u, 0x00070050u, 0x00000009u, 0x0000390au, 0x00003901u, 0x00003901u, + 0x00003901u, 0x00003909u, 0x000200f9u, 0x0000296bu, 0x000200f8u, 0x0000296bu, 0x000700f5u, 0x00000009u, + 0x0000699cu, 0x000067e2u, 0x00002955u, 0x0000390au, 0x0000295cu, 0x000700f5u, 0x00000009u, 0x00006921u, + 0x000067e2u, 0x00002955u, 0x000038c8u, 0x0000295cu, 0x000300f7u, 0x00002975u, 0x00000000u, 0x000400fau, + 0x00002763u, 0x0000296du, 0x00002975u, 0x000200f8u, 0x0000296du, 0x00050050u, 0x0000004du, 0x00002970u, + 0x00006750u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x00002971u, 0x00002970u, 0x00050051u, 0x00000006u, + 0x00003917u, 0x00002971u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003918u, 0x0000258eu, 0x00003917u, + 0x00050080u, 0x00000006u, 0x00003919u, 0x0000258bu, 0x00003918u, 0x00050051u, 0x00000006u, 0x0000391bu, + 0x00002971u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000391cu, 0x0000391bu, 0x00000196u, 0x00050080u, + 0x00000006u, 0x0000391eu, 0x00003919u, 0x0000391cu, 0x000500c7u, 0x00000006u, 0x00003920u, 0x0000391eu, + 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00003923u, 0x0000391bu, 0x000500c7u, 0x00000006u, 0x00003924u, + 0x00003923u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00003925u, 0x00003924u, 0x000006beu, 0x000500c7u, + 0x00000006u, 0x00003929u, 0x00003917u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000392au, 0x00003929u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x0000392cu, 0x00003920u, 0x0000392au, 0x000500c6u, 0x00000006u, + 0x0000392eu, 0x0000392cu, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003931u, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x0000392eu, 0x0004003du, 0x000001adu, 0x00003932u, 0x00003931u, 0x00040071u, + 0x00000006u, 0x00003933u, 0x00003932u, 0x000500c2u, 0x00000006u, 0x00003936u, 0x00003933u, 0x00003925u, + 0x000500c7u, 0x00000006u, 0x00003937u, 0x00003936u, 0x000006dau, 0x000500c7u, 0x00000006u, 0x00003939u, + 0x00003937u, 0x00000711u, 0x000500c4u, 0x00000006u, 0x0000393bu, 0x00003939u, 0x0000019fu, 0x000500c4u, + 0x00000006u, 0x0000393du, 0x00003939u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x0000393eu, 0x0000393bu, + 0x0000393du, 0x000500c2u, 0x00000006u, 0x00003940u, 0x00003939u, 0x00000199u, 0x000500c5u, 0x00000006u, + 0x00003941u, 0x0000393eu, 0x00003940u, 0x0004007cu, 0x00000008u, 0x00003943u, 0x00003941u, 0x000500c7u, + 0x00000006u, 0x00003949u, 0x00003937u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x0000394au, 0x00003949u, + 0x0000068bu, 0x0004007cu, 0x00000008u, 0x0000394bu, 0x0000394au, 0x00070050u, 0x00000009u, 0x0000394cu, + 0x00003943u, 0x00003943u, 0x00003943u, 0x0000394bu, 0x000200f9u, 0x00002975u, 0x000200f8u, 0x00002975u, + 0x000700f5u, 0x00000009u, 0x00006a16u, 0x000067e2u, 0x0000296bu, 0x0000394cu, 0x0000296du, 0x000200f9u, + 0x000029d9u, 0x000200f8u, 0x000029d9u, 0x000d00f5u, 0x00000009u, 0x00006a15u, 0x000067e2u, 0x00002952u, + 0x00006a16u, 0x00002975u, 0x00006a18u, 0x00002996u, 0x00006a1au, 0x000029b7u, 0x00006a1cu, 0x000029d8u, + 0x000d00f5u, 0x00000009u, 0x0000699au, 0x000067e2u, 0x00002952u, 0x0000699cu, 0x00002975u, 0x0000699eu, + 0x00002996u, 0x000069a0u, 0x000029b7u, 0x000069a2u, 0x000029d8u, 0x000d00f5u, 0x00000009u, 0x0000691fu, + 0x000067e2u, 0x00002952u, 0x00006921u, 0x00002975u, 0x00006923u, 0x00002996u, 0x00006925u, 0x000029b7u, + 0x00006927u, 0x000029d8u, 0x000d00f5u, 0x00000009u, 0x0000682fu, 0x000067e2u, 0x00002952u, 0x00003886u, + 0x00002975u, 0x00003984u, 0x00002996u, 0x00003a63u, 0x000029b7u, 0x00003b33u, 0x000029d8u, 0x000200f9u, + 0x00002a41u, 0x000200f8u, 0x000028dfu, 0x000300f7u, 0x00002951u, 0x00000000u, 0x000700fbu, 0x00008597u, + 0x000028e2u, 0x00000000u, 0x00002903u, 0x00000001u, 0x00002930u, 0x000200f8u, 0x00002930u, 0x0004007cu, + 0x000000a0u, 0x00002932u, 0x0000676fu, 0x00050051u, 0x00000006u, 0x000037bfu, 0x00002932u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000037c0u, 0x0000258eu, 0x000037bfu, 0x00050080u, 0x00000006u, 0x000037c1u, + 0x0000258bu, 0x000037c0u, 0x00050051u, 0x00000006u, 0x000037c3u, 0x00002932u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x000037c5u, 0x000037c1u, 0x000037c3u, 0x000500c7u, 0x00000006u, 0x000037c7u, 0x000037c5u, + 0x000006b6u, 0x000500c7u, 0x00000006u, 0x000037cbu, 0x000037bfu, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x000037ccu, 0x000037cbu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x000037ceu, 0x000037c7u, 0x000037ccu, + 0x000500c6u, 0x00000006u, 0x000037d0u, 0x000037ceu, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000037d3u, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000037d0u, 0x0004003du, 0x000001adu, 0x000037d4u, + 0x000037d3u, 0x00040071u, 0x00000006u, 0x000037d5u, 0x000037d4u, 0x0004007cu, 0x00000008u, 0x000037d7u, + 0x000037d5u, 0x00070050u, 0x00000009u, 0x000037d8u, 0x000037d7u, 0x000037d7u, 0x000037d7u, 0x000037d7u, + 0x000300f7u, 0x00002946u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x00002937u, 0x00002946u, 0x000200f8u, + 0x00002937u, 0x00050050u, 0x0000004du, 0x0000293au, 0x00006750u, 0x00002757u, 0x0004007cu, 0x000000a0u, + 0x0000293bu, 0x0000293au, 0x00050051u, 0x00000006u, 0x000037e3u, 0x0000293bu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000037e4u, 0x0000258eu, 0x000037e3u, 0x00050080u, 0x00000006u, 0x000037e5u, 0x0000258bu, + 0x000037e4u, 0x00050051u, 0x00000006u, 0x000037e7u, 0x0000293bu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x000037e9u, 0x000037e5u, 0x000037e7u, 0x000500c7u, 0x00000006u, 0x000037ebu, 0x000037e9u, 0x000006b6u, + 0x000500c7u, 0x00000006u, 0x000037efu, 0x000037e3u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000037f0u, + 0x000037efu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x000037f2u, 0x000037ebu, 0x000037f0u, 0x000500c6u, + 0x00000006u, 0x000037f4u, 0x000037f2u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000037f7u, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x000037f4u, 0x0004003du, 0x000001adu, 0x000037f8u, 0x000037f7u, + 0x00040071u, 0x00000006u, 0x000037f9u, 0x000037f8u, 0x0004007cu, 0x00000008u, 0x000037fbu, 0x000037f9u, + 0x00070050u, 0x00000009u, 0x000037fcu, 0x000037fbu, 0x000037fbu, 0x000037fbu, 0x000037fbu, 0x00050050u, + 0x0000004du, 0x00002941u, 0x00006748u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x00002942u, 0x00002941u, + 0x00050051u, 0x00000006u, 0x00003807u, 0x00002942u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003808u, + 0x0000258eu, 0x00003807u, 0x00050080u, 0x00000006u, 0x00003809u, 0x0000258bu, 0x00003808u, 0x00050051u, + 0x00000006u, 0x0000380bu, 0x00002942u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000380du, 0x00003809u, + 0x0000380bu, 0x000500c7u, 0x00000006u, 0x0000380fu, 0x0000380du, 0x000006b6u, 0x000500c7u, 0x00000006u, + 0x00003813u, 0x00003807u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003814u, 0x00003813u, 0x00000199u, + 0x000500c6u, 0x00000006u, 0x00003816u, 0x0000380fu, 0x00003814u, 0x000500c6u, 0x00000006u, 0x00003818u, + 0x00003816u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x0000381bu, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00003818u, 0x0004003du, 0x000001adu, 0x0000381cu, 0x0000381bu, 0x00040071u, 0x00000006u, + 0x0000381du, 0x0000381cu, 0x0004007cu, 0x00000008u, 0x0000381fu, 0x0000381du, 0x00070050u, 0x00000009u, + 0x00003820u, 0x0000381fu, 0x0000381fu, 0x0000381fu, 0x0000381fu, 0x000200f9u, 0x00002946u, 0x000200f8u, + 0x00002946u, 0x000700f5u, 0x00000009u, 0x00006999u, 0x000067e2u, 0x00002930u, 0x00003820u, 0x00002937u, + 0x000700f5u, 0x00000009u, 0x0000691eu, 0x000067e2u, 0x00002930u, 0x000037fcu, 0x00002937u, 0x000300f7u, + 0x00002950u, 0x00000000u, 0x000400fau, 0x00002763u, 0x00002948u, 0x00002950u, 0x000200f8u, 0x00002948u, + 0x00050050u, 0x0000004du, 0x0000294bu, 0x00006750u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x0000294cu, + 0x0000294bu, 0x00050051u, 0x00000006u, 0x0000382bu, 0x0000294cu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000382cu, 0x0000258eu, 0x0000382bu, 0x00050080u, 0x00000006u, 0x0000382du, 0x0000258bu, 0x0000382cu, + 0x00050051u, 0x00000006u, 0x0000382fu, 0x0000294cu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003831u, + 0x0000382du, 0x0000382fu, 0x000500c7u, 0x00000006u, 0x00003833u, 0x00003831u, 0x000006b6u, 0x000500c7u, + 0x00000006u, 0x00003837u, 0x0000382bu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003838u, 0x00003837u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x0000383au, 0x00003833u, 0x00003838u, 0x000500c6u, 0x00000006u, + 0x0000383cu, 0x0000383au, 0x00000333u, 0x00080041u, 0x000001fbu, 0x0000383fu, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x0000383cu, 0x0004003du, 0x000001adu, 0x00003840u, 0x0000383fu, 0x00040071u, + 0x00000006u, 0x00003841u, 0x00003840u, 0x0004007cu, 0x00000008u, 0x00003843u, 0x00003841u, 0x00070050u, + 0x00000009u, 0x00003844u, 0x00003843u, 0x00003843u, 0x00003843u, 0x00003843u, 0x000200f9u, 0x00002950u, + 0x000200f8u, 0x00002950u, 0x000700f5u, 0x00000009u, 0x00006a13u, 0x000067e2u, 0x00002946u, 0x00003844u, + 0x00002948u, 0x000200f9u, 0x00002951u, 0x000200f8u, 0x00002903u, 0x0004007cu, 0x000000a0u, 0x00002905u, + 0x0000676fu, 0x0004007cu, 0x00000006u, 0x00002908u, 0x0000259du, 0x00050051u, 0x00000006u, 0x000036f4u, + 0x00002905u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000036f5u, 0x0000258eu, 0x000036f4u, 0x00050080u, + 0x00000006u, 0x000036f6u, 0x0000258bu, 0x000036f5u, 0x00050051u, 0x00000006u, 0x000036f8u, 0x00002905u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x000036f9u, 0x000036f8u, 0x00000196u, 0x00050080u, 0x00000006u, + 0x000036fbu, 0x000036f6u, 0x000036f9u, 0x000500c7u, 0x00000006u, 0x000036fdu, 0x000036fbu, 0x000006b6u, + 0x000400c8u, 0x00000006u, 0x00003700u, 0x000036f8u, 0x000500c7u, 0x00000006u, 0x00003701u, 0x00003700u, + 0x0000032cu, 0x00050084u, 0x00000006u, 0x00003702u, 0x00003701u, 0x000006beu, 0x000500c7u, 0x00000006u, + 0x00003706u, 0x000036f4u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003707u, 0x00003706u, 0x00000199u, + 0x000500c6u, 0x00000006u, 0x00003709u, 0x000036fdu, 0x00003707u, 0x000500c6u, 0x00000006u, 0x0000370bu, + 0x00003709u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x0000370eu, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x0000370bu, 0x0004003du, 0x000001adu, 0x0000370fu, 0x0000370eu, 0x00040071u, 0x00000006u, + 0x00003710u, 0x0000370fu, 0x000500c2u, 0x00000006u, 0x00003713u, 0x00003710u, 0x00003702u, 0x000500c7u, + 0x00000006u, 0x00003714u, 0x00003713u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00003716u, 0x00002908u, + 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00003718u, 0x00003714u, 0x00003716u, 0x0004007cu, 0x00000008u, + 0x0000371au, 0x00003718u, 0x00070050u, 0x00000009u, 0x0000371bu, 0x0000371au, 0x0000371au, 0x0000371au, + 0x0000371au, 0x000300f7u, 0x00002922u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x0000290du, 0x00002922u, + 0x000200f8u, 0x0000290du, 0x00050050u, 0x0000004du, 0x00002910u, 0x00006750u, 0x00002757u, 0x0004007cu, + 0x000000a0u, 0x00002911u, 0x00002910u, 0x00050051u, 0x00000006u, 0x00003727u, 0x00002911u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003728u, 0x0000258eu, 0x00003727u, 0x00050080u, 0x00000006u, 0x00003729u, + 0x0000258bu, 0x00003728u, 0x00050051u, 0x00000006u, 0x0000372bu, 0x00002911u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x0000372cu, 0x0000372bu, 0x00000196u, 0x00050080u, 0x00000006u, 0x0000372eu, 0x00003729u, + 0x0000372cu, 0x000500c7u, 0x00000006u, 0x00003730u, 0x0000372eu, 0x000006b6u, 0x000400c8u, 0x00000006u, + 0x00003733u, 0x0000372bu, 0x000500c7u, 0x00000006u, 0x00003734u, 0x00003733u, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00003735u, 0x00003734u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00003739u, 0x00003727u, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000373au, 0x00003739u, 0x00000199u, 0x000500c6u, 0x00000006u, + 0x0000373cu, 0x00003730u, 0x0000373au, 0x000500c6u, 0x00000006u, 0x0000373eu, 0x0000373cu, 0x00000333u, + 0x00080041u, 0x000001fbu, 0x00003741u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000373eu, + 0x0004003du, 0x000001adu, 0x00003742u, 0x00003741u, 0x00040071u, 0x00000006u, 0x00003743u, 0x00003742u, + 0x000500c2u, 0x00000006u, 0x00003746u, 0x00003743u, 0x00003735u, 0x000500c7u, 0x00000006u, 0x00003747u, + 0x00003746u, 0x000006dau, 0x000500c5u, 0x00000006u, 0x0000374bu, 0x00003747u, 0x00003716u, 0x0004007cu, + 0x00000008u, 0x0000374du, 0x0000374bu, 0x00070050u, 0x00000009u, 0x0000374eu, 0x0000374du, 0x0000374du, + 0x0000374du, 0x0000374du, 0x00050050u, 0x0000004du, 0x0000291au, 0x00006748u, 0x00002759u, 0x0004007cu, + 0x000000a0u, 0x0000291bu, 0x0000291au, 0x00050051u, 0x00000006u, 0x0000375au, 0x0000291bu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000375bu, 0x0000258eu, 0x0000375au, 0x00050080u, 0x00000006u, 0x0000375cu, + 0x0000258bu, 0x0000375bu, 0x00050051u, 0x00000006u, 0x0000375eu, 0x0000291bu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x0000375fu, 0x0000375eu, 0x00000196u, 0x00050080u, 0x00000006u, 0x00003761u, 0x0000375cu, + 0x0000375fu, 0x000500c7u, 0x00000006u, 0x00003763u, 0x00003761u, 0x000006b6u, 0x000400c8u, 0x00000006u, + 0x00003766u, 0x0000375eu, 0x000500c7u, 0x00000006u, 0x00003767u, 0x00003766u, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00003768u, 0x00003767u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x0000376cu, 0x0000375au, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000376du, 0x0000376cu, 0x00000199u, 0x000500c6u, 0x00000006u, + 0x0000376fu, 0x00003763u, 0x0000376du, 0x000500c6u, 0x00000006u, 0x00003771u, 0x0000376fu, 0x00000333u, + 0x00080041u, 0x000001fbu, 0x00003774u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003771u, + 0x0004003du, 0x000001adu, 0x00003775u, 0x00003774u, 0x00040071u, 0x00000006u, 0x00003776u, 0x00003775u, + 0x000500c2u, 0x00000006u, 0x00003779u, 0x00003776u, 0x00003768u, 0x000500c7u, 0x00000006u, 0x0000377au, + 0x00003779u, 0x000006dau, 0x000500c5u, 0x00000006u, 0x0000377eu, 0x0000377au, 0x00003716u, 0x0004007cu, + 0x00000008u, 0x00003780u, 0x0000377eu, 0x00070050u, 0x00000009u, 0x00003781u, 0x00003780u, 0x00003780u, + 0x00003780u, 0x00003780u, 0x000200f9u, 0x00002922u, 0x000200f8u, 0x00002922u, 0x000700f5u, 0x00000009u, + 0x00006997u, 0x000067e2u, 0x00002903u, 0x00003781u, 0x0000290du, 0x000700f5u, 0x00000009u, 0x0000691cu, + 0x000067e2u, 0x00002903u, 0x0000374eu, 0x0000290du, 0x000300f7u, 0x0000292fu, 0x00000000u, 0x000400fau, + 0x00002763u, 0x00002924u, 0x0000292fu, 0x000200f8u, 0x00002924u, 0x00050050u, 0x0000004du, 0x00002927u, + 0x00006750u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x00002928u, 0x00002927u, 0x00050051u, 0x00000006u, + 0x0000378du, 0x00002928u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000378eu, 0x0000258eu, 0x0000378du, + 0x00050080u, 0x00000006u, 0x0000378fu, 0x0000258bu, 0x0000378eu, 0x00050051u, 0x00000006u, 0x00003791u, + 0x00002928u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003792u, 0x00003791u, 0x00000196u, 0x00050080u, + 0x00000006u, 0x00003794u, 0x0000378fu, 0x00003792u, 0x000500c7u, 0x00000006u, 0x00003796u, 0x00003794u, + 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00003799u, 0x00003791u, 0x000500c7u, 0x00000006u, 0x0000379au, + 0x00003799u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x0000379bu, 0x0000379au, 0x000006beu, 0x000500c7u, + 0x00000006u, 0x0000379fu, 0x0000378du, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000037a0u, 0x0000379fu, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x000037a2u, 0x00003796u, 0x000037a0u, 0x000500c6u, 0x00000006u, + 0x000037a4u, 0x000037a2u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000037a7u, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x000037a4u, 0x0004003du, 0x000001adu, 0x000037a8u, 0x000037a7u, 0x00040071u, + 0x00000006u, 0x000037a9u, 0x000037a8u, 0x000500c2u, 0x00000006u, 0x000037acu, 0x000037a9u, 0x0000379bu, + 0x000500c7u, 0x00000006u, 0x000037adu, 0x000037acu, 0x000006dau, 0x000500c5u, 0x00000006u, 0x000037b1u, + 0x000037adu, 0x00003716u, 0x0004007cu, 0x00000008u, 0x000037b3u, 0x000037b1u, 0x00070050u, 0x00000009u, + 0x000037b4u, 0x000037b3u, 0x000037b3u, 0x000037b3u, 0x000037b3u, 0x000200f9u, 0x0000292fu, 0x000200f8u, + 0x0000292fu, 0x000700f5u, 0x00000009u, 0x00006a11u, 0x000067e2u, 0x00002922u, 0x000037b4u, 0x00002924u, + 0x000200f9u, 0x00002951u, 0x000200f8u, 0x000028e2u, 0x0004007cu, 0x000000a0u, 0x000028e4u, 0x0000676fu, + 0x00050051u, 0x00000006u, 0x00003647u, 0x000028e4u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003648u, + 0x0000258eu, 0x00003647u, 0x00050080u, 0x00000006u, 0x00003649u, 0x0000258bu, 0x00003648u, 0x00050051u, + 0x00000006u, 0x0000364bu, 0x000028e4u, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000364cu, 0x0000364bu, + 0x00000330u, 0x00050080u, 0x00000006u, 0x0000364eu, 0x00003649u, 0x0000364cu, 0x000500c7u, 0x00000006u, + 0x00003650u, 0x0000364eu, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003652u, 0x00003650u, 0x00000196u, + 0x000500c7u, 0x00000006u, 0x00003655u, 0x00003647u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003656u, + 0x00003655u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003658u, 0x00003652u, 0x00003656u, 0x000500c6u, + 0x00000006u, 0x0000365au, 0x00003658u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x0000365du, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000365au, 0x0004003du, 0x000001afu, 0x0000365eu, 0x0000365du, + 0x00040071u, 0x00000006u, 0x0000365fu, 0x0000365eu, 0x000500c2u, 0x00000006u, 0x00003661u, 0x0000365fu, + 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00003662u, 0x00003661u, 0x000500c7u, 0x00000006u, 0x00003664u, + 0x0000365fu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003665u, 0x00003664u, 0x00050050u, 0x0000004du, + 0x00003666u, 0x00003662u, 0x00003665u, 0x0009004fu, 0x00000009u, 0x00003667u, 0x00003666u, 0x00003666u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x000028f8u, 0x00000000u, 0x000400fau, + 0x00001a60u, 0x000028e9u, 0x000028f8u, 0x000200f8u, 0x000028e9u, 0x00050050u, 0x0000004du, 0x000028ecu, + 0x00006750u, 0x00002757u, 0x0004007cu, 0x000000a0u, 0x000028edu, 0x000028ecu, 0x00050051u, 0x00000006u, + 0x00003672u, 0x000028edu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003673u, 0x0000258eu, 0x00003672u, + 0x00050080u, 0x00000006u, 0x00003674u, 0x0000258bu, 0x00003673u, 0x00050051u, 0x00000006u, 0x00003676u, + 0x000028edu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003677u, 0x00003676u, 0x00000330u, 0x00050080u, + 0x00000006u, 0x00003679u, 0x00003674u, 0x00003677u, 0x000500c7u, 0x00000006u, 0x0000367bu, 0x00003679u, + 0x000006b6u, 0x000500c2u, 0x00000006u, 0x0000367du, 0x0000367bu, 0x00000196u, 0x000500c7u, 0x00000006u, + 0x00003680u, 0x00003672u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003681u, 0x00003680u, 0x00000196u, + 0x000500c6u, 0x00000006u, 0x00003683u, 0x0000367du, 0x00003681u, 0x000500c6u, 0x00000006u, 0x00003685u, + 0x00003683u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003688u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00003685u, 0x0004003du, 0x000001afu, 0x00003689u, 0x00003688u, 0x00040071u, 0x00000006u, + 0x0000368au, 0x00003689u, 0x000500c2u, 0x00000006u, 0x0000368cu, 0x0000368au, 0x000001e2u, 0x0004007cu, + 0x00000008u, 0x0000368du, 0x0000368cu, 0x000500c7u, 0x00000006u, 0x0000368fu, 0x0000368au, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x00003690u, 0x0000368fu, 0x00050050u, 0x0000004du, 0x00003691u, 0x0000368du, + 0x00003690u, 0x0009004fu, 0x00000009u, 0x00003692u, 0x00003691u, 0x00003691u, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x0000004du, 0x000028f3u, 0x00006748u, 0x00002759u, 0x0004007cu, + 0x000000a0u, 0x000028f4u, 0x000028f3u, 0x00050051u, 0x00000006u, 0x0000369du, 0x000028f4u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000369eu, 0x0000258eu, 0x0000369du, 0x00050080u, 0x00000006u, 0x0000369fu, + 0x0000258bu, 0x0000369eu, 0x00050051u, 0x00000006u, 0x000036a1u, 0x000028f4u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x000036a2u, 0x000036a1u, 0x00000330u, 0x00050080u, 0x00000006u, 0x000036a4u, 0x0000369fu, + 0x000036a2u, 0x000500c7u, 0x00000006u, 0x000036a6u, 0x000036a4u, 0x000006b6u, 0x000500c2u, 0x00000006u, + 0x000036a8u, 0x000036a6u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x000036abu, 0x0000369du, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x000036acu, 0x000036abu, 0x00000196u, 0x000500c6u, 0x00000006u, 0x000036aeu, + 0x000036a8u, 0x000036acu, 0x000500c6u, 0x00000006u, 0x000036b0u, 0x000036aeu, 0x0000032cu, 0x00080041u, + 0x000001f4u, 0x000036b3u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000036b0u, 0x0004003du, + 0x000001afu, 0x000036b4u, 0x000036b3u, 0x00040071u, 0x00000006u, 0x000036b5u, 0x000036b4u, 0x000500c2u, + 0x00000006u, 0x000036b7u, 0x000036b5u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x000036b8u, 0x000036b7u, + 0x000500c7u, 0x00000006u, 0x000036bau, 0x000036b5u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x000036bbu, + 0x000036bau, 0x00050050u, 0x0000004du, 0x000036bcu, 0x000036b8u, 0x000036bbu, 0x0009004fu, 0x00000009u, + 0x000036bdu, 0x000036bcu, 0x000036bcu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x000028f8u, 0x000200f8u, 0x000028f8u, 0x000700f5u, 0x00000009u, 0x00006995u, 0x000067e2u, 0x000028e2u, + 0x000036bdu, 0x000028e9u, 0x000700f5u, 0x00000009u, 0x0000691au, 0x000067e2u, 0x000028e2u, 0x00003692u, + 0x000028e9u, 0x000300f7u, 0x00002902u, 0x00000000u, 0x000400fau, 0x00002763u, 0x000028fau, 0x00002902u, + 0x000200f8u, 0x000028fau, 0x00050050u, 0x0000004du, 0x000028fdu, 0x00006750u, 0x00002759u, 0x0004007cu, + 0x000000a0u, 0x000028feu, 0x000028fdu, 0x00050051u, 0x00000006u, 0x000036c8u, 0x000028feu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000036c9u, 0x0000258eu, 0x000036c8u, 0x00050080u, 0x00000006u, 0x000036cau, + 0x0000258bu, 0x000036c9u, 0x00050051u, 0x00000006u, 0x000036ccu, 0x000028feu, 0x00000000u, 0x00050084u, + 0x00000006u, 0x000036cdu, 0x000036ccu, 0x00000330u, 0x00050080u, 0x00000006u, 0x000036cfu, 0x000036cau, + 0x000036cdu, 0x000500c7u, 0x00000006u, 0x000036d1u, 0x000036cfu, 0x000006b6u, 0x000500c2u, 0x00000006u, + 0x000036d3u, 0x000036d1u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x000036d6u, 0x000036c8u, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x000036d7u, 0x000036d6u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x000036d9u, + 0x000036d3u, 0x000036d7u, 0x000500c6u, 0x00000006u, 0x000036dbu, 0x000036d9u, 0x0000032cu, 0x00080041u, + 0x000001f4u, 0x000036deu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000036dbu, 0x0004003du, + 0x000001afu, 0x000036dfu, 0x000036deu, 0x00040071u, 0x00000006u, 0x000036e0u, 0x000036dfu, 0x000500c2u, + 0x00000006u, 0x000036e2u, 0x000036e0u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x000036e3u, 0x000036e2u, + 0x000500c7u, 0x00000006u, 0x000036e5u, 0x000036e0u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x000036e6u, + 0x000036e5u, 0x00050050u, 0x0000004du, 0x000036e7u, 0x000036e3u, 0x000036e6u, 0x0009004fu, 0x00000009u, + 0x000036e8u, 0x000036e7u, 0x000036e7u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00002902u, 0x000200f8u, 0x00002902u, 0x000700f5u, 0x00000009u, 0x00006a0fu, 0x000067e2u, 0x000028f8u, + 0x000036e8u, 0x000028fau, 0x000200f9u, 0x00002951u, 0x000200f8u, 0x00002951u, 0x000900f5u, 0x00000009u, + 0x00006a0eu, 0x00006a0fu, 0x00002902u, 0x00006a11u, 0x0000292fu, 0x00006a13u, 0x00002950u, 0x000900f5u, + 0x00000009u, 0x00006993u, 0x00006995u, 0x00002902u, 0x00006997u, 0x0000292fu, 0x00006999u, 0x00002950u, + 0x000900f5u, 0x00000009u, 0x00006918u, 0x0000691au, 0x00002902u, 0x0000691cu, 0x0000292fu, 0x0000691eu, + 0x00002950u, 0x000900f5u, 0x00000009u, 0x00006828u, 0x00003667u, 0x00002902u, 0x0000371bu, 0x0000292fu, + 0x000037d8u, 0x00002950u, 0x000200f9u, 0x00002a41u, 0x000200f8u, 0x000028b1u, 0x000500c3u, 0x00000008u, + 0x000028b3u, 0x00006748u, 0x00000196u, 0x0004007cu, 0x00000006u, 0x000028b4u, 0x000028b3u, 0x00050082u, + 0x00000008u, 0x000028b8u, 0x00006750u, 0x00006748u, 0x00050080u, 0x00000008u, 0x000028b9u, 0x00006750u, + 0x000028b8u, 0x000500c3u, 0x00000008u, 0x000028bau, 0x000028b9u, 0x00000196u, 0x0004007cu, 0x00000006u, + 0x000028bbu, 0x000028bau, 0x00050050u, 0x0000004du, 0x000028beu, 0x00006748u, 0x00002757u, 0x0004007cu, + 0x000000a0u, 0x000028bfu, 0x000028beu, 0x00050051u, 0x00000006u, 0x0000351du, 0x000028bfu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000351eu, 0x0000258eu, 0x0000351du, 0x00050080u, 0x00000006u, 0x0000351fu, + 0x0000258bu, 0x0000351eu, 0x00050051u, 0x00000006u, 0x00003522u, 0x000028bfu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003523u, 0x0000351fu, 0x00003522u, 0x000500c7u, 0x00000006u, 0x00003525u, 0x00003523u, + 0x00000769u, 0x00050084u, 0x00000006u, 0x00003528u, 0x000028b4u, 0x00000330u, 0x00050080u, 0x00000006u, + 0x00003529u, 0x0000351fu, 0x00003528u, 0x000500c7u, 0x00000006u, 0x0000352bu, 0x00003529u, 0x00000769u, + 0x000500c7u, 0x00000006u, 0x0000352fu, 0x0000351du, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003530u, + 0x0000352fu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003532u, 0x00003525u, 0x00003530u, 0x000500c6u, + 0x00000006u, 0x00003534u, 0x00003532u, 0x00000333u, 0x000500c2u, 0x00000006u, 0x00003536u, 0x0000352bu, + 0x00000196u, 0x000500c4u, 0x00000006u, 0x0000353au, 0x0000352fu, 0x00000196u, 0x000500c6u, 0x00000006u, + 0x0000353cu, 0x00003536u, 0x0000353au, 0x000500c6u, 0x00000006u, 0x0000353eu, 0x0000353cu, 0x0000032cu, + 0x000500c5u, 0x00000006u, 0x00003541u, 0x00003534u, 0x00000792u, 0x00080041u, 0x000001fbu, 0x00003542u, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003541u, 0x0004003du, 0x000001adu, 0x00003543u, + 0x00003542u, 0x00040071u, 0x00000006u, 0x00003544u, 0x00003543u, 0x0004007cu, 0x00000008u, 0x00003545u, + 0x00003544u, 0x00080041u, 0x000001f4u, 0x00003548u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x0000353eu, 0x0004003du, 0x000001afu, 0x00003549u, 0x00003548u, 0x00040071u, 0x00000006u, 0x0000354au, + 0x00003549u, 0x0004007cu, 0x00000008u, 0x0000354bu, 0x0000354au, 0x000500c3u, 0x00000008u, 0x0000354du, + 0x0000354bu, 0x000001e2u, 0x000500c7u, 0x00000008u, 0x0000354eu, 0x0000354du, 0x000002f0u, 0x000500c3u, + 0x00000008u, 0x00003550u, 0x0000354bu, 0x00000187u, 0x000500c7u, 0x00000008u, 0x00003551u, 0x00003550u, + 0x000002f0u, 0x00050082u, 0x00000008u, 0x00003553u, 0x0000354eu, 0x00000325u, 0x00050082u, 0x00000008u, + 0x00003555u, 0x00003551u, 0x00000325u, 0x00070050u, 0x00000009u, 0x00003558u, 0x00003553u, 0x00003555u, + 0x00003545u, 0x00003545u, 0x000300f7u, 0x000028deu, 0x00000000u, 0x000400fau, 0x00001a60u, 0x000028c5u, + 0x000028deu, 0x000200f8u, 0x000028c5u, 0x00050050u, 0x0000004du, 0x000028c8u, 0x00006750u, 0x00002757u, + 0x0004007cu, 0x000000a0u, 0x000028c9u, 0x000028c8u, 0x00050051u, 0x00000006u, 0x00003569u, 0x000028c9u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000356au, 0x0000258eu, 0x00003569u, 0x00050080u, 0x00000006u, + 0x0000356bu, 0x0000258bu, 0x0000356au, 0x00050051u, 0x00000006u, 0x0000356eu, 0x000028c9u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x0000356fu, 0x0000356bu, 0x0000356eu, 0x000500c7u, 0x00000006u, 0x00003571u, + 0x0000356fu, 0x00000769u, 0x00050084u, 0x00000006u, 0x00003574u, 0x000028bbu, 0x00000330u, 0x00050080u, + 0x00000006u, 0x00003575u, 0x0000356bu, 0x00003574u, 0x000500c7u, 0x00000006u, 0x00003577u, 0x00003575u, + 0x00000769u, 0x000500c7u, 0x00000006u, 0x0000357bu, 0x00003569u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x0000357cu, 0x0000357bu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x0000357eu, 0x00003571u, 0x0000357cu, + 0x000500c6u, 0x00000006u, 0x00003580u, 0x0000357eu, 0x00000333u, 0x000500c2u, 0x00000006u, 0x00003582u, + 0x00003577u, 0x00000196u, 0x000500c4u, 0x00000006u, 0x00003586u, 0x0000357bu, 0x00000196u, 0x000500c6u, + 0x00000006u, 0x00003588u, 0x00003582u, 0x00003586u, 0x000500c6u, 0x00000006u, 0x0000358au, 0x00003588u, + 0x0000032cu, 0x000500c5u, 0x00000006u, 0x0000358du, 0x00003580u, 0x00000792u, 0x00080041u, 0x000001fbu, + 0x0000358eu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000358du, 0x0004003du, 0x000001adu, + 0x0000358fu, 0x0000358eu, 0x00040071u, 0x00000006u, 0x00003590u, 0x0000358fu, 0x0004007cu, 0x00000008u, + 0x00003591u, 0x00003590u, 0x00080041u, 0x000001f4u, 0x00003594u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x0000358au, 0x0004003du, 0x000001afu, 0x00003595u, 0x00003594u, 0x00040071u, 0x00000006u, + 0x00003596u, 0x00003595u, 0x0004007cu, 0x00000008u, 0x00003597u, 0x00003596u, 0x000500c3u, 0x00000008u, + 0x00003599u, 0x00003597u, 0x000001e2u, 0x000500c7u, 0x00000008u, 0x0000359au, 0x00003599u, 0x000002f0u, + 0x000500c3u, 0x00000008u, 0x0000359cu, 0x00003597u, 0x00000187u, 0x000500c7u, 0x00000008u, 0x0000359du, + 0x0000359cu, 0x000002f0u, 0x00050082u, 0x00000008u, 0x0000359fu, 0x0000359au, 0x00000325u, 0x00050082u, + 0x00000008u, 0x000035a1u, 0x0000359du, 0x00000325u, 0x00070050u, 0x00000009u, 0x000035a4u, 0x0000359fu, + 0x000035a1u, 0x00003591u, 0x00003591u, 0x00050050u, 0x0000004du, 0x000028d0u, 0x00006748u, 0x00002759u, + 0x0004007cu, 0x000000a0u, 0x000028d1u, 0x000028d0u, 0x00050051u, 0x00000006u, 0x000035b5u, 0x000028d1u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000035b6u, 0x0000258eu, 0x000035b5u, 0x00050080u, 0x00000006u, + 0x000035b7u, 0x0000258bu, 0x000035b6u, 0x00050051u, 0x00000006u, 0x000035bau, 0x000028d1u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x000035bbu, 0x000035b7u, 0x000035bau, 0x000500c7u, 0x00000006u, 0x000035bdu, + 0x000035bbu, 0x00000769u, 0x00050080u, 0x00000006u, 0x000035c1u, 0x000035b7u, 0x00003528u, 0x000500c7u, + 0x00000006u, 0x000035c3u, 0x000035c1u, 0x00000769u, 0x000500c7u, 0x00000006u, 0x000035c7u, 0x000035b5u, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000035c8u, 0x000035c7u, 0x00000199u, 0x000500c6u, 0x00000006u, + 0x000035cau, 0x000035bdu, 0x000035c8u, 0x000500c6u, 0x00000006u, 0x000035ccu, 0x000035cau, 0x00000333u, + 0x000500c2u, 0x00000006u, 0x000035ceu, 0x000035c3u, 0x00000196u, 0x000500c4u, 0x00000006u, 0x000035d2u, + 0x000035c7u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x000035d4u, 0x000035ceu, 0x000035d2u, 0x000500c6u, + 0x00000006u, 0x000035d6u, 0x000035d4u, 0x0000032cu, 0x000500c5u, 0x00000006u, 0x000035d9u, 0x000035ccu, + 0x00000792u, 0x00080041u, 0x000001fbu, 0x000035dau, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000035d9u, 0x0004003du, 0x000001adu, 0x000035dbu, 0x000035dau, 0x00040071u, 0x00000006u, 0x000035dcu, + 0x000035dbu, 0x0004007cu, 0x00000008u, 0x000035ddu, 0x000035dcu, 0x00080041u, 0x000001f4u, 0x000035e0u, + 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000035d6u, 0x0004003du, 0x000001afu, 0x000035e1u, + 0x000035e0u, 0x00040071u, 0x00000006u, 0x000035e2u, 0x000035e1u, 0x0004007cu, 0x00000008u, 0x000035e3u, + 0x000035e2u, 0x000500c3u, 0x00000008u, 0x000035e5u, 0x000035e3u, 0x000001e2u, 0x000500c7u, 0x00000008u, + 0x000035e6u, 0x000035e5u, 0x000002f0u, 0x000500c3u, 0x00000008u, 0x000035e8u, 0x000035e3u, 0x00000187u, + 0x000500c7u, 0x00000008u, 0x000035e9u, 0x000035e8u, 0x000002f0u, 0x00050082u, 0x00000008u, 0x000035ebu, + 0x000035e6u, 0x00000325u, 0x00050082u, 0x00000008u, 0x000035edu, 0x000035e9u, 0x00000325u, 0x00070050u, + 0x00000009u, 0x000035f0u, 0x000035ebu, 0x000035edu, 0x000035ddu, 0x000035ddu, 0x00050050u, 0x0000004du, + 0x000028d8u, 0x00006750u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x000028d9u, 0x000028d8u, 0x00050051u, + 0x00000006u, 0x00003601u, 0x000028d9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003602u, 0x0000258eu, + 0x00003601u, 0x00050080u, 0x00000006u, 0x00003603u, 0x0000258bu, 0x00003602u, 0x00050051u, 0x00000006u, + 0x00003606u, 0x000028d9u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003607u, 0x00003603u, 0x00003606u, + 0x000500c7u, 0x00000006u, 0x00003609u, 0x00003607u, 0x00000769u, 0x00050080u, 0x00000006u, 0x0000360du, + 0x00003603u, 0x00003574u, 0x000500c7u, 0x00000006u, 0x0000360fu, 0x0000360du, 0x00000769u, 0x000500c7u, + 0x00000006u, 0x00003613u, 0x00003601u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003614u, 0x00003613u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003616u, 0x00003609u, 0x00003614u, 0x000500c6u, 0x00000006u, + 0x00003618u, 0x00003616u, 0x00000333u, 0x000500c2u, 0x00000006u, 0x0000361au, 0x0000360fu, 0x00000196u, + 0x000500c4u, 0x00000006u, 0x0000361eu, 0x00003613u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003620u, + 0x0000361au, 0x0000361eu, 0x000500c6u, 0x00000006u, 0x00003622u, 0x00003620u, 0x0000032cu, 0x000500c5u, + 0x00000006u, 0x00003625u, 0x00003618u, 0x00000792u, 0x00080041u, 0x000001fbu, 0x00003626u, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003625u, 0x0004003du, 0x000001adu, 0x00003627u, 0x00003626u, + 0x00040071u, 0x00000006u, 0x00003628u, 0x00003627u, 0x0004007cu, 0x00000008u, 0x00003629u, 0x00003628u, + 0x00080041u, 0x000001f4u, 0x0000362cu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003622u, + 0x0004003du, 0x000001afu, 0x0000362du, 0x0000362cu, 0x00040071u, 0x00000006u, 0x0000362eu, 0x0000362du, + 0x0004007cu, 0x00000008u, 0x0000362fu, 0x0000362eu, 0x000500c3u, 0x00000008u, 0x00003631u, 0x0000362fu, + 0x000001e2u, 0x000500c7u, 0x00000008u, 0x00003632u, 0x00003631u, 0x000002f0u, 0x000500c3u, 0x00000008u, + 0x00003634u, 0x0000362fu, 0x00000187u, 0x000500c7u, 0x00000008u, 0x00003635u, 0x00003634u, 0x000002f0u, + 0x00050082u, 0x00000008u, 0x00003637u, 0x00003632u, 0x00000325u, 0x00050082u, 0x00000008u, 0x00003639u, + 0x00003635u, 0x00000325u, 0x00070050u, 0x00000009u, 0x0000363cu, 0x00003637u, 0x00003639u, 0x00003629u, + 0x00003629u, 0x000200f9u, 0x000028deu, 0x000200f8u, 0x000028deu, 0x000700f5u, 0x00000009u, 0x00006a0du, + 0x000067e2u, 0x000028b1u, 0x0000363cu, 0x000028c5u, 0x000700f5u, 0x00000009u, 0x00006992u, 0x000067e2u, + 0x000028b1u, 0x000035f0u, 0x000028c5u, 0x000700f5u, 0x00000009u, 0x00006917u, 0x000067e2u, 0x000028b1u, + 0x000035a4u, 0x000028c5u, 0x000200f9u, 0x00002a41u, 0x000200f8u, 0x00002829u, 0x000300f7u, 0x000028b0u, + 0x00000000u, 0x000b00fbu, 0x00008597u, 0x000028b0u, 0x00000000u, 0x0000282cu, 0x00000001u, 0x0000284du, + 0x00000002u, 0x0000286eu, 0x00000003u, 0x0000288fu, 0x000200f8u, 0x0000288fu, 0x0004007cu, 0x000000a0u, + 0x00002891u, 0x0000676fu, 0x00050051u, 0x00000006u, 0x0000343cu, 0x00002891u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000343du, 0x0000258eu, 0x0000343cu, 0x00050080u, 0x00000006u, 0x0000343eu, 0x0000258bu, + 0x0000343du, 0x00050051u, 0x00000006u, 0x00003440u, 0x00002891u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003441u, 0x00003440u, 0x00000330u, 0x00050080u, 0x00000006u, 0x00003443u, 0x0000343eu, 0x00003441u, + 0x000500c7u, 0x00000006u, 0x00003445u, 0x00003443u, 0x00000769u, 0x000500c2u, 0x00000006u, 0x00003447u, + 0x00003445u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x0000344au, 0x0000343cu, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x0000344bu, 0x0000344au, 0x00000196u, 0x000500c6u, 0x00000006u, 0x0000344du, 0x00003447u, + 0x0000344bu, 0x000500c6u, 0x00000006u, 0x0000344fu, 0x0000344du, 0x0000032cu, 0x00080041u, 0x000001f4u, + 0x00003452u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000344fu, 0x0004003du, 0x000001afu, + 0x00003453u, 0x00003452u, 0x00040071u, 0x00000006u, 0x00003454u, 0x00003453u, 0x000500c5u, 0x00000006u, + 0x00003457u, 0x0000344fu, 0x0000079au, 0x00080041u, 0x000001f4u, 0x00003458u, 0x00000798u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00003457u, 0x0004003du, 0x000001afu, 0x00003459u, 0x00003458u, 0x00040071u, + 0x00000006u, 0x0000345au, 0x00003459u, 0x000500c2u, 0x00000006u, 0x0000345cu, 0x00003454u, 0x000001e2u, + 0x0004007cu, 0x00000008u, 0x0000345du, 0x0000345cu, 0x000500c7u, 0x00000006u, 0x0000345fu, 0x00003454u, + 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003460u, 0x0000345fu, 0x000500c2u, 0x00000006u, 0x00003462u, + 0x0000345au, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00003463u, 0x00003462u, 0x000500c7u, 0x00000006u, + 0x00003465u, 0x0000345au, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003466u, 0x00003465u, 0x00070050u, + 0x00000009u, 0x00003467u, 0x0000345du, 0x00003460u, 0x00003463u, 0x00003466u, 0x000300f7u, 0x000028a5u, + 0x00000000u, 0x000400fau, 0x00001a60u, 0x00002896u, 0x000028a5u, 0x000200f8u, 0x00002896u, 0x00050050u, + 0x0000004du, 0x00002899u, 0x00006750u, 0x00002757u, 0x0004007cu, 0x000000a0u, 0x0000289au, 0x00002899u, + 0x00050051u, 0x00000006u, 0x00003473u, 0x0000289au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003474u, + 0x0000258eu, 0x00003473u, 0x00050080u, 0x00000006u, 0x00003475u, 0x0000258bu, 0x00003474u, 0x00050051u, + 0x00000006u, 0x00003477u, 0x0000289au, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003478u, 0x00003477u, + 0x00000330u, 0x00050080u, 0x00000006u, 0x0000347au, 0x00003475u, 0x00003478u, 0x000500c7u, 0x00000006u, + 0x0000347cu, 0x0000347au, 0x00000769u, 0x000500c2u, 0x00000006u, 0x0000347eu, 0x0000347cu, 0x00000196u, + 0x000500c7u, 0x00000006u, 0x00003481u, 0x00003473u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003482u, + 0x00003481u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00003484u, 0x0000347eu, 0x00003482u, 0x000500c6u, + 0x00000006u, 0x00003486u, 0x00003484u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00003489u, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003486u, 0x0004003du, 0x000001afu, 0x0000348au, 0x00003489u, + 0x00040071u, 0x00000006u, 0x0000348bu, 0x0000348au, 0x000500c5u, 0x00000006u, 0x0000348eu, 0x00003486u, + 0x0000079au, 0x00080041u, 0x000001f4u, 0x0000348fu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x0000348eu, 0x0004003du, 0x000001afu, 0x00003490u, 0x0000348fu, 0x00040071u, 0x00000006u, 0x00003491u, + 0x00003490u, 0x000500c2u, 0x00000006u, 0x00003493u, 0x0000348bu, 0x000001e2u, 0x0004007cu, 0x00000008u, + 0x00003494u, 0x00003493u, 0x000500c7u, 0x00000006u, 0x00003496u, 0x0000348bu, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00003497u, 0x00003496u, 0x000500c2u, 0x00000006u, 0x00003499u, 0x00003491u, 0x000001e2u, + 0x0004007cu, 0x00000008u, 0x0000349au, 0x00003499u, 0x000500c7u, 0x00000006u, 0x0000349cu, 0x00003491u, + 0x0000068bu, 0x0004007cu, 0x00000008u, 0x0000349du, 0x0000349cu, 0x00070050u, 0x00000009u, 0x0000349eu, + 0x00003494u, 0x00003497u, 0x0000349au, 0x0000349du, 0x00050050u, 0x0000004du, 0x000028a0u, 0x00006748u, + 0x00002759u, 0x0004007cu, 0x000000a0u, 0x000028a1u, 0x000028a0u, 0x00050051u, 0x00000006u, 0x000034aau, + 0x000028a1u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000034abu, 0x0000258eu, 0x000034aau, 0x00050080u, + 0x00000006u, 0x000034acu, 0x0000258bu, 0x000034abu, 0x00050051u, 0x00000006u, 0x000034aeu, 0x000028a1u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000034afu, 0x000034aeu, 0x00000330u, 0x00050080u, 0x00000006u, + 0x000034b1u, 0x000034acu, 0x000034afu, 0x000500c7u, 0x00000006u, 0x000034b3u, 0x000034b1u, 0x00000769u, + 0x000500c2u, 0x00000006u, 0x000034b5u, 0x000034b3u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x000034b8u, + 0x000034aau, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000034b9u, 0x000034b8u, 0x00000196u, 0x000500c6u, + 0x00000006u, 0x000034bbu, 0x000034b5u, 0x000034b9u, 0x000500c6u, 0x00000006u, 0x000034bdu, 0x000034bbu, + 0x0000032cu, 0x00080041u, 0x000001f4u, 0x000034c0u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000034bdu, 0x0004003du, 0x000001afu, 0x000034c1u, 0x000034c0u, 0x00040071u, 0x00000006u, 0x000034c2u, + 0x000034c1u, 0x000500c5u, 0x00000006u, 0x000034c5u, 0x000034bdu, 0x0000079au, 0x00080041u, 0x000001f4u, + 0x000034c6u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000034c5u, 0x0004003du, 0x000001afu, + 0x000034c7u, 0x000034c6u, 0x00040071u, 0x00000006u, 0x000034c8u, 0x000034c7u, 0x000500c2u, 0x00000006u, + 0x000034cau, 0x000034c2u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x000034cbu, 0x000034cau, 0x000500c7u, + 0x00000006u, 0x000034cdu, 0x000034c2u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x000034ceu, 0x000034cdu, + 0x000500c2u, 0x00000006u, 0x000034d0u, 0x000034c8u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x000034d1u, + 0x000034d0u, 0x000500c7u, 0x00000006u, 0x000034d3u, 0x000034c8u, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x000034d4u, 0x000034d3u, 0x00070050u, 0x00000009u, 0x000034d5u, 0x000034cbu, 0x000034ceu, 0x000034d1u, + 0x000034d4u, 0x000200f9u, 0x000028a5u, 0x000200f8u, 0x000028a5u, 0x000700f5u, 0x00000009u, 0x00006991u, + 0x000067e2u, 0x0000288fu, 0x000034d5u, 0x00002896u, 0x000700f5u, 0x00000009u, 0x00006916u, 0x000067e2u, + 0x0000288fu, 0x0000349eu, 0x00002896u, 0x000300f7u, 0x000028afu, 0x00000000u, 0x000400fau, 0x00002763u, + 0x000028a7u, 0x000028afu, 0x000200f8u, 0x000028a7u, 0x00050050u, 0x0000004du, 0x000028aau, 0x00006750u, + 0x00002759u, 0x0004007cu, 0x000000a0u, 0x000028abu, 0x000028aau, 0x00050051u, 0x00000006u, 0x000034e1u, + 0x000028abu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000034e2u, 0x0000258eu, 0x000034e1u, 0x00050080u, + 0x00000006u, 0x000034e3u, 0x0000258bu, 0x000034e2u, 0x00050051u, 0x00000006u, 0x000034e5u, 0x000028abu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000034e6u, 0x000034e5u, 0x00000330u, 0x00050080u, 0x00000006u, + 0x000034e8u, 0x000034e3u, 0x000034e6u, 0x000500c7u, 0x00000006u, 0x000034eau, 0x000034e8u, 0x00000769u, + 0x000500c2u, 0x00000006u, 0x000034ecu, 0x000034eau, 0x00000196u, 0x000500c7u, 0x00000006u, 0x000034efu, + 0x000034e1u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000034f0u, 0x000034efu, 0x00000196u, 0x000500c6u, + 0x00000006u, 0x000034f2u, 0x000034ecu, 0x000034f0u, 0x000500c6u, 0x00000006u, 0x000034f4u, 0x000034f2u, + 0x0000032cu, 0x00080041u, 0x000001f4u, 0x000034f7u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000034f4u, 0x0004003du, 0x000001afu, 0x000034f8u, 0x000034f7u, 0x00040071u, 0x00000006u, 0x000034f9u, + 0x000034f8u, 0x000500c5u, 0x00000006u, 0x000034fcu, 0x000034f4u, 0x0000079au, 0x00080041u, 0x000001f4u, + 0x000034fdu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000034fcu, 0x0004003du, 0x000001afu, + 0x000034feu, 0x000034fdu, 0x00040071u, 0x00000006u, 0x000034ffu, 0x000034feu, 0x000500c2u, 0x00000006u, + 0x00003501u, 0x000034f9u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00003502u, 0x00003501u, 0x000500c7u, + 0x00000006u, 0x00003504u, 0x000034f9u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003505u, 0x00003504u, + 0x000500c2u, 0x00000006u, 0x00003507u, 0x000034ffu, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00003508u, + 0x00003507u, 0x000500c7u, 0x00000006u, 0x0000350au, 0x000034ffu, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x0000350bu, 0x0000350au, 0x00070050u, 0x00000009u, 0x0000350cu, 0x00003502u, 0x00003505u, 0x00003508u, + 0x0000350bu, 0x000200f9u, 0x000028afu, 0x000200f8u, 0x000028afu, 0x000700f5u, 0x00000009u, 0x00006a0bu, + 0x000067e2u, 0x000028a5u, 0x0000350cu, 0x000028a7u, 0x000200f9u, 0x000028b0u, 0x000200f8u, 0x0000286eu, + 0x0004007cu, 0x000000a0u, 0x00002870u, 0x0000676fu, 0x00050051u, 0x00000006u, 0x00003338u, 0x00002870u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003339u, 0x0000258eu, 0x00003338u, 0x00050080u, 0x00000006u, + 0x0000333au, 0x0000258bu, 0x00003339u, 0x00050051u, 0x00000006u, 0x0000333cu, 0x00002870u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x0000333du, 0x0000333cu, 0x00000330u, 0x00050080u, 0x00000006u, 0x0000333fu, + 0x0000333au, 0x0000333du, 0x000500c7u, 0x00000006u, 0x00003341u, 0x0000333fu, 0x000006b6u, 0x000500c2u, + 0x00000006u, 0x00003343u, 0x00003341u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00003346u, 0x00003338u, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003347u, 0x00003346u, 0x00000196u, 0x000500c6u, 0x00000006u, + 0x00003349u, 0x00003343u, 0x00003347u, 0x000500c6u, 0x00000006u, 0x0000334bu, 0x00003349u, 0x0000032cu, + 0x00080041u, 0x000001f4u, 0x0000334eu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000334bu, + 0x0004003du, 0x000001afu, 0x0000334fu, 0x0000334eu, 0x00040071u, 0x00000006u, 0x00003350u, 0x0000334fu, + 0x00060050u, 0x000002b8u, 0x00003358u, 0x00003350u, 0x00003350u, 0x00003350u, 0x000500c2u, 0x000002b8u, + 0x00003359u, 0x00003358u, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x0000335bu, 0x00003359u, 0x0000856cu, + 0x000500c4u, 0x000002b8u, 0x0000335eu, 0x0000335bu, 0x0000856du, 0x000500c2u, 0x000002b8u, 0x00003361u, + 0x0000335bu, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00003362u, 0x0000335eu, 0x00003361u, 0x000500c7u, + 0x00000006u, 0x00003364u, 0x00003350u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00003365u, 0x00003364u, + 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00003367u, 0x00003362u, 0x0004007cu, 0x00000008u, 0x00003369u, + 0x00003365u, 0x00050051u, 0x00000008u, 0x0000336au, 0x00003367u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x0000336bu, 0x00003367u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000336cu, 0x00003367u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x0000336du, 0x0000336au, 0x0000336bu, 0x0000336cu, 0x00003369u, 0x000300f7u, + 0x00002884u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x00002875u, 0x00002884u, 0x000200f8u, 0x00002875u, + 0x00050050u, 0x0000004du, 0x00002878u, 0x00006750u, 0x00002757u, 0x0004007cu, 0x000000a0u, 0x00002879u, + 0x00002878u, 0x00050051u, 0x00000006u, 0x00003379u, 0x00002879u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000337au, 0x0000258eu, 0x00003379u, 0x00050080u, 0x00000006u, 0x0000337bu, 0x0000258bu, 0x0000337au, + 0x00050051u, 0x00000006u, 0x0000337du, 0x00002879u, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000337eu, + 0x0000337du, 0x00000330u, 0x00050080u, 0x00000006u, 0x00003380u, 0x0000337bu, 0x0000337eu, 0x000500c7u, + 0x00000006u, 0x00003382u, 0x00003380u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00003384u, 0x00003382u, + 0x00000196u, 0x000500c7u, 0x00000006u, 0x00003387u, 0x00003379u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00003388u, 0x00003387u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x0000338au, 0x00003384u, 0x00003388u, + 0x000500c6u, 0x00000006u, 0x0000338cu, 0x0000338au, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x0000338fu, + 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000338cu, 0x0004003du, 0x000001afu, 0x00003390u, + 0x0000338fu, 0x00040071u, 0x00000006u, 0x00003391u, 0x00003390u, 0x00060050u, 0x000002b8u, 0x00003399u, + 0x00003391u, 0x00003391u, 0x00003391u, 0x000500c2u, 0x000002b8u, 0x0000339au, 0x00003399u, 0x0000067cu, + 0x000500c7u, 0x000002b8u, 0x0000339cu, 0x0000339au, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x0000339fu, + 0x0000339cu, 0x0000856du, 0x000500c2u, 0x000002b8u, 0x000033a2u, 0x0000339cu, 0x0000856eu, 0x000500c5u, + 0x000002b8u, 0x000033a3u, 0x0000339fu, 0x000033a2u, 0x000500c7u, 0x00000006u, 0x000033a5u, 0x00003391u, + 0x0000032cu, 0x00050084u, 0x00000006u, 0x000033a6u, 0x000033a5u, 0x0000068bu, 0x0004007cu, 0x00000052u, + 0x000033a8u, 0x000033a3u, 0x0004007cu, 0x00000008u, 0x000033aau, 0x000033a6u, 0x00050051u, 0x00000008u, + 0x000033abu, 0x000033a8u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000033acu, 0x000033a8u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x000033adu, 0x000033a8u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000033aeu, + 0x000033abu, 0x000033acu, 0x000033adu, 0x000033aau, 0x00050050u, 0x0000004du, 0x0000287fu, 0x00006748u, + 0x00002759u, 0x0004007cu, 0x000000a0u, 0x00002880u, 0x0000287fu, 0x00050051u, 0x00000006u, 0x000033bau, + 0x00002880u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000033bbu, 0x0000258eu, 0x000033bau, 0x00050080u, + 0x00000006u, 0x000033bcu, 0x0000258bu, 0x000033bbu, 0x00050051u, 0x00000006u, 0x000033beu, 0x00002880u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000033bfu, 0x000033beu, 0x00000330u, 0x00050080u, 0x00000006u, + 0x000033c1u, 0x000033bcu, 0x000033bfu, 0x000500c7u, 0x00000006u, 0x000033c3u, 0x000033c1u, 0x000006b6u, + 0x000500c2u, 0x00000006u, 0x000033c5u, 0x000033c3u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x000033c8u, + 0x000033bau, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000033c9u, 0x000033c8u, 0x00000196u, 0x000500c6u, + 0x00000006u, 0x000033cbu, 0x000033c5u, 0x000033c9u, 0x000500c6u, 0x00000006u, 0x000033cdu, 0x000033cbu, + 0x0000032cu, 0x00080041u, 0x000001f4u, 0x000033d0u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000033cdu, 0x0004003du, 0x000001afu, 0x000033d1u, 0x000033d0u, 0x00040071u, 0x00000006u, 0x000033d2u, + 0x000033d1u, 0x00060050u, 0x000002b8u, 0x000033dau, 0x000033d2u, 0x000033d2u, 0x000033d2u, 0x000500c2u, + 0x000002b8u, 0x000033dbu, 0x000033dau, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x000033ddu, 0x000033dbu, + 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x000033e0u, 0x000033ddu, 0x0000856du, 0x000500c2u, 0x000002b8u, + 0x000033e3u, 0x000033ddu, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x000033e4u, 0x000033e0u, 0x000033e3u, + 0x000500c7u, 0x00000006u, 0x000033e6u, 0x000033d2u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x000033e7u, + 0x000033e6u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x000033e9u, 0x000033e4u, 0x0004007cu, 0x00000008u, + 0x000033ebu, 0x000033e7u, 0x00050051u, 0x00000008u, 0x000033ecu, 0x000033e9u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000033edu, 0x000033e9u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000033eeu, 0x000033e9u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000033efu, 0x000033ecu, 0x000033edu, 0x000033eeu, 0x000033ebu, + 0x000200f9u, 0x00002884u, 0x000200f8u, 0x00002884u, 0x000700f5u, 0x00000009u, 0x0000698fu, 0x000067e2u, + 0x0000286eu, 0x000033efu, 0x00002875u, 0x000700f5u, 0x00000009u, 0x00006914u, 0x000067e2u, 0x0000286eu, + 0x000033aeu, 0x00002875u, 0x000300f7u, 0x0000288eu, 0x00000000u, 0x000400fau, 0x00002763u, 0x00002886u, + 0x0000288eu, 0x000200f8u, 0x00002886u, 0x00050050u, 0x0000004du, 0x00002889u, 0x00006750u, 0x00002759u, + 0x0004007cu, 0x000000a0u, 0x0000288au, 0x00002889u, 0x00050051u, 0x00000006u, 0x000033fbu, 0x0000288au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000033fcu, 0x0000258eu, 0x000033fbu, 0x00050080u, 0x00000006u, + 0x000033fdu, 0x0000258bu, 0x000033fcu, 0x00050051u, 0x00000006u, 0x000033ffu, 0x0000288au, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003400u, 0x000033ffu, 0x00000330u, 0x00050080u, 0x00000006u, 0x00003402u, + 0x000033fdu, 0x00003400u, 0x000500c7u, 0x00000006u, 0x00003404u, 0x00003402u, 0x000006b6u, 0x000500c2u, + 0x00000006u, 0x00003406u, 0x00003404u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00003409u, 0x000033fbu, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000340au, 0x00003409u, 0x00000196u, 0x000500c6u, 0x00000006u, + 0x0000340cu, 0x00003406u, 0x0000340au, 0x000500c6u, 0x00000006u, 0x0000340eu, 0x0000340cu, 0x0000032cu, + 0x00080041u, 0x000001f4u, 0x00003411u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000340eu, + 0x0004003du, 0x000001afu, 0x00003412u, 0x00003411u, 0x00040071u, 0x00000006u, 0x00003413u, 0x00003412u, + 0x00060050u, 0x000002b8u, 0x0000341bu, 0x00003413u, 0x00003413u, 0x00003413u, 0x000500c2u, 0x000002b8u, + 0x0000341cu, 0x0000341bu, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x0000341eu, 0x0000341cu, 0x0000856cu, + 0x000500c4u, 0x000002b8u, 0x00003421u, 0x0000341eu, 0x0000856du, 0x000500c2u, 0x000002b8u, 0x00003424u, + 0x0000341eu, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00003425u, 0x00003421u, 0x00003424u, 0x000500c7u, + 0x00000006u, 0x00003427u, 0x00003413u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00003428u, 0x00003427u, + 0x0000068bu, 0x0004007cu, 0x00000052u, 0x0000342au, 0x00003425u, 0x0004007cu, 0x00000008u, 0x0000342cu, + 0x00003428u, 0x00050051u, 0x00000008u, 0x0000342du, 0x0000342au, 0x00000000u, 0x00050051u, 0x00000008u, + 0x0000342eu, 0x0000342au, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000342fu, 0x0000342au, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00003430u, 0x0000342du, 0x0000342eu, 0x0000342fu, 0x0000342cu, 0x000200f9u, + 0x0000288eu, 0x000200f8u, 0x0000288eu, 0x000700f5u, 0x00000009u, 0x00006a09u, 0x000067e2u, 0x00002884u, + 0x00003430u, 0x00002886u, 0x000200f9u, 0x000028b0u, 0x000200f8u, 0x0000284du, 0x0004007cu, 0x000000a0u, + 0x0000284fu, 0x0000676fu, 0x00050051u, 0x00000006u, 0x000032a7u, 0x0000284fu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000032a8u, 0x0000258eu, 0x000032a7u, 0x00050080u, 0x00000006u, 0x000032a9u, 0x0000258bu, + 0x000032a8u, 0x00050051u, 0x00000006u, 0x000032abu, 0x0000284fu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x000032adu, 0x000032a9u, 0x000032abu, 0x000500c7u, 0x00000006u, 0x000032afu, 0x000032adu, 0x000006b6u, + 0x000500c7u, 0x00000006u, 0x000032b3u, 0x000032a7u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000032b4u, + 0x000032b3u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x000032b6u, 0x000032afu, 0x000032b4u, 0x000500c6u, + 0x00000006u, 0x000032b8u, 0x000032b6u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000032bbu, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x000032b8u, 0x0004003du, 0x000001adu, 0x000032bcu, 0x000032bbu, + 0x00040071u, 0x00000006u, 0x000032bdu, 0x000032bcu, 0x0004007cu, 0x00000008u, 0x000032bfu, 0x000032bdu, + 0x00070050u, 0x00000009u, 0x000032c0u, 0x000032bfu, 0x000032bfu, 0x000032bfu, 0x000032bfu, 0x000300f7u, + 0x00002863u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x00002854u, 0x00002863u, 0x000200f8u, 0x00002854u, + 0x00050050u, 0x0000004du, 0x00002857u, 0x00006750u, 0x00002757u, 0x0004007cu, 0x000000a0u, 0x00002858u, + 0x00002857u, 0x00050051u, 0x00000006u, 0x000032cbu, 0x00002858u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000032ccu, 0x0000258eu, 0x000032cbu, 0x00050080u, 0x00000006u, 0x000032cdu, 0x0000258bu, 0x000032ccu, + 0x00050051u, 0x00000006u, 0x000032cfu, 0x00002858u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000032d1u, + 0x000032cdu, 0x000032cfu, 0x000500c7u, 0x00000006u, 0x000032d3u, 0x000032d1u, 0x000006b6u, 0x000500c7u, + 0x00000006u, 0x000032d7u, 0x000032cbu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000032d8u, 0x000032d7u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x000032dau, 0x000032d3u, 0x000032d8u, 0x000500c6u, 0x00000006u, + 0x000032dcu, 0x000032dau, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000032dfu, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x000032dcu, 0x0004003du, 0x000001adu, 0x000032e0u, 0x000032dfu, 0x00040071u, + 0x00000006u, 0x000032e1u, 0x000032e0u, 0x0004007cu, 0x00000008u, 0x000032e3u, 0x000032e1u, 0x00070050u, + 0x00000009u, 0x000032e4u, 0x000032e3u, 0x000032e3u, 0x000032e3u, 0x000032e3u, 0x00050050u, 0x0000004du, + 0x0000285eu, 0x00006748u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x0000285fu, 0x0000285eu, 0x00050051u, + 0x00000006u, 0x000032efu, 0x0000285fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000032f0u, 0x0000258eu, + 0x000032efu, 0x00050080u, 0x00000006u, 0x000032f1u, 0x0000258bu, 0x000032f0u, 0x00050051u, 0x00000006u, + 0x000032f3u, 0x0000285fu, 0x00000000u, 0x00050080u, 0x00000006u, 0x000032f5u, 0x000032f1u, 0x000032f3u, + 0x000500c7u, 0x00000006u, 0x000032f7u, 0x000032f5u, 0x000006b6u, 0x000500c7u, 0x00000006u, 0x000032fbu, + 0x000032efu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000032fcu, 0x000032fbu, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x000032feu, 0x000032f7u, 0x000032fcu, 0x000500c6u, 0x00000006u, 0x00003300u, 0x000032feu, + 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003303u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00003300u, 0x0004003du, 0x000001adu, 0x00003304u, 0x00003303u, 0x00040071u, 0x00000006u, 0x00003305u, + 0x00003304u, 0x0004007cu, 0x00000008u, 0x00003307u, 0x00003305u, 0x00070050u, 0x00000009u, 0x00003308u, + 0x00003307u, 0x00003307u, 0x00003307u, 0x00003307u, 0x000200f9u, 0x00002863u, 0x000200f8u, 0x00002863u, + 0x000700f5u, 0x00000009u, 0x0000698du, 0x000067e2u, 0x0000284du, 0x00003308u, 0x00002854u, 0x000700f5u, + 0x00000009u, 0x00006912u, 0x000067e2u, 0x0000284du, 0x000032e4u, 0x00002854u, 0x000300f7u, 0x0000286du, + 0x00000000u, 0x000400fau, 0x00002763u, 0x00002865u, 0x0000286du, 0x000200f8u, 0x00002865u, 0x00050050u, + 0x0000004du, 0x00002868u, 0x00006750u, 0x00002759u, 0x0004007cu, 0x000000a0u, 0x00002869u, 0x00002868u, + 0x00050051u, 0x00000006u, 0x00003313u, 0x00002869u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003314u, + 0x0000258eu, 0x00003313u, 0x00050080u, 0x00000006u, 0x00003315u, 0x0000258bu, 0x00003314u, 0x00050051u, + 0x00000006u, 0x00003317u, 0x00002869u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003319u, 0x00003315u, + 0x00003317u, 0x000500c7u, 0x00000006u, 0x0000331bu, 0x00003319u, 0x000006b6u, 0x000500c7u, 0x00000006u, + 0x0000331fu, 0x00003313u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003320u, 0x0000331fu, 0x00000199u, + 0x000500c6u, 0x00000006u, 0x00003322u, 0x0000331bu, 0x00003320u, 0x000500c6u, 0x00000006u, 0x00003324u, + 0x00003322u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003327u, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00003324u, 0x0004003du, 0x000001adu, 0x00003328u, 0x00003327u, 0x00040071u, 0x00000006u, + 0x00003329u, 0x00003328u, 0x0004007cu, 0x00000008u, 0x0000332bu, 0x00003329u, 0x00070050u, 0x00000009u, + 0x0000332cu, 0x0000332bu, 0x0000332bu, 0x0000332bu, 0x0000332bu, 0x000200f9u, 0x0000286du, 0x000200f8u, + 0x0000286du, 0x000700f5u, 0x00000009u, 0x00006a07u, 0x000067e2u, 0x00002863u, 0x0000332cu, 0x00002865u, + 0x000200f9u, 0x000028b0u, 0x000200f8u, 0x0000282cu, 0x0004007cu, 0x000000a0u, 0x0000282eu, 0x0000676fu, + 0x00050051u, 0x00000006u, 0x000031dcu, 0x0000282eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000031ddu, + 0x0000258eu, 0x000031dcu, 0x00050080u, 0x00000006u, 0x000031deu, 0x0000258bu, 0x000031ddu, 0x00050051u, + 0x00000006u, 0x000031e0u, 0x0000282eu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000031e1u, 0x000031e0u, + 0x00000196u, 0x00050080u, 0x00000006u, 0x000031e3u, 0x000031deu, 0x000031e1u, 0x000500c7u, 0x00000006u, + 0x000031e5u, 0x000031e3u, 0x000006b6u, 0x000400c8u, 0x00000006u, 0x000031e8u, 0x000031e0u, 0x000500c7u, + 0x00000006u, 0x000031e9u, 0x000031e8u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x000031eau, 0x000031e9u, + 0x000006beu, 0x000500c7u, 0x00000006u, 0x000031eeu, 0x000031dcu, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x000031efu, 0x000031eeu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x000031f1u, 0x000031e5u, 0x000031efu, + 0x000500c6u, 0x00000006u, 0x000031f3u, 0x000031f1u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000031f6u, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000031f3u, 0x0004003du, 0x000001adu, 0x000031f7u, + 0x000031f6u, 0x00040071u, 0x00000006u, 0x000031f8u, 0x000031f7u, 0x000500c2u, 0x00000006u, 0x000031fbu, + 0x000031f8u, 0x000031eau, 0x000500c7u, 0x00000006u, 0x000031fcu, 0x000031fbu, 0x000006dau, 0x000500c4u, + 0x00000006u, 0x000031feu, 0x000031fcu, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00003200u, 0x000031fcu, + 0x000031feu, 0x0004007cu, 0x00000008u, 0x00003202u, 0x00003200u, 0x00070050u, 0x00000009u, 0x00003203u, + 0x00003202u, 0x00003202u, 0x00003202u, 0x00003202u, 0x000300f7u, 0x00002842u, 0x00000000u, 0x000400fau, + 0x00001a60u, 0x00002833u, 0x00002842u, 0x000200f8u, 0x00002833u, 0x00050050u, 0x0000004du, 0x00002836u, + 0x00006750u, 0x00002757u, 0x0004007cu, 0x000000a0u, 0x00002837u, 0x00002836u, 0x00050051u, 0x00000006u, + 0x0000320fu, 0x00002837u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003210u, 0x0000258eu, 0x0000320fu, + 0x00050080u, 0x00000006u, 0x00003211u, 0x0000258bu, 0x00003210u, 0x00050051u, 0x00000006u, 0x00003213u, + 0x00002837u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003214u, 0x00003213u, 0x00000196u, 0x00050080u, + 0x00000006u, 0x00003216u, 0x00003211u, 0x00003214u, 0x000500c7u, 0x00000006u, 0x00003218u, 0x00003216u, + 0x000006b6u, 0x000400c8u, 0x00000006u, 0x0000321bu, 0x00003213u, 0x000500c7u, 0x00000006u, 0x0000321cu, + 0x0000321bu, 0x0000032cu, 0x00050084u, 0x00000006u, 0x0000321du, 0x0000321cu, 0x000006beu, 0x000500c7u, + 0x00000006u, 0x00003221u, 0x0000320fu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003222u, 0x00003221u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003224u, 0x00003218u, 0x00003222u, 0x000500c6u, 0x00000006u, + 0x00003226u, 0x00003224u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003229u, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00003226u, 0x0004003du, 0x000001adu, 0x0000322au, 0x00003229u, 0x00040071u, + 0x00000006u, 0x0000322bu, 0x0000322au, 0x000500c2u, 0x00000006u, 0x0000322eu, 0x0000322bu, 0x0000321du, + 0x000500c7u, 0x00000006u, 0x0000322fu, 0x0000322eu, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00003231u, + 0x0000322fu, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00003233u, 0x0000322fu, 0x00003231u, 0x0004007cu, + 0x00000008u, 0x00003235u, 0x00003233u, 0x00070050u, 0x00000009u, 0x00003236u, 0x00003235u, 0x00003235u, + 0x00003235u, 0x00003235u, 0x00050050u, 0x0000004du, 0x0000283du, 0x00006748u, 0x00002759u, 0x0004007cu, + 0x000000a0u, 0x0000283eu, 0x0000283du, 0x00050051u, 0x00000006u, 0x00003242u, 0x0000283eu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003243u, 0x0000258eu, 0x00003242u, 0x00050080u, 0x00000006u, 0x00003244u, + 0x0000258bu, 0x00003243u, 0x00050051u, 0x00000006u, 0x00003246u, 0x0000283eu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00003247u, 0x00003246u, 0x00000196u, 0x00050080u, 0x00000006u, 0x00003249u, 0x00003244u, + 0x00003247u, 0x000500c7u, 0x00000006u, 0x0000324bu, 0x00003249u, 0x000006b6u, 0x000400c8u, 0x00000006u, + 0x0000324eu, 0x00003246u, 0x000500c7u, 0x00000006u, 0x0000324fu, 0x0000324eu, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00003250u, 0x0000324fu, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00003254u, 0x00003242u, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003255u, 0x00003254u, 0x00000199u, 0x000500c6u, 0x00000006u, + 0x00003257u, 0x0000324bu, 0x00003255u, 0x000500c6u, 0x00000006u, 0x00003259u, 0x00003257u, 0x00000333u, + 0x00080041u, 0x000001fbu, 0x0000325cu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003259u, + 0x0004003du, 0x000001adu, 0x0000325du, 0x0000325cu, 0x00040071u, 0x00000006u, 0x0000325eu, 0x0000325du, + 0x000500c2u, 0x00000006u, 0x00003261u, 0x0000325eu, 0x00003250u, 0x000500c7u, 0x00000006u, 0x00003262u, + 0x00003261u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00003264u, 0x00003262u, 0x0000019fu, 0x000500c5u, + 0x00000006u, 0x00003266u, 0x00003262u, 0x00003264u, 0x0004007cu, 0x00000008u, 0x00003268u, 0x00003266u, + 0x00070050u, 0x00000009u, 0x00003269u, 0x00003268u, 0x00003268u, 0x00003268u, 0x00003268u, 0x000200f9u, + 0x00002842u, 0x000200f8u, 0x00002842u, 0x000700f5u, 0x00000009u, 0x0000698bu, 0x000067e2u, 0x0000282cu, + 0x00003269u, 0x00002833u, 0x000700f5u, 0x00000009u, 0x00006910u, 0x000067e2u, 0x0000282cu, 0x00003236u, + 0x00002833u, 0x000300f7u, 0x0000284cu, 0x00000000u, 0x000400fau, 0x00002763u, 0x00002844u, 0x0000284cu, + 0x000200f8u, 0x00002844u, 0x00050050u, 0x0000004du, 0x00002847u, 0x00006750u, 0x00002759u, 0x0004007cu, + 0x000000a0u, 0x00002848u, 0x00002847u, 0x00050051u, 0x00000006u, 0x00003275u, 0x00002848u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003276u, 0x0000258eu, 0x00003275u, 0x00050080u, 0x00000006u, 0x00003277u, + 0x0000258bu, 0x00003276u, 0x00050051u, 0x00000006u, 0x00003279u, 0x00002848u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x0000327au, 0x00003279u, 0x00000196u, 0x00050080u, 0x00000006u, 0x0000327cu, 0x00003277u, + 0x0000327au, 0x000500c7u, 0x00000006u, 0x0000327eu, 0x0000327cu, 0x000006b6u, 0x000400c8u, 0x00000006u, + 0x00003281u, 0x00003279u, 0x000500c7u, 0x00000006u, 0x00003282u, 0x00003281u, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00003283u, 0x00003282u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00003287u, 0x00003275u, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00003288u, 0x00003287u, 0x00000199u, 0x000500c6u, 0x00000006u, + 0x0000328au, 0x0000327eu, 0x00003288u, 0x000500c6u, 0x00000006u, 0x0000328cu, 0x0000328au, 0x00000333u, + 0x00080041u, 0x000001fbu, 0x0000328fu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000328cu, + 0x0004003du, 0x000001adu, 0x00003290u, 0x0000328fu, 0x00040071u, 0x00000006u, 0x00003291u, 0x00003290u, + 0x000500c2u, 0x00000006u, 0x00003294u, 0x00003291u, 0x00003283u, 0x000500c7u, 0x00000006u, 0x00003295u, + 0x00003294u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00003297u, 0x00003295u, 0x0000019fu, 0x000500c5u, + 0x00000006u, 0x00003299u, 0x00003295u, 0x00003297u, 0x0004007cu, 0x00000008u, 0x0000329bu, 0x00003299u, + 0x00070050u, 0x00000009u, 0x0000329cu, 0x0000329bu, 0x0000329bu, 0x0000329bu, 0x0000329bu, 0x000200f9u, + 0x0000284cu, 0x000200f8u, 0x0000284cu, 0x000700f5u, 0x00000009u, 0x00006a05u, 0x000067e2u, 0x00002842u, + 0x0000329cu, 0x00002844u, 0x000200f9u, 0x000028b0u, 0x000200f8u, 0x000028b0u, 0x000d00f5u, 0x00000009u, + 0x00006a04u, 0x000067e2u, 0x00002829u, 0x00006a05u, 0x0000284cu, 0x00006a07u, 0x0000286du, 0x00006a09u, + 0x0000288eu, 0x00006a0bu, 0x000028afu, 0x000d00f5u, 0x00000009u, 0x00006989u, 0x000067e2u, 0x00002829u, + 0x0000698bu, 0x0000284cu, 0x0000698du, 0x0000286du, 0x0000698fu, 0x0000288eu, 0x00006991u, 0x000028afu, + 0x000d00f5u, 0x00000009u, 0x0000690eu, 0x000067e2u, 0x00002829u, 0x00006910u, 0x0000284cu, 0x00006912u, + 0x0000286du, 0x00006914u, 0x0000288eu, 0x00006916u, 0x000028afu, 0x000d00f5u, 0x00000009u, 0x0000681eu, + 0x000067e2u, 0x00002829u, 0x00003203u, 0x0000284cu, 0x000032c0u, 0x0000286du, 0x0000336du, 0x0000288eu, + 0x00003467u, 0x000028afu, 0x000200f9u, 0x00002a41u, 0x000200f8u, 0x00002a41u, 0x000f00f5u, 0x00000009u, + 0x00006a03u, 0x000067e2u, 0x00002826u, 0x00006a04u, 0x000028b0u, 0x00006a0du, 0x000028deu, 0x00006a0eu, + 0x00002951u, 0x00006a15u, 0x000029d9u, 0x00006a1eu, 0x00002a40u, 0x000f00f5u, 0x00000009u, 0x00006988u, + 0x000067e2u, 0x00002826u, 0x00006989u, 0x000028b0u, 0x00006992u, 0x000028deu, 0x00006993u, 0x00002951u, + 0x0000699au, 0x000029d9u, 0x000069a3u, 0x00002a40u, 0x000f00f5u, 0x00000009u, 0x0000690du, 0x000067e2u, + 0x00002826u, 0x0000690eu, 0x000028b0u, 0x00006917u, 0x000028deu, 0x00006918u, 0x00002951u, 0x0000691fu, + 0x000029d9u, 0x00006928u, 0x00002a40u, 0x000f00f5u, 0x00000009u, 0x0000681du, 0x000067e2u, 0x00002826u, + 0x0000681eu, 0x000028b0u, 0x00003558u, 0x000028deu, 0x00006828u, 0x00002951u, 0x0000682fu, 0x000029d9u, + 0x00006838u, 0x00002a40u, 0x000200f9u, 0x00002a42u, 0x000200f8u, 0x00002780u, 0x000400a8u, 0x00000058u, + 0x00002782u, 0x00001a60u, 0x000300f7u, 0x00002789u, 0x00000000u, 0x000400fau, 0x00002782u, 0x00002783u, + 0x00002789u, 0x000200f8u, 0x00002783u, 0x00050050u, 0x0000004du, 0x00002786u, 0x00006748u, 0x00002757u, + 0x000200f9u, 0x00002789u, 0x000200f8u, 0x00002789u, 0x000700f5u, 0x0000004du, 0x00006795u, 0x0000676fu, + 0x00002780u, 0x00002786u, 0x00002783u, 0x000600a9u, 0x00000008u, 0x00008599u, 0x00002782u, 0x00002757u, + 0x00002759u, 0x000600a9u, 0x00000008u, 0x0000859au, 0x00002782u, 0x00006748u, 0x00006750u, 0x000300f7u, + 0x00002825u, 0x00000000u, 0x000b00fbu, 0x00008596u, 0x00002825u, 0x00000000u, 0x0000278cu, 0x00000002u, + 0x0000278cu, 0x00000003u, 0x0000278cu, 0x00000004u, 0x0000278cu, 0x000200f8u, 0x0000278cu, 0x000600a9u, + 0x00000008u, 0x00002790u, 0x00002765u, 0x00000199u, 0x00000196u, 0x0004007cu, 0x00000006u, 0x00002791u, + 0x00002790u, 0x000300f7u, 0x00002824u, 0x00000000u, 0x000700fbu, 0x00008597u, 0x00002794u, 0x00000000u, + 0x000027c0u, 0x00000001u, 0x000027f8u, 0x000200f8u, 0x000027f8u, 0x0004007cu, 0x000000a0u, 0x000027fau, + 0x00006795u, 0x000600a9u, 0x00000008u, 0x000027fcu, 0x0000276du, 0x0000019cu, 0x00000187u, 0x0004007cu, + 0x00000006u, 0x000027fdu, 0x000027fcu, 0x00050051u, 0x00000006u, 0x00003043u, 0x000027fau, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003044u, 0x0000258eu, 0x00003043u, 0x00050080u, 0x00000006u, 0x00003045u, + 0x0000258bu, 0x00003044u, 0x00050051u, 0x00000006u, 0x00003047u, 0x000027fau, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00003049u, 0x00003045u, 0x00003047u, 0x000500c7u, 0x00000006u, 0x0000304bu, 0x00003049u, + 0x00000769u, 0x000500c7u, 0x00000006u, 0x0000304fu, 0x00003043u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00003050u, 0x0000304fu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003052u, 0x0000304bu, 0x00003050u, + 0x000500c6u, 0x00000006u, 0x00003054u, 0x00003052u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003057u, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003054u, 0x0004003du, 0x000001adu, 0x00003058u, + 0x00003057u, 0x00040071u, 0x00000006u, 0x00003059u, 0x00003058u, 0x000500c4u, 0x00000006u, 0x0000305bu, + 0x00003059u, 0x00000199u, 0x00050080u, 0x00000006u, 0x0000305du, 0x0000305bu, 0x000027fdu, 0x000500c6u, + 0x00000006u, 0x00003060u, 0x0000305du, 0x00002791u, 0x000500c5u, 0x00000006u, 0x00003063u, 0x0000079au, + 0x00003060u, 0x00080041u, 0x000001f4u, 0x00003064u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00003063u, 0x0004003du, 0x000001afu, 0x00003065u, 0x00003064u, 0x00040071u, 0x00000006u, 0x00003066u, + 0x00003065u, 0x000300f7u, 0x0000306eu, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00003068u, 0x0000306bu, + 0x000200f8u, 0x0000306bu, 0x00060050u, 0x000002b8u, 0x00003086u, 0x00003066u, 0x00003066u, 0x00003066u, + 0x000500c2u, 0x000002b8u, 0x00003087u, 0x00003086u, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00003089u, + 0x00003087u, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x0000308cu, 0x00003089u, 0x0000856du, 0x000500c2u, + 0x000002b8u, 0x0000308fu, 0x00003089u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00003090u, 0x0000308cu, + 0x0000308fu, 0x000500c7u, 0x00000006u, 0x00003092u, 0x00003066u, 0x0000032cu, 0x00050084u, 0x00000006u, + 0x00003093u, 0x00003092u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00003095u, 0x00003090u, 0x0004007cu, + 0x00000008u, 0x00003097u, 0x00003093u, 0x00050051u, 0x00000008u, 0x00003098u, 0x00003095u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00003099u, 0x00003095u, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000309au, + 0x00003095u, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000309bu, 0x00003098u, 0x00003099u, 0x0000309au, + 0x00003097u, 0x000200f9u, 0x0000306eu, 0x000200f8u, 0x00003068u, 0x000500c2u, 0x00000006u, 0x00003075u, + 0x00003066u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00003077u, 0x00003066u, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00003079u, 0x00003075u, 0x0004007cu, 0x00000008u, 0x0000307fu, 0x00003077u, 0x00070050u, + 0x00000009u, 0x00003080u, 0x00003079u, 0x00003079u, 0x00003079u, 0x0000307fu, 0x000200f9u, 0x0000306eu, + 0x000200f8u, 0x0000306eu, 0x000700f5u, 0x00000009u, 0x00006796u, 0x00003080u, 0x00003068u, 0x0000309bu, + 0x0000306bu, 0x000300f7u, 0x00002817u, 0x00000000u, 0x000400fau, 0x00001a9cu, 0x00002804u, 0x00002817u, + 0x000200f8u, 0x00002804u, 0x00050050u, 0x0000004du, 0x00002807u, 0x0000859au, 0x00002757u, 0x0004007cu, + 0x000000a0u, 0x00002808u, 0x00002807u, 0x00050051u, 0x00000006u, 0x000030aau, 0x00002808u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000030abu, 0x0000258eu, 0x000030aau, 0x00050080u, 0x00000006u, 0x000030acu, + 0x0000258bu, 0x000030abu, 0x00050051u, 0x00000006u, 0x000030aeu, 0x00002808u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x000030b0u, 0x000030acu, 0x000030aeu, 0x000500c7u, 0x00000006u, 0x000030b2u, 0x000030b0u, + 0x00000769u, 0x000500c7u, 0x00000006u, 0x000030b6u, 0x000030aau, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x000030b7u, 0x000030b6u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x000030b9u, 0x000030b2u, 0x000030b7u, + 0x000500c6u, 0x00000006u, 0x000030bbu, 0x000030b9u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000030beu, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000030bbu, 0x0004003du, 0x000001adu, 0x000030bfu, + 0x000030beu, 0x00040071u, 0x00000006u, 0x000030c0u, 0x000030bfu, 0x000500c4u, 0x00000006u, 0x000030c2u, + 0x000030c0u, 0x00000199u, 0x00050080u, 0x00000006u, 0x000030c4u, 0x000030c2u, 0x0000032cu, 0x000500c6u, + 0x00000006u, 0x000030c7u, 0x000030c4u, 0x00002791u, 0x000500c5u, 0x00000006u, 0x000030cau, 0x0000079au, + 0x000030c7u, 0x00080041u, 0x000001f4u, 0x000030cbu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000030cau, 0x0004003du, 0x000001afu, 0x000030ccu, 0x000030cbu, 0x00040071u, 0x00000006u, 0x000030cdu, + 0x000030ccu, 0x000300f7u, 0x000030d5u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x000030cfu, 0x000030d2u, + 0x000200f8u, 0x000030d2u, 0x00060050u, 0x000002b8u, 0x000030edu, 0x000030cdu, 0x000030cdu, 0x000030cdu, + 0x000500c2u, 0x000002b8u, 0x000030eeu, 0x000030edu, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x000030f0u, + 0x000030eeu, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x000030f3u, 0x000030f0u, 0x0000856du, 0x000500c2u, + 0x000002b8u, 0x000030f6u, 0x000030f0u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x000030f7u, 0x000030f3u, + 0x000030f6u, 0x000500c7u, 0x00000006u, 0x000030f9u, 0x000030cdu, 0x0000032cu, 0x00050084u, 0x00000006u, + 0x000030fau, 0x000030f9u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x000030fcu, 0x000030f7u, 0x0004007cu, + 0x00000008u, 0x000030feu, 0x000030fau, 0x00050051u, 0x00000008u, 0x000030ffu, 0x000030fcu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00003100u, 0x000030fcu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003101u, + 0x000030fcu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00003102u, 0x000030ffu, 0x00003100u, 0x00003101u, + 0x000030feu, 0x000200f9u, 0x000030d5u, 0x000200f8u, 0x000030cfu, 0x000500c2u, 0x00000006u, 0x000030dcu, + 0x000030cdu, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x000030deu, 0x000030cdu, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x000030e0u, 0x000030dcu, 0x0004007cu, 0x00000008u, 0x000030e6u, 0x000030deu, 0x00070050u, + 0x00000009u, 0x000030e7u, 0x000030e0u, 0x000030e0u, 0x000030e0u, 0x000030e6u, 0x000200f9u, 0x000030d5u, + 0x000200f8u, 0x000030d5u, 0x000700f5u, 0x00000009u, 0x0000679du, 0x000030e7u, 0x000030cfu, 0x00003102u, + 0x000030d2u, 0x00050050u, 0x0000004du, 0x00002810u, 0x00006748u, 0x00008599u, 0x0004007cu, 0x000000a0u, + 0x00002811u, 0x00002810u, 0x00050051u, 0x00000006u, 0x00003111u, 0x00002811u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003112u, 0x0000258eu, 0x00003111u, 0x00050080u, 0x00000006u, 0x00003113u, 0x0000258bu, + 0x00003112u, 0x00050051u, 0x00000006u, 0x00003115u, 0x00002811u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003117u, 0x00003113u, 0x00003115u, 0x000500c7u, 0x00000006u, 0x00003119u, 0x00003117u, 0x00000769u, + 0x000500c7u, 0x00000006u, 0x0000311du, 0x00003111u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000311eu, + 0x0000311du, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003120u, 0x00003119u, 0x0000311eu, 0x000500c6u, + 0x00000006u, 0x00003122u, 0x00003120u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00003125u, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003122u, 0x0004003du, 0x000001adu, 0x00003126u, 0x00003125u, + 0x00040071u, 0x00000006u, 0x00003127u, 0x00003126u, 0x000500c4u, 0x00000006u, 0x00003129u, 0x00003127u, + 0x00000199u, 0x00050080u, 0x00000006u, 0x0000312bu, 0x00003129u, 0x00000330u, 0x000500c6u, 0x00000006u, + 0x0000312eu, 0x0000312bu, 0x00002791u, 0x000500c5u, 0x00000006u, 0x00003131u, 0x0000079au, 0x0000312eu, + 0x00080041u, 0x000001f4u, 0x00003132u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003131u, + 0x0004003du, 0x000001afu, 0x00003133u, 0x00003132u, 0x00040071u, 0x00000006u, 0x00003134u, 0x00003133u, + 0x000300f7u, 0x0000313cu, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00003136u, 0x00003139u, 0x000200f8u, + 0x00003139u, 0x00060050u, 0x000002b8u, 0x00003154u, 0x00003134u, 0x00003134u, 0x00003134u, 0x000500c2u, + 0x000002b8u, 0x00003155u, 0x00003154u, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00003157u, 0x00003155u, + 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x0000315au, 0x00003157u, 0x0000856du, 0x000500c2u, 0x000002b8u, + 0x0000315du, 0x00003157u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x0000315eu, 0x0000315au, 0x0000315du, + 0x000500c7u, 0x00000006u, 0x00003160u, 0x00003134u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00003161u, + 0x00003160u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00003163u, 0x0000315eu, 0x0004007cu, 0x00000008u, + 0x00003165u, 0x00003161u, 0x00050051u, 0x00000008u, 0x00003166u, 0x00003163u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00003167u, 0x00003163u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003168u, 0x00003163u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00003169u, 0x00003166u, 0x00003167u, 0x00003168u, 0x00003165u, + 0x000200f9u, 0x0000313cu, 0x000200f8u, 0x00003136u, 0x000500c2u, 0x00000006u, 0x00003143u, 0x00003134u, + 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00003145u, 0x00003134u, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x00003147u, 0x00003143u, 0x0004007cu, 0x00000008u, 0x0000314du, 0x00003145u, 0x00070050u, 0x00000009u, + 0x0000314eu, 0x00003147u, 0x00003147u, 0x00003147u, 0x0000314du, 0x000200f9u, 0x0000313cu, 0x000200f8u, + 0x0000313cu, 0x000700f5u, 0x00000009u, 0x000067a2u, 0x0000314eu, 0x00003136u, 0x00003169u, 0x00003139u, + 0x000200f9u, 0x00002817u, 0x000200f8u, 0x00002817u, 0x000700f5u, 0x00000009u, 0x00006985u, 0x000067e2u, + 0x0000306eu, 0x000067a2u, 0x0000313cu, 0x000700f5u, 0x00000009u, 0x00006909u, 0x000067e2u, 0x0000306eu, + 0x0000679du, 0x0000313cu, 0x000300f7u, 0x00002823u, 0x00000000u, 0x000400fau, 0x00002763u, 0x00002819u, + 0x00002823u, 0x000200f8u, 0x00002819u, 0x00050050u, 0x0000004du, 0x0000281cu, 0x0000859au, 0x00008599u, + 0x0004007cu, 0x000000a0u, 0x0000281du, 0x0000281cu, 0x00050051u, 0x00000006u, 0x00003178u, 0x0000281du, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003179u, 0x0000258eu, 0x00003178u, 0x00050080u, 0x00000006u, + 0x0000317au, 0x0000258bu, 0x00003179u, 0x00050051u, 0x00000006u, 0x0000317cu, 0x0000281du, 0x00000000u, + 0x00050080u, 0x00000006u, 0x0000317eu, 0x0000317au, 0x0000317cu, 0x000500c7u, 0x00000006u, 0x00003180u, + 0x0000317eu, 0x00000769u, 0x000500c7u, 0x00000006u, 0x00003184u, 0x00003178u, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00003185u, 0x00003184u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00003187u, 0x00003180u, + 0x00003185u, 0x000500c6u, 0x00000006u, 0x00003189u, 0x00003187u, 0x00000333u, 0x00080041u, 0x000001fbu, + 0x0000318cu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00003189u, 0x0004003du, 0x000001adu, + 0x0000318du, 0x0000318cu, 0x00040071u, 0x00000006u, 0x0000318eu, 0x0000318du, 0x000500c4u, 0x00000006u, + 0x00003190u, 0x0000318eu, 0x00000199u, 0x00050080u, 0x00000006u, 0x00003192u, 0x00003190u, 0x00000333u, + 0x000500c6u, 0x00000006u, 0x00003195u, 0x00003192u, 0x00002791u, 0x000500c5u, 0x00000006u, 0x00003198u, + 0x0000079au, 0x00003195u, 0x00080041u, 0x000001f4u, 0x00003199u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00003198u, 0x0004003du, 0x000001afu, 0x0000319au, 0x00003199u, 0x00040071u, 0x00000006u, + 0x0000319bu, 0x0000319au, 0x000300f7u, 0x000031a3u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x0000319du, + 0x000031a0u, 0x000200f8u, 0x000031a0u, 0x00060050u, 0x000002b8u, 0x000031bbu, 0x0000319bu, 0x0000319bu, + 0x0000319bu, 0x000500c2u, 0x000002b8u, 0x000031bcu, 0x000031bbu, 0x0000067cu, 0x000500c7u, 0x000002b8u, + 0x000031beu, 0x000031bcu, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x000031c1u, 0x000031beu, 0x0000856du, + 0x000500c2u, 0x000002b8u, 0x000031c4u, 0x000031beu, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x000031c5u, + 0x000031c1u, 0x000031c4u, 0x000500c7u, 0x00000006u, 0x000031c7u, 0x0000319bu, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x000031c8u, 0x000031c7u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x000031cau, 0x000031c5u, + 0x0004007cu, 0x00000008u, 0x000031ccu, 0x000031c8u, 0x00050051u, 0x00000008u, 0x000031cdu, 0x000031cau, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000031ceu, 0x000031cau, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000031cfu, 0x000031cau, 0x00000002u, 0x00070050u, 0x00000009u, 0x000031d0u, 0x000031cdu, 0x000031ceu, + 0x000031cfu, 0x000031ccu, 0x000200f9u, 0x000031a3u, 0x000200f8u, 0x0000319du, 0x000500c2u, 0x00000006u, + 0x000031aau, 0x0000319bu, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x000031acu, 0x0000319bu, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x000031aeu, 0x000031aau, 0x0004007cu, 0x00000008u, 0x000031b4u, 0x000031acu, + 0x00070050u, 0x00000009u, 0x000031b5u, 0x000031aeu, 0x000031aeu, 0x000031aeu, 0x000031b4u, 0x000200f9u, + 0x000031a3u, 0x000200f8u, 0x000031a3u, 0x000700f5u, 0x00000009u, 0x000067a8u, 0x000031b5u, 0x0000319du, + 0x000031d0u, 0x000031a0u, 0x000200f9u, 0x00002823u, 0x000200f8u, 0x00002823u, 0x000700f5u, 0x00000009u, + 0x000069feu, 0x000067e2u, 0x00002817u, 0x000067a8u, 0x000031a3u, 0x000200f9u, 0x00002824u, 0x000200f8u, + 0x000027c0u, 0x0004007cu, 0x000000a0u, 0x000027c2u, 0x00006795u, 0x0004007cu, 0x00000006u, 0x000027c5u, + 0x0000259du, 0x000600a9u, 0x00000008u, 0x000027c7u, 0x0000276du, 0x0000019cu, 0x00000187u, 0x0004007cu, + 0x00000006u, 0x000027c8u, 0x000027c7u, 0x00050051u, 0x00000006u, 0x00002e6cu, 0x000027c2u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00002e6du, 0x0000258eu, 0x00002e6cu, 0x00050080u, 0x00000006u, 0x00002e6eu, + 0x0000258bu, 0x00002e6du, 0x00050051u, 0x00000006u, 0x00002e70u, 0x000027c2u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00002e71u, 0x00002e70u, 0x00000196u, 0x00050080u, 0x00000006u, 0x00002e73u, 0x00002e6eu, + 0x00002e71u, 0x000500c7u, 0x00000006u, 0x00002e75u, 0x00002e73u, 0x00000769u, 0x000400c8u, 0x00000006u, + 0x00002e78u, 0x00002e70u, 0x000500c7u, 0x00000006u, 0x00002e79u, 0x00002e78u, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00002e7au, 0x00002e79u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00002e7eu, 0x00002e6cu, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00002e7fu, 0x00002e7eu, 0x00000199u, 0x000500c6u, 0x00000006u, + 0x00002e81u, 0x00002e75u, 0x00002e7fu, 0x000500c6u, 0x00000006u, 0x00002e83u, 0x00002e81u, 0x00000333u, + 0x00080041u, 0x000001fbu, 0x00002e86u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002e83u, + 0x0004003du, 0x000001adu, 0x00002e87u, 0x00002e86u, 0x00040071u, 0x00000006u, 0x00002e88u, 0x00002e87u, + 0x000500c2u, 0x00000006u, 0x00002e8bu, 0x00002e88u, 0x00002e7au, 0x000500c7u, 0x00000006u, 0x00002e8cu, + 0x00002e8bu, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00002e8eu, 0x000027c5u, 0x0000019fu, 0x000500c5u, + 0x00000006u, 0x00002e90u, 0x00002e8cu, 0x00002e8eu, 0x000500c4u, 0x00000006u, 0x00002e92u, 0x00002e90u, + 0x00000199u, 0x00050080u, 0x00000006u, 0x00002e94u, 0x00002e92u, 0x000027c8u, 0x000500c6u, 0x00000006u, + 0x00002e97u, 0x00002e94u, 0x00002791u, 0x000500c5u, 0x00000006u, 0x00002e9au, 0x0000079au, 0x00002e97u, + 0x00080041u, 0x000001f4u, 0x00002e9bu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002e9au, + 0x0004003du, 0x000001afu, 0x00002e9cu, 0x00002e9bu, 0x00040071u, 0x00000006u, 0x00002e9du, 0x00002e9cu, + 0x000300f7u, 0x00002ea5u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00002e9fu, 0x00002ea2u, 0x000200f8u, + 0x00002ea2u, 0x00060050u, 0x000002b8u, 0x00002ebdu, 0x00002e9du, 0x00002e9du, 0x00002e9du, 0x000500c2u, + 0x000002b8u, 0x00002ebeu, 0x00002ebdu, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00002ec0u, 0x00002ebeu, + 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00002ec3u, 0x00002ec0u, 0x0000856du, 0x000500c2u, 0x000002b8u, + 0x00002ec6u, 0x00002ec0u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00002ec7u, 0x00002ec3u, 0x00002ec6u, + 0x000500c7u, 0x00000006u, 0x00002ec9u, 0x00002e9du, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00002ecau, + 0x00002ec9u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00002eccu, 0x00002ec7u, 0x0004007cu, 0x00000008u, + 0x00002eceu, 0x00002ecau, 0x00050051u, 0x00000008u, 0x00002ecfu, 0x00002eccu, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00002ed0u, 0x00002eccu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00002ed1u, 0x00002eccu, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00002ed2u, 0x00002ecfu, 0x00002ed0u, 0x00002ed1u, 0x00002eceu, + 0x000200f9u, 0x00002ea5u, 0x000200f8u, 0x00002e9fu, 0x000500c2u, 0x00000006u, 0x00002eacu, 0x00002e9du, + 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00002eaeu, 0x00002e9du, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x00002eb0u, 0x00002eacu, 0x0004007cu, 0x00000008u, 0x00002eb6u, 0x00002eaeu, 0x00070050u, 0x00000009u, + 0x00002eb7u, 0x00002eb0u, 0x00002eb0u, 0x00002eb0u, 0x00002eb6u, 0x000200f9u, 0x00002ea5u, 0x000200f8u, + 0x00002ea5u, 0x000700f5u, 0x00000009u, 0x000067a9u, 0x00002eb7u, 0x00002e9fu, 0x00002ed2u, 0x00002ea2u, + 0x000300f7u, 0x000027e8u, 0x00000000u, 0x000400fau, 0x00001a9cu, 0x000027cfu, 0x000027e8u, 0x000200f8u, + 0x000027cfu, 0x00050050u, 0x0000004du, 0x000027d2u, 0x0000859au, 0x00002757u, 0x0004007cu, 0x000000a0u, + 0x000027d3u, 0x000027d2u, 0x00050051u, 0x00000006u, 0x00002ee2u, 0x000027d3u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00002ee3u, 0x0000258eu, 0x00002ee2u, 0x00050080u, 0x00000006u, 0x00002ee4u, 0x0000258bu, + 0x00002ee3u, 0x00050051u, 0x00000006u, 0x00002ee6u, 0x000027d3u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00002ee7u, 0x00002ee6u, 0x00000196u, 0x00050080u, 0x00000006u, 0x00002ee9u, 0x00002ee4u, 0x00002ee7u, + 0x000500c7u, 0x00000006u, 0x00002eebu, 0x00002ee9u, 0x00000769u, 0x000400c8u, 0x00000006u, 0x00002eeeu, + 0x00002ee6u, 0x000500c7u, 0x00000006u, 0x00002eefu, 0x00002eeeu, 0x0000032cu, 0x00050084u, 0x00000006u, + 0x00002ef0u, 0x00002eefu, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00002ef4u, 0x00002ee2u, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x00002ef5u, 0x00002ef4u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00002ef7u, + 0x00002eebu, 0x00002ef5u, 0x000500c6u, 0x00000006u, 0x00002ef9u, 0x00002ef7u, 0x00000333u, 0x00080041u, + 0x000001fbu, 0x00002efcu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002ef9u, 0x0004003du, + 0x000001adu, 0x00002efdu, 0x00002efcu, 0x00040071u, 0x00000006u, 0x00002efeu, 0x00002efdu, 0x000500c2u, + 0x00000006u, 0x00002f01u, 0x00002efeu, 0x00002ef0u, 0x000500c7u, 0x00000006u, 0x00002f02u, 0x00002f01u, + 0x000006dau, 0x000500c5u, 0x00000006u, 0x00002f06u, 0x00002f02u, 0x00002e8eu, 0x000500c4u, 0x00000006u, + 0x00002f08u, 0x00002f06u, 0x00000199u, 0x00050080u, 0x00000006u, 0x00002f0au, 0x00002f08u, 0x0000032cu, + 0x000500c6u, 0x00000006u, 0x00002f0du, 0x00002f0au, 0x00002791u, 0x000500c5u, 0x00000006u, 0x00002f10u, + 0x0000079au, 0x00002f0du, 0x00080041u, 0x000001f4u, 0x00002f11u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00002f10u, 0x0004003du, 0x000001afu, 0x00002f12u, 0x00002f11u, 0x00040071u, 0x00000006u, + 0x00002f13u, 0x00002f12u, 0x000300f7u, 0x00002f1bu, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00002f15u, + 0x00002f18u, 0x000200f8u, 0x00002f18u, 0x00060050u, 0x000002b8u, 0x00002f33u, 0x00002f13u, 0x00002f13u, + 0x00002f13u, 0x000500c2u, 0x000002b8u, 0x00002f34u, 0x00002f33u, 0x0000067cu, 0x000500c7u, 0x000002b8u, + 0x00002f36u, 0x00002f34u, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00002f39u, 0x00002f36u, 0x0000856du, + 0x000500c2u, 0x000002b8u, 0x00002f3cu, 0x00002f36u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00002f3du, + 0x00002f39u, 0x00002f3cu, 0x000500c7u, 0x00000006u, 0x00002f3fu, 0x00002f13u, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00002f40u, 0x00002f3fu, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00002f42u, 0x00002f3du, + 0x0004007cu, 0x00000008u, 0x00002f44u, 0x00002f40u, 0x00050051u, 0x00000008u, 0x00002f45u, 0x00002f42u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00002f46u, 0x00002f42u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00002f47u, 0x00002f42u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00002f48u, 0x00002f45u, 0x00002f46u, + 0x00002f47u, 0x00002f44u, 0x000200f9u, 0x00002f1bu, 0x000200f8u, 0x00002f15u, 0x000500c2u, 0x00000006u, + 0x00002f22u, 0x00002f13u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00002f24u, 0x00002f13u, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x00002f26u, 0x00002f22u, 0x0004007cu, 0x00000008u, 0x00002f2cu, 0x00002f24u, + 0x00070050u, 0x00000009u, 0x00002f2du, 0x00002f26u, 0x00002f26u, 0x00002f26u, 0x00002f2cu, 0x000200f9u, + 0x00002f1bu, 0x000200f8u, 0x00002f1bu, 0x000700f5u, 0x00000009u, 0x000067acu, 0x00002f2du, 0x00002f15u, + 0x00002f48u, 0x00002f18u, 0x00050050u, 0x0000004du, 0x000027deu, 0x00006748u, 0x00008599u, 0x0004007cu, + 0x000000a0u, 0x000027dfu, 0x000027deu, 0x00050051u, 0x00000006u, 0x00002f58u, 0x000027dfu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00002f59u, 0x0000258eu, 0x00002f58u, 0x00050080u, 0x00000006u, 0x00002f5au, + 0x0000258bu, 0x00002f59u, 0x00050051u, 0x00000006u, 0x00002f5cu, 0x000027dfu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00002f5du, 0x00002f5cu, 0x00000196u, 0x00050080u, 0x00000006u, 0x00002f5fu, 0x00002f5au, + 0x00002f5du, 0x000500c7u, 0x00000006u, 0x00002f61u, 0x00002f5fu, 0x00000769u, 0x000400c8u, 0x00000006u, + 0x00002f64u, 0x00002f5cu, 0x000500c7u, 0x00000006u, 0x00002f65u, 0x00002f64u, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00002f66u, 0x00002f65u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00002f6au, 0x00002f58u, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00002f6bu, 0x00002f6au, 0x00000199u, 0x000500c6u, 0x00000006u, + 0x00002f6du, 0x00002f61u, 0x00002f6bu, 0x000500c6u, 0x00000006u, 0x00002f6fu, 0x00002f6du, 0x00000333u, + 0x00080041u, 0x000001fbu, 0x00002f72u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002f6fu, + 0x0004003du, 0x000001adu, 0x00002f73u, 0x00002f72u, 0x00040071u, 0x00000006u, 0x00002f74u, 0x00002f73u, + 0x000500c2u, 0x00000006u, 0x00002f77u, 0x00002f74u, 0x00002f66u, 0x000500c7u, 0x00000006u, 0x00002f78u, + 0x00002f77u, 0x000006dau, 0x000500c5u, 0x00000006u, 0x00002f7cu, 0x00002f78u, 0x00002e8eu, 0x000500c4u, + 0x00000006u, 0x00002f7eu, 0x00002f7cu, 0x00000199u, 0x00050080u, 0x00000006u, 0x00002f80u, 0x00002f7eu, + 0x00000330u, 0x000500c6u, 0x00000006u, 0x00002f83u, 0x00002f80u, 0x00002791u, 0x000500c5u, 0x00000006u, + 0x00002f86u, 0x0000079au, 0x00002f83u, 0x00080041u, 0x000001f4u, 0x00002f87u, 0x00000798u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00002f86u, 0x0004003du, 0x000001afu, 0x00002f88u, 0x00002f87u, 0x00040071u, + 0x00000006u, 0x00002f89u, 0x00002f88u, 0x000300f7u, 0x00002f91u, 0x00000000u, 0x000400fau, 0x00001a5du, + 0x00002f8bu, 0x00002f8eu, 0x000200f8u, 0x00002f8eu, 0x00060050u, 0x000002b8u, 0x00002fa9u, 0x00002f89u, + 0x00002f89u, 0x00002f89u, 0x000500c2u, 0x000002b8u, 0x00002faau, 0x00002fa9u, 0x0000067cu, 0x000500c7u, + 0x000002b8u, 0x00002facu, 0x00002faau, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00002fafu, 0x00002facu, + 0x0000856du, 0x000500c2u, 0x000002b8u, 0x00002fb2u, 0x00002facu, 0x0000856eu, 0x000500c5u, 0x000002b8u, + 0x00002fb3u, 0x00002fafu, 0x00002fb2u, 0x000500c7u, 0x00000006u, 0x00002fb5u, 0x00002f89u, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x00002fb6u, 0x00002fb5u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00002fb8u, + 0x00002fb3u, 0x0004007cu, 0x00000008u, 0x00002fbau, 0x00002fb6u, 0x00050051u, 0x00000008u, 0x00002fbbu, + 0x00002fb8u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00002fbcu, 0x00002fb8u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x00002fbdu, 0x00002fb8u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00002fbeu, 0x00002fbbu, + 0x00002fbcu, 0x00002fbdu, 0x00002fbau, 0x000200f9u, 0x00002f91u, 0x000200f8u, 0x00002f8bu, 0x000500c2u, + 0x00000006u, 0x00002f98u, 0x00002f89u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00002f9au, 0x00002f89u, + 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00002f9cu, 0x00002f98u, 0x0004007cu, 0x00000008u, 0x00002fa2u, + 0x00002f9au, 0x00070050u, 0x00000009u, 0x00002fa3u, 0x00002f9cu, 0x00002f9cu, 0x00002f9cu, 0x00002fa2u, + 0x000200f9u, 0x00002f91u, 0x000200f8u, 0x00002f91u, 0x000700f5u, 0x00000009u, 0x000067afu, 0x00002fa3u, + 0x00002f8bu, 0x00002fbeu, 0x00002f8eu, 0x000200f9u, 0x000027e8u, 0x000200f8u, 0x000027e8u, 0x000700f5u, + 0x00000009u, 0x00006981u, 0x000067e2u, 0x00002ea5u, 0x000067afu, 0x00002f91u, 0x000700f5u, 0x00000009u, + 0x00006904u, 0x000067e2u, 0x00002ea5u, 0x000067acu, 0x00002f91u, 0x000300f7u, 0x000027f7u, 0x00000000u, + 0x000400fau, 0x00002763u, 0x000027eau, 0x000027f7u, 0x000200f8u, 0x000027eau, 0x00050050u, 0x0000004du, + 0x000027edu, 0x0000859au, 0x00008599u, 0x0004007cu, 0x000000a0u, 0x000027eeu, 0x000027edu, 0x00050051u, + 0x00000006u, 0x00002fceu, 0x000027eeu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00002fcfu, 0x0000258eu, + 0x00002fceu, 0x00050080u, 0x00000006u, 0x00002fd0u, 0x0000258bu, 0x00002fcfu, 0x00050051u, 0x00000006u, + 0x00002fd2u, 0x000027eeu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00002fd3u, 0x00002fd2u, 0x00000196u, + 0x00050080u, 0x00000006u, 0x00002fd5u, 0x00002fd0u, 0x00002fd3u, 0x000500c7u, 0x00000006u, 0x00002fd7u, + 0x00002fd5u, 0x00000769u, 0x000400c8u, 0x00000006u, 0x00002fdau, 0x00002fd2u, 0x000500c7u, 0x00000006u, + 0x00002fdbu, 0x00002fdau, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00002fdcu, 0x00002fdbu, 0x000006beu, + 0x000500c7u, 0x00000006u, 0x00002fe0u, 0x00002fceu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00002fe1u, + 0x00002fe0u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00002fe3u, 0x00002fd7u, 0x00002fe1u, 0x000500c6u, + 0x00000006u, 0x00002fe5u, 0x00002fe3u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00002fe8u, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002fe5u, 0x0004003du, 0x000001adu, 0x00002fe9u, 0x00002fe8u, + 0x00040071u, 0x00000006u, 0x00002feau, 0x00002fe9u, 0x000500c2u, 0x00000006u, 0x00002fedu, 0x00002feau, + 0x00002fdcu, 0x000500c7u, 0x00000006u, 0x00002feeu, 0x00002fedu, 0x000006dau, 0x000500c5u, 0x00000006u, + 0x00002ff2u, 0x00002feeu, 0x00002e8eu, 0x000500c4u, 0x00000006u, 0x00002ff4u, 0x00002ff2u, 0x00000199u, + 0x00050080u, 0x00000006u, 0x00002ff6u, 0x00002ff4u, 0x00000333u, 0x000500c6u, 0x00000006u, 0x00002ff9u, + 0x00002ff6u, 0x00002791u, 0x000500c5u, 0x00000006u, 0x00002ffcu, 0x0000079au, 0x00002ff9u, 0x00080041u, + 0x000001f4u, 0x00002ffdu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002ffcu, 0x0004003du, + 0x000001afu, 0x00002ffeu, 0x00002ffdu, 0x00040071u, 0x00000006u, 0x00002fffu, 0x00002ffeu, 0x000300f7u, + 0x00003007u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00003001u, 0x00003004u, 0x000200f8u, 0x00003004u, + 0x00060050u, 0x000002b8u, 0x0000301fu, 0x00002fffu, 0x00002fffu, 0x00002fffu, 0x000500c2u, 0x000002b8u, + 0x00003020u, 0x0000301fu, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00003022u, 0x00003020u, 0x0000856cu, + 0x000500c4u, 0x000002b8u, 0x00003025u, 0x00003022u, 0x0000856du, 0x000500c2u, 0x000002b8u, 0x00003028u, + 0x00003022u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00003029u, 0x00003025u, 0x00003028u, 0x000500c7u, + 0x00000006u, 0x0000302bu, 0x00002fffu, 0x0000032cu, 0x00050084u, 0x00000006u, 0x0000302cu, 0x0000302bu, + 0x0000068bu, 0x0004007cu, 0x00000052u, 0x0000302eu, 0x00003029u, 0x0004007cu, 0x00000008u, 0x00003030u, + 0x0000302cu, 0x00050051u, 0x00000008u, 0x00003031u, 0x0000302eu, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00003032u, 0x0000302eu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003033u, 0x0000302eu, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00003034u, 0x00003031u, 0x00003032u, 0x00003033u, 0x00003030u, 0x000200f9u, + 0x00003007u, 0x000200f8u, 0x00003001u, 0x000500c2u, 0x00000006u, 0x0000300eu, 0x00002fffu, 0x000001e2u, + 0x000500c7u, 0x00000006u, 0x00003010u, 0x00002fffu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00003012u, + 0x0000300eu, 0x0004007cu, 0x00000008u, 0x00003018u, 0x00003010u, 0x00070050u, 0x00000009u, 0x00003019u, + 0x00003012u, 0x00003012u, 0x00003012u, 0x00003018u, 0x000200f9u, 0x00003007u, 0x000200f8u, 0x00003007u, + 0x000700f5u, 0x00000009u, 0x000067b5u, 0x00003019u, 0x00003001u, 0x00003034u, 0x00003004u, 0x000200f9u, + 0x000027f7u, 0x000200f8u, 0x000027f7u, 0x000700f5u, 0x00000009u, 0x000069f9u, 0x000067e2u, 0x000027e8u, + 0x000067b5u, 0x00003007u, 0x000200f9u, 0x00002824u, 0x000200f8u, 0x00002794u, 0x0004007cu, 0x000000a0u, + 0x00002796u, 0x00006795u, 0x000600a9u, 0x00000008u, 0x00002798u, 0x0000276du, 0x0000019cu, 0x00000187u, + 0x0004007cu, 0x00000006u, 0x00002799u, 0x00002798u, 0x00050051u, 0x00000006u, 0x00002cc3u, 0x00002796u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00002cc4u, 0x0000258eu, 0x00002cc3u, 0x00050080u, 0x00000006u, + 0x00002cc5u, 0x0000258bu, 0x00002cc4u, 0x00050051u, 0x00000006u, 0x00002cc7u, 0x00002796u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00002cc8u, 0x00002cc7u, 0x00000330u, 0x00050080u, 0x00000006u, 0x00002ccau, + 0x00002cc5u, 0x00002cc8u, 0x000500c7u, 0x00000006u, 0x00002cccu, 0x00002ccau, 0x00000769u, 0x000500c2u, + 0x00000006u, 0x00002cceu, 0x00002cccu, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00002cd1u, 0x00002cc3u, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00002cd2u, 0x00002cd1u, 0x00000196u, 0x000500c6u, 0x00000006u, + 0x00002cd4u, 0x00002cceu, 0x00002cd2u, 0x000500c6u, 0x00000006u, 0x00002cd6u, 0x00002cd4u, 0x0000032cu, + 0x00080041u, 0x000001f4u, 0x00002cd9u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002cd6u, + 0x0004003du, 0x000001afu, 0x00002cdau, 0x00002cd9u, 0x00040071u, 0x00000006u, 0x00002cdbu, 0x00002cdau, + 0x000500c2u, 0x00000006u, 0x00002cddu, 0x00002cdbu, 0x000001a5u, 0x000500c7u, 0x00000006u, 0x00002cdeu, + 0x00002cddu, 0x00000838u, 0x00050080u, 0x00000006u, 0x00002ce0u, 0x00002cdeu, 0x00002799u, 0x000500c6u, + 0x00000006u, 0x00002ce3u, 0x00002ce0u, 0x00002791u, 0x000500c5u, 0x00000006u, 0x00002ce6u, 0x0000079au, + 0x00002ce3u, 0x00080041u, 0x000001f4u, 0x00002ce7u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00002ce6u, 0x0004003du, 0x000001afu, 0x00002ce8u, 0x00002ce7u, 0x00040071u, 0x00000006u, 0x00002ce9u, + 0x00002ce8u, 0x000300f7u, 0x00002cf1u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00002cebu, 0x00002ceeu, + 0x000200f8u, 0x00002ceeu, 0x00060050u, 0x000002b8u, 0x00002d09u, 0x00002ce9u, 0x00002ce9u, 0x00002ce9u, + 0x000500c2u, 0x000002b8u, 0x00002d0au, 0x00002d09u, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00002d0cu, + 0x00002d0au, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00002d0fu, 0x00002d0cu, 0x0000856du, 0x000500c2u, + 0x000002b8u, 0x00002d12u, 0x00002d0cu, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00002d13u, 0x00002d0fu, + 0x00002d12u, 0x000500c7u, 0x00000006u, 0x00002d15u, 0x00002ce9u, 0x0000032cu, 0x00050084u, 0x00000006u, + 0x00002d16u, 0x00002d15u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00002d18u, 0x00002d13u, 0x0004007cu, + 0x00000008u, 0x00002d1au, 0x00002d16u, 0x00050051u, 0x00000008u, 0x00002d1bu, 0x00002d18u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00002d1cu, 0x00002d18u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00002d1du, + 0x00002d18u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00002d1eu, 0x00002d1bu, 0x00002d1cu, 0x00002d1du, + 0x00002d1au, 0x000200f9u, 0x00002cf1u, 0x000200f8u, 0x00002cebu, 0x000500c2u, 0x00000006u, 0x00002cf8u, + 0x00002ce9u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00002cfau, 0x00002ce9u, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00002cfcu, 0x00002cf8u, 0x0004007cu, 0x00000008u, 0x00002d02u, 0x00002cfau, 0x00070050u, + 0x00000009u, 0x00002d03u, 0x00002cfcu, 0x00002cfcu, 0x00002cfcu, 0x00002d02u, 0x000200f9u, 0x00002cf1u, + 0x000200f8u, 0x00002cf1u, 0x000700f5u, 0x00000009u, 0x000067b6u, 0x00002d03u, 0x00002cebu, 0x00002d1eu, + 0x00002ceeu, 0x000300f7u, 0x000027b3u, 0x00000000u, 0x000400fau, 0x00001a9cu, 0x000027a0u, 0x000027b3u, + 0x000200f8u, 0x000027a0u, 0x00050050u, 0x0000004du, 0x000027a3u, 0x0000859au, 0x00002757u, 0x0004007cu, + 0x000000a0u, 0x000027a4u, 0x000027a3u, 0x00050051u, 0x00000006u, 0x00002d2du, 0x000027a4u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00002d2eu, 0x0000258eu, 0x00002d2du, 0x00050080u, 0x00000006u, 0x00002d2fu, + 0x0000258bu, 0x00002d2eu, 0x00050051u, 0x00000006u, 0x00002d31u, 0x000027a4u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00002d32u, 0x00002d31u, 0x00000330u, 0x00050080u, 0x00000006u, 0x00002d34u, 0x00002d2fu, + 0x00002d32u, 0x000500c7u, 0x00000006u, 0x00002d36u, 0x00002d34u, 0x00000769u, 0x000500c2u, 0x00000006u, + 0x00002d38u, 0x00002d36u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00002d3bu, 0x00002d2du, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x00002d3cu, 0x00002d3bu, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00002d3eu, + 0x00002d38u, 0x00002d3cu, 0x000500c6u, 0x00000006u, 0x00002d40u, 0x00002d3eu, 0x0000032cu, 0x00080041u, + 0x000001f4u, 0x00002d43u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002d40u, 0x0004003du, + 0x000001afu, 0x00002d44u, 0x00002d43u, 0x00040071u, 0x00000006u, 0x00002d45u, 0x00002d44u, 0x000500c2u, + 0x00000006u, 0x00002d47u, 0x00002d45u, 0x000001a5u, 0x000500c7u, 0x00000006u, 0x00002d48u, 0x00002d47u, + 0x00000838u, 0x00050080u, 0x00000006u, 0x00002d4au, 0x00002d48u, 0x0000032cu, 0x000500c6u, 0x00000006u, + 0x00002d4du, 0x00002d4au, 0x00002791u, 0x000500c5u, 0x00000006u, 0x00002d50u, 0x0000079au, 0x00002d4du, + 0x00080041u, 0x000001f4u, 0x00002d51u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002d50u, + 0x0004003du, 0x000001afu, 0x00002d52u, 0x00002d51u, 0x00040071u, 0x00000006u, 0x00002d53u, 0x00002d52u, + 0x000300f7u, 0x00002d5bu, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00002d55u, 0x00002d58u, 0x000200f8u, + 0x00002d58u, 0x00060050u, 0x000002b8u, 0x00002d73u, 0x00002d53u, 0x00002d53u, 0x00002d53u, 0x000500c2u, + 0x000002b8u, 0x00002d74u, 0x00002d73u, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00002d76u, 0x00002d74u, + 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00002d79u, 0x00002d76u, 0x0000856du, 0x000500c2u, 0x000002b8u, + 0x00002d7cu, 0x00002d76u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00002d7du, 0x00002d79u, 0x00002d7cu, + 0x000500c7u, 0x00000006u, 0x00002d7fu, 0x00002d53u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00002d80u, + 0x00002d7fu, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00002d82u, 0x00002d7du, 0x0004007cu, 0x00000008u, + 0x00002d84u, 0x00002d80u, 0x00050051u, 0x00000008u, 0x00002d85u, 0x00002d82u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00002d86u, 0x00002d82u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00002d87u, 0x00002d82u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00002d88u, 0x00002d85u, 0x00002d86u, 0x00002d87u, 0x00002d84u, + 0x000200f9u, 0x00002d5bu, 0x000200f8u, 0x00002d55u, 0x000500c2u, 0x00000006u, 0x00002d62u, 0x00002d53u, + 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00002d64u, 0x00002d53u, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x00002d66u, 0x00002d62u, 0x0004007cu, 0x00000008u, 0x00002d6cu, 0x00002d64u, 0x00070050u, 0x00000009u, + 0x00002d6du, 0x00002d66u, 0x00002d66u, 0x00002d66u, 0x00002d6cu, 0x000200f9u, 0x00002d5bu, 0x000200f8u, + 0x00002d5bu, 0x000700f5u, 0x00000009u, 0x000067b9u, 0x00002d6du, 0x00002d55u, 0x00002d88u, 0x00002d58u, + 0x00050050u, 0x0000004du, 0x000027acu, 0x00006748u, 0x00008599u, 0x0004007cu, 0x000000a0u, 0x000027adu, + 0x000027acu, 0x00050051u, 0x00000006u, 0x00002d97u, 0x000027adu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00002d98u, 0x0000258eu, 0x00002d97u, 0x00050080u, 0x00000006u, 0x00002d99u, 0x0000258bu, 0x00002d98u, + 0x00050051u, 0x00000006u, 0x00002d9bu, 0x000027adu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00002d9cu, + 0x00002d9bu, 0x00000330u, 0x00050080u, 0x00000006u, 0x00002d9eu, 0x00002d99u, 0x00002d9cu, 0x000500c7u, + 0x00000006u, 0x00002da0u, 0x00002d9eu, 0x00000769u, 0x000500c2u, 0x00000006u, 0x00002da2u, 0x00002da0u, + 0x00000196u, 0x000500c7u, 0x00000006u, 0x00002da5u, 0x00002d97u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00002da6u, 0x00002da5u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00002da8u, 0x00002da2u, 0x00002da6u, + 0x000500c6u, 0x00000006u, 0x00002daau, 0x00002da8u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00002dadu, + 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002daau, 0x0004003du, 0x000001afu, 0x00002daeu, + 0x00002dadu, 0x00040071u, 0x00000006u, 0x00002dafu, 0x00002daeu, 0x000500c2u, 0x00000006u, 0x00002db1u, + 0x00002dafu, 0x000001a5u, 0x000500c7u, 0x00000006u, 0x00002db2u, 0x00002db1u, 0x00000838u, 0x00050080u, + 0x00000006u, 0x00002db4u, 0x00002db2u, 0x00000330u, 0x000500c6u, 0x00000006u, 0x00002db7u, 0x00002db4u, + 0x00002791u, 0x000500c5u, 0x00000006u, 0x00002dbau, 0x0000079au, 0x00002db7u, 0x00080041u, 0x000001f4u, + 0x00002dbbu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002dbau, 0x0004003du, 0x000001afu, + 0x00002dbcu, 0x00002dbbu, 0x00040071u, 0x00000006u, 0x00002dbdu, 0x00002dbcu, 0x000300f7u, 0x00002dc5u, + 0x00000000u, 0x000400fau, 0x00001a5du, 0x00002dbfu, 0x00002dc2u, 0x000200f8u, 0x00002dc2u, 0x00060050u, + 0x000002b8u, 0x00002dddu, 0x00002dbdu, 0x00002dbdu, 0x00002dbdu, 0x000500c2u, 0x000002b8u, 0x00002ddeu, + 0x00002dddu, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00002de0u, 0x00002ddeu, 0x0000856cu, 0x000500c4u, + 0x000002b8u, 0x00002de3u, 0x00002de0u, 0x0000856du, 0x000500c2u, 0x000002b8u, 0x00002de6u, 0x00002de0u, + 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00002de7u, 0x00002de3u, 0x00002de6u, 0x000500c7u, 0x00000006u, + 0x00002de9u, 0x00002dbdu, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00002deau, 0x00002de9u, 0x0000068bu, + 0x0004007cu, 0x00000052u, 0x00002decu, 0x00002de7u, 0x0004007cu, 0x00000008u, 0x00002deeu, 0x00002deau, + 0x00050051u, 0x00000008u, 0x00002defu, 0x00002decu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00002df0u, + 0x00002decu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00002df1u, 0x00002decu, 0x00000002u, 0x00070050u, + 0x00000009u, 0x00002df2u, 0x00002defu, 0x00002df0u, 0x00002df1u, 0x00002deeu, 0x000200f9u, 0x00002dc5u, + 0x000200f8u, 0x00002dbfu, 0x000500c2u, 0x00000006u, 0x00002dccu, 0x00002dbdu, 0x000001e2u, 0x000500c7u, + 0x00000006u, 0x00002dceu, 0x00002dbdu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00002dd0u, 0x00002dccu, + 0x0004007cu, 0x00000008u, 0x00002dd6u, 0x00002dceu, 0x00070050u, 0x00000009u, 0x00002dd7u, 0x00002dd0u, + 0x00002dd0u, 0x00002dd0u, 0x00002dd6u, 0x000200f9u, 0x00002dc5u, 0x000200f8u, 0x00002dc5u, 0x000700f5u, + 0x00000009u, 0x000067bcu, 0x00002dd7u, 0x00002dbfu, 0x00002df2u, 0x00002dc2u, 0x000200f9u, 0x000027b3u, + 0x000200f8u, 0x000027b3u, 0x000700f5u, 0x00000009u, 0x0000697cu, 0x000067e2u, 0x00002cf1u, 0x000067bcu, + 0x00002dc5u, 0x000700f5u, 0x00000009u, 0x000068feu, 0x000067e2u, 0x00002cf1u, 0x000067b9u, 0x00002dc5u, + 0x000300f7u, 0x000027bfu, 0x00000000u, 0x000400fau, 0x00002763u, 0x000027b5u, 0x000027bfu, 0x000200f8u, + 0x000027b5u, 0x00050050u, 0x0000004du, 0x000027b8u, 0x0000859au, 0x00008599u, 0x0004007cu, 0x000000a0u, + 0x000027b9u, 0x000027b8u, 0x00050051u, 0x00000006u, 0x00002e01u, 0x000027b9u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00002e02u, 0x0000258eu, 0x00002e01u, 0x00050080u, 0x00000006u, 0x00002e03u, 0x0000258bu, + 0x00002e02u, 0x00050051u, 0x00000006u, 0x00002e05u, 0x000027b9u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00002e06u, 0x00002e05u, 0x00000330u, 0x00050080u, 0x00000006u, 0x00002e08u, 0x00002e03u, 0x00002e06u, + 0x000500c7u, 0x00000006u, 0x00002e0au, 0x00002e08u, 0x00000769u, 0x000500c2u, 0x00000006u, 0x00002e0cu, + 0x00002e0au, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00002e0fu, 0x00002e01u, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00002e10u, 0x00002e0fu, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00002e12u, 0x00002e0cu, + 0x00002e10u, 0x000500c6u, 0x00000006u, 0x00002e14u, 0x00002e12u, 0x0000032cu, 0x00080041u, 0x000001f4u, + 0x00002e17u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002e14u, 0x0004003du, 0x000001afu, + 0x00002e18u, 0x00002e17u, 0x00040071u, 0x00000006u, 0x00002e19u, 0x00002e18u, 0x000500c2u, 0x00000006u, + 0x00002e1bu, 0x00002e19u, 0x000001a5u, 0x000500c7u, 0x00000006u, 0x00002e1cu, 0x00002e1bu, 0x00000838u, + 0x00050080u, 0x00000006u, 0x00002e1eu, 0x00002e1cu, 0x00000333u, 0x000500c6u, 0x00000006u, 0x00002e21u, + 0x00002e1eu, 0x00002791u, 0x000500c5u, 0x00000006u, 0x00002e24u, 0x0000079au, 0x00002e21u, 0x00080041u, + 0x000001f4u, 0x00002e25u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00002e24u, 0x0004003du, + 0x000001afu, 0x00002e26u, 0x00002e25u, 0x00040071u, 0x00000006u, 0x00002e27u, 0x00002e26u, 0x000300f7u, + 0x00002e2fu, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00002e29u, 0x00002e2cu, 0x000200f8u, 0x00002e2cu, + 0x00060050u, 0x000002b8u, 0x00002e47u, 0x00002e27u, 0x00002e27u, 0x00002e27u, 0x000500c2u, 0x000002b8u, + 0x00002e48u, 0x00002e47u, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00002e4au, 0x00002e48u, 0x0000856cu, + 0x000500c4u, 0x000002b8u, 0x00002e4du, 0x00002e4au, 0x0000856du, 0x000500c2u, 0x000002b8u, 0x00002e50u, + 0x00002e4au, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00002e51u, 0x00002e4du, 0x00002e50u, 0x000500c7u, + 0x00000006u, 0x00002e53u, 0x00002e27u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00002e54u, 0x00002e53u, + 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00002e56u, 0x00002e51u, 0x0004007cu, 0x00000008u, 0x00002e58u, + 0x00002e54u, 0x00050051u, 0x00000008u, 0x00002e59u, 0x00002e56u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00002e5au, 0x00002e56u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00002e5bu, 0x00002e56u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00002e5cu, 0x00002e59u, 0x00002e5au, 0x00002e5bu, 0x00002e58u, 0x000200f9u, + 0x00002e2fu, 0x000200f8u, 0x00002e29u, 0x000500c2u, 0x00000006u, 0x00002e36u, 0x00002e27u, 0x000001e2u, + 0x000500c7u, 0x00000006u, 0x00002e38u, 0x00002e27u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00002e3au, + 0x00002e36u, 0x0004007cu, 0x00000008u, 0x00002e40u, 0x00002e38u, 0x00070050u, 0x00000009u, 0x00002e41u, + 0x00002e3au, 0x00002e3au, 0x00002e3au, 0x00002e40u, 0x000200f9u, 0x00002e2fu, 0x000200f8u, 0x00002e2fu, + 0x000700f5u, 0x00000009u, 0x000067c2u, 0x00002e41u, 0x00002e29u, 0x00002e5cu, 0x00002e2cu, 0x000200f9u, + 0x000027bfu, 0x000200f8u, 0x000027bfu, 0x000700f5u, 0x00000009u, 0x000069f3u, 0x000067e2u, 0x000027b3u, + 0x000067c2u, 0x00002e2fu, 0x000200f9u, 0x00002824u, 0x000200f8u, 0x00002824u, 0x000900f5u, 0x00000009u, + 0x000069f2u, 0x000069f3u, 0x000027bfu, 0x000069f9u, 0x000027f7u, 0x000069feu, 0x00002823u, 0x000900f5u, + 0x00000009u, 0x0000697au, 0x0000697cu, 0x000027bfu, 0x00006981u, 0x000027f7u, 0x00006985u, 0x00002823u, + 0x000900f5u, 0x00000009u, 0x000068fcu, 0x000068feu, 0x000027bfu, 0x00006904u, 0x000027f7u, 0x00006909u, + 0x00002823u, 0x000900f5u, 0x00000009u, 0x0000680du, 0x000067b6u, 0x000027bfu, 0x000067a9u, 0x000027f7u, + 0x00006796u, 0x00002823u, 0x000200f9u, 0x00002825u, 0x000200f8u, 0x00002825u, 0x000700f5u, 0x00000009u, + 0x000069abu, 0x000067e2u, 0x00002789u, 0x000069f2u, 0x00002824u, 0x000700f5u, 0x00000009u, 0x00006933u, + 0x000067e2u, 0x00002789u, 0x0000697au, 0x00002824u, 0x000700f5u, 0x00000009u, 0x000068b5u, 0x000067e2u, + 0x00002789u, 0x000068fcu, 0x00002824u, 0x000700f5u, 0x00000009u, 0x000067c5u, 0x000067e2u, 0x00002789u, + 0x0000680du, 0x00002824u, 0x000200f9u, 0x00002a42u, 0x000200f8u, 0x00002a42u, 0x000700f5u, 0x00000009u, + 0x000069aau, 0x000069abu, 0x00002825u, 0x00006a03u, 0x00002a41u, 0x000700f5u, 0x00000009u, 0x00006932u, + 0x00006933u, 0x00002825u, 0x00006988u, 0x00002a41u, 0x000700f5u, 0x00000009u, 0x000068b4u, 0x000068b5u, + 0x00002825u, 0x0000690du, 0x00002a41u, 0x000700f5u, 0x00000009u, 0x000067c4u, 0x000067c5u, 0x00002825u, + 0x0000681du, 0x00002a41u, 0x000300f7u, 0x00002bd4u, 0x00000000u, 0x000400fau, 0x0000276bu, 0x00002b1fu, + 0x00002b92u, 0x000200f8u, 0x00002b92u, 0x000300f7u, 0x00002bd3u, 0x00000000u, 0x000400fau, 0x00002763u, + 0x00002b94u, 0x00002ba0u, 0x000200f8u, 0x00002ba0u, 0x000600a9u, 0x00000058u, 0x0000859bu, 0x00001a9cu, + 0x00002731u, 0x00001a9cu, 0x000300f7u, 0x00002bd2u, 0x00000000u, 0x000400fau, 0x0000859bu, 0x00002ba8u, + 0x00002bd0u, 0x000200f8u, 0x00002bd0u, 0x000200f9u, 0x00002bd2u, 0x000200f8u, 0x00002ba8u, 0x000300f7u, + 0x00002bb2u, 0x00000000u, 0x000400fau, 0x0000276du, 0x00002babu, 0x00002bb0u, 0x000200f8u, 0x00002bb0u, + 0x000200f9u, 0x00002bb2u, 0x000200f8u, 0x00002babu, 0x0007004fu, 0x0000004du, 0x00002badu, 0x00006745u, + 0x00006745u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000004du, 0x00002bafu, 0x00008572u, 0x00002badu, + 0x000200f9u, 0x00002bb2u, 0x000200f8u, 0x00002bb2u, 0x000700f5u, 0x0000004du, 0x000068b1u, 0x00002bafu, + 0x00002babu, 0x00006745u, 0x00002bb0u, 0x00050082u, 0x00000009u, 0x00002bb9u, 0x000068b4u, 0x000067c4u, + 0x00050051u, 0x00000008u, 0x00002bbbu, 0x000068b1u, 0x00000000u, 0x00070050u, 0x00000009u, 0x00002bbcu, + 0x00002bbbu, 0x00002bbbu, 0x00002bbbu, 0x00002bbbu, 0x00050084u, 0x00000009u, 0x00002bbdu, 0x00002bb9u, + 0x00002bbcu, 0x00050082u, 0x00000009u, 0x00002bc0u, 0x00006932u, 0x000067c4u, 0x00050051u, 0x00000008u, + 0x00002bc2u, 0x000068b1u, 0x00000001u, 0x00070050u, 0x00000009u, 0x00002bc3u, 0x00002bc2u, 0x00002bc2u, + 0x00002bc2u, 0x00002bc2u, 0x00050084u, 0x00000009u, 0x00002bc4u, 0x00002bc0u, 0x00002bc3u, 0x00050080u, + 0x00000009u, 0x00002bc6u, 0x00002bbdu, 0x00002bc4u, 0x00050080u, 0x00000009u, 0x00002bc9u, 0x00002bc6u, + 0x00008573u, 0x000500c3u, 0x00000009u, 0x00002bccu, 0x00002bc9u, 0x00008574u, 0x00050080u, 0x00000009u, + 0x00002bcfu, 0x00002bccu, 0x000067c4u, 0x000200f9u, 0x00002bd2u, 0x000200f8u, 0x00002bd2u, 0x000700f5u, + 0x00000009u, 0x00006a68u, 0x00002bcfu, 0x00002bb2u, 0x000067c4u, 0x00002bd0u, 0x000200f9u, 0x00002bd3u, + 0x000200f8u, 0x00002b94u, 0x00050080u, 0x00000009u, 0x00002b97u, 0x000067c4u, 0x00006932u, 0x00050080u, + 0x00000009u, 0x00002b99u, 0x00002b97u, 0x000068b4u, 0x00050080u, 0x00000009u, 0x00002b9bu, 0x00002b99u, + 0x000069aau, 0x00050080u, 0x00000009u, 0x00002b9du, 0x00002b9bu, 0x00008570u, 0x000500c3u, 0x00000009u, + 0x00002b9fu, 0x00002b9du, 0x00008570u, 0x000200f9u, 0x00002bd3u, 0x000200f8u, 0x00002bd3u, 0x000700f5u, + 0x00000009u, 0x00006a67u, 0x00002b9fu, 0x00002b94u, 0x00006a68u, 0x00002bd2u, 0x000200f9u, 0x00002bd4u, + 0x000200f8u, 0x00002b1fu, 0x000300f7u, 0x00002b91u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x00002b21u, + 0x00002b8fu, 0x000200f8u, 0x00002b8fu, 0x000200f9u, 0x00002b91u, 0x000200f8u, 0x00002b21u, 0x000300f7u, + 0x00002b87u, 0x00000000u, 0x000400fau, 0x00001a9cu, 0x00002b23u, 0x00002b6bu, 0x000200f8u, 0x00002b6bu, + 0x000300f7u, 0x00002b78u, 0x00000000u, 0x000400fau, 0x00002765u, 0x00002b72u, 0x00002b75u, 0x000200f8u, + 0x00002b75u, 0x0007004fu, 0x0000004du, 0x00002b77u, 0x000067c4u, 0x000067c4u, 0x00000002u, 0x00000003u, + 0x000200f9u, 0x00002b78u, 0x000200f8u, 0x00002b72u, 0x0007004fu, 0x0000004du, 0x00002b74u, 0x000069aau, + 0x000069aau, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00002b78u, 0x000200f8u, 0x00002b78u, 0x000700f5u, + 0x0000004du, 0x00006a25u, 0x00002b74u, 0x00002b72u, 0x00002b77u, 0x00002b75u, 0x00050080u, 0x00000008u, + 0x00002b7du, 0x0000277eu, 0x0000273bu, 0x000500afu, 0x00000058u, 0x00002b7eu, 0x00002b7du, 0x000002e2u, + 0x000300f7u, 0x00002b85u, 0x00000000u, 0x000400fau, 0x00002b7eu, 0x00002b7fu, 0x00002b82u, 0x000200f8u, + 0x00002b82u, 0x0007004fu, 0x0000004du, 0x00002b84u, 0x000067c4u, 0x000067c4u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00002b85u, 0x000200f8u, 0x00002b7fu, 0x0007004fu, 0x0000004du, 0x00002b81u, 0x000069aau, + 0x000069aau, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00002b85u, 0x000200f8u, 0x00002b85u, 0x000700f5u, + 0x0000004du, 0x00006a29u, 0x00002b81u, 0x00002b7fu, 0x00002b84u, 0x00002b82u, 0x000200f9u, 0x00002b87u, + 0x000200f8u, 0x00002b23u, 0x00050050u, 0x0000004du, 0x00002b28u, 0x0000277eu, 0x0000273bu, 0x000500aau, + 0x0000048bu, 0x00002b29u, 0x00002b28u, 0x00000c0eu, 0x00050051u, 0x00000058u, 0x00002b2au, 0x00002b29u, + 0x00000000u, 0x00050051u, 0x00000058u, 0x00002b2bu, 0x00002b29u, 0x00000001u, 0x00060050u, 0x0000103fu, + 0x00002b2cu, 0x00001a8au, 0x00002b2au, 0x00002b2bu, 0x0004009bu, 0x00000058u, 0x00002b2du, 0x00002b2cu, + 0x000300f7u, 0x00002b4du, 0x00000000u, 0x000400fau, 0x00002b2du, 0x00002b2fu, 0x00002b3fu, 0x000200f8u, + 0x00002b3fu, 0x0007004fu, 0x0000004du, 0x00002b45u, 0x000067c4u, 0x000067c4u, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x0000004du, 0x00002b47u, 0x000068b4u, 0x000068b4u, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x0000004du, 0x00002b49u, 0x00006932u, 0x00006932u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000004du, + 0x00002b4bu, 0x000069aau, 0x000069aau, 0x00000000u, 0x00000001u, 0x00050080u, 0x00000008u, 0x00003dc8u, + 0x0000277eu, 0x0000273bu, 0x000500afu, 0x00000058u, 0x00003dcau, 0x00003dc8u, 0x000002e2u, 0x00050050u, + 0x0000048bu, 0x00003dcdu, 0x00003dcau, 0x00003dcau, 0x000600a9u, 0x0000004du, 0x00003dceu, 0x00003dcdu, + 0x00002b4bu, 0x00002b45u, 0x000300f7u, 0x00003dd8u, 0x00000000u, 0x000400fau, 0x00003dcau, 0x00003dd1u, + 0x00003dd6u, 0x000200f8u, 0x00003dd6u, 0x000200f9u, 0x00003dd8u, 0x000200f8u, 0x00003dd1u, 0x0007004fu, + 0x0000004du, 0x00003dd3u, 0x00002b28u, 0x00002b28u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000004du, + 0x00003dd5u, 0x00008572u, 0x00003dd3u, 0x000200f9u, 0x00003dd8u, 0x000200f8u, 0x00003dd8u, 0x000700f5u, + 0x0000004du, 0x00006a2au, 0x00003dd5u, 0x00003dd1u, 0x00002b28u, 0x00003dd6u, 0x00050082u, 0x0000004du, + 0x00003ddfu, 0x00002b47u, 0x00003dceu, 0x00050051u, 0x00000008u, 0x00003de1u, 0x00006a2au, 0x00000000u, + 0x00050050u, 0x0000004du, 0x00003de2u, 0x00003de1u, 0x00003de1u, 0x00050084u, 0x0000004du, 0x00003de3u, + 0x00003ddfu, 0x00003de2u, 0x00050082u, 0x0000004du, 0x00003de6u, 0x00002b49u, 0x00003dceu, 0x00050051u, + 0x00000008u, 0x00003de8u, 0x00006a2au, 0x00000001u, 0x00050050u, 0x0000004du, 0x00003de9u, 0x00003de8u, + 0x00003de8u, 0x00050084u, 0x0000004du, 0x00003deau, 0x00003de6u, 0x00003de9u, 0x00050080u, 0x0000004du, + 0x00003decu, 0x00003de3u, 0x00003deau, 0x00050080u, 0x0000004du, 0x00003defu, 0x00003decu, 0x00000c0eu, + 0x000500c3u, 0x0000004du, 0x00003df2u, 0x00003defu, 0x00008568u, 0x00050080u, 0x0000004du, 0x00003df5u, + 0x00003df2u, 0x00003dceu, 0x000200f9u, 0x00002b4du, 0x000200f8u, 0x00002b2fu, 0x0007004fu, 0x0000004du, + 0x00002b31u, 0x000067c4u, 0x000067c4u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000004du, 0x00002b33u, + 0x000068b4u, 0x000068b4u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000004du, 0x00002b34u, 0x00002b31u, + 0x00002b33u, 0x0007004fu, 0x0000004du, 0x00002b36u, 0x000069aau, 0x000069aau, 0x00000000u, 0x00000001u, + 0x00050080u, 0x0000004du, 0x00002b37u, 0x00002b34u, 0x00002b36u, 0x0007004fu, 0x0000004du, 0x00002b39u, + 0x00006932u, 0x00006932u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000004du, 0x00002b3au, 0x00002b37u, + 0x00002b39u, 0x00050080u, 0x0000004du, 0x00002b3cu, 0x00002b3au, 0x00008571u, 0x000500c3u, 0x0000004du, + 0x00002b3eu, 0x00002b3cu, 0x00008571u, 0x000200f9u, 0x00002b4du, 0x000200f8u, 0x00002b4du, 0x000700f5u, + 0x0000004du, 0x00006a38u, 0x00002b3eu, 0x00002b2fu, 0x00003df5u, 0x00003dd8u, 0x000300f7u, 0x00002b6au, + 0x00000000u, 0x000400fau, 0x00002763u, 0x00002b4fu, 0x00002b5fu, 0x000200f8u, 0x00002b5fu, 0x0007004fu, + 0x0000004du, 0x00002b61u, 0x000067c4u, 0x000067c4u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000004du, + 0x00002b63u, 0x000068b4u, 0x000068b4u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000004du, 0x00002b65u, + 0x00006932u, 0x00006932u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000004du, 0x00002b67u, 0x000069aau, + 0x000069aau, 0x00000002u, 0x00000003u, 0x00050050u, 0x0000048bu, 0x00003e07u, 0x00002765u, 0x00002765u, + 0x000600a9u, 0x0000004du, 0x00003e08u, 0x00003e07u, 0x00002b67u, 0x00002b61u, 0x000300f7u, 0x00003e12u, + 0x00000000u, 0x000400fau, 0x00002765u, 0x00003e0bu, 0x00003e10u, 0x000200f8u, 0x00003e10u, 0x000200f9u, + 0x00003e12u, 0x000200f8u, 0x00003e0bu, 0x0007004fu, 0x0000004du, 0x00003e0du, 0x00006745u, 0x00006745u, + 0x00000001u, 0x00000000u, 0x00050082u, 0x0000004du, 0x00003e0fu, 0x00008572u, 0x00003e0du, 0x000200f9u, + 0x00003e12u, 0x000200f8u, 0x00003e12u, 0x000700f5u, 0x0000004du, 0x00006a35u, 0x00003e0fu, 0x00003e0bu, + 0x00006745u, 0x00003e10u, 0x00050082u, 0x0000004du, 0x00003e19u, 0x00002b63u, 0x00003e08u, 0x00050051u, + 0x00000008u, 0x00003e1bu, 0x00006a35u, 0x00000000u, 0x00050050u, 0x0000004du, 0x00003e1cu, 0x00003e1bu, + 0x00003e1bu, 0x00050084u, 0x0000004du, 0x00003e1du, 0x00003e19u, 0x00003e1cu, 0x00050082u, 0x0000004du, + 0x00003e20u, 0x00002b65u, 0x00003e08u, 0x00050051u, 0x00000008u, 0x00003e22u, 0x00006a35u, 0x00000001u, + 0x00050050u, 0x0000004du, 0x00003e23u, 0x00003e22u, 0x00003e22u, 0x00050084u, 0x0000004du, 0x00003e24u, + 0x00003e20u, 0x00003e23u, 0x00050080u, 0x0000004du, 0x00003e26u, 0x00003e1du, 0x00003e24u, 0x00050080u, + 0x0000004du, 0x00003e29u, 0x00003e26u, 0x00000c0eu, 0x000500c3u, 0x0000004du, 0x00003e2cu, 0x00003e29u, + 0x00008568u, 0x00050080u, 0x0000004du, 0x00003e2fu, 0x00003e2cu, 0x00003e08u, 0x000200f9u, 0x00002b6au, + 0x000200f8u, 0x00002b4fu, 0x0007004fu, 0x0000004du, 0x00002b51u, 0x000067c4u, 0x000067c4u, 0x00000002u, + 0x00000003u, 0x0007004fu, 0x0000004du, 0x00002b53u, 0x000068b4u, 0x000068b4u, 0x00000002u, 0x00000003u, + 0x00050080u, 0x0000004du, 0x00002b54u, 0x00002b51u, 0x00002b53u, 0x0007004fu, 0x0000004du, 0x00002b56u, + 0x000069aau, 0x000069aau, 0x00000002u, 0x00000003u, 0x00050080u, 0x0000004du, 0x00002b57u, 0x00002b54u, + 0x00002b56u, 0x0007004fu, 0x0000004du, 0x00002b59u, 0x00006932u, 0x00006932u, 0x00000002u, 0x00000003u, + 0x00050080u, 0x0000004du, 0x00002b5au, 0x00002b57u, 0x00002b59u, 0x00050080u, 0x0000004du, 0x00002b5cu, + 0x00002b5au, 0x00008571u, 0x000500c3u, 0x0000004du, 0x00002b5eu, 0x00002b5cu, 0x00008571u, 0x000200f9u, + 0x00002b6au, 0x000200f8u, 0x00002b6au, 0x000700f5u, 0x0000004du, 0x00006a3bu, 0x00002b5eu, 0x00002b4fu, + 0x00003e2fu, 0x00003e12u, 0x000200f9u, 0x00002b87u, 0x000200f8u, 0x00002b87u, 0x000700f5u, 0x0000004du, + 0x00006a3au, 0x00006a3bu, 0x00002b6au, 0x00006a25u, 0x00002b85u, 0x000700f5u, 0x0000004du, 0x00006a36u, + 0x00006a38u, 0x00002b6au, 0x00006a29u, 0x00002b85u, 0x00050051u, 0x00000008u, 0x00002b8au, 0x00006a36u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00002b8bu, 0x00006a36u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00002b8cu, 0x00006a3au, 0x00000000u, 0x00050051u, 0x00000008u, 0x00002b8du, 0x00006a3au, 0x00000001u, + 0x00070050u, 0x00000009u, 0x00002b8eu, 0x00002b8au, 0x00002b8bu, 0x00002b8cu, 0x00002b8du, 0x000200f9u, + 0x00002b91u, 0x000200f8u, 0x00002b91u, 0x000700f5u, 0x00000009u, 0x00006a66u, 0x00002b8eu, 0x00002b87u, + 0x000067c4u, 0x00002b8fu, 0x000200f9u, 0x00002bd4u, 0x000200f8u, 0x00002bd4u, 0x000700f5u, 0x00000009u, + 0x00006a65u, 0x00006a66u, 0x00002b91u, 0x00006a67u, 0x00002bd3u, 0x000400a8u, 0x00000058u, 0x00002bd7u, + 0x00001a9cu, 0x000500a7u, 0x00000058u, 0x00002bdau, 0x00002bd7u, 0x000004a6u, 0x000300f7u, 0x00002bdfu, + 0x00000000u, 0x000400fau, 0x00002bdau, 0x00002bdbu, 0x00002bdfu, 0x000200f8u, 0x00002bdbu, 0x000600cau, + 0x00000009u, 0x00003e3eu, 0x00006a65u, 0x00000187u, 0x000001e8u, 0x00050051u, 0x00000008u, 0x00003e40u, + 0x00003e3eu, 0x00000002u, 0x00050051u, 0x00000008u, 0x00003e42u, 0x00002243u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00003e44u, 0x00003e3eu, 0x00000001u, 0x00050084u, 0x00000008u, 0x00003e45u, 0x00003e42u, + 0x00003e44u, 0x00050080u, 0x00000008u, 0x00003e46u, 0x00003e45u, 0x00000325u, 0x000500c3u, 0x00000008u, + 0x00003e47u, 0x00003e46u, 0x000001e2u, 0x00050080u, 0x00000008u, 0x00003e48u, 0x00003e40u, 0x00003e47u, + 0x00050051u, 0x00000008u, 0x00003e4cu, 0x00002243u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003e4eu, + 0x00003e3eu, 0x00000000u, 0x00050084u, 0x00000008u, 0x00003e4fu, 0x00003e4cu, 0x00003e4eu, 0x00050051u, + 0x00000008u, 0x00003e51u, 0x00002243u, 0x00000002u, 0x00050084u, 0x00000008u, 0x00003e54u, 0x00003e51u, + 0x00003e44u, 0x00050080u, 0x00000008u, 0x00003e55u, 0x00003e4fu, 0x00003e54u, 0x00050080u, 0x00000008u, + 0x00003e56u, 0x00003e55u, 0x00000325u, 0x000500c3u, 0x00000008u, 0x00003e57u, 0x00003e56u, 0x000001e2u, + 0x00050080u, 0x00000008u, 0x00003e58u, 0x00003e40u, 0x00003e57u, 0x00050051u, 0x00000008u, 0x00003e5cu, + 0x00002243u, 0x00000003u, 0x00050084u, 0x00000008u, 0x00003e5fu, 0x00003e5cu, 0x00003e4eu, 0x00050080u, + 0x00000008u, 0x00003e60u, 0x00003e5fu, 0x00000325u, 0x000500c3u, 0x00000008u, 0x00003e61u, 0x00003e60u, + 0x000001e2u, 0x00050080u, 0x00000008u, 0x00003e62u, 0x00003e40u, 0x00003e61u, 0x00070050u, 0x00000009u, + 0x00003e69u, 0x00003e48u, 0x00003e58u, 0x00003e62u, 0x00003e40u, 0x000200f9u, 0x00002bdfu, 0x000200f8u, + 0x00002bdfu, 0x000700f5u, 0x00000009u, 0x00006a69u, 0x00006a65u, 0x00002bd4u, 0x00003e69u, 0x00002bdbu, + 0x000200f9u, 0x00001b7au, 0x000200f8u, 0x00001b7au, 0x000700f5u, 0x00000009u, 0x00006d8cu, 0x000067e2u, + 0x00001b61u, 0x00006a69u, 0x00002bdfu, 0x000300f7u, 0x00001bc5u, 0x00000000u, 0x000400fau, 0x00001a93u, + 0x00001b7cu, 0x00001bc5u, 0x000200f8u, 0x00001b7cu, 0x00050080u, 0x00000008u, 0x00001b85u, 0x00001a21u, + 0x00000196u, 0x00050080u, 0x00000008u, 0x00001b86u, 0x00001a1cu, 0x00001b85u, 0x00070041u, 0x000001f4u, + 0x00001b87u, 0x0000024du, 0x00000187u, 0x00001b86u, 0x000001e2u, 0x0004003du, 0x000001afu, 0x00001b88u, + 0x00001b87u, 0x00040071u, 0x00000006u, 0x00001b89u, 0x00001b88u, 0x000500abu, 0x00000058u, 0x00001b8au, + 0x00001b89u, 0x000002d9u, 0x000500afu, 0x00000058u, 0x00001b8du, 0x00001cbau, 0x000001e2u, 0x000600a9u, + 0x00000008u, 0x0000859cu, 0x00001ab0u, 0x00001cb6u, 0x00001cb3u, 0x000500aau, 0x00000058u, 0x00001b98u, + 0x00006634u, 0x0000859cu, 0x000500a7u, 0x00000058u, 0x00001b9bu, 0x00001b98u, 0x00001b8du, 0x000500a7u, + 0x00000058u, 0x00001b9du, 0x00001b9bu, 0x00001b8au, 0x000300f7u, 0x00001bc3u, 0x00000000u, 0x000400fau, + 0x00001b9du, 0x00001b9eu, 0x00001bb8u, 0x000200f8u, 0x00001bb8u, 0x00050084u, 0x00000008u, 0x00001bbbu, + 0x00001b1fu, 0x00000596u, 0x00050080u, 0x00000008u, 0x00001bbcu, 0x00001b1du, 0x00001bbbu, 0x00060050u, + 0x00000052u, 0x00003f07u, 0x00001bbcu, 0x00001bbcu, 0x00001bbcu, 0x00050084u, 0x00000052u, 0x00003f08u, + 0x000022bdu, 0x00003f07u, 0x00050080u, 0x00000052u, 0x00003f09u, 0x000022b7u, 0x00003f08u, 0x000500c3u, + 0x00000052u, 0x00003f0cu, 0x00003f09u, 0x00008562u, 0x000300f7u, 0x00003f16u, 0x00000000u, 0x000400fau, + 0x00001a69u, 0x00003f0eu, 0x00003f13u, 0x000200f8u, 0x00003f13u, 0x0007004fu, 0x0000004du, 0x00003fa3u, + 0x00003f0cu, 0x00003f0cu, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00003f16u, 0x000200f8u, 0x00003f0eu, + 0x00050051u, 0x00000008u, 0x00003f24u, 0x00003f0cu, 0x00000002u, 0x000500b3u, 0x00000058u, 0x00003f26u, + 0x00003f24u, 0x00000187u, 0x000500c7u, 0x00000008u, 0x00003f28u, 0x00003f24u, 0x0000045eu, 0x0006000cu, + 0x00000008u, 0x00003f85u, 0x00000001u, 0x0000004au, 0x00003f28u, 0x00050082u, 0x00000008u, 0x00003f86u, + 0x00000207u, 0x00003f85u, 0x0007000cu, 0x00000008u, 0x00003f87u, 0x00000001u, 0x00000027u, 0x00003f86u, + 0x00000207u, 0x000500c4u, 0x00000008u, 0x00003f8au, 0x00003f28u, 0x00003f87u, 0x000500c7u, 0x00000008u, + 0x00003f8bu, 0x00003f8au, 0x00000377u, 0x000500c7u, 0x00000008u, 0x00003f8du, 0x00003f8bu, 0x000002f0u, + 0x000500c3u, 0x00000008u, 0x00003f8fu, 0x00003f8bu, 0x000001e2u, 0x0003003eu, 0x00003f80u, 0x0000043cu, + 0x00050041u, 0x00000068u, 0x00003f90u, 0x00003f80u, 0x00003f8fu, 0x0004003du, 0x0000004du, 0x00003f91u, + 0x00003f90u, 0x00050051u, 0x00000008u, 0x00003f96u, 0x00003f91u, 0x00000001u, 0x00050084u, 0x00000008u, + 0x00003f98u, 0x00003f96u, 0x00003f8du, 0x000500c3u, 0x00000008u, 0x00003f99u, 0x00003f98u, 0x000001eeu, + 0x00050051u, 0x00000008u, 0x00003f9bu, 0x00003f91u, 0x00000000u, 0x00050080u, 0x00000008u, 0x00003f9cu, + 0x00003f99u, 0x00003f9bu, 0x0007004fu, 0x0000004du, 0x00003f2eu, 0x00003f0cu, 0x00003f0cu, 0x00000000u, + 0x00000001u, 0x00050050u, 0x0000004du, 0x00003f31u, 0x00003f9cu, 0x00003f9cu, 0x00050084u, 0x0000004du, + 0x00003f32u, 0x00003f2eu, 0x00003f31u, 0x000500c3u, 0x00000008u, 0x00003f34u, 0x00000471u, 0x00003f87u, + 0x0004007eu, 0x00000008u, 0x00003f35u, 0x00003f34u, 0x000500c7u, 0x00000008u, 0x00003f36u, 0x00000470u, + 0x00003f35u, 0x00050050u, 0x0000004du, 0x00003f39u, 0x00003f36u, 0x00003f36u, 0x000500c7u, 0x0000004du, + 0x00003f3au, 0x00003f32u, 0x00003f39u, 0x000500abu, 0x00000058u, 0x00003f3cu, 0x00003f87u, 0x00000207u, + 0x000300f7u, 0x00003f47u, 0x00000000u, 0x000400fau, 0x00003f3cu, 0x00003f3du, 0x00003f43u, 0x000200f8u, + 0x00003f43u, 0x000500c4u, 0x0000004du, 0x00003f46u, 0x00003f32u, 0x00008566u, 0x000200f9u, 0x00003f47u, + 0x000200f8u, 0x00003f3du, 0x00050082u, 0x00000008u, 0x00003f40u, 0x00000201u, 0x00003f87u, 0x00050050u, + 0x0000004du, 0x00003f41u, 0x00003f40u, 0x00003f40u, 0x000500c3u, 0x0000004du, 0x00003f42u, 0x00003f32u, + 0x00003f41u, 0x000200f9u, 0x00003f47u, 0x000200f8u, 0x00003f47u, 0x000700f5u, 0x0000004du, 0x00006b92u, + 0x00003f42u, 0x00003f3du, 0x00003f46u, 0x00003f43u, 0x000700f5u, 0x0000004du, 0x00006b90u, 0x00003f42u, + 0x00003f3du, 0x00003f32u, 0x00003f43u, 0x000500abu, 0x0000048bu, 0x00003f49u, 0x00003f3au, 0x0000048au, + 0x0004009au, 0x00000058u, 0x00003f4au, 0x00003f49u, 0x000300f7u, 0x00003f76u, 0x00000000u, 0x000400fau, + 0x00003f4au, 0x00003f4bu, 0x00003f76u, 0x000200f8u, 0x00003f4bu, 0x00050051u, 0x00000008u, 0x00003f4du, + 0x00003f3au, 0x00000000u, 0x000500abu, 0x00000058u, 0x00003f4fu, 0x00003f4du, 0x00003f36u, 0x000300f7u, + 0x00003f54u, 0x00000000u, 0x000400fau, 0x00003f4fu, 0x00003f50u, 0x00003f54u, 0x000200f8u, 0x00003f50u, + 0x000500abu, 0x00000058u, 0x00003f53u, 0x00003f4du, 0x00000187u, 0x000200f9u, 0x00003f54u, 0x000200f8u, + 0x00003f54u, 0x000700f5u, 0x00000058u, 0x00003f55u, 0x00003f4fu, 0x00003f4bu, 0x00003f53u, 0x00003f50u, + 0x000300f7u, 0x00003f60u, 0x00000000u, 0x000400fau, 0x00003f55u, 0x00003f56u, 0x00003f60u, 0x000200f8u, + 0x00003f56u, 0x00050051u, 0x00000008u, 0x00003f58u, 0x00006b90u, 0x00000000u, 0x000500c7u, 0x00000008u, + 0x00003f59u, 0x00003f58u, 0x00000471u, 0x000500aau, 0x00000058u, 0x00003f5au, 0x00003f59u, 0x00000187u, + 0x000300f7u, 0x00003f5fu, 0x00000000u, 0x000400fau, 0x00003f5au, 0x00003f5bu, 0x00003f5du, 0x000200f8u, + 0x00003f5du, 0x00060052u, 0x0000004du, 0x0000648du, 0x000004a4u, 0x00006b92u, 0x00000000u, 0x000200f9u, + 0x00003f5fu, 0x000200f8u, 0x00003f5bu, 0x00060052u, 0x0000004du, 0x0000648bu, 0x0000045eu, 0x00006b92u, + 0x00000000u, 0x000200f9u, 0x00003f5fu, 0x000200f8u, 0x00003f5fu, 0x000700f5u, 0x0000004du, 0x00006b98u, + 0x0000648bu, 0x00003f5bu, 0x0000648du, 0x00003f5du, 0x000200f9u, 0x00003f60u, 0x000200f8u, 0x00003f60u, + 0x000700f5u, 0x0000004du, 0x00006b97u, 0x00006b92u, 0x00003f54u, 0x00006b98u, 0x00003f5fu, 0x00050051u, + 0x00000008u, 0x00003f62u, 0x00003f3au, 0x00000001u, 0x000500abu, 0x00000058u, 0x00003f64u, 0x00003f62u, + 0x00003f36u, 0x000300f7u, 0x00003f69u, 0x00000000u, 0x000400fau, 0x00003f64u, 0x00003f65u, 0x00003f69u, + 0x000200f8u, 0x00003f65u, 0x000500abu, 0x00000058u, 0x00003f68u, 0x00003f62u, 0x00000187u, 0x000200f9u, + 0x00003f69u, 0x000200f8u, 0x00003f69u, 0x000700f5u, 0x00000058u, 0x00003f6au, 0x00003f64u, 0x00003f60u, + 0x00003f68u, 0x00003f65u, 0x000300f7u, 0x00003f75u, 0x00000000u, 0x000400fau, 0x00003f6au, 0x00003f6bu, + 0x00003f75u, 0x000200f8u, 0x00003f6bu, 0x00050051u, 0x00000008u, 0x00003f6du, 0x00006b90u, 0x00000001u, + 0x000500c7u, 0x00000008u, 0x00003f6eu, 0x00003f6du, 0x00000471u, 0x000500aau, 0x00000058u, 0x00003f6fu, + 0x00003f6eu, 0x00000187u, 0x000300f7u, 0x00003f74u, 0x00000000u, 0x000400fau, 0x00003f6fu, 0x00003f70u, + 0x00003f72u, 0x000200f8u, 0x00003f72u, 0x00060052u, 0x0000004du, 0x00006494u, 0x000004a4u, 0x00006b97u, + 0x00000001u, 0x000200f9u, 0x00003f74u, 0x000200f8u, 0x00003f70u, 0x00060052u, 0x0000004du, 0x00006492u, + 0x0000045eu, 0x00006b97u, 0x00000001u, 0x000200f9u, 0x00003f74u, 0x000200f8u, 0x00003f74u, 0x000700f5u, + 0x0000004du, 0x00006b9cu, 0x00006492u, 0x00003f70u, 0x00006494u, 0x00003f72u, 0x000200f9u, 0x00003f75u, + 0x000200f8u, 0x00003f75u, 0x000700f5u, 0x0000004du, 0x00006b9bu, 0x00006b97u, 0x00003f69u, 0x00006b9cu, + 0x00003f74u, 0x000200f9u, 0x00003f76u, 0x000200f8u, 0x00003f76u, 0x000700f5u, 0x0000004du, 0x00006b9au, + 0x00006b92u, 0x00003f47u, 0x00006b9bu, 0x00003f75u, 0x00050050u, 0x0000048bu, 0x0000859du, 0x00003f26u, + 0x00003f26u, 0x000600a9u, 0x0000004du, 0x0000859eu, 0x0000859du, 0x000004bfu, 0x00006b9au, 0x0008000cu, + 0x0000004du, 0x00003f7bu, 0x00000001u, 0x0000002du, 0x0000859eu, 0x000004c2u, 0x000004c4u, 0x000200f9u, + 0x00003f16u, 0x000200f8u, 0x00003f16u, 0x000700f5u, 0x0000004du, 0x00006b9du, 0x00003f7bu, 0x00003f76u, + 0x00003fa3u, 0x00003f13u, 0x000200f9u, 0x00001bc3u, 0x000200f8u, 0x00001b9eu, 0x00070041u, 0x0000024fu, + 0x00001ba9u, 0x0000024du, 0x00000187u, 0x00001b86u, 0x00000196u, 0x0004003du, 0x00000009u, 0x00001baau, + 0x00001ba9u, 0x0008004fu, 0x00000052u, 0x00001babu, 0x00001baau, 0x00001baau, 0x00000000u, 0x00000001u, + 0x00000003u, 0x000500c3u, 0x00000052u, 0x00001badu, 0x00001babu, 0x00008562u, 0x000300f7u, 0x00001bb7u, + 0x00000000u, 0x000400fau, 0x00001a69u, 0x00001bafu, 0x00001bb4u, 0x000200f8u, 0x00001bb4u, 0x0007004fu, + 0x0000004du, 0x00003ef5u, 0x00001badu, 0x00001badu, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00001bb7u, + 0x000200f8u, 0x00001bafu, 0x00050051u, 0x00000008u, 0x00003e76u, 0x00001badu, 0x00000002u, 0x000500b3u, + 0x00000058u, 0x00003e78u, 0x00003e76u, 0x00000187u, 0x000500c7u, 0x00000008u, 0x00003e7au, 0x00003e76u, + 0x0000045eu, 0x0006000cu, 0x00000008u, 0x00003ed7u, 0x00000001u, 0x0000004au, 0x00003e7au, 0x00050082u, + 0x00000008u, 0x00003ed8u, 0x00000207u, 0x00003ed7u, 0x0007000cu, 0x00000008u, 0x00003ed9u, 0x00000001u, + 0x00000027u, 0x00003ed8u, 0x00000207u, 0x000500c4u, 0x00000008u, 0x00003edcu, 0x00003e7au, 0x00003ed9u, + 0x000500c7u, 0x00000008u, 0x00003eddu, 0x00003edcu, 0x00000377u, 0x000500c7u, 0x00000008u, 0x00003edfu, + 0x00003eddu, 0x000002f0u, 0x000500c3u, 0x00000008u, 0x00003ee1u, 0x00003eddu, 0x000001e2u, 0x0003003eu, + 0x00003ed2u, 0x0000043cu, 0x00050041u, 0x00000068u, 0x00003ee2u, 0x00003ed2u, 0x00003ee1u, 0x0004003du, + 0x0000004du, 0x00003ee3u, 0x00003ee2u, 0x00050051u, 0x00000008u, 0x00003ee8u, 0x00003ee3u, 0x00000001u, + 0x00050084u, 0x00000008u, 0x00003eeau, 0x00003ee8u, 0x00003edfu, 0x000500c3u, 0x00000008u, 0x00003eebu, + 0x00003eeau, 0x000001eeu, 0x00050051u, 0x00000008u, 0x00003eedu, 0x00003ee3u, 0x00000000u, 0x00050080u, + 0x00000008u, 0x00003eeeu, 0x00003eebu, 0x00003eedu, 0x0007004fu, 0x0000004du, 0x00003e80u, 0x00001badu, + 0x00001badu, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000004du, 0x00003e83u, 0x00003eeeu, 0x00003eeeu, + 0x00050084u, 0x0000004du, 0x00003e84u, 0x00003e80u, 0x00003e83u, 0x000500c3u, 0x00000008u, 0x00003e86u, + 0x00000471u, 0x00003ed9u, 0x0004007eu, 0x00000008u, 0x00003e87u, 0x00003e86u, 0x000500c7u, 0x00000008u, + 0x00003e88u, 0x00000470u, 0x00003e87u, 0x00050050u, 0x0000004du, 0x00003e8bu, 0x00003e88u, 0x00003e88u, + 0x000500c7u, 0x0000004du, 0x00003e8cu, 0x00003e84u, 0x00003e8bu, 0x000500abu, 0x00000058u, 0x00003e8eu, + 0x00003ed9u, 0x00000207u, 0x000300f7u, 0x00003e99u, 0x00000000u, 0x000400fau, 0x00003e8eu, 0x00003e8fu, + 0x00003e95u, 0x000200f8u, 0x00003e95u, 0x000500c4u, 0x0000004du, 0x00003e98u, 0x00003e84u, 0x00008566u, + 0x000200f9u, 0x00003e99u, 0x000200f8u, 0x00003e8fu, 0x00050082u, 0x00000008u, 0x00003e92u, 0x00000201u, + 0x00003ed9u, 0x00050050u, 0x0000004du, 0x00003e93u, 0x00003e92u, 0x00003e92u, 0x000500c3u, 0x0000004du, + 0x00003e94u, 0x00003e84u, 0x00003e93u, 0x000200f9u, 0x00003e99u, 0x000200f8u, 0x00003e99u, 0x000700f5u, + 0x0000004du, 0x00006ba2u, 0x00003e94u, 0x00003e8fu, 0x00003e98u, 0x00003e95u, 0x000700f5u, 0x0000004du, + 0x00006ba0u, 0x00003e94u, 0x00003e8fu, 0x00003e84u, 0x00003e95u, 0x000500abu, 0x0000048bu, 0x00003e9bu, + 0x00003e8cu, 0x0000048au, 0x0004009au, 0x00000058u, 0x00003e9cu, 0x00003e9bu, 0x000300f7u, 0x00003ec8u, + 0x00000000u, 0x000400fau, 0x00003e9cu, 0x00003e9du, 0x00003ec8u, 0x000200f8u, 0x00003e9du, 0x00050051u, + 0x00000008u, 0x00003e9fu, 0x00003e8cu, 0x00000000u, 0x000500abu, 0x00000058u, 0x00003ea1u, 0x00003e9fu, + 0x00003e88u, 0x000300f7u, 0x00003ea6u, 0x00000000u, 0x000400fau, 0x00003ea1u, 0x00003ea2u, 0x00003ea6u, + 0x000200f8u, 0x00003ea2u, 0x000500abu, 0x00000058u, 0x00003ea5u, 0x00003e9fu, 0x00000187u, 0x000200f9u, + 0x00003ea6u, 0x000200f8u, 0x00003ea6u, 0x000700f5u, 0x00000058u, 0x00003ea7u, 0x00003ea1u, 0x00003e9du, + 0x00003ea5u, 0x00003ea2u, 0x000300f7u, 0x00003eb2u, 0x00000000u, 0x000400fau, 0x00003ea7u, 0x00003ea8u, + 0x00003eb2u, 0x000200f8u, 0x00003ea8u, 0x00050051u, 0x00000008u, 0x00003eaau, 0x00006ba0u, 0x00000000u, + 0x000500c7u, 0x00000008u, 0x00003eabu, 0x00003eaau, 0x00000471u, 0x000500aau, 0x00000058u, 0x00003eacu, + 0x00003eabu, 0x00000187u, 0x000300f7u, 0x00003eb1u, 0x00000000u, 0x000400fau, 0x00003eacu, 0x00003eadu, + 0x00003eafu, 0x000200f8u, 0x00003eafu, 0x00060052u, 0x0000004du, 0x0000647au, 0x000004a4u, 0x00006ba2u, + 0x00000000u, 0x000200f9u, 0x00003eb1u, 0x000200f8u, 0x00003eadu, 0x00060052u, 0x0000004du, 0x00006478u, + 0x0000045eu, 0x00006ba2u, 0x00000000u, 0x000200f9u, 0x00003eb1u, 0x000200f8u, 0x00003eb1u, 0x000700f5u, + 0x0000004du, 0x00006ba8u, 0x00006478u, 0x00003eadu, 0x0000647au, 0x00003eafu, 0x000200f9u, 0x00003eb2u, + 0x000200f8u, 0x00003eb2u, 0x000700f5u, 0x0000004du, 0x00006ba7u, 0x00006ba2u, 0x00003ea6u, 0x00006ba8u, + 0x00003eb1u, 0x00050051u, 0x00000008u, 0x00003eb4u, 0x00003e8cu, 0x00000001u, 0x000500abu, 0x00000058u, + 0x00003eb6u, 0x00003eb4u, 0x00003e88u, 0x000300f7u, 0x00003ebbu, 0x00000000u, 0x000400fau, 0x00003eb6u, + 0x00003eb7u, 0x00003ebbu, 0x000200f8u, 0x00003eb7u, 0x000500abu, 0x00000058u, 0x00003ebau, 0x00003eb4u, + 0x00000187u, 0x000200f9u, 0x00003ebbu, 0x000200f8u, 0x00003ebbu, 0x000700f5u, 0x00000058u, 0x00003ebcu, + 0x00003eb6u, 0x00003eb2u, 0x00003ebau, 0x00003eb7u, 0x000300f7u, 0x00003ec7u, 0x00000000u, 0x000400fau, + 0x00003ebcu, 0x00003ebdu, 0x00003ec7u, 0x000200f8u, 0x00003ebdu, 0x00050051u, 0x00000008u, 0x00003ebfu, + 0x00006ba0u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00003ec0u, 0x00003ebfu, 0x00000471u, 0x000500aau, + 0x00000058u, 0x00003ec1u, 0x00003ec0u, 0x00000187u, 0x000300f7u, 0x00003ec6u, 0x00000000u, 0x000400fau, + 0x00003ec1u, 0x00003ec2u, 0x00003ec4u, 0x000200f8u, 0x00003ec4u, 0x00060052u, 0x0000004du, 0x00006481u, + 0x000004a4u, 0x00006ba7u, 0x00000001u, 0x000200f9u, 0x00003ec6u, 0x000200f8u, 0x00003ec2u, 0x00060052u, + 0x0000004du, 0x0000647fu, 0x0000045eu, 0x00006ba7u, 0x00000001u, 0x000200f9u, 0x00003ec6u, 0x000200f8u, + 0x00003ec6u, 0x000700f5u, 0x0000004du, 0x00006bacu, 0x0000647fu, 0x00003ec2u, 0x00006481u, 0x00003ec4u, + 0x000200f9u, 0x00003ec7u, 0x000200f8u, 0x00003ec7u, 0x000700f5u, 0x0000004du, 0x00006babu, 0x00006ba7u, + 0x00003ebbu, 0x00006bacu, 0x00003ec6u, 0x000200f9u, 0x00003ec8u, 0x000200f8u, 0x00003ec8u, 0x000700f5u, + 0x0000004du, 0x00006baau, 0x00006ba2u, 0x00003e99u, 0x00006babu, 0x00003ec7u, 0x00050050u, 0x0000048bu, + 0x0000859fu, 0x00003e78u, 0x00003e78u, 0x000600a9u, 0x0000004du, 0x000085a0u, 0x0000859fu, 0x000004bfu, + 0x00006baau, 0x0008000cu, 0x0000004du, 0x00003ecdu, 0x00000001u, 0x0000002du, 0x000085a0u, 0x000004c2u, + 0x000004c4u, 0x000200f9u, 0x00001bb7u, 0x000200f8u, 0x00001bb7u, 0x000700f5u, 0x0000004du, 0x00006d89u, + 0x00003ecdu, 0x00003ec8u, 0x00003ef5u, 0x00001bb4u, 0x000200f9u, 0x00001bc3u, 0x000200f8u, 0x00001bc3u, + 0x000700f5u, 0x0000004du, 0x00006d88u, 0x00006d89u, 0x00001bb7u, 0x00006b9du, 0x00003f16u, 0x000200f9u, + 0x00001bc5u, 0x000200f8u, 0x00001bc5u, 0x000700f5u, 0x0000004du, 0x00006d24u, 0x000066aeu, 0x00001b7au, + 0x00006d88u, 0x00001bc3u, 0x000600a9u, 0x00000006u, 0x000085a1u, 0x00001a93u, 0x0000672au, 0x00006cbdu, + 0x000600a9u, 0x00000058u, 0x000085a2u, 0x00001a93u, 0x000004a6u, 0x00001a90u, 0x000300f7u, 0x00001bebu, + 0x00000000u, 0x000400fau, 0x000085a2u, 0x00001bc7u, 0x00001bebu, 0x000200f8u, 0x00001bc7u, 0x000400a8u, + 0x00000058u, 0x00001bcau, 0x00001a9fu, 0x000500a7u, 0x00000058u, 0x00001bcbu, 0x00001a99u, 0x00001bcau, + 0x000300f7u, 0x00001beau, 0x00000000u, 0x000400fau, 0x00001bcbu, 0x00001bccu, 0x00001bd1u, 0x000200f8u, + 0x00001bd1u, 0x00080041u, 0x000001fbu, 0x00001bd4u, 0x00001525u, 0x00000187u, 0x000018c1u, 0x00000199u, + 0x000085a1u, 0x0004003du, 0x000001adu, 0x00001bd5u, 0x00001bd4u, 0x00040071u, 0x00000006u, 0x00001bd6u, + 0x00001bd5u, 0x00070041u, 0x000001efu, 0x00003fe0u, 0x0000027au, 0x00000187u, 0x00001bd6u, 0x00000187u, + 0x0004003du, 0x00000006u, 0x00003fe1u, 0x00003fe0u, 0x00070041u, 0x000001efu, 0x00003fe3u, 0x0000027au, + 0x00000187u, 0x00001bd6u, 0x00000196u, 0x0004003du, 0x00000006u, 0x00003fe4u, 0x00003fe3u, 0x00070041u, + 0x000001efu, 0x00003fe6u, 0x0000027au, 0x00000187u, 0x00001bd6u, 0x00000199u, 0x0004003du, 0x00000006u, + 0x00003fe7u, 0x00003fe6u, 0x00070041u, 0x000001efu, 0x00003fe9u, 0x0000027au, 0x00000187u, 0x00001bd6u, + 0x0000019cu, 0x0004003du, 0x00000006u, 0x00003feau, 0x00003fe9u, 0x00070041u, 0x000001efu, 0x00003fecu, + 0x0000027au, 0x00000187u, 0x00001bd6u, 0x0000019fu, 0x0004003du, 0x00000006u, 0x00003fedu, 0x00003fecu, + 0x00070041u, 0x000001efu, 0x00003fefu, 0x0000027au, 0x00000187u, 0x00001bd6u, 0x000001a2u, 0x0004003du, + 0x00000006u, 0x00003ff0u, 0x00003fefu, 0x00070041u, 0x000001fbu, 0x00003ff2u, 0x0000027au, 0x00000187u, + 0x00001bd6u, 0x000001a5u, 0x0004003du, 0x000001adu, 0x00003ff3u, 0x00003ff2u, 0x00040071u, 0x00000006u, + 0x00003ff4u, 0x00003ff3u, 0x0004007cu, 0x00000008u, 0x00003ff5u, 0x00003ff4u, 0x00070041u, 0x000001fbu, + 0x00003ff7u, 0x0000027au, 0x00000187u, 0x00001bd6u, 0x000001a8u, 0x0004003du, 0x000001adu, 0x00003ff8u, + 0x00003ff7u, 0x00040071u, 0x00000006u, 0x00003ff9u, 0x00003ff8u, 0x0004007cu, 0x00000008u, 0x00003ffau, + 0x00003ff9u, 0x00070041u, 0x000001fbu, 0x00003ffcu, 0x0000027au, 0x00000187u, 0x00001bd6u, 0x000001e2u, + 0x0004003du, 0x000001adu, 0x00003ffdu, 0x00003ffcu, 0x00040071u, 0x00000006u, 0x00003ffeu, 0x00003ffdu, + 0x0004007cu, 0x00000008u, 0x00003fffu, 0x00003ffeu, 0x00070041u, 0x000001fbu, 0x00004001u, 0x0000027au, + 0x00000187u, 0x00001bd6u, 0x000001e8u, 0x0004003du, 0x000001adu, 0x00004002u, 0x00004001u, 0x00040071u, + 0x00000006u, 0x00004003u, 0x00004002u, 0x0004007cu, 0x00000008u, 0x00004004u, 0x00004003u, 0x00070041u, + 0x000001fbu, 0x00004006u, 0x0000027au, 0x00000187u, 0x00001bd6u, 0x000001eeu, 0x0004003du, 0x000001adu, + 0x00004007u, 0x00004006u, 0x00040071u, 0x00000006u, 0x00004008u, 0x00004007u, 0x0004007cu, 0x00000008u, + 0x00004009u, 0x00004008u, 0x00070041u, 0x000001fbu, 0x0000400bu, 0x0000027au, 0x00000187u, 0x00001bd6u, + 0x000001f3u, 0x0004003du, 0x000001adu, 0x0000400cu, 0x0000400bu, 0x00040071u, 0x00000006u, 0x0000400du, + 0x0000400cu, 0x0004007cu, 0x00000008u, 0x0000400eu, 0x0000400du, 0x00070041u, 0x000001fbu, 0x00004010u, + 0x0000027au, 0x00000187u, 0x00001bd6u, 0x000001fau, 0x0004003du, 0x000001adu, 0x00004011u, 0x00004010u, + 0x00040071u, 0x00000006u, 0x00004012u, 0x00004011u, 0x0004007cu, 0x00000008u, 0x00004013u, 0x00004012u, + 0x00070041u, 0x000001fbu, 0x00004015u, 0x0000027au, 0x00000187u, 0x00001bd6u, 0x00000201u, 0x0004003du, + 0x000001adu, 0x00004016u, 0x00004015u, 0x00040071u, 0x00000006u, 0x00004017u, 0x00004016u, 0x0004007cu, + 0x00000008u, 0x00004018u, 0x00004017u, 0x000600a9u, 0x00000008u, 0x000085a3u, 0x000017b0u, 0x00001643u, + 0x00003ff5u, 0x000600a9u, 0x00000008u, 0x000085a4u, 0x000017b0u, 0x00001646u, 0x00003ffau, 0x000500c7u, + 0x00000008u, 0x00004173u, 0x00004018u, 0x00000196u, 0x000500abu, 0x00000058u, 0x00004174u, 0x00004173u, + 0x00000187u, 0x0004007cu, 0x00000008u, 0x00004177u, 0x00003fe1u, 0x0004007cu, 0x00000008u, 0x0000417au, + 0x00003fe4u, 0x00050051u, 0x00000008u, 0x0000417eu, 0x00006d24u, 0x00000000u, 0x0008000cu, 0x00000008u, + 0x00004647u, 0x00000001u, 0x0000002du, 0x0000417eu, 0x000004a4u, 0x0000045eu, 0x000500b1u, 0x00000058u, + 0x00004649u, 0x00004009u, 0x000001f3u, 0x000300f7u, 0x00004655u, 0x00000000u, 0x000400fau, 0x00004649u, + 0x0000464au, 0x0000464eu, 0x000200f8u, 0x0000464eu, 0x00050082u, 0x00000008u, 0x00004650u, 0x000002e2u, + 0x00004009u, 0x000500c4u, 0x00000008u, 0x00004652u, 0x00004647u, 0x00004650u, 0x000500c3u, 0x00000008u, + 0x00004654u, 0x00004652u, 0x00000323u, 0x000200f9u, 0x00004655u, 0x000200f8u, 0x0000464au, 0x000500c3u, + 0x00000008u, 0x0000464du, 0x00004647u, 0x00004009u, 0x000200f9u, 0x00004655u, 0x000200f8u, 0x00004655u, + 0x000700f5u, 0x00000008u, 0x00006dd6u, 0x0000464du, 0x0000464au, 0x00004654u, 0x0000464eu, 0x000300f7u, + 0x00004671u, 0x00000000u, 0x000400fau, 0x00004174u, 0x00004657u, 0x0000466cu, 0x000200f8u, 0x0000466cu, + 0x000500c4u, 0x00000008u, 0x0000466eu, 0x00004177u, 0x0000019cu, 0x00050082u, 0x00000008u, 0x00004670u, + 0x00006dd6u, 0x0000466eu, 0x000200f9u, 0x00004671u, 0x000200f8u, 0x00004657u, 0x000500c3u, 0x00000008u, + 0x00004659u, 0x00006dd6u, 0x0000019cu, 0x000500afu, 0x00000058u, 0x0000465bu, 0x00004659u, 0x0000417au, + 0x000300f7u, 0x0000466bu, 0x00000000u, 0x000400fau, 0x0000465bu, 0x0000465du, 0x00004665u, 0x000200f8u, + 0x00004665u, 0x000500c4u, 0x00000008u, 0x00004668u, 0x00004177u, 0x0000019cu, 0x00050082u, 0x00000008u, + 0x00004669u, 0x00006dd6u, 0x00004668u, 0x0007000cu, 0x00000008u, 0x0000466au, 0x00000001u, 0x0000002au, + 0x00004669u, 0x00000187u, 0x000200f9u, 0x0000466bu, 0x000200f8u, 0x0000465du, 0x000500c3u, 0x00000008u, + 0x0000465fu, 0x0000417au, 0x00000199u, 0x000500c3u, 0x00000008u, 0x00004661u, 0x00004177u, 0x00000199u, + 0x00050082u, 0x00000008u, 0x00004662u, 0x0000465fu, 0x00004661u, 0x000500c7u, 0x00000008u, 0x00004663u, + 0x00004662u, 0x0000099eu, 0x000500c4u, 0x00000008u, 0x00004664u, 0x00004663u, 0x000001a2u, 0x000200f9u, + 0x0000466bu, 0x000200f8u, 0x0000466bu, 0x000700f5u, 0x00000008u, 0x00006dd8u, 0x00004664u, 0x0000465du, + 0x0000466au, 0x00004665u, 0x000200f9u, 0x00004671u, 0x000200f8u, 0x00004671u, 0x000700f5u, 0x00000008u, + 0x00006dd7u, 0x00006dd8u, 0x0000466bu, 0x00004670u, 0x0000466cu, 0x000500c7u, 0x00000008u, 0x00004183u, + 0x00004018u, 0x0000019fu, 0x000500abu, 0x00000058u, 0x00004184u, 0x00004183u, 0x00000187u, 0x0004007cu, + 0x00000008u, 0x00004187u, 0x00003fe7u, 0x0004007cu, 0x00000008u, 0x0000418au, 0x00003feau, 0x00050051u, + 0x00000008u, 0x0000418eu, 0x00006d24u, 0x00000001u, 0x0008000cu, 0x00000008u, 0x00004677u, 0x00000001u, + 0x0000002du, 0x0000418eu, 0x000004a4u, 0x0000045eu, 0x000500b1u, 0x00000058u, 0x00004679u, 0x00004013u, + 0x000001f3u, 0x000300f7u, 0x00004685u, 0x00000000u, 0x000400fau, 0x00004679u, 0x0000467au, 0x0000467eu, + 0x000200f8u, 0x0000467eu, 0x00050082u, 0x00000008u, 0x00004680u, 0x000002e2u, 0x00004013u, 0x000500c4u, + 0x00000008u, 0x00004682u, 0x00004677u, 0x00004680u, 0x000500c3u, 0x00000008u, 0x00004684u, 0x00004682u, + 0x00000323u, 0x000200f9u, 0x00004685u, 0x000200f8u, 0x0000467au, 0x000500c3u, 0x00000008u, 0x0000467du, + 0x00004677u, 0x00004013u, 0x000200f9u, 0x00004685u, 0x000200f8u, 0x00004685u, 0x000700f5u, 0x00000008u, + 0x00006ddcu, 0x0000467du, 0x0000467au, 0x00004684u, 0x0000467eu, 0x000300f7u, 0x000046a1u, 0x00000000u, + 0x000400fau, 0x00004184u, 0x00004687u, 0x0000469cu, 0x000200f8u, 0x0000469cu, 0x000500c4u, 0x00000008u, + 0x0000469eu, 0x00004187u, 0x0000019cu, 0x00050082u, 0x00000008u, 0x000046a0u, 0x00006ddcu, 0x0000469eu, + 0x000200f9u, 0x000046a1u, 0x000200f8u, 0x00004687u, 0x000500c3u, 0x00000008u, 0x00004689u, 0x00006ddcu, + 0x0000019cu, 0x000500afu, 0x00000058u, 0x0000468bu, 0x00004689u, 0x0000418au, 0x000300f7u, 0x0000469bu, + 0x00000000u, 0x000400fau, 0x0000468bu, 0x0000468du, 0x00004695u, 0x000200f8u, 0x00004695u, 0x000500c4u, + 0x00000008u, 0x00004698u, 0x00004187u, 0x0000019cu, 0x00050082u, 0x00000008u, 0x00004699u, 0x00006ddcu, + 0x00004698u, 0x0007000cu, 0x00000008u, 0x0000469au, 0x00000001u, 0x0000002au, 0x00004699u, 0x00000187u, + 0x000200f9u, 0x0000469bu, 0x000200f8u, 0x0000468du, 0x000500c3u, 0x00000008u, 0x0000468fu, 0x0000418au, + 0x00000199u, 0x000500c3u, 0x00000008u, 0x00004691u, 0x00004187u, 0x00000199u, 0x00050082u, 0x00000008u, + 0x00004692u, 0x0000468fu, 0x00004691u, 0x000500c7u, 0x00000008u, 0x00004693u, 0x00004692u, 0x0000099eu, + 0x000500c4u, 0x00000008u, 0x00004694u, 0x00004693u, 0x000001a2u, 0x000200f9u, 0x0000469bu, 0x000200f8u, + 0x0000469bu, 0x000700f5u, 0x00000008u, 0x00006ddeu, 0x00004694u, 0x0000468du, 0x0000469au, 0x00004695u, + 0x000200f9u, 0x000046a1u, 0x000200f8u, 0x000046a1u, 0x000700f5u, 0x00000008u, 0x00006dddu, 0x00006ddeu, + 0x0000469bu, 0x000046a0u, 0x0000469cu, 0x00050050u, 0x0000004du, 0x0000857cu, 0x00006dd7u, 0x00006dddu, + 0x000500a6u, 0x00000058u, 0x00004193u, 0x00001a60u, 0x00001a5au, 0x000300f7u, 0x00004199u, 0x00000000u, + 0x000400fau, 0x00004193u, 0x00004194u, 0x00004198u, 0x000200f8u, 0x00004198u, 0x000200f9u, 0x00004199u, + 0x000200f8u, 0x00004194u, 0x000500c7u, 0x0000004du, 0x00004197u, 0x0000857cu, 0x00008569u, 0x000200f9u, + 0x00004199u, 0x000200f8u, 0x00004199u, 0x000700f5u, 0x0000004du, 0x00006de2u, 0x00004197u, 0x00004194u, + 0x0000048au, 0x00004198u, 0x00050051u, 0x00000008u, 0x0000419bu, 0x00006de2u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x0000419du, 0x00006de2u, 0x00000001u, 0x00050080u, 0x00000008u, 0x0000419eu, 0x0000419bu, + 0x0000419du, 0x000500c3u, 0x0000004du, 0x000041a1u, 0x0000857cu, 0x00008568u, 0x00050051u, 0x00000008u, + 0x000041a4u, 0x000041a1u, 0x00000000u, 0x000500abu, 0x00000058u, 0x000046a8u, 0x00004004u, 0x00000187u, + 0x000300f7u, 0x000046beu, 0x00000000u, 0x000400fau, 0x000046a8u, 0x000046a9u, 0x000046beu, 0x000200f8u, + 0x000046a9u, 0x000500c4u, 0x00000008u, 0x000046acu, 0x00000196u, 0x00004004u, 0x000500c7u, 0x00000008u, + 0x000046afu, 0x00004018u, 0x00000199u, 0x000500abu, 0x00000058u, 0x000046b0u, 0x000046afu, 0x00000187u, + 0x000300f7u, 0x000046b9u, 0x00000000u, 0x000400fau, 0x000046b0u, 0x000046b1u, 0x000046b9u, 0x000200f8u, + 0x000046b1u, 0x000500c7u, 0x00000008u, 0x000046b4u, 0x000041a4u, 0x000046acu, 0x00050082u, 0x00000008u, + 0x000046b5u, 0x000046b4u, 0x00000196u, 0x0007000cu, 0x00000008u, 0x000046b6u, 0x00000001u, 0x0000002au, + 0x000046b5u, 0x00000187u, 0x000500c6u, 0x00000008u, 0x000046b8u, 0x000041a4u, 0x000046b6u, 0x000200f9u, + 0x000046b9u, 0x000200f8u, 0x000046b9u, 0x000700f5u, 0x00000008u, 0x00006de4u, 0x000041a4u, 0x000046a9u, + 0x000046b8u, 0x000046b1u, 0x00050082u, 0x00000008u, 0x000046bbu, 0x000046acu, 0x00000196u, 0x000500c7u, + 0x00000008u, 0x000046bdu, 0x00006de4u, 0x000046bbu, 0x000200f9u, 0x000046beu, 0x000200f8u, 0x000046beu, + 0x000700f5u, 0x00000008u, 0x00006de5u, 0x000041a4u, 0x00004199u, 0x000046bdu, 0x000046b9u, 0x00050051u, + 0x00000008u, 0x000041a8u, 0x000041a1u, 0x00000001u, 0x000500abu, 0x00000058u, 0x000046c5u, 0x0000400eu, + 0x00000187u, 0x000300f7u, 0x000046dbu, 0x00000000u, 0x000400fau, 0x000046c5u, 0x000046c6u, 0x000046dbu, + 0x000200f8u, 0x000046c6u, 0x000500c4u, 0x00000008u, 0x000046c9u, 0x00000196u, 0x0000400eu, 0x000500c7u, + 0x00000008u, 0x000046ccu, 0x00004018u, 0x000001e2u, 0x000500abu, 0x00000058u, 0x000046cdu, 0x000046ccu, + 0x00000187u, 0x000300f7u, 0x000046d6u, 0x00000000u, 0x000400fau, 0x000046cdu, 0x000046ceu, 0x000046d6u, + 0x000200f8u, 0x000046ceu, 0x000500c7u, 0x00000008u, 0x000046d1u, 0x000041a8u, 0x000046c9u, 0x00050082u, + 0x00000008u, 0x000046d2u, 0x000046d1u, 0x00000196u, 0x0007000cu, 0x00000008u, 0x000046d3u, 0x00000001u, + 0x0000002au, 0x000046d2u, 0x00000187u, 0x000500c6u, 0x00000008u, 0x000046d5u, 0x000041a8u, 0x000046d3u, + 0x000200f9u, 0x000046d6u, 0x000200f8u, 0x000046d6u, 0x000700f5u, 0x00000008u, 0x00006de8u, 0x000041a8u, + 0x000046c6u, 0x000046d5u, 0x000046ceu, 0x00050082u, 0x00000008u, 0x000046d8u, 0x000046c9u, 0x00000196u, + 0x000500c7u, 0x00000008u, 0x000046dau, 0x00006de8u, 0x000046d8u, 0x000200f9u, 0x000046dbu, 0x000200f8u, + 0x000046dbu, 0x000700f5u, 0x00000008u, 0x00006de9u, 0x000041a8u, 0x000046beu, 0x000046dau, 0x000046d6u, + 0x00050080u, 0x00000008u, 0x000041acu, 0x000041a4u, 0x00000196u, 0x000300f7u, 0x000046f8u, 0x00000000u, + 0x000400fau, 0x000046a8u, 0x000046e3u, 0x000046f8u, 0x000200f8u, 0x000046e3u, 0x000500c4u, 0x00000008u, + 0x000046e6u, 0x00000196u, 0x00004004u, 0x000500c7u, 0x00000008u, 0x000046e9u, 0x00004018u, 0x00000199u, + 0x000500abu, 0x00000058u, 0x000046eau, 0x000046e9u, 0x00000187u, 0x000300f7u, 0x000046f3u, 0x00000000u, + 0x000400fau, 0x000046eau, 0x000046ebu, 0x000046f3u, 0x000200f8u, 0x000046ebu, 0x000500c7u, 0x00000008u, + 0x000046eeu, 0x000041acu, 0x000046e6u, 0x00050082u, 0x00000008u, 0x000046efu, 0x000046eeu, 0x00000196u, + 0x0007000cu, 0x00000008u, 0x000046f0u, 0x00000001u, 0x0000002au, 0x000046efu, 0x00000187u, 0x000500c6u, + 0x00000008u, 0x000046f2u, 0x000041acu, 0x000046f0u, 0x000200f9u, 0x000046f3u, 0x000200f8u, 0x000046f3u, + 0x000700f5u, 0x00000008u, 0x00006decu, 0x000041acu, 0x000046e3u, 0x000046f2u, 0x000046ebu, 0x00050082u, + 0x00000008u, 0x000046f5u, 0x000046e6u, 0x00000196u, 0x000500c7u, 0x00000008u, 0x000046f7u, 0x00006decu, + 0x000046f5u, 0x000200f9u, 0x000046f8u, 0x000200f8u, 0x000046f8u, 0x000700f5u, 0x00000008u, 0x00006dedu, + 0x000041acu, 0x000046dbu, 0x000046f7u, 0x000046f3u, 0x00050080u, 0x00000008u, 0x000041b1u, 0x000041a8u, + 0x00000196u, 0x000300f7u, 0x00004715u, 0x00000000u, 0x000400fau, 0x000046c5u, 0x00004700u, 0x00004715u, + 0x000200f8u, 0x00004700u, 0x000500c4u, 0x00000008u, 0x00004703u, 0x00000196u, 0x0000400eu, 0x000500c7u, + 0x00000008u, 0x00004706u, 0x00004018u, 0x000001e2u, 0x000500abu, 0x00000058u, 0x00004707u, 0x00004706u, + 0x00000187u, 0x000300f7u, 0x00004710u, 0x00000000u, 0x000400fau, 0x00004707u, 0x00004708u, 0x00004710u, + 0x000200f8u, 0x00004708u, 0x000500c7u, 0x00000008u, 0x0000470bu, 0x000041b1u, 0x00004703u, 0x00050082u, + 0x00000008u, 0x0000470cu, 0x0000470bu, 0x00000196u, 0x0007000cu, 0x00000008u, 0x0000470du, 0x00000001u, + 0x0000002au, 0x0000470cu, 0x00000187u, 0x000500c6u, 0x00000008u, 0x0000470fu, 0x000041b1u, 0x0000470du, + 0x000200f9u, 0x00004710u, 0x000200f8u, 0x00004710u, 0x000700f5u, 0x00000008u, 0x00006df0u, 0x000041b1u, + 0x00004700u, 0x0000470fu, 0x00004708u, 0x00050082u, 0x00000008u, 0x00004712u, 0x00004703u, 0x00000196u, + 0x000500c7u, 0x00000008u, 0x00004714u, 0x00006df0u, 0x00004712u, 0x000200f9u, 0x00004715u, 0x000200f8u, + 0x00004715u, 0x000700f5u, 0x00000008u, 0x00006df1u, 0x000041b1u, 0x000046f8u, 0x00004714u, 0x00004710u, + 0x00050082u, 0x00000008u, 0x000041b6u, 0x00006df1u, 0x00006de9u, 0x0007000cu, 0x00000008u, 0x000041b7u, + 0x00000001u, 0x0000002au, 0x000041b6u, 0x00000c02u, 0x000500c7u, 0x00000008u, 0x000041b9u, 0x00006de9u, + 0x000002f0u, 0x00050080u, 0x00000008u, 0x000041bbu, 0x000041b9u, 0x000041b7u, 0x000500aau, 0x0000048bu, + 0x000041c1u, 0x00006de2u, 0x00000c0eu, 0x00050051u, 0x00000058u, 0x000041c2u, 0x000041c1u, 0x00000000u, + 0x00050051u, 0x00000058u, 0x000041c3u, 0x000041c1u, 0x00000001u, 0x00070050u, 0x000002fau, 0x000041c4u, + 0x00001a8au, 0x00001a9fu, 0x000041c2u, 0x000041c3u, 0x0004009bu, 0x00000058u, 0x000041c5u, 0x000041c4u, + 0x000500afu, 0x00000058u, 0x000041c7u, 0x0000419eu, 0x000002e2u, 0x000600a9u, 0x00000008u, 0x000085a5u, + 0x000041c5u, 0x00000187u, 0x0000419eu, 0x000500aau, 0x00000058u, 0x000041cdu, 0x000085a3u, 0x00000196u, + 0x000500afu, 0x00000058u, 0x000041cfu, 0x000085a5u, 0x000002e2u, 0x000300f7u, 0x000041d8u, 0x00000000u, + 0x000400fau, 0x000041cfu, 0x000041d0u, 0x000041d4u, 0x000200f8u, 0x000041d4u, 0x00050050u, 0x0000004du, + 0x000041d7u, 0x00006de5u, 0x000041b9u, 0x000200f9u, 0x000041d8u, 0x000200f8u, 0x000041d0u, 0x00050050u, + 0x0000004du, 0x000041d3u, 0x00006dedu, 0x000041bbu, 0x000200f9u, 0x000041d8u, 0x000200f8u, 0x000041d8u, + 0x000700f5u, 0x0000004du, 0x00006e0cu, 0x000041d3u, 0x000041d0u, 0x000041d7u, 0x000041d4u, 0x000500c7u, + 0x00000008u, 0x000041dbu, 0x00006de5u, 0x00000196u, 0x000500c4u, 0x00000008u, 0x000041dcu, 0x000041dbu, + 0x0000019fu, 0x000500c3u, 0x00000008u, 0x000041dfu, 0x0000419bu, 0x00000196u, 0x000500c5u, 0x00000008u, + 0x000041e0u, 0x000041dcu, 0x000041dfu, 0x000300f7u, 0x000044a4u, 0x00000000u, 0x000400fau, 0x00001a5au, + 0x000041e2u, 0x00004288u, 0x000200f8u, 0x00004288u, 0x000300f7u, 0x000044a3u, 0x00000000u, 0x000d00fbu, + 0x000085a3u, 0x000044a3u, 0x00000000u, 0x0000428bu, 0x00000001u, 0x00004313u, 0x00000002u, 0x00004341u, + 0x00000003u, 0x000043b4u, 0x00000004u, 0x0000443cu, 0x000200f8u, 0x0000443cu, 0x000300f7u, 0x000044a2u, + 0x00000000u, 0x000700fbu, 0x000085a4u, 0x0000443fu, 0x00000000u, 0x00004460u, 0x00000001u, 0x00004481u, + 0x000200f8u, 0x00004481u, 0x0004007cu, 0x000000a0u, 0x00004483u, 0x00006e0cu, 0x00050051u, 0x00000006u, + 0x00005799u, 0x00004483u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000579au, 0x00003ff0u, 0x00005799u, + 0x00050080u, 0x00000006u, 0x0000579bu, 0x00003fedu, 0x0000579au, 0x00050051u, 0x00000006u, 0x0000579du, + 0x00004483u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000579fu, 0x0000579bu, 0x0000579du, 0x000500c7u, + 0x00000006u, 0x000057a1u, 0x0000579fu, 0x000006b6u, 0x000500c7u, 0x00000006u, 0x000057a5u, 0x00005799u, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000057a6u, 0x000057a5u, 0x00000199u, 0x000500c6u, 0x00000006u, + 0x000057a8u, 0x000057a1u, 0x000057a6u, 0x000500c6u, 0x00000006u, 0x000057aau, 0x000057a8u, 0x00000333u, + 0x00080041u, 0x000001fbu, 0x000057adu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000057aau, + 0x0004003du, 0x000001adu, 0x000057aeu, 0x000057adu, 0x00040071u, 0x00000006u, 0x000057afu, 0x000057aeu, + 0x0004007cu, 0x00000008u, 0x000057b1u, 0x000057afu, 0x00070050u, 0x00000009u, 0x000057b2u, 0x000057b1u, + 0x000057b1u, 0x000057b1u, 0x000057b1u, 0x000300f7u, 0x00004497u, 0x00000000u, 0x000400fau, 0x00001a60u, + 0x00004488u, 0x00004497u, 0x000200f8u, 0x00004488u, 0x00050050u, 0x0000004du, 0x0000448bu, 0x00006dedu, + 0x000041b9u, 0x0004007cu, 0x000000a0u, 0x0000448cu, 0x0000448bu, 0x00050051u, 0x00000006u, 0x000057bdu, + 0x0000448cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000057beu, 0x00003ff0u, 0x000057bdu, 0x00050080u, + 0x00000006u, 0x000057bfu, 0x00003fedu, 0x000057beu, 0x00050051u, 0x00000006u, 0x000057c1u, 0x0000448cu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x000057c3u, 0x000057bfu, 0x000057c1u, 0x000500c7u, 0x00000006u, + 0x000057c5u, 0x000057c3u, 0x000006b6u, 0x000500c7u, 0x00000006u, 0x000057c9u, 0x000057bdu, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x000057cau, 0x000057c9u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x000057ccu, + 0x000057c5u, 0x000057cau, 0x000500c6u, 0x00000006u, 0x000057ceu, 0x000057ccu, 0x00000333u, 0x00080041u, + 0x000001fbu, 0x000057d1u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000057ceu, 0x0004003du, + 0x000001adu, 0x000057d2u, 0x000057d1u, 0x00040071u, 0x00000006u, 0x000057d3u, 0x000057d2u, 0x0004007cu, + 0x00000008u, 0x000057d5u, 0x000057d3u, 0x00070050u, 0x00000009u, 0x000057d6u, 0x000057d5u, 0x000057d5u, + 0x000057d5u, 0x000057d5u, 0x00050050u, 0x0000004du, 0x00004492u, 0x00006de5u, 0x000041bbu, 0x0004007cu, + 0x000000a0u, 0x00004493u, 0x00004492u, 0x00050051u, 0x00000006u, 0x000057e1u, 0x00004493u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000057e2u, 0x00003ff0u, 0x000057e1u, 0x00050080u, 0x00000006u, 0x000057e3u, + 0x00003fedu, 0x000057e2u, 0x00050051u, 0x00000006u, 0x000057e5u, 0x00004493u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x000057e7u, 0x000057e3u, 0x000057e5u, 0x000500c7u, 0x00000006u, 0x000057e9u, 0x000057e7u, + 0x000006b6u, 0x000500c7u, 0x00000006u, 0x000057edu, 0x000057e1u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x000057eeu, 0x000057edu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x000057f0u, 0x000057e9u, 0x000057eeu, + 0x000500c6u, 0x00000006u, 0x000057f2u, 0x000057f0u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000057f5u, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000057f2u, 0x0004003du, 0x000001adu, 0x000057f6u, + 0x000057f5u, 0x00040071u, 0x00000006u, 0x000057f7u, 0x000057f6u, 0x0004007cu, 0x00000008u, 0x000057f9u, + 0x000057f7u, 0x00070050u, 0x00000009u, 0x000057fau, 0x000057f9u, 0x000057f9u, 0x000057f9u, 0x000057f9u, + 0x000200f9u, 0x00004497u, 0x000200f8u, 0x00004497u, 0x000700f5u, 0x00000009u, 0x000071b6u, 0x000067e2u, + 0x00004481u, 0x000057fau, 0x00004488u, 0x000700f5u, 0x00000009u, 0x000070c0u, 0x000067e2u, 0x00004481u, + 0x000057d6u, 0x00004488u, 0x000300f7u, 0x000044a1u, 0x00000000u, 0x000400fau, 0x000041c5u, 0x00004499u, + 0x000044a1u, 0x000200f8u, 0x00004499u, 0x00050050u, 0x0000004du, 0x0000449cu, 0x00006dedu, 0x000041bbu, + 0x0004007cu, 0x000000a0u, 0x0000449du, 0x0000449cu, 0x00050051u, 0x00000006u, 0x00005805u, 0x0000449du, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005806u, 0x00003ff0u, 0x00005805u, 0x00050080u, 0x00000006u, + 0x00005807u, 0x00003fedu, 0x00005806u, 0x00050051u, 0x00000006u, 0x00005809u, 0x0000449du, 0x00000000u, + 0x00050080u, 0x00000006u, 0x0000580bu, 0x00005807u, 0x00005809u, 0x000500c7u, 0x00000006u, 0x0000580du, + 0x0000580bu, 0x000006b6u, 0x000500c7u, 0x00000006u, 0x00005811u, 0x00005805u, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00005812u, 0x00005811u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00005814u, 0x0000580du, + 0x00005812u, 0x000500c6u, 0x00000006u, 0x00005816u, 0x00005814u, 0x00000333u, 0x00080041u, 0x000001fbu, + 0x00005819u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005816u, 0x0004003du, 0x000001adu, + 0x0000581au, 0x00005819u, 0x00040071u, 0x00000006u, 0x0000581bu, 0x0000581au, 0x0004007cu, 0x00000008u, + 0x0000581du, 0x0000581bu, 0x00070050u, 0x00000009u, 0x0000581eu, 0x0000581du, 0x0000581du, 0x0000581du, + 0x0000581du, 0x000200f9u, 0x000044a1u, 0x000200f8u, 0x000044a1u, 0x000700f5u, 0x00000009u, 0x000072abu, + 0x000067e2u, 0x00004497u, 0x0000581eu, 0x00004499u, 0x000200f9u, 0x000044a2u, 0x000200f8u, 0x00004460u, + 0x0004007cu, 0x000000a0u, 0x00004462u, 0x00006e0cu, 0x00050051u, 0x00000006u, 0x000056ceu, 0x00004462u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000056cfu, 0x00003ff0u, 0x000056ceu, 0x00050080u, 0x00000006u, + 0x000056d0u, 0x00003fedu, 0x000056cfu, 0x00050051u, 0x00000006u, 0x000056d2u, 0x00004462u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000056d3u, 0x000056d2u, 0x00000196u, 0x00050080u, 0x00000006u, 0x000056d5u, + 0x000056d0u, 0x000056d3u, 0x000500c7u, 0x00000006u, 0x000056d7u, 0x000056d5u, 0x000006b6u, 0x000400c8u, + 0x00000006u, 0x000056dau, 0x000056d2u, 0x000500c7u, 0x00000006u, 0x000056dbu, 0x000056dau, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x000056dcu, 0x000056dbu, 0x000006beu, 0x000500c7u, 0x00000006u, 0x000056e0u, + 0x000056ceu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000056e1u, 0x000056e0u, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x000056e3u, 0x000056d7u, 0x000056e1u, 0x000500c6u, 0x00000006u, 0x000056e5u, 0x000056e3u, + 0x00000333u, 0x00080041u, 0x000001fbu, 0x000056e8u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000056e5u, 0x0004003du, 0x000001adu, 0x000056e9u, 0x000056e8u, 0x00040071u, 0x00000006u, 0x000056eau, + 0x000056e9u, 0x000500c2u, 0x00000006u, 0x000056edu, 0x000056eau, 0x000056dcu, 0x000500c7u, 0x00000006u, + 0x000056eeu, 0x000056edu, 0x000006dau, 0x000500c4u, 0x00000006u, 0x000056f0u, 0x000056eeu, 0x0000019fu, + 0x000500c5u, 0x00000006u, 0x000056f2u, 0x000056eeu, 0x000056f0u, 0x0004007cu, 0x00000008u, 0x000056f4u, + 0x000056f2u, 0x00070050u, 0x00000009u, 0x000056f5u, 0x000056f4u, 0x000056f4u, 0x000056f4u, 0x000056f4u, + 0x000300f7u, 0x00004476u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x00004467u, 0x00004476u, 0x000200f8u, + 0x00004467u, 0x00050050u, 0x0000004du, 0x0000446au, 0x00006dedu, 0x000041b9u, 0x0004007cu, 0x000000a0u, + 0x0000446bu, 0x0000446au, 0x00050051u, 0x00000006u, 0x00005701u, 0x0000446bu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005702u, 0x00003ff0u, 0x00005701u, 0x00050080u, 0x00000006u, 0x00005703u, 0x00003fedu, + 0x00005702u, 0x00050051u, 0x00000006u, 0x00005705u, 0x0000446bu, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00005706u, 0x00005705u, 0x00000196u, 0x00050080u, 0x00000006u, 0x00005708u, 0x00005703u, 0x00005706u, + 0x000500c7u, 0x00000006u, 0x0000570au, 0x00005708u, 0x000006b6u, 0x000400c8u, 0x00000006u, 0x0000570du, + 0x00005705u, 0x000500c7u, 0x00000006u, 0x0000570eu, 0x0000570du, 0x0000032cu, 0x00050084u, 0x00000006u, + 0x0000570fu, 0x0000570eu, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00005713u, 0x00005701u, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x00005714u, 0x00005713u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00005716u, + 0x0000570au, 0x00005714u, 0x000500c6u, 0x00000006u, 0x00005718u, 0x00005716u, 0x00000333u, 0x00080041u, + 0x000001fbu, 0x0000571bu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005718u, 0x0004003du, + 0x000001adu, 0x0000571cu, 0x0000571bu, 0x00040071u, 0x00000006u, 0x0000571du, 0x0000571cu, 0x000500c2u, + 0x00000006u, 0x00005720u, 0x0000571du, 0x0000570fu, 0x000500c7u, 0x00000006u, 0x00005721u, 0x00005720u, + 0x000006dau, 0x000500c4u, 0x00000006u, 0x00005723u, 0x00005721u, 0x0000019fu, 0x000500c5u, 0x00000006u, + 0x00005725u, 0x00005721u, 0x00005723u, 0x0004007cu, 0x00000008u, 0x00005727u, 0x00005725u, 0x00070050u, + 0x00000009u, 0x00005728u, 0x00005727u, 0x00005727u, 0x00005727u, 0x00005727u, 0x00050050u, 0x0000004du, + 0x00004471u, 0x00006de5u, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x00004472u, 0x00004471u, 0x00050051u, + 0x00000006u, 0x00005734u, 0x00004472u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005735u, 0x00003ff0u, + 0x00005734u, 0x00050080u, 0x00000006u, 0x00005736u, 0x00003fedu, 0x00005735u, 0x00050051u, 0x00000006u, + 0x00005738u, 0x00004472u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005739u, 0x00005738u, 0x00000196u, + 0x00050080u, 0x00000006u, 0x0000573bu, 0x00005736u, 0x00005739u, 0x000500c7u, 0x00000006u, 0x0000573du, + 0x0000573bu, 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00005740u, 0x00005738u, 0x000500c7u, 0x00000006u, + 0x00005741u, 0x00005740u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00005742u, 0x00005741u, 0x000006beu, + 0x000500c7u, 0x00000006u, 0x00005746u, 0x00005734u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005747u, + 0x00005746u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00005749u, 0x0000573du, 0x00005747u, 0x000500c6u, + 0x00000006u, 0x0000574bu, 0x00005749u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x0000574eu, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000574bu, 0x0004003du, 0x000001adu, 0x0000574fu, 0x0000574eu, + 0x00040071u, 0x00000006u, 0x00005750u, 0x0000574fu, 0x000500c2u, 0x00000006u, 0x00005753u, 0x00005750u, + 0x00005742u, 0x000500c7u, 0x00000006u, 0x00005754u, 0x00005753u, 0x000006dau, 0x000500c4u, 0x00000006u, + 0x00005756u, 0x00005754u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00005758u, 0x00005754u, 0x00005756u, + 0x0004007cu, 0x00000008u, 0x0000575au, 0x00005758u, 0x00070050u, 0x00000009u, 0x0000575bu, 0x0000575au, + 0x0000575au, 0x0000575au, 0x0000575au, 0x000200f9u, 0x00004476u, 0x000200f8u, 0x00004476u, 0x000700f5u, + 0x00000009u, 0x000071b4u, 0x000067e2u, 0x00004460u, 0x0000575bu, 0x00004467u, 0x000700f5u, 0x00000009u, + 0x000070beu, 0x000067e2u, 0x00004460u, 0x00005728u, 0x00004467u, 0x000300f7u, 0x00004480u, 0x00000000u, + 0x000400fau, 0x000041c5u, 0x00004478u, 0x00004480u, 0x000200f8u, 0x00004478u, 0x00050050u, 0x0000004du, + 0x0000447bu, 0x00006dedu, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x0000447cu, 0x0000447bu, 0x00050051u, + 0x00000006u, 0x00005767u, 0x0000447cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005768u, 0x00003ff0u, + 0x00005767u, 0x00050080u, 0x00000006u, 0x00005769u, 0x00003fedu, 0x00005768u, 0x00050051u, 0x00000006u, + 0x0000576bu, 0x0000447cu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000576cu, 0x0000576bu, 0x00000196u, + 0x00050080u, 0x00000006u, 0x0000576eu, 0x00005769u, 0x0000576cu, 0x000500c7u, 0x00000006u, 0x00005770u, + 0x0000576eu, 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00005773u, 0x0000576bu, 0x000500c7u, 0x00000006u, + 0x00005774u, 0x00005773u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00005775u, 0x00005774u, 0x000006beu, + 0x000500c7u, 0x00000006u, 0x00005779u, 0x00005767u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000577au, + 0x00005779u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x0000577cu, 0x00005770u, 0x0000577au, 0x000500c6u, + 0x00000006u, 0x0000577eu, 0x0000577cu, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00005781u, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000577eu, 0x0004003du, 0x000001adu, 0x00005782u, 0x00005781u, + 0x00040071u, 0x00000006u, 0x00005783u, 0x00005782u, 0x000500c2u, 0x00000006u, 0x00005786u, 0x00005783u, + 0x00005775u, 0x000500c7u, 0x00000006u, 0x00005787u, 0x00005786u, 0x000006dau, 0x000500c4u, 0x00000006u, + 0x00005789u, 0x00005787u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x0000578bu, 0x00005787u, 0x00005789u, + 0x0004007cu, 0x00000008u, 0x0000578du, 0x0000578bu, 0x00070050u, 0x00000009u, 0x0000578eu, 0x0000578du, + 0x0000578du, 0x0000578du, 0x0000578du, 0x000200f9u, 0x00004480u, 0x000200f8u, 0x00004480u, 0x000700f5u, + 0x00000009u, 0x000072a9u, 0x000067e2u, 0x00004476u, 0x0000578eu, 0x00004478u, 0x000200f9u, 0x000044a2u, + 0x000200f8u, 0x0000443fu, 0x0004007cu, 0x000000a0u, 0x00004441u, 0x00006e0cu, 0x00050051u, 0x00000006u, + 0x00005621u, 0x00004441u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005622u, 0x00003ff0u, 0x00005621u, + 0x00050080u, 0x00000006u, 0x00005623u, 0x00003fedu, 0x00005622u, 0x00050051u, 0x00000006u, 0x00005625u, + 0x00004441u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005626u, 0x00005625u, 0x00000330u, 0x00050080u, + 0x00000006u, 0x00005628u, 0x00005623u, 0x00005626u, 0x000500c7u, 0x00000006u, 0x0000562au, 0x00005628u, + 0x000006b6u, 0x000500c2u, 0x00000006u, 0x0000562cu, 0x0000562au, 0x00000196u, 0x000500c7u, 0x00000006u, + 0x0000562fu, 0x00005621u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005630u, 0x0000562fu, 0x00000196u, + 0x000500c6u, 0x00000006u, 0x00005632u, 0x0000562cu, 0x00005630u, 0x000500c6u, 0x00000006u, 0x00005634u, + 0x00005632u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00005637u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00005634u, 0x0004003du, 0x000001afu, 0x00005638u, 0x00005637u, 0x00040071u, 0x00000006u, + 0x00005639u, 0x00005638u, 0x000500c2u, 0x00000006u, 0x0000563bu, 0x00005639u, 0x000001e2u, 0x0004007cu, + 0x00000008u, 0x0000563cu, 0x0000563bu, 0x000500c7u, 0x00000006u, 0x0000563eu, 0x00005639u, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x0000563fu, 0x0000563eu, 0x00050050u, 0x0000004du, 0x00005640u, 0x0000563cu, + 0x0000563fu, 0x0009004fu, 0x00000009u, 0x00005641u, 0x00005640u, 0x00005640u, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004455u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x00004446u, + 0x00004455u, 0x000200f8u, 0x00004446u, 0x00050050u, 0x0000004du, 0x00004449u, 0x00006dedu, 0x000041b9u, + 0x0004007cu, 0x000000a0u, 0x0000444au, 0x00004449u, 0x00050051u, 0x00000006u, 0x0000564cu, 0x0000444au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000564du, 0x00003ff0u, 0x0000564cu, 0x00050080u, 0x00000006u, + 0x0000564eu, 0x00003fedu, 0x0000564du, 0x00050051u, 0x00000006u, 0x00005650u, 0x0000444au, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00005651u, 0x00005650u, 0x00000330u, 0x00050080u, 0x00000006u, 0x00005653u, + 0x0000564eu, 0x00005651u, 0x000500c7u, 0x00000006u, 0x00005655u, 0x00005653u, 0x000006b6u, 0x000500c2u, + 0x00000006u, 0x00005657u, 0x00005655u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x0000565au, 0x0000564cu, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000565bu, 0x0000565au, 0x00000196u, 0x000500c6u, 0x00000006u, + 0x0000565du, 0x00005657u, 0x0000565bu, 0x000500c6u, 0x00000006u, 0x0000565fu, 0x0000565du, 0x0000032cu, + 0x00080041u, 0x000001f4u, 0x00005662u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000565fu, + 0x0004003du, 0x000001afu, 0x00005663u, 0x00005662u, 0x00040071u, 0x00000006u, 0x00005664u, 0x00005663u, + 0x000500c2u, 0x00000006u, 0x00005666u, 0x00005664u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00005667u, + 0x00005666u, 0x000500c7u, 0x00000006u, 0x00005669u, 0x00005664u, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x0000566au, 0x00005669u, 0x00050050u, 0x0000004du, 0x0000566bu, 0x00005667u, 0x0000566au, 0x0009004fu, + 0x00000009u, 0x0000566cu, 0x0000566bu, 0x0000566bu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x00050050u, 0x0000004du, 0x00004450u, 0x00006de5u, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x00004451u, + 0x00004450u, 0x00050051u, 0x00000006u, 0x00005677u, 0x00004451u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005678u, 0x00003ff0u, 0x00005677u, 0x00050080u, 0x00000006u, 0x00005679u, 0x00003fedu, 0x00005678u, + 0x00050051u, 0x00000006u, 0x0000567bu, 0x00004451u, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000567cu, + 0x0000567bu, 0x00000330u, 0x00050080u, 0x00000006u, 0x0000567eu, 0x00005679u, 0x0000567cu, 0x000500c7u, + 0x00000006u, 0x00005680u, 0x0000567eu, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00005682u, 0x00005680u, + 0x00000196u, 0x000500c7u, 0x00000006u, 0x00005685u, 0x00005677u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00005686u, 0x00005685u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00005688u, 0x00005682u, 0x00005686u, + 0x000500c6u, 0x00000006u, 0x0000568au, 0x00005688u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x0000568du, + 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000568au, 0x0004003du, 0x000001afu, 0x0000568eu, + 0x0000568du, 0x00040071u, 0x00000006u, 0x0000568fu, 0x0000568eu, 0x000500c2u, 0x00000006u, 0x00005691u, + 0x0000568fu, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00005692u, 0x00005691u, 0x000500c7u, 0x00000006u, + 0x00005694u, 0x0000568fu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00005695u, 0x00005694u, 0x00050050u, + 0x0000004du, 0x00005696u, 0x00005692u, 0x00005695u, 0x0009004fu, 0x00000009u, 0x00005697u, 0x00005696u, + 0x00005696u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004455u, 0x000200f8u, + 0x00004455u, 0x000700f5u, 0x00000009u, 0x000071b2u, 0x000067e2u, 0x0000443fu, 0x00005697u, 0x00004446u, + 0x000700f5u, 0x00000009u, 0x000070bcu, 0x000067e2u, 0x0000443fu, 0x0000566cu, 0x00004446u, 0x000300f7u, + 0x0000445fu, 0x00000000u, 0x000400fau, 0x000041c5u, 0x00004457u, 0x0000445fu, 0x000200f8u, 0x00004457u, + 0x00050050u, 0x0000004du, 0x0000445au, 0x00006dedu, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x0000445bu, + 0x0000445au, 0x00050051u, 0x00000006u, 0x000056a2u, 0x0000445bu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000056a3u, 0x00003ff0u, 0x000056a2u, 0x00050080u, 0x00000006u, 0x000056a4u, 0x00003fedu, 0x000056a3u, + 0x00050051u, 0x00000006u, 0x000056a6u, 0x0000445bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000056a7u, + 0x000056a6u, 0x00000330u, 0x00050080u, 0x00000006u, 0x000056a9u, 0x000056a4u, 0x000056a7u, 0x000500c7u, + 0x00000006u, 0x000056abu, 0x000056a9u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x000056adu, 0x000056abu, + 0x00000196u, 0x000500c7u, 0x00000006u, 0x000056b0u, 0x000056a2u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x000056b1u, 0x000056b0u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x000056b3u, 0x000056adu, 0x000056b1u, + 0x000500c6u, 0x00000006u, 0x000056b5u, 0x000056b3u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x000056b8u, + 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000056b5u, 0x0004003du, 0x000001afu, 0x000056b9u, + 0x000056b8u, 0x00040071u, 0x00000006u, 0x000056bau, 0x000056b9u, 0x000500c2u, 0x00000006u, 0x000056bcu, + 0x000056bau, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x000056bdu, 0x000056bcu, 0x000500c7u, 0x00000006u, + 0x000056bfu, 0x000056bau, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x000056c0u, 0x000056bfu, 0x00050050u, + 0x0000004du, 0x000056c1u, 0x000056bdu, 0x000056c0u, 0x0009004fu, 0x00000009u, 0x000056c2u, 0x000056c1u, + 0x000056c1u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000445fu, 0x000200f8u, + 0x0000445fu, 0x000700f5u, 0x00000009u, 0x000072a7u, 0x000067e2u, 0x00004455u, 0x000056c2u, 0x00004457u, + 0x000200f9u, 0x000044a2u, 0x000200f8u, 0x000044a2u, 0x000900f5u, 0x00000009u, 0x000072a6u, 0x000072a7u, + 0x0000445fu, 0x000072a9u, 0x00004480u, 0x000072abu, 0x000044a1u, 0x000900f5u, 0x00000009u, 0x000071b0u, + 0x000071b2u, 0x0000445fu, 0x000071b4u, 0x00004480u, 0x000071b6u, 0x000044a1u, 0x000900f5u, 0x00000009u, + 0x000070bau, 0x000070bcu, 0x0000445fu, 0x000070beu, 0x00004480u, 0x000070c0u, 0x000044a1u, 0x000900f5u, + 0x00000009u, 0x00006f4fu, 0x00005641u, 0x0000445fu, 0x000056f5u, 0x00004480u, 0x000057b2u, 0x000044a1u, + 0x000200f9u, 0x000044a3u, 0x000200f8u, 0x000043b4u, 0x000300f7u, 0x0000443bu, 0x00000000u, 0x000b00fbu, + 0x000085a4u, 0x0000443bu, 0x00000000u, 0x000043b7u, 0x00000001u, 0x000043d8u, 0x00000002u, 0x000043f9u, + 0x00000003u, 0x0000441au, 0x000200f8u, 0x0000441au, 0x0004007cu, 0x000000a0u, 0x0000441cu, 0x00006e0cu, + 0x00050051u, 0x00000006u, 0x00005575u, 0x0000441cu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005576u, + 0x00003ff0u, 0x00005575u, 0x00050080u, 0x00000006u, 0x00005577u, 0x00003fedu, 0x00005576u, 0x00050051u, + 0x00000006u, 0x00005579u, 0x0000441cu, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000557au, 0x00005579u, + 0x00000330u, 0x00050080u, 0x00000006u, 0x0000557cu, 0x00005577u, 0x0000557au, 0x000500c7u, 0x00000006u, + 0x0000557eu, 0x0000557cu, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00005580u, 0x0000557eu, 0x00000196u, + 0x000500c7u, 0x00000006u, 0x00005583u, 0x00005575u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005584u, + 0x00005583u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00005586u, 0x00005580u, 0x00005584u, 0x000500c6u, + 0x00000006u, 0x00005588u, 0x00005586u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x0000558bu, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005588u, 0x0004003du, 0x000001afu, 0x0000558cu, 0x0000558bu, + 0x00040071u, 0x00000006u, 0x0000558du, 0x0000558cu, 0x000500c2u, 0x00000006u, 0x0000558fu, 0x0000558du, + 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00005590u, 0x0000558fu, 0x000500c7u, 0x00000006u, 0x00005592u, + 0x0000558du, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00005593u, 0x00005592u, 0x00050050u, 0x0000004du, + 0x00005594u, 0x00005590u, 0x00005593u, 0x0009004fu, 0x00000009u, 0x00005595u, 0x00005594u, 0x00005594u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00004430u, 0x00000000u, 0x000400fau, + 0x00001a60u, 0x00004421u, 0x00004430u, 0x000200f8u, 0x00004421u, 0x00050050u, 0x0000004du, 0x00004424u, + 0x00006dedu, 0x000041b9u, 0x0004007cu, 0x000000a0u, 0x00004425u, 0x00004424u, 0x00050051u, 0x00000006u, + 0x000055a0u, 0x00004425u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000055a1u, 0x00003ff0u, 0x000055a0u, + 0x00050080u, 0x00000006u, 0x000055a2u, 0x00003fedu, 0x000055a1u, 0x00050051u, 0x00000006u, 0x000055a4u, + 0x00004425u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000055a5u, 0x000055a4u, 0x00000330u, 0x00050080u, + 0x00000006u, 0x000055a7u, 0x000055a2u, 0x000055a5u, 0x000500c7u, 0x00000006u, 0x000055a9u, 0x000055a7u, + 0x000006b6u, 0x000500c2u, 0x00000006u, 0x000055abu, 0x000055a9u, 0x00000196u, 0x000500c7u, 0x00000006u, + 0x000055aeu, 0x000055a0u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000055afu, 0x000055aeu, 0x00000196u, + 0x000500c6u, 0x00000006u, 0x000055b1u, 0x000055abu, 0x000055afu, 0x000500c6u, 0x00000006u, 0x000055b3u, + 0x000055b1u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x000055b6u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x000055b3u, 0x0004003du, 0x000001afu, 0x000055b7u, 0x000055b6u, 0x00040071u, 0x00000006u, + 0x000055b8u, 0x000055b7u, 0x000500c2u, 0x00000006u, 0x000055bau, 0x000055b8u, 0x000001e2u, 0x0004007cu, + 0x00000008u, 0x000055bbu, 0x000055bau, 0x000500c7u, 0x00000006u, 0x000055bdu, 0x000055b8u, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x000055beu, 0x000055bdu, 0x00050050u, 0x0000004du, 0x000055bfu, 0x000055bbu, + 0x000055beu, 0x0009004fu, 0x00000009u, 0x000055c0u, 0x000055bfu, 0x000055bfu, 0x00000000u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x0000004du, 0x0000442bu, 0x00006de5u, 0x000041bbu, 0x0004007cu, + 0x000000a0u, 0x0000442cu, 0x0000442bu, 0x00050051u, 0x00000006u, 0x000055cbu, 0x0000442cu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000055ccu, 0x00003ff0u, 0x000055cbu, 0x00050080u, 0x00000006u, 0x000055cdu, + 0x00003fedu, 0x000055ccu, 0x00050051u, 0x00000006u, 0x000055cfu, 0x0000442cu, 0x00000000u, 0x00050084u, + 0x00000006u, 0x000055d0u, 0x000055cfu, 0x00000330u, 0x00050080u, 0x00000006u, 0x000055d2u, 0x000055cdu, + 0x000055d0u, 0x000500c7u, 0x00000006u, 0x000055d4u, 0x000055d2u, 0x000006b6u, 0x000500c2u, 0x00000006u, + 0x000055d6u, 0x000055d4u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x000055d9u, 0x000055cbu, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x000055dau, 0x000055d9u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x000055dcu, + 0x000055d6u, 0x000055dau, 0x000500c6u, 0x00000006u, 0x000055deu, 0x000055dcu, 0x0000032cu, 0x00080041u, + 0x000001f4u, 0x000055e1u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000055deu, 0x0004003du, + 0x000001afu, 0x000055e2u, 0x000055e1u, 0x00040071u, 0x00000006u, 0x000055e3u, 0x000055e2u, 0x000500c2u, + 0x00000006u, 0x000055e5u, 0x000055e3u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x000055e6u, 0x000055e5u, + 0x000500c7u, 0x00000006u, 0x000055e8u, 0x000055e3u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x000055e9u, + 0x000055e8u, 0x00050050u, 0x0000004du, 0x000055eau, 0x000055e6u, 0x000055e9u, 0x0009004fu, 0x00000009u, + 0x000055ebu, 0x000055eau, 0x000055eau, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x00004430u, 0x000200f8u, 0x00004430u, 0x000700f5u, 0x00000009u, 0x000071afu, 0x000067e2u, 0x0000441au, + 0x000055ebu, 0x00004421u, 0x000700f5u, 0x00000009u, 0x000070b9u, 0x000067e2u, 0x0000441au, 0x000055c0u, + 0x00004421u, 0x000300f7u, 0x0000443au, 0x00000000u, 0x000400fau, 0x000041c5u, 0x00004432u, 0x0000443au, + 0x000200f8u, 0x00004432u, 0x00050050u, 0x0000004du, 0x00004435u, 0x00006dedu, 0x000041bbu, 0x0004007cu, + 0x000000a0u, 0x00004436u, 0x00004435u, 0x00050051u, 0x00000006u, 0x000055f6u, 0x00004436u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000055f7u, 0x00003ff0u, 0x000055f6u, 0x00050080u, 0x00000006u, 0x000055f8u, + 0x00003fedu, 0x000055f7u, 0x00050051u, 0x00000006u, 0x000055fau, 0x00004436u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x000055fbu, 0x000055fau, 0x00000330u, 0x00050080u, 0x00000006u, 0x000055fdu, 0x000055f8u, + 0x000055fbu, 0x000500c7u, 0x00000006u, 0x000055ffu, 0x000055fdu, 0x000006b6u, 0x000500c2u, 0x00000006u, + 0x00005601u, 0x000055ffu, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00005604u, 0x000055f6u, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x00005605u, 0x00005604u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00005607u, + 0x00005601u, 0x00005605u, 0x000500c6u, 0x00000006u, 0x00005609u, 0x00005607u, 0x0000032cu, 0x00080041u, + 0x000001f4u, 0x0000560cu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005609u, 0x0004003du, + 0x000001afu, 0x0000560du, 0x0000560cu, 0x00040071u, 0x00000006u, 0x0000560eu, 0x0000560du, 0x000500c2u, + 0x00000006u, 0x00005610u, 0x0000560eu, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00005611u, 0x00005610u, + 0x000500c7u, 0x00000006u, 0x00005613u, 0x0000560eu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00005614u, + 0x00005613u, 0x00050050u, 0x0000004du, 0x00005615u, 0x00005611u, 0x00005614u, 0x0009004fu, 0x00000009u, + 0x00005616u, 0x00005615u, 0x00005615u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x0000443au, 0x000200f8u, 0x0000443au, 0x000700f5u, 0x00000009u, 0x000072a4u, 0x000067e2u, 0x00004430u, + 0x00005616u, 0x00004432u, 0x000200f9u, 0x0000443bu, 0x000200f8u, 0x000043f9u, 0x0004007cu, 0x000000a0u, + 0x000043fbu, 0x00006e0cu, 0x00050051u, 0x00000006u, 0x0000549au, 0x000043fbu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000549bu, 0x00003ff0u, 0x0000549au, 0x00050080u, 0x00000006u, 0x0000549cu, 0x00003fedu, + 0x0000549bu, 0x00050051u, 0x00000006u, 0x0000549eu, 0x000043fbu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x0000549fu, 0x0000549eu, 0x00000330u, 0x00050080u, 0x00000006u, 0x000054a1u, 0x0000549cu, 0x0000549fu, + 0x000500c7u, 0x00000006u, 0x000054a3u, 0x000054a1u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x000054a5u, + 0x000054a3u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x000054a8u, 0x0000549au, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x000054a9u, 0x000054a8u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x000054abu, 0x000054a5u, + 0x000054a9u, 0x000500c6u, 0x00000006u, 0x000054adu, 0x000054abu, 0x0000032cu, 0x00080041u, 0x000001f4u, + 0x000054b0u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000054adu, 0x0004003du, 0x000001afu, + 0x000054b1u, 0x000054b0u, 0x00040071u, 0x00000006u, 0x000054b2u, 0x000054b1u, 0x000500c2u, 0x00000006u, + 0x000054bau, 0x000054b2u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x000054bcu, 0x000054b2u, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x000054beu, 0x000054bau, 0x0004007cu, 0x00000008u, 0x000054c4u, 0x000054bcu, + 0x00070050u, 0x00000009u, 0x000054c5u, 0x000054beu, 0x000054beu, 0x000054beu, 0x000054c4u, 0x000300f7u, + 0x0000440fu, 0x00000000u, 0x000400fau, 0x00001a60u, 0x00004400u, 0x0000440fu, 0x000200f8u, 0x00004400u, + 0x00050050u, 0x0000004du, 0x00004403u, 0x00006dedu, 0x000041b9u, 0x0004007cu, 0x000000a0u, 0x00004404u, + 0x00004403u, 0x00050051u, 0x00000006u, 0x000054d1u, 0x00004404u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000054d2u, 0x00003ff0u, 0x000054d1u, 0x00050080u, 0x00000006u, 0x000054d3u, 0x00003fedu, 0x000054d2u, + 0x00050051u, 0x00000006u, 0x000054d5u, 0x00004404u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000054d6u, + 0x000054d5u, 0x00000330u, 0x00050080u, 0x00000006u, 0x000054d8u, 0x000054d3u, 0x000054d6u, 0x000500c7u, + 0x00000006u, 0x000054dau, 0x000054d8u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x000054dcu, 0x000054dau, + 0x00000196u, 0x000500c7u, 0x00000006u, 0x000054dfu, 0x000054d1u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x000054e0u, 0x000054dfu, 0x00000196u, 0x000500c6u, 0x00000006u, 0x000054e2u, 0x000054dcu, 0x000054e0u, + 0x000500c6u, 0x00000006u, 0x000054e4u, 0x000054e2u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x000054e7u, + 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000054e4u, 0x0004003du, 0x000001afu, 0x000054e8u, + 0x000054e7u, 0x00040071u, 0x00000006u, 0x000054e9u, 0x000054e8u, 0x000500c2u, 0x00000006u, 0x000054f1u, + 0x000054e9u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x000054f3u, 0x000054e9u, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x000054f5u, 0x000054f1u, 0x0004007cu, 0x00000008u, 0x000054fbu, 0x000054f3u, 0x00070050u, + 0x00000009u, 0x000054fcu, 0x000054f5u, 0x000054f5u, 0x000054f5u, 0x000054fbu, 0x00050050u, 0x0000004du, + 0x0000440au, 0x00006de5u, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x0000440bu, 0x0000440au, 0x00050051u, + 0x00000006u, 0x00005508u, 0x0000440bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005509u, 0x00003ff0u, + 0x00005508u, 0x00050080u, 0x00000006u, 0x0000550au, 0x00003fedu, 0x00005509u, 0x00050051u, 0x00000006u, + 0x0000550cu, 0x0000440bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000550du, 0x0000550cu, 0x00000330u, + 0x00050080u, 0x00000006u, 0x0000550fu, 0x0000550au, 0x0000550du, 0x000500c7u, 0x00000006u, 0x00005511u, + 0x0000550fu, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00005513u, 0x00005511u, 0x00000196u, 0x000500c7u, + 0x00000006u, 0x00005516u, 0x00005508u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005517u, 0x00005516u, + 0x00000196u, 0x000500c6u, 0x00000006u, 0x00005519u, 0x00005513u, 0x00005517u, 0x000500c6u, 0x00000006u, + 0x0000551bu, 0x00005519u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x0000551eu, 0x00000798u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x0000551bu, 0x0004003du, 0x000001afu, 0x0000551fu, 0x0000551eu, 0x00040071u, + 0x00000006u, 0x00005520u, 0x0000551fu, 0x000500c2u, 0x00000006u, 0x00005528u, 0x00005520u, 0x000001e2u, + 0x000500c7u, 0x00000006u, 0x0000552au, 0x00005520u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x0000552cu, + 0x00005528u, 0x0004007cu, 0x00000008u, 0x00005532u, 0x0000552au, 0x00070050u, 0x00000009u, 0x00005533u, + 0x0000552cu, 0x0000552cu, 0x0000552cu, 0x00005532u, 0x000200f9u, 0x0000440fu, 0x000200f8u, 0x0000440fu, + 0x000700f5u, 0x00000009u, 0x000071adu, 0x000067e2u, 0x000043f9u, 0x00005533u, 0x00004400u, 0x000700f5u, + 0x00000009u, 0x000070b7u, 0x000067e2u, 0x000043f9u, 0x000054fcu, 0x00004400u, 0x000300f7u, 0x00004419u, + 0x00000000u, 0x000400fau, 0x000041c5u, 0x00004411u, 0x00004419u, 0x000200f8u, 0x00004411u, 0x00050050u, + 0x0000004du, 0x00004414u, 0x00006dedu, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x00004415u, 0x00004414u, + 0x00050051u, 0x00000006u, 0x0000553fu, 0x00004415u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005540u, + 0x00003ff0u, 0x0000553fu, 0x00050080u, 0x00000006u, 0x00005541u, 0x00003fedu, 0x00005540u, 0x00050051u, + 0x00000006u, 0x00005543u, 0x00004415u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005544u, 0x00005543u, + 0x00000330u, 0x00050080u, 0x00000006u, 0x00005546u, 0x00005541u, 0x00005544u, 0x000500c7u, 0x00000006u, + 0x00005548u, 0x00005546u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x0000554au, 0x00005548u, 0x00000196u, + 0x000500c7u, 0x00000006u, 0x0000554du, 0x0000553fu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000554eu, + 0x0000554du, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00005550u, 0x0000554au, 0x0000554eu, 0x000500c6u, + 0x00000006u, 0x00005552u, 0x00005550u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00005555u, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005552u, 0x0004003du, 0x000001afu, 0x00005556u, 0x00005555u, + 0x00040071u, 0x00000006u, 0x00005557u, 0x00005556u, 0x000500c2u, 0x00000006u, 0x0000555fu, 0x00005557u, + 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00005561u, 0x00005557u, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x00005563u, 0x0000555fu, 0x0004007cu, 0x00000008u, 0x00005569u, 0x00005561u, 0x00070050u, 0x00000009u, + 0x0000556au, 0x00005563u, 0x00005563u, 0x00005563u, 0x00005569u, 0x000200f9u, 0x00004419u, 0x000200f8u, + 0x00004419u, 0x000700f5u, 0x00000009u, 0x000072a2u, 0x000067e2u, 0x0000440fu, 0x0000556au, 0x00004411u, + 0x000200f9u, 0x0000443bu, 0x000200f8u, 0x000043d8u, 0x0004007cu, 0x000000a0u, 0x000043dau, 0x00006e0cu, + 0x00050051u, 0x00000006u, 0x000053bbu, 0x000043dau, 0x00000001u, 0x00050084u, 0x00000006u, 0x000053bcu, + 0x00003ff0u, 0x000053bbu, 0x00050080u, 0x00000006u, 0x000053bdu, 0x00003fedu, 0x000053bcu, 0x00050051u, + 0x00000006u, 0x000053bfu, 0x000043dau, 0x00000000u, 0x00050080u, 0x00000006u, 0x000053c1u, 0x000053bdu, + 0x000053bfu, 0x000500c7u, 0x00000006u, 0x000053c3u, 0x000053c1u, 0x000006b6u, 0x000500c7u, 0x00000006u, + 0x000053c7u, 0x000053bbu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000053c8u, 0x000053c7u, 0x00000199u, + 0x000500c6u, 0x00000006u, 0x000053cau, 0x000053c3u, 0x000053c8u, 0x000500c6u, 0x00000006u, 0x000053ccu, + 0x000053cau, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000053cfu, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x000053ccu, 0x0004003du, 0x000001adu, 0x000053d0u, 0x000053cfu, 0x00040071u, 0x00000006u, + 0x000053d1u, 0x000053d0u, 0x000500c2u, 0x00000006u, 0x000053d3u, 0x000053d1u, 0x0000019fu, 0x000500c7u, + 0x00000006u, 0x000053d5u, 0x000053d1u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x000053d7u, 0x000053d5u, + 0x0000019fu, 0x000500c5u, 0x00000006u, 0x000053d9u, 0x000053d5u, 0x000053d7u, 0x000500c4u, 0x00000006u, + 0x000053dbu, 0x000053d3u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x000053ddu, 0x000053d3u, 0x000053dbu, + 0x0004007cu, 0x00000008u, 0x000053dfu, 0x000053ddu, 0x0004007cu, 0x00000008u, 0x000053e5u, 0x000053d9u, + 0x00070050u, 0x00000009u, 0x000053e6u, 0x000053dfu, 0x000053dfu, 0x000053dfu, 0x000053e5u, 0x000300f7u, + 0x000043eeu, 0x00000000u, 0x000400fau, 0x00001a60u, 0x000043dfu, 0x000043eeu, 0x000200f8u, 0x000043dfu, + 0x00050050u, 0x0000004du, 0x000043e2u, 0x00006dedu, 0x000041b9u, 0x0004007cu, 0x000000a0u, 0x000043e3u, + 0x000043e2u, 0x00050051u, 0x00000006u, 0x000053f3u, 0x000043e3u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000053f4u, 0x00003ff0u, 0x000053f3u, 0x00050080u, 0x00000006u, 0x000053f5u, 0x00003fedu, 0x000053f4u, + 0x00050051u, 0x00000006u, 0x000053f7u, 0x000043e3u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000053f9u, + 0x000053f5u, 0x000053f7u, 0x000500c7u, 0x00000006u, 0x000053fbu, 0x000053f9u, 0x000006b6u, 0x000500c7u, + 0x00000006u, 0x000053ffu, 0x000053f3u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005400u, 0x000053ffu, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x00005402u, 0x000053fbu, 0x00005400u, 0x000500c6u, 0x00000006u, + 0x00005404u, 0x00005402u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00005407u, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00005404u, 0x0004003du, 0x000001adu, 0x00005408u, 0x00005407u, 0x00040071u, + 0x00000006u, 0x00005409u, 0x00005408u, 0x000500c2u, 0x00000006u, 0x0000540bu, 0x00005409u, 0x0000019fu, + 0x000500c7u, 0x00000006u, 0x0000540du, 0x00005409u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x0000540fu, + 0x0000540du, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00005411u, 0x0000540du, 0x0000540fu, 0x000500c4u, + 0x00000006u, 0x00005413u, 0x0000540bu, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00005415u, 0x0000540bu, + 0x00005413u, 0x0004007cu, 0x00000008u, 0x00005417u, 0x00005415u, 0x0004007cu, 0x00000008u, 0x0000541du, + 0x00005411u, 0x00070050u, 0x00000009u, 0x0000541eu, 0x00005417u, 0x00005417u, 0x00005417u, 0x0000541du, + 0x00050050u, 0x0000004du, 0x000043e9u, 0x00006de5u, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x000043eau, + 0x000043e9u, 0x00050051u, 0x00000006u, 0x0000542bu, 0x000043eau, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000542cu, 0x00003ff0u, 0x0000542bu, 0x00050080u, 0x00000006u, 0x0000542du, 0x00003fedu, 0x0000542cu, + 0x00050051u, 0x00000006u, 0x0000542fu, 0x000043eau, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005431u, + 0x0000542du, 0x0000542fu, 0x000500c7u, 0x00000006u, 0x00005433u, 0x00005431u, 0x000006b6u, 0x000500c7u, + 0x00000006u, 0x00005437u, 0x0000542bu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005438u, 0x00005437u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x0000543au, 0x00005433u, 0x00005438u, 0x000500c6u, 0x00000006u, + 0x0000543cu, 0x0000543au, 0x00000333u, 0x00080041u, 0x000001fbu, 0x0000543fu, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x0000543cu, 0x0004003du, 0x000001adu, 0x00005440u, 0x0000543fu, 0x00040071u, + 0x00000006u, 0x00005441u, 0x00005440u, 0x000500c2u, 0x00000006u, 0x00005443u, 0x00005441u, 0x0000019fu, + 0x000500c7u, 0x00000006u, 0x00005445u, 0x00005441u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00005447u, + 0x00005445u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00005449u, 0x00005445u, 0x00005447u, 0x000500c4u, + 0x00000006u, 0x0000544bu, 0x00005443u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x0000544du, 0x00005443u, + 0x0000544bu, 0x0004007cu, 0x00000008u, 0x0000544fu, 0x0000544du, 0x0004007cu, 0x00000008u, 0x00005455u, + 0x00005449u, 0x00070050u, 0x00000009u, 0x00005456u, 0x0000544fu, 0x0000544fu, 0x0000544fu, 0x00005455u, + 0x000200f9u, 0x000043eeu, 0x000200f8u, 0x000043eeu, 0x000700f5u, 0x00000009u, 0x000071abu, 0x000067e2u, + 0x000043d8u, 0x00005456u, 0x000043dfu, 0x000700f5u, 0x00000009u, 0x000070b5u, 0x000067e2u, 0x000043d8u, + 0x0000541eu, 0x000043dfu, 0x000300f7u, 0x000043f8u, 0x00000000u, 0x000400fau, 0x000041c5u, 0x000043f0u, + 0x000043f8u, 0x000200f8u, 0x000043f0u, 0x00050050u, 0x0000004du, 0x000043f3u, 0x00006dedu, 0x000041bbu, + 0x0004007cu, 0x000000a0u, 0x000043f4u, 0x000043f3u, 0x00050051u, 0x00000006u, 0x00005463u, 0x000043f4u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005464u, 0x00003ff0u, 0x00005463u, 0x00050080u, 0x00000006u, + 0x00005465u, 0x00003fedu, 0x00005464u, 0x00050051u, 0x00000006u, 0x00005467u, 0x000043f4u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005469u, 0x00005465u, 0x00005467u, 0x000500c7u, 0x00000006u, 0x0000546bu, + 0x00005469u, 0x000006b6u, 0x000500c7u, 0x00000006u, 0x0000546fu, 0x00005463u, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00005470u, 0x0000546fu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00005472u, 0x0000546bu, + 0x00005470u, 0x000500c6u, 0x00000006u, 0x00005474u, 0x00005472u, 0x00000333u, 0x00080041u, 0x000001fbu, + 0x00005477u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005474u, 0x0004003du, 0x000001adu, + 0x00005478u, 0x00005477u, 0x00040071u, 0x00000006u, 0x00005479u, 0x00005478u, 0x000500c2u, 0x00000006u, + 0x0000547bu, 0x00005479u, 0x0000019fu, 0x000500c7u, 0x00000006u, 0x0000547du, 0x00005479u, 0x000006dau, + 0x000500c4u, 0x00000006u, 0x0000547fu, 0x0000547du, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00005481u, + 0x0000547du, 0x0000547fu, 0x000500c4u, 0x00000006u, 0x00005483u, 0x0000547bu, 0x0000019fu, 0x000500c5u, + 0x00000006u, 0x00005485u, 0x0000547bu, 0x00005483u, 0x0004007cu, 0x00000008u, 0x00005487u, 0x00005485u, + 0x0004007cu, 0x00000008u, 0x0000548du, 0x00005481u, 0x00070050u, 0x00000009u, 0x0000548eu, 0x00005487u, + 0x00005487u, 0x00005487u, 0x0000548du, 0x000200f9u, 0x000043f8u, 0x000200f8u, 0x000043f8u, 0x000700f5u, + 0x00000009u, 0x000072a0u, 0x000067e2u, 0x000043eeu, 0x0000548eu, 0x000043f0u, 0x000200f9u, 0x0000443bu, + 0x000200f8u, 0x000043b7u, 0x0004007cu, 0x000000a0u, 0x000043b9u, 0x00006e0cu, 0x00050051u, 0x00000006u, + 0x000052b3u, 0x000043b9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000052b4u, 0x00003ff0u, 0x000052b3u, + 0x00050080u, 0x00000006u, 0x000052b5u, 0x00003fedu, 0x000052b4u, 0x00050051u, 0x00000006u, 0x000052b7u, + 0x000043b9u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000052b8u, 0x000052b7u, 0x00000196u, 0x00050080u, + 0x00000006u, 0x000052bau, 0x000052b5u, 0x000052b8u, 0x000500c7u, 0x00000006u, 0x000052bcu, 0x000052bau, + 0x000006b6u, 0x000400c8u, 0x00000006u, 0x000052bfu, 0x000052b7u, 0x000500c7u, 0x00000006u, 0x000052c0u, + 0x000052bfu, 0x0000032cu, 0x00050084u, 0x00000006u, 0x000052c1u, 0x000052c0u, 0x000006beu, 0x000500c7u, + 0x00000006u, 0x000052c5u, 0x000052b3u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000052c6u, 0x000052c5u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x000052c8u, 0x000052bcu, 0x000052c6u, 0x000500c6u, 0x00000006u, + 0x000052cau, 0x000052c8u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000052cdu, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x000052cau, 0x0004003du, 0x000001adu, 0x000052ceu, 0x000052cdu, 0x00040071u, + 0x00000006u, 0x000052cfu, 0x000052ceu, 0x000500c2u, 0x00000006u, 0x000052d2u, 0x000052cfu, 0x000052c1u, + 0x000500c7u, 0x00000006u, 0x000052d3u, 0x000052d2u, 0x000006dau, 0x000500c7u, 0x00000006u, 0x000052d5u, + 0x000052d3u, 0x00000711u, 0x000500c4u, 0x00000006u, 0x000052d7u, 0x000052d5u, 0x0000019fu, 0x000500c4u, + 0x00000006u, 0x000052d9u, 0x000052d5u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x000052dau, 0x000052d7u, + 0x000052d9u, 0x000500c2u, 0x00000006u, 0x000052dcu, 0x000052d5u, 0x00000199u, 0x000500c5u, 0x00000006u, + 0x000052ddu, 0x000052dau, 0x000052dcu, 0x0004007cu, 0x00000008u, 0x000052dfu, 0x000052ddu, 0x000500c7u, + 0x00000006u, 0x000052e5u, 0x000052d3u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x000052e6u, 0x000052e5u, + 0x0000068bu, 0x0004007cu, 0x00000008u, 0x000052e7u, 0x000052e6u, 0x00070050u, 0x00000009u, 0x000052e8u, + 0x000052dfu, 0x000052dfu, 0x000052dfu, 0x000052e7u, 0x000300f7u, 0x000043cdu, 0x00000000u, 0x000400fau, + 0x00001a60u, 0x000043beu, 0x000043cdu, 0x000200f8u, 0x000043beu, 0x00050050u, 0x0000004du, 0x000043c1u, + 0x00006dedu, 0x000041b9u, 0x0004007cu, 0x000000a0u, 0x000043c2u, 0x000043c1u, 0x00050051u, 0x00000006u, + 0x000052f5u, 0x000043c2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000052f6u, 0x00003ff0u, 0x000052f5u, + 0x00050080u, 0x00000006u, 0x000052f7u, 0x00003fedu, 0x000052f6u, 0x00050051u, 0x00000006u, 0x000052f9u, + 0x000043c2u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000052fau, 0x000052f9u, 0x00000196u, 0x00050080u, + 0x00000006u, 0x000052fcu, 0x000052f7u, 0x000052fau, 0x000500c7u, 0x00000006u, 0x000052feu, 0x000052fcu, + 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00005301u, 0x000052f9u, 0x000500c7u, 0x00000006u, 0x00005302u, + 0x00005301u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00005303u, 0x00005302u, 0x000006beu, 0x000500c7u, + 0x00000006u, 0x00005307u, 0x000052f5u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005308u, 0x00005307u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x0000530au, 0x000052feu, 0x00005308u, 0x000500c6u, 0x00000006u, + 0x0000530cu, 0x0000530au, 0x00000333u, 0x00080041u, 0x000001fbu, 0x0000530fu, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x0000530cu, 0x0004003du, 0x000001adu, 0x00005310u, 0x0000530fu, 0x00040071u, + 0x00000006u, 0x00005311u, 0x00005310u, 0x000500c2u, 0x00000006u, 0x00005314u, 0x00005311u, 0x00005303u, + 0x000500c7u, 0x00000006u, 0x00005315u, 0x00005314u, 0x000006dau, 0x000500c7u, 0x00000006u, 0x00005317u, + 0x00005315u, 0x00000711u, 0x000500c4u, 0x00000006u, 0x00005319u, 0x00005317u, 0x0000019fu, 0x000500c4u, + 0x00000006u, 0x0000531bu, 0x00005317u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x0000531cu, 0x00005319u, + 0x0000531bu, 0x000500c2u, 0x00000006u, 0x0000531eu, 0x00005317u, 0x00000199u, 0x000500c5u, 0x00000006u, + 0x0000531fu, 0x0000531cu, 0x0000531eu, 0x0004007cu, 0x00000008u, 0x00005321u, 0x0000531fu, 0x000500c7u, + 0x00000006u, 0x00005327u, 0x00005315u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00005328u, 0x00005327u, + 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00005329u, 0x00005328u, 0x00070050u, 0x00000009u, 0x0000532au, + 0x00005321u, 0x00005321u, 0x00005321u, 0x00005329u, 0x00050050u, 0x0000004du, 0x000043c8u, 0x00006de5u, + 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x000043c9u, 0x000043c8u, 0x00050051u, 0x00000006u, 0x00005337u, + 0x000043c9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005338u, 0x00003ff0u, 0x00005337u, 0x00050080u, + 0x00000006u, 0x00005339u, 0x00003fedu, 0x00005338u, 0x00050051u, 0x00000006u, 0x0000533bu, 0x000043c9u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000533cu, 0x0000533bu, 0x00000196u, 0x00050080u, 0x00000006u, + 0x0000533eu, 0x00005339u, 0x0000533cu, 0x000500c7u, 0x00000006u, 0x00005340u, 0x0000533eu, 0x000006b6u, + 0x000400c8u, 0x00000006u, 0x00005343u, 0x0000533bu, 0x000500c7u, 0x00000006u, 0x00005344u, 0x00005343u, + 0x0000032cu, 0x00050084u, 0x00000006u, 0x00005345u, 0x00005344u, 0x000006beu, 0x000500c7u, 0x00000006u, + 0x00005349u, 0x00005337u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000534au, 0x00005349u, 0x00000199u, + 0x000500c6u, 0x00000006u, 0x0000534cu, 0x00005340u, 0x0000534au, 0x000500c6u, 0x00000006u, 0x0000534eu, + 0x0000534cu, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00005351u, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x0000534eu, 0x0004003du, 0x000001adu, 0x00005352u, 0x00005351u, 0x00040071u, 0x00000006u, + 0x00005353u, 0x00005352u, 0x000500c2u, 0x00000006u, 0x00005356u, 0x00005353u, 0x00005345u, 0x000500c7u, + 0x00000006u, 0x00005357u, 0x00005356u, 0x000006dau, 0x000500c7u, 0x00000006u, 0x00005359u, 0x00005357u, + 0x00000711u, 0x000500c4u, 0x00000006u, 0x0000535bu, 0x00005359u, 0x0000019fu, 0x000500c4u, 0x00000006u, + 0x0000535du, 0x00005359u, 0x00000196u, 0x000500c5u, 0x00000006u, 0x0000535eu, 0x0000535bu, 0x0000535du, + 0x000500c2u, 0x00000006u, 0x00005360u, 0x00005359u, 0x00000199u, 0x000500c5u, 0x00000006u, 0x00005361u, + 0x0000535eu, 0x00005360u, 0x0004007cu, 0x00000008u, 0x00005363u, 0x00005361u, 0x000500c7u, 0x00000006u, + 0x00005369u, 0x00005357u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x0000536au, 0x00005369u, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x0000536bu, 0x0000536au, 0x00070050u, 0x00000009u, 0x0000536cu, 0x00005363u, + 0x00005363u, 0x00005363u, 0x0000536bu, 0x000200f9u, 0x000043cdu, 0x000200f8u, 0x000043cdu, 0x000700f5u, + 0x00000009u, 0x000071a9u, 0x000067e2u, 0x000043b7u, 0x0000536cu, 0x000043beu, 0x000700f5u, 0x00000009u, + 0x000070b3u, 0x000067e2u, 0x000043b7u, 0x0000532au, 0x000043beu, 0x000300f7u, 0x000043d7u, 0x00000000u, + 0x000400fau, 0x000041c5u, 0x000043cfu, 0x000043d7u, 0x000200f8u, 0x000043cfu, 0x00050050u, 0x0000004du, + 0x000043d2u, 0x00006dedu, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x000043d3u, 0x000043d2u, 0x00050051u, + 0x00000006u, 0x00005379u, 0x000043d3u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000537au, 0x00003ff0u, + 0x00005379u, 0x00050080u, 0x00000006u, 0x0000537bu, 0x00003fedu, 0x0000537au, 0x00050051u, 0x00000006u, + 0x0000537du, 0x000043d3u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000537eu, 0x0000537du, 0x00000196u, + 0x00050080u, 0x00000006u, 0x00005380u, 0x0000537bu, 0x0000537eu, 0x000500c7u, 0x00000006u, 0x00005382u, + 0x00005380u, 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00005385u, 0x0000537du, 0x000500c7u, 0x00000006u, + 0x00005386u, 0x00005385u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00005387u, 0x00005386u, 0x000006beu, + 0x000500c7u, 0x00000006u, 0x0000538bu, 0x00005379u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000538cu, + 0x0000538bu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x0000538eu, 0x00005382u, 0x0000538cu, 0x000500c6u, + 0x00000006u, 0x00005390u, 0x0000538eu, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00005393u, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005390u, 0x0004003du, 0x000001adu, 0x00005394u, 0x00005393u, + 0x00040071u, 0x00000006u, 0x00005395u, 0x00005394u, 0x000500c2u, 0x00000006u, 0x00005398u, 0x00005395u, + 0x00005387u, 0x000500c7u, 0x00000006u, 0x00005399u, 0x00005398u, 0x000006dau, 0x000500c7u, 0x00000006u, + 0x0000539bu, 0x00005399u, 0x00000711u, 0x000500c4u, 0x00000006u, 0x0000539du, 0x0000539bu, 0x0000019fu, + 0x000500c4u, 0x00000006u, 0x0000539fu, 0x0000539bu, 0x00000196u, 0x000500c5u, 0x00000006u, 0x000053a0u, + 0x0000539du, 0x0000539fu, 0x000500c2u, 0x00000006u, 0x000053a2u, 0x0000539bu, 0x00000199u, 0x000500c5u, + 0x00000006u, 0x000053a3u, 0x000053a0u, 0x000053a2u, 0x0004007cu, 0x00000008u, 0x000053a5u, 0x000053a3u, + 0x000500c7u, 0x00000006u, 0x000053abu, 0x00005399u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x000053acu, + 0x000053abu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x000053adu, 0x000053acu, 0x00070050u, 0x00000009u, + 0x000053aeu, 0x000053a5u, 0x000053a5u, 0x000053a5u, 0x000053adu, 0x000200f9u, 0x000043d7u, 0x000200f8u, + 0x000043d7u, 0x000700f5u, 0x00000009u, 0x0000729eu, 0x000067e2u, 0x000043cdu, 0x000053aeu, 0x000043cfu, + 0x000200f9u, 0x0000443bu, 0x000200f8u, 0x0000443bu, 0x000d00f5u, 0x00000009u, 0x0000729du, 0x000067e2u, + 0x000043b4u, 0x0000729eu, 0x000043d7u, 0x000072a0u, 0x000043f8u, 0x000072a2u, 0x00004419u, 0x000072a4u, + 0x0000443au, 0x000d00f5u, 0x00000009u, 0x000071a7u, 0x000067e2u, 0x000043b4u, 0x000071a9u, 0x000043d7u, + 0x000071abu, 0x000043f8u, 0x000071adu, 0x00004419u, 0x000071afu, 0x0000443au, 0x000d00f5u, 0x00000009u, + 0x000070b1u, 0x000067e2u, 0x000043b4u, 0x000070b3u, 0x000043d7u, 0x000070b5u, 0x000043f8u, 0x000070b7u, + 0x00004419u, 0x000070b9u, 0x0000443au, 0x000d00f5u, 0x00000009u, 0x00006f46u, 0x000067e2u, 0x000043b4u, + 0x000052e8u, 0x000043d7u, 0x000053e6u, 0x000043f8u, 0x000054c5u, 0x00004419u, 0x00005595u, 0x0000443au, + 0x000200f9u, 0x000044a3u, 0x000200f8u, 0x00004341u, 0x000300f7u, 0x000043b3u, 0x00000000u, 0x000700fbu, + 0x000085a4u, 0x00004344u, 0x00000000u, 0x00004365u, 0x00000001u, 0x00004392u, 0x000200f8u, 0x00004392u, + 0x0004007cu, 0x000000a0u, 0x00004394u, 0x00006e0cu, 0x00050051u, 0x00000006u, 0x00005221u, 0x00004394u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005222u, 0x00003ff0u, 0x00005221u, 0x00050080u, 0x00000006u, + 0x00005223u, 0x00003fedu, 0x00005222u, 0x00050051u, 0x00000006u, 0x00005225u, 0x00004394u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005227u, 0x00005223u, 0x00005225u, 0x000500c7u, 0x00000006u, 0x00005229u, + 0x00005227u, 0x000006b6u, 0x000500c7u, 0x00000006u, 0x0000522du, 0x00005221u, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x0000522eu, 0x0000522du, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00005230u, 0x00005229u, + 0x0000522eu, 0x000500c6u, 0x00000006u, 0x00005232u, 0x00005230u, 0x00000333u, 0x00080041u, 0x000001fbu, + 0x00005235u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005232u, 0x0004003du, 0x000001adu, + 0x00005236u, 0x00005235u, 0x00040071u, 0x00000006u, 0x00005237u, 0x00005236u, 0x0004007cu, 0x00000008u, + 0x00005239u, 0x00005237u, 0x00070050u, 0x00000009u, 0x0000523au, 0x00005239u, 0x00005239u, 0x00005239u, + 0x00005239u, 0x000300f7u, 0x000043a8u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x00004399u, 0x000043a8u, + 0x000200f8u, 0x00004399u, 0x00050050u, 0x0000004du, 0x0000439cu, 0x00006dedu, 0x000041b9u, 0x0004007cu, + 0x000000a0u, 0x0000439du, 0x0000439cu, 0x00050051u, 0x00000006u, 0x00005245u, 0x0000439du, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00005246u, 0x00003ff0u, 0x00005245u, 0x00050080u, 0x00000006u, 0x00005247u, + 0x00003fedu, 0x00005246u, 0x00050051u, 0x00000006u, 0x00005249u, 0x0000439du, 0x00000000u, 0x00050080u, + 0x00000006u, 0x0000524bu, 0x00005247u, 0x00005249u, 0x000500c7u, 0x00000006u, 0x0000524du, 0x0000524bu, + 0x000006b6u, 0x000500c7u, 0x00000006u, 0x00005251u, 0x00005245u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00005252u, 0x00005251u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00005254u, 0x0000524du, 0x00005252u, + 0x000500c6u, 0x00000006u, 0x00005256u, 0x00005254u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00005259u, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005256u, 0x0004003du, 0x000001adu, 0x0000525au, + 0x00005259u, 0x00040071u, 0x00000006u, 0x0000525bu, 0x0000525au, 0x0004007cu, 0x00000008u, 0x0000525du, + 0x0000525bu, 0x00070050u, 0x00000009u, 0x0000525eu, 0x0000525du, 0x0000525du, 0x0000525du, 0x0000525du, + 0x00050050u, 0x0000004du, 0x000043a3u, 0x00006de5u, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x000043a4u, + 0x000043a3u, 0x00050051u, 0x00000006u, 0x00005269u, 0x000043a4u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000526au, 0x00003ff0u, 0x00005269u, 0x00050080u, 0x00000006u, 0x0000526bu, 0x00003fedu, 0x0000526au, + 0x00050051u, 0x00000006u, 0x0000526du, 0x000043a4u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000526fu, + 0x0000526bu, 0x0000526du, 0x000500c7u, 0x00000006u, 0x00005271u, 0x0000526fu, 0x000006b6u, 0x000500c7u, + 0x00000006u, 0x00005275u, 0x00005269u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005276u, 0x00005275u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x00005278u, 0x00005271u, 0x00005276u, 0x000500c6u, 0x00000006u, + 0x0000527au, 0x00005278u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x0000527du, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x0000527au, 0x0004003du, 0x000001adu, 0x0000527eu, 0x0000527du, 0x00040071u, + 0x00000006u, 0x0000527fu, 0x0000527eu, 0x0004007cu, 0x00000008u, 0x00005281u, 0x0000527fu, 0x00070050u, + 0x00000009u, 0x00005282u, 0x00005281u, 0x00005281u, 0x00005281u, 0x00005281u, 0x000200f9u, 0x000043a8u, + 0x000200f8u, 0x000043a8u, 0x000700f5u, 0x00000009u, 0x000071a6u, 0x000067e2u, 0x00004392u, 0x00005282u, + 0x00004399u, 0x000700f5u, 0x00000009u, 0x000070b0u, 0x000067e2u, 0x00004392u, 0x0000525eu, 0x00004399u, + 0x000300f7u, 0x000043b2u, 0x00000000u, 0x000400fau, 0x000041c5u, 0x000043aau, 0x000043b2u, 0x000200f8u, + 0x000043aau, 0x00050050u, 0x0000004du, 0x000043adu, 0x00006dedu, 0x000041bbu, 0x0004007cu, 0x000000a0u, + 0x000043aeu, 0x000043adu, 0x00050051u, 0x00000006u, 0x0000528du, 0x000043aeu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000528eu, 0x00003ff0u, 0x0000528du, 0x00050080u, 0x00000006u, 0x0000528fu, 0x00003fedu, + 0x0000528eu, 0x00050051u, 0x00000006u, 0x00005291u, 0x000043aeu, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005293u, 0x0000528fu, 0x00005291u, 0x000500c7u, 0x00000006u, 0x00005295u, 0x00005293u, 0x000006b6u, + 0x000500c7u, 0x00000006u, 0x00005299u, 0x0000528du, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000529au, + 0x00005299u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x0000529cu, 0x00005295u, 0x0000529au, 0x000500c6u, + 0x00000006u, 0x0000529eu, 0x0000529cu, 0x00000333u, 0x00080041u, 0x000001fbu, 0x000052a1u, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000529eu, 0x0004003du, 0x000001adu, 0x000052a2u, 0x000052a1u, + 0x00040071u, 0x00000006u, 0x000052a3u, 0x000052a2u, 0x0004007cu, 0x00000008u, 0x000052a5u, 0x000052a3u, + 0x00070050u, 0x00000009u, 0x000052a6u, 0x000052a5u, 0x000052a5u, 0x000052a5u, 0x000052a5u, 0x000200f9u, + 0x000043b2u, 0x000200f8u, 0x000043b2u, 0x000700f5u, 0x00000009u, 0x0000729bu, 0x000067e2u, 0x000043a8u, + 0x000052a6u, 0x000043aau, 0x000200f9u, 0x000043b3u, 0x000200f8u, 0x00004365u, 0x0004007cu, 0x000000a0u, + 0x00004367u, 0x00006e0cu, 0x0004007cu, 0x00000006u, 0x0000436au, 0x00003fffu, 0x00050051u, 0x00000006u, + 0x00005156u, 0x00004367u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005157u, 0x00003ff0u, 0x00005156u, + 0x00050080u, 0x00000006u, 0x00005158u, 0x00003fedu, 0x00005157u, 0x00050051u, 0x00000006u, 0x0000515au, + 0x00004367u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000515bu, 0x0000515au, 0x00000196u, 0x00050080u, + 0x00000006u, 0x0000515du, 0x00005158u, 0x0000515bu, 0x000500c7u, 0x00000006u, 0x0000515fu, 0x0000515du, + 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00005162u, 0x0000515au, 0x000500c7u, 0x00000006u, 0x00005163u, + 0x00005162u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00005164u, 0x00005163u, 0x000006beu, 0x000500c7u, + 0x00000006u, 0x00005168u, 0x00005156u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005169u, 0x00005168u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x0000516bu, 0x0000515fu, 0x00005169u, 0x000500c6u, 0x00000006u, + 0x0000516du, 0x0000516bu, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00005170u, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x0000516du, 0x0004003du, 0x000001adu, 0x00005171u, 0x00005170u, 0x00040071u, + 0x00000006u, 0x00005172u, 0x00005171u, 0x000500c2u, 0x00000006u, 0x00005175u, 0x00005172u, 0x00005164u, + 0x000500c7u, 0x00000006u, 0x00005176u, 0x00005175u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00005178u, + 0x0000436au, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x0000517au, 0x00005176u, 0x00005178u, 0x0004007cu, + 0x00000008u, 0x0000517cu, 0x0000517au, 0x00070050u, 0x00000009u, 0x0000517du, 0x0000517cu, 0x0000517cu, + 0x0000517cu, 0x0000517cu, 0x000300f7u, 0x00004384u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x0000436fu, + 0x00004384u, 0x000200f8u, 0x0000436fu, 0x00050050u, 0x0000004du, 0x00004372u, 0x00006dedu, 0x000041b9u, + 0x0004007cu, 0x000000a0u, 0x00004373u, 0x00004372u, 0x00050051u, 0x00000006u, 0x00005189u, 0x00004373u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000518au, 0x00003ff0u, 0x00005189u, 0x00050080u, 0x00000006u, + 0x0000518bu, 0x00003fedu, 0x0000518au, 0x00050051u, 0x00000006u, 0x0000518du, 0x00004373u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x0000518eu, 0x0000518du, 0x00000196u, 0x00050080u, 0x00000006u, 0x00005190u, + 0x0000518bu, 0x0000518eu, 0x000500c7u, 0x00000006u, 0x00005192u, 0x00005190u, 0x000006b6u, 0x000400c8u, + 0x00000006u, 0x00005195u, 0x0000518du, 0x000500c7u, 0x00000006u, 0x00005196u, 0x00005195u, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x00005197u, 0x00005196u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x0000519bu, + 0x00005189u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000519cu, 0x0000519bu, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x0000519eu, 0x00005192u, 0x0000519cu, 0x000500c6u, 0x00000006u, 0x000051a0u, 0x0000519eu, + 0x00000333u, 0x00080041u, 0x000001fbu, 0x000051a3u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000051a0u, 0x0004003du, 0x000001adu, 0x000051a4u, 0x000051a3u, 0x00040071u, 0x00000006u, 0x000051a5u, + 0x000051a4u, 0x000500c2u, 0x00000006u, 0x000051a8u, 0x000051a5u, 0x00005197u, 0x000500c7u, 0x00000006u, + 0x000051a9u, 0x000051a8u, 0x000006dau, 0x000500c5u, 0x00000006u, 0x000051adu, 0x000051a9u, 0x00005178u, + 0x0004007cu, 0x00000008u, 0x000051afu, 0x000051adu, 0x00070050u, 0x00000009u, 0x000051b0u, 0x000051afu, + 0x000051afu, 0x000051afu, 0x000051afu, 0x00050050u, 0x0000004du, 0x0000437cu, 0x00006de5u, 0x000041bbu, + 0x0004007cu, 0x000000a0u, 0x0000437du, 0x0000437cu, 0x00050051u, 0x00000006u, 0x000051bcu, 0x0000437du, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000051bdu, 0x00003ff0u, 0x000051bcu, 0x00050080u, 0x00000006u, + 0x000051beu, 0x00003fedu, 0x000051bdu, 0x00050051u, 0x00000006u, 0x000051c0u, 0x0000437du, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000051c1u, 0x000051c0u, 0x00000196u, 0x00050080u, 0x00000006u, 0x000051c3u, + 0x000051beu, 0x000051c1u, 0x000500c7u, 0x00000006u, 0x000051c5u, 0x000051c3u, 0x000006b6u, 0x000400c8u, + 0x00000006u, 0x000051c8u, 0x000051c0u, 0x000500c7u, 0x00000006u, 0x000051c9u, 0x000051c8u, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x000051cau, 0x000051c9u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x000051ceu, + 0x000051bcu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000051cfu, 0x000051ceu, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x000051d1u, 0x000051c5u, 0x000051cfu, 0x000500c6u, 0x00000006u, 0x000051d3u, 0x000051d1u, + 0x00000333u, 0x00080041u, 0x000001fbu, 0x000051d6u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000051d3u, 0x0004003du, 0x000001adu, 0x000051d7u, 0x000051d6u, 0x00040071u, 0x00000006u, 0x000051d8u, + 0x000051d7u, 0x000500c2u, 0x00000006u, 0x000051dbu, 0x000051d8u, 0x000051cau, 0x000500c7u, 0x00000006u, + 0x000051dcu, 0x000051dbu, 0x000006dau, 0x000500c5u, 0x00000006u, 0x000051e0u, 0x000051dcu, 0x00005178u, + 0x0004007cu, 0x00000008u, 0x000051e2u, 0x000051e0u, 0x00070050u, 0x00000009u, 0x000051e3u, 0x000051e2u, + 0x000051e2u, 0x000051e2u, 0x000051e2u, 0x000200f9u, 0x00004384u, 0x000200f8u, 0x00004384u, 0x000700f5u, + 0x00000009u, 0x000071a4u, 0x000067e2u, 0x00004365u, 0x000051e3u, 0x0000436fu, 0x000700f5u, 0x00000009u, + 0x000070aeu, 0x000067e2u, 0x00004365u, 0x000051b0u, 0x0000436fu, 0x000300f7u, 0x00004391u, 0x00000000u, + 0x000400fau, 0x000041c5u, 0x00004386u, 0x00004391u, 0x000200f8u, 0x00004386u, 0x00050050u, 0x0000004du, + 0x00004389u, 0x00006dedu, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x0000438au, 0x00004389u, 0x00050051u, + 0x00000006u, 0x000051efu, 0x0000438au, 0x00000001u, 0x00050084u, 0x00000006u, 0x000051f0u, 0x00003ff0u, + 0x000051efu, 0x00050080u, 0x00000006u, 0x000051f1u, 0x00003fedu, 0x000051f0u, 0x00050051u, 0x00000006u, + 0x000051f3u, 0x0000438au, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000051f4u, 0x000051f3u, 0x00000196u, + 0x00050080u, 0x00000006u, 0x000051f6u, 0x000051f1u, 0x000051f4u, 0x000500c7u, 0x00000006u, 0x000051f8u, + 0x000051f6u, 0x000006b6u, 0x000400c8u, 0x00000006u, 0x000051fbu, 0x000051f3u, 0x000500c7u, 0x00000006u, + 0x000051fcu, 0x000051fbu, 0x0000032cu, 0x00050084u, 0x00000006u, 0x000051fdu, 0x000051fcu, 0x000006beu, + 0x000500c7u, 0x00000006u, 0x00005201u, 0x000051efu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005202u, + 0x00005201u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00005204u, 0x000051f8u, 0x00005202u, 0x000500c6u, + 0x00000006u, 0x00005206u, 0x00005204u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00005209u, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005206u, 0x0004003du, 0x000001adu, 0x0000520au, 0x00005209u, + 0x00040071u, 0x00000006u, 0x0000520bu, 0x0000520au, 0x000500c2u, 0x00000006u, 0x0000520eu, 0x0000520bu, + 0x000051fdu, 0x000500c7u, 0x00000006u, 0x0000520fu, 0x0000520eu, 0x000006dau, 0x000500c5u, 0x00000006u, + 0x00005213u, 0x0000520fu, 0x00005178u, 0x0004007cu, 0x00000008u, 0x00005215u, 0x00005213u, 0x00070050u, + 0x00000009u, 0x00005216u, 0x00005215u, 0x00005215u, 0x00005215u, 0x00005215u, 0x000200f9u, 0x00004391u, + 0x000200f8u, 0x00004391u, 0x000700f5u, 0x00000009u, 0x00007299u, 0x000067e2u, 0x00004384u, 0x00005216u, + 0x00004386u, 0x000200f9u, 0x000043b3u, 0x000200f8u, 0x00004344u, 0x0004007cu, 0x000000a0u, 0x00004346u, + 0x00006e0cu, 0x00050051u, 0x00000006u, 0x000050a9u, 0x00004346u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000050aau, 0x00003ff0u, 0x000050a9u, 0x00050080u, 0x00000006u, 0x000050abu, 0x00003fedu, 0x000050aau, + 0x00050051u, 0x00000006u, 0x000050adu, 0x00004346u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000050aeu, + 0x000050adu, 0x00000330u, 0x00050080u, 0x00000006u, 0x000050b0u, 0x000050abu, 0x000050aeu, 0x000500c7u, + 0x00000006u, 0x000050b2u, 0x000050b0u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x000050b4u, 0x000050b2u, + 0x00000196u, 0x000500c7u, 0x00000006u, 0x000050b7u, 0x000050a9u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x000050b8u, 0x000050b7u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x000050bau, 0x000050b4u, 0x000050b8u, + 0x000500c6u, 0x00000006u, 0x000050bcu, 0x000050bau, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x000050bfu, + 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000050bcu, 0x0004003du, 0x000001afu, 0x000050c0u, + 0x000050bfu, 0x00040071u, 0x00000006u, 0x000050c1u, 0x000050c0u, 0x000500c2u, 0x00000006u, 0x000050c3u, + 0x000050c1u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x000050c4u, 0x000050c3u, 0x000500c7u, 0x00000006u, + 0x000050c6u, 0x000050c1u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x000050c7u, 0x000050c6u, 0x00050050u, + 0x0000004du, 0x000050c8u, 0x000050c4u, 0x000050c7u, 0x0009004fu, 0x00000009u, 0x000050c9u, 0x000050c8u, + 0x000050c8u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x0000435au, 0x00000000u, + 0x000400fau, 0x00001a60u, 0x0000434bu, 0x0000435au, 0x000200f8u, 0x0000434bu, 0x00050050u, 0x0000004du, + 0x0000434eu, 0x00006dedu, 0x000041b9u, 0x0004007cu, 0x000000a0u, 0x0000434fu, 0x0000434eu, 0x00050051u, + 0x00000006u, 0x000050d4u, 0x0000434fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000050d5u, 0x00003ff0u, + 0x000050d4u, 0x00050080u, 0x00000006u, 0x000050d6u, 0x00003fedu, 0x000050d5u, 0x00050051u, 0x00000006u, + 0x000050d8u, 0x0000434fu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000050d9u, 0x000050d8u, 0x00000330u, + 0x00050080u, 0x00000006u, 0x000050dbu, 0x000050d6u, 0x000050d9u, 0x000500c7u, 0x00000006u, 0x000050ddu, + 0x000050dbu, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x000050dfu, 0x000050ddu, 0x00000196u, 0x000500c7u, + 0x00000006u, 0x000050e2u, 0x000050d4u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000050e3u, 0x000050e2u, + 0x00000196u, 0x000500c6u, 0x00000006u, 0x000050e5u, 0x000050dfu, 0x000050e3u, 0x000500c6u, 0x00000006u, + 0x000050e7u, 0x000050e5u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x000050eau, 0x00000798u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x000050e7u, 0x0004003du, 0x000001afu, 0x000050ebu, 0x000050eau, 0x00040071u, + 0x00000006u, 0x000050ecu, 0x000050ebu, 0x000500c2u, 0x00000006u, 0x000050eeu, 0x000050ecu, 0x000001e2u, + 0x0004007cu, 0x00000008u, 0x000050efu, 0x000050eeu, 0x000500c7u, 0x00000006u, 0x000050f1u, 0x000050ecu, + 0x0000068bu, 0x0004007cu, 0x00000008u, 0x000050f2u, 0x000050f1u, 0x00050050u, 0x0000004du, 0x000050f3u, + 0x000050efu, 0x000050f2u, 0x0009004fu, 0x00000009u, 0x000050f4u, 0x000050f3u, 0x000050f3u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x0000004du, 0x00004355u, 0x00006de5u, 0x000041bbu, + 0x0004007cu, 0x000000a0u, 0x00004356u, 0x00004355u, 0x00050051u, 0x00000006u, 0x000050ffu, 0x00004356u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005100u, 0x00003ff0u, 0x000050ffu, 0x00050080u, 0x00000006u, + 0x00005101u, 0x00003fedu, 0x00005100u, 0x00050051u, 0x00000006u, 0x00005103u, 0x00004356u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00005104u, 0x00005103u, 0x00000330u, 0x00050080u, 0x00000006u, 0x00005106u, + 0x00005101u, 0x00005104u, 0x000500c7u, 0x00000006u, 0x00005108u, 0x00005106u, 0x000006b6u, 0x000500c2u, + 0x00000006u, 0x0000510au, 0x00005108u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x0000510du, 0x000050ffu, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000510eu, 0x0000510du, 0x00000196u, 0x000500c6u, 0x00000006u, + 0x00005110u, 0x0000510au, 0x0000510eu, 0x000500c6u, 0x00000006u, 0x00005112u, 0x00005110u, 0x0000032cu, + 0x00080041u, 0x000001f4u, 0x00005115u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005112u, + 0x0004003du, 0x000001afu, 0x00005116u, 0x00005115u, 0x00040071u, 0x00000006u, 0x00005117u, 0x00005116u, + 0x000500c2u, 0x00000006u, 0x00005119u, 0x00005117u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x0000511au, + 0x00005119u, 0x000500c7u, 0x00000006u, 0x0000511cu, 0x00005117u, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x0000511du, 0x0000511cu, 0x00050050u, 0x0000004du, 0x0000511eu, 0x0000511au, 0x0000511du, 0x0009004fu, + 0x00000009u, 0x0000511fu, 0x0000511eu, 0x0000511eu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x0000435au, 0x000200f8u, 0x0000435au, 0x000700f5u, 0x00000009u, 0x000071a2u, 0x000067e2u, + 0x00004344u, 0x0000511fu, 0x0000434bu, 0x000700f5u, 0x00000009u, 0x000070acu, 0x000067e2u, 0x00004344u, + 0x000050f4u, 0x0000434bu, 0x000300f7u, 0x00004364u, 0x00000000u, 0x000400fau, 0x000041c5u, 0x0000435cu, + 0x00004364u, 0x000200f8u, 0x0000435cu, 0x00050050u, 0x0000004du, 0x0000435fu, 0x00006dedu, 0x000041bbu, + 0x0004007cu, 0x000000a0u, 0x00004360u, 0x0000435fu, 0x00050051u, 0x00000006u, 0x0000512au, 0x00004360u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000512bu, 0x00003ff0u, 0x0000512au, 0x00050080u, 0x00000006u, + 0x0000512cu, 0x00003fedu, 0x0000512bu, 0x00050051u, 0x00000006u, 0x0000512eu, 0x00004360u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x0000512fu, 0x0000512eu, 0x00000330u, 0x00050080u, 0x00000006u, 0x00005131u, + 0x0000512cu, 0x0000512fu, 0x000500c7u, 0x00000006u, 0x00005133u, 0x00005131u, 0x000006b6u, 0x000500c2u, + 0x00000006u, 0x00005135u, 0x00005133u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00005138u, 0x0000512au, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005139u, 0x00005138u, 0x00000196u, 0x000500c6u, 0x00000006u, + 0x0000513bu, 0x00005135u, 0x00005139u, 0x000500c6u, 0x00000006u, 0x0000513du, 0x0000513bu, 0x0000032cu, + 0x00080041u, 0x000001f4u, 0x00005140u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000513du, + 0x0004003du, 0x000001afu, 0x00005141u, 0x00005140u, 0x00040071u, 0x00000006u, 0x00005142u, 0x00005141u, + 0x000500c2u, 0x00000006u, 0x00005144u, 0x00005142u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00005145u, + 0x00005144u, 0x000500c7u, 0x00000006u, 0x00005147u, 0x00005142u, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x00005148u, 0x00005147u, 0x00050050u, 0x0000004du, 0x00005149u, 0x00005145u, 0x00005148u, 0x0009004fu, + 0x00000009u, 0x0000514au, 0x00005149u, 0x00005149u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004364u, 0x000200f8u, 0x00004364u, 0x000700f5u, 0x00000009u, 0x00007297u, 0x000067e2u, + 0x0000435au, 0x0000514au, 0x0000435cu, 0x000200f9u, 0x000043b3u, 0x000200f8u, 0x000043b3u, 0x000900f5u, + 0x00000009u, 0x00007296u, 0x00007297u, 0x00004364u, 0x00007299u, 0x00004391u, 0x0000729bu, 0x000043b2u, + 0x000900f5u, 0x00000009u, 0x000071a0u, 0x000071a2u, 0x00004364u, 0x000071a4u, 0x00004391u, 0x000071a6u, + 0x000043b2u, 0x000900f5u, 0x00000009u, 0x000070aau, 0x000070acu, 0x00004364u, 0x000070aeu, 0x00004391u, + 0x000070b0u, 0x000043b2u, 0x000900f5u, 0x00000009u, 0x00006f3fu, 0x000050c9u, 0x00004364u, 0x0000517du, + 0x00004391u, 0x0000523au, 0x000043b2u, 0x000200f9u, 0x000044a3u, 0x000200f8u, 0x00004313u, 0x000500c3u, + 0x00000008u, 0x00004315u, 0x00006de5u, 0x00000196u, 0x0004007cu, 0x00000006u, 0x00004316u, 0x00004315u, + 0x00050082u, 0x00000008u, 0x0000431au, 0x00006dedu, 0x00006de5u, 0x00050080u, 0x00000008u, 0x0000431bu, + 0x00006dedu, 0x0000431au, 0x000500c3u, 0x00000008u, 0x0000431cu, 0x0000431bu, 0x00000196u, 0x0004007cu, + 0x00000006u, 0x0000431du, 0x0000431cu, 0x00050050u, 0x0000004du, 0x00004320u, 0x00006de5u, 0x000041b9u, + 0x0004007cu, 0x000000a0u, 0x00004321u, 0x00004320u, 0x00050051u, 0x00000006u, 0x00004f7fu, 0x00004321u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004f80u, 0x00003ff0u, 0x00004f7fu, 0x00050080u, 0x00000006u, + 0x00004f81u, 0x00003fedu, 0x00004f80u, 0x00050051u, 0x00000006u, 0x00004f84u, 0x00004321u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00004f85u, 0x00004f81u, 0x00004f84u, 0x000500c7u, 0x00000006u, 0x00004f87u, + 0x00004f85u, 0x00000769u, 0x00050084u, 0x00000006u, 0x00004f8au, 0x00004316u, 0x00000330u, 0x00050080u, + 0x00000006u, 0x00004f8bu, 0x00004f81u, 0x00004f8au, 0x000500c7u, 0x00000006u, 0x00004f8du, 0x00004f8bu, + 0x00000769u, 0x000500c7u, 0x00000006u, 0x00004f91u, 0x00004f7fu, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00004f92u, 0x00004f91u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004f94u, 0x00004f87u, 0x00004f92u, + 0x000500c6u, 0x00000006u, 0x00004f96u, 0x00004f94u, 0x00000333u, 0x000500c2u, 0x00000006u, 0x00004f98u, + 0x00004f8du, 0x00000196u, 0x000500c4u, 0x00000006u, 0x00004f9cu, 0x00004f91u, 0x00000196u, 0x000500c6u, + 0x00000006u, 0x00004f9eu, 0x00004f98u, 0x00004f9cu, 0x000500c6u, 0x00000006u, 0x00004fa0u, 0x00004f9eu, + 0x0000032cu, 0x000500c5u, 0x00000006u, 0x00004fa3u, 0x00004f96u, 0x00000792u, 0x00080041u, 0x000001fbu, + 0x00004fa4u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004fa3u, 0x0004003du, 0x000001adu, + 0x00004fa5u, 0x00004fa4u, 0x00040071u, 0x00000006u, 0x00004fa6u, 0x00004fa5u, 0x0004007cu, 0x00000008u, + 0x00004fa7u, 0x00004fa6u, 0x00080041u, 0x000001f4u, 0x00004faau, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00004fa0u, 0x0004003du, 0x000001afu, 0x00004fabu, 0x00004faau, 0x00040071u, 0x00000006u, + 0x00004facu, 0x00004fabu, 0x0004007cu, 0x00000008u, 0x00004fadu, 0x00004facu, 0x000500c3u, 0x00000008u, + 0x00004fafu, 0x00004fadu, 0x000001e2u, 0x000500c7u, 0x00000008u, 0x00004fb0u, 0x00004fafu, 0x000002f0u, + 0x000500c3u, 0x00000008u, 0x00004fb2u, 0x00004fadu, 0x00000187u, 0x000500c7u, 0x00000008u, 0x00004fb3u, + 0x00004fb2u, 0x000002f0u, 0x00050082u, 0x00000008u, 0x00004fb5u, 0x00004fb0u, 0x00000325u, 0x00050082u, + 0x00000008u, 0x00004fb7u, 0x00004fb3u, 0x00000325u, 0x00070050u, 0x00000009u, 0x00004fbau, 0x00004fb5u, + 0x00004fb7u, 0x00004fa7u, 0x00004fa7u, 0x000300f7u, 0x00004340u, 0x00000000u, 0x000400fau, 0x00001a60u, + 0x00004327u, 0x00004340u, 0x000200f8u, 0x00004327u, 0x00050050u, 0x0000004du, 0x0000432au, 0x00006dedu, + 0x000041b9u, 0x0004007cu, 0x000000a0u, 0x0000432bu, 0x0000432au, 0x00050051u, 0x00000006u, 0x00004fcbu, + 0x0000432bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004fccu, 0x00003ff0u, 0x00004fcbu, 0x00050080u, + 0x00000006u, 0x00004fcdu, 0x00003fedu, 0x00004fccu, 0x00050051u, 0x00000006u, 0x00004fd0u, 0x0000432bu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00004fd1u, 0x00004fcdu, 0x00004fd0u, 0x000500c7u, 0x00000006u, + 0x00004fd3u, 0x00004fd1u, 0x00000769u, 0x00050084u, 0x00000006u, 0x00004fd6u, 0x0000431du, 0x00000330u, + 0x00050080u, 0x00000006u, 0x00004fd7u, 0x00004fcdu, 0x00004fd6u, 0x000500c7u, 0x00000006u, 0x00004fd9u, + 0x00004fd7u, 0x00000769u, 0x000500c7u, 0x00000006u, 0x00004fddu, 0x00004fcbu, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00004fdeu, 0x00004fddu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004fe0u, 0x00004fd3u, + 0x00004fdeu, 0x000500c6u, 0x00000006u, 0x00004fe2u, 0x00004fe0u, 0x00000333u, 0x000500c2u, 0x00000006u, + 0x00004fe4u, 0x00004fd9u, 0x00000196u, 0x000500c4u, 0x00000006u, 0x00004fe8u, 0x00004fddu, 0x00000196u, + 0x000500c6u, 0x00000006u, 0x00004feau, 0x00004fe4u, 0x00004fe8u, 0x000500c6u, 0x00000006u, 0x00004fecu, + 0x00004feau, 0x0000032cu, 0x000500c5u, 0x00000006u, 0x00004fefu, 0x00004fe2u, 0x00000792u, 0x00080041u, + 0x000001fbu, 0x00004ff0u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004fefu, 0x0004003du, + 0x000001adu, 0x00004ff1u, 0x00004ff0u, 0x00040071u, 0x00000006u, 0x00004ff2u, 0x00004ff1u, 0x0004007cu, + 0x00000008u, 0x00004ff3u, 0x00004ff2u, 0x00080041u, 0x000001f4u, 0x00004ff6u, 0x00000798u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00004fecu, 0x0004003du, 0x000001afu, 0x00004ff7u, 0x00004ff6u, 0x00040071u, + 0x00000006u, 0x00004ff8u, 0x00004ff7u, 0x0004007cu, 0x00000008u, 0x00004ff9u, 0x00004ff8u, 0x000500c3u, + 0x00000008u, 0x00004ffbu, 0x00004ff9u, 0x000001e2u, 0x000500c7u, 0x00000008u, 0x00004ffcu, 0x00004ffbu, + 0x000002f0u, 0x000500c3u, 0x00000008u, 0x00004ffeu, 0x00004ff9u, 0x00000187u, 0x000500c7u, 0x00000008u, + 0x00004fffu, 0x00004ffeu, 0x000002f0u, 0x00050082u, 0x00000008u, 0x00005001u, 0x00004ffcu, 0x00000325u, + 0x00050082u, 0x00000008u, 0x00005003u, 0x00004fffu, 0x00000325u, 0x00070050u, 0x00000009u, 0x00005006u, + 0x00005001u, 0x00005003u, 0x00004ff3u, 0x00004ff3u, 0x00050050u, 0x0000004du, 0x00004332u, 0x00006de5u, + 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x00004333u, 0x00004332u, 0x00050051u, 0x00000006u, 0x00005017u, + 0x00004333u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005018u, 0x00003ff0u, 0x00005017u, 0x00050080u, + 0x00000006u, 0x00005019u, 0x00003fedu, 0x00005018u, 0x00050051u, 0x00000006u, 0x0000501cu, 0x00004333u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x0000501du, 0x00005019u, 0x0000501cu, 0x000500c7u, 0x00000006u, + 0x0000501fu, 0x0000501du, 0x00000769u, 0x00050080u, 0x00000006u, 0x00005023u, 0x00005019u, 0x00004f8au, + 0x000500c7u, 0x00000006u, 0x00005025u, 0x00005023u, 0x00000769u, 0x000500c7u, 0x00000006u, 0x00005029u, + 0x00005017u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000502au, 0x00005029u, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x0000502cu, 0x0000501fu, 0x0000502au, 0x000500c6u, 0x00000006u, 0x0000502eu, 0x0000502cu, + 0x00000333u, 0x000500c2u, 0x00000006u, 0x00005030u, 0x00005025u, 0x00000196u, 0x000500c4u, 0x00000006u, + 0x00005034u, 0x00005029u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00005036u, 0x00005030u, 0x00005034u, + 0x000500c6u, 0x00000006u, 0x00005038u, 0x00005036u, 0x0000032cu, 0x000500c5u, 0x00000006u, 0x0000503bu, + 0x0000502eu, 0x00000792u, 0x00080041u, 0x000001fbu, 0x0000503cu, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x0000503bu, 0x0004003du, 0x000001adu, 0x0000503du, 0x0000503cu, 0x00040071u, 0x00000006u, + 0x0000503eu, 0x0000503du, 0x0004007cu, 0x00000008u, 0x0000503fu, 0x0000503eu, 0x00080041u, 0x000001f4u, + 0x00005042u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005038u, 0x0004003du, 0x000001afu, + 0x00005043u, 0x00005042u, 0x00040071u, 0x00000006u, 0x00005044u, 0x00005043u, 0x0004007cu, 0x00000008u, + 0x00005045u, 0x00005044u, 0x000500c3u, 0x00000008u, 0x00005047u, 0x00005045u, 0x000001e2u, 0x000500c7u, + 0x00000008u, 0x00005048u, 0x00005047u, 0x000002f0u, 0x000500c3u, 0x00000008u, 0x0000504au, 0x00005045u, + 0x00000187u, 0x000500c7u, 0x00000008u, 0x0000504bu, 0x0000504au, 0x000002f0u, 0x00050082u, 0x00000008u, + 0x0000504du, 0x00005048u, 0x00000325u, 0x00050082u, 0x00000008u, 0x0000504fu, 0x0000504bu, 0x00000325u, + 0x00070050u, 0x00000009u, 0x00005052u, 0x0000504du, 0x0000504fu, 0x0000503fu, 0x0000503fu, 0x00050050u, + 0x0000004du, 0x0000433au, 0x00006dedu, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x0000433bu, 0x0000433au, + 0x00050051u, 0x00000006u, 0x00005063u, 0x0000433bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005064u, + 0x00003ff0u, 0x00005063u, 0x00050080u, 0x00000006u, 0x00005065u, 0x00003fedu, 0x00005064u, 0x00050051u, + 0x00000006u, 0x00005068u, 0x0000433bu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005069u, 0x00005065u, + 0x00005068u, 0x000500c7u, 0x00000006u, 0x0000506bu, 0x00005069u, 0x00000769u, 0x00050080u, 0x00000006u, + 0x0000506fu, 0x00005065u, 0x00004fd6u, 0x000500c7u, 0x00000006u, 0x00005071u, 0x0000506fu, 0x00000769u, + 0x000500c7u, 0x00000006u, 0x00005075u, 0x00005063u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00005076u, + 0x00005075u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00005078u, 0x0000506bu, 0x00005076u, 0x000500c6u, + 0x00000006u, 0x0000507au, 0x00005078u, 0x00000333u, 0x000500c2u, 0x00000006u, 0x0000507cu, 0x00005071u, + 0x00000196u, 0x000500c4u, 0x00000006u, 0x00005080u, 0x00005075u, 0x00000196u, 0x000500c6u, 0x00000006u, + 0x00005082u, 0x0000507cu, 0x00005080u, 0x000500c6u, 0x00000006u, 0x00005084u, 0x00005082u, 0x0000032cu, + 0x000500c5u, 0x00000006u, 0x00005087u, 0x0000507au, 0x00000792u, 0x00080041u, 0x000001fbu, 0x00005088u, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00005087u, 0x0004003du, 0x000001adu, 0x00005089u, + 0x00005088u, 0x00040071u, 0x00000006u, 0x0000508au, 0x00005089u, 0x0004007cu, 0x00000008u, 0x0000508bu, + 0x0000508au, 0x00080041u, 0x000001f4u, 0x0000508eu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00005084u, 0x0004003du, 0x000001afu, 0x0000508fu, 0x0000508eu, 0x00040071u, 0x00000006u, 0x00005090u, + 0x0000508fu, 0x0004007cu, 0x00000008u, 0x00005091u, 0x00005090u, 0x000500c3u, 0x00000008u, 0x00005093u, + 0x00005091u, 0x000001e2u, 0x000500c7u, 0x00000008u, 0x00005094u, 0x00005093u, 0x000002f0u, 0x000500c3u, + 0x00000008u, 0x00005096u, 0x00005091u, 0x00000187u, 0x000500c7u, 0x00000008u, 0x00005097u, 0x00005096u, + 0x000002f0u, 0x00050082u, 0x00000008u, 0x00005099u, 0x00005094u, 0x00000325u, 0x00050082u, 0x00000008u, + 0x0000509bu, 0x00005097u, 0x00000325u, 0x00070050u, 0x00000009u, 0x0000509eu, 0x00005099u, 0x0000509bu, + 0x0000508bu, 0x0000508bu, 0x000200f9u, 0x00004340u, 0x000200f8u, 0x00004340u, 0x000700f5u, 0x00000009u, + 0x00007295u, 0x000067e2u, 0x00004313u, 0x0000509eu, 0x00004327u, 0x000700f5u, 0x00000009u, 0x0000719fu, + 0x000067e2u, 0x00004313u, 0x00005052u, 0x00004327u, 0x000700f5u, 0x00000009u, 0x000070a9u, 0x000067e2u, + 0x00004313u, 0x00005006u, 0x00004327u, 0x000200f9u, 0x000044a3u, 0x000200f8u, 0x0000428bu, 0x000300f7u, + 0x00004312u, 0x00000000u, 0x000b00fbu, 0x000085a4u, 0x00004312u, 0x00000000u, 0x0000428eu, 0x00000001u, + 0x000042afu, 0x00000002u, 0x000042d0u, 0x00000003u, 0x000042f1u, 0x000200f8u, 0x000042f1u, 0x0004007cu, + 0x000000a0u, 0x000042f3u, 0x00006e0cu, 0x00050051u, 0x00000006u, 0x00004e9eu, 0x000042f3u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00004e9fu, 0x00003ff0u, 0x00004e9eu, 0x00050080u, 0x00000006u, 0x00004ea0u, + 0x00003fedu, 0x00004e9fu, 0x00050051u, 0x00000006u, 0x00004ea2u, 0x000042f3u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00004ea3u, 0x00004ea2u, 0x00000330u, 0x00050080u, 0x00000006u, 0x00004ea5u, 0x00004ea0u, + 0x00004ea3u, 0x000500c7u, 0x00000006u, 0x00004ea7u, 0x00004ea5u, 0x00000769u, 0x000500c2u, 0x00000006u, + 0x00004ea9u, 0x00004ea7u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00004eacu, 0x00004e9eu, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x00004eadu, 0x00004eacu, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00004eafu, + 0x00004ea9u, 0x00004eadu, 0x000500c6u, 0x00000006u, 0x00004eb1u, 0x00004eafu, 0x0000032cu, 0x00080041u, + 0x000001f4u, 0x00004eb4u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004eb1u, 0x0004003du, + 0x000001afu, 0x00004eb5u, 0x00004eb4u, 0x00040071u, 0x00000006u, 0x00004eb6u, 0x00004eb5u, 0x000500c5u, + 0x00000006u, 0x00004eb9u, 0x00004eb1u, 0x0000079au, 0x00080041u, 0x000001f4u, 0x00004ebau, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004eb9u, 0x0004003du, 0x000001afu, 0x00004ebbu, 0x00004ebau, + 0x00040071u, 0x00000006u, 0x00004ebcu, 0x00004ebbu, 0x000500c2u, 0x00000006u, 0x00004ebeu, 0x00004eb6u, + 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00004ebfu, 0x00004ebeu, 0x000500c7u, 0x00000006u, 0x00004ec1u, + 0x00004eb6u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00004ec2u, 0x00004ec1u, 0x000500c2u, 0x00000006u, + 0x00004ec4u, 0x00004ebcu, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00004ec5u, 0x00004ec4u, 0x000500c7u, + 0x00000006u, 0x00004ec7u, 0x00004ebcu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00004ec8u, 0x00004ec7u, + 0x00070050u, 0x00000009u, 0x00004ec9u, 0x00004ebfu, 0x00004ec2u, 0x00004ec5u, 0x00004ec8u, 0x000300f7u, + 0x00004307u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x000042f8u, 0x00004307u, 0x000200f8u, 0x000042f8u, + 0x00050050u, 0x0000004du, 0x000042fbu, 0x00006dedu, 0x000041b9u, 0x0004007cu, 0x000000a0u, 0x000042fcu, + 0x000042fbu, 0x00050051u, 0x00000006u, 0x00004ed5u, 0x000042fcu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004ed6u, 0x00003ff0u, 0x00004ed5u, 0x00050080u, 0x00000006u, 0x00004ed7u, 0x00003fedu, 0x00004ed6u, + 0x00050051u, 0x00000006u, 0x00004ed9u, 0x000042fcu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004edau, + 0x00004ed9u, 0x00000330u, 0x00050080u, 0x00000006u, 0x00004edcu, 0x00004ed7u, 0x00004edau, 0x000500c7u, + 0x00000006u, 0x00004edeu, 0x00004edcu, 0x00000769u, 0x000500c2u, 0x00000006u, 0x00004ee0u, 0x00004edeu, + 0x00000196u, 0x000500c7u, 0x00000006u, 0x00004ee3u, 0x00004ed5u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00004ee4u, 0x00004ee3u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00004ee6u, 0x00004ee0u, 0x00004ee4u, + 0x000500c6u, 0x00000006u, 0x00004ee8u, 0x00004ee6u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00004eebu, + 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004ee8u, 0x0004003du, 0x000001afu, 0x00004eecu, + 0x00004eebu, 0x00040071u, 0x00000006u, 0x00004eedu, 0x00004eecu, 0x000500c5u, 0x00000006u, 0x00004ef0u, + 0x00004ee8u, 0x0000079au, 0x00080041u, 0x000001f4u, 0x00004ef1u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00004ef0u, 0x0004003du, 0x000001afu, 0x00004ef2u, 0x00004ef1u, 0x00040071u, 0x00000006u, + 0x00004ef3u, 0x00004ef2u, 0x000500c2u, 0x00000006u, 0x00004ef5u, 0x00004eedu, 0x000001e2u, 0x0004007cu, + 0x00000008u, 0x00004ef6u, 0x00004ef5u, 0x000500c7u, 0x00000006u, 0x00004ef8u, 0x00004eedu, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x00004ef9u, 0x00004ef8u, 0x000500c2u, 0x00000006u, 0x00004efbu, 0x00004ef3u, + 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00004efcu, 0x00004efbu, 0x000500c7u, 0x00000006u, 0x00004efeu, + 0x00004ef3u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00004effu, 0x00004efeu, 0x00070050u, 0x00000009u, + 0x00004f00u, 0x00004ef6u, 0x00004ef9u, 0x00004efcu, 0x00004effu, 0x00050050u, 0x0000004du, 0x00004302u, + 0x00006de5u, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x00004303u, 0x00004302u, 0x00050051u, 0x00000006u, + 0x00004f0cu, 0x00004303u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004f0du, 0x00003ff0u, 0x00004f0cu, + 0x00050080u, 0x00000006u, 0x00004f0eu, 0x00003fedu, 0x00004f0du, 0x00050051u, 0x00000006u, 0x00004f10u, + 0x00004303u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004f11u, 0x00004f10u, 0x00000330u, 0x00050080u, + 0x00000006u, 0x00004f13u, 0x00004f0eu, 0x00004f11u, 0x000500c7u, 0x00000006u, 0x00004f15u, 0x00004f13u, + 0x00000769u, 0x000500c2u, 0x00000006u, 0x00004f17u, 0x00004f15u, 0x00000196u, 0x000500c7u, 0x00000006u, + 0x00004f1au, 0x00004f0cu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004f1bu, 0x00004f1au, 0x00000196u, + 0x000500c6u, 0x00000006u, 0x00004f1du, 0x00004f17u, 0x00004f1bu, 0x000500c6u, 0x00000006u, 0x00004f1fu, + 0x00004f1du, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00004f22u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00004f1fu, 0x0004003du, 0x000001afu, 0x00004f23u, 0x00004f22u, 0x00040071u, 0x00000006u, + 0x00004f24u, 0x00004f23u, 0x000500c5u, 0x00000006u, 0x00004f27u, 0x00004f1fu, 0x0000079au, 0x00080041u, + 0x000001f4u, 0x00004f28u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004f27u, 0x0004003du, + 0x000001afu, 0x00004f29u, 0x00004f28u, 0x00040071u, 0x00000006u, 0x00004f2au, 0x00004f29u, 0x000500c2u, + 0x00000006u, 0x00004f2cu, 0x00004f24u, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00004f2du, 0x00004f2cu, + 0x000500c7u, 0x00000006u, 0x00004f2fu, 0x00004f24u, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00004f30u, + 0x00004f2fu, 0x000500c2u, 0x00000006u, 0x00004f32u, 0x00004f2au, 0x000001e2u, 0x0004007cu, 0x00000008u, + 0x00004f33u, 0x00004f32u, 0x000500c7u, 0x00000006u, 0x00004f35u, 0x00004f2au, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00004f36u, 0x00004f35u, 0x00070050u, 0x00000009u, 0x00004f37u, 0x00004f2du, 0x00004f30u, + 0x00004f33u, 0x00004f36u, 0x000200f9u, 0x00004307u, 0x000200f8u, 0x00004307u, 0x000700f5u, 0x00000009u, + 0x0000719eu, 0x000067e2u, 0x000042f1u, 0x00004f37u, 0x000042f8u, 0x000700f5u, 0x00000009u, 0x000070a8u, + 0x000067e2u, 0x000042f1u, 0x00004f00u, 0x000042f8u, 0x000300f7u, 0x00004311u, 0x00000000u, 0x000400fau, + 0x000041c5u, 0x00004309u, 0x00004311u, 0x000200f8u, 0x00004309u, 0x00050050u, 0x0000004du, 0x0000430cu, + 0x00006dedu, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x0000430du, 0x0000430cu, 0x00050051u, 0x00000006u, + 0x00004f43u, 0x0000430du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004f44u, 0x00003ff0u, 0x00004f43u, + 0x00050080u, 0x00000006u, 0x00004f45u, 0x00003fedu, 0x00004f44u, 0x00050051u, 0x00000006u, 0x00004f47u, + 0x0000430du, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004f48u, 0x00004f47u, 0x00000330u, 0x00050080u, + 0x00000006u, 0x00004f4au, 0x00004f45u, 0x00004f48u, 0x000500c7u, 0x00000006u, 0x00004f4cu, 0x00004f4au, + 0x00000769u, 0x000500c2u, 0x00000006u, 0x00004f4eu, 0x00004f4cu, 0x00000196u, 0x000500c7u, 0x00000006u, + 0x00004f51u, 0x00004f43u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004f52u, 0x00004f51u, 0x00000196u, + 0x000500c6u, 0x00000006u, 0x00004f54u, 0x00004f4eu, 0x00004f52u, 0x000500c6u, 0x00000006u, 0x00004f56u, + 0x00004f54u, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00004f59u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00004f56u, 0x0004003du, 0x000001afu, 0x00004f5au, 0x00004f59u, 0x00040071u, 0x00000006u, + 0x00004f5bu, 0x00004f5au, 0x000500c5u, 0x00000006u, 0x00004f5eu, 0x00004f56u, 0x0000079au, 0x00080041u, + 0x000001f4u, 0x00004f5fu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004f5eu, 0x0004003du, + 0x000001afu, 0x00004f60u, 0x00004f5fu, 0x00040071u, 0x00000006u, 0x00004f61u, 0x00004f60u, 0x000500c2u, + 0x00000006u, 0x00004f63u, 0x00004f5bu, 0x000001e2u, 0x0004007cu, 0x00000008u, 0x00004f64u, 0x00004f63u, + 0x000500c7u, 0x00000006u, 0x00004f66u, 0x00004f5bu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00004f67u, + 0x00004f66u, 0x000500c2u, 0x00000006u, 0x00004f69u, 0x00004f61u, 0x000001e2u, 0x0004007cu, 0x00000008u, + 0x00004f6au, 0x00004f69u, 0x000500c7u, 0x00000006u, 0x00004f6cu, 0x00004f61u, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00004f6du, 0x00004f6cu, 0x00070050u, 0x00000009u, 0x00004f6eu, 0x00004f64u, 0x00004f67u, + 0x00004f6au, 0x00004f6du, 0x000200f9u, 0x00004311u, 0x000200f8u, 0x00004311u, 0x000700f5u, 0x00000009u, + 0x00007293u, 0x000067e2u, 0x00004307u, 0x00004f6eu, 0x00004309u, 0x000200f9u, 0x00004312u, 0x000200f8u, + 0x000042d0u, 0x0004007cu, 0x000000a0u, 0x000042d2u, 0x00006e0cu, 0x00050051u, 0x00000006u, 0x00004d9au, + 0x000042d2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004d9bu, 0x00003ff0u, 0x00004d9au, 0x00050080u, + 0x00000006u, 0x00004d9cu, 0x00003fedu, 0x00004d9bu, 0x00050051u, 0x00000006u, 0x00004d9eu, 0x000042d2u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00004d9fu, 0x00004d9eu, 0x00000330u, 0x00050080u, 0x00000006u, + 0x00004da1u, 0x00004d9cu, 0x00004d9fu, 0x000500c7u, 0x00000006u, 0x00004da3u, 0x00004da1u, 0x000006b6u, + 0x000500c2u, 0x00000006u, 0x00004da5u, 0x00004da3u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00004da8u, + 0x00004d9au, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004da9u, 0x00004da8u, 0x00000196u, 0x000500c6u, + 0x00000006u, 0x00004dabu, 0x00004da5u, 0x00004da9u, 0x000500c6u, 0x00000006u, 0x00004dadu, 0x00004dabu, + 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00004db0u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00004dadu, 0x0004003du, 0x000001afu, 0x00004db1u, 0x00004db0u, 0x00040071u, 0x00000006u, 0x00004db2u, + 0x00004db1u, 0x00060050u, 0x000002b8u, 0x00004dbau, 0x00004db2u, 0x00004db2u, 0x00004db2u, 0x000500c2u, + 0x000002b8u, 0x00004dbbu, 0x00004dbau, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00004dbdu, 0x00004dbbu, + 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004dc0u, 0x00004dbdu, 0x0000856du, 0x000500c2u, 0x000002b8u, + 0x00004dc3u, 0x00004dbdu, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00004dc4u, 0x00004dc0u, 0x00004dc3u, + 0x000500c7u, 0x00000006u, 0x00004dc6u, 0x00004db2u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00004dc7u, + 0x00004dc6u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00004dc9u, 0x00004dc4u, 0x0004007cu, 0x00000008u, + 0x00004dcbu, 0x00004dc7u, 0x00050051u, 0x00000008u, 0x00004dccu, 0x00004dc9u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00004dcdu, 0x00004dc9u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004dceu, 0x00004dc9u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00004dcfu, 0x00004dccu, 0x00004dcdu, 0x00004dceu, 0x00004dcbu, + 0x000300f7u, 0x000042e6u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x000042d7u, 0x000042e6u, 0x000200f8u, + 0x000042d7u, 0x00050050u, 0x0000004du, 0x000042dau, 0x00006dedu, 0x000041b9u, 0x0004007cu, 0x000000a0u, + 0x000042dbu, 0x000042dau, 0x00050051u, 0x00000006u, 0x00004ddbu, 0x000042dbu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004ddcu, 0x00003ff0u, 0x00004ddbu, 0x00050080u, 0x00000006u, 0x00004dddu, 0x00003fedu, + 0x00004ddcu, 0x00050051u, 0x00000006u, 0x00004ddfu, 0x000042dbu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00004de0u, 0x00004ddfu, 0x00000330u, 0x00050080u, 0x00000006u, 0x00004de2u, 0x00004dddu, 0x00004de0u, + 0x000500c7u, 0x00000006u, 0x00004de4u, 0x00004de2u, 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00004de6u, + 0x00004de4u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00004de9u, 0x00004ddbu, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00004deau, 0x00004de9u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00004decu, 0x00004de6u, + 0x00004deau, 0x000500c6u, 0x00000006u, 0x00004deeu, 0x00004decu, 0x0000032cu, 0x00080041u, 0x000001f4u, + 0x00004df1u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004deeu, 0x0004003du, 0x000001afu, + 0x00004df2u, 0x00004df1u, 0x00040071u, 0x00000006u, 0x00004df3u, 0x00004df2u, 0x00060050u, 0x000002b8u, + 0x00004dfbu, 0x00004df3u, 0x00004df3u, 0x00004df3u, 0x000500c2u, 0x000002b8u, 0x00004dfcu, 0x00004dfbu, + 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00004dfeu, 0x00004dfcu, 0x0000856cu, 0x000500c4u, 0x000002b8u, + 0x00004e01u, 0x00004dfeu, 0x0000856du, 0x000500c2u, 0x000002b8u, 0x00004e04u, 0x00004dfeu, 0x0000856eu, + 0x000500c5u, 0x000002b8u, 0x00004e05u, 0x00004e01u, 0x00004e04u, 0x000500c7u, 0x00000006u, 0x00004e07u, + 0x00004df3u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00004e08u, 0x00004e07u, 0x0000068bu, 0x0004007cu, + 0x00000052u, 0x00004e0au, 0x00004e05u, 0x0004007cu, 0x00000008u, 0x00004e0cu, 0x00004e08u, 0x00050051u, + 0x00000008u, 0x00004e0du, 0x00004e0au, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004e0eu, 0x00004e0au, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00004e0fu, 0x00004e0au, 0x00000002u, 0x00070050u, 0x00000009u, + 0x00004e10u, 0x00004e0du, 0x00004e0eu, 0x00004e0fu, 0x00004e0cu, 0x00050050u, 0x0000004du, 0x000042e1u, + 0x00006de5u, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x000042e2u, 0x000042e1u, 0x00050051u, 0x00000006u, + 0x00004e1cu, 0x000042e2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004e1du, 0x00003ff0u, 0x00004e1cu, + 0x00050080u, 0x00000006u, 0x00004e1eu, 0x00003fedu, 0x00004e1du, 0x00050051u, 0x00000006u, 0x00004e20u, + 0x000042e2u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004e21u, 0x00004e20u, 0x00000330u, 0x00050080u, + 0x00000006u, 0x00004e23u, 0x00004e1eu, 0x00004e21u, 0x000500c7u, 0x00000006u, 0x00004e25u, 0x00004e23u, + 0x000006b6u, 0x000500c2u, 0x00000006u, 0x00004e27u, 0x00004e25u, 0x00000196u, 0x000500c7u, 0x00000006u, + 0x00004e2au, 0x00004e1cu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004e2bu, 0x00004e2au, 0x00000196u, + 0x000500c6u, 0x00000006u, 0x00004e2du, 0x00004e27u, 0x00004e2bu, 0x000500c6u, 0x00000006u, 0x00004e2fu, + 0x00004e2du, 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00004e32u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00004e2fu, 0x0004003du, 0x000001afu, 0x00004e33u, 0x00004e32u, 0x00040071u, 0x00000006u, + 0x00004e34u, 0x00004e33u, 0x00060050u, 0x000002b8u, 0x00004e3cu, 0x00004e34u, 0x00004e34u, 0x00004e34u, + 0x000500c2u, 0x000002b8u, 0x00004e3du, 0x00004e3cu, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00004e3fu, + 0x00004e3du, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004e42u, 0x00004e3fu, 0x0000856du, 0x000500c2u, + 0x000002b8u, 0x00004e45u, 0x00004e3fu, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00004e46u, 0x00004e42u, + 0x00004e45u, 0x000500c7u, 0x00000006u, 0x00004e48u, 0x00004e34u, 0x0000032cu, 0x00050084u, 0x00000006u, + 0x00004e49u, 0x00004e48u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00004e4bu, 0x00004e46u, 0x0004007cu, + 0x00000008u, 0x00004e4du, 0x00004e49u, 0x00050051u, 0x00000008u, 0x00004e4eu, 0x00004e4bu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00004e4fu, 0x00004e4bu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004e50u, + 0x00004e4bu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004e51u, 0x00004e4eu, 0x00004e4fu, 0x00004e50u, + 0x00004e4du, 0x000200f9u, 0x000042e6u, 0x000200f8u, 0x000042e6u, 0x000700f5u, 0x00000009u, 0x0000719cu, + 0x000067e2u, 0x000042d0u, 0x00004e51u, 0x000042d7u, 0x000700f5u, 0x00000009u, 0x000070a6u, 0x000067e2u, + 0x000042d0u, 0x00004e10u, 0x000042d7u, 0x000300f7u, 0x000042f0u, 0x00000000u, 0x000400fau, 0x000041c5u, + 0x000042e8u, 0x000042f0u, 0x000200f8u, 0x000042e8u, 0x00050050u, 0x0000004du, 0x000042ebu, 0x00006dedu, + 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x000042ecu, 0x000042ebu, 0x00050051u, 0x00000006u, 0x00004e5du, + 0x000042ecu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004e5eu, 0x00003ff0u, 0x00004e5du, 0x00050080u, + 0x00000006u, 0x00004e5fu, 0x00003fedu, 0x00004e5eu, 0x00050051u, 0x00000006u, 0x00004e61u, 0x000042ecu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00004e62u, 0x00004e61u, 0x00000330u, 0x00050080u, 0x00000006u, + 0x00004e64u, 0x00004e5fu, 0x00004e62u, 0x000500c7u, 0x00000006u, 0x00004e66u, 0x00004e64u, 0x000006b6u, + 0x000500c2u, 0x00000006u, 0x00004e68u, 0x00004e66u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00004e6bu, + 0x00004e5du, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004e6cu, 0x00004e6bu, 0x00000196u, 0x000500c6u, + 0x00000006u, 0x00004e6eu, 0x00004e68u, 0x00004e6cu, 0x000500c6u, 0x00000006u, 0x00004e70u, 0x00004e6eu, + 0x0000032cu, 0x00080041u, 0x000001f4u, 0x00004e73u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00004e70u, 0x0004003du, 0x000001afu, 0x00004e74u, 0x00004e73u, 0x00040071u, 0x00000006u, 0x00004e75u, + 0x00004e74u, 0x00060050u, 0x000002b8u, 0x00004e7du, 0x00004e75u, 0x00004e75u, 0x00004e75u, 0x000500c2u, + 0x000002b8u, 0x00004e7eu, 0x00004e7du, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00004e80u, 0x00004e7eu, + 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004e83u, 0x00004e80u, 0x0000856du, 0x000500c2u, 0x000002b8u, + 0x00004e86u, 0x00004e80u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00004e87u, 0x00004e83u, 0x00004e86u, + 0x000500c7u, 0x00000006u, 0x00004e89u, 0x00004e75u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00004e8au, + 0x00004e89u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00004e8cu, 0x00004e87u, 0x0004007cu, 0x00000008u, + 0x00004e8eu, 0x00004e8au, 0x00050051u, 0x00000008u, 0x00004e8fu, 0x00004e8cu, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00004e90u, 0x00004e8cu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004e91u, 0x00004e8cu, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00004e92u, 0x00004e8fu, 0x00004e90u, 0x00004e91u, 0x00004e8eu, + 0x000200f9u, 0x000042f0u, 0x000200f8u, 0x000042f0u, 0x000700f5u, 0x00000009u, 0x00007291u, 0x000067e2u, + 0x000042e6u, 0x00004e92u, 0x000042e8u, 0x000200f9u, 0x00004312u, 0x000200f8u, 0x000042afu, 0x0004007cu, + 0x000000a0u, 0x000042b1u, 0x00006e0cu, 0x00050051u, 0x00000006u, 0x00004d09u, 0x000042b1u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00004d0au, 0x00003ff0u, 0x00004d09u, 0x00050080u, 0x00000006u, 0x00004d0bu, + 0x00003fedu, 0x00004d0au, 0x00050051u, 0x00000006u, 0x00004d0du, 0x000042b1u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00004d0fu, 0x00004d0bu, 0x00004d0du, 0x000500c7u, 0x00000006u, 0x00004d11u, 0x00004d0fu, + 0x000006b6u, 0x000500c7u, 0x00000006u, 0x00004d15u, 0x00004d09u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00004d16u, 0x00004d15u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004d18u, 0x00004d11u, 0x00004d16u, + 0x000500c6u, 0x00000006u, 0x00004d1au, 0x00004d18u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00004d1du, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004d1au, 0x0004003du, 0x000001adu, 0x00004d1eu, + 0x00004d1du, 0x00040071u, 0x00000006u, 0x00004d1fu, 0x00004d1eu, 0x0004007cu, 0x00000008u, 0x00004d21u, + 0x00004d1fu, 0x00070050u, 0x00000009u, 0x00004d22u, 0x00004d21u, 0x00004d21u, 0x00004d21u, 0x00004d21u, + 0x000300f7u, 0x000042c5u, 0x00000000u, 0x000400fau, 0x00001a60u, 0x000042b6u, 0x000042c5u, 0x000200f8u, + 0x000042b6u, 0x00050050u, 0x0000004du, 0x000042b9u, 0x00006dedu, 0x000041b9u, 0x0004007cu, 0x000000a0u, + 0x000042bau, 0x000042b9u, 0x00050051u, 0x00000006u, 0x00004d2du, 0x000042bau, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004d2eu, 0x00003ff0u, 0x00004d2du, 0x00050080u, 0x00000006u, 0x00004d2fu, 0x00003fedu, + 0x00004d2eu, 0x00050051u, 0x00000006u, 0x00004d31u, 0x000042bau, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00004d33u, 0x00004d2fu, 0x00004d31u, 0x000500c7u, 0x00000006u, 0x00004d35u, 0x00004d33u, 0x000006b6u, + 0x000500c7u, 0x00000006u, 0x00004d39u, 0x00004d2du, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004d3au, + 0x00004d39u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004d3cu, 0x00004d35u, 0x00004d3au, 0x000500c6u, + 0x00000006u, 0x00004d3eu, 0x00004d3cu, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00004d41u, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004d3eu, 0x0004003du, 0x000001adu, 0x00004d42u, 0x00004d41u, + 0x00040071u, 0x00000006u, 0x00004d43u, 0x00004d42u, 0x0004007cu, 0x00000008u, 0x00004d45u, 0x00004d43u, + 0x00070050u, 0x00000009u, 0x00004d46u, 0x00004d45u, 0x00004d45u, 0x00004d45u, 0x00004d45u, 0x00050050u, + 0x0000004du, 0x000042c0u, 0x00006de5u, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x000042c1u, 0x000042c0u, + 0x00050051u, 0x00000006u, 0x00004d51u, 0x000042c1u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004d52u, + 0x00003ff0u, 0x00004d51u, 0x00050080u, 0x00000006u, 0x00004d53u, 0x00003fedu, 0x00004d52u, 0x00050051u, + 0x00000006u, 0x00004d55u, 0x000042c1u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004d57u, 0x00004d53u, + 0x00004d55u, 0x000500c7u, 0x00000006u, 0x00004d59u, 0x00004d57u, 0x000006b6u, 0x000500c7u, 0x00000006u, + 0x00004d5du, 0x00004d51u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004d5eu, 0x00004d5du, 0x00000199u, + 0x000500c6u, 0x00000006u, 0x00004d60u, 0x00004d59u, 0x00004d5eu, 0x000500c6u, 0x00000006u, 0x00004d62u, + 0x00004d60u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00004d65u, 0x000006d1u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00004d62u, 0x0004003du, 0x000001adu, 0x00004d66u, 0x00004d65u, 0x00040071u, 0x00000006u, + 0x00004d67u, 0x00004d66u, 0x0004007cu, 0x00000008u, 0x00004d69u, 0x00004d67u, 0x00070050u, 0x00000009u, + 0x00004d6au, 0x00004d69u, 0x00004d69u, 0x00004d69u, 0x00004d69u, 0x000200f9u, 0x000042c5u, 0x000200f8u, + 0x000042c5u, 0x000700f5u, 0x00000009u, 0x0000719au, 0x000067e2u, 0x000042afu, 0x00004d6au, 0x000042b6u, + 0x000700f5u, 0x00000009u, 0x000070a4u, 0x000067e2u, 0x000042afu, 0x00004d46u, 0x000042b6u, 0x000300f7u, + 0x000042cfu, 0x00000000u, 0x000400fau, 0x000041c5u, 0x000042c7u, 0x000042cfu, 0x000200f8u, 0x000042c7u, + 0x00050050u, 0x0000004du, 0x000042cau, 0x00006dedu, 0x000041bbu, 0x0004007cu, 0x000000a0u, 0x000042cbu, + 0x000042cau, 0x00050051u, 0x00000006u, 0x00004d75u, 0x000042cbu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004d76u, 0x00003ff0u, 0x00004d75u, 0x00050080u, 0x00000006u, 0x00004d77u, 0x00003fedu, 0x00004d76u, + 0x00050051u, 0x00000006u, 0x00004d79u, 0x000042cbu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004d7bu, + 0x00004d77u, 0x00004d79u, 0x000500c7u, 0x00000006u, 0x00004d7du, 0x00004d7bu, 0x000006b6u, 0x000500c7u, + 0x00000006u, 0x00004d81u, 0x00004d75u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004d82u, 0x00004d81u, + 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004d84u, 0x00004d7du, 0x00004d82u, 0x000500c6u, 0x00000006u, + 0x00004d86u, 0x00004d84u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00004d89u, 0x000006d1u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00004d86u, 0x0004003du, 0x000001adu, 0x00004d8au, 0x00004d89u, 0x00040071u, + 0x00000006u, 0x00004d8bu, 0x00004d8au, 0x0004007cu, 0x00000008u, 0x00004d8du, 0x00004d8bu, 0x00070050u, + 0x00000009u, 0x00004d8eu, 0x00004d8du, 0x00004d8du, 0x00004d8du, 0x00004d8du, 0x000200f9u, 0x000042cfu, + 0x000200f8u, 0x000042cfu, 0x000700f5u, 0x00000009u, 0x0000728fu, 0x000067e2u, 0x000042c5u, 0x00004d8eu, + 0x000042c7u, 0x000200f9u, 0x00004312u, 0x000200f8u, 0x0000428eu, 0x0004007cu, 0x000000a0u, 0x00004290u, + 0x00006e0cu, 0x00050051u, 0x00000006u, 0x00004c3eu, 0x00004290u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004c3fu, 0x00003ff0u, 0x00004c3eu, 0x00050080u, 0x00000006u, 0x00004c40u, 0x00003fedu, 0x00004c3fu, + 0x00050051u, 0x00000006u, 0x00004c42u, 0x00004290u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004c43u, + 0x00004c42u, 0x00000196u, 0x00050080u, 0x00000006u, 0x00004c45u, 0x00004c40u, 0x00004c43u, 0x000500c7u, + 0x00000006u, 0x00004c47u, 0x00004c45u, 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00004c4au, 0x00004c42u, + 0x000500c7u, 0x00000006u, 0x00004c4bu, 0x00004c4au, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00004c4cu, + 0x00004c4bu, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00004c50u, 0x00004c3eu, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00004c51u, 0x00004c50u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004c53u, 0x00004c47u, + 0x00004c51u, 0x000500c6u, 0x00000006u, 0x00004c55u, 0x00004c53u, 0x00000333u, 0x00080041u, 0x000001fbu, + 0x00004c58u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004c55u, 0x0004003du, 0x000001adu, + 0x00004c59u, 0x00004c58u, 0x00040071u, 0x00000006u, 0x00004c5au, 0x00004c59u, 0x000500c2u, 0x00000006u, + 0x00004c5du, 0x00004c5au, 0x00004c4cu, 0x000500c7u, 0x00000006u, 0x00004c5eu, 0x00004c5du, 0x000006dau, + 0x000500c4u, 0x00000006u, 0x00004c60u, 0x00004c5eu, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00004c62u, + 0x00004c5eu, 0x00004c60u, 0x0004007cu, 0x00000008u, 0x00004c64u, 0x00004c62u, 0x00070050u, 0x00000009u, + 0x00004c65u, 0x00004c64u, 0x00004c64u, 0x00004c64u, 0x00004c64u, 0x000300f7u, 0x000042a4u, 0x00000000u, + 0x000400fau, 0x00001a60u, 0x00004295u, 0x000042a4u, 0x000200f8u, 0x00004295u, 0x00050050u, 0x0000004du, + 0x00004298u, 0x00006dedu, 0x000041b9u, 0x0004007cu, 0x000000a0u, 0x00004299u, 0x00004298u, 0x00050051u, + 0x00000006u, 0x00004c71u, 0x00004299u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004c72u, 0x00003ff0u, + 0x00004c71u, 0x00050080u, 0x00000006u, 0x00004c73u, 0x00003fedu, 0x00004c72u, 0x00050051u, 0x00000006u, + 0x00004c75u, 0x00004299u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004c76u, 0x00004c75u, 0x00000196u, + 0x00050080u, 0x00000006u, 0x00004c78u, 0x00004c73u, 0x00004c76u, 0x000500c7u, 0x00000006u, 0x00004c7au, + 0x00004c78u, 0x000006b6u, 0x000400c8u, 0x00000006u, 0x00004c7du, 0x00004c75u, 0x000500c7u, 0x00000006u, + 0x00004c7eu, 0x00004c7du, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00004c7fu, 0x00004c7eu, 0x000006beu, + 0x000500c7u, 0x00000006u, 0x00004c83u, 0x00004c71u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004c84u, + 0x00004c83u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004c86u, 0x00004c7au, 0x00004c84u, 0x000500c6u, + 0x00000006u, 0x00004c88u, 0x00004c86u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00004c8bu, 0x000006d1u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004c88u, 0x0004003du, 0x000001adu, 0x00004c8cu, 0x00004c8bu, + 0x00040071u, 0x00000006u, 0x00004c8du, 0x00004c8cu, 0x000500c2u, 0x00000006u, 0x00004c90u, 0x00004c8du, + 0x00004c7fu, 0x000500c7u, 0x00000006u, 0x00004c91u, 0x00004c90u, 0x000006dau, 0x000500c4u, 0x00000006u, + 0x00004c93u, 0x00004c91u, 0x0000019fu, 0x000500c5u, 0x00000006u, 0x00004c95u, 0x00004c91u, 0x00004c93u, + 0x0004007cu, 0x00000008u, 0x00004c97u, 0x00004c95u, 0x00070050u, 0x00000009u, 0x00004c98u, 0x00004c97u, + 0x00004c97u, 0x00004c97u, 0x00004c97u, 0x00050050u, 0x0000004du, 0x0000429fu, 0x00006de5u, 0x000041bbu, + 0x0004007cu, 0x000000a0u, 0x000042a0u, 0x0000429fu, 0x00050051u, 0x00000006u, 0x00004ca4u, 0x000042a0u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004ca5u, 0x00003ff0u, 0x00004ca4u, 0x00050080u, 0x00000006u, + 0x00004ca6u, 0x00003fedu, 0x00004ca5u, 0x00050051u, 0x00000006u, 0x00004ca8u, 0x000042a0u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00004ca9u, 0x00004ca8u, 0x00000196u, 0x00050080u, 0x00000006u, 0x00004cabu, + 0x00004ca6u, 0x00004ca9u, 0x000500c7u, 0x00000006u, 0x00004cadu, 0x00004cabu, 0x000006b6u, 0x000400c8u, + 0x00000006u, 0x00004cb0u, 0x00004ca8u, 0x000500c7u, 0x00000006u, 0x00004cb1u, 0x00004cb0u, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x00004cb2u, 0x00004cb1u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00004cb6u, + 0x00004ca4u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004cb7u, 0x00004cb6u, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x00004cb9u, 0x00004cadu, 0x00004cb7u, 0x000500c6u, 0x00000006u, 0x00004cbbu, 0x00004cb9u, + 0x00000333u, 0x00080041u, 0x000001fbu, 0x00004cbeu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00004cbbu, 0x0004003du, 0x000001adu, 0x00004cbfu, 0x00004cbeu, 0x00040071u, 0x00000006u, 0x00004cc0u, + 0x00004cbfu, 0x000500c2u, 0x00000006u, 0x00004cc3u, 0x00004cc0u, 0x00004cb2u, 0x000500c7u, 0x00000006u, + 0x00004cc4u, 0x00004cc3u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00004cc6u, 0x00004cc4u, 0x0000019fu, + 0x000500c5u, 0x00000006u, 0x00004cc8u, 0x00004cc4u, 0x00004cc6u, 0x0004007cu, 0x00000008u, 0x00004ccau, + 0x00004cc8u, 0x00070050u, 0x00000009u, 0x00004ccbu, 0x00004ccau, 0x00004ccau, 0x00004ccau, 0x00004ccau, + 0x000200f9u, 0x000042a4u, 0x000200f8u, 0x000042a4u, 0x000700f5u, 0x00000009u, 0x00007198u, 0x000067e2u, + 0x0000428eu, 0x00004ccbu, 0x00004295u, 0x000700f5u, 0x00000009u, 0x000070a2u, 0x000067e2u, 0x0000428eu, + 0x00004c98u, 0x00004295u, 0x000300f7u, 0x000042aeu, 0x00000000u, 0x000400fau, 0x000041c5u, 0x000042a6u, + 0x000042aeu, 0x000200f8u, 0x000042a6u, 0x00050050u, 0x0000004du, 0x000042a9u, 0x00006dedu, 0x000041bbu, + 0x0004007cu, 0x000000a0u, 0x000042aau, 0x000042a9u, 0x00050051u, 0x00000006u, 0x00004cd7u, 0x000042aau, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004cd8u, 0x00003ff0u, 0x00004cd7u, 0x00050080u, 0x00000006u, + 0x00004cd9u, 0x00003fedu, 0x00004cd8u, 0x00050051u, 0x00000006u, 0x00004cdbu, 0x000042aau, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00004cdcu, 0x00004cdbu, 0x00000196u, 0x00050080u, 0x00000006u, 0x00004cdeu, + 0x00004cd9u, 0x00004cdcu, 0x000500c7u, 0x00000006u, 0x00004ce0u, 0x00004cdeu, 0x000006b6u, 0x000400c8u, + 0x00000006u, 0x00004ce3u, 0x00004cdbu, 0x000500c7u, 0x00000006u, 0x00004ce4u, 0x00004ce3u, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x00004ce5u, 0x00004ce4u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00004ce9u, + 0x00004cd7u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004ceau, 0x00004ce9u, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x00004cecu, 0x00004ce0u, 0x00004ceau, 0x000500c6u, 0x00000006u, 0x00004ceeu, 0x00004cecu, + 0x00000333u, 0x00080041u, 0x000001fbu, 0x00004cf1u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00004ceeu, 0x0004003du, 0x000001adu, 0x00004cf2u, 0x00004cf1u, 0x00040071u, 0x00000006u, 0x00004cf3u, + 0x00004cf2u, 0x000500c2u, 0x00000006u, 0x00004cf6u, 0x00004cf3u, 0x00004ce5u, 0x000500c7u, 0x00000006u, + 0x00004cf7u, 0x00004cf6u, 0x000006dau, 0x000500c4u, 0x00000006u, 0x00004cf9u, 0x00004cf7u, 0x0000019fu, + 0x000500c5u, 0x00000006u, 0x00004cfbu, 0x00004cf7u, 0x00004cf9u, 0x0004007cu, 0x00000008u, 0x00004cfdu, + 0x00004cfbu, 0x00070050u, 0x00000009u, 0x00004cfeu, 0x00004cfdu, 0x00004cfdu, 0x00004cfdu, 0x00004cfdu, + 0x000200f9u, 0x000042aeu, 0x000200f8u, 0x000042aeu, 0x000700f5u, 0x00000009u, 0x0000728du, 0x000067e2u, + 0x000042a4u, 0x00004cfeu, 0x000042a6u, 0x000200f9u, 0x00004312u, 0x000200f8u, 0x00004312u, 0x000d00f5u, + 0x00000009u, 0x0000728cu, 0x000067e2u, 0x0000428bu, 0x0000728du, 0x000042aeu, 0x0000728fu, 0x000042cfu, + 0x00007291u, 0x000042f0u, 0x00007293u, 0x00004311u, 0x000d00f5u, 0x00000009u, 0x00007196u, 0x000067e2u, + 0x0000428bu, 0x00007198u, 0x000042aeu, 0x0000719au, 0x000042cfu, 0x0000719cu, 0x000042f0u, 0x0000719eu, + 0x00004311u, 0x000d00f5u, 0x00000009u, 0x000070a0u, 0x000067e2u, 0x0000428bu, 0x000070a2u, 0x000042aeu, + 0x000070a4u, 0x000042cfu, 0x000070a6u, 0x000042f0u, 0x000070a8u, 0x00004311u, 0x000d00f5u, 0x00000009u, + 0x00006f35u, 0x000067e2u, 0x0000428bu, 0x00004c65u, 0x000042aeu, 0x00004d22u, 0x000042cfu, 0x00004dcfu, + 0x000042f0u, 0x00004ec9u, 0x00004311u, 0x000200f9u, 0x000044a3u, 0x000200f8u, 0x000044a3u, 0x000f00f5u, + 0x00000009u, 0x0000728bu, 0x000067e2u, 0x00004288u, 0x0000728cu, 0x00004312u, 0x00007295u, 0x00004340u, + 0x00007296u, 0x000043b3u, 0x0000729du, 0x0000443bu, 0x000072a6u, 0x000044a2u, 0x000f00f5u, 0x00000009u, + 0x00007195u, 0x000067e2u, 0x00004288u, 0x00007196u, 0x00004312u, 0x0000719fu, 0x00004340u, 0x000071a0u, + 0x000043b3u, 0x000071a7u, 0x0000443bu, 0x000071b0u, 0x000044a2u, 0x000f00f5u, 0x00000009u, 0x0000709fu, + 0x000067e2u, 0x00004288u, 0x000070a0u, 0x00004312u, 0x000070a9u, 0x00004340u, 0x000070aau, 0x000043b3u, + 0x000070b1u, 0x0000443bu, 0x000070bau, 0x000044a2u, 0x000f00f5u, 0x00000009u, 0x00006f34u, 0x000067e2u, + 0x00004288u, 0x00006f35u, 0x00004312u, 0x00004fbau, 0x00004340u, 0x00006f3fu, 0x000043b3u, 0x00006f46u, + 0x0000443bu, 0x00006f4fu, 0x000044a2u, 0x000200f9u, 0x000044a4u, 0x000200f8u, 0x000041e2u, 0x000400a8u, + 0x00000058u, 0x000041e4u, 0x00001a60u, 0x000300f7u, 0x000041ebu, 0x00000000u, 0x000400fau, 0x000041e4u, + 0x000041e5u, 0x000041ebu, 0x000200f8u, 0x000041e5u, 0x00050050u, 0x0000004du, 0x000041e8u, 0x00006de5u, + 0x000041b9u, 0x000200f9u, 0x000041ebu, 0x000200f8u, 0x000041ebu, 0x000700f5u, 0x0000004du, 0x00006e32u, + 0x00006e0cu, 0x000041e2u, 0x000041e8u, 0x000041e5u, 0x000600a9u, 0x00000008u, 0x000085a6u, 0x000041e4u, + 0x000041b9u, 0x000041bbu, 0x000600a9u, 0x00000008u, 0x000085a7u, 0x000041e4u, 0x00006de5u, 0x00006dedu, + 0x000300f7u, 0x00004287u, 0x00000000u, 0x000b00fbu, 0x000085a3u, 0x00004287u, 0x00000000u, 0x000041eeu, + 0x00000002u, 0x000041eeu, 0x00000003u, 0x000041eeu, 0x00000004u, 0x000041eeu, 0x000200f8u, 0x000041eeu, + 0x000600a9u, 0x00000008u, 0x000041f2u, 0x000041c7u, 0x00000199u, 0x00000196u, 0x0004007cu, 0x00000006u, + 0x000041f3u, 0x000041f2u, 0x000300f7u, 0x00004286u, 0x00000000u, 0x000700fbu, 0x000085a4u, 0x000041f6u, + 0x00000000u, 0x00004222u, 0x00000001u, 0x0000425au, 0x000200f8u, 0x0000425au, 0x0004007cu, 0x000000a0u, + 0x0000425cu, 0x00006e32u, 0x000600a9u, 0x00000008u, 0x0000425eu, 0x000041cfu, 0x0000019cu, 0x00000187u, + 0x0004007cu, 0x00000006u, 0x0000425fu, 0x0000425eu, 0x00050051u, 0x00000006u, 0x00004aa5u, 0x0000425cu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004aa6u, 0x00003ff0u, 0x00004aa5u, 0x00050080u, 0x00000006u, + 0x00004aa7u, 0x00003fedu, 0x00004aa6u, 0x00050051u, 0x00000006u, 0x00004aa9u, 0x0000425cu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00004aabu, 0x00004aa7u, 0x00004aa9u, 0x000500c7u, 0x00000006u, 0x00004aadu, + 0x00004aabu, 0x00000769u, 0x000500c7u, 0x00000006u, 0x00004ab1u, 0x00004aa5u, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00004ab2u, 0x00004ab1u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004ab4u, 0x00004aadu, + 0x00004ab2u, 0x000500c6u, 0x00000006u, 0x00004ab6u, 0x00004ab4u, 0x00000333u, 0x00080041u, 0x000001fbu, + 0x00004ab9u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004ab6u, 0x0004003du, 0x000001adu, + 0x00004abau, 0x00004ab9u, 0x00040071u, 0x00000006u, 0x00004abbu, 0x00004abau, 0x000500c4u, 0x00000006u, + 0x00004abdu, 0x00004abbu, 0x00000199u, 0x00050080u, 0x00000006u, 0x00004abfu, 0x00004abdu, 0x0000425fu, + 0x000500c6u, 0x00000006u, 0x00004ac2u, 0x00004abfu, 0x000041f3u, 0x000500c5u, 0x00000006u, 0x00004ac5u, + 0x0000079au, 0x00004ac2u, 0x00080041u, 0x000001f4u, 0x00004ac6u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00004ac5u, 0x0004003du, 0x000001afu, 0x00004ac7u, 0x00004ac6u, 0x00040071u, 0x00000006u, + 0x00004ac8u, 0x00004ac7u, 0x000300f7u, 0x00004ad0u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00004acau, + 0x00004acdu, 0x000200f8u, 0x00004acdu, 0x00060050u, 0x000002b8u, 0x00004ae8u, 0x00004ac8u, 0x00004ac8u, + 0x00004ac8u, 0x000500c2u, 0x000002b8u, 0x00004ae9u, 0x00004ae8u, 0x0000067cu, 0x000500c7u, 0x000002b8u, + 0x00004aebu, 0x00004ae9u, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004aeeu, 0x00004aebu, 0x0000856du, + 0x000500c2u, 0x000002b8u, 0x00004af1u, 0x00004aebu, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00004af2u, + 0x00004aeeu, 0x00004af1u, 0x000500c7u, 0x00000006u, 0x00004af4u, 0x00004ac8u, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00004af5u, 0x00004af4u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00004af7u, 0x00004af2u, + 0x0004007cu, 0x00000008u, 0x00004af9u, 0x00004af5u, 0x00050051u, 0x00000008u, 0x00004afau, 0x00004af7u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00004afbu, 0x00004af7u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00004afcu, 0x00004af7u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004afdu, 0x00004afau, 0x00004afbu, + 0x00004afcu, 0x00004af9u, 0x000200f9u, 0x00004ad0u, 0x000200f8u, 0x00004acau, 0x000500c2u, 0x00000006u, + 0x00004ad7u, 0x00004ac8u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00004ad9u, 0x00004ac8u, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x00004adbu, 0x00004ad7u, 0x0004007cu, 0x00000008u, 0x00004ae1u, 0x00004ad9u, + 0x00070050u, 0x00000009u, 0x00004ae2u, 0x00004adbu, 0x00004adbu, 0x00004adbu, 0x00004ae1u, 0x000200f9u, + 0x00004ad0u, 0x000200f8u, 0x00004ad0u, 0x000700f5u, 0x00000009u, 0x00006e33u, 0x00004ae2u, 0x00004acau, + 0x00004afdu, 0x00004acdu, 0x000300f7u, 0x00004279u, 0x00000000u, 0x000400fau, 0x00001a9fu, 0x00004266u, + 0x00004279u, 0x000200f8u, 0x00004266u, 0x00050050u, 0x0000004du, 0x00004269u, 0x000085a7u, 0x000041b9u, + 0x0004007cu, 0x000000a0u, 0x0000426au, 0x00004269u, 0x00050051u, 0x00000006u, 0x00004b0cu, 0x0000426au, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004b0du, 0x00003ff0u, 0x00004b0cu, 0x00050080u, 0x00000006u, + 0x00004b0eu, 0x00003fedu, 0x00004b0du, 0x00050051u, 0x00000006u, 0x00004b10u, 0x0000426au, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00004b12u, 0x00004b0eu, 0x00004b10u, 0x000500c7u, 0x00000006u, 0x00004b14u, + 0x00004b12u, 0x00000769u, 0x000500c7u, 0x00000006u, 0x00004b18u, 0x00004b0cu, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00004b19u, 0x00004b18u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004b1bu, 0x00004b14u, + 0x00004b19u, 0x000500c6u, 0x00000006u, 0x00004b1du, 0x00004b1bu, 0x00000333u, 0x00080041u, 0x000001fbu, + 0x00004b20u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004b1du, 0x0004003du, 0x000001adu, + 0x00004b21u, 0x00004b20u, 0x00040071u, 0x00000006u, 0x00004b22u, 0x00004b21u, 0x000500c4u, 0x00000006u, + 0x00004b24u, 0x00004b22u, 0x00000199u, 0x00050080u, 0x00000006u, 0x00004b26u, 0x00004b24u, 0x0000032cu, + 0x000500c6u, 0x00000006u, 0x00004b29u, 0x00004b26u, 0x000041f3u, 0x000500c5u, 0x00000006u, 0x00004b2cu, + 0x0000079au, 0x00004b29u, 0x00080041u, 0x000001f4u, 0x00004b2du, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00004b2cu, 0x0004003du, 0x000001afu, 0x00004b2eu, 0x00004b2du, 0x00040071u, 0x00000006u, + 0x00004b2fu, 0x00004b2eu, 0x000300f7u, 0x00004b37u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00004b31u, + 0x00004b34u, 0x000200f8u, 0x00004b34u, 0x00060050u, 0x000002b8u, 0x00004b4fu, 0x00004b2fu, 0x00004b2fu, + 0x00004b2fu, 0x000500c2u, 0x000002b8u, 0x00004b50u, 0x00004b4fu, 0x0000067cu, 0x000500c7u, 0x000002b8u, + 0x00004b52u, 0x00004b50u, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004b55u, 0x00004b52u, 0x0000856du, + 0x000500c2u, 0x000002b8u, 0x00004b58u, 0x00004b52u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00004b59u, + 0x00004b55u, 0x00004b58u, 0x000500c7u, 0x00000006u, 0x00004b5bu, 0x00004b2fu, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00004b5cu, 0x00004b5bu, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00004b5eu, 0x00004b59u, + 0x0004007cu, 0x00000008u, 0x00004b60u, 0x00004b5cu, 0x00050051u, 0x00000008u, 0x00004b61u, 0x00004b5eu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00004b62u, 0x00004b5eu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00004b63u, 0x00004b5eu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004b64u, 0x00004b61u, 0x00004b62u, + 0x00004b63u, 0x00004b60u, 0x000200f9u, 0x00004b37u, 0x000200f8u, 0x00004b31u, 0x000500c2u, 0x00000006u, + 0x00004b3eu, 0x00004b2fu, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00004b40u, 0x00004b2fu, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x00004b42u, 0x00004b3eu, 0x0004007cu, 0x00000008u, 0x00004b48u, 0x00004b40u, + 0x00070050u, 0x00000009u, 0x00004b49u, 0x00004b42u, 0x00004b42u, 0x00004b42u, 0x00004b48u, 0x000200f9u, + 0x00004b37u, 0x000200f8u, 0x00004b37u, 0x000700f5u, 0x00000009u, 0x00006e3au, 0x00004b49u, 0x00004b31u, + 0x00004b64u, 0x00004b34u, 0x00050050u, 0x0000004du, 0x00004272u, 0x00006de5u, 0x000085a6u, 0x0004007cu, + 0x000000a0u, 0x00004273u, 0x00004272u, 0x00050051u, 0x00000006u, 0x00004b73u, 0x00004273u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00004b74u, 0x00003ff0u, 0x00004b73u, 0x00050080u, 0x00000006u, 0x00004b75u, + 0x00003fedu, 0x00004b74u, 0x00050051u, 0x00000006u, 0x00004b77u, 0x00004273u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00004b79u, 0x00004b75u, 0x00004b77u, 0x000500c7u, 0x00000006u, 0x00004b7bu, 0x00004b79u, + 0x00000769u, 0x000500c7u, 0x00000006u, 0x00004b7fu, 0x00004b73u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00004b80u, 0x00004b7fu, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004b82u, 0x00004b7bu, 0x00004b80u, + 0x000500c6u, 0x00000006u, 0x00004b84u, 0x00004b82u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00004b87u, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004b84u, 0x0004003du, 0x000001adu, 0x00004b88u, + 0x00004b87u, 0x00040071u, 0x00000006u, 0x00004b89u, 0x00004b88u, 0x000500c4u, 0x00000006u, 0x00004b8bu, + 0x00004b89u, 0x00000199u, 0x00050080u, 0x00000006u, 0x00004b8du, 0x00004b8bu, 0x00000330u, 0x000500c6u, + 0x00000006u, 0x00004b90u, 0x00004b8du, 0x000041f3u, 0x000500c5u, 0x00000006u, 0x00004b93u, 0x0000079au, + 0x00004b90u, 0x00080041u, 0x000001f4u, 0x00004b94u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00004b93u, 0x0004003du, 0x000001afu, 0x00004b95u, 0x00004b94u, 0x00040071u, 0x00000006u, 0x00004b96u, + 0x00004b95u, 0x000300f7u, 0x00004b9eu, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00004b98u, 0x00004b9bu, + 0x000200f8u, 0x00004b9bu, 0x00060050u, 0x000002b8u, 0x00004bb6u, 0x00004b96u, 0x00004b96u, 0x00004b96u, + 0x000500c2u, 0x000002b8u, 0x00004bb7u, 0x00004bb6u, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00004bb9u, + 0x00004bb7u, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004bbcu, 0x00004bb9u, 0x0000856du, 0x000500c2u, + 0x000002b8u, 0x00004bbfu, 0x00004bb9u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00004bc0u, 0x00004bbcu, + 0x00004bbfu, 0x000500c7u, 0x00000006u, 0x00004bc2u, 0x00004b96u, 0x0000032cu, 0x00050084u, 0x00000006u, + 0x00004bc3u, 0x00004bc2u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00004bc5u, 0x00004bc0u, 0x0004007cu, + 0x00000008u, 0x00004bc7u, 0x00004bc3u, 0x00050051u, 0x00000008u, 0x00004bc8u, 0x00004bc5u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00004bc9u, 0x00004bc5u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004bcau, + 0x00004bc5u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004bcbu, 0x00004bc8u, 0x00004bc9u, 0x00004bcau, + 0x00004bc7u, 0x000200f9u, 0x00004b9eu, 0x000200f8u, 0x00004b98u, 0x000500c2u, 0x00000006u, 0x00004ba5u, + 0x00004b96u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00004ba7u, 0x00004b96u, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00004ba9u, 0x00004ba5u, 0x0004007cu, 0x00000008u, 0x00004bafu, 0x00004ba7u, 0x00070050u, + 0x00000009u, 0x00004bb0u, 0x00004ba9u, 0x00004ba9u, 0x00004ba9u, 0x00004bafu, 0x000200f9u, 0x00004b9eu, + 0x000200f8u, 0x00004b9eu, 0x000700f5u, 0x00000009u, 0x00006e3fu, 0x00004bb0u, 0x00004b98u, 0x00004bcbu, + 0x00004b9bu, 0x000200f9u, 0x00004279u, 0x000200f8u, 0x00004279u, 0x000700f5u, 0x00000009u, 0x00007192u, + 0x000067e2u, 0x00004ad0u, 0x00006e3fu, 0x00004b9eu, 0x000700f5u, 0x00000009u, 0x0000709bu, 0x000067e2u, + 0x00004ad0u, 0x00006e3au, 0x00004b9eu, 0x000300f7u, 0x00004285u, 0x00000000u, 0x000400fau, 0x000041c5u, + 0x0000427bu, 0x00004285u, 0x000200f8u, 0x0000427bu, 0x00050050u, 0x0000004du, 0x0000427eu, 0x000085a7u, + 0x000085a6u, 0x0004007cu, 0x000000a0u, 0x0000427fu, 0x0000427eu, 0x00050051u, 0x00000006u, 0x00004bdau, + 0x0000427fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004bdbu, 0x00003ff0u, 0x00004bdau, 0x00050080u, + 0x00000006u, 0x00004bdcu, 0x00003fedu, 0x00004bdbu, 0x00050051u, 0x00000006u, 0x00004bdeu, 0x0000427fu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00004be0u, 0x00004bdcu, 0x00004bdeu, 0x000500c7u, 0x00000006u, + 0x00004be2u, 0x00004be0u, 0x00000769u, 0x000500c7u, 0x00000006u, 0x00004be6u, 0x00004bdau, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x00004be7u, 0x00004be6u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004be9u, + 0x00004be2u, 0x00004be7u, 0x000500c6u, 0x00000006u, 0x00004bebu, 0x00004be9u, 0x00000333u, 0x00080041u, + 0x000001fbu, 0x00004beeu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004bebu, 0x0004003du, + 0x000001adu, 0x00004befu, 0x00004beeu, 0x00040071u, 0x00000006u, 0x00004bf0u, 0x00004befu, 0x000500c4u, + 0x00000006u, 0x00004bf2u, 0x00004bf0u, 0x00000199u, 0x00050080u, 0x00000006u, 0x00004bf4u, 0x00004bf2u, + 0x00000333u, 0x000500c6u, 0x00000006u, 0x00004bf7u, 0x00004bf4u, 0x000041f3u, 0x000500c5u, 0x00000006u, + 0x00004bfau, 0x0000079au, 0x00004bf7u, 0x00080041u, 0x000001f4u, 0x00004bfbu, 0x00000798u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00004bfau, 0x0004003du, 0x000001afu, 0x00004bfcu, 0x00004bfbu, 0x00040071u, + 0x00000006u, 0x00004bfdu, 0x00004bfcu, 0x000300f7u, 0x00004c05u, 0x00000000u, 0x000400fau, 0x00001a5du, + 0x00004bffu, 0x00004c02u, 0x000200f8u, 0x00004c02u, 0x00060050u, 0x000002b8u, 0x00004c1du, 0x00004bfdu, + 0x00004bfdu, 0x00004bfdu, 0x000500c2u, 0x000002b8u, 0x00004c1eu, 0x00004c1du, 0x0000067cu, 0x000500c7u, + 0x000002b8u, 0x00004c20u, 0x00004c1eu, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004c23u, 0x00004c20u, + 0x0000856du, 0x000500c2u, 0x000002b8u, 0x00004c26u, 0x00004c20u, 0x0000856eu, 0x000500c5u, 0x000002b8u, + 0x00004c27u, 0x00004c23u, 0x00004c26u, 0x000500c7u, 0x00000006u, 0x00004c29u, 0x00004bfdu, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x00004c2au, 0x00004c29u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00004c2cu, + 0x00004c27u, 0x0004007cu, 0x00000008u, 0x00004c2eu, 0x00004c2au, 0x00050051u, 0x00000008u, 0x00004c2fu, + 0x00004c2cu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004c30u, 0x00004c2cu, 0x00000001u, 0x00050051u, + 0x00000008u, 0x00004c31u, 0x00004c2cu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004c32u, 0x00004c2fu, + 0x00004c30u, 0x00004c31u, 0x00004c2eu, 0x000200f9u, 0x00004c05u, 0x000200f8u, 0x00004bffu, 0x000500c2u, + 0x00000006u, 0x00004c0cu, 0x00004bfdu, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00004c0eu, 0x00004bfdu, + 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00004c10u, 0x00004c0cu, 0x0004007cu, 0x00000008u, 0x00004c16u, + 0x00004c0eu, 0x00070050u, 0x00000009u, 0x00004c17u, 0x00004c10u, 0x00004c10u, 0x00004c10u, 0x00004c16u, + 0x000200f9u, 0x00004c05u, 0x000200f8u, 0x00004c05u, 0x000700f5u, 0x00000009u, 0x00006e45u, 0x00004c17u, + 0x00004bffu, 0x00004c32u, 0x00004c02u, 0x000200f9u, 0x00004285u, 0x000200f8u, 0x00004285u, 0x000700f5u, + 0x00000009u, 0x00007286u, 0x000067e2u, 0x00004279u, 0x00006e45u, 0x00004c05u, 0x000200f9u, 0x00004286u, + 0x000200f8u, 0x00004222u, 0x0004007cu, 0x000000a0u, 0x00004224u, 0x00006e32u, 0x0004007cu, 0x00000006u, + 0x00004227u, 0x00003fffu, 0x000600a9u, 0x00000008u, 0x00004229u, 0x000041cfu, 0x0000019cu, 0x00000187u, + 0x0004007cu, 0x00000006u, 0x0000422au, 0x00004229u, 0x00050051u, 0x00000006u, 0x000048ceu, 0x00004224u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000048cfu, 0x00003ff0u, 0x000048ceu, 0x00050080u, 0x00000006u, + 0x000048d0u, 0x00003fedu, 0x000048cfu, 0x00050051u, 0x00000006u, 0x000048d2u, 0x00004224u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000048d3u, 0x000048d2u, 0x00000196u, 0x00050080u, 0x00000006u, 0x000048d5u, + 0x000048d0u, 0x000048d3u, 0x000500c7u, 0x00000006u, 0x000048d7u, 0x000048d5u, 0x00000769u, 0x000400c8u, + 0x00000006u, 0x000048dau, 0x000048d2u, 0x000500c7u, 0x00000006u, 0x000048dbu, 0x000048dau, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x000048dcu, 0x000048dbu, 0x000006beu, 0x000500c7u, 0x00000006u, 0x000048e0u, + 0x000048ceu, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000048e1u, 0x000048e0u, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x000048e3u, 0x000048d7u, 0x000048e1u, 0x000500c6u, 0x00000006u, 0x000048e5u, 0x000048e3u, + 0x00000333u, 0x00080041u, 0x000001fbu, 0x000048e8u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000048e5u, 0x0004003du, 0x000001adu, 0x000048e9u, 0x000048e8u, 0x00040071u, 0x00000006u, 0x000048eau, + 0x000048e9u, 0x000500c2u, 0x00000006u, 0x000048edu, 0x000048eau, 0x000048dcu, 0x000500c7u, 0x00000006u, + 0x000048eeu, 0x000048edu, 0x000006dau, 0x000500c4u, 0x00000006u, 0x000048f0u, 0x00004227u, 0x0000019fu, + 0x000500c5u, 0x00000006u, 0x000048f2u, 0x000048eeu, 0x000048f0u, 0x000500c4u, 0x00000006u, 0x000048f4u, + 0x000048f2u, 0x00000199u, 0x00050080u, 0x00000006u, 0x000048f6u, 0x000048f4u, 0x0000422au, 0x000500c6u, + 0x00000006u, 0x000048f9u, 0x000048f6u, 0x000041f3u, 0x000500c5u, 0x00000006u, 0x000048fcu, 0x0000079au, + 0x000048f9u, 0x00080041u, 0x000001f4u, 0x000048fdu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000048fcu, 0x0004003du, 0x000001afu, 0x000048feu, 0x000048fdu, 0x00040071u, 0x00000006u, 0x000048ffu, + 0x000048feu, 0x000300f7u, 0x00004907u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00004901u, 0x00004904u, + 0x000200f8u, 0x00004904u, 0x00060050u, 0x000002b8u, 0x0000491fu, 0x000048ffu, 0x000048ffu, 0x000048ffu, + 0x000500c2u, 0x000002b8u, 0x00004920u, 0x0000491fu, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00004922u, + 0x00004920u, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004925u, 0x00004922u, 0x0000856du, 0x000500c2u, + 0x000002b8u, 0x00004928u, 0x00004922u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00004929u, 0x00004925u, + 0x00004928u, 0x000500c7u, 0x00000006u, 0x0000492bu, 0x000048ffu, 0x0000032cu, 0x00050084u, 0x00000006u, + 0x0000492cu, 0x0000492bu, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x0000492eu, 0x00004929u, 0x0004007cu, + 0x00000008u, 0x00004930u, 0x0000492cu, 0x00050051u, 0x00000008u, 0x00004931u, 0x0000492eu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00004932u, 0x0000492eu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004933u, + 0x0000492eu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004934u, 0x00004931u, 0x00004932u, 0x00004933u, + 0x00004930u, 0x000200f9u, 0x00004907u, 0x000200f8u, 0x00004901u, 0x000500c2u, 0x00000006u, 0x0000490eu, + 0x000048ffu, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00004910u, 0x000048ffu, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x00004912u, 0x0000490eu, 0x0004007cu, 0x00000008u, 0x00004918u, 0x00004910u, 0x00070050u, + 0x00000009u, 0x00004919u, 0x00004912u, 0x00004912u, 0x00004912u, 0x00004918u, 0x000200f9u, 0x00004907u, + 0x000200f8u, 0x00004907u, 0x000700f5u, 0x00000009u, 0x00006e46u, 0x00004919u, 0x00004901u, 0x00004934u, + 0x00004904u, 0x000300f7u, 0x0000424au, 0x00000000u, 0x000400fau, 0x00001a9fu, 0x00004231u, 0x0000424au, + 0x000200f8u, 0x00004231u, 0x00050050u, 0x0000004du, 0x00004234u, 0x000085a7u, 0x000041b9u, 0x0004007cu, + 0x000000a0u, 0x00004235u, 0x00004234u, 0x00050051u, 0x00000006u, 0x00004944u, 0x00004235u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00004945u, 0x00003ff0u, 0x00004944u, 0x00050080u, 0x00000006u, 0x00004946u, + 0x00003fedu, 0x00004945u, 0x00050051u, 0x00000006u, 0x00004948u, 0x00004235u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x00004949u, 0x00004948u, 0x00000196u, 0x00050080u, 0x00000006u, 0x0000494bu, 0x00004946u, + 0x00004949u, 0x000500c7u, 0x00000006u, 0x0000494du, 0x0000494bu, 0x00000769u, 0x000400c8u, 0x00000006u, + 0x00004950u, 0x00004948u, 0x000500c7u, 0x00000006u, 0x00004951u, 0x00004950u, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00004952u, 0x00004951u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x00004956u, 0x00004944u, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004957u, 0x00004956u, 0x00000199u, 0x000500c6u, 0x00000006u, + 0x00004959u, 0x0000494du, 0x00004957u, 0x000500c6u, 0x00000006u, 0x0000495bu, 0x00004959u, 0x00000333u, + 0x00080041u, 0x000001fbu, 0x0000495eu, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000495bu, + 0x0004003du, 0x000001adu, 0x0000495fu, 0x0000495eu, 0x00040071u, 0x00000006u, 0x00004960u, 0x0000495fu, + 0x000500c2u, 0x00000006u, 0x00004963u, 0x00004960u, 0x00004952u, 0x000500c7u, 0x00000006u, 0x00004964u, + 0x00004963u, 0x000006dau, 0x000500c5u, 0x00000006u, 0x00004968u, 0x00004964u, 0x000048f0u, 0x000500c4u, + 0x00000006u, 0x0000496au, 0x00004968u, 0x00000199u, 0x00050080u, 0x00000006u, 0x0000496cu, 0x0000496au, + 0x0000032cu, 0x000500c6u, 0x00000006u, 0x0000496fu, 0x0000496cu, 0x000041f3u, 0x000500c5u, 0x00000006u, + 0x00004972u, 0x0000079au, 0x0000496fu, 0x00080041u, 0x000001f4u, 0x00004973u, 0x00000798u, 0x00000187u, + 0x00001a37u, 0x00000187u, 0x00004972u, 0x0004003du, 0x000001afu, 0x00004974u, 0x00004973u, 0x00040071u, + 0x00000006u, 0x00004975u, 0x00004974u, 0x000300f7u, 0x0000497du, 0x00000000u, 0x000400fau, 0x00001a5du, + 0x00004977u, 0x0000497au, 0x000200f8u, 0x0000497au, 0x00060050u, 0x000002b8u, 0x00004995u, 0x00004975u, + 0x00004975u, 0x00004975u, 0x000500c2u, 0x000002b8u, 0x00004996u, 0x00004995u, 0x0000067cu, 0x000500c7u, + 0x000002b8u, 0x00004998u, 0x00004996u, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x0000499bu, 0x00004998u, + 0x0000856du, 0x000500c2u, 0x000002b8u, 0x0000499eu, 0x00004998u, 0x0000856eu, 0x000500c5u, 0x000002b8u, + 0x0000499fu, 0x0000499bu, 0x0000499eu, 0x000500c7u, 0x00000006u, 0x000049a1u, 0x00004975u, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x000049a2u, 0x000049a1u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x000049a4u, + 0x0000499fu, 0x0004007cu, 0x00000008u, 0x000049a6u, 0x000049a2u, 0x00050051u, 0x00000008u, 0x000049a7u, + 0x000049a4u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000049a8u, 0x000049a4u, 0x00000001u, 0x00050051u, + 0x00000008u, 0x000049a9u, 0x000049a4u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000049aau, 0x000049a7u, + 0x000049a8u, 0x000049a9u, 0x000049a6u, 0x000200f9u, 0x0000497du, 0x000200f8u, 0x00004977u, 0x000500c2u, + 0x00000006u, 0x00004984u, 0x00004975u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00004986u, 0x00004975u, + 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00004988u, 0x00004984u, 0x0004007cu, 0x00000008u, 0x0000498eu, + 0x00004986u, 0x00070050u, 0x00000009u, 0x0000498fu, 0x00004988u, 0x00004988u, 0x00004988u, 0x0000498eu, + 0x000200f9u, 0x0000497du, 0x000200f8u, 0x0000497du, 0x000700f5u, 0x00000009u, 0x00006e49u, 0x0000498fu, + 0x00004977u, 0x000049aau, 0x0000497au, 0x00050050u, 0x0000004du, 0x00004240u, 0x00006de5u, 0x000085a6u, + 0x0004007cu, 0x000000a0u, 0x00004241u, 0x00004240u, 0x00050051u, 0x00000006u, 0x000049bau, 0x00004241u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000049bbu, 0x00003ff0u, 0x000049bau, 0x00050080u, 0x00000006u, + 0x000049bcu, 0x00003fedu, 0x000049bbu, 0x00050051u, 0x00000006u, 0x000049beu, 0x00004241u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000049bfu, 0x000049beu, 0x00000196u, 0x00050080u, 0x00000006u, 0x000049c1u, + 0x000049bcu, 0x000049bfu, 0x000500c7u, 0x00000006u, 0x000049c3u, 0x000049c1u, 0x00000769u, 0x000400c8u, + 0x00000006u, 0x000049c6u, 0x000049beu, 0x000500c7u, 0x00000006u, 0x000049c7u, 0x000049c6u, 0x0000032cu, + 0x00050084u, 0x00000006u, 0x000049c8u, 0x000049c7u, 0x000006beu, 0x000500c7u, 0x00000006u, 0x000049ccu, + 0x000049bau, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x000049cdu, 0x000049ccu, 0x00000199u, 0x000500c6u, + 0x00000006u, 0x000049cfu, 0x000049c3u, 0x000049cdu, 0x000500c6u, 0x00000006u, 0x000049d1u, 0x000049cfu, + 0x00000333u, 0x00080041u, 0x000001fbu, 0x000049d4u, 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000049d1u, 0x0004003du, 0x000001adu, 0x000049d5u, 0x000049d4u, 0x00040071u, 0x00000006u, 0x000049d6u, + 0x000049d5u, 0x000500c2u, 0x00000006u, 0x000049d9u, 0x000049d6u, 0x000049c8u, 0x000500c7u, 0x00000006u, + 0x000049dau, 0x000049d9u, 0x000006dau, 0x000500c5u, 0x00000006u, 0x000049deu, 0x000049dau, 0x000048f0u, + 0x000500c4u, 0x00000006u, 0x000049e0u, 0x000049deu, 0x00000199u, 0x00050080u, 0x00000006u, 0x000049e2u, + 0x000049e0u, 0x00000330u, 0x000500c6u, 0x00000006u, 0x000049e5u, 0x000049e2u, 0x000041f3u, 0x000500c5u, + 0x00000006u, 0x000049e8u, 0x0000079au, 0x000049e5u, 0x00080041u, 0x000001f4u, 0x000049e9u, 0x00000798u, + 0x00000187u, 0x00001a37u, 0x00000187u, 0x000049e8u, 0x0004003du, 0x000001afu, 0x000049eau, 0x000049e9u, + 0x00040071u, 0x00000006u, 0x000049ebu, 0x000049eau, 0x000300f7u, 0x000049f3u, 0x00000000u, 0x000400fau, + 0x00001a5du, 0x000049edu, 0x000049f0u, 0x000200f8u, 0x000049f0u, 0x00060050u, 0x000002b8u, 0x00004a0bu, + 0x000049ebu, 0x000049ebu, 0x000049ebu, 0x000500c2u, 0x000002b8u, 0x00004a0cu, 0x00004a0bu, 0x0000067cu, + 0x000500c7u, 0x000002b8u, 0x00004a0eu, 0x00004a0cu, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004a11u, + 0x00004a0eu, 0x0000856du, 0x000500c2u, 0x000002b8u, 0x00004a14u, 0x00004a0eu, 0x0000856eu, 0x000500c5u, + 0x000002b8u, 0x00004a15u, 0x00004a11u, 0x00004a14u, 0x000500c7u, 0x00000006u, 0x00004a17u, 0x000049ebu, + 0x0000032cu, 0x00050084u, 0x00000006u, 0x00004a18u, 0x00004a17u, 0x0000068bu, 0x0004007cu, 0x00000052u, + 0x00004a1au, 0x00004a15u, 0x0004007cu, 0x00000008u, 0x00004a1cu, 0x00004a18u, 0x00050051u, 0x00000008u, + 0x00004a1du, 0x00004a1au, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004a1eu, 0x00004a1au, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00004a1fu, 0x00004a1au, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004a20u, + 0x00004a1du, 0x00004a1eu, 0x00004a1fu, 0x00004a1cu, 0x000200f9u, 0x000049f3u, 0x000200f8u, 0x000049edu, + 0x000500c2u, 0x00000006u, 0x000049fau, 0x000049ebu, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x000049fcu, + 0x000049ebu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x000049feu, 0x000049fau, 0x0004007cu, 0x00000008u, + 0x00004a04u, 0x000049fcu, 0x00070050u, 0x00000009u, 0x00004a05u, 0x000049feu, 0x000049feu, 0x000049feu, + 0x00004a04u, 0x000200f9u, 0x000049f3u, 0x000200f8u, 0x000049f3u, 0x000700f5u, 0x00000009u, 0x00006e4cu, + 0x00004a05u, 0x000049edu, 0x00004a20u, 0x000049f0u, 0x000200f9u, 0x0000424au, 0x000200f8u, 0x0000424au, + 0x000700f5u, 0x00000009u, 0x0000718eu, 0x000067e2u, 0x00004907u, 0x00006e4cu, 0x000049f3u, 0x000700f5u, + 0x00000009u, 0x00007096u, 0x000067e2u, 0x00004907u, 0x00006e49u, 0x000049f3u, 0x000300f7u, 0x00004259u, + 0x00000000u, 0x000400fau, 0x000041c5u, 0x0000424cu, 0x00004259u, 0x000200f8u, 0x0000424cu, 0x00050050u, + 0x0000004du, 0x0000424fu, 0x000085a7u, 0x000085a6u, 0x0004007cu, 0x000000a0u, 0x00004250u, 0x0000424fu, + 0x00050051u, 0x00000006u, 0x00004a30u, 0x00004250u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004a31u, + 0x00003ff0u, 0x00004a30u, 0x00050080u, 0x00000006u, 0x00004a32u, 0x00003fedu, 0x00004a31u, 0x00050051u, + 0x00000006u, 0x00004a34u, 0x00004250u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004a35u, 0x00004a34u, + 0x00000196u, 0x00050080u, 0x00000006u, 0x00004a37u, 0x00004a32u, 0x00004a35u, 0x000500c7u, 0x00000006u, + 0x00004a39u, 0x00004a37u, 0x00000769u, 0x000400c8u, 0x00000006u, 0x00004a3cu, 0x00004a34u, 0x000500c7u, + 0x00000006u, 0x00004a3du, 0x00004a3cu, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00004a3eu, 0x00004a3du, + 0x000006beu, 0x000500c7u, 0x00000006u, 0x00004a42u, 0x00004a30u, 0x0000032cu, 0x000500c4u, 0x00000006u, + 0x00004a43u, 0x00004a42u, 0x00000199u, 0x000500c6u, 0x00000006u, 0x00004a45u, 0x00004a39u, 0x00004a43u, + 0x000500c6u, 0x00000006u, 0x00004a47u, 0x00004a45u, 0x00000333u, 0x00080041u, 0x000001fbu, 0x00004a4au, + 0x000006d1u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004a47u, 0x0004003du, 0x000001adu, 0x00004a4bu, + 0x00004a4au, 0x00040071u, 0x00000006u, 0x00004a4cu, 0x00004a4bu, 0x000500c2u, 0x00000006u, 0x00004a4fu, + 0x00004a4cu, 0x00004a3eu, 0x000500c7u, 0x00000006u, 0x00004a50u, 0x00004a4fu, 0x000006dau, 0x000500c5u, + 0x00000006u, 0x00004a54u, 0x00004a50u, 0x000048f0u, 0x000500c4u, 0x00000006u, 0x00004a56u, 0x00004a54u, + 0x00000199u, 0x00050080u, 0x00000006u, 0x00004a58u, 0x00004a56u, 0x00000333u, 0x000500c6u, 0x00000006u, + 0x00004a5bu, 0x00004a58u, 0x000041f3u, 0x000500c5u, 0x00000006u, 0x00004a5eu, 0x0000079au, 0x00004a5bu, + 0x00080041u, 0x000001f4u, 0x00004a5fu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004a5eu, + 0x0004003du, 0x000001afu, 0x00004a60u, 0x00004a5fu, 0x00040071u, 0x00000006u, 0x00004a61u, 0x00004a60u, + 0x000300f7u, 0x00004a69u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00004a63u, 0x00004a66u, 0x000200f8u, + 0x00004a66u, 0x00060050u, 0x000002b8u, 0x00004a81u, 0x00004a61u, 0x00004a61u, 0x00004a61u, 0x000500c2u, + 0x000002b8u, 0x00004a82u, 0x00004a81u, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00004a84u, 0x00004a82u, + 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004a87u, 0x00004a84u, 0x0000856du, 0x000500c2u, 0x000002b8u, + 0x00004a8au, 0x00004a84u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00004a8bu, 0x00004a87u, 0x00004a8au, + 0x000500c7u, 0x00000006u, 0x00004a8du, 0x00004a61u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x00004a8eu, + 0x00004a8du, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x00004a90u, 0x00004a8bu, 0x0004007cu, 0x00000008u, + 0x00004a92u, 0x00004a8eu, 0x00050051u, 0x00000008u, 0x00004a93u, 0x00004a90u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00004a94u, 0x00004a90u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004a95u, 0x00004a90u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00004a96u, 0x00004a93u, 0x00004a94u, 0x00004a95u, 0x00004a92u, + 0x000200f9u, 0x00004a69u, 0x000200f8u, 0x00004a63u, 0x000500c2u, 0x00000006u, 0x00004a70u, 0x00004a61u, + 0x000001e2u, 0x000500c7u, 0x00000006u, 0x00004a72u, 0x00004a61u, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x00004a74u, 0x00004a70u, 0x0004007cu, 0x00000008u, 0x00004a7au, 0x00004a72u, 0x00070050u, 0x00000009u, + 0x00004a7bu, 0x00004a74u, 0x00004a74u, 0x00004a74u, 0x00004a7au, 0x000200f9u, 0x00004a69u, 0x000200f8u, + 0x00004a69u, 0x000700f5u, 0x00000009u, 0x00006e52u, 0x00004a7bu, 0x00004a63u, 0x00004a96u, 0x00004a66u, + 0x000200f9u, 0x00004259u, 0x000200f8u, 0x00004259u, 0x000700f5u, 0x00000009u, 0x00007281u, 0x000067e2u, + 0x0000424au, 0x00006e52u, 0x00004a69u, 0x000200f9u, 0x00004286u, 0x000200f8u, 0x000041f6u, 0x0004007cu, + 0x000000a0u, 0x000041f8u, 0x00006e32u, 0x000600a9u, 0x00000008u, 0x000041fau, 0x000041cfu, 0x0000019cu, + 0x00000187u, 0x0004007cu, 0x00000006u, 0x000041fbu, 0x000041fau, 0x00050051u, 0x00000006u, 0x00004725u, + 0x000041f8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004726u, 0x00003ff0u, 0x00004725u, 0x00050080u, + 0x00000006u, 0x00004727u, 0x00003fedu, 0x00004726u, 0x00050051u, 0x00000006u, 0x00004729u, 0x000041f8u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x0000472au, 0x00004729u, 0x00000330u, 0x00050080u, 0x00000006u, + 0x0000472cu, 0x00004727u, 0x0000472au, 0x000500c7u, 0x00000006u, 0x0000472eu, 0x0000472cu, 0x00000769u, + 0x000500c2u, 0x00000006u, 0x00004730u, 0x0000472eu, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00004733u, + 0x00004725u, 0x0000032cu, 0x000500c4u, 0x00000006u, 0x00004734u, 0x00004733u, 0x00000196u, 0x000500c6u, + 0x00000006u, 0x00004736u, 0x00004730u, 0x00004734u, 0x000500c6u, 0x00000006u, 0x00004738u, 0x00004736u, + 0x0000032cu, 0x00080041u, 0x000001f4u, 0x0000473bu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x00004738u, 0x0004003du, 0x000001afu, 0x0000473cu, 0x0000473bu, 0x00040071u, 0x00000006u, 0x0000473du, + 0x0000473cu, 0x000500c2u, 0x00000006u, 0x0000473fu, 0x0000473du, 0x000001a5u, 0x000500c7u, 0x00000006u, + 0x00004740u, 0x0000473fu, 0x00000838u, 0x00050080u, 0x00000006u, 0x00004742u, 0x00004740u, 0x000041fbu, + 0x000500c6u, 0x00000006u, 0x00004745u, 0x00004742u, 0x000041f3u, 0x000500c5u, 0x00000006u, 0x00004748u, + 0x0000079au, 0x00004745u, 0x00080041u, 0x000001f4u, 0x00004749u, 0x00000798u, 0x00000187u, 0x00001a37u, + 0x00000187u, 0x00004748u, 0x0004003du, 0x000001afu, 0x0000474au, 0x00004749u, 0x00040071u, 0x00000006u, + 0x0000474bu, 0x0000474au, 0x000300f7u, 0x00004753u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x0000474du, + 0x00004750u, 0x000200f8u, 0x00004750u, 0x00060050u, 0x000002b8u, 0x0000476bu, 0x0000474bu, 0x0000474bu, + 0x0000474bu, 0x000500c2u, 0x000002b8u, 0x0000476cu, 0x0000476bu, 0x0000067cu, 0x000500c7u, 0x000002b8u, + 0x0000476eu, 0x0000476cu, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x00004771u, 0x0000476eu, 0x0000856du, + 0x000500c2u, 0x000002b8u, 0x00004774u, 0x0000476eu, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00004775u, + 0x00004771u, 0x00004774u, 0x000500c7u, 0x00000006u, 0x00004777u, 0x0000474bu, 0x0000032cu, 0x00050084u, + 0x00000006u, 0x00004778u, 0x00004777u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x0000477au, 0x00004775u, + 0x0004007cu, 0x00000008u, 0x0000477cu, 0x00004778u, 0x00050051u, 0x00000008u, 0x0000477du, 0x0000477au, + 0x00000000u, 0x00050051u, 0x00000008u, 0x0000477eu, 0x0000477au, 0x00000001u, 0x00050051u, 0x00000008u, + 0x0000477fu, 0x0000477au, 0x00000002u, 0x00070050u, 0x00000009u, 0x00004780u, 0x0000477du, 0x0000477eu, + 0x0000477fu, 0x0000477cu, 0x000200f9u, 0x00004753u, 0x000200f8u, 0x0000474du, 0x000500c2u, 0x00000006u, + 0x0000475au, 0x0000474bu, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x0000475cu, 0x0000474bu, 0x0000068bu, + 0x0004007cu, 0x00000008u, 0x0000475eu, 0x0000475au, 0x0004007cu, 0x00000008u, 0x00004764u, 0x0000475cu, + 0x00070050u, 0x00000009u, 0x00004765u, 0x0000475eu, 0x0000475eu, 0x0000475eu, 0x00004764u, 0x000200f9u, + 0x00004753u, 0x000200f8u, 0x00004753u, 0x000700f5u, 0x00000009u, 0x00006e53u, 0x00004765u, 0x0000474du, + 0x00004780u, 0x00004750u, 0x000300f7u, 0x00004215u, 0x00000000u, 0x000400fau, 0x00001a9fu, 0x00004202u, + 0x00004215u, 0x000200f8u, 0x00004202u, 0x00050050u, 0x0000004du, 0x00004205u, 0x000085a7u, 0x000041b9u, + 0x0004007cu, 0x000000a0u, 0x00004206u, 0x00004205u, 0x00050051u, 0x00000006u, 0x0000478fu, 0x00004206u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004790u, 0x00003ff0u, 0x0000478fu, 0x00050080u, 0x00000006u, + 0x00004791u, 0x00003fedu, 0x00004790u, 0x00050051u, 0x00000006u, 0x00004793u, 0x00004206u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00004794u, 0x00004793u, 0x00000330u, 0x00050080u, 0x00000006u, 0x00004796u, + 0x00004791u, 0x00004794u, 0x000500c7u, 0x00000006u, 0x00004798u, 0x00004796u, 0x00000769u, 0x000500c2u, + 0x00000006u, 0x0000479au, 0x00004798u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x0000479du, 0x0000478fu, + 0x0000032cu, 0x000500c4u, 0x00000006u, 0x0000479eu, 0x0000479du, 0x00000196u, 0x000500c6u, 0x00000006u, + 0x000047a0u, 0x0000479au, 0x0000479eu, 0x000500c6u, 0x00000006u, 0x000047a2u, 0x000047a0u, 0x0000032cu, + 0x00080041u, 0x000001f4u, 0x000047a5u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x000047a2u, + 0x0004003du, 0x000001afu, 0x000047a6u, 0x000047a5u, 0x00040071u, 0x00000006u, 0x000047a7u, 0x000047a6u, + 0x000500c2u, 0x00000006u, 0x000047a9u, 0x000047a7u, 0x000001a5u, 0x000500c7u, 0x00000006u, 0x000047aau, + 0x000047a9u, 0x00000838u, 0x00050080u, 0x00000006u, 0x000047acu, 0x000047aau, 0x0000032cu, 0x000500c6u, + 0x00000006u, 0x000047afu, 0x000047acu, 0x000041f3u, 0x000500c5u, 0x00000006u, 0x000047b2u, 0x0000079au, + 0x000047afu, 0x00080041u, 0x000001f4u, 0x000047b3u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, + 0x000047b2u, 0x0004003du, 0x000001afu, 0x000047b4u, 0x000047b3u, 0x00040071u, 0x00000006u, 0x000047b5u, + 0x000047b4u, 0x000300f7u, 0x000047bdu, 0x00000000u, 0x000400fau, 0x00001a5du, 0x000047b7u, 0x000047bau, + 0x000200f8u, 0x000047bau, 0x00060050u, 0x000002b8u, 0x000047d5u, 0x000047b5u, 0x000047b5u, 0x000047b5u, + 0x000500c2u, 0x000002b8u, 0x000047d6u, 0x000047d5u, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x000047d8u, + 0x000047d6u, 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x000047dbu, 0x000047d8u, 0x0000856du, 0x000500c2u, + 0x000002b8u, 0x000047deu, 0x000047d8u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x000047dfu, 0x000047dbu, + 0x000047deu, 0x000500c7u, 0x00000006u, 0x000047e1u, 0x000047b5u, 0x0000032cu, 0x00050084u, 0x00000006u, + 0x000047e2u, 0x000047e1u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x000047e4u, 0x000047dfu, 0x0004007cu, + 0x00000008u, 0x000047e6u, 0x000047e2u, 0x00050051u, 0x00000008u, 0x000047e7u, 0x000047e4u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000047e8u, 0x000047e4u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000047e9u, + 0x000047e4u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000047eau, 0x000047e7u, 0x000047e8u, 0x000047e9u, + 0x000047e6u, 0x000200f9u, 0x000047bdu, 0x000200f8u, 0x000047b7u, 0x000500c2u, 0x00000006u, 0x000047c4u, + 0x000047b5u, 0x000001e2u, 0x000500c7u, 0x00000006u, 0x000047c6u, 0x000047b5u, 0x0000068bu, 0x0004007cu, + 0x00000008u, 0x000047c8u, 0x000047c4u, 0x0004007cu, 0x00000008u, 0x000047ceu, 0x000047c6u, 0x00070050u, + 0x00000009u, 0x000047cfu, 0x000047c8u, 0x000047c8u, 0x000047c8u, 0x000047ceu, 0x000200f9u, 0x000047bdu, + 0x000200f8u, 0x000047bdu, 0x000700f5u, 0x00000009u, 0x00006e56u, 0x000047cfu, 0x000047b7u, 0x000047eau, + 0x000047bau, 0x00050050u, 0x0000004du, 0x0000420eu, 0x00006de5u, 0x000085a6u, 0x0004007cu, 0x000000a0u, + 0x0000420fu, 0x0000420eu, 0x00050051u, 0x00000006u, 0x000047f9u, 0x0000420fu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000047fau, 0x00003ff0u, 0x000047f9u, 0x00050080u, 0x00000006u, 0x000047fbu, 0x00003fedu, + 0x000047fau, 0x00050051u, 0x00000006u, 0x000047fdu, 0x0000420fu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x000047feu, 0x000047fdu, 0x00000330u, 0x00050080u, 0x00000006u, 0x00004800u, 0x000047fbu, 0x000047feu, + 0x000500c7u, 0x00000006u, 0x00004802u, 0x00004800u, 0x00000769u, 0x000500c2u, 0x00000006u, 0x00004804u, + 0x00004802u, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00004807u, 0x000047f9u, 0x0000032cu, 0x000500c4u, + 0x00000006u, 0x00004808u, 0x00004807u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x0000480au, 0x00004804u, + 0x00004808u, 0x000500c6u, 0x00000006u, 0x0000480cu, 0x0000480au, 0x0000032cu, 0x00080041u, 0x000001f4u, + 0x0000480fu, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000480cu, 0x0004003du, 0x000001afu, + 0x00004810u, 0x0000480fu, 0x00040071u, 0x00000006u, 0x00004811u, 0x00004810u, 0x000500c2u, 0x00000006u, + 0x00004813u, 0x00004811u, 0x000001a5u, 0x000500c7u, 0x00000006u, 0x00004814u, 0x00004813u, 0x00000838u, + 0x00050080u, 0x00000006u, 0x00004816u, 0x00004814u, 0x00000330u, 0x000500c6u, 0x00000006u, 0x00004819u, + 0x00004816u, 0x000041f3u, 0x000500c5u, 0x00000006u, 0x0000481cu, 0x0000079au, 0x00004819u, 0x00080041u, + 0x000001f4u, 0x0000481du, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x0000481cu, 0x0004003du, + 0x000001afu, 0x0000481eu, 0x0000481du, 0x00040071u, 0x00000006u, 0x0000481fu, 0x0000481eu, 0x000300f7u, + 0x00004827u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x00004821u, 0x00004824u, 0x000200f8u, 0x00004824u, + 0x00060050u, 0x000002b8u, 0x0000483fu, 0x0000481fu, 0x0000481fu, 0x0000481fu, 0x000500c2u, 0x000002b8u, + 0x00004840u, 0x0000483fu, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x00004842u, 0x00004840u, 0x0000856cu, + 0x000500c4u, 0x000002b8u, 0x00004845u, 0x00004842u, 0x0000856du, 0x000500c2u, 0x000002b8u, 0x00004848u, + 0x00004842u, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x00004849u, 0x00004845u, 0x00004848u, 0x000500c7u, + 0x00000006u, 0x0000484bu, 0x0000481fu, 0x0000032cu, 0x00050084u, 0x00000006u, 0x0000484cu, 0x0000484bu, + 0x0000068bu, 0x0004007cu, 0x00000052u, 0x0000484eu, 0x00004849u, 0x0004007cu, 0x00000008u, 0x00004850u, + 0x0000484cu, 0x00050051u, 0x00000008u, 0x00004851u, 0x0000484eu, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00004852u, 0x0000484eu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00004853u, 0x0000484eu, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00004854u, 0x00004851u, 0x00004852u, 0x00004853u, 0x00004850u, 0x000200f9u, + 0x00004827u, 0x000200f8u, 0x00004821u, 0x000500c2u, 0x00000006u, 0x0000482eu, 0x0000481fu, 0x000001e2u, + 0x000500c7u, 0x00000006u, 0x00004830u, 0x0000481fu, 0x0000068bu, 0x0004007cu, 0x00000008u, 0x00004832u, + 0x0000482eu, 0x0004007cu, 0x00000008u, 0x00004838u, 0x00004830u, 0x00070050u, 0x00000009u, 0x00004839u, + 0x00004832u, 0x00004832u, 0x00004832u, 0x00004838u, 0x000200f9u, 0x00004827u, 0x000200f8u, 0x00004827u, + 0x000700f5u, 0x00000009u, 0x00006e59u, 0x00004839u, 0x00004821u, 0x00004854u, 0x00004824u, 0x000200f9u, + 0x00004215u, 0x000200f8u, 0x00004215u, 0x000700f5u, 0x00000009u, 0x00007189u, 0x000067e2u, 0x00004753u, + 0x00006e59u, 0x00004827u, 0x000700f5u, 0x00000009u, 0x00007090u, 0x000067e2u, 0x00004753u, 0x00006e56u, + 0x00004827u, 0x000300f7u, 0x00004221u, 0x00000000u, 0x000400fau, 0x000041c5u, 0x00004217u, 0x00004221u, + 0x000200f8u, 0x00004217u, 0x00050050u, 0x0000004du, 0x0000421au, 0x000085a7u, 0x000085a6u, 0x0004007cu, + 0x000000a0u, 0x0000421bu, 0x0000421au, 0x00050051u, 0x00000006u, 0x00004863u, 0x0000421bu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00004864u, 0x00003ff0u, 0x00004863u, 0x00050080u, 0x00000006u, 0x00004865u, + 0x00003fedu, 0x00004864u, 0x00050051u, 0x00000006u, 0x00004867u, 0x0000421bu, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00004868u, 0x00004867u, 0x00000330u, 0x00050080u, 0x00000006u, 0x0000486au, 0x00004865u, + 0x00004868u, 0x000500c7u, 0x00000006u, 0x0000486cu, 0x0000486au, 0x00000769u, 0x000500c2u, 0x00000006u, + 0x0000486eu, 0x0000486cu, 0x00000196u, 0x000500c7u, 0x00000006u, 0x00004871u, 0x00004863u, 0x0000032cu, + 0x000500c4u, 0x00000006u, 0x00004872u, 0x00004871u, 0x00000196u, 0x000500c6u, 0x00000006u, 0x00004874u, + 0x0000486eu, 0x00004872u, 0x000500c6u, 0x00000006u, 0x00004876u, 0x00004874u, 0x0000032cu, 0x00080041u, + 0x000001f4u, 0x00004879u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004876u, 0x0004003du, + 0x000001afu, 0x0000487au, 0x00004879u, 0x00040071u, 0x00000006u, 0x0000487bu, 0x0000487au, 0x000500c2u, + 0x00000006u, 0x0000487du, 0x0000487bu, 0x000001a5u, 0x000500c7u, 0x00000006u, 0x0000487eu, 0x0000487du, + 0x00000838u, 0x00050080u, 0x00000006u, 0x00004880u, 0x0000487eu, 0x00000333u, 0x000500c6u, 0x00000006u, + 0x00004883u, 0x00004880u, 0x000041f3u, 0x000500c5u, 0x00000006u, 0x00004886u, 0x0000079au, 0x00004883u, + 0x00080041u, 0x000001f4u, 0x00004887u, 0x00000798u, 0x00000187u, 0x00001a37u, 0x00000187u, 0x00004886u, + 0x0004003du, 0x000001afu, 0x00004888u, 0x00004887u, 0x00040071u, 0x00000006u, 0x00004889u, 0x00004888u, + 0x000300f7u, 0x00004891u, 0x00000000u, 0x000400fau, 0x00001a5du, 0x0000488bu, 0x0000488eu, 0x000200f8u, + 0x0000488eu, 0x00060050u, 0x000002b8u, 0x000048a9u, 0x00004889u, 0x00004889u, 0x00004889u, 0x000500c2u, + 0x000002b8u, 0x000048aau, 0x000048a9u, 0x0000067cu, 0x000500c7u, 0x000002b8u, 0x000048acu, 0x000048aau, + 0x0000856cu, 0x000500c4u, 0x000002b8u, 0x000048afu, 0x000048acu, 0x0000856du, 0x000500c2u, 0x000002b8u, + 0x000048b2u, 0x000048acu, 0x0000856eu, 0x000500c5u, 0x000002b8u, 0x000048b3u, 0x000048afu, 0x000048b2u, + 0x000500c7u, 0x00000006u, 0x000048b5u, 0x00004889u, 0x0000032cu, 0x00050084u, 0x00000006u, 0x000048b6u, + 0x000048b5u, 0x0000068bu, 0x0004007cu, 0x00000052u, 0x000048b8u, 0x000048b3u, 0x0004007cu, 0x00000008u, + 0x000048bau, 0x000048b6u, 0x00050051u, 0x00000008u, 0x000048bbu, 0x000048b8u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000048bcu, 0x000048b8u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000048bdu, 0x000048b8u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x000048beu, 0x000048bbu, 0x000048bcu, 0x000048bdu, 0x000048bau, + 0x000200f9u, 0x00004891u, 0x000200f8u, 0x0000488bu, 0x000500c2u, 0x00000006u, 0x00004898u, 0x00004889u, + 0x000001e2u, 0x000500c7u, 0x00000006u, 0x0000489au, 0x00004889u, 0x0000068bu, 0x0004007cu, 0x00000008u, + 0x0000489cu, 0x00004898u, 0x0004007cu, 0x00000008u, 0x000048a2u, 0x0000489au, 0x00070050u, 0x00000009u, + 0x000048a3u, 0x0000489cu, 0x0000489cu, 0x0000489cu, 0x000048a2u, 0x000200f9u, 0x00004891u, 0x000200f8u, + 0x00004891u, 0x000700f5u, 0x00000009u, 0x00006e5fu, 0x000048a3u, 0x0000488bu, 0x000048beu, 0x0000488eu, + 0x000200f9u, 0x00004221u, 0x000200f8u, 0x00004221u, 0x000700f5u, 0x00000009u, 0x0000727bu, 0x000067e2u, + 0x00004215u, 0x00006e5fu, 0x00004891u, 0x000200f9u, 0x00004286u, 0x000200f8u, 0x00004286u, 0x000900f5u, + 0x00000009u, 0x0000727au, 0x0000727bu, 0x00004221u, 0x00007281u, 0x00004259u, 0x00007286u, 0x00004285u, + 0x000900f5u, 0x00000009u, 0x00007187u, 0x00007189u, 0x00004221u, 0x0000718eu, 0x00004259u, 0x00007192u, + 0x00004285u, 0x000900f5u, 0x00000009u, 0x0000708eu, 0x00007090u, 0x00004221u, 0x00007096u, 0x00004259u, + 0x0000709bu, 0x00004285u, 0x000900f5u, 0x00000009u, 0x00006f24u, 0x00006e53u, 0x00004221u, 0x00006e46u, + 0x00004259u, 0x00006e33u, 0x00004285u, 0x000200f9u, 0x00004287u, 0x000200f8u, 0x00004287u, 0x000700f5u, + 0x00000009u, 0x000071b8u, 0x000067e2u, 0x000041ebu, 0x0000727au, 0x00004286u, 0x000700f5u, 0x00000009u, + 0x000070c5u, 0x000067e2u, 0x000041ebu, 0x00007187u, 0x00004286u, 0x000700f5u, 0x00000009u, 0x00006fccu, + 0x000067e2u, 0x000041ebu, 0x0000708eu, 0x00004286u, 0x000700f5u, 0x00000009u, 0x00006e62u, 0x000067e2u, + 0x000041ebu, 0x00006f24u, 0x00004286u, 0x000200f9u, 0x000044a4u, 0x000200f8u, 0x000044a4u, 0x000700f5u, + 0x00000009u, 0x000071b7u, 0x000071b8u, 0x00004287u, 0x0000728bu, 0x000044a3u, 0x000700f5u, 0x00000009u, + 0x000070c4u, 0x000070c5u, 0x00004287u, 0x00007195u, 0x000044a3u, 0x000700f5u, 0x00000009u, 0x00006fcbu, + 0x00006fccu, 0x00004287u, 0x0000709fu, 0x000044a3u, 0x000700f5u, 0x00000009u, 0x00006e61u, 0x00006e62u, + 0x00004287u, 0x00006f34u, 0x000044a3u, 0x000300f7u, 0x00004637u, 0x00000000u, 0x000400fau, 0x00001a99u, + 0x000044a6u, 0x0000457fu, 0x000200f8u, 0x0000457fu, 0x000300f7u, 0x00004636u, 0x00000000u, 0x000400fau, + 0x000041cdu, 0x00004581u, 0x000045f4u, 0x000200f8u, 0x000045f4u, 0x000300f7u, 0x00004635u, 0x00000000u, + 0x000400fau, 0x000041c5u, 0x000045f6u, 0x00004602u, 0x000200f8u, 0x00004602u, 0x000600a9u, 0x00000058u, + 0x000085a8u, 0x00001a9fu, 0x00004193u, 0x00001a9fu, 0x000300f7u, 0x00004634u, 0x00000000u, 0x000400fau, + 0x000085a8u, 0x0000460au, 0x00004632u, 0x000200f8u, 0x00004632u, 0x000200f9u, 0x00004634u, 0x000200f8u, + 0x0000460au, 0x000300f7u, 0x00004614u, 0x00000000u, 0x000400fau, 0x000041cfu, 0x0000460du, 0x00004612u, + 0x000200f8u, 0x00004612u, 0x000200f9u, 0x00004614u, 0x000200f8u, 0x0000460du, 0x0007004fu, 0x0000004du, + 0x0000460fu, 0x00006de2u, 0x00006de2u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000004du, 0x00004611u, + 0x00008572u, 0x0000460fu, 0x000200f9u, 0x00004614u, 0x000200f8u, 0x00004614u, 0x000700f5u, 0x0000004du, + 0x00006fc8u, 0x00004611u, 0x0000460du, 0x00006de2u, 0x00004612u, 0x00050082u, 0x00000009u, 0x0000461bu, + 0x00006fcbu, 0x00006e61u, 0x00050051u, 0x00000008u, 0x0000461du, 0x00006fc8u, 0x00000000u, 0x00070050u, + 0x00000009u, 0x0000461eu, 0x0000461du, 0x0000461du, 0x0000461du, 0x0000461du, 0x00050084u, 0x00000009u, + 0x0000461fu, 0x0000461bu, 0x0000461eu, 0x00050082u, 0x00000009u, 0x00004622u, 0x000070c4u, 0x00006e61u, + 0x00050051u, 0x00000008u, 0x00004624u, 0x00006fc8u, 0x00000001u, 0x00070050u, 0x00000009u, 0x00004625u, + 0x00004624u, 0x00004624u, 0x00004624u, 0x00004624u, 0x00050084u, 0x00000009u, 0x00004626u, 0x00004622u, + 0x00004625u, 0x00050080u, 0x00000009u, 0x00004628u, 0x0000461fu, 0x00004626u, 0x00050080u, 0x00000009u, + 0x0000462bu, 0x00004628u, 0x00008573u, 0x000500c3u, 0x00000009u, 0x0000462eu, 0x0000462bu, 0x00008574u, + 0x00050080u, 0x00000009u, 0x00004631u, 0x0000462eu, 0x00006e61u, 0x000200f9u, 0x00004634u, 0x000200f8u, + 0x00004634u, 0x000700f5u, 0x00000009u, 0x000072f0u, 0x00004631u, 0x00004614u, 0x00006e61u, 0x00004632u, + 0x000200f9u, 0x00004635u, 0x000200f8u, 0x000045f6u, 0x00050080u, 0x00000009u, 0x000045f9u, 0x00006e61u, + 0x000070c4u, 0x00050080u, 0x00000009u, 0x000045fbu, 0x000045f9u, 0x00006fcbu, 0x00050080u, 0x00000009u, + 0x000045fdu, 0x000045fbu, 0x000071b7u, 0x00050080u, 0x00000009u, 0x000045ffu, 0x000045fdu, 0x00008570u, + 0x000500c3u, 0x00000009u, 0x00004601u, 0x000045ffu, 0x00008570u, 0x000200f9u, 0x00004635u, 0x000200f8u, + 0x00004635u, 0x000700f5u, 0x00000009u, 0x000072efu, 0x00004601u, 0x000045f6u, 0x000072f0u, 0x00004634u, + 0x000200f9u, 0x00004636u, 0x000200f8u, 0x00004581u, 0x000300f7u, 0x000045f3u, 0x00000000u, 0x000400fau, + 0x00001a60u, 0x00004583u, 0x000045f1u, 0x000200f8u, 0x000045f1u, 0x000200f9u, 0x000045f3u, 0x000200f8u, + 0x00004583u, 0x000300f7u, 0x000045e9u, 0x00000000u, 0x000400fau, 0x00001a9fu, 0x00004585u, 0x000045cdu, + 0x000200f8u, 0x000045cdu, 0x000300f7u, 0x000045dau, 0x00000000u, 0x000400fau, 0x000041c7u, 0x000045d4u, + 0x000045d7u, 0x000200f8u, 0x000045d7u, 0x0007004fu, 0x0000004du, 0x000045d9u, 0x00006e61u, 0x00006e61u, + 0x00000002u, 0x00000003u, 0x000200f9u, 0x000045dau, 0x000200f8u, 0x000045d4u, 0x0007004fu, 0x0000004du, + 0x000045d6u, 0x000071b7u, 0x000071b7u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x000045dau, 0x000200f8u, + 0x000045dau, 0x000700f5u, 0x0000004du, 0x000072adu, 0x000045d6u, 0x000045d4u, 0x000045d9u, 0x000045d7u, + 0x00050080u, 0x00000008u, 0x000045dfu, 0x000041e0u, 0x0000419du, 0x000500afu, 0x00000058u, 0x000045e0u, + 0x000045dfu, 0x000002e2u, 0x000300f7u, 0x000045e7u, 0x00000000u, 0x000400fau, 0x000045e0u, 0x000045e1u, + 0x000045e4u, 0x000200f8u, 0x000045e4u, 0x0007004fu, 0x0000004du, 0x000045e6u, 0x00006e61u, 0x00006e61u, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x000045e7u, 0x000200f8u, 0x000045e1u, 0x0007004fu, 0x0000004du, + 0x000045e3u, 0x000071b7u, 0x000071b7u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000045e7u, 0x000200f8u, + 0x000045e7u, 0x000700f5u, 0x0000004du, 0x000072b1u, 0x000045e3u, 0x000045e1u, 0x000045e6u, 0x000045e4u, + 0x000200f9u, 0x000045e9u, 0x000200f8u, 0x00004585u, 0x00050050u, 0x0000004du, 0x0000458au, 0x000041e0u, + 0x0000419du, 0x000500aau, 0x0000048bu, 0x0000458bu, 0x0000458au, 0x00000c0eu, 0x00050051u, 0x00000058u, + 0x0000458cu, 0x0000458bu, 0x00000000u, 0x00050051u, 0x00000058u, 0x0000458du, 0x0000458bu, 0x00000001u, + 0x00060050u, 0x0000103fu, 0x0000458eu, 0x00001a8au, 0x0000458cu, 0x0000458du, 0x0004009bu, 0x00000058u, + 0x0000458fu, 0x0000458eu, 0x000300f7u, 0x000045afu, 0x00000000u, 0x000400fau, 0x0000458fu, 0x00004591u, + 0x000045a1u, 0x000200f8u, 0x000045a1u, 0x0007004fu, 0x0000004du, 0x000045a7u, 0x00006e61u, 0x00006e61u, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000004du, 0x000045a9u, 0x00006fcbu, 0x00006fcbu, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x0000004du, 0x000045abu, 0x000070c4u, 0x000070c4u, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x0000004du, 0x000045adu, 0x000071b7u, 0x000071b7u, 0x00000000u, 0x00000001u, 0x00050080u, + 0x00000008u, 0x0000582au, 0x000041e0u, 0x0000419du, 0x000500afu, 0x00000058u, 0x0000582cu, 0x0000582au, + 0x000002e2u, 0x00050050u, 0x0000048bu, 0x0000582fu, 0x0000582cu, 0x0000582cu, 0x000600a9u, 0x0000004du, + 0x00005830u, 0x0000582fu, 0x000045adu, 0x000045a7u, 0x000300f7u, 0x0000583au, 0x00000000u, 0x000400fau, + 0x0000582cu, 0x00005833u, 0x00005838u, 0x000200f8u, 0x00005838u, 0x000200f9u, 0x0000583au, 0x000200f8u, + 0x00005833u, 0x0007004fu, 0x0000004du, 0x00005835u, 0x0000458au, 0x0000458au, 0x00000001u, 0x00000000u, + 0x00050082u, 0x0000004du, 0x00005837u, 0x00008572u, 0x00005835u, 0x000200f9u, 0x0000583au, 0x000200f8u, + 0x0000583au, 0x000700f5u, 0x0000004du, 0x000072b2u, 0x00005837u, 0x00005833u, 0x0000458au, 0x00005838u, + 0x00050082u, 0x0000004du, 0x00005841u, 0x000045a9u, 0x00005830u, 0x00050051u, 0x00000008u, 0x00005843u, + 0x000072b2u, 0x00000000u, 0x00050050u, 0x0000004du, 0x00005844u, 0x00005843u, 0x00005843u, 0x00050084u, + 0x0000004du, 0x00005845u, 0x00005841u, 0x00005844u, 0x00050082u, 0x0000004du, 0x00005848u, 0x000045abu, + 0x00005830u, 0x00050051u, 0x00000008u, 0x0000584au, 0x000072b2u, 0x00000001u, 0x00050050u, 0x0000004du, + 0x0000584bu, 0x0000584au, 0x0000584au, 0x00050084u, 0x0000004du, 0x0000584cu, 0x00005848u, 0x0000584bu, + 0x00050080u, 0x0000004du, 0x0000584eu, 0x00005845u, 0x0000584cu, 0x00050080u, 0x0000004du, 0x00005851u, + 0x0000584eu, 0x00000c0eu, 0x000500c3u, 0x0000004du, 0x00005854u, 0x00005851u, 0x00008568u, 0x00050080u, + 0x0000004du, 0x00005857u, 0x00005854u, 0x00005830u, 0x000200f9u, 0x000045afu, 0x000200f8u, 0x00004591u, + 0x0007004fu, 0x0000004du, 0x00004593u, 0x00006e61u, 0x00006e61u, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x0000004du, 0x00004595u, 0x00006fcbu, 0x00006fcbu, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000004du, + 0x00004596u, 0x00004593u, 0x00004595u, 0x0007004fu, 0x0000004du, 0x00004598u, 0x000071b7u, 0x000071b7u, + 0x00000000u, 0x00000001u, 0x00050080u, 0x0000004du, 0x00004599u, 0x00004596u, 0x00004598u, 0x0007004fu, + 0x0000004du, 0x0000459bu, 0x000070c4u, 0x000070c4u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000004du, + 0x0000459cu, 0x00004599u, 0x0000459bu, 0x00050080u, 0x0000004du, 0x0000459eu, 0x0000459cu, 0x00008571u, + 0x000500c3u, 0x0000004du, 0x000045a0u, 0x0000459eu, 0x00008571u, 0x000200f9u, 0x000045afu, 0x000200f8u, + 0x000045afu, 0x000700f5u, 0x0000004du, 0x000072c0u, 0x000045a0u, 0x00004591u, 0x00005857u, 0x0000583au, + 0x000300f7u, 0x000045ccu, 0x00000000u, 0x000400fau, 0x000041c5u, 0x000045b1u, 0x000045c1u, 0x000200f8u, + 0x000045c1u, 0x0007004fu, 0x0000004du, 0x000045c3u, 0x00006e61u, 0x00006e61u, 0x00000002u, 0x00000003u, + 0x0007004fu, 0x0000004du, 0x000045c5u, 0x00006fcbu, 0x00006fcbu, 0x00000002u, 0x00000003u, 0x0007004fu, + 0x0000004du, 0x000045c7u, 0x000070c4u, 0x000070c4u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000004du, + 0x000045c9u, 0x000071b7u, 0x000071b7u, 0x00000002u, 0x00000003u, 0x00050050u, 0x0000048bu, 0x00005869u, + 0x000041c7u, 0x000041c7u, 0x000600a9u, 0x0000004du, 0x0000586au, 0x00005869u, 0x000045c9u, 0x000045c3u, + 0x000300f7u, 0x00005874u, 0x00000000u, 0x000400fau, 0x000041c7u, 0x0000586du, 0x00005872u, 0x000200f8u, + 0x00005872u, 0x000200f9u, 0x00005874u, 0x000200f8u, 0x0000586du, 0x0007004fu, 0x0000004du, 0x0000586fu, + 0x00006de2u, 0x00006de2u, 0x00000001u, 0x00000000u, 0x00050082u, 0x0000004du, 0x00005871u, 0x00008572u, + 0x0000586fu, 0x000200f9u, 0x00005874u, 0x000200f8u, 0x00005874u, 0x000700f5u, 0x0000004du, 0x000072bdu, + 0x00005871u, 0x0000586du, 0x00006de2u, 0x00005872u, 0x00050082u, 0x0000004du, 0x0000587bu, 0x000045c5u, + 0x0000586au, 0x00050051u, 0x00000008u, 0x0000587du, 0x000072bdu, 0x00000000u, 0x00050050u, 0x0000004du, + 0x0000587eu, 0x0000587du, 0x0000587du, 0x00050084u, 0x0000004du, 0x0000587fu, 0x0000587bu, 0x0000587eu, + 0x00050082u, 0x0000004du, 0x00005882u, 0x000045c7u, 0x0000586au, 0x00050051u, 0x00000008u, 0x00005884u, + 0x000072bdu, 0x00000001u, 0x00050050u, 0x0000004du, 0x00005885u, 0x00005884u, 0x00005884u, 0x00050084u, + 0x0000004du, 0x00005886u, 0x00005882u, 0x00005885u, 0x00050080u, 0x0000004du, 0x00005888u, 0x0000587fu, + 0x00005886u, 0x00050080u, 0x0000004du, 0x0000588bu, 0x00005888u, 0x00000c0eu, 0x000500c3u, 0x0000004du, + 0x0000588eu, 0x0000588bu, 0x00008568u, 0x00050080u, 0x0000004du, 0x00005891u, 0x0000588eu, 0x0000586au, + 0x000200f9u, 0x000045ccu, 0x000200f8u, 0x000045b1u, 0x0007004fu, 0x0000004du, 0x000045b3u, 0x00006e61u, + 0x00006e61u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000004du, 0x000045b5u, 0x00006fcbu, 0x00006fcbu, + 0x00000002u, 0x00000003u, 0x00050080u, 0x0000004du, 0x000045b6u, 0x000045b3u, 0x000045b5u, 0x0007004fu, + 0x0000004du, 0x000045b8u, 0x000071b7u, 0x000071b7u, 0x00000002u, 0x00000003u, 0x00050080u, 0x0000004du, + 0x000045b9u, 0x000045b6u, 0x000045b8u, 0x0007004fu, 0x0000004du, 0x000045bbu, 0x000070c4u, 0x000070c4u, + 0x00000002u, 0x00000003u, 0x00050080u, 0x0000004du, 0x000045bcu, 0x000045b9u, 0x000045bbu, 0x00050080u, + 0x0000004du, 0x000045beu, 0x000045bcu, 0x00008571u, 0x000500c3u, 0x0000004du, 0x000045c0u, 0x000045beu, + 0x00008571u, 0x000200f9u, 0x000045ccu, 0x000200f8u, 0x000045ccu, 0x000700f5u, 0x0000004du, 0x000072c3u, + 0x000045c0u, 0x000045b1u, 0x00005891u, 0x00005874u, 0x000200f9u, 0x000045e9u, 0x000200f8u, 0x000045e9u, + 0x000700f5u, 0x0000004du, 0x000072c2u, 0x000072c3u, 0x000045ccu, 0x000072adu, 0x000045e7u, 0x000700f5u, + 0x0000004du, 0x000072beu, 0x000072c0u, 0x000045ccu, 0x000072b1u, 0x000045e7u, 0x00050051u, 0x00000008u, + 0x000045ecu, 0x000072beu, 0x00000000u, 0x00050051u, 0x00000008u, 0x000045edu, 0x000072beu, 0x00000001u, + 0x00050051u, 0x00000008u, 0x000045eeu, 0x000072c2u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000045efu, + 0x000072c2u, 0x00000001u, 0x00070050u, 0x00000009u, 0x000045f0u, 0x000045ecu, 0x000045edu, 0x000045eeu, + 0x000045efu, 0x000200f9u, 0x000045f3u, 0x000200f8u, 0x000045f3u, 0x000700f5u, 0x00000009u, 0x000072eeu, + 0x000045f0u, 0x000045e9u, 0x00006e61u, 0x000045f1u, 0x000200f9u, 0x00004636u, 0x000200f8u, 0x00004636u, + 0x000700f5u, 0x00000009u, 0x000072edu, 0x000072eeu, 0x000045f3u, 0x000072efu, 0x00004635u, 0x000200f9u, + 0x00004637u, 0x000200f8u, 0x000044a6u, 0x000600cau, 0x00000009u, 0x000044adu, 0x00006d8cu, 0x00000187u, + 0x000001e8u, 0x000300f7u, 0x0000457eu, 0x00000000u, 0x000400fau, 0x00001a60u, 0x000044afu, 0x00004576u, + 0x000200f8u, 0x00004576u, 0x00050051u, 0x00000008u, 0x00004579u, 0x000044adu, 0x00000002u, 0x00070050u, + 0x00000009u, 0x0000457du, 0x00004579u, 0x00004579u, 0x00004579u, 0x00004579u, 0x000200f9u, 0x0000457eu, + 0x000200f8u, 0x000044afu, 0x000300f7u, 0x000044beu, 0x00000000u, 0x000400fau, 0x000041cdu, 0x000044b1u, + 0x000044bcu, 0x000200f8u, 0x000044bcu, 0x000200f9u, 0x000044beu, 0x000200f8u, 0x000044b1u, 0x00050050u, + 0x0000004du, 0x000044b6u, 0x000041e0u, 0x0000419du, 0x000500aau, 0x0000048bu, 0x000044b7u, 0x000044b6u, + 0x00000c0eu, 0x00050051u, 0x00000058u, 0x000044b8u, 0x000044b7u, 0x00000000u, 0x00050051u, 0x00000058u, + 0x000044b9u, 0x000044b7u, 0x00000001u, 0x00060050u, 0x0000103fu, 0x000044bau, 0x00001a8au, 0x000044b8u, + 0x000044b9u, 0x0004009bu, 0x00000058u, 0x000044bbu, 0x000044bau, 0x000200f9u, 0x000044beu, 0x000200f8u, + 0x000044beu, 0x000700f5u, 0x00000058u, 0x000072c5u, 0x000044bbu, 0x000044b1u, 0x000041c5u, 0x000044bcu, + 0x000300f7u, 0x000044cfu, 0x00000000u, 0x000400fau, 0x000041cdu, 0x000044c4u, 0x000044cdu, 0x000200f8u, + 0x000044cdu, 0x000200f9u, 0x000044cfu, 0x000200f8u, 0x000044c4u, 0x00050080u, 0x00000008u, 0x000044c8u, + 0x000041e0u, 0x0000419du, 0x000500afu, 0x00000058u, 0x000044c9u, 0x000044c8u, 0x000002e2u, 0x000400a8u, + 0x00000058u, 0x000044cbu, 0x000072c5u, 0x000500a7u, 0x00000058u, 0x000044ccu, 0x000044c9u, 0x000044cbu, + 0x000200f9u, 0x000044cfu, 0x000200f8u, 0x000044cfu, 0x000700f5u, 0x00000058u, 0x000072c8u, 0x000044ccu, + 0x000044c4u, 0x000041cfu, 0x000044cdu, 0x000300f7u, 0x000044d8u, 0x00000000u, 0x000400fau, 0x000072c8u, + 0x000044d2u, 0x000044d5u, 0x000200f8u, 0x000044d5u, 0x0007004fu, 0x0000004du, 0x000044d7u, 0x000044adu, + 0x000044adu, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000044d8u, 0x000200f8u, 0x000044d2u, 0x0007004fu, + 0x0000004du, 0x000044d4u, 0x000044adu, 0x000044adu, 0x00000001u, 0x00000000u, 0x000200f9u, 0x000044d8u, + 0x000200f8u, 0x000044d8u, 0x000700f5u, 0x0000004du, 0x000072c9u, 0x000044d4u, 0x000044d2u, 0x000044d7u, + 0x000044d5u, 0x000300f7u, 0x000044e1u, 0x00000000u, 0x000400fau, 0x000041cfu, 0x000044dbu, 0x000044deu, + 0x000200f8u, 0x000044deu, 0x0007004fu, 0x0000004du, 0x000044e0u, 0x000044adu, 0x000044adu, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x000044e1u, 0x000200f8u, 0x000044dbu, 0x0007004fu, 0x0000004du, 0x000044ddu, + 0x000044adu, 0x000044adu, 0x00000001u, 0x00000000u, 0x000200f9u, 0x000044e1u, 0x000200f8u, 0x000044e1u, + 0x000700f5u, 0x0000004du, 0x000072cau, 0x000044ddu, 0x000044dbu, 0x000044e0u, 0x000044deu, 0x000300f7u, + 0x00004521u, 0x00000000u, 0x000400fau, 0x000072c5u, 0x000044e4u, 0x00004502u, 0x000200f8u, 0x00004502u, + 0x000500a7u, 0x00000058u, 0x00004505u, 0x000072c8u, 0x000041cdu, 0x000300f7u, 0x0000450cu, 0x00000000u, + 0x000400fau, 0x00004505u, 0x00004506u, 0x00004509u, 0x000200f8u, 0x00004509u, 0x0007004fu, 0x0000004du, + 0x0000450bu, 0x00006e61u, 0x00006e61u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000450cu, 0x000200f8u, + 0x00004506u, 0x0007004fu, 0x0000004du, 0x00004508u, 0x000071b7u, 0x000071b7u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x0000450cu, 0x000200f8u, 0x0000450cu, 0x000700f5u, 0x0000004du, 0x000072d3u, 0x00004508u, + 0x00004506u, 0x0000450bu, 0x00004509u, 0x00050051u, 0x00000008u, 0x0000450fu, 0x000072c9u, 0x00000000u, + 0x0007004fu, 0x0000004du, 0x00004511u, 0x00006fcbu, 0x00006fcbu, 0x00000000u, 0x00000001u, 0x00050082u, + 0x0000004du, 0x00004513u, 0x00004511u, 0x000072d3u, 0x00050050u, 0x0000004du, 0x00004514u, 0x0000450fu, + 0x0000450fu, 0x00050084u, 0x0000004du, 0x00004515u, 0x00004514u, 0x00004513u, 0x00050051u, 0x00000008u, + 0x00004517u, 0x000072c9u, 0x00000001u, 0x0007004fu, 0x0000004du, 0x00004519u, 0x000070c4u, 0x000070c4u, + 0x00000000u, 0x00000001u, 0x00050082u, 0x0000004du, 0x0000451bu, 0x00004519u, 0x000072d3u, 0x00050050u, + 0x0000004du, 0x0000451cu, 0x00004517u, 0x00004517u, 0x00050084u, 0x0000004du, 0x0000451du, 0x0000451cu, + 0x0000451bu, 0x00050080u, 0x0000004du, 0x0000451eu, 0x00004515u, 0x0000451du, 0x00050080u, 0x0000004du, + 0x00004520u, 0x0000451eu, 0x00008576u, 0x000200f9u, 0x00004521u, 0x000200f8u, 0x000044e4u, 0x00050051u, + 0x00000008u, 0x000044e6u, 0x000072c9u, 0x00000000u, 0x0007004fu, 0x0000004du, 0x000044e8u, 0x000070c4u, + 0x000070c4u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000004du, 0x000044eau, 0x000071b7u, 0x000071b7u, + 0x00000000u, 0x00000001u, 0x00050082u, 0x0000004du, 0x000044ebu, 0x000044e8u, 0x000044eau, 0x00050050u, + 0x0000004du, 0x000044ecu, 0x000044e6u, 0x000044e6u, 0x00050084u, 0x0000004du, 0x000044edu, 0x000044ecu, + 0x000044ebu, 0x00050051u, 0x00000008u, 0x000044efu, 0x000072c9u, 0x00000001u, 0x0007004fu, 0x0000004du, + 0x000044f1u, 0x00006fcbu, 0x00006fcbu, 0x00000000u, 0x00000001u, 0x00050082u, 0x0000004du, 0x000044f4u, + 0x000044f1u, 0x000044eau, 0x00050050u, 0x0000004du, 0x000044f5u, 0x000044efu, 0x000044efu, 0x00050084u, + 0x0000004du, 0x000044f6u, 0x000044f5u, 0x000044f4u, 0x00050080u, 0x0000004du, 0x000044f7u, 0x000044edu, + 0x000044f6u, 0x0007004fu, 0x0000004du, 0x000044f9u, 0x00006e61u, 0x00006e61u, 0x00000000u, 0x00000001u, + 0x00050082u, 0x0000004du, 0x000044fcu, 0x000044f9u, 0x000044eau, 0x000500c4u, 0x0000004du, 0x000044feu, + 0x000044fcu, 0x00008575u, 0x00050080u, 0x0000004du, 0x000044ffu, 0x000044f7u, 0x000044feu, 0x00050080u, + 0x0000004du, 0x00004501u, 0x000044ffu, 0x00008576u, 0x000200f9u, 0x00004521u, 0x000200f8u, 0x00004521u, + 0x000700f5u, 0x0000004du, 0x000072e8u, 0x00004501u, 0x000044e4u, 0x00004520u, 0x0000450cu, 0x000300f7u, + 0x00004560u, 0x00000000u, 0x000400fau, 0x000041c5u, 0x00004523u, 0x00004541u, 0x000200f8u, 0x00004541u, + 0x000500a7u, 0x00000058u, 0x00004544u, 0x000041cfu, 0x000041cdu, 0x000300f7u, 0x0000454bu, 0x00000000u, + 0x000400fau, 0x00004544u, 0x00004545u, 0x00004548u, 0x000200f8u, 0x00004548u, 0x0007004fu, 0x0000004du, + 0x0000454au, 0x00006e61u, 0x00006e61u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x0000454bu, 0x000200f8u, + 0x00004545u, 0x0007004fu, 0x0000004du, 0x00004547u, 0x000071b7u, 0x000071b7u, 0x00000002u, 0x00000003u, + 0x000200f9u, 0x0000454bu, 0x000200f8u, 0x0000454bu, 0x000700f5u, 0x0000004du, 0x000072e2u, 0x00004547u, + 0x00004545u, 0x0000454au, 0x00004548u, 0x00050051u, 0x00000008u, 0x0000454eu, 0x000072cau, 0x00000000u, + 0x0007004fu, 0x0000004du, 0x00004550u, 0x00006fcbu, 0x00006fcbu, 0x00000002u, 0x00000003u, 0x00050082u, + 0x0000004du, 0x00004552u, 0x00004550u, 0x000072e2u, 0x00050050u, 0x0000004du, 0x00004553u, 0x0000454eu, + 0x0000454eu, 0x00050084u, 0x0000004du, 0x00004554u, 0x00004553u, 0x00004552u, 0x00050051u, 0x00000008u, + 0x00004556u, 0x000072cau, 0x00000001u, 0x0007004fu, 0x0000004du, 0x00004558u, 0x000070c4u, 0x000070c4u, + 0x00000002u, 0x00000003u, 0x00050082u, 0x0000004du, 0x0000455au, 0x00004558u, 0x000072e2u, 0x00050050u, + 0x0000004du, 0x0000455bu, 0x00004556u, 0x00004556u, 0x00050084u, 0x0000004du, 0x0000455cu, 0x0000455bu, + 0x0000455au, 0x00050080u, 0x0000004du, 0x0000455du, 0x00004554u, 0x0000455cu, 0x00050080u, 0x0000004du, + 0x0000455fu, 0x0000455du, 0x00008576u, 0x000200f9u, 0x00004560u, 0x000200f8u, 0x00004523u, 0x00050051u, + 0x00000008u, 0x00004525u, 0x000072cau, 0x00000000u, 0x0007004fu, 0x0000004du, 0x00004527u, 0x000070c4u, + 0x000070c4u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000004du, 0x00004529u, 0x000071b7u, 0x000071b7u, + 0x00000002u, 0x00000003u, 0x00050082u, 0x0000004du, 0x0000452au, 0x00004527u, 0x00004529u, 0x00050050u, + 0x0000004du, 0x0000452bu, 0x00004525u, 0x00004525u, 0x00050084u, 0x0000004du, 0x0000452cu, 0x0000452bu, + 0x0000452au, 0x00050051u, 0x00000008u, 0x0000452eu, 0x000072cau, 0x00000001u, 0x0007004fu, 0x0000004du, + 0x00004530u, 0x00006fcbu, 0x00006fcbu, 0x00000002u, 0x00000003u, 0x00050082u, 0x0000004du, 0x00004533u, + 0x00004530u, 0x00004529u, 0x00050050u, 0x0000004du, 0x00004534u, 0x0000452eu, 0x0000452eu, 0x00050084u, + 0x0000004du, 0x00004535u, 0x00004534u, 0x00004533u, 0x00050080u, 0x0000004du, 0x00004536u, 0x0000452cu, + 0x00004535u, 0x0007004fu, 0x0000004du, 0x00004538u, 0x00006e61u, 0x00006e61u, 0x00000002u, 0x00000003u, + 0x00050082u, 0x0000004du, 0x0000453bu, 0x00004538u, 0x00004529u, 0x000500c4u, 0x0000004du, 0x0000453du, + 0x0000453bu, 0x00008575u, 0x00050080u, 0x0000004du, 0x0000453eu, 0x00004536u, 0x0000453du, 0x00050080u, + 0x0000004du, 0x00004540u, 0x0000453eu, 0x00008576u, 0x000200f9u, 0x00004560u, 0x000200f8u, 0x00004560u, + 0x000700f5u, 0x0000004du, 0x000072eau, 0x00004540u, 0x00004523u, 0x0000455fu, 0x0000454bu, 0x00050051u, + 0x00000008u, 0x00004563u, 0x000072e8u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00004564u, 0x000072e8u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00004565u, 0x000072eau, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00004566u, 0x000072eau, 0x00000001u, 0x00070050u, 0x00000009u, 0x00004567u, 0x00004563u, 0x00004564u, + 0x00004565u, 0x00004566u, 0x000500c3u, 0x00000009u, 0x0000456au, 0x00004567u, 0x0000856fu, 0x00050051u, + 0x00000008u, 0x0000456cu, 0x000044adu, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000456eu, 0x0000456cu, + 0x0000456cu, 0x0000456cu, 0x0000456cu, 0x00050080u, 0x00000009u, 0x0000456fu, 0x0000456au, 0x0000456eu, + 0x000200f9u, 0x0000457eu, 0x000200f8u, 0x0000457eu, 0x000700f5u, 0x00000009u, 0x000072ecu, 0x0000456fu, + 0x00004560u, 0x0000457du, 0x00004576u, 0x000200f9u, 0x00004637u, 0x000200f8u, 0x00004637u, 0x000700f5u, + 0x00000009u, 0x000072ebu, 0x000072ecu, 0x0000457eu, 0x000072edu, 0x00004636u, 0x000400a8u, 0x00000058u, + 0x0000463bu, 0x00001a99u, 0x000500a7u, 0x00000058u, 0x0000463cu, 0x00001bcau, 0x0000463bu, 0x000300f7u, + 0x00004641u, 0x00000000u, 0x000400fau, 0x0000463cu, 0x0000463du, 0x00004641u, 0x000200f8u, 0x0000463du, + 0x000600cau, 0x00000009u, 0x000058a0u, 0x000072ebu, 0x00000187u, 0x000001e8u, 0x00050051u, 0x00000008u, + 0x000058a2u, 0x000058a0u, 0x00000002u, 0x00050051u, 0x00000008u, 0x000058a4u, 0x00002243u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000058a6u, 0x000058a0u, 0x00000001u, 0x00050084u, 0x00000008u, 0x000058a7u, + 0x000058a4u, 0x000058a6u, 0x00050080u, 0x00000008u, 0x000058a8u, 0x000058a7u, 0x00000325u, 0x000500c3u, + 0x00000008u, 0x000058a9u, 0x000058a8u, 0x000001e2u, 0x00050080u, 0x00000008u, 0x000058aau, 0x000058a2u, + 0x000058a9u, 0x00050051u, 0x00000008u, 0x000058aeu, 0x00002243u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000058b0u, 0x000058a0u, 0x00000000u, 0x00050084u, 0x00000008u, 0x000058b1u, 0x000058aeu, 0x000058b0u, + 0x00050051u, 0x00000008u, 0x000058b3u, 0x00002243u, 0x00000002u, 0x00050084u, 0x00000008u, 0x000058b6u, + 0x000058b3u, 0x000058a6u, 0x00050080u, 0x00000008u, 0x000058b7u, 0x000058b1u, 0x000058b6u, 0x00050080u, + 0x00000008u, 0x000058b8u, 0x000058b7u, 0x00000325u, 0x000500c3u, 0x00000008u, 0x000058b9u, 0x000058b8u, + 0x000001e2u, 0x00050080u, 0x00000008u, 0x000058bau, 0x000058a2u, 0x000058b9u, 0x00050051u, 0x00000008u, + 0x000058beu, 0x00002243u, 0x00000003u, 0x00050084u, 0x00000008u, 0x000058c1u, 0x000058beu, 0x000058b0u, + 0x00050080u, 0x00000008u, 0x000058c2u, 0x000058c1u, 0x00000325u, 0x000500c3u, 0x00000008u, 0x000058c3u, + 0x000058c2u, 0x000001e2u, 0x00050080u, 0x00000008u, 0x000058c4u, 0x000058a2u, 0x000058c3u, 0x00070050u, + 0x00000009u, 0x000058cbu, 0x000058aau, 0x000058bau, 0x000058c4u, 0x000058a2u, 0x000200f9u, 0x00004641u, + 0x000200f8u, 0x00004641u, 0x000700f5u, 0x00000009u, 0x000072f1u, 0x000072ebu, 0x00004637u, 0x000058cbu, + 0x0000463du, 0x000200f9u, 0x00001beau, 0x000200f8u, 0x00001bccu, 0x000600cau, 0x00000009u, 0x00003fb1u, + 0x00006d8cu, 0x00000187u, 0x000001e8u, 0x00050051u, 0x00000008u, 0x00003fb3u, 0x00003fb1u, 0x00000002u, + 0x00050051u, 0x00000008u, 0x00003fb5u, 0x00002243u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00003fb7u, + 0x00003fb1u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00003fb8u, 0x00003fb5u, 0x00003fb7u, 0x00050080u, + 0x00000008u, 0x00003fb9u, 0x00003fb8u, 0x00000325u, 0x000500c3u, 0x00000008u, 0x00003fbau, 0x00003fb9u, + 0x000001e2u, 0x00050080u, 0x00000008u, 0x00003fbbu, 0x00003fb3u, 0x00003fbau, 0x00050051u, 0x00000008u, + 0x00003fbfu, 0x00002243u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00003fc1u, 0x00003fb1u, 0x00000000u, + 0x00050084u, 0x00000008u, 0x00003fc2u, 0x00003fbfu, 0x00003fc1u, 0x00050051u, 0x00000008u, 0x00003fc4u, + 0x00002243u, 0x00000002u, 0x00050084u, 0x00000008u, 0x00003fc7u, 0x00003fc4u, 0x00003fb7u, 0x00050080u, + 0x00000008u, 0x00003fc8u, 0x00003fc2u, 0x00003fc7u, 0x00050080u, 0x00000008u, 0x00003fc9u, 0x00003fc8u, + 0x00000325u, 0x000500c3u, 0x00000008u, 0x00003fcau, 0x00003fc9u, 0x000001e2u, 0x00050080u, 0x00000008u, + 0x00003fcbu, 0x00003fb3u, 0x00003fcau, 0x00050051u, 0x00000008u, 0x00003fcfu, 0x00002243u, 0x00000003u, + 0x00050084u, 0x00000008u, 0x00003fd2u, 0x00003fcfu, 0x00003fc1u, 0x00050080u, 0x00000008u, 0x00003fd3u, + 0x00003fd2u, 0x00000325u, 0x000500c3u, 0x00000008u, 0x00003fd4u, 0x00003fd3u, 0x000001e2u, 0x00050080u, + 0x00000008u, 0x00003fd5u, 0x00003fb3u, 0x00003fd4u, 0x00070050u, 0x00000009u, 0x00003fdcu, 0x00003fbbu, + 0x00003fcbu, 0x00003fd5u, 0x00003fb3u, 0x000200f9u, 0x00001beau, 0x000200f8u, 0x00001beau, 0x000700f5u, + 0x00000009u, 0x00007733u, 0x00003fdcu, 0x00001bccu, 0x000072f1u, 0x00004641u, 0x000200f9u, 0x00001bebu, + 0x000200f8u, 0x00001bebu, 0x000700f5u, 0x00000009u, 0x00007684u, 0x000067e2u, 0x00001bc5u, 0x00007733u, + 0x00001beau, 0x000600a9u, 0x00000008u, 0x00001beeu, 0x00001a7bu, 0x00000196u, 0x00000187u, 0x000500c3u, + 0x00000008u, 0x00001befu, 0x00006630u, 0x00001beeu, 0x000500c3u, 0x00000008u, 0x00001bf1u, 0x0000857fu, + 0x00000199u, 0x000500c7u, 0x00000008u, 0x00001bf3u, 0x0000857fu, 0x0000019cu, 0x000500b1u, 0x00000058u, + 0x000058d1u, 0x00001bf1u, 0x00000199u, 0x000300f7u, 0x000058e4u, 0x00000000u, 0x000400fau, 0x000058d1u, + 0x000058d2u, 0x000058ddu, 0x000200f8u, 0x000058ddu, 0x000500aau, 0x00000058u, 0x000058dfu, 0x00001bf1u, + 0x00000199u, 0x000300f7u, 0x000058e3u, 0x00000000u, 0x000400fau, 0x000058dfu, 0x000058e0u, 0x000058e2u, + 0x000200f8u, 0x000058e2u, 0x000200f9u, 0x000058e3u, 0x000200f8u, 0x000058e0u, 0x000500c7u, 0x00000008u, + 0x0000590cu, 0x00007505u, 0x000002ebu, 0x000200f9u, 0x000058e3u, 0x000200f8u, 0x000058e3u, 0x000700f5u, + 0x00000008u, 0x0000760du, 0x0000590cu, 0x000058e0u, 0x00000187u, 0x000058e2u, 0x000200f9u, 0x000058e4u, + 0x000200f8u, 0x000058d2u, 0x000500c7u, 0x00000008u, 0x000058d5u, 0x00001befu, 0x0000019cu, 0x00050084u, + 0x00000008u, 0x000058d6u, 0x000058d5u, 0x0000019fu, 0x000500c7u, 0x00000008u, 0x000058d8u, 0x00006634u, + 0x0000019cu, 0x00050080u, 0x00000008u, 0x000058d9u, 0x000058d6u, 0x000058d8u, 0x0003003eu, 0x000058ccu, + 0x00001285u, 0x00060041u, 0x00000038u, 0x000058dau, 0x000058ccu, 0x00001bf1u, 0x000058d9u, 0x0004003du, + 0x00000008u, 0x000058dbu, 0x000058dau, 0x00050084u, 0x00000008u, 0x000058dcu, 0x000058dbu, 0x00001291u, + 0x000200f9u, 0x000058e4u, 0x000200f8u, 0x000058e4u, 0x000700f5u, 0x00000008u, 0x0000760cu, 0x000058dcu, + 0x000058d2u, 0x0000760du, 0x000058e3u, 0x000500aau, 0x00000058u, 0x000058e6u, 0x00001bf3u, 0x0000019cu, + 0x000300f7u, 0x00005908u, 0x00000000u, 0x000400fau, 0x000058e6u, 0x000058e7u, 0x000058e8u, 0x000200f8u, + 0x000058e8u, 0x000500aau, 0x00000058u, 0x000058eau, 0x00001bf3u, 0x00000199u, 0x000300f7u, 0x00005907u, + 0x00000000u, 0x000400fau, 0x000058eau, 0x000058ebu, 0x000058edu, 0x000200f8u, 0x000058edu, 0x000500afu, + 0x00000058u, 0x000058efu, 0x00001bf1u, 0x00000199u, 0x000300f7u, 0x000058feu, 0x00000000u, 0x000400fau, + 0x000058efu, 0x000058f0u, 0x000058fbu, 0x000200f8u, 0x000058fbu, 0x000500c7u, 0x00000008u, 0x000058fdu, + 0x0000760cu, 0x000001a8u, 0x000200f9u, 0x000058feu, 0x000200f8u, 0x000058f0u, 0x000500c7u, 0x00000008u, + 0x000058f2u, 0x00001bf1u, 0x00000196u, 0x000500c7u, 0x00000008u, 0x000058f4u, 0x00001befu, 0x0000019cu, + 0x00050084u, 0x00000008u, 0x000058f5u, 0x000058f4u, 0x0000019fu, 0x000500c7u, 0x00000008u, 0x000058f7u, + 0x00006634u, 0x0000019cu, 0x00050080u, 0x00000008u, 0x000058f8u, 0x000058f5u, 0x000058f7u, 0x0003003eu, + 0x000058ceu, 0x00001285u, 0x00060041u, 0x00000038u, 0x000058f9u, 0x000058ceu, 0x000058f2u, 0x000058f8u, + 0x0004003du, 0x00000008u, 0x000058fau, 0x000058f9u, 0x000200f9u, 0x000058feu, 0x000200f8u, 0x000058feu, + 0x000700f5u, 0x00000008u, 0x0000760eu, 0x000058fau, 0x000058f0u, 0x000058fdu, 0x000058fbu, 0x000500aau, + 0x00000058u, 0x00005901u, 0x00001bf3u, 0x00000196u, 0x000300f7u, 0x00005906u, 0x00000000u, 0x000400fau, + 0x00005901u, 0x00005902u, 0x00005906u, 0x000200f8u, 0x00005902u, 0x000400c8u, 0x00000008u, 0x00005904u, + 0x0000760eu, 0x000500c7u, 0x00000008u, 0x00005905u, 0x00005904u, 0x000001a8u, 0x000200f9u, 0x00005906u, + 0x000200f8u, 0x00005906u, 0x000700f5u, 0x00000008u, 0x00007617u, 0x0000760eu, 0x000058feu, 0x00005905u, + 0x00005902u, 0x000200f9u, 0x00005907u, 0x000200f8u, 0x000058ebu, 0x000500c7u, 0x00000008u, 0x00005910u, + 0x00007505u, 0x000001a8u, 0x000200f9u, 0x00005907u, 0x000200f8u, 0x00005907u, 0x000700f5u, 0x00000008u, + 0x00007616u, 0x00005910u, 0x000058ebu, 0x00007617u, 0x00005906u, 0x000200f9u, 0x00005908u, 0x000200f8u, + 0x000058e7u, 0x000200f9u, 0x00005908u, 0x000200f8u, 0x00005908u, 0x000700f5u, 0x00000008u, 0x00007615u, + 0x00000187u, 0x000058e7u, 0x00007616u, 0x00005907u, 0x000300f7u, 0x00001c66u, 0x00000000u, 0x000400fau, + 0x00001a78u, 0x00001bf9u, 0x00001c47u, 0x000200f8u, 0x00001c47u, 0x000500c7u, 0x00000008u, 0x00005c69u, + 0x00007505u, 0x000001a8u, 0x000500c4u, 0x00000008u, 0x00005c6au, 0x00005c69u, 0x000001a5u, 0x000500c5u, + 0x00000008u, 0x00005c6bu, 0x00005c6au, 0x000002e2u, 0x00050051u, 0x00000008u, 0x00005c88u, 0x0000785bu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00005c8au, 0x00007971u, 0x00000000u, 0x000300f7u, 0x00005ce3u, + 0x00000000u, 0x000f00fbu, 0x00005c88u, 0x00005ccau, 0x00000000u, 0x00005cceu, 0x00000001u, 0x00005cd2u, + 0x00000002u, 0x00005cd6u, 0x00000004u, 0x00005cdau, 0x00000007u, 0x00005cdeu, 0x00000006u, 0x00005ce2u, + 0x000200f8u, 0x00005ce2u, 0x000200f9u, 0x00005ce3u, 0x000200f8u, 0x00005cdeu, 0x00060050u, 0x00000052u, + 0x00005ce1u, 0x00005c6bu, 0x00005c6bu, 0x00005c6bu, 0x000200f9u, 0x00005ce3u, 0x000200f8u, 0x00005cdau, + 0x0008004fu, 0x00000052u, 0x00005cddu, 0x0000229eu, 0x0000229eu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005ce3u, 0x000200f8u, 0x00005cd6u, 0x0008004fu, 0x00000052u, 0x00005cd9u, 0x00007684u, + 0x00007684u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005ce3u, 0x000200f8u, 0x00005cd2u, + 0x0008004fu, 0x00000052u, 0x00005cd5u, 0x00006d8cu, 0x00006d8cu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005ce3u, 0x000200f8u, 0x00005cceu, 0x000200f9u, 0x00005ce3u, 0x000200f8u, 0x00005ccau, + 0x0008004fu, 0x00000052u, 0x00005ccdu, 0x00002214u, 0x00002214u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005ce3u, 0x000200f8u, 0x00005ce3u, 0x001100f5u, 0x00000052u, 0x00007b8du, 0x00005ccdu, + 0x00005ccau, 0x0000857du, 0x00005cceu, 0x00005cd5u, 0x00005cd2u, 0x00005cd9u, 0x00005cd6u, 0x00005cddu, + 0x00005cdau, 0x00005ce1u, 0x00005cdeu, 0x0000130cu, 0x00005ce2u, 0x000300f7u, 0x00005cf5u, 0x00000000u, + 0x000d00fbu, 0x00005c8au, 0x00005ce5u, 0x00000000u, 0x00005ce8u, 0x00000001u, 0x00005cebu, 0x00000002u, + 0x00005ceeu, 0x00000004u, 0x00005cf1u, 0x00000006u, 0x00005cf4u, 0x000200f8u, 0x00005cf4u, 0x000200f9u, + 0x00005cf5u, 0x000200f8u, 0x00005cf1u, 0x00050051u, 0x00000008u, 0x00005cf3u, 0x0000229eu, 0x00000003u, + 0x000200f9u, 0x00005cf5u, 0x000200f8u, 0x00005ceeu, 0x00050051u, 0x00000008u, 0x00005cf0u, 0x00007684u, + 0x00000003u, 0x000200f9u, 0x00005cf5u, 0x000200f8u, 0x00005cebu, 0x00050051u, 0x00000008u, 0x00005cedu, + 0x00006d8cu, 0x00000003u, 0x000200f9u, 0x00005cf5u, 0x000200f8u, 0x00005ce8u, 0x000200f9u, 0x00005cf5u, + 0x000200f8u, 0x00005ce5u, 0x00050051u, 0x00000008u, 0x00005ce7u, 0x00002214u, 0x00000003u, 0x000200f9u, + 0x00005cf5u, 0x000200f8u, 0x00005cf5u, 0x000f00f5u, 0x00000008u, 0x00007b8eu, 0x00005ce7u, 0x00005ce5u, + 0x00000187u, 0x00005ce8u, 0x00005cedu, 0x00005cebu, 0x00005cf0u, 0x00005ceeu, 0x00005cf3u, 0x00005cf1u, + 0x0000130bu, 0x00005cf4u, 0x00050051u, 0x00000008u, 0x00005cf8u, 0x00007b8du, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00005cf9u, 0x00007b8du, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005cfau, 0x00007b8du, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00005cfbu, 0x00005cf8u, 0x00005cf9u, 0x00005cfau, 0x00007b8eu, + 0x00050051u, 0x00000008u, 0x00005c8eu, 0x0000785bu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005c90u, + 0x00007971u, 0x00000001u, 0x000300f7u, 0x00005d1du, 0x00000000u, 0x000d00fbu, 0x00005c8eu, 0x00005d01u, + 0x00000000u, 0x00005d05u, 0x00000001u, 0x00005d09u, 0x00000002u, 0x00005d0du, 0x00000004u, 0x00005d11u, + 0x00000007u, 0x00005d15u, 0x000200f8u, 0x00005d15u, 0x00050051u, 0x00000008u, 0x00005d17u, 0x00002219u, + 0x00000001u, 0x000500c4u, 0x00000008u, 0x00005d18u, 0x00005d17u, 0x000001e2u, 0x00050051u, 0x00000008u, + 0x00005d1au, 0x00002219u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x00005d1bu, 0x00005d18u, 0x00005d1au, + 0x00060050u, 0x00000052u, 0x00005d1cu, 0x00005d1bu, 0x00005d1bu, 0x00005d1bu, 0x000200f9u, 0x00005d1du, + 0x000200f8u, 0x00005d11u, 0x0008004fu, 0x00000052u, 0x00005d14u, 0x0000229eu, 0x0000229eu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d1du, 0x000200f8u, 0x00005d0du, 0x0008004fu, 0x00000052u, + 0x00005d10u, 0x00007684u, 0x00007684u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d1du, + 0x000200f8u, 0x00005d09u, 0x0008004fu, 0x00000052u, 0x00005d0cu, 0x00006d8cu, 0x00006d8cu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d1du, 0x000200f8u, 0x00005d05u, 0x000200f9u, 0x00005d1du, + 0x000200f8u, 0x00005d01u, 0x0008004fu, 0x00000052u, 0x00005d04u, 0x00002219u, 0x00002219u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d1du, 0x000200f8u, 0x00005d1du, 0x000f00f5u, 0x00000052u, + 0x00007b90u, 0x00005d04u, 0x00005d01u, 0x0000857du, 0x00005d05u, 0x00005d0cu, 0x00005d09u, 0x00005d10u, + 0x00005d0du, 0x00005d14u, 0x00005d11u, 0x00005d1cu, 0x00005d15u, 0x000300f7u, 0x00005d2fu, 0x00000000u, + 0x000d00fbu, 0x00005c90u, 0x00005d1fu, 0x00000000u, 0x00005d22u, 0x00000001u, 0x00005d25u, 0x00000002u, + 0x00005d28u, 0x00000004u, 0x00005d2bu, 0x00000006u, 0x00005d2eu, 0x000200f8u, 0x00005d2eu, 0x000200f9u, + 0x00005d2fu, 0x000200f8u, 0x00005d2bu, 0x00050051u, 0x00000008u, 0x00005d2du, 0x0000229eu, 0x00000003u, + 0x000200f9u, 0x00005d2fu, 0x000200f8u, 0x00005d28u, 0x00050051u, 0x00000008u, 0x00005d2au, 0x00007684u, + 0x00000003u, 0x000200f9u, 0x00005d2fu, 0x000200f8u, 0x00005d25u, 0x00050051u, 0x00000008u, 0x00005d27u, + 0x00006d8cu, 0x00000003u, 0x000200f9u, 0x00005d2fu, 0x000200f8u, 0x00005d22u, 0x000200f9u, 0x00005d2fu, + 0x000200f8u, 0x00005d1fu, 0x00050051u, 0x00000008u, 0x00005d21u, 0x00002219u, 0x00000003u, 0x000200f9u, + 0x00005d2fu, 0x000200f8u, 0x00005d2fu, 0x000f00f5u, 0x00000008u, 0x00007b91u, 0x00005d21u, 0x00005d1fu, + 0x00000187u, 0x00005d22u, 0x00005d27u, 0x00005d25u, 0x00005d2au, 0x00005d28u, 0x00005d2du, 0x00005d2bu, + 0x0000130bu, 0x00005d2eu, 0x00050051u, 0x00000008u, 0x00005d32u, 0x00007b90u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00005d33u, 0x00007b90u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005d34u, 0x00007b90u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00005d35u, 0x00005d32u, 0x00005d33u, 0x00005d34u, 0x00007b91u, + 0x00050051u, 0x00000008u, 0x00005c94u, 0x0000785bu, 0x00000002u, 0x00050051u, 0x00000008u, 0x00005c96u, + 0x00007971u, 0x00000002u, 0x000300f7u, 0x00005d6bu, 0x00000000u, 0x001700fbu, 0x00005c94u, 0x00005d3bu, + 0x00000000u, 0x00005d3fu, 0x00000007u, 0x00005d43u, 0x00000001u, 0x00005d47u, 0x00000002u, 0x00005d4bu, + 0x00000004u, 0x00005d4fu, 0x00000008u, 0x00005d53u, 0x00000009u, 0x00005d57u, 0x0000000bu, 0x00005d5bu, + 0x0000000du, 0x00005d5fu, 0x0000000fu, 0x00005d63u, 0x000200f8u, 0x00005d63u, 0x00050051u, 0x00000008u, + 0x00005d65u, 0x0000221eu, 0x00000001u, 0x000500c4u, 0x00000008u, 0x00005d66u, 0x00005d65u, 0x000001e2u, + 0x00050051u, 0x00000008u, 0x00005d68u, 0x0000221eu, 0x00000002u, 0x000500c5u, 0x00000008u, 0x00005d69u, + 0x00005d66u, 0x00005d68u, 0x00060050u, 0x00000052u, 0x00005d6au, 0x00005d69u, 0x00005d69u, 0x00005d69u, + 0x000200f9u, 0x00005d6bu, 0x000200f8u, 0x00005d5fu, 0x00060050u, 0x00000052u, 0x00005d62u, 0x0000773du, + 0x0000773du, 0x0000773du, 0x000200f9u, 0x00005d6bu, 0x000200f8u, 0x00005d5bu, 0x0008004fu, 0x00000052u, + 0x00005d5eu, 0x0000229eu, 0x0000229eu, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x00005d6bu, + 0x000200f8u, 0x00005d57u, 0x0008004fu, 0x00000052u, 0x00005d5au, 0x00007684u, 0x00007684u, 0x00000003u, + 0x00000003u, 0x00000003u, 0x000200f9u, 0x00005d6bu, 0x000200f8u, 0x00005d53u, 0x0008004fu, 0x00000052u, + 0x00005d56u, 0x00006d8cu, 0x00006d8cu, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x00005d6bu, + 0x000200f8u, 0x00005d4fu, 0x0008004fu, 0x00000052u, 0x00005d52u, 0x0000229eu, 0x0000229eu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d6bu, 0x000200f8u, 0x00005d4bu, 0x0008004fu, 0x00000052u, + 0x00005d4eu, 0x00007684u, 0x00007684u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d6bu, + 0x000200f8u, 0x00005d47u, 0x0008004fu, 0x00000052u, 0x00005d4au, 0x00006d8cu, 0x00006d8cu, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d6bu, 0x000200f8u, 0x00005d43u, 0x000200f9u, 0x00005d6bu, + 0x000200f8u, 0x00005d3fu, 0x000200f9u, 0x00005d6bu, 0x000200f8u, 0x00005d3bu, 0x0008004fu, 0x00000052u, + 0x00005d3eu, 0x0000221eu, 0x0000221eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d6bu, + 0x000200f8u, 0x00005d6bu, 0x001900f5u, 0x00000052u, 0x00007b93u, 0x00005d3eu, 0x00005d3bu, 0x0000857du, + 0x00005d3fu, 0x0000857du, 0x00005d43u, 0x00005d4au, 0x00005d47u, 0x00005d4eu, 0x00005d4bu, 0x00005d52u, + 0x00005d4fu, 0x00005d56u, 0x00005d53u, 0x00005d5au, 0x00005d57u, 0x00005d5eu, 0x00005d5bu, 0x00005d62u, + 0x00005d5fu, 0x00005d6au, 0x00005d63u, 0x000300f7u, 0x00005d7cu, 0x00000000u, 0x000b00fbu, 0x00005c96u, + 0x00005d6du, 0x00000000u, 0x00005d70u, 0x00000001u, 0x00005d73u, 0x00000002u, 0x00005d76u, 0x00000004u, + 0x00005d79u, 0x000200f8u, 0x00005d79u, 0x00050051u, 0x00000008u, 0x00005d7bu, 0x0000229eu, 0x00000003u, + 0x000200f9u, 0x00005d7cu, 0x000200f8u, 0x00005d76u, 0x00050051u, 0x00000008u, 0x00005d78u, 0x00007684u, + 0x00000003u, 0x000200f9u, 0x00005d7cu, 0x000200f8u, 0x00005d73u, 0x00050051u, 0x00000008u, 0x00005d75u, + 0x00006d8cu, 0x00000003u, 0x000200f9u, 0x00005d7cu, 0x000200f8u, 0x00005d70u, 0x000200f9u, 0x00005d7cu, + 0x000200f8u, 0x00005d6du, 0x00050051u, 0x00000008u, 0x00005d6fu, 0x0000221eu, 0x00000003u, 0x000200f9u, + 0x00005d7cu, 0x000200f8u, 0x00005d7cu, 0x000d00f5u, 0x00000008u, 0x00007b94u, 0x00005d6fu, 0x00005d6du, + 0x0000773du, 0x00005d70u, 0x00005d75u, 0x00005d73u, 0x00005d78u, 0x00005d76u, 0x00005d7bu, 0x00005d79u, + 0x00050051u, 0x00000008u, 0x00005d7fu, 0x00007b93u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005d80u, + 0x00007b93u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005d81u, 0x00007b93u, 0x00000002u, 0x00070050u, + 0x00000009u, 0x00005d82u, 0x00005d7fu, 0x00005d80u, 0x00005d81u, 0x00007b94u, 0x00050051u, 0x00000008u, + 0x00005c9au, 0x0000785bu, 0x00000003u, 0x00050051u, 0x00000008u, 0x00005c9cu, 0x00007971u, 0x00000003u, + 0x000300f7u, 0x00005d9du, 0x00000000u, 0x000d00fbu, 0x00005c9au, 0x00005d88u, 0x00000000u, 0x00005d8cu, + 0x00000001u, 0x00005d90u, 0x00000002u, 0x00005d94u, 0x00000004u, 0x00005d98u, 0x00000006u, 0x00005d9cu, + 0x000200f8u, 0x00005d9cu, 0x000200f9u, 0x00005d9du, 0x000200f8u, 0x00005d98u, 0x0008004fu, 0x00000052u, + 0x00005d9bu, 0x0000229eu, 0x0000229eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d9du, + 0x000200f8u, 0x00005d94u, 0x0008004fu, 0x00000052u, 0x00005d97u, 0x00007684u, 0x00007684u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d9du, 0x000200f8u, 0x00005d90u, 0x0008004fu, 0x00000052u, + 0x00005d93u, 0x00006d8cu, 0x00006d8cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d9du, + 0x000200f8u, 0x00005d8cu, 0x000200f9u, 0x00005d9du, 0x000200f8u, 0x00005d88u, 0x0008004fu, 0x00000052u, + 0x00005d8bu, 0x00002223u, 0x00002223u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005d9du, + 0x000200f8u, 0x00005d9du, 0x000f00f5u, 0x00000052u, 0x00007b96u, 0x00005d8bu, 0x00005d88u, 0x0000857du, + 0x00005d8cu, 0x00005d93u, 0x00005d90u, 0x00005d97u, 0x00005d94u, 0x00005d9bu, 0x00005d98u, 0x0000130cu, + 0x00005d9cu, 0x000300f7u, 0x00005dafu, 0x00000000u, 0x000d00fbu, 0x00005c9cu, 0x00005d9fu, 0x00000000u, + 0x00005da2u, 0x00000001u, 0x00005da5u, 0x00000002u, 0x00005da8u, 0x00000004u, 0x00005dabu, 0x00000006u, + 0x00005daeu, 0x000200f8u, 0x00005daeu, 0x000200f9u, 0x00005dafu, 0x000200f8u, 0x00005dabu, 0x00050051u, + 0x00000008u, 0x00005dadu, 0x0000229eu, 0x00000003u, 0x000200f9u, 0x00005dafu, 0x000200f8u, 0x00005da8u, + 0x00050051u, 0x00000008u, 0x00005daau, 0x00007684u, 0x00000003u, 0x000200f9u, 0x00005dafu, 0x000200f8u, + 0x00005da5u, 0x00050051u, 0x00000008u, 0x00005da7u, 0x00006d8cu, 0x00000003u, 0x000200f9u, 0x00005dafu, + 0x000200f8u, 0x00005da2u, 0x000200f9u, 0x00005dafu, 0x000200f8u, 0x00005d9fu, 0x00050051u, 0x00000008u, + 0x00005da1u, 0x00002223u, 0x00000003u, 0x000200f9u, 0x00005dafu, 0x000200f8u, 0x00005dafu, 0x000f00f5u, + 0x00000008u, 0x00007b97u, 0x00005da1u, 0x00005d9fu, 0x00000187u, 0x00005da2u, 0x00005da7u, 0x00005da5u, + 0x00005daau, 0x00005da8u, 0x00005dadu, 0x00005dabu, 0x0000130bu, 0x00005daeu, 0x00050051u, 0x00000008u, + 0x00005db2u, 0x00007b96u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005db3u, 0x00007b96u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00005db4u, 0x00007b96u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00005db5u, + 0x00005db2u, 0x00005db3u, 0x00005db4u, 0x00007b97u, 0x000600cau, 0x00000009u, 0x00005dbdu, 0x00005d82u, + 0x00000187u, 0x000001e8u, 0x00050082u, 0x00000009u, 0x00005ddfu, 0x00005cfbu, 0x00008565u, 0x000600cau, + 0x00000009u, 0x00005de0u, 0x00005ddfu, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, 0x00005de2u, + 0x00005de0u, 0x00008565u, 0x00050082u, 0x00000009u, 0x00005de7u, 0x00005d35u, 0x00008565u, 0x000600cau, + 0x00000009u, 0x00005de8u, 0x00005de7u, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, 0x00005deau, + 0x00005de8u, 0x00008565u, 0x00050082u, 0x00000009u, 0x00005defu, 0x00005db5u, 0x00008565u, 0x000600cau, + 0x00000009u, 0x00005df0u, 0x00005defu, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, 0x00005df2u, + 0x00005df0u, 0x00008565u, 0x00050082u, 0x00000009u, 0x00005dc6u, 0x00005de2u, 0x00005deau, 0x00050084u, + 0x00000009u, 0x00005dc8u, 0x00005dc6u, 0x00005dbdu, 0x00050080u, 0x00000009u, 0x00005dcbu, 0x00005dc8u, + 0x00008565u, 0x000500c3u, 0x00000009u, 0x00005dceu, 0x00005dcbu, 0x0000856fu, 0x00050080u, 0x00000009u, + 0x00005ddau, 0x00005dceu, 0x00005df2u, 0x00050082u, 0x00000009u, 0x00005df7u, 0x00005ddau, 0x00008565u, + 0x000600cau, 0x00000009u, 0x00005df9u, 0x00005df7u, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, + 0x00005dfcu, 0x00005df9u, 0x00008565u, 0x0008000cu, 0x00000009u, 0x00005dfeu, 0x00000001u, 0x0000002du, + 0x00005dfcu, 0x00000312u, 0x00000346u, 0x00050051u, 0x00000008u, 0x00005ca6u, 0x00005dfeu, 0x00000003u, + 0x00050080u, 0x00000008u, 0x00005ca9u, 0x00005ca6u, 0x00000196u, 0x000500c3u, 0x00000008u, 0x00005caau, + 0x00005ca9u, 0x000001e2u, 0x00050080u, 0x00000008u, 0x00005cabu, 0x00005ca6u, 0x00005caau, 0x000300f7u, + 0x00005cb8u, 0x00000000u, 0x000400fau, 0x00001a63u, 0x00005cadu, 0x00005cb5u, 0x000200f8u, 0x00005cb5u, + 0x000500c4u, 0x00000008u, 0x00005cb7u, 0x00001b0du, 0x000001a2u, 0x000200f9u, 0x00005cb8u, 0x000200f8u, + 0x00005cadu, 0x00050084u, 0x00000008u, 0x00005cb0u, 0x00005cabu, 0x00001b0du, 0x00050080u, 0x00000008u, + 0x00005cb1u, 0x00005cb0u, 0x0000019fu, 0x000500c3u, 0x00000008u, 0x00005cb2u, 0x00005cb1u, 0x0000019cu, + 0x000500c3u, 0x00000008u, 0x00005cb4u, 0x00005cb2u, 0x000001a2u, 0x000200f9u, 0x00005cb8u, 0x000200f8u, + 0x00005cb8u, 0x000700f5u, 0x00000008u, 0x00007ba6u, 0x00005cb4u, 0x00005cadu, 0x00001b0du, 0x00005cb5u, + 0x000700f5u, 0x00000008u, 0x00007ba1u, 0x00005cb2u, 0x00005cadu, 0x00005cb7u, 0x00005cb5u, 0x000300f7u, + 0x00005cc0u, 0x00000000u, 0x000400fau, 0x00001a66u, 0x00005cbau, 0x00005cbcu, 0x000200f8u, 0x00005cbcu, + 0x00050080u, 0x00000008u, 0x00005cbfu, 0x00005cabu, 0x00007615u, 0x000200f9u, 0x00005cc0u, 0x000200f8u, + 0x00005cbau, 0x000200f9u, 0x00005cc0u, 0x000200f8u, 0x00005cc0u, 0x000700f5u, 0x00000008u, 0x00007ba2u, + 0x00007ba1u, 0x00005cbau, 0x00005cbfu, 0x00005cbcu, 0x0008000cu, 0x00000008u, 0x00005cc2u, 0x00000001u, + 0x0000002du, 0x00007ba2u, 0x00000187u, 0x000002f0u, 0x00050051u, 0x00000008u, 0x00001c5fu, 0x00005dfeu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00001c60u, 0x00005dfeu, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00001c61u, 0x00005dfeu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00001c63u, 0x00001c5fu, 0x00001c60u, + 0x00001c61u, 0x00005cc2u, 0x000200f9u, 0x00001c66u, 0x000200f8u, 0x00001bf9u, 0x000500c7u, 0x00000008u, + 0x00005914u, 0x00007505u, 0x000001a8u, 0x000500c4u, 0x00000008u, 0x00005915u, 0x00005914u, 0x000001a5u, + 0x000500c5u, 0x00000008u, 0x00005916u, 0x00005915u, 0x000002e2u, 0x00050051u, 0x00000008u, 0x00005934u, + 0x00007bb6u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005936u, 0x00007cccu, 0x00000000u, 0x000300f7u, + 0x0000598fu, 0x00000000u, 0x000f00fbu, 0x00005934u, 0x00005976u, 0x00000000u, 0x0000597au, 0x00000001u, + 0x0000597eu, 0x00000002u, 0x00005982u, 0x00000004u, 0x00005986u, 0x00000007u, 0x0000598au, 0x00000006u, + 0x0000598eu, 0x000200f8u, 0x0000598eu, 0x000200f9u, 0x0000598fu, 0x000200f8u, 0x0000598au, 0x00060050u, + 0x00000052u, 0x0000598du, 0x00005916u, 0x00005916u, 0x00005916u, 0x000200f9u, 0x0000598fu, 0x000200f8u, + 0x00005986u, 0x0008004fu, 0x00000052u, 0x00005989u, 0x0000229eu, 0x0000229eu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x0000598fu, 0x000200f8u, 0x00005982u, 0x0008004fu, 0x00000052u, 0x00005985u, + 0x00007684u, 0x00007684u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x0000598fu, 0x000200f8u, + 0x0000597eu, 0x0008004fu, 0x00000052u, 0x00005981u, 0x00006d8cu, 0x00006d8cu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x0000598fu, 0x000200f8u, 0x0000597au, 0x000200f9u, 0x0000598fu, 0x000200f8u, + 0x00005976u, 0x0008004fu, 0x00000052u, 0x00005979u, 0x00002200u, 0x00002200u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x0000598fu, 0x000200f8u, 0x0000598fu, 0x001100f5u, 0x00000052u, 0x00007dd4u, + 0x00005979u, 0x00005976u, 0x0000857du, 0x0000597au, 0x00005981u, 0x0000597eu, 0x00005985u, 0x00005982u, + 0x00005989u, 0x00005986u, 0x0000598du, 0x0000598au, 0x0000130cu, 0x0000598eu, 0x000300f7u, 0x000059a1u, + 0x00000000u, 0x000d00fbu, 0x00005936u, 0x00005991u, 0x00000000u, 0x00005994u, 0x00000001u, 0x00005997u, + 0x00000002u, 0x0000599au, 0x00000004u, 0x0000599du, 0x00000006u, 0x000059a0u, 0x000200f8u, 0x000059a0u, + 0x000200f9u, 0x000059a1u, 0x000200f8u, 0x0000599du, 0x00050051u, 0x00000008u, 0x0000599fu, 0x0000229eu, + 0x00000003u, 0x000200f9u, 0x000059a1u, 0x000200f8u, 0x0000599au, 0x00050051u, 0x00000008u, 0x0000599cu, + 0x00007684u, 0x00000003u, 0x000200f9u, 0x000059a1u, 0x000200f8u, 0x00005997u, 0x00050051u, 0x00000008u, + 0x00005999u, 0x00006d8cu, 0x00000003u, 0x000200f9u, 0x000059a1u, 0x000200f8u, 0x00005994u, 0x000200f9u, + 0x000059a1u, 0x000200f8u, 0x00005991u, 0x00050051u, 0x00000008u, 0x00005993u, 0x00002200u, 0x00000003u, + 0x000200f9u, 0x000059a1u, 0x000200f8u, 0x000059a1u, 0x000f00f5u, 0x00000008u, 0x00007dd5u, 0x00005993u, + 0x00005991u, 0x00000187u, 0x00005994u, 0x00005999u, 0x00005997u, 0x0000599cu, 0x0000599au, 0x0000599fu, + 0x0000599du, 0x0000130bu, 0x000059a0u, 0x00050051u, 0x00000008u, 0x000059a4u, 0x00007dd4u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000059a5u, 0x00007dd4u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000059a6u, + 0x00007dd4u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000059a7u, 0x000059a4u, 0x000059a5u, 0x000059a6u, + 0x00007dd5u, 0x00050051u, 0x00000008u, 0x0000593au, 0x00007bb6u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x0000593cu, 0x00007cccu, 0x00000001u, 0x000300f7u, 0x000059c9u, 0x00000000u, 0x000d00fbu, 0x0000593au, + 0x000059adu, 0x00000000u, 0x000059b1u, 0x00000001u, 0x000059b5u, 0x00000002u, 0x000059b9u, 0x00000004u, + 0x000059bdu, 0x00000007u, 0x000059c1u, 0x000200f8u, 0x000059c1u, 0x00050051u, 0x00000008u, 0x000059c3u, + 0x00002205u, 0x00000001u, 0x000500c4u, 0x00000008u, 0x000059c4u, 0x000059c3u, 0x000001e2u, 0x00050051u, + 0x00000008u, 0x000059c6u, 0x00002205u, 0x00000002u, 0x000500c5u, 0x00000008u, 0x000059c7u, 0x000059c4u, + 0x000059c6u, 0x00060050u, 0x00000052u, 0x000059c8u, 0x000059c7u, 0x000059c7u, 0x000059c7u, 0x000200f9u, + 0x000059c9u, 0x000200f8u, 0x000059bdu, 0x0008004fu, 0x00000052u, 0x000059c0u, 0x0000229eu, 0x0000229eu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000059c9u, 0x000200f8u, 0x000059b9u, 0x0008004fu, + 0x00000052u, 0x000059bcu, 0x00007684u, 0x00007684u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x000059c9u, 0x000200f8u, 0x000059b5u, 0x0008004fu, 0x00000052u, 0x000059b8u, 0x00006d8cu, 0x00006d8cu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000059c9u, 0x000200f8u, 0x000059b1u, 0x000200f9u, + 0x000059c9u, 0x000200f8u, 0x000059adu, 0x0008004fu, 0x00000052u, 0x000059b0u, 0x00002205u, 0x00002205u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x000059c9u, 0x000200f8u, 0x000059c9u, 0x000f00f5u, + 0x00000052u, 0x00007dd7u, 0x000059b0u, 0x000059adu, 0x0000857du, 0x000059b1u, 0x000059b8u, 0x000059b5u, + 0x000059bcu, 0x000059b9u, 0x000059c0u, 0x000059bdu, 0x000059c8u, 0x000059c1u, 0x000300f7u, 0x000059dbu, + 0x00000000u, 0x000d00fbu, 0x0000593cu, 0x000059cbu, 0x00000000u, 0x000059ceu, 0x00000001u, 0x000059d1u, + 0x00000002u, 0x000059d4u, 0x00000004u, 0x000059d7u, 0x00000006u, 0x000059dau, 0x000200f8u, 0x000059dau, + 0x000200f9u, 0x000059dbu, 0x000200f8u, 0x000059d7u, 0x00050051u, 0x00000008u, 0x000059d9u, 0x0000229eu, + 0x00000003u, 0x000200f9u, 0x000059dbu, 0x000200f8u, 0x000059d4u, 0x00050051u, 0x00000008u, 0x000059d6u, + 0x00007684u, 0x00000003u, 0x000200f9u, 0x000059dbu, 0x000200f8u, 0x000059d1u, 0x00050051u, 0x00000008u, + 0x000059d3u, 0x00006d8cu, 0x00000003u, 0x000200f9u, 0x000059dbu, 0x000200f8u, 0x000059ceu, 0x000200f9u, + 0x000059dbu, 0x000200f8u, 0x000059cbu, 0x00050051u, 0x00000008u, 0x000059cdu, 0x00002205u, 0x00000003u, + 0x000200f9u, 0x000059dbu, 0x000200f8u, 0x000059dbu, 0x000f00f5u, 0x00000008u, 0x00007dd8u, 0x000059cdu, + 0x000059cbu, 0x00000187u, 0x000059ceu, 0x000059d3u, 0x000059d1u, 0x000059d6u, 0x000059d4u, 0x000059d9u, + 0x000059d7u, 0x0000130bu, 0x000059dau, 0x00050051u, 0x00000008u, 0x000059deu, 0x00007dd7u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000059dfu, 0x00007dd7u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000059e0u, + 0x00007dd7u, 0x00000002u, 0x00070050u, 0x00000009u, 0x000059e1u, 0x000059deu, 0x000059dfu, 0x000059e0u, + 0x00007dd8u, 0x00050051u, 0x00000008u, 0x00005940u, 0x00007bb6u, 0x00000002u, 0x00050051u, 0x00000008u, + 0x00005942u, 0x00007cccu, 0x00000002u, 0x000300f7u, 0x00005a17u, 0x00000000u, 0x001700fbu, 0x00005940u, + 0x000059e7u, 0x00000000u, 0x000059ebu, 0x00000007u, 0x000059efu, 0x00000001u, 0x000059f3u, 0x00000002u, + 0x000059f7u, 0x00000004u, 0x000059fbu, 0x00000008u, 0x000059ffu, 0x00000009u, 0x00005a03u, 0x0000000bu, + 0x00005a07u, 0x0000000du, 0x00005a0bu, 0x0000000fu, 0x00005a0fu, 0x000200f8u, 0x00005a0fu, 0x00050051u, + 0x00000008u, 0x00005a11u, 0x0000220au, 0x00000001u, 0x000500c4u, 0x00000008u, 0x00005a12u, 0x00005a11u, + 0x000001e2u, 0x00050051u, 0x00000008u, 0x00005a14u, 0x0000220au, 0x00000002u, 0x000500c5u, 0x00000008u, + 0x00005a15u, 0x00005a12u, 0x00005a14u, 0x00060050u, 0x00000052u, 0x00005a16u, 0x00005a15u, 0x00005a15u, + 0x00005a15u, 0x000200f9u, 0x00005a17u, 0x000200f8u, 0x00005a0bu, 0x00060050u, 0x00000052u, 0x00005a0eu, + 0x0000773du, 0x0000773du, 0x0000773du, 0x000200f9u, 0x00005a17u, 0x000200f8u, 0x00005a07u, 0x0008004fu, + 0x00000052u, 0x00005a0au, 0x0000229eu, 0x0000229eu, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, + 0x00005a17u, 0x000200f8u, 0x00005a03u, 0x0008004fu, 0x00000052u, 0x00005a06u, 0x00007684u, 0x00007684u, + 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x00005a17u, 0x000200f8u, 0x000059ffu, 0x0008004fu, + 0x00000052u, 0x00005a02u, 0x00006d8cu, 0x00006d8cu, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, + 0x00005a17u, 0x000200f8u, 0x000059fbu, 0x0008004fu, 0x00000052u, 0x000059feu, 0x0000229eu, 0x0000229eu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005a17u, 0x000200f8u, 0x000059f7u, 0x0008004fu, + 0x00000052u, 0x000059fau, 0x00007684u, 0x00007684u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00005a17u, 0x000200f8u, 0x000059f3u, 0x0008004fu, 0x00000052u, 0x000059f6u, 0x00006d8cu, 0x00006d8cu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005a17u, 0x000200f8u, 0x000059efu, 0x000200f9u, + 0x00005a17u, 0x000200f8u, 0x000059ebu, 0x000200f9u, 0x00005a17u, 0x000200f8u, 0x000059e7u, 0x0008004fu, + 0x00000052u, 0x000059eau, 0x0000220au, 0x0000220au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00005a17u, 0x000200f8u, 0x00005a17u, 0x001900f5u, 0x00000052u, 0x00007ddau, 0x000059eau, 0x000059e7u, + 0x0000857du, 0x000059ebu, 0x0000857du, 0x000059efu, 0x000059f6u, 0x000059f3u, 0x000059fau, 0x000059f7u, + 0x000059feu, 0x000059fbu, 0x00005a02u, 0x000059ffu, 0x00005a06u, 0x00005a03u, 0x00005a0au, 0x00005a07u, + 0x00005a0eu, 0x00005a0bu, 0x00005a16u, 0x00005a0fu, 0x000300f7u, 0x00005a28u, 0x00000000u, 0x000b00fbu, + 0x00005942u, 0x00005a19u, 0x00000000u, 0x00005a1cu, 0x00000001u, 0x00005a1fu, 0x00000002u, 0x00005a22u, + 0x00000004u, 0x00005a25u, 0x000200f8u, 0x00005a25u, 0x00050051u, 0x00000008u, 0x00005a27u, 0x0000229eu, + 0x00000003u, 0x000200f9u, 0x00005a28u, 0x000200f8u, 0x00005a22u, 0x00050051u, 0x00000008u, 0x00005a24u, + 0x00007684u, 0x00000003u, 0x000200f9u, 0x00005a28u, 0x000200f8u, 0x00005a1fu, 0x00050051u, 0x00000008u, + 0x00005a21u, 0x00006d8cu, 0x00000003u, 0x000200f9u, 0x00005a28u, 0x000200f8u, 0x00005a1cu, 0x000200f9u, + 0x00005a28u, 0x000200f8u, 0x00005a19u, 0x00050051u, 0x00000008u, 0x00005a1bu, 0x0000220au, 0x00000003u, + 0x000200f9u, 0x00005a28u, 0x000200f8u, 0x00005a28u, 0x000d00f5u, 0x00000008u, 0x00007ddbu, 0x00005a1bu, + 0x00005a19u, 0x0000773du, 0x00005a1cu, 0x00005a21u, 0x00005a1fu, 0x00005a24u, 0x00005a22u, 0x00005a27u, + 0x00005a25u, 0x00050051u, 0x00000008u, 0x00005a2bu, 0x00007ddau, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00005a2cu, 0x00007ddau, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005a2du, 0x00007ddau, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00005a2eu, 0x00005a2bu, 0x00005a2cu, 0x00005a2du, 0x00007ddbu, 0x00050051u, + 0x00000008u, 0x00005946u, 0x00007bb6u, 0x00000003u, 0x00050051u, 0x00000008u, 0x00005948u, 0x00007cccu, + 0x00000003u, 0x000300f7u, 0x00005a49u, 0x00000000u, 0x000d00fbu, 0x00005946u, 0x00005a34u, 0x00000000u, + 0x00005a38u, 0x00000001u, 0x00005a3cu, 0x00000002u, 0x00005a40u, 0x00000004u, 0x00005a44u, 0x00000006u, + 0x00005a48u, 0x000200f8u, 0x00005a48u, 0x000200f9u, 0x00005a49u, 0x000200f8u, 0x00005a44u, 0x0008004fu, + 0x00000052u, 0x00005a47u, 0x0000229eu, 0x0000229eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00005a49u, 0x000200f8u, 0x00005a40u, 0x0008004fu, 0x00000052u, 0x00005a43u, 0x00007684u, 0x00007684u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005a49u, 0x000200f8u, 0x00005a3cu, 0x0008004fu, + 0x00000052u, 0x00005a3fu, 0x00006d8cu, 0x00006d8cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00005a49u, 0x000200f8u, 0x00005a38u, 0x000200f9u, 0x00005a49u, 0x000200f8u, 0x00005a34u, 0x0008004fu, + 0x00000052u, 0x00005a37u, 0x0000220fu, 0x0000220fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00005a49u, 0x000200f8u, 0x00005a49u, 0x000f00f5u, 0x00000052u, 0x00007dddu, 0x00005a37u, 0x00005a34u, + 0x0000857du, 0x00005a38u, 0x00005a3fu, 0x00005a3cu, 0x00005a43u, 0x00005a40u, 0x00005a47u, 0x00005a44u, + 0x0000130cu, 0x00005a48u, 0x000300f7u, 0x00005a5bu, 0x00000000u, 0x000d00fbu, 0x00005948u, 0x00005a4bu, + 0x00000000u, 0x00005a4eu, 0x00000001u, 0x00005a51u, 0x00000002u, 0x00005a54u, 0x00000004u, 0x00005a57u, + 0x00000006u, 0x00005a5au, 0x000200f8u, 0x00005a5au, 0x000200f9u, 0x00005a5bu, 0x000200f8u, 0x00005a57u, + 0x00050051u, 0x00000008u, 0x00005a59u, 0x0000229eu, 0x00000003u, 0x000200f9u, 0x00005a5bu, 0x000200f8u, + 0x00005a54u, 0x00050051u, 0x00000008u, 0x00005a56u, 0x00007684u, 0x00000003u, 0x000200f9u, 0x00005a5bu, + 0x000200f8u, 0x00005a51u, 0x00050051u, 0x00000008u, 0x00005a53u, 0x00006d8cu, 0x00000003u, 0x000200f9u, + 0x00005a5bu, 0x000200f8u, 0x00005a4eu, 0x000200f9u, 0x00005a5bu, 0x000200f8u, 0x00005a4bu, 0x00050051u, + 0x00000008u, 0x00005a4du, 0x0000220fu, 0x00000003u, 0x000200f9u, 0x00005a5bu, 0x000200f8u, 0x00005a5bu, + 0x000f00f5u, 0x00000008u, 0x00007ddeu, 0x00005a4du, 0x00005a4bu, 0x00000187u, 0x00005a4eu, 0x00005a53u, + 0x00005a51u, 0x00005a56u, 0x00005a54u, 0x00005a59u, 0x00005a57u, 0x0000130bu, 0x00005a5au, 0x00050051u, + 0x00000008u, 0x00005a5eu, 0x00007dddu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005a5fu, 0x00007dddu, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00005a60u, 0x00007dddu, 0x00000002u, 0x00070050u, 0x00000009u, + 0x00005a61u, 0x00005a5eu, 0x00005a5fu, 0x00005a60u, 0x00007ddeu, 0x000600cau, 0x00000009u, 0x00005a69u, + 0x00005a2eu, 0x00000187u, 0x000001e8u, 0x00050082u, 0x00000009u, 0x00005a8bu, 0x000059a7u, 0x00008565u, + 0x000600cau, 0x00000009u, 0x00005a8cu, 0x00005a8bu, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, + 0x00005a8eu, 0x00005a8cu, 0x00008565u, 0x00050082u, 0x00000009u, 0x00005a93u, 0x000059e1u, 0x00008565u, + 0x000600cau, 0x00000009u, 0x00005a94u, 0x00005a93u, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, + 0x00005a96u, 0x00005a94u, 0x00008565u, 0x00050082u, 0x00000009u, 0x00005a9bu, 0x00005a61u, 0x00008565u, + 0x000600cau, 0x00000009u, 0x00005a9cu, 0x00005a9bu, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, + 0x00005a9eu, 0x00005a9cu, 0x00008565u, 0x00050082u, 0x00000009u, 0x00005a72u, 0x00005a8eu, 0x00005a96u, + 0x00050084u, 0x00000009u, 0x00005a74u, 0x00005a72u, 0x00005a69u, 0x00050080u, 0x00000009u, 0x00005a77u, + 0x00005a74u, 0x00008565u, 0x000500c3u, 0x00000009u, 0x00005a7au, 0x00005a77u, 0x0000856fu, 0x00050080u, + 0x00000009u, 0x00005a86u, 0x00005a7au, 0x00005a9eu, 0x000300f7u, 0x0000596fu, 0x00000000u, 0x000400fau, + 0x00001a84u, 0x00005950u, 0x0000596eu, 0x000200f8u, 0x0000596eu, 0x000200f9u, 0x0000596fu, 0x000200f8u, + 0x00005950u, 0x00050051u, 0x00000008u, 0x00005952u, 0x00005a86u, 0x00000003u, 0x00050082u, 0x00000008u, + 0x00005aa2u, 0x00005952u, 0x00000325u, 0x000600cau, 0x00000008u, 0x00005aa3u, 0x00005aa2u, 0x00000187u, + 0x000001e8u, 0x00050080u, 0x00000008u, 0x00005aa4u, 0x00005aa3u, 0x00000325u, 0x0008000cu, 0x00000008u, + 0x00005aa5u, 0x00000001u, 0x0000002du, 0x00005aa4u, 0x00000187u, 0x000002f0u, 0x00050080u, 0x00000008u, + 0x00005956u, 0x00005aa5u, 0x00000196u, 0x000500c3u, 0x00000008u, 0x00005957u, 0x00005956u, 0x000001e2u, + 0x00050080u, 0x00000008u, 0x00005958u, 0x00005aa5u, 0x00005957u, 0x000300f7u, 0x0000596bu, 0x00000000u, + 0x000400fau, 0x00001a66u, 0x0000595au, 0x00005967u, 0x000200f8u, 0x00005967u, 0x00050080u, 0x00000008u, + 0x0000596au, 0x00005958u, 0x00007615u, 0x000200f9u, 0x0000596bu, 0x000200f8u, 0x0000595au, 0x000300f7u, + 0x00005965u, 0x00000000u, 0x000400fau, 0x00001a63u, 0x0000595cu, 0x00005962u, 0x000200f8u, 0x00005962u, + 0x000500c4u, 0x00000008u, 0x00005964u, 0x00001b0du, 0x000001a2u, 0x000200f9u, 0x00005965u, 0x000200f8u, + 0x0000595cu, 0x00050084u, 0x00000008u, 0x0000595fu, 0x00005958u, 0x00001b0du, 0x00050080u, 0x00000008u, + 0x00005960u, 0x0000595fu, 0x0000019fu, 0x000500c3u, 0x00000008u, 0x00005961u, 0x00005960u, 0x0000019cu, + 0x000200f9u, 0x00005965u, 0x000200f8u, 0x00005965u, 0x000700f5u, 0x00000008u, 0x00007ddfu, 0x00005961u, + 0x0000595cu, 0x00005964u, 0x00005962u, 0x000200f9u, 0x0000596bu, 0x000200f8u, 0x0000596bu, 0x000700f5u, + 0x00000008u, 0x00007de0u, 0x00007ddfu, 0x00005965u, 0x0000596au, 0x00005967u, 0x0008000cu, 0x00000008u, + 0x0000596du, 0x00000001u, 0x0000002du, 0x00007de0u, 0x00000187u, 0x000002f0u, 0x000200f9u, 0x0000596fu, + 0x000200f8u, 0x0000596fu, 0x000700f5u, 0x00000008u, 0x00007de1u, 0x0000596du, 0x0000596bu, 0x00000187u, + 0x0000596eu, 0x000500c7u, 0x00000006u, 0x00001c27u, 0x00008580u, 0x0000181du, 0x000500abu, 0x00000058u, + 0x00001c28u, 0x00001c27u, 0x000002d9u, 0x000300f7u, 0x00001c38u, 0x00000000u, 0x000400fau, 0x00001c28u, + 0x00001c29u, 0x00001c38u, 0x000200f8u, 0x00001c29u, 0x00050080u, 0x00000008u, 0x00001c2bu, 0x00006634u, + 0x0000099eu, 0x0004007cu, 0x00000006u, 0x00001c2cu, 0x00001c2bu, 0x00050080u, 0x00000008u, 0x00001c2eu, + 0x00006630u, 0x000001a8u, 0x0004007cu, 0x00000006u, 0x00001c2fu, 0x00001c2eu, 0x00060041u, 0x000015ffu, + 0x00001c31u, 0x00000529u, 0x00000187u, 0x0000019cu, 0x0004003du, 0x00000006u, 0x00001c32u, 0x00001c31u, + 0x00050080u, 0x00000006u, 0x00001c33u, 0x000018c1u, 0x00001c32u, 0x00050080u, 0x00000006u, 0x00001c34u, + 0x00001c33u, 0x0000067au, 0x00060050u, 0x000002b8u, 0x00005aabu, 0x00001c2cu, 0x00001c2fu, 0x00001c34u, + 0x000500c2u, 0x000002b8u, 0x00005aaeu, 0x00005aabu, 0x0000855fu, 0x0008004fu, 0x000002b8u, 0x00005ab0u, + 0x00005aabu, 0x00005aabu, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x000002b8u, 0x00005ab1u, + 0x00005aaeu, 0x00005ab0u, 0x00050084u, 0x000002b8u, 0x00005ab3u, 0x00005ab1u, 0x00008560u, 0x000500c2u, + 0x000002b8u, 0x00005ab6u, 0x00005ab3u, 0x0000855fu, 0x0008004fu, 0x000002b8u, 0x00005ab8u, 0x00005ab3u, + 0x00005ab3u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x000002b8u, 0x00005ab9u, 0x00005ab6u, + 0x00005ab8u, 0x00050084u, 0x000002b8u, 0x00005abbu, 0x00005ab9u, 0x00008560u, 0x000500c2u, 0x000002b8u, + 0x00005abeu, 0x00005abbu, 0x0000855fu, 0x0008004fu, 0x000002b8u, 0x00005ac0u, 0x00005abbu, 0x00005abbu, + 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x000002b8u, 0x00005ac1u, 0x00005abeu, 0x00005ac0u, + 0x00050084u, 0x000002b8u, 0x00005ac3u, 0x00005ac1u, 0x00008560u, 0x00050051u, 0x00000006u, 0x00005ac5u, + 0x00005ac3u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005ac6u, 0x00005ac5u, 0x000002dcu, 0x0004007cu, + 0x00000008u, 0x00005ac7u, 0x00005ac6u, 0x000500c7u, 0x00000008u, 0x00005acbu, 0x00005ac7u, 0x000001a8u, + 0x000500c4u, 0x00000008u, 0x00005accu, 0x00005acbu, 0x000001a5u, 0x000500c5u, 0x00000008u, 0x00005acdu, + 0x00005accu, 0x000002e2u, 0x000200f9u, 0x00001c38u, 0x000200f8u, 0x00001c38u, 0x000700f5u, 0x00000008u, + 0x00007f98u, 0x00007505u, 0x0000596fu, 0x00005ac7u, 0x00001c29u, 0x000700f5u, 0x00000008u, 0x00007f3au, + 0x00005916u, 0x0000596fu, 0x00005acdu, 0x00001c29u, 0x00050051u, 0x00000008u, 0x00005aeau, 0x0000785bu, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00005aecu, 0x00007971u, 0x00000000u, 0x000300f7u, 0x00005b45u, + 0x00000000u, 0x000f00fbu, 0x00005aeau, 0x00005b2cu, 0x00000000u, 0x00005b30u, 0x00000001u, 0x00005b34u, + 0x00000002u, 0x00005b38u, 0x00000004u, 0x00005b3cu, 0x00000007u, 0x00005b40u, 0x00000006u, 0x00005b44u, + 0x000200f8u, 0x00005b44u, 0x000200f9u, 0x00005b45u, 0x000200f8u, 0x00005b40u, 0x00060050u, 0x00000052u, + 0x00005b43u, 0x00007f3au, 0x00007f3au, 0x00007f3au, 0x000200f9u, 0x00005b45u, 0x000200f8u, 0x00005b3cu, + 0x0008004fu, 0x00000052u, 0x00005b3fu, 0x0000229eu, 0x0000229eu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005b45u, 0x000200f8u, 0x00005b38u, 0x0008004fu, 0x00000052u, 0x00005b3bu, 0x00006d8cu, + 0x00006d8cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005b45u, 0x000200f8u, 0x00005b34u, + 0x0008004fu, 0x00000052u, 0x00005b37u, 0x00007684u, 0x00007684u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005b45u, 0x000200f8u, 0x00005b30u, 0x0008004fu, 0x00000052u, 0x00005b33u, 0x00005a86u, + 0x00005a86u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005b45u, 0x000200f8u, 0x00005b2cu, + 0x0008004fu, 0x00000052u, 0x00005b2fu, 0x00002214u, 0x00002214u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005b45u, 0x000200f8u, 0x00005b45u, 0x001100f5u, 0x00000052u, 0x00007f72u, 0x00005b2fu, + 0x00005b2cu, 0x00005b33u, 0x00005b30u, 0x00005b37u, 0x00005b34u, 0x00005b3bu, 0x00005b38u, 0x00005b3fu, + 0x00005b3cu, 0x00005b43u, 0x00005b40u, 0x0000130cu, 0x00005b44u, 0x000300f7u, 0x00005b57u, 0x00000000u, + 0x000d00fbu, 0x00005aecu, 0x00005b47u, 0x00000000u, 0x00005b4au, 0x00000001u, 0x00005b4du, 0x00000002u, + 0x00005b50u, 0x00000004u, 0x00005b53u, 0x00000006u, 0x00005b56u, 0x000200f8u, 0x00005b56u, 0x000200f9u, + 0x00005b57u, 0x000200f8u, 0x00005b53u, 0x00050051u, 0x00000008u, 0x00005b55u, 0x0000229eu, 0x00000003u, + 0x000200f9u, 0x00005b57u, 0x000200f8u, 0x00005b50u, 0x00050051u, 0x00000008u, 0x00005b52u, 0x00006d8cu, + 0x00000003u, 0x000200f9u, 0x00005b57u, 0x000200f8u, 0x00005b4du, 0x00050051u, 0x00000008u, 0x00005b4fu, + 0x00007684u, 0x00000003u, 0x000200f9u, 0x00005b57u, 0x000200f8u, 0x00005b4au, 0x00050051u, 0x00000008u, + 0x00005b4cu, 0x00005a86u, 0x00000003u, 0x000200f9u, 0x00005b57u, 0x000200f8u, 0x00005b47u, 0x00050051u, + 0x00000008u, 0x00005b49u, 0x00002214u, 0x00000003u, 0x000200f9u, 0x00005b57u, 0x000200f8u, 0x00005b57u, + 0x000f00f5u, 0x00000008u, 0x00007f73u, 0x00005b49u, 0x00005b47u, 0x00005b4cu, 0x00005b4au, 0x00005b4fu, + 0x00005b4du, 0x00005b52u, 0x00005b50u, 0x00005b55u, 0x00005b53u, 0x0000130bu, 0x00005b56u, 0x00050051u, + 0x00000008u, 0x00005b5au, 0x00007f72u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005b5bu, 0x00007f72u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00005b5cu, 0x00007f72u, 0x00000002u, 0x00070050u, 0x00000009u, + 0x00005b5du, 0x00005b5au, 0x00005b5bu, 0x00005b5cu, 0x00007f73u, 0x00050051u, 0x00000008u, 0x00005af0u, + 0x0000785bu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005af2u, 0x00007971u, 0x00000001u, 0x000300f7u, + 0x00005b7fu, 0x00000000u, 0x000d00fbu, 0x00005af0u, 0x00005b63u, 0x00000000u, 0x00005b67u, 0x00000001u, + 0x00005b6bu, 0x00000002u, 0x00005b6fu, 0x00000004u, 0x00005b73u, 0x00000007u, 0x00005b77u, 0x000200f8u, + 0x00005b77u, 0x00050051u, 0x00000008u, 0x00005b79u, 0x00002219u, 0x00000001u, 0x000500c4u, 0x00000008u, + 0x00005b7au, 0x00005b79u, 0x000001e2u, 0x00050051u, 0x00000008u, 0x00005b7cu, 0x00002219u, 0x00000002u, + 0x000500c5u, 0x00000008u, 0x00005b7du, 0x00005b7au, 0x00005b7cu, 0x00060050u, 0x00000052u, 0x00005b7eu, + 0x00005b7du, 0x00005b7du, 0x00005b7du, 0x000200f9u, 0x00005b7fu, 0x000200f8u, 0x00005b73u, 0x0008004fu, + 0x00000052u, 0x00005b76u, 0x0000229eu, 0x0000229eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00005b7fu, 0x000200f8u, 0x00005b6fu, 0x0008004fu, 0x00000052u, 0x00005b72u, 0x00006d8cu, 0x00006d8cu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005b7fu, 0x000200f8u, 0x00005b6bu, 0x0008004fu, + 0x00000052u, 0x00005b6eu, 0x00007684u, 0x00007684u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00005b7fu, 0x000200f8u, 0x00005b67u, 0x0008004fu, 0x00000052u, 0x00005b6au, 0x00005a86u, 0x00005a86u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005b7fu, 0x000200f8u, 0x00005b63u, 0x0008004fu, + 0x00000052u, 0x00005b66u, 0x00002219u, 0x00002219u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00005b7fu, 0x000200f8u, 0x00005b7fu, 0x000f00f5u, 0x00000052u, 0x00007f75u, 0x00005b66u, 0x00005b63u, + 0x00005b6au, 0x00005b67u, 0x00005b6eu, 0x00005b6bu, 0x00005b72u, 0x00005b6fu, 0x00005b76u, 0x00005b73u, + 0x00005b7eu, 0x00005b77u, 0x000300f7u, 0x00005b91u, 0x00000000u, 0x000d00fbu, 0x00005af2u, 0x00005b81u, + 0x00000000u, 0x00005b84u, 0x00000001u, 0x00005b87u, 0x00000002u, 0x00005b8au, 0x00000004u, 0x00005b8du, + 0x00000006u, 0x00005b90u, 0x000200f8u, 0x00005b90u, 0x000200f9u, 0x00005b91u, 0x000200f8u, 0x00005b8du, + 0x00050051u, 0x00000008u, 0x00005b8fu, 0x0000229eu, 0x00000003u, 0x000200f9u, 0x00005b91u, 0x000200f8u, + 0x00005b8au, 0x00050051u, 0x00000008u, 0x00005b8cu, 0x00006d8cu, 0x00000003u, 0x000200f9u, 0x00005b91u, + 0x000200f8u, 0x00005b87u, 0x00050051u, 0x00000008u, 0x00005b89u, 0x00007684u, 0x00000003u, 0x000200f9u, + 0x00005b91u, 0x000200f8u, 0x00005b84u, 0x00050051u, 0x00000008u, 0x00005b86u, 0x00005a86u, 0x00000003u, + 0x000200f9u, 0x00005b91u, 0x000200f8u, 0x00005b81u, 0x00050051u, 0x00000008u, 0x00005b83u, 0x00002219u, + 0x00000003u, 0x000200f9u, 0x00005b91u, 0x000200f8u, 0x00005b91u, 0x000f00f5u, 0x00000008u, 0x00007f76u, + 0x00005b83u, 0x00005b81u, 0x00005b86u, 0x00005b84u, 0x00005b89u, 0x00005b87u, 0x00005b8cu, 0x00005b8au, + 0x00005b8fu, 0x00005b8du, 0x0000130bu, 0x00005b90u, 0x00050051u, 0x00000008u, 0x00005b94u, 0x00007f75u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00005b95u, 0x00007f75u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00005b96u, 0x00007f75u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00005b97u, 0x00005b94u, 0x00005b95u, + 0x00005b96u, 0x00007f76u, 0x00050051u, 0x00000008u, 0x00005af6u, 0x0000785bu, 0x00000002u, 0x00050051u, + 0x00000008u, 0x00005af8u, 0x00007971u, 0x00000002u, 0x000300f7u, 0x00005bcdu, 0x00000000u, 0x001700fbu, + 0x00005af6u, 0x00005b9du, 0x00000000u, 0x00005ba1u, 0x00000007u, 0x00005ba5u, 0x00000001u, 0x00005ba9u, + 0x00000002u, 0x00005badu, 0x00000004u, 0x00005bb1u, 0x00000008u, 0x00005bb5u, 0x00000009u, 0x00005bb9u, + 0x0000000bu, 0x00005bbdu, 0x0000000du, 0x00005bc1u, 0x0000000fu, 0x00005bc5u, 0x000200f8u, 0x00005bc5u, + 0x00050051u, 0x00000008u, 0x00005bc7u, 0x0000221eu, 0x00000001u, 0x000500c4u, 0x00000008u, 0x00005bc8u, + 0x00005bc7u, 0x000001e2u, 0x00050051u, 0x00000008u, 0x00005bcau, 0x0000221eu, 0x00000002u, 0x000500c5u, + 0x00000008u, 0x00005bcbu, 0x00005bc8u, 0x00005bcau, 0x00060050u, 0x00000052u, 0x00005bccu, 0x00005bcbu, + 0x00005bcbu, 0x00005bcbu, 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005bc1u, 0x00060050u, 0x00000052u, + 0x00005bc4u, 0x0000773du, 0x0000773du, 0x0000773du, 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005bbdu, + 0x0008004fu, 0x00000052u, 0x00005bc0u, 0x0000229eu, 0x0000229eu, 0x00000003u, 0x00000003u, 0x00000003u, + 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005bb9u, 0x0008004fu, 0x00000052u, 0x00005bbcu, 0x00006d8cu, + 0x00006d8cu, 0x00000003u, 0x00000003u, 0x00000003u, 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005bb5u, + 0x0008004fu, 0x00000052u, 0x00005bb8u, 0x00007684u, 0x00007684u, 0x00000003u, 0x00000003u, 0x00000003u, + 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005bb1u, 0x0008004fu, 0x00000052u, 0x00005bb4u, 0x0000229eu, + 0x0000229eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005badu, + 0x0008004fu, 0x00000052u, 0x00005bb0u, 0x00006d8cu, 0x00006d8cu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005ba9u, 0x0008004fu, 0x00000052u, 0x00005bacu, 0x00007684u, + 0x00007684u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005ba5u, + 0x0008004fu, 0x00000052u, 0x00005ba8u, 0x00005a86u, 0x00005a86u, 0x00000003u, 0x00000003u, 0x00000003u, + 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005ba1u, 0x0008004fu, 0x00000052u, 0x00005ba4u, 0x00005a86u, + 0x00005a86u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005b9du, + 0x0008004fu, 0x00000052u, 0x00005ba0u, 0x0000221eu, 0x0000221eu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005bcdu, 0x000200f8u, 0x00005bcdu, 0x001900f5u, 0x00000052u, 0x00007f78u, 0x00005ba0u, + 0x00005b9du, 0x00005ba4u, 0x00005ba1u, 0x00005ba8u, 0x00005ba5u, 0x00005bacu, 0x00005ba9u, 0x00005bb0u, + 0x00005badu, 0x00005bb4u, 0x00005bb1u, 0x00005bb8u, 0x00005bb5u, 0x00005bbcu, 0x00005bb9u, 0x00005bc0u, + 0x00005bbdu, 0x00005bc4u, 0x00005bc1u, 0x00005bccu, 0x00005bc5u, 0x000300f7u, 0x00005bdeu, 0x00000000u, + 0x000b00fbu, 0x00005af8u, 0x00005bcfu, 0x00000000u, 0x00005bd2u, 0x00000001u, 0x00005bd5u, 0x00000002u, + 0x00005bd8u, 0x00000004u, 0x00005bdbu, 0x000200f8u, 0x00005bdbu, 0x00050051u, 0x00000008u, 0x00005bddu, + 0x0000229eu, 0x00000003u, 0x000200f9u, 0x00005bdeu, 0x000200f8u, 0x00005bd8u, 0x00050051u, 0x00000008u, + 0x00005bdau, 0x00006d8cu, 0x00000003u, 0x000200f9u, 0x00005bdeu, 0x000200f8u, 0x00005bd5u, 0x00050051u, + 0x00000008u, 0x00005bd7u, 0x00007684u, 0x00000003u, 0x000200f9u, 0x00005bdeu, 0x000200f8u, 0x00005bd2u, + 0x000200f9u, 0x00005bdeu, 0x000200f8u, 0x00005bcfu, 0x00050051u, 0x00000008u, 0x00005bd1u, 0x0000221eu, + 0x00000003u, 0x000200f9u, 0x00005bdeu, 0x000200f8u, 0x00005bdeu, 0x000d00f5u, 0x00000008u, 0x00007f79u, + 0x00005bd1u, 0x00005bcfu, 0x0000773du, 0x00005bd2u, 0x00005bd7u, 0x00005bd5u, 0x00005bdau, 0x00005bd8u, + 0x00005bddu, 0x00005bdbu, 0x00050051u, 0x00000008u, 0x00005be1u, 0x00007f78u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x00005be2u, 0x00007f78u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005be3u, 0x00007f78u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00005be4u, 0x00005be1u, 0x00005be2u, 0x00005be3u, 0x00007f79u, + 0x00050051u, 0x00000008u, 0x00005afcu, 0x0000785bu, 0x00000003u, 0x00050051u, 0x00000008u, 0x00005afeu, + 0x00007971u, 0x00000003u, 0x000300f7u, 0x00005bffu, 0x00000000u, 0x000d00fbu, 0x00005afcu, 0x00005beau, + 0x00000000u, 0x00005beeu, 0x00000001u, 0x00005bf2u, 0x00000002u, 0x00005bf6u, 0x00000004u, 0x00005bfau, + 0x00000006u, 0x00005bfeu, 0x000200f8u, 0x00005bfeu, 0x000200f9u, 0x00005bffu, 0x000200f8u, 0x00005bfau, + 0x0008004fu, 0x00000052u, 0x00005bfdu, 0x0000229eu, 0x0000229eu, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005bffu, 0x000200f8u, 0x00005bf6u, 0x0008004fu, 0x00000052u, 0x00005bf9u, 0x00006d8cu, + 0x00006d8cu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005bffu, 0x000200f8u, 0x00005bf2u, + 0x0008004fu, 0x00000052u, 0x00005bf5u, 0x00007684u, 0x00007684u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005bffu, 0x000200f8u, 0x00005beeu, 0x0008004fu, 0x00000052u, 0x00005bf1u, 0x00005a86u, + 0x00005a86u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, 0x00005bffu, 0x000200f8u, 0x00005beau, + 0x0008004fu, 0x00000052u, 0x00005bedu, 0x00002223u, 0x00002223u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x000200f9u, 0x00005bffu, 0x000200f8u, 0x00005bffu, 0x000f00f5u, 0x00000052u, 0x00007f7bu, 0x00005bedu, + 0x00005beau, 0x00005bf1u, 0x00005beeu, 0x00005bf5u, 0x00005bf2u, 0x00005bf9u, 0x00005bf6u, 0x00005bfdu, + 0x00005bfau, 0x0000130cu, 0x00005bfeu, 0x000300f7u, 0x00005c11u, 0x00000000u, 0x000d00fbu, 0x00005afeu, + 0x00005c01u, 0x00000000u, 0x00005c04u, 0x00000001u, 0x00005c07u, 0x00000002u, 0x00005c0au, 0x00000004u, + 0x00005c0du, 0x00000006u, 0x00005c10u, 0x000200f8u, 0x00005c10u, 0x000200f9u, 0x00005c11u, 0x000200f8u, + 0x00005c0du, 0x00050051u, 0x00000008u, 0x00005c0fu, 0x0000229eu, 0x00000003u, 0x000200f9u, 0x00005c11u, + 0x000200f8u, 0x00005c0au, 0x00050051u, 0x00000008u, 0x00005c0cu, 0x00006d8cu, 0x00000003u, 0x000200f9u, + 0x00005c11u, 0x000200f8u, 0x00005c07u, 0x00050051u, 0x00000008u, 0x00005c09u, 0x00007684u, 0x00000003u, + 0x000200f9u, 0x00005c11u, 0x000200f8u, 0x00005c04u, 0x00050051u, 0x00000008u, 0x00005c06u, 0x00005a86u, + 0x00000003u, 0x000200f9u, 0x00005c11u, 0x000200f8u, 0x00005c01u, 0x00050051u, 0x00000008u, 0x00005c03u, + 0x00002223u, 0x00000003u, 0x000200f9u, 0x00005c11u, 0x000200f8u, 0x00005c11u, 0x000f00f5u, 0x00000008u, + 0x00007f7cu, 0x00005c03u, 0x00005c01u, 0x00005c06u, 0x00005c04u, 0x00005c09u, 0x00005c07u, 0x00005c0cu, + 0x00005c0au, 0x00005c0fu, 0x00005c0du, 0x0000130bu, 0x00005c10u, 0x00050051u, 0x00000008u, 0x00005c14u, + 0x00007f7bu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005c15u, 0x00007f7bu, 0x00000001u, 0x00050051u, + 0x00000008u, 0x00005c16u, 0x00007f7bu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00005c17u, 0x00005c14u, + 0x00005c15u, 0x00005c16u, 0x00007f7cu, 0x000600cau, 0x00000009u, 0x00005c1fu, 0x00005be4u, 0x00000187u, + 0x000001e8u, 0x00050082u, 0x00000009u, 0x00005c41u, 0x00005b5du, 0x00008565u, 0x000600cau, 0x00000009u, + 0x00005c42u, 0x00005c41u, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, 0x00005c44u, 0x00005c42u, + 0x00008565u, 0x00050082u, 0x00000009u, 0x00005c49u, 0x00005b97u, 0x00008565u, 0x000600cau, 0x00000009u, + 0x00005c4au, 0x00005c49u, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, 0x00005c4cu, 0x00005c4au, + 0x00008565u, 0x00050082u, 0x00000009u, 0x00005c51u, 0x00005c17u, 0x00008565u, 0x000600cau, 0x00000009u, + 0x00005c52u, 0x00005c51u, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, 0x00005c54u, 0x00005c52u, + 0x00008565u, 0x00050082u, 0x00000009u, 0x00005c28u, 0x00005c44u, 0x00005c4cu, 0x00050084u, 0x00000009u, + 0x00005c2au, 0x00005c28u, 0x00005c1fu, 0x00050080u, 0x00000009u, 0x00005c2du, 0x00005c2au, 0x00008565u, + 0x000500c3u, 0x00000009u, 0x00005c30u, 0x00005c2du, 0x0000856fu, 0x00050080u, 0x00000009u, 0x00005c3cu, + 0x00005c30u, 0x00005c54u, 0x00050082u, 0x00000009u, 0x00005c59u, 0x00005c3cu, 0x00008565u, 0x000600cau, + 0x00000009u, 0x00005c5bu, 0x00005c59u, 0x00000187u, 0x000001e8u, 0x00050080u, 0x00000009u, 0x00005c5eu, + 0x00005c5bu, 0x00008565u, 0x0008000cu, 0x00000009u, 0x00005c60u, 0x00000001u, 0x0000002du, 0x00005c5eu, + 0x00000312u, 0x00000346u, 0x00050051u, 0x00000008u, 0x00005b08u, 0x00005c60u, 0x00000003u, 0x00050080u, + 0x00000008u, 0x00005b0bu, 0x00005b08u, 0x00000196u, 0x000500c3u, 0x00000008u, 0x00005b0cu, 0x00005b0bu, + 0x000001e2u, 0x00050080u, 0x00000008u, 0x00005b0du, 0x00005b08u, 0x00005b0cu, 0x000300f7u, 0x00005b1au, + 0x00000000u, 0x000400fau, 0x00001a63u, 0x00005b0fu, 0x00005b17u, 0x000200f8u, 0x00005b17u, 0x000500c4u, + 0x00000008u, 0x00005b19u, 0x00001b0du, 0x000001a2u, 0x000200f9u, 0x00005b1au, 0x000200f8u, 0x00005b0fu, + 0x00050084u, 0x00000008u, 0x00005b12u, 0x00005b0du, 0x00001b0du, 0x00050080u, 0x00000008u, 0x00005b13u, + 0x00005b12u, 0x0000019fu, 0x000500c3u, 0x00000008u, 0x00005b14u, 0x00005b13u, 0x0000019cu, 0x000500c3u, + 0x00000008u, 0x00005b16u, 0x00005b14u, 0x000001a2u, 0x000200f9u, 0x00005b1au, 0x000200f8u, 0x00005b1au, + 0x000700f5u, 0x00000008u, 0x00007f8bu, 0x00005b16u, 0x00005b0fu, 0x00001b0du, 0x00005b17u, 0x000700f5u, + 0x00000008u, 0x00007f86u, 0x00005b14u, 0x00005b0fu, 0x00005b19u, 0x00005b17u, 0x000300f7u, 0x00005b22u, + 0x00000000u, 0x000400fau, 0x00001a66u, 0x00005b1cu, 0x00005b1eu, 0x000200f8u, 0x00005b1eu, 0x00050080u, + 0x00000008u, 0x00005b21u, 0x00005b0du, 0x00007615u, 0x000200f9u, 0x00005b22u, 0x000200f8u, 0x00005b1cu, + 0x000200f9u, 0x00005b22u, 0x000200f8u, 0x00005b22u, 0x000700f5u, 0x00000008u, 0x00007f87u, 0x00007f86u, + 0x00005b1cu, 0x00005b21u, 0x00005b1eu, 0x0008000cu, 0x00000008u, 0x00005b24u, 0x00000001u, 0x0000002du, + 0x00007f87u, 0x00000187u, 0x000002f0u, 0x00050051u, 0x00000008u, 0x00001c42u, 0x00005c60u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00001c43u, 0x00005c60u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00001c44u, + 0x00005c60u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00001c46u, 0x00001c42u, 0x00001c43u, 0x00001c44u, + 0x00005b24u, 0x000200f9u, 0x00001c66u, 0x000200f8u, 0x00001c66u, 0x000700f5u, 0x00000009u, 0x00007fbdu, + 0x00001c46u, 0x00005b22u, 0x00001c63u, 0x00005cc0u, 0x000700f5u, 0x00000008u, 0x00007fafu, 0x00007de1u, + 0x00005b22u, 0x00005cc2u, 0x00005cc0u, 0x000700f5u, 0x00000008u, 0x00007f8du, 0x00007f98u, 0x00005b22u, + 0x00007505u, 0x00005cc0u, 0x000700f5u, 0x00000008u, 0x00007f8cu, 0x00007f8bu, 0x00005b22u, 0x00007ba6u, + 0x00005cc0u, 0x000500aau, 0x00000058u, 0x00001c69u, 0x00007f8cu, 0x00000187u, 0x000500a7u, 0x00000058u, + 0x00001c6au, 0x00001a75u, 0x00001c69u, 0x000300f7u, 0x00001c6cu, 0x00000000u, 0x000400fau, 0x00001c6au, + 0x00001c6bu, 0x00001c6cu, 0x000200f8u, 0x00001c6bu, 0x000200f9u, 0x00001c8bu, 0x000200f8u, 0x00001c6cu, + 0x000300f7u, 0x00001c7bu, 0x00000000u, 0x000400fau, 0x00001a84u, 0x00001c6eu, 0x00001c7bu, 0x000200f8u, + 0x00001c6eu, 0x000300f7u, 0x00001c75u, 0x00000000u, 0x000400fau, 0x00001a87u, 0x00001c70u, 0x00001c72u, + 0x000200f8u, 0x00001c72u, 0x00050051u, 0x00000008u, 0x00001c74u, 0x0000222du, 0x00000003u, 0x000200f9u, + 0x00001c75u, 0x000200f8u, 0x00001c70u, 0x000500c7u, 0x00000008u, 0x00005e07u, 0x00007f8du, 0x000002f0u, + 0x000200f9u, 0x00001c75u, 0x000200f8u, 0x00001c75u, 0x000700f5u, 0x00000008u, 0x00007fbbu, 0x00005e07u, + 0x00001c70u, 0x00001c74u, 0x00001c72u, 0x000500b1u, 0x00000058u, 0x00001c78u, 0x00007fafu, 0x00007fbbu, + 0x000300f7u, 0x00001c7au, 0x00000000u, 0x000400fau, 0x00001c78u, 0x00001c79u, 0x00001c7au, 0x000200f8u, + 0x00001c79u, 0x000200f9u, 0x00001c8bu, 0x000200f8u, 0x00001c7au, 0x000200f9u, 0x00001c7bu, 0x000200f8u, + 0x00001c7bu, 0x000500c4u, 0x00000008u, 0x00001c7fu, 0x000024ecu, 0x000001e8u, 0x000500c5u, 0x00000008u, + 0x00001c81u, 0x00001c7fu, 0x0000760cu, 0x00050051u, 0x00000008u, 0x00001c86u, 0x0000229eu, 0x00000003u, + 0x00050080u, 0x00000008u, 0x00001c88u, 0x00001c86u, 0x00007615u, 0x0007000cu, 0x00000008u, 0x00001c89u, + 0x00000001u, 0x00000027u, 0x00001c88u, 0x000002f0u, 0x000200f9u, 0x00001c8bu, 0x000200f8u, 0x00001c8bu, + 0x001900f5u, 0x00000009u, 0x000083efu, 0x000067e2u, 0x00001a09u, 0x000067e2u, 0x00001a28u, 0x000067e2u, + 0x00001ac0u, 0x000067e2u, 0x00001aefu, 0x000067e2u, 0x00001af0u, 0x000067e2u, 0x00001afeu, 0x000067e2u, + 0x00001b0au, 0x000067e2u, 0x00001b16u, 0x000067e2u, 0x00001c6bu, 0x000067e2u, 0x00001c79u, 0x00007fbdu, + 0x00001c7bu, 0x001900f5u, 0x00000008u, 0x000082afu, 0x0000774au, 0x00001a09u, 0x0000774au, 0x00001a28u, + 0x0000774au, 0x00001ac0u, 0x00008000u, 0x00001aefu, 0x00008000u, 0x00001af0u, 0x0000774au, 0x00001afeu, + 0x0000774au, 0x00001b0au, 0x0000774au, 0x00001b16u, 0x0000774au, 0x00001c6bu, 0x0000774au, 0x00001c79u, + 0x00001c81u, 0x00001c7bu, 0x001900f5u, 0x00000008u, 0x0000816fu, 0x0000774au, 0x00001a09u, 0x0000774au, + 0x00001a28u, 0x0000774au, 0x00001ac0u, 0x000002e2u, 0x00001aefu, 0x000002e2u, 0x00001af0u, 0x00000324u, + 0x00001afeu, 0x0000774au, 0x00001b0au, 0x0000774au, 0x00001b16u, 0x0000774au, 0x00001c6bu, 0x0000774au, + 0x00001c79u, 0x00007f8cu, 0x00001c7bu, 0x001900f5u, 0x00000008u, 0x00008003u, 0x0000774au, 0x00001a09u, + 0x0000774au, 0x00001a28u, 0x0000774au, 0x00001ac0u, 0x0000774au, 0x00001aefu, 0x0000774au, 0x00001af0u, + 0x0000774au, 0x00001afeu, 0x0000774au, 0x00001b0au, 0x0000774au, 0x00001b16u, 0x0000774au, 0x00001c6bu, + 0x0000774au, 0x00001c79u, 0x00001c89u, 0x00001c7bu, 0x001900f5u, 0x00000058u, 0x00008002u, 0x000011eeu, + 0x00001a09u, 0x000011eeu, 0x00001a28u, 0x000011eeu, 0x00001ac0u, 0x000011eeu, 0x00001aefu, 0x000004a6u, + 0x00001af0u, 0x00001affu, 0x00001afeu, 0x000011eeu, 0x00001b0au, 0x000011eeu, 0x00001b16u, 0x000011eeu, + 0x00001c6bu, 0x000011eeu, 0x00001c79u, 0x000004a6u, 0x00001c7bu, 0x000300f7u, 0x000018d6u, 0x00000000u, + 0x000400fau, 0x00008002u, 0x000018d5u, 0x00001908u, 0x000200f8u, 0x00001908u, 0x000200f9u, 0x000018d6u, + 0x000200f8u, 0x000018d5u, 0x000500b3u, 0x00000058u, 0x000018dbu, 0x0000816fu, 0x000001e2u, 0x000300f7u, + 0x000018ddu, 0x00000000u, 0x000400fau, 0x000018dbu, 0x000018dcu, 0x000018f9u, 0x000200f8u, 0x000018f9u, + 0x000500c7u, 0x00000008u, 0x000018fbu, 0x0000816fu, 0x000002e2u, 0x000500abu, 0x00000058u, 0x000018fcu, + 0x000018fbu, 0x00000187u, 0x000300f7u, 0x000018feu, 0x00000000u, 0x000400fau, 0x000018fcu, 0x000018fdu, + 0x000018feu, 0x000200f8u, 0x000018fdu, 0x0004007cu, 0x00000006u, 0x00001906u, 0x000082afu, 0x00060041u, + 0x000001efu, 0x00001907u, 0x00001902u, 0x00000187u, 0x000018cau, 0x0003003eu, 0x00001907u, 0x00001906u, + 0x000200f9u, 0x000018feu, 0x000200f8u, 0x000018feu, 0x000200f9u, 0x000018ddu, 0x000200f8u, 0x000018dcu, + 0x0004007cu, 0x000001bbu, 0x000018e5u, 0x000083efu, 0x00040071u, 0x000001aeu, 0x000018e6u, 0x000018e5u, + 0x00060041u, 0x000001b8u, 0x000018e7u, 0x000018e1u, 0x00000187u, 0x000018cau, 0x0003003eu, 0x000018e7u, + 0x000018e6u, 0x00040071u, 0x000001adu, 0x000018efu, 0x00008003u, 0x00060041u, 0x000001fbu, 0x000018f0u, + 0x000018ebu, 0x00000187u, 0x000018cau, 0x0003003eu, 0x000018f0u, 0x000018efu, 0x00060041u, 0x0000022cu, + 0x000018f8u, 0x000018f4u, 0x00000187u, 0x000018cau, 0x0003003eu, 0x000018f8u, 0x000082afu, 0x000200f9u, + 0x000018ddu, 0x000200f8u, 0x000018ddu, 0x000200f9u, 0x000018d6u, 0x000200f8u, 0x000018d6u, 0x000600a9u, + 0x00000008u, 0x000085a9u, 0x00008002u, 0x0000816fu, 0x00000537u, 0x00040072u, 0x00001909u, 0x00001910u, + 0x000085a9u, 0x00060041u, 0x00001911u, 0x00001912u, 0x0000190du, 0x00000187u, 0x000018cau, 0x0003003eu, + 0x00001912u, 0x00001910u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x000089bdu, + 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x00000016u, 0x00020011u, 0x00000027u, 0x00020011u, + 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, + 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, + 0x0003000eu, 0x00000000u, 0x00000001u, 0x0008000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, + 0x00001966u, 0x00001975u, 0x0000198fu, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, + 0x00000001u, 0x00050048u, 0x00000199u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000199u, + 0x00000001u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000199u, 0x00000002u, 0x00000023u, 0x00000020u, + 0x00050048u, 0x00000199u, 0x00000003u, 0x00000023u, 0x00000030u, 0x00050048u, 0x00000199u, 0x00000004u, + 0x00000023u, 0x00000040u, 0x00050048u, 0x00000199u, 0x00000005u, 0x00000023u, 0x00000050u, 0x00050048u, + 0x00000199u, 0x00000006u, 0x00000023u, 0x00000060u, 0x00050048u, 0x00000199u, 0x00000007u, 0x00000023u, + 0x00000070u, 0x00040047u, 0x0000019au, 0x00000006u, 0x00000080u, 0x00040048u, 0x0000019bu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x0000019bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000019bu, + 0x00000002u, 0x00040047u, 0x0000019du, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000019du, 0x00000021u, + 0x00000001u, 0x00050048u, 0x000001bfu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000001bfu, + 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000001bfu, 0x00000002u, 0x00000023u, 0x00000008u, + 0x00050048u, 0x000001bfu, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000001bfu, 0x00000004u, + 0x00000023u, 0x00000010u, 0x00050048u, 0x000001bfu, 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, + 0x000001bfu, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, 0x000001bfu, 0x00000007u, 0x00000023u, + 0x0000001cu, 0x00050048u, 0x000001bfu, 0x00000008u, 0x00000023u, 0x00000020u, 0x00050048u, 0x000001bfu, + 0x00000009u, 0x00000023u, 0x00000024u, 0x00050048u, 0x000001bfu, 0x0000000au, 0x00000023u, 0x00000028u, + 0x00050048u, 0x000001bfu, 0x0000000bu, 0x00000023u, 0x0000002cu, 0x00050048u, 0x000001bfu, 0x0000000cu, + 0x00000023u, 0x0000002eu, 0x00050048u, 0x000001bfu, 0x0000000du, 0x00000023u, 0x0000002fu, 0x00050048u, + 0x000001bfu, 0x0000000eu, 0x00000023u, 0x00000030u, 0x00040047u, 0x000001c0u, 0x00000006u, 0x00000038u, + 0x00040048u, 0x000001c1u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001c1u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000001c1u, 0x00000002u, 0x00040047u, 0x000001c3u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000001c3u, 0x00000021u, 0x00000002u, 0x00050048u, 0x000001f3u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x000001f3u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x000001f3u, + 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000001f3u, 0x00000003u, 0x00000023u, 0x0000000cu, + 0x00050048u, 0x000001f3u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000001f3u, 0x00000005u, + 0x00000023u, 0x00000014u, 0x00050048u, 0x000001f3u, 0x00000006u, 0x00000023u, 0x00000018u, 0x00050048u, + 0x000001f3u, 0x00000007u, 0x00000023u, 0x0000001cu, 0x00040047u, 0x000001f4u, 0x00000006u, 0x00000020u, + 0x00040048u, 0x000001f5u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000001f5u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000001f5u, 0x00000002u, 0x00040047u, 0x000001f7u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000001f7u, 0x00000021u, 0x00000003u, 0x00050048u, 0x00000211u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00050048u, 0x00000211u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000211u, + 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000211u, 0x00000003u, 0x00000023u, 0x0000000cu, + 0x00040047u, 0x00000212u, 0x00000006u, 0x00000010u, 0x00040048u, 0x00000213u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x00000213u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000213u, 0x00000002u, + 0x00040047u, 0x00000215u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000215u, 0x00000021u, 0x00000005u, + 0x00050048u, 0x00000227u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000227u, 0x00000001u, + 0x00000023u, 0x00000010u, 0x00050048u, 0x00000227u, 0x00000002u, 0x00000023u, 0x00000020u, 0x00050048u, + 0x00000227u, 0x00000003u, 0x00000023u, 0x00000028u, 0x00050048u, 0x00000227u, 0x00000004u, 0x00000023u, + 0x00000030u, 0x00050048u, 0x00000227u, 0x00000005u, 0x00000023u, 0x00000034u, 0x00050048u, 0x00000227u, + 0x00000006u, 0x00000023u, 0x00000038u, 0x00050048u, 0x00000227u, 0x00000007u, 0x00000023u, 0x0000003cu, + 0x00050048u, 0x00000227u, 0x00000008u, 0x00000023u, 0x0000003eu, 0x00040047u, 0x00000228u, 0x00000006u, + 0x00000040u, 0x00040048u, 0x00000229u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000229u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000229u, 0x00000002u, 0x00040047u, 0x0000022bu, 0x00000022u, + 0x00000000u, 0x00040047u, 0x0000022bu, 0x00000021u, 0x00000006u, 0x00050048u, 0x00000246u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x00000246u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x00000246u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x00000246u, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00050048u, 0x00000246u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00050048u, 0x00000246u, + 0x00000005u, 0x00000023u, 0x00000014u, 0x00050048u, 0x00000246u, 0x00000006u, 0x00000023u, 0x00000018u, + 0x00050048u, 0x00000246u, 0x00000007u, 0x00000023u, 0x00000019u, 0x00050048u, 0x00000246u, 0x00000008u, + 0x00000023u, 0x0000001au, 0x00050048u, 0x00000246u, 0x00000009u, 0x00000023u, 0x0000001bu, 0x00050048u, + 0x00000246u, 0x0000000au, 0x00000023u, 0x0000001cu, 0x00050048u, 0x00000246u, 0x0000000bu, 0x00000023u, + 0x0000001du, 0x00050048u, 0x00000246u, 0x0000000cu, 0x00000023u, 0x0000001eu, 0x00050048u, 0x00000246u, + 0x0000000du, 0x00000023u, 0x0000001fu, 0x00040047u, 0x00000247u, 0x00000006u, 0x00000020u, 0x00040048u, + 0x00000248u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000248u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x00000248u, 0x00000002u, 0x00040047u, 0x0000024au, 0x00000022u, 0x00000000u, 0x00040047u, + 0x0000024au, 0x00000021u, 0x00000008u, 0x00040047u, 0x00000494u, 0x00000001u, 0x00000002u, 0x00050048u, + 0x000004e7u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000004e7u, 0x00000001u, 0x00000023u, + 0x00000004u, 0x00050048u, 0x000004e7u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000004e7u, + 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, 0x000004e8u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000004e8u, 0x00000002u, 0x00040047u, 0x000004eau, 0x00000022u, 0x00000002u, 0x00040047u, + 0x000004eau, 0x00000021u, 0x00000000u, 0x00040047u, 0x000006a2u, 0x00000006u, 0x00000001u, 0x00050048u, + 0x000006a3u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00040047u, 0x000006a4u, 0x00000006u, 0x00001000u, + 0x00040048u, 0x000006a5u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000006a5u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000006a5u, 0x00000002u, 0x00040047u, 0x000006a7u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000006a7u, 0x00000021u, 0x00000007u, 0x00040047u, 0x00000770u, 0x00000006u, 0x00000002u, + 0x00050048u, 0x00000771u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00040047u, 0x00000772u, 0x00000006u, + 0x00001000u, 0x00040048u, 0x00000773u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000773u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000773u, 0x00000002u, 0x00040047u, 0x00000775u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000775u, 0x00000021u, 0x00000007u, 0x00050048u, 0x0000157bu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x0000157bu, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x0000157bu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x0000157bu, 0x00000003u, 0x00000023u, + 0x0000000cu, 0x00050048u, 0x0000157bu, 0x00000004u, 0x00000023u, 0x0000000eu, 0x00050048u, 0x0000157bu, + 0x00000005u, 0x00000023u, 0x00000010u, 0x00050048u, 0x0000157bu, 0x00000006u, 0x00000023u, 0x00000014u, + 0x00050048u, 0x0000157bu, 0x00000007u, 0x00000023u, 0x00000018u, 0x00050048u, 0x0000157bu, 0x00000008u, + 0x00000023u, 0x0000001cu, 0x00050048u, 0x0000157bu, 0x00000009u, 0x00000023u, 0x0000001eu, 0x00050048u, + 0x0000157bu, 0x0000000au, 0x00000023u, 0x0000001fu, 0x00040047u, 0x0000157cu, 0x00000006u, 0x00000020u, + 0x00040048u, 0x0000157du, 0x00000000u, 0x00000018u, 0x00050048u, 0x0000157du, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000157du, 0x00000002u, 0x00040047u, 0x0000157fu, 0x00000022u, 0x00000000u, + 0x00040047u, 0x0000157fu, 0x00000021u, 0x00000000u, 0x00040047u, 0x000015b4u, 0x00000006u, 0x00000001u, + 0x00050048u, 0x000015b5u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x000015b5u, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x000015b5u, 0x00000002u, 0x00000023u, 0x00000008u, 0x00040047u, + 0x000015b6u, 0x00000006u, 0x00000010u, 0x00040048u, 0x000015b7u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x000015b7u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000015b7u, 0x00000002u, 0x00040047u, + 0x000015b9u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000015b9u, 0x00000021u, 0x00000004u, 0x00040047u, + 0x000015e1u, 0x00000001u, 0x00000007u, 0x00040047u, 0x000015e4u, 0x00000001u, 0x00000003u, 0x00040047u, + 0x000015fau, 0x00000001u, 0x00000004u, 0x00040047u, 0x0000160fu, 0x00000001u, 0x00000005u, 0x00040047u, + 0x00001624u, 0x00000001u, 0x00000006u, 0x00040047u, 0x00001961u, 0x00000006u, 0x00000010u, 0x00040048u, + 0x00001962u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00001962u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x00001962u, 0x00000002u, 0x00040047u, 0x00001964u, 0x00000022u, 0x00000001u, 0x00040047u, + 0x00001964u, 0x00000021u, 0x00000000u, 0x00040047u, 0x00001966u, 0x0000000bu, 0x0000001au, 0x00040047u, + 0x00001970u, 0x00000001u, 0x00000000u, 0x00040047u, 0x00001971u, 0x00000001u, 0x00000001u, 0x00040047u, + 0x00001972u, 0x0000000bu, 0x00000019u, 0x00040047u, 0x00001975u, 0x0000000bu, 0x0000001bu, 0x00040047u, + 0x0000198fu, 0x0000000bu, 0x0000001du, 0x00040047u, 0x000019a8u, 0x00000006u, 0x00000004u, 0x00040048u, + 0x000019a9u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000019a9u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000019a9u, 0x00000002u, 0x00040047u, 0x000019abu, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000019abu, 0x00000021u, 0x00000009u, 0x00040047u, 0x000019b2u, 0x00000006u, 0x00000001u, 0x00040048u, + 0x000019b3u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000019b3u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000019b3u, 0x00000002u, 0x00040047u, 0x000019b5u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000019b5u, 0x00000021u, 0x0000000bu, 0x00040047u, 0x000019bau, 0x00000006u, 0x00000004u, 0x00040048u, + 0x000019bbu, 0x00000000u, 0x00000019u, 0x00050048u, 0x000019bbu, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000019bbu, 0x00000002u, 0x00040047u, 0x000019bdu, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000019bdu, 0x00000021u, 0x0000000au, 0x00040047u, 0x000019cau, 0x00000006u, 0x00000004u, 0x00040048u, + 0x000019cbu, 0x00000000u, 0x00000019u, 0x00050048u, 0x000019cbu, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000019cbu, 0x00000002u, 0x00040047u, 0x000019cdu, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000019cdu, 0x00000021u, 0x00000009u, 0x00040047u, 0x000019d6u, 0x00000006u, 0x00000001u, 0x00040048u, + 0x000019d7u, 0x00000000u, 0x00000019u, 0x00050048u, 0x000019d7u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x000019d7u, 0x00000002u, 0x00040047u, 0x000019d9u, 0x00000022u, 0x00000000u, 0x00040047u, + 0x000019d9u, 0x00000021u, 0x0000000cu, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, + 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x00040015u, 0x00000008u, 0x00000020u, 0x00000001u, + 0x00040017u, 0x00000009u, 0x00000008u, 0x00000004u, 0x00040015u, 0x0000000fu, 0x00000008u, 0x00000000u, + 0x00040017u, 0x00000010u, 0x0000000fu, 0x00000004u, 0x00040015u, 0x00000011u, 0x00000010u, 0x00000000u, + 0x00040015u, 0x00000012u, 0x00000010u, 0x00000001u, 0x00040017u, 0x00000013u, 0x00000012u, 0x00000004u, + 0x00040017u, 0x00000023u, 0x00000011u, 0x00000004u, 0x00040017u, 0x00000058u, 0x00000008u, 0x00000002u, + 0x00040017u, 0x0000005du, 0x00000008u, 0x00000003u, 0x00020014u, 0x00000063u, 0x00040017u, 0x000000abu, + 0x00000006u, 0x00000002u, 0x00040017u, 0x0000011du, 0x00000012u, 0x00000002u, 0x00040020u, 0x0000011eu, + 0x00000007u, 0x0000011du, 0x00040020u, 0x00000176u, 0x00000007u, 0x0000000fu, 0x0004002bu, 0x00000011u, + 0x00000198u, 0x00000000u, 0x000a001eu, 0x00000199u, 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, + 0x00000009u, 0x00000009u, 0x00000009u, 0x00000009u, 0x0003001du, 0x0000019au, 0x00000199u, 0x0003001eu, + 0x0000019bu, 0x0000019au, 0x00040020u, 0x0000019cu, 0x0000000cu, 0x0000019bu, 0x0004003bu, 0x0000019cu, + 0x0000019du, 0x0000000cu, 0x0004002bu, 0x00000008u, 0x0000019eu, 0x00000000u, 0x00040020u, 0x000001a0u, + 0x0000000cu, 0x00000199u, 0x0004002bu, 0x00000008u, 0x000001a8u, 0x00000001u, 0x0004002bu, 0x00000008u, + 0x000001abu, 0x00000002u, 0x0004002bu, 0x00000008u, 0x000001aeu, 0x00000003u, 0x0004002bu, 0x00000008u, + 0x000001b1u, 0x00000004u, 0x0004002bu, 0x00000008u, 0x000001b4u, 0x00000005u, 0x0004002bu, 0x00000008u, + 0x000001b7u, 0x00000006u, 0x0004002bu, 0x00000008u, 0x000001bau, 0x00000007u, 0x0011001eu, 0x000001bfu, + 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, 0x00000010u, + 0x00000010u, 0x00000010u, 0x00000006u, 0x00000011u, 0x0000000fu, 0x0000000fu, 0x00000013u, 0x0003001du, + 0x000001c0u, 0x000001bfu, 0x0003001eu, 0x000001c1u, 0x000001c0u, 0x00040020u, 0x000001c2u, 0x0000000cu, + 0x000001c1u, 0x0004003bu, 0x000001c2u, 0x000001c3u, 0x0000000cu, 0x00040020u, 0x000001c5u, 0x0000000cu, + 0x000001bfu, 0x0004002bu, 0x00000008u, 0x000001dbu, 0x00000008u, 0x0004002bu, 0x00000008u, 0x000001deu, + 0x00000009u, 0x0004002bu, 0x00000008u, 0x000001e1u, 0x0000000au, 0x0004002bu, 0x00000008u, 0x000001e4u, + 0x0000000bu, 0x0004002bu, 0x00000008u, 0x000001e8u, 0x0000000cu, 0x0004002bu, 0x00000008u, 0x000001ebu, + 0x0000000du, 0x0004002bu, 0x00000008u, 0x000001eeu, 0x0000000eu, 0x000a001eu, 0x000001f3u, 0x00000010u, + 0x00000010u, 0x00000010u, 0x00000010u, 0x00000006u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, + 0x000001f4u, 0x000001f3u, 0x0003001eu, 0x000001f5u, 0x000001f4u, 0x00040020u, 0x000001f6u, 0x0000000cu, + 0x000001f5u, 0x0004003bu, 0x000001f6u, 0x000001f7u, 0x0000000cu, 0x00040020u, 0x000001f9u, 0x0000000cu, + 0x000001f3u, 0x0006001eu, 0x00000211u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000008u, 0x0003001du, + 0x00000212u, 0x00000211u, 0x0003001eu, 0x00000213u, 0x00000212u, 0x00040020u, 0x00000214u, 0x0000000cu, + 0x00000213u, 0x0004003bu, 0x00000214u, 0x00000215u, 0x0000000cu, 0x00040020u, 0x00000217u, 0x0000000cu, + 0x00000211u, 0x000b001eu, 0x00000227u, 0x00000009u, 0x00000009u, 0x00000023u, 0x00000023u, 0x00000008u, + 0x00000008u, 0x00000008u, 0x00000012u, 0x00000011u, 0x0003001du, 0x00000228u, 0x00000227u, 0x0003001eu, + 0x00000229u, 0x00000228u, 0x00040020u, 0x0000022au, 0x0000000cu, 0x00000229u, 0x0004003bu, 0x0000022au, + 0x0000022bu, 0x0000000cu, 0x00040020u, 0x0000022du, 0x0000000cu, 0x00000227u, 0x0010001eu, 0x00000246u, + 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x0000000fu, 0x0000000fu, + 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0000000fu, 0x0003001du, 0x00000247u, + 0x00000246u, 0x0003001eu, 0x00000248u, 0x00000247u, 0x00040020u, 0x00000249u, 0x0000000cu, 0x00000248u, + 0x0004003bu, 0x00000249u, 0x0000024au, 0x0000000cu, 0x00040020u, 0x0000024cu, 0x0000000cu, 0x00000246u, + 0x00040017u, 0x0000026fu, 0x00000006u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x00000277u, 0x00000008u, + 0x0004002bu, 0x00000006u, 0x0000027du, 0x41c64e6du, 0x0004002bu, 0x00000006u, 0x00000290u, 0x00000000u, + 0x0004002bu, 0x00000006u, 0x00000293u, 0x00000010u, 0x0004002bu, 0x00000011u, 0x00000297u, 0x00000007u, + 0x0004002bu, 0x00000011u, 0x00000299u, 0x00000006u, 0x0004002bu, 0x00000011u, 0x0000029bu, 0x00000020u, + 0x0004002bu, 0x00000011u, 0x000002a7u, 0x000001ffu, 0x0004002bu, 0x00000011u, 0x000002aeu, 0x000000ffu, + 0x0004002bu, 0x00000011u, 0x000002b4u, 0x00000004u, 0x0004002bu, 0x00000011u, 0x000002b5u, 0x00000002u, + 0x0007002cu, 0x00000023u, 0x000002b6u, 0x00000198u, 0x000002b4u, 0x000002b5u, 0x00000299u, 0x0004002bu, + 0x00000011u, 0x000002bau, 0x00000003u, 0x00040017u, 0x000002beu, 0x00000063u, 0x00000004u, 0x0004002bu, + 0x0000000fu, 0x000002d6u, 0x00000000u, 0x0004002bu, 0x0000000fu, 0x000002d7u, 0x00000001u, 0x0007002cu, + 0x00000010u, 0x000002d8u, 0x000002d6u, 0x000002d6u, 0x000002d6u, 0x000002d6u, 0x0007002cu, 0x00000010u, + 0x000002d9u, 0x000002d7u, 0x000002d7u, 0x000002d7u, 0x000002d7u, 0x0004002bu, 0x0000000fu, 0x000002e6u, + 0x00000002u, 0x0004002bu, 0x0000000fu, 0x000002e7u, 0x00000004u, 0x0004002bu, 0x0000000fu, 0x000002e8u, + 0x00000008u, 0x0007002cu, 0x00000010u, 0x000002e9u, 0x000002d7u, 0x000002e6u, 0x000002e7u, 0x000002e8u, + 0x0004002bu, 0x0000000fu, 0x000002ecu, 0x00000010u, 0x0004002bu, 0x0000000fu, 0x000002edu, 0x00000020u, + 0x0004002bu, 0x0000000fu, 0x000002eeu, 0x00000040u, 0x0004002bu, 0x0000000fu, 0x000002efu, 0x00000080u, + 0x0007002cu, 0x00000010u, 0x000002f0u, 0x000002ecu, 0x000002edu, 0x000002eeu, 0x000002efu, 0x0004002bu, + 0x00000006u, 0x000002f6u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x000002fau, 0x00000002u, 0x0004002bu, + 0x00000006u, 0x000002fdu, 0x00000003u, 0x0004002bu, 0x0000000fu, 0x00000304u, 0x000000ffu, 0x0004002bu, + 0x00000008u, 0x00000308u, 0x00000080u, 0x0007002cu, 0x00000009u, 0x00000312u, 0x0000019eu, 0x0000019eu, + 0x0000019eu, 0x0000019eu, 0x0004002bu, 0x00000008u, 0x00000313u, 0x000000ffu, 0x0007002cu, 0x00000009u, + 0x00000314u, 0x00000313u, 0x00000313u, 0x00000313u, 0x00000313u, 0x00040015u, 0x0000031du, 0x00000008u, + 0x00000001u, 0x00040017u, 0x0000031eu, 0x0000031du, 0x00000004u, 0x0004002bu, 0x00000008u, 0x0000032au, + 0x00020000u, 0x0004002bu, 0x00000008u, 0x00000334u, 0x0003ffffu, 0x0004002bu, 0x00000008u, 0x00000341u, + 0x00003fffu, 0x0004002bu, 0x00000006u, 0x00000347u, 0x00000040u, 0x0004001cu, 0x00000348u, 0x0000011du, + 0x00000347u, 0x0004002bu, 0x00000012u, 0x00000349u, 0x00004000u, 0x0004002bu, 0x00000012u, 0x0000034au, + 0xfffffc10u, 0x0005002cu, 0x0000011du, 0x0000034bu, 0x00000349u, 0x0000034au, 0x0004002bu, 0x00000012u, + 0x0000034cu, 0x00003f04u, 0x0004002bu, 0x00000012u, 0x0000034du, 0xfffffc30u, 0x0005002cu, 0x0000011du, + 0x0000034eu, 0x0000034cu, 0x0000034du, 0x0004002bu, 0x00000012u, 0x0000034fu, 0x00003e10u, 0x0004002bu, + 0x00000012u, 0x00000350u, 0xfffffc48u, 0x0005002cu, 0x0000011du, 0x00000351u, 0x0000034fu, 0x00000350u, + 0x0004002bu, 0x00000012u, 0x00000352u, 0x00003d22u, 0x0004002bu, 0x00000012u, 0x00000353u, 0xfffffc68u, + 0x0005002cu, 0x0000011du, 0x00000354u, 0x00000352u, 0x00000353u, 0x0004002bu, 0x00000012u, 0x00000355u, + 0x00003c3cu, 0x0004002bu, 0x00000012u, 0x00000356u, 0xfffffc84u, 0x0005002cu, 0x0000011du, 0x00000357u, + 0x00000355u, 0x00000356u, 0x0004002bu, 0x00000012u, 0x00000358u, 0x00003b5du, 0x0004002bu, 0x00000012u, + 0x00000359u, 0xfffffc98u, 0x0005002cu, 0x0000011du, 0x0000035au, 0x00000358u, 0x00000359u, 0x0004002bu, + 0x00000012u, 0x0000035bu, 0x00003a83u, 0x0004002bu, 0x00000012u, 0x0000035cu, 0xfffffcb8u, 0x0005002cu, + 0x0000011du, 0x0000035du, 0x0000035bu, 0x0000035cu, 0x0004002bu, 0x00000012u, 0x0000035eu, 0x000039b1u, + 0x0004002bu, 0x00000012u, 0x0000035fu, 0xfffffcccu, 0x0005002cu, 0x0000011du, 0x00000360u, 0x0000035eu, + 0x0000035fu, 0x0004002bu, 0x00000012u, 0x00000361u, 0x000038e4u, 0x0004002bu, 0x00000012u, 0x00000362u, + 0xfffffce0u, 0x0005002cu, 0x0000011du, 0x00000363u, 0x00000361u, 0x00000362u, 0x0004002bu, 0x00000012u, + 0x00000364u, 0x0000381cu, 0x0004002bu, 0x00000012u, 0x00000365u, 0xfffffcf8u, 0x0005002cu, 0x0000011du, + 0x00000366u, 0x00000364u, 0x00000365u, 0x0004002bu, 0x00000012u, 0x00000367u, 0x0000375au, 0x0004002bu, + 0x00000012u, 0x00000368u, 0xfffffd0cu, 0x0005002cu, 0x0000011du, 0x00000369u, 0x00000367u, 0x00000368u, + 0x0004002bu, 0x00000012u, 0x0000036au, 0x0000369du, 0x0004002bu, 0x00000012u, 0x0000036bu, 0xfffffd20u, + 0x0005002cu, 0x0000011du, 0x0000036cu, 0x0000036au, 0x0000036bu, 0x0004002bu, 0x00000012u, 0x0000036du, + 0x000035e5u, 0x0004002bu, 0x00000012u, 0x0000036eu, 0xfffffd34u, 0x0005002cu, 0x0000011du, 0x0000036fu, + 0x0000036du, 0x0000036eu, 0x0004002bu, 0x00000012u, 0x00000370u, 0x00003532u, 0x0004002bu, 0x00000012u, + 0x00000371u, 0xfffffd44u, 0x0005002cu, 0x0000011du, 0x00000372u, 0x00000370u, 0x00000371u, 0x0004002bu, + 0x00000012u, 0x00000373u, 0x00003483u, 0x0004002bu, 0x00000012u, 0x00000374u, 0xfffffd58u, 0x0005002cu, + 0x0000011du, 0x00000375u, 0x00000373u, 0x00000374u, 0x0004002bu, 0x00000012u, 0x00000376u, 0x000033d9u, + 0x0004002bu, 0x00000012u, 0x00000377u, 0xfffffd68u, 0x0005002cu, 0x0000011du, 0x00000378u, 0x00000376u, + 0x00000377u, 0x0004002bu, 0x00000012u, 0x00000379u, 0x00003333u, 0x0004002bu, 0x00000012u, 0x0000037au, + 0xfffffd78u, 0x0005002cu, 0x0000011du, 0x0000037bu, 0x00000379u, 0x0000037au, 0x0004002bu, 0x00000012u, + 0x0000037cu, 0x00003291u, 0x0004002bu, 0x00000012u, 0x0000037du, 0xfffffd8cu, 0x0005002cu, 0x0000011du, + 0x0000037eu, 0x0000037cu, 0x0000037du, 0x0004002bu, 0x00000012u, 0x0000037fu, 0x000031f4u, 0x0004002bu, + 0x00000012u, 0x00000380u, 0xfffffd94u, 0x0005002cu, 0x0000011du, 0x00000381u, 0x0000037fu, 0x00000380u, + 0x0004002bu, 0x00000012u, 0x00000382u, 0x00003159u, 0x0004002bu, 0x00000012u, 0x00000383u, 0xfffffda8u, + 0x0005002cu, 0x0000011du, 0x00000384u, 0x00000382u, 0x00000383u, 0x0004002bu, 0x00000012u, 0x00000385u, + 0x000030c3u, 0x0004002bu, 0x00000012u, 0x00000386u, 0xfffffdb4u, 0x0005002cu, 0x0000011du, 0x00000387u, + 0x00000385u, 0x00000386u, 0x0004002bu, 0x00000012u, 0x00000388u, 0x00003030u, 0x0004002bu, 0x00000012u, + 0x00000389u, 0xfffffdc4u, 0x0005002cu, 0x0000011du, 0x0000038au, 0x00000388u, 0x00000389u, 0x0004002bu, + 0x00000012u, 0x0000038bu, 0x00002fa1u, 0x0004002bu, 0x00000012u, 0x0000038cu, 0xfffffdd0u, 0x0005002cu, + 0x0000011du, 0x0000038du, 0x0000038bu, 0x0000038cu, 0x0004002bu, 0x00000012u, 0x0000038eu, 0x00002f15u, + 0x0004002bu, 0x00000012u, 0x0000038fu, 0xfffffddcu, 0x0005002cu, 0x0000011du, 0x00000390u, 0x0000038eu, + 0x0000038fu, 0x0004002bu, 0x00000012u, 0x00000391u, 0x00002e8cu, 0x0004002bu, 0x00000012u, 0x00000392u, + 0xfffffde8u, 0x0005002cu, 0x0000011du, 0x00000393u, 0x00000391u, 0x00000392u, 0x0004002bu, 0x00000012u, + 0x00000394u, 0x00002e06u, 0x0004002bu, 0x00000012u, 0x00000395u, 0xfffffdf4u, 0x0005002cu, 0x0000011du, + 0x00000396u, 0x00000394u, 0x00000395u, 0x0004002bu, 0x00000012u, 0x00000397u, 0x00002d83u, 0x0004002bu, + 0x00000012u, 0x00000398u, 0xfffffe00u, 0x0005002cu, 0x0000011du, 0x00000399u, 0x00000397u, 0x00000398u, + 0x0004002bu, 0x00000012u, 0x0000039au, 0x00002d03u, 0x0004002bu, 0x00000012u, 0x0000039bu, 0xfffffe0cu, + 0x0005002cu, 0x0000011du, 0x0000039cu, 0x0000039au, 0x0000039bu, 0x0004002bu, 0x00000012u, 0x0000039du, + 0x00002c86u, 0x0004002bu, 0x00000012u, 0x0000039eu, 0xfffffe14u, 0x0005002cu, 0x0000011du, 0x0000039fu, + 0x0000039du, 0x0000039eu, 0x0004002bu, 0x00000012u, 0x000003a0u, 0x00002c0bu, 0x0004002bu, 0x00000012u, + 0x000003a1u, 0xfffffe20u, 0x0005002cu, 0x0000011du, 0x000003a2u, 0x000003a0u, 0x000003a1u, 0x0004002bu, + 0x00000012u, 0x000003a3u, 0x00002b93u, 0x0004002bu, 0x00000012u, 0x000003a4u, 0xfffffe2cu, 0x0005002cu, + 0x0000011du, 0x000003a5u, 0x000003a3u, 0x000003a4u, 0x0004002bu, 0x00000012u, 0x000003a6u, 0x00002b1eu, + 0x0004002bu, 0x00000012u, 0x000003a7u, 0xfffffe34u, 0x0005002cu, 0x0000011du, 0x000003a8u, 0x000003a6u, + 0x000003a7u, 0x0004002bu, 0x00000012u, 0x000003a9u, 0x00002aabu, 0x0004002bu, 0x00000012u, 0x000003aau, + 0xfffffe3cu, 0x0005002cu, 0x0000011du, 0x000003abu, 0x000003a9u, 0x000003aau, 0x0004002bu, 0x00000012u, + 0x000003acu, 0x00002a3au, 0x0004002bu, 0x00000012u, 0x000003adu, 0xfffffe48u, 0x0005002cu, 0x0000011du, + 0x000003aeu, 0x000003acu, 0x000003adu, 0x0004002bu, 0x00000012u, 0x000003afu, 0x000029ccu, 0x0004002bu, + 0x00000012u, 0x000003b0u, 0xfffffe50u, 0x0005002cu, 0x0000011du, 0x000003b1u, 0x000003afu, 0x000003b0u, + 0x0004002bu, 0x00000012u, 0x000003b2u, 0x00002960u, 0x0004002bu, 0x00000012u, 0x000003b3u, 0xfffffe58u, + 0x0005002cu, 0x0000011du, 0x000003b4u, 0x000003b2u, 0x000003b3u, 0x0004002bu, 0x00000012u, 0x000003b5u, + 0x000028f6u, 0x0004002bu, 0x00000012u, 0x000003b6u, 0xfffffe60u, 0x0005002cu, 0x0000011du, 0x000003b7u, + 0x000003b5u, 0x000003b6u, 0x0004002bu, 0x00000012u, 0x000003b8u, 0x0000288eu, 0x0004002bu, 0x00000012u, + 0x000003b9u, 0xfffffe68u, 0x0005002cu, 0x0000011du, 0x000003bau, 0x000003b8u, 0x000003b9u, 0x0004002bu, + 0x00000012u, 0x000003bbu, 0x00002828u, 0x0004002bu, 0x00000012u, 0x000003bcu, 0xfffffe70u, 0x0005002cu, + 0x0000011du, 0x000003bdu, 0x000003bbu, 0x000003bcu, 0x0004002bu, 0x00000012u, 0x000003beu, 0x000027c4u, + 0x0004002bu, 0x00000012u, 0x000003bfu, 0xfffffe78u, 0x0005002cu, 0x0000011du, 0x000003c0u, 0x000003beu, + 0x000003bfu, 0x0004002bu, 0x00000012u, 0x000003c1u, 0x00002762u, 0x0004002bu, 0x00000012u, 0x000003c2u, + 0xfffffe80u, 0x0005002cu, 0x0000011du, 0x000003c3u, 0x000003c1u, 0x000003c2u, 0x0004002bu, 0x00000012u, + 0x000003c4u, 0x00002702u, 0x0004002bu, 0x00000012u, 0x000003c5u, 0xfffffe88u, 0x0005002cu, 0x0000011du, + 0x000003c6u, 0x000003c4u, 0x000003c5u, 0x0004002bu, 0x00000012u, 0x000003c7u, 0x000026a4u, 0x0004002bu, + 0x00000012u, 0x000003c8u, 0xfffffe90u, 0x0005002cu, 0x0000011du, 0x000003c9u, 0x000003c7u, 0x000003c8u, + 0x0004002bu, 0x00000012u, 0x000003cau, 0x00002648u, 0x0004002bu, 0x00000012u, 0x000003cbu, 0xfffffe94u, + 0x0005002cu, 0x0000011du, 0x000003ccu, 0x000003cau, 0x000003cbu, 0x0004002bu, 0x00000012u, 0x000003cdu, + 0x000025edu, 0x0004002bu, 0x00000012u, 0x000003ceu, 0xfffffe9cu, 0x0005002cu, 0x0000011du, 0x000003cfu, + 0x000003cdu, 0x000003ceu, 0x0004002bu, 0x00000012u, 0x000003d0u, 0x00002594u, 0x0004002bu, 0x00000012u, + 0x000003d1u, 0xfffffea4u, 0x0005002cu, 0x0000011du, 0x000003d2u, 0x000003d0u, 0x000003d1u, 0x0004002bu, + 0x00000012u, 0x000003d3u, 0x0000253du, 0x0004002bu, 0x00000012u, 0x000003d4u, 0xfffffea8u, 0x0005002cu, + 0x0000011du, 0x000003d5u, 0x000003d3u, 0x000003d4u, 0x0004002bu, 0x00000012u, 0x000003d6u, 0x000024e7u, + 0x0004002bu, 0x00000012u, 0x000003d7u, 0xfffffeacu, 0x0005002cu, 0x0000011du, 0x000003d8u, 0x000003d6u, + 0x000003d7u, 0x0004002bu, 0x00000012u, 0x000003d9u, 0x00002492u, 0x0004002bu, 0x00000012u, 0x000003dau, + 0xfffffeb4u, 0x0005002cu, 0x0000011du, 0x000003dbu, 0x000003d9u, 0x000003dau, 0x0004002bu, 0x00000012u, + 0x000003dcu, 0x0000243fu, 0x0004002bu, 0x00000012u, 0x000003ddu, 0xfffffebcu, 0x0005002cu, 0x0000011du, + 0x000003deu, 0x000003dcu, 0x000003ddu, 0x0004002bu, 0x00000012u, 0x000003dfu, 0x000023eeu, 0x0004002bu, + 0x00000012u, 0x000003e0u, 0xfffffec0u, 0x0005002cu, 0x0000011du, 0x000003e1u, 0x000003dfu, 0x000003e0u, + 0x0004002bu, 0x00000012u, 0x000003e2u, 0x0000239eu, 0x0004002bu, 0x00000012u, 0x000003e3u, 0xfffffec4u, + 0x0005002cu, 0x0000011du, 0x000003e4u, 0x000003e2u, 0x000003e3u, 0x0004002bu, 0x00000012u, 0x000003e5u, + 0x0000234fu, 0x0004002bu, 0x00000012u, 0x000003e6u, 0xfffffeccu, 0x0005002cu, 0x0000011du, 0x000003e7u, + 0x000003e5u, 0x000003e6u, 0x0004002bu, 0x00000012u, 0x000003e8u, 0x00002302u, 0x0004002bu, 0x00000012u, + 0x000003e9u, 0xfffffed0u, 0x0005002cu, 0x0000011du, 0x000003eau, 0x000003e8u, 0x000003e9u, 0x0004002bu, + 0x00000012u, 0x000003ebu, 0x000022b6u, 0x0004002bu, 0x00000012u, 0x000003ecu, 0xfffffed8u, 0x0005002cu, + 0x0000011du, 0x000003edu, 0x000003ebu, 0x000003ecu, 0x0004002bu, 0x00000012u, 0x000003eeu, 0x0000226cu, + 0x0005002cu, 0x0000011du, 0x000003efu, 0x000003eeu, 0x000003ecu, 0x0004002bu, 0x00000012u, 0x000003f0u, + 0x00002222u, 0x0004002bu, 0x00000012u, 0x000003f1u, 0xfffffee0u, 0x0005002cu, 0x0000011du, 0x000003f2u, + 0x000003f0u, 0x000003f1u, 0x0004002bu, 0x00000012u, 0x000003f3u, 0x000021dau, 0x0004002bu, 0x00000012u, + 0x000003f4u, 0xfffffee4u, 0x0005002cu, 0x0000011du, 0x000003f5u, 0x000003f3u, 0x000003f4u, 0x0004002bu, + 0x00000012u, 0x000003f6u, 0x00002193u, 0x0004002bu, 0x00000012u, 0x000003f7u, 0xfffffee8u, 0x0005002cu, + 0x0000011du, 0x000003f8u, 0x000003f6u, 0x000003f7u, 0x0004002bu, 0x00000012u, 0x000003f9u, 0x0000214du, + 0x0004002bu, 0x00000012u, 0x000003fau, 0xfffffeecu, 0x0005002cu, 0x0000011du, 0x000003fbu, 0x000003f9u, + 0x000003fau, 0x0004002bu, 0x00000012u, 0x000003fcu, 0x00002108u, 0x0004002bu, 0x00000012u, 0x000003fdu, + 0xfffffef4u, 0x0005002cu, 0x0000011du, 0x000003feu, 0x000003fcu, 0x000003fdu, 0x0004002bu, 0x00000012u, + 0x000003ffu, 0x000020c5u, 0x0005002cu, 0x0000011du, 0x00000400u, 0x000003ffu, 0x000003fdu, 0x0004002bu, + 0x00000012u, 0x00000401u, 0x00002082u, 0x0004002bu, 0x00000012u, 0x00000402u, 0xfffffefcu, 0x0005002cu, + 0x0000011du, 0x00000403u, 0x00000401u, 0x00000402u, 0x0004002bu, 0x00000012u, 0x00000404u, 0x00002041u, + 0x0005002cu, 0x0000011du, 0x00000405u, 0x00000404u, 0x00000402u, 0x0043002cu, 0x00000348u, 0x00000406u, + 0x0000034bu, 0x0000034eu, 0x00000351u, 0x00000354u, 0x00000357u, 0x0000035au, 0x0000035du, 0x00000360u, + 0x00000363u, 0x00000366u, 0x00000369u, 0x0000036cu, 0x0000036fu, 0x00000372u, 0x00000375u, 0x00000378u, + 0x0000037bu, 0x0000037eu, 0x00000381u, 0x00000384u, 0x00000387u, 0x0000038au, 0x0000038du, 0x00000390u, + 0x00000393u, 0x00000396u, 0x00000399u, 0x0000039cu, 0x0000039fu, 0x000003a2u, 0x000003a5u, 0x000003a8u, + 0x000003abu, 0x000003aeu, 0x000003b1u, 0x000003b4u, 0x000003b7u, 0x000003bau, 0x000003bdu, 0x000003c0u, + 0x000003c3u, 0x000003c6u, 0x000003c9u, 0x000003ccu, 0x000003cfu, 0x000003d2u, 0x000003d5u, 0x000003d8u, + 0x000003dbu, 0x000003deu, 0x000003e1u, 0x000003e4u, 0x000003e7u, 0x000003eau, 0x000003edu, 0x000003efu, + 0x000003f2u, 0x000003f5u, 0x000003f8u, 0x000003fbu, 0x000003feu, 0x00000400u, 0x00000403u, 0x00000405u, + 0x00040020u, 0x00000409u, 0x00000007u, 0x00000348u, 0x0004002bu, 0x00000008u, 0x00000426u, 0x00007fffu, + 0x0004002bu, 0x00000008u, 0x00000438u, 0x3fffffffu, 0x0004002bu, 0x00000008u, 0x00000439u, 0x20000000u, + 0x0005002cu, 0x00000058u, 0x00000452u, 0x0000019eu, 0x0000019eu, 0x00040017u, 0x00000453u, 0x00000063u, + 0x00000002u, 0x0004002bu, 0x00000008u, 0x0000046cu, 0xffff8000u, 0x00030029u, 0x00000063u, 0x0000046eu, + 0x0005002cu, 0x00000058u, 0x00000487u, 0x00000426u, 0x00000426u, 0x0004002bu, 0x00000008u, 0x00000489u, + 0xffff0000u, 0x0005002cu, 0x00000058u, 0x0000048au, 0x00000489u, 0x00000489u, 0x0004002bu, 0x00000008u, + 0x0000048bu, 0x0000ffffu, 0x0005002cu, 0x00000058u, 0x0000048cu, 0x0000048bu, 0x0000048bu, 0x0004002bu, + 0x00000008u, 0x00000491u, 0xffffffe0u, 0x00040032u, 0x00000008u, 0x00000494u, 0x00000000u, 0x0004002bu, + 0x00000008u, 0x00000495u, 0x0000001au, 0x00060034u, 0x00000008u, 0x00000496u, 0x000000c3u, 0x00000494u, + 0x00000495u, 0x00060034u, 0x00000008u, 0x00000497u, 0x000000c7u, 0x00000496u, 0x000001aeu, 0x0004002bu, + 0x00000012u, 0x000004b1u, 0x00000001u, 0x00060034u, 0x00000008u, 0x000004b4u, 0x00000080u, 0x000001abu, + 0x00000497u, 0x00050034u, 0x00000012u, 0x000004b5u, 0x00000072u, 0x000004b4u, 0x00060034u, 0x00000008u, + 0x000004cau, 0x00000080u, 0x000001b1u, 0x00000497u, 0x00050034u, 0x00000012u, 0x000004cbu, 0x00000072u, + 0x000004cau, 0x0006001eu, 0x000004e7u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000006u, 0x0003001eu, + 0x000004e8u, 0x000004e7u, 0x00040020u, 0x000004e9u, 0x00000002u, 0x000004e8u, 0x0004003bu, 0x000004e9u, + 0x000004eau, 0x00000002u, 0x00040020u, 0x000004ebu, 0x00000002u, 0x00000008u, 0x0004002bu, 0x00000008u, + 0x000004f8u, 0xffffffffu, 0x0004002bu, 0x00000008u, 0x0000050bu, 0x00000010u, 0x00060034u, 0x00000008u, + 0x00000558u, 0x000000c4u, 0x000001a8u, 0x00000497u, 0x00060034u, 0x00000063u, 0x00000559u, 0x000000adu, + 0x00000558u, 0x000001a8u, 0x00060034u, 0x00000008u, 0x000005afu, 0x00000082u, 0x00000558u, 0x000001a8u, + 0x00060034u, 0x00000008u, 0x000005c3u, 0x00000080u, 0x000001abu, 0x00000497u, 0x00060034u, 0x00000008u, + 0x000005d3u, 0x00000080u, 0x000001b4u, 0x00000497u, 0x0005002cu, 0x00000058u, 0x000005fcu, 0x0000019eu, + 0x000001a8u, 0x0004002bu, 0x00000006u, 0x00000648u, 0x0000000bu, 0x0004002bu, 0x00000006u, 0x00000649u, + 0x00000006u, 0x0006002cu, 0x0000026fu, 0x0000064au, 0x00000648u, 0x00000649u, 0x000002f6u, 0x0004002bu, + 0x00000006u, 0x0000064cu, 0x0000001fu, 0x0004002bu, 0x00000006u, 0x00000659u, 0x000000ffu, 0x00040017u, + 0x0000065cu, 0x00000012u, 0x00000003u, 0x00040017u, 0x0000065du, 0x00000011u, 0x00000003u, 0x0004002bu, + 0x00000006u, 0x0000068cu, 0x00000fffu, 0x0004002bu, 0x00000006u, 0x00000694u, 0x00000004u, 0x0004002bu, + 0x00000006u, 0x000006a1u, 0x00001000u, 0x0004001cu, 0x000006a2u, 0x0000000fu, 0x000006a1u, 0x0003001eu, + 0x000006a3u, 0x000006a2u, 0x0003001du, 0x000006a4u, 0x000006a3u, 0x0003001eu, 0x000006a5u, 0x000006a4u, + 0x00040020u, 0x000006a6u, 0x0000000cu, 0x000006a5u, 0x0004003bu, 0x000006a6u, 0x000006a7u, 0x0000000cu, + 0x00040020u, 0x000006aau, 0x0000000cu, 0x0000000fu, 0x0004002bu, 0x00000006u, 0x000006b1u, 0x0000000fu, + 0x0004002bu, 0x00000006u, 0x000006e9u, 0x0000000eu, 0x0004002bu, 0x00000006u, 0x00000746u, 0x000007ffu, + 0x0004002bu, 0x00000006u, 0x0000076fu, 0x00000800u, 0x0004001cu, 0x00000770u, 0x00000011u, 0x0000076fu, + 0x0003001eu, 0x00000771u, 0x00000770u, 0x0003001du, 0x00000772u, 0x00000771u, 0x0003001eu, 0x00000773u, + 0x00000772u, 0x00040020u, 0x00000774u, 0x0000000cu, 0x00000773u, 0x0004003bu, 0x00000774u, 0x00000775u, + 0x0000000cu, 0x0004002bu, 0x00000006u, 0x00000777u, 0x00000400u, 0x00040020u, 0x0000077au, 0x0000000cu, + 0x00000011u, 0x0004002bu, 0x00000006u, 0x00000818u, 0xfffffffcu, 0x0004002bu, 0x00000011u, 0x000008cdu, + 0x00000008u, 0x0004002bu, 0x00000012u, 0x000008d9u, 0x00000080u, 0x0004002bu, 0x00000008u, 0x00000979u, + 0x00000020u, 0x0004002bu, 0x00000008u, 0x00000990u, 0x000003ffu, 0x0004002bu, 0x00000008u, 0x000009d8u, + 0x000007ffu, 0x0004002bu, 0x00000006u, 0x00000a04u, 0x00001fffu, 0x0004002bu, 0x00000008u, 0x00000a5du, + 0x0000000fu, 0x0004002bu, 0x00000008u, 0x00000a5fu, 0x00000011u, 0x0004002bu, 0x00000006u, 0x00000ab2u, + 0x0000000cu, 0x0004002bu, 0x00000008u, 0x00000ad7u, 0x00000400u, 0x0004002bu, 0x00000012u, 0x00000b5fu, + 0x00000010u, 0x0004002bu, 0x00000012u, 0x00000b63u, 0x00000005u, 0x0004002bu, 0x00000008u, 0x00000be3u, + 0x0000001fu, 0x0004002bu, 0x00000008u, 0x00000c12u, 0xffffff01u, 0x0005002cu, 0x00000058u, 0x00000c1eu, + 0x0000050bu, 0x0000050bu, 0x00040017u, 0x0000105bu, 0x00000063u, 0x00000003u, 0x0004002bu, 0x00000012u, + 0x00001159u, 0x00000002u, 0x0003002au, 0x00000063u, 0x0000120du, 0x0004002bu, 0x00000012u, 0x00001213u, + 0x000000ffu, 0x0004002bu, 0x00000008u, 0x00001232u, 0x00004000u, 0x0004002bu, 0x00000008u, 0x0000124eu, + 0xffffff00u, 0x0004002bu, 0x00000006u, 0x0000127cu, 0x00000007u, 0x0004001cu, 0x000012a5u, 0x0000000fu, + 0x00000293u, 0x0004001cu, 0x000012a6u, 0x000012a5u, 0x000002fau, 0x0004002bu, 0x0000000fu, 0x000012a7u, + 0x00000006u, 0x0004002bu, 0x0000000fu, 0x000012a8u, 0x00000007u, 0x0004002bu, 0x0000000fu, 0x000012a9u, + 0x00000005u, 0x0004002bu, 0x0000000fu, 0x000012aau, 0x00000003u, 0x0013002cu, 0x000012a5u, 0x000012abu, + 0x000002d6u, 0x000012a7u, 0x000002d7u, 0x000012a8u, 0x000002e7u, 0x000002e6u, 0x000012a9u, 0x000012aau, + 0x000012aau, 0x000012a9u, 0x000002e6u, 0x000002e7u, 0x000012a8u, 0x000002d7u, 0x000012a7u, 0x000002d6u, + 0x0013002cu, 0x000012a5u, 0x000012acu, 0x000002d6u, 0x000002e7u, 0x000002d7u, 0x000012a9u, 0x000002e7u, + 0x000002d6u, 0x000012a9u, 0x000002d7u, 0x000012aau, 0x000012a8u, 0x000002e6u, 0x000012a7u, 0x000012a8u, + 0x000012aau, 0x000012a7u, 0x000002e6u, 0x0005002cu, 0x000012a6u, 0x000012adu, 0x000012abu, 0x000012acu, + 0x00040020u, 0x000012b5u, 0x00000007u, 0x000012a6u, 0x0004002bu, 0x00000008u, 0x000012bbu, 0x00000049u, + 0x00040017u, 0x0000132au, 0x0000000fu, 0x00000003u, 0x0004002bu, 0x00000008u, 0x00001336u, 0x00000100u, + 0x0006002cu, 0x0000005du, 0x00001337u, 0x00001336u, 0x00001336u, 0x00001336u, 0x00060034u, 0x00000008u, + 0x00001573u, 0x00000082u, 0x00000558u, 0x000001a8u, 0x000d001eu, 0x0000157bu, 0x00000008u, 0x00000008u, + 0x00000008u, 0x00000012u, 0x00000012u, 0x00000008u, 0x00000008u, 0x00000008u, 0x00000012u, 0x0000000fu, + 0x0000000fu, 0x0003001du, 0x0000157cu, 0x0000157bu, 0x0003001eu, 0x0000157du, 0x0000157cu, 0x00040020u, + 0x0000157eu, 0x0000000cu, 0x0000157du, 0x0004003bu, 0x0000157eu, 0x0000157fu, 0x0000000cu, 0x00060034u, + 0x00000063u, 0x00001584u, 0x000000adu, 0x00000558u, 0x000001a8u, 0x0004002bu, 0x00000006u, 0x00001588u, + 0x00000020u, 0x00060034u, 0x00000008u, 0x0000158du, 0x00000082u, 0x00000558u, 0x000001a8u, 0x00050034u, + 0x00000008u, 0x0000158eu, 0x000000c8u, 0x0000158du, 0x00060034u, 0x00000008u, 0x00001591u, 0x00000082u, + 0x00000558u, 0x000001a8u, 0x00050034u, 0x00000008u, 0x00001592u, 0x000000c8u, 0x00001591u, 0x00040017u, + 0x000015b1u, 0x00000006u, 0x00000004u, 0x0004001cu, 0x000015b4u, 0x0000000fu, 0x00000277u, 0x0005001eu, + 0x000015b5u, 0x00000010u, 0x00000010u, 0x000015b4u, 0x0003001du, 0x000015b6u, 0x000015b5u, 0x0003001eu, + 0x000015b7u, 0x000015b6u, 0x00040020u, 0x000015b8u, 0x0000000cu, 0x000015b7u, 0x0004003bu, 0x000015b8u, + 0x000015b9u, 0x0000000cu, 0x00040020u, 0x000015bbu, 0x0000000cu, 0x00000010u, 0x0004002bu, 0x00000008u, + 0x000015dbu, 0x40000000u, 0x00060034u, 0x00000008u, 0x000015dcu, 0x000000c7u, 0x00000494u, 0x000015dbu, + 0x00060034u, 0x00000063u, 0x000015ddu, 0x000000abu, 0x000015dcu, 0x0000019eu, 0x00060034u, 0x00000006u, + 0x000015e0u, 0x00000080u, 0x00000494u, 0x00000290u, 0x00040032u, 0x00000008u, 0x000015e1u, 0x00000000u, + 0x00060034u, 0x00000008u, 0x000015e2u, 0x000000c3u, 0x000015e1u, 0x0000019eu, 0x00060034u, 0x00000008u, + 0x000015e3u, 0x000000c7u, 0x000015e2u, 0x00000313u, 0x00040032u, 0x00000008u, 0x000015e4u, 0x00000000u, + 0x00060034u, 0x00000008u, 0x000015e5u, 0x000000c3u, 0x000015e4u, 0x0000019eu, 0x00060034u, 0x00000008u, + 0x000015e6u, 0x000000c7u, 0x000015e5u, 0x00000313u, 0x00050034u, 0x0000031du, 0x000015e7u, 0x00000072u, + 0x000015e6u, 0x00060034u, 0x0000000fu, 0x000015e8u, 0x00000080u, 0x000015e7u, 0x000002d6u, 0x00060034u, + 0x00000008u, 0x000015eau, 0x000000c3u, 0x000015e4u, 0x000001dbu, 0x00060034u, 0x00000008u, 0x000015ebu, + 0x000000c7u, 0x000015eau, 0x00000313u, 0x00050034u, 0x0000031du, 0x000015ecu, 0x00000072u, 0x000015ebu, + 0x00060034u, 0x0000000fu, 0x000015edu, 0x00000080u, 0x000015ecu, 0x000002d6u, 0x00060034u, 0x00000008u, + 0x000015efu, 0x000000c3u, 0x000015e4u, 0x0000050bu, 0x00060034u, 0x00000008u, 0x000015f0u, 0x000000c7u, + 0x000015efu, 0x00000313u, 0x00050034u, 0x0000031du, 0x000015f1u, 0x00000072u, 0x000015f0u, 0x00060034u, + 0x0000000fu, 0x000015f2u, 0x00000080u, 0x000015f1u, 0x000002d6u, 0x0004002bu, 0x00000008u, 0x000015f4u, + 0x00000018u, 0x00060034u, 0x00000008u, 0x000015f5u, 0x000000c3u, 0x000015e4u, 0x000015f4u, 0x00060034u, + 0x00000008u, 0x000015f6u, 0x000000c7u, 0x000015f5u, 0x00000313u, 0x00050034u, 0x0000031du, 0x000015f7u, + 0x00000072u, 0x000015f6u, 0x00060034u, 0x0000000fu, 0x000015f8u, 0x00000080u, 0x000015f7u, 0x000002d6u, + 0x00040032u, 0x00000008u, 0x000015fau, 0x00000000u, 0x00060034u, 0x00000008u, 0x000015fbu, 0x000000c3u, + 0x000015fau, 0x0000019eu, 0x00060034u, 0x00000008u, 0x000015fcu, 0x000000c7u, 0x000015fbu, 0x00000313u, + 0x00050034u, 0x0000031du, 0x000015fdu, 0x00000072u, 0x000015fcu, 0x00060034u, 0x0000000fu, 0x000015feu, + 0x00000080u, 0x000015fdu, 0x000002d6u, 0x00060034u, 0x00000008u, 0x00001600u, 0x000000c3u, 0x000015fau, + 0x000001dbu, 0x00060034u, 0x00000008u, 0x00001601u, 0x000000c7u, 0x00001600u, 0x00000313u, 0x00050034u, + 0x0000031du, 0x00001602u, 0x00000072u, 0x00001601u, 0x00060034u, 0x0000000fu, 0x00001603u, 0x00000080u, + 0x00001602u, 0x000002d6u, 0x00060034u, 0x00000008u, 0x00001605u, 0x000000c3u, 0x000015fau, 0x0000050bu, + 0x00060034u, 0x00000008u, 0x00001606u, 0x000000c7u, 0x00001605u, 0x00000313u, 0x00050034u, 0x0000031du, + 0x00001607u, 0x00000072u, 0x00001606u, 0x00060034u, 0x0000000fu, 0x00001608u, 0x00000080u, 0x00001607u, + 0x000002d6u, 0x00060034u, 0x00000008u, 0x0000160au, 0x000000c3u, 0x000015fau, 0x000015f4u, 0x00060034u, + 0x00000008u, 0x0000160bu, 0x000000c7u, 0x0000160au, 0x00000313u, 0x00050034u, 0x0000031du, 0x0000160cu, + 0x00000072u, 0x0000160bu, 0x00060034u, 0x0000000fu, 0x0000160du, 0x00000080u, 0x0000160cu, 0x000002d6u, + 0x00040032u, 0x00000008u, 0x0000160fu, 0x00000000u, 0x00060034u, 0x00000008u, 0x00001610u, 0x000000c3u, + 0x0000160fu, 0x0000019eu, 0x00060034u, 0x00000008u, 0x00001611u, 0x000000c7u, 0x00001610u, 0x00000313u, + 0x00050034u, 0x0000031du, 0x00001612u, 0x00000072u, 0x00001611u, 0x00060034u, 0x0000000fu, 0x00001613u, + 0x00000080u, 0x00001612u, 0x000002d6u, 0x00060034u, 0x00000008u, 0x00001615u, 0x000000c3u, 0x0000160fu, + 0x000001dbu, 0x00060034u, 0x00000008u, 0x00001616u, 0x000000c7u, 0x00001615u, 0x00000313u, 0x00050034u, + 0x0000031du, 0x00001617u, 0x00000072u, 0x00001616u, 0x00060034u, 0x0000000fu, 0x00001618u, 0x00000080u, + 0x00001617u, 0x000002d6u, 0x00060034u, 0x00000008u, 0x0000161au, 0x000000c3u, 0x0000160fu, 0x0000050bu, + 0x00060034u, 0x00000008u, 0x0000161bu, 0x000000c7u, 0x0000161au, 0x00000313u, 0x00050034u, 0x0000031du, + 0x0000161cu, 0x00000072u, 0x0000161bu, 0x00060034u, 0x0000000fu, 0x0000161du, 0x00000080u, 0x0000161cu, + 0x000002d6u, 0x00060034u, 0x00000008u, 0x0000161fu, 0x000000c3u, 0x0000160fu, 0x000015f4u, 0x00060034u, + 0x00000008u, 0x00001620u, 0x000000c7u, 0x0000161fu, 0x00000313u, 0x00050034u, 0x0000031du, 0x00001621u, + 0x00000072u, 0x00001620u, 0x00060034u, 0x0000000fu, 0x00001622u, 0x00000080u, 0x00001621u, 0x000002d6u, + 0x00040032u, 0x00000008u, 0x00001624u, 0x00000000u, 0x00060034u, 0x00000008u, 0x00001625u, 0x000000c3u, + 0x00001624u, 0x0000019eu, 0x00060034u, 0x00000008u, 0x00001626u, 0x000000c7u, 0x00001625u, 0x00000313u, + 0x00050034u, 0x0000031du, 0x00001627u, 0x00000072u, 0x00001626u, 0x00060034u, 0x0000000fu, 0x00001628u, + 0x00000080u, 0x00001627u, 0x000002d6u, 0x00060034u, 0x00000008u, 0x0000162au, 0x000000c3u, 0x00001624u, + 0x000001dbu, 0x00060034u, 0x00000008u, 0x0000162bu, 0x000000c7u, 0x0000162au, 0x00000313u, 0x00050034u, + 0x0000031du, 0x0000162cu, 0x00000072u, 0x0000162bu, 0x00060034u, 0x0000000fu, 0x0000162du, 0x00000080u, + 0x0000162cu, 0x000002d6u, 0x00060034u, 0x00000008u, 0x0000162fu, 0x000000c3u, 0x00001624u, 0x0000050bu, + 0x00060034u, 0x00000008u, 0x00001630u, 0x000000c7u, 0x0000162fu, 0x00000313u, 0x00050034u, 0x0000031du, + 0x00001631u, 0x00000072u, 0x00001630u, 0x00060034u, 0x0000000fu, 0x00001632u, 0x00000080u, 0x00001631u, + 0x000002d6u, 0x00060034u, 0x00000008u, 0x00001634u, 0x000000c3u, 0x00001624u, 0x000015f4u, 0x00060034u, + 0x00000008u, 0x00001635u, 0x000000c7u, 0x00001634u, 0x00000313u, 0x00050034u, 0x0000031du, 0x00001636u, + 0x00000072u, 0x00001635u, 0x00060034u, 0x0000000fu, 0x00001637u, 0x00000080u, 0x00001636u, 0x000002d6u, + 0x0004002bu, 0x00000006u, 0x00001643u, 0x00004000u, 0x0004002bu, 0x00000006u, 0x0000164cu, 0x00000080u, + 0x0004002bu, 0x00000006u, 0x00001655u, 0x00000200u, 0x0004002bu, 0x00000006u, 0x00001666u, 0x00000100u, + 0x0004002bu, 0x00000006u, 0x00001673u, 0x00002000u, 0x0004002bu, 0x00000006u, 0x00001678u, 0x00008000u, + 0x0004002bu, 0x00000006u, 0x0000167du, 0x00010000u, 0x0004002bu, 0x00000006u, 0x00001682u, 0x00020000u, + 0x0004002bu, 0x00000006u, 0x00001687u, 0x00040000u, 0x0004002bu, 0x00000006u, 0x0000168cu, 0x00080000u, + 0x0004002bu, 0x00000006u, 0x00001691u, 0x00200000u, 0x0004002bu, 0x00000006u, 0x00001696u, 0x00100000u, + 0x0004002bu, 0x00000006u, 0x0000169bu, 0x00400000u, 0x0004002bu, 0x00000006u, 0x000016a0u, 0x00800000u, + 0x0004002bu, 0x00000006u, 0x000016a5u, 0x01000000u, 0x0004002bu, 0x00000006u, 0x000016a9u, 0x10000000u, + 0x00040020u, 0x000016b3u, 0x00000002u, 0x00000006u, 0x00060034u, 0x00000008u, 0x000016f2u, 0x000000c7u, + 0x00000494u, 0x00000439u, 0x00060034u, 0x00000063u, 0x000016f3u, 0x000000abu, 0x000016f2u, 0x0000019eu, + 0x00060034u, 0x00000008u, 0x000016f6u, 0x000000c3u, 0x000015e1u, 0x0000050bu, 0x00060034u, 0x00000008u, + 0x000016f7u, 0x000000c7u, 0x000016f6u, 0x00000313u, 0x00060034u, 0x00000008u, 0x000016fbu, 0x000000c3u, + 0x000015e1u, 0x000001dbu, 0x00060034u, 0x00000008u, 0x000016fcu, 0x000000c7u, 0x000016fbu, 0x00000313u, + 0x00050034u, 0x0000031du, 0x000016fdu, 0x00000072u, 0x000016fcu, 0x00060034u, 0x0000000fu, 0x000016feu, + 0x00000080u, 0x000016fdu, 0x000002d6u, 0x00060034u, 0x00000063u, 0x00001770u, 0x000000adu, 0x00000558u, + 0x000001a8u, 0x00060034u, 0x00000008u, 0x000017dau, 0x000000c7u, 0x00000494u, 0x00000439u, 0x00060034u, + 0x00000063u, 0x000017dbu, 0x000000abu, 0x000017dau, 0x0000019eu, 0x00050034u, 0x0000031du, 0x000017deu, + 0x00000072u, 0x000016f7u, 0x00060034u, 0x0000000fu, 0x000017dfu, 0x00000080u, 0x000017deu, 0x000002d6u, + 0x00050034u, 0x0000031du, 0x000017e1u, 0x00000072u, 0x000016fcu, 0x00060034u, 0x0000000fu, 0x000017e2u, + 0x00000080u, 0x000017e1u, 0x000002d6u, 0x00040020u, 0x00001833u, 0x0000000cu, 0x00000009u, 0x00060034u, + 0x00000008u, 0x00001872u, 0x000000c7u, 0x00000494u, 0x00000439u, 0x00060034u, 0x00000063u, 0x00001873u, + 0x000000abu, 0x00001872u, 0x0000019eu, 0x00050034u, 0x0000031du, 0x00001876u, 0x00000072u, 0x000016f7u, + 0x00060034u, 0x0000000fu, 0x00001877u, 0x00000080u, 0x00001876u, 0x000002d6u, 0x00050034u, 0x0000031du, + 0x00001879u, 0x00000072u, 0x000016fcu, 0x00060034u, 0x0000000fu, 0x0000187au, 0x00000080u, 0x00001879u, + 0x000002d6u, 0x0004002bu, 0x00000006u, 0x000018e4u, 0x02000000u, 0x0003001du, 0x00001961u, 0x000015b1u, + 0x0003001eu, 0x00001962u, 0x00001961u, 0x00040020u, 0x00001963u, 0x0000000cu, 0x00001962u, 0x0004003bu, + 0x00001963u, 0x00001964u, 0x0000000cu, 0x00040020u, 0x00001965u, 0x00000001u, 0x0000026fu, 0x0004003bu, + 0x00001965u, 0x00001966u, 0x00000001u, 0x00040020u, 0x00001967u, 0x00000001u, 0x00000006u, 0x00040020u, + 0x0000196au, 0x0000000cu, 0x000015b1u, 0x00040032u, 0x00000006u, 0x00001970u, 0x00000001u, 0x00040032u, + 0x00000006u, 0x00001971u, 0x00000001u, 0x00060033u, 0x0000026fu, 0x00001972u, 0x00001970u, 0x00001971u, + 0x000002f6u, 0x0004003bu, 0x00001965u, 0x00001975u, 0x00000001u, 0x00060034u, 0x00000006u, 0x0000198bu, + 0x00000051u, 0x00001972u, 0x00000000u, 0x00060034u, 0x00000006u, 0x0000198cu, 0x00000051u, 0x00001972u, + 0x00000001u, 0x00060034u, 0x00000006u, 0x0000198du, 0x00000084u, 0x0000198bu, 0x0000198cu, 0x0004003bu, + 0x00001967u, 0x0000198fu, 0x00000001u, 0x0004002bu, 0x0000031du, 0x000019a4u, 0x00000008u, 0x0003001du, + 0x000019a8u, 0x00000010u, 0x0003001eu, 0x000019a9u, 0x000019a8u, 0x00040020u, 0x000019aau, 0x0000000cu, + 0x000019a9u, 0x0004003bu, 0x000019aau, 0x000019abu, 0x0000000cu, 0x0003001du, 0x000019b2u, 0x0000000fu, + 0x0003001eu, 0x000019b3u, 0x000019b2u, 0x00040020u, 0x000019b4u, 0x0000000cu, 0x000019b3u, 0x0004003bu, + 0x000019b4u, 0x000019b5u, 0x0000000cu, 0x0003001du, 0x000019bau, 0x00000008u, 0x0003001eu, 0x000019bbu, + 0x000019bau, 0x00040020u, 0x000019bcu, 0x0000000cu, 0x000019bbu, 0x0004003bu, 0x000019bcu, 0x000019bdu, + 0x0000000cu, 0x00040020u, 0x000019c1u, 0x0000000cu, 0x00000008u, 0x0003001du, 0x000019cau, 0x00000006u, + 0x0003001eu, 0x000019cbu, 0x000019cau, 0x00040020u, 0x000019ccu, 0x0000000cu, 0x000019cbu, 0x0004003bu, + 0x000019ccu, 0x000019cdu, 0x0000000cu, 0x00040020u, 0x000019d2u, 0x0000000cu, 0x00000006u, 0x0004002bu, + 0x0000031du, 0x000019d5u, 0xffffffffu, 0x0003001du, 0x000019d6u, 0x0000031du, 0x0003001eu, 0x000019d7u, + 0x000019d6u, 0x00040020u, 0x000019d8u, 0x0000000cu, 0x000019d7u, 0x0004003bu, 0x000019d8u, 0x000019d9u, + 0x0000000cu, 0x00040020u, 0x000019dcu, 0x0000000cu, 0x0000031du, 0x00030001u, 0x0000005du, 0x00006a53u, + 0x00030001u, 0x00000058u, 0x00006adeu, 0x00030001u, 0x00000013u, 0x00006bf1u, 0x00030001u, 0x00000012u, + 0x00007b59u, 0x00030001u, 0x0000000fu, 0x00008414u, 0x00030001u, 0x00000008u, 0x000086c1u, 0x00030001u, + 0x00000010u, 0x00008802u, 0x0006002cu, 0x0000026fu, 0x00008970u, 0x00000277u, 0x00000277u, 0x00000277u, + 0x0006002cu, 0x0000026fu, 0x00008971u, 0x0000027du, 0x0000027du, 0x0000027du, 0x0006002cu, 0x0000005du, + 0x00008972u, 0x00000491u, 0x00000491u, 0x00000491u, 0x0006002cu, 0x0000005du, 0x00008973u, 0x0000050bu, + 0x0000050bu, 0x0000050bu, 0x0007002cu, 0x00000009u, 0x00008974u, 0x00000491u, 0x00000491u, 0x00000491u, + 0x00000491u, 0x0007002cu, 0x00000009u, 0x00008975u, 0x000001eeu, 0x000001eeu, 0x000001eeu, 0x000001eeu, + 0x0007002cu, 0x00000009u, 0x00008976u, 0x00000308u, 0x00000308u, 0x00000308u, 0x00000308u, 0x0005002cu, + 0x00000058u, 0x00008977u, 0x000001a8u, 0x000001a8u, 0x0006002cu, 0x0000005du, 0x00008978u, 0x0000046cu, + 0x0000046cu, 0x0000046cu, 0x0005002cu, 0x00000058u, 0x00008979u, 0x000001b4u, 0x000001b4u, 0x0005002cu, + 0x00000058u, 0x0000897au, 0x00000be3u, 0x00000be3u, 0x0005002cu, 0x000000abu, 0x0000897bu, 0x00000a04u, + 0x00000a04u, 0x0005002cu, 0x000000abu, 0x0000897cu, 0x000002fau, 0x000002fau, 0x0006002cu, 0x0000026fu, + 0x0000897du, 0x0000064cu, 0x0000064cu, 0x0000064cu, 0x0006002cu, 0x0000026fu, 0x0000897eu, 0x000002fdu, + 0x000002fdu, 0x000002fdu, 0x0006002cu, 0x0000026fu, 0x0000897fu, 0x000002fau, 0x000002fau, 0x000002fau, + 0x0007002cu, 0x00000009u, 0x00008980u, 0x000001dbu, 0x000001dbu, 0x000001dbu, 0x000001dbu, 0x0007002cu, + 0x00000013u, 0x00008981u, 0x00001159u, 0x00001159u, 0x00001159u, 0x00001159u, 0x0005002cu, 0x0000011du, + 0x00008982u, 0x00001159u, 0x00001159u, 0x0005002cu, 0x00000058u, 0x00008983u, 0x00000979u, 0x00000979u, + 0x0005002cu, 0x0000011du, 0x00008984u, 0x00000b5fu, 0x00000b5fu, 0x0005002cu, 0x0000011du, 0x00008985u, + 0x00000b63u, 0x00000b63u, 0x0007002cu, 0x00000013u, 0x00008986u, 0x00000b5fu, 0x00000b5fu, 0x00000b5fu, + 0x00000b5fu, 0x0007002cu, 0x00000013u, 0x00008987u, 0x00000b63u, 0x00000b63u, 0x00000b63u, 0x00000b63u, + 0x0005002cu, 0x00000058u, 0x00008988u, 0x000001b7u, 0x000001b7u, 0x0005002cu, 0x00000058u, 0x00008989u, + 0x00000308u, 0x00000308u, 0x0006002cu, 0x0000005du, 0x00008991u, 0x0000019eu, 0x0000019eu, 0x0000019eu, + 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003bu, + 0x000012b5u, 0x00005b40u, 0x00000007u, 0x0004003bu, 0x000012b5u, 0x00005b42u, 0x00000007u, 0x0004003bu, + 0x00000409u, 0x0000410eu, 0x00000007u, 0x0004003bu, 0x00000409u, 0x00004062u, 0x00000007u, 0x0004003bu, + 0x00000409u, 0x00002560u, 0x00000007u, 0x0004003bu, 0x00000409u, 0x000024dau, 0x00000007u, 0x0004003bu, + 0x00000409u, 0x00002454u, 0x00000007u, 0x0004003bu, 0x00000409u, 0x00001e7eu, 0x00000007u, 0x00050041u, + 0x00001967u, 0x00001968u, 0x00001966u, 0x00000290u, 0x0004003du, 0x00000006u, 0x00001969u, 0x00001968u, + 0x00060041u, 0x0000196au, 0x0000196bu, 0x00001964u, 0x0000019eu, 0x00001969u, 0x0004003du, 0x000015b1u, + 0x0000196cu, 0x0000196bu, 0x00050051u, 0x00000006u, 0x0000196fu, 0x0000196cu, 0x00000000u, 0x00050051u, + 0x00000006u, 0x00001973u, 0x00001972u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00001974u, 0x0000196fu, + 0x00001973u, 0x00050041u, 0x00001967u, 0x00001976u, 0x00001975u, 0x00000290u, 0x0004003du, 0x00000006u, + 0x00001977u, 0x00001976u, 0x00050080u, 0x00000006u, 0x00001978u, 0x00001974u, 0x00001977u, 0x0004007cu, + 0x00000008u, 0x00001979u, 0x00001978u, 0x00050051u, 0x00000006u, 0x0000197cu, 0x0000196cu, 0x00000001u, + 0x00050051u, 0x00000006u, 0x0000197du, 0x00001972u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000197eu, + 0x0000197cu, 0x0000197du, 0x00050041u, 0x00001967u, 0x0000197fu, 0x00001975u, 0x000002f6u, 0x0004003du, + 0x00000006u, 0x00001980u, 0x0000197fu, 0x00050080u, 0x00000006u, 0x00001981u, 0x0000197eu, 0x00001980u, + 0x0004007cu, 0x00000008u, 0x00001982u, 0x00001981u, 0x00050051u, 0x00000006u, 0x00001985u, 0x0000196cu, + 0x00000002u, 0x00050051u, 0x00000006u, 0x00001988u, 0x0000196cu, 0x00000003u, 0x00050084u, 0x00000006u, + 0x0000198eu, 0x00001985u, 0x0000198du, 0x0004003du, 0x00000006u, 0x00001990u, 0x0000198fu, 0x00050080u, + 0x00000006u, 0x00001991u, 0x0000198eu, 0x00001990u, 0x000300f7u, 0x00001d5cu, 0x00000000u, 0x000300fbu, + 0x00000290u, 0x00001ac3u, 0x000200f8u, 0x00001ac3u, 0x00060041u, 0x00000217u, 0x00001d62u, 0x00000215u, + 0x0000019eu, 0x00001988u, 0x0004003du, 0x00000211u, 0x00001d63u, 0x00001d62u, 0x00050051u, 0x00000008u, + 0x00001d64u, 0x00001d63u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00001d66u, 0x00001d63u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00001d68u, 0x00001d63u, 0x00000002u, 0x00050084u, 0x00000008u, 0x00001ac9u, + 0x00000558u, 0x00001d66u, 0x000500b1u, 0x00000063u, 0x00001acau, 0x00001982u, 0x00001ac9u, 0x000400a8u, + 0x00000063u, 0x00001acbu, 0x00001acau, 0x000300f7u, 0x00001ad3u, 0x00000000u, 0x000400fau, 0x00001acbu, + 0x00001accu, 0x00001ad3u, 0x000200f8u, 0x00001accu, 0x00050084u, 0x00000008u, 0x00001ad0u, 0x00001d68u, + 0x00000558u, 0x00050080u, 0x00000008u, 0x00001ad1u, 0x00001ad0u, 0x00001573u, 0x000500adu, 0x00000063u, + 0x00001ad2u, 0x00001982u, 0x00001ad1u, 0x000200f9u, 0x00001ad3u, 0x000200f8u, 0x00001ad3u, 0x000700f5u, + 0x00000063u, 0x00001ad4u, 0x00001acau, 0x00001ac3u, 0x00001ad2u, 0x00001accu, 0x000300f7u, 0x00001ad6u, + 0x00000000u, 0x000400fau, 0x00001ad4u, 0x00001ad5u, 0x00001ad6u, 0x000200f8u, 0x00001ad5u, 0x000200f9u, + 0x00001d5cu, 0x000200f8u, 0x00001ad6u, 0x00070041u, 0x000006aau, 0x00001ad8u, 0x0000157fu, 0x0000019eu, + 0x00001988u, 0x000001deu, 0x0004003du, 0x0000000fu, 0x00001ad9u, 0x00001ad8u, 0x00040071u, 0x00000006u, + 0x00001adau, 0x00001ad9u, 0x000300f7u, 0x00001ae5u, 0x00000000u, 0x000400fau, 0x00001584u, 0x00001adbu, + 0x00001ae5u, 0x000200f8u, 0x00001adbu, 0x000500c7u, 0x00000006u, 0x00001addu, 0x00001adau, 0x00001588u, + 0x000500abu, 0x00000063u, 0x00001adeu, 0x00001addu, 0x00000290u, 0x000300f7u, 0x00001ae4u, 0x00000000u, + 0x000400fau, 0x00001adeu, 0x00001adfu, 0x00001ae4u, 0x000200f8u, 0x00001adfu, 0x000500c7u, 0x00000008u, + 0x00001ae1u, 0x00001979u, 0x0000158eu, 0x000500c7u, 0x00000008u, 0x00001ae3u, 0x00001982u, 0x00001592u, + 0x000200f9u, 0x00001ae4u, 0x000200f8u, 0x00001ae4u, 0x000700f5u, 0x00000008u, 0x00006a44u, 0x00001979u, + 0x00001adbu, 0x00001ae1u, 0x00001adfu, 0x000700f5u, 0x00000008u, 0x00006a40u, 0x00001982u, 0x00001adbu, + 0x00001ae3u, 0x00001adfu, 0x000200f9u, 0x00001ae5u, 0x000200f8u, 0x00001ae5u, 0x000700f5u, 0x00000008u, + 0x00006a43u, 0x00001979u, 0x00001ad6u, 0x00006a44u, 0x00001ae4u, 0x000700f5u, 0x00000008u, 0x00006a3fu, + 0x00001982u, 0x00001ad6u, 0x00006a40u, 0x00001ae4u, 0x00050084u, 0x00000008u, 0x00001ae8u, 0x00000558u, + 0x00001d64u, 0x00050082u, 0x00000008u, 0x00001aedu, 0x00006a3fu, 0x00001ac9u, 0x00050080u, 0x00000008u, + 0x00001aeeu, 0x00001ae8u, 0x00001aedu, 0x0004007cu, 0x00000006u, 0x00001aefu, 0x00001aeeu, 0x00060041u, + 0x0000022du, 0x00001d71u, 0x0000022bu, 0x0000019eu, 0x00001aefu, 0x0004003du, 0x00000227u, 0x00001d72u, + 0x00001d71u, 0x00050051u, 0x00000009u, 0x00001d73u, 0x00001d72u, 0x00000000u, 0x00050051u, 0x00000009u, + 0x00001d75u, 0x00001d72u, 0x00000001u, 0x00050051u, 0x00000023u, 0x00001d77u, 0x00001d72u, 0x00000002u, + 0x00050051u, 0x00000023u, 0x00001d79u, 0x00001d72u, 0x00000003u, 0x00050051u, 0x00000008u, 0x00001d7bu, + 0x00001d72u, 0x00000004u, 0x00050051u, 0x00000008u, 0x00001d7du, 0x00001d72u, 0x00000005u, 0x00050051u, + 0x00000008u, 0x00001d7fu, 0x00001d72u, 0x00000006u, 0x00050051u, 0x00000012u, 0x00001d81u, 0x00001d72u, + 0x00000007u, 0x00050051u, 0x00000011u, 0x00001d83u, 0x00001d72u, 0x00000008u, 0x000500aau, 0x00000063u, + 0x00001af3u, 0x00001d83u, 0x00000198u, 0x000300f7u, 0x00001af5u, 0x00000000u, 0x000400fau, 0x00001af3u, + 0x00001af4u, 0x00001af5u, 0x000200f8u, 0x00001af4u, 0x000200f9u, 0x00001d5cu, 0x000200f8u, 0x00001af5u, + 0x00070041u, 0x000006aau, 0x00001af7u, 0x0000157fu, 0x0000019eu, 0x00001988u, 0x000001e1u, 0x0004003du, + 0x0000000fu, 0x00001af8u, 0x00001af7u, 0x00040071u, 0x00000006u, 0x00001af9u, 0x00001af8u, 0x00060041u, + 0x000001a0u, 0x00001d8au, 0x0000019du, 0x0000019eu, 0x00001988u, 0x0004003du, 0x00000199u, 0x00001d8bu, + 0x00001d8au, 0x00050051u, 0x00000009u, 0x00001d8eu, 0x00001d8bu, 0x00000001u, 0x00050051u, 0x00000009u, + 0x00001d92u, 0x00001d8bu, 0x00000003u, 0x00050051u, 0x00000009u, 0x00001d96u, 0x00001d8bu, 0x00000005u, + 0x00050051u, 0x00000009u, 0x00001d9au, 0x00001d8bu, 0x00000007u, 0x00070041u, 0x000015bbu, 0x00001afdu, + 0x000015b9u, 0x0000019eu, 0x00001988u, 0x0000019eu, 0x0004003du, 0x00000010u, 0x00001afeu, 0x00001afdu, + 0x00040071u, 0x000015b1u, 0x00001affu, 0x00001afeu, 0x00050051u, 0x00000006u, 0x00001b01u, 0x00001affu, + 0x00000000u, 0x00050051u, 0x00000006u, 0x00001b03u, 0x00001affu, 0x00000002u, 0x00060041u, 0x000001f9u, + 0x00001da1u, 0x000001f7u, 0x0000019eu, 0x00001b01u, 0x0004003du, 0x000001f3u, 0x00001da2u, 0x00001da1u, + 0x00050051u, 0x00000010u, 0x00001da3u, 0x00001da2u, 0x00000000u, 0x00050051u, 0x00000010u, 0x00001da5u, + 0x00001da2u, 0x00000001u, 0x00050051u, 0x00000010u, 0x00001da7u, 0x00001da2u, 0x00000002u, 0x00050051u, + 0x00000010u, 0x00001da9u, 0x00001da2u, 0x00000003u, 0x00050051u, 0x00000006u, 0x00001dabu, 0x00001da2u, + 0x00000004u, 0x00050051u, 0x00000008u, 0x00001dadu, 0x00001da2u, 0x00000005u, 0x000300f7u, 0x00001b23u, + 0x00000000u, 0x000400fau, 0x000015ddu, 0x00001b12u, 0x00001b23u, 0x000200f8u, 0x00001b12u, 0x00070050u, + 0x00000010u, 0x0000898au, 0x000015e8u, 0x000015edu, 0x000015f2u, 0x000015f8u, 0x00070050u, 0x00000010u, + 0x0000898bu, 0x000015feu, 0x00001603u, 0x00001608u, 0x0000160du, 0x00070050u, 0x00000010u, 0x0000898cu, + 0x00001613u, 0x00001618u, 0x0000161du, 0x00001622u, 0x00070050u, 0x00000010u, 0x0000898du, 0x00001628u, + 0x0000162du, 0x00001632u, 0x00001637u, 0x000200f9u, 0x00001b23u, 0x000200f8u, 0x00001b23u, 0x000700f5u, + 0x00000010u, 0x000080dbu, 0x00001da5u, 0x00001af5u, 0x0000898bu, 0x00001b12u, 0x000700f5u, 0x00000010u, + 0x00007fc5u, 0x00001da3u, 0x00001af5u, 0x0000898au, 0x00001b12u, 0x000700f5u, 0x00000010u, 0x00007d80u, + 0x00001da9u, 0x00001af5u, 0x0000898du, 0x00001b12u, 0x000700f5u, 0x00000010u, 0x00007c6au, 0x00001da7u, + 0x00001af5u, 0x0000898cu, 0x00001b12u, 0x000600a9u, 0x00000008u, 0x00008993u, 0x000015ddu, 0x000015e3u, + 0x00001dadu, 0x000600a9u, 0x00000006u, 0x00008994u, 0x000015ddu, 0x000015e0u, 0x00001dabu, 0x000500c7u, + 0x00000006u, 0x00001b25u, 0x00008994u, 0x00000293u, 0x000500abu, 0x00000063u, 0x00001b26u, 0x00001b25u, + 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b28u, 0x00008994u, 0x00001588u, 0x000500abu, 0x00000063u, + 0x00001b29u, 0x00001b28u, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b2bu, 0x00008994u, 0x00001643u, + 0x000500abu, 0x00000063u, 0x00001b2cu, 0x00001b2bu, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b2eu, + 0x00008994u, 0x00000347u, 0x000500abu, 0x00000063u, 0x00001b2fu, 0x00001b2eu, 0x00000290u, 0x000500c7u, + 0x00000006u, 0x00001b31u, 0x00008994u, 0x0000164cu, 0x000500abu, 0x00000063u, 0x00001b32u, 0x00001b31u, + 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b34u, 0x00008994u, 0x00000277u, 0x000500abu, 0x00000063u, + 0x00001b35u, 0x00001b34u, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b37u, 0x00008994u, 0x00001655u, + 0x000500abu, 0x00000063u, 0x00001b38u, 0x00001b37u, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b3au, + 0x00008994u, 0x00000777u, 0x000500abu, 0x00000063u, 0x00001b3bu, 0x00001b3au, 0x00000290u, 0x000500c7u, + 0x00000006u, 0x00001b3du, 0x00008994u, 0x0000076fu, 0x000500abu, 0x00000063u, 0x00001b3eu, 0x00001b3du, + 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b40u, 0x00008994u, 0x00000694u, 0x000500abu, 0x00000063u, + 0x00001b41u, 0x00001b40u, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b43u, 0x00008994u, 0x00001666u, + 0x000500abu, 0x00000063u, 0x00001b44u, 0x00001b43u, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b46u, + 0x00008994u, 0x000002f6u, 0x000500abu, 0x00000063u, 0x00001b47u, 0x00001b46u, 0x00000290u, 0x000500c7u, + 0x00000006u, 0x00001b49u, 0x00008994u, 0x000006a1u, 0x000500abu, 0x00000063u, 0x00001b4au, 0x00001b49u, + 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b4cu, 0x00008994u, 0x00001673u, 0x000500abu, 0x00000063u, + 0x00001b4du, 0x00001b4cu, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b4fu, 0x00008994u, 0x00001678u, + 0x000500abu, 0x00000063u, 0x00001b50u, 0x00001b4fu, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b52u, + 0x00008994u, 0x0000167du, 0x000500abu, 0x00000063u, 0x00001b53u, 0x00001b52u, 0x00000290u, 0x000500c7u, + 0x00000006u, 0x00001b55u, 0x00008994u, 0x00001682u, 0x000500abu, 0x00000063u, 0x00001b56u, 0x00001b55u, + 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b58u, 0x00008994u, 0x00001687u, 0x000500abu, 0x00000063u, + 0x00001b59u, 0x00001b58u, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b5bu, 0x00008994u, 0x0000168cu, + 0x000500abu, 0x00000063u, 0x00001b5cu, 0x00001b5bu, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b5eu, + 0x00008994u, 0x00001691u, 0x000500abu, 0x00000063u, 0x00001b5fu, 0x00001b5eu, 0x00000290u, 0x000500c7u, + 0x00000006u, 0x00001b61u, 0x00008994u, 0x00001696u, 0x000500abu, 0x00000063u, 0x00001b62u, 0x00001b61u, + 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b64u, 0x00008994u, 0x0000169bu, 0x000500abu, 0x00000063u, + 0x00001b65u, 0x00001b64u, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b67u, 0x00008994u, 0x000016a0u, + 0x000500abu, 0x00000063u, 0x00001b68u, 0x00001b67u, 0x00000290u, 0x000500c7u, 0x00000006u, 0x00001b6au, + 0x00008994u, 0x000016a5u, 0x000500abu, 0x00000063u, 0x00001b6bu, 0x00001b6au, 0x00000290u, 0x000500c7u, + 0x00000006u, 0x00001b6du, 0x00008994u, 0x000016a9u, 0x000500abu, 0x00000063u, 0x00001b6eu, 0x00001b6du, + 0x00000290u, 0x000300f7u, 0x00001b79u, 0x00000000u, 0x000400fau, 0x00001b6eu, 0x00001b6fu, 0x00001b79u, + 0x000200f8u, 0x00001b6fu, 0x0004007cu, 0x00000006u, 0x00001b71u, 0x00006a43u, 0x0004007cu, 0x00000006u, + 0x00001b73u, 0x00006a3fu, 0x00060041u, 0x000016b3u, 0x00001b75u, 0x000004eau, 0x0000019eu, 0x000001aeu, + 0x0004003du, 0x00000006u, 0x00001b76u, 0x00001b75u, 0x00050080u, 0x00000006u, 0x00001b77u, 0x00001988u, + 0x00001b76u, 0x00060050u, 0x0000026fu, 0x00001db9u, 0x00001b71u, 0x00001b73u, 0x00001b77u, 0x000500c2u, + 0x0000026fu, 0x00001dbcu, 0x00001db9u, 0x00008970u, 0x0008004fu, 0x0000026fu, 0x00001dbeu, 0x00001db9u, + 0x00001db9u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x0000026fu, 0x00001dbfu, 0x00001dbcu, + 0x00001dbeu, 0x00050084u, 0x0000026fu, 0x00001dc1u, 0x00001dbfu, 0x00008971u, 0x000500c2u, 0x0000026fu, + 0x00001dc4u, 0x00001dc1u, 0x00008970u, 0x0008004fu, 0x0000026fu, 0x00001dc6u, 0x00001dc1u, 0x00001dc1u, + 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x0000026fu, 0x00001dc7u, 0x00001dc4u, 0x00001dc6u, + 0x00050084u, 0x0000026fu, 0x00001dc9u, 0x00001dc7u, 0x00008971u, 0x000500c2u, 0x0000026fu, 0x00001dccu, + 0x00001dc9u, 0x00008970u, 0x0008004fu, 0x0000026fu, 0x00001dceu, 0x00001dc9u, 0x00001dc9u, 0x00000001u, + 0x00000002u, 0x00000000u, 0x000500c6u, 0x0000026fu, 0x00001dcfu, 0x00001dccu, 0x00001dceu, 0x00050084u, + 0x0000026fu, 0x00001dd1u, 0x00001dcfu, 0x00008971u, 0x00050051u, 0x00000006u, 0x00001dd3u, 0x00001dd1u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00001dd4u, 0x00001dd3u, 0x00000293u, 0x00040071u, 0x00000011u, + 0x00001dd5u, 0x00001dd4u, 0x000200f9u, 0x00001b79u, 0x000200f8u, 0x00001b79u, 0x000700f5u, 0x00000011u, + 0x00007914u, 0x00000198u, 0x00001b23u, 0x00001dd5u, 0x00001b6fu, 0x000500c7u, 0x00000006u, 0x00001b7bu, + 0x00001adau, 0x000002f6u, 0x000500abu, 0x00000063u, 0x00001b7cu, 0x00001b7bu, 0x00000290u, 0x000300f7u, + 0x00001bcdu, 0x00000000u, 0x000400fau, 0x00001b4du, 0x00001b7eu, 0x00001bbdu, 0x000200f8u, 0x00001bbdu, + 0x000300f7u, 0x00001bccu, 0x00000000u, 0x000400fau, 0x00001b4au, 0x00001bbfu, 0x00001bccu, 0x000200f8u, + 0x00001bbfu, 0x000500afu, 0x00000063u, 0x00001bc4u, 0x00006a43u, 0x00001d7du, 0x000300f7u, 0x00001bcau, + 0x00000000u, 0x000400fau, 0x00001bc4u, 0x00001bc5u, 0x00001bcau, 0x000200f8u, 0x00001bc5u, 0x000500b3u, + 0x00000063u, 0x00001bc9u, 0x00006a43u, 0x00001d7fu, 0x000200f9u, 0x00001bcau, 0x000200f8u, 0x00001bcau, + 0x000700f5u, 0x00000063u, 0x00001bcbu, 0x00001bc4u, 0x00001bbfu, 0x00001bc9u, 0x00001bc5u, 0x000200f9u, + 0x00001d5cu, 0x000200f8u, 0x00001bccu, 0x000200f9u, 0x00001bcdu, 0x000200f8u, 0x00001b7eu, 0x000500afu, + 0x00000063u, 0x00001b82u, 0x00006a43u, 0x00001d7du, 0x000300f7u, 0x00001b88u, 0x00000000u, 0x000400fau, + 0x00001b82u, 0x00001b83u, 0x00001b88u, 0x000200f8u, 0x00001b83u, 0x000500b3u, 0x00000063u, 0x00001b87u, + 0x00006a43u, 0x00001d7fu, 0x000200f9u, 0x00001b88u, 0x000200f8u, 0x00001b88u, 0x000700f5u, 0x00000063u, + 0x00001b89u, 0x00001b82u, 0x00001b7eu, 0x00001b87u, 0x00001b83u, 0x000400a8u, 0x00000063u, 0x00001b8bu, + 0x00001b89u, 0x000300f7u, 0x00001b8du, 0x00000000u, 0x000400fau, 0x00001b8bu, 0x00001b8cu, 0x00001b8du, + 0x000200f8u, 0x00001b8cu, 0x000200f9u, 0x00001d5cu, 0x000200f8u, 0x00001b8du, 0x000300f7u, 0x00001debu, + 0x00000000u, 0x000400fau, 0x00001b7cu, 0x00001de1u, 0x00001de6u, 0x000200f8u, 0x00001de6u, 0x00050082u, + 0x00000008u, 0x00001deau, 0x00001d7fu, 0x00006a43u, 0x000200f9u, 0x00001debu, 0x000200f8u, 0x00001de1u, + 0x00050082u, 0x00000008u, 0x00001de5u, 0x00006a43u, 0x00001d7du, 0x000200f9u, 0x00001debu, 0x000200f8u, + 0x00001debu, 0x000700f5u, 0x00000008u, 0x000083d1u, 0x00001de5u, 0x00001de1u, 0x00001deau, 0x00001de6u, + 0x000500c3u, 0x00000008u, 0x00001deeu, 0x000083d1u, 0x00000497u, 0x00060041u, 0x000004ebu, 0x00001df0u, + 0x000004eau, 0x0000019eu, 0x000001a8u, 0x0004003du, 0x00000008u, 0x00001df1u, 0x00001df0u, 0x000500c7u, + 0x00000008u, 0x00001df2u, 0x00001deeu, 0x00001df1u, 0x00050082u, 0x00000008u, 0x00001df5u, 0x00001deeu, + 0x00001df2u, 0x00060041u, 0x000004ebu, 0x00001df7u, 0x000004eau, 0x0000019eu, 0x0000019eu, 0x0004003du, + 0x00000008u, 0x00001df8u, 0x00001df7u, 0x000500c3u, 0x00000008u, 0x00001df9u, 0x00001deeu, 0x00001df8u, + 0x000600a9u, 0x00000008u, 0x00001dfbu, 0x00001b7cu, 0x000001a8u, 0x000004f8u, 0x00050084u, 0x00000008u, + 0x00001dfcu, 0x00001df9u, 0x00001dfbu, 0x0008004fu, 0x0000005du, 0x00001dffu, 0x00001d75u, 0x00001d75u, + 0x00000000u, 0x00000001u, 0x00000003u, 0x0008004fu, 0x0000005du, 0x00001e01u, 0x00001d96u, 0x00001d96u, + 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, 0x0000005du, 0x00001e03u, 0x00001e01u, 0x00008972u, + 0x00060050u, 0x0000005du, 0x00001e05u, 0x00001dfcu, 0x00001dfcu, 0x00001dfcu, 0x00050084u, 0x0000005du, + 0x00001e06u, 0x00001e03u, 0x00001e05u, 0x00050080u, 0x0000005du, 0x00001e07u, 0x00001dffu, 0x00001e06u, + 0x000300f7u, 0x00001e15u, 0x00000000u, 0x000400fau, 0x00001b35u, 0x00001e09u, 0x00001e10u, 0x000200f8u, + 0x00001e10u, 0x000500c3u, 0x0000005du, 0x00001e13u, 0x00001e07u, 0x00008973u, 0x0007004fu, 0x00000058u, + 0x00001e9fu, 0x00001e13u, 0x00001e13u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00001e15u, 0x000200f8u, + 0x00001e09u, 0x000500c3u, 0x0000005du, 0x00001e0cu, 0x00001e07u, 0x00008973u, 0x00050051u, 0x00000008u, + 0x00001e22u, 0x00001e0cu, 0x00000002u, 0x000500b3u, 0x00000063u, 0x00001e24u, 0x00001e22u, 0x0000019eu, + 0x000500c7u, 0x00000008u, 0x00001e26u, 0x00001e22u, 0x00000426u, 0x0006000cu, 0x00000008u, 0x00001e83u, + 0x00000001u, 0x0000004au, 0x00001e26u, 0x00050082u, 0x00000008u, 0x00001e84u, 0x000001eeu, 0x00001e83u, + 0x0007000cu, 0x00000008u, 0x00001e85u, 0x00000001u, 0x00000027u, 0x00001e84u, 0x000001eeu, 0x000500c4u, + 0x00000008u, 0x00001e88u, 0x00001e26u, 0x00001e85u, 0x000500c7u, 0x00000008u, 0x00001e89u, 0x00001e88u, + 0x00000341u, 0x000500c7u, 0x00000008u, 0x00001e8bu, 0x00001e89u, 0x00000313u, 0x000500c3u, 0x00000008u, + 0x00001e8du, 0x00001e89u, 0x000001dbu, 0x0003003eu, 0x00001e7eu, 0x00000406u, 0x00050041u, 0x0000011eu, + 0x00001e8eu, 0x00001e7eu, 0x00001e8du, 0x0004003du, 0x0000011du, 0x00001e8fu, 0x00001e8eu, 0x00040072u, + 0x00000058u, 0x00001e90u, 0x00001e8fu, 0x00050051u, 0x00000008u, 0x00001e92u, 0x00001e90u, 0x00000001u, + 0x00050084u, 0x00000008u, 0x00001e94u, 0x00001e92u, 0x00001e8bu, 0x000500c3u, 0x00000008u, 0x00001e95u, + 0x00001e94u, 0x000001e1u, 0x00050051u, 0x00000008u, 0x00001e97u, 0x00001e90u, 0x00000000u, 0x00050080u, + 0x00000008u, 0x00001e98u, 0x00001e95u, 0x00001e97u, 0x0007004fu, 0x00000058u, 0x00001e2cu, 0x00001e0cu, + 0x00001e0cu, 0x00000000u, 0x00000001u, 0x00050050u, 0x00000058u, 0x00001e2fu, 0x00001e98u, 0x00001e98u, + 0x00050084u, 0x00000058u, 0x00001e30u, 0x00001e2cu, 0x00001e2fu, 0x000500c3u, 0x00000008u, 0x00001e32u, + 0x00000439u, 0x00001e85u, 0x0004007eu, 0x00000008u, 0x00001e33u, 0x00001e32u, 0x000500c7u, 0x00000008u, + 0x00001e34u, 0x00000438u, 0x00001e33u, 0x00050050u, 0x00000058u, 0x00001e37u, 0x00001e34u, 0x00001e34u, + 0x000500c7u, 0x00000058u, 0x00001e38u, 0x00001e30u, 0x00001e37u, 0x000500abu, 0x00000063u, 0x00001e3au, + 0x00001e85u, 0x000001eeu, 0x000300f7u, 0x00001e45u, 0x00000000u, 0x000400fau, 0x00001e3au, 0x00001e3bu, + 0x00001e41u, 0x000200f8u, 0x00001e41u, 0x000500c4u, 0x00000058u, 0x00001e44u, 0x00001e30u, 0x00008977u, + 0x000200f9u, 0x00001e45u, 0x000200f8u, 0x00001e3bu, 0x00050082u, 0x00000008u, 0x00001e3eu, 0x000001ebu, + 0x00001e85u, 0x00050050u, 0x00000058u, 0x00001e3fu, 0x00001e3eu, 0x00001e3eu, 0x000500c3u, 0x00000058u, + 0x00001e40u, 0x00001e30u, 0x00001e3fu, 0x000200f9u, 0x00001e45u, 0x000200f8u, 0x00001e45u, 0x000700f5u, + 0x00000058u, 0x000083d5u, 0x00001e40u, 0x00001e3bu, 0x00001e44u, 0x00001e41u, 0x000700f5u, 0x00000058u, + 0x000083d3u, 0x00001e40u, 0x00001e3bu, 0x00001e30u, 0x00001e41u, 0x000500abu, 0x00000453u, 0x00001e47u, + 0x00001e38u, 0x00000452u, 0x0004009au, 0x00000063u, 0x00001e48u, 0x00001e47u, 0x000300f7u, 0x00001e74u, + 0x00000000u, 0x000400fau, 0x00001e48u, 0x00001e49u, 0x00001e74u, 0x000200f8u, 0x00001e49u, 0x00050051u, + 0x00000008u, 0x00001e4bu, 0x00001e38u, 0x00000000u, 0x000500abu, 0x00000063u, 0x00001e4du, 0x00001e4bu, + 0x00001e34u, 0x000300f7u, 0x00001e52u, 0x00000000u, 0x000400fau, 0x00001e4du, 0x00001e4eu, 0x00001e52u, + 0x000200f8u, 0x00001e4eu, 0x000500abu, 0x00000063u, 0x00001e51u, 0x00001e4bu, 0x0000019eu, 0x000200f9u, + 0x00001e52u, 0x000200f8u, 0x00001e52u, 0x000700f5u, 0x00000063u, 0x00001e53u, 0x00001e4du, 0x00001e49u, + 0x00001e51u, 0x00001e4eu, 0x000300f7u, 0x00001e5eu, 0x00000000u, 0x000400fau, 0x00001e53u, 0x00001e54u, + 0x00001e5eu, 0x000200f8u, 0x00001e54u, 0x00050051u, 0x00000008u, 0x00001e56u, 0x000083d3u, 0x00000000u, + 0x000500c7u, 0x00000008u, 0x00001e57u, 0x00001e56u, 0x00000439u, 0x000500aau, 0x00000063u, 0x00001e58u, + 0x00001e57u, 0x0000019eu, 0x000300f7u, 0x00001e5du, 0x00000000u, 0x000400fau, 0x00001e58u, 0x00001e59u, + 0x00001e5bu, 0x000200f8u, 0x00001e5bu, 0x00060052u, 0x00000058u, 0x000066e9u, 0x0000046cu, 0x000083d5u, + 0x00000000u, 0x000200f9u, 0x00001e5du, 0x000200f8u, 0x00001e59u, 0x00060052u, 0x00000058u, 0x000066e7u, + 0x00000426u, 0x000083d5u, 0x00000000u, 0x000200f9u, 0x00001e5du, 0x000200f8u, 0x00001e5du, 0x000700f5u, + 0x00000058u, 0x000083dbu, 0x000066e7u, 0x00001e59u, 0x000066e9u, 0x00001e5bu, 0x000200f9u, 0x00001e5eu, + 0x000200f8u, 0x00001e5eu, 0x000700f5u, 0x00000058u, 0x000083dau, 0x000083d5u, 0x00001e52u, 0x000083dbu, + 0x00001e5du, 0x00050051u, 0x00000008u, 0x00001e60u, 0x00001e38u, 0x00000001u, 0x000500abu, 0x00000063u, + 0x00001e62u, 0x00001e60u, 0x00001e34u, 0x000300f7u, 0x00001e67u, 0x00000000u, 0x000400fau, 0x00001e62u, + 0x00001e63u, 0x00001e67u, 0x000200f8u, 0x00001e63u, 0x000500abu, 0x00000063u, 0x00001e66u, 0x00001e60u, + 0x0000019eu, 0x000200f9u, 0x00001e67u, 0x000200f8u, 0x00001e67u, 0x000700f5u, 0x00000063u, 0x00001e68u, + 0x00001e62u, 0x00001e5eu, 0x00001e66u, 0x00001e63u, 0x000300f7u, 0x00001e73u, 0x00000000u, 0x000400fau, + 0x00001e68u, 0x00001e69u, 0x00001e73u, 0x000200f8u, 0x00001e69u, 0x00050051u, 0x00000008u, 0x00001e6bu, + 0x000083d3u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00001e6cu, 0x00001e6bu, 0x00000439u, 0x000500aau, + 0x00000063u, 0x00001e6du, 0x00001e6cu, 0x0000019eu, 0x000300f7u, 0x00001e72u, 0x00000000u, 0x000400fau, + 0x00001e6du, 0x00001e6eu, 0x00001e70u, 0x000200f8u, 0x00001e70u, 0x00060052u, 0x00000058u, 0x000066f0u, + 0x0000046cu, 0x000083dau, 0x00000001u, 0x000200f9u, 0x00001e72u, 0x000200f8u, 0x00001e6eu, 0x00060052u, + 0x00000058u, 0x000066eeu, 0x00000426u, 0x000083dau, 0x00000001u, 0x000200f9u, 0x00001e72u, 0x000200f8u, + 0x00001e72u, 0x000700f5u, 0x00000058u, 0x000083dfu, 0x000066eeu, 0x00001e6eu, 0x000066f0u, 0x00001e70u, + 0x000200f9u, 0x00001e73u, 0x000200f8u, 0x00001e73u, 0x000700f5u, 0x00000058u, 0x000083deu, 0x000083dau, + 0x00001e67u, 0x000083dfu, 0x00001e72u, 0x000200f9u, 0x00001e74u, 0x000200f8u, 0x00001e74u, 0x000700f5u, + 0x00000058u, 0x000083ddu, 0x000083d5u, 0x00001e45u, 0x000083deu, 0x00001e73u, 0x00050050u, 0x00000453u, + 0x00008995u, 0x00001e24u, 0x00001e24u, 0x000600a9u, 0x00000058u, 0x00008996u, 0x00008995u, 0x00000487u, + 0x000083ddu, 0x0008000cu, 0x00000058u, 0x00001e79u, 0x00000001u, 0x0000002du, 0x00008996u, 0x0000048au, + 0x0000048cu, 0x000200f9u, 0x00001e15u, 0x000200f8u, 0x00001e15u, 0x000700f5u, 0x00000058u, 0x000083e0u, + 0x00001e79u, 0x00001e74u, 0x00001e9fu, 0x00001e10u, 0x000500c7u, 0x00000006u, 0x00001b98u, 0x00001af9u, + 0x0000127cu, 0x00080041u, 0x000006aau, 0x00001b9bu, 0x000015b9u, 0x0000019eu, 0x00001988u, 0x000001abu, + 0x00001b98u, 0x0004003du, 0x0000000fu, 0x00001b9cu, 0x00001b9bu, 0x00040071u, 0x00000006u, 0x00001b9du, + 0x00001b9cu, 0x00060041u, 0x0000024cu, 0x00001ea4u, 0x0000024au, 0x0000019eu, 0x00001b9du, 0x0004003du, + 0x00000246u, 0x00001ea5u, 0x00001ea4u, 0x00050051u, 0x00000006u, 0x00001ea6u, 0x00001ea5u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00001eaau, 0x00001ea5u, 0x00000002u, 0x00050051u, 0x00000006u, 0x00001eaeu, + 0x00001ea5u, 0x00000004u, 0x00050051u, 0x00000006u, 0x00001eb0u, 0x00001ea5u, 0x00000005u, 0x00050051u, + 0x0000000fu, 0x00001eb4u, 0x00001ea5u, 0x00000007u, 0x00050051u, 0x0000000fu, 0x00001eb6u, 0x00001ea5u, + 0x00000008u, 0x00050051u, 0x0000000fu, 0x00001eb8u, 0x00001ea5u, 0x00000009u, 0x00050051u, 0x0000000fu, + 0x00001ebau, 0x00001ea5u, 0x0000000au, 0x00050051u, 0x0000000fu, 0x00001ebcu, 0x00001ea5u, 0x0000000bu, + 0x00050051u, 0x0000000fu, 0x00001ebeu, 0x00001ea5u, 0x0000000cu, 0x00050051u, 0x0000000fu, 0x00001ec0u, + 0x00001ea5u, 0x0000000du, 0x000600a9u, 0x0000000fu, 0x00008997u, 0x000016f3u, 0x000016feu, 0x00001eb4u, + 0x0004007cu, 0x00000008u, 0x00001edau, 0x00001ea6u, 0x00040071u, 0x00000006u, 0x00001eddu, 0x00001ebau, + 0x0004007cu, 0x00000008u, 0x00001edeu, 0x00001eddu, 0x00050051u, 0x00000008u, 0x00001ee0u, 0x000083e0u, + 0x00000000u, 0x0008000cu, 0x00000008u, 0x00001f18u, 0x00000001u, 0x0000002du, 0x00001ee0u, 0x0000046cu, + 0x00000426u, 0x000500b1u, 0x00000063u, 0x00001f1au, 0x00001edeu, 0x000001e4u, 0x000300f7u, 0x00001f26u, + 0x00000000u, 0x000400fau, 0x00001f1au, 0x00001f1bu, 0x00001f1fu, 0x000200f8u, 0x00001f1fu, 0x00050082u, + 0x00000008u, 0x00001f21u, 0x00000979u, 0x00001edeu, 0x000500c4u, 0x00000008u, 0x00001f23u, 0x00001f18u, + 0x00001f21u, 0x000500c3u, 0x00000008u, 0x00001f25u, 0x00001f23u, 0x0000050bu, 0x000200f9u, 0x00001f26u, + 0x000200f8u, 0x00001f1bu, 0x000500c3u, 0x00000008u, 0x00001f1eu, 0x00001f18u, 0x00001edeu, 0x000200f9u, + 0x00001f26u, 0x000200f8u, 0x00001f26u, 0x000700f5u, 0x00000008u, 0x000083e3u, 0x00001f1eu, 0x00001f1bu, + 0x00001f25u, 0x00001f1fu, 0x000500c4u, 0x00000008u, 0x00001f28u, 0x00001edau, 0x000001aeu, 0x00050082u, + 0x00000008u, 0x00001f2au, 0x000083e3u, 0x00001f28u, 0x0004007cu, 0x00000008u, 0x00001ee5u, 0x00001eaau, + 0x00040071u, 0x00000006u, 0x00001ee8u, 0x00001ebeu, 0x0004007cu, 0x00000008u, 0x00001ee9u, 0x00001ee8u, + 0x00050051u, 0x00000008u, 0x00001eebu, 0x000083e0u, 0x00000001u, 0x0008000cu, 0x00000008u, 0x00001f2fu, + 0x00000001u, 0x0000002du, 0x00001eebu, 0x0000046cu, 0x00000426u, 0x000500b1u, 0x00000063u, 0x00001f31u, + 0x00001ee9u, 0x000001e4u, 0x000300f7u, 0x00001f3du, 0x00000000u, 0x000400fau, 0x00001f31u, 0x00001f32u, + 0x00001f36u, 0x000200f8u, 0x00001f36u, 0x00050082u, 0x00000008u, 0x00001f38u, 0x00000979u, 0x00001ee9u, + 0x000500c4u, 0x00000008u, 0x00001f3au, 0x00001f2fu, 0x00001f38u, 0x000500c3u, 0x00000008u, 0x00001f3cu, + 0x00001f3au, 0x0000050bu, 0x000200f9u, 0x00001f3du, 0x000200f8u, 0x00001f32u, 0x000500c3u, 0x00000008u, + 0x00001f35u, 0x00001f2fu, 0x00001ee9u, 0x000200f9u, 0x00001f3du, 0x000200f8u, 0x00001f3du, 0x000700f5u, + 0x00000008u, 0x000083e5u, 0x00001f35u, 0x00001f32u, 0x00001f3cu, 0x00001f36u, 0x000500c4u, 0x00000008u, + 0x00001f3fu, 0x00001ee5u, 0x000001aeu, 0x00050082u, 0x00000008u, 0x00001f41u, 0x000083e5u, 0x00001f3fu, + 0x00050050u, 0x00000058u, 0x00008992u, 0x00001f2au, 0x00001f41u, 0x000500c3u, 0x00000058u, 0x00001ef0u, + 0x00008992u, 0x00008979u, 0x00060041u, 0x000004ebu, 0x00001ef1u, 0x000004eau, 0x0000019eu, 0x000001abu, + 0x0004003du, 0x00000008u, 0x00001ef2u, 0x00001ef1u, 0x000500aau, 0x00000063u, 0x00001ef3u, 0x00001ef2u, + 0x0000019eu, 0x000300f7u, 0x00001f13u, 0x00000000u, 0x000400fau, 0x00001ef3u, 0x00001ef4u, 0x00001ef5u, + 0x000200f8u, 0x00001ef5u, 0x000500aau, 0x00000063u, 0x00001ef8u, 0x00001ef2u, 0x000001a8u, 0x000300f7u, + 0x00001f12u, 0x00000000u, 0x000400fau, 0x00001ef8u, 0x00001ef9u, 0x00001f0au, 0x000200f8u, 0x00001f0au, + 0x000500b1u, 0x00000063u, 0x0000210fu, 0x00001df5u, 0x000001abu, 0x000300f7u, 0x00002117u, 0x00000000u, + 0x000400fau, 0x0000210fu, 0x00002111u, 0x00002117u, 0x000200f8u, 0x00002111u, 0x00040071u, 0x00000006u, + 0x00002114u, 0x00008997u, 0x0004007cu, 0x00000008u, 0x00002115u, 0x00002114u, 0x000500abu, 0x00000063u, + 0x00002116u, 0x00002115u, 0x000001abu, 0x000200f9u, 0x00002117u, 0x000200f8u, 0x00002117u, 0x000700f5u, + 0x00000063u, 0x00002118u, 0x0000210fu, 0x00001f0au, 0x00002116u, 0x00002111u, 0x000400a8u, 0x00000063u, + 0x0000211au, 0x00001b26u, 0x000500a7u, 0x00000063u, 0x0000211bu, 0x00002118u, 0x0000211au, 0x00040071u, + 0x00000006u, 0x0000211eu, 0x00008997u, 0x0004007cu, 0x00000008u, 0x0000211fu, 0x0000211eu, 0x0007000cu, + 0x00000008u, 0x00002120u, 0x00000001u, 0x00000027u, 0x0000211fu, 0x000001abu, 0x000500aau, 0x00000063u, + 0x00002125u, 0x0000211fu, 0x000001aeu, 0x000500a6u, 0x00000063u, 0x00002128u, 0x00002125u, 0x00001b26u, + 0x000600a9u, 0x00000008u, 0x00002129u, 0x00002128u, 0x00000990u, 0x000009d8u, 0x000300f7u, 0x00002213u, + 0x00000000u, 0x000400fau, 0x0000211bu, 0x0000212bu, 0x000021aeu, 0x000200f8u, 0x000021aeu, 0x00050051u, + 0x00000008u, 0x000021b1u, 0x00001ef0u, 0x00000000u, 0x00050080u, 0x00000008u, 0x000021b2u, 0x000021b1u, + 0x00001df5u, 0x00040071u, 0x00000006u, 0x00002264u, 0x00001eb8u, 0x0004007cu, 0x00000008u, 0x00002265u, + 0x00002264u, 0x000500abu, 0x00000063u, 0x00002266u, 0x00002265u, 0x0000019eu, 0x000300f7u, 0x0000227eu, + 0x00000000u, 0x000400fau, 0x00002266u, 0x00002267u, 0x0000227eu, 0x000200f8u, 0x00002267u, 0x000500c4u, + 0x00000008u, 0x0000226au, 0x000001a8u, 0x00001eb8u, 0x00040071u, 0x00000006u, 0x0000226du, 0x00001ec0u, + 0x0004007cu, 0x00000008u, 0x0000226eu, 0x0000226du, 0x000500c7u, 0x00000008u, 0x0000226fu, 0x0000226eu, + 0x000001abu, 0x000500abu, 0x00000063u, 0x00002270u, 0x0000226fu, 0x0000019eu, 0x000300f7u, 0x00002279u, + 0x00000000u, 0x000400fau, 0x00002270u, 0x00002271u, 0x00002279u, 0x000200f8u, 0x00002271u, 0x000500c7u, + 0x00000008u, 0x00002274u, 0x000021b2u, 0x0000226au, 0x00050082u, 0x00000008u, 0x00002275u, 0x00002274u, + 0x000001a8u, 0x0007000cu, 0x00000008u, 0x00002276u, 0x00000001u, 0x0000002au, 0x00002275u, 0x0000019eu, + 0x000500c6u, 0x00000008u, 0x00002278u, 0x000021b2u, 0x00002276u, 0x000200f9u, 0x00002279u, 0x000200f8u, + 0x00002279u, 0x000700f5u, 0x00000008u, 0x000083e8u, 0x000021b2u, 0x00002267u, 0x00002278u, 0x00002271u, + 0x00050082u, 0x00000008u, 0x0000227bu, 0x0000226au, 0x000001a8u, 0x000500c7u, 0x00000008u, 0x0000227du, + 0x000083e8u, 0x0000227bu, 0x000200f9u, 0x0000227eu, 0x000200f8u, 0x0000227eu, 0x000700f5u, 0x00000008u, + 0x000083e9u, 0x000021b2u, 0x000021aeu, 0x0000227du, 0x00002279u, 0x00050051u, 0x00000008u, 0x000021bau, + 0x00001ef0u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00002285u, 0x00001ebcu, 0x0004007cu, 0x00000008u, + 0x00002286u, 0x00002285u, 0x000500abu, 0x00000063u, 0x00002287u, 0x00002286u, 0x0000019eu, 0x000300f7u, + 0x0000229fu, 0x00000000u, 0x000400fau, 0x00002287u, 0x00002288u, 0x0000229fu, 0x000200f8u, 0x00002288u, + 0x000500c4u, 0x00000008u, 0x0000228bu, 0x000001a8u, 0x00001ebcu, 0x00040071u, 0x00000006u, 0x0000228eu, + 0x00001ec0u, 0x0004007cu, 0x00000008u, 0x0000228fu, 0x0000228eu, 0x000500c7u, 0x00000008u, 0x00002290u, + 0x0000228fu, 0x000001dbu, 0x000500abu, 0x00000063u, 0x00002291u, 0x00002290u, 0x0000019eu, 0x000300f7u, + 0x0000229au, 0x00000000u, 0x000400fau, 0x00002291u, 0x00002292u, 0x0000229au, 0x000200f8u, 0x00002292u, + 0x000500c7u, 0x00000008u, 0x00002295u, 0x000021bau, 0x0000228bu, 0x00050082u, 0x00000008u, 0x00002296u, + 0x00002295u, 0x000001a8u, 0x0007000cu, 0x00000008u, 0x00002297u, 0x00000001u, 0x0000002au, 0x00002296u, + 0x0000019eu, 0x000500c6u, 0x00000008u, 0x00002299u, 0x000021bau, 0x00002297u, 0x000200f9u, 0x0000229au, + 0x000200f8u, 0x0000229au, 0x000700f5u, 0x00000008u, 0x000083ecu, 0x000021bau, 0x00002288u, 0x00002299u, + 0x00002292u, 0x00050082u, 0x00000008u, 0x0000229cu, 0x0000228bu, 0x000001a8u, 0x000500c7u, 0x00000008u, + 0x0000229eu, 0x000083ecu, 0x0000229cu, 0x000200f9u, 0x0000229fu, 0x000200f8u, 0x0000229fu, 0x000700f5u, + 0x00000008u, 0x000083edu, 0x000021bau, 0x0000227eu, 0x0000229eu, 0x0000229au, 0x0004007cu, 0x00000006u, + 0x000021c1u, 0x000083edu, 0x00050084u, 0x00000006u, 0x000021c2u, 0x00001eb0u, 0x000021c1u, 0x00050080u, + 0x00000006u, 0x000021c3u, 0x00001eaeu, 0x000021c2u, 0x00050084u, 0x00000006u, 0x000021c5u, 0x000021c3u, + 0x000002fau, 0x000500c4u, 0x00000008u, 0x000021c8u, 0x000083e9u, 0x00002120u, 0x0004007cu, 0x00000006u, + 0x000021c9u, 0x000021c8u, 0x00050080u, 0x00000006u, 0x000021cau, 0x000021c5u, 0x000021c9u, 0x000500c7u, + 0x00000006u, 0x000021cbu, 0x000021cau, 0x00000a04u, 0x000500c7u, 0x00000006u, 0x000021ceu, 0x000021c1u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x000021cfu, 0x000021ceu, 0x00000277u, 0x000500c6u, 0x00000006u, + 0x000021d1u, 0x000021cbu, 0x000021cfu, 0x000500c2u, 0x00000006u, 0x000021d3u, 0x000021d1u, 0x000002fau, + 0x0004007cu, 0x00000006u, 0x000021d5u, 0x00002129u, 0x000500c7u, 0x00000006u, 0x000021d7u, 0x000021d3u, + 0x000021d5u, 0x000500c6u, 0x00000006u, 0x000021dau, 0x000021d7u, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x000021dbu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000021dau, 0x0004003du, 0x00000011u, + 0x000021dcu, 0x000021dbu, 0x00040071u, 0x00000006u, 0x000021ddu, 0x000021dcu, 0x0004007cu, 0x00000008u, + 0x000021deu, 0x000021ddu, 0x000300f7u, 0x00002212u, 0x00000000u, 0x000400fau, 0x00001b26u, 0x000021e0u, + 0x00002212u, 0x000200f8u, 0x000021e0u, 0x000500aau, 0x00000063u, 0x000021e5u, 0x0000211fu, 0x0000019eu, + 0x000300f7u, 0x00002209u, 0x00000000u, 0x000400fau, 0x000021e5u, 0x000021e6u, 0x000021fbu, 0x000200f8u, + 0x000021fbu, 0x000500c7u, 0x00000006u, 0x000021fdu, 0x000021d1u, 0x000002fau, 0x00050084u, 0x00000006u, + 0x000021feu, 0x00000694u, 0x000021fdu, 0x00050082u, 0x00000006u, 0x000021ffu, 0x00000277u, 0x000021feu, + 0x000500c3u, 0x00000008u, 0x00002201u, 0x000021deu, 0x000021ffu, 0x000500c7u, 0x00000008u, 0x00002203u, + 0x00002201u, 0x00000313u, 0x000500c4u, 0x00000008u, 0x00002205u, 0x00002203u, 0x000001abu, 0x00050080u, + 0x00000008u, 0x00002208u, 0x00002205u, 0x00001df5u, 0x000200f9u, 0x00002209u, 0x000200f8u, 0x000021e6u, + 0x000500c7u, 0x00000006u, 0x000021e8u, 0x000021d1u, 0x000002fdu, 0x00050084u, 0x00000006u, 0x000021e9u, + 0x00000694u, 0x000021e8u, 0x00050082u, 0x00000006u, 0x000021eau, 0x00000ab2u, 0x000021e9u, 0x000500c3u, + 0x00000008u, 0x000021ecu, 0x000021deu, 0x000021eau, 0x000500c7u, 0x00000008u, 0x000021eeu, 0x000021ecu, + 0x00000a5du, 0x000500c4u, 0x0000000fu, 0x000021f1u, 0x00001eb6u, 0x000001b1u, 0x00040071u, 0x00000006u, + 0x000021f2u, 0x000021f1u, 0x0004007cu, 0x00000008u, 0x000021f3u, 0x000021f2u, 0x000500c5u, 0x00000008u, + 0x000021f5u, 0x000021eeu, 0x000021f3u, 0x000500c4u, 0x00000008u, 0x000021f7u, 0x000021f5u, 0x000001abu, + 0x00050080u, 0x00000008u, 0x000021fau, 0x000021f7u, 0x00001df5u, 0x000200f9u, 0x00002209u, 0x000200f8u, + 0x00002209u, 0x000700f5u, 0x00000008u, 0x000083eeu, 0x000021fau, 0x000021e6u, 0x00002208u, 0x000021fbu, + 0x000500c5u, 0x00000008u, 0x0000220cu, 0x000083eeu, 0x00000ad7u, 0x000500c6u, 0x00000008u, 0x0000220du, + 0x0000220cu, 0x000001a8u, 0x00080041u, 0x0000077au, 0x0000220eu, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x0000220du, 0x0004003du, 0x00000011u, 0x0000220fu, 0x0000220eu, 0x00040071u, 0x00000006u, + 0x00002210u, 0x0000220fu, 0x0004007cu, 0x00000008u, 0x00002211u, 0x00002210u, 0x000200f9u, 0x00002212u, + 0x000200f8u, 0x00002212u, 0x000700f5u, 0x00000008u, 0x000083fau, 0x000021deu, 0x0000229fu, 0x00002211u, + 0x00002209u, 0x000200f9u, 0x00002213u, 0x000200f8u, 0x0000212bu, 0x00050084u, 0x00000008u, 0x0000212du, + 0x000001abu, 0x00001df5u, 0x00050051u, 0x00000008u, 0x0000212fu, 0x00001ef0u, 0x00000000u, 0x00050080u, + 0x00000008u, 0x00002130u, 0x0000212fu, 0x0000212du, 0x00050050u, 0x00000058u, 0x0000221au, 0x00002130u, + 0x00002130u, 0x00050080u, 0x00000058u, 0x0000221bu, 0x0000221au, 0x000005fcu, 0x00040071u, 0x00000006u, + 0x0000221eu, 0x00001eb8u, 0x0004007cu, 0x00000008u, 0x0000221fu, 0x0000221eu, 0x000500abu, 0x00000063u, + 0x00002220u, 0x0000221fu, 0x0000019eu, 0x000300f7u, 0x0000223cu, 0x00000000u, 0x000400fau, 0x00002220u, + 0x00002221u, 0x0000223cu, 0x000200f8u, 0x00002221u, 0x000500c4u, 0x00000008u, 0x00002224u, 0x000001a8u, + 0x00001eb8u, 0x00040071u, 0x00000006u, 0x00002227u, 0x00001ec0u, 0x0004007cu, 0x00000008u, 0x00002228u, + 0x00002227u, 0x000500c7u, 0x00000008u, 0x00002229u, 0x00002228u, 0x000001abu, 0x000500abu, 0x00000063u, + 0x0000222au, 0x00002229u, 0x0000019eu, 0x000300f7u, 0x00002236u, 0x00000000u, 0x000400fau, 0x0000222au, + 0x0000222bu, 0x00002236u, 0x000200f8u, 0x0000222bu, 0x00050050u, 0x00000058u, 0x0000222eu, 0x00002224u, + 0x00002224u, 0x000500c7u, 0x00000058u, 0x0000222fu, 0x0000221bu, 0x0000222eu, 0x00050082u, 0x00000058u, + 0x00002231u, 0x0000222fu, 0x00008977u, 0x0007000cu, 0x00000058u, 0x00002233u, 0x00000001u, 0x0000002au, + 0x00002231u, 0x00000452u, 0x000500c6u, 0x00000058u, 0x00002235u, 0x0000221bu, 0x00002233u, 0x000200f9u, + 0x00002236u, 0x000200f8u, 0x00002236u, 0x000700f5u, 0x00000058u, 0x000083efu, 0x0000221bu, 0x00002221u, + 0x00002235u, 0x0000222bu, 0x00050082u, 0x00000008u, 0x00002238u, 0x00002224u, 0x000001a8u, 0x00050050u, + 0x00000058u, 0x0000223au, 0x00002238u, 0x00002238u, 0x000500c7u, 0x00000058u, 0x0000223bu, 0x000083efu, + 0x0000223au, 0x000200f9u, 0x0000223cu, 0x000200f8u, 0x0000223cu, 0x000700f5u, 0x00000058u, 0x000083f0u, + 0x0000221bu, 0x0000212bu, 0x0000223bu, 0x00002236u, 0x00050051u, 0x00000008u, 0x00002138u, 0x00001ef0u, + 0x00000001u, 0x00040071u, 0x00000006u, 0x00002243u, 0x00001ebcu, 0x0004007cu, 0x00000008u, 0x00002244u, + 0x00002243u, 0x000500abu, 0x00000063u, 0x00002245u, 0x00002244u, 0x0000019eu, 0x000300f7u, 0x0000225du, + 0x00000000u, 0x000400fau, 0x00002245u, 0x00002246u, 0x0000225du, 0x000200f8u, 0x00002246u, 0x000500c4u, + 0x00000008u, 0x00002249u, 0x000001a8u, 0x00001ebcu, 0x00040071u, 0x00000006u, 0x0000224cu, 0x00001ec0u, + 0x0004007cu, 0x00000008u, 0x0000224du, 0x0000224cu, 0x000500c7u, 0x00000008u, 0x0000224eu, 0x0000224du, + 0x000001dbu, 0x000500abu, 0x00000063u, 0x0000224fu, 0x0000224eu, 0x0000019eu, 0x000300f7u, 0x00002258u, + 0x00000000u, 0x000400fau, 0x0000224fu, 0x00002250u, 0x00002258u, 0x000200f8u, 0x00002250u, 0x000500c7u, + 0x00000008u, 0x00002253u, 0x00002138u, 0x00002249u, 0x00050082u, 0x00000008u, 0x00002254u, 0x00002253u, + 0x000001a8u, 0x0007000cu, 0x00000008u, 0x00002255u, 0x00000001u, 0x0000002au, 0x00002254u, 0x0000019eu, + 0x000500c6u, 0x00000008u, 0x00002257u, 0x00002138u, 0x00002255u, 0x000200f9u, 0x00002258u, 0x000200f8u, + 0x00002258u, 0x000700f5u, 0x00000008u, 0x000083f3u, 0x00002138u, 0x00002246u, 0x00002257u, 0x00002250u, + 0x00050082u, 0x00000008u, 0x0000225au, 0x00002249u, 0x000001a8u, 0x000500c7u, 0x00000008u, 0x0000225cu, + 0x000083f3u, 0x0000225au, 0x000200f9u, 0x0000225du, 0x000200f8u, 0x0000225du, 0x000700f5u, 0x00000008u, + 0x000083f4u, 0x00002138u, 0x0000223cu, 0x0000225cu, 0x00002258u, 0x0004007cu, 0x00000006u, 0x0000213fu, + 0x000083f4u, 0x00050084u, 0x00000006u, 0x00002140u, 0x00001eb0u, 0x0000213fu, 0x00050080u, 0x00000006u, + 0x00002141u, 0x00001eaeu, 0x00002140u, 0x00050084u, 0x00000006u, 0x00002143u, 0x00002141u, 0x000002fau, + 0x00050050u, 0x00000058u, 0x00002146u, 0x00002120u, 0x00002120u, 0x000500c4u, 0x00000058u, 0x00002147u, + 0x000083f0u, 0x00002146u, 0x0004007cu, 0x000000abu, 0x00002148u, 0x00002147u, 0x00050050u, 0x000000abu, + 0x00002149u, 0x00002143u, 0x00002143u, 0x00050080u, 0x000000abu, 0x0000214au, 0x00002149u, 0x00002148u, + 0x000500c7u, 0x000000abu, 0x0000214cu, 0x0000214au, 0x0000897bu, 0x000500c7u, 0x00000006u, 0x0000214fu, + 0x0000213fu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00002150u, 0x0000214fu, 0x00000277u, 0x00050050u, + 0x000000abu, 0x00002152u, 0x00002150u, 0x00002150u, 0x000500c6u, 0x000000abu, 0x00002153u, 0x0000214cu, + 0x00002152u, 0x000500c2u, 0x000000abu, 0x00002156u, 0x00002153u, 0x0000897cu, 0x0004007cu, 0x00000006u, + 0x00002158u, 0x00002129u, 0x00050050u, 0x000000abu, 0x0000215au, 0x00002158u, 0x00002158u, 0x000500c7u, + 0x000000abu, 0x0000215bu, 0x00002156u, 0x0000215au, 0x00050051u, 0x00000006u, 0x0000215eu, 0x0000215bu, + 0x00000000u, 0x000500c6u, 0x00000006u, 0x0000215fu, 0x0000215eu, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x00002160u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000215fu, 0x0004003du, 0x00000011u, + 0x00002161u, 0x00002160u, 0x00040071u, 0x00000006u, 0x00002162u, 0x00002161u, 0x0004007cu, 0x00000008u, + 0x00002163u, 0x00002162u, 0x00050051u, 0x00000006u, 0x00002166u, 0x0000215bu, 0x00000001u, 0x000500c6u, + 0x00000006u, 0x00002167u, 0x00002166u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00002168u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00002167u, 0x0004003du, 0x00000011u, 0x00002169u, 0x00002168u, + 0x00040071u, 0x00000006u, 0x0000216au, 0x00002169u, 0x0004007cu, 0x00000008u, 0x0000216bu, 0x0000216au, + 0x000500aau, 0x00000063u, 0x00002170u, 0x0000211fu, 0x000001a8u, 0x000300f7u, 0x000021a9u, 0x00000000u, + 0x000400fau, 0x00002170u, 0x00002171u, 0x00002186u, 0x000200f8u, 0x00002186u, 0x000500aau, 0x00000063u, + 0x0000218bu, 0x0000211fu, 0x0000019eu, 0x000300f7u, 0x000021a8u, 0x00000000u, 0x000400fau, 0x0000218bu, + 0x0000218cu, 0x000021a3u, 0x000200f8u, 0x000021a3u, 0x000500c3u, 0x00000008u, 0x000021a5u, 0x00002163u, + 0x000001dbu, 0x000500c3u, 0x00000008u, 0x000021a7u, 0x0000216bu, 0x000001dbu, 0x000200f9u, 0x000021a8u, + 0x000200f8u, 0x0000218cu, 0x00050051u, 0x00000006u, 0x0000218eu, 0x00002153u, 0x00000000u, 0x000500c7u, + 0x00000006u, 0x0000218fu, 0x0000218eu, 0x000002fdu, 0x0004007cu, 0x00000008u, 0x00002190u, 0x0000218fu, + 0x00050084u, 0x00000008u, 0x00002191u, 0x000001b1u, 0x00002190u, 0x00050082u, 0x00000008u, 0x00002192u, + 0x000001e8u, 0x00002191u, 0x000500c3u, 0x00000008u, 0x00002194u, 0x00002163u, 0x00002192u, 0x00050051u, + 0x00000006u, 0x00002196u, 0x00002153u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x00002197u, 0x00002196u, + 0x000002fdu, 0x0004007cu, 0x00000008u, 0x00002198u, 0x00002197u, 0x00050084u, 0x00000008u, 0x00002199u, + 0x000001b1u, 0x00002198u, 0x00050082u, 0x00000008u, 0x0000219au, 0x000001e8u, 0x00002199u, 0x000500c3u, + 0x00000008u, 0x0000219cu, 0x0000216bu, 0x0000219au, 0x000500c7u, 0x00000008u, 0x0000219eu, 0x00002194u, + 0x00000a5du, 0x00050084u, 0x00000008u, 0x0000219fu, 0x0000219eu, 0x00000a5fu, 0x000500c7u, 0x00000008u, + 0x000021a1u, 0x0000219cu, 0x00000a5du, 0x00050084u, 0x00000008u, 0x000021a2u, 0x000021a1u, 0x00000a5fu, + 0x000200f9u, 0x000021a8u, 0x000200f8u, 0x000021a8u, 0x000700f5u, 0x00000008u, 0x000083f8u, 0x000021a2u, + 0x0000218cu, 0x000021a7u, 0x000021a3u, 0x000700f5u, 0x00000008u, 0x000083f6u, 0x0000219fu, 0x0000218cu, + 0x000021a5u, 0x000021a3u, 0x000200f9u, 0x000021a9u, 0x000200f8u, 0x00002171u, 0x00050051u, 0x00000006u, + 0x00002173u, 0x00002153u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x00002174u, 0x00002173u, 0x000002fau, + 0x0004007cu, 0x00000008u, 0x00002175u, 0x00002174u, 0x00050084u, 0x00000008u, 0x00002176u, 0x000001b1u, + 0x00002175u, 0x00050082u, 0x00000008u, 0x00002177u, 0x000001dbu, 0x00002176u, 0x000500c3u, 0x00000008u, + 0x00002179u, 0x00002163u, 0x00002177u, 0x00050051u, 0x00000006u, 0x0000217bu, 0x00002153u, 0x00000001u, + 0x000500c7u, 0x00000006u, 0x0000217cu, 0x0000217bu, 0x000002fau, 0x0004007cu, 0x00000008u, 0x0000217du, + 0x0000217cu, 0x00050084u, 0x00000008u, 0x0000217eu, 0x000001b1u, 0x0000217du, 0x00050082u, 0x00000008u, + 0x0000217fu, 0x000001dbu, 0x0000217eu, 0x000500c3u, 0x00000008u, 0x00002181u, 0x0000216bu, 0x0000217fu, + 0x000500c7u, 0x00000008u, 0x00002183u, 0x00002179u, 0x00000313u, 0x000500c7u, 0x00000008u, 0x00002185u, + 0x00002181u, 0x00000313u, 0x000200f9u, 0x000021a9u, 0x000200f8u, 0x000021a9u, 0x000700f5u, 0x00000008u, + 0x000083f7u, 0x00002185u, 0x00002171u, 0x000083f8u, 0x000021a8u, 0x000700f5u, 0x00000008u, 0x000083f5u, + 0x00002183u, 0x00002171u, 0x000083f6u, 0x000021a8u, 0x000500c4u, 0x00000008u, 0x000021abu, 0x000083f5u, + 0x000001dbu, 0x000500c5u, 0x00000008u, 0x000021adu, 0x000021abu, 0x000083f7u, 0x000200f9u, 0x00002213u, + 0x000200f8u, 0x00002213u, 0x000700f5u, 0x00000008u, 0x000083f9u, 0x000021adu, 0x000021a9u, 0x000083fau, + 0x00002212u, 0x000200f9u, 0x00001f12u, 0x000200f8u, 0x00001ef9u, 0x000500c3u, 0x00000008u, 0x00001efbu, + 0x00001df5u, 0x000001a8u, 0x000500b1u, 0x00000063u, 0x00001f60u, 0x00001efbu, 0x000001abu, 0x000300f7u, + 0x00001f68u, 0x00000000u, 0x000400fau, 0x00001f60u, 0x00001f62u, 0x00001f68u, 0x000200f8u, 0x00001f62u, + 0x00040071u, 0x00000006u, 0x00001f65u, 0x00008997u, 0x0004007cu, 0x00000008u, 0x00001f66u, 0x00001f65u, + 0x000500abu, 0x00000063u, 0x00001f67u, 0x00001f66u, 0x000001abu, 0x000200f9u, 0x00001f68u, 0x000200f8u, + 0x00001f68u, 0x000700f5u, 0x00000063u, 0x00001f69u, 0x00001f60u, 0x00001ef9u, 0x00001f67u, 0x00001f62u, + 0x000400a8u, 0x00000063u, 0x00001f6bu, 0x00001b26u, 0x000500a7u, 0x00000063u, 0x00001f6cu, 0x00001f69u, + 0x00001f6bu, 0x00040071u, 0x00000006u, 0x00001f6fu, 0x00008997u, 0x0004007cu, 0x00000008u, 0x00001f70u, + 0x00001f6fu, 0x0007000cu, 0x00000008u, 0x00001f71u, 0x00000001u, 0x00000027u, 0x00001f70u, 0x000001abu, + 0x000500aau, 0x00000063u, 0x00001f76u, 0x00001f70u, 0x000001aeu, 0x000500a6u, 0x00000063u, 0x00001f79u, + 0x00001f76u, 0x00001b26u, 0x000600a9u, 0x00000008u, 0x00001f7au, 0x00001f79u, 0x00000990u, 0x000009d8u, + 0x000300f7u, 0x00002064u, 0x00000000u, 0x000400fau, 0x00001f6cu, 0x00001f7cu, 0x00001fffu, 0x000200f8u, + 0x00001fffu, 0x00050051u, 0x00000008u, 0x00002002u, 0x00001ef0u, 0x00000000u, 0x00050080u, 0x00000008u, + 0x00002003u, 0x00002002u, 0x00001efbu, 0x00040071u, 0x00000006u, 0x000020b5u, 0x00001eb8u, 0x0004007cu, + 0x00000008u, 0x000020b6u, 0x000020b5u, 0x000500abu, 0x00000063u, 0x000020b7u, 0x000020b6u, 0x0000019eu, + 0x000300f7u, 0x000020cfu, 0x00000000u, 0x000400fau, 0x000020b7u, 0x000020b8u, 0x000020cfu, 0x000200f8u, + 0x000020b8u, 0x000500c4u, 0x00000008u, 0x000020bbu, 0x000001a8u, 0x00001eb8u, 0x00040071u, 0x00000006u, + 0x000020beu, 0x00001ec0u, 0x0004007cu, 0x00000008u, 0x000020bfu, 0x000020beu, 0x000500c7u, 0x00000008u, + 0x000020c0u, 0x000020bfu, 0x000001abu, 0x000500abu, 0x00000063u, 0x000020c1u, 0x000020c0u, 0x0000019eu, + 0x000300f7u, 0x000020cau, 0x00000000u, 0x000400fau, 0x000020c1u, 0x000020c2u, 0x000020cau, 0x000200f8u, + 0x000020c2u, 0x000500c7u, 0x00000008u, 0x000020c5u, 0x00002003u, 0x000020bbu, 0x00050082u, 0x00000008u, + 0x000020c6u, 0x000020c5u, 0x000001a8u, 0x0007000cu, 0x00000008u, 0x000020c7u, 0x00000001u, 0x0000002au, + 0x000020c6u, 0x0000019eu, 0x000500c6u, 0x00000008u, 0x000020c9u, 0x00002003u, 0x000020c7u, 0x000200f9u, + 0x000020cau, 0x000200f8u, 0x000020cau, 0x000700f5u, 0x00000008u, 0x000083fcu, 0x00002003u, 0x000020b8u, + 0x000020c9u, 0x000020c2u, 0x00050082u, 0x00000008u, 0x000020ccu, 0x000020bbu, 0x000001a8u, 0x000500c7u, + 0x00000008u, 0x000020ceu, 0x000083fcu, 0x000020ccu, 0x000200f9u, 0x000020cfu, 0x000200f8u, 0x000020cfu, + 0x000700f5u, 0x00000008u, 0x000083fdu, 0x00002003u, 0x00001fffu, 0x000020ceu, 0x000020cau, 0x00050051u, + 0x00000008u, 0x0000200bu, 0x00001ef0u, 0x00000001u, 0x00040071u, 0x00000006u, 0x000020d6u, 0x00001ebcu, + 0x0004007cu, 0x00000008u, 0x000020d7u, 0x000020d6u, 0x000500abu, 0x00000063u, 0x000020d8u, 0x000020d7u, + 0x0000019eu, 0x000300f7u, 0x000020f0u, 0x00000000u, 0x000400fau, 0x000020d8u, 0x000020d9u, 0x000020f0u, + 0x000200f8u, 0x000020d9u, 0x000500c4u, 0x00000008u, 0x000020dcu, 0x000001a8u, 0x00001ebcu, 0x00040071u, + 0x00000006u, 0x000020dfu, 0x00001ec0u, 0x0004007cu, 0x00000008u, 0x000020e0u, 0x000020dfu, 0x000500c7u, + 0x00000008u, 0x000020e1u, 0x000020e0u, 0x000001dbu, 0x000500abu, 0x00000063u, 0x000020e2u, 0x000020e1u, + 0x0000019eu, 0x000300f7u, 0x000020ebu, 0x00000000u, 0x000400fau, 0x000020e2u, 0x000020e3u, 0x000020ebu, + 0x000200f8u, 0x000020e3u, 0x000500c7u, 0x00000008u, 0x000020e6u, 0x0000200bu, 0x000020dcu, 0x00050082u, + 0x00000008u, 0x000020e7u, 0x000020e6u, 0x000001a8u, 0x0007000cu, 0x00000008u, 0x000020e8u, 0x00000001u, + 0x0000002au, 0x000020e7u, 0x0000019eu, 0x000500c6u, 0x00000008u, 0x000020eau, 0x0000200bu, 0x000020e8u, + 0x000200f9u, 0x000020ebu, 0x000200f8u, 0x000020ebu, 0x000700f5u, 0x00000008u, 0x00008400u, 0x0000200bu, + 0x000020d9u, 0x000020eau, 0x000020e3u, 0x00050082u, 0x00000008u, 0x000020edu, 0x000020dcu, 0x000001a8u, + 0x000500c7u, 0x00000008u, 0x000020efu, 0x00008400u, 0x000020edu, 0x000200f9u, 0x000020f0u, 0x000200f8u, + 0x000020f0u, 0x000700f5u, 0x00000008u, 0x00008401u, 0x0000200bu, 0x000020cfu, 0x000020efu, 0x000020ebu, + 0x0004007cu, 0x00000006u, 0x00002012u, 0x00008401u, 0x00050084u, 0x00000006u, 0x00002013u, 0x00001eb0u, + 0x00002012u, 0x00050080u, 0x00000006u, 0x00002014u, 0x00001eaeu, 0x00002013u, 0x00050084u, 0x00000006u, + 0x00002016u, 0x00002014u, 0x000002fau, 0x000500c4u, 0x00000008u, 0x00002019u, 0x000083fdu, 0x00001f71u, + 0x0004007cu, 0x00000006u, 0x0000201au, 0x00002019u, 0x00050080u, 0x00000006u, 0x0000201bu, 0x00002016u, + 0x0000201au, 0x000500c7u, 0x00000006u, 0x0000201cu, 0x0000201bu, 0x00000a04u, 0x000500c7u, 0x00000006u, + 0x0000201fu, 0x00002012u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00002020u, 0x0000201fu, 0x00000277u, + 0x000500c6u, 0x00000006u, 0x00002022u, 0x0000201cu, 0x00002020u, 0x000500c2u, 0x00000006u, 0x00002024u, + 0x00002022u, 0x000002fau, 0x0004007cu, 0x00000006u, 0x00002026u, 0x00001f7au, 0x000500c7u, 0x00000006u, + 0x00002028u, 0x00002024u, 0x00002026u, 0x000500c6u, 0x00000006u, 0x0000202bu, 0x00002028u, 0x000002f6u, + 0x00080041u, 0x0000077au, 0x0000202cu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000202bu, + 0x0004003du, 0x00000011u, 0x0000202du, 0x0000202cu, 0x00040071u, 0x00000006u, 0x0000202eu, 0x0000202du, + 0x0004007cu, 0x00000008u, 0x0000202fu, 0x0000202eu, 0x000300f7u, 0x00002063u, 0x00000000u, 0x000400fau, + 0x00001b26u, 0x00002031u, 0x00002063u, 0x000200f8u, 0x00002031u, 0x000500aau, 0x00000063u, 0x00002036u, + 0x00001f70u, 0x0000019eu, 0x000300f7u, 0x0000205au, 0x00000000u, 0x000400fau, 0x00002036u, 0x00002037u, + 0x0000204cu, 0x000200f8u, 0x0000204cu, 0x000500c7u, 0x00000006u, 0x0000204eu, 0x00002022u, 0x000002fau, + 0x00050084u, 0x00000006u, 0x0000204fu, 0x00000694u, 0x0000204eu, 0x00050082u, 0x00000006u, 0x00002050u, + 0x00000277u, 0x0000204fu, 0x000500c3u, 0x00000008u, 0x00002052u, 0x0000202fu, 0x00002050u, 0x000500c7u, + 0x00000008u, 0x00002054u, 0x00002052u, 0x00000313u, 0x000500c4u, 0x00000008u, 0x00002056u, 0x00002054u, + 0x000001abu, 0x00050080u, 0x00000008u, 0x00002059u, 0x00002056u, 0x00001efbu, 0x000200f9u, 0x0000205au, + 0x000200f8u, 0x00002037u, 0x000500c7u, 0x00000006u, 0x00002039u, 0x00002022u, 0x000002fdu, 0x00050084u, + 0x00000006u, 0x0000203au, 0x00000694u, 0x00002039u, 0x00050082u, 0x00000006u, 0x0000203bu, 0x00000ab2u, + 0x0000203au, 0x000500c3u, 0x00000008u, 0x0000203du, 0x0000202fu, 0x0000203bu, 0x000500c7u, 0x00000008u, + 0x0000203fu, 0x0000203du, 0x00000a5du, 0x000500c4u, 0x0000000fu, 0x00002042u, 0x00001eb6u, 0x000001b1u, + 0x00040071u, 0x00000006u, 0x00002043u, 0x00002042u, 0x0004007cu, 0x00000008u, 0x00002044u, 0x00002043u, + 0x000500c5u, 0x00000008u, 0x00002046u, 0x0000203fu, 0x00002044u, 0x000500c4u, 0x00000008u, 0x00002048u, + 0x00002046u, 0x000001abu, 0x00050080u, 0x00000008u, 0x0000204bu, 0x00002048u, 0x00001efbu, 0x000200f9u, + 0x0000205au, 0x000200f8u, 0x0000205au, 0x000700f5u, 0x00000008u, 0x00008402u, 0x0000204bu, 0x00002037u, + 0x00002059u, 0x0000204cu, 0x000500c5u, 0x00000008u, 0x0000205du, 0x00008402u, 0x00000ad7u, 0x000500c6u, + 0x00000008u, 0x0000205eu, 0x0000205du, 0x000001a8u, 0x00080041u, 0x0000077au, 0x0000205fu, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000205eu, 0x0004003du, 0x00000011u, 0x00002060u, 0x0000205fu, + 0x00040071u, 0x00000006u, 0x00002061u, 0x00002060u, 0x0004007cu, 0x00000008u, 0x00002062u, 0x00002061u, + 0x000200f9u, 0x00002063u, 0x000200f8u, 0x00002063u, 0x000700f5u, 0x00000008u, 0x0000840eu, 0x0000202fu, + 0x000020f0u, 0x00002062u, 0x0000205au, 0x000200f9u, 0x00002064u, 0x000200f8u, 0x00001f7cu, 0x00050084u, + 0x00000008u, 0x00001f7eu, 0x000001abu, 0x00001efbu, 0x00050051u, 0x00000008u, 0x00001f80u, 0x00001ef0u, + 0x00000000u, 0x00050080u, 0x00000008u, 0x00001f81u, 0x00001f80u, 0x00001f7eu, 0x00050050u, 0x00000058u, + 0x0000206bu, 0x00001f81u, 0x00001f81u, 0x00050080u, 0x00000058u, 0x0000206cu, 0x0000206bu, 0x000005fcu, + 0x00040071u, 0x00000006u, 0x0000206fu, 0x00001eb8u, 0x0004007cu, 0x00000008u, 0x00002070u, 0x0000206fu, + 0x000500abu, 0x00000063u, 0x00002071u, 0x00002070u, 0x0000019eu, 0x000300f7u, 0x0000208du, 0x00000000u, + 0x000400fau, 0x00002071u, 0x00002072u, 0x0000208du, 0x000200f8u, 0x00002072u, 0x000500c4u, 0x00000008u, + 0x00002075u, 0x000001a8u, 0x00001eb8u, 0x00040071u, 0x00000006u, 0x00002078u, 0x00001ec0u, 0x0004007cu, + 0x00000008u, 0x00002079u, 0x00002078u, 0x000500c7u, 0x00000008u, 0x0000207au, 0x00002079u, 0x000001abu, + 0x000500abu, 0x00000063u, 0x0000207bu, 0x0000207au, 0x0000019eu, 0x000300f7u, 0x00002087u, 0x00000000u, + 0x000400fau, 0x0000207bu, 0x0000207cu, 0x00002087u, 0x000200f8u, 0x0000207cu, 0x00050050u, 0x00000058u, + 0x0000207fu, 0x00002075u, 0x00002075u, 0x000500c7u, 0x00000058u, 0x00002080u, 0x0000206cu, 0x0000207fu, + 0x00050082u, 0x00000058u, 0x00002082u, 0x00002080u, 0x00008977u, 0x0007000cu, 0x00000058u, 0x00002084u, + 0x00000001u, 0x0000002au, 0x00002082u, 0x00000452u, 0x000500c6u, 0x00000058u, 0x00002086u, 0x0000206cu, + 0x00002084u, 0x000200f9u, 0x00002087u, 0x000200f8u, 0x00002087u, 0x000700f5u, 0x00000058u, 0x00008403u, + 0x0000206cu, 0x00002072u, 0x00002086u, 0x0000207cu, 0x00050082u, 0x00000008u, 0x00002089u, 0x00002075u, + 0x000001a8u, 0x00050050u, 0x00000058u, 0x0000208bu, 0x00002089u, 0x00002089u, 0x000500c7u, 0x00000058u, + 0x0000208cu, 0x00008403u, 0x0000208bu, 0x000200f9u, 0x0000208du, 0x000200f8u, 0x0000208du, 0x000700f5u, + 0x00000058u, 0x00008404u, 0x0000206cu, 0x00001f7cu, 0x0000208cu, 0x00002087u, 0x00050051u, 0x00000008u, + 0x00001f89u, 0x00001ef0u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00002094u, 0x00001ebcu, 0x0004007cu, + 0x00000008u, 0x00002095u, 0x00002094u, 0x000500abu, 0x00000063u, 0x00002096u, 0x00002095u, 0x0000019eu, + 0x000300f7u, 0x000020aeu, 0x00000000u, 0x000400fau, 0x00002096u, 0x00002097u, 0x000020aeu, 0x000200f8u, + 0x00002097u, 0x000500c4u, 0x00000008u, 0x0000209au, 0x000001a8u, 0x00001ebcu, 0x00040071u, 0x00000006u, + 0x0000209du, 0x00001ec0u, 0x0004007cu, 0x00000008u, 0x0000209eu, 0x0000209du, 0x000500c7u, 0x00000008u, + 0x0000209fu, 0x0000209eu, 0x000001dbu, 0x000500abu, 0x00000063u, 0x000020a0u, 0x0000209fu, 0x0000019eu, + 0x000300f7u, 0x000020a9u, 0x00000000u, 0x000400fau, 0x000020a0u, 0x000020a1u, 0x000020a9u, 0x000200f8u, + 0x000020a1u, 0x000500c7u, 0x00000008u, 0x000020a4u, 0x00001f89u, 0x0000209au, 0x00050082u, 0x00000008u, + 0x000020a5u, 0x000020a4u, 0x000001a8u, 0x0007000cu, 0x00000008u, 0x000020a6u, 0x00000001u, 0x0000002au, + 0x000020a5u, 0x0000019eu, 0x000500c6u, 0x00000008u, 0x000020a8u, 0x00001f89u, 0x000020a6u, 0x000200f9u, + 0x000020a9u, 0x000200f8u, 0x000020a9u, 0x000700f5u, 0x00000008u, 0x00008407u, 0x00001f89u, 0x00002097u, + 0x000020a8u, 0x000020a1u, 0x00050082u, 0x00000008u, 0x000020abu, 0x0000209au, 0x000001a8u, 0x000500c7u, + 0x00000008u, 0x000020adu, 0x00008407u, 0x000020abu, 0x000200f9u, 0x000020aeu, 0x000200f8u, 0x000020aeu, + 0x000700f5u, 0x00000008u, 0x00008408u, 0x00001f89u, 0x0000208du, 0x000020adu, 0x000020a9u, 0x0004007cu, + 0x00000006u, 0x00001f90u, 0x00008408u, 0x00050084u, 0x00000006u, 0x00001f91u, 0x00001eb0u, 0x00001f90u, + 0x00050080u, 0x00000006u, 0x00001f92u, 0x00001eaeu, 0x00001f91u, 0x00050084u, 0x00000006u, 0x00001f94u, + 0x00001f92u, 0x000002fau, 0x00050050u, 0x00000058u, 0x00001f97u, 0x00001f71u, 0x00001f71u, 0x000500c4u, + 0x00000058u, 0x00001f98u, 0x00008404u, 0x00001f97u, 0x0004007cu, 0x000000abu, 0x00001f99u, 0x00001f98u, + 0x00050050u, 0x000000abu, 0x00001f9au, 0x00001f94u, 0x00001f94u, 0x00050080u, 0x000000abu, 0x00001f9bu, + 0x00001f9au, 0x00001f99u, 0x000500c7u, 0x000000abu, 0x00001f9du, 0x00001f9bu, 0x0000897bu, 0x000500c7u, + 0x00000006u, 0x00001fa0u, 0x00001f90u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00001fa1u, 0x00001fa0u, + 0x00000277u, 0x00050050u, 0x000000abu, 0x00001fa3u, 0x00001fa1u, 0x00001fa1u, 0x000500c6u, 0x000000abu, + 0x00001fa4u, 0x00001f9du, 0x00001fa3u, 0x000500c2u, 0x000000abu, 0x00001fa7u, 0x00001fa4u, 0x0000897cu, + 0x0004007cu, 0x00000006u, 0x00001fa9u, 0x00001f7au, 0x00050050u, 0x000000abu, 0x00001fabu, 0x00001fa9u, + 0x00001fa9u, 0x000500c7u, 0x000000abu, 0x00001facu, 0x00001fa7u, 0x00001fabu, 0x00050051u, 0x00000006u, + 0x00001fafu, 0x00001facu, 0x00000000u, 0x000500c6u, 0x00000006u, 0x00001fb0u, 0x00001fafu, 0x000002f6u, + 0x00080041u, 0x0000077au, 0x00001fb1u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00001fb0u, + 0x0004003du, 0x00000011u, 0x00001fb2u, 0x00001fb1u, 0x00040071u, 0x00000006u, 0x00001fb3u, 0x00001fb2u, + 0x0004007cu, 0x00000008u, 0x00001fb4u, 0x00001fb3u, 0x00050051u, 0x00000006u, 0x00001fb7u, 0x00001facu, + 0x00000001u, 0x000500c6u, 0x00000006u, 0x00001fb8u, 0x00001fb7u, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x00001fb9u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00001fb8u, 0x0004003du, 0x00000011u, + 0x00001fbau, 0x00001fb9u, 0x00040071u, 0x00000006u, 0x00001fbbu, 0x00001fbau, 0x0004007cu, 0x00000008u, + 0x00001fbcu, 0x00001fbbu, 0x000500aau, 0x00000063u, 0x00001fc1u, 0x00001f70u, 0x000001a8u, 0x000300f7u, + 0x00001ffau, 0x00000000u, 0x000400fau, 0x00001fc1u, 0x00001fc2u, 0x00001fd7u, 0x000200f8u, 0x00001fd7u, + 0x000500aau, 0x00000063u, 0x00001fdcu, 0x00001f70u, 0x0000019eu, 0x000300f7u, 0x00001ff9u, 0x00000000u, + 0x000400fau, 0x00001fdcu, 0x00001fddu, 0x00001ff4u, 0x000200f8u, 0x00001ff4u, 0x000500c3u, 0x00000008u, + 0x00001ff6u, 0x00001fb4u, 0x000001dbu, 0x000500c3u, 0x00000008u, 0x00001ff8u, 0x00001fbcu, 0x000001dbu, + 0x000200f9u, 0x00001ff9u, 0x000200f8u, 0x00001fddu, 0x00050051u, 0x00000006u, 0x00001fdfu, 0x00001fa4u, + 0x00000000u, 0x000500c7u, 0x00000006u, 0x00001fe0u, 0x00001fdfu, 0x000002fdu, 0x0004007cu, 0x00000008u, + 0x00001fe1u, 0x00001fe0u, 0x00050084u, 0x00000008u, 0x00001fe2u, 0x000001b1u, 0x00001fe1u, 0x00050082u, + 0x00000008u, 0x00001fe3u, 0x000001e8u, 0x00001fe2u, 0x000500c3u, 0x00000008u, 0x00001fe5u, 0x00001fb4u, + 0x00001fe3u, 0x00050051u, 0x00000006u, 0x00001fe7u, 0x00001fa4u, 0x00000001u, 0x000500c7u, 0x00000006u, + 0x00001fe8u, 0x00001fe7u, 0x000002fdu, 0x0004007cu, 0x00000008u, 0x00001fe9u, 0x00001fe8u, 0x00050084u, + 0x00000008u, 0x00001feau, 0x000001b1u, 0x00001fe9u, 0x00050082u, 0x00000008u, 0x00001febu, 0x000001e8u, + 0x00001feau, 0x000500c3u, 0x00000008u, 0x00001fedu, 0x00001fbcu, 0x00001febu, 0x000500c7u, 0x00000008u, + 0x00001fefu, 0x00001fe5u, 0x00000a5du, 0x00050084u, 0x00000008u, 0x00001ff0u, 0x00001fefu, 0x00000a5fu, + 0x000500c7u, 0x00000008u, 0x00001ff2u, 0x00001fedu, 0x00000a5du, 0x00050084u, 0x00000008u, 0x00001ff3u, + 0x00001ff2u, 0x00000a5fu, 0x000200f9u, 0x00001ff9u, 0x000200f8u, 0x00001ff9u, 0x000700f5u, 0x00000008u, + 0x0000840cu, 0x00001ff3u, 0x00001fddu, 0x00001ff8u, 0x00001ff4u, 0x000700f5u, 0x00000008u, 0x0000840au, + 0x00001ff0u, 0x00001fddu, 0x00001ff6u, 0x00001ff4u, 0x000200f9u, 0x00001ffau, 0x000200f8u, 0x00001fc2u, + 0x00050051u, 0x00000006u, 0x00001fc4u, 0x00001fa4u, 0x00000000u, 0x000500c7u, 0x00000006u, 0x00001fc5u, + 0x00001fc4u, 0x000002fau, 0x0004007cu, 0x00000008u, 0x00001fc6u, 0x00001fc5u, 0x00050084u, 0x00000008u, + 0x00001fc7u, 0x000001b1u, 0x00001fc6u, 0x00050082u, 0x00000008u, 0x00001fc8u, 0x000001dbu, 0x00001fc7u, + 0x000500c3u, 0x00000008u, 0x00001fcau, 0x00001fb4u, 0x00001fc8u, 0x00050051u, 0x00000006u, 0x00001fccu, + 0x00001fa4u, 0x00000001u, 0x000500c7u, 0x00000006u, 0x00001fcdu, 0x00001fccu, 0x000002fau, 0x0004007cu, + 0x00000008u, 0x00001fceu, 0x00001fcdu, 0x00050084u, 0x00000008u, 0x00001fcfu, 0x000001b1u, 0x00001fceu, + 0x00050082u, 0x00000008u, 0x00001fd0u, 0x000001dbu, 0x00001fcfu, 0x000500c3u, 0x00000008u, 0x00001fd2u, + 0x00001fbcu, 0x00001fd0u, 0x000500c7u, 0x00000008u, 0x00001fd4u, 0x00001fcau, 0x00000313u, 0x000500c7u, + 0x00000008u, 0x00001fd6u, 0x00001fd2u, 0x00000313u, 0x000200f9u, 0x00001ffau, 0x000200f8u, 0x00001ffau, + 0x000700f5u, 0x00000008u, 0x0000840bu, 0x00001fd6u, 0x00001fc2u, 0x0000840cu, 0x00001ff9u, 0x000700f5u, + 0x00000008u, 0x00008409u, 0x00001fd4u, 0x00001fc2u, 0x0000840au, 0x00001ff9u, 0x000500c4u, 0x00000008u, + 0x00001ffcu, 0x00008409u, 0x000001dbu, 0x000500c5u, 0x00000008u, 0x00001ffeu, 0x00001ffcu, 0x0000840bu, + 0x000200f9u, 0x00002064u, 0x000200f8u, 0x00002064u, 0x000700f5u, 0x00000008u, 0x0000840du, 0x00001ffeu, + 0x00001ffau, 0x0000840eu, 0x00002063u, 0x000500c7u, 0x00000008u, 0x00001f03u, 0x00001df5u, 0x000001a8u, + 0x00050084u, 0x00000008u, 0x00001f04u, 0x000001dbu, 0x00001f03u, 0x00050082u, 0x00000008u, 0x00001f05u, + 0x000001dbu, 0x00001f04u, 0x000500c3u, 0x00000008u, 0x00001f07u, 0x0000840du, 0x00001f05u, 0x000500c7u, + 0x00000008u, 0x00001f09u, 0x00001f07u, 0x00000313u, 0x000200f9u, 0x00001f12u, 0x000200f8u, 0x00001f12u, + 0x000700f5u, 0x00000008u, 0x00008410u, 0x00001f09u, 0x00002064u, 0x000083f9u, 0x00002213u, 0x000200f9u, + 0x00001f13u, 0x000200f8u, 0x00001ef4u, 0x000200f9u, 0x00001f13u, 0x000200f8u, 0x00001f13u, 0x000700f5u, + 0x00000008u, 0x0000840fu, 0x0000019eu, 0x00001ef4u, 0x00008410u, 0x00001f12u, 0x000300f7u, 0x00001bb3u, + 0x00000000u, 0x000400fau, 0x00001b50u, 0x00001bafu, 0x00001bb3u, 0x000200f8u, 0x00001bafu, 0x000500aau, + 0x00000063u, 0x00001bb2u, 0x00001ef2u, 0x000001abu, 0x000200f9u, 0x00001bb3u, 0x000200f8u, 0x00001bb3u, + 0x000700f5u, 0x00000063u, 0x00001bb4u, 0x00001b50u, 0x00001f13u, 0x00001bb2u, 0x00001bafu, 0x000300f7u, + 0x00001bb9u, 0x00000000u, 0x000400fau, 0x00001bb4u, 0x00001bb5u, 0x00001bb9u, 0x000200f8u, 0x00001bb5u, + 0x000500c7u, 0x00000008u, 0x00001bb7u, 0x0000840fu, 0x000001a8u, 0x000500aau, 0x00000063u, 0x00001bb8u, + 0x00001bb7u, 0x0000019eu, 0x000200f9u, 0x00001bb9u, 0x000200f8u, 0x00001bb9u, 0x000700f5u, 0x00000063u, + 0x00001bbau, 0x00001bb4u, 0x00001bb3u, 0x00001bb8u, 0x00001bb5u, 0x000300f7u, 0x00001bbcu, 0x00000000u, + 0x000400fau, 0x00001bbau, 0x00001bbbu, 0x00001bbcu, 0x000200f8u, 0x00001bbbu, 0x000200f9u, 0x00001d5cu, + 0x000200f8u, 0x00001bbcu, 0x000200f9u, 0x00001d5cu, 0x000200f8u, 0x00001bcdu, 0x00040072u, 0x00000012u, + 0x000022adu, 0x00006a43u, 0x0004007cu, 0x00000011u, 0x000022aeu, 0x000022adu, 0x000500c4u, 0x00000011u, + 0x000022afu, 0x000022aeu, 0x000002bau, 0x00070050u, 0x00000023u, 0x000022b0u, 0x000022afu, 0x000022afu, + 0x000022afu, 0x000022afu, 0x00050080u, 0x00000023u, 0x000022b1u, 0x000002b6u, 0x000022b0u, 0x0009004fu, + 0x00000023u, 0x000022b4u, 0x00001d77u, 0x00001d77u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000001u, + 0x000500b0u, 0x000002beu, 0x000022b5u, 0x000022b1u, 0x000022b4u, 0x0009004fu, 0x00000023u, 0x000022b8u, + 0x00001d77u, 0x00001d77u, 0x00000002u, 0x00000002u, 0x00000003u, 0x00000003u, 0x000500b0u, 0x000002beu, + 0x000022b9u, 0x000022b1u, 0x000022b8u, 0x0009004fu, 0x00000023u, 0x000022bcu, 0x00001d79u, 0x00001d79u, + 0x00000000u, 0x00000000u, 0x00000001u, 0x00000001u, 0x000500aeu, 0x000002beu, 0x000022bdu, 0x000022b1u, + 0x000022bcu, 0x0009004fu, 0x00000023u, 0x000022c0u, 0x00001d79u, 0x00001d79u, 0x00000002u, 0x00000002u, + 0x00000003u, 0x00000003u, 0x000500aeu, 0x000002beu, 0x000022c1u, 0x000022b1u, 0x000022c0u, 0x000600a9u, + 0x00000010u, 0x000022c3u, 0x000022b5u, 0x000002d9u, 0x000002d8u, 0x000600a9u, 0x00000010u, 0x000022c5u, + 0x000022bdu, 0x000002d9u, 0x000002d8u, 0x000500c5u, 0x00000010u, 0x000022c6u, 0x000022c3u, 0x000022c5u, + 0x000600a9u, 0x00000010u, 0x000022c8u, 0x000022b9u, 0x000002d9u, 0x000002d8u, 0x000600a9u, 0x00000010u, + 0x000022cau, 0x000022c1u, 0x000002d9u, 0x000002d8u, 0x000500c5u, 0x00000010u, 0x000022cbu, 0x000022c8u, + 0x000022cau, 0x00050084u, 0x00000010u, 0x000022cdu, 0x000022c6u, 0x000002e9u, 0x00050084u, 0x00000010u, + 0x000022cfu, 0x000022cbu, 0x000002f0u, 0x00050080u, 0x00000010u, 0x000022d0u, 0x000022cdu, 0x000022cfu, + 0x00050051u, 0x0000000fu, 0x000022d2u, 0x000022d0u, 0x00000000u, 0x00050051u, 0x0000000fu, 0x000022d4u, + 0x000022d0u, 0x00000001u, 0x000500c5u, 0x0000000fu, 0x000022d5u, 0x000022d2u, 0x000022d4u, 0x00050051u, + 0x0000000fu, 0x000022d7u, 0x000022d0u, 0x00000002u, 0x00050051u, 0x0000000fu, 0x000022d9u, 0x000022d0u, + 0x00000003u, 0x000500c5u, 0x0000000fu, 0x000022dau, 0x000022d7u, 0x000022d9u, 0x000500c5u, 0x0000000fu, + 0x000022dbu, 0x000022d5u, 0x000022dau, 0x000400c8u, 0x0000000fu, 0x000022ddu, 0x000022dbu, 0x000500c7u, + 0x0000000fu, 0x000022deu, 0x000022ddu, 0x00000304u, 0x00040071u, 0x00000006u, 0x00001bd4u, 0x000022deu, + 0x0004007cu, 0x00000008u, 0x00001bd5u, 0x00001bd4u, 0x000500aau, 0x00000063u, 0x00001bd7u, 0x00001bd5u, + 0x0000019eu, 0x000300f7u, 0x00001bd9u, 0x00000000u, 0x000400fau, 0x00001bd7u, 0x00001bd8u, 0x00001bd9u, + 0x000200f8u, 0x00001bd8u, 0x000200f9u, 0x00001d5cu, 0x000200f8u, 0x00001bd9u, 0x000400cdu, 0x00000008u, + 0x00001bdbu, 0x00001bd5u, 0x000400a8u, 0x00000063u, 0x00001bddu, 0x00001b41u, 0x000300f7u, 0x00001be2u, + 0x00000000u, 0x000400fau, 0x00001bddu, 0x00001bdeu, 0x00001be2u, 0x000200f8u, 0x00001bdeu, 0x000500c7u, + 0x00000008u, 0x00001be0u, 0x00001bd5u, 0x000001a8u, 0x000500aau, 0x00000063u, 0x00001be1u, 0x00001be0u, + 0x0000019eu, 0x000200f9u, 0x00001be2u, 0x000200f8u, 0x00001be2u, 0x000700f5u, 0x00000063u, 0x00001be3u, + 0x00001bddu, 0x00001bd9u, 0x00001be1u, 0x00001bdeu, 0x000300f7u, 0x00001be5u, 0x00000000u, 0x000400fau, + 0x00001be3u, 0x00001be4u, 0x00001be5u, 0x000200f8u, 0x00001be4u, 0x000200f9u, 0x00001d5cu, 0x000200f8u, + 0x00001be5u, 0x00060041u, 0x000001c5u, 0x000022e3u, 0x000001c3u, 0x0000019eu, 0x00001988u, 0x0004003du, + 0x000001bfu, 0x000022e4u, 0x000022e3u, 0x00050051u, 0x00000010u, 0x000022e5u, 0x000022e4u, 0x00000000u, + 0x00050051u, 0x00000010u, 0x000022e7u, 0x000022e4u, 0x00000001u, 0x00050051u, 0x00000010u, 0x000022e9u, + 0x000022e4u, 0x00000002u, 0x00050051u, 0x00000010u, 0x000022ebu, 0x000022e4u, 0x00000003u, 0x00050051u, + 0x00000010u, 0x000022edu, 0x000022e4u, 0x00000004u, 0x00050051u, 0x00000010u, 0x000022efu, 0x000022e4u, + 0x00000005u, 0x00050051u, 0x00000010u, 0x000022f1u, 0x000022e4u, 0x00000006u, 0x00050051u, 0x00000010u, + 0x000022f3u, 0x000022e4u, 0x00000007u, 0x00050051u, 0x00000010u, 0x000022f7u, 0x000022e4u, 0x00000009u, + 0x00050051u, 0x0000000fu, 0x000022ffu, 0x000022e4u, 0x0000000du, 0x00050051u, 0x00000013u, 0x00002301u, + 0x000022e4u, 0x0000000eu, 0x00050082u, 0x00000008u, 0x00001bebu, 0x00006a43u, 0x00001d7bu, 0x000600a9u, + 0x00000008u, 0x00001bedu, 0x00001b7cu, 0x000001a8u, 0x000004f8u, 0x000500c7u, 0x00000009u, 0x0000230du, + 0x00001d8eu, 0x00008974u, 0x00070050u, 0x00000009u, 0x0000230eu, 0x00000497u, 0x00000497u, 0x00000497u, + 0x00000497u, 0x000500c3u, 0x00000009u, 0x0000230fu, 0x0000230du, 0x0000230eu, 0x00070050u, 0x00000009u, + 0x00002311u, 0x00001bebu, 0x00001bebu, 0x00001bebu, 0x00001bebu, 0x00050084u, 0x00000009u, 0x00002312u, + 0x0000230fu, 0x00002311u, 0x00050080u, 0x00000009u, 0x00002314u, 0x00001d73u, 0x00002312u, 0x000500c3u, + 0x00000009u, 0x00002317u, 0x00002314u, 0x00008975u, 0x00040072u, 0x00000013u, 0x00002318u, 0x00002317u, + 0x0006000cu, 0x00000008u, 0x0000231au, 0x00000001u, 0x00000049u, 0x00001bd5u, 0x000500c3u, 0x00000008u, + 0x0000231cu, 0x0000231au, 0x000001a8u, 0x00040072u, 0x00000012u, 0x0000231du, 0x0000231cu, 0x000500c7u, + 0x00000008u, 0x0000231fu, 0x0000231au, 0x000001a8u, 0x000500c4u, 0x00000008u, 0x00002320u, 0x0000231fu, + 0x000001a8u, 0x00040072u, 0x00000012u, 0x00002321u, 0x00002320u, 0x000500c7u, 0x00000012u, 0x00002323u, + 0x0000231du, 0x000004b1u, 0x00050080u, 0x00000012u, 0x00002324u, 0x00002321u, 0x00002323u, 0x00070050u, + 0x00000013u, 0x00002326u, 0x000004b5u, 0x000004b5u, 0x000004b5u, 0x000004b5u, 0x000500c4u, 0x00000013u, + 0x00002327u, 0x00002318u, 0x00002326u, 0x000500c3u, 0x00000009u, 0x0000232bu, 0x00001d8eu, 0x00008975u, + 0x00040072u, 0x00000013u, 0x0000232cu, 0x0000232bu, 0x00070050u, 0x00000013u, 0x0000232du, 0x00002324u, + 0x00002324u, 0x00002324u, 0x00002324u, 0x00050084u, 0x00000013u, 0x0000232eu, 0x0000232du, 0x0000232cu, + 0x000500c3u, 0x00000009u, 0x00002332u, 0x00001d92u, 0x00008975u, 0x00040072u, 0x00000013u, 0x00002333u, + 0x00002332u, 0x00070050u, 0x00000013u, 0x00002334u, 0x0000231du, 0x0000231du, 0x0000231du, 0x0000231du, + 0x00050084u, 0x00000013u, 0x00002335u, 0x00002334u, 0x00002333u, 0x00050080u, 0x00000013u, 0x00002336u, + 0x0000232eu, 0x00002335u, 0x00050080u, 0x00000013u, 0x00002338u, 0x00002327u, 0x00002336u, 0x00070050u, + 0x00000013u, 0x0000233au, 0x000004cbu, 0x000004cbu, 0x000004cbu, 0x000004cbu, 0x000500c3u, 0x00000013u, + 0x0000233bu, 0x00002338u, 0x0000233au, 0x00040072u, 0x00000009u, 0x00002342u, 0x0000233bu, 0x00050082u, + 0x00000009u, 0x0000234au, 0x00002342u, 0x00008976u, 0x000600cau, 0x00000009u, 0x0000234cu, 0x0000234au, + 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, 0x0000234fu, 0x0000234cu, 0x00008976u, 0x0008000cu, + 0x00000009u, 0x00002351u, 0x00000001u, 0x0000002du, 0x0000234fu, 0x00000312u, 0x00000314u, 0x00040072u, + 0x00000013u, 0x00002352u, 0x00002351u, 0x00040072u, 0x0000031eu, 0x00002344u, 0x00002352u, 0x0004007cu, + 0x00000010u, 0x00002345u, 0x00002344u, 0x000500a7u, 0x00000063u, 0x00001bf9u, 0x00001770u, 0x00001b62u, + 0x000300f7u, 0x00001c02u, 0x00000000u, 0x000400fau, 0x00001bf9u, 0x00001bfau, 0x00001c02u, 0x000200f8u, + 0x00001bfau, 0x000500c7u, 0x00000006u, 0x00001bfcu, 0x00001adau, 0x00000347u, 0x000500abu, 0x00000063u, + 0x00001bfdu, 0x00001bfcu, 0x00000290u, 0x000300f7u, 0x00001c01u, 0x00000000u, 0x000400fau, 0x00001bfdu, + 0x00001bfeu, 0x00001c01u, 0x000200f8u, 0x00001bfeu, 0x00050084u, 0x00000008u, 0x00001c00u, 0x00001bedu, + 0x00000558u, 0x000200f9u, 0x00001c01u, 0x000200f8u, 0x00001c01u, 0x000700f5u, 0x00000008u, 0x00006a49u, + 0x00001bedu, 0x00001bfau, 0x00001c00u, 0x00001bfeu, 0x000200f9u, 0x00001c02u, 0x000200f8u, 0x00001c02u, + 0x000700f5u, 0x00000008u, 0x00006a48u, 0x00001bedu, 0x00001be5u, 0x00006a49u, 0x00001c01u, 0x0008004fu, + 0x0000005du, 0x00002366u, 0x00001d75u, 0x00001d75u, 0x00000000u, 0x00000001u, 0x00000003u, 0x0008004fu, + 0x0000005du, 0x00002368u, 0x00001d96u, 0x00001d96u, 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c7u, + 0x0000005du, 0x0000236au, 0x00002368u, 0x00008972u, 0x00060050u, 0x0000005du, 0x0000236bu, 0x00000497u, + 0x00000497u, 0x00000497u, 0x000500c3u, 0x0000005du, 0x0000236cu, 0x0000236au, 0x0000236bu, 0x00060050u, + 0x0000005du, 0x0000236eu, 0x00001bebu, 0x00001bebu, 0x00001bebu, 0x00050084u, 0x0000005du, 0x0000236fu, + 0x0000236cu, 0x0000236eu, 0x00050080u, 0x0000005du, 0x00002370u, 0x00002366u, 0x0000236fu, 0x000300f7u, + 0x00002395u, 0x00000000u, 0x000400fau, 0x00001b62u, 0x00002372u, 0x00002395u, 0x000200f8u, 0x00002372u, + 0x00060050u, 0x0000005du, 0x0000237bu, 0x00006a48u, 0x00006a48u, 0x00006a48u, 0x00050084u, 0x0000005du, + 0x0000237cu, 0x0000237bu, 0x0000236cu, 0x00050080u, 0x0000005du, 0x0000237du, 0x00002370u, 0x0000237cu, + 0x000300f7u, 0x00002394u, 0x00000000u, 0x000400fau, 0x00000559u, 0x0000237eu, 0x0000238bu, 0x000200f8u, + 0x0000238bu, 0x0008004fu, 0x0000005du, 0x0000238eu, 0x00001d9au, 0x00001d9au, 0x00000000u, 0x00000001u, + 0x00000003u, 0x000500c7u, 0x0000005du, 0x00002390u, 0x0000238eu, 0x00008978u, 0x000500c3u, 0x0000005du, + 0x00002392u, 0x00002390u, 0x0000236bu, 0x00050080u, 0x0000005du, 0x00002393u, 0x00002370u, 0x00002392u, + 0x000200f9u, 0x00002394u, 0x000200f8u, 0x0000237eu, 0x0006000cu, 0x00000008u, 0x00002381u, 0x00000001u, + 0x00000005u, 0x00006a48u, 0x0008004fu, 0x0000005du, 0x00002383u, 0x00001d9au, 0x00001d9au, 0x00000000u, + 0x00000001u, 0x00000003u, 0x000500c7u, 0x0000005du, 0x00002385u, 0x00002383u, 0x00008978u, 0x000500c3u, + 0x0000005du, 0x00002387u, 0x00002385u, 0x0000236bu, 0x00060050u, 0x0000005du, 0x00002388u, 0x00002381u, + 0x00002381u, 0x00002381u, 0x00050084u, 0x0000005du, 0x00002389u, 0x00002388u, 0x00002387u, 0x00050080u, + 0x0000005du, 0x0000238au, 0x00002370u, 0x00002389u, 0x000200f9u, 0x00002394u, 0x000200f8u, 0x00002394u, + 0x000700f5u, 0x0000005du, 0x00006a60u, 0x0000238au, 0x0000237eu, 0x00002393u, 0x0000238bu, 0x000200f9u, + 0x00002395u, 0x000200f8u, 0x00002395u, 0x000700f5u, 0x0000005du, 0x00006a57u, 0x00006a53u, 0x00001c02u, + 0x00006a60u, 0x00002394u, 0x000700f5u, 0x0000005du, 0x00006a4cu, 0x00006a53u, 0x00001c02u, 0x0000237du, + 0x00002394u, 0x000300f7u, 0x000023bdu, 0x00000000u, 0x000400fau, 0x00001b35u, 0x00002397u, 0x000023adu, + 0x000200f8u, 0x000023adu, 0x000500c3u, 0x0000005du, 0x000023b0u, 0x00002370u, 0x00008973u, 0x0007004fu, + 0x00000058u, 0x00002581u, 0x000023b0u, 0x000023b0u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x000023bcu, + 0x00000000u, 0x000400fau, 0x00001b62u, 0x000023b3u, 0x000023bcu, 0x000200f8u, 0x000023b3u, 0x000500c3u, + 0x0000005du, 0x000023b6u, 0x00006a4cu, 0x00008973u, 0x0007004fu, 0x00000058u, 0x00002585u, 0x000023b6u, + 0x000023b6u, 0x00000000u, 0x00000001u, 0x000500c3u, 0x0000005du, 0x000023bau, 0x00006a57u, 0x00008973u, + 0x0007004fu, 0x00000058u, 0x00002589u, 0x000023bau, 0x000023bau, 0x00000000u, 0x00000001u, 0x000200f9u, + 0x000023bcu, 0x000200f8u, 0x000023bcu, 0x000700f5u, 0x00000058u, 0x00006b07u, 0x00006adeu, 0x000023adu, + 0x00002589u, 0x000023b3u, 0x000700f5u, 0x00000058u, 0x00006af1u, 0x00006adeu, 0x000023adu, 0x00002585u, + 0x000023b3u, 0x000200f9u, 0x000023bdu, 0x000200f8u, 0x00002397u, 0x000500c3u, 0x0000005du, 0x0000239au, + 0x00002370u, 0x00008973u, 0x00050051u, 0x00000008u, 0x000023f8u, 0x0000239au, 0x00000002u, 0x000500b3u, + 0x00000063u, 0x000023fau, 0x000023f8u, 0x0000019eu, 0x000500c7u, 0x00000008u, 0x000023fcu, 0x000023f8u, + 0x00000426u, 0x0006000cu, 0x00000008u, 0x00002459u, 0x00000001u, 0x0000004au, 0x000023fcu, 0x00050082u, + 0x00000008u, 0x0000245au, 0x000001eeu, 0x00002459u, 0x0007000cu, 0x00000008u, 0x0000245bu, 0x00000001u, + 0x00000027u, 0x0000245au, 0x000001eeu, 0x000500c4u, 0x00000008u, 0x0000245eu, 0x000023fcu, 0x0000245bu, + 0x000500c7u, 0x00000008u, 0x0000245fu, 0x0000245eu, 0x00000341u, 0x000500c7u, 0x00000008u, 0x00002461u, + 0x0000245fu, 0x00000313u, 0x000500c3u, 0x00000008u, 0x00002463u, 0x0000245fu, 0x000001dbu, 0x0003003eu, + 0x00002454u, 0x00000406u, 0x00050041u, 0x0000011eu, 0x00002464u, 0x00002454u, 0x00002463u, 0x0004003du, + 0x0000011du, 0x00002465u, 0x00002464u, 0x00040072u, 0x00000058u, 0x00002466u, 0x00002465u, 0x00050051u, + 0x00000008u, 0x00002468u, 0x00002466u, 0x00000001u, 0x00050084u, 0x00000008u, 0x0000246au, 0x00002468u, + 0x00002461u, 0x000500c3u, 0x00000008u, 0x0000246bu, 0x0000246au, 0x000001e1u, 0x00050051u, 0x00000008u, + 0x0000246du, 0x00002466u, 0x00000000u, 0x00050080u, 0x00000008u, 0x0000246eu, 0x0000246bu, 0x0000246du, + 0x0007004fu, 0x00000058u, 0x00002402u, 0x0000239au, 0x0000239au, 0x00000000u, 0x00000001u, 0x00050050u, + 0x00000058u, 0x00002405u, 0x0000246eu, 0x0000246eu, 0x00050084u, 0x00000058u, 0x00002406u, 0x00002402u, + 0x00002405u, 0x000500c3u, 0x00000008u, 0x00002408u, 0x00000439u, 0x0000245bu, 0x0004007eu, 0x00000008u, + 0x00002409u, 0x00002408u, 0x000500c7u, 0x00000008u, 0x0000240au, 0x00000438u, 0x00002409u, 0x00050050u, + 0x00000058u, 0x0000240du, 0x0000240au, 0x0000240au, 0x000500c7u, 0x00000058u, 0x0000240eu, 0x00002406u, + 0x0000240du, 0x000500abu, 0x00000063u, 0x00002410u, 0x0000245bu, 0x000001eeu, 0x000300f7u, 0x0000241bu, + 0x00000000u, 0x000400fau, 0x00002410u, 0x00002411u, 0x00002417u, 0x000200f8u, 0x00002417u, 0x000500c4u, + 0x00000058u, 0x0000241au, 0x00002406u, 0x00008977u, 0x000200f9u, 0x0000241bu, 0x000200f8u, 0x00002411u, + 0x00050082u, 0x00000008u, 0x00002414u, 0x000001ebu, 0x0000245bu, 0x00050050u, 0x00000058u, 0x00002415u, + 0x00002414u, 0x00002414u, 0x000500c3u, 0x00000058u, 0x00002416u, 0x00002406u, 0x00002415u, 0x000200f9u, + 0x0000241bu, 0x000200f8u, 0x0000241bu, 0x000700f5u, 0x00000058u, 0x00006a66u, 0x00002416u, 0x00002411u, + 0x0000241au, 0x00002417u, 0x000700f5u, 0x00000058u, 0x00006a64u, 0x00002416u, 0x00002411u, 0x00002406u, + 0x00002417u, 0x000500abu, 0x00000453u, 0x0000241du, 0x0000240eu, 0x00000452u, 0x0004009au, 0x00000063u, + 0x0000241eu, 0x0000241du, 0x000300f7u, 0x0000244au, 0x00000000u, 0x000400fau, 0x0000241eu, 0x0000241fu, + 0x0000244au, 0x000200f8u, 0x0000241fu, 0x00050051u, 0x00000008u, 0x00002421u, 0x0000240eu, 0x00000000u, + 0x000500abu, 0x00000063u, 0x00002423u, 0x00002421u, 0x0000240au, 0x000300f7u, 0x00002428u, 0x00000000u, + 0x000400fau, 0x00002423u, 0x00002424u, 0x00002428u, 0x000200f8u, 0x00002424u, 0x000500abu, 0x00000063u, + 0x00002427u, 0x00002421u, 0x0000019eu, 0x000200f9u, 0x00002428u, 0x000200f8u, 0x00002428u, 0x000700f5u, + 0x00000063u, 0x00002429u, 0x00002423u, 0x0000241fu, 0x00002427u, 0x00002424u, 0x000300f7u, 0x00002434u, + 0x00000000u, 0x000400fau, 0x00002429u, 0x0000242au, 0x00002434u, 0x000200f8u, 0x0000242au, 0x00050051u, + 0x00000008u, 0x0000242cu, 0x00006a64u, 0x00000000u, 0x000500c7u, 0x00000008u, 0x0000242du, 0x0000242cu, + 0x00000439u, 0x000500aau, 0x00000063u, 0x0000242eu, 0x0000242du, 0x0000019eu, 0x000300f7u, 0x00002433u, + 0x00000000u, 0x000400fau, 0x0000242eu, 0x0000242fu, 0x00002431u, 0x000200f8u, 0x00002431u, 0x00060052u, + 0x00000058u, 0x00006726u, 0x0000046cu, 0x00006a66u, 0x00000000u, 0x000200f9u, 0x00002433u, 0x000200f8u, + 0x0000242fu, 0x00060052u, 0x00000058u, 0x00006724u, 0x00000426u, 0x00006a66u, 0x00000000u, 0x000200f9u, + 0x00002433u, 0x000200f8u, 0x00002433u, 0x000700f5u, 0x00000058u, 0x00006a6cu, 0x00006724u, 0x0000242fu, + 0x00006726u, 0x00002431u, 0x000200f9u, 0x00002434u, 0x000200f8u, 0x00002434u, 0x000700f5u, 0x00000058u, + 0x00006a6bu, 0x00006a66u, 0x00002428u, 0x00006a6cu, 0x00002433u, 0x000600a9u, 0x00000063u, 0x00008998u, + 0x00002429u, 0x0000046eu, 0x0000120du, 0x00050051u, 0x00000008u, 0x00002436u, 0x0000240eu, 0x00000001u, + 0x000500abu, 0x00000063u, 0x00002438u, 0x00002436u, 0x0000240au, 0x000300f7u, 0x0000243du, 0x00000000u, + 0x000400fau, 0x00002438u, 0x00002439u, 0x0000243du, 0x000200f8u, 0x00002439u, 0x000500abu, 0x00000063u, + 0x0000243cu, 0x00002436u, 0x0000019eu, 0x000200f9u, 0x0000243du, 0x000200f8u, 0x0000243du, 0x000700f5u, + 0x00000063u, 0x0000243eu, 0x00002438u, 0x00002434u, 0x0000243cu, 0x00002439u, 0x000300f7u, 0x00002449u, + 0x00000000u, 0x000400fau, 0x0000243eu, 0x0000243fu, 0x00002449u, 0x000200f8u, 0x0000243fu, 0x00050051u, + 0x00000008u, 0x00002441u, 0x00006a64u, 0x00000001u, 0x000500c7u, 0x00000008u, 0x00002442u, 0x00002441u, + 0x00000439u, 0x000500aau, 0x00000063u, 0x00002443u, 0x00002442u, 0x0000019eu, 0x000300f7u, 0x00002448u, + 0x00000000u, 0x000400fau, 0x00002443u, 0x00002444u, 0x00002446u, 0x000200f8u, 0x00002446u, 0x00060052u, + 0x00000058u, 0x0000672du, 0x0000046cu, 0x00006a6bu, 0x00000001u, 0x000200f9u, 0x00002448u, 0x000200f8u, + 0x00002444u, 0x00060052u, 0x00000058u, 0x0000672bu, 0x00000426u, 0x00006a6bu, 0x00000001u, 0x000200f9u, + 0x00002448u, 0x000200f8u, 0x00002448u, 0x000700f5u, 0x00000058u, 0x00006a70u, 0x0000672bu, 0x00002444u, + 0x0000672du, 0x00002446u, 0x000200f9u, 0x00002449u, 0x000200f8u, 0x00002449u, 0x000700f5u, 0x00000058u, + 0x00006a6fu, 0x00006a6bu, 0x0000243du, 0x00006a70u, 0x00002448u, 0x000600a9u, 0x00000063u, 0x00008999u, + 0x0000243eu, 0x0000046eu, 0x00008998u, 0x000200f9u, 0x0000244au, 0x000200f8u, 0x0000244au, 0x000700f5u, + 0x00000063u, 0x00006a72u, 0x0000120du, 0x0000241bu, 0x00008999u, 0x00002449u, 0x000700f5u, 0x00000058u, + 0x00006a6eu, 0x00006a66u, 0x0000241bu, 0x00006a6fu, 0x00002449u, 0x000600a9u, 0x00000063u, 0x0000899au, + 0x000023fau, 0x0000046eu, 0x00006a72u, 0x00050050u, 0x00000453u, 0x0000899bu, 0x000023fau, 0x000023fau, + 0x000600a9u, 0x00000058u, 0x0000899cu, 0x0000899bu, 0x00000487u, 0x00006a6eu, 0x0008000cu, 0x00000058u, + 0x0000244fu, 0x00000001u, 0x0000002du, 0x0000899cu, 0x0000048au, 0x0000048cu, 0x000300f7u, 0x000023acu, + 0x00000000u, 0x000400fau, 0x00001b62u, 0x0000239fu, 0x000023acu, 0x000200f8u, 0x0000239fu, 0x000500c3u, + 0x0000005du, 0x000023a2u, 0x00006a4cu, 0x00008973u, 0x00050051u, 0x00000008u, 0x0000247eu, 0x000023a2u, + 0x00000002u, 0x000500b3u, 0x00000063u, 0x00002480u, 0x0000247eu, 0x0000019eu, 0x000500c7u, 0x00000008u, + 0x00002482u, 0x0000247eu, 0x00000426u, 0x0006000cu, 0x00000008u, 0x000024dfu, 0x00000001u, 0x0000004au, + 0x00002482u, 0x00050082u, 0x00000008u, 0x000024e0u, 0x000001eeu, 0x000024dfu, 0x0007000cu, 0x00000008u, + 0x000024e1u, 0x00000001u, 0x00000027u, 0x000024e0u, 0x000001eeu, 0x000500c4u, 0x00000008u, 0x000024e4u, + 0x00002482u, 0x000024e1u, 0x000500c7u, 0x00000008u, 0x000024e5u, 0x000024e4u, 0x00000341u, 0x000500c7u, + 0x00000008u, 0x000024e7u, 0x000024e5u, 0x00000313u, 0x000500c3u, 0x00000008u, 0x000024e9u, 0x000024e5u, + 0x000001dbu, 0x0003003eu, 0x000024dau, 0x00000406u, 0x00050041u, 0x0000011eu, 0x000024eau, 0x000024dau, + 0x000024e9u, 0x0004003du, 0x0000011du, 0x000024ebu, 0x000024eau, 0x00040072u, 0x00000058u, 0x000024ecu, + 0x000024ebu, 0x00050051u, 0x00000008u, 0x000024eeu, 0x000024ecu, 0x00000001u, 0x00050084u, 0x00000008u, + 0x000024f0u, 0x000024eeu, 0x000024e7u, 0x000500c3u, 0x00000008u, 0x000024f1u, 0x000024f0u, 0x000001e1u, + 0x00050051u, 0x00000008u, 0x000024f3u, 0x000024ecu, 0x00000000u, 0x00050080u, 0x00000008u, 0x000024f4u, + 0x000024f1u, 0x000024f3u, 0x0007004fu, 0x00000058u, 0x00002488u, 0x000023a2u, 0x000023a2u, 0x00000000u, + 0x00000001u, 0x00050050u, 0x00000058u, 0x0000248bu, 0x000024f4u, 0x000024f4u, 0x00050084u, 0x00000058u, + 0x0000248cu, 0x00002488u, 0x0000248bu, 0x000500c3u, 0x00000008u, 0x0000248eu, 0x00000439u, 0x000024e1u, + 0x0004007eu, 0x00000008u, 0x0000248fu, 0x0000248eu, 0x000500c7u, 0x00000008u, 0x00002490u, 0x00000438u, + 0x0000248fu, 0x00050050u, 0x00000058u, 0x00002493u, 0x00002490u, 0x00002490u, 0x000500c7u, 0x00000058u, + 0x00002494u, 0x0000248cu, 0x00002493u, 0x000500abu, 0x00000063u, 0x00002496u, 0x000024e1u, 0x000001eeu, + 0x000300f7u, 0x000024a1u, 0x00000000u, 0x000400fau, 0x00002496u, 0x00002497u, 0x0000249du, 0x000200f8u, + 0x0000249du, 0x000500c4u, 0x00000058u, 0x000024a0u, 0x0000248cu, 0x00008977u, 0x000200f9u, 0x000024a1u, + 0x000200f8u, 0x00002497u, 0x00050082u, 0x00000008u, 0x0000249au, 0x000001ebu, 0x000024e1u, 0x00050050u, + 0x00000058u, 0x0000249bu, 0x0000249au, 0x0000249au, 0x000500c3u, 0x00000058u, 0x0000249cu, 0x0000248cu, + 0x0000249bu, 0x000200f9u, 0x000024a1u, 0x000200f8u, 0x000024a1u, 0x000700f5u, 0x00000058u, 0x00006a84u, + 0x0000249cu, 0x00002497u, 0x000024a0u, 0x0000249du, 0x000700f5u, 0x00000058u, 0x00006a82u, 0x0000249cu, + 0x00002497u, 0x0000248cu, 0x0000249du, 0x000500abu, 0x00000453u, 0x000024a3u, 0x00002494u, 0x00000452u, + 0x0004009au, 0x00000063u, 0x000024a4u, 0x000024a3u, 0x000300f7u, 0x000024d0u, 0x00000000u, 0x000400fau, + 0x000024a4u, 0x000024a5u, 0x000024d0u, 0x000200f8u, 0x000024a5u, 0x00050051u, 0x00000008u, 0x000024a7u, + 0x00002494u, 0x00000000u, 0x000500abu, 0x00000063u, 0x000024a9u, 0x000024a7u, 0x00002490u, 0x000300f7u, + 0x000024aeu, 0x00000000u, 0x000400fau, 0x000024a9u, 0x000024aau, 0x000024aeu, 0x000200f8u, 0x000024aau, + 0x000500abu, 0x00000063u, 0x000024adu, 0x000024a7u, 0x0000019eu, 0x000200f9u, 0x000024aeu, 0x000200f8u, + 0x000024aeu, 0x000700f5u, 0x00000063u, 0x000024afu, 0x000024a9u, 0x000024a5u, 0x000024adu, 0x000024aau, + 0x000300f7u, 0x000024bau, 0x00000000u, 0x000400fau, 0x000024afu, 0x000024b0u, 0x000024bau, 0x000200f8u, + 0x000024b0u, 0x00050051u, 0x00000008u, 0x000024b2u, 0x00006a82u, 0x00000000u, 0x000500c7u, 0x00000008u, + 0x000024b3u, 0x000024b2u, 0x00000439u, 0x000500aau, 0x00000063u, 0x000024b4u, 0x000024b3u, 0x0000019eu, + 0x000300f7u, 0x000024b9u, 0x00000000u, 0x000400fau, 0x000024b4u, 0x000024b5u, 0x000024b7u, 0x000200f8u, + 0x000024b7u, 0x00060052u, 0x00000058u, 0x00006739u, 0x0000046cu, 0x00006a84u, 0x00000000u, 0x000200f9u, + 0x000024b9u, 0x000200f8u, 0x000024b5u, 0x00060052u, 0x00000058u, 0x00006737u, 0x00000426u, 0x00006a84u, + 0x00000000u, 0x000200f9u, 0x000024b9u, 0x000200f8u, 0x000024b9u, 0x000700f5u, 0x00000058u, 0x00006a8au, + 0x00006737u, 0x000024b5u, 0x00006739u, 0x000024b7u, 0x000200f9u, 0x000024bau, 0x000200f8u, 0x000024bau, + 0x000700f5u, 0x00000058u, 0x00006a89u, 0x00006a84u, 0x000024aeu, 0x00006a8au, 0x000024b9u, 0x000600a9u, + 0x00000063u, 0x0000899du, 0x000024afu, 0x0000046eu, 0x0000899au, 0x00050051u, 0x00000008u, 0x000024bcu, + 0x00002494u, 0x00000001u, 0x000500abu, 0x00000063u, 0x000024beu, 0x000024bcu, 0x00002490u, 0x000300f7u, + 0x000024c3u, 0x00000000u, 0x000400fau, 0x000024beu, 0x000024bfu, 0x000024c3u, 0x000200f8u, 0x000024bfu, + 0x000500abu, 0x00000063u, 0x000024c2u, 0x000024bcu, 0x0000019eu, 0x000200f9u, 0x000024c3u, 0x000200f8u, + 0x000024c3u, 0x000700f5u, 0x00000063u, 0x000024c4u, 0x000024beu, 0x000024bau, 0x000024c2u, 0x000024bfu, + 0x000300f7u, 0x000024cfu, 0x00000000u, 0x000400fau, 0x000024c4u, 0x000024c5u, 0x000024cfu, 0x000200f8u, + 0x000024c5u, 0x00050051u, 0x00000008u, 0x000024c7u, 0x00006a82u, 0x00000001u, 0x000500c7u, 0x00000008u, + 0x000024c8u, 0x000024c7u, 0x00000439u, 0x000500aau, 0x00000063u, 0x000024c9u, 0x000024c8u, 0x0000019eu, + 0x000300f7u, 0x000024ceu, 0x00000000u, 0x000400fau, 0x000024c9u, 0x000024cau, 0x000024ccu, 0x000200f8u, + 0x000024ccu, 0x00060052u, 0x00000058u, 0x00006740u, 0x0000046cu, 0x00006a89u, 0x00000001u, 0x000200f9u, + 0x000024ceu, 0x000200f8u, 0x000024cau, 0x00060052u, 0x00000058u, 0x0000673eu, 0x00000426u, 0x00006a89u, + 0x00000001u, 0x000200f9u, 0x000024ceu, 0x000200f8u, 0x000024ceu, 0x000700f5u, 0x00000058u, 0x00006a8eu, + 0x0000673eu, 0x000024cau, 0x00006740u, 0x000024ccu, 0x000200f9u, 0x000024cfu, 0x000200f8u, 0x000024cfu, + 0x000700f5u, 0x00000058u, 0x00006a8du, 0x00006a89u, 0x000024c3u, 0x00006a8eu, 0x000024ceu, 0x000600a9u, + 0x00000063u, 0x0000899eu, 0x000024c4u, 0x0000046eu, 0x0000899du, 0x000200f9u, 0x000024d0u, 0x000200f8u, + 0x000024d0u, 0x000700f5u, 0x00000063u, 0x00006a90u, 0x0000899au, 0x000024a1u, 0x0000899eu, 0x000024cfu, + 0x000700f5u, 0x00000058u, 0x00006a8cu, 0x00006a84u, 0x000024a1u, 0x00006a8du, 0x000024cfu, 0x000600a9u, + 0x00000063u, 0x0000899fu, 0x00002480u, 0x0000046eu, 0x00006a90u, 0x00050050u, 0x00000453u, 0x000089a0u, + 0x00002480u, 0x00002480u, 0x000600a9u, 0x00000058u, 0x000089a1u, 0x000089a0u, 0x00000487u, 0x00006a8cu, + 0x0008000cu, 0x00000058u, 0x000024d5u, 0x00000001u, 0x0000002du, 0x000089a1u, 0x0000048au, 0x0000048cu, + 0x000500c3u, 0x0000005du, 0x000023a8u, 0x00006a57u, 0x00008973u, 0x00050051u, 0x00000008u, 0x00002504u, + 0x000023a8u, 0x00000002u, 0x000500b3u, 0x00000063u, 0x00002506u, 0x00002504u, 0x0000019eu, 0x000500c7u, + 0x00000008u, 0x00002508u, 0x00002504u, 0x00000426u, 0x0006000cu, 0x00000008u, 0x00002565u, 0x00000001u, + 0x0000004au, 0x00002508u, 0x00050082u, 0x00000008u, 0x00002566u, 0x000001eeu, 0x00002565u, 0x0007000cu, + 0x00000008u, 0x00002567u, 0x00000001u, 0x00000027u, 0x00002566u, 0x000001eeu, 0x000500c4u, 0x00000008u, + 0x0000256au, 0x00002508u, 0x00002567u, 0x000500c7u, 0x00000008u, 0x0000256bu, 0x0000256au, 0x00000341u, + 0x000500c7u, 0x00000008u, 0x0000256du, 0x0000256bu, 0x00000313u, 0x000500c3u, 0x00000008u, 0x0000256fu, + 0x0000256bu, 0x000001dbu, 0x0003003eu, 0x00002560u, 0x00000406u, 0x00050041u, 0x0000011eu, 0x00002570u, + 0x00002560u, 0x0000256fu, 0x0004003du, 0x0000011du, 0x00002571u, 0x00002570u, 0x00040072u, 0x00000058u, + 0x00002572u, 0x00002571u, 0x00050051u, 0x00000008u, 0x00002574u, 0x00002572u, 0x00000001u, 0x00050084u, + 0x00000008u, 0x00002576u, 0x00002574u, 0x0000256du, 0x000500c3u, 0x00000008u, 0x00002577u, 0x00002576u, + 0x000001e1u, 0x00050051u, 0x00000008u, 0x00002579u, 0x00002572u, 0x00000000u, 0x00050080u, 0x00000008u, + 0x0000257au, 0x00002577u, 0x00002579u, 0x0007004fu, 0x00000058u, 0x0000250eu, 0x000023a8u, 0x000023a8u, + 0x00000000u, 0x00000001u, 0x00050050u, 0x00000058u, 0x00002511u, 0x0000257au, 0x0000257au, 0x00050084u, + 0x00000058u, 0x00002512u, 0x0000250eu, 0x00002511u, 0x000500c3u, 0x00000008u, 0x00002514u, 0x00000439u, + 0x00002567u, 0x0004007eu, 0x00000008u, 0x00002515u, 0x00002514u, 0x000500c7u, 0x00000008u, 0x00002516u, + 0x00000438u, 0x00002515u, 0x00050050u, 0x00000058u, 0x00002519u, 0x00002516u, 0x00002516u, 0x000500c7u, + 0x00000058u, 0x0000251au, 0x00002512u, 0x00002519u, 0x000500abu, 0x00000063u, 0x0000251cu, 0x00002567u, + 0x000001eeu, 0x000300f7u, 0x00002527u, 0x00000000u, 0x000400fau, 0x0000251cu, 0x0000251du, 0x00002523u, + 0x000200f8u, 0x00002523u, 0x000500c4u, 0x00000058u, 0x00002526u, 0x00002512u, 0x00008977u, 0x000200f9u, + 0x00002527u, 0x000200f8u, 0x0000251du, 0x00050082u, 0x00000008u, 0x00002520u, 0x000001ebu, 0x00002567u, + 0x00050050u, 0x00000058u, 0x00002521u, 0x00002520u, 0x00002520u, 0x000500c3u, 0x00000058u, 0x00002522u, + 0x00002512u, 0x00002521u, 0x000200f9u, 0x00002527u, 0x000200f8u, 0x00002527u, 0x000700f5u, 0x00000058u, + 0x00006aabu, 0x00002522u, 0x0000251du, 0x00002526u, 0x00002523u, 0x000700f5u, 0x00000058u, 0x00006aa9u, + 0x00002522u, 0x0000251du, 0x00002512u, 0x00002523u, 0x000500abu, 0x00000453u, 0x00002529u, 0x0000251au, + 0x00000452u, 0x0004009au, 0x00000063u, 0x0000252au, 0x00002529u, 0x000300f7u, 0x00002556u, 0x00000000u, + 0x000400fau, 0x0000252au, 0x0000252bu, 0x00002556u, 0x000200f8u, 0x0000252bu, 0x00050051u, 0x00000008u, + 0x0000252du, 0x0000251au, 0x00000000u, 0x000500abu, 0x00000063u, 0x0000252fu, 0x0000252du, 0x00002516u, + 0x000300f7u, 0x00002534u, 0x00000000u, 0x000400fau, 0x0000252fu, 0x00002530u, 0x00002534u, 0x000200f8u, + 0x00002530u, 0x000500abu, 0x00000063u, 0x00002533u, 0x0000252du, 0x0000019eu, 0x000200f9u, 0x00002534u, + 0x000200f8u, 0x00002534u, 0x000700f5u, 0x00000063u, 0x00002535u, 0x0000252fu, 0x0000252bu, 0x00002533u, + 0x00002530u, 0x000300f7u, 0x00002540u, 0x00000000u, 0x000400fau, 0x00002535u, 0x00002536u, 0x00002540u, + 0x000200f8u, 0x00002536u, 0x00050051u, 0x00000008u, 0x00002538u, 0x00006aa9u, 0x00000000u, 0x000500c7u, + 0x00000008u, 0x00002539u, 0x00002538u, 0x00000439u, 0x000500aau, 0x00000063u, 0x0000253au, 0x00002539u, + 0x0000019eu, 0x000300f7u, 0x0000253fu, 0x00000000u, 0x000400fau, 0x0000253au, 0x0000253bu, 0x0000253du, + 0x000200f8u, 0x0000253du, 0x00060052u, 0x00000058u, 0x0000674cu, 0x0000046cu, 0x00006aabu, 0x00000000u, + 0x000200f9u, 0x0000253fu, 0x000200f8u, 0x0000253bu, 0x00060052u, 0x00000058u, 0x0000674au, 0x00000426u, + 0x00006aabu, 0x00000000u, 0x000200f9u, 0x0000253fu, 0x000200f8u, 0x0000253fu, 0x000700f5u, 0x00000058u, + 0x00006ab1u, 0x0000674au, 0x0000253bu, 0x0000674cu, 0x0000253du, 0x000200f9u, 0x00002540u, 0x000200f8u, + 0x00002540u, 0x000700f5u, 0x00000058u, 0x00006ab0u, 0x00006aabu, 0x00002534u, 0x00006ab1u, 0x0000253fu, + 0x000600a9u, 0x00000063u, 0x000089a2u, 0x00002535u, 0x0000046eu, 0x0000899fu, 0x00050051u, 0x00000008u, + 0x00002542u, 0x0000251au, 0x00000001u, 0x000500abu, 0x00000063u, 0x00002544u, 0x00002542u, 0x00002516u, + 0x000300f7u, 0x00002549u, 0x00000000u, 0x000400fau, 0x00002544u, 0x00002545u, 0x00002549u, 0x000200f8u, + 0x00002545u, 0x000500abu, 0x00000063u, 0x00002548u, 0x00002542u, 0x0000019eu, 0x000200f9u, 0x00002549u, + 0x000200f8u, 0x00002549u, 0x000700f5u, 0x00000063u, 0x0000254au, 0x00002544u, 0x00002540u, 0x00002548u, + 0x00002545u, 0x000300f7u, 0x00002555u, 0x00000000u, 0x000400fau, 0x0000254au, 0x0000254bu, 0x00002555u, + 0x000200f8u, 0x0000254bu, 0x00050051u, 0x00000008u, 0x0000254du, 0x00006aa9u, 0x00000001u, 0x000500c7u, + 0x00000008u, 0x0000254eu, 0x0000254du, 0x00000439u, 0x000500aau, 0x00000063u, 0x0000254fu, 0x0000254eu, + 0x0000019eu, 0x000300f7u, 0x00002554u, 0x00000000u, 0x000400fau, 0x0000254fu, 0x00002550u, 0x00002552u, + 0x000200f8u, 0x00002552u, 0x00060052u, 0x00000058u, 0x00006753u, 0x0000046cu, 0x00006ab0u, 0x00000001u, + 0x000200f9u, 0x00002554u, 0x000200f8u, 0x00002550u, 0x00060052u, 0x00000058u, 0x00006751u, 0x00000426u, + 0x00006ab0u, 0x00000001u, 0x000200f9u, 0x00002554u, 0x000200f8u, 0x00002554u, 0x000700f5u, 0x00000058u, + 0x00006ab5u, 0x00006751u, 0x00002550u, 0x00006753u, 0x00002552u, 0x000200f9u, 0x00002555u, 0x000200f8u, + 0x00002555u, 0x000700f5u, 0x00000058u, 0x00006ab4u, 0x00006ab0u, 0x00002549u, 0x00006ab5u, 0x00002554u, + 0x000600a9u, 0x00000063u, 0x000089a3u, 0x0000254au, 0x0000046eu, 0x000089a2u, 0x000200f9u, 0x00002556u, + 0x000200f8u, 0x00002556u, 0x000700f5u, 0x00000063u, 0x00006ab7u, 0x0000899fu, 0x00002527u, 0x000089a3u, + 0x00002555u, 0x000700f5u, 0x00000058u, 0x00006ab3u, 0x00006aabu, 0x00002527u, 0x00006ab4u, 0x00002555u, + 0x000600a9u, 0x00000063u, 0x000089a4u, 0x00002506u, 0x0000046eu, 0x00006ab7u, 0x00050050u, 0x00000453u, + 0x000089a5u, 0x00002506u, 0x00002506u, 0x000600a9u, 0x00000058u, 0x000089a6u, 0x000089a5u, 0x00000487u, + 0x00006ab3u, 0x0008000cu, 0x00000058u, 0x0000255bu, 0x00000001u, 0x0000002du, 0x000089a6u, 0x0000048au, + 0x0000048cu, 0x000200f9u, 0x000023acu, 0x000200f8u, 0x000023acu, 0x000700f5u, 0x00000063u, 0x00006b09u, + 0x0000899au, 0x0000244au, 0x000089a4u, 0x00002556u, 0x000700f5u, 0x00000058u, 0x00006af3u, 0x00006adeu, + 0x0000244au, 0x0000255bu, 0x00002556u, 0x000700f5u, 0x00000058u, 0x00006ad3u, 0x00006adeu, 0x0000244au, + 0x000024d5u, 0x00002556u, 0x000200f9u, 0x000023bdu, 0x000200f8u, 0x000023bdu, 0x000700f5u, 0x00000063u, + 0x00006b08u, 0x00006b09u, 0x000023acu, 0x0000120du, 0x000023bcu, 0x000700f5u, 0x00000058u, 0x00006af2u, + 0x00006af3u, 0x000023acu, 0x00006b07u, 0x000023bcu, 0x000700f5u, 0x00000058u, 0x00006ad2u, 0x00006ad3u, + 0x000023acu, 0x00006af1u, 0x000023bcu, 0x000700f5u, 0x00000058u, 0x00006abdu, 0x0000244fu, 0x000023acu, + 0x00002581u, 0x000023bcu, 0x00050051u, 0x00000008u, 0x000023bfu, 0x00001d75u, 0x00000002u, 0x00050051u, + 0x00000008u, 0x000023c1u, 0x00001d96u, 0x00000002u, 0x000500c3u, 0x00000008u, 0x000023c3u, 0x00001bebu, + 0x00000497u, 0x00050084u, 0x00000008u, 0x000023c4u, 0x000023c1u, 0x000023c3u, 0x00050080u, 0x00000008u, + 0x000023c5u, 0x000023bfu, 0x000023c4u, 0x000500c3u, 0x00000008u, 0x000023c8u, 0x000023c1u, 0x00000497u, + 0x000500c7u, 0x00000008u, 0x000023cau, 0x00001bebu, 0x000005afu, 0x00050084u, 0x00000008u, 0x000023cbu, + 0x000023c8u, 0x000023cau, 0x00050080u, 0x00000008u, 0x000023ccu, 0x000023c5u, 0x000023cbu, 0x000500c3u, + 0x00000008u, 0x000023ceu, 0x000023ccu, 0x000001e1u, 0x000500c7u, 0x00000008u, 0x000023d7u, 0x0000231cu, + 0x000001a8u, 0x00050080u, 0x00000008u, 0x000023d8u, 0x00002320u, 0x000023d7u, 0x000500c4u, 0x00000008u, + 0x000023dau, 0x000023ceu, 0x000005c3u, 0x000500c3u, 0x00000008u, 0x000023deu, 0x000023c1u, 0x000001e1u, + 0x00050084u, 0x00000008u, 0x000023dfu, 0x000023d8u, 0x000023deu, 0x00050051u, 0x00000008u, 0x000023e2u, + 0x00001d9au, 0x00000002u, 0x000500c3u, 0x00000008u, 0x000023e3u, 0x000023e2u, 0x000001e1u, 0x00050084u, + 0x00000008u, 0x000023e4u, 0x0000231cu, 0x000023e3u, 0x00050080u, 0x00000008u, 0x000023e5u, 0x000023dfu, + 0x000023e4u, 0x00050080u, 0x00000008u, 0x000023e7u, 0x000023dau, 0x000023e5u, 0x000500c3u, 0x00000008u, + 0x000023e9u, 0x000023e7u, 0x000005d3u, 0x00050082u, 0x00000008u, 0x0000258du, 0x000023e9u, 0x0000032au, + 0x000500c4u, 0x00000008u, 0x0000258fu, 0x0000258du, 0x000001ebu, 0x000500c3u, 0x00000008u, 0x00002591u, + 0x0000258fu, 0x000001ebu, 0x00050080u, 0x00000008u, 0x00002593u, 0x00002591u, 0x0000032au, 0x0008000cu, + 0x00000008u, 0x00002595u, 0x00000001u, 0x0000002du, 0x00002593u, 0x0000019eu, 0x00000334u, 0x000500c7u, + 0x00000006u, 0x00001c16u, 0x00001af9u, 0x0000127cu, 0x00050080u, 0x00000006u, 0x00001c18u, 0x00001c16u, + 0x000002f6u, 0x000500c7u, 0x00000006u, 0x00001c19u, 0x00001c18u, 0x0000127cu, 0x000500c2u, 0x00000006u, + 0x00001c1bu, 0x00001af9u, 0x000002fdu, 0x00040071u, 0x00000006u, 0x00001c1eu, 0x000022ffu, 0x0004007cu, + 0x00000008u, 0x00001c1fu, 0x00001c1eu, 0x000300f7u, 0x00001c31u, 0x00000000u, 0x000400fau, 0x00001b62u, + 0x00001c21u, 0x00001c31u, 0x000200f8u, 0x00001c21u, 0x000300f7u, 0x000025f4u, 0x00000000u, 0x000400fau, + 0x00006b08u, 0x000025a0u, 0x000025a1u, 0x000200f8u, 0x000025a1u, 0x00050082u, 0x00000058u, 0x000025a4u, + 0x00006ad2u, 0x00006abdu, 0x000500c3u, 0x00000058u, 0x000025a7u, 0x000025a4u, 0x0000897au, 0x000500c6u, + 0x00000058u, 0x000025a9u, 0x000025a4u, 0x000025a7u, 0x00050082u, 0x00000058u, 0x000025acu, 0x00006af2u, + 0x00006abdu, 0x000500c3u, 0x00000058u, 0x000025afu, 0x000025acu, 0x0000897au, 0x000500c6u, 0x00000058u, + 0x000025b1u, 0x000025acu, 0x000025afu, 0x0007000cu, 0x00000058u, 0x000025b4u, 0x00000001u, 0x0000002au, + 0x000025a9u, 0x000025b1u, 0x00050051u, 0x00000008u, 0x000025b6u, 0x000025b4u, 0x00000000u, 0x00050051u, + 0x00000008u, 0x000025b8u, 0x000025b4u, 0x00000001u, 0x0007000cu, 0x00000008u, 0x000025b9u, 0x00000001u, + 0x0000002au, 0x000025b6u, 0x000025b8u, 0x000500afu, 0x00000063u, 0x000025bbu, 0x000025b9u, 0x00001232u, + 0x000300f7u, 0x000025f3u, 0x00000000u, 0x000400fau, 0x000025bbu, 0x000025bcu, 0x000025beu, 0x000200f8u, + 0x000025beu, 0x000500b1u, 0x00000063u, 0x000025c0u, 0x000025b9u, 0x00000979u, 0x000300f7u, 0x000025f2u, + 0x00000000u, 0x000400fau, 0x000025c0u, 0x000025c1u, 0x000025d7u, 0x000200f8u, 0x000025d7u, 0x000500c3u, + 0x00000008u, 0x000025d9u, 0x000025b9u, 0x000001b4u, 0x0006000cu, 0x00000008u, 0x000025dau, 0x00000001u, + 0x0000004au, 0x000025d9u, 0x0007000cu, 0x00000008u, 0x000025dbu, 0x00000001u, 0x0000002au, 0x000025dau, + 0x0000019eu, 0x0004007cu, 0x00000006u, 0x000025ddu, 0x000025dbu, 0x000500aeu, 0x00000063u, 0x000025dfu, + 0x000025ddu, 0x00001c1bu, 0x000400a8u, 0x00000063u, 0x000025e2u, 0x00001b3bu, 0x000500a7u, 0x00000063u, + 0x000025e3u, 0x000025dfu, 0x000025e2u, 0x000400a8u, 0x00000063u, 0x000025e5u, 0x00001b3eu, 0x000500a7u, + 0x00000063u, 0x000025e6u, 0x000025e3u, 0x000025e5u, 0x000300f7u, 0x000025f1u, 0x00000000u, 0x000400fau, + 0x000025e6u, 0x000025e7u, 0x000025e8u, 0x000200f8u, 0x000025e8u, 0x000500c4u, 0x00000008u, 0x000025eau, + 0x000025b9u, 0x000001aeu, 0x000500c3u, 0x00000008u, 0x000025ecu, 0x000025eau, 0x000025dbu, 0x000500c7u, + 0x00000008u, 0x000025edu, 0x000025ecu, 0x00000313u, 0x00040072u, 0x00000012u, 0x000025eeu, 0x000025edu, + 0x000200f9u, 0x000025f1u, 0x000200f8u, 0x000025e7u, 0x000200f9u, 0x000025f1u, 0x000200f8u, 0x000025f1u, + 0x000700f5u, 0x00000012u, 0x00006b34u, 0x00001213u, 0x000025e7u, 0x000025eeu, 0x000025e8u, 0x000600a9u, + 0x00000006u, 0x000089a7u, 0x000025e6u, 0x00000290u, 0x000025ddu, 0x000200f9u, 0x000025f2u, 0x000200f8u, + 0x000025c1u, 0x000500aau, 0x00000063u, 0x000025c3u, 0x00001c1bu, 0x00000290u, 0x000400a8u, 0x00000063u, + 0x000025c5u, 0x00001b3bu, 0x000400a8u, 0x00000063u, 0x000025c7u, 0x00001b3eu, 0x000500a7u, 0x00000063u, + 0x000025c8u, 0x000025c5u, 0x000025c7u, 0x000300f7u, 0x000025d6u, 0x00000000u, 0x000400fau, 0x000025c8u, + 0x000025c9u, 0x000025cdu, 0x000200f8u, 0x000025cdu, 0x0007000cu, 0x00000008u, 0x000025d0u, 0x00000001u, + 0x0000002au, 0x00001c1fu, 0x000025b9u, 0x000500c4u, 0x00000008u, 0x000025d1u, 0x000025d0u, 0x000001aeu, + 0x000600a9u, 0x00000008u, 0x000025d3u, 0x00001b3bu, 0x0000124eu, 0x0000019eu, 0x00050080u, 0x00000008u, + 0x000025d4u, 0x000025d1u, 0x000025d3u, 0x00040072u, 0x00000012u, 0x000025d5u, 0x000025d4u, 0x000200f9u, + 0x000025d6u, 0x000200f8u, 0x000025c9u, 0x000600a9u, 0x00000008u, 0x000025cbu, 0x000025c3u, 0x00000313u, + 0x0000019eu, 0x00040072u, 0x00000012u, 0x000025ccu, 0x000025cbu, 0x000200f9u, 0x000025d6u, 0x000200f8u, + 0x000025d6u, 0x000700f5u, 0x00000012u, 0x00006b33u, 0x000025ccu, 0x000025c9u, 0x000025d5u, 0x000025cdu, + 0x000200f9u, 0x000025f2u, 0x000200f8u, 0x000025f2u, 0x000700f5u, 0x00000012u, 0x00006b32u, 0x00006b33u, + 0x000025d6u, 0x00006b34u, 0x000025f1u, 0x000700f5u, 0x00000006u, 0x00006b19u, 0x00000290u, 0x000025d6u, + 0x000089a7u, 0x000025f1u, 0x000700f5u, 0x00000063u, 0x00006b0du, 0x000025c3u, 0x000025d6u, 0x000025dfu, + 0x000025f1u, 0x000600a9u, 0x00000063u, 0x000089a8u, 0x000025c0u, 0x0000046eu, 0x0000120du, 0x000200f9u, + 0x000025f3u, 0x000200f8u, 0x000025bcu, 0x000200f9u, 0x000025f3u, 0x000200f8u, 0x000025f3u, 0x000700f5u, + 0x00000012u, 0x00006b31u, 0x00001213u, 0x000025bcu, 0x00006b32u, 0x000025f2u, 0x000700f5u, 0x00000063u, + 0x00006b1fu, 0x0000120du, 0x000025bcu, 0x000089a8u, 0x000025f2u, 0x000700f5u, 0x00000006u, 0x00006b18u, + 0x00001c1bu, 0x000025bcu, 0x00006b19u, 0x000025f2u, 0x000700f5u, 0x00000063u, 0x00006b0cu, 0x0000046eu, + 0x000025bcu, 0x00006b0du, 0x000025f2u, 0x000200f9u, 0x000025f4u, 0x000200f8u, 0x000025a0u, 0x000200f9u, + 0x000025f4u, 0x000200f8u, 0x000025f4u, 0x000700f5u, 0x00000012u, 0x00006b30u, 0x00001213u, 0x000025a0u, + 0x00006b31u, 0x000025f3u, 0x000700f5u, 0x00000063u, 0x00006b1eu, 0x0000120du, 0x000025a0u, 0x00006b1fu, + 0x000025f3u, 0x000700f5u, 0x00000006u, 0x00006b17u, 0x00000290u, 0x000025a0u, 0x00006b18u, 0x000025f3u, + 0x000700f5u, 0x00000063u, 0x00006b0bu, 0x0000046eu, 0x000025a0u, 0x00006b0cu, 0x000025f3u, 0x000300f7u, + 0x00002626u, 0x00000000u, 0x000400fau, 0x00001b38u, 0x000025f6u, 0x00002626u, 0x000200f8u, 0x000025f6u, + 0x000600a9u, 0x00000006u, 0x000089a9u, 0x00006b0bu, 0x00001c1bu, 0x00006b17u, 0x000400a8u, 0x00000063u, + 0x000025fcu, 0x00001b3eu, 0x000300f7u, 0x00002625u, 0x00000000u, 0x000400fau, 0x000025fcu, 0x000025fdu, + 0x00002612u, 0x000200f8u, 0x00002612u, 0x00050080u, 0x00000006u, 0x00002615u, 0x00001c16u, 0x000089a9u, + 0x000500a6u, 0x00000063u, 0x00002618u, 0x00006b0bu, 0x00006b1eu, 0x000600a9u, 0x00000008u, 0x00002619u, + 0x00002618u, 0x000001a8u, 0x000001abu, 0x0004007cu, 0x00000006u, 0x0000261au, 0x00002619u, 0x00050080u, + 0x00000006u, 0x0000261bu, 0x00002615u, 0x0000261au, 0x000500c7u, 0x00000006u, 0x0000261cu, 0x0000261bu, + 0x0000127cu, 0x000600a9u, 0x00000008u, 0x00002621u, 0x00006b1eu, 0x0000019eu, 0x000001a8u, 0x0004007cu, + 0x00000006u, 0x00002622u, 0x00002621u, 0x00050080u, 0x00000006u, 0x00002623u, 0x00002615u, 0x00002622u, + 0x000500c7u, 0x00000006u, 0x00002624u, 0x00002623u, 0x0000127cu, 0x000200f9u, 0x00002625u, 0x000200f8u, + 0x000025fdu, 0x00050080u, 0x00000006u, 0x00002600u, 0x00001c16u, 0x000089a9u, 0x000500c7u, 0x00000006u, + 0x00002601u, 0x00002600u, 0x0000127cu, 0x000400a8u, 0x00000063u, 0x00002603u, 0x00006b0bu, 0x000300f7u, + 0x00002609u, 0x00000000u, 0x000400fau, 0x00002603u, 0x00002604u, 0x00002609u, 0x000200f8u, 0x00002604u, + 0x000400a8u, 0x00000063u, 0x00002606u, 0x00001b3bu, 0x000500a7u, 0x00000063u, 0x00002608u, 0x00002606u, + 0x00006b1eu, 0x000200f9u, 0x00002609u, 0x000200f8u, 0x00002609u, 0x000700f5u, 0x00000063u, 0x0000260au, + 0x00006b0bu, 0x000025fdu, 0x00002608u, 0x00002604u, 0x000300f7u, 0x00002611u, 0x00000000u, 0x000400fau, + 0x0000260au, 0x0000260bu, 0x0000260du, 0x000200f8u, 0x0000260du, 0x00050080u, 0x00000006u, 0x0000260fu, + 0x00002601u, 0x000002f6u, 0x000500c7u, 0x00000006u, 0x00002610u, 0x0000260fu, 0x0000127cu, 0x000200f9u, + 0x00002611u, 0x000200f8u, 0x0000260bu, 0x000200f9u, 0x00002611u, 0x000200f8u, 0x00002611u, 0x000700f5u, + 0x00000006u, 0x00006b2eu, 0x00002601u, 0x0000260bu, 0x00002610u, 0x0000260du, 0x000200f9u, 0x00002625u, + 0x000200f8u, 0x00002625u, 0x000700f5u, 0x00000006u, 0x00006b2du, 0x00006b2eu, 0x00002611u, 0x0000261cu, + 0x00002612u, 0x000700f5u, 0x00000006u, 0x00006b25u, 0x00002601u, 0x00002611u, 0x00002624u, 0x00002612u, + 0x000200f9u, 0x00002626u, 0x000200f8u, 0x00002626u, 0x000700f5u, 0x00000006u, 0x00006b27u, 0x00001c19u, + 0x000025f4u, 0x00006b2du, 0x00002625u, 0x000700f5u, 0x00000006u, 0x00006b24u, 0x00001c16u, 0x000025f4u, + 0x00006b25u, 0x00002625u, 0x000200f9u, 0x00001c31u, 0x000200f8u, 0x00001c31u, 0x000700f5u, 0x00000012u, + 0x00007b4cu, 0x00007b59u, 0x000023bdu, 0x00006b30u, 0x00002626u, 0x000700f5u, 0x00000006u, 0x000070ccu, + 0x00001c19u, 0x000023bdu, 0x00006b27u, 0x00002626u, 0x000700f5u, 0x00000006u, 0x00006b39u, 0x00001c16u, + 0x000023bdu, 0x00006b24u, 0x00002626u, 0x000300f7u, 0x00001c4au, 0x00000000u, 0x000400fau, 0x00001b59u, + 0x00001c33u, 0x00001c4au, 0x000200f8u, 0x00001c33u, 0x00080041u, 0x000006aau, 0x00001c36u, 0x000015b9u, + 0x0000019eu, 0x00001988u, 0x000001abu, 0x00006b39u, 0x0004003du, 0x0000000fu, 0x00001c37u, 0x00001c36u, + 0x00040071u, 0x00000006u, 0x00001c38u, 0x00001c37u, 0x00060041u, 0x0000024cu, 0x0000262bu, 0x0000024au, + 0x0000019eu, 0x00001c38u, 0x0004003du, 0x00000246u, 0x0000262cu, 0x0000262bu, 0x00050051u, 0x00000006u, + 0x0000262du, 0x0000262cu, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000262fu, 0x0000262cu, 0x00000001u, + 0x00050051u, 0x00000006u, 0x00002631u, 0x0000262cu, 0x00000002u, 0x00050051u, 0x00000006u, 0x00002633u, + 0x0000262cu, 0x00000003u, 0x00050051u, 0x00000006u, 0x00002635u, 0x0000262cu, 0x00000004u, 0x00050051u, + 0x00000006u, 0x00002637u, 0x0000262cu, 0x00000005u, 0x00050051u, 0x0000000fu, 0x00002639u, 0x0000262cu, + 0x00000006u, 0x00050051u, 0x0000000fu, 0x0000263bu, 0x0000262cu, 0x00000007u, 0x00050051u, 0x0000000fu, + 0x0000263du, 0x0000262cu, 0x00000008u, 0x00050051u, 0x0000000fu, 0x0000263fu, 0x0000262cu, 0x00000009u, + 0x00050051u, 0x0000000fu, 0x00002641u, 0x0000262cu, 0x0000000au, 0x00050051u, 0x0000000fu, 0x00002643u, + 0x0000262cu, 0x0000000bu, 0x00050051u, 0x0000000fu, 0x00002645u, 0x0000262cu, 0x0000000cu, 0x00050051u, + 0x0000000fu, 0x00002647u, 0x0000262cu, 0x0000000du, 0x000600a9u, 0x0000000fu, 0x000089aau, 0x000017dbu, + 0x000017dfu, 0x00002639u, 0x000600a9u, 0x0000000fu, 0x000089abu, 0x000017dbu, 0x000017e2u, 0x0000263bu, + 0x00040071u, 0x00000006u, 0x000027a3u, 0x00002647u, 0x0004007cu, 0x00000008u, 0x000027a4u, 0x000027a3u, + 0x000500c7u, 0x00000008u, 0x000027a5u, 0x000027a4u, 0x000001a8u, 0x000500abu, 0x00000063u, 0x000027a6u, + 0x000027a5u, 0x0000019eu, 0x0004007cu, 0x00000008u, 0x000027a9u, 0x0000262du, 0x0004007cu, 0x00000008u, + 0x000027acu, 0x0000262fu, 0x00040071u, 0x00000006u, 0x000027afu, 0x00002641u, 0x0004007cu, 0x00000008u, + 0x000027b0u, 0x000027afu, 0x00050051u, 0x00000008u, 0x000027b2u, 0x00006abdu, 0x00000000u, 0x0008000cu, + 0x00000008u, 0x00002c8du, 0x00000001u, 0x0000002du, 0x000027b2u, 0x0000046cu, 0x00000426u, 0x000500b1u, + 0x00000063u, 0x00002c8fu, 0x000027b0u, 0x000001e4u, 0x000300f7u, 0x00002c9bu, 0x00000000u, 0x000400fau, + 0x00002c8fu, 0x00002c90u, 0x00002c94u, 0x000200f8u, 0x00002c94u, 0x00050082u, 0x00000008u, 0x00002c96u, + 0x00000979u, 0x000027b0u, 0x000500c4u, 0x00000008u, 0x00002c98u, 0x00002c8du, 0x00002c96u, 0x000500c3u, + 0x00000008u, 0x00002c9au, 0x00002c98u, 0x0000050bu, 0x000200f9u, 0x00002c9bu, 0x000200f8u, 0x00002c90u, + 0x000500c3u, 0x00000008u, 0x00002c93u, 0x00002c8du, 0x000027b0u, 0x000200f9u, 0x00002c9bu, 0x000200f8u, + 0x00002c9bu, 0x000700f5u, 0x00000008u, 0x00006b48u, 0x00002c93u, 0x00002c90u, 0x00002c9au, 0x00002c94u, + 0x000300f7u, 0x00002cb7u, 0x00000000u, 0x000400fau, 0x000027a6u, 0x00002c9du, 0x00002cb2u, 0x000200f8u, + 0x00002cb2u, 0x000500c4u, 0x00000008u, 0x00002cb4u, 0x000027a9u, 0x000001aeu, 0x00050082u, 0x00000008u, + 0x00002cb6u, 0x00006b48u, 0x00002cb4u, 0x000200f9u, 0x00002cb7u, 0x000200f8u, 0x00002c9du, 0x000500c3u, + 0x00000008u, 0x00002c9fu, 0x00006b48u, 0x000001aeu, 0x000500afu, 0x00000063u, 0x00002ca1u, 0x00002c9fu, + 0x000027acu, 0x000300f7u, 0x00002cb1u, 0x00000000u, 0x000400fau, 0x00002ca1u, 0x00002ca3u, 0x00002cabu, + 0x000200f8u, 0x00002cabu, 0x000500c4u, 0x00000008u, 0x00002caeu, 0x000027a9u, 0x000001aeu, 0x00050082u, + 0x00000008u, 0x00002cafu, 0x00006b48u, 0x00002caeu, 0x0007000cu, 0x00000008u, 0x00002cb0u, 0x00000001u, + 0x0000002au, 0x00002cafu, 0x0000019eu, 0x000200f9u, 0x00002cb1u, 0x000200f8u, 0x00002ca3u, 0x000500c3u, + 0x00000008u, 0x00002ca5u, 0x000027acu, 0x000001abu, 0x000500c3u, 0x00000008u, 0x00002ca7u, 0x000027a9u, + 0x000001abu, 0x00050082u, 0x00000008u, 0x00002ca8u, 0x00002ca5u, 0x00002ca7u, 0x000500c7u, 0x00000008u, + 0x00002ca9u, 0x00002ca8u, 0x00000990u, 0x000500c4u, 0x00000008u, 0x00002caau, 0x00002ca9u, 0x000001b4u, + 0x000200f9u, 0x00002cb1u, 0x000200f8u, 0x00002cb1u, 0x000700f5u, 0x00000008u, 0x00006b4au, 0x00002caau, + 0x00002ca3u, 0x00002cb0u, 0x00002cabu, 0x000200f9u, 0x00002cb7u, 0x000200f8u, 0x00002cb7u, 0x000700f5u, + 0x00000008u, 0x00006b49u, 0x00006b4au, 0x00002cb1u, 0x00002cb6u, 0x00002cb2u, 0x000500c7u, 0x00000008u, + 0x000027b9u, 0x000027a4u, 0x000001b1u, 0x000500abu, 0x00000063u, 0x000027bau, 0x000027b9u, 0x0000019eu, + 0x0004007cu, 0x00000008u, 0x000027bdu, 0x00002631u, 0x0004007cu, 0x00000008u, 0x000027c0u, 0x00002633u, + 0x00040071u, 0x00000006u, 0x000027c3u, 0x00002645u, 0x0004007cu, 0x00000008u, 0x000027c4u, 0x000027c3u, + 0x00050051u, 0x00000008u, 0x000027c6u, 0x00006abdu, 0x00000001u, 0x0008000cu, 0x00000008u, 0x00002cbdu, + 0x00000001u, 0x0000002du, 0x000027c6u, 0x0000046cu, 0x00000426u, 0x000500b1u, 0x00000063u, 0x00002cbfu, + 0x000027c4u, 0x000001e4u, 0x000300f7u, 0x00002ccbu, 0x00000000u, 0x000400fau, 0x00002cbfu, 0x00002cc0u, + 0x00002cc4u, 0x000200f8u, 0x00002cc4u, 0x00050082u, 0x00000008u, 0x00002cc6u, 0x00000979u, 0x000027c4u, + 0x000500c4u, 0x00000008u, 0x00002cc8u, 0x00002cbdu, 0x00002cc6u, 0x000500c3u, 0x00000008u, 0x00002ccau, + 0x00002cc8u, 0x0000050bu, 0x000200f9u, 0x00002ccbu, 0x000200f8u, 0x00002cc0u, 0x000500c3u, 0x00000008u, + 0x00002cc3u, 0x00002cbdu, 0x000027c4u, 0x000200f9u, 0x00002ccbu, 0x000200f8u, 0x00002ccbu, 0x000700f5u, + 0x00000008u, 0x00006b4eu, 0x00002cc3u, 0x00002cc0u, 0x00002ccau, 0x00002cc4u, 0x000300f7u, 0x00002ce7u, + 0x00000000u, 0x000400fau, 0x000027bau, 0x00002ccdu, 0x00002ce2u, 0x000200f8u, 0x00002ce2u, 0x000500c4u, + 0x00000008u, 0x00002ce4u, 0x000027bdu, 0x000001aeu, 0x00050082u, 0x00000008u, 0x00002ce6u, 0x00006b4eu, + 0x00002ce4u, 0x000200f9u, 0x00002ce7u, 0x000200f8u, 0x00002ccdu, 0x000500c3u, 0x00000008u, 0x00002ccfu, + 0x00006b4eu, 0x000001aeu, 0x000500afu, 0x00000063u, 0x00002cd1u, 0x00002ccfu, 0x000027c0u, 0x000300f7u, + 0x00002ce1u, 0x00000000u, 0x000400fau, 0x00002cd1u, 0x00002cd3u, 0x00002cdbu, 0x000200f8u, 0x00002cdbu, + 0x000500c4u, 0x00000008u, 0x00002cdeu, 0x000027bdu, 0x000001aeu, 0x00050082u, 0x00000008u, 0x00002cdfu, + 0x00006b4eu, 0x00002cdeu, 0x0007000cu, 0x00000008u, 0x00002ce0u, 0x00000001u, 0x0000002au, 0x00002cdfu, + 0x0000019eu, 0x000200f9u, 0x00002ce1u, 0x000200f8u, 0x00002cd3u, 0x000500c3u, 0x00000008u, 0x00002cd5u, + 0x000027c0u, 0x000001abu, 0x000500c3u, 0x00000008u, 0x00002cd7u, 0x000027bdu, 0x000001abu, 0x00050082u, + 0x00000008u, 0x00002cd8u, 0x00002cd5u, 0x00002cd7u, 0x000500c7u, 0x00000008u, 0x00002cd9u, 0x00002cd8u, + 0x00000990u, 0x000500c4u, 0x00000008u, 0x00002cdau, 0x00002cd9u, 0x000001b4u, 0x000200f9u, 0x00002ce1u, + 0x000200f8u, 0x00002ce1u, 0x000700f5u, 0x00000008u, 0x00006b50u, 0x00002cdau, 0x00002cd3u, 0x00002ce0u, + 0x00002cdbu, 0x000200f9u, 0x00002ce7u, 0x000200f8u, 0x00002ce7u, 0x000700f5u, 0x00000008u, 0x00006b4fu, + 0x00006b50u, 0x00002ce1u, 0x00002ce6u, 0x00002ce2u, 0x00050050u, 0x00000058u, 0x0000898eu, 0x00006b49u, + 0x00006b4fu, 0x000500a6u, 0x00000063u, 0x000027cbu, 0x00001b2cu, 0x00001b26u, 0x000300f7u, 0x000027d1u, + 0x00000000u, 0x000400fau, 0x000027cbu, 0x000027ccu, 0x000027d0u, 0x000200f8u, 0x000027d0u, 0x000200f9u, + 0x000027d1u, 0x000200f8u, 0x000027ccu, 0x000500c7u, 0x00000058u, 0x000027cfu, 0x0000898eu, 0x0000897au, + 0x000200f9u, 0x000027d1u, 0x000200f8u, 0x000027d1u, 0x000700f5u, 0x00000058u, 0x00006b54u, 0x000027cfu, + 0x000027ccu, 0x00000452u, 0x000027d0u, 0x00050051u, 0x00000008u, 0x000027d3u, 0x00006b54u, 0x00000000u, + 0x00050051u, 0x00000008u, 0x000027d5u, 0x00006b54u, 0x00000001u, 0x00050080u, 0x00000008u, 0x000027d6u, + 0x000027d3u, 0x000027d5u, 0x000500c3u, 0x00000058u, 0x000027d9u, 0x0000898eu, 0x00008979u, 0x00050051u, + 0x00000008u, 0x000027dcu, 0x000027d9u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00002ceeu, 0x0000263fu, + 0x0004007cu, 0x00000008u, 0x00002cefu, 0x00002ceeu, 0x000500abu, 0x00000063u, 0x00002cf0u, 0x00002cefu, + 0x0000019eu, 0x000300f7u, 0x00002d08u, 0x00000000u, 0x000400fau, 0x00002cf0u, 0x00002cf1u, 0x00002d08u, + 0x000200f8u, 0x00002cf1u, 0x000500c4u, 0x00000008u, 0x00002cf4u, 0x000001a8u, 0x0000263fu, 0x000500c7u, + 0x00000008u, 0x00002cf9u, 0x000027a4u, 0x000001abu, 0x000500abu, 0x00000063u, 0x00002cfau, 0x00002cf9u, + 0x0000019eu, 0x000300f7u, 0x00002d03u, 0x00000000u, 0x000400fau, 0x00002cfau, 0x00002cfbu, 0x00002d03u, + 0x000200f8u, 0x00002cfbu, 0x000500c7u, 0x00000008u, 0x00002cfeu, 0x000027dcu, 0x00002cf4u, 0x00050082u, + 0x00000008u, 0x00002cffu, 0x00002cfeu, 0x000001a8u, 0x0007000cu, 0x00000008u, 0x00002d00u, 0x00000001u, + 0x0000002au, 0x00002cffu, 0x0000019eu, 0x000500c6u, 0x00000008u, 0x00002d02u, 0x000027dcu, 0x00002d00u, + 0x000200f9u, 0x00002d03u, 0x000200f8u, 0x00002d03u, 0x000700f5u, 0x00000008u, 0x00006b56u, 0x000027dcu, + 0x00002cf1u, 0x00002d02u, 0x00002cfbu, 0x00050082u, 0x00000008u, 0x00002d05u, 0x00002cf4u, 0x000001a8u, + 0x000500c7u, 0x00000008u, 0x00002d07u, 0x00006b56u, 0x00002d05u, 0x000200f9u, 0x00002d08u, 0x000200f8u, + 0x00002d08u, 0x000700f5u, 0x00000008u, 0x00006b57u, 0x000027dcu, 0x000027d1u, 0x00002d07u, 0x00002d03u, + 0x00050051u, 0x00000008u, 0x000027e0u, 0x000027d9u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00002d0fu, + 0x00002643u, 0x0004007cu, 0x00000008u, 0x00002d10u, 0x00002d0fu, 0x000500abu, 0x00000063u, 0x00002d11u, + 0x00002d10u, 0x0000019eu, 0x000300f7u, 0x00002d29u, 0x00000000u, 0x000400fau, 0x00002d11u, 0x00002d12u, + 0x00002d29u, 0x000200f8u, 0x00002d12u, 0x000500c4u, 0x00000008u, 0x00002d15u, 0x000001a8u, 0x00002643u, + 0x000500c7u, 0x00000008u, 0x00002d1au, 0x000027a4u, 0x000001dbu, 0x000500abu, 0x00000063u, 0x00002d1bu, + 0x00002d1au, 0x0000019eu, 0x000300f7u, 0x00002d24u, 0x00000000u, 0x000400fau, 0x00002d1bu, 0x00002d1cu, + 0x00002d24u, 0x000200f8u, 0x00002d1cu, 0x000500c7u, 0x00000008u, 0x00002d1fu, 0x000027e0u, 0x00002d15u, + 0x00050082u, 0x00000008u, 0x00002d20u, 0x00002d1fu, 0x000001a8u, 0x0007000cu, 0x00000008u, 0x00002d21u, + 0x00000001u, 0x0000002au, 0x00002d20u, 0x0000019eu, 0x000500c6u, 0x00000008u, 0x00002d23u, 0x000027e0u, + 0x00002d21u, 0x000200f9u, 0x00002d24u, 0x000200f8u, 0x00002d24u, 0x000700f5u, 0x00000008u, 0x00006b5au, + 0x000027e0u, 0x00002d12u, 0x00002d23u, 0x00002d1cu, 0x00050082u, 0x00000008u, 0x00002d26u, 0x00002d15u, + 0x000001a8u, 0x000500c7u, 0x00000008u, 0x00002d28u, 0x00006b5au, 0x00002d26u, 0x000200f9u, 0x00002d29u, + 0x000200f8u, 0x00002d29u, 0x000700f5u, 0x00000008u, 0x00006b5bu, 0x000027e0u, 0x00002d08u, 0x00002d28u, + 0x00002d24u, 0x00050080u, 0x00000008u, 0x000027e4u, 0x000027dcu, 0x000001a8u, 0x000300f7u, 0x00002d4au, + 0x00000000u, 0x000400fau, 0x00002cf0u, 0x00002d33u, 0x00002d4au, 0x000200f8u, 0x00002d33u, 0x000500c4u, + 0x00000008u, 0x00002d36u, 0x000001a8u, 0x0000263fu, 0x000500c7u, 0x00000008u, 0x00002d3bu, 0x000027a4u, + 0x000001abu, 0x000500abu, 0x00000063u, 0x00002d3cu, 0x00002d3bu, 0x0000019eu, 0x000300f7u, 0x00002d45u, + 0x00000000u, 0x000400fau, 0x00002d3cu, 0x00002d3du, 0x00002d45u, 0x000200f8u, 0x00002d3du, 0x000500c7u, + 0x00000008u, 0x00002d40u, 0x000027e4u, 0x00002d36u, 0x00050082u, 0x00000008u, 0x00002d41u, 0x00002d40u, + 0x000001a8u, 0x0007000cu, 0x00000008u, 0x00002d42u, 0x00000001u, 0x0000002au, 0x00002d41u, 0x0000019eu, + 0x000500c6u, 0x00000008u, 0x00002d44u, 0x000027e4u, 0x00002d42u, 0x000200f9u, 0x00002d45u, 0x000200f8u, + 0x00002d45u, 0x000700f5u, 0x00000008u, 0x00006b5eu, 0x000027e4u, 0x00002d33u, 0x00002d44u, 0x00002d3du, + 0x00050082u, 0x00000008u, 0x00002d47u, 0x00002d36u, 0x000001a8u, 0x000500c7u, 0x00000008u, 0x00002d49u, + 0x00006b5eu, 0x00002d47u, 0x000200f9u, 0x00002d4au, 0x000200f8u, 0x00002d4au, 0x000700f5u, 0x00000008u, + 0x00006b5fu, 0x000027e4u, 0x00002d29u, 0x00002d49u, 0x00002d45u, 0x00050080u, 0x00000008u, 0x000027e9u, + 0x000027e0u, 0x000001a8u, 0x000300f7u, 0x00002d6bu, 0x00000000u, 0x000400fau, 0x00002d11u, 0x00002d54u, + 0x00002d6bu, 0x000200f8u, 0x00002d54u, 0x000500c4u, 0x00000008u, 0x00002d57u, 0x000001a8u, 0x00002643u, + 0x000500c7u, 0x00000008u, 0x00002d5cu, 0x000027a4u, 0x000001dbu, 0x000500abu, 0x00000063u, 0x00002d5du, + 0x00002d5cu, 0x0000019eu, 0x000300f7u, 0x00002d66u, 0x00000000u, 0x000400fau, 0x00002d5du, 0x00002d5eu, + 0x00002d66u, 0x000200f8u, 0x00002d5eu, 0x000500c7u, 0x00000008u, 0x00002d61u, 0x000027e9u, 0x00002d57u, + 0x00050082u, 0x00000008u, 0x00002d62u, 0x00002d61u, 0x000001a8u, 0x0007000cu, 0x00000008u, 0x00002d63u, + 0x00000001u, 0x0000002au, 0x00002d62u, 0x0000019eu, 0x000500c6u, 0x00000008u, 0x00002d65u, 0x000027e9u, + 0x00002d63u, 0x000200f9u, 0x00002d66u, 0x000200f8u, 0x00002d66u, 0x000700f5u, 0x00000008u, 0x00006b62u, + 0x000027e9u, 0x00002d54u, 0x00002d65u, 0x00002d5eu, 0x00050082u, 0x00000008u, 0x00002d68u, 0x00002d57u, + 0x000001a8u, 0x000500c7u, 0x00000008u, 0x00002d6au, 0x00006b62u, 0x00002d68u, 0x000200f9u, 0x00002d6bu, + 0x000200f8u, 0x00002d6bu, 0x000700f5u, 0x00000008u, 0x00006b63u, 0x000027e9u, 0x00002d4au, 0x00002d6au, + 0x00002d66u, 0x00050082u, 0x00000008u, 0x000027eeu, 0x00006b63u, 0x00006b5bu, 0x0007000cu, 0x00000008u, + 0x000027efu, 0x00000001u, 0x0000002au, 0x000027eeu, 0x00000c12u, 0x000500c7u, 0x00000008u, 0x000027f1u, + 0x00006b5bu, 0x00000313u, 0x00050080u, 0x00000008u, 0x000027f3u, 0x000027f1u, 0x000027efu, 0x000500aau, + 0x00000453u, 0x000027f9u, 0x00006b54u, 0x00000c1eu, 0x00050051u, 0x00000063u, 0x000027fau, 0x000027f9u, + 0x00000000u, 0x00050051u, 0x00000063u, 0x000027fbu, 0x000027f9u, 0x00000001u, 0x00070050u, 0x000002beu, + 0x000027fcu, 0x00001b56u, 0x00001b68u, 0x000027fau, 0x000027fbu, 0x0004009bu, 0x00000063u, 0x000027fdu, + 0x000027fcu, 0x000500afu, 0x00000063u, 0x000027ffu, 0x000027d6u, 0x00000979u, 0x000600a9u, 0x00000008u, + 0x000089acu, 0x000027fdu, 0x0000019eu, 0x000027d6u, 0x00040071u, 0x00000006u, 0x00002805u, 0x000089aau, + 0x0004007cu, 0x00000008u, 0x00002806u, 0x00002805u, 0x000500aau, 0x00000063u, 0x00002807u, 0x00002806u, + 0x000001a8u, 0x000500afu, 0x00000063u, 0x00002809u, 0x000089acu, 0x00000979u, 0x000300f7u, 0x00002812u, + 0x00000000u, 0x000400fau, 0x00002809u, 0x0000280au, 0x0000280eu, 0x000200f8u, 0x0000280eu, 0x00050050u, + 0x00000058u, 0x00002811u, 0x00006b57u, 0x000027f1u, 0x000200f9u, 0x00002812u, 0x000200f8u, 0x0000280au, + 0x00050050u, 0x00000058u, 0x0000280du, 0x00006b5fu, 0x000027f3u, 0x000200f9u, 0x00002812u, 0x000200f8u, + 0x00002812u, 0x000700f5u, 0x00000058u, 0x00006b7eu, 0x0000280du, 0x0000280au, 0x00002811u, 0x0000280eu, + 0x000500c7u, 0x00000008u, 0x00002815u, 0x00006b57u, 0x000001a8u, 0x000500c4u, 0x00000008u, 0x00002816u, + 0x00002815u, 0x000001b1u, 0x000500c3u, 0x00000008u, 0x00002819u, 0x000027d3u, 0x000001a8u, 0x000500c5u, + 0x00000008u, 0x0000281au, 0x00002816u, 0x00002819u, 0x000300f7u, 0x00002aecu, 0x00000000u, 0x000400fau, + 0x00001b26u, 0x0000281cu, 0x000028c6u, 0x000200f8u, 0x000028c6u, 0x000300f7u, 0x00002aebu, 0x00000000u, + 0x000d00fbu, 0x00002806u, 0x00002aebu, 0x00000000u, 0x000028cbu, 0x00000001u, 0x00002955u, 0x00000002u, + 0x00002983u, 0x00000003u, 0x000029f8u, 0x00000004u, 0x00002a82u, 0x000200f8u, 0x00002a82u, 0x00040071u, + 0x00000006u, 0x00002a85u, 0x000089abu, 0x0004007cu, 0x00000008u, 0x00002a86u, 0x00002a85u, 0x000300f7u, + 0x00002aeau, 0x00000000u, 0x000700fbu, 0x00002a86u, 0x00002a87u, 0x00000000u, 0x00002aa8u, 0x00000001u, + 0x00002ac9u, 0x000200f8u, 0x00002ac9u, 0x0004007cu, 0x000000abu, 0x00002acbu, 0x00006b7eu, 0x00050051u, + 0x00000006u, 0x00003ec3u, 0x00002acbu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003ec4u, 0x00002637u, + 0x00003ec3u, 0x00050080u, 0x00000006u, 0x00003ec5u, 0x00002635u, 0x00003ec4u, 0x00050051u, 0x00000006u, + 0x00003ec7u, 0x00002acbu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003ec9u, 0x00003ec5u, 0x00003ec7u, + 0x000500c7u, 0x00000006u, 0x00003ecbu, 0x00003ec9u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x00003ecfu, + 0x00003ec3u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003ed0u, 0x00003ecfu, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00003ed2u, 0x00003ecbu, 0x00003ed0u, 0x000500c6u, 0x00000006u, 0x00003ed4u, 0x00003ed2u, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003ed7u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00003ed4u, 0x0004003du, 0x0000000fu, 0x00003ed8u, 0x00003ed7u, 0x00040071u, 0x00000006u, 0x00003ed9u, + 0x00003ed8u, 0x00040071u, 0x00000011u, 0x00003edbu, 0x00003ed9u, 0x0004007cu, 0x00000012u, 0x00003edcu, + 0x00003edbu, 0x00070050u, 0x00000013u, 0x00003eddu, 0x00003edcu, 0x00003edcu, 0x00003edcu, 0x00003edcu, + 0x000300f7u, 0x00002adfu, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x00002ad0u, 0x00002adfu, 0x000200f8u, + 0x00002ad0u, 0x00050050u, 0x00000058u, 0x00002ad3u, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, + 0x00002ad4u, 0x00002ad3u, 0x00050051u, 0x00000006u, 0x00003ee8u, 0x00002ad4u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003ee9u, 0x00002637u, 0x00003ee8u, 0x00050080u, 0x00000006u, 0x00003eeau, 0x00002635u, + 0x00003ee9u, 0x00050051u, 0x00000006u, 0x00003eecu, 0x00002ad4u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003eeeu, 0x00003eeau, 0x00003eecu, 0x000500c7u, 0x00000006u, 0x00003ef0u, 0x00003eeeu, 0x0000068cu, + 0x000500c7u, 0x00000006u, 0x00003ef4u, 0x00003ee8u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003ef5u, + 0x00003ef4u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003ef7u, 0x00003ef0u, 0x00003ef5u, 0x000500c6u, + 0x00000006u, 0x00003ef9u, 0x00003ef7u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003efcu, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003ef9u, 0x0004003du, 0x0000000fu, 0x00003efdu, 0x00003efcu, + 0x00040071u, 0x00000006u, 0x00003efeu, 0x00003efdu, 0x00040071u, 0x00000011u, 0x00003f00u, 0x00003efeu, + 0x0004007cu, 0x00000012u, 0x00003f01u, 0x00003f00u, 0x00070050u, 0x00000013u, 0x00003f02u, 0x00003f01u, + 0x00003f01u, 0x00003f01u, 0x00003f01u, 0x00050050u, 0x00000058u, 0x00002adau, 0x00006b57u, 0x000027f3u, + 0x0004007cu, 0x000000abu, 0x00002adbu, 0x00002adau, 0x00050051u, 0x00000006u, 0x00003f0du, 0x00002adbu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003f0eu, 0x00002637u, 0x00003f0du, 0x00050080u, 0x00000006u, + 0x00003f0fu, 0x00002635u, 0x00003f0eu, 0x00050051u, 0x00000006u, 0x00003f11u, 0x00002adbu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00003f13u, 0x00003f0fu, 0x00003f11u, 0x000500c7u, 0x00000006u, 0x00003f15u, + 0x00003f13u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x00003f19u, 0x00003f0du, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00003f1au, 0x00003f19u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003f1cu, 0x00003f15u, + 0x00003f1au, 0x000500c6u, 0x00000006u, 0x00003f1eu, 0x00003f1cu, 0x000002fdu, 0x00080041u, 0x000006aau, + 0x00003f21u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003f1eu, 0x0004003du, 0x0000000fu, + 0x00003f22u, 0x00003f21u, 0x00040071u, 0x00000006u, 0x00003f23u, 0x00003f22u, 0x00040071u, 0x00000011u, + 0x00003f25u, 0x00003f23u, 0x0004007cu, 0x00000012u, 0x00003f26u, 0x00003f25u, 0x00070050u, 0x00000013u, + 0x00003f27u, 0x00003f26u, 0x00003f26u, 0x00003f26u, 0x00003f26u, 0x000200f9u, 0x00002adfu, 0x000200f8u, + 0x00002adfu, 0x000700f5u, 0x00000013u, 0x00006db8u, 0x00006bf1u, 0x00002ac9u, 0x00003f27u, 0x00002ad0u, + 0x000700f5u, 0x00000013u, 0x00006d3du, 0x00006bf1u, 0x00002ac9u, 0x00003f02u, 0x00002ad0u, 0x000300f7u, + 0x00002ae9u, 0x00000000u, 0x000400fau, 0x000027fdu, 0x00002ae1u, 0x00002ae9u, 0x000200f8u, 0x00002ae1u, + 0x00050050u, 0x00000058u, 0x00002ae4u, 0x00006b5fu, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002ae5u, + 0x00002ae4u, 0x00050051u, 0x00000006u, 0x00003f32u, 0x00002ae5u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003f33u, 0x00002637u, 0x00003f32u, 0x00050080u, 0x00000006u, 0x00003f34u, 0x00002635u, 0x00003f33u, + 0x00050051u, 0x00000006u, 0x00003f36u, 0x00002ae5u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003f38u, + 0x00003f34u, 0x00003f36u, 0x000500c7u, 0x00000006u, 0x00003f3au, 0x00003f38u, 0x0000068cu, 0x000500c7u, + 0x00000006u, 0x00003f3eu, 0x00003f32u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003f3fu, 0x00003f3eu, + 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003f41u, 0x00003f3au, 0x00003f3fu, 0x000500c6u, 0x00000006u, + 0x00003f43u, 0x00003f41u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003f46u, 0x000006a7u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00003f43u, 0x0004003du, 0x0000000fu, 0x00003f47u, 0x00003f46u, 0x00040071u, + 0x00000006u, 0x00003f48u, 0x00003f47u, 0x00040071u, 0x00000011u, 0x00003f4au, 0x00003f48u, 0x0004007cu, + 0x00000012u, 0x00003f4bu, 0x00003f4au, 0x00070050u, 0x00000013u, 0x00003f4cu, 0x00003f4bu, 0x00003f4bu, + 0x00003f4bu, 0x00003f4bu, 0x000200f9u, 0x00002ae9u, 0x000200f8u, 0x00002ae9u, 0x000700f5u, 0x00000013u, + 0x00006e32u, 0x00006bf1u, 0x00002adfu, 0x00003f4cu, 0x00002ae1u, 0x000200f9u, 0x00002aeau, 0x000200f8u, + 0x00002aa8u, 0x0004007cu, 0x000000abu, 0x00002aaau, 0x00006b7eu, 0x00050051u, 0x00000006u, 0x00003df4u, + 0x00002aaau, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003df5u, 0x00002637u, 0x00003df4u, 0x00050080u, + 0x00000006u, 0x00003df6u, 0x00002635u, 0x00003df5u, 0x00050051u, 0x00000006u, 0x00003df8u, 0x00002aaau, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003df9u, 0x00003df8u, 0x000001a8u, 0x00050080u, 0x00000006u, + 0x00003dfbu, 0x00003df6u, 0x00003df9u, 0x000500c7u, 0x00000006u, 0x00003dfdu, 0x00003dfbu, 0x0000068cu, + 0x000400c8u, 0x00000006u, 0x00003e00u, 0x00003df8u, 0x000500c7u, 0x00000006u, 0x00003e01u, 0x00003e00u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003e02u, 0x00003e01u, 0x00000694u, 0x000500c7u, 0x00000006u, + 0x00003e06u, 0x00003df4u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003e07u, 0x00003e06u, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x00003e09u, 0x00003dfdu, 0x00003e07u, 0x000500c6u, 0x00000006u, 0x00003e0bu, + 0x00003e09u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003e0eu, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00003e0bu, 0x0004003du, 0x0000000fu, 0x00003e0fu, 0x00003e0eu, 0x00040071u, 0x00000006u, + 0x00003e10u, 0x00003e0fu, 0x000500c2u, 0x00000006u, 0x00003e13u, 0x00003e10u, 0x00003e02u, 0x000500c7u, + 0x00000006u, 0x00003e14u, 0x00003e13u, 0x000006b1u, 0x000500c4u, 0x00000006u, 0x00003e16u, 0x00003e14u, + 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003e18u, 0x00003e14u, 0x00003e16u, 0x00040071u, 0x00000011u, + 0x00003e1au, 0x00003e18u, 0x0004007cu, 0x00000012u, 0x00003e1bu, 0x00003e1au, 0x00070050u, 0x00000013u, + 0x00003e1cu, 0x00003e1bu, 0x00003e1bu, 0x00003e1bu, 0x00003e1bu, 0x000300f7u, 0x00002abeu, 0x00000000u, + 0x000400fau, 0x00001b2cu, 0x00002aafu, 0x00002abeu, 0x000200f8u, 0x00002aafu, 0x00050050u, 0x00000058u, + 0x00002ab2u, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, 0x00002ab3u, 0x00002ab2u, 0x00050051u, + 0x00000006u, 0x00003e28u, 0x00002ab3u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003e29u, 0x00002637u, + 0x00003e28u, 0x00050080u, 0x00000006u, 0x00003e2au, 0x00002635u, 0x00003e29u, 0x00050051u, 0x00000006u, + 0x00003e2cu, 0x00002ab3u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003e2du, 0x00003e2cu, 0x000001a8u, + 0x00050080u, 0x00000006u, 0x00003e2fu, 0x00003e2au, 0x00003e2du, 0x000500c7u, 0x00000006u, 0x00003e31u, + 0x00003e2fu, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00003e34u, 0x00003e2cu, 0x000500c7u, 0x00000006u, + 0x00003e35u, 0x00003e34u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003e36u, 0x00003e35u, 0x00000694u, + 0x000500c7u, 0x00000006u, 0x00003e3au, 0x00003e28u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003e3bu, + 0x00003e3au, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003e3du, 0x00003e31u, 0x00003e3bu, 0x000500c6u, + 0x00000006u, 0x00003e3fu, 0x00003e3du, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003e42u, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003e3fu, 0x0004003du, 0x0000000fu, 0x00003e43u, 0x00003e42u, + 0x00040071u, 0x00000006u, 0x00003e44u, 0x00003e43u, 0x000500c2u, 0x00000006u, 0x00003e47u, 0x00003e44u, + 0x00003e36u, 0x000500c7u, 0x00000006u, 0x00003e48u, 0x00003e47u, 0x000006b1u, 0x000500c4u, 0x00000006u, + 0x00003e4au, 0x00003e48u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003e4cu, 0x00003e48u, 0x00003e4au, + 0x00040071u, 0x00000011u, 0x00003e4eu, 0x00003e4cu, 0x0004007cu, 0x00000012u, 0x00003e4fu, 0x00003e4eu, + 0x00070050u, 0x00000013u, 0x00003e50u, 0x00003e4fu, 0x00003e4fu, 0x00003e4fu, 0x00003e4fu, 0x00050050u, + 0x00000058u, 0x00002ab9u, 0x00006b57u, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002abau, 0x00002ab9u, + 0x00050051u, 0x00000006u, 0x00003e5cu, 0x00002abau, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003e5du, + 0x00002637u, 0x00003e5cu, 0x00050080u, 0x00000006u, 0x00003e5eu, 0x00002635u, 0x00003e5du, 0x00050051u, + 0x00000006u, 0x00003e60u, 0x00002abau, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003e61u, 0x00003e60u, + 0x000001a8u, 0x00050080u, 0x00000006u, 0x00003e63u, 0x00003e5eu, 0x00003e61u, 0x000500c7u, 0x00000006u, + 0x00003e65u, 0x00003e63u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00003e68u, 0x00003e60u, 0x000500c7u, + 0x00000006u, 0x00003e69u, 0x00003e68u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003e6au, 0x00003e69u, + 0x00000694u, 0x000500c7u, 0x00000006u, 0x00003e6eu, 0x00003e5cu, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x00003e6fu, 0x00003e6eu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003e71u, 0x00003e65u, 0x00003e6fu, + 0x000500c6u, 0x00000006u, 0x00003e73u, 0x00003e71u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003e76u, + 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003e73u, 0x0004003du, 0x0000000fu, 0x00003e77u, + 0x00003e76u, 0x00040071u, 0x00000006u, 0x00003e78u, 0x00003e77u, 0x000500c2u, 0x00000006u, 0x00003e7bu, + 0x00003e78u, 0x00003e6au, 0x000500c7u, 0x00000006u, 0x00003e7cu, 0x00003e7bu, 0x000006b1u, 0x000500c4u, + 0x00000006u, 0x00003e7eu, 0x00003e7cu, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003e80u, 0x00003e7cu, + 0x00003e7eu, 0x00040071u, 0x00000011u, 0x00003e82u, 0x00003e80u, 0x0004007cu, 0x00000012u, 0x00003e83u, + 0x00003e82u, 0x00070050u, 0x00000013u, 0x00003e84u, 0x00003e83u, 0x00003e83u, 0x00003e83u, 0x00003e83u, + 0x000200f9u, 0x00002abeu, 0x000200f8u, 0x00002abeu, 0x000700f5u, 0x00000013u, 0x00006db6u, 0x00006bf1u, + 0x00002aa8u, 0x00003e84u, 0x00002aafu, 0x000700f5u, 0x00000013u, 0x00006d3bu, 0x00006bf1u, 0x00002aa8u, + 0x00003e50u, 0x00002aafu, 0x000300f7u, 0x00002ac8u, 0x00000000u, 0x000400fau, 0x000027fdu, 0x00002ac0u, + 0x00002ac8u, 0x000200f8u, 0x00002ac0u, 0x00050050u, 0x00000058u, 0x00002ac3u, 0x00006b5fu, 0x000027f3u, + 0x0004007cu, 0x000000abu, 0x00002ac4u, 0x00002ac3u, 0x00050051u, 0x00000006u, 0x00003e90u, 0x00002ac4u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003e91u, 0x00002637u, 0x00003e90u, 0x00050080u, 0x00000006u, + 0x00003e92u, 0x00002635u, 0x00003e91u, 0x00050051u, 0x00000006u, 0x00003e94u, 0x00002ac4u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00003e95u, 0x00003e94u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x00003e97u, + 0x00003e92u, 0x00003e95u, 0x000500c7u, 0x00000006u, 0x00003e99u, 0x00003e97u, 0x0000068cu, 0x000400c8u, + 0x00000006u, 0x00003e9cu, 0x00003e94u, 0x000500c7u, 0x00000006u, 0x00003e9du, 0x00003e9cu, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x00003e9eu, 0x00003e9du, 0x00000694u, 0x000500c7u, 0x00000006u, 0x00003ea2u, + 0x00003e90u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003ea3u, 0x00003ea2u, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00003ea5u, 0x00003e99u, 0x00003ea3u, 0x000500c6u, 0x00000006u, 0x00003ea7u, 0x00003ea5u, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003eaau, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00003ea7u, 0x0004003du, 0x0000000fu, 0x00003eabu, 0x00003eaau, 0x00040071u, 0x00000006u, 0x00003eacu, + 0x00003eabu, 0x000500c2u, 0x00000006u, 0x00003eafu, 0x00003eacu, 0x00003e9eu, 0x000500c7u, 0x00000006u, + 0x00003eb0u, 0x00003eafu, 0x000006b1u, 0x000500c4u, 0x00000006u, 0x00003eb2u, 0x00003eb0u, 0x000001b1u, + 0x000500c5u, 0x00000006u, 0x00003eb4u, 0x00003eb0u, 0x00003eb2u, 0x00040071u, 0x00000011u, 0x00003eb6u, + 0x00003eb4u, 0x0004007cu, 0x00000012u, 0x00003eb7u, 0x00003eb6u, 0x00070050u, 0x00000013u, 0x00003eb8u, + 0x00003eb7u, 0x00003eb7u, 0x00003eb7u, 0x00003eb7u, 0x000200f9u, 0x00002ac8u, 0x000200f8u, 0x00002ac8u, + 0x000700f5u, 0x00000013u, 0x00006e30u, 0x00006bf1u, 0x00002abeu, 0x00003eb8u, 0x00002ac0u, 0x000200f9u, + 0x00002aeau, 0x000200f8u, 0x00002a87u, 0x0004007cu, 0x000000abu, 0x00002a89u, 0x00006b7eu, 0x00050051u, + 0x00000006u, 0x00003d3fu, 0x00002a89u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d40u, 0x00002637u, + 0x00003d3fu, 0x00050080u, 0x00000006u, 0x00003d41u, 0x00002635u, 0x00003d40u, 0x00050051u, 0x00000006u, + 0x00003d43u, 0x00002a89u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003d44u, 0x00003d43u, 0x000002fau, + 0x00050080u, 0x00000006u, 0x00003d46u, 0x00003d41u, 0x00003d44u, 0x000500c7u, 0x00000006u, 0x00003d48u, + 0x00003d46u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00003d4au, 0x00003d48u, 0x000001a8u, 0x000500c7u, + 0x00000006u, 0x00003d4du, 0x00003d3fu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003d4eu, 0x00003d4du, + 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003d50u, 0x00003d4au, 0x00003d4eu, 0x000500c6u, 0x00000006u, + 0x00003d52u, 0x00003d50u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00003d55u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00003d52u, 0x0004003du, 0x00000011u, 0x00003d56u, 0x00003d55u, 0x00040071u, + 0x00000006u, 0x00003d57u, 0x00003d56u, 0x000500c2u, 0x00000006u, 0x00003d59u, 0x00003d57u, 0x000001dbu, + 0x00040071u, 0x00000011u, 0x00003d5au, 0x00003d59u, 0x0004007cu, 0x00000012u, 0x00003d5bu, 0x00003d5au, + 0x000500c7u, 0x00000006u, 0x00003d5du, 0x00003d57u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00003d5eu, + 0x00003d5du, 0x0004007cu, 0x00000012u, 0x00003d5fu, 0x00003d5eu, 0x00050050u, 0x0000011du, 0x00003d60u, + 0x00003d5bu, 0x00003d5fu, 0x0009004fu, 0x00000013u, 0x00003d61u, 0x00003d60u, 0x00003d60u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00002a9du, 0x00000000u, 0x000400fau, 0x00001b2cu, + 0x00002a8eu, 0x00002a9du, 0x000200f8u, 0x00002a8eu, 0x00050050u, 0x00000058u, 0x00002a91u, 0x00006b5fu, + 0x000027f1u, 0x0004007cu, 0x000000abu, 0x00002a92u, 0x00002a91u, 0x00050051u, 0x00000006u, 0x00003d6cu, + 0x00002a92u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d6du, 0x00002637u, 0x00003d6cu, 0x00050080u, + 0x00000006u, 0x00003d6eu, 0x00002635u, 0x00003d6du, 0x00050051u, 0x00000006u, 0x00003d70u, 0x00002a92u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00003d71u, 0x00003d70u, 0x000002fau, 0x00050080u, 0x00000006u, + 0x00003d73u, 0x00003d6eu, 0x00003d71u, 0x000500c7u, 0x00000006u, 0x00003d75u, 0x00003d73u, 0x0000068cu, + 0x000500c2u, 0x00000006u, 0x00003d77u, 0x00003d75u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003d7au, + 0x00003d6cu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003d7bu, 0x00003d7au, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x00003d7du, 0x00003d77u, 0x00003d7bu, 0x000500c6u, 0x00000006u, 0x00003d7fu, 0x00003d7du, + 0x000002f6u, 0x00080041u, 0x0000077au, 0x00003d82u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00003d7fu, 0x0004003du, 0x00000011u, 0x00003d83u, 0x00003d82u, 0x00040071u, 0x00000006u, 0x00003d84u, + 0x00003d83u, 0x000500c2u, 0x00000006u, 0x00003d86u, 0x00003d84u, 0x000001dbu, 0x00040071u, 0x00000011u, + 0x00003d87u, 0x00003d86u, 0x0004007cu, 0x00000012u, 0x00003d88u, 0x00003d87u, 0x000500c7u, 0x00000006u, + 0x00003d8au, 0x00003d84u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00003d8bu, 0x00003d8au, 0x0004007cu, + 0x00000012u, 0x00003d8cu, 0x00003d8bu, 0x00050050u, 0x0000011du, 0x00003d8du, 0x00003d88u, 0x00003d8cu, + 0x0009004fu, 0x00000013u, 0x00003d8eu, 0x00003d8du, 0x00003d8du, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x00050050u, 0x00000058u, 0x00002a98u, 0x00006b57u, 0x000027f3u, 0x0004007cu, 0x000000abu, + 0x00002a99u, 0x00002a98u, 0x00050051u, 0x00000006u, 0x00003d99u, 0x00002a99u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003d9au, 0x00002637u, 0x00003d99u, 0x00050080u, 0x00000006u, 0x00003d9bu, 0x00002635u, + 0x00003d9au, 0x00050051u, 0x00000006u, 0x00003d9du, 0x00002a99u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003d9eu, 0x00003d9du, 0x000002fau, 0x00050080u, 0x00000006u, 0x00003da0u, 0x00003d9bu, 0x00003d9eu, + 0x000500c7u, 0x00000006u, 0x00003da2u, 0x00003da0u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00003da4u, + 0x00003da2u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003da7u, 0x00003d99u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00003da8u, 0x00003da7u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003daau, 0x00003da4u, + 0x00003da8u, 0x000500c6u, 0x00000006u, 0x00003dacu, 0x00003daau, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x00003dafu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003dacu, 0x0004003du, 0x00000011u, + 0x00003db0u, 0x00003dafu, 0x00040071u, 0x00000006u, 0x00003db1u, 0x00003db0u, 0x000500c2u, 0x00000006u, + 0x00003db3u, 0x00003db1u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x00003db4u, 0x00003db3u, 0x0004007cu, + 0x00000012u, 0x00003db5u, 0x00003db4u, 0x000500c7u, 0x00000006u, 0x00003db7u, 0x00003db1u, 0x00000659u, + 0x00040071u, 0x00000011u, 0x00003db8u, 0x00003db7u, 0x0004007cu, 0x00000012u, 0x00003db9u, 0x00003db8u, + 0x00050050u, 0x0000011du, 0x00003dbau, 0x00003db5u, 0x00003db9u, 0x0009004fu, 0x00000013u, 0x00003dbbu, + 0x00003dbau, 0x00003dbau, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00002a9du, + 0x000200f8u, 0x00002a9du, 0x000700f5u, 0x00000013u, 0x00006db4u, 0x00006bf1u, 0x00002a87u, 0x00003dbbu, + 0x00002a8eu, 0x000700f5u, 0x00000013u, 0x00006d39u, 0x00006bf1u, 0x00002a87u, 0x00003d8eu, 0x00002a8eu, + 0x000300f7u, 0x00002aa7u, 0x00000000u, 0x000400fau, 0x000027fdu, 0x00002a9fu, 0x00002aa7u, 0x000200f8u, + 0x00002a9fu, 0x00050050u, 0x00000058u, 0x00002aa2u, 0x00006b5fu, 0x000027f3u, 0x0004007cu, 0x000000abu, + 0x00002aa3u, 0x00002aa2u, 0x00050051u, 0x00000006u, 0x00003dc6u, 0x00002aa3u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003dc7u, 0x00002637u, 0x00003dc6u, 0x00050080u, 0x00000006u, 0x00003dc8u, 0x00002635u, + 0x00003dc7u, 0x00050051u, 0x00000006u, 0x00003dcau, 0x00002aa3u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003dcbu, 0x00003dcau, 0x000002fau, 0x00050080u, 0x00000006u, 0x00003dcdu, 0x00003dc8u, 0x00003dcbu, + 0x000500c7u, 0x00000006u, 0x00003dcfu, 0x00003dcdu, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00003dd1u, + 0x00003dcfu, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003dd4u, 0x00003dc6u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00003dd5u, 0x00003dd4u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003dd7u, 0x00003dd1u, + 0x00003dd5u, 0x000500c6u, 0x00000006u, 0x00003dd9u, 0x00003dd7u, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x00003ddcu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003dd9u, 0x0004003du, 0x00000011u, + 0x00003dddu, 0x00003ddcu, 0x00040071u, 0x00000006u, 0x00003ddeu, 0x00003dddu, 0x000500c2u, 0x00000006u, + 0x00003de0u, 0x00003ddeu, 0x000001dbu, 0x00040071u, 0x00000011u, 0x00003de1u, 0x00003de0u, 0x0004007cu, + 0x00000012u, 0x00003de2u, 0x00003de1u, 0x000500c7u, 0x00000006u, 0x00003de4u, 0x00003ddeu, 0x00000659u, + 0x00040071u, 0x00000011u, 0x00003de5u, 0x00003de4u, 0x0004007cu, 0x00000012u, 0x00003de6u, 0x00003de5u, + 0x00050050u, 0x0000011du, 0x00003de7u, 0x00003de2u, 0x00003de6u, 0x0009004fu, 0x00000013u, 0x00003de8u, + 0x00003de7u, 0x00003de7u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00002aa7u, + 0x000200f8u, 0x00002aa7u, 0x000700f5u, 0x00000013u, 0x00006e2eu, 0x00006bf1u, 0x00002a9du, 0x00003de8u, + 0x00002a9fu, 0x000200f9u, 0x00002aeau, 0x000200f8u, 0x00002aeau, 0x000900f5u, 0x00000013u, 0x00006e2du, + 0x00006e2eu, 0x00002aa7u, 0x00006e30u, 0x00002ac8u, 0x00006e32u, 0x00002ae9u, 0x000900f5u, 0x00000013u, + 0x00006db2u, 0x00006db4u, 0x00002aa7u, 0x00006db6u, 0x00002ac8u, 0x00006db8u, 0x00002ae9u, 0x000900f5u, + 0x00000013u, 0x00006d37u, 0x00006d39u, 0x00002aa7u, 0x00006d3bu, 0x00002ac8u, 0x00006d3du, 0x00002ae9u, + 0x000900f5u, 0x00000013u, 0x00006c47u, 0x00003d61u, 0x00002aa7u, 0x00003e1cu, 0x00002ac8u, 0x00003eddu, + 0x00002ae9u, 0x000200f9u, 0x00002aebu, 0x000200f8u, 0x000029f8u, 0x00040071u, 0x00000006u, 0x000029fbu, + 0x000089abu, 0x0004007cu, 0x00000008u, 0x000029fcu, 0x000029fbu, 0x000300f7u, 0x00002a81u, 0x00000000u, + 0x000b00fbu, 0x000029fcu, 0x00002a81u, 0x00000000u, 0x000029fdu, 0x00000001u, 0x00002a1eu, 0x00000002u, + 0x00002a3fu, 0x00000003u, 0x00002a60u, 0x000200f8u, 0x00002a60u, 0x0004007cu, 0x000000abu, 0x00002a62u, + 0x00006b7eu, 0x00050051u, 0x00000006u, 0x00003c8bu, 0x00002a62u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003c8cu, 0x00002637u, 0x00003c8bu, 0x00050080u, 0x00000006u, 0x00003c8du, 0x00002635u, 0x00003c8cu, + 0x00050051u, 0x00000006u, 0x00003c8fu, 0x00002a62u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c90u, + 0x00003c8fu, 0x000002fau, 0x00050080u, 0x00000006u, 0x00003c92u, 0x00003c8du, 0x00003c90u, 0x000500c7u, + 0x00000006u, 0x00003c94u, 0x00003c92u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00003c96u, 0x00003c94u, + 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003c99u, 0x00003c8bu, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x00003c9au, 0x00003c99u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003c9cu, 0x00003c96u, 0x00003c9au, + 0x000500c6u, 0x00000006u, 0x00003c9eu, 0x00003c9cu, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00003ca1u, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003c9eu, 0x0004003du, 0x00000011u, 0x00003ca2u, + 0x00003ca1u, 0x00040071u, 0x00000006u, 0x00003ca3u, 0x00003ca2u, 0x000500c2u, 0x00000006u, 0x00003ca5u, + 0x00003ca3u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x00003ca6u, 0x00003ca5u, 0x0004007cu, 0x00000012u, + 0x00003ca7u, 0x00003ca6u, 0x000500c7u, 0x00000006u, 0x00003ca9u, 0x00003ca3u, 0x00000659u, 0x00040071u, + 0x00000011u, 0x00003caau, 0x00003ca9u, 0x0004007cu, 0x00000012u, 0x00003cabu, 0x00003caau, 0x00050050u, + 0x0000011du, 0x00003cacu, 0x00003ca7u, 0x00003cabu, 0x0009004fu, 0x00000013u, 0x00003cadu, 0x00003cacu, + 0x00003cacu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x00002a76u, 0x00000000u, + 0x000400fau, 0x00001b2cu, 0x00002a67u, 0x00002a76u, 0x000200f8u, 0x00002a67u, 0x00050050u, 0x00000058u, + 0x00002a6au, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, 0x00002a6bu, 0x00002a6au, 0x00050051u, + 0x00000006u, 0x00003cb8u, 0x00002a6bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003cb9u, 0x00002637u, + 0x00003cb8u, 0x00050080u, 0x00000006u, 0x00003cbau, 0x00002635u, 0x00003cb9u, 0x00050051u, 0x00000006u, + 0x00003cbcu, 0x00002a6bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003cbdu, 0x00003cbcu, 0x000002fau, + 0x00050080u, 0x00000006u, 0x00003cbfu, 0x00003cbau, 0x00003cbdu, 0x000500c7u, 0x00000006u, 0x00003cc1u, + 0x00003cbfu, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00003cc3u, 0x00003cc1u, 0x000001a8u, 0x000500c7u, + 0x00000006u, 0x00003cc6u, 0x00003cb8u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003cc7u, 0x00003cc6u, + 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003cc9u, 0x00003cc3u, 0x00003cc7u, 0x000500c6u, 0x00000006u, + 0x00003ccbu, 0x00003cc9u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00003cceu, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00003ccbu, 0x0004003du, 0x00000011u, 0x00003ccfu, 0x00003cceu, 0x00040071u, + 0x00000006u, 0x00003cd0u, 0x00003ccfu, 0x000500c2u, 0x00000006u, 0x00003cd2u, 0x00003cd0u, 0x000001dbu, + 0x00040071u, 0x00000011u, 0x00003cd3u, 0x00003cd2u, 0x0004007cu, 0x00000012u, 0x00003cd4u, 0x00003cd3u, + 0x000500c7u, 0x00000006u, 0x00003cd6u, 0x00003cd0u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00003cd7u, + 0x00003cd6u, 0x0004007cu, 0x00000012u, 0x00003cd8u, 0x00003cd7u, 0x00050050u, 0x0000011du, 0x00003cd9u, + 0x00003cd4u, 0x00003cd8u, 0x0009004fu, 0x00000013u, 0x00003cdau, 0x00003cd9u, 0x00003cd9u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x00000058u, 0x00002a71u, 0x00006b57u, 0x000027f3u, + 0x0004007cu, 0x000000abu, 0x00002a72u, 0x00002a71u, 0x00050051u, 0x00000006u, 0x00003ce5u, 0x00002a72u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003ce6u, 0x00002637u, 0x00003ce5u, 0x00050080u, 0x00000006u, + 0x00003ce7u, 0x00002635u, 0x00003ce6u, 0x00050051u, 0x00000006u, 0x00003ce9u, 0x00002a72u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003ceau, 0x00003ce9u, 0x000002fau, 0x00050080u, 0x00000006u, 0x00003cecu, + 0x00003ce7u, 0x00003ceau, 0x000500c7u, 0x00000006u, 0x00003ceeu, 0x00003cecu, 0x0000068cu, 0x000500c2u, + 0x00000006u, 0x00003cf0u, 0x00003ceeu, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003cf3u, 0x00003ce5u, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003cf4u, 0x00003cf3u, 0x000001a8u, 0x000500c6u, 0x00000006u, + 0x00003cf6u, 0x00003cf0u, 0x00003cf4u, 0x000500c6u, 0x00000006u, 0x00003cf8u, 0x00003cf6u, 0x000002f6u, + 0x00080041u, 0x0000077au, 0x00003cfbu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003cf8u, + 0x0004003du, 0x00000011u, 0x00003cfcu, 0x00003cfbu, 0x00040071u, 0x00000006u, 0x00003cfdu, 0x00003cfcu, + 0x000500c2u, 0x00000006u, 0x00003cffu, 0x00003cfdu, 0x000001dbu, 0x00040071u, 0x00000011u, 0x00003d00u, + 0x00003cffu, 0x0004007cu, 0x00000012u, 0x00003d01u, 0x00003d00u, 0x000500c7u, 0x00000006u, 0x00003d03u, + 0x00003cfdu, 0x00000659u, 0x00040071u, 0x00000011u, 0x00003d04u, 0x00003d03u, 0x0004007cu, 0x00000012u, + 0x00003d05u, 0x00003d04u, 0x00050050u, 0x0000011du, 0x00003d06u, 0x00003d01u, 0x00003d05u, 0x0009004fu, + 0x00000013u, 0x00003d07u, 0x00003d06u, 0x00003d06u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00002a76u, 0x000200f8u, 0x00002a76u, 0x000700f5u, 0x00000013u, 0x00006db1u, 0x00006bf1u, + 0x00002a60u, 0x00003d07u, 0x00002a67u, 0x000700f5u, 0x00000013u, 0x00006d36u, 0x00006bf1u, 0x00002a60u, + 0x00003cdau, 0x00002a67u, 0x000300f7u, 0x00002a80u, 0x00000000u, 0x000400fau, 0x000027fdu, 0x00002a78u, + 0x00002a80u, 0x000200f8u, 0x00002a78u, 0x00050050u, 0x00000058u, 0x00002a7bu, 0x00006b5fu, 0x000027f3u, + 0x0004007cu, 0x000000abu, 0x00002a7cu, 0x00002a7bu, 0x00050051u, 0x00000006u, 0x00003d12u, 0x00002a7cu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003d13u, 0x00002637u, 0x00003d12u, 0x00050080u, 0x00000006u, + 0x00003d14u, 0x00002635u, 0x00003d13u, 0x00050051u, 0x00000006u, 0x00003d16u, 0x00002a7cu, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003d17u, 0x00003d16u, 0x000002fau, 0x00050080u, 0x00000006u, 0x00003d19u, + 0x00003d14u, 0x00003d17u, 0x000500c7u, 0x00000006u, 0x00003d1bu, 0x00003d19u, 0x0000068cu, 0x000500c2u, + 0x00000006u, 0x00003d1du, 0x00003d1bu, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003d20u, 0x00003d12u, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003d21u, 0x00003d20u, 0x000001a8u, 0x000500c6u, 0x00000006u, + 0x00003d23u, 0x00003d1du, 0x00003d21u, 0x000500c6u, 0x00000006u, 0x00003d25u, 0x00003d23u, 0x000002f6u, + 0x00080041u, 0x0000077au, 0x00003d28u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003d25u, + 0x0004003du, 0x00000011u, 0x00003d29u, 0x00003d28u, 0x00040071u, 0x00000006u, 0x00003d2au, 0x00003d29u, + 0x000500c2u, 0x00000006u, 0x00003d2cu, 0x00003d2au, 0x000001dbu, 0x00040071u, 0x00000011u, 0x00003d2du, + 0x00003d2cu, 0x0004007cu, 0x00000012u, 0x00003d2eu, 0x00003d2du, 0x000500c7u, 0x00000006u, 0x00003d30u, + 0x00003d2au, 0x00000659u, 0x00040071u, 0x00000011u, 0x00003d31u, 0x00003d30u, 0x0004007cu, 0x00000012u, + 0x00003d32u, 0x00003d31u, 0x00050050u, 0x0000011du, 0x00003d33u, 0x00003d2eu, 0x00003d32u, 0x0009004fu, + 0x00000013u, 0x00003d34u, 0x00003d33u, 0x00003d33u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00002a80u, 0x000200f8u, 0x00002a80u, 0x000700f5u, 0x00000013u, 0x00006e2bu, 0x00006bf1u, + 0x00002a76u, 0x00003d34u, 0x00002a78u, 0x000200f9u, 0x00002a81u, 0x000200f8u, 0x00002a3fu, 0x0004007cu, + 0x000000abu, 0x00002a41u, 0x00006b7eu, 0x00050051u, 0x00000006u, 0x00003ba0u, 0x00002a41u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003ba1u, 0x00002637u, 0x00003ba0u, 0x00050080u, 0x00000006u, 0x00003ba2u, + 0x00002635u, 0x00003ba1u, 0x00050051u, 0x00000006u, 0x00003ba4u, 0x00002a41u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003ba5u, 0x00003ba4u, 0x000002fau, 0x00050080u, 0x00000006u, 0x00003ba7u, 0x00003ba2u, + 0x00003ba5u, 0x000500c7u, 0x00000006u, 0x00003ba9u, 0x00003ba7u, 0x0000068cu, 0x000500c2u, 0x00000006u, + 0x00003babu, 0x00003ba9u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003baeu, 0x00003ba0u, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00003bafu, 0x00003baeu, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003bb1u, + 0x00003babu, 0x00003bafu, 0x000500c6u, 0x00000006u, 0x00003bb3u, 0x00003bb1u, 0x000002f6u, 0x00080041u, + 0x0000077au, 0x00003bb6u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003bb3u, 0x0004003du, + 0x00000011u, 0x00003bb7u, 0x00003bb6u, 0x00040071u, 0x00000006u, 0x00003bb8u, 0x00003bb7u, 0x000500c2u, + 0x00000006u, 0x00003bc0u, 0x00003bb8u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00003bc2u, 0x00003bb8u, + 0x00000659u, 0x00040071u, 0x00000011u, 0x00003bc4u, 0x00003bc0u, 0x0004007cu, 0x00000012u, 0x00003bc5u, + 0x00003bc4u, 0x00040071u, 0x00000011u, 0x00003bcdu, 0x00003bc2u, 0x0004007cu, 0x00000012u, 0x00003bceu, + 0x00003bcdu, 0x00070050u, 0x00000013u, 0x00003bcfu, 0x00003bc5u, 0x00003bc5u, 0x00003bc5u, 0x00003bceu, + 0x000300f7u, 0x00002a55u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x00002a46u, 0x00002a55u, 0x000200f8u, + 0x00002a46u, 0x00050050u, 0x00000058u, 0x00002a49u, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, + 0x00002a4au, 0x00002a49u, 0x00050051u, 0x00000006u, 0x00003bdbu, 0x00002a4au, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003bdcu, 0x00002637u, 0x00003bdbu, 0x00050080u, 0x00000006u, 0x00003bddu, 0x00002635u, + 0x00003bdcu, 0x00050051u, 0x00000006u, 0x00003bdfu, 0x00002a4au, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003be0u, 0x00003bdfu, 0x000002fau, 0x00050080u, 0x00000006u, 0x00003be2u, 0x00003bddu, 0x00003be0u, + 0x000500c7u, 0x00000006u, 0x00003be4u, 0x00003be2u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00003be6u, + 0x00003be4u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003be9u, 0x00003bdbu, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00003beau, 0x00003be9u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003becu, 0x00003be6u, + 0x00003beau, 0x000500c6u, 0x00000006u, 0x00003beeu, 0x00003becu, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x00003bf1u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003beeu, 0x0004003du, 0x00000011u, + 0x00003bf2u, 0x00003bf1u, 0x00040071u, 0x00000006u, 0x00003bf3u, 0x00003bf2u, 0x000500c2u, 0x00000006u, + 0x00003bfbu, 0x00003bf3u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00003bfdu, 0x00003bf3u, 0x00000659u, + 0x00040071u, 0x00000011u, 0x00003bffu, 0x00003bfbu, 0x0004007cu, 0x00000012u, 0x00003c00u, 0x00003bffu, + 0x00040071u, 0x00000011u, 0x00003c08u, 0x00003bfdu, 0x0004007cu, 0x00000012u, 0x00003c09u, 0x00003c08u, + 0x00070050u, 0x00000013u, 0x00003c0au, 0x00003c00u, 0x00003c00u, 0x00003c00u, 0x00003c09u, 0x00050050u, + 0x00000058u, 0x00002a50u, 0x00006b57u, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002a51u, 0x00002a50u, + 0x00050051u, 0x00000006u, 0x00003c16u, 0x00002a51u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003c17u, + 0x00002637u, 0x00003c16u, 0x00050080u, 0x00000006u, 0x00003c18u, 0x00002635u, 0x00003c17u, 0x00050051u, + 0x00000006u, 0x00003c1au, 0x00002a51u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c1bu, 0x00003c1au, + 0x000002fau, 0x00050080u, 0x00000006u, 0x00003c1du, 0x00003c18u, 0x00003c1bu, 0x000500c7u, 0x00000006u, + 0x00003c1fu, 0x00003c1du, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00003c21u, 0x00003c1fu, 0x000001a8u, + 0x000500c7u, 0x00000006u, 0x00003c24u, 0x00003c16u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003c25u, + 0x00003c24u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003c27u, 0x00003c21u, 0x00003c25u, 0x000500c6u, + 0x00000006u, 0x00003c29u, 0x00003c27u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00003c2cu, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003c29u, 0x0004003du, 0x00000011u, 0x00003c2du, 0x00003c2cu, + 0x00040071u, 0x00000006u, 0x00003c2eu, 0x00003c2du, 0x000500c2u, 0x00000006u, 0x00003c36u, 0x00003c2eu, + 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00003c38u, 0x00003c2eu, 0x00000659u, 0x00040071u, 0x00000011u, + 0x00003c3au, 0x00003c36u, 0x0004007cu, 0x00000012u, 0x00003c3bu, 0x00003c3au, 0x00040071u, 0x00000011u, + 0x00003c43u, 0x00003c38u, 0x0004007cu, 0x00000012u, 0x00003c44u, 0x00003c43u, 0x00070050u, 0x00000013u, + 0x00003c45u, 0x00003c3bu, 0x00003c3bu, 0x00003c3bu, 0x00003c44u, 0x000200f9u, 0x00002a55u, 0x000200f8u, + 0x00002a55u, 0x000700f5u, 0x00000013u, 0x00006dafu, 0x00006bf1u, 0x00002a3fu, 0x00003c45u, 0x00002a46u, + 0x000700f5u, 0x00000013u, 0x00006d34u, 0x00006bf1u, 0x00002a3fu, 0x00003c0au, 0x00002a46u, 0x000300f7u, + 0x00002a5fu, 0x00000000u, 0x000400fau, 0x000027fdu, 0x00002a57u, 0x00002a5fu, 0x000200f8u, 0x00002a57u, + 0x00050050u, 0x00000058u, 0x00002a5au, 0x00006b5fu, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002a5bu, + 0x00002a5au, 0x00050051u, 0x00000006u, 0x00003c51u, 0x00002a5bu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003c52u, 0x00002637u, 0x00003c51u, 0x00050080u, 0x00000006u, 0x00003c53u, 0x00002635u, 0x00003c52u, + 0x00050051u, 0x00000006u, 0x00003c55u, 0x00002a5bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003c56u, + 0x00003c55u, 0x000002fau, 0x00050080u, 0x00000006u, 0x00003c58u, 0x00003c53u, 0x00003c56u, 0x000500c7u, + 0x00000006u, 0x00003c5au, 0x00003c58u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00003c5cu, 0x00003c5au, + 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003c5fu, 0x00003c51u, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x00003c60u, 0x00003c5fu, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003c62u, 0x00003c5cu, 0x00003c60u, + 0x000500c6u, 0x00000006u, 0x00003c64u, 0x00003c62u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00003c67u, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003c64u, 0x0004003du, 0x00000011u, 0x00003c68u, + 0x00003c67u, 0x00040071u, 0x00000006u, 0x00003c69u, 0x00003c68u, 0x000500c2u, 0x00000006u, 0x00003c71u, + 0x00003c69u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00003c73u, 0x00003c69u, 0x00000659u, 0x00040071u, + 0x00000011u, 0x00003c75u, 0x00003c71u, 0x0004007cu, 0x00000012u, 0x00003c76u, 0x00003c75u, 0x00040071u, + 0x00000011u, 0x00003c7eu, 0x00003c73u, 0x0004007cu, 0x00000012u, 0x00003c7fu, 0x00003c7eu, 0x00070050u, + 0x00000013u, 0x00003c80u, 0x00003c76u, 0x00003c76u, 0x00003c76u, 0x00003c7fu, 0x000200f9u, 0x00002a5fu, + 0x000200f8u, 0x00002a5fu, 0x000700f5u, 0x00000013u, 0x00006e29u, 0x00006bf1u, 0x00002a55u, 0x00003c80u, + 0x00002a57u, 0x000200f9u, 0x00002a81u, 0x000200f8u, 0x00002a1eu, 0x0004007cu, 0x000000abu, 0x00002a20u, + 0x00006b7eu, 0x00050051u, 0x00000006u, 0x00003ab1u, 0x00002a20u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003ab2u, 0x00002637u, 0x00003ab1u, 0x00050080u, 0x00000006u, 0x00003ab3u, 0x00002635u, 0x00003ab2u, + 0x00050051u, 0x00000006u, 0x00003ab5u, 0x00002a20u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003ab7u, + 0x00003ab3u, 0x00003ab5u, 0x000500c7u, 0x00000006u, 0x00003ab9u, 0x00003ab7u, 0x0000068cu, 0x000500c7u, + 0x00000006u, 0x00003abdu, 0x00003ab1u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003abeu, 0x00003abdu, + 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003ac0u, 0x00003ab9u, 0x00003abeu, 0x000500c6u, 0x00000006u, + 0x00003ac2u, 0x00003ac0u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003ac5u, 0x000006a7u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00003ac2u, 0x0004003du, 0x0000000fu, 0x00003ac6u, 0x00003ac5u, 0x00040071u, + 0x00000006u, 0x00003ac7u, 0x00003ac6u, 0x000500c2u, 0x00000006u, 0x00003ac9u, 0x00003ac7u, 0x000001b1u, + 0x000500c7u, 0x00000006u, 0x00003acbu, 0x00003ac7u, 0x000006b1u, 0x000500c4u, 0x00000006u, 0x00003acdu, + 0x00003acbu, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003acfu, 0x00003acbu, 0x00003acdu, 0x000500c4u, + 0x00000006u, 0x00003ad1u, 0x00003ac9u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003ad3u, 0x00003ac9u, + 0x00003ad1u, 0x00040071u, 0x00000011u, 0x00003ad5u, 0x00003ad3u, 0x0004007cu, 0x00000012u, 0x00003ad6u, + 0x00003ad5u, 0x00040071u, 0x00000011u, 0x00003adeu, 0x00003acfu, 0x0004007cu, 0x00000012u, 0x00003adfu, + 0x00003adeu, 0x00070050u, 0x00000013u, 0x00003ae0u, 0x00003ad6u, 0x00003ad6u, 0x00003ad6u, 0x00003adfu, + 0x000300f7u, 0x00002a34u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x00002a25u, 0x00002a34u, 0x000200f8u, + 0x00002a25u, 0x00050050u, 0x00000058u, 0x00002a28u, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, + 0x00002a29u, 0x00002a28u, 0x00050051u, 0x00000006u, 0x00003aedu, 0x00002a29u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003aeeu, 0x00002637u, 0x00003aedu, 0x00050080u, 0x00000006u, 0x00003aefu, 0x00002635u, + 0x00003aeeu, 0x00050051u, 0x00000006u, 0x00003af1u, 0x00002a29u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003af3u, 0x00003aefu, 0x00003af1u, 0x000500c7u, 0x00000006u, 0x00003af5u, 0x00003af3u, 0x0000068cu, + 0x000500c7u, 0x00000006u, 0x00003af9u, 0x00003aedu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003afau, + 0x00003af9u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003afcu, 0x00003af5u, 0x00003afau, 0x000500c6u, + 0x00000006u, 0x00003afeu, 0x00003afcu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003b01u, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003afeu, 0x0004003du, 0x0000000fu, 0x00003b02u, 0x00003b01u, + 0x00040071u, 0x00000006u, 0x00003b03u, 0x00003b02u, 0x000500c2u, 0x00000006u, 0x00003b05u, 0x00003b03u, + 0x000001b1u, 0x000500c7u, 0x00000006u, 0x00003b07u, 0x00003b03u, 0x000006b1u, 0x000500c4u, 0x00000006u, + 0x00003b09u, 0x00003b07u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003b0bu, 0x00003b07u, 0x00003b09u, + 0x000500c4u, 0x00000006u, 0x00003b0du, 0x00003b05u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003b0fu, + 0x00003b05u, 0x00003b0du, 0x00040071u, 0x00000011u, 0x00003b11u, 0x00003b0fu, 0x0004007cu, 0x00000012u, + 0x00003b12u, 0x00003b11u, 0x00040071u, 0x00000011u, 0x00003b1au, 0x00003b0bu, 0x0004007cu, 0x00000012u, + 0x00003b1bu, 0x00003b1au, 0x00070050u, 0x00000013u, 0x00003b1cu, 0x00003b12u, 0x00003b12u, 0x00003b12u, + 0x00003b1bu, 0x00050050u, 0x00000058u, 0x00002a2fu, 0x00006b57u, 0x000027f3u, 0x0004007cu, 0x000000abu, + 0x00002a30u, 0x00002a2fu, 0x00050051u, 0x00000006u, 0x00003b29u, 0x00002a30u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003b2au, 0x00002637u, 0x00003b29u, 0x00050080u, 0x00000006u, 0x00003b2bu, 0x00002635u, + 0x00003b2au, 0x00050051u, 0x00000006u, 0x00003b2du, 0x00002a30u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003b2fu, 0x00003b2bu, 0x00003b2du, 0x000500c7u, 0x00000006u, 0x00003b31u, 0x00003b2fu, 0x0000068cu, + 0x000500c7u, 0x00000006u, 0x00003b35u, 0x00003b29u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003b36u, + 0x00003b35u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003b38u, 0x00003b31u, 0x00003b36u, 0x000500c6u, + 0x00000006u, 0x00003b3au, 0x00003b38u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003b3du, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003b3au, 0x0004003du, 0x0000000fu, 0x00003b3eu, 0x00003b3du, + 0x00040071u, 0x00000006u, 0x00003b3fu, 0x00003b3eu, 0x000500c2u, 0x00000006u, 0x00003b41u, 0x00003b3fu, + 0x000001b1u, 0x000500c7u, 0x00000006u, 0x00003b43u, 0x00003b3fu, 0x000006b1u, 0x000500c4u, 0x00000006u, + 0x00003b45u, 0x00003b43u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003b47u, 0x00003b43u, 0x00003b45u, + 0x000500c4u, 0x00000006u, 0x00003b49u, 0x00003b41u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003b4bu, + 0x00003b41u, 0x00003b49u, 0x00040071u, 0x00000011u, 0x00003b4du, 0x00003b4bu, 0x0004007cu, 0x00000012u, + 0x00003b4eu, 0x00003b4du, 0x00040071u, 0x00000011u, 0x00003b56u, 0x00003b47u, 0x0004007cu, 0x00000012u, + 0x00003b57u, 0x00003b56u, 0x00070050u, 0x00000013u, 0x00003b58u, 0x00003b4eu, 0x00003b4eu, 0x00003b4eu, + 0x00003b57u, 0x000200f9u, 0x00002a34u, 0x000200f8u, 0x00002a34u, 0x000700f5u, 0x00000013u, 0x00006dadu, + 0x00006bf1u, 0x00002a1eu, 0x00003b58u, 0x00002a25u, 0x000700f5u, 0x00000013u, 0x00006d32u, 0x00006bf1u, + 0x00002a1eu, 0x00003b1cu, 0x00002a25u, 0x000300f7u, 0x00002a3eu, 0x00000000u, 0x000400fau, 0x000027fdu, + 0x00002a36u, 0x00002a3eu, 0x000200f8u, 0x00002a36u, 0x00050050u, 0x00000058u, 0x00002a39u, 0x00006b5fu, + 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002a3au, 0x00002a39u, 0x00050051u, 0x00000006u, 0x00003b65u, + 0x00002a3au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003b66u, 0x00002637u, 0x00003b65u, 0x00050080u, + 0x00000006u, 0x00003b67u, 0x00002635u, 0x00003b66u, 0x00050051u, 0x00000006u, 0x00003b69u, 0x00002a3au, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00003b6bu, 0x00003b67u, 0x00003b69u, 0x000500c7u, 0x00000006u, + 0x00003b6du, 0x00003b6bu, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x00003b71u, 0x00003b65u, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00003b72u, 0x00003b71u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003b74u, + 0x00003b6du, 0x00003b72u, 0x000500c6u, 0x00000006u, 0x00003b76u, 0x00003b74u, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x00003b79u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003b76u, 0x0004003du, + 0x0000000fu, 0x00003b7au, 0x00003b79u, 0x00040071u, 0x00000006u, 0x00003b7bu, 0x00003b7au, 0x000500c2u, + 0x00000006u, 0x00003b7du, 0x00003b7bu, 0x000001b1u, 0x000500c7u, 0x00000006u, 0x00003b7fu, 0x00003b7bu, + 0x000006b1u, 0x000500c4u, 0x00000006u, 0x00003b81u, 0x00003b7fu, 0x000001b1u, 0x000500c5u, 0x00000006u, + 0x00003b83u, 0x00003b7fu, 0x00003b81u, 0x000500c4u, 0x00000006u, 0x00003b85u, 0x00003b7du, 0x000001b1u, + 0x000500c5u, 0x00000006u, 0x00003b87u, 0x00003b7du, 0x00003b85u, 0x00040071u, 0x00000011u, 0x00003b89u, + 0x00003b87u, 0x0004007cu, 0x00000012u, 0x00003b8au, 0x00003b89u, 0x00040071u, 0x00000011u, 0x00003b92u, + 0x00003b83u, 0x0004007cu, 0x00000012u, 0x00003b93u, 0x00003b92u, 0x00070050u, 0x00000013u, 0x00003b94u, + 0x00003b8au, 0x00003b8au, 0x00003b8au, 0x00003b93u, 0x000200f9u, 0x00002a3eu, 0x000200f8u, 0x00002a3eu, + 0x000700f5u, 0x00000013u, 0x00006e27u, 0x00006bf1u, 0x00002a34u, 0x00003b94u, 0x00002a36u, 0x000200f9u, + 0x00002a81u, 0x000200f8u, 0x000029fdu, 0x0004007cu, 0x000000abu, 0x000029ffu, 0x00006b7eu, 0x00050051u, + 0x00000006u, 0x00003999u, 0x000029ffu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000399au, 0x00002637u, + 0x00003999u, 0x00050080u, 0x00000006u, 0x0000399bu, 0x00002635u, 0x0000399au, 0x00050051u, 0x00000006u, + 0x0000399du, 0x000029ffu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000399eu, 0x0000399du, 0x000001a8u, + 0x00050080u, 0x00000006u, 0x000039a0u, 0x0000399bu, 0x0000399eu, 0x000500c7u, 0x00000006u, 0x000039a2u, + 0x000039a0u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x000039a5u, 0x0000399du, 0x000500c7u, 0x00000006u, + 0x000039a6u, 0x000039a5u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x000039a7u, 0x000039a6u, 0x00000694u, + 0x000500c7u, 0x00000006u, 0x000039abu, 0x00003999u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000039acu, + 0x000039abu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000039aeu, 0x000039a2u, 0x000039acu, 0x000500c6u, + 0x00000006u, 0x000039b0u, 0x000039aeu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x000039b3u, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000039b0u, 0x0004003du, 0x0000000fu, 0x000039b4u, 0x000039b3u, + 0x00040071u, 0x00000006u, 0x000039b5u, 0x000039b4u, 0x000500c2u, 0x00000006u, 0x000039b8u, 0x000039b5u, + 0x000039a7u, 0x000500c7u, 0x00000006u, 0x000039b9u, 0x000039b8u, 0x000006b1u, 0x000500c7u, 0x00000006u, + 0x000039bbu, 0x000039b9u, 0x000006e9u, 0x000500c4u, 0x00000006u, 0x000039bdu, 0x000039bbu, 0x000001b1u, + 0x000500c4u, 0x00000006u, 0x000039bfu, 0x000039bbu, 0x000001a8u, 0x000500c5u, 0x00000006u, 0x000039c0u, + 0x000039bdu, 0x000039bfu, 0x000500c2u, 0x00000006u, 0x000039c2u, 0x000039bbu, 0x000001abu, 0x000500c5u, + 0x00000006u, 0x000039c3u, 0x000039c0u, 0x000039c2u, 0x00040071u, 0x00000011u, 0x000039c5u, 0x000039c3u, + 0x0004007cu, 0x00000012u, 0x000039c6u, 0x000039c5u, 0x000500c7u, 0x00000006u, 0x000039ceu, 0x000039b9u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x000039cfu, 0x000039ceu, 0x00000659u, 0x00040071u, 0x00000011u, + 0x000039d0u, 0x000039cfu, 0x0004007cu, 0x00000012u, 0x000039d1u, 0x000039d0u, 0x00070050u, 0x00000013u, + 0x000039d2u, 0x000039c6u, 0x000039c6u, 0x000039c6u, 0x000039d1u, 0x000300f7u, 0x00002a13u, 0x00000000u, + 0x000400fau, 0x00001b2cu, 0x00002a04u, 0x00002a13u, 0x000200f8u, 0x00002a04u, 0x00050050u, 0x00000058u, + 0x00002a07u, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, 0x00002a08u, 0x00002a07u, 0x00050051u, + 0x00000006u, 0x000039dfu, 0x00002a08u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000039e0u, 0x00002637u, + 0x000039dfu, 0x00050080u, 0x00000006u, 0x000039e1u, 0x00002635u, 0x000039e0u, 0x00050051u, 0x00000006u, + 0x000039e3u, 0x00002a08u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000039e4u, 0x000039e3u, 0x000001a8u, + 0x00050080u, 0x00000006u, 0x000039e6u, 0x000039e1u, 0x000039e4u, 0x000500c7u, 0x00000006u, 0x000039e8u, + 0x000039e6u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x000039ebu, 0x000039e3u, 0x000500c7u, 0x00000006u, + 0x000039ecu, 0x000039ebu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x000039edu, 0x000039ecu, 0x00000694u, + 0x000500c7u, 0x00000006u, 0x000039f1u, 0x000039dfu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000039f2u, + 0x000039f1u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000039f4u, 0x000039e8u, 0x000039f2u, 0x000500c6u, + 0x00000006u, 0x000039f6u, 0x000039f4u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x000039f9u, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000039f6u, 0x0004003du, 0x0000000fu, 0x000039fau, 0x000039f9u, + 0x00040071u, 0x00000006u, 0x000039fbu, 0x000039fau, 0x000500c2u, 0x00000006u, 0x000039feu, 0x000039fbu, + 0x000039edu, 0x000500c7u, 0x00000006u, 0x000039ffu, 0x000039feu, 0x000006b1u, 0x000500c7u, 0x00000006u, + 0x00003a01u, 0x000039ffu, 0x000006e9u, 0x000500c4u, 0x00000006u, 0x00003a03u, 0x00003a01u, 0x000001b1u, + 0x000500c4u, 0x00000006u, 0x00003a05u, 0x00003a01u, 0x000001a8u, 0x000500c5u, 0x00000006u, 0x00003a06u, + 0x00003a03u, 0x00003a05u, 0x000500c2u, 0x00000006u, 0x00003a08u, 0x00003a01u, 0x000001abu, 0x000500c5u, + 0x00000006u, 0x00003a09u, 0x00003a06u, 0x00003a08u, 0x00040071u, 0x00000011u, 0x00003a0bu, 0x00003a09u, + 0x0004007cu, 0x00000012u, 0x00003a0cu, 0x00003a0bu, 0x000500c7u, 0x00000006u, 0x00003a14u, 0x000039ffu, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003a15u, 0x00003a14u, 0x00000659u, 0x00040071u, 0x00000011u, + 0x00003a16u, 0x00003a15u, 0x0004007cu, 0x00000012u, 0x00003a17u, 0x00003a16u, 0x00070050u, 0x00000013u, + 0x00003a18u, 0x00003a0cu, 0x00003a0cu, 0x00003a0cu, 0x00003a17u, 0x00050050u, 0x00000058u, 0x00002a0eu, + 0x00006b57u, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002a0fu, 0x00002a0eu, 0x00050051u, 0x00000006u, + 0x00003a25u, 0x00002a0fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003a26u, 0x00002637u, 0x00003a25u, + 0x00050080u, 0x00000006u, 0x00003a27u, 0x00002635u, 0x00003a26u, 0x00050051u, 0x00000006u, 0x00003a29u, + 0x00002a0fu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003a2au, 0x00003a29u, 0x000001a8u, 0x00050080u, + 0x00000006u, 0x00003a2cu, 0x00003a27u, 0x00003a2au, 0x000500c7u, 0x00000006u, 0x00003a2eu, 0x00003a2cu, + 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00003a31u, 0x00003a29u, 0x000500c7u, 0x00000006u, 0x00003a32u, + 0x00003a31u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003a33u, 0x00003a32u, 0x00000694u, 0x000500c7u, + 0x00000006u, 0x00003a37u, 0x00003a25u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003a38u, 0x00003a37u, + 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003a3au, 0x00003a2eu, 0x00003a38u, 0x000500c6u, 0x00000006u, + 0x00003a3cu, 0x00003a3au, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003a3fu, 0x000006a7u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00003a3cu, 0x0004003du, 0x0000000fu, 0x00003a40u, 0x00003a3fu, 0x00040071u, + 0x00000006u, 0x00003a41u, 0x00003a40u, 0x000500c2u, 0x00000006u, 0x00003a44u, 0x00003a41u, 0x00003a33u, + 0x000500c7u, 0x00000006u, 0x00003a45u, 0x00003a44u, 0x000006b1u, 0x000500c7u, 0x00000006u, 0x00003a47u, + 0x00003a45u, 0x000006e9u, 0x000500c4u, 0x00000006u, 0x00003a49u, 0x00003a47u, 0x000001b1u, 0x000500c4u, + 0x00000006u, 0x00003a4bu, 0x00003a47u, 0x000001a8u, 0x000500c5u, 0x00000006u, 0x00003a4cu, 0x00003a49u, + 0x00003a4bu, 0x000500c2u, 0x00000006u, 0x00003a4eu, 0x00003a47u, 0x000001abu, 0x000500c5u, 0x00000006u, + 0x00003a4fu, 0x00003a4cu, 0x00003a4eu, 0x00040071u, 0x00000011u, 0x00003a51u, 0x00003a4fu, 0x0004007cu, + 0x00000012u, 0x00003a52u, 0x00003a51u, 0x000500c7u, 0x00000006u, 0x00003a5au, 0x00003a45u, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x00003a5bu, 0x00003a5au, 0x00000659u, 0x00040071u, 0x00000011u, 0x00003a5cu, + 0x00003a5bu, 0x0004007cu, 0x00000012u, 0x00003a5du, 0x00003a5cu, 0x00070050u, 0x00000013u, 0x00003a5eu, + 0x00003a52u, 0x00003a52u, 0x00003a52u, 0x00003a5du, 0x000200f9u, 0x00002a13u, 0x000200f8u, 0x00002a13u, + 0x000700f5u, 0x00000013u, 0x00006dabu, 0x00006bf1u, 0x000029fdu, 0x00003a5eu, 0x00002a04u, 0x000700f5u, + 0x00000013u, 0x00006d30u, 0x00006bf1u, 0x000029fdu, 0x00003a18u, 0x00002a04u, 0x000300f7u, 0x00002a1du, + 0x00000000u, 0x000400fau, 0x000027fdu, 0x00002a15u, 0x00002a1du, 0x000200f8u, 0x00002a15u, 0x00050050u, + 0x00000058u, 0x00002a18u, 0x00006b5fu, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002a19u, 0x00002a18u, + 0x00050051u, 0x00000006u, 0x00003a6bu, 0x00002a19u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003a6cu, + 0x00002637u, 0x00003a6bu, 0x00050080u, 0x00000006u, 0x00003a6du, 0x00002635u, 0x00003a6cu, 0x00050051u, + 0x00000006u, 0x00003a6fu, 0x00002a19u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003a70u, 0x00003a6fu, + 0x000001a8u, 0x00050080u, 0x00000006u, 0x00003a72u, 0x00003a6du, 0x00003a70u, 0x000500c7u, 0x00000006u, + 0x00003a74u, 0x00003a72u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00003a77u, 0x00003a6fu, 0x000500c7u, + 0x00000006u, 0x00003a78u, 0x00003a77u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003a79u, 0x00003a78u, + 0x00000694u, 0x000500c7u, 0x00000006u, 0x00003a7du, 0x00003a6bu, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x00003a7eu, 0x00003a7du, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003a80u, 0x00003a74u, 0x00003a7eu, + 0x000500c6u, 0x00000006u, 0x00003a82u, 0x00003a80u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003a85u, + 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003a82u, 0x0004003du, 0x0000000fu, 0x00003a86u, + 0x00003a85u, 0x00040071u, 0x00000006u, 0x00003a87u, 0x00003a86u, 0x000500c2u, 0x00000006u, 0x00003a8au, + 0x00003a87u, 0x00003a79u, 0x000500c7u, 0x00000006u, 0x00003a8bu, 0x00003a8au, 0x000006b1u, 0x000500c7u, + 0x00000006u, 0x00003a8du, 0x00003a8bu, 0x000006e9u, 0x000500c4u, 0x00000006u, 0x00003a8fu, 0x00003a8du, + 0x000001b1u, 0x000500c4u, 0x00000006u, 0x00003a91u, 0x00003a8du, 0x000001a8u, 0x000500c5u, 0x00000006u, + 0x00003a92u, 0x00003a8fu, 0x00003a91u, 0x000500c2u, 0x00000006u, 0x00003a94u, 0x00003a8du, 0x000001abu, + 0x000500c5u, 0x00000006u, 0x00003a95u, 0x00003a92u, 0x00003a94u, 0x00040071u, 0x00000011u, 0x00003a97u, + 0x00003a95u, 0x0004007cu, 0x00000012u, 0x00003a98u, 0x00003a97u, 0x000500c7u, 0x00000006u, 0x00003aa0u, + 0x00003a8bu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003aa1u, 0x00003aa0u, 0x00000659u, 0x00040071u, + 0x00000011u, 0x00003aa2u, 0x00003aa1u, 0x0004007cu, 0x00000012u, 0x00003aa3u, 0x00003aa2u, 0x00070050u, + 0x00000013u, 0x00003aa4u, 0x00003a98u, 0x00003a98u, 0x00003a98u, 0x00003aa3u, 0x000200f9u, 0x00002a1du, + 0x000200f8u, 0x00002a1du, 0x000700f5u, 0x00000013u, 0x00006e25u, 0x00006bf1u, 0x00002a13u, 0x00003aa4u, + 0x00002a15u, 0x000200f9u, 0x00002a81u, 0x000200f8u, 0x00002a81u, 0x000d00f5u, 0x00000013u, 0x00006e24u, + 0x00006bf1u, 0x000029f8u, 0x00006e25u, 0x00002a1du, 0x00006e27u, 0x00002a3eu, 0x00006e29u, 0x00002a5fu, + 0x00006e2bu, 0x00002a80u, 0x000d00f5u, 0x00000013u, 0x00006da9u, 0x00006bf1u, 0x000029f8u, 0x00006dabu, + 0x00002a1du, 0x00006dadu, 0x00002a3eu, 0x00006dafu, 0x00002a5fu, 0x00006db1u, 0x00002a80u, 0x000d00f5u, + 0x00000013u, 0x00006d2eu, 0x00006bf1u, 0x000029f8u, 0x00006d30u, 0x00002a1du, 0x00006d32u, 0x00002a3eu, + 0x00006d34u, 0x00002a5fu, 0x00006d36u, 0x00002a80u, 0x000d00f5u, 0x00000013u, 0x00006c3eu, 0x00006bf1u, + 0x000029f8u, 0x000039d2u, 0x00002a1du, 0x00003ae0u, 0x00002a3eu, 0x00003bcfu, 0x00002a5fu, 0x00003cadu, + 0x00002a80u, 0x000200f9u, 0x00002aebu, 0x000200f8u, 0x00002983u, 0x00040071u, 0x00000006u, 0x00002986u, + 0x000089abu, 0x0004007cu, 0x00000008u, 0x00002987u, 0x00002986u, 0x000300f7u, 0x000029f7u, 0x00000000u, + 0x000700fbu, 0x00002987u, 0x00002988u, 0x00000000u, 0x000029a9u, 0x00000001u, 0x000029d6u, 0x000200f8u, + 0x000029d6u, 0x0004007cu, 0x000000abu, 0x000029d8u, 0x00006b7eu, 0x00050051u, 0x00000006u, 0x00003903u, + 0x000029d8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003904u, 0x00002637u, 0x00003903u, 0x00050080u, + 0x00000006u, 0x00003905u, 0x00002635u, 0x00003904u, 0x00050051u, 0x00000006u, 0x00003907u, 0x000029d8u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00003909u, 0x00003905u, 0x00003907u, 0x000500c7u, 0x00000006u, + 0x0000390bu, 0x00003909u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x0000390fu, 0x00003903u, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00003910u, 0x0000390fu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003912u, + 0x0000390bu, 0x00003910u, 0x000500c6u, 0x00000006u, 0x00003914u, 0x00003912u, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x00003917u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003914u, 0x0004003du, + 0x0000000fu, 0x00003918u, 0x00003917u, 0x00040071u, 0x00000006u, 0x00003919u, 0x00003918u, 0x00040071u, + 0x00000011u, 0x0000391bu, 0x00003919u, 0x0004007cu, 0x00000012u, 0x0000391cu, 0x0000391bu, 0x00070050u, + 0x00000013u, 0x0000391du, 0x0000391cu, 0x0000391cu, 0x0000391cu, 0x0000391cu, 0x000300f7u, 0x000029ecu, + 0x00000000u, 0x000400fau, 0x00001b2cu, 0x000029ddu, 0x000029ecu, 0x000200f8u, 0x000029ddu, 0x00050050u, + 0x00000058u, 0x000029e0u, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, 0x000029e1u, 0x000029e0u, + 0x00050051u, 0x00000006u, 0x00003928u, 0x000029e1u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003929u, + 0x00002637u, 0x00003928u, 0x00050080u, 0x00000006u, 0x0000392au, 0x00002635u, 0x00003929u, 0x00050051u, + 0x00000006u, 0x0000392cu, 0x000029e1u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000392eu, 0x0000392au, + 0x0000392cu, 0x000500c7u, 0x00000006u, 0x00003930u, 0x0000392eu, 0x0000068cu, 0x000500c7u, 0x00000006u, + 0x00003934u, 0x00003928u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003935u, 0x00003934u, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x00003937u, 0x00003930u, 0x00003935u, 0x000500c6u, 0x00000006u, 0x00003939u, + 0x00003937u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x0000393cu, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00003939u, 0x0004003du, 0x0000000fu, 0x0000393du, 0x0000393cu, 0x00040071u, 0x00000006u, + 0x0000393eu, 0x0000393du, 0x00040071u, 0x00000011u, 0x00003940u, 0x0000393eu, 0x0004007cu, 0x00000012u, + 0x00003941u, 0x00003940u, 0x00070050u, 0x00000013u, 0x00003942u, 0x00003941u, 0x00003941u, 0x00003941u, + 0x00003941u, 0x00050050u, 0x00000058u, 0x000029e7u, 0x00006b57u, 0x000027f3u, 0x0004007cu, 0x000000abu, + 0x000029e8u, 0x000029e7u, 0x00050051u, 0x00000006u, 0x0000394du, 0x000029e8u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000394eu, 0x00002637u, 0x0000394du, 0x00050080u, 0x00000006u, 0x0000394fu, 0x00002635u, + 0x0000394eu, 0x00050051u, 0x00000006u, 0x00003951u, 0x000029e8u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00003953u, 0x0000394fu, 0x00003951u, 0x000500c7u, 0x00000006u, 0x00003955u, 0x00003953u, 0x0000068cu, + 0x000500c7u, 0x00000006u, 0x00003959u, 0x0000394du, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000395au, + 0x00003959u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000395cu, 0x00003955u, 0x0000395au, 0x000500c6u, + 0x00000006u, 0x0000395eu, 0x0000395cu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003961u, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000395eu, 0x0004003du, 0x0000000fu, 0x00003962u, 0x00003961u, + 0x00040071u, 0x00000006u, 0x00003963u, 0x00003962u, 0x00040071u, 0x00000011u, 0x00003965u, 0x00003963u, + 0x0004007cu, 0x00000012u, 0x00003966u, 0x00003965u, 0x00070050u, 0x00000013u, 0x00003967u, 0x00003966u, + 0x00003966u, 0x00003966u, 0x00003966u, 0x000200f9u, 0x000029ecu, 0x000200f8u, 0x000029ecu, 0x000700f5u, + 0x00000013u, 0x00006da8u, 0x00006bf1u, 0x000029d6u, 0x00003967u, 0x000029ddu, 0x000700f5u, 0x00000013u, + 0x00006d2du, 0x00006bf1u, 0x000029d6u, 0x00003942u, 0x000029ddu, 0x000300f7u, 0x000029f6u, 0x00000000u, + 0x000400fau, 0x000027fdu, 0x000029eeu, 0x000029f6u, 0x000200f8u, 0x000029eeu, 0x00050050u, 0x00000058u, + 0x000029f1u, 0x00006b5fu, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x000029f2u, 0x000029f1u, 0x00050051u, + 0x00000006u, 0x00003972u, 0x000029f2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003973u, 0x00002637u, + 0x00003972u, 0x00050080u, 0x00000006u, 0x00003974u, 0x00002635u, 0x00003973u, 0x00050051u, 0x00000006u, + 0x00003976u, 0x000029f2u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003978u, 0x00003974u, 0x00003976u, + 0x000500c7u, 0x00000006u, 0x0000397au, 0x00003978u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x0000397eu, + 0x00003972u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000397fu, 0x0000397eu, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00003981u, 0x0000397au, 0x0000397fu, 0x000500c6u, 0x00000006u, 0x00003983u, 0x00003981u, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003986u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00003983u, 0x0004003du, 0x0000000fu, 0x00003987u, 0x00003986u, 0x00040071u, 0x00000006u, 0x00003988u, + 0x00003987u, 0x00040071u, 0x00000011u, 0x0000398au, 0x00003988u, 0x0004007cu, 0x00000012u, 0x0000398bu, + 0x0000398au, 0x00070050u, 0x00000013u, 0x0000398cu, 0x0000398bu, 0x0000398bu, 0x0000398bu, 0x0000398bu, + 0x000200f9u, 0x000029f6u, 0x000200f8u, 0x000029f6u, 0x000700f5u, 0x00000013u, 0x00006e22u, 0x00006bf1u, + 0x000029ecu, 0x0000398cu, 0x000029eeu, 0x000200f9u, 0x000029f7u, 0x000200f8u, 0x000029a9u, 0x0004007cu, + 0x000000abu, 0x000029abu, 0x00006b7eu, 0x00040071u, 0x00000006u, 0x000029aeu, 0x0000263du, 0x00050051u, + 0x00000006u, 0x00003834u, 0x000029abu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003835u, 0x00002637u, + 0x00003834u, 0x00050080u, 0x00000006u, 0x00003836u, 0x00002635u, 0x00003835u, 0x00050051u, 0x00000006u, + 0x00003838u, 0x000029abu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003839u, 0x00003838u, 0x000001a8u, + 0x00050080u, 0x00000006u, 0x0000383bu, 0x00003836u, 0x00003839u, 0x000500c7u, 0x00000006u, 0x0000383du, + 0x0000383bu, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00003840u, 0x00003838u, 0x000500c7u, 0x00000006u, + 0x00003841u, 0x00003840u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003842u, 0x00003841u, 0x00000694u, + 0x000500c7u, 0x00000006u, 0x00003846u, 0x00003834u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003847u, + 0x00003846u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003849u, 0x0000383du, 0x00003847u, 0x000500c6u, + 0x00000006u, 0x0000384bu, 0x00003849u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x0000384eu, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000384bu, 0x0004003du, 0x0000000fu, 0x0000384fu, 0x0000384eu, + 0x00040071u, 0x00000006u, 0x00003850u, 0x0000384fu, 0x000500c2u, 0x00000006u, 0x00003853u, 0x00003850u, + 0x00003842u, 0x000500c7u, 0x00000006u, 0x00003854u, 0x00003853u, 0x000006b1u, 0x000500c4u, 0x00000006u, + 0x00003856u, 0x000029aeu, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003858u, 0x00003854u, 0x00003856u, + 0x00040071u, 0x00000011u, 0x0000385au, 0x00003858u, 0x0004007cu, 0x00000012u, 0x0000385bu, 0x0000385au, + 0x00070050u, 0x00000013u, 0x0000385cu, 0x0000385bu, 0x0000385bu, 0x0000385bu, 0x0000385bu, 0x000300f7u, + 0x000029c8u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x000029b3u, 0x000029c8u, 0x000200f8u, 0x000029b3u, + 0x00050050u, 0x00000058u, 0x000029b6u, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, 0x000029b7u, + 0x000029b6u, 0x00050051u, 0x00000006u, 0x00003868u, 0x000029b7u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003869u, 0x00002637u, 0x00003868u, 0x00050080u, 0x00000006u, 0x0000386au, 0x00002635u, 0x00003869u, + 0x00050051u, 0x00000006u, 0x0000386cu, 0x000029b7u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000386du, + 0x0000386cu, 0x000001a8u, 0x00050080u, 0x00000006u, 0x0000386fu, 0x0000386au, 0x0000386du, 0x000500c7u, + 0x00000006u, 0x00003871u, 0x0000386fu, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00003874u, 0x0000386cu, + 0x000500c7u, 0x00000006u, 0x00003875u, 0x00003874u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003876u, + 0x00003875u, 0x00000694u, 0x000500c7u, 0x00000006u, 0x0000387au, 0x00003868u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x0000387bu, 0x0000387au, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000387du, 0x00003871u, + 0x0000387bu, 0x000500c6u, 0x00000006u, 0x0000387fu, 0x0000387du, 0x000002fdu, 0x00080041u, 0x000006aau, + 0x00003882u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000387fu, 0x0004003du, 0x0000000fu, + 0x00003883u, 0x00003882u, 0x00040071u, 0x00000006u, 0x00003884u, 0x00003883u, 0x000500c2u, 0x00000006u, + 0x00003887u, 0x00003884u, 0x00003876u, 0x000500c7u, 0x00000006u, 0x00003888u, 0x00003887u, 0x000006b1u, + 0x000500c5u, 0x00000006u, 0x0000388cu, 0x00003888u, 0x00003856u, 0x00040071u, 0x00000011u, 0x0000388eu, + 0x0000388cu, 0x0004007cu, 0x00000012u, 0x0000388fu, 0x0000388eu, 0x00070050u, 0x00000013u, 0x00003890u, + 0x0000388fu, 0x0000388fu, 0x0000388fu, 0x0000388fu, 0x00050050u, 0x00000058u, 0x000029c0u, 0x00006b57u, + 0x000027f3u, 0x0004007cu, 0x000000abu, 0x000029c1u, 0x000029c0u, 0x00050051u, 0x00000006u, 0x0000389cu, + 0x000029c1u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000389du, 0x00002637u, 0x0000389cu, 0x00050080u, + 0x00000006u, 0x0000389eu, 0x00002635u, 0x0000389du, 0x00050051u, 0x00000006u, 0x000038a0u, 0x000029c1u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x000038a1u, 0x000038a0u, 0x000001a8u, 0x00050080u, 0x00000006u, + 0x000038a3u, 0x0000389eu, 0x000038a1u, 0x000500c7u, 0x00000006u, 0x000038a5u, 0x000038a3u, 0x0000068cu, + 0x000400c8u, 0x00000006u, 0x000038a8u, 0x000038a0u, 0x000500c7u, 0x00000006u, 0x000038a9u, 0x000038a8u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x000038aau, 0x000038a9u, 0x00000694u, 0x000500c7u, 0x00000006u, + 0x000038aeu, 0x0000389cu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000038afu, 0x000038aeu, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x000038b1u, 0x000038a5u, 0x000038afu, 0x000500c6u, 0x00000006u, 0x000038b3u, + 0x000038b1u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x000038b6u, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x000038b3u, 0x0004003du, 0x0000000fu, 0x000038b7u, 0x000038b6u, 0x00040071u, 0x00000006u, + 0x000038b8u, 0x000038b7u, 0x000500c2u, 0x00000006u, 0x000038bbu, 0x000038b8u, 0x000038aau, 0x000500c7u, + 0x00000006u, 0x000038bcu, 0x000038bbu, 0x000006b1u, 0x000500c5u, 0x00000006u, 0x000038c0u, 0x000038bcu, + 0x00003856u, 0x00040071u, 0x00000011u, 0x000038c2u, 0x000038c0u, 0x0004007cu, 0x00000012u, 0x000038c3u, + 0x000038c2u, 0x00070050u, 0x00000013u, 0x000038c4u, 0x000038c3u, 0x000038c3u, 0x000038c3u, 0x000038c3u, + 0x000200f9u, 0x000029c8u, 0x000200f8u, 0x000029c8u, 0x000700f5u, 0x00000013u, 0x00006da6u, 0x00006bf1u, + 0x000029a9u, 0x000038c4u, 0x000029b3u, 0x000700f5u, 0x00000013u, 0x00006d2bu, 0x00006bf1u, 0x000029a9u, + 0x00003890u, 0x000029b3u, 0x000300f7u, 0x000029d5u, 0x00000000u, 0x000400fau, 0x000027fdu, 0x000029cau, + 0x000029d5u, 0x000200f8u, 0x000029cau, 0x00050050u, 0x00000058u, 0x000029cdu, 0x00006b5fu, 0x000027f3u, + 0x0004007cu, 0x000000abu, 0x000029ceu, 0x000029cdu, 0x00050051u, 0x00000006u, 0x000038d0u, 0x000029ceu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000038d1u, 0x00002637u, 0x000038d0u, 0x00050080u, 0x00000006u, + 0x000038d2u, 0x00002635u, 0x000038d1u, 0x00050051u, 0x00000006u, 0x000038d4u, 0x000029ceu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000038d5u, 0x000038d4u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x000038d7u, + 0x000038d2u, 0x000038d5u, 0x000500c7u, 0x00000006u, 0x000038d9u, 0x000038d7u, 0x0000068cu, 0x000400c8u, + 0x00000006u, 0x000038dcu, 0x000038d4u, 0x000500c7u, 0x00000006u, 0x000038ddu, 0x000038dcu, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x000038deu, 0x000038ddu, 0x00000694u, 0x000500c7u, 0x00000006u, 0x000038e2u, + 0x000038d0u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000038e3u, 0x000038e2u, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x000038e5u, 0x000038d9u, 0x000038e3u, 0x000500c6u, 0x00000006u, 0x000038e7u, 0x000038e5u, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x000038eau, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x000038e7u, 0x0004003du, 0x0000000fu, 0x000038ebu, 0x000038eau, 0x00040071u, 0x00000006u, 0x000038ecu, + 0x000038ebu, 0x000500c2u, 0x00000006u, 0x000038efu, 0x000038ecu, 0x000038deu, 0x000500c7u, 0x00000006u, + 0x000038f0u, 0x000038efu, 0x000006b1u, 0x000500c5u, 0x00000006u, 0x000038f4u, 0x000038f0u, 0x00003856u, + 0x00040071u, 0x00000011u, 0x000038f6u, 0x000038f4u, 0x0004007cu, 0x00000012u, 0x000038f7u, 0x000038f6u, + 0x00070050u, 0x00000013u, 0x000038f8u, 0x000038f7u, 0x000038f7u, 0x000038f7u, 0x000038f7u, 0x000200f9u, + 0x000029d5u, 0x000200f8u, 0x000029d5u, 0x000700f5u, 0x00000013u, 0x00006e20u, 0x00006bf1u, 0x000029c8u, + 0x000038f8u, 0x000029cau, 0x000200f9u, 0x000029f7u, 0x000200f8u, 0x00002988u, 0x0004007cu, 0x000000abu, + 0x0000298au, 0x00006b7eu, 0x00050051u, 0x00000006u, 0x0000377fu, 0x0000298au, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003780u, 0x00002637u, 0x0000377fu, 0x00050080u, 0x00000006u, 0x00003781u, 0x00002635u, + 0x00003780u, 0x00050051u, 0x00000006u, 0x00003783u, 0x0000298au, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00003784u, 0x00003783u, 0x000002fau, 0x00050080u, 0x00000006u, 0x00003786u, 0x00003781u, 0x00003784u, + 0x000500c7u, 0x00000006u, 0x00003788u, 0x00003786u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x0000378au, + 0x00003788u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x0000378du, 0x0000377fu, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x0000378eu, 0x0000378du, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003790u, 0x0000378au, + 0x0000378eu, 0x000500c6u, 0x00000006u, 0x00003792u, 0x00003790u, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x00003795u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003792u, 0x0004003du, 0x00000011u, + 0x00003796u, 0x00003795u, 0x00040071u, 0x00000006u, 0x00003797u, 0x00003796u, 0x000500c2u, 0x00000006u, + 0x00003799u, 0x00003797u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x0000379au, 0x00003799u, 0x0004007cu, + 0x00000012u, 0x0000379bu, 0x0000379au, 0x000500c7u, 0x00000006u, 0x0000379du, 0x00003797u, 0x00000659u, + 0x00040071u, 0x00000011u, 0x0000379eu, 0x0000379du, 0x0004007cu, 0x00000012u, 0x0000379fu, 0x0000379eu, + 0x00050050u, 0x0000011du, 0x000037a0u, 0x0000379bu, 0x0000379fu, 0x0009004fu, 0x00000013u, 0x000037a1u, + 0x000037a0u, 0x000037a0u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x0000299eu, + 0x00000000u, 0x000400fau, 0x00001b2cu, 0x0000298fu, 0x0000299eu, 0x000200f8u, 0x0000298fu, 0x00050050u, + 0x00000058u, 0x00002992u, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, 0x00002993u, 0x00002992u, + 0x00050051u, 0x00000006u, 0x000037acu, 0x00002993u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000037adu, + 0x00002637u, 0x000037acu, 0x00050080u, 0x00000006u, 0x000037aeu, 0x00002635u, 0x000037adu, 0x00050051u, + 0x00000006u, 0x000037b0u, 0x00002993u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000037b1u, 0x000037b0u, + 0x000002fau, 0x00050080u, 0x00000006u, 0x000037b3u, 0x000037aeu, 0x000037b1u, 0x000500c7u, 0x00000006u, + 0x000037b5u, 0x000037b3u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x000037b7u, 0x000037b5u, 0x000001a8u, + 0x000500c7u, 0x00000006u, 0x000037bau, 0x000037acu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000037bbu, + 0x000037bau, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x000037bdu, 0x000037b7u, 0x000037bbu, 0x000500c6u, + 0x00000006u, 0x000037bfu, 0x000037bdu, 0x000002f6u, 0x00080041u, 0x0000077au, 0x000037c2u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000037bfu, 0x0004003du, 0x00000011u, 0x000037c3u, 0x000037c2u, + 0x00040071u, 0x00000006u, 0x000037c4u, 0x000037c3u, 0x000500c2u, 0x00000006u, 0x000037c6u, 0x000037c4u, + 0x000001dbu, 0x00040071u, 0x00000011u, 0x000037c7u, 0x000037c6u, 0x0004007cu, 0x00000012u, 0x000037c8u, + 0x000037c7u, 0x000500c7u, 0x00000006u, 0x000037cau, 0x000037c4u, 0x00000659u, 0x00040071u, 0x00000011u, + 0x000037cbu, 0x000037cau, 0x0004007cu, 0x00000012u, 0x000037ccu, 0x000037cbu, 0x00050050u, 0x0000011du, + 0x000037cdu, 0x000037c8u, 0x000037ccu, 0x0009004fu, 0x00000013u, 0x000037ceu, 0x000037cdu, 0x000037cdu, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x00000058u, 0x00002999u, 0x00006b57u, + 0x000027f3u, 0x0004007cu, 0x000000abu, 0x0000299au, 0x00002999u, 0x00050051u, 0x00000006u, 0x000037d9u, + 0x0000299au, 0x00000001u, 0x00050084u, 0x00000006u, 0x000037dau, 0x00002637u, 0x000037d9u, 0x00050080u, + 0x00000006u, 0x000037dbu, 0x00002635u, 0x000037dau, 0x00050051u, 0x00000006u, 0x000037ddu, 0x0000299au, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000037deu, 0x000037ddu, 0x000002fau, 0x00050080u, 0x00000006u, + 0x000037e0u, 0x000037dbu, 0x000037deu, 0x000500c7u, 0x00000006u, 0x000037e2u, 0x000037e0u, 0x0000068cu, + 0x000500c2u, 0x00000006u, 0x000037e4u, 0x000037e2u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x000037e7u, + 0x000037d9u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000037e8u, 0x000037e7u, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x000037eau, 0x000037e4u, 0x000037e8u, 0x000500c6u, 0x00000006u, 0x000037ecu, 0x000037eau, + 0x000002f6u, 0x00080041u, 0x0000077au, 0x000037efu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x000037ecu, 0x0004003du, 0x00000011u, 0x000037f0u, 0x000037efu, 0x00040071u, 0x00000006u, 0x000037f1u, + 0x000037f0u, 0x000500c2u, 0x00000006u, 0x000037f3u, 0x000037f1u, 0x000001dbu, 0x00040071u, 0x00000011u, + 0x000037f4u, 0x000037f3u, 0x0004007cu, 0x00000012u, 0x000037f5u, 0x000037f4u, 0x000500c7u, 0x00000006u, + 0x000037f7u, 0x000037f1u, 0x00000659u, 0x00040071u, 0x00000011u, 0x000037f8u, 0x000037f7u, 0x0004007cu, + 0x00000012u, 0x000037f9u, 0x000037f8u, 0x00050050u, 0x0000011du, 0x000037fau, 0x000037f5u, 0x000037f9u, + 0x0009004fu, 0x00000013u, 0x000037fbu, 0x000037fau, 0x000037fau, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x0000299eu, 0x000200f8u, 0x0000299eu, 0x000700f5u, 0x00000013u, 0x00006da4u, + 0x00006bf1u, 0x00002988u, 0x000037fbu, 0x0000298fu, 0x000700f5u, 0x00000013u, 0x00006d29u, 0x00006bf1u, + 0x00002988u, 0x000037ceu, 0x0000298fu, 0x000300f7u, 0x000029a8u, 0x00000000u, 0x000400fau, 0x000027fdu, + 0x000029a0u, 0x000029a8u, 0x000200f8u, 0x000029a0u, 0x00050050u, 0x00000058u, 0x000029a3u, 0x00006b5fu, + 0x000027f3u, 0x0004007cu, 0x000000abu, 0x000029a4u, 0x000029a3u, 0x00050051u, 0x00000006u, 0x00003806u, + 0x000029a4u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003807u, 0x00002637u, 0x00003806u, 0x00050080u, + 0x00000006u, 0x00003808u, 0x00002635u, 0x00003807u, 0x00050051u, 0x00000006u, 0x0000380au, 0x000029a4u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x0000380bu, 0x0000380au, 0x000002fau, 0x00050080u, 0x00000006u, + 0x0000380du, 0x00003808u, 0x0000380bu, 0x000500c7u, 0x00000006u, 0x0000380fu, 0x0000380du, 0x0000068cu, + 0x000500c2u, 0x00000006u, 0x00003811u, 0x0000380fu, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003814u, + 0x00003806u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003815u, 0x00003814u, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x00003817u, 0x00003811u, 0x00003815u, 0x000500c6u, 0x00000006u, 0x00003819u, 0x00003817u, + 0x000002f6u, 0x00080041u, 0x0000077au, 0x0000381cu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00003819u, 0x0004003du, 0x00000011u, 0x0000381du, 0x0000381cu, 0x00040071u, 0x00000006u, 0x0000381eu, + 0x0000381du, 0x000500c2u, 0x00000006u, 0x00003820u, 0x0000381eu, 0x000001dbu, 0x00040071u, 0x00000011u, + 0x00003821u, 0x00003820u, 0x0004007cu, 0x00000012u, 0x00003822u, 0x00003821u, 0x000500c7u, 0x00000006u, + 0x00003824u, 0x0000381eu, 0x00000659u, 0x00040071u, 0x00000011u, 0x00003825u, 0x00003824u, 0x0004007cu, + 0x00000012u, 0x00003826u, 0x00003825u, 0x00050050u, 0x0000011du, 0x00003827u, 0x00003822u, 0x00003826u, + 0x0009004fu, 0x00000013u, 0x00003828u, 0x00003827u, 0x00003827u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x000029a8u, 0x000200f8u, 0x000029a8u, 0x000700f5u, 0x00000013u, 0x00006e1eu, + 0x00006bf1u, 0x0000299eu, 0x00003828u, 0x000029a0u, 0x000200f9u, 0x000029f7u, 0x000200f8u, 0x000029f7u, + 0x000900f5u, 0x00000013u, 0x00006e1du, 0x00006e1eu, 0x000029a8u, 0x00006e20u, 0x000029d5u, 0x00006e22u, + 0x000029f6u, 0x000900f5u, 0x00000013u, 0x00006da2u, 0x00006da4u, 0x000029a8u, 0x00006da6u, 0x000029d5u, + 0x00006da8u, 0x000029f6u, 0x000900f5u, 0x00000013u, 0x00006d27u, 0x00006d29u, 0x000029a8u, 0x00006d2bu, + 0x000029d5u, 0x00006d2du, 0x000029f6u, 0x000900f5u, 0x00000013u, 0x00006c37u, 0x000037a1u, 0x000029a8u, + 0x0000385cu, 0x000029d5u, 0x0000391du, 0x000029f6u, 0x000200f9u, 0x00002aebu, 0x000200f8u, 0x00002955u, + 0x000500c3u, 0x00000008u, 0x00002957u, 0x00006b57u, 0x000001a8u, 0x0004007cu, 0x00000006u, 0x00002958u, + 0x00002957u, 0x00050082u, 0x00000008u, 0x0000295cu, 0x00006b5fu, 0x00006b57u, 0x00050080u, 0x00000008u, + 0x0000295du, 0x00006b5fu, 0x0000295cu, 0x000500c3u, 0x00000008u, 0x0000295eu, 0x0000295du, 0x000001a8u, + 0x0004007cu, 0x00000006u, 0x0000295fu, 0x0000295eu, 0x00050050u, 0x00000058u, 0x00002962u, 0x00006b57u, + 0x000027f1u, 0x0004007cu, 0x000000abu, 0x00002963u, 0x00002962u, 0x00050051u, 0x00000006u, 0x0000363du, + 0x00002963u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000363eu, 0x00002637u, 0x0000363du, 0x00050080u, + 0x00000006u, 0x0000363fu, 0x00002635u, 0x0000363eu, 0x00050051u, 0x00000006u, 0x00003642u, 0x00002963u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00003643u, 0x0000363fu, 0x00003642u, 0x000500c7u, 0x00000006u, + 0x00003645u, 0x00003643u, 0x00000746u, 0x00050084u, 0x00000006u, 0x00003648u, 0x00002958u, 0x000002fau, + 0x00050080u, 0x00000006u, 0x00003649u, 0x0000363fu, 0x00003648u, 0x000500c7u, 0x00000006u, 0x0000364bu, + 0x00003649u, 0x00000746u, 0x000500c7u, 0x00000006u, 0x0000364fu, 0x0000363du, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00003650u, 0x0000364fu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003652u, 0x00003645u, + 0x00003650u, 0x000500c6u, 0x00000006u, 0x00003654u, 0x00003652u, 0x000002fdu, 0x000500c2u, 0x00000006u, + 0x00003656u, 0x0000364bu, 0x000001a8u, 0x000500c4u, 0x00000006u, 0x0000365au, 0x0000364fu, 0x000001a8u, + 0x000500c6u, 0x00000006u, 0x0000365cu, 0x00003656u, 0x0000365au, 0x000500c6u, 0x00000006u, 0x0000365eu, + 0x0000365cu, 0x000002f6u, 0x000500c5u, 0x00000006u, 0x00003661u, 0x00003654u, 0x0000076fu, 0x00080041u, + 0x000006aau, 0x00003662u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003661u, 0x0004003du, + 0x0000000fu, 0x00003663u, 0x00003662u, 0x00080041u, 0x0000077au, 0x00003666u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x0000365eu, 0x0004003du, 0x00000011u, 0x00003667u, 0x00003666u, 0x000500c2u, + 0x00000011u, 0x00003669u, 0x00003667u, 0x000008cdu, 0x000500c7u, 0x00000011u, 0x0000366au, 0x00003669u, + 0x000002aeu, 0x00040071u, 0x0000000fu, 0x0000366bu, 0x0000366au, 0x000500c2u, 0x00000011u, 0x0000366du, + 0x00003667u, 0x00000198u, 0x000500c7u, 0x00000011u, 0x0000366eu, 0x0000366du, 0x000002aeu, 0x00040071u, + 0x0000000fu, 0x0000366fu, 0x0000366eu, 0x00040071u, 0x00000011u, 0x00003671u, 0x0000366bu, 0x0004007cu, + 0x00000012u, 0x00003672u, 0x00003671u, 0x00050082u, 0x00000012u, 0x00003673u, 0x00003672u, 0x000008d9u, + 0x00040071u, 0x00000011u, 0x00003675u, 0x0000366fu, 0x0004007cu, 0x00000012u, 0x00003676u, 0x00003675u, + 0x00050082u, 0x00000012u, 0x00003677u, 0x00003676u, 0x000008d9u, 0x00040071u, 0x00000011u, 0x00003679u, + 0x00003663u, 0x0004007cu, 0x00000012u, 0x0000367au, 0x00003679u, 0x00070050u, 0x00000013u, 0x0000367eu, + 0x00003673u, 0x00003677u, 0x0000367au, 0x0000367au, 0x000300f7u, 0x00002982u, 0x00000000u, 0x000400fau, + 0x00001b2cu, 0x00002969u, 0x00002982u, 0x000200f8u, 0x00002969u, 0x00050050u, 0x00000058u, 0x0000296cu, + 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, 0x0000296du, 0x0000296cu, 0x00050051u, 0x00000006u, + 0x0000368fu, 0x0000296du, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003690u, 0x00002637u, 0x0000368fu, + 0x00050080u, 0x00000006u, 0x00003691u, 0x00002635u, 0x00003690u, 0x00050051u, 0x00000006u, 0x00003694u, + 0x0000296du, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003695u, 0x00003691u, 0x00003694u, 0x000500c7u, + 0x00000006u, 0x00003697u, 0x00003695u, 0x00000746u, 0x00050084u, 0x00000006u, 0x0000369au, 0x0000295fu, + 0x000002fau, 0x00050080u, 0x00000006u, 0x0000369bu, 0x00003691u, 0x0000369au, 0x000500c7u, 0x00000006u, + 0x0000369du, 0x0000369bu, 0x00000746u, 0x000500c7u, 0x00000006u, 0x000036a1u, 0x0000368fu, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x000036a2u, 0x000036a1u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000036a4u, + 0x00003697u, 0x000036a2u, 0x000500c6u, 0x00000006u, 0x000036a6u, 0x000036a4u, 0x000002fdu, 0x000500c2u, + 0x00000006u, 0x000036a8u, 0x0000369du, 0x000001a8u, 0x000500c4u, 0x00000006u, 0x000036acu, 0x000036a1u, + 0x000001a8u, 0x000500c6u, 0x00000006u, 0x000036aeu, 0x000036a8u, 0x000036acu, 0x000500c6u, 0x00000006u, + 0x000036b0u, 0x000036aeu, 0x000002f6u, 0x000500c5u, 0x00000006u, 0x000036b3u, 0x000036a6u, 0x0000076fu, + 0x00080041u, 0x000006aau, 0x000036b4u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000036b3u, + 0x0004003du, 0x0000000fu, 0x000036b5u, 0x000036b4u, 0x00080041u, 0x0000077au, 0x000036b8u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000036b0u, 0x0004003du, 0x00000011u, 0x000036b9u, 0x000036b8u, + 0x000500c2u, 0x00000011u, 0x000036bbu, 0x000036b9u, 0x000008cdu, 0x000500c7u, 0x00000011u, 0x000036bcu, + 0x000036bbu, 0x000002aeu, 0x00040071u, 0x0000000fu, 0x000036bdu, 0x000036bcu, 0x000500c2u, 0x00000011u, + 0x000036bfu, 0x000036b9u, 0x00000198u, 0x000500c7u, 0x00000011u, 0x000036c0u, 0x000036bfu, 0x000002aeu, + 0x00040071u, 0x0000000fu, 0x000036c1u, 0x000036c0u, 0x00040071u, 0x00000011u, 0x000036c3u, 0x000036bdu, + 0x0004007cu, 0x00000012u, 0x000036c4u, 0x000036c3u, 0x00050082u, 0x00000012u, 0x000036c5u, 0x000036c4u, + 0x000008d9u, 0x00040071u, 0x00000011u, 0x000036c7u, 0x000036c1u, 0x0004007cu, 0x00000012u, 0x000036c8u, + 0x000036c7u, 0x00050082u, 0x00000012u, 0x000036c9u, 0x000036c8u, 0x000008d9u, 0x00040071u, 0x00000011u, + 0x000036cbu, 0x000036b5u, 0x0004007cu, 0x00000012u, 0x000036ccu, 0x000036cbu, 0x00070050u, 0x00000013u, + 0x000036d0u, 0x000036c5u, 0x000036c9u, 0x000036ccu, 0x000036ccu, 0x00050050u, 0x00000058u, 0x00002974u, + 0x00006b57u, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002975u, 0x00002974u, 0x00050051u, 0x00000006u, + 0x000036e1u, 0x00002975u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000036e2u, 0x00002637u, 0x000036e1u, + 0x00050080u, 0x00000006u, 0x000036e3u, 0x00002635u, 0x000036e2u, 0x00050051u, 0x00000006u, 0x000036e6u, + 0x00002975u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000036e7u, 0x000036e3u, 0x000036e6u, 0x000500c7u, + 0x00000006u, 0x000036e9u, 0x000036e7u, 0x00000746u, 0x00050080u, 0x00000006u, 0x000036edu, 0x000036e3u, + 0x00003648u, 0x000500c7u, 0x00000006u, 0x000036efu, 0x000036edu, 0x00000746u, 0x000500c7u, 0x00000006u, + 0x000036f3u, 0x000036e1u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000036f4u, 0x000036f3u, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x000036f6u, 0x000036e9u, 0x000036f4u, 0x000500c6u, 0x00000006u, 0x000036f8u, + 0x000036f6u, 0x000002fdu, 0x000500c2u, 0x00000006u, 0x000036fau, 0x000036efu, 0x000001a8u, 0x000500c4u, + 0x00000006u, 0x000036feu, 0x000036f3u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003700u, 0x000036fau, + 0x000036feu, 0x000500c6u, 0x00000006u, 0x00003702u, 0x00003700u, 0x000002f6u, 0x000500c5u, 0x00000006u, + 0x00003705u, 0x000036f8u, 0x0000076fu, 0x00080041u, 0x000006aau, 0x00003706u, 0x000006a7u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00003705u, 0x0004003du, 0x0000000fu, 0x00003707u, 0x00003706u, 0x00080041u, + 0x0000077au, 0x0000370au, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003702u, 0x0004003du, + 0x00000011u, 0x0000370bu, 0x0000370au, 0x000500c2u, 0x00000011u, 0x0000370du, 0x0000370bu, 0x000008cdu, + 0x000500c7u, 0x00000011u, 0x0000370eu, 0x0000370du, 0x000002aeu, 0x00040071u, 0x0000000fu, 0x0000370fu, + 0x0000370eu, 0x000500c2u, 0x00000011u, 0x00003711u, 0x0000370bu, 0x00000198u, 0x000500c7u, 0x00000011u, + 0x00003712u, 0x00003711u, 0x000002aeu, 0x00040071u, 0x0000000fu, 0x00003713u, 0x00003712u, 0x00040071u, + 0x00000011u, 0x00003715u, 0x0000370fu, 0x0004007cu, 0x00000012u, 0x00003716u, 0x00003715u, 0x00050082u, + 0x00000012u, 0x00003717u, 0x00003716u, 0x000008d9u, 0x00040071u, 0x00000011u, 0x00003719u, 0x00003713u, + 0x0004007cu, 0x00000012u, 0x0000371au, 0x00003719u, 0x00050082u, 0x00000012u, 0x0000371bu, 0x0000371au, + 0x000008d9u, 0x00040071u, 0x00000011u, 0x0000371du, 0x00003707u, 0x0004007cu, 0x00000012u, 0x0000371eu, + 0x0000371du, 0x00070050u, 0x00000013u, 0x00003722u, 0x00003717u, 0x0000371bu, 0x0000371eu, 0x0000371eu, + 0x00050050u, 0x00000058u, 0x0000297cu, 0x00006b5fu, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x0000297du, + 0x0000297cu, 0x00050051u, 0x00000006u, 0x00003733u, 0x0000297du, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003734u, 0x00002637u, 0x00003733u, 0x00050080u, 0x00000006u, 0x00003735u, 0x00002635u, 0x00003734u, + 0x00050051u, 0x00000006u, 0x00003738u, 0x0000297du, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003739u, + 0x00003735u, 0x00003738u, 0x000500c7u, 0x00000006u, 0x0000373bu, 0x00003739u, 0x00000746u, 0x00050080u, + 0x00000006u, 0x0000373fu, 0x00003735u, 0x0000369au, 0x000500c7u, 0x00000006u, 0x00003741u, 0x0000373fu, + 0x00000746u, 0x000500c7u, 0x00000006u, 0x00003745u, 0x00003733u, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x00003746u, 0x00003745u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003748u, 0x0000373bu, 0x00003746u, + 0x000500c6u, 0x00000006u, 0x0000374au, 0x00003748u, 0x000002fdu, 0x000500c2u, 0x00000006u, 0x0000374cu, + 0x00003741u, 0x000001a8u, 0x000500c4u, 0x00000006u, 0x00003750u, 0x00003745u, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x00003752u, 0x0000374cu, 0x00003750u, 0x000500c6u, 0x00000006u, 0x00003754u, 0x00003752u, + 0x000002f6u, 0x000500c5u, 0x00000006u, 0x00003757u, 0x0000374au, 0x0000076fu, 0x00080041u, 0x000006aau, + 0x00003758u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003757u, 0x0004003du, 0x0000000fu, + 0x00003759u, 0x00003758u, 0x00080041u, 0x0000077au, 0x0000375cu, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00003754u, 0x0004003du, 0x00000011u, 0x0000375du, 0x0000375cu, 0x000500c2u, 0x00000011u, + 0x0000375fu, 0x0000375du, 0x000008cdu, 0x000500c7u, 0x00000011u, 0x00003760u, 0x0000375fu, 0x000002aeu, + 0x00040071u, 0x0000000fu, 0x00003761u, 0x00003760u, 0x000500c2u, 0x00000011u, 0x00003763u, 0x0000375du, + 0x00000198u, 0x000500c7u, 0x00000011u, 0x00003764u, 0x00003763u, 0x000002aeu, 0x00040071u, 0x0000000fu, + 0x00003765u, 0x00003764u, 0x00040071u, 0x00000011u, 0x00003767u, 0x00003761u, 0x0004007cu, 0x00000012u, + 0x00003768u, 0x00003767u, 0x00050082u, 0x00000012u, 0x00003769u, 0x00003768u, 0x000008d9u, 0x00040071u, + 0x00000011u, 0x0000376bu, 0x00003765u, 0x0004007cu, 0x00000012u, 0x0000376cu, 0x0000376bu, 0x00050082u, + 0x00000012u, 0x0000376du, 0x0000376cu, 0x000008d9u, 0x00040071u, 0x00000011u, 0x0000376fu, 0x00003759u, + 0x0004007cu, 0x00000012u, 0x00003770u, 0x0000376fu, 0x00070050u, 0x00000013u, 0x00003774u, 0x00003769u, + 0x0000376du, 0x00003770u, 0x00003770u, 0x000200f9u, 0x00002982u, 0x000200f8u, 0x00002982u, 0x000700f5u, + 0x00000013u, 0x00006e1cu, 0x00006bf1u, 0x00002955u, 0x00003774u, 0x00002969u, 0x000700f5u, 0x00000013u, + 0x00006da1u, 0x00006bf1u, 0x00002955u, 0x00003722u, 0x00002969u, 0x000700f5u, 0x00000013u, 0x00006d26u, + 0x00006bf1u, 0x00002955u, 0x000036d0u, 0x00002969u, 0x000200f9u, 0x00002aebu, 0x000200f8u, 0x000028cbu, + 0x00040071u, 0x00000006u, 0x000028ceu, 0x000089abu, 0x0004007cu, 0x00000008u, 0x000028cfu, 0x000028ceu, + 0x000300f7u, 0x00002954u, 0x00000000u, 0x000b00fbu, 0x000028cfu, 0x00002954u, 0x00000000u, 0x000028d0u, + 0x00000001u, 0x000028f1u, 0x00000002u, 0x00002912u, 0x00000003u, 0x00002933u, 0x000200f8u, 0x00002933u, + 0x0004007cu, 0x000000abu, 0x00002935u, 0x00006b7eu, 0x00050051u, 0x00000006u, 0x0000354cu, 0x00002935u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000354du, 0x00002637u, 0x0000354cu, 0x00050080u, 0x00000006u, + 0x0000354eu, 0x00002635u, 0x0000354du, 0x00050051u, 0x00000006u, 0x00003550u, 0x00002935u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00003551u, 0x00003550u, 0x000002fau, 0x00050080u, 0x00000006u, 0x00003553u, + 0x0000354eu, 0x00003551u, 0x000500c7u, 0x00000006u, 0x00003555u, 0x00003553u, 0x00000746u, 0x000500c2u, + 0x00000006u, 0x00003557u, 0x00003555u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x0000355au, 0x0000354cu, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000355bu, 0x0000355au, 0x000001a8u, 0x000500c6u, 0x00000006u, + 0x0000355du, 0x00003557u, 0x0000355bu, 0x000500c6u, 0x00000006u, 0x0000355fu, 0x0000355du, 0x000002f6u, + 0x00080041u, 0x0000077au, 0x00003562u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000355fu, + 0x0004003du, 0x00000011u, 0x00003563u, 0x00003562u, 0x00040071u, 0x00000006u, 0x00003564u, 0x00003563u, + 0x000500c5u, 0x00000006u, 0x00003567u, 0x0000355fu, 0x00000777u, 0x00080041u, 0x0000077au, 0x00003568u, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003567u, 0x0004003du, 0x00000011u, 0x00003569u, + 0x00003568u, 0x00040071u, 0x00000006u, 0x0000356au, 0x00003569u, 0x000500c2u, 0x00000006u, 0x0000356cu, + 0x00003564u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x0000356du, 0x0000356cu, 0x0004007cu, 0x00000012u, + 0x0000356eu, 0x0000356du, 0x000500c7u, 0x00000006u, 0x00003570u, 0x00003564u, 0x00000659u, 0x00040071u, + 0x00000011u, 0x00003571u, 0x00003570u, 0x0004007cu, 0x00000012u, 0x00003572u, 0x00003571u, 0x000500c2u, + 0x00000006u, 0x00003574u, 0x0000356au, 0x000001dbu, 0x00040071u, 0x00000011u, 0x00003575u, 0x00003574u, + 0x0004007cu, 0x00000012u, 0x00003576u, 0x00003575u, 0x000500c7u, 0x00000006u, 0x00003578u, 0x0000356au, + 0x00000659u, 0x00040071u, 0x00000011u, 0x00003579u, 0x00003578u, 0x0004007cu, 0x00000012u, 0x0000357au, + 0x00003579u, 0x00070050u, 0x00000013u, 0x0000357bu, 0x0000356eu, 0x00003572u, 0x00003576u, 0x0000357au, + 0x000300f7u, 0x00002949u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x0000293au, 0x00002949u, 0x000200f8u, + 0x0000293au, 0x00050050u, 0x00000058u, 0x0000293du, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, + 0x0000293eu, 0x0000293du, 0x00050051u, 0x00000006u, 0x00003587u, 0x0000293eu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00003588u, 0x00002637u, 0x00003587u, 0x00050080u, 0x00000006u, 0x00003589u, 0x00002635u, + 0x00003588u, 0x00050051u, 0x00000006u, 0x0000358bu, 0x0000293eu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x0000358cu, 0x0000358bu, 0x000002fau, 0x00050080u, 0x00000006u, 0x0000358eu, 0x00003589u, 0x0000358cu, + 0x000500c7u, 0x00000006u, 0x00003590u, 0x0000358eu, 0x00000746u, 0x000500c2u, 0x00000006u, 0x00003592u, + 0x00003590u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003595u, 0x00003587u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00003596u, 0x00003595u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003598u, 0x00003592u, + 0x00003596u, 0x000500c6u, 0x00000006u, 0x0000359au, 0x00003598u, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x0000359du, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000359au, 0x0004003du, 0x00000011u, + 0x0000359eu, 0x0000359du, 0x00040071u, 0x00000006u, 0x0000359fu, 0x0000359eu, 0x000500c5u, 0x00000006u, + 0x000035a2u, 0x0000359au, 0x00000777u, 0x00080041u, 0x0000077au, 0x000035a3u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x000035a2u, 0x0004003du, 0x00000011u, 0x000035a4u, 0x000035a3u, 0x00040071u, + 0x00000006u, 0x000035a5u, 0x000035a4u, 0x000500c2u, 0x00000006u, 0x000035a7u, 0x0000359fu, 0x000001dbu, + 0x00040071u, 0x00000011u, 0x000035a8u, 0x000035a7u, 0x0004007cu, 0x00000012u, 0x000035a9u, 0x000035a8u, + 0x000500c7u, 0x00000006u, 0x000035abu, 0x0000359fu, 0x00000659u, 0x00040071u, 0x00000011u, 0x000035acu, + 0x000035abu, 0x0004007cu, 0x00000012u, 0x000035adu, 0x000035acu, 0x000500c2u, 0x00000006u, 0x000035afu, + 0x000035a5u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x000035b0u, 0x000035afu, 0x0004007cu, 0x00000012u, + 0x000035b1u, 0x000035b0u, 0x000500c7u, 0x00000006u, 0x000035b3u, 0x000035a5u, 0x00000659u, 0x00040071u, + 0x00000011u, 0x000035b4u, 0x000035b3u, 0x0004007cu, 0x00000012u, 0x000035b5u, 0x000035b4u, 0x00070050u, + 0x00000013u, 0x000035b6u, 0x000035a9u, 0x000035adu, 0x000035b1u, 0x000035b5u, 0x00050050u, 0x00000058u, + 0x00002944u, 0x00006b57u, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002945u, 0x00002944u, 0x00050051u, + 0x00000006u, 0x000035c2u, 0x00002945u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000035c3u, 0x00002637u, + 0x000035c2u, 0x00050080u, 0x00000006u, 0x000035c4u, 0x00002635u, 0x000035c3u, 0x00050051u, 0x00000006u, + 0x000035c6u, 0x00002945u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000035c7u, 0x000035c6u, 0x000002fau, + 0x00050080u, 0x00000006u, 0x000035c9u, 0x000035c4u, 0x000035c7u, 0x000500c7u, 0x00000006u, 0x000035cbu, + 0x000035c9u, 0x00000746u, 0x000500c2u, 0x00000006u, 0x000035cdu, 0x000035cbu, 0x000001a8u, 0x000500c7u, + 0x00000006u, 0x000035d0u, 0x000035c2u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000035d1u, 0x000035d0u, + 0x000001a8u, 0x000500c6u, 0x00000006u, 0x000035d3u, 0x000035cdu, 0x000035d1u, 0x000500c6u, 0x00000006u, + 0x000035d5u, 0x000035d3u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x000035d8u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x000035d5u, 0x0004003du, 0x00000011u, 0x000035d9u, 0x000035d8u, 0x00040071u, + 0x00000006u, 0x000035dau, 0x000035d9u, 0x000500c5u, 0x00000006u, 0x000035ddu, 0x000035d5u, 0x00000777u, + 0x00080041u, 0x0000077au, 0x000035deu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000035ddu, + 0x0004003du, 0x00000011u, 0x000035dfu, 0x000035deu, 0x00040071u, 0x00000006u, 0x000035e0u, 0x000035dfu, + 0x000500c2u, 0x00000006u, 0x000035e2u, 0x000035dau, 0x000001dbu, 0x00040071u, 0x00000011u, 0x000035e3u, + 0x000035e2u, 0x0004007cu, 0x00000012u, 0x000035e4u, 0x000035e3u, 0x000500c7u, 0x00000006u, 0x000035e6u, + 0x000035dau, 0x00000659u, 0x00040071u, 0x00000011u, 0x000035e7u, 0x000035e6u, 0x0004007cu, 0x00000012u, + 0x000035e8u, 0x000035e7u, 0x000500c2u, 0x00000006u, 0x000035eau, 0x000035e0u, 0x000001dbu, 0x00040071u, + 0x00000011u, 0x000035ebu, 0x000035eau, 0x0004007cu, 0x00000012u, 0x000035ecu, 0x000035ebu, 0x000500c7u, + 0x00000006u, 0x000035eeu, 0x000035e0u, 0x00000659u, 0x00040071u, 0x00000011u, 0x000035efu, 0x000035eeu, + 0x0004007cu, 0x00000012u, 0x000035f0u, 0x000035efu, 0x00070050u, 0x00000013u, 0x000035f1u, 0x000035e4u, + 0x000035e8u, 0x000035ecu, 0x000035f0u, 0x000200f9u, 0x00002949u, 0x000200f8u, 0x00002949u, 0x000700f5u, + 0x00000013u, 0x00006da0u, 0x00006bf1u, 0x00002933u, 0x000035f1u, 0x0000293au, 0x000700f5u, 0x00000013u, + 0x00006d25u, 0x00006bf1u, 0x00002933u, 0x000035b6u, 0x0000293au, 0x000300f7u, 0x00002953u, 0x00000000u, + 0x000400fau, 0x000027fdu, 0x0000294bu, 0x00002953u, 0x000200f8u, 0x0000294bu, 0x00050050u, 0x00000058u, + 0x0000294eu, 0x00006b5fu, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x0000294fu, 0x0000294eu, 0x00050051u, + 0x00000006u, 0x000035fdu, 0x0000294fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000035feu, 0x00002637u, + 0x000035fdu, 0x00050080u, 0x00000006u, 0x000035ffu, 0x00002635u, 0x000035feu, 0x00050051u, 0x00000006u, + 0x00003601u, 0x0000294fu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003602u, 0x00003601u, 0x000002fau, + 0x00050080u, 0x00000006u, 0x00003604u, 0x000035ffu, 0x00003602u, 0x000500c7u, 0x00000006u, 0x00003606u, + 0x00003604u, 0x00000746u, 0x000500c2u, 0x00000006u, 0x00003608u, 0x00003606u, 0x000001a8u, 0x000500c7u, + 0x00000006u, 0x0000360bu, 0x000035fdu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000360cu, 0x0000360bu, + 0x000001a8u, 0x000500c6u, 0x00000006u, 0x0000360eu, 0x00003608u, 0x0000360cu, 0x000500c6u, 0x00000006u, + 0x00003610u, 0x0000360eu, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00003613u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00003610u, 0x0004003du, 0x00000011u, 0x00003614u, 0x00003613u, 0x00040071u, + 0x00000006u, 0x00003615u, 0x00003614u, 0x000500c5u, 0x00000006u, 0x00003618u, 0x00003610u, 0x00000777u, + 0x00080041u, 0x0000077au, 0x00003619u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003618u, + 0x0004003du, 0x00000011u, 0x0000361au, 0x00003619u, 0x00040071u, 0x00000006u, 0x0000361bu, 0x0000361au, + 0x000500c2u, 0x00000006u, 0x0000361du, 0x00003615u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x0000361eu, + 0x0000361du, 0x0004007cu, 0x00000012u, 0x0000361fu, 0x0000361eu, 0x000500c7u, 0x00000006u, 0x00003621u, + 0x00003615u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00003622u, 0x00003621u, 0x0004007cu, 0x00000012u, + 0x00003623u, 0x00003622u, 0x000500c2u, 0x00000006u, 0x00003625u, 0x0000361bu, 0x000001dbu, 0x00040071u, + 0x00000011u, 0x00003626u, 0x00003625u, 0x0004007cu, 0x00000012u, 0x00003627u, 0x00003626u, 0x000500c7u, + 0x00000006u, 0x00003629u, 0x0000361bu, 0x00000659u, 0x00040071u, 0x00000011u, 0x0000362au, 0x00003629u, + 0x0004007cu, 0x00000012u, 0x0000362bu, 0x0000362au, 0x00070050u, 0x00000013u, 0x0000362cu, 0x0000361fu, + 0x00003623u, 0x00003627u, 0x0000362bu, 0x000200f9u, 0x00002953u, 0x000200f8u, 0x00002953u, 0x000700f5u, + 0x00000013u, 0x00006e1au, 0x00006bf1u, 0x00002949u, 0x0000362cu, 0x0000294bu, 0x000200f9u, 0x00002954u, + 0x000200f8u, 0x00002912u, 0x0004007cu, 0x000000abu, 0x00002914u, 0x00006b7eu, 0x00050051u, 0x00000006u, + 0x00003440u, 0x00002914u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003441u, 0x00002637u, 0x00003440u, + 0x00050080u, 0x00000006u, 0x00003442u, 0x00002635u, 0x00003441u, 0x00050051u, 0x00000006u, 0x00003444u, + 0x00002914u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00003445u, 0x00003444u, 0x000002fau, 0x00050080u, + 0x00000006u, 0x00003447u, 0x00003442u, 0x00003445u, 0x000500c7u, 0x00000006u, 0x00003449u, 0x00003447u, + 0x0000068cu, 0x000500c2u, 0x00000006u, 0x0000344bu, 0x00003449u, 0x000001a8u, 0x000500c7u, 0x00000006u, + 0x0000344eu, 0x00003440u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000344fu, 0x0000344eu, 0x000001a8u, + 0x000500c6u, 0x00000006u, 0x00003451u, 0x0000344bu, 0x0000344fu, 0x000500c6u, 0x00000006u, 0x00003453u, + 0x00003451u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00003456u, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00003453u, 0x0004003du, 0x00000011u, 0x00003457u, 0x00003456u, 0x00040071u, 0x00000006u, + 0x00003458u, 0x00003457u, 0x00060050u, 0x0000026fu, 0x00003460u, 0x00003458u, 0x00003458u, 0x00003458u, + 0x000500c2u, 0x0000026fu, 0x00003461u, 0x00003460u, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00003463u, + 0x00003461u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00003466u, 0x00003463u, 0x0000897eu, 0x000500c2u, + 0x0000026fu, 0x00003469u, 0x00003463u, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x0000346au, 0x00003466u, + 0x00003469u, 0x000500c7u, 0x00000006u, 0x0000346cu, 0x00003458u, 0x000002f6u, 0x00050084u, 0x00000006u, + 0x0000346du, 0x0000346cu, 0x00000659u, 0x00040071u, 0x0000065du, 0x0000346fu, 0x0000346au, 0x0004007cu, + 0x0000065cu, 0x00003470u, 0x0000346fu, 0x00040071u, 0x00000011u, 0x00003472u, 0x0000346du, 0x0004007cu, + 0x00000012u, 0x00003473u, 0x00003472u, 0x00050051u, 0x00000012u, 0x00003474u, 0x00003470u, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00003475u, 0x00003470u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00003476u, + 0x00003470u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003477u, 0x00003474u, 0x00003475u, 0x00003476u, + 0x00003473u, 0x000300f7u, 0x00002928u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x00002919u, 0x00002928u, + 0x000200f8u, 0x00002919u, 0x00050050u, 0x00000058u, 0x0000291cu, 0x00006b5fu, 0x000027f1u, 0x0004007cu, + 0x000000abu, 0x0000291du, 0x0000291cu, 0x00050051u, 0x00000006u, 0x00003483u, 0x0000291du, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00003484u, 0x00002637u, 0x00003483u, 0x00050080u, 0x00000006u, 0x00003485u, + 0x00002635u, 0x00003484u, 0x00050051u, 0x00000006u, 0x00003487u, 0x0000291du, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00003488u, 0x00003487u, 0x000002fau, 0x00050080u, 0x00000006u, 0x0000348au, 0x00003485u, + 0x00003488u, 0x000500c7u, 0x00000006u, 0x0000348cu, 0x0000348au, 0x0000068cu, 0x000500c2u, 0x00000006u, + 0x0000348eu, 0x0000348cu, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00003491u, 0x00003483u, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00003492u, 0x00003491u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00003494u, + 0x0000348eu, 0x00003492u, 0x000500c6u, 0x00000006u, 0x00003496u, 0x00003494u, 0x000002f6u, 0x00080041u, + 0x0000077au, 0x00003499u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003496u, 0x0004003du, + 0x00000011u, 0x0000349au, 0x00003499u, 0x00040071u, 0x00000006u, 0x0000349bu, 0x0000349au, 0x00060050u, + 0x0000026fu, 0x000034a3u, 0x0000349bu, 0x0000349bu, 0x0000349bu, 0x000500c2u, 0x0000026fu, 0x000034a4u, + 0x000034a3u, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x000034a6u, 0x000034a4u, 0x0000897du, 0x000500c4u, + 0x0000026fu, 0x000034a9u, 0x000034a6u, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x000034acu, 0x000034a6u, + 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x000034adu, 0x000034a9u, 0x000034acu, 0x000500c7u, 0x00000006u, + 0x000034afu, 0x0000349bu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x000034b0u, 0x000034afu, 0x00000659u, + 0x00040071u, 0x0000065du, 0x000034b2u, 0x000034adu, 0x0004007cu, 0x0000065cu, 0x000034b3u, 0x000034b2u, + 0x00040071u, 0x00000011u, 0x000034b5u, 0x000034b0u, 0x0004007cu, 0x00000012u, 0x000034b6u, 0x000034b5u, + 0x00050051u, 0x00000012u, 0x000034b7u, 0x000034b3u, 0x00000000u, 0x00050051u, 0x00000012u, 0x000034b8u, + 0x000034b3u, 0x00000001u, 0x00050051u, 0x00000012u, 0x000034b9u, 0x000034b3u, 0x00000002u, 0x00070050u, + 0x00000013u, 0x000034bau, 0x000034b7u, 0x000034b8u, 0x000034b9u, 0x000034b6u, 0x00050050u, 0x00000058u, + 0x00002923u, 0x00006b57u, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002924u, 0x00002923u, 0x00050051u, + 0x00000006u, 0x000034c6u, 0x00002924u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000034c7u, 0x00002637u, + 0x000034c6u, 0x00050080u, 0x00000006u, 0x000034c8u, 0x00002635u, 0x000034c7u, 0x00050051u, 0x00000006u, + 0x000034cau, 0x00002924u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000034cbu, 0x000034cau, 0x000002fau, + 0x00050080u, 0x00000006u, 0x000034cdu, 0x000034c8u, 0x000034cbu, 0x000500c7u, 0x00000006u, 0x000034cfu, + 0x000034cdu, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x000034d1u, 0x000034cfu, 0x000001a8u, 0x000500c7u, + 0x00000006u, 0x000034d4u, 0x000034c6u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000034d5u, 0x000034d4u, + 0x000001a8u, 0x000500c6u, 0x00000006u, 0x000034d7u, 0x000034d1u, 0x000034d5u, 0x000500c6u, 0x00000006u, + 0x000034d9u, 0x000034d7u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x000034dcu, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x000034d9u, 0x0004003du, 0x00000011u, 0x000034ddu, 0x000034dcu, 0x00040071u, + 0x00000006u, 0x000034deu, 0x000034ddu, 0x00060050u, 0x0000026fu, 0x000034e6u, 0x000034deu, 0x000034deu, + 0x000034deu, 0x000500c2u, 0x0000026fu, 0x000034e7u, 0x000034e6u, 0x0000064au, 0x000500c7u, 0x0000026fu, + 0x000034e9u, 0x000034e7u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x000034ecu, 0x000034e9u, 0x0000897eu, + 0x000500c2u, 0x0000026fu, 0x000034efu, 0x000034e9u, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x000034f0u, + 0x000034ecu, 0x000034efu, 0x000500c7u, 0x00000006u, 0x000034f2u, 0x000034deu, 0x000002f6u, 0x00050084u, + 0x00000006u, 0x000034f3u, 0x000034f2u, 0x00000659u, 0x00040071u, 0x0000065du, 0x000034f5u, 0x000034f0u, + 0x0004007cu, 0x0000065cu, 0x000034f6u, 0x000034f5u, 0x00040071u, 0x00000011u, 0x000034f8u, 0x000034f3u, + 0x0004007cu, 0x00000012u, 0x000034f9u, 0x000034f8u, 0x00050051u, 0x00000012u, 0x000034fau, 0x000034f6u, + 0x00000000u, 0x00050051u, 0x00000012u, 0x000034fbu, 0x000034f6u, 0x00000001u, 0x00050051u, 0x00000012u, + 0x000034fcu, 0x000034f6u, 0x00000002u, 0x00070050u, 0x00000013u, 0x000034fdu, 0x000034fau, 0x000034fbu, + 0x000034fcu, 0x000034f9u, 0x000200f9u, 0x00002928u, 0x000200f8u, 0x00002928u, 0x000700f5u, 0x00000013u, + 0x00006d9eu, 0x00006bf1u, 0x00002912u, 0x000034fdu, 0x00002919u, 0x000700f5u, 0x00000013u, 0x00006d23u, + 0x00006bf1u, 0x00002912u, 0x000034bau, 0x00002919u, 0x000300f7u, 0x00002932u, 0x00000000u, 0x000400fau, + 0x000027fdu, 0x0000292au, 0x00002932u, 0x000200f8u, 0x0000292au, 0x00050050u, 0x00000058u, 0x0000292du, + 0x00006b5fu, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x0000292eu, 0x0000292du, 0x00050051u, 0x00000006u, + 0x00003509u, 0x0000292eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000350au, 0x00002637u, 0x00003509u, + 0x00050080u, 0x00000006u, 0x0000350bu, 0x00002635u, 0x0000350au, 0x00050051u, 0x00000006u, 0x0000350du, + 0x0000292eu, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000350eu, 0x0000350du, 0x000002fau, 0x00050080u, + 0x00000006u, 0x00003510u, 0x0000350bu, 0x0000350eu, 0x000500c7u, 0x00000006u, 0x00003512u, 0x00003510u, + 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00003514u, 0x00003512u, 0x000001a8u, 0x000500c7u, 0x00000006u, + 0x00003517u, 0x00003509u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003518u, 0x00003517u, 0x000001a8u, + 0x000500c6u, 0x00000006u, 0x0000351au, 0x00003514u, 0x00003518u, 0x000500c6u, 0x00000006u, 0x0000351cu, + 0x0000351au, 0x000002f6u, 0x00080041u, 0x0000077au, 0x0000351fu, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x0000351cu, 0x0004003du, 0x00000011u, 0x00003520u, 0x0000351fu, 0x00040071u, 0x00000006u, + 0x00003521u, 0x00003520u, 0x00060050u, 0x0000026fu, 0x00003529u, 0x00003521u, 0x00003521u, 0x00003521u, + 0x000500c2u, 0x0000026fu, 0x0000352au, 0x00003529u, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x0000352cu, + 0x0000352au, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x0000352fu, 0x0000352cu, 0x0000897eu, 0x000500c2u, + 0x0000026fu, 0x00003532u, 0x0000352cu, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00003533u, 0x0000352fu, + 0x00003532u, 0x000500c7u, 0x00000006u, 0x00003535u, 0x00003521u, 0x000002f6u, 0x00050084u, 0x00000006u, + 0x00003536u, 0x00003535u, 0x00000659u, 0x00040071u, 0x0000065du, 0x00003538u, 0x00003533u, 0x0004007cu, + 0x0000065cu, 0x00003539u, 0x00003538u, 0x00040071u, 0x00000011u, 0x0000353bu, 0x00003536u, 0x0004007cu, + 0x00000012u, 0x0000353cu, 0x0000353bu, 0x00050051u, 0x00000012u, 0x0000353du, 0x00003539u, 0x00000000u, + 0x00050051u, 0x00000012u, 0x0000353eu, 0x00003539u, 0x00000001u, 0x00050051u, 0x00000012u, 0x0000353fu, + 0x00003539u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003540u, 0x0000353du, 0x0000353eu, 0x0000353fu, + 0x0000353cu, 0x000200f9u, 0x00002932u, 0x000200f8u, 0x00002932u, 0x000700f5u, 0x00000013u, 0x00006e18u, + 0x00006bf1u, 0x00002928u, 0x00003540u, 0x0000292au, 0x000200f9u, 0x00002954u, 0x000200f8u, 0x000028f1u, + 0x0004007cu, 0x000000abu, 0x000028f3u, 0x00006b7eu, 0x00050051u, 0x00000006u, 0x000033abu, 0x000028f3u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000033acu, 0x00002637u, 0x000033abu, 0x00050080u, 0x00000006u, + 0x000033adu, 0x00002635u, 0x000033acu, 0x00050051u, 0x00000006u, 0x000033afu, 0x000028f3u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x000033b1u, 0x000033adu, 0x000033afu, 0x000500c7u, 0x00000006u, 0x000033b3u, + 0x000033b1u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x000033b7u, 0x000033abu, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x000033b8u, 0x000033b7u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000033bau, 0x000033b3u, + 0x000033b8u, 0x000500c6u, 0x00000006u, 0x000033bcu, 0x000033bau, 0x000002fdu, 0x00080041u, 0x000006aau, + 0x000033bfu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000033bcu, 0x0004003du, 0x0000000fu, + 0x000033c0u, 0x000033bfu, 0x00040071u, 0x00000006u, 0x000033c1u, 0x000033c0u, 0x00040071u, 0x00000011u, + 0x000033c3u, 0x000033c1u, 0x0004007cu, 0x00000012u, 0x000033c4u, 0x000033c3u, 0x00070050u, 0x00000013u, + 0x000033c5u, 0x000033c4u, 0x000033c4u, 0x000033c4u, 0x000033c4u, 0x000300f7u, 0x00002907u, 0x00000000u, + 0x000400fau, 0x00001b2cu, 0x000028f8u, 0x00002907u, 0x000200f8u, 0x000028f8u, 0x00050050u, 0x00000058u, + 0x000028fbu, 0x00006b5fu, 0x000027f1u, 0x0004007cu, 0x000000abu, 0x000028fcu, 0x000028fbu, 0x00050051u, + 0x00000006u, 0x000033d0u, 0x000028fcu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000033d1u, 0x00002637u, + 0x000033d0u, 0x00050080u, 0x00000006u, 0x000033d2u, 0x00002635u, 0x000033d1u, 0x00050051u, 0x00000006u, + 0x000033d4u, 0x000028fcu, 0x00000000u, 0x00050080u, 0x00000006u, 0x000033d6u, 0x000033d2u, 0x000033d4u, + 0x000500c7u, 0x00000006u, 0x000033d8u, 0x000033d6u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x000033dcu, + 0x000033d0u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000033ddu, 0x000033dcu, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x000033dfu, 0x000033d8u, 0x000033ddu, 0x000500c6u, 0x00000006u, 0x000033e1u, 0x000033dfu, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x000033e4u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x000033e1u, 0x0004003du, 0x0000000fu, 0x000033e5u, 0x000033e4u, 0x00040071u, 0x00000006u, 0x000033e6u, + 0x000033e5u, 0x00040071u, 0x00000011u, 0x000033e8u, 0x000033e6u, 0x0004007cu, 0x00000012u, 0x000033e9u, + 0x000033e8u, 0x00070050u, 0x00000013u, 0x000033eau, 0x000033e9u, 0x000033e9u, 0x000033e9u, 0x000033e9u, + 0x00050050u, 0x00000058u, 0x00002902u, 0x00006b57u, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x00002903u, + 0x00002902u, 0x00050051u, 0x00000006u, 0x000033f5u, 0x00002903u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000033f6u, 0x00002637u, 0x000033f5u, 0x00050080u, 0x00000006u, 0x000033f7u, 0x00002635u, 0x000033f6u, + 0x00050051u, 0x00000006u, 0x000033f9u, 0x00002903u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000033fbu, + 0x000033f7u, 0x000033f9u, 0x000500c7u, 0x00000006u, 0x000033fdu, 0x000033fbu, 0x0000068cu, 0x000500c7u, + 0x00000006u, 0x00003401u, 0x000033f5u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003402u, 0x00003401u, + 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003404u, 0x000033fdu, 0x00003402u, 0x000500c6u, 0x00000006u, + 0x00003406u, 0x00003404u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00003409u, 0x000006a7u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00003406u, 0x0004003du, 0x0000000fu, 0x0000340au, 0x00003409u, 0x00040071u, + 0x00000006u, 0x0000340bu, 0x0000340au, 0x00040071u, 0x00000011u, 0x0000340du, 0x0000340bu, 0x0004007cu, + 0x00000012u, 0x0000340eu, 0x0000340du, 0x00070050u, 0x00000013u, 0x0000340fu, 0x0000340eu, 0x0000340eu, + 0x0000340eu, 0x0000340eu, 0x000200f9u, 0x00002907u, 0x000200f8u, 0x00002907u, 0x000700f5u, 0x00000013u, + 0x00006d9cu, 0x00006bf1u, 0x000028f1u, 0x0000340fu, 0x000028f8u, 0x000700f5u, 0x00000013u, 0x00006d21u, + 0x00006bf1u, 0x000028f1u, 0x000033eau, 0x000028f8u, 0x000300f7u, 0x00002911u, 0x00000000u, 0x000400fau, + 0x000027fdu, 0x00002909u, 0x00002911u, 0x000200f8u, 0x00002909u, 0x00050050u, 0x00000058u, 0x0000290cu, + 0x00006b5fu, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x0000290du, 0x0000290cu, 0x00050051u, 0x00000006u, + 0x0000341au, 0x0000290du, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000341bu, 0x00002637u, 0x0000341au, + 0x00050080u, 0x00000006u, 0x0000341cu, 0x00002635u, 0x0000341bu, 0x00050051u, 0x00000006u, 0x0000341eu, + 0x0000290du, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003420u, 0x0000341cu, 0x0000341eu, 0x000500c7u, + 0x00000006u, 0x00003422u, 0x00003420u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x00003426u, 0x0000341au, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003427u, 0x00003426u, 0x000001abu, 0x000500c6u, 0x00000006u, + 0x00003429u, 0x00003422u, 0x00003427u, 0x000500c6u, 0x00000006u, 0x0000342bu, 0x00003429u, 0x000002fdu, + 0x00080041u, 0x000006aau, 0x0000342eu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000342bu, + 0x0004003du, 0x0000000fu, 0x0000342fu, 0x0000342eu, 0x00040071u, 0x00000006u, 0x00003430u, 0x0000342fu, + 0x00040071u, 0x00000011u, 0x00003432u, 0x00003430u, 0x0004007cu, 0x00000012u, 0x00003433u, 0x00003432u, + 0x00070050u, 0x00000013u, 0x00003434u, 0x00003433u, 0x00003433u, 0x00003433u, 0x00003433u, 0x000200f9u, + 0x00002911u, 0x000200f8u, 0x00002911u, 0x000700f5u, 0x00000013u, 0x00006e16u, 0x00006bf1u, 0x00002907u, + 0x00003434u, 0x00002909u, 0x000200f9u, 0x00002954u, 0x000200f8u, 0x000028d0u, 0x0004007cu, 0x000000abu, + 0x000028d2u, 0x00006b7eu, 0x00050051u, 0x00000006u, 0x000032dcu, 0x000028d2u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000032ddu, 0x00002637u, 0x000032dcu, 0x00050080u, 0x00000006u, 0x000032deu, 0x00002635u, + 0x000032ddu, 0x00050051u, 0x00000006u, 0x000032e0u, 0x000028d2u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x000032e1u, 0x000032e0u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x000032e3u, 0x000032deu, 0x000032e1u, + 0x000500c7u, 0x00000006u, 0x000032e5u, 0x000032e3u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x000032e8u, + 0x000032e0u, 0x000500c7u, 0x00000006u, 0x000032e9u, 0x000032e8u, 0x000002f6u, 0x00050084u, 0x00000006u, + 0x000032eau, 0x000032e9u, 0x00000694u, 0x000500c7u, 0x00000006u, 0x000032eeu, 0x000032dcu, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x000032efu, 0x000032eeu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000032f1u, + 0x000032e5u, 0x000032efu, 0x000500c6u, 0x00000006u, 0x000032f3u, 0x000032f1u, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x000032f6u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000032f3u, 0x0004003du, + 0x0000000fu, 0x000032f7u, 0x000032f6u, 0x00040071u, 0x00000006u, 0x000032f8u, 0x000032f7u, 0x000500c2u, + 0x00000006u, 0x000032fbu, 0x000032f8u, 0x000032eau, 0x000500c7u, 0x00000006u, 0x000032fcu, 0x000032fbu, + 0x000006b1u, 0x000500c4u, 0x00000006u, 0x000032feu, 0x000032fcu, 0x000001b1u, 0x000500c5u, 0x00000006u, + 0x00003300u, 0x000032fcu, 0x000032feu, 0x00040071u, 0x00000011u, 0x00003302u, 0x00003300u, 0x0004007cu, + 0x00000012u, 0x00003303u, 0x00003302u, 0x00070050u, 0x00000013u, 0x00003304u, 0x00003303u, 0x00003303u, + 0x00003303u, 0x00003303u, 0x000300f7u, 0x000028e6u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x000028d7u, + 0x000028e6u, 0x000200f8u, 0x000028d7u, 0x00050050u, 0x00000058u, 0x000028dau, 0x00006b5fu, 0x000027f1u, + 0x0004007cu, 0x000000abu, 0x000028dbu, 0x000028dau, 0x00050051u, 0x00000006u, 0x00003310u, 0x000028dbu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003311u, 0x00002637u, 0x00003310u, 0x00050080u, 0x00000006u, + 0x00003312u, 0x00002635u, 0x00003311u, 0x00050051u, 0x00000006u, 0x00003314u, 0x000028dbu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00003315u, 0x00003314u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x00003317u, + 0x00003312u, 0x00003315u, 0x000500c7u, 0x00000006u, 0x00003319u, 0x00003317u, 0x0000068cu, 0x000400c8u, + 0x00000006u, 0x0000331cu, 0x00003314u, 0x000500c7u, 0x00000006u, 0x0000331du, 0x0000331cu, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x0000331eu, 0x0000331du, 0x00000694u, 0x000500c7u, 0x00000006u, 0x00003322u, + 0x00003310u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003323u, 0x00003322u, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00003325u, 0x00003319u, 0x00003323u, 0x000500c6u, 0x00000006u, 0x00003327u, 0x00003325u, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x0000332au, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00003327u, 0x0004003du, 0x0000000fu, 0x0000332bu, 0x0000332au, 0x00040071u, 0x00000006u, 0x0000332cu, + 0x0000332bu, 0x000500c2u, 0x00000006u, 0x0000332fu, 0x0000332cu, 0x0000331eu, 0x000500c7u, 0x00000006u, + 0x00003330u, 0x0000332fu, 0x000006b1u, 0x000500c4u, 0x00000006u, 0x00003332u, 0x00003330u, 0x000001b1u, + 0x000500c5u, 0x00000006u, 0x00003334u, 0x00003330u, 0x00003332u, 0x00040071u, 0x00000011u, 0x00003336u, + 0x00003334u, 0x0004007cu, 0x00000012u, 0x00003337u, 0x00003336u, 0x00070050u, 0x00000013u, 0x00003338u, + 0x00003337u, 0x00003337u, 0x00003337u, 0x00003337u, 0x00050050u, 0x00000058u, 0x000028e1u, 0x00006b57u, + 0x000027f3u, 0x0004007cu, 0x000000abu, 0x000028e2u, 0x000028e1u, 0x00050051u, 0x00000006u, 0x00003344u, + 0x000028e2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003345u, 0x00002637u, 0x00003344u, 0x00050080u, + 0x00000006u, 0x00003346u, 0x00002635u, 0x00003345u, 0x00050051u, 0x00000006u, 0x00003348u, 0x000028e2u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003349u, 0x00003348u, 0x000001a8u, 0x00050080u, 0x00000006u, + 0x0000334bu, 0x00003346u, 0x00003349u, 0x000500c7u, 0x00000006u, 0x0000334du, 0x0000334bu, 0x0000068cu, + 0x000400c8u, 0x00000006u, 0x00003350u, 0x00003348u, 0x000500c7u, 0x00000006u, 0x00003351u, 0x00003350u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003352u, 0x00003351u, 0x00000694u, 0x000500c7u, 0x00000006u, + 0x00003356u, 0x00003344u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003357u, 0x00003356u, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x00003359u, 0x0000334du, 0x00003357u, 0x000500c6u, 0x00000006u, 0x0000335bu, + 0x00003359u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x0000335eu, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x0000335bu, 0x0004003du, 0x0000000fu, 0x0000335fu, 0x0000335eu, 0x00040071u, 0x00000006u, + 0x00003360u, 0x0000335fu, 0x000500c2u, 0x00000006u, 0x00003363u, 0x00003360u, 0x00003352u, 0x000500c7u, + 0x00000006u, 0x00003364u, 0x00003363u, 0x000006b1u, 0x000500c4u, 0x00000006u, 0x00003366u, 0x00003364u, + 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00003368u, 0x00003364u, 0x00003366u, 0x00040071u, 0x00000011u, + 0x0000336au, 0x00003368u, 0x0004007cu, 0x00000012u, 0x0000336bu, 0x0000336au, 0x00070050u, 0x00000013u, + 0x0000336cu, 0x0000336bu, 0x0000336bu, 0x0000336bu, 0x0000336bu, 0x000200f9u, 0x000028e6u, 0x000200f8u, + 0x000028e6u, 0x000700f5u, 0x00000013u, 0x00006d9au, 0x00006bf1u, 0x000028d0u, 0x0000336cu, 0x000028d7u, + 0x000700f5u, 0x00000013u, 0x00006d1fu, 0x00006bf1u, 0x000028d0u, 0x00003338u, 0x000028d7u, 0x000300f7u, + 0x000028f0u, 0x00000000u, 0x000400fau, 0x000027fdu, 0x000028e8u, 0x000028f0u, 0x000200f8u, 0x000028e8u, + 0x00050050u, 0x00000058u, 0x000028ebu, 0x00006b5fu, 0x000027f3u, 0x0004007cu, 0x000000abu, 0x000028ecu, + 0x000028ebu, 0x00050051u, 0x00000006u, 0x00003378u, 0x000028ecu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00003379u, 0x00002637u, 0x00003378u, 0x00050080u, 0x00000006u, 0x0000337au, 0x00002635u, 0x00003379u, + 0x00050051u, 0x00000006u, 0x0000337cu, 0x000028ecu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000337du, + 0x0000337cu, 0x000001a8u, 0x00050080u, 0x00000006u, 0x0000337fu, 0x0000337au, 0x0000337du, 0x000500c7u, + 0x00000006u, 0x00003381u, 0x0000337fu, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00003384u, 0x0000337cu, + 0x000500c7u, 0x00000006u, 0x00003385u, 0x00003384u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003386u, + 0x00003385u, 0x00000694u, 0x000500c7u, 0x00000006u, 0x0000338au, 0x00003378u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x0000338bu, 0x0000338au, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000338du, 0x00003381u, + 0x0000338bu, 0x000500c6u, 0x00000006u, 0x0000338fu, 0x0000338du, 0x000002fdu, 0x00080041u, 0x000006aau, + 0x00003392u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000338fu, 0x0004003du, 0x0000000fu, + 0x00003393u, 0x00003392u, 0x00040071u, 0x00000006u, 0x00003394u, 0x00003393u, 0x000500c2u, 0x00000006u, + 0x00003397u, 0x00003394u, 0x00003386u, 0x000500c7u, 0x00000006u, 0x00003398u, 0x00003397u, 0x000006b1u, + 0x000500c4u, 0x00000006u, 0x0000339au, 0x00003398u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x0000339cu, + 0x00003398u, 0x0000339au, 0x00040071u, 0x00000011u, 0x0000339eu, 0x0000339cu, 0x0004007cu, 0x00000012u, + 0x0000339fu, 0x0000339eu, 0x00070050u, 0x00000013u, 0x000033a0u, 0x0000339fu, 0x0000339fu, 0x0000339fu, + 0x0000339fu, 0x000200f9u, 0x000028f0u, 0x000200f8u, 0x000028f0u, 0x000700f5u, 0x00000013u, 0x00006e14u, + 0x00006bf1u, 0x000028e6u, 0x000033a0u, 0x000028e8u, 0x000200f9u, 0x00002954u, 0x000200f8u, 0x00002954u, + 0x000d00f5u, 0x00000013u, 0x00006e13u, 0x00006bf1u, 0x000028cbu, 0x00006e14u, 0x000028f0u, 0x00006e16u, + 0x00002911u, 0x00006e18u, 0x00002932u, 0x00006e1au, 0x00002953u, 0x000d00f5u, 0x00000013u, 0x00006d98u, + 0x00006bf1u, 0x000028cbu, 0x00006d9au, 0x000028f0u, 0x00006d9cu, 0x00002911u, 0x00006d9eu, 0x00002932u, + 0x00006da0u, 0x00002953u, 0x000d00f5u, 0x00000013u, 0x00006d1du, 0x00006bf1u, 0x000028cbu, 0x00006d1fu, + 0x000028f0u, 0x00006d21u, 0x00002911u, 0x00006d23u, 0x00002932u, 0x00006d25u, 0x00002953u, 0x000d00f5u, + 0x00000013u, 0x00006c2du, 0x00006bf1u, 0x000028cbu, 0x00003304u, 0x000028f0u, 0x000033c5u, 0x00002911u, + 0x00003477u, 0x00002932u, 0x0000357bu, 0x00002953u, 0x000200f9u, 0x00002aebu, 0x000200f8u, 0x00002aebu, + 0x000f00f5u, 0x00000013u, 0x00006e12u, 0x00006bf1u, 0x000028c6u, 0x00006e13u, 0x00002954u, 0x00006e1cu, + 0x00002982u, 0x00006e1du, 0x000029f7u, 0x00006e24u, 0x00002a81u, 0x00006e2du, 0x00002aeau, 0x000f00f5u, + 0x00000013u, 0x00006d97u, 0x00006bf1u, 0x000028c6u, 0x00006d98u, 0x00002954u, 0x00006da1u, 0x00002982u, + 0x00006da2u, 0x000029f7u, 0x00006da9u, 0x00002a81u, 0x00006db2u, 0x00002aeau, 0x000f00f5u, 0x00000013u, + 0x00006d1cu, 0x00006bf1u, 0x000028c6u, 0x00006d1du, 0x00002954u, 0x00006d26u, 0x00002982u, 0x00006d27u, + 0x000029f7u, 0x00006d2eu, 0x00002a81u, 0x00006d37u, 0x00002aeau, 0x000f00f5u, 0x00000013u, 0x00006c2cu, + 0x00006bf1u, 0x000028c6u, 0x00006c2du, 0x00002954u, 0x0000367eu, 0x00002982u, 0x00006c37u, 0x000029f7u, + 0x00006c3eu, 0x00002a81u, 0x00006c47u, 0x00002aeau, 0x000200f9u, 0x00002aecu, 0x000200f8u, 0x0000281cu, + 0x000400a8u, 0x00000063u, 0x0000281eu, 0x00001b2cu, 0x000300f7u, 0x00002825u, 0x00000000u, 0x000400fau, + 0x0000281eu, 0x0000281fu, 0x00002825u, 0x000200f8u, 0x0000281fu, 0x00050050u, 0x00000058u, 0x00002822u, + 0x00006b57u, 0x000027f1u, 0x000200f9u, 0x00002825u, 0x000200f8u, 0x00002825u, 0x000700f5u, 0x00000058u, + 0x00006ba4u, 0x00006b7eu, 0x0000281cu, 0x00002822u, 0x0000281fu, 0x000600a9u, 0x00000008u, 0x000089adu, + 0x0000281eu, 0x000027f1u, 0x000027f3u, 0x000600a9u, 0x00000008u, 0x000089aeu, 0x0000281eu, 0x00006b57u, + 0x00006b5fu, 0x000300f7u, 0x000028c5u, 0x00000000u, 0x000b00fbu, 0x00002806u, 0x000028c5u, 0x00000000u, + 0x0000282au, 0x00000002u, 0x0000282au, 0x00000003u, 0x0000282au, 0x00000004u, 0x0000282au, 0x000200f8u, + 0x0000282au, 0x000600a9u, 0x00000008u, 0x0000282eu, 0x000027ffu, 0x000001abu, 0x000001a8u, 0x0004007cu, + 0x00000006u, 0x0000282fu, 0x0000282eu, 0x00040071u, 0x00000006u, 0x00002832u, 0x000089abu, 0x0004007cu, + 0x00000008u, 0x00002833u, 0x00002832u, 0x000300f7u, 0x000028c4u, 0x00000000u, 0x000700fbu, 0x00002833u, + 0x00002834u, 0x00000000u, 0x00002860u, 0x00000001u, 0x00002898u, 0x000200f8u, 0x00002898u, 0x0004007cu, + 0x000000abu, 0x0000289au, 0x00006ba4u, 0x000600a9u, 0x00000008u, 0x0000289cu, 0x00002809u, 0x000001aeu, + 0x0000019eu, 0x0004007cu, 0x00000006u, 0x0000289du, 0x0000289cu, 0x00050051u, 0x00000006u, 0x0000312bu, + 0x0000289au, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000312cu, 0x00002637u, 0x0000312bu, 0x00050080u, + 0x00000006u, 0x0000312du, 0x00002635u, 0x0000312cu, 0x00050051u, 0x00000006u, 0x0000312fu, 0x0000289au, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00003131u, 0x0000312du, 0x0000312fu, 0x000500c7u, 0x00000006u, + 0x00003133u, 0x00003131u, 0x00000746u, 0x000500c7u, 0x00000006u, 0x00003137u, 0x0000312bu, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00003138u, 0x00003137u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000313au, + 0x00003133u, 0x00003138u, 0x000500c6u, 0x00000006u, 0x0000313cu, 0x0000313au, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x0000313fu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000313cu, 0x0004003du, + 0x0000000fu, 0x00003140u, 0x0000313fu, 0x00040071u, 0x00000006u, 0x00003141u, 0x00003140u, 0x000500c4u, + 0x00000006u, 0x00003143u, 0x00003141u, 0x000001abu, 0x00050080u, 0x00000006u, 0x00003145u, 0x00003143u, + 0x0000289du, 0x000500c6u, 0x00000006u, 0x00003148u, 0x00003145u, 0x0000282fu, 0x000500c5u, 0x00000006u, + 0x0000314bu, 0x00000777u, 0x00003148u, 0x00080041u, 0x0000077au, 0x0000314cu, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x0000314bu, 0x0004003du, 0x00000011u, 0x0000314du, 0x0000314cu, 0x00040071u, + 0x00000006u, 0x0000314eu, 0x0000314du, 0x000300f7u, 0x00003156u, 0x00000000u, 0x000400fau, 0x00001b29u, + 0x00003150u, 0x00003153u, 0x000200f8u, 0x00003153u, 0x00060050u, 0x0000026fu, 0x00003172u, 0x0000314eu, + 0x0000314eu, 0x0000314eu, 0x000500c2u, 0x0000026fu, 0x00003173u, 0x00003172u, 0x0000064au, 0x000500c7u, + 0x0000026fu, 0x00003175u, 0x00003173u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00003178u, 0x00003175u, + 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x0000317bu, 0x00003175u, 0x0000897fu, 0x000500c5u, 0x0000026fu, + 0x0000317cu, 0x00003178u, 0x0000317bu, 0x000500c7u, 0x00000006u, 0x0000317eu, 0x0000314eu, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x0000317fu, 0x0000317eu, 0x00000659u, 0x00040071u, 0x0000065du, 0x00003181u, + 0x0000317cu, 0x0004007cu, 0x0000065cu, 0x00003182u, 0x00003181u, 0x00040071u, 0x00000011u, 0x00003184u, + 0x0000317fu, 0x0004007cu, 0x00000012u, 0x00003185u, 0x00003184u, 0x00050051u, 0x00000012u, 0x00003186u, + 0x00003182u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003187u, 0x00003182u, 0x00000001u, 0x00050051u, + 0x00000012u, 0x00003188u, 0x00003182u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003189u, 0x00003186u, + 0x00003187u, 0x00003188u, 0x00003185u, 0x000200f9u, 0x00003156u, 0x000200f8u, 0x00003150u, 0x000500c2u, + 0x00000006u, 0x0000315du, 0x0000314eu, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x0000315fu, 0x0000314eu, + 0x00000659u, 0x00040071u, 0x00000011u, 0x00003161u, 0x0000315du, 0x0004007cu, 0x00000012u, 0x00003162u, + 0x00003161u, 0x00040071u, 0x00000011u, 0x0000316au, 0x0000315fu, 0x0004007cu, 0x00000012u, 0x0000316bu, + 0x0000316au, 0x00070050u, 0x00000013u, 0x0000316cu, 0x00003162u, 0x00003162u, 0x00003162u, 0x0000316bu, + 0x000200f9u, 0x00003156u, 0x000200f8u, 0x00003156u, 0x000700f5u, 0x00000013u, 0x00006ba5u, 0x0000316cu, + 0x00003150u, 0x00003189u, 0x00003153u, 0x000300f7u, 0x000028b7u, 0x00000000u, 0x000400fau, 0x00001b68u, + 0x000028a4u, 0x000028b7u, 0x000200f8u, 0x000028a4u, 0x00050050u, 0x00000058u, 0x000028a7u, 0x000089aeu, + 0x000027f1u, 0x0004007cu, 0x000000abu, 0x000028a8u, 0x000028a7u, 0x00050051u, 0x00000006u, 0x00003198u, + 0x000028a8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003199u, 0x00002637u, 0x00003198u, 0x00050080u, + 0x00000006u, 0x0000319au, 0x00002635u, 0x00003199u, 0x00050051u, 0x00000006u, 0x0000319cu, 0x000028a8u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x0000319eu, 0x0000319au, 0x0000319cu, 0x000500c7u, 0x00000006u, + 0x000031a0u, 0x0000319eu, 0x00000746u, 0x000500c7u, 0x00000006u, 0x000031a4u, 0x00003198u, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x000031a5u, 0x000031a4u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000031a7u, + 0x000031a0u, 0x000031a5u, 0x000500c6u, 0x00000006u, 0x000031a9u, 0x000031a7u, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x000031acu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000031a9u, 0x0004003du, + 0x0000000fu, 0x000031adu, 0x000031acu, 0x00040071u, 0x00000006u, 0x000031aeu, 0x000031adu, 0x000500c4u, + 0x00000006u, 0x000031b0u, 0x000031aeu, 0x000001abu, 0x00050080u, 0x00000006u, 0x000031b2u, 0x000031b0u, + 0x000002f6u, 0x000500c6u, 0x00000006u, 0x000031b5u, 0x000031b2u, 0x0000282fu, 0x000500c5u, 0x00000006u, + 0x000031b8u, 0x00000777u, 0x000031b5u, 0x00080041u, 0x0000077au, 0x000031b9u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x000031b8u, 0x0004003du, 0x00000011u, 0x000031bau, 0x000031b9u, 0x00040071u, + 0x00000006u, 0x000031bbu, 0x000031bau, 0x000300f7u, 0x000031c3u, 0x00000000u, 0x000400fau, 0x00001b29u, + 0x000031bdu, 0x000031c0u, 0x000200f8u, 0x000031c0u, 0x00060050u, 0x0000026fu, 0x000031dfu, 0x000031bbu, + 0x000031bbu, 0x000031bbu, 0x000500c2u, 0x0000026fu, 0x000031e0u, 0x000031dfu, 0x0000064au, 0x000500c7u, + 0x0000026fu, 0x000031e2u, 0x000031e0u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x000031e5u, 0x000031e2u, + 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x000031e8u, 0x000031e2u, 0x0000897fu, 0x000500c5u, 0x0000026fu, + 0x000031e9u, 0x000031e5u, 0x000031e8u, 0x000500c7u, 0x00000006u, 0x000031ebu, 0x000031bbu, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x000031ecu, 0x000031ebu, 0x00000659u, 0x00040071u, 0x0000065du, 0x000031eeu, + 0x000031e9u, 0x0004007cu, 0x0000065cu, 0x000031efu, 0x000031eeu, 0x00040071u, 0x00000011u, 0x000031f1u, + 0x000031ecu, 0x0004007cu, 0x00000012u, 0x000031f2u, 0x000031f1u, 0x00050051u, 0x00000012u, 0x000031f3u, + 0x000031efu, 0x00000000u, 0x00050051u, 0x00000012u, 0x000031f4u, 0x000031efu, 0x00000001u, 0x00050051u, + 0x00000012u, 0x000031f5u, 0x000031efu, 0x00000002u, 0x00070050u, 0x00000013u, 0x000031f6u, 0x000031f3u, + 0x000031f4u, 0x000031f5u, 0x000031f2u, 0x000200f9u, 0x000031c3u, 0x000200f8u, 0x000031bdu, 0x000500c2u, + 0x00000006u, 0x000031cau, 0x000031bbu, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x000031ccu, 0x000031bbu, + 0x00000659u, 0x00040071u, 0x00000011u, 0x000031ceu, 0x000031cau, 0x0004007cu, 0x00000012u, 0x000031cfu, + 0x000031ceu, 0x00040071u, 0x00000011u, 0x000031d7u, 0x000031ccu, 0x0004007cu, 0x00000012u, 0x000031d8u, + 0x000031d7u, 0x00070050u, 0x00000013u, 0x000031d9u, 0x000031cfu, 0x000031cfu, 0x000031cfu, 0x000031d8u, + 0x000200f9u, 0x000031c3u, 0x000200f8u, 0x000031c3u, 0x000700f5u, 0x00000013u, 0x00006bacu, 0x000031d9u, + 0x000031bdu, 0x000031f6u, 0x000031c0u, 0x00050050u, 0x00000058u, 0x000028b0u, 0x00006b57u, 0x000089adu, + 0x0004007cu, 0x000000abu, 0x000028b1u, 0x000028b0u, 0x00050051u, 0x00000006u, 0x00003205u, 0x000028b1u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00003206u, 0x00002637u, 0x00003205u, 0x00050080u, 0x00000006u, + 0x00003207u, 0x00002635u, 0x00003206u, 0x00050051u, 0x00000006u, 0x00003209u, 0x000028b1u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x0000320bu, 0x00003207u, 0x00003209u, 0x000500c7u, 0x00000006u, 0x0000320du, + 0x0000320bu, 0x00000746u, 0x000500c7u, 0x00000006u, 0x00003211u, 0x00003205u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00003212u, 0x00003211u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00003214u, 0x0000320du, + 0x00003212u, 0x000500c6u, 0x00000006u, 0x00003216u, 0x00003214u, 0x000002fdu, 0x00080041u, 0x000006aau, + 0x00003219u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003216u, 0x0004003du, 0x0000000fu, + 0x0000321au, 0x00003219u, 0x00040071u, 0x00000006u, 0x0000321bu, 0x0000321au, 0x000500c4u, 0x00000006u, + 0x0000321du, 0x0000321bu, 0x000001abu, 0x00050080u, 0x00000006u, 0x0000321fu, 0x0000321du, 0x000002fau, + 0x000500c6u, 0x00000006u, 0x00003222u, 0x0000321fu, 0x0000282fu, 0x000500c5u, 0x00000006u, 0x00003225u, + 0x00000777u, 0x00003222u, 0x00080041u, 0x0000077au, 0x00003226u, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00003225u, 0x0004003du, 0x00000011u, 0x00003227u, 0x00003226u, 0x00040071u, 0x00000006u, + 0x00003228u, 0x00003227u, 0x000300f7u, 0x00003230u, 0x00000000u, 0x000400fau, 0x00001b29u, 0x0000322au, + 0x0000322du, 0x000200f8u, 0x0000322du, 0x00060050u, 0x0000026fu, 0x0000324cu, 0x00003228u, 0x00003228u, + 0x00003228u, 0x000500c2u, 0x0000026fu, 0x0000324du, 0x0000324cu, 0x0000064au, 0x000500c7u, 0x0000026fu, + 0x0000324fu, 0x0000324du, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00003252u, 0x0000324fu, 0x0000897eu, + 0x000500c2u, 0x0000026fu, 0x00003255u, 0x0000324fu, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00003256u, + 0x00003252u, 0x00003255u, 0x000500c7u, 0x00000006u, 0x00003258u, 0x00003228u, 0x000002f6u, 0x00050084u, + 0x00000006u, 0x00003259u, 0x00003258u, 0x00000659u, 0x00040071u, 0x0000065du, 0x0000325bu, 0x00003256u, + 0x0004007cu, 0x0000065cu, 0x0000325cu, 0x0000325bu, 0x00040071u, 0x00000011u, 0x0000325eu, 0x00003259u, + 0x0004007cu, 0x00000012u, 0x0000325fu, 0x0000325eu, 0x00050051u, 0x00000012u, 0x00003260u, 0x0000325cu, + 0x00000000u, 0x00050051u, 0x00000012u, 0x00003261u, 0x0000325cu, 0x00000001u, 0x00050051u, 0x00000012u, + 0x00003262u, 0x0000325cu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003263u, 0x00003260u, 0x00003261u, + 0x00003262u, 0x0000325fu, 0x000200f9u, 0x00003230u, 0x000200f8u, 0x0000322au, 0x000500c2u, 0x00000006u, + 0x00003237u, 0x00003228u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00003239u, 0x00003228u, 0x00000659u, + 0x00040071u, 0x00000011u, 0x0000323bu, 0x00003237u, 0x0004007cu, 0x00000012u, 0x0000323cu, 0x0000323bu, + 0x00040071u, 0x00000011u, 0x00003244u, 0x00003239u, 0x0004007cu, 0x00000012u, 0x00003245u, 0x00003244u, + 0x00070050u, 0x00000013u, 0x00003246u, 0x0000323cu, 0x0000323cu, 0x0000323cu, 0x00003245u, 0x000200f9u, + 0x00003230u, 0x000200f8u, 0x00003230u, 0x000700f5u, 0x00000013u, 0x00006bb1u, 0x00003246u, 0x0000322au, + 0x00003263u, 0x0000322du, 0x000200f9u, 0x000028b7u, 0x000200f8u, 0x000028b7u, 0x000700f5u, 0x00000013u, + 0x00006d94u, 0x00006bf1u, 0x00003156u, 0x00006bb1u, 0x00003230u, 0x000700f5u, 0x00000013u, 0x00006d18u, + 0x00006bf1u, 0x00003156u, 0x00006bacu, 0x00003230u, 0x000300f7u, 0x000028c3u, 0x00000000u, 0x000400fau, + 0x000027fdu, 0x000028b9u, 0x000028c3u, 0x000200f8u, 0x000028b9u, 0x00050050u, 0x00000058u, 0x000028bcu, + 0x000089aeu, 0x000089adu, 0x0004007cu, 0x000000abu, 0x000028bdu, 0x000028bcu, 0x00050051u, 0x00000006u, + 0x00003272u, 0x000028bdu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003273u, 0x00002637u, 0x00003272u, + 0x00050080u, 0x00000006u, 0x00003274u, 0x00002635u, 0x00003273u, 0x00050051u, 0x00000006u, 0x00003276u, + 0x000028bdu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00003278u, 0x00003274u, 0x00003276u, 0x000500c7u, + 0x00000006u, 0x0000327au, 0x00003278u, 0x00000746u, 0x000500c7u, 0x00000006u, 0x0000327eu, 0x00003272u, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000327fu, 0x0000327eu, 0x000001abu, 0x000500c6u, 0x00000006u, + 0x00003281u, 0x0000327au, 0x0000327fu, 0x000500c6u, 0x00000006u, 0x00003283u, 0x00003281u, 0x000002fdu, + 0x00080041u, 0x000006aau, 0x00003286u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003283u, + 0x0004003du, 0x0000000fu, 0x00003287u, 0x00003286u, 0x00040071u, 0x00000006u, 0x00003288u, 0x00003287u, + 0x000500c4u, 0x00000006u, 0x0000328au, 0x00003288u, 0x000001abu, 0x00050080u, 0x00000006u, 0x0000328cu, + 0x0000328au, 0x000002fdu, 0x000500c6u, 0x00000006u, 0x0000328fu, 0x0000328cu, 0x0000282fu, 0x000500c5u, + 0x00000006u, 0x00003292u, 0x00000777u, 0x0000328fu, 0x00080041u, 0x0000077au, 0x00003293u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003292u, 0x0004003du, 0x00000011u, 0x00003294u, 0x00003293u, + 0x00040071u, 0x00000006u, 0x00003295u, 0x00003294u, 0x000300f7u, 0x0000329du, 0x00000000u, 0x000400fau, + 0x00001b29u, 0x00003297u, 0x0000329au, 0x000200f8u, 0x0000329au, 0x00060050u, 0x0000026fu, 0x000032b9u, + 0x00003295u, 0x00003295u, 0x00003295u, 0x000500c2u, 0x0000026fu, 0x000032bau, 0x000032b9u, 0x0000064au, + 0x000500c7u, 0x0000026fu, 0x000032bcu, 0x000032bau, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x000032bfu, + 0x000032bcu, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x000032c2u, 0x000032bcu, 0x0000897fu, 0x000500c5u, + 0x0000026fu, 0x000032c3u, 0x000032bfu, 0x000032c2u, 0x000500c7u, 0x00000006u, 0x000032c5u, 0x00003295u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x000032c6u, 0x000032c5u, 0x00000659u, 0x00040071u, 0x0000065du, + 0x000032c8u, 0x000032c3u, 0x0004007cu, 0x0000065cu, 0x000032c9u, 0x000032c8u, 0x00040071u, 0x00000011u, + 0x000032cbu, 0x000032c6u, 0x0004007cu, 0x00000012u, 0x000032ccu, 0x000032cbu, 0x00050051u, 0x00000012u, + 0x000032cdu, 0x000032c9u, 0x00000000u, 0x00050051u, 0x00000012u, 0x000032ceu, 0x000032c9u, 0x00000001u, + 0x00050051u, 0x00000012u, 0x000032cfu, 0x000032c9u, 0x00000002u, 0x00070050u, 0x00000013u, 0x000032d0u, + 0x000032cdu, 0x000032ceu, 0x000032cfu, 0x000032ccu, 0x000200f9u, 0x0000329du, 0x000200f8u, 0x00003297u, + 0x000500c2u, 0x00000006u, 0x000032a4u, 0x00003295u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x000032a6u, + 0x00003295u, 0x00000659u, 0x00040071u, 0x00000011u, 0x000032a8u, 0x000032a4u, 0x0004007cu, 0x00000012u, + 0x000032a9u, 0x000032a8u, 0x00040071u, 0x00000011u, 0x000032b1u, 0x000032a6u, 0x0004007cu, 0x00000012u, + 0x000032b2u, 0x000032b1u, 0x00070050u, 0x00000013u, 0x000032b3u, 0x000032a9u, 0x000032a9u, 0x000032a9u, + 0x000032b2u, 0x000200f9u, 0x0000329du, 0x000200f8u, 0x0000329du, 0x000700f5u, 0x00000013u, 0x00006bb7u, + 0x000032b3u, 0x00003297u, 0x000032d0u, 0x0000329au, 0x000200f9u, 0x000028c3u, 0x000200f8u, 0x000028c3u, + 0x000700f5u, 0x00000013u, 0x00006e0du, 0x00006bf1u, 0x000028b7u, 0x00006bb7u, 0x0000329du, 0x000200f9u, + 0x000028c4u, 0x000200f8u, 0x00002860u, 0x0004007cu, 0x000000abu, 0x00002862u, 0x00006ba4u, 0x00040071u, + 0x00000006u, 0x00002865u, 0x0000263du, 0x000600a9u, 0x00000008u, 0x00002867u, 0x00002809u, 0x000001aeu, + 0x0000019eu, 0x0004007cu, 0x00000006u, 0x00002868u, 0x00002867u, 0x00050051u, 0x00000006u, 0x00002f3cu, + 0x00002862u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00002f3du, 0x00002637u, 0x00002f3cu, 0x00050080u, + 0x00000006u, 0x00002f3eu, 0x00002635u, 0x00002f3du, 0x00050051u, 0x00000006u, 0x00002f40u, 0x00002862u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00002f41u, 0x00002f40u, 0x000001a8u, 0x00050080u, 0x00000006u, + 0x00002f43u, 0x00002f3eu, 0x00002f41u, 0x000500c7u, 0x00000006u, 0x00002f45u, 0x00002f43u, 0x00000746u, + 0x000400c8u, 0x00000006u, 0x00002f48u, 0x00002f40u, 0x000500c7u, 0x00000006u, 0x00002f49u, 0x00002f48u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x00002f4au, 0x00002f49u, 0x00000694u, 0x000500c7u, 0x00000006u, + 0x00002f4eu, 0x00002f3cu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00002f4fu, 0x00002f4eu, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x00002f51u, 0x00002f45u, 0x00002f4fu, 0x000500c6u, 0x00000006u, 0x00002f53u, + 0x00002f51u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00002f56u, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00002f53u, 0x0004003du, 0x0000000fu, 0x00002f57u, 0x00002f56u, 0x00040071u, 0x00000006u, + 0x00002f58u, 0x00002f57u, 0x000500c2u, 0x00000006u, 0x00002f5bu, 0x00002f58u, 0x00002f4au, 0x000500c7u, + 0x00000006u, 0x00002f5cu, 0x00002f5bu, 0x000006b1u, 0x000500c4u, 0x00000006u, 0x00002f5eu, 0x00002865u, + 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00002f60u, 0x00002f5cu, 0x00002f5eu, 0x000500c4u, 0x00000006u, + 0x00002f62u, 0x00002f60u, 0x000001abu, 0x00050080u, 0x00000006u, 0x00002f64u, 0x00002f62u, 0x00002868u, + 0x000500c6u, 0x00000006u, 0x00002f67u, 0x00002f64u, 0x0000282fu, 0x000500c5u, 0x00000006u, 0x00002f6au, + 0x00000777u, 0x00002f67u, 0x00080041u, 0x0000077au, 0x00002f6bu, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00002f6au, 0x0004003du, 0x00000011u, 0x00002f6cu, 0x00002f6bu, 0x00040071u, 0x00000006u, + 0x00002f6du, 0x00002f6cu, 0x000300f7u, 0x00002f75u, 0x00000000u, 0x000400fau, 0x00001b29u, 0x00002f6fu, + 0x00002f72u, 0x000200f8u, 0x00002f72u, 0x00060050u, 0x0000026fu, 0x00002f91u, 0x00002f6du, 0x00002f6du, + 0x00002f6du, 0x000500c2u, 0x0000026fu, 0x00002f92u, 0x00002f91u, 0x0000064au, 0x000500c7u, 0x0000026fu, + 0x00002f94u, 0x00002f92u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00002f97u, 0x00002f94u, 0x0000897eu, + 0x000500c2u, 0x0000026fu, 0x00002f9au, 0x00002f94u, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00002f9bu, + 0x00002f97u, 0x00002f9au, 0x000500c7u, 0x00000006u, 0x00002f9du, 0x00002f6du, 0x000002f6u, 0x00050084u, + 0x00000006u, 0x00002f9eu, 0x00002f9du, 0x00000659u, 0x00040071u, 0x0000065du, 0x00002fa0u, 0x00002f9bu, + 0x0004007cu, 0x0000065cu, 0x00002fa1u, 0x00002fa0u, 0x00040071u, 0x00000011u, 0x00002fa3u, 0x00002f9eu, + 0x0004007cu, 0x00000012u, 0x00002fa4u, 0x00002fa3u, 0x00050051u, 0x00000012u, 0x00002fa5u, 0x00002fa1u, + 0x00000000u, 0x00050051u, 0x00000012u, 0x00002fa6u, 0x00002fa1u, 0x00000001u, 0x00050051u, 0x00000012u, + 0x00002fa7u, 0x00002fa1u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00002fa8u, 0x00002fa5u, 0x00002fa6u, + 0x00002fa7u, 0x00002fa4u, 0x000200f9u, 0x00002f75u, 0x000200f8u, 0x00002f6fu, 0x000500c2u, 0x00000006u, + 0x00002f7cu, 0x00002f6du, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00002f7eu, 0x00002f6du, 0x00000659u, + 0x00040071u, 0x00000011u, 0x00002f80u, 0x00002f7cu, 0x0004007cu, 0x00000012u, 0x00002f81u, 0x00002f80u, + 0x00040071u, 0x00000011u, 0x00002f89u, 0x00002f7eu, 0x0004007cu, 0x00000012u, 0x00002f8au, 0x00002f89u, + 0x00070050u, 0x00000013u, 0x00002f8bu, 0x00002f81u, 0x00002f81u, 0x00002f81u, 0x00002f8au, 0x000200f9u, + 0x00002f75u, 0x000200f8u, 0x00002f75u, 0x000700f5u, 0x00000013u, 0x00006bb8u, 0x00002f8bu, 0x00002f6fu, + 0x00002fa8u, 0x00002f72u, 0x000300f7u, 0x00002888u, 0x00000000u, 0x000400fau, 0x00001b68u, 0x0000286fu, + 0x00002888u, 0x000200f8u, 0x0000286fu, 0x00050050u, 0x00000058u, 0x00002872u, 0x000089aeu, 0x000027f1u, + 0x0004007cu, 0x000000abu, 0x00002873u, 0x00002872u, 0x00050051u, 0x00000006u, 0x00002fb8u, 0x00002873u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00002fb9u, 0x00002637u, 0x00002fb8u, 0x00050080u, 0x00000006u, + 0x00002fbau, 0x00002635u, 0x00002fb9u, 0x00050051u, 0x00000006u, 0x00002fbcu, 0x00002873u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00002fbdu, 0x00002fbcu, 0x000001a8u, 0x00050080u, 0x00000006u, 0x00002fbfu, + 0x00002fbau, 0x00002fbdu, 0x000500c7u, 0x00000006u, 0x00002fc1u, 0x00002fbfu, 0x00000746u, 0x000400c8u, + 0x00000006u, 0x00002fc4u, 0x00002fbcu, 0x000500c7u, 0x00000006u, 0x00002fc5u, 0x00002fc4u, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x00002fc6u, 0x00002fc5u, 0x00000694u, 0x000500c7u, 0x00000006u, 0x00002fcau, + 0x00002fb8u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00002fcbu, 0x00002fcau, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00002fcdu, 0x00002fc1u, 0x00002fcbu, 0x000500c6u, 0x00000006u, 0x00002fcfu, 0x00002fcdu, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x00002fd2u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00002fcfu, 0x0004003du, 0x0000000fu, 0x00002fd3u, 0x00002fd2u, 0x00040071u, 0x00000006u, 0x00002fd4u, + 0x00002fd3u, 0x000500c2u, 0x00000006u, 0x00002fd7u, 0x00002fd4u, 0x00002fc6u, 0x000500c7u, 0x00000006u, + 0x00002fd8u, 0x00002fd7u, 0x000006b1u, 0x000500c5u, 0x00000006u, 0x00002fdcu, 0x00002fd8u, 0x00002f5eu, + 0x000500c4u, 0x00000006u, 0x00002fdeu, 0x00002fdcu, 0x000001abu, 0x00050080u, 0x00000006u, 0x00002fe0u, + 0x00002fdeu, 0x000002f6u, 0x000500c6u, 0x00000006u, 0x00002fe3u, 0x00002fe0u, 0x0000282fu, 0x000500c5u, + 0x00000006u, 0x00002fe6u, 0x00000777u, 0x00002fe3u, 0x00080041u, 0x0000077au, 0x00002fe7u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00002fe6u, 0x0004003du, 0x00000011u, 0x00002fe8u, 0x00002fe7u, + 0x00040071u, 0x00000006u, 0x00002fe9u, 0x00002fe8u, 0x000300f7u, 0x00002ff1u, 0x00000000u, 0x000400fau, + 0x00001b29u, 0x00002febu, 0x00002feeu, 0x000200f8u, 0x00002feeu, 0x00060050u, 0x0000026fu, 0x0000300du, + 0x00002fe9u, 0x00002fe9u, 0x00002fe9u, 0x000500c2u, 0x0000026fu, 0x0000300eu, 0x0000300du, 0x0000064au, + 0x000500c7u, 0x0000026fu, 0x00003010u, 0x0000300eu, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00003013u, + 0x00003010u, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00003016u, 0x00003010u, 0x0000897fu, 0x000500c5u, + 0x0000026fu, 0x00003017u, 0x00003013u, 0x00003016u, 0x000500c7u, 0x00000006u, 0x00003019u, 0x00002fe9u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x0000301au, 0x00003019u, 0x00000659u, 0x00040071u, 0x0000065du, + 0x0000301cu, 0x00003017u, 0x0004007cu, 0x0000065cu, 0x0000301du, 0x0000301cu, 0x00040071u, 0x00000011u, + 0x0000301fu, 0x0000301au, 0x0004007cu, 0x00000012u, 0x00003020u, 0x0000301fu, 0x00050051u, 0x00000012u, + 0x00003021u, 0x0000301du, 0x00000000u, 0x00050051u, 0x00000012u, 0x00003022u, 0x0000301du, 0x00000001u, + 0x00050051u, 0x00000012u, 0x00003023u, 0x0000301du, 0x00000002u, 0x00070050u, 0x00000013u, 0x00003024u, + 0x00003021u, 0x00003022u, 0x00003023u, 0x00003020u, 0x000200f9u, 0x00002ff1u, 0x000200f8u, 0x00002febu, + 0x000500c2u, 0x00000006u, 0x00002ff8u, 0x00002fe9u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00002ffau, + 0x00002fe9u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00002ffcu, 0x00002ff8u, 0x0004007cu, 0x00000012u, + 0x00002ffdu, 0x00002ffcu, 0x00040071u, 0x00000011u, 0x00003005u, 0x00002ffau, 0x0004007cu, 0x00000012u, + 0x00003006u, 0x00003005u, 0x00070050u, 0x00000013u, 0x00003007u, 0x00002ffdu, 0x00002ffdu, 0x00002ffdu, + 0x00003006u, 0x000200f9u, 0x00002ff1u, 0x000200f8u, 0x00002ff1u, 0x000700f5u, 0x00000013u, 0x00006bbbu, + 0x00003007u, 0x00002febu, 0x00003024u, 0x00002feeu, 0x00050050u, 0x00000058u, 0x0000287eu, 0x00006b57u, + 0x000089adu, 0x0004007cu, 0x000000abu, 0x0000287fu, 0x0000287eu, 0x00050051u, 0x00000006u, 0x00003034u, + 0x0000287fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00003035u, 0x00002637u, 0x00003034u, 0x00050080u, + 0x00000006u, 0x00003036u, 0x00002635u, 0x00003035u, 0x00050051u, 0x00000006u, 0x00003038u, 0x0000287fu, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00003039u, 0x00003038u, 0x000001a8u, 0x00050080u, 0x00000006u, + 0x0000303bu, 0x00003036u, 0x00003039u, 0x000500c7u, 0x00000006u, 0x0000303du, 0x0000303bu, 0x00000746u, + 0x000400c8u, 0x00000006u, 0x00003040u, 0x00003038u, 0x000500c7u, 0x00000006u, 0x00003041u, 0x00003040u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003042u, 0x00003041u, 0x00000694u, 0x000500c7u, 0x00000006u, + 0x00003046u, 0x00003034u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00003047u, 0x00003046u, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x00003049u, 0x0000303du, 0x00003047u, 0x000500c6u, 0x00000006u, 0x0000304bu, + 0x00003049u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x0000304eu, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x0000304bu, 0x0004003du, 0x0000000fu, 0x0000304fu, 0x0000304eu, 0x00040071u, 0x00000006u, + 0x00003050u, 0x0000304fu, 0x000500c2u, 0x00000006u, 0x00003053u, 0x00003050u, 0x00003042u, 0x000500c7u, + 0x00000006u, 0x00003054u, 0x00003053u, 0x000006b1u, 0x000500c5u, 0x00000006u, 0x00003058u, 0x00003054u, + 0x00002f5eu, 0x000500c4u, 0x00000006u, 0x0000305au, 0x00003058u, 0x000001abu, 0x00050080u, 0x00000006u, + 0x0000305cu, 0x0000305au, 0x000002fau, 0x000500c6u, 0x00000006u, 0x0000305fu, 0x0000305cu, 0x0000282fu, + 0x000500c5u, 0x00000006u, 0x00003062u, 0x00000777u, 0x0000305fu, 0x00080041u, 0x0000077au, 0x00003063u, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00003062u, 0x0004003du, 0x00000011u, 0x00003064u, + 0x00003063u, 0x00040071u, 0x00000006u, 0x00003065u, 0x00003064u, 0x000300f7u, 0x0000306du, 0x00000000u, + 0x000400fau, 0x00001b29u, 0x00003067u, 0x0000306au, 0x000200f8u, 0x0000306au, 0x00060050u, 0x0000026fu, + 0x00003089u, 0x00003065u, 0x00003065u, 0x00003065u, 0x000500c2u, 0x0000026fu, 0x0000308au, 0x00003089u, + 0x0000064au, 0x000500c7u, 0x0000026fu, 0x0000308cu, 0x0000308au, 0x0000897du, 0x000500c4u, 0x0000026fu, + 0x0000308fu, 0x0000308cu, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00003092u, 0x0000308cu, 0x0000897fu, + 0x000500c5u, 0x0000026fu, 0x00003093u, 0x0000308fu, 0x00003092u, 0x000500c7u, 0x00000006u, 0x00003095u, + 0x00003065u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00003096u, 0x00003095u, 0x00000659u, 0x00040071u, + 0x0000065du, 0x00003098u, 0x00003093u, 0x0004007cu, 0x0000065cu, 0x00003099u, 0x00003098u, 0x00040071u, + 0x00000011u, 0x0000309bu, 0x00003096u, 0x0004007cu, 0x00000012u, 0x0000309cu, 0x0000309bu, 0x00050051u, + 0x00000012u, 0x0000309du, 0x00003099u, 0x00000000u, 0x00050051u, 0x00000012u, 0x0000309eu, 0x00003099u, + 0x00000001u, 0x00050051u, 0x00000012u, 0x0000309fu, 0x00003099u, 0x00000002u, 0x00070050u, 0x00000013u, + 0x000030a0u, 0x0000309du, 0x0000309eu, 0x0000309fu, 0x0000309cu, 0x000200f9u, 0x0000306du, 0x000200f8u, + 0x00003067u, 0x000500c2u, 0x00000006u, 0x00003074u, 0x00003065u, 0x000001dbu, 0x000500c7u, 0x00000006u, + 0x00003076u, 0x00003065u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00003078u, 0x00003074u, 0x0004007cu, + 0x00000012u, 0x00003079u, 0x00003078u, 0x00040071u, 0x00000011u, 0x00003081u, 0x00003076u, 0x0004007cu, + 0x00000012u, 0x00003082u, 0x00003081u, 0x00070050u, 0x00000013u, 0x00003083u, 0x00003079u, 0x00003079u, + 0x00003079u, 0x00003082u, 0x000200f9u, 0x0000306du, 0x000200f8u, 0x0000306du, 0x000700f5u, 0x00000013u, + 0x00006bbeu, 0x00003083u, 0x00003067u, 0x000030a0u, 0x0000306au, 0x000200f9u, 0x00002888u, 0x000200f8u, + 0x00002888u, 0x000700f5u, 0x00000013u, 0x00006d90u, 0x00006bf1u, 0x00002f75u, 0x00006bbeu, 0x0000306du, + 0x000700f5u, 0x00000013u, 0x00006d13u, 0x00006bf1u, 0x00002f75u, 0x00006bbbu, 0x0000306du, 0x000300f7u, + 0x00002897u, 0x00000000u, 0x000400fau, 0x000027fdu, 0x0000288au, 0x00002897u, 0x000200f8u, 0x0000288au, + 0x00050050u, 0x00000058u, 0x0000288du, 0x000089aeu, 0x000089adu, 0x0004007cu, 0x000000abu, 0x0000288eu, + 0x0000288du, 0x00050051u, 0x00000006u, 0x000030b0u, 0x0000288eu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000030b1u, 0x00002637u, 0x000030b0u, 0x00050080u, 0x00000006u, 0x000030b2u, 0x00002635u, 0x000030b1u, + 0x00050051u, 0x00000006u, 0x000030b4u, 0x0000288eu, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000030b5u, + 0x000030b4u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x000030b7u, 0x000030b2u, 0x000030b5u, 0x000500c7u, + 0x00000006u, 0x000030b9u, 0x000030b7u, 0x00000746u, 0x000400c8u, 0x00000006u, 0x000030bcu, 0x000030b4u, + 0x000500c7u, 0x00000006u, 0x000030bdu, 0x000030bcu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x000030beu, + 0x000030bdu, 0x00000694u, 0x000500c7u, 0x00000006u, 0x000030c2u, 0x000030b0u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x000030c3u, 0x000030c2u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000030c5u, 0x000030b9u, + 0x000030c3u, 0x000500c6u, 0x00000006u, 0x000030c7u, 0x000030c5u, 0x000002fdu, 0x00080041u, 0x000006aau, + 0x000030cau, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000030c7u, 0x0004003du, 0x0000000fu, + 0x000030cbu, 0x000030cau, 0x00040071u, 0x00000006u, 0x000030ccu, 0x000030cbu, 0x000500c2u, 0x00000006u, + 0x000030cfu, 0x000030ccu, 0x000030beu, 0x000500c7u, 0x00000006u, 0x000030d0u, 0x000030cfu, 0x000006b1u, + 0x000500c5u, 0x00000006u, 0x000030d4u, 0x000030d0u, 0x00002f5eu, 0x000500c4u, 0x00000006u, 0x000030d6u, + 0x000030d4u, 0x000001abu, 0x00050080u, 0x00000006u, 0x000030d8u, 0x000030d6u, 0x000002fdu, 0x000500c6u, + 0x00000006u, 0x000030dbu, 0x000030d8u, 0x0000282fu, 0x000500c5u, 0x00000006u, 0x000030deu, 0x00000777u, + 0x000030dbu, 0x00080041u, 0x0000077au, 0x000030dfu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x000030deu, 0x0004003du, 0x00000011u, 0x000030e0u, 0x000030dfu, 0x00040071u, 0x00000006u, 0x000030e1u, + 0x000030e0u, 0x000300f7u, 0x000030e9u, 0x00000000u, 0x000400fau, 0x00001b29u, 0x000030e3u, 0x000030e6u, + 0x000200f8u, 0x000030e6u, 0x00060050u, 0x0000026fu, 0x00003105u, 0x000030e1u, 0x000030e1u, 0x000030e1u, + 0x000500c2u, 0x0000026fu, 0x00003106u, 0x00003105u, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00003108u, + 0x00003106u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x0000310bu, 0x00003108u, 0x0000897eu, 0x000500c2u, + 0x0000026fu, 0x0000310eu, 0x00003108u, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x0000310fu, 0x0000310bu, + 0x0000310eu, 0x000500c7u, 0x00000006u, 0x00003111u, 0x000030e1u, 0x000002f6u, 0x00050084u, 0x00000006u, + 0x00003112u, 0x00003111u, 0x00000659u, 0x00040071u, 0x0000065du, 0x00003114u, 0x0000310fu, 0x0004007cu, + 0x0000065cu, 0x00003115u, 0x00003114u, 0x00040071u, 0x00000011u, 0x00003117u, 0x00003112u, 0x0004007cu, + 0x00000012u, 0x00003118u, 0x00003117u, 0x00050051u, 0x00000012u, 0x00003119u, 0x00003115u, 0x00000000u, + 0x00050051u, 0x00000012u, 0x0000311au, 0x00003115u, 0x00000001u, 0x00050051u, 0x00000012u, 0x0000311bu, + 0x00003115u, 0x00000002u, 0x00070050u, 0x00000013u, 0x0000311cu, 0x00003119u, 0x0000311au, 0x0000311bu, + 0x00003118u, 0x000200f9u, 0x000030e9u, 0x000200f8u, 0x000030e3u, 0x000500c2u, 0x00000006u, 0x000030f0u, + 0x000030e1u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x000030f2u, 0x000030e1u, 0x00000659u, 0x00040071u, + 0x00000011u, 0x000030f4u, 0x000030f0u, 0x0004007cu, 0x00000012u, 0x000030f5u, 0x000030f4u, 0x00040071u, + 0x00000011u, 0x000030fdu, 0x000030f2u, 0x0004007cu, 0x00000012u, 0x000030feu, 0x000030fdu, 0x00070050u, + 0x00000013u, 0x000030ffu, 0x000030f5u, 0x000030f5u, 0x000030f5u, 0x000030feu, 0x000200f9u, 0x000030e9u, + 0x000200f8u, 0x000030e9u, 0x000700f5u, 0x00000013u, 0x00006bc4u, 0x000030ffu, 0x000030e3u, 0x0000311cu, + 0x000030e6u, 0x000200f9u, 0x00002897u, 0x000200f8u, 0x00002897u, 0x000700f5u, 0x00000013u, 0x00006e08u, + 0x00006bf1u, 0x00002888u, 0x00006bc4u, 0x000030e9u, 0x000200f9u, 0x000028c4u, 0x000200f8u, 0x00002834u, + 0x0004007cu, 0x000000abu, 0x00002836u, 0x00006ba4u, 0x000600a9u, 0x00000008u, 0x00002838u, 0x00002809u, + 0x000001aeu, 0x0000019eu, 0x0004007cu, 0x00000006u, 0x00002839u, 0x00002838u, 0x00050051u, 0x00000006u, + 0x00002d7bu, 0x00002836u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00002d7cu, 0x00002637u, 0x00002d7bu, + 0x00050080u, 0x00000006u, 0x00002d7du, 0x00002635u, 0x00002d7cu, 0x00050051u, 0x00000006u, 0x00002d7fu, + 0x00002836u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00002d80u, 0x00002d7fu, 0x000002fau, 0x00050080u, + 0x00000006u, 0x00002d82u, 0x00002d7du, 0x00002d80u, 0x000500c7u, 0x00000006u, 0x00002d84u, 0x00002d82u, + 0x00000746u, 0x000500c2u, 0x00000006u, 0x00002d86u, 0x00002d84u, 0x000001a8u, 0x000500c7u, 0x00000006u, + 0x00002d89u, 0x00002d7bu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00002d8au, 0x00002d89u, 0x000001a8u, + 0x000500c6u, 0x00000006u, 0x00002d8cu, 0x00002d86u, 0x00002d8au, 0x000500c6u, 0x00000006u, 0x00002d8eu, + 0x00002d8cu, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00002d91u, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00002d8eu, 0x0004003du, 0x00000011u, 0x00002d92u, 0x00002d91u, 0x00040071u, 0x00000006u, + 0x00002d93u, 0x00002d92u, 0x000500c2u, 0x00000006u, 0x00002d95u, 0x00002d93u, 0x000001b7u, 0x000500c7u, + 0x00000006u, 0x00002d96u, 0x00002d95u, 0x00000818u, 0x00050080u, 0x00000006u, 0x00002d98u, 0x00002d96u, + 0x00002839u, 0x000500c6u, 0x00000006u, 0x00002d9bu, 0x00002d98u, 0x0000282fu, 0x000500c5u, 0x00000006u, + 0x00002d9eu, 0x00000777u, 0x00002d9bu, 0x00080041u, 0x0000077au, 0x00002d9fu, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00002d9eu, 0x0004003du, 0x00000011u, 0x00002da0u, 0x00002d9fu, 0x00040071u, + 0x00000006u, 0x00002da1u, 0x00002da0u, 0x000300f7u, 0x00002da9u, 0x00000000u, 0x000400fau, 0x00001b29u, + 0x00002da3u, 0x00002da6u, 0x000200f8u, 0x00002da6u, 0x00060050u, 0x0000026fu, 0x00002dc5u, 0x00002da1u, + 0x00002da1u, 0x00002da1u, 0x000500c2u, 0x0000026fu, 0x00002dc6u, 0x00002dc5u, 0x0000064au, 0x000500c7u, + 0x0000026fu, 0x00002dc8u, 0x00002dc6u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00002dcbu, 0x00002dc8u, + 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00002dceu, 0x00002dc8u, 0x0000897fu, 0x000500c5u, 0x0000026fu, + 0x00002dcfu, 0x00002dcbu, 0x00002dceu, 0x000500c7u, 0x00000006u, 0x00002dd1u, 0x00002da1u, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x00002dd2u, 0x00002dd1u, 0x00000659u, 0x00040071u, 0x0000065du, 0x00002dd4u, + 0x00002dcfu, 0x0004007cu, 0x0000065cu, 0x00002dd5u, 0x00002dd4u, 0x00040071u, 0x00000011u, 0x00002dd7u, + 0x00002dd2u, 0x0004007cu, 0x00000012u, 0x00002dd8u, 0x00002dd7u, 0x00050051u, 0x00000012u, 0x00002dd9u, + 0x00002dd5u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00002ddau, 0x00002dd5u, 0x00000001u, 0x00050051u, + 0x00000012u, 0x00002ddbu, 0x00002dd5u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00002ddcu, 0x00002dd9u, + 0x00002ddau, 0x00002ddbu, 0x00002dd8u, 0x000200f9u, 0x00002da9u, 0x000200f8u, 0x00002da3u, 0x000500c2u, + 0x00000006u, 0x00002db0u, 0x00002da1u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00002db2u, 0x00002da1u, + 0x00000659u, 0x00040071u, 0x00000011u, 0x00002db4u, 0x00002db0u, 0x0004007cu, 0x00000012u, 0x00002db5u, + 0x00002db4u, 0x00040071u, 0x00000011u, 0x00002dbdu, 0x00002db2u, 0x0004007cu, 0x00000012u, 0x00002dbeu, + 0x00002dbdu, 0x00070050u, 0x00000013u, 0x00002dbfu, 0x00002db5u, 0x00002db5u, 0x00002db5u, 0x00002dbeu, + 0x000200f9u, 0x00002da9u, 0x000200f8u, 0x00002da9u, 0x000700f5u, 0x00000013u, 0x00006bc5u, 0x00002dbfu, + 0x00002da3u, 0x00002ddcu, 0x00002da6u, 0x000300f7u, 0x00002853u, 0x00000000u, 0x000400fau, 0x00001b68u, + 0x00002840u, 0x00002853u, 0x000200f8u, 0x00002840u, 0x00050050u, 0x00000058u, 0x00002843u, 0x000089aeu, + 0x000027f1u, 0x0004007cu, 0x000000abu, 0x00002844u, 0x00002843u, 0x00050051u, 0x00000006u, 0x00002debu, + 0x00002844u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00002decu, 0x00002637u, 0x00002debu, 0x00050080u, + 0x00000006u, 0x00002dedu, 0x00002635u, 0x00002decu, 0x00050051u, 0x00000006u, 0x00002defu, 0x00002844u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00002df0u, 0x00002defu, 0x000002fau, 0x00050080u, 0x00000006u, + 0x00002df2u, 0x00002dedu, 0x00002df0u, 0x000500c7u, 0x00000006u, 0x00002df4u, 0x00002df2u, 0x00000746u, + 0x000500c2u, 0x00000006u, 0x00002df6u, 0x00002df4u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00002df9u, + 0x00002debu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00002dfau, 0x00002df9u, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x00002dfcu, 0x00002df6u, 0x00002dfau, 0x000500c6u, 0x00000006u, 0x00002dfeu, 0x00002dfcu, + 0x000002f6u, 0x00080041u, 0x0000077au, 0x00002e01u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00002dfeu, 0x0004003du, 0x00000011u, 0x00002e02u, 0x00002e01u, 0x00040071u, 0x00000006u, 0x00002e03u, + 0x00002e02u, 0x000500c2u, 0x00000006u, 0x00002e05u, 0x00002e03u, 0x000001b7u, 0x000500c7u, 0x00000006u, + 0x00002e06u, 0x00002e05u, 0x00000818u, 0x00050080u, 0x00000006u, 0x00002e08u, 0x00002e06u, 0x000002f6u, + 0x000500c6u, 0x00000006u, 0x00002e0bu, 0x00002e08u, 0x0000282fu, 0x000500c5u, 0x00000006u, 0x00002e0eu, + 0x00000777u, 0x00002e0bu, 0x00080041u, 0x0000077au, 0x00002e0fu, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00002e0eu, 0x0004003du, 0x00000011u, 0x00002e10u, 0x00002e0fu, 0x00040071u, 0x00000006u, + 0x00002e11u, 0x00002e10u, 0x000300f7u, 0x00002e19u, 0x00000000u, 0x000400fau, 0x00001b29u, 0x00002e13u, + 0x00002e16u, 0x000200f8u, 0x00002e16u, 0x00060050u, 0x0000026fu, 0x00002e35u, 0x00002e11u, 0x00002e11u, + 0x00002e11u, 0x000500c2u, 0x0000026fu, 0x00002e36u, 0x00002e35u, 0x0000064au, 0x000500c7u, 0x0000026fu, + 0x00002e38u, 0x00002e36u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00002e3bu, 0x00002e38u, 0x0000897eu, + 0x000500c2u, 0x0000026fu, 0x00002e3eu, 0x00002e38u, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00002e3fu, + 0x00002e3bu, 0x00002e3eu, 0x000500c7u, 0x00000006u, 0x00002e41u, 0x00002e11u, 0x000002f6u, 0x00050084u, + 0x00000006u, 0x00002e42u, 0x00002e41u, 0x00000659u, 0x00040071u, 0x0000065du, 0x00002e44u, 0x00002e3fu, + 0x0004007cu, 0x0000065cu, 0x00002e45u, 0x00002e44u, 0x00040071u, 0x00000011u, 0x00002e47u, 0x00002e42u, + 0x0004007cu, 0x00000012u, 0x00002e48u, 0x00002e47u, 0x00050051u, 0x00000012u, 0x00002e49u, 0x00002e45u, + 0x00000000u, 0x00050051u, 0x00000012u, 0x00002e4au, 0x00002e45u, 0x00000001u, 0x00050051u, 0x00000012u, + 0x00002e4bu, 0x00002e45u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00002e4cu, 0x00002e49u, 0x00002e4au, + 0x00002e4bu, 0x00002e48u, 0x000200f9u, 0x00002e19u, 0x000200f8u, 0x00002e13u, 0x000500c2u, 0x00000006u, + 0x00002e20u, 0x00002e11u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00002e22u, 0x00002e11u, 0x00000659u, + 0x00040071u, 0x00000011u, 0x00002e24u, 0x00002e20u, 0x0004007cu, 0x00000012u, 0x00002e25u, 0x00002e24u, + 0x00040071u, 0x00000011u, 0x00002e2du, 0x00002e22u, 0x0004007cu, 0x00000012u, 0x00002e2eu, 0x00002e2du, + 0x00070050u, 0x00000013u, 0x00002e2fu, 0x00002e25u, 0x00002e25u, 0x00002e25u, 0x00002e2eu, 0x000200f9u, + 0x00002e19u, 0x000200f8u, 0x00002e19u, 0x000700f5u, 0x00000013u, 0x00006bc8u, 0x00002e2fu, 0x00002e13u, + 0x00002e4cu, 0x00002e16u, 0x00050050u, 0x00000058u, 0x0000284cu, 0x00006b57u, 0x000089adu, 0x0004007cu, + 0x000000abu, 0x0000284du, 0x0000284cu, 0x00050051u, 0x00000006u, 0x00002e5bu, 0x0000284du, 0x00000001u, + 0x00050084u, 0x00000006u, 0x00002e5cu, 0x00002637u, 0x00002e5bu, 0x00050080u, 0x00000006u, 0x00002e5du, + 0x00002635u, 0x00002e5cu, 0x00050051u, 0x00000006u, 0x00002e5fu, 0x0000284du, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00002e60u, 0x00002e5fu, 0x000002fau, 0x00050080u, 0x00000006u, 0x00002e62u, 0x00002e5du, + 0x00002e60u, 0x000500c7u, 0x00000006u, 0x00002e64u, 0x00002e62u, 0x00000746u, 0x000500c2u, 0x00000006u, + 0x00002e66u, 0x00002e64u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00002e69u, 0x00002e5bu, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00002e6au, 0x00002e69u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00002e6cu, + 0x00002e66u, 0x00002e6au, 0x000500c6u, 0x00000006u, 0x00002e6eu, 0x00002e6cu, 0x000002f6u, 0x00080041u, + 0x0000077au, 0x00002e71u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00002e6eu, 0x0004003du, + 0x00000011u, 0x00002e72u, 0x00002e71u, 0x00040071u, 0x00000006u, 0x00002e73u, 0x00002e72u, 0x000500c2u, + 0x00000006u, 0x00002e75u, 0x00002e73u, 0x000001b7u, 0x000500c7u, 0x00000006u, 0x00002e76u, 0x00002e75u, + 0x00000818u, 0x00050080u, 0x00000006u, 0x00002e78u, 0x00002e76u, 0x000002fau, 0x000500c6u, 0x00000006u, + 0x00002e7bu, 0x00002e78u, 0x0000282fu, 0x000500c5u, 0x00000006u, 0x00002e7eu, 0x00000777u, 0x00002e7bu, + 0x00080041u, 0x0000077au, 0x00002e7fu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00002e7eu, + 0x0004003du, 0x00000011u, 0x00002e80u, 0x00002e7fu, 0x00040071u, 0x00000006u, 0x00002e81u, 0x00002e80u, + 0x000300f7u, 0x00002e89u, 0x00000000u, 0x000400fau, 0x00001b29u, 0x00002e83u, 0x00002e86u, 0x000200f8u, + 0x00002e86u, 0x00060050u, 0x0000026fu, 0x00002ea5u, 0x00002e81u, 0x00002e81u, 0x00002e81u, 0x000500c2u, + 0x0000026fu, 0x00002ea6u, 0x00002ea5u, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00002ea8u, 0x00002ea6u, + 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00002eabu, 0x00002ea8u, 0x0000897eu, 0x000500c2u, 0x0000026fu, + 0x00002eaeu, 0x00002ea8u, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00002eafu, 0x00002eabu, 0x00002eaeu, + 0x000500c7u, 0x00000006u, 0x00002eb1u, 0x00002e81u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00002eb2u, + 0x00002eb1u, 0x00000659u, 0x00040071u, 0x0000065du, 0x00002eb4u, 0x00002eafu, 0x0004007cu, 0x0000065cu, + 0x00002eb5u, 0x00002eb4u, 0x00040071u, 0x00000011u, 0x00002eb7u, 0x00002eb2u, 0x0004007cu, 0x00000012u, + 0x00002eb8u, 0x00002eb7u, 0x00050051u, 0x00000012u, 0x00002eb9u, 0x00002eb5u, 0x00000000u, 0x00050051u, + 0x00000012u, 0x00002ebau, 0x00002eb5u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00002ebbu, 0x00002eb5u, + 0x00000002u, 0x00070050u, 0x00000013u, 0x00002ebcu, 0x00002eb9u, 0x00002ebau, 0x00002ebbu, 0x00002eb8u, + 0x000200f9u, 0x00002e89u, 0x000200f8u, 0x00002e83u, 0x000500c2u, 0x00000006u, 0x00002e90u, 0x00002e81u, + 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00002e92u, 0x00002e81u, 0x00000659u, 0x00040071u, 0x00000011u, + 0x00002e94u, 0x00002e90u, 0x0004007cu, 0x00000012u, 0x00002e95u, 0x00002e94u, 0x00040071u, 0x00000011u, + 0x00002e9du, 0x00002e92u, 0x0004007cu, 0x00000012u, 0x00002e9eu, 0x00002e9du, 0x00070050u, 0x00000013u, + 0x00002e9fu, 0x00002e95u, 0x00002e95u, 0x00002e95u, 0x00002e9eu, 0x000200f9u, 0x00002e89u, 0x000200f8u, + 0x00002e89u, 0x000700f5u, 0x00000013u, 0x00006bcbu, 0x00002e9fu, 0x00002e83u, 0x00002ebcu, 0x00002e86u, + 0x000200f9u, 0x00002853u, 0x000200f8u, 0x00002853u, 0x000700f5u, 0x00000013u, 0x00006d8bu, 0x00006bf1u, + 0x00002da9u, 0x00006bcbu, 0x00002e89u, 0x000700f5u, 0x00000013u, 0x00006d0du, 0x00006bf1u, 0x00002da9u, + 0x00006bc8u, 0x00002e89u, 0x000300f7u, 0x0000285fu, 0x00000000u, 0x000400fau, 0x000027fdu, 0x00002855u, + 0x0000285fu, 0x000200f8u, 0x00002855u, 0x00050050u, 0x00000058u, 0x00002858u, 0x000089aeu, 0x000089adu, + 0x0004007cu, 0x000000abu, 0x00002859u, 0x00002858u, 0x00050051u, 0x00000006u, 0x00002ecbu, 0x00002859u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00002eccu, 0x00002637u, 0x00002ecbu, 0x00050080u, 0x00000006u, + 0x00002ecdu, 0x00002635u, 0x00002eccu, 0x00050051u, 0x00000006u, 0x00002ecfu, 0x00002859u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x00002ed0u, 0x00002ecfu, 0x000002fau, 0x00050080u, 0x00000006u, 0x00002ed2u, + 0x00002ecdu, 0x00002ed0u, 0x000500c7u, 0x00000006u, 0x00002ed4u, 0x00002ed2u, 0x00000746u, 0x000500c2u, + 0x00000006u, 0x00002ed6u, 0x00002ed4u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00002ed9u, 0x00002ecbu, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00002edau, 0x00002ed9u, 0x000001a8u, 0x000500c6u, 0x00000006u, + 0x00002edcu, 0x00002ed6u, 0x00002edau, 0x000500c6u, 0x00000006u, 0x00002edeu, 0x00002edcu, 0x000002f6u, + 0x00080041u, 0x0000077au, 0x00002ee1u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00002edeu, + 0x0004003du, 0x00000011u, 0x00002ee2u, 0x00002ee1u, 0x00040071u, 0x00000006u, 0x00002ee3u, 0x00002ee2u, + 0x000500c2u, 0x00000006u, 0x00002ee5u, 0x00002ee3u, 0x000001b7u, 0x000500c7u, 0x00000006u, 0x00002ee6u, + 0x00002ee5u, 0x00000818u, 0x00050080u, 0x00000006u, 0x00002ee8u, 0x00002ee6u, 0x000002fdu, 0x000500c6u, + 0x00000006u, 0x00002eebu, 0x00002ee8u, 0x0000282fu, 0x000500c5u, 0x00000006u, 0x00002eeeu, 0x00000777u, + 0x00002eebu, 0x00080041u, 0x0000077au, 0x00002eefu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00002eeeu, 0x0004003du, 0x00000011u, 0x00002ef0u, 0x00002eefu, 0x00040071u, 0x00000006u, 0x00002ef1u, + 0x00002ef0u, 0x000300f7u, 0x00002ef9u, 0x00000000u, 0x000400fau, 0x00001b29u, 0x00002ef3u, 0x00002ef6u, + 0x000200f8u, 0x00002ef6u, 0x00060050u, 0x0000026fu, 0x00002f15u, 0x00002ef1u, 0x00002ef1u, 0x00002ef1u, + 0x000500c2u, 0x0000026fu, 0x00002f16u, 0x00002f15u, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00002f18u, + 0x00002f16u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00002f1bu, 0x00002f18u, 0x0000897eu, 0x000500c2u, + 0x0000026fu, 0x00002f1eu, 0x00002f18u, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00002f1fu, 0x00002f1bu, + 0x00002f1eu, 0x000500c7u, 0x00000006u, 0x00002f21u, 0x00002ef1u, 0x000002f6u, 0x00050084u, 0x00000006u, + 0x00002f22u, 0x00002f21u, 0x00000659u, 0x00040071u, 0x0000065du, 0x00002f24u, 0x00002f1fu, 0x0004007cu, + 0x0000065cu, 0x00002f25u, 0x00002f24u, 0x00040071u, 0x00000011u, 0x00002f27u, 0x00002f22u, 0x0004007cu, + 0x00000012u, 0x00002f28u, 0x00002f27u, 0x00050051u, 0x00000012u, 0x00002f29u, 0x00002f25u, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00002f2au, 0x00002f25u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00002f2bu, + 0x00002f25u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00002f2cu, 0x00002f29u, 0x00002f2au, 0x00002f2bu, + 0x00002f28u, 0x000200f9u, 0x00002ef9u, 0x000200f8u, 0x00002ef3u, 0x000500c2u, 0x00000006u, 0x00002f00u, + 0x00002ef1u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00002f02u, 0x00002ef1u, 0x00000659u, 0x00040071u, + 0x00000011u, 0x00002f04u, 0x00002f00u, 0x0004007cu, 0x00000012u, 0x00002f05u, 0x00002f04u, 0x00040071u, + 0x00000011u, 0x00002f0du, 0x00002f02u, 0x0004007cu, 0x00000012u, 0x00002f0eu, 0x00002f0du, 0x00070050u, + 0x00000013u, 0x00002f0fu, 0x00002f05u, 0x00002f05u, 0x00002f05u, 0x00002f0eu, 0x000200f9u, 0x00002ef9u, + 0x000200f8u, 0x00002ef9u, 0x000700f5u, 0x00000013u, 0x00006bd1u, 0x00002f0fu, 0x00002ef3u, 0x00002f2cu, + 0x00002ef6u, 0x000200f9u, 0x0000285fu, 0x000200f8u, 0x0000285fu, 0x000700f5u, 0x00000013u, 0x00006e02u, + 0x00006bf1u, 0x00002853u, 0x00006bd1u, 0x00002ef9u, 0x000200f9u, 0x000028c4u, 0x000200f8u, 0x000028c4u, + 0x000900f5u, 0x00000013u, 0x00006e01u, 0x00006e02u, 0x0000285fu, 0x00006e08u, 0x00002897u, 0x00006e0du, + 0x000028c3u, 0x000900f5u, 0x00000013u, 0x00006d89u, 0x00006d8bu, 0x0000285fu, 0x00006d90u, 0x00002897u, + 0x00006d94u, 0x000028c3u, 0x000900f5u, 0x00000013u, 0x00006d0bu, 0x00006d0du, 0x0000285fu, 0x00006d13u, + 0x00002897u, 0x00006d18u, 0x000028c3u, 0x000900f5u, 0x00000013u, 0x00006c1cu, 0x00006bc5u, 0x0000285fu, + 0x00006bb8u, 0x00002897u, 0x00006ba5u, 0x000028c3u, 0x000200f9u, 0x000028c5u, 0x000200f8u, 0x000028c5u, + 0x000700f5u, 0x00000013u, 0x00006dbau, 0x00006bf1u, 0x00002825u, 0x00006e01u, 0x000028c4u, 0x000700f5u, + 0x00000013u, 0x00006d42u, 0x00006bf1u, 0x00002825u, 0x00006d89u, 0x000028c4u, 0x000700f5u, 0x00000013u, + 0x00006cc4u, 0x00006bf1u, 0x00002825u, 0x00006d0bu, 0x000028c4u, 0x000700f5u, 0x00000013u, 0x00006bd4u, + 0x00006bf1u, 0x00002825u, 0x00006c1cu, 0x000028c4u, 0x000200f9u, 0x00002aecu, 0x000200f8u, 0x00002aecu, + 0x000700f5u, 0x00000013u, 0x00006db9u, 0x00006dbau, 0x000028c5u, 0x00006e12u, 0x00002aebu, 0x000700f5u, + 0x00000013u, 0x00006d41u, 0x00006d42u, 0x000028c5u, 0x00006d97u, 0x00002aebu, 0x000700f5u, 0x00000013u, + 0x00006cc3u, 0x00006cc4u, 0x000028c5u, 0x00006d1cu, 0x00002aebu, 0x000700f5u, 0x00000013u, 0x00006bd3u, + 0x00006bd4u, 0x000028c5u, 0x00006c2cu, 0x00002aebu, 0x000300f7u, 0x00002c7cu, 0x00000000u, 0x000400fau, + 0x00002807u, 0x00002bc9u, 0x00002c3cu, 0x000200f8u, 0x00002c3cu, 0x000300f7u, 0x00002c7bu, 0x00000000u, + 0x000400fau, 0x000027fdu, 0x00002c3eu, 0x00002c4au, 0x000200f8u, 0x00002c4au, 0x000600a9u, 0x00000063u, + 0x000089afu, 0x00001b68u, 0x000027cbu, 0x00001b68u, 0x000300f7u, 0x00002c7au, 0x00000000u, 0x000400fau, + 0x000089afu, 0x00002c52u, 0x00002c78u, 0x000200f8u, 0x00002c78u, 0x000200f9u, 0x00002c7au, 0x000200f8u, + 0x00002c52u, 0x000300f7u, 0x00002c5cu, 0x00000000u, 0x000400fau, 0x00002809u, 0x00002c55u, 0x00002c5au, + 0x000200f8u, 0x00002c5au, 0x000200f9u, 0x00002c5cu, 0x000200f8u, 0x00002c55u, 0x0007004fu, 0x00000058u, + 0x00002c57u, 0x00006b54u, 0x00006b54u, 0x00000001u, 0x00000000u, 0x00050082u, 0x00000058u, 0x00002c59u, + 0x00008983u, 0x00002c57u, 0x000200f9u, 0x00002c5cu, 0x000200f8u, 0x00002c5cu, 0x000700f5u, 0x00000058u, + 0x00006cc0u, 0x00002c59u, 0x00002c55u, 0x00006b54u, 0x00002c5au, 0x00040072u, 0x0000011du, 0x00002c5eu, + 0x00006cc0u, 0x00050082u, 0x00000013u, 0x00002c61u, 0x00006cc3u, 0x00006bd3u, 0x00050051u, 0x00000012u, + 0x00002c63u, 0x00002c5eu, 0x00000000u, 0x00070050u, 0x00000013u, 0x00002c64u, 0x00002c63u, 0x00002c63u, + 0x00002c63u, 0x00002c63u, 0x00050084u, 0x00000013u, 0x00002c65u, 0x00002c61u, 0x00002c64u, 0x00050082u, + 0x00000013u, 0x00002c68u, 0x00006d41u, 0x00006bd3u, 0x00050051u, 0x00000012u, 0x00002c6au, 0x00002c5eu, + 0x00000001u, 0x00070050u, 0x00000013u, 0x00002c6bu, 0x00002c6au, 0x00002c6au, 0x00002c6au, 0x00002c6au, + 0x00050084u, 0x00000013u, 0x00002c6cu, 0x00002c68u, 0x00002c6bu, 0x00050080u, 0x00000013u, 0x00002c6eu, + 0x00002c65u, 0x00002c6cu, 0x00050080u, 0x00000013u, 0x00002c71u, 0x00002c6eu, 0x00008986u, 0x000500c3u, + 0x00000013u, 0x00002c74u, 0x00002c71u, 0x00008987u, 0x00050080u, 0x00000013u, 0x00002c77u, 0x00002c74u, + 0x00006bd3u, 0x000200f9u, 0x00002c7au, 0x000200f8u, 0x00002c7au, 0x000700f5u, 0x00000013u, 0x00006e77u, + 0x00002c77u, 0x00002c5cu, 0x00006bd3u, 0x00002c78u, 0x000200f9u, 0x00002c7bu, 0x000200f8u, 0x00002c3eu, + 0x00050080u, 0x00000013u, 0x00002c41u, 0x00006bd3u, 0x00006d41u, 0x00050080u, 0x00000013u, 0x00002c43u, + 0x00002c41u, 0x00006cc3u, 0x00050080u, 0x00000013u, 0x00002c45u, 0x00002c43u, 0x00006db9u, 0x00050080u, + 0x00000013u, 0x00002c47u, 0x00002c45u, 0x00008981u, 0x000500c3u, 0x00000013u, 0x00002c49u, 0x00002c47u, + 0x00008981u, 0x000200f9u, 0x00002c7bu, 0x000200f8u, 0x00002c7bu, 0x000700f5u, 0x00000013u, 0x00006e76u, + 0x00002c49u, 0x00002c3eu, 0x00006e77u, 0x00002c7au, 0x000200f9u, 0x00002c7cu, 0x000200f8u, 0x00002bc9u, + 0x000300f7u, 0x00002c3bu, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x00002bcbu, 0x00002c39u, 0x000200f8u, + 0x00002c39u, 0x000200f9u, 0x00002c3bu, 0x000200f8u, 0x00002bcbu, 0x000300f7u, 0x00002c31u, 0x00000000u, + 0x000400fau, 0x00001b68u, 0x00002bcdu, 0x00002c15u, 0x000200f8u, 0x00002c15u, 0x000300f7u, 0x00002c22u, + 0x00000000u, 0x000400fau, 0x000027ffu, 0x00002c1cu, 0x00002c1fu, 0x000200f8u, 0x00002c1fu, 0x0007004fu, + 0x0000011du, 0x00002c21u, 0x00006bd3u, 0x00006bd3u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00002c22u, + 0x000200f8u, 0x00002c1cu, 0x0007004fu, 0x0000011du, 0x00002c1eu, 0x00006db9u, 0x00006db9u, 0x00000002u, + 0x00000003u, 0x000200f9u, 0x00002c22u, 0x000200f8u, 0x00002c22u, 0x000700f5u, 0x0000011du, 0x00006e34u, + 0x00002c1eu, 0x00002c1cu, 0x00002c21u, 0x00002c1fu, 0x00050080u, 0x00000008u, 0x00002c27u, 0x0000281au, + 0x000027d5u, 0x000500afu, 0x00000063u, 0x00002c28u, 0x00002c27u, 0x00000979u, 0x000300f7u, 0x00002c2fu, + 0x00000000u, 0x000400fau, 0x00002c28u, 0x00002c29u, 0x00002c2cu, 0x000200f8u, 0x00002c2cu, 0x0007004fu, + 0x0000011du, 0x00002c2eu, 0x00006bd3u, 0x00006bd3u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00002c2fu, + 0x000200f8u, 0x00002c29u, 0x0007004fu, 0x0000011du, 0x00002c2bu, 0x00006db9u, 0x00006db9u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x00002c2fu, 0x000200f8u, 0x00002c2fu, 0x000700f5u, 0x0000011du, 0x00006e38u, + 0x00002c2bu, 0x00002c29u, 0x00002c2eu, 0x00002c2cu, 0x000200f9u, 0x00002c31u, 0x000200f8u, 0x00002bcdu, + 0x00050050u, 0x00000058u, 0x00002bd2u, 0x0000281au, 0x000027d5u, 0x000500aau, 0x00000453u, 0x00002bd3u, + 0x00002bd2u, 0x00000c1eu, 0x00050051u, 0x00000063u, 0x00002bd4u, 0x00002bd3u, 0x00000000u, 0x00050051u, + 0x00000063u, 0x00002bd5u, 0x00002bd3u, 0x00000001u, 0x00060050u, 0x0000105bu, 0x00002bd6u, 0x00001b56u, + 0x00002bd4u, 0x00002bd5u, 0x0004009bu, 0x00000063u, 0x00002bd7u, 0x00002bd6u, 0x000300f7u, 0x00002bf7u, + 0x00000000u, 0x000400fau, 0x00002bd7u, 0x00002bd9u, 0x00002be9u, 0x000200f8u, 0x00002be9u, 0x0007004fu, + 0x0000011du, 0x00002befu, 0x00006bd3u, 0x00006bd3u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000011du, + 0x00002bf1u, 0x00006cc3u, 0x00006cc3u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000011du, 0x00002bf3u, + 0x00006d41u, 0x00006d41u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000011du, 0x00002bf5u, 0x00006db9u, + 0x00006db9u, 0x00000000u, 0x00000001u, 0x00050080u, 0x00000008u, 0x00003f58u, 0x0000281au, 0x000027d5u, + 0x000500afu, 0x00000063u, 0x00003f5au, 0x00003f58u, 0x00000979u, 0x00050050u, 0x00000453u, 0x00003f5du, + 0x00003f5au, 0x00003f5au, 0x000600a9u, 0x0000011du, 0x00003f5eu, 0x00003f5du, 0x00002bf5u, 0x00002befu, + 0x000300f7u, 0x00003f68u, 0x00000000u, 0x000400fau, 0x00003f5au, 0x00003f61u, 0x00003f66u, 0x000200f8u, + 0x00003f66u, 0x000200f9u, 0x00003f68u, 0x000200f8u, 0x00003f61u, 0x0007004fu, 0x00000058u, 0x00003f63u, + 0x00002bd2u, 0x00002bd2u, 0x00000001u, 0x00000000u, 0x00050082u, 0x00000058u, 0x00003f65u, 0x00008983u, + 0x00003f63u, 0x000200f9u, 0x00003f68u, 0x000200f8u, 0x00003f68u, 0x000700f5u, 0x00000058u, 0x00006e39u, + 0x00003f65u, 0x00003f61u, 0x00002bd2u, 0x00003f66u, 0x00040072u, 0x0000011du, 0x00003f6au, 0x00006e39u, + 0x00050082u, 0x0000011du, 0x00003f6du, 0x00002bf1u, 0x00003f5eu, 0x00050051u, 0x00000012u, 0x00003f6fu, + 0x00003f6au, 0x00000000u, 0x00050050u, 0x0000011du, 0x00003f70u, 0x00003f6fu, 0x00003f6fu, 0x00050084u, + 0x0000011du, 0x00003f71u, 0x00003f6du, 0x00003f70u, 0x00050082u, 0x0000011du, 0x00003f74u, 0x00002bf3u, + 0x00003f5eu, 0x00050051u, 0x00000012u, 0x00003f76u, 0x00003f6au, 0x00000001u, 0x00050050u, 0x0000011du, + 0x00003f77u, 0x00003f76u, 0x00003f76u, 0x00050084u, 0x0000011du, 0x00003f78u, 0x00003f74u, 0x00003f77u, + 0x00050080u, 0x0000011du, 0x00003f7au, 0x00003f71u, 0x00003f78u, 0x00050080u, 0x0000011du, 0x00003f7du, + 0x00003f7au, 0x00008984u, 0x000500c3u, 0x0000011du, 0x00003f80u, 0x00003f7du, 0x00008985u, 0x00050080u, + 0x0000011du, 0x00003f83u, 0x00003f80u, 0x00003f5eu, 0x000200f9u, 0x00002bf7u, 0x000200f8u, 0x00002bd9u, + 0x0007004fu, 0x0000011du, 0x00002bdbu, 0x00006bd3u, 0x00006bd3u, 0x00000000u, 0x00000001u, 0x0007004fu, + 0x0000011du, 0x00002bddu, 0x00006cc3u, 0x00006cc3u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000011du, + 0x00002bdeu, 0x00002bdbu, 0x00002bddu, 0x0007004fu, 0x0000011du, 0x00002be0u, 0x00006db9u, 0x00006db9u, + 0x00000000u, 0x00000001u, 0x00050080u, 0x0000011du, 0x00002be1u, 0x00002bdeu, 0x00002be0u, 0x0007004fu, + 0x0000011du, 0x00002be3u, 0x00006d41u, 0x00006d41u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000011du, + 0x00002be4u, 0x00002be1u, 0x00002be3u, 0x00050080u, 0x0000011du, 0x00002be6u, 0x00002be4u, 0x00008982u, + 0x000500c3u, 0x0000011du, 0x00002be8u, 0x00002be6u, 0x00008982u, 0x000200f9u, 0x00002bf7u, 0x000200f8u, + 0x00002bf7u, 0x000700f5u, 0x0000011du, 0x00006e47u, 0x00002be8u, 0x00002bd9u, 0x00003f83u, 0x00003f68u, + 0x000300f7u, 0x00002c14u, 0x00000000u, 0x000400fau, 0x000027fdu, 0x00002bf9u, 0x00002c09u, 0x000200f8u, + 0x00002c09u, 0x0007004fu, 0x0000011du, 0x00002c0bu, 0x00006bd3u, 0x00006bd3u, 0x00000002u, 0x00000003u, + 0x0007004fu, 0x0000011du, 0x00002c0du, 0x00006cc3u, 0x00006cc3u, 0x00000002u, 0x00000003u, 0x0007004fu, + 0x0000011du, 0x00002c0fu, 0x00006d41u, 0x00006d41u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000011du, + 0x00002c11u, 0x00006db9u, 0x00006db9u, 0x00000002u, 0x00000003u, 0x00050050u, 0x00000453u, 0x00003f95u, + 0x000027ffu, 0x000027ffu, 0x000600a9u, 0x0000011du, 0x00003f96u, 0x00003f95u, 0x00002c11u, 0x00002c0bu, + 0x000300f7u, 0x00003fa0u, 0x00000000u, 0x000400fau, 0x000027ffu, 0x00003f99u, 0x00003f9eu, 0x000200f8u, + 0x00003f9eu, 0x000200f9u, 0x00003fa0u, 0x000200f8u, 0x00003f99u, 0x0007004fu, 0x00000058u, 0x00003f9bu, + 0x00006b54u, 0x00006b54u, 0x00000001u, 0x00000000u, 0x00050082u, 0x00000058u, 0x00003f9du, 0x00008983u, + 0x00003f9bu, 0x000200f9u, 0x00003fa0u, 0x000200f8u, 0x00003fa0u, 0x000700f5u, 0x00000058u, 0x00006e44u, + 0x00003f9du, 0x00003f99u, 0x00006b54u, 0x00003f9eu, 0x00040072u, 0x0000011du, 0x00003fa2u, 0x00006e44u, + 0x00050082u, 0x0000011du, 0x00003fa5u, 0x00002c0du, 0x00003f96u, 0x00050051u, 0x00000012u, 0x00003fa7u, + 0x00003fa2u, 0x00000000u, 0x00050050u, 0x0000011du, 0x00003fa8u, 0x00003fa7u, 0x00003fa7u, 0x00050084u, + 0x0000011du, 0x00003fa9u, 0x00003fa5u, 0x00003fa8u, 0x00050082u, 0x0000011du, 0x00003facu, 0x00002c0fu, + 0x00003f96u, 0x00050051u, 0x00000012u, 0x00003faeu, 0x00003fa2u, 0x00000001u, 0x00050050u, 0x0000011du, + 0x00003fafu, 0x00003faeu, 0x00003faeu, 0x00050084u, 0x0000011du, 0x00003fb0u, 0x00003facu, 0x00003fafu, + 0x00050080u, 0x0000011du, 0x00003fb2u, 0x00003fa9u, 0x00003fb0u, 0x00050080u, 0x0000011du, 0x00003fb5u, + 0x00003fb2u, 0x00008984u, 0x000500c3u, 0x0000011du, 0x00003fb8u, 0x00003fb5u, 0x00008985u, 0x00050080u, + 0x0000011du, 0x00003fbbu, 0x00003fb8u, 0x00003f96u, 0x000200f9u, 0x00002c14u, 0x000200f8u, 0x00002bf9u, + 0x0007004fu, 0x0000011du, 0x00002bfbu, 0x00006bd3u, 0x00006bd3u, 0x00000002u, 0x00000003u, 0x0007004fu, + 0x0000011du, 0x00002bfdu, 0x00006cc3u, 0x00006cc3u, 0x00000002u, 0x00000003u, 0x00050080u, 0x0000011du, + 0x00002bfeu, 0x00002bfbu, 0x00002bfdu, 0x0007004fu, 0x0000011du, 0x00002c00u, 0x00006db9u, 0x00006db9u, + 0x00000002u, 0x00000003u, 0x00050080u, 0x0000011du, 0x00002c01u, 0x00002bfeu, 0x00002c00u, 0x0007004fu, + 0x0000011du, 0x00002c03u, 0x00006d41u, 0x00006d41u, 0x00000002u, 0x00000003u, 0x00050080u, 0x0000011du, + 0x00002c04u, 0x00002c01u, 0x00002c03u, 0x00050080u, 0x0000011du, 0x00002c06u, 0x00002c04u, 0x00008982u, + 0x000500c3u, 0x0000011du, 0x00002c08u, 0x00002c06u, 0x00008982u, 0x000200f9u, 0x00002c14u, 0x000200f8u, + 0x00002c14u, 0x000700f5u, 0x0000011du, 0x00006e4au, 0x00002c08u, 0x00002bf9u, 0x00003fbbu, 0x00003fa0u, + 0x000200f9u, 0x00002c31u, 0x000200f8u, 0x00002c31u, 0x000700f5u, 0x0000011du, 0x00006e49u, 0x00006e4au, + 0x00002c14u, 0x00006e34u, 0x00002c2fu, 0x000700f5u, 0x0000011du, 0x00006e45u, 0x00006e47u, 0x00002c14u, + 0x00006e38u, 0x00002c2fu, 0x00050051u, 0x00000012u, 0x00002c34u, 0x00006e45u, 0x00000000u, 0x00050051u, + 0x00000012u, 0x00002c35u, 0x00006e45u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00002c36u, 0x00006e49u, + 0x00000000u, 0x00050051u, 0x00000012u, 0x00002c37u, 0x00006e49u, 0x00000001u, 0x00070050u, 0x00000013u, + 0x00002c38u, 0x00002c34u, 0x00002c35u, 0x00002c36u, 0x00002c37u, 0x000200f9u, 0x00002c3bu, 0x000200f8u, + 0x00002c3bu, 0x000700f5u, 0x00000013u, 0x00006e75u, 0x00002c38u, 0x00002c31u, 0x00006bd3u, 0x00002c39u, + 0x000200f9u, 0x00002c7cu, 0x000200f8u, 0x00002c7cu, 0x000700f5u, 0x00000013u, 0x00006e74u, 0x00006e75u, + 0x00002c3bu, 0x00006e76u, 0x00002c7bu, 0x000400a8u, 0x00000063u, 0x00002c7fu, 0x00001b68u, 0x000500a7u, + 0x00000063u, 0x00002c82u, 0x00002c7fu, 0x0000046eu, 0x000300f7u, 0x00002c87u, 0x00000000u, 0x000400fau, + 0x00002c82u, 0x00002c83u, 0x00002c87u, 0x000200f8u, 0x00002c83u, 0x00040072u, 0x00000009u, 0x00003fc5u, + 0x00006e74u, 0x000600cau, 0x00000009u, 0x00003fc6u, 0x00003fc5u, 0x0000019eu, 0x000001deu, 0x00050051u, + 0x00000008u, 0x00003fc8u, 0x00003fc6u, 0x00000002u, 0x00050051u, 0x00000012u, 0x00003fcau, 0x00002301u, + 0x00000000u, 0x00040072u, 0x00000008u, 0x00003fcbu, 0x00003fcau, 0x00050051u, 0x00000008u, 0x00003fcdu, + 0x00003fc6u, 0x00000001u, 0x00050084u, 0x00000008u, 0x00003fceu, 0x00003fcbu, 0x00003fcdu, 0x00050080u, + 0x00000008u, 0x00003fcfu, 0x00003fceu, 0x00000308u, 0x000500c3u, 0x00000008u, 0x00003fd0u, 0x00003fcfu, + 0x000001dbu, 0x00050080u, 0x00000008u, 0x00003fd1u, 0x00003fc8u, 0x00003fd0u, 0x00050051u, 0x00000012u, + 0x00003fd5u, 0x00002301u, 0x00000001u, 0x00040072u, 0x00000008u, 0x00003fd6u, 0x00003fd5u, 0x00050051u, + 0x00000008u, 0x00003fd8u, 0x00003fc6u, 0x00000000u, 0x00050084u, 0x00000008u, 0x00003fd9u, 0x00003fd6u, + 0x00003fd8u, 0x00050051u, 0x00000012u, 0x00003fdbu, 0x00002301u, 0x00000002u, 0x00040072u, 0x00000008u, + 0x00003fdcu, 0x00003fdbu, 0x00050084u, 0x00000008u, 0x00003fdfu, 0x00003fdcu, 0x00003fcdu, 0x00050080u, + 0x00000008u, 0x00003fe0u, 0x00003fd9u, 0x00003fdfu, 0x00050080u, 0x00000008u, 0x00003fe1u, 0x00003fe0u, + 0x00000308u, 0x000500c3u, 0x00000008u, 0x00003fe2u, 0x00003fe1u, 0x000001dbu, 0x00050080u, 0x00000008u, + 0x00003fe3u, 0x00003fc8u, 0x00003fe2u, 0x00050051u, 0x00000012u, 0x00003fe7u, 0x00002301u, 0x00000003u, + 0x00040072u, 0x00000008u, 0x00003fe8u, 0x00003fe7u, 0x00050084u, 0x00000008u, 0x00003febu, 0x00003fe8u, + 0x00003fd8u, 0x00050080u, 0x00000008u, 0x00003fecu, 0x00003febu, 0x00000308u, 0x000500c3u, 0x00000008u, + 0x00003fedu, 0x00003fecu, 0x000001dbu, 0x00050080u, 0x00000008u, 0x00003feeu, 0x00003fc8u, 0x00003fedu, + 0x00040072u, 0x00000012u, 0x00003ff2u, 0x00003fd1u, 0x00040072u, 0x00000012u, 0x00003ff4u, 0x00003fe3u, + 0x00040072u, 0x00000012u, 0x00003ff6u, 0x00003feeu, 0x00040072u, 0x00000012u, 0x00003ff8u, 0x00003fc8u, + 0x00070050u, 0x00000013u, 0x00003ff9u, 0x00003ff2u, 0x00003ff4u, 0x00003ff6u, 0x00003ff8u, 0x000200f9u, + 0x00002c87u, 0x000200f8u, 0x00002c87u, 0x000700f5u, 0x00000013u, 0x00006e78u, 0x00006e74u, 0x00002c7cu, + 0x00003ff9u, 0x00002c83u, 0x000200f9u, 0x00001c4au, 0x000200f8u, 0x00001c4au, 0x000700f5u, 0x00000013u, + 0x0000719bu, 0x00006bf1u, 0x00001c31u, 0x00006e78u, 0x00002c87u, 0x000300f7u, 0x00001c96u, 0x00000000u, + 0x000400fau, 0x00001b5fu, 0x00001c4cu, 0x00001c96u, 0x000200f8u, 0x00001c4cu, 0x00050080u, 0x00000008u, + 0x00001c55u, 0x00001aedu, 0x000001a8u, 0x00050080u, 0x00000008u, 0x00001c56u, 0x00001ae8u, 0x00001c55u, + 0x00070041u, 0x0000077au, 0x00001c57u, 0x0000022bu, 0x0000019eu, 0x00001c56u, 0x000001dbu, 0x0004003du, + 0x00000011u, 0x00001c58u, 0x00001c57u, 0x00040071u, 0x00000006u, 0x00001c59u, 0x00001c58u, 0x000500abu, + 0x00000063u, 0x00001c5au, 0x00001c59u, 0x00000290u, 0x00040072u, 0x00000008u, 0x00001c5du, 0x00001d81u, + 0x000500afu, 0x00000063u, 0x00001c5eu, 0x00001c5du, 0x000001dbu, 0x000600a9u, 0x00000008u, 0x000089b0u, + 0x00001b7cu, 0x00001d7fu, 0x00001d7du, 0x000500aau, 0x00000063u, 0x00001c69u, 0x00006a43u, 0x000089b0u, + 0x000500a7u, 0x00000063u, 0x00001c6cu, 0x00001c69u, 0x00001c5eu, 0x000500a7u, 0x00000063u, 0x00001c6eu, + 0x00001c6cu, 0x00001c5au, 0x000300f7u, 0x00001c94u, 0x00000000u, 0x000400fau, 0x00001c6eu, 0x00001c6fu, + 0x00001c89u, 0x000200f8u, 0x00001c89u, 0x00050084u, 0x00000008u, 0x00001c8cu, 0x00001bedu, 0x00000558u, + 0x00050080u, 0x00000008u, 0x00001c8du, 0x00001bebu, 0x00001c8cu, 0x00060050u, 0x0000005du, 0x00004095u, + 0x00001c8du, 0x00001c8du, 0x00001c8du, 0x00050084u, 0x0000005du, 0x00004096u, 0x0000236cu, 0x00004095u, + 0x00050080u, 0x0000005du, 0x00004097u, 0x00002366u, 0x00004096u, 0x000500c3u, 0x0000005du, 0x0000409au, + 0x00004097u, 0x00008973u, 0x000300f7u, 0x000040a4u, 0x00000000u, 0x000400fau, 0x00001b35u, 0x0000409cu, + 0x000040a1u, 0x000200f8u, 0x000040a1u, 0x0007004fu, 0x00000058u, 0x0000412fu, 0x0000409au, 0x0000409au, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x000040a4u, 0x000200f8u, 0x0000409cu, 0x00050051u, 0x00000008u, + 0x000040b2u, 0x0000409au, 0x00000002u, 0x000500b3u, 0x00000063u, 0x000040b4u, 0x000040b2u, 0x0000019eu, + 0x000500c7u, 0x00000008u, 0x000040b6u, 0x000040b2u, 0x00000426u, 0x0006000cu, 0x00000008u, 0x00004113u, + 0x00000001u, 0x0000004au, 0x000040b6u, 0x00050082u, 0x00000008u, 0x00004114u, 0x000001eeu, 0x00004113u, + 0x0007000cu, 0x00000008u, 0x00004115u, 0x00000001u, 0x00000027u, 0x00004114u, 0x000001eeu, 0x000500c4u, + 0x00000008u, 0x00004118u, 0x000040b6u, 0x00004115u, 0x000500c7u, 0x00000008u, 0x00004119u, 0x00004118u, + 0x00000341u, 0x000500c7u, 0x00000008u, 0x0000411bu, 0x00004119u, 0x00000313u, 0x000500c3u, 0x00000008u, + 0x0000411du, 0x00004119u, 0x000001dbu, 0x0003003eu, 0x0000410eu, 0x00000406u, 0x00050041u, 0x0000011eu, + 0x0000411eu, 0x0000410eu, 0x0000411du, 0x0004003du, 0x0000011du, 0x0000411fu, 0x0000411eu, 0x00040072u, + 0x00000058u, 0x00004120u, 0x0000411fu, 0x00050051u, 0x00000008u, 0x00004122u, 0x00004120u, 0x00000001u, + 0x00050084u, 0x00000008u, 0x00004124u, 0x00004122u, 0x0000411bu, 0x000500c3u, 0x00000008u, 0x00004125u, + 0x00004124u, 0x000001e1u, 0x00050051u, 0x00000008u, 0x00004127u, 0x00004120u, 0x00000000u, 0x00050080u, + 0x00000008u, 0x00004128u, 0x00004125u, 0x00004127u, 0x0007004fu, 0x00000058u, 0x000040bcu, 0x0000409au, + 0x0000409au, 0x00000000u, 0x00000001u, 0x00050050u, 0x00000058u, 0x000040bfu, 0x00004128u, 0x00004128u, + 0x00050084u, 0x00000058u, 0x000040c0u, 0x000040bcu, 0x000040bfu, 0x000500c3u, 0x00000008u, 0x000040c2u, + 0x00000439u, 0x00004115u, 0x0004007eu, 0x00000008u, 0x000040c3u, 0x000040c2u, 0x000500c7u, 0x00000008u, + 0x000040c4u, 0x00000438u, 0x000040c3u, 0x00050050u, 0x00000058u, 0x000040c7u, 0x000040c4u, 0x000040c4u, + 0x000500c7u, 0x00000058u, 0x000040c8u, 0x000040c0u, 0x000040c7u, 0x000500abu, 0x00000063u, 0x000040cau, + 0x00004115u, 0x000001eeu, 0x000300f7u, 0x000040d5u, 0x00000000u, 0x000400fau, 0x000040cau, 0x000040cbu, + 0x000040d1u, 0x000200f8u, 0x000040d1u, 0x000500c4u, 0x00000058u, 0x000040d4u, 0x000040c0u, 0x00008977u, + 0x000200f9u, 0x000040d5u, 0x000200f8u, 0x000040cbu, 0x00050082u, 0x00000008u, 0x000040ceu, 0x000001ebu, + 0x00004115u, 0x00050050u, 0x00000058u, 0x000040cfu, 0x000040ceu, 0x000040ceu, 0x000500c3u, 0x00000058u, + 0x000040d0u, 0x000040c0u, 0x000040cfu, 0x000200f9u, 0x000040d5u, 0x000200f8u, 0x000040d5u, 0x000700f5u, + 0x00000058u, 0x00006fa1u, 0x000040d0u, 0x000040cbu, 0x000040d4u, 0x000040d1u, 0x000700f5u, 0x00000058u, + 0x00006f9fu, 0x000040d0u, 0x000040cbu, 0x000040c0u, 0x000040d1u, 0x000500abu, 0x00000453u, 0x000040d7u, + 0x000040c8u, 0x00000452u, 0x0004009au, 0x00000063u, 0x000040d8u, 0x000040d7u, 0x000300f7u, 0x00004104u, + 0x00000000u, 0x000400fau, 0x000040d8u, 0x000040d9u, 0x00004104u, 0x000200f8u, 0x000040d9u, 0x00050051u, + 0x00000008u, 0x000040dbu, 0x000040c8u, 0x00000000u, 0x000500abu, 0x00000063u, 0x000040ddu, 0x000040dbu, + 0x000040c4u, 0x000300f7u, 0x000040e2u, 0x00000000u, 0x000400fau, 0x000040ddu, 0x000040deu, 0x000040e2u, + 0x000200f8u, 0x000040deu, 0x000500abu, 0x00000063u, 0x000040e1u, 0x000040dbu, 0x0000019eu, 0x000200f9u, + 0x000040e2u, 0x000200f8u, 0x000040e2u, 0x000700f5u, 0x00000063u, 0x000040e3u, 0x000040ddu, 0x000040d9u, + 0x000040e1u, 0x000040deu, 0x000300f7u, 0x000040eeu, 0x00000000u, 0x000400fau, 0x000040e3u, 0x000040e4u, + 0x000040eeu, 0x000200f8u, 0x000040e4u, 0x00050051u, 0x00000008u, 0x000040e6u, 0x00006f9fu, 0x00000000u, + 0x000500c7u, 0x00000008u, 0x000040e7u, 0x000040e6u, 0x00000439u, 0x000500aau, 0x00000063u, 0x000040e8u, + 0x000040e7u, 0x0000019eu, 0x000300f7u, 0x000040edu, 0x00000000u, 0x000400fau, 0x000040e8u, 0x000040e9u, + 0x000040ebu, 0x000200f8u, 0x000040ebu, 0x00060052u, 0x00000058u, 0x0000689cu, 0x0000046cu, 0x00006fa1u, + 0x00000000u, 0x000200f9u, 0x000040edu, 0x000200f8u, 0x000040e9u, 0x00060052u, 0x00000058u, 0x0000689au, + 0x00000426u, 0x00006fa1u, 0x00000000u, 0x000200f9u, 0x000040edu, 0x000200f8u, 0x000040edu, 0x000700f5u, + 0x00000058u, 0x00006fa7u, 0x0000689au, 0x000040e9u, 0x0000689cu, 0x000040ebu, 0x000200f9u, 0x000040eeu, + 0x000200f8u, 0x000040eeu, 0x000700f5u, 0x00000058u, 0x00006fa6u, 0x00006fa1u, 0x000040e2u, 0x00006fa7u, + 0x000040edu, 0x00050051u, 0x00000008u, 0x000040f0u, 0x000040c8u, 0x00000001u, 0x000500abu, 0x00000063u, + 0x000040f2u, 0x000040f0u, 0x000040c4u, 0x000300f7u, 0x000040f7u, 0x00000000u, 0x000400fau, 0x000040f2u, + 0x000040f3u, 0x000040f7u, 0x000200f8u, 0x000040f3u, 0x000500abu, 0x00000063u, 0x000040f6u, 0x000040f0u, + 0x0000019eu, 0x000200f9u, 0x000040f7u, 0x000200f8u, 0x000040f7u, 0x000700f5u, 0x00000063u, 0x000040f8u, + 0x000040f2u, 0x000040eeu, 0x000040f6u, 0x000040f3u, 0x000300f7u, 0x00004103u, 0x00000000u, 0x000400fau, + 0x000040f8u, 0x000040f9u, 0x00004103u, 0x000200f8u, 0x000040f9u, 0x00050051u, 0x00000008u, 0x000040fbu, + 0x00006f9fu, 0x00000001u, 0x000500c7u, 0x00000008u, 0x000040fcu, 0x000040fbu, 0x00000439u, 0x000500aau, + 0x00000063u, 0x000040fdu, 0x000040fcu, 0x0000019eu, 0x000300f7u, 0x00004102u, 0x00000000u, 0x000400fau, + 0x000040fdu, 0x000040feu, 0x00004100u, 0x000200f8u, 0x00004100u, 0x00060052u, 0x00000058u, 0x000068a3u, + 0x0000046cu, 0x00006fa6u, 0x00000001u, 0x000200f9u, 0x00004102u, 0x000200f8u, 0x000040feu, 0x00060052u, + 0x00000058u, 0x000068a1u, 0x00000426u, 0x00006fa6u, 0x00000001u, 0x000200f9u, 0x00004102u, 0x000200f8u, + 0x00004102u, 0x000700f5u, 0x00000058u, 0x00006fabu, 0x000068a1u, 0x000040feu, 0x000068a3u, 0x00004100u, + 0x000200f9u, 0x00004103u, 0x000200f8u, 0x00004103u, 0x000700f5u, 0x00000058u, 0x00006faau, 0x00006fa6u, + 0x000040f7u, 0x00006fabu, 0x00004102u, 0x000200f9u, 0x00004104u, 0x000200f8u, 0x00004104u, 0x000700f5u, + 0x00000058u, 0x00006fa9u, 0x00006fa1u, 0x000040d5u, 0x00006faau, 0x00004103u, 0x00050050u, 0x00000453u, + 0x000089b1u, 0x000040b4u, 0x000040b4u, 0x000600a9u, 0x00000058u, 0x000089b2u, 0x000089b1u, 0x00000487u, + 0x00006fa9u, 0x0008000cu, 0x00000058u, 0x00004109u, 0x00000001u, 0x0000002du, 0x000089b2u, 0x0000048au, + 0x0000048cu, 0x000200f9u, 0x000040a4u, 0x000200f8u, 0x000040a4u, 0x000700f5u, 0x00000058u, 0x00006facu, + 0x00004109u, 0x00004104u, 0x0000412fu, 0x000040a1u, 0x000200f9u, 0x00001c94u, 0x000200f8u, 0x00001c6fu, + 0x00070041u, 0x00001833u, 0x00001c7au, 0x0000022bu, 0x0000019eu, 0x00001c56u, 0x000001a8u, 0x0004003du, + 0x00000009u, 0x00001c7bu, 0x00001c7au, 0x0008004fu, 0x0000005du, 0x00001c7cu, 0x00001c7bu, 0x00001c7bu, + 0x00000000u, 0x00000001u, 0x00000003u, 0x000500c3u, 0x0000005du, 0x00001c7eu, 0x00001c7cu, 0x00008973u, + 0x000300f7u, 0x00001c88u, 0x00000000u, 0x000400fau, 0x00001b35u, 0x00001c80u, 0x00001c85u, 0x000200f8u, + 0x00001c85u, 0x0007004fu, 0x00000058u, 0x00004083u, 0x00001c7eu, 0x00001c7eu, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00001c88u, 0x000200f8u, 0x00001c80u, 0x00050051u, 0x00000008u, 0x00004006u, 0x00001c7eu, + 0x00000002u, 0x000500b3u, 0x00000063u, 0x00004008u, 0x00004006u, 0x0000019eu, 0x000500c7u, 0x00000008u, + 0x0000400au, 0x00004006u, 0x00000426u, 0x0006000cu, 0x00000008u, 0x00004067u, 0x00000001u, 0x0000004au, + 0x0000400au, 0x00050082u, 0x00000008u, 0x00004068u, 0x000001eeu, 0x00004067u, 0x0007000cu, 0x00000008u, + 0x00004069u, 0x00000001u, 0x00000027u, 0x00004068u, 0x000001eeu, 0x000500c4u, 0x00000008u, 0x0000406cu, + 0x0000400au, 0x00004069u, 0x000500c7u, 0x00000008u, 0x0000406du, 0x0000406cu, 0x00000341u, 0x000500c7u, + 0x00000008u, 0x0000406fu, 0x0000406du, 0x00000313u, 0x000500c3u, 0x00000008u, 0x00004071u, 0x0000406du, + 0x000001dbu, 0x0003003eu, 0x00004062u, 0x00000406u, 0x00050041u, 0x0000011eu, 0x00004072u, 0x00004062u, + 0x00004071u, 0x0004003du, 0x0000011du, 0x00004073u, 0x00004072u, 0x00040072u, 0x00000058u, 0x00004074u, + 0x00004073u, 0x00050051u, 0x00000008u, 0x00004076u, 0x00004074u, 0x00000001u, 0x00050084u, 0x00000008u, + 0x00004078u, 0x00004076u, 0x0000406fu, 0x000500c3u, 0x00000008u, 0x00004079u, 0x00004078u, 0x000001e1u, + 0x00050051u, 0x00000008u, 0x0000407bu, 0x00004074u, 0x00000000u, 0x00050080u, 0x00000008u, 0x0000407cu, + 0x00004079u, 0x0000407bu, 0x0007004fu, 0x00000058u, 0x00004010u, 0x00001c7eu, 0x00001c7eu, 0x00000000u, + 0x00000001u, 0x00050050u, 0x00000058u, 0x00004013u, 0x0000407cu, 0x0000407cu, 0x00050084u, 0x00000058u, + 0x00004014u, 0x00004010u, 0x00004013u, 0x000500c3u, 0x00000008u, 0x00004016u, 0x00000439u, 0x00004069u, + 0x0004007eu, 0x00000008u, 0x00004017u, 0x00004016u, 0x000500c7u, 0x00000008u, 0x00004018u, 0x00000438u, + 0x00004017u, 0x00050050u, 0x00000058u, 0x0000401bu, 0x00004018u, 0x00004018u, 0x000500c7u, 0x00000058u, + 0x0000401cu, 0x00004014u, 0x0000401bu, 0x000500abu, 0x00000063u, 0x0000401eu, 0x00004069u, 0x000001eeu, + 0x000300f7u, 0x00004029u, 0x00000000u, 0x000400fau, 0x0000401eu, 0x0000401fu, 0x00004025u, 0x000200f8u, + 0x00004025u, 0x000500c4u, 0x00000058u, 0x00004028u, 0x00004014u, 0x00008977u, 0x000200f9u, 0x00004029u, + 0x000200f8u, 0x0000401fu, 0x00050082u, 0x00000008u, 0x00004022u, 0x000001ebu, 0x00004069u, 0x00050050u, + 0x00000058u, 0x00004023u, 0x00004022u, 0x00004022u, 0x000500c3u, 0x00000058u, 0x00004024u, 0x00004014u, + 0x00004023u, 0x000200f9u, 0x00004029u, 0x000200f8u, 0x00004029u, 0x000700f5u, 0x00000058u, 0x00006fb1u, + 0x00004024u, 0x0000401fu, 0x00004028u, 0x00004025u, 0x000700f5u, 0x00000058u, 0x00006fafu, 0x00004024u, + 0x0000401fu, 0x00004014u, 0x00004025u, 0x000500abu, 0x00000453u, 0x0000402bu, 0x0000401cu, 0x00000452u, + 0x0004009au, 0x00000063u, 0x0000402cu, 0x0000402bu, 0x000300f7u, 0x00004058u, 0x00000000u, 0x000400fau, + 0x0000402cu, 0x0000402du, 0x00004058u, 0x000200f8u, 0x0000402du, 0x00050051u, 0x00000008u, 0x0000402fu, + 0x0000401cu, 0x00000000u, 0x000500abu, 0x00000063u, 0x00004031u, 0x0000402fu, 0x00004018u, 0x000300f7u, + 0x00004036u, 0x00000000u, 0x000400fau, 0x00004031u, 0x00004032u, 0x00004036u, 0x000200f8u, 0x00004032u, + 0x000500abu, 0x00000063u, 0x00004035u, 0x0000402fu, 0x0000019eu, 0x000200f9u, 0x00004036u, 0x000200f8u, + 0x00004036u, 0x000700f5u, 0x00000063u, 0x00004037u, 0x00004031u, 0x0000402du, 0x00004035u, 0x00004032u, + 0x000300f7u, 0x00004042u, 0x00000000u, 0x000400fau, 0x00004037u, 0x00004038u, 0x00004042u, 0x000200f8u, + 0x00004038u, 0x00050051u, 0x00000008u, 0x0000403au, 0x00006fafu, 0x00000000u, 0x000500c7u, 0x00000008u, + 0x0000403bu, 0x0000403au, 0x00000439u, 0x000500aau, 0x00000063u, 0x0000403cu, 0x0000403bu, 0x0000019eu, + 0x000300f7u, 0x00004041u, 0x00000000u, 0x000400fau, 0x0000403cu, 0x0000403du, 0x0000403fu, 0x000200f8u, + 0x0000403fu, 0x00060052u, 0x00000058u, 0x00006889u, 0x0000046cu, 0x00006fb1u, 0x00000000u, 0x000200f9u, + 0x00004041u, 0x000200f8u, 0x0000403du, 0x00060052u, 0x00000058u, 0x00006887u, 0x00000426u, 0x00006fb1u, + 0x00000000u, 0x000200f9u, 0x00004041u, 0x000200f8u, 0x00004041u, 0x000700f5u, 0x00000058u, 0x00006fb7u, + 0x00006887u, 0x0000403du, 0x00006889u, 0x0000403fu, 0x000200f9u, 0x00004042u, 0x000200f8u, 0x00004042u, + 0x000700f5u, 0x00000058u, 0x00006fb6u, 0x00006fb1u, 0x00004036u, 0x00006fb7u, 0x00004041u, 0x00050051u, + 0x00000008u, 0x00004044u, 0x0000401cu, 0x00000001u, 0x000500abu, 0x00000063u, 0x00004046u, 0x00004044u, + 0x00004018u, 0x000300f7u, 0x0000404bu, 0x00000000u, 0x000400fau, 0x00004046u, 0x00004047u, 0x0000404bu, + 0x000200f8u, 0x00004047u, 0x000500abu, 0x00000063u, 0x0000404au, 0x00004044u, 0x0000019eu, 0x000200f9u, + 0x0000404bu, 0x000200f8u, 0x0000404bu, 0x000700f5u, 0x00000063u, 0x0000404cu, 0x00004046u, 0x00004042u, + 0x0000404au, 0x00004047u, 0x000300f7u, 0x00004057u, 0x00000000u, 0x000400fau, 0x0000404cu, 0x0000404du, + 0x00004057u, 0x000200f8u, 0x0000404du, 0x00050051u, 0x00000008u, 0x0000404fu, 0x00006fafu, 0x00000001u, + 0x000500c7u, 0x00000008u, 0x00004050u, 0x0000404fu, 0x00000439u, 0x000500aau, 0x00000063u, 0x00004051u, + 0x00004050u, 0x0000019eu, 0x000300f7u, 0x00004056u, 0x00000000u, 0x000400fau, 0x00004051u, 0x00004052u, + 0x00004054u, 0x000200f8u, 0x00004054u, 0x00060052u, 0x00000058u, 0x00006890u, 0x0000046cu, 0x00006fb6u, + 0x00000001u, 0x000200f9u, 0x00004056u, 0x000200f8u, 0x00004052u, 0x00060052u, 0x00000058u, 0x0000688eu, + 0x00000426u, 0x00006fb6u, 0x00000001u, 0x000200f9u, 0x00004056u, 0x000200f8u, 0x00004056u, 0x000700f5u, + 0x00000058u, 0x00006fbbu, 0x0000688eu, 0x00004052u, 0x00006890u, 0x00004054u, 0x000200f9u, 0x00004057u, + 0x000200f8u, 0x00004057u, 0x000700f5u, 0x00000058u, 0x00006fbau, 0x00006fb6u, 0x0000404bu, 0x00006fbbu, + 0x00004056u, 0x000200f9u, 0x00004058u, 0x000200f8u, 0x00004058u, 0x000700f5u, 0x00000058u, 0x00006fb9u, + 0x00006fb1u, 0x00004029u, 0x00006fbau, 0x00004057u, 0x00050050u, 0x00000453u, 0x000089b3u, 0x00004008u, + 0x00004008u, 0x000600a9u, 0x00000058u, 0x000089b4u, 0x000089b3u, 0x00000487u, 0x00006fb9u, 0x0008000cu, + 0x00000058u, 0x0000405du, 0x00000001u, 0x0000002du, 0x000089b4u, 0x0000048au, 0x0000048cu, 0x000200f9u, + 0x00001c88u, 0x000200f8u, 0x00001c88u, 0x000700f5u, 0x00000058u, 0x00007198u, 0x0000405du, 0x00004058u, + 0x00004083u, 0x00001c85u, 0x000200f9u, 0x00001c94u, 0x000200f8u, 0x00001c94u, 0x000700f5u, 0x00000058u, + 0x00007197u, 0x00007198u, 0x00001c88u, 0x00006facu, 0x000040a4u, 0x000200f9u, 0x00001c96u, 0x000200f8u, + 0x00001c96u, 0x000700f5u, 0x00000058u, 0x00007133u, 0x00006abdu, 0x00001c4au, 0x00007197u, 0x00001c94u, + 0x000600a9u, 0x00000006u, 0x000089b5u, 0x00001b5fu, 0x00006b39u, 0x000070ccu, 0x000600a9u, 0x00000063u, + 0x000089b6u, 0x00001b5fu, 0x0000046eu, 0x00001b5cu, 0x000300f7u, 0x00001cbcu, 0x00000000u, 0x000400fau, + 0x000089b6u, 0x00001c98u, 0x00001cbcu, 0x000200f8u, 0x00001c98u, 0x000400a8u, 0x00000063u, 0x00001c9bu, + 0x00001b6bu, 0x000500a7u, 0x00000063u, 0x00001c9cu, 0x00001b65u, 0x00001c9bu, 0x000300f7u, 0x00001cbbu, + 0x00000000u, 0x000400fau, 0x00001c9cu, 0x00001c9du, 0x00001ca2u, 0x000200f8u, 0x00001ca2u, 0x00080041u, + 0x000006aau, 0x00001ca5u, 0x000015b9u, 0x0000019eu, 0x00001988u, 0x000001abu, 0x000089b5u, 0x0004003du, + 0x0000000fu, 0x00001ca6u, 0x00001ca5u, 0x00040071u, 0x00000006u, 0x00001ca7u, 0x00001ca6u, 0x00060041u, + 0x0000024cu, 0x00004171u, 0x0000024au, 0x0000019eu, 0x00001ca7u, 0x0004003du, 0x00000246u, 0x00004172u, + 0x00004171u, 0x00050051u, 0x00000006u, 0x00004173u, 0x00004172u, 0x00000000u, 0x00050051u, 0x00000006u, + 0x00004175u, 0x00004172u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00004177u, 0x00004172u, 0x00000002u, + 0x00050051u, 0x00000006u, 0x00004179u, 0x00004172u, 0x00000003u, 0x00050051u, 0x00000006u, 0x0000417bu, + 0x00004172u, 0x00000004u, 0x00050051u, 0x00000006u, 0x0000417du, 0x00004172u, 0x00000005u, 0x00050051u, + 0x0000000fu, 0x0000417fu, 0x00004172u, 0x00000006u, 0x00050051u, 0x0000000fu, 0x00004181u, 0x00004172u, + 0x00000007u, 0x00050051u, 0x0000000fu, 0x00004183u, 0x00004172u, 0x00000008u, 0x00050051u, 0x0000000fu, + 0x00004185u, 0x00004172u, 0x00000009u, 0x00050051u, 0x0000000fu, 0x00004187u, 0x00004172u, 0x0000000au, + 0x00050051u, 0x0000000fu, 0x00004189u, 0x00004172u, 0x0000000bu, 0x00050051u, 0x0000000fu, 0x0000418bu, + 0x00004172u, 0x0000000cu, 0x00050051u, 0x0000000fu, 0x0000418du, 0x00004172u, 0x0000000du, 0x000600a9u, + 0x0000000fu, 0x000089b7u, 0x00001873u, 0x00001877u, 0x0000417fu, 0x000600a9u, 0x0000000fu, 0x000089b8u, + 0x00001873u, 0x0000187au, 0x00004181u, 0x00040071u, 0x00000006u, 0x000042e9u, 0x0000418du, 0x0004007cu, + 0x00000008u, 0x000042eau, 0x000042e9u, 0x000500c7u, 0x00000008u, 0x000042ebu, 0x000042eau, 0x000001a8u, + 0x000500abu, 0x00000063u, 0x000042ecu, 0x000042ebu, 0x0000019eu, 0x0004007cu, 0x00000008u, 0x000042efu, + 0x00004173u, 0x0004007cu, 0x00000008u, 0x000042f2u, 0x00004175u, 0x00040071u, 0x00000006u, 0x000042f5u, + 0x00004187u, 0x0004007cu, 0x00000008u, 0x000042f6u, 0x000042f5u, 0x00050051u, 0x00000008u, 0x000042f8u, + 0x00007133u, 0x00000000u, 0x0008000cu, 0x00000008u, 0x000047d3u, 0x00000001u, 0x0000002du, 0x000042f8u, + 0x0000046cu, 0x00000426u, 0x000500b1u, 0x00000063u, 0x000047d5u, 0x000042f6u, 0x000001e4u, 0x000300f7u, + 0x000047e1u, 0x00000000u, 0x000400fau, 0x000047d5u, 0x000047d6u, 0x000047dau, 0x000200f8u, 0x000047dau, + 0x00050082u, 0x00000008u, 0x000047dcu, 0x00000979u, 0x000042f6u, 0x000500c4u, 0x00000008u, 0x000047deu, + 0x000047d3u, 0x000047dcu, 0x000500c3u, 0x00000008u, 0x000047e0u, 0x000047deu, 0x0000050bu, 0x000200f9u, + 0x000047e1u, 0x000200f8u, 0x000047d6u, 0x000500c3u, 0x00000008u, 0x000047d9u, 0x000047d3u, 0x000042f6u, + 0x000200f9u, 0x000047e1u, 0x000200f8u, 0x000047e1u, 0x000700f5u, 0x00000008u, 0x000071e5u, 0x000047d9u, + 0x000047d6u, 0x000047e0u, 0x000047dau, 0x000300f7u, 0x000047fdu, 0x00000000u, 0x000400fau, 0x000042ecu, + 0x000047e3u, 0x000047f8u, 0x000200f8u, 0x000047f8u, 0x000500c4u, 0x00000008u, 0x000047fau, 0x000042efu, + 0x000001aeu, 0x00050082u, 0x00000008u, 0x000047fcu, 0x000071e5u, 0x000047fau, 0x000200f9u, 0x000047fdu, + 0x000200f8u, 0x000047e3u, 0x000500c3u, 0x00000008u, 0x000047e5u, 0x000071e5u, 0x000001aeu, 0x000500afu, + 0x00000063u, 0x000047e7u, 0x000047e5u, 0x000042f2u, 0x000300f7u, 0x000047f7u, 0x00000000u, 0x000400fau, + 0x000047e7u, 0x000047e9u, 0x000047f1u, 0x000200f8u, 0x000047f1u, 0x000500c4u, 0x00000008u, 0x000047f4u, + 0x000042efu, 0x000001aeu, 0x00050082u, 0x00000008u, 0x000047f5u, 0x000071e5u, 0x000047f4u, 0x0007000cu, + 0x00000008u, 0x000047f6u, 0x00000001u, 0x0000002au, 0x000047f5u, 0x0000019eu, 0x000200f9u, 0x000047f7u, + 0x000200f8u, 0x000047e9u, 0x000500c3u, 0x00000008u, 0x000047ebu, 0x000042f2u, 0x000001abu, 0x000500c3u, + 0x00000008u, 0x000047edu, 0x000042efu, 0x000001abu, 0x00050082u, 0x00000008u, 0x000047eeu, 0x000047ebu, + 0x000047edu, 0x000500c7u, 0x00000008u, 0x000047efu, 0x000047eeu, 0x00000990u, 0x000500c4u, 0x00000008u, + 0x000047f0u, 0x000047efu, 0x000001b4u, 0x000200f9u, 0x000047f7u, 0x000200f8u, 0x000047f7u, 0x000700f5u, + 0x00000008u, 0x000071e7u, 0x000047f0u, 0x000047e9u, 0x000047f6u, 0x000047f1u, 0x000200f9u, 0x000047fdu, + 0x000200f8u, 0x000047fdu, 0x000700f5u, 0x00000008u, 0x000071e6u, 0x000071e7u, 0x000047f7u, 0x000047fcu, + 0x000047f8u, 0x000500c7u, 0x00000008u, 0x000042ffu, 0x000042eau, 0x000001b1u, 0x000500abu, 0x00000063u, + 0x00004300u, 0x000042ffu, 0x0000019eu, 0x0004007cu, 0x00000008u, 0x00004303u, 0x00004177u, 0x0004007cu, + 0x00000008u, 0x00004306u, 0x00004179u, 0x00040071u, 0x00000006u, 0x00004309u, 0x0000418bu, 0x0004007cu, + 0x00000008u, 0x0000430au, 0x00004309u, 0x00050051u, 0x00000008u, 0x0000430cu, 0x00007133u, 0x00000001u, + 0x0008000cu, 0x00000008u, 0x00004803u, 0x00000001u, 0x0000002du, 0x0000430cu, 0x0000046cu, 0x00000426u, + 0x000500b1u, 0x00000063u, 0x00004805u, 0x0000430au, 0x000001e4u, 0x000300f7u, 0x00004811u, 0x00000000u, + 0x000400fau, 0x00004805u, 0x00004806u, 0x0000480au, 0x000200f8u, 0x0000480au, 0x00050082u, 0x00000008u, + 0x0000480cu, 0x00000979u, 0x0000430au, 0x000500c4u, 0x00000008u, 0x0000480eu, 0x00004803u, 0x0000480cu, + 0x000500c3u, 0x00000008u, 0x00004810u, 0x0000480eu, 0x0000050bu, 0x000200f9u, 0x00004811u, 0x000200f8u, + 0x00004806u, 0x000500c3u, 0x00000008u, 0x00004809u, 0x00004803u, 0x0000430au, 0x000200f9u, 0x00004811u, + 0x000200f8u, 0x00004811u, 0x000700f5u, 0x00000008u, 0x000071ebu, 0x00004809u, 0x00004806u, 0x00004810u, + 0x0000480au, 0x000300f7u, 0x0000482du, 0x00000000u, 0x000400fau, 0x00004300u, 0x00004813u, 0x00004828u, + 0x000200f8u, 0x00004828u, 0x000500c4u, 0x00000008u, 0x0000482au, 0x00004303u, 0x000001aeu, 0x00050082u, + 0x00000008u, 0x0000482cu, 0x000071ebu, 0x0000482au, 0x000200f9u, 0x0000482du, 0x000200f8u, 0x00004813u, + 0x000500c3u, 0x00000008u, 0x00004815u, 0x000071ebu, 0x000001aeu, 0x000500afu, 0x00000063u, 0x00004817u, + 0x00004815u, 0x00004306u, 0x000300f7u, 0x00004827u, 0x00000000u, 0x000400fau, 0x00004817u, 0x00004819u, + 0x00004821u, 0x000200f8u, 0x00004821u, 0x000500c4u, 0x00000008u, 0x00004824u, 0x00004303u, 0x000001aeu, + 0x00050082u, 0x00000008u, 0x00004825u, 0x000071ebu, 0x00004824u, 0x0007000cu, 0x00000008u, 0x00004826u, + 0x00000001u, 0x0000002au, 0x00004825u, 0x0000019eu, 0x000200f9u, 0x00004827u, 0x000200f8u, 0x00004819u, + 0x000500c3u, 0x00000008u, 0x0000481bu, 0x00004306u, 0x000001abu, 0x000500c3u, 0x00000008u, 0x0000481du, + 0x00004303u, 0x000001abu, 0x00050082u, 0x00000008u, 0x0000481eu, 0x0000481bu, 0x0000481du, 0x000500c7u, + 0x00000008u, 0x0000481fu, 0x0000481eu, 0x00000990u, 0x000500c4u, 0x00000008u, 0x00004820u, 0x0000481fu, + 0x000001b4u, 0x000200f9u, 0x00004827u, 0x000200f8u, 0x00004827u, 0x000700f5u, 0x00000008u, 0x000071edu, + 0x00004820u, 0x00004819u, 0x00004826u, 0x00004821u, 0x000200f9u, 0x0000482du, 0x000200f8u, 0x0000482du, + 0x000700f5u, 0x00000008u, 0x000071ecu, 0x000071edu, 0x00004827u, 0x0000482cu, 0x00004828u, 0x00050050u, + 0x00000058u, 0x0000898fu, 0x000071e6u, 0x000071ecu, 0x000500a6u, 0x00000063u, 0x00004311u, 0x00001b2cu, + 0x00001b26u, 0x000300f7u, 0x00004317u, 0x00000000u, 0x000400fau, 0x00004311u, 0x00004312u, 0x00004316u, + 0x000200f8u, 0x00004316u, 0x000200f9u, 0x00004317u, 0x000200f8u, 0x00004312u, 0x000500c7u, 0x00000058u, + 0x00004315u, 0x0000898fu, 0x0000897au, 0x000200f9u, 0x00004317u, 0x000200f8u, 0x00004317u, 0x000700f5u, + 0x00000058u, 0x000071f1u, 0x00004315u, 0x00004312u, 0x00000452u, 0x00004316u, 0x00050051u, 0x00000008u, + 0x00004319u, 0x000071f1u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000431bu, 0x000071f1u, 0x00000001u, + 0x00050080u, 0x00000008u, 0x0000431cu, 0x00004319u, 0x0000431bu, 0x000500c3u, 0x00000058u, 0x0000431fu, + 0x0000898fu, 0x00008979u, 0x00050051u, 0x00000008u, 0x00004322u, 0x0000431fu, 0x00000000u, 0x00040071u, + 0x00000006u, 0x00004834u, 0x00004185u, 0x0004007cu, 0x00000008u, 0x00004835u, 0x00004834u, 0x000500abu, + 0x00000063u, 0x00004836u, 0x00004835u, 0x0000019eu, 0x000300f7u, 0x0000484eu, 0x00000000u, 0x000400fau, + 0x00004836u, 0x00004837u, 0x0000484eu, 0x000200f8u, 0x00004837u, 0x000500c4u, 0x00000008u, 0x0000483au, + 0x000001a8u, 0x00004185u, 0x000500c7u, 0x00000008u, 0x0000483fu, 0x000042eau, 0x000001abu, 0x000500abu, + 0x00000063u, 0x00004840u, 0x0000483fu, 0x0000019eu, 0x000300f7u, 0x00004849u, 0x00000000u, 0x000400fau, + 0x00004840u, 0x00004841u, 0x00004849u, 0x000200f8u, 0x00004841u, 0x000500c7u, 0x00000008u, 0x00004844u, + 0x00004322u, 0x0000483au, 0x00050082u, 0x00000008u, 0x00004845u, 0x00004844u, 0x000001a8u, 0x0007000cu, + 0x00000008u, 0x00004846u, 0x00000001u, 0x0000002au, 0x00004845u, 0x0000019eu, 0x000500c6u, 0x00000008u, + 0x00004848u, 0x00004322u, 0x00004846u, 0x000200f9u, 0x00004849u, 0x000200f8u, 0x00004849u, 0x000700f5u, + 0x00000008u, 0x000071f3u, 0x00004322u, 0x00004837u, 0x00004848u, 0x00004841u, 0x00050082u, 0x00000008u, + 0x0000484bu, 0x0000483au, 0x000001a8u, 0x000500c7u, 0x00000008u, 0x0000484du, 0x000071f3u, 0x0000484bu, + 0x000200f9u, 0x0000484eu, 0x000200f8u, 0x0000484eu, 0x000700f5u, 0x00000008u, 0x000071f4u, 0x00004322u, + 0x00004317u, 0x0000484du, 0x00004849u, 0x00050051u, 0x00000008u, 0x00004326u, 0x0000431fu, 0x00000001u, + 0x00040071u, 0x00000006u, 0x00004855u, 0x00004189u, 0x0004007cu, 0x00000008u, 0x00004856u, 0x00004855u, + 0x000500abu, 0x00000063u, 0x00004857u, 0x00004856u, 0x0000019eu, 0x000300f7u, 0x0000486fu, 0x00000000u, + 0x000400fau, 0x00004857u, 0x00004858u, 0x0000486fu, 0x000200f8u, 0x00004858u, 0x000500c4u, 0x00000008u, + 0x0000485bu, 0x000001a8u, 0x00004189u, 0x000500c7u, 0x00000008u, 0x00004860u, 0x000042eau, 0x000001dbu, + 0x000500abu, 0x00000063u, 0x00004861u, 0x00004860u, 0x0000019eu, 0x000300f7u, 0x0000486au, 0x00000000u, + 0x000400fau, 0x00004861u, 0x00004862u, 0x0000486au, 0x000200f8u, 0x00004862u, 0x000500c7u, 0x00000008u, + 0x00004865u, 0x00004326u, 0x0000485bu, 0x00050082u, 0x00000008u, 0x00004866u, 0x00004865u, 0x000001a8u, + 0x0007000cu, 0x00000008u, 0x00004867u, 0x00000001u, 0x0000002au, 0x00004866u, 0x0000019eu, 0x000500c6u, + 0x00000008u, 0x00004869u, 0x00004326u, 0x00004867u, 0x000200f9u, 0x0000486au, 0x000200f8u, 0x0000486au, + 0x000700f5u, 0x00000008u, 0x000071f7u, 0x00004326u, 0x00004858u, 0x00004869u, 0x00004862u, 0x00050082u, + 0x00000008u, 0x0000486cu, 0x0000485bu, 0x000001a8u, 0x000500c7u, 0x00000008u, 0x0000486eu, 0x000071f7u, + 0x0000486cu, 0x000200f9u, 0x0000486fu, 0x000200f8u, 0x0000486fu, 0x000700f5u, 0x00000008u, 0x000071f8u, + 0x00004326u, 0x0000484eu, 0x0000486eu, 0x0000486au, 0x00050080u, 0x00000008u, 0x0000432au, 0x00004322u, + 0x000001a8u, 0x000300f7u, 0x00004890u, 0x00000000u, 0x000400fau, 0x00004836u, 0x00004879u, 0x00004890u, + 0x000200f8u, 0x00004879u, 0x000500c4u, 0x00000008u, 0x0000487cu, 0x000001a8u, 0x00004185u, 0x000500c7u, + 0x00000008u, 0x00004881u, 0x000042eau, 0x000001abu, 0x000500abu, 0x00000063u, 0x00004882u, 0x00004881u, + 0x0000019eu, 0x000300f7u, 0x0000488bu, 0x00000000u, 0x000400fau, 0x00004882u, 0x00004883u, 0x0000488bu, + 0x000200f8u, 0x00004883u, 0x000500c7u, 0x00000008u, 0x00004886u, 0x0000432au, 0x0000487cu, 0x00050082u, + 0x00000008u, 0x00004887u, 0x00004886u, 0x000001a8u, 0x0007000cu, 0x00000008u, 0x00004888u, 0x00000001u, + 0x0000002au, 0x00004887u, 0x0000019eu, 0x000500c6u, 0x00000008u, 0x0000488au, 0x0000432au, 0x00004888u, + 0x000200f9u, 0x0000488bu, 0x000200f8u, 0x0000488bu, 0x000700f5u, 0x00000008u, 0x000071fbu, 0x0000432au, + 0x00004879u, 0x0000488au, 0x00004883u, 0x00050082u, 0x00000008u, 0x0000488du, 0x0000487cu, 0x000001a8u, + 0x000500c7u, 0x00000008u, 0x0000488fu, 0x000071fbu, 0x0000488du, 0x000200f9u, 0x00004890u, 0x000200f8u, + 0x00004890u, 0x000700f5u, 0x00000008u, 0x000071fcu, 0x0000432au, 0x0000486fu, 0x0000488fu, 0x0000488bu, + 0x00050080u, 0x00000008u, 0x0000432fu, 0x00004326u, 0x000001a8u, 0x000300f7u, 0x000048b1u, 0x00000000u, + 0x000400fau, 0x00004857u, 0x0000489au, 0x000048b1u, 0x000200f8u, 0x0000489au, 0x000500c4u, 0x00000008u, + 0x0000489du, 0x000001a8u, 0x00004189u, 0x000500c7u, 0x00000008u, 0x000048a2u, 0x000042eau, 0x000001dbu, + 0x000500abu, 0x00000063u, 0x000048a3u, 0x000048a2u, 0x0000019eu, 0x000300f7u, 0x000048acu, 0x00000000u, + 0x000400fau, 0x000048a3u, 0x000048a4u, 0x000048acu, 0x000200f8u, 0x000048a4u, 0x000500c7u, 0x00000008u, + 0x000048a7u, 0x0000432fu, 0x0000489du, 0x00050082u, 0x00000008u, 0x000048a8u, 0x000048a7u, 0x000001a8u, + 0x0007000cu, 0x00000008u, 0x000048a9u, 0x00000001u, 0x0000002au, 0x000048a8u, 0x0000019eu, 0x000500c6u, + 0x00000008u, 0x000048abu, 0x0000432fu, 0x000048a9u, 0x000200f9u, 0x000048acu, 0x000200f8u, 0x000048acu, + 0x000700f5u, 0x00000008u, 0x000071ffu, 0x0000432fu, 0x0000489au, 0x000048abu, 0x000048a4u, 0x00050082u, + 0x00000008u, 0x000048aeu, 0x0000489du, 0x000001a8u, 0x000500c7u, 0x00000008u, 0x000048b0u, 0x000071ffu, + 0x000048aeu, 0x000200f9u, 0x000048b1u, 0x000200f8u, 0x000048b1u, 0x000700f5u, 0x00000008u, 0x00007200u, + 0x0000432fu, 0x00004890u, 0x000048b0u, 0x000048acu, 0x00050082u, 0x00000008u, 0x00004334u, 0x00007200u, + 0x000071f8u, 0x0007000cu, 0x00000008u, 0x00004335u, 0x00000001u, 0x0000002au, 0x00004334u, 0x00000c12u, + 0x000500c7u, 0x00000008u, 0x00004337u, 0x000071f8u, 0x00000313u, 0x00050080u, 0x00000008u, 0x00004339u, + 0x00004337u, 0x00004335u, 0x000500aau, 0x00000453u, 0x0000433fu, 0x000071f1u, 0x00000c1eu, 0x00050051u, + 0x00000063u, 0x00004340u, 0x0000433fu, 0x00000000u, 0x00050051u, 0x00000063u, 0x00004341u, 0x0000433fu, + 0x00000001u, 0x00070050u, 0x000002beu, 0x00004342u, 0x00001b56u, 0x00001b6bu, 0x00004340u, 0x00004341u, + 0x0004009bu, 0x00000063u, 0x00004343u, 0x00004342u, 0x000500afu, 0x00000063u, 0x00004345u, 0x0000431cu, + 0x00000979u, 0x000600a9u, 0x00000008u, 0x000089b9u, 0x00004343u, 0x0000019eu, 0x0000431cu, 0x00040071u, + 0x00000006u, 0x0000434bu, 0x000089b7u, 0x0004007cu, 0x00000008u, 0x0000434cu, 0x0000434bu, 0x000500aau, + 0x00000063u, 0x0000434du, 0x0000434cu, 0x000001a8u, 0x000500afu, 0x00000063u, 0x0000434fu, 0x000089b9u, + 0x00000979u, 0x000300f7u, 0x00004358u, 0x00000000u, 0x000400fau, 0x0000434fu, 0x00004350u, 0x00004354u, + 0x000200f8u, 0x00004354u, 0x00050050u, 0x00000058u, 0x00004357u, 0x000071f4u, 0x00004337u, 0x000200f9u, + 0x00004358u, 0x000200f8u, 0x00004350u, 0x00050050u, 0x00000058u, 0x00004353u, 0x000071fcu, 0x00004339u, + 0x000200f9u, 0x00004358u, 0x000200f8u, 0x00004358u, 0x000700f5u, 0x00000058u, 0x0000721bu, 0x00004353u, + 0x00004350u, 0x00004357u, 0x00004354u, 0x000500c7u, 0x00000008u, 0x0000435bu, 0x000071f4u, 0x000001a8u, + 0x000500c4u, 0x00000008u, 0x0000435cu, 0x0000435bu, 0x000001b1u, 0x000500c3u, 0x00000008u, 0x0000435fu, + 0x00004319u, 0x000001a8u, 0x000500c5u, 0x00000008u, 0x00004360u, 0x0000435cu, 0x0000435fu, 0x000300f7u, + 0x00004632u, 0x00000000u, 0x000400fau, 0x00001b26u, 0x00004362u, 0x0000440cu, 0x000200f8u, 0x0000440cu, + 0x000300f7u, 0x00004631u, 0x00000000u, 0x000d00fbu, 0x0000434cu, 0x00004631u, 0x00000000u, 0x00004411u, + 0x00000001u, 0x0000449bu, 0x00000002u, 0x000044c9u, 0x00000003u, 0x0000453eu, 0x00000004u, 0x000045c8u, + 0x000200f8u, 0x000045c8u, 0x00040071u, 0x00000006u, 0x000045cbu, 0x000089b8u, 0x0004007cu, 0x00000008u, + 0x000045ccu, 0x000045cbu, 0x000300f7u, 0x00004630u, 0x00000000u, 0x000700fbu, 0x000045ccu, 0x000045cdu, + 0x00000000u, 0x000045eeu, 0x00000001u, 0x0000460fu, 0x000200f8u, 0x0000460fu, 0x0004007cu, 0x000000abu, + 0x00004611u, 0x0000721bu, 0x00050051u, 0x00000006u, 0x00005a09u, 0x00004611u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005a0au, 0x0000417du, 0x00005a09u, 0x00050080u, 0x00000006u, 0x00005a0bu, 0x0000417bu, + 0x00005a0au, 0x00050051u, 0x00000006u, 0x00005a0du, 0x00004611u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00005a0fu, 0x00005a0bu, 0x00005a0du, 0x000500c7u, 0x00000006u, 0x00005a11u, 0x00005a0fu, 0x0000068cu, + 0x000500c7u, 0x00000006u, 0x00005a15u, 0x00005a09u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00005a16u, + 0x00005a15u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00005a18u, 0x00005a11u, 0x00005a16u, 0x000500c6u, + 0x00000006u, 0x00005a1au, 0x00005a18u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00005a1du, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005a1au, 0x0004003du, 0x0000000fu, 0x00005a1eu, 0x00005a1du, + 0x00040071u, 0x00000006u, 0x00005a1fu, 0x00005a1eu, 0x00040071u, 0x00000011u, 0x00005a21u, 0x00005a1fu, + 0x0004007cu, 0x00000012u, 0x00005a22u, 0x00005a21u, 0x00070050u, 0x00000013u, 0x00005a23u, 0x00005a22u, + 0x00005a22u, 0x00005a22u, 0x00005a22u, 0x000300f7u, 0x00004625u, 0x00000000u, 0x000400fau, 0x00001b2cu, + 0x00004616u, 0x00004625u, 0x000200f8u, 0x00004616u, 0x00050050u, 0x00000058u, 0x00004619u, 0x000071fcu, + 0x00004337u, 0x0004007cu, 0x000000abu, 0x0000461au, 0x00004619u, 0x00050051u, 0x00000006u, 0x00005a2eu, + 0x0000461au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005a2fu, 0x0000417du, 0x00005a2eu, 0x00050080u, + 0x00000006u, 0x00005a30u, 0x0000417bu, 0x00005a2fu, 0x00050051u, 0x00000006u, 0x00005a32u, 0x0000461au, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005a34u, 0x00005a30u, 0x00005a32u, 0x000500c7u, 0x00000006u, + 0x00005a36u, 0x00005a34u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x00005a3au, 0x00005a2eu, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00005a3bu, 0x00005a3au, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00005a3du, + 0x00005a36u, 0x00005a3bu, 0x000500c6u, 0x00000006u, 0x00005a3fu, 0x00005a3du, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x00005a42u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005a3fu, 0x0004003du, + 0x0000000fu, 0x00005a43u, 0x00005a42u, 0x00040071u, 0x00000006u, 0x00005a44u, 0x00005a43u, 0x00040071u, + 0x00000011u, 0x00005a46u, 0x00005a44u, 0x0004007cu, 0x00000012u, 0x00005a47u, 0x00005a46u, 0x00070050u, + 0x00000013u, 0x00005a48u, 0x00005a47u, 0x00005a47u, 0x00005a47u, 0x00005a47u, 0x00050050u, 0x00000058u, + 0x00004620u, 0x000071f4u, 0x00004339u, 0x0004007cu, 0x000000abu, 0x00004621u, 0x00004620u, 0x00050051u, + 0x00000006u, 0x00005a53u, 0x00004621u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005a54u, 0x0000417du, + 0x00005a53u, 0x00050080u, 0x00000006u, 0x00005a55u, 0x0000417bu, 0x00005a54u, 0x00050051u, 0x00000006u, + 0x00005a57u, 0x00004621u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005a59u, 0x00005a55u, 0x00005a57u, + 0x000500c7u, 0x00000006u, 0x00005a5bu, 0x00005a59u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x00005a5fu, + 0x00005a53u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00005a60u, 0x00005a5fu, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00005a62u, 0x00005a5bu, 0x00005a60u, 0x000500c6u, 0x00000006u, 0x00005a64u, 0x00005a62u, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x00005a67u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00005a64u, 0x0004003du, 0x0000000fu, 0x00005a68u, 0x00005a67u, 0x00040071u, 0x00000006u, 0x00005a69u, + 0x00005a68u, 0x00040071u, 0x00000011u, 0x00005a6bu, 0x00005a69u, 0x0004007cu, 0x00000012u, 0x00005a6cu, + 0x00005a6bu, 0x00070050u, 0x00000013u, 0x00005a6du, 0x00005a6cu, 0x00005a6cu, 0x00005a6cu, 0x00005a6cu, + 0x000200f9u, 0x00004625u, 0x000200f8u, 0x00004625u, 0x000700f5u, 0x00000013u, 0x000075c5u, 0x00006bf1u, + 0x0000460fu, 0x00005a6du, 0x00004616u, 0x000700f5u, 0x00000013u, 0x000074cfu, 0x00006bf1u, 0x0000460fu, + 0x00005a48u, 0x00004616u, 0x000300f7u, 0x0000462fu, 0x00000000u, 0x000400fau, 0x00004343u, 0x00004627u, + 0x0000462fu, 0x000200f8u, 0x00004627u, 0x00050050u, 0x00000058u, 0x0000462au, 0x000071fcu, 0x00004339u, + 0x0004007cu, 0x000000abu, 0x0000462bu, 0x0000462au, 0x00050051u, 0x00000006u, 0x00005a78u, 0x0000462bu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005a79u, 0x0000417du, 0x00005a78u, 0x00050080u, 0x00000006u, + 0x00005a7au, 0x0000417bu, 0x00005a79u, 0x00050051u, 0x00000006u, 0x00005a7cu, 0x0000462bu, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00005a7eu, 0x00005a7au, 0x00005a7cu, 0x000500c7u, 0x00000006u, 0x00005a80u, + 0x00005a7eu, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x00005a84u, 0x00005a78u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00005a85u, 0x00005a84u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00005a87u, 0x00005a80u, + 0x00005a85u, 0x000500c6u, 0x00000006u, 0x00005a89u, 0x00005a87u, 0x000002fdu, 0x00080041u, 0x000006aau, + 0x00005a8cu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005a89u, 0x0004003du, 0x0000000fu, + 0x00005a8du, 0x00005a8cu, 0x00040071u, 0x00000006u, 0x00005a8eu, 0x00005a8du, 0x00040071u, 0x00000011u, + 0x00005a90u, 0x00005a8eu, 0x0004007cu, 0x00000012u, 0x00005a91u, 0x00005a90u, 0x00070050u, 0x00000013u, + 0x00005a92u, 0x00005a91u, 0x00005a91u, 0x00005a91u, 0x00005a91u, 0x000200f9u, 0x0000462fu, 0x000200f8u, + 0x0000462fu, 0x000700f5u, 0x00000013u, 0x000076bau, 0x00006bf1u, 0x00004625u, 0x00005a92u, 0x00004627u, + 0x000200f9u, 0x00004630u, 0x000200f8u, 0x000045eeu, 0x0004007cu, 0x000000abu, 0x000045f0u, 0x0000721bu, + 0x00050051u, 0x00000006u, 0x0000593au, 0x000045f0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000593bu, + 0x0000417du, 0x0000593au, 0x00050080u, 0x00000006u, 0x0000593cu, 0x0000417bu, 0x0000593bu, 0x00050051u, + 0x00000006u, 0x0000593eu, 0x000045f0u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000593fu, 0x0000593eu, + 0x000001a8u, 0x00050080u, 0x00000006u, 0x00005941u, 0x0000593cu, 0x0000593fu, 0x000500c7u, 0x00000006u, + 0x00005943u, 0x00005941u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00005946u, 0x0000593eu, 0x000500c7u, + 0x00000006u, 0x00005947u, 0x00005946u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00005948u, 0x00005947u, + 0x00000694u, 0x000500c7u, 0x00000006u, 0x0000594cu, 0x0000593au, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x0000594du, 0x0000594cu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000594fu, 0x00005943u, 0x0000594du, + 0x000500c6u, 0x00000006u, 0x00005951u, 0x0000594fu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00005954u, + 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005951u, 0x0004003du, 0x0000000fu, 0x00005955u, + 0x00005954u, 0x00040071u, 0x00000006u, 0x00005956u, 0x00005955u, 0x000500c2u, 0x00000006u, 0x00005959u, + 0x00005956u, 0x00005948u, 0x000500c7u, 0x00000006u, 0x0000595au, 0x00005959u, 0x000006b1u, 0x000500c4u, + 0x00000006u, 0x0000595cu, 0x0000595au, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x0000595eu, 0x0000595au, + 0x0000595cu, 0x00040071u, 0x00000011u, 0x00005960u, 0x0000595eu, 0x0004007cu, 0x00000012u, 0x00005961u, + 0x00005960u, 0x00070050u, 0x00000013u, 0x00005962u, 0x00005961u, 0x00005961u, 0x00005961u, 0x00005961u, + 0x000300f7u, 0x00004604u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x000045f5u, 0x00004604u, 0x000200f8u, + 0x000045f5u, 0x00050050u, 0x00000058u, 0x000045f8u, 0x000071fcu, 0x00004337u, 0x0004007cu, 0x000000abu, + 0x000045f9u, 0x000045f8u, 0x00050051u, 0x00000006u, 0x0000596eu, 0x000045f9u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000596fu, 0x0000417du, 0x0000596eu, 0x00050080u, 0x00000006u, 0x00005970u, 0x0000417bu, + 0x0000596fu, 0x00050051u, 0x00000006u, 0x00005972u, 0x000045f9u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x00005973u, 0x00005972u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x00005975u, 0x00005970u, 0x00005973u, + 0x000500c7u, 0x00000006u, 0x00005977u, 0x00005975u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x0000597au, + 0x00005972u, 0x000500c7u, 0x00000006u, 0x0000597bu, 0x0000597au, 0x000002f6u, 0x00050084u, 0x00000006u, + 0x0000597cu, 0x0000597bu, 0x00000694u, 0x000500c7u, 0x00000006u, 0x00005980u, 0x0000596eu, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00005981u, 0x00005980u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00005983u, + 0x00005977u, 0x00005981u, 0x000500c6u, 0x00000006u, 0x00005985u, 0x00005983u, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x00005988u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005985u, 0x0004003du, + 0x0000000fu, 0x00005989u, 0x00005988u, 0x00040071u, 0x00000006u, 0x0000598au, 0x00005989u, 0x000500c2u, + 0x00000006u, 0x0000598du, 0x0000598au, 0x0000597cu, 0x000500c7u, 0x00000006u, 0x0000598eu, 0x0000598du, + 0x000006b1u, 0x000500c4u, 0x00000006u, 0x00005990u, 0x0000598eu, 0x000001b1u, 0x000500c5u, 0x00000006u, + 0x00005992u, 0x0000598eu, 0x00005990u, 0x00040071u, 0x00000011u, 0x00005994u, 0x00005992u, 0x0004007cu, + 0x00000012u, 0x00005995u, 0x00005994u, 0x00070050u, 0x00000013u, 0x00005996u, 0x00005995u, 0x00005995u, + 0x00005995u, 0x00005995u, 0x00050050u, 0x00000058u, 0x000045ffu, 0x000071f4u, 0x00004339u, 0x0004007cu, + 0x000000abu, 0x00004600u, 0x000045ffu, 0x00050051u, 0x00000006u, 0x000059a2u, 0x00004600u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000059a3u, 0x0000417du, 0x000059a2u, 0x00050080u, 0x00000006u, 0x000059a4u, + 0x0000417bu, 0x000059a3u, 0x00050051u, 0x00000006u, 0x000059a6u, 0x00004600u, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x000059a7u, 0x000059a6u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x000059a9u, 0x000059a4u, + 0x000059a7u, 0x000500c7u, 0x00000006u, 0x000059abu, 0x000059a9u, 0x0000068cu, 0x000400c8u, 0x00000006u, + 0x000059aeu, 0x000059a6u, 0x000500c7u, 0x00000006u, 0x000059afu, 0x000059aeu, 0x000002f6u, 0x00050084u, + 0x00000006u, 0x000059b0u, 0x000059afu, 0x00000694u, 0x000500c7u, 0x00000006u, 0x000059b4u, 0x000059a2u, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000059b5u, 0x000059b4u, 0x000001abu, 0x000500c6u, 0x00000006u, + 0x000059b7u, 0x000059abu, 0x000059b5u, 0x000500c6u, 0x00000006u, 0x000059b9u, 0x000059b7u, 0x000002fdu, + 0x00080041u, 0x000006aau, 0x000059bcu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000059b9u, + 0x0004003du, 0x0000000fu, 0x000059bdu, 0x000059bcu, 0x00040071u, 0x00000006u, 0x000059beu, 0x000059bdu, + 0x000500c2u, 0x00000006u, 0x000059c1u, 0x000059beu, 0x000059b0u, 0x000500c7u, 0x00000006u, 0x000059c2u, + 0x000059c1u, 0x000006b1u, 0x000500c4u, 0x00000006u, 0x000059c4u, 0x000059c2u, 0x000001b1u, 0x000500c5u, + 0x00000006u, 0x000059c6u, 0x000059c2u, 0x000059c4u, 0x00040071u, 0x00000011u, 0x000059c8u, 0x000059c6u, + 0x0004007cu, 0x00000012u, 0x000059c9u, 0x000059c8u, 0x00070050u, 0x00000013u, 0x000059cau, 0x000059c9u, + 0x000059c9u, 0x000059c9u, 0x000059c9u, 0x000200f9u, 0x00004604u, 0x000200f8u, 0x00004604u, 0x000700f5u, + 0x00000013u, 0x000075c3u, 0x00006bf1u, 0x000045eeu, 0x000059cau, 0x000045f5u, 0x000700f5u, 0x00000013u, + 0x000074cdu, 0x00006bf1u, 0x000045eeu, 0x00005996u, 0x000045f5u, 0x000300f7u, 0x0000460eu, 0x00000000u, + 0x000400fau, 0x00004343u, 0x00004606u, 0x0000460eu, 0x000200f8u, 0x00004606u, 0x00050050u, 0x00000058u, + 0x00004609u, 0x000071fcu, 0x00004339u, 0x0004007cu, 0x000000abu, 0x0000460au, 0x00004609u, 0x00050051u, + 0x00000006u, 0x000059d6u, 0x0000460au, 0x00000001u, 0x00050084u, 0x00000006u, 0x000059d7u, 0x0000417du, + 0x000059d6u, 0x00050080u, 0x00000006u, 0x000059d8u, 0x0000417bu, 0x000059d7u, 0x00050051u, 0x00000006u, + 0x000059dau, 0x0000460au, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000059dbu, 0x000059dau, 0x000001a8u, + 0x00050080u, 0x00000006u, 0x000059ddu, 0x000059d8u, 0x000059dbu, 0x000500c7u, 0x00000006u, 0x000059dfu, + 0x000059ddu, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x000059e2u, 0x000059dau, 0x000500c7u, 0x00000006u, + 0x000059e3u, 0x000059e2u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x000059e4u, 0x000059e3u, 0x00000694u, + 0x000500c7u, 0x00000006u, 0x000059e8u, 0x000059d6u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000059e9u, + 0x000059e8u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000059ebu, 0x000059dfu, 0x000059e9u, 0x000500c6u, + 0x00000006u, 0x000059edu, 0x000059ebu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x000059f0u, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000059edu, 0x0004003du, 0x0000000fu, 0x000059f1u, 0x000059f0u, + 0x00040071u, 0x00000006u, 0x000059f2u, 0x000059f1u, 0x000500c2u, 0x00000006u, 0x000059f5u, 0x000059f2u, + 0x000059e4u, 0x000500c7u, 0x00000006u, 0x000059f6u, 0x000059f5u, 0x000006b1u, 0x000500c4u, 0x00000006u, + 0x000059f8u, 0x000059f6u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x000059fau, 0x000059f6u, 0x000059f8u, + 0x00040071u, 0x00000011u, 0x000059fcu, 0x000059fau, 0x0004007cu, 0x00000012u, 0x000059fdu, 0x000059fcu, + 0x00070050u, 0x00000013u, 0x000059feu, 0x000059fdu, 0x000059fdu, 0x000059fdu, 0x000059fdu, 0x000200f9u, + 0x0000460eu, 0x000200f8u, 0x0000460eu, 0x000700f5u, 0x00000013u, 0x000076b8u, 0x00006bf1u, 0x00004604u, + 0x000059feu, 0x00004606u, 0x000200f9u, 0x00004630u, 0x000200f8u, 0x000045cdu, 0x0004007cu, 0x000000abu, + 0x000045cfu, 0x0000721bu, 0x00050051u, 0x00000006u, 0x00005885u, 0x000045cfu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005886u, 0x0000417du, 0x00005885u, 0x00050080u, 0x00000006u, 0x00005887u, 0x0000417bu, + 0x00005886u, 0x00050051u, 0x00000006u, 0x00005889u, 0x000045cfu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x0000588au, 0x00005889u, 0x000002fau, 0x00050080u, 0x00000006u, 0x0000588cu, 0x00005887u, 0x0000588au, + 0x000500c7u, 0x00000006u, 0x0000588eu, 0x0000588cu, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00005890u, + 0x0000588eu, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00005893u, 0x00005885u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00005894u, 0x00005893u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00005896u, 0x00005890u, + 0x00005894u, 0x000500c6u, 0x00000006u, 0x00005898u, 0x00005896u, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x0000589bu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005898u, 0x0004003du, 0x00000011u, + 0x0000589cu, 0x0000589bu, 0x00040071u, 0x00000006u, 0x0000589du, 0x0000589cu, 0x000500c2u, 0x00000006u, + 0x0000589fu, 0x0000589du, 0x000001dbu, 0x00040071u, 0x00000011u, 0x000058a0u, 0x0000589fu, 0x0004007cu, + 0x00000012u, 0x000058a1u, 0x000058a0u, 0x000500c7u, 0x00000006u, 0x000058a3u, 0x0000589du, 0x00000659u, + 0x00040071u, 0x00000011u, 0x000058a4u, 0x000058a3u, 0x0004007cu, 0x00000012u, 0x000058a5u, 0x000058a4u, + 0x00050050u, 0x0000011du, 0x000058a6u, 0x000058a1u, 0x000058a5u, 0x0009004fu, 0x00000013u, 0x000058a7u, + 0x000058a6u, 0x000058a6u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000300f7u, 0x000045e3u, + 0x00000000u, 0x000400fau, 0x00001b2cu, 0x000045d4u, 0x000045e3u, 0x000200f8u, 0x000045d4u, 0x00050050u, + 0x00000058u, 0x000045d7u, 0x000071fcu, 0x00004337u, 0x0004007cu, 0x000000abu, 0x000045d8u, 0x000045d7u, + 0x00050051u, 0x00000006u, 0x000058b2u, 0x000045d8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000058b3u, + 0x0000417du, 0x000058b2u, 0x00050080u, 0x00000006u, 0x000058b4u, 0x0000417bu, 0x000058b3u, 0x00050051u, + 0x00000006u, 0x000058b6u, 0x000045d8u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000058b7u, 0x000058b6u, + 0x000002fau, 0x00050080u, 0x00000006u, 0x000058b9u, 0x000058b4u, 0x000058b7u, 0x000500c7u, 0x00000006u, + 0x000058bbu, 0x000058b9u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x000058bdu, 0x000058bbu, 0x000001a8u, + 0x000500c7u, 0x00000006u, 0x000058c0u, 0x000058b2u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000058c1u, + 0x000058c0u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x000058c3u, 0x000058bdu, 0x000058c1u, 0x000500c6u, + 0x00000006u, 0x000058c5u, 0x000058c3u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x000058c8u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000058c5u, 0x0004003du, 0x00000011u, 0x000058c9u, 0x000058c8u, + 0x00040071u, 0x00000006u, 0x000058cau, 0x000058c9u, 0x000500c2u, 0x00000006u, 0x000058ccu, 0x000058cau, + 0x000001dbu, 0x00040071u, 0x00000011u, 0x000058cdu, 0x000058ccu, 0x0004007cu, 0x00000012u, 0x000058ceu, + 0x000058cdu, 0x000500c7u, 0x00000006u, 0x000058d0u, 0x000058cau, 0x00000659u, 0x00040071u, 0x00000011u, + 0x000058d1u, 0x000058d0u, 0x0004007cu, 0x00000012u, 0x000058d2u, 0x000058d1u, 0x00050050u, 0x0000011du, + 0x000058d3u, 0x000058ceu, 0x000058d2u, 0x0009004fu, 0x00000013u, 0x000058d4u, 0x000058d3u, 0x000058d3u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x00000058u, 0x000045deu, 0x000071f4u, + 0x00004339u, 0x0004007cu, 0x000000abu, 0x000045dfu, 0x000045deu, 0x00050051u, 0x00000006u, 0x000058dfu, + 0x000045dfu, 0x00000001u, 0x00050084u, 0x00000006u, 0x000058e0u, 0x0000417du, 0x000058dfu, 0x00050080u, + 0x00000006u, 0x000058e1u, 0x0000417bu, 0x000058e0u, 0x00050051u, 0x00000006u, 0x000058e3u, 0x000045dfu, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000058e4u, 0x000058e3u, 0x000002fau, 0x00050080u, 0x00000006u, + 0x000058e6u, 0x000058e1u, 0x000058e4u, 0x000500c7u, 0x00000006u, 0x000058e8u, 0x000058e6u, 0x0000068cu, + 0x000500c2u, 0x00000006u, 0x000058eau, 0x000058e8u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x000058edu, + 0x000058dfu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000058eeu, 0x000058edu, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x000058f0u, 0x000058eau, 0x000058eeu, 0x000500c6u, 0x00000006u, 0x000058f2u, 0x000058f0u, + 0x000002f6u, 0x00080041u, 0x0000077au, 0x000058f5u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x000058f2u, 0x0004003du, 0x00000011u, 0x000058f6u, 0x000058f5u, 0x00040071u, 0x00000006u, 0x000058f7u, + 0x000058f6u, 0x000500c2u, 0x00000006u, 0x000058f9u, 0x000058f7u, 0x000001dbu, 0x00040071u, 0x00000011u, + 0x000058fau, 0x000058f9u, 0x0004007cu, 0x00000012u, 0x000058fbu, 0x000058fau, 0x000500c7u, 0x00000006u, + 0x000058fdu, 0x000058f7u, 0x00000659u, 0x00040071u, 0x00000011u, 0x000058feu, 0x000058fdu, 0x0004007cu, + 0x00000012u, 0x000058ffu, 0x000058feu, 0x00050050u, 0x0000011du, 0x00005900u, 0x000058fbu, 0x000058ffu, + 0x0009004fu, 0x00000013u, 0x00005901u, 0x00005900u, 0x00005900u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x000045e3u, 0x000200f8u, 0x000045e3u, 0x000700f5u, 0x00000013u, 0x000075c1u, + 0x00006bf1u, 0x000045cdu, 0x00005901u, 0x000045d4u, 0x000700f5u, 0x00000013u, 0x000074cbu, 0x00006bf1u, + 0x000045cdu, 0x000058d4u, 0x000045d4u, 0x000300f7u, 0x000045edu, 0x00000000u, 0x000400fau, 0x00004343u, + 0x000045e5u, 0x000045edu, 0x000200f8u, 0x000045e5u, 0x00050050u, 0x00000058u, 0x000045e8u, 0x000071fcu, + 0x00004339u, 0x0004007cu, 0x000000abu, 0x000045e9u, 0x000045e8u, 0x00050051u, 0x00000006u, 0x0000590cu, + 0x000045e9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000590du, 0x0000417du, 0x0000590cu, 0x00050080u, + 0x00000006u, 0x0000590eu, 0x0000417bu, 0x0000590du, 0x00050051u, 0x00000006u, 0x00005910u, 0x000045e9u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00005911u, 0x00005910u, 0x000002fau, 0x00050080u, 0x00000006u, + 0x00005913u, 0x0000590eu, 0x00005911u, 0x000500c7u, 0x00000006u, 0x00005915u, 0x00005913u, 0x0000068cu, + 0x000500c2u, 0x00000006u, 0x00005917u, 0x00005915u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x0000591au, + 0x0000590cu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000591bu, 0x0000591au, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x0000591du, 0x00005917u, 0x0000591bu, 0x000500c6u, 0x00000006u, 0x0000591fu, 0x0000591du, + 0x000002f6u, 0x00080041u, 0x0000077au, 0x00005922u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x0000591fu, 0x0004003du, 0x00000011u, 0x00005923u, 0x00005922u, 0x00040071u, 0x00000006u, 0x00005924u, + 0x00005923u, 0x000500c2u, 0x00000006u, 0x00005926u, 0x00005924u, 0x000001dbu, 0x00040071u, 0x00000011u, + 0x00005927u, 0x00005926u, 0x0004007cu, 0x00000012u, 0x00005928u, 0x00005927u, 0x000500c7u, 0x00000006u, + 0x0000592au, 0x00005924u, 0x00000659u, 0x00040071u, 0x00000011u, 0x0000592bu, 0x0000592au, 0x0004007cu, + 0x00000012u, 0x0000592cu, 0x0000592bu, 0x00050050u, 0x0000011du, 0x0000592du, 0x00005928u, 0x0000592cu, + 0x0009004fu, 0x00000013u, 0x0000592eu, 0x0000592du, 0x0000592du, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000200f9u, 0x000045edu, 0x000200f8u, 0x000045edu, 0x000700f5u, 0x00000013u, 0x000076b6u, + 0x00006bf1u, 0x000045e3u, 0x0000592eu, 0x000045e5u, 0x000200f9u, 0x00004630u, 0x000200f8u, 0x00004630u, + 0x000900f5u, 0x00000013u, 0x000076b5u, 0x000076b6u, 0x000045edu, 0x000076b8u, 0x0000460eu, 0x000076bau, + 0x0000462fu, 0x000900f5u, 0x00000013u, 0x000075bfu, 0x000075c1u, 0x000045edu, 0x000075c3u, 0x0000460eu, + 0x000075c5u, 0x0000462fu, 0x000900f5u, 0x00000013u, 0x000074c9u, 0x000074cbu, 0x000045edu, 0x000074cdu, + 0x0000460eu, 0x000074cfu, 0x0000462fu, 0x000900f5u, 0x00000013u, 0x0000735eu, 0x000058a7u, 0x000045edu, + 0x00005962u, 0x0000460eu, 0x00005a23u, 0x0000462fu, 0x000200f9u, 0x00004631u, 0x000200f8u, 0x0000453eu, + 0x00040071u, 0x00000006u, 0x00004541u, 0x000089b8u, 0x0004007cu, 0x00000008u, 0x00004542u, 0x00004541u, + 0x000300f7u, 0x000045c7u, 0x00000000u, 0x000b00fbu, 0x00004542u, 0x000045c7u, 0x00000000u, 0x00004543u, + 0x00000001u, 0x00004564u, 0x00000002u, 0x00004585u, 0x00000003u, 0x000045a6u, 0x000200f8u, 0x000045a6u, + 0x0004007cu, 0x000000abu, 0x000045a8u, 0x0000721bu, 0x00050051u, 0x00000006u, 0x000057d1u, 0x000045a8u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000057d2u, 0x0000417du, 0x000057d1u, 0x00050080u, 0x00000006u, + 0x000057d3u, 0x0000417bu, 0x000057d2u, 0x00050051u, 0x00000006u, 0x000057d5u, 0x000045a8u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x000057d6u, 0x000057d5u, 0x000002fau, 0x00050080u, 0x00000006u, 0x000057d8u, + 0x000057d3u, 0x000057d6u, 0x000500c7u, 0x00000006u, 0x000057dau, 0x000057d8u, 0x0000068cu, 0x000500c2u, + 0x00000006u, 0x000057dcu, 0x000057dau, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x000057dfu, 0x000057d1u, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000057e0u, 0x000057dfu, 0x000001a8u, 0x000500c6u, 0x00000006u, + 0x000057e2u, 0x000057dcu, 0x000057e0u, 0x000500c6u, 0x00000006u, 0x000057e4u, 0x000057e2u, 0x000002f6u, + 0x00080041u, 0x0000077au, 0x000057e7u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000057e4u, + 0x0004003du, 0x00000011u, 0x000057e8u, 0x000057e7u, 0x00040071u, 0x00000006u, 0x000057e9u, 0x000057e8u, + 0x000500c2u, 0x00000006u, 0x000057ebu, 0x000057e9u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x000057ecu, + 0x000057ebu, 0x0004007cu, 0x00000012u, 0x000057edu, 0x000057ecu, 0x000500c7u, 0x00000006u, 0x000057efu, + 0x000057e9u, 0x00000659u, 0x00040071u, 0x00000011u, 0x000057f0u, 0x000057efu, 0x0004007cu, 0x00000012u, + 0x000057f1u, 0x000057f0u, 0x00050050u, 0x0000011du, 0x000057f2u, 0x000057edu, 0x000057f1u, 0x0009004fu, + 0x00000013u, 0x000057f3u, 0x000057f2u, 0x000057f2u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, + 0x000300f7u, 0x000045bcu, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x000045adu, 0x000045bcu, 0x000200f8u, + 0x000045adu, 0x00050050u, 0x00000058u, 0x000045b0u, 0x000071fcu, 0x00004337u, 0x0004007cu, 0x000000abu, + 0x000045b1u, 0x000045b0u, 0x00050051u, 0x00000006u, 0x000057feu, 0x000045b1u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000057ffu, 0x0000417du, 0x000057feu, 0x00050080u, 0x00000006u, 0x00005800u, 0x0000417bu, + 0x000057ffu, 0x00050051u, 0x00000006u, 0x00005802u, 0x000045b1u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00005803u, 0x00005802u, 0x000002fau, 0x00050080u, 0x00000006u, 0x00005805u, 0x00005800u, 0x00005803u, + 0x000500c7u, 0x00000006u, 0x00005807u, 0x00005805u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00005809u, + 0x00005807u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x0000580cu, 0x000057feu, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x0000580du, 0x0000580cu, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x0000580fu, 0x00005809u, + 0x0000580du, 0x000500c6u, 0x00000006u, 0x00005811u, 0x0000580fu, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x00005814u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005811u, 0x0004003du, 0x00000011u, + 0x00005815u, 0x00005814u, 0x00040071u, 0x00000006u, 0x00005816u, 0x00005815u, 0x000500c2u, 0x00000006u, + 0x00005818u, 0x00005816u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x00005819u, 0x00005818u, 0x0004007cu, + 0x00000012u, 0x0000581au, 0x00005819u, 0x000500c7u, 0x00000006u, 0x0000581cu, 0x00005816u, 0x00000659u, + 0x00040071u, 0x00000011u, 0x0000581du, 0x0000581cu, 0x0004007cu, 0x00000012u, 0x0000581eu, 0x0000581du, + 0x00050050u, 0x0000011du, 0x0000581fu, 0x0000581au, 0x0000581eu, 0x0009004fu, 0x00000013u, 0x00005820u, + 0x0000581fu, 0x0000581fu, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, 0x00000058u, + 0x000045b7u, 0x000071f4u, 0x00004339u, 0x0004007cu, 0x000000abu, 0x000045b8u, 0x000045b7u, 0x00050051u, + 0x00000006u, 0x0000582bu, 0x000045b8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000582cu, 0x0000417du, + 0x0000582bu, 0x00050080u, 0x00000006u, 0x0000582du, 0x0000417bu, 0x0000582cu, 0x00050051u, 0x00000006u, + 0x0000582fu, 0x000045b8u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005830u, 0x0000582fu, 0x000002fau, + 0x00050080u, 0x00000006u, 0x00005832u, 0x0000582du, 0x00005830u, 0x000500c7u, 0x00000006u, 0x00005834u, + 0x00005832u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00005836u, 0x00005834u, 0x000001a8u, 0x000500c7u, + 0x00000006u, 0x00005839u, 0x0000582bu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000583au, 0x00005839u, + 0x000001a8u, 0x000500c6u, 0x00000006u, 0x0000583cu, 0x00005836u, 0x0000583au, 0x000500c6u, 0x00000006u, + 0x0000583eu, 0x0000583cu, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00005841u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x0000583eu, 0x0004003du, 0x00000011u, 0x00005842u, 0x00005841u, 0x00040071u, + 0x00000006u, 0x00005843u, 0x00005842u, 0x000500c2u, 0x00000006u, 0x00005845u, 0x00005843u, 0x000001dbu, + 0x00040071u, 0x00000011u, 0x00005846u, 0x00005845u, 0x0004007cu, 0x00000012u, 0x00005847u, 0x00005846u, + 0x000500c7u, 0x00000006u, 0x00005849u, 0x00005843u, 0x00000659u, 0x00040071u, 0x00000011u, 0x0000584au, + 0x00005849u, 0x0004007cu, 0x00000012u, 0x0000584bu, 0x0000584au, 0x00050050u, 0x0000011du, 0x0000584cu, + 0x00005847u, 0x0000584bu, 0x0009004fu, 0x00000013u, 0x0000584du, 0x0000584cu, 0x0000584cu, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000045bcu, 0x000200f8u, 0x000045bcu, 0x000700f5u, + 0x00000013u, 0x000075beu, 0x00006bf1u, 0x000045a6u, 0x0000584du, 0x000045adu, 0x000700f5u, 0x00000013u, + 0x000074c8u, 0x00006bf1u, 0x000045a6u, 0x00005820u, 0x000045adu, 0x000300f7u, 0x000045c6u, 0x00000000u, + 0x000400fau, 0x00004343u, 0x000045beu, 0x000045c6u, 0x000200f8u, 0x000045beu, 0x00050050u, 0x00000058u, + 0x000045c1u, 0x000071fcu, 0x00004339u, 0x0004007cu, 0x000000abu, 0x000045c2u, 0x000045c1u, 0x00050051u, + 0x00000006u, 0x00005858u, 0x000045c2u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005859u, 0x0000417du, + 0x00005858u, 0x00050080u, 0x00000006u, 0x0000585au, 0x0000417bu, 0x00005859u, 0x00050051u, 0x00000006u, + 0x0000585cu, 0x000045c2u, 0x00000000u, 0x00050084u, 0x00000006u, 0x0000585du, 0x0000585cu, 0x000002fau, + 0x00050080u, 0x00000006u, 0x0000585fu, 0x0000585au, 0x0000585du, 0x000500c7u, 0x00000006u, 0x00005861u, + 0x0000585fu, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00005863u, 0x00005861u, 0x000001a8u, 0x000500c7u, + 0x00000006u, 0x00005866u, 0x00005858u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00005867u, 0x00005866u, + 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00005869u, 0x00005863u, 0x00005867u, 0x000500c6u, 0x00000006u, + 0x0000586bu, 0x00005869u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x0000586eu, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x0000586bu, 0x0004003du, 0x00000011u, 0x0000586fu, 0x0000586eu, 0x00040071u, + 0x00000006u, 0x00005870u, 0x0000586fu, 0x000500c2u, 0x00000006u, 0x00005872u, 0x00005870u, 0x000001dbu, + 0x00040071u, 0x00000011u, 0x00005873u, 0x00005872u, 0x0004007cu, 0x00000012u, 0x00005874u, 0x00005873u, + 0x000500c7u, 0x00000006u, 0x00005876u, 0x00005870u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00005877u, + 0x00005876u, 0x0004007cu, 0x00000012u, 0x00005878u, 0x00005877u, 0x00050050u, 0x0000011du, 0x00005879u, + 0x00005874u, 0x00005878u, 0x0009004fu, 0x00000013u, 0x0000587au, 0x00005879u, 0x00005879u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000045c6u, 0x000200f8u, 0x000045c6u, 0x000700f5u, + 0x00000013u, 0x000076b3u, 0x00006bf1u, 0x000045bcu, 0x0000587au, 0x000045beu, 0x000200f9u, 0x000045c7u, + 0x000200f8u, 0x00004585u, 0x0004007cu, 0x000000abu, 0x00004587u, 0x0000721bu, 0x00050051u, 0x00000006u, + 0x000056e6u, 0x00004587u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000056e7u, 0x0000417du, 0x000056e6u, + 0x00050080u, 0x00000006u, 0x000056e8u, 0x0000417bu, 0x000056e7u, 0x00050051u, 0x00000006u, 0x000056eau, + 0x00004587u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000056ebu, 0x000056eau, 0x000002fau, 0x00050080u, + 0x00000006u, 0x000056edu, 0x000056e8u, 0x000056ebu, 0x000500c7u, 0x00000006u, 0x000056efu, 0x000056edu, + 0x0000068cu, 0x000500c2u, 0x00000006u, 0x000056f1u, 0x000056efu, 0x000001a8u, 0x000500c7u, 0x00000006u, + 0x000056f4u, 0x000056e6u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000056f5u, 0x000056f4u, 0x000001a8u, + 0x000500c6u, 0x00000006u, 0x000056f7u, 0x000056f1u, 0x000056f5u, 0x000500c6u, 0x00000006u, 0x000056f9u, + 0x000056f7u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x000056fcu, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x000056f9u, 0x0004003du, 0x00000011u, 0x000056fdu, 0x000056fcu, 0x00040071u, 0x00000006u, + 0x000056feu, 0x000056fdu, 0x000500c2u, 0x00000006u, 0x00005706u, 0x000056feu, 0x000001dbu, 0x000500c7u, + 0x00000006u, 0x00005708u, 0x000056feu, 0x00000659u, 0x00040071u, 0x00000011u, 0x0000570au, 0x00005706u, + 0x0004007cu, 0x00000012u, 0x0000570bu, 0x0000570au, 0x00040071u, 0x00000011u, 0x00005713u, 0x00005708u, + 0x0004007cu, 0x00000012u, 0x00005714u, 0x00005713u, 0x00070050u, 0x00000013u, 0x00005715u, 0x0000570bu, + 0x0000570bu, 0x0000570bu, 0x00005714u, 0x000300f7u, 0x0000459bu, 0x00000000u, 0x000400fau, 0x00001b2cu, + 0x0000458cu, 0x0000459bu, 0x000200f8u, 0x0000458cu, 0x00050050u, 0x00000058u, 0x0000458fu, 0x000071fcu, + 0x00004337u, 0x0004007cu, 0x000000abu, 0x00004590u, 0x0000458fu, 0x00050051u, 0x00000006u, 0x00005721u, + 0x00004590u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005722u, 0x0000417du, 0x00005721u, 0x00050080u, + 0x00000006u, 0x00005723u, 0x0000417bu, 0x00005722u, 0x00050051u, 0x00000006u, 0x00005725u, 0x00004590u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x00005726u, 0x00005725u, 0x000002fau, 0x00050080u, 0x00000006u, + 0x00005728u, 0x00005723u, 0x00005726u, 0x000500c7u, 0x00000006u, 0x0000572au, 0x00005728u, 0x0000068cu, + 0x000500c2u, 0x00000006u, 0x0000572cu, 0x0000572au, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x0000572fu, + 0x00005721u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00005730u, 0x0000572fu, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x00005732u, 0x0000572cu, 0x00005730u, 0x000500c6u, 0x00000006u, 0x00005734u, 0x00005732u, + 0x000002f6u, 0x00080041u, 0x0000077au, 0x00005737u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00005734u, 0x0004003du, 0x00000011u, 0x00005738u, 0x00005737u, 0x00040071u, 0x00000006u, 0x00005739u, + 0x00005738u, 0x000500c2u, 0x00000006u, 0x00005741u, 0x00005739u, 0x000001dbu, 0x000500c7u, 0x00000006u, + 0x00005743u, 0x00005739u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00005745u, 0x00005741u, 0x0004007cu, + 0x00000012u, 0x00005746u, 0x00005745u, 0x00040071u, 0x00000011u, 0x0000574eu, 0x00005743u, 0x0004007cu, + 0x00000012u, 0x0000574fu, 0x0000574eu, 0x00070050u, 0x00000013u, 0x00005750u, 0x00005746u, 0x00005746u, + 0x00005746u, 0x0000574fu, 0x00050050u, 0x00000058u, 0x00004596u, 0x000071f4u, 0x00004339u, 0x0004007cu, + 0x000000abu, 0x00004597u, 0x00004596u, 0x00050051u, 0x00000006u, 0x0000575cu, 0x00004597u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000575du, 0x0000417du, 0x0000575cu, 0x00050080u, 0x00000006u, 0x0000575eu, + 0x0000417bu, 0x0000575du, 0x00050051u, 0x00000006u, 0x00005760u, 0x00004597u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x00005761u, 0x00005760u, 0x000002fau, 0x00050080u, 0x00000006u, 0x00005763u, 0x0000575eu, + 0x00005761u, 0x000500c7u, 0x00000006u, 0x00005765u, 0x00005763u, 0x0000068cu, 0x000500c2u, 0x00000006u, + 0x00005767u, 0x00005765u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x0000576au, 0x0000575cu, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x0000576bu, 0x0000576au, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x0000576du, + 0x00005767u, 0x0000576bu, 0x000500c6u, 0x00000006u, 0x0000576fu, 0x0000576du, 0x000002f6u, 0x00080041u, + 0x0000077au, 0x00005772u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000576fu, 0x0004003du, + 0x00000011u, 0x00005773u, 0x00005772u, 0x00040071u, 0x00000006u, 0x00005774u, 0x00005773u, 0x000500c2u, + 0x00000006u, 0x0000577cu, 0x00005774u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x0000577eu, 0x00005774u, + 0x00000659u, 0x00040071u, 0x00000011u, 0x00005780u, 0x0000577cu, 0x0004007cu, 0x00000012u, 0x00005781u, + 0x00005780u, 0x00040071u, 0x00000011u, 0x00005789u, 0x0000577eu, 0x0004007cu, 0x00000012u, 0x0000578au, + 0x00005789u, 0x00070050u, 0x00000013u, 0x0000578bu, 0x00005781u, 0x00005781u, 0x00005781u, 0x0000578au, + 0x000200f9u, 0x0000459bu, 0x000200f8u, 0x0000459bu, 0x000700f5u, 0x00000013u, 0x000075bcu, 0x00006bf1u, + 0x00004585u, 0x0000578bu, 0x0000458cu, 0x000700f5u, 0x00000013u, 0x000074c6u, 0x00006bf1u, 0x00004585u, + 0x00005750u, 0x0000458cu, 0x000300f7u, 0x000045a5u, 0x00000000u, 0x000400fau, 0x00004343u, 0x0000459du, + 0x000045a5u, 0x000200f8u, 0x0000459du, 0x00050050u, 0x00000058u, 0x000045a0u, 0x000071fcu, 0x00004339u, + 0x0004007cu, 0x000000abu, 0x000045a1u, 0x000045a0u, 0x00050051u, 0x00000006u, 0x00005797u, 0x000045a1u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00005798u, 0x0000417du, 0x00005797u, 0x00050080u, 0x00000006u, + 0x00005799u, 0x0000417bu, 0x00005798u, 0x00050051u, 0x00000006u, 0x0000579bu, 0x000045a1u, 0x00000000u, + 0x00050084u, 0x00000006u, 0x0000579cu, 0x0000579bu, 0x000002fau, 0x00050080u, 0x00000006u, 0x0000579eu, + 0x00005799u, 0x0000579cu, 0x000500c7u, 0x00000006u, 0x000057a0u, 0x0000579eu, 0x0000068cu, 0x000500c2u, + 0x00000006u, 0x000057a2u, 0x000057a0u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x000057a5u, 0x00005797u, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000057a6u, 0x000057a5u, 0x000001a8u, 0x000500c6u, 0x00000006u, + 0x000057a8u, 0x000057a2u, 0x000057a6u, 0x000500c6u, 0x00000006u, 0x000057aau, 0x000057a8u, 0x000002f6u, + 0x00080041u, 0x0000077au, 0x000057adu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000057aau, + 0x0004003du, 0x00000011u, 0x000057aeu, 0x000057adu, 0x00040071u, 0x00000006u, 0x000057afu, 0x000057aeu, + 0x000500c2u, 0x00000006u, 0x000057b7u, 0x000057afu, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x000057b9u, + 0x000057afu, 0x00000659u, 0x00040071u, 0x00000011u, 0x000057bbu, 0x000057b7u, 0x0004007cu, 0x00000012u, + 0x000057bcu, 0x000057bbu, 0x00040071u, 0x00000011u, 0x000057c4u, 0x000057b9u, 0x0004007cu, 0x00000012u, + 0x000057c5u, 0x000057c4u, 0x00070050u, 0x00000013u, 0x000057c6u, 0x000057bcu, 0x000057bcu, 0x000057bcu, + 0x000057c5u, 0x000200f9u, 0x000045a5u, 0x000200f8u, 0x000045a5u, 0x000700f5u, 0x00000013u, 0x000076b1u, + 0x00006bf1u, 0x0000459bu, 0x000057c6u, 0x0000459du, 0x000200f9u, 0x000045c7u, 0x000200f8u, 0x00004564u, + 0x0004007cu, 0x000000abu, 0x00004566u, 0x0000721bu, 0x00050051u, 0x00000006u, 0x000055f7u, 0x00004566u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000055f8u, 0x0000417du, 0x000055f7u, 0x00050080u, 0x00000006u, + 0x000055f9u, 0x0000417bu, 0x000055f8u, 0x00050051u, 0x00000006u, 0x000055fbu, 0x00004566u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x000055fdu, 0x000055f9u, 0x000055fbu, 0x000500c7u, 0x00000006u, 0x000055ffu, + 0x000055fdu, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x00005603u, 0x000055f7u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00005604u, 0x00005603u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00005606u, 0x000055ffu, + 0x00005604u, 0x000500c6u, 0x00000006u, 0x00005608u, 0x00005606u, 0x000002fdu, 0x00080041u, 0x000006aau, + 0x0000560bu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005608u, 0x0004003du, 0x0000000fu, + 0x0000560cu, 0x0000560bu, 0x00040071u, 0x00000006u, 0x0000560du, 0x0000560cu, 0x000500c2u, 0x00000006u, + 0x0000560fu, 0x0000560du, 0x000001b1u, 0x000500c7u, 0x00000006u, 0x00005611u, 0x0000560du, 0x000006b1u, + 0x000500c4u, 0x00000006u, 0x00005613u, 0x00005611u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00005615u, + 0x00005611u, 0x00005613u, 0x000500c4u, 0x00000006u, 0x00005617u, 0x0000560fu, 0x000001b1u, 0x000500c5u, + 0x00000006u, 0x00005619u, 0x0000560fu, 0x00005617u, 0x00040071u, 0x00000011u, 0x0000561bu, 0x00005619u, + 0x0004007cu, 0x00000012u, 0x0000561cu, 0x0000561bu, 0x00040071u, 0x00000011u, 0x00005624u, 0x00005615u, + 0x0004007cu, 0x00000012u, 0x00005625u, 0x00005624u, 0x00070050u, 0x00000013u, 0x00005626u, 0x0000561cu, + 0x0000561cu, 0x0000561cu, 0x00005625u, 0x000300f7u, 0x0000457au, 0x00000000u, 0x000400fau, 0x00001b2cu, + 0x0000456bu, 0x0000457au, 0x000200f8u, 0x0000456bu, 0x00050050u, 0x00000058u, 0x0000456eu, 0x000071fcu, + 0x00004337u, 0x0004007cu, 0x000000abu, 0x0000456fu, 0x0000456eu, 0x00050051u, 0x00000006u, 0x00005633u, + 0x0000456fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005634u, 0x0000417du, 0x00005633u, 0x00050080u, + 0x00000006u, 0x00005635u, 0x0000417bu, 0x00005634u, 0x00050051u, 0x00000006u, 0x00005637u, 0x0000456fu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005639u, 0x00005635u, 0x00005637u, 0x000500c7u, 0x00000006u, + 0x0000563bu, 0x00005639u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x0000563fu, 0x00005633u, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00005640u, 0x0000563fu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00005642u, + 0x0000563bu, 0x00005640u, 0x000500c6u, 0x00000006u, 0x00005644u, 0x00005642u, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x00005647u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005644u, 0x0004003du, + 0x0000000fu, 0x00005648u, 0x00005647u, 0x00040071u, 0x00000006u, 0x00005649u, 0x00005648u, 0x000500c2u, + 0x00000006u, 0x0000564bu, 0x00005649u, 0x000001b1u, 0x000500c7u, 0x00000006u, 0x0000564du, 0x00005649u, + 0x000006b1u, 0x000500c4u, 0x00000006u, 0x0000564fu, 0x0000564du, 0x000001b1u, 0x000500c5u, 0x00000006u, + 0x00005651u, 0x0000564du, 0x0000564fu, 0x000500c4u, 0x00000006u, 0x00005653u, 0x0000564bu, 0x000001b1u, + 0x000500c5u, 0x00000006u, 0x00005655u, 0x0000564bu, 0x00005653u, 0x00040071u, 0x00000011u, 0x00005657u, + 0x00005655u, 0x0004007cu, 0x00000012u, 0x00005658u, 0x00005657u, 0x00040071u, 0x00000011u, 0x00005660u, + 0x00005651u, 0x0004007cu, 0x00000012u, 0x00005661u, 0x00005660u, 0x00070050u, 0x00000013u, 0x00005662u, + 0x00005658u, 0x00005658u, 0x00005658u, 0x00005661u, 0x00050050u, 0x00000058u, 0x00004575u, 0x000071f4u, + 0x00004339u, 0x0004007cu, 0x000000abu, 0x00004576u, 0x00004575u, 0x00050051u, 0x00000006u, 0x0000566fu, + 0x00004576u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005670u, 0x0000417du, 0x0000566fu, 0x00050080u, + 0x00000006u, 0x00005671u, 0x0000417bu, 0x00005670u, 0x00050051u, 0x00000006u, 0x00005673u, 0x00004576u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005675u, 0x00005671u, 0x00005673u, 0x000500c7u, 0x00000006u, + 0x00005677u, 0x00005675u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x0000567bu, 0x0000566fu, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x0000567cu, 0x0000567bu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000567eu, + 0x00005677u, 0x0000567cu, 0x000500c6u, 0x00000006u, 0x00005680u, 0x0000567eu, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x00005683u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005680u, 0x0004003du, + 0x0000000fu, 0x00005684u, 0x00005683u, 0x00040071u, 0x00000006u, 0x00005685u, 0x00005684u, 0x000500c2u, + 0x00000006u, 0x00005687u, 0x00005685u, 0x000001b1u, 0x000500c7u, 0x00000006u, 0x00005689u, 0x00005685u, + 0x000006b1u, 0x000500c4u, 0x00000006u, 0x0000568bu, 0x00005689u, 0x000001b1u, 0x000500c5u, 0x00000006u, + 0x0000568du, 0x00005689u, 0x0000568bu, 0x000500c4u, 0x00000006u, 0x0000568fu, 0x00005687u, 0x000001b1u, + 0x000500c5u, 0x00000006u, 0x00005691u, 0x00005687u, 0x0000568fu, 0x00040071u, 0x00000011u, 0x00005693u, + 0x00005691u, 0x0004007cu, 0x00000012u, 0x00005694u, 0x00005693u, 0x00040071u, 0x00000011u, 0x0000569cu, + 0x0000568du, 0x0004007cu, 0x00000012u, 0x0000569du, 0x0000569cu, 0x00070050u, 0x00000013u, 0x0000569eu, + 0x00005694u, 0x00005694u, 0x00005694u, 0x0000569du, 0x000200f9u, 0x0000457au, 0x000200f8u, 0x0000457au, + 0x000700f5u, 0x00000013u, 0x000075bau, 0x00006bf1u, 0x00004564u, 0x0000569eu, 0x0000456bu, 0x000700f5u, + 0x00000013u, 0x000074c4u, 0x00006bf1u, 0x00004564u, 0x00005662u, 0x0000456bu, 0x000300f7u, 0x00004584u, + 0x00000000u, 0x000400fau, 0x00004343u, 0x0000457cu, 0x00004584u, 0x000200f8u, 0x0000457cu, 0x00050050u, + 0x00000058u, 0x0000457fu, 0x000071fcu, 0x00004339u, 0x0004007cu, 0x000000abu, 0x00004580u, 0x0000457fu, + 0x00050051u, 0x00000006u, 0x000056abu, 0x00004580u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000056acu, + 0x0000417du, 0x000056abu, 0x00050080u, 0x00000006u, 0x000056adu, 0x0000417bu, 0x000056acu, 0x00050051u, + 0x00000006u, 0x000056afu, 0x00004580u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000056b1u, 0x000056adu, + 0x000056afu, 0x000500c7u, 0x00000006u, 0x000056b3u, 0x000056b1u, 0x0000068cu, 0x000500c7u, 0x00000006u, + 0x000056b7u, 0x000056abu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000056b8u, 0x000056b7u, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x000056bau, 0x000056b3u, 0x000056b8u, 0x000500c6u, 0x00000006u, 0x000056bcu, + 0x000056bau, 0x000002fdu, 0x00080041u, 0x000006aau, 0x000056bfu, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x000056bcu, 0x0004003du, 0x0000000fu, 0x000056c0u, 0x000056bfu, 0x00040071u, 0x00000006u, + 0x000056c1u, 0x000056c0u, 0x000500c2u, 0x00000006u, 0x000056c3u, 0x000056c1u, 0x000001b1u, 0x000500c7u, + 0x00000006u, 0x000056c5u, 0x000056c1u, 0x000006b1u, 0x000500c4u, 0x00000006u, 0x000056c7u, 0x000056c5u, + 0x000001b1u, 0x000500c5u, 0x00000006u, 0x000056c9u, 0x000056c5u, 0x000056c7u, 0x000500c4u, 0x00000006u, + 0x000056cbu, 0x000056c3u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x000056cdu, 0x000056c3u, 0x000056cbu, + 0x00040071u, 0x00000011u, 0x000056cfu, 0x000056cdu, 0x0004007cu, 0x00000012u, 0x000056d0u, 0x000056cfu, + 0x00040071u, 0x00000011u, 0x000056d8u, 0x000056c9u, 0x0004007cu, 0x00000012u, 0x000056d9u, 0x000056d8u, + 0x00070050u, 0x00000013u, 0x000056dau, 0x000056d0u, 0x000056d0u, 0x000056d0u, 0x000056d9u, 0x000200f9u, + 0x00004584u, 0x000200f8u, 0x00004584u, 0x000700f5u, 0x00000013u, 0x000076afu, 0x00006bf1u, 0x0000457au, + 0x000056dau, 0x0000457cu, 0x000200f9u, 0x000045c7u, 0x000200f8u, 0x00004543u, 0x0004007cu, 0x000000abu, + 0x00004545u, 0x0000721bu, 0x00050051u, 0x00000006u, 0x000054dfu, 0x00004545u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000054e0u, 0x0000417du, 0x000054dfu, 0x00050080u, 0x00000006u, 0x000054e1u, 0x0000417bu, + 0x000054e0u, 0x00050051u, 0x00000006u, 0x000054e3u, 0x00004545u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x000054e4u, 0x000054e3u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x000054e6u, 0x000054e1u, 0x000054e4u, + 0x000500c7u, 0x00000006u, 0x000054e8u, 0x000054e6u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x000054ebu, + 0x000054e3u, 0x000500c7u, 0x00000006u, 0x000054ecu, 0x000054ebu, 0x000002f6u, 0x00050084u, 0x00000006u, + 0x000054edu, 0x000054ecu, 0x00000694u, 0x000500c7u, 0x00000006u, 0x000054f1u, 0x000054dfu, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x000054f2u, 0x000054f1u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000054f4u, + 0x000054e8u, 0x000054f2u, 0x000500c6u, 0x00000006u, 0x000054f6u, 0x000054f4u, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x000054f9u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000054f6u, 0x0004003du, + 0x0000000fu, 0x000054fau, 0x000054f9u, 0x00040071u, 0x00000006u, 0x000054fbu, 0x000054fau, 0x000500c2u, + 0x00000006u, 0x000054feu, 0x000054fbu, 0x000054edu, 0x000500c7u, 0x00000006u, 0x000054ffu, 0x000054feu, + 0x000006b1u, 0x000500c7u, 0x00000006u, 0x00005501u, 0x000054ffu, 0x000006e9u, 0x000500c4u, 0x00000006u, + 0x00005503u, 0x00005501u, 0x000001b1u, 0x000500c4u, 0x00000006u, 0x00005505u, 0x00005501u, 0x000001a8u, + 0x000500c5u, 0x00000006u, 0x00005506u, 0x00005503u, 0x00005505u, 0x000500c2u, 0x00000006u, 0x00005508u, + 0x00005501u, 0x000001abu, 0x000500c5u, 0x00000006u, 0x00005509u, 0x00005506u, 0x00005508u, 0x00040071u, + 0x00000011u, 0x0000550bu, 0x00005509u, 0x0004007cu, 0x00000012u, 0x0000550cu, 0x0000550bu, 0x000500c7u, + 0x00000006u, 0x00005514u, 0x000054ffu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00005515u, 0x00005514u, + 0x00000659u, 0x00040071u, 0x00000011u, 0x00005516u, 0x00005515u, 0x0004007cu, 0x00000012u, 0x00005517u, + 0x00005516u, 0x00070050u, 0x00000013u, 0x00005518u, 0x0000550cu, 0x0000550cu, 0x0000550cu, 0x00005517u, + 0x000300f7u, 0x00004559u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x0000454au, 0x00004559u, 0x000200f8u, + 0x0000454au, 0x00050050u, 0x00000058u, 0x0000454du, 0x000071fcu, 0x00004337u, 0x0004007cu, 0x000000abu, + 0x0000454eu, 0x0000454du, 0x00050051u, 0x00000006u, 0x00005525u, 0x0000454eu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005526u, 0x0000417du, 0x00005525u, 0x00050080u, 0x00000006u, 0x00005527u, 0x0000417bu, + 0x00005526u, 0x00050051u, 0x00000006u, 0x00005529u, 0x0000454eu, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x0000552au, 0x00005529u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x0000552cu, 0x00005527u, 0x0000552au, + 0x000500c7u, 0x00000006u, 0x0000552eu, 0x0000552cu, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00005531u, + 0x00005529u, 0x000500c7u, 0x00000006u, 0x00005532u, 0x00005531u, 0x000002f6u, 0x00050084u, 0x00000006u, + 0x00005533u, 0x00005532u, 0x00000694u, 0x000500c7u, 0x00000006u, 0x00005537u, 0x00005525u, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00005538u, 0x00005537u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000553au, + 0x0000552eu, 0x00005538u, 0x000500c6u, 0x00000006u, 0x0000553cu, 0x0000553au, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x0000553fu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000553cu, 0x0004003du, + 0x0000000fu, 0x00005540u, 0x0000553fu, 0x00040071u, 0x00000006u, 0x00005541u, 0x00005540u, 0x000500c2u, + 0x00000006u, 0x00005544u, 0x00005541u, 0x00005533u, 0x000500c7u, 0x00000006u, 0x00005545u, 0x00005544u, + 0x000006b1u, 0x000500c7u, 0x00000006u, 0x00005547u, 0x00005545u, 0x000006e9u, 0x000500c4u, 0x00000006u, + 0x00005549u, 0x00005547u, 0x000001b1u, 0x000500c4u, 0x00000006u, 0x0000554bu, 0x00005547u, 0x000001a8u, + 0x000500c5u, 0x00000006u, 0x0000554cu, 0x00005549u, 0x0000554bu, 0x000500c2u, 0x00000006u, 0x0000554eu, + 0x00005547u, 0x000001abu, 0x000500c5u, 0x00000006u, 0x0000554fu, 0x0000554cu, 0x0000554eu, 0x00040071u, + 0x00000011u, 0x00005551u, 0x0000554fu, 0x0004007cu, 0x00000012u, 0x00005552u, 0x00005551u, 0x000500c7u, + 0x00000006u, 0x0000555au, 0x00005545u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x0000555bu, 0x0000555au, + 0x00000659u, 0x00040071u, 0x00000011u, 0x0000555cu, 0x0000555bu, 0x0004007cu, 0x00000012u, 0x0000555du, + 0x0000555cu, 0x00070050u, 0x00000013u, 0x0000555eu, 0x00005552u, 0x00005552u, 0x00005552u, 0x0000555du, + 0x00050050u, 0x00000058u, 0x00004554u, 0x000071f4u, 0x00004339u, 0x0004007cu, 0x000000abu, 0x00004555u, + 0x00004554u, 0x00050051u, 0x00000006u, 0x0000556bu, 0x00004555u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x0000556cu, 0x0000417du, 0x0000556bu, 0x00050080u, 0x00000006u, 0x0000556du, 0x0000417bu, 0x0000556cu, + 0x00050051u, 0x00000006u, 0x0000556fu, 0x00004555u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005570u, + 0x0000556fu, 0x000001a8u, 0x00050080u, 0x00000006u, 0x00005572u, 0x0000556du, 0x00005570u, 0x000500c7u, + 0x00000006u, 0x00005574u, 0x00005572u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00005577u, 0x0000556fu, + 0x000500c7u, 0x00000006u, 0x00005578u, 0x00005577u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00005579u, + 0x00005578u, 0x00000694u, 0x000500c7u, 0x00000006u, 0x0000557du, 0x0000556bu, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x0000557eu, 0x0000557du, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00005580u, 0x00005574u, + 0x0000557eu, 0x000500c6u, 0x00000006u, 0x00005582u, 0x00005580u, 0x000002fdu, 0x00080041u, 0x000006aau, + 0x00005585u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005582u, 0x0004003du, 0x0000000fu, + 0x00005586u, 0x00005585u, 0x00040071u, 0x00000006u, 0x00005587u, 0x00005586u, 0x000500c2u, 0x00000006u, + 0x0000558au, 0x00005587u, 0x00005579u, 0x000500c7u, 0x00000006u, 0x0000558bu, 0x0000558au, 0x000006b1u, + 0x000500c7u, 0x00000006u, 0x0000558du, 0x0000558bu, 0x000006e9u, 0x000500c4u, 0x00000006u, 0x0000558fu, + 0x0000558du, 0x000001b1u, 0x000500c4u, 0x00000006u, 0x00005591u, 0x0000558du, 0x000001a8u, 0x000500c5u, + 0x00000006u, 0x00005592u, 0x0000558fu, 0x00005591u, 0x000500c2u, 0x00000006u, 0x00005594u, 0x0000558du, + 0x000001abu, 0x000500c5u, 0x00000006u, 0x00005595u, 0x00005592u, 0x00005594u, 0x00040071u, 0x00000011u, + 0x00005597u, 0x00005595u, 0x0004007cu, 0x00000012u, 0x00005598u, 0x00005597u, 0x000500c7u, 0x00000006u, + 0x000055a0u, 0x0000558bu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x000055a1u, 0x000055a0u, 0x00000659u, + 0x00040071u, 0x00000011u, 0x000055a2u, 0x000055a1u, 0x0004007cu, 0x00000012u, 0x000055a3u, 0x000055a2u, + 0x00070050u, 0x00000013u, 0x000055a4u, 0x00005598u, 0x00005598u, 0x00005598u, 0x000055a3u, 0x000200f9u, + 0x00004559u, 0x000200f8u, 0x00004559u, 0x000700f5u, 0x00000013u, 0x000075b8u, 0x00006bf1u, 0x00004543u, + 0x000055a4u, 0x0000454au, 0x000700f5u, 0x00000013u, 0x000074c2u, 0x00006bf1u, 0x00004543u, 0x0000555eu, + 0x0000454au, 0x000300f7u, 0x00004563u, 0x00000000u, 0x000400fau, 0x00004343u, 0x0000455bu, 0x00004563u, + 0x000200f8u, 0x0000455bu, 0x00050050u, 0x00000058u, 0x0000455eu, 0x000071fcu, 0x00004339u, 0x0004007cu, + 0x000000abu, 0x0000455fu, 0x0000455eu, 0x00050051u, 0x00000006u, 0x000055b1u, 0x0000455fu, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000055b2u, 0x0000417du, 0x000055b1u, 0x00050080u, 0x00000006u, 0x000055b3u, + 0x0000417bu, 0x000055b2u, 0x00050051u, 0x00000006u, 0x000055b5u, 0x0000455fu, 0x00000000u, 0x000500c2u, + 0x00000006u, 0x000055b6u, 0x000055b5u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x000055b8u, 0x000055b3u, + 0x000055b6u, 0x000500c7u, 0x00000006u, 0x000055bau, 0x000055b8u, 0x0000068cu, 0x000400c8u, 0x00000006u, + 0x000055bdu, 0x000055b5u, 0x000500c7u, 0x00000006u, 0x000055beu, 0x000055bdu, 0x000002f6u, 0x00050084u, + 0x00000006u, 0x000055bfu, 0x000055beu, 0x00000694u, 0x000500c7u, 0x00000006u, 0x000055c3u, 0x000055b1u, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000055c4u, 0x000055c3u, 0x000001abu, 0x000500c6u, 0x00000006u, + 0x000055c6u, 0x000055bau, 0x000055c4u, 0x000500c6u, 0x00000006u, 0x000055c8u, 0x000055c6u, 0x000002fdu, + 0x00080041u, 0x000006aau, 0x000055cbu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000055c8u, + 0x0004003du, 0x0000000fu, 0x000055ccu, 0x000055cbu, 0x00040071u, 0x00000006u, 0x000055cdu, 0x000055ccu, + 0x000500c2u, 0x00000006u, 0x000055d0u, 0x000055cdu, 0x000055bfu, 0x000500c7u, 0x00000006u, 0x000055d1u, + 0x000055d0u, 0x000006b1u, 0x000500c7u, 0x00000006u, 0x000055d3u, 0x000055d1u, 0x000006e9u, 0x000500c4u, + 0x00000006u, 0x000055d5u, 0x000055d3u, 0x000001b1u, 0x000500c4u, 0x00000006u, 0x000055d7u, 0x000055d3u, + 0x000001a8u, 0x000500c5u, 0x00000006u, 0x000055d8u, 0x000055d5u, 0x000055d7u, 0x000500c2u, 0x00000006u, + 0x000055dau, 0x000055d3u, 0x000001abu, 0x000500c5u, 0x00000006u, 0x000055dbu, 0x000055d8u, 0x000055dau, + 0x00040071u, 0x00000011u, 0x000055ddu, 0x000055dbu, 0x0004007cu, 0x00000012u, 0x000055deu, 0x000055ddu, + 0x000500c7u, 0x00000006u, 0x000055e6u, 0x000055d1u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x000055e7u, + 0x000055e6u, 0x00000659u, 0x00040071u, 0x00000011u, 0x000055e8u, 0x000055e7u, 0x0004007cu, 0x00000012u, + 0x000055e9u, 0x000055e8u, 0x00070050u, 0x00000013u, 0x000055eau, 0x000055deu, 0x000055deu, 0x000055deu, + 0x000055e9u, 0x000200f9u, 0x00004563u, 0x000200f8u, 0x00004563u, 0x000700f5u, 0x00000013u, 0x000076adu, + 0x00006bf1u, 0x00004559u, 0x000055eau, 0x0000455bu, 0x000200f9u, 0x000045c7u, 0x000200f8u, 0x000045c7u, + 0x000d00f5u, 0x00000013u, 0x000076acu, 0x00006bf1u, 0x0000453eu, 0x000076adu, 0x00004563u, 0x000076afu, + 0x00004584u, 0x000076b1u, 0x000045a5u, 0x000076b3u, 0x000045c6u, 0x000d00f5u, 0x00000013u, 0x000075b6u, + 0x00006bf1u, 0x0000453eu, 0x000075b8u, 0x00004563u, 0x000075bau, 0x00004584u, 0x000075bcu, 0x000045a5u, + 0x000075beu, 0x000045c6u, 0x000d00f5u, 0x00000013u, 0x000074c0u, 0x00006bf1u, 0x0000453eu, 0x000074c2u, + 0x00004563u, 0x000074c4u, 0x00004584u, 0x000074c6u, 0x000045a5u, 0x000074c8u, 0x000045c6u, 0x000d00f5u, + 0x00000013u, 0x00007355u, 0x00006bf1u, 0x0000453eu, 0x00005518u, 0x00004563u, 0x00005626u, 0x00004584u, + 0x00005715u, 0x000045a5u, 0x000057f3u, 0x000045c6u, 0x000200f9u, 0x00004631u, 0x000200f8u, 0x000044c9u, + 0x00040071u, 0x00000006u, 0x000044ccu, 0x000089b8u, 0x0004007cu, 0x00000008u, 0x000044cdu, 0x000044ccu, + 0x000300f7u, 0x0000453du, 0x00000000u, 0x000700fbu, 0x000044cdu, 0x000044ceu, 0x00000000u, 0x000044efu, + 0x00000001u, 0x0000451cu, 0x000200f8u, 0x0000451cu, 0x0004007cu, 0x000000abu, 0x0000451eu, 0x0000721bu, + 0x00050051u, 0x00000006u, 0x00005449u, 0x0000451eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000544au, + 0x0000417du, 0x00005449u, 0x00050080u, 0x00000006u, 0x0000544bu, 0x0000417bu, 0x0000544au, 0x00050051u, + 0x00000006u, 0x0000544du, 0x0000451eu, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000544fu, 0x0000544bu, + 0x0000544du, 0x000500c7u, 0x00000006u, 0x00005451u, 0x0000544fu, 0x0000068cu, 0x000500c7u, 0x00000006u, + 0x00005455u, 0x00005449u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00005456u, 0x00005455u, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x00005458u, 0x00005451u, 0x00005456u, 0x000500c6u, 0x00000006u, 0x0000545au, + 0x00005458u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x0000545du, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x0000545au, 0x0004003du, 0x0000000fu, 0x0000545eu, 0x0000545du, 0x00040071u, 0x00000006u, + 0x0000545fu, 0x0000545eu, 0x00040071u, 0x00000011u, 0x00005461u, 0x0000545fu, 0x0004007cu, 0x00000012u, + 0x00005462u, 0x00005461u, 0x00070050u, 0x00000013u, 0x00005463u, 0x00005462u, 0x00005462u, 0x00005462u, + 0x00005462u, 0x000300f7u, 0x00004532u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x00004523u, 0x00004532u, + 0x000200f8u, 0x00004523u, 0x00050050u, 0x00000058u, 0x00004526u, 0x000071fcu, 0x00004337u, 0x0004007cu, + 0x000000abu, 0x00004527u, 0x00004526u, 0x00050051u, 0x00000006u, 0x0000546eu, 0x00004527u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x0000546fu, 0x0000417du, 0x0000546eu, 0x00050080u, 0x00000006u, 0x00005470u, + 0x0000417bu, 0x0000546fu, 0x00050051u, 0x00000006u, 0x00005472u, 0x00004527u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00005474u, 0x00005470u, 0x00005472u, 0x000500c7u, 0x00000006u, 0x00005476u, 0x00005474u, + 0x0000068cu, 0x000500c7u, 0x00000006u, 0x0000547au, 0x0000546eu, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x0000547bu, 0x0000547au, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000547du, 0x00005476u, 0x0000547bu, + 0x000500c6u, 0x00000006u, 0x0000547fu, 0x0000547du, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00005482u, + 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000547fu, 0x0004003du, 0x0000000fu, 0x00005483u, + 0x00005482u, 0x00040071u, 0x00000006u, 0x00005484u, 0x00005483u, 0x00040071u, 0x00000011u, 0x00005486u, + 0x00005484u, 0x0004007cu, 0x00000012u, 0x00005487u, 0x00005486u, 0x00070050u, 0x00000013u, 0x00005488u, + 0x00005487u, 0x00005487u, 0x00005487u, 0x00005487u, 0x00050050u, 0x00000058u, 0x0000452du, 0x000071f4u, + 0x00004339u, 0x0004007cu, 0x000000abu, 0x0000452eu, 0x0000452du, 0x00050051u, 0x00000006u, 0x00005493u, + 0x0000452eu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005494u, 0x0000417du, 0x00005493u, 0x00050080u, + 0x00000006u, 0x00005495u, 0x0000417bu, 0x00005494u, 0x00050051u, 0x00000006u, 0x00005497u, 0x0000452eu, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00005499u, 0x00005495u, 0x00005497u, 0x000500c7u, 0x00000006u, + 0x0000549bu, 0x00005499u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x0000549fu, 0x00005493u, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x000054a0u, 0x0000549fu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000054a2u, + 0x0000549bu, 0x000054a0u, 0x000500c6u, 0x00000006u, 0x000054a4u, 0x000054a2u, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x000054a7u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000054a4u, 0x0004003du, + 0x0000000fu, 0x000054a8u, 0x000054a7u, 0x00040071u, 0x00000006u, 0x000054a9u, 0x000054a8u, 0x00040071u, + 0x00000011u, 0x000054abu, 0x000054a9u, 0x0004007cu, 0x00000012u, 0x000054acu, 0x000054abu, 0x00070050u, + 0x00000013u, 0x000054adu, 0x000054acu, 0x000054acu, 0x000054acu, 0x000054acu, 0x000200f9u, 0x00004532u, + 0x000200f8u, 0x00004532u, 0x000700f5u, 0x00000013u, 0x000075b5u, 0x00006bf1u, 0x0000451cu, 0x000054adu, + 0x00004523u, 0x000700f5u, 0x00000013u, 0x000074bfu, 0x00006bf1u, 0x0000451cu, 0x00005488u, 0x00004523u, + 0x000300f7u, 0x0000453cu, 0x00000000u, 0x000400fau, 0x00004343u, 0x00004534u, 0x0000453cu, 0x000200f8u, + 0x00004534u, 0x00050050u, 0x00000058u, 0x00004537u, 0x000071fcu, 0x00004339u, 0x0004007cu, 0x000000abu, + 0x00004538u, 0x00004537u, 0x00050051u, 0x00000006u, 0x000054b8u, 0x00004538u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x000054b9u, 0x0000417du, 0x000054b8u, 0x00050080u, 0x00000006u, 0x000054bau, 0x0000417bu, + 0x000054b9u, 0x00050051u, 0x00000006u, 0x000054bcu, 0x00004538u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x000054beu, 0x000054bau, 0x000054bcu, 0x000500c7u, 0x00000006u, 0x000054c0u, 0x000054beu, 0x0000068cu, + 0x000500c7u, 0x00000006u, 0x000054c4u, 0x000054b8u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000054c5u, + 0x000054c4u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000054c7u, 0x000054c0u, 0x000054c5u, 0x000500c6u, + 0x00000006u, 0x000054c9u, 0x000054c7u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x000054ccu, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000054c9u, 0x0004003du, 0x0000000fu, 0x000054cdu, 0x000054ccu, + 0x00040071u, 0x00000006u, 0x000054ceu, 0x000054cdu, 0x00040071u, 0x00000011u, 0x000054d0u, 0x000054ceu, + 0x0004007cu, 0x00000012u, 0x000054d1u, 0x000054d0u, 0x00070050u, 0x00000013u, 0x000054d2u, 0x000054d1u, + 0x000054d1u, 0x000054d1u, 0x000054d1u, 0x000200f9u, 0x0000453cu, 0x000200f8u, 0x0000453cu, 0x000700f5u, + 0x00000013u, 0x000076aau, 0x00006bf1u, 0x00004532u, 0x000054d2u, 0x00004534u, 0x000200f9u, 0x0000453du, + 0x000200f8u, 0x000044efu, 0x0004007cu, 0x000000abu, 0x000044f1u, 0x0000721bu, 0x00040071u, 0x00000006u, + 0x000044f4u, 0x00004183u, 0x00050051u, 0x00000006u, 0x0000537au, 0x000044f1u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000537bu, 0x0000417du, 0x0000537au, 0x00050080u, 0x00000006u, 0x0000537cu, 0x0000417bu, + 0x0000537bu, 0x00050051u, 0x00000006u, 0x0000537eu, 0x000044f1u, 0x00000000u, 0x000500c2u, 0x00000006u, + 0x0000537fu, 0x0000537eu, 0x000001a8u, 0x00050080u, 0x00000006u, 0x00005381u, 0x0000537cu, 0x0000537fu, + 0x000500c7u, 0x00000006u, 0x00005383u, 0x00005381u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00005386u, + 0x0000537eu, 0x000500c7u, 0x00000006u, 0x00005387u, 0x00005386u, 0x000002f6u, 0x00050084u, 0x00000006u, + 0x00005388u, 0x00005387u, 0x00000694u, 0x000500c7u, 0x00000006u, 0x0000538cu, 0x0000537au, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x0000538du, 0x0000538cu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000538fu, + 0x00005383u, 0x0000538du, 0x000500c6u, 0x00000006u, 0x00005391u, 0x0000538fu, 0x000002fdu, 0x00080041u, + 0x000006aau, 0x00005394u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005391u, 0x0004003du, + 0x0000000fu, 0x00005395u, 0x00005394u, 0x00040071u, 0x00000006u, 0x00005396u, 0x00005395u, 0x000500c2u, + 0x00000006u, 0x00005399u, 0x00005396u, 0x00005388u, 0x000500c7u, 0x00000006u, 0x0000539au, 0x00005399u, + 0x000006b1u, 0x000500c4u, 0x00000006u, 0x0000539cu, 0x000044f4u, 0x000001b1u, 0x000500c5u, 0x00000006u, + 0x0000539eu, 0x0000539au, 0x0000539cu, 0x00040071u, 0x00000011u, 0x000053a0u, 0x0000539eu, 0x0004007cu, + 0x00000012u, 0x000053a1u, 0x000053a0u, 0x00070050u, 0x00000013u, 0x000053a2u, 0x000053a1u, 0x000053a1u, + 0x000053a1u, 0x000053a1u, 0x000300f7u, 0x0000450eu, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x000044f9u, + 0x0000450eu, 0x000200f8u, 0x000044f9u, 0x00050050u, 0x00000058u, 0x000044fcu, 0x000071fcu, 0x00004337u, + 0x0004007cu, 0x000000abu, 0x000044fdu, 0x000044fcu, 0x00050051u, 0x00000006u, 0x000053aeu, 0x000044fdu, + 0x00000001u, 0x00050084u, 0x00000006u, 0x000053afu, 0x0000417du, 0x000053aeu, 0x00050080u, 0x00000006u, + 0x000053b0u, 0x0000417bu, 0x000053afu, 0x00050051u, 0x00000006u, 0x000053b2u, 0x000044fdu, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x000053b3u, 0x000053b2u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x000053b5u, + 0x000053b0u, 0x000053b3u, 0x000500c7u, 0x00000006u, 0x000053b7u, 0x000053b5u, 0x0000068cu, 0x000400c8u, + 0x00000006u, 0x000053bau, 0x000053b2u, 0x000500c7u, 0x00000006u, 0x000053bbu, 0x000053bau, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x000053bcu, 0x000053bbu, 0x00000694u, 0x000500c7u, 0x00000006u, 0x000053c0u, + 0x000053aeu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000053c1u, 0x000053c0u, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x000053c3u, 0x000053b7u, 0x000053c1u, 0x000500c6u, 0x00000006u, 0x000053c5u, 0x000053c3u, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x000053c8u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x000053c5u, 0x0004003du, 0x0000000fu, 0x000053c9u, 0x000053c8u, 0x00040071u, 0x00000006u, 0x000053cau, + 0x000053c9u, 0x000500c2u, 0x00000006u, 0x000053cdu, 0x000053cau, 0x000053bcu, 0x000500c7u, 0x00000006u, + 0x000053ceu, 0x000053cdu, 0x000006b1u, 0x000500c5u, 0x00000006u, 0x000053d2u, 0x000053ceu, 0x0000539cu, + 0x00040071u, 0x00000011u, 0x000053d4u, 0x000053d2u, 0x0004007cu, 0x00000012u, 0x000053d5u, 0x000053d4u, + 0x00070050u, 0x00000013u, 0x000053d6u, 0x000053d5u, 0x000053d5u, 0x000053d5u, 0x000053d5u, 0x00050050u, + 0x00000058u, 0x00004506u, 0x000071f4u, 0x00004339u, 0x0004007cu, 0x000000abu, 0x00004507u, 0x00004506u, + 0x00050051u, 0x00000006u, 0x000053e2u, 0x00004507u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000053e3u, + 0x0000417du, 0x000053e2u, 0x00050080u, 0x00000006u, 0x000053e4u, 0x0000417bu, 0x000053e3u, 0x00050051u, + 0x00000006u, 0x000053e6u, 0x00004507u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x000053e7u, 0x000053e6u, + 0x000001a8u, 0x00050080u, 0x00000006u, 0x000053e9u, 0x000053e4u, 0x000053e7u, 0x000500c7u, 0x00000006u, + 0x000053ebu, 0x000053e9u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x000053eeu, 0x000053e6u, 0x000500c7u, + 0x00000006u, 0x000053efu, 0x000053eeu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x000053f0u, 0x000053efu, + 0x00000694u, 0x000500c7u, 0x00000006u, 0x000053f4u, 0x000053e2u, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x000053f5u, 0x000053f4u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x000053f7u, 0x000053ebu, 0x000053f5u, + 0x000500c6u, 0x00000006u, 0x000053f9u, 0x000053f7u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x000053fcu, + 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000053f9u, 0x0004003du, 0x0000000fu, 0x000053fdu, + 0x000053fcu, 0x00040071u, 0x00000006u, 0x000053feu, 0x000053fdu, 0x000500c2u, 0x00000006u, 0x00005401u, + 0x000053feu, 0x000053f0u, 0x000500c7u, 0x00000006u, 0x00005402u, 0x00005401u, 0x000006b1u, 0x000500c5u, + 0x00000006u, 0x00005406u, 0x00005402u, 0x0000539cu, 0x00040071u, 0x00000011u, 0x00005408u, 0x00005406u, + 0x0004007cu, 0x00000012u, 0x00005409u, 0x00005408u, 0x00070050u, 0x00000013u, 0x0000540au, 0x00005409u, + 0x00005409u, 0x00005409u, 0x00005409u, 0x000200f9u, 0x0000450eu, 0x000200f8u, 0x0000450eu, 0x000700f5u, + 0x00000013u, 0x000075b3u, 0x00006bf1u, 0x000044efu, 0x0000540au, 0x000044f9u, 0x000700f5u, 0x00000013u, + 0x000074bdu, 0x00006bf1u, 0x000044efu, 0x000053d6u, 0x000044f9u, 0x000300f7u, 0x0000451bu, 0x00000000u, + 0x000400fau, 0x00004343u, 0x00004510u, 0x0000451bu, 0x000200f8u, 0x00004510u, 0x00050050u, 0x00000058u, + 0x00004513u, 0x000071fcu, 0x00004339u, 0x0004007cu, 0x000000abu, 0x00004514u, 0x00004513u, 0x00050051u, + 0x00000006u, 0x00005416u, 0x00004514u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005417u, 0x0000417du, + 0x00005416u, 0x00050080u, 0x00000006u, 0x00005418u, 0x0000417bu, 0x00005417u, 0x00050051u, 0x00000006u, + 0x0000541au, 0x00004514u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x0000541bu, 0x0000541au, 0x000001a8u, + 0x00050080u, 0x00000006u, 0x0000541du, 0x00005418u, 0x0000541bu, 0x000500c7u, 0x00000006u, 0x0000541fu, + 0x0000541du, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00005422u, 0x0000541au, 0x000500c7u, 0x00000006u, + 0x00005423u, 0x00005422u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00005424u, 0x00005423u, 0x00000694u, + 0x000500c7u, 0x00000006u, 0x00005428u, 0x00005416u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00005429u, + 0x00005428u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000542bu, 0x0000541fu, 0x00005429u, 0x000500c6u, + 0x00000006u, 0x0000542du, 0x0000542bu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00005430u, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000542du, 0x0004003du, 0x0000000fu, 0x00005431u, 0x00005430u, + 0x00040071u, 0x00000006u, 0x00005432u, 0x00005431u, 0x000500c2u, 0x00000006u, 0x00005435u, 0x00005432u, + 0x00005424u, 0x000500c7u, 0x00000006u, 0x00005436u, 0x00005435u, 0x000006b1u, 0x000500c5u, 0x00000006u, + 0x0000543au, 0x00005436u, 0x0000539cu, 0x00040071u, 0x00000011u, 0x0000543cu, 0x0000543au, 0x0004007cu, + 0x00000012u, 0x0000543du, 0x0000543cu, 0x00070050u, 0x00000013u, 0x0000543eu, 0x0000543du, 0x0000543du, + 0x0000543du, 0x0000543du, 0x000200f9u, 0x0000451bu, 0x000200f8u, 0x0000451bu, 0x000700f5u, 0x00000013u, + 0x000076a8u, 0x00006bf1u, 0x0000450eu, 0x0000543eu, 0x00004510u, 0x000200f9u, 0x0000453du, 0x000200f8u, + 0x000044ceu, 0x0004007cu, 0x000000abu, 0x000044d0u, 0x0000721bu, 0x00050051u, 0x00000006u, 0x000052c5u, + 0x000044d0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000052c6u, 0x0000417du, 0x000052c5u, 0x00050080u, + 0x00000006u, 0x000052c7u, 0x0000417bu, 0x000052c6u, 0x00050051u, 0x00000006u, 0x000052c9u, 0x000044d0u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000052cau, 0x000052c9u, 0x000002fau, 0x00050080u, 0x00000006u, + 0x000052ccu, 0x000052c7u, 0x000052cau, 0x000500c7u, 0x00000006u, 0x000052ceu, 0x000052ccu, 0x0000068cu, + 0x000500c2u, 0x00000006u, 0x000052d0u, 0x000052ceu, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x000052d3u, + 0x000052c5u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000052d4u, 0x000052d3u, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x000052d6u, 0x000052d0u, 0x000052d4u, 0x000500c6u, 0x00000006u, 0x000052d8u, 0x000052d6u, + 0x000002f6u, 0x00080041u, 0x0000077au, 0x000052dbu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x000052d8u, 0x0004003du, 0x00000011u, 0x000052dcu, 0x000052dbu, 0x00040071u, 0x00000006u, 0x000052ddu, + 0x000052dcu, 0x000500c2u, 0x00000006u, 0x000052dfu, 0x000052ddu, 0x000001dbu, 0x00040071u, 0x00000011u, + 0x000052e0u, 0x000052dfu, 0x0004007cu, 0x00000012u, 0x000052e1u, 0x000052e0u, 0x000500c7u, 0x00000006u, + 0x000052e3u, 0x000052ddu, 0x00000659u, 0x00040071u, 0x00000011u, 0x000052e4u, 0x000052e3u, 0x0004007cu, + 0x00000012u, 0x000052e5u, 0x000052e4u, 0x00050050u, 0x0000011du, 0x000052e6u, 0x000052e1u, 0x000052e5u, + 0x0009004fu, 0x00000013u, 0x000052e7u, 0x000052e6u, 0x000052e6u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x000300f7u, 0x000044e4u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x000044d5u, 0x000044e4u, + 0x000200f8u, 0x000044d5u, 0x00050050u, 0x00000058u, 0x000044d8u, 0x000071fcu, 0x00004337u, 0x0004007cu, + 0x000000abu, 0x000044d9u, 0x000044d8u, 0x00050051u, 0x00000006u, 0x000052f2u, 0x000044d9u, 0x00000001u, + 0x00050084u, 0x00000006u, 0x000052f3u, 0x0000417du, 0x000052f2u, 0x00050080u, 0x00000006u, 0x000052f4u, + 0x0000417bu, 0x000052f3u, 0x00050051u, 0x00000006u, 0x000052f6u, 0x000044d9u, 0x00000000u, 0x00050084u, + 0x00000006u, 0x000052f7u, 0x000052f6u, 0x000002fau, 0x00050080u, 0x00000006u, 0x000052f9u, 0x000052f4u, + 0x000052f7u, 0x000500c7u, 0x00000006u, 0x000052fbu, 0x000052f9u, 0x0000068cu, 0x000500c2u, 0x00000006u, + 0x000052fdu, 0x000052fbu, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00005300u, 0x000052f2u, 0x000002f6u, + 0x000500c4u, 0x00000006u, 0x00005301u, 0x00005300u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00005303u, + 0x000052fdu, 0x00005301u, 0x000500c6u, 0x00000006u, 0x00005305u, 0x00005303u, 0x000002f6u, 0x00080041u, + 0x0000077au, 0x00005308u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005305u, 0x0004003du, + 0x00000011u, 0x00005309u, 0x00005308u, 0x00040071u, 0x00000006u, 0x0000530au, 0x00005309u, 0x000500c2u, + 0x00000006u, 0x0000530cu, 0x0000530au, 0x000001dbu, 0x00040071u, 0x00000011u, 0x0000530du, 0x0000530cu, + 0x0004007cu, 0x00000012u, 0x0000530eu, 0x0000530du, 0x000500c7u, 0x00000006u, 0x00005310u, 0x0000530au, + 0x00000659u, 0x00040071u, 0x00000011u, 0x00005311u, 0x00005310u, 0x0004007cu, 0x00000012u, 0x00005312u, + 0x00005311u, 0x00050050u, 0x0000011du, 0x00005313u, 0x0000530eu, 0x00005312u, 0x0009004fu, 0x00000013u, + 0x00005314u, 0x00005313u, 0x00005313u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00050050u, + 0x00000058u, 0x000044dfu, 0x000071f4u, 0x00004339u, 0x0004007cu, 0x000000abu, 0x000044e0u, 0x000044dfu, + 0x00050051u, 0x00000006u, 0x0000531fu, 0x000044e0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005320u, + 0x0000417du, 0x0000531fu, 0x00050080u, 0x00000006u, 0x00005321u, 0x0000417bu, 0x00005320u, 0x00050051u, + 0x00000006u, 0x00005323u, 0x000044e0u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005324u, 0x00005323u, + 0x000002fau, 0x00050080u, 0x00000006u, 0x00005326u, 0x00005321u, 0x00005324u, 0x000500c7u, 0x00000006u, + 0x00005328u, 0x00005326u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x0000532au, 0x00005328u, 0x000001a8u, + 0x000500c7u, 0x00000006u, 0x0000532du, 0x0000531fu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000532eu, + 0x0000532du, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00005330u, 0x0000532au, 0x0000532eu, 0x000500c6u, + 0x00000006u, 0x00005332u, 0x00005330u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00005335u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005332u, 0x0004003du, 0x00000011u, 0x00005336u, 0x00005335u, + 0x00040071u, 0x00000006u, 0x00005337u, 0x00005336u, 0x000500c2u, 0x00000006u, 0x00005339u, 0x00005337u, + 0x000001dbu, 0x00040071u, 0x00000011u, 0x0000533au, 0x00005339u, 0x0004007cu, 0x00000012u, 0x0000533bu, + 0x0000533au, 0x000500c7u, 0x00000006u, 0x0000533du, 0x00005337u, 0x00000659u, 0x00040071u, 0x00000011u, + 0x0000533eu, 0x0000533du, 0x0004007cu, 0x00000012u, 0x0000533fu, 0x0000533eu, 0x00050050u, 0x0000011du, + 0x00005340u, 0x0000533bu, 0x0000533fu, 0x0009004fu, 0x00000013u, 0x00005341u, 0x00005340u, 0x00005340u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000044e4u, 0x000200f8u, 0x000044e4u, + 0x000700f5u, 0x00000013u, 0x000075b1u, 0x00006bf1u, 0x000044ceu, 0x00005341u, 0x000044d5u, 0x000700f5u, + 0x00000013u, 0x000074bbu, 0x00006bf1u, 0x000044ceu, 0x00005314u, 0x000044d5u, 0x000300f7u, 0x000044eeu, + 0x00000000u, 0x000400fau, 0x00004343u, 0x000044e6u, 0x000044eeu, 0x000200f8u, 0x000044e6u, 0x00050050u, + 0x00000058u, 0x000044e9u, 0x000071fcu, 0x00004339u, 0x0004007cu, 0x000000abu, 0x000044eau, 0x000044e9u, + 0x00050051u, 0x00000006u, 0x0000534cu, 0x000044eau, 0x00000001u, 0x00050084u, 0x00000006u, 0x0000534du, + 0x0000417du, 0x0000534cu, 0x00050080u, 0x00000006u, 0x0000534eu, 0x0000417bu, 0x0000534du, 0x00050051u, + 0x00000006u, 0x00005350u, 0x000044eau, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005351u, 0x00005350u, + 0x000002fau, 0x00050080u, 0x00000006u, 0x00005353u, 0x0000534eu, 0x00005351u, 0x000500c7u, 0x00000006u, + 0x00005355u, 0x00005353u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00005357u, 0x00005355u, 0x000001a8u, + 0x000500c7u, 0x00000006u, 0x0000535au, 0x0000534cu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000535bu, + 0x0000535au, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x0000535du, 0x00005357u, 0x0000535bu, 0x000500c6u, + 0x00000006u, 0x0000535fu, 0x0000535du, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00005362u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000535fu, 0x0004003du, 0x00000011u, 0x00005363u, 0x00005362u, + 0x00040071u, 0x00000006u, 0x00005364u, 0x00005363u, 0x000500c2u, 0x00000006u, 0x00005366u, 0x00005364u, + 0x000001dbu, 0x00040071u, 0x00000011u, 0x00005367u, 0x00005366u, 0x0004007cu, 0x00000012u, 0x00005368u, + 0x00005367u, 0x000500c7u, 0x00000006u, 0x0000536au, 0x00005364u, 0x00000659u, 0x00040071u, 0x00000011u, + 0x0000536bu, 0x0000536au, 0x0004007cu, 0x00000012u, 0x0000536cu, 0x0000536bu, 0x00050050u, 0x0000011du, + 0x0000536du, 0x00005368u, 0x0000536cu, 0x0009004fu, 0x00000013u, 0x0000536eu, 0x0000536du, 0x0000536du, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x000044eeu, 0x000200f8u, 0x000044eeu, + 0x000700f5u, 0x00000013u, 0x000076a6u, 0x00006bf1u, 0x000044e4u, 0x0000536eu, 0x000044e6u, 0x000200f9u, + 0x0000453du, 0x000200f8u, 0x0000453du, 0x000900f5u, 0x00000013u, 0x000076a5u, 0x000076a6u, 0x000044eeu, + 0x000076a8u, 0x0000451bu, 0x000076aau, 0x0000453cu, 0x000900f5u, 0x00000013u, 0x000075afu, 0x000075b1u, + 0x000044eeu, 0x000075b3u, 0x0000451bu, 0x000075b5u, 0x0000453cu, 0x000900f5u, 0x00000013u, 0x000074b9u, + 0x000074bbu, 0x000044eeu, 0x000074bdu, 0x0000451bu, 0x000074bfu, 0x0000453cu, 0x000900f5u, 0x00000013u, + 0x0000734eu, 0x000052e7u, 0x000044eeu, 0x000053a2u, 0x0000451bu, 0x00005463u, 0x0000453cu, 0x000200f9u, + 0x00004631u, 0x000200f8u, 0x0000449bu, 0x000500c3u, 0x00000008u, 0x0000449du, 0x000071f4u, 0x000001a8u, + 0x0004007cu, 0x00000006u, 0x0000449eu, 0x0000449du, 0x00050082u, 0x00000008u, 0x000044a2u, 0x000071fcu, + 0x000071f4u, 0x00050080u, 0x00000008u, 0x000044a3u, 0x000071fcu, 0x000044a2u, 0x000500c3u, 0x00000008u, + 0x000044a4u, 0x000044a3u, 0x000001a8u, 0x0004007cu, 0x00000006u, 0x000044a5u, 0x000044a4u, 0x00050050u, + 0x00000058u, 0x000044a8u, 0x000071f4u, 0x00004337u, 0x0004007cu, 0x000000abu, 0x000044a9u, 0x000044a8u, + 0x00050051u, 0x00000006u, 0x00005183u, 0x000044a9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005184u, + 0x0000417du, 0x00005183u, 0x00050080u, 0x00000006u, 0x00005185u, 0x0000417bu, 0x00005184u, 0x00050051u, + 0x00000006u, 0x00005188u, 0x000044a9u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00005189u, 0x00005185u, + 0x00005188u, 0x000500c7u, 0x00000006u, 0x0000518bu, 0x00005189u, 0x00000746u, 0x00050084u, 0x00000006u, + 0x0000518eu, 0x0000449eu, 0x000002fau, 0x00050080u, 0x00000006u, 0x0000518fu, 0x00005185u, 0x0000518eu, + 0x000500c7u, 0x00000006u, 0x00005191u, 0x0000518fu, 0x00000746u, 0x000500c7u, 0x00000006u, 0x00005195u, + 0x00005183u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00005196u, 0x00005195u, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00005198u, 0x0000518bu, 0x00005196u, 0x000500c6u, 0x00000006u, 0x0000519au, 0x00005198u, + 0x000002fdu, 0x000500c2u, 0x00000006u, 0x0000519cu, 0x00005191u, 0x000001a8u, 0x000500c4u, 0x00000006u, + 0x000051a0u, 0x00005195u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x000051a2u, 0x0000519cu, 0x000051a0u, + 0x000500c6u, 0x00000006u, 0x000051a4u, 0x000051a2u, 0x000002f6u, 0x000500c5u, 0x00000006u, 0x000051a7u, + 0x0000519au, 0x0000076fu, 0x00080041u, 0x000006aau, 0x000051a8u, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x000051a7u, 0x0004003du, 0x0000000fu, 0x000051a9u, 0x000051a8u, 0x00080041u, 0x0000077au, + 0x000051acu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000051a4u, 0x0004003du, 0x00000011u, + 0x000051adu, 0x000051acu, 0x000500c2u, 0x00000011u, 0x000051afu, 0x000051adu, 0x000008cdu, 0x000500c7u, + 0x00000011u, 0x000051b0u, 0x000051afu, 0x000002aeu, 0x00040071u, 0x0000000fu, 0x000051b1u, 0x000051b0u, + 0x000500c2u, 0x00000011u, 0x000051b3u, 0x000051adu, 0x00000198u, 0x000500c7u, 0x00000011u, 0x000051b4u, + 0x000051b3u, 0x000002aeu, 0x00040071u, 0x0000000fu, 0x000051b5u, 0x000051b4u, 0x00040071u, 0x00000011u, + 0x000051b7u, 0x000051b1u, 0x0004007cu, 0x00000012u, 0x000051b8u, 0x000051b7u, 0x00050082u, 0x00000012u, + 0x000051b9u, 0x000051b8u, 0x000008d9u, 0x00040071u, 0x00000011u, 0x000051bbu, 0x000051b5u, 0x0004007cu, + 0x00000012u, 0x000051bcu, 0x000051bbu, 0x00050082u, 0x00000012u, 0x000051bdu, 0x000051bcu, 0x000008d9u, + 0x00040071u, 0x00000011u, 0x000051bfu, 0x000051a9u, 0x0004007cu, 0x00000012u, 0x000051c0u, 0x000051bfu, + 0x00070050u, 0x00000013u, 0x000051c4u, 0x000051b9u, 0x000051bdu, 0x000051c0u, 0x000051c0u, 0x000300f7u, + 0x000044c8u, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x000044afu, 0x000044c8u, 0x000200f8u, 0x000044afu, + 0x00050050u, 0x00000058u, 0x000044b2u, 0x000071fcu, 0x00004337u, 0x0004007cu, 0x000000abu, 0x000044b3u, + 0x000044b2u, 0x00050051u, 0x00000006u, 0x000051d5u, 0x000044b3u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000051d6u, 0x0000417du, 0x000051d5u, 0x00050080u, 0x00000006u, 0x000051d7u, 0x0000417bu, 0x000051d6u, + 0x00050051u, 0x00000006u, 0x000051dau, 0x000044b3u, 0x00000000u, 0x00050080u, 0x00000006u, 0x000051dbu, + 0x000051d7u, 0x000051dau, 0x000500c7u, 0x00000006u, 0x000051ddu, 0x000051dbu, 0x00000746u, 0x00050084u, + 0x00000006u, 0x000051e0u, 0x000044a5u, 0x000002fau, 0x00050080u, 0x00000006u, 0x000051e1u, 0x000051d7u, + 0x000051e0u, 0x000500c7u, 0x00000006u, 0x000051e3u, 0x000051e1u, 0x00000746u, 0x000500c7u, 0x00000006u, + 0x000051e7u, 0x000051d5u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000051e8u, 0x000051e7u, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x000051eau, 0x000051ddu, 0x000051e8u, 0x000500c6u, 0x00000006u, 0x000051ecu, + 0x000051eau, 0x000002fdu, 0x000500c2u, 0x00000006u, 0x000051eeu, 0x000051e3u, 0x000001a8u, 0x000500c4u, + 0x00000006u, 0x000051f2u, 0x000051e7u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x000051f4u, 0x000051eeu, + 0x000051f2u, 0x000500c6u, 0x00000006u, 0x000051f6u, 0x000051f4u, 0x000002f6u, 0x000500c5u, 0x00000006u, + 0x000051f9u, 0x000051ecu, 0x0000076fu, 0x00080041u, 0x000006aau, 0x000051fau, 0x000006a7u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x000051f9u, 0x0004003du, 0x0000000fu, 0x000051fbu, 0x000051fau, 0x00080041u, + 0x0000077au, 0x000051feu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000051f6u, 0x0004003du, + 0x00000011u, 0x000051ffu, 0x000051feu, 0x000500c2u, 0x00000011u, 0x00005201u, 0x000051ffu, 0x000008cdu, + 0x000500c7u, 0x00000011u, 0x00005202u, 0x00005201u, 0x000002aeu, 0x00040071u, 0x0000000fu, 0x00005203u, + 0x00005202u, 0x000500c2u, 0x00000011u, 0x00005205u, 0x000051ffu, 0x00000198u, 0x000500c7u, 0x00000011u, + 0x00005206u, 0x00005205u, 0x000002aeu, 0x00040071u, 0x0000000fu, 0x00005207u, 0x00005206u, 0x00040071u, + 0x00000011u, 0x00005209u, 0x00005203u, 0x0004007cu, 0x00000012u, 0x0000520au, 0x00005209u, 0x00050082u, + 0x00000012u, 0x0000520bu, 0x0000520au, 0x000008d9u, 0x00040071u, 0x00000011u, 0x0000520du, 0x00005207u, + 0x0004007cu, 0x00000012u, 0x0000520eu, 0x0000520du, 0x00050082u, 0x00000012u, 0x0000520fu, 0x0000520eu, + 0x000008d9u, 0x00040071u, 0x00000011u, 0x00005211u, 0x000051fbu, 0x0004007cu, 0x00000012u, 0x00005212u, + 0x00005211u, 0x00070050u, 0x00000013u, 0x00005216u, 0x0000520bu, 0x0000520fu, 0x00005212u, 0x00005212u, + 0x00050050u, 0x00000058u, 0x000044bau, 0x000071f4u, 0x00004339u, 0x0004007cu, 0x000000abu, 0x000044bbu, + 0x000044bau, 0x00050051u, 0x00000006u, 0x00005227u, 0x000044bbu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005228u, 0x0000417du, 0x00005227u, 0x00050080u, 0x00000006u, 0x00005229u, 0x0000417bu, 0x00005228u, + 0x00050051u, 0x00000006u, 0x0000522cu, 0x000044bbu, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000522du, + 0x00005229u, 0x0000522cu, 0x000500c7u, 0x00000006u, 0x0000522fu, 0x0000522du, 0x00000746u, 0x00050080u, + 0x00000006u, 0x00005233u, 0x00005229u, 0x0000518eu, 0x000500c7u, 0x00000006u, 0x00005235u, 0x00005233u, + 0x00000746u, 0x000500c7u, 0x00000006u, 0x00005239u, 0x00005227u, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x0000523au, 0x00005239u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x0000523cu, 0x0000522fu, 0x0000523au, + 0x000500c6u, 0x00000006u, 0x0000523eu, 0x0000523cu, 0x000002fdu, 0x000500c2u, 0x00000006u, 0x00005240u, + 0x00005235u, 0x000001a8u, 0x000500c4u, 0x00000006u, 0x00005244u, 0x00005239u, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x00005246u, 0x00005240u, 0x00005244u, 0x000500c6u, 0x00000006u, 0x00005248u, 0x00005246u, + 0x000002f6u, 0x000500c5u, 0x00000006u, 0x0000524bu, 0x0000523eu, 0x0000076fu, 0x00080041u, 0x000006aau, + 0x0000524cu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000524bu, 0x0004003du, 0x0000000fu, + 0x0000524du, 0x0000524cu, 0x00080041u, 0x0000077au, 0x00005250u, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00005248u, 0x0004003du, 0x00000011u, 0x00005251u, 0x00005250u, 0x000500c2u, 0x00000011u, + 0x00005253u, 0x00005251u, 0x000008cdu, 0x000500c7u, 0x00000011u, 0x00005254u, 0x00005253u, 0x000002aeu, + 0x00040071u, 0x0000000fu, 0x00005255u, 0x00005254u, 0x000500c2u, 0x00000011u, 0x00005257u, 0x00005251u, + 0x00000198u, 0x000500c7u, 0x00000011u, 0x00005258u, 0x00005257u, 0x000002aeu, 0x00040071u, 0x0000000fu, + 0x00005259u, 0x00005258u, 0x00040071u, 0x00000011u, 0x0000525bu, 0x00005255u, 0x0004007cu, 0x00000012u, + 0x0000525cu, 0x0000525bu, 0x00050082u, 0x00000012u, 0x0000525du, 0x0000525cu, 0x000008d9u, 0x00040071u, + 0x00000011u, 0x0000525fu, 0x00005259u, 0x0004007cu, 0x00000012u, 0x00005260u, 0x0000525fu, 0x00050082u, + 0x00000012u, 0x00005261u, 0x00005260u, 0x000008d9u, 0x00040071u, 0x00000011u, 0x00005263u, 0x0000524du, + 0x0004007cu, 0x00000012u, 0x00005264u, 0x00005263u, 0x00070050u, 0x00000013u, 0x00005268u, 0x0000525du, + 0x00005261u, 0x00005264u, 0x00005264u, 0x00050050u, 0x00000058u, 0x000044c2u, 0x000071fcu, 0x00004339u, + 0x0004007cu, 0x000000abu, 0x000044c3u, 0x000044c2u, 0x00050051u, 0x00000006u, 0x00005279u, 0x000044c3u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x0000527au, 0x0000417du, 0x00005279u, 0x00050080u, 0x00000006u, + 0x0000527bu, 0x0000417bu, 0x0000527au, 0x00050051u, 0x00000006u, 0x0000527eu, 0x000044c3u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x0000527fu, 0x0000527bu, 0x0000527eu, 0x000500c7u, 0x00000006u, 0x00005281u, + 0x0000527fu, 0x00000746u, 0x00050080u, 0x00000006u, 0x00005285u, 0x0000527bu, 0x000051e0u, 0x000500c7u, + 0x00000006u, 0x00005287u, 0x00005285u, 0x00000746u, 0x000500c7u, 0x00000006u, 0x0000528bu, 0x00005279u, + 0x000002f6u, 0x000500c4u, 0x00000006u, 0x0000528cu, 0x0000528bu, 0x000001abu, 0x000500c6u, 0x00000006u, + 0x0000528eu, 0x00005281u, 0x0000528cu, 0x000500c6u, 0x00000006u, 0x00005290u, 0x0000528eu, 0x000002fdu, + 0x000500c2u, 0x00000006u, 0x00005292u, 0x00005287u, 0x000001a8u, 0x000500c4u, 0x00000006u, 0x00005296u, + 0x0000528bu, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00005298u, 0x00005292u, 0x00005296u, 0x000500c6u, + 0x00000006u, 0x0000529au, 0x00005298u, 0x000002f6u, 0x000500c5u, 0x00000006u, 0x0000529du, 0x00005290u, + 0x0000076fu, 0x00080041u, 0x000006aau, 0x0000529eu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x0000529du, 0x0004003du, 0x0000000fu, 0x0000529fu, 0x0000529eu, 0x00080041u, 0x0000077au, 0x000052a2u, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000529au, 0x0004003du, 0x00000011u, 0x000052a3u, + 0x000052a2u, 0x000500c2u, 0x00000011u, 0x000052a5u, 0x000052a3u, 0x000008cdu, 0x000500c7u, 0x00000011u, + 0x000052a6u, 0x000052a5u, 0x000002aeu, 0x00040071u, 0x0000000fu, 0x000052a7u, 0x000052a6u, 0x000500c2u, + 0x00000011u, 0x000052a9u, 0x000052a3u, 0x00000198u, 0x000500c7u, 0x00000011u, 0x000052aau, 0x000052a9u, + 0x000002aeu, 0x00040071u, 0x0000000fu, 0x000052abu, 0x000052aau, 0x00040071u, 0x00000011u, 0x000052adu, + 0x000052a7u, 0x0004007cu, 0x00000012u, 0x000052aeu, 0x000052adu, 0x00050082u, 0x00000012u, 0x000052afu, + 0x000052aeu, 0x000008d9u, 0x00040071u, 0x00000011u, 0x000052b1u, 0x000052abu, 0x0004007cu, 0x00000012u, + 0x000052b2u, 0x000052b1u, 0x00050082u, 0x00000012u, 0x000052b3u, 0x000052b2u, 0x000008d9u, 0x00040071u, + 0x00000011u, 0x000052b5u, 0x0000529fu, 0x0004007cu, 0x00000012u, 0x000052b6u, 0x000052b5u, 0x00070050u, + 0x00000013u, 0x000052bau, 0x000052afu, 0x000052b3u, 0x000052b6u, 0x000052b6u, 0x000200f9u, 0x000044c8u, + 0x000200f8u, 0x000044c8u, 0x000700f5u, 0x00000013u, 0x000076a4u, 0x00006bf1u, 0x0000449bu, 0x000052bau, + 0x000044afu, 0x000700f5u, 0x00000013u, 0x000075aeu, 0x00006bf1u, 0x0000449bu, 0x00005268u, 0x000044afu, + 0x000700f5u, 0x00000013u, 0x000074b8u, 0x00006bf1u, 0x0000449bu, 0x00005216u, 0x000044afu, 0x000200f9u, + 0x00004631u, 0x000200f8u, 0x00004411u, 0x00040071u, 0x00000006u, 0x00004414u, 0x000089b8u, 0x0004007cu, + 0x00000008u, 0x00004415u, 0x00004414u, 0x000300f7u, 0x0000449au, 0x00000000u, 0x000b00fbu, 0x00004415u, + 0x0000449au, 0x00000000u, 0x00004416u, 0x00000001u, 0x00004437u, 0x00000002u, 0x00004458u, 0x00000003u, + 0x00004479u, 0x000200f8u, 0x00004479u, 0x0004007cu, 0x000000abu, 0x0000447bu, 0x0000721bu, 0x00050051u, + 0x00000006u, 0x00005092u, 0x0000447bu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00005093u, 0x0000417du, + 0x00005092u, 0x00050080u, 0x00000006u, 0x00005094u, 0x0000417bu, 0x00005093u, 0x00050051u, 0x00000006u, + 0x00005096u, 0x0000447bu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005097u, 0x00005096u, 0x000002fau, + 0x00050080u, 0x00000006u, 0x00005099u, 0x00005094u, 0x00005097u, 0x000500c7u, 0x00000006u, 0x0000509bu, + 0x00005099u, 0x00000746u, 0x000500c2u, 0x00000006u, 0x0000509du, 0x0000509bu, 0x000001a8u, 0x000500c7u, + 0x00000006u, 0x000050a0u, 0x00005092u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000050a1u, 0x000050a0u, + 0x000001a8u, 0x000500c6u, 0x00000006u, 0x000050a3u, 0x0000509du, 0x000050a1u, 0x000500c6u, 0x00000006u, + 0x000050a5u, 0x000050a3u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x000050a8u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x000050a5u, 0x0004003du, 0x00000011u, 0x000050a9u, 0x000050a8u, 0x00040071u, + 0x00000006u, 0x000050aau, 0x000050a9u, 0x000500c5u, 0x00000006u, 0x000050adu, 0x000050a5u, 0x00000777u, + 0x00080041u, 0x0000077au, 0x000050aeu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000050adu, + 0x0004003du, 0x00000011u, 0x000050afu, 0x000050aeu, 0x00040071u, 0x00000006u, 0x000050b0u, 0x000050afu, + 0x000500c2u, 0x00000006u, 0x000050b2u, 0x000050aau, 0x000001dbu, 0x00040071u, 0x00000011u, 0x000050b3u, + 0x000050b2u, 0x0004007cu, 0x00000012u, 0x000050b4u, 0x000050b3u, 0x000500c7u, 0x00000006u, 0x000050b6u, + 0x000050aau, 0x00000659u, 0x00040071u, 0x00000011u, 0x000050b7u, 0x000050b6u, 0x0004007cu, 0x00000012u, + 0x000050b8u, 0x000050b7u, 0x000500c2u, 0x00000006u, 0x000050bau, 0x000050b0u, 0x000001dbu, 0x00040071u, + 0x00000011u, 0x000050bbu, 0x000050bau, 0x0004007cu, 0x00000012u, 0x000050bcu, 0x000050bbu, 0x000500c7u, + 0x00000006u, 0x000050beu, 0x000050b0u, 0x00000659u, 0x00040071u, 0x00000011u, 0x000050bfu, 0x000050beu, + 0x0004007cu, 0x00000012u, 0x000050c0u, 0x000050bfu, 0x00070050u, 0x00000013u, 0x000050c1u, 0x000050b4u, + 0x000050b8u, 0x000050bcu, 0x000050c0u, 0x000300f7u, 0x0000448fu, 0x00000000u, 0x000400fau, 0x00001b2cu, + 0x00004480u, 0x0000448fu, 0x000200f8u, 0x00004480u, 0x00050050u, 0x00000058u, 0x00004483u, 0x000071fcu, + 0x00004337u, 0x0004007cu, 0x000000abu, 0x00004484u, 0x00004483u, 0x00050051u, 0x00000006u, 0x000050cdu, + 0x00004484u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000050ceu, 0x0000417du, 0x000050cdu, 0x00050080u, + 0x00000006u, 0x000050cfu, 0x0000417bu, 0x000050ceu, 0x00050051u, 0x00000006u, 0x000050d1u, 0x00004484u, + 0x00000000u, 0x00050084u, 0x00000006u, 0x000050d2u, 0x000050d1u, 0x000002fau, 0x00050080u, 0x00000006u, + 0x000050d4u, 0x000050cfu, 0x000050d2u, 0x000500c7u, 0x00000006u, 0x000050d6u, 0x000050d4u, 0x00000746u, + 0x000500c2u, 0x00000006u, 0x000050d8u, 0x000050d6u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x000050dbu, + 0x000050cdu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000050dcu, 0x000050dbu, 0x000001a8u, 0x000500c6u, + 0x00000006u, 0x000050deu, 0x000050d8u, 0x000050dcu, 0x000500c6u, 0x00000006u, 0x000050e0u, 0x000050deu, + 0x000002f6u, 0x00080041u, 0x0000077au, 0x000050e3u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x000050e0u, 0x0004003du, 0x00000011u, 0x000050e4u, 0x000050e3u, 0x00040071u, 0x00000006u, 0x000050e5u, + 0x000050e4u, 0x000500c5u, 0x00000006u, 0x000050e8u, 0x000050e0u, 0x00000777u, 0x00080041u, 0x0000077au, + 0x000050e9u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000050e8u, 0x0004003du, 0x00000011u, + 0x000050eau, 0x000050e9u, 0x00040071u, 0x00000006u, 0x000050ebu, 0x000050eau, 0x000500c2u, 0x00000006u, + 0x000050edu, 0x000050e5u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x000050eeu, 0x000050edu, 0x0004007cu, + 0x00000012u, 0x000050efu, 0x000050eeu, 0x000500c7u, 0x00000006u, 0x000050f1u, 0x000050e5u, 0x00000659u, + 0x00040071u, 0x00000011u, 0x000050f2u, 0x000050f1u, 0x0004007cu, 0x00000012u, 0x000050f3u, 0x000050f2u, + 0x000500c2u, 0x00000006u, 0x000050f5u, 0x000050ebu, 0x000001dbu, 0x00040071u, 0x00000011u, 0x000050f6u, + 0x000050f5u, 0x0004007cu, 0x00000012u, 0x000050f7u, 0x000050f6u, 0x000500c7u, 0x00000006u, 0x000050f9u, + 0x000050ebu, 0x00000659u, 0x00040071u, 0x00000011u, 0x000050fau, 0x000050f9u, 0x0004007cu, 0x00000012u, + 0x000050fbu, 0x000050fau, 0x00070050u, 0x00000013u, 0x000050fcu, 0x000050efu, 0x000050f3u, 0x000050f7u, + 0x000050fbu, 0x00050050u, 0x00000058u, 0x0000448au, 0x000071f4u, 0x00004339u, 0x0004007cu, 0x000000abu, + 0x0000448bu, 0x0000448au, 0x00050051u, 0x00000006u, 0x00005108u, 0x0000448bu, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005109u, 0x0000417du, 0x00005108u, 0x00050080u, 0x00000006u, 0x0000510au, 0x0000417bu, + 0x00005109u, 0x00050051u, 0x00000006u, 0x0000510cu, 0x0000448bu, 0x00000000u, 0x00050084u, 0x00000006u, + 0x0000510du, 0x0000510cu, 0x000002fau, 0x00050080u, 0x00000006u, 0x0000510fu, 0x0000510au, 0x0000510du, + 0x000500c7u, 0x00000006u, 0x00005111u, 0x0000510fu, 0x00000746u, 0x000500c2u, 0x00000006u, 0x00005113u, + 0x00005111u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00005116u, 0x00005108u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00005117u, 0x00005116u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00005119u, 0x00005113u, + 0x00005117u, 0x000500c6u, 0x00000006u, 0x0000511bu, 0x00005119u, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x0000511eu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000511bu, 0x0004003du, 0x00000011u, + 0x0000511fu, 0x0000511eu, 0x00040071u, 0x00000006u, 0x00005120u, 0x0000511fu, 0x000500c5u, 0x00000006u, + 0x00005123u, 0x0000511bu, 0x00000777u, 0x00080041u, 0x0000077au, 0x00005124u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00005123u, 0x0004003du, 0x00000011u, 0x00005125u, 0x00005124u, 0x00040071u, + 0x00000006u, 0x00005126u, 0x00005125u, 0x000500c2u, 0x00000006u, 0x00005128u, 0x00005120u, 0x000001dbu, + 0x00040071u, 0x00000011u, 0x00005129u, 0x00005128u, 0x0004007cu, 0x00000012u, 0x0000512au, 0x00005129u, + 0x000500c7u, 0x00000006u, 0x0000512cu, 0x00005120u, 0x00000659u, 0x00040071u, 0x00000011u, 0x0000512du, + 0x0000512cu, 0x0004007cu, 0x00000012u, 0x0000512eu, 0x0000512du, 0x000500c2u, 0x00000006u, 0x00005130u, + 0x00005126u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x00005131u, 0x00005130u, 0x0004007cu, 0x00000012u, + 0x00005132u, 0x00005131u, 0x000500c7u, 0x00000006u, 0x00005134u, 0x00005126u, 0x00000659u, 0x00040071u, + 0x00000011u, 0x00005135u, 0x00005134u, 0x0004007cu, 0x00000012u, 0x00005136u, 0x00005135u, 0x00070050u, + 0x00000013u, 0x00005137u, 0x0000512au, 0x0000512eu, 0x00005132u, 0x00005136u, 0x000200f9u, 0x0000448fu, + 0x000200f8u, 0x0000448fu, 0x000700f5u, 0x00000013u, 0x000075adu, 0x00006bf1u, 0x00004479u, 0x00005137u, + 0x00004480u, 0x000700f5u, 0x00000013u, 0x000074b7u, 0x00006bf1u, 0x00004479u, 0x000050fcu, 0x00004480u, + 0x000300f7u, 0x00004499u, 0x00000000u, 0x000400fau, 0x00004343u, 0x00004491u, 0x00004499u, 0x000200f8u, + 0x00004491u, 0x00050050u, 0x00000058u, 0x00004494u, 0x000071fcu, 0x00004339u, 0x0004007cu, 0x000000abu, + 0x00004495u, 0x00004494u, 0x00050051u, 0x00000006u, 0x00005143u, 0x00004495u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00005144u, 0x0000417du, 0x00005143u, 0x00050080u, 0x00000006u, 0x00005145u, 0x0000417bu, + 0x00005144u, 0x00050051u, 0x00000006u, 0x00005147u, 0x00004495u, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00005148u, 0x00005147u, 0x000002fau, 0x00050080u, 0x00000006u, 0x0000514au, 0x00005145u, 0x00005148u, + 0x000500c7u, 0x00000006u, 0x0000514cu, 0x0000514au, 0x00000746u, 0x000500c2u, 0x00000006u, 0x0000514eu, + 0x0000514cu, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00005151u, 0x00005143u, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00005152u, 0x00005151u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00005154u, 0x0000514eu, + 0x00005152u, 0x000500c6u, 0x00000006u, 0x00005156u, 0x00005154u, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x00005159u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005156u, 0x0004003du, 0x00000011u, + 0x0000515au, 0x00005159u, 0x00040071u, 0x00000006u, 0x0000515bu, 0x0000515au, 0x000500c5u, 0x00000006u, + 0x0000515eu, 0x00005156u, 0x00000777u, 0x00080041u, 0x0000077au, 0x0000515fu, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x0000515eu, 0x0004003du, 0x00000011u, 0x00005160u, 0x0000515fu, 0x00040071u, + 0x00000006u, 0x00005161u, 0x00005160u, 0x000500c2u, 0x00000006u, 0x00005163u, 0x0000515bu, 0x000001dbu, + 0x00040071u, 0x00000011u, 0x00005164u, 0x00005163u, 0x0004007cu, 0x00000012u, 0x00005165u, 0x00005164u, + 0x000500c7u, 0x00000006u, 0x00005167u, 0x0000515bu, 0x00000659u, 0x00040071u, 0x00000011u, 0x00005168u, + 0x00005167u, 0x0004007cu, 0x00000012u, 0x00005169u, 0x00005168u, 0x000500c2u, 0x00000006u, 0x0000516bu, + 0x00005161u, 0x000001dbu, 0x00040071u, 0x00000011u, 0x0000516cu, 0x0000516bu, 0x0004007cu, 0x00000012u, + 0x0000516du, 0x0000516cu, 0x000500c7u, 0x00000006u, 0x0000516fu, 0x00005161u, 0x00000659u, 0x00040071u, + 0x00000011u, 0x00005170u, 0x0000516fu, 0x0004007cu, 0x00000012u, 0x00005171u, 0x00005170u, 0x00070050u, + 0x00000013u, 0x00005172u, 0x00005165u, 0x00005169u, 0x0000516du, 0x00005171u, 0x000200f9u, 0x00004499u, + 0x000200f8u, 0x00004499u, 0x000700f5u, 0x00000013u, 0x000076a2u, 0x00006bf1u, 0x0000448fu, 0x00005172u, + 0x00004491u, 0x000200f9u, 0x0000449au, 0x000200f8u, 0x00004458u, 0x0004007cu, 0x000000abu, 0x0000445au, + 0x0000721bu, 0x00050051u, 0x00000006u, 0x00004f86u, 0x0000445au, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004f87u, 0x0000417du, 0x00004f86u, 0x00050080u, 0x00000006u, 0x00004f88u, 0x0000417bu, 0x00004f87u, + 0x00050051u, 0x00000006u, 0x00004f8au, 0x0000445au, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004f8bu, + 0x00004f8au, 0x000002fau, 0x00050080u, 0x00000006u, 0x00004f8du, 0x00004f88u, 0x00004f8bu, 0x000500c7u, + 0x00000006u, 0x00004f8fu, 0x00004f8du, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00004f91u, 0x00004f8fu, + 0x000001a8u, 0x000500c7u, 0x00000006u, 0x00004f94u, 0x00004f86u, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x00004f95u, 0x00004f94u, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00004f97u, 0x00004f91u, 0x00004f95u, + 0x000500c6u, 0x00000006u, 0x00004f99u, 0x00004f97u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00004f9cu, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004f99u, 0x0004003du, 0x00000011u, 0x00004f9du, + 0x00004f9cu, 0x00040071u, 0x00000006u, 0x00004f9eu, 0x00004f9du, 0x00060050u, 0x0000026fu, 0x00004fa6u, + 0x00004f9eu, 0x00004f9eu, 0x00004f9eu, 0x000500c2u, 0x0000026fu, 0x00004fa7u, 0x00004fa6u, 0x0000064au, + 0x000500c7u, 0x0000026fu, 0x00004fa9u, 0x00004fa7u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00004facu, + 0x00004fa9u, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004fafu, 0x00004fa9u, 0x0000897fu, 0x000500c5u, + 0x0000026fu, 0x00004fb0u, 0x00004facu, 0x00004fafu, 0x000500c7u, 0x00000006u, 0x00004fb2u, 0x00004f9eu, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004fb3u, 0x00004fb2u, 0x00000659u, 0x00040071u, 0x0000065du, + 0x00004fb5u, 0x00004fb0u, 0x0004007cu, 0x0000065cu, 0x00004fb6u, 0x00004fb5u, 0x00040071u, 0x00000011u, + 0x00004fb8u, 0x00004fb3u, 0x0004007cu, 0x00000012u, 0x00004fb9u, 0x00004fb8u, 0x00050051u, 0x00000012u, + 0x00004fbau, 0x00004fb6u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004fbbu, 0x00004fb6u, 0x00000001u, + 0x00050051u, 0x00000012u, 0x00004fbcu, 0x00004fb6u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00004fbdu, + 0x00004fbau, 0x00004fbbu, 0x00004fbcu, 0x00004fb9u, 0x000300f7u, 0x0000446eu, 0x00000000u, 0x000400fau, + 0x00001b2cu, 0x0000445fu, 0x0000446eu, 0x000200f8u, 0x0000445fu, 0x00050050u, 0x00000058u, 0x00004462u, + 0x000071fcu, 0x00004337u, 0x0004007cu, 0x000000abu, 0x00004463u, 0x00004462u, 0x00050051u, 0x00000006u, + 0x00004fc9u, 0x00004463u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004fcau, 0x0000417du, 0x00004fc9u, + 0x00050080u, 0x00000006u, 0x00004fcbu, 0x0000417bu, 0x00004fcau, 0x00050051u, 0x00000006u, 0x00004fcdu, + 0x00004463u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004fceu, 0x00004fcdu, 0x000002fau, 0x00050080u, + 0x00000006u, 0x00004fd0u, 0x00004fcbu, 0x00004fceu, 0x000500c7u, 0x00000006u, 0x00004fd2u, 0x00004fd0u, + 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00004fd4u, 0x00004fd2u, 0x000001a8u, 0x000500c7u, 0x00000006u, + 0x00004fd7u, 0x00004fc9u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004fd8u, 0x00004fd7u, 0x000001a8u, + 0x000500c6u, 0x00000006u, 0x00004fdau, 0x00004fd4u, 0x00004fd8u, 0x000500c6u, 0x00000006u, 0x00004fdcu, + 0x00004fdau, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00004fdfu, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00004fdcu, 0x0004003du, 0x00000011u, 0x00004fe0u, 0x00004fdfu, 0x00040071u, 0x00000006u, + 0x00004fe1u, 0x00004fe0u, 0x00060050u, 0x0000026fu, 0x00004fe9u, 0x00004fe1u, 0x00004fe1u, 0x00004fe1u, + 0x000500c2u, 0x0000026fu, 0x00004feau, 0x00004fe9u, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00004fecu, + 0x00004feau, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00004fefu, 0x00004fecu, 0x0000897eu, 0x000500c2u, + 0x0000026fu, 0x00004ff2u, 0x00004fecu, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00004ff3u, 0x00004fefu, + 0x00004ff2u, 0x000500c7u, 0x00000006u, 0x00004ff5u, 0x00004fe1u, 0x000002f6u, 0x00050084u, 0x00000006u, + 0x00004ff6u, 0x00004ff5u, 0x00000659u, 0x00040071u, 0x0000065du, 0x00004ff8u, 0x00004ff3u, 0x0004007cu, + 0x0000065cu, 0x00004ff9u, 0x00004ff8u, 0x00040071u, 0x00000011u, 0x00004ffbu, 0x00004ff6u, 0x0004007cu, + 0x00000012u, 0x00004ffcu, 0x00004ffbu, 0x00050051u, 0x00000012u, 0x00004ffdu, 0x00004ff9u, 0x00000000u, + 0x00050051u, 0x00000012u, 0x00004ffeu, 0x00004ff9u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00004fffu, + 0x00004ff9u, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005000u, 0x00004ffdu, 0x00004ffeu, 0x00004fffu, + 0x00004ffcu, 0x00050050u, 0x00000058u, 0x00004469u, 0x000071f4u, 0x00004339u, 0x0004007cu, 0x000000abu, + 0x0000446au, 0x00004469u, 0x00050051u, 0x00000006u, 0x0000500cu, 0x0000446au, 0x00000001u, 0x00050084u, + 0x00000006u, 0x0000500du, 0x0000417du, 0x0000500cu, 0x00050080u, 0x00000006u, 0x0000500eu, 0x0000417bu, + 0x0000500du, 0x00050051u, 0x00000006u, 0x00005010u, 0x0000446au, 0x00000000u, 0x00050084u, 0x00000006u, + 0x00005011u, 0x00005010u, 0x000002fau, 0x00050080u, 0x00000006u, 0x00005013u, 0x0000500eu, 0x00005011u, + 0x000500c7u, 0x00000006u, 0x00005015u, 0x00005013u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x00005017u, + 0x00005015u, 0x000001a8u, 0x000500c7u, 0x00000006u, 0x0000501au, 0x0000500cu, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x0000501bu, 0x0000501au, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x0000501du, 0x00005017u, + 0x0000501bu, 0x000500c6u, 0x00000006u, 0x0000501fu, 0x0000501du, 0x000002f6u, 0x00080041u, 0x0000077au, + 0x00005022u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x0000501fu, 0x0004003du, 0x00000011u, + 0x00005023u, 0x00005022u, 0x00040071u, 0x00000006u, 0x00005024u, 0x00005023u, 0x00060050u, 0x0000026fu, + 0x0000502cu, 0x00005024u, 0x00005024u, 0x00005024u, 0x000500c2u, 0x0000026fu, 0x0000502du, 0x0000502cu, + 0x0000064au, 0x000500c7u, 0x0000026fu, 0x0000502fu, 0x0000502du, 0x0000897du, 0x000500c4u, 0x0000026fu, + 0x00005032u, 0x0000502fu, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00005035u, 0x0000502fu, 0x0000897fu, + 0x000500c5u, 0x0000026fu, 0x00005036u, 0x00005032u, 0x00005035u, 0x000500c7u, 0x00000006u, 0x00005038u, + 0x00005024u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00005039u, 0x00005038u, 0x00000659u, 0x00040071u, + 0x0000065du, 0x0000503bu, 0x00005036u, 0x0004007cu, 0x0000065cu, 0x0000503cu, 0x0000503bu, 0x00040071u, + 0x00000011u, 0x0000503eu, 0x00005039u, 0x0004007cu, 0x00000012u, 0x0000503fu, 0x0000503eu, 0x00050051u, + 0x00000012u, 0x00005040u, 0x0000503cu, 0x00000000u, 0x00050051u, 0x00000012u, 0x00005041u, 0x0000503cu, + 0x00000001u, 0x00050051u, 0x00000012u, 0x00005042u, 0x0000503cu, 0x00000002u, 0x00070050u, 0x00000013u, + 0x00005043u, 0x00005040u, 0x00005041u, 0x00005042u, 0x0000503fu, 0x000200f9u, 0x0000446eu, 0x000200f8u, + 0x0000446eu, 0x000700f5u, 0x00000013u, 0x000075abu, 0x00006bf1u, 0x00004458u, 0x00005043u, 0x0000445fu, + 0x000700f5u, 0x00000013u, 0x000074b5u, 0x00006bf1u, 0x00004458u, 0x00005000u, 0x0000445fu, 0x000300f7u, + 0x00004478u, 0x00000000u, 0x000400fau, 0x00004343u, 0x00004470u, 0x00004478u, 0x000200f8u, 0x00004470u, + 0x00050050u, 0x00000058u, 0x00004473u, 0x000071fcu, 0x00004339u, 0x0004007cu, 0x000000abu, 0x00004474u, + 0x00004473u, 0x00050051u, 0x00000006u, 0x0000504fu, 0x00004474u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00005050u, 0x0000417du, 0x0000504fu, 0x00050080u, 0x00000006u, 0x00005051u, 0x0000417bu, 0x00005050u, + 0x00050051u, 0x00000006u, 0x00005053u, 0x00004474u, 0x00000000u, 0x00050084u, 0x00000006u, 0x00005054u, + 0x00005053u, 0x000002fau, 0x00050080u, 0x00000006u, 0x00005056u, 0x00005051u, 0x00005054u, 0x000500c7u, + 0x00000006u, 0x00005058u, 0x00005056u, 0x0000068cu, 0x000500c2u, 0x00000006u, 0x0000505au, 0x00005058u, + 0x000001a8u, 0x000500c7u, 0x00000006u, 0x0000505du, 0x0000504fu, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x0000505eu, 0x0000505du, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00005060u, 0x0000505au, 0x0000505eu, + 0x000500c6u, 0x00000006u, 0x00005062u, 0x00005060u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00005065u, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00005062u, 0x0004003du, 0x00000011u, 0x00005066u, + 0x00005065u, 0x00040071u, 0x00000006u, 0x00005067u, 0x00005066u, 0x00060050u, 0x0000026fu, 0x0000506fu, + 0x00005067u, 0x00005067u, 0x00005067u, 0x000500c2u, 0x0000026fu, 0x00005070u, 0x0000506fu, 0x0000064au, + 0x000500c7u, 0x0000026fu, 0x00005072u, 0x00005070u, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00005075u, + 0x00005072u, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00005078u, 0x00005072u, 0x0000897fu, 0x000500c5u, + 0x0000026fu, 0x00005079u, 0x00005075u, 0x00005078u, 0x000500c7u, 0x00000006u, 0x0000507bu, 0x00005067u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x0000507cu, 0x0000507bu, 0x00000659u, 0x00040071u, 0x0000065du, + 0x0000507eu, 0x00005079u, 0x0004007cu, 0x0000065cu, 0x0000507fu, 0x0000507eu, 0x00040071u, 0x00000011u, + 0x00005081u, 0x0000507cu, 0x0004007cu, 0x00000012u, 0x00005082u, 0x00005081u, 0x00050051u, 0x00000012u, + 0x00005083u, 0x0000507fu, 0x00000000u, 0x00050051u, 0x00000012u, 0x00005084u, 0x0000507fu, 0x00000001u, + 0x00050051u, 0x00000012u, 0x00005085u, 0x0000507fu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00005086u, + 0x00005083u, 0x00005084u, 0x00005085u, 0x00005082u, 0x000200f9u, 0x00004478u, 0x000200f8u, 0x00004478u, + 0x000700f5u, 0x00000013u, 0x000076a0u, 0x00006bf1u, 0x0000446eu, 0x00005086u, 0x00004470u, 0x000200f9u, + 0x0000449au, 0x000200f8u, 0x00004437u, 0x0004007cu, 0x000000abu, 0x00004439u, 0x0000721bu, 0x00050051u, + 0x00000006u, 0x00004ef1u, 0x00004439u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004ef2u, 0x0000417du, + 0x00004ef1u, 0x00050080u, 0x00000006u, 0x00004ef3u, 0x0000417bu, 0x00004ef2u, 0x00050051u, 0x00000006u, + 0x00004ef5u, 0x00004439u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004ef7u, 0x00004ef3u, 0x00004ef5u, + 0x000500c7u, 0x00000006u, 0x00004ef9u, 0x00004ef7u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x00004efdu, + 0x00004ef1u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004efeu, 0x00004efdu, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00004f00u, 0x00004ef9u, 0x00004efeu, 0x000500c6u, 0x00000006u, 0x00004f02u, 0x00004f00u, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004f05u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00004f02u, 0x0004003du, 0x0000000fu, 0x00004f06u, 0x00004f05u, 0x00040071u, 0x00000006u, 0x00004f07u, + 0x00004f06u, 0x00040071u, 0x00000011u, 0x00004f09u, 0x00004f07u, 0x0004007cu, 0x00000012u, 0x00004f0au, + 0x00004f09u, 0x00070050u, 0x00000013u, 0x00004f0bu, 0x00004f0au, 0x00004f0au, 0x00004f0au, 0x00004f0au, + 0x000300f7u, 0x0000444du, 0x00000000u, 0x000400fau, 0x00001b2cu, 0x0000443eu, 0x0000444du, 0x000200f8u, + 0x0000443eu, 0x00050050u, 0x00000058u, 0x00004441u, 0x000071fcu, 0x00004337u, 0x0004007cu, 0x000000abu, + 0x00004442u, 0x00004441u, 0x00050051u, 0x00000006u, 0x00004f16u, 0x00004442u, 0x00000001u, 0x00050084u, + 0x00000006u, 0x00004f17u, 0x0000417du, 0x00004f16u, 0x00050080u, 0x00000006u, 0x00004f18u, 0x0000417bu, + 0x00004f17u, 0x00050051u, 0x00000006u, 0x00004f1au, 0x00004442u, 0x00000000u, 0x00050080u, 0x00000006u, + 0x00004f1cu, 0x00004f18u, 0x00004f1au, 0x000500c7u, 0x00000006u, 0x00004f1eu, 0x00004f1cu, 0x0000068cu, + 0x000500c7u, 0x00000006u, 0x00004f22u, 0x00004f16u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004f23u, + 0x00004f22u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00004f25u, 0x00004f1eu, 0x00004f23u, 0x000500c6u, + 0x00000006u, 0x00004f27u, 0x00004f25u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004f2au, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004f27u, 0x0004003du, 0x0000000fu, 0x00004f2bu, 0x00004f2au, + 0x00040071u, 0x00000006u, 0x00004f2cu, 0x00004f2bu, 0x00040071u, 0x00000011u, 0x00004f2eu, 0x00004f2cu, + 0x0004007cu, 0x00000012u, 0x00004f2fu, 0x00004f2eu, 0x00070050u, 0x00000013u, 0x00004f30u, 0x00004f2fu, + 0x00004f2fu, 0x00004f2fu, 0x00004f2fu, 0x00050050u, 0x00000058u, 0x00004448u, 0x000071f4u, 0x00004339u, + 0x0004007cu, 0x000000abu, 0x00004449u, 0x00004448u, 0x00050051u, 0x00000006u, 0x00004f3bu, 0x00004449u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004f3cu, 0x0000417du, 0x00004f3bu, 0x00050080u, 0x00000006u, + 0x00004f3du, 0x0000417bu, 0x00004f3cu, 0x00050051u, 0x00000006u, 0x00004f3fu, 0x00004449u, 0x00000000u, + 0x00050080u, 0x00000006u, 0x00004f41u, 0x00004f3du, 0x00004f3fu, 0x000500c7u, 0x00000006u, 0x00004f43u, + 0x00004f41u, 0x0000068cu, 0x000500c7u, 0x00000006u, 0x00004f47u, 0x00004f3bu, 0x000002f6u, 0x000500c4u, + 0x00000006u, 0x00004f48u, 0x00004f47u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00004f4au, 0x00004f43u, + 0x00004f48u, 0x000500c6u, 0x00000006u, 0x00004f4cu, 0x00004f4au, 0x000002fdu, 0x00080041u, 0x000006aau, + 0x00004f4fu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004f4cu, 0x0004003du, 0x0000000fu, + 0x00004f50u, 0x00004f4fu, 0x00040071u, 0x00000006u, 0x00004f51u, 0x00004f50u, 0x00040071u, 0x00000011u, + 0x00004f53u, 0x00004f51u, 0x0004007cu, 0x00000012u, 0x00004f54u, 0x00004f53u, 0x00070050u, 0x00000013u, + 0x00004f55u, 0x00004f54u, 0x00004f54u, 0x00004f54u, 0x00004f54u, 0x000200f9u, 0x0000444du, 0x000200f8u, + 0x0000444du, 0x000700f5u, 0x00000013u, 0x000075a9u, 0x00006bf1u, 0x00004437u, 0x00004f55u, 0x0000443eu, + 0x000700f5u, 0x00000013u, 0x000074b3u, 0x00006bf1u, 0x00004437u, 0x00004f30u, 0x0000443eu, 0x000300f7u, + 0x00004457u, 0x00000000u, 0x000400fau, 0x00004343u, 0x0000444fu, 0x00004457u, 0x000200f8u, 0x0000444fu, + 0x00050050u, 0x00000058u, 0x00004452u, 0x000071fcu, 0x00004339u, 0x0004007cu, 0x000000abu, 0x00004453u, + 0x00004452u, 0x00050051u, 0x00000006u, 0x00004f60u, 0x00004453u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004f61u, 0x0000417du, 0x00004f60u, 0x00050080u, 0x00000006u, 0x00004f62u, 0x0000417bu, 0x00004f61u, + 0x00050051u, 0x00000006u, 0x00004f64u, 0x00004453u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004f66u, + 0x00004f62u, 0x00004f64u, 0x000500c7u, 0x00000006u, 0x00004f68u, 0x00004f66u, 0x0000068cu, 0x000500c7u, + 0x00000006u, 0x00004f6cu, 0x00004f60u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004f6du, 0x00004f6cu, + 0x000001abu, 0x000500c6u, 0x00000006u, 0x00004f6fu, 0x00004f68u, 0x00004f6du, 0x000500c6u, 0x00000006u, + 0x00004f71u, 0x00004f6fu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004f74u, 0x000006a7u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00004f71u, 0x0004003du, 0x0000000fu, 0x00004f75u, 0x00004f74u, 0x00040071u, + 0x00000006u, 0x00004f76u, 0x00004f75u, 0x00040071u, 0x00000011u, 0x00004f78u, 0x00004f76u, 0x0004007cu, + 0x00000012u, 0x00004f79u, 0x00004f78u, 0x00070050u, 0x00000013u, 0x00004f7au, 0x00004f79u, 0x00004f79u, + 0x00004f79u, 0x00004f79u, 0x000200f9u, 0x00004457u, 0x000200f8u, 0x00004457u, 0x000700f5u, 0x00000013u, + 0x0000769eu, 0x00006bf1u, 0x0000444du, 0x00004f7au, 0x0000444fu, 0x000200f9u, 0x0000449au, 0x000200f8u, + 0x00004416u, 0x0004007cu, 0x000000abu, 0x00004418u, 0x0000721bu, 0x00050051u, 0x00000006u, 0x00004e22u, + 0x00004418u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004e23u, 0x0000417du, 0x00004e22u, 0x00050080u, + 0x00000006u, 0x00004e24u, 0x0000417bu, 0x00004e23u, 0x00050051u, 0x00000006u, 0x00004e26u, 0x00004418u, + 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004e27u, 0x00004e26u, 0x000001a8u, 0x00050080u, 0x00000006u, + 0x00004e29u, 0x00004e24u, 0x00004e27u, 0x000500c7u, 0x00000006u, 0x00004e2bu, 0x00004e29u, 0x0000068cu, + 0x000400c8u, 0x00000006u, 0x00004e2eu, 0x00004e26u, 0x000500c7u, 0x00000006u, 0x00004e2fu, 0x00004e2eu, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004e30u, 0x00004e2fu, 0x00000694u, 0x000500c7u, 0x00000006u, + 0x00004e34u, 0x00004e22u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004e35u, 0x00004e34u, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x00004e37u, 0x00004e2bu, 0x00004e35u, 0x000500c6u, 0x00000006u, 0x00004e39u, + 0x00004e37u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004e3cu, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00004e39u, 0x0004003du, 0x0000000fu, 0x00004e3du, 0x00004e3cu, 0x00040071u, 0x00000006u, + 0x00004e3eu, 0x00004e3du, 0x000500c2u, 0x00000006u, 0x00004e41u, 0x00004e3eu, 0x00004e30u, 0x000500c7u, + 0x00000006u, 0x00004e42u, 0x00004e41u, 0x000006b1u, 0x000500c4u, 0x00000006u, 0x00004e44u, 0x00004e42u, + 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00004e46u, 0x00004e42u, 0x00004e44u, 0x00040071u, 0x00000011u, + 0x00004e48u, 0x00004e46u, 0x0004007cu, 0x00000012u, 0x00004e49u, 0x00004e48u, 0x00070050u, 0x00000013u, + 0x00004e4au, 0x00004e49u, 0x00004e49u, 0x00004e49u, 0x00004e49u, 0x000300f7u, 0x0000442cu, 0x00000000u, + 0x000400fau, 0x00001b2cu, 0x0000441du, 0x0000442cu, 0x000200f8u, 0x0000441du, 0x00050050u, 0x00000058u, + 0x00004420u, 0x000071fcu, 0x00004337u, 0x0004007cu, 0x000000abu, 0x00004421u, 0x00004420u, 0x00050051u, + 0x00000006u, 0x00004e56u, 0x00004421u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004e57u, 0x0000417du, + 0x00004e56u, 0x00050080u, 0x00000006u, 0x00004e58u, 0x0000417bu, 0x00004e57u, 0x00050051u, 0x00000006u, + 0x00004e5au, 0x00004421u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004e5bu, 0x00004e5au, 0x000001a8u, + 0x00050080u, 0x00000006u, 0x00004e5du, 0x00004e58u, 0x00004e5bu, 0x000500c7u, 0x00000006u, 0x00004e5fu, + 0x00004e5du, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00004e62u, 0x00004e5au, 0x000500c7u, 0x00000006u, + 0x00004e63u, 0x00004e62u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004e64u, 0x00004e63u, 0x00000694u, + 0x000500c7u, 0x00000006u, 0x00004e68u, 0x00004e56u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004e69u, + 0x00004e68u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00004e6bu, 0x00004e5fu, 0x00004e69u, 0x000500c6u, + 0x00000006u, 0x00004e6du, 0x00004e6bu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004e70u, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004e6du, 0x0004003du, 0x0000000fu, 0x00004e71u, 0x00004e70u, + 0x00040071u, 0x00000006u, 0x00004e72u, 0x00004e71u, 0x000500c2u, 0x00000006u, 0x00004e75u, 0x00004e72u, + 0x00004e64u, 0x000500c7u, 0x00000006u, 0x00004e76u, 0x00004e75u, 0x000006b1u, 0x000500c4u, 0x00000006u, + 0x00004e78u, 0x00004e76u, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00004e7au, 0x00004e76u, 0x00004e78u, + 0x00040071u, 0x00000011u, 0x00004e7cu, 0x00004e7au, 0x0004007cu, 0x00000012u, 0x00004e7du, 0x00004e7cu, + 0x00070050u, 0x00000013u, 0x00004e7eu, 0x00004e7du, 0x00004e7du, 0x00004e7du, 0x00004e7du, 0x00050050u, + 0x00000058u, 0x00004427u, 0x000071f4u, 0x00004339u, 0x0004007cu, 0x000000abu, 0x00004428u, 0x00004427u, + 0x00050051u, 0x00000006u, 0x00004e8au, 0x00004428u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004e8bu, + 0x0000417du, 0x00004e8au, 0x00050080u, 0x00000006u, 0x00004e8cu, 0x0000417bu, 0x00004e8bu, 0x00050051u, + 0x00000006u, 0x00004e8eu, 0x00004428u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004e8fu, 0x00004e8eu, + 0x000001a8u, 0x00050080u, 0x00000006u, 0x00004e91u, 0x00004e8cu, 0x00004e8fu, 0x000500c7u, 0x00000006u, + 0x00004e93u, 0x00004e91u, 0x0000068cu, 0x000400c8u, 0x00000006u, 0x00004e96u, 0x00004e8eu, 0x000500c7u, + 0x00000006u, 0x00004e97u, 0x00004e96u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004e98u, 0x00004e97u, + 0x00000694u, 0x000500c7u, 0x00000006u, 0x00004e9cu, 0x00004e8au, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x00004e9du, 0x00004e9cu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00004e9fu, 0x00004e93u, 0x00004e9du, + 0x000500c6u, 0x00000006u, 0x00004ea1u, 0x00004e9fu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004ea4u, + 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004ea1u, 0x0004003du, 0x0000000fu, 0x00004ea5u, + 0x00004ea4u, 0x00040071u, 0x00000006u, 0x00004ea6u, 0x00004ea5u, 0x000500c2u, 0x00000006u, 0x00004ea9u, + 0x00004ea6u, 0x00004e98u, 0x000500c7u, 0x00000006u, 0x00004eaau, 0x00004ea9u, 0x000006b1u, 0x000500c4u, + 0x00000006u, 0x00004eacu, 0x00004eaau, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00004eaeu, 0x00004eaau, + 0x00004eacu, 0x00040071u, 0x00000011u, 0x00004eb0u, 0x00004eaeu, 0x0004007cu, 0x00000012u, 0x00004eb1u, + 0x00004eb0u, 0x00070050u, 0x00000013u, 0x00004eb2u, 0x00004eb1u, 0x00004eb1u, 0x00004eb1u, 0x00004eb1u, + 0x000200f9u, 0x0000442cu, 0x000200f8u, 0x0000442cu, 0x000700f5u, 0x00000013u, 0x000075a7u, 0x00006bf1u, + 0x00004416u, 0x00004eb2u, 0x0000441du, 0x000700f5u, 0x00000013u, 0x000074b1u, 0x00006bf1u, 0x00004416u, + 0x00004e7eu, 0x0000441du, 0x000300f7u, 0x00004436u, 0x00000000u, 0x000400fau, 0x00004343u, 0x0000442eu, + 0x00004436u, 0x000200f8u, 0x0000442eu, 0x00050050u, 0x00000058u, 0x00004431u, 0x000071fcu, 0x00004339u, + 0x0004007cu, 0x000000abu, 0x00004432u, 0x00004431u, 0x00050051u, 0x00000006u, 0x00004ebeu, 0x00004432u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004ebfu, 0x0000417du, 0x00004ebeu, 0x00050080u, 0x00000006u, + 0x00004ec0u, 0x0000417bu, 0x00004ebfu, 0x00050051u, 0x00000006u, 0x00004ec2u, 0x00004432u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00004ec3u, 0x00004ec2u, 0x000001a8u, 0x00050080u, 0x00000006u, 0x00004ec5u, + 0x00004ec0u, 0x00004ec3u, 0x000500c7u, 0x00000006u, 0x00004ec7u, 0x00004ec5u, 0x0000068cu, 0x000400c8u, + 0x00000006u, 0x00004ecau, 0x00004ec2u, 0x000500c7u, 0x00000006u, 0x00004ecbu, 0x00004ecau, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x00004eccu, 0x00004ecbu, 0x00000694u, 0x000500c7u, 0x00000006u, 0x00004ed0u, + 0x00004ebeu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004ed1u, 0x00004ed0u, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00004ed3u, 0x00004ec7u, 0x00004ed1u, 0x000500c6u, 0x00000006u, 0x00004ed5u, 0x00004ed3u, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004ed8u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00004ed5u, 0x0004003du, 0x0000000fu, 0x00004ed9u, 0x00004ed8u, 0x00040071u, 0x00000006u, 0x00004edau, + 0x00004ed9u, 0x000500c2u, 0x00000006u, 0x00004eddu, 0x00004edau, 0x00004eccu, 0x000500c7u, 0x00000006u, + 0x00004edeu, 0x00004eddu, 0x000006b1u, 0x000500c4u, 0x00000006u, 0x00004ee0u, 0x00004edeu, 0x000001b1u, + 0x000500c5u, 0x00000006u, 0x00004ee2u, 0x00004edeu, 0x00004ee0u, 0x00040071u, 0x00000011u, 0x00004ee4u, + 0x00004ee2u, 0x0004007cu, 0x00000012u, 0x00004ee5u, 0x00004ee4u, 0x00070050u, 0x00000013u, 0x00004ee6u, + 0x00004ee5u, 0x00004ee5u, 0x00004ee5u, 0x00004ee5u, 0x000200f9u, 0x00004436u, 0x000200f8u, 0x00004436u, + 0x000700f5u, 0x00000013u, 0x0000769cu, 0x00006bf1u, 0x0000442cu, 0x00004ee6u, 0x0000442eu, 0x000200f9u, + 0x0000449au, 0x000200f8u, 0x0000449au, 0x000d00f5u, 0x00000013u, 0x0000769bu, 0x00006bf1u, 0x00004411u, + 0x0000769cu, 0x00004436u, 0x0000769eu, 0x00004457u, 0x000076a0u, 0x00004478u, 0x000076a2u, 0x00004499u, + 0x000d00f5u, 0x00000013u, 0x000075a5u, 0x00006bf1u, 0x00004411u, 0x000075a7u, 0x00004436u, 0x000075a9u, + 0x00004457u, 0x000075abu, 0x00004478u, 0x000075adu, 0x00004499u, 0x000d00f5u, 0x00000013u, 0x000074afu, + 0x00006bf1u, 0x00004411u, 0x000074b1u, 0x00004436u, 0x000074b3u, 0x00004457u, 0x000074b5u, 0x00004478u, + 0x000074b7u, 0x00004499u, 0x000d00f5u, 0x00000013u, 0x00007344u, 0x00006bf1u, 0x00004411u, 0x00004e4au, + 0x00004436u, 0x00004f0bu, 0x00004457u, 0x00004fbdu, 0x00004478u, 0x000050c1u, 0x00004499u, 0x000200f9u, + 0x00004631u, 0x000200f8u, 0x00004631u, 0x000f00f5u, 0x00000013u, 0x0000769au, 0x00006bf1u, 0x0000440cu, + 0x0000769bu, 0x0000449au, 0x000076a4u, 0x000044c8u, 0x000076a5u, 0x0000453du, 0x000076acu, 0x000045c7u, + 0x000076b5u, 0x00004630u, 0x000f00f5u, 0x00000013u, 0x000075a4u, 0x00006bf1u, 0x0000440cu, 0x000075a5u, + 0x0000449au, 0x000075aeu, 0x000044c8u, 0x000075afu, 0x0000453du, 0x000075b6u, 0x000045c7u, 0x000075bfu, + 0x00004630u, 0x000f00f5u, 0x00000013u, 0x000074aeu, 0x00006bf1u, 0x0000440cu, 0x000074afu, 0x0000449au, + 0x000074b8u, 0x000044c8u, 0x000074b9u, 0x0000453du, 0x000074c0u, 0x000045c7u, 0x000074c9u, 0x00004630u, + 0x000f00f5u, 0x00000013u, 0x00007343u, 0x00006bf1u, 0x0000440cu, 0x00007344u, 0x0000449au, 0x000051c4u, + 0x000044c8u, 0x0000734eu, 0x0000453du, 0x00007355u, 0x000045c7u, 0x0000735eu, 0x00004630u, 0x000200f9u, + 0x00004632u, 0x000200f8u, 0x00004362u, 0x000400a8u, 0x00000063u, 0x00004364u, 0x00001b2cu, 0x000300f7u, + 0x0000436bu, 0x00000000u, 0x000400fau, 0x00004364u, 0x00004365u, 0x0000436bu, 0x000200f8u, 0x00004365u, + 0x00050050u, 0x00000058u, 0x00004368u, 0x000071f4u, 0x00004337u, 0x000200f9u, 0x0000436bu, 0x000200f8u, + 0x0000436bu, 0x000700f5u, 0x00000058u, 0x00007241u, 0x0000721bu, 0x00004362u, 0x00004368u, 0x00004365u, + 0x000600a9u, 0x00000008u, 0x000089bau, 0x00004364u, 0x00004337u, 0x00004339u, 0x000600a9u, 0x00000008u, + 0x000089bbu, 0x00004364u, 0x000071f4u, 0x000071fcu, 0x000300f7u, 0x0000440bu, 0x00000000u, 0x000b00fbu, + 0x0000434cu, 0x0000440bu, 0x00000000u, 0x00004370u, 0x00000002u, 0x00004370u, 0x00000003u, 0x00004370u, + 0x00000004u, 0x00004370u, 0x000200f8u, 0x00004370u, 0x000600a9u, 0x00000008u, 0x00004374u, 0x00004345u, + 0x000001abu, 0x000001a8u, 0x0004007cu, 0x00000006u, 0x00004375u, 0x00004374u, 0x00040071u, 0x00000006u, + 0x00004378u, 0x000089b8u, 0x0004007cu, 0x00000008u, 0x00004379u, 0x00004378u, 0x000300f7u, 0x0000440au, + 0x00000000u, 0x000700fbu, 0x00004379u, 0x0000437au, 0x00000000u, 0x000043a6u, 0x00000001u, 0x000043deu, + 0x000200f8u, 0x000043deu, 0x0004007cu, 0x000000abu, 0x000043e0u, 0x00007241u, 0x000600a9u, 0x00000008u, + 0x000043e2u, 0x0000434fu, 0x000001aeu, 0x0000019eu, 0x0004007cu, 0x00000006u, 0x000043e3u, 0x000043e2u, + 0x00050051u, 0x00000006u, 0x00004c71u, 0x000043e0u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004c72u, + 0x0000417du, 0x00004c71u, 0x00050080u, 0x00000006u, 0x00004c73u, 0x0000417bu, 0x00004c72u, 0x00050051u, + 0x00000006u, 0x00004c75u, 0x000043e0u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004c77u, 0x00004c73u, + 0x00004c75u, 0x000500c7u, 0x00000006u, 0x00004c79u, 0x00004c77u, 0x00000746u, 0x000500c7u, 0x00000006u, + 0x00004c7du, 0x00004c71u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004c7eu, 0x00004c7du, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x00004c80u, 0x00004c79u, 0x00004c7eu, 0x000500c6u, 0x00000006u, 0x00004c82u, + 0x00004c80u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004c85u, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00004c82u, 0x0004003du, 0x0000000fu, 0x00004c86u, 0x00004c85u, 0x00040071u, 0x00000006u, + 0x00004c87u, 0x00004c86u, 0x000500c4u, 0x00000006u, 0x00004c89u, 0x00004c87u, 0x000001abu, 0x00050080u, + 0x00000006u, 0x00004c8bu, 0x00004c89u, 0x000043e3u, 0x000500c6u, 0x00000006u, 0x00004c8eu, 0x00004c8bu, + 0x00004375u, 0x000500c5u, 0x00000006u, 0x00004c91u, 0x00000777u, 0x00004c8eu, 0x00080041u, 0x0000077au, + 0x00004c92u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004c91u, 0x0004003du, 0x00000011u, + 0x00004c93u, 0x00004c92u, 0x00040071u, 0x00000006u, 0x00004c94u, 0x00004c93u, 0x000300f7u, 0x00004c9cu, + 0x00000000u, 0x000400fau, 0x00001b29u, 0x00004c96u, 0x00004c99u, 0x000200f8u, 0x00004c99u, 0x00060050u, + 0x0000026fu, 0x00004cb8u, 0x00004c94u, 0x00004c94u, 0x00004c94u, 0x000500c2u, 0x0000026fu, 0x00004cb9u, + 0x00004cb8u, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00004cbbu, 0x00004cb9u, 0x0000897du, 0x000500c4u, + 0x0000026fu, 0x00004cbeu, 0x00004cbbu, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004cc1u, 0x00004cbbu, + 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00004cc2u, 0x00004cbeu, 0x00004cc1u, 0x000500c7u, 0x00000006u, + 0x00004cc4u, 0x00004c94u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004cc5u, 0x00004cc4u, 0x00000659u, + 0x00040071u, 0x0000065du, 0x00004cc7u, 0x00004cc2u, 0x0004007cu, 0x0000065cu, 0x00004cc8u, 0x00004cc7u, + 0x00040071u, 0x00000011u, 0x00004ccau, 0x00004cc5u, 0x0004007cu, 0x00000012u, 0x00004ccbu, 0x00004ccau, + 0x00050051u, 0x00000012u, 0x00004cccu, 0x00004cc8u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004ccdu, + 0x00004cc8u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00004cceu, 0x00004cc8u, 0x00000002u, 0x00070050u, + 0x00000013u, 0x00004ccfu, 0x00004cccu, 0x00004ccdu, 0x00004cceu, 0x00004ccbu, 0x000200f9u, 0x00004c9cu, + 0x000200f8u, 0x00004c96u, 0x000500c2u, 0x00000006u, 0x00004ca3u, 0x00004c94u, 0x000001dbu, 0x000500c7u, + 0x00000006u, 0x00004ca5u, 0x00004c94u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00004ca7u, 0x00004ca3u, + 0x0004007cu, 0x00000012u, 0x00004ca8u, 0x00004ca7u, 0x00040071u, 0x00000011u, 0x00004cb0u, 0x00004ca5u, + 0x0004007cu, 0x00000012u, 0x00004cb1u, 0x00004cb0u, 0x00070050u, 0x00000013u, 0x00004cb2u, 0x00004ca8u, + 0x00004ca8u, 0x00004ca8u, 0x00004cb1u, 0x000200f9u, 0x00004c9cu, 0x000200f8u, 0x00004c9cu, 0x000700f5u, + 0x00000013u, 0x00007242u, 0x00004cb2u, 0x00004c96u, 0x00004ccfu, 0x00004c99u, 0x000300f7u, 0x000043fdu, + 0x00000000u, 0x000400fau, 0x00001b6bu, 0x000043eau, 0x000043fdu, 0x000200f8u, 0x000043eau, 0x00050050u, + 0x00000058u, 0x000043edu, 0x000089bbu, 0x00004337u, 0x0004007cu, 0x000000abu, 0x000043eeu, 0x000043edu, + 0x00050051u, 0x00000006u, 0x00004cdeu, 0x000043eeu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004cdfu, + 0x0000417du, 0x00004cdeu, 0x00050080u, 0x00000006u, 0x00004ce0u, 0x0000417bu, 0x00004cdfu, 0x00050051u, + 0x00000006u, 0x00004ce2u, 0x000043eeu, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004ce4u, 0x00004ce0u, + 0x00004ce2u, 0x000500c7u, 0x00000006u, 0x00004ce6u, 0x00004ce4u, 0x00000746u, 0x000500c7u, 0x00000006u, + 0x00004ceau, 0x00004cdeu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004cebu, 0x00004ceau, 0x000001abu, + 0x000500c6u, 0x00000006u, 0x00004cedu, 0x00004ce6u, 0x00004cebu, 0x000500c6u, 0x00000006u, 0x00004cefu, + 0x00004cedu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004cf2u, 0x000006a7u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x00004cefu, 0x0004003du, 0x0000000fu, 0x00004cf3u, 0x00004cf2u, 0x00040071u, 0x00000006u, + 0x00004cf4u, 0x00004cf3u, 0x000500c4u, 0x00000006u, 0x00004cf6u, 0x00004cf4u, 0x000001abu, 0x00050080u, + 0x00000006u, 0x00004cf8u, 0x00004cf6u, 0x000002f6u, 0x000500c6u, 0x00000006u, 0x00004cfbu, 0x00004cf8u, + 0x00004375u, 0x000500c5u, 0x00000006u, 0x00004cfeu, 0x00000777u, 0x00004cfbu, 0x00080041u, 0x0000077au, + 0x00004cffu, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004cfeu, 0x0004003du, 0x00000011u, + 0x00004d00u, 0x00004cffu, 0x00040071u, 0x00000006u, 0x00004d01u, 0x00004d00u, 0x000300f7u, 0x00004d09u, + 0x00000000u, 0x000400fau, 0x00001b29u, 0x00004d03u, 0x00004d06u, 0x000200f8u, 0x00004d06u, 0x00060050u, + 0x0000026fu, 0x00004d25u, 0x00004d01u, 0x00004d01u, 0x00004d01u, 0x000500c2u, 0x0000026fu, 0x00004d26u, + 0x00004d25u, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00004d28u, 0x00004d26u, 0x0000897du, 0x000500c4u, + 0x0000026fu, 0x00004d2bu, 0x00004d28u, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004d2eu, 0x00004d28u, + 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00004d2fu, 0x00004d2bu, 0x00004d2eu, 0x000500c7u, 0x00000006u, + 0x00004d31u, 0x00004d01u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004d32u, 0x00004d31u, 0x00000659u, + 0x00040071u, 0x0000065du, 0x00004d34u, 0x00004d2fu, 0x0004007cu, 0x0000065cu, 0x00004d35u, 0x00004d34u, + 0x00040071u, 0x00000011u, 0x00004d37u, 0x00004d32u, 0x0004007cu, 0x00000012u, 0x00004d38u, 0x00004d37u, + 0x00050051u, 0x00000012u, 0x00004d39u, 0x00004d35u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004d3au, + 0x00004d35u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00004d3bu, 0x00004d35u, 0x00000002u, 0x00070050u, + 0x00000013u, 0x00004d3cu, 0x00004d39u, 0x00004d3au, 0x00004d3bu, 0x00004d38u, 0x000200f9u, 0x00004d09u, + 0x000200f8u, 0x00004d03u, 0x000500c2u, 0x00000006u, 0x00004d10u, 0x00004d01u, 0x000001dbu, 0x000500c7u, + 0x00000006u, 0x00004d12u, 0x00004d01u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00004d14u, 0x00004d10u, + 0x0004007cu, 0x00000012u, 0x00004d15u, 0x00004d14u, 0x00040071u, 0x00000011u, 0x00004d1du, 0x00004d12u, + 0x0004007cu, 0x00000012u, 0x00004d1eu, 0x00004d1du, 0x00070050u, 0x00000013u, 0x00004d1fu, 0x00004d15u, + 0x00004d15u, 0x00004d15u, 0x00004d1eu, 0x000200f9u, 0x00004d09u, 0x000200f8u, 0x00004d09u, 0x000700f5u, + 0x00000013u, 0x00007249u, 0x00004d1fu, 0x00004d03u, 0x00004d3cu, 0x00004d06u, 0x00050050u, 0x00000058u, + 0x000043f6u, 0x000071f4u, 0x000089bau, 0x0004007cu, 0x000000abu, 0x000043f7u, 0x000043f6u, 0x00050051u, + 0x00000006u, 0x00004d4bu, 0x000043f7u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004d4cu, 0x0000417du, + 0x00004d4bu, 0x00050080u, 0x00000006u, 0x00004d4du, 0x0000417bu, 0x00004d4cu, 0x00050051u, 0x00000006u, + 0x00004d4fu, 0x000043f7u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004d51u, 0x00004d4du, 0x00004d4fu, + 0x000500c7u, 0x00000006u, 0x00004d53u, 0x00004d51u, 0x00000746u, 0x000500c7u, 0x00000006u, 0x00004d57u, + 0x00004d4bu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004d58u, 0x00004d57u, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00004d5au, 0x00004d53u, 0x00004d58u, 0x000500c6u, 0x00000006u, 0x00004d5cu, 0x00004d5au, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004d5fu, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00004d5cu, 0x0004003du, 0x0000000fu, 0x00004d60u, 0x00004d5fu, 0x00040071u, 0x00000006u, 0x00004d61u, + 0x00004d60u, 0x000500c4u, 0x00000006u, 0x00004d63u, 0x00004d61u, 0x000001abu, 0x00050080u, 0x00000006u, + 0x00004d65u, 0x00004d63u, 0x000002fau, 0x000500c6u, 0x00000006u, 0x00004d68u, 0x00004d65u, 0x00004375u, + 0x000500c5u, 0x00000006u, 0x00004d6bu, 0x00000777u, 0x00004d68u, 0x00080041u, 0x0000077au, 0x00004d6cu, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004d6bu, 0x0004003du, 0x00000011u, 0x00004d6du, + 0x00004d6cu, 0x00040071u, 0x00000006u, 0x00004d6eu, 0x00004d6du, 0x000300f7u, 0x00004d76u, 0x00000000u, + 0x000400fau, 0x00001b29u, 0x00004d70u, 0x00004d73u, 0x000200f8u, 0x00004d73u, 0x00060050u, 0x0000026fu, + 0x00004d92u, 0x00004d6eu, 0x00004d6eu, 0x00004d6eu, 0x000500c2u, 0x0000026fu, 0x00004d93u, 0x00004d92u, + 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00004d95u, 0x00004d93u, 0x0000897du, 0x000500c4u, 0x0000026fu, + 0x00004d98u, 0x00004d95u, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004d9bu, 0x00004d95u, 0x0000897fu, + 0x000500c5u, 0x0000026fu, 0x00004d9cu, 0x00004d98u, 0x00004d9bu, 0x000500c7u, 0x00000006u, 0x00004d9eu, + 0x00004d6eu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004d9fu, 0x00004d9eu, 0x00000659u, 0x00040071u, + 0x0000065du, 0x00004da1u, 0x00004d9cu, 0x0004007cu, 0x0000065cu, 0x00004da2u, 0x00004da1u, 0x00040071u, + 0x00000011u, 0x00004da4u, 0x00004d9fu, 0x0004007cu, 0x00000012u, 0x00004da5u, 0x00004da4u, 0x00050051u, + 0x00000012u, 0x00004da6u, 0x00004da2u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004da7u, 0x00004da2u, + 0x00000001u, 0x00050051u, 0x00000012u, 0x00004da8u, 0x00004da2u, 0x00000002u, 0x00070050u, 0x00000013u, + 0x00004da9u, 0x00004da6u, 0x00004da7u, 0x00004da8u, 0x00004da5u, 0x000200f9u, 0x00004d76u, 0x000200f8u, + 0x00004d70u, 0x000500c2u, 0x00000006u, 0x00004d7du, 0x00004d6eu, 0x000001dbu, 0x000500c7u, 0x00000006u, + 0x00004d7fu, 0x00004d6eu, 0x00000659u, 0x00040071u, 0x00000011u, 0x00004d81u, 0x00004d7du, 0x0004007cu, + 0x00000012u, 0x00004d82u, 0x00004d81u, 0x00040071u, 0x00000011u, 0x00004d8au, 0x00004d7fu, 0x0004007cu, + 0x00000012u, 0x00004d8bu, 0x00004d8au, 0x00070050u, 0x00000013u, 0x00004d8cu, 0x00004d82u, 0x00004d82u, + 0x00004d82u, 0x00004d8bu, 0x000200f9u, 0x00004d76u, 0x000200f8u, 0x00004d76u, 0x000700f5u, 0x00000013u, + 0x0000724eu, 0x00004d8cu, 0x00004d70u, 0x00004da9u, 0x00004d73u, 0x000200f9u, 0x000043fdu, 0x000200f8u, + 0x000043fdu, 0x000700f5u, 0x00000013u, 0x000075a1u, 0x00006bf1u, 0x00004c9cu, 0x0000724eu, 0x00004d76u, + 0x000700f5u, 0x00000013u, 0x000074aau, 0x00006bf1u, 0x00004c9cu, 0x00007249u, 0x00004d76u, 0x000300f7u, + 0x00004409u, 0x00000000u, 0x000400fau, 0x00004343u, 0x000043ffu, 0x00004409u, 0x000200f8u, 0x000043ffu, + 0x00050050u, 0x00000058u, 0x00004402u, 0x000089bbu, 0x000089bau, 0x0004007cu, 0x000000abu, 0x00004403u, + 0x00004402u, 0x00050051u, 0x00000006u, 0x00004db8u, 0x00004403u, 0x00000001u, 0x00050084u, 0x00000006u, + 0x00004db9u, 0x0000417du, 0x00004db8u, 0x00050080u, 0x00000006u, 0x00004dbau, 0x0000417bu, 0x00004db9u, + 0x00050051u, 0x00000006u, 0x00004dbcu, 0x00004403u, 0x00000000u, 0x00050080u, 0x00000006u, 0x00004dbeu, + 0x00004dbau, 0x00004dbcu, 0x000500c7u, 0x00000006u, 0x00004dc0u, 0x00004dbeu, 0x00000746u, 0x000500c7u, + 0x00000006u, 0x00004dc4u, 0x00004db8u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004dc5u, 0x00004dc4u, + 0x000001abu, 0x000500c6u, 0x00000006u, 0x00004dc7u, 0x00004dc0u, 0x00004dc5u, 0x000500c6u, 0x00000006u, + 0x00004dc9u, 0x00004dc7u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004dccu, 0x000006a7u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00004dc9u, 0x0004003du, 0x0000000fu, 0x00004dcdu, 0x00004dccu, 0x00040071u, + 0x00000006u, 0x00004dceu, 0x00004dcdu, 0x000500c4u, 0x00000006u, 0x00004dd0u, 0x00004dceu, 0x000001abu, + 0x00050080u, 0x00000006u, 0x00004dd2u, 0x00004dd0u, 0x000002fdu, 0x000500c6u, 0x00000006u, 0x00004dd5u, + 0x00004dd2u, 0x00004375u, 0x000500c5u, 0x00000006u, 0x00004dd8u, 0x00000777u, 0x00004dd5u, 0x00080041u, + 0x0000077au, 0x00004dd9u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004dd8u, 0x0004003du, + 0x00000011u, 0x00004ddau, 0x00004dd9u, 0x00040071u, 0x00000006u, 0x00004ddbu, 0x00004ddau, 0x000300f7u, + 0x00004de3u, 0x00000000u, 0x000400fau, 0x00001b29u, 0x00004dddu, 0x00004de0u, 0x000200f8u, 0x00004de0u, + 0x00060050u, 0x0000026fu, 0x00004dffu, 0x00004ddbu, 0x00004ddbu, 0x00004ddbu, 0x000500c2u, 0x0000026fu, + 0x00004e00u, 0x00004dffu, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00004e02u, 0x00004e00u, 0x0000897du, + 0x000500c4u, 0x0000026fu, 0x00004e05u, 0x00004e02u, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004e08u, + 0x00004e02u, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00004e09u, 0x00004e05u, 0x00004e08u, 0x000500c7u, + 0x00000006u, 0x00004e0bu, 0x00004ddbu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004e0cu, 0x00004e0bu, + 0x00000659u, 0x00040071u, 0x0000065du, 0x00004e0eu, 0x00004e09u, 0x0004007cu, 0x0000065cu, 0x00004e0fu, + 0x00004e0eu, 0x00040071u, 0x00000011u, 0x00004e11u, 0x00004e0cu, 0x0004007cu, 0x00000012u, 0x00004e12u, + 0x00004e11u, 0x00050051u, 0x00000012u, 0x00004e13u, 0x00004e0fu, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00004e14u, 0x00004e0fu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00004e15u, 0x00004e0fu, 0x00000002u, + 0x00070050u, 0x00000013u, 0x00004e16u, 0x00004e13u, 0x00004e14u, 0x00004e15u, 0x00004e12u, 0x000200f9u, + 0x00004de3u, 0x000200f8u, 0x00004dddu, 0x000500c2u, 0x00000006u, 0x00004deau, 0x00004ddbu, 0x000001dbu, + 0x000500c7u, 0x00000006u, 0x00004decu, 0x00004ddbu, 0x00000659u, 0x00040071u, 0x00000011u, 0x00004deeu, + 0x00004deau, 0x0004007cu, 0x00000012u, 0x00004defu, 0x00004deeu, 0x00040071u, 0x00000011u, 0x00004df7u, + 0x00004decu, 0x0004007cu, 0x00000012u, 0x00004df8u, 0x00004df7u, 0x00070050u, 0x00000013u, 0x00004df9u, + 0x00004defu, 0x00004defu, 0x00004defu, 0x00004df8u, 0x000200f9u, 0x00004de3u, 0x000200f8u, 0x00004de3u, + 0x000700f5u, 0x00000013u, 0x00007254u, 0x00004df9u, 0x00004dddu, 0x00004e16u, 0x00004de0u, 0x000200f9u, + 0x00004409u, 0x000200f8u, 0x00004409u, 0x000700f5u, 0x00000013u, 0x00007695u, 0x00006bf1u, 0x000043fdu, + 0x00007254u, 0x00004de3u, 0x000200f9u, 0x0000440au, 0x000200f8u, 0x000043a6u, 0x0004007cu, 0x000000abu, + 0x000043a8u, 0x00007241u, 0x00040071u, 0x00000006u, 0x000043abu, 0x00004183u, 0x000600a9u, 0x00000008u, + 0x000043adu, 0x0000434fu, 0x000001aeu, 0x0000019eu, 0x0004007cu, 0x00000006u, 0x000043aeu, 0x000043adu, + 0x00050051u, 0x00000006u, 0x00004a82u, 0x000043a8u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004a83u, + 0x0000417du, 0x00004a82u, 0x00050080u, 0x00000006u, 0x00004a84u, 0x0000417bu, 0x00004a83u, 0x00050051u, + 0x00000006u, 0x00004a86u, 0x000043a8u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004a87u, 0x00004a86u, + 0x000001a8u, 0x00050080u, 0x00000006u, 0x00004a89u, 0x00004a84u, 0x00004a87u, 0x000500c7u, 0x00000006u, + 0x00004a8bu, 0x00004a89u, 0x00000746u, 0x000400c8u, 0x00000006u, 0x00004a8eu, 0x00004a86u, 0x000500c7u, + 0x00000006u, 0x00004a8fu, 0x00004a8eu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004a90u, 0x00004a8fu, + 0x00000694u, 0x000500c7u, 0x00000006u, 0x00004a94u, 0x00004a82u, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x00004a95u, 0x00004a94u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00004a97u, 0x00004a8bu, 0x00004a95u, + 0x000500c6u, 0x00000006u, 0x00004a99u, 0x00004a97u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004a9cu, + 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004a99u, 0x0004003du, 0x0000000fu, 0x00004a9du, + 0x00004a9cu, 0x00040071u, 0x00000006u, 0x00004a9eu, 0x00004a9du, 0x000500c2u, 0x00000006u, 0x00004aa1u, + 0x00004a9eu, 0x00004a90u, 0x000500c7u, 0x00000006u, 0x00004aa2u, 0x00004aa1u, 0x000006b1u, 0x000500c4u, + 0x00000006u, 0x00004aa4u, 0x000043abu, 0x000001b1u, 0x000500c5u, 0x00000006u, 0x00004aa6u, 0x00004aa2u, + 0x00004aa4u, 0x000500c4u, 0x00000006u, 0x00004aa8u, 0x00004aa6u, 0x000001abu, 0x00050080u, 0x00000006u, + 0x00004aaau, 0x00004aa8u, 0x000043aeu, 0x000500c6u, 0x00000006u, 0x00004aadu, 0x00004aaau, 0x00004375u, + 0x000500c5u, 0x00000006u, 0x00004ab0u, 0x00000777u, 0x00004aadu, 0x00080041u, 0x0000077au, 0x00004ab1u, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004ab0u, 0x0004003du, 0x00000011u, 0x00004ab2u, + 0x00004ab1u, 0x00040071u, 0x00000006u, 0x00004ab3u, 0x00004ab2u, 0x000300f7u, 0x00004abbu, 0x00000000u, + 0x000400fau, 0x00001b29u, 0x00004ab5u, 0x00004ab8u, 0x000200f8u, 0x00004ab8u, 0x00060050u, 0x0000026fu, + 0x00004ad7u, 0x00004ab3u, 0x00004ab3u, 0x00004ab3u, 0x000500c2u, 0x0000026fu, 0x00004ad8u, 0x00004ad7u, + 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00004adau, 0x00004ad8u, 0x0000897du, 0x000500c4u, 0x0000026fu, + 0x00004addu, 0x00004adau, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004ae0u, 0x00004adau, 0x0000897fu, + 0x000500c5u, 0x0000026fu, 0x00004ae1u, 0x00004addu, 0x00004ae0u, 0x000500c7u, 0x00000006u, 0x00004ae3u, + 0x00004ab3u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004ae4u, 0x00004ae3u, 0x00000659u, 0x00040071u, + 0x0000065du, 0x00004ae6u, 0x00004ae1u, 0x0004007cu, 0x0000065cu, 0x00004ae7u, 0x00004ae6u, 0x00040071u, + 0x00000011u, 0x00004ae9u, 0x00004ae4u, 0x0004007cu, 0x00000012u, 0x00004aeau, 0x00004ae9u, 0x00050051u, + 0x00000012u, 0x00004aebu, 0x00004ae7u, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004aecu, 0x00004ae7u, + 0x00000001u, 0x00050051u, 0x00000012u, 0x00004aedu, 0x00004ae7u, 0x00000002u, 0x00070050u, 0x00000013u, + 0x00004aeeu, 0x00004aebu, 0x00004aecu, 0x00004aedu, 0x00004aeau, 0x000200f9u, 0x00004abbu, 0x000200f8u, + 0x00004ab5u, 0x000500c2u, 0x00000006u, 0x00004ac2u, 0x00004ab3u, 0x000001dbu, 0x000500c7u, 0x00000006u, + 0x00004ac4u, 0x00004ab3u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00004ac6u, 0x00004ac2u, 0x0004007cu, + 0x00000012u, 0x00004ac7u, 0x00004ac6u, 0x00040071u, 0x00000011u, 0x00004acfu, 0x00004ac4u, 0x0004007cu, + 0x00000012u, 0x00004ad0u, 0x00004acfu, 0x00070050u, 0x00000013u, 0x00004ad1u, 0x00004ac7u, 0x00004ac7u, + 0x00004ac7u, 0x00004ad0u, 0x000200f9u, 0x00004abbu, 0x000200f8u, 0x00004abbu, 0x000700f5u, 0x00000013u, + 0x00007255u, 0x00004ad1u, 0x00004ab5u, 0x00004aeeu, 0x00004ab8u, 0x000300f7u, 0x000043ceu, 0x00000000u, + 0x000400fau, 0x00001b6bu, 0x000043b5u, 0x000043ceu, 0x000200f8u, 0x000043b5u, 0x00050050u, 0x00000058u, + 0x000043b8u, 0x000089bbu, 0x00004337u, 0x0004007cu, 0x000000abu, 0x000043b9u, 0x000043b8u, 0x00050051u, + 0x00000006u, 0x00004afeu, 0x000043b9u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004affu, 0x0000417du, + 0x00004afeu, 0x00050080u, 0x00000006u, 0x00004b00u, 0x0000417bu, 0x00004affu, 0x00050051u, 0x00000006u, + 0x00004b02u, 0x000043b9u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004b03u, 0x00004b02u, 0x000001a8u, + 0x00050080u, 0x00000006u, 0x00004b05u, 0x00004b00u, 0x00004b03u, 0x000500c7u, 0x00000006u, 0x00004b07u, + 0x00004b05u, 0x00000746u, 0x000400c8u, 0x00000006u, 0x00004b0au, 0x00004b02u, 0x000500c7u, 0x00000006u, + 0x00004b0bu, 0x00004b0au, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004b0cu, 0x00004b0bu, 0x00000694u, + 0x000500c7u, 0x00000006u, 0x00004b10u, 0x00004afeu, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004b11u, + 0x00004b10u, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00004b13u, 0x00004b07u, 0x00004b11u, 0x000500c6u, + 0x00000006u, 0x00004b15u, 0x00004b13u, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004b18u, 0x000006a7u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004b15u, 0x0004003du, 0x0000000fu, 0x00004b19u, 0x00004b18u, + 0x00040071u, 0x00000006u, 0x00004b1au, 0x00004b19u, 0x000500c2u, 0x00000006u, 0x00004b1du, 0x00004b1au, + 0x00004b0cu, 0x000500c7u, 0x00000006u, 0x00004b1eu, 0x00004b1du, 0x000006b1u, 0x000500c5u, 0x00000006u, + 0x00004b22u, 0x00004b1eu, 0x00004aa4u, 0x000500c4u, 0x00000006u, 0x00004b24u, 0x00004b22u, 0x000001abu, + 0x00050080u, 0x00000006u, 0x00004b26u, 0x00004b24u, 0x000002f6u, 0x000500c6u, 0x00000006u, 0x00004b29u, + 0x00004b26u, 0x00004375u, 0x000500c5u, 0x00000006u, 0x00004b2cu, 0x00000777u, 0x00004b29u, 0x00080041u, + 0x0000077au, 0x00004b2du, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004b2cu, 0x0004003du, + 0x00000011u, 0x00004b2eu, 0x00004b2du, 0x00040071u, 0x00000006u, 0x00004b2fu, 0x00004b2eu, 0x000300f7u, + 0x00004b37u, 0x00000000u, 0x000400fau, 0x00001b29u, 0x00004b31u, 0x00004b34u, 0x000200f8u, 0x00004b34u, + 0x00060050u, 0x0000026fu, 0x00004b53u, 0x00004b2fu, 0x00004b2fu, 0x00004b2fu, 0x000500c2u, 0x0000026fu, + 0x00004b54u, 0x00004b53u, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00004b56u, 0x00004b54u, 0x0000897du, + 0x000500c4u, 0x0000026fu, 0x00004b59u, 0x00004b56u, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004b5cu, + 0x00004b56u, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00004b5du, 0x00004b59u, 0x00004b5cu, 0x000500c7u, + 0x00000006u, 0x00004b5fu, 0x00004b2fu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004b60u, 0x00004b5fu, + 0x00000659u, 0x00040071u, 0x0000065du, 0x00004b62u, 0x00004b5du, 0x0004007cu, 0x0000065cu, 0x00004b63u, + 0x00004b62u, 0x00040071u, 0x00000011u, 0x00004b65u, 0x00004b60u, 0x0004007cu, 0x00000012u, 0x00004b66u, + 0x00004b65u, 0x00050051u, 0x00000012u, 0x00004b67u, 0x00004b63u, 0x00000000u, 0x00050051u, 0x00000012u, + 0x00004b68u, 0x00004b63u, 0x00000001u, 0x00050051u, 0x00000012u, 0x00004b69u, 0x00004b63u, 0x00000002u, + 0x00070050u, 0x00000013u, 0x00004b6au, 0x00004b67u, 0x00004b68u, 0x00004b69u, 0x00004b66u, 0x000200f9u, + 0x00004b37u, 0x000200f8u, 0x00004b31u, 0x000500c2u, 0x00000006u, 0x00004b3eu, 0x00004b2fu, 0x000001dbu, + 0x000500c7u, 0x00000006u, 0x00004b40u, 0x00004b2fu, 0x00000659u, 0x00040071u, 0x00000011u, 0x00004b42u, + 0x00004b3eu, 0x0004007cu, 0x00000012u, 0x00004b43u, 0x00004b42u, 0x00040071u, 0x00000011u, 0x00004b4bu, + 0x00004b40u, 0x0004007cu, 0x00000012u, 0x00004b4cu, 0x00004b4bu, 0x00070050u, 0x00000013u, 0x00004b4du, + 0x00004b43u, 0x00004b43u, 0x00004b43u, 0x00004b4cu, 0x000200f9u, 0x00004b37u, 0x000200f8u, 0x00004b37u, + 0x000700f5u, 0x00000013u, 0x00007258u, 0x00004b4du, 0x00004b31u, 0x00004b6au, 0x00004b34u, 0x00050050u, + 0x00000058u, 0x000043c4u, 0x000071f4u, 0x000089bau, 0x0004007cu, 0x000000abu, 0x000043c5u, 0x000043c4u, + 0x00050051u, 0x00000006u, 0x00004b7au, 0x000043c5u, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004b7bu, + 0x0000417du, 0x00004b7au, 0x00050080u, 0x00000006u, 0x00004b7cu, 0x0000417bu, 0x00004b7bu, 0x00050051u, + 0x00000006u, 0x00004b7eu, 0x000043c5u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00004b7fu, 0x00004b7eu, + 0x000001a8u, 0x00050080u, 0x00000006u, 0x00004b81u, 0x00004b7cu, 0x00004b7fu, 0x000500c7u, 0x00000006u, + 0x00004b83u, 0x00004b81u, 0x00000746u, 0x000400c8u, 0x00000006u, 0x00004b86u, 0x00004b7eu, 0x000500c7u, + 0x00000006u, 0x00004b87u, 0x00004b86u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004b88u, 0x00004b87u, + 0x00000694u, 0x000500c7u, 0x00000006u, 0x00004b8cu, 0x00004b7au, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x00004b8du, 0x00004b8cu, 0x000001abu, 0x000500c6u, 0x00000006u, 0x00004b8fu, 0x00004b83u, 0x00004b8du, + 0x000500c6u, 0x00000006u, 0x00004b91u, 0x00004b8fu, 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004b94u, + 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004b91u, 0x0004003du, 0x0000000fu, 0x00004b95u, + 0x00004b94u, 0x00040071u, 0x00000006u, 0x00004b96u, 0x00004b95u, 0x000500c2u, 0x00000006u, 0x00004b99u, + 0x00004b96u, 0x00004b88u, 0x000500c7u, 0x00000006u, 0x00004b9au, 0x00004b99u, 0x000006b1u, 0x000500c5u, + 0x00000006u, 0x00004b9eu, 0x00004b9au, 0x00004aa4u, 0x000500c4u, 0x00000006u, 0x00004ba0u, 0x00004b9eu, + 0x000001abu, 0x00050080u, 0x00000006u, 0x00004ba2u, 0x00004ba0u, 0x000002fau, 0x000500c6u, 0x00000006u, + 0x00004ba5u, 0x00004ba2u, 0x00004375u, 0x000500c5u, 0x00000006u, 0x00004ba8u, 0x00000777u, 0x00004ba5u, + 0x00080041u, 0x0000077au, 0x00004ba9u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004ba8u, + 0x0004003du, 0x00000011u, 0x00004baau, 0x00004ba9u, 0x00040071u, 0x00000006u, 0x00004babu, 0x00004baau, + 0x000300f7u, 0x00004bb3u, 0x00000000u, 0x000400fau, 0x00001b29u, 0x00004badu, 0x00004bb0u, 0x000200f8u, + 0x00004bb0u, 0x00060050u, 0x0000026fu, 0x00004bcfu, 0x00004babu, 0x00004babu, 0x00004babu, 0x000500c2u, + 0x0000026fu, 0x00004bd0u, 0x00004bcfu, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x00004bd2u, 0x00004bd0u, + 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00004bd5u, 0x00004bd2u, 0x0000897eu, 0x000500c2u, 0x0000026fu, + 0x00004bd8u, 0x00004bd2u, 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00004bd9u, 0x00004bd5u, 0x00004bd8u, + 0x000500c7u, 0x00000006u, 0x00004bdbu, 0x00004babu, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004bdcu, + 0x00004bdbu, 0x00000659u, 0x00040071u, 0x0000065du, 0x00004bdeu, 0x00004bd9u, 0x0004007cu, 0x0000065cu, + 0x00004bdfu, 0x00004bdeu, 0x00040071u, 0x00000011u, 0x00004be1u, 0x00004bdcu, 0x0004007cu, 0x00000012u, + 0x00004be2u, 0x00004be1u, 0x00050051u, 0x00000012u, 0x00004be3u, 0x00004bdfu, 0x00000000u, 0x00050051u, + 0x00000012u, 0x00004be4u, 0x00004bdfu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00004be5u, 0x00004bdfu, + 0x00000002u, 0x00070050u, 0x00000013u, 0x00004be6u, 0x00004be3u, 0x00004be4u, 0x00004be5u, 0x00004be2u, + 0x000200f9u, 0x00004bb3u, 0x000200f8u, 0x00004badu, 0x000500c2u, 0x00000006u, 0x00004bbau, 0x00004babu, + 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00004bbcu, 0x00004babu, 0x00000659u, 0x00040071u, 0x00000011u, + 0x00004bbeu, 0x00004bbau, 0x0004007cu, 0x00000012u, 0x00004bbfu, 0x00004bbeu, 0x00040071u, 0x00000011u, + 0x00004bc7u, 0x00004bbcu, 0x0004007cu, 0x00000012u, 0x00004bc8u, 0x00004bc7u, 0x00070050u, 0x00000013u, + 0x00004bc9u, 0x00004bbfu, 0x00004bbfu, 0x00004bbfu, 0x00004bc8u, 0x000200f9u, 0x00004bb3u, 0x000200f8u, + 0x00004bb3u, 0x000700f5u, 0x00000013u, 0x0000725bu, 0x00004bc9u, 0x00004badu, 0x00004be6u, 0x00004bb0u, + 0x000200f9u, 0x000043ceu, 0x000200f8u, 0x000043ceu, 0x000700f5u, 0x00000013u, 0x0000759du, 0x00006bf1u, + 0x00004abbu, 0x0000725bu, 0x00004bb3u, 0x000700f5u, 0x00000013u, 0x000074a5u, 0x00006bf1u, 0x00004abbu, + 0x00007258u, 0x00004bb3u, 0x000300f7u, 0x000043ddu, 0x00000000u, 0x000400fau, 0x00004343u, 0x000043d0u, + 0x000043ddu, 0x000200f8u, 0x000043d0u, 0x00050050u, 0x00000058u, 0x000043d3u, 0x000089bbu, 0x000089bau, + 0x0004007cu, 0x000000abu, 0x000043d4u, 0x000043d3u, 0x00050051u, 0x00000006u, 0x00004bf6u, 0x000043d4u, + 0x00000001u, 0x00050084u, 0x00000006u, 0x00004bf7u, 0x0000417du, 0x00004bf6u, 0x00050080u, 0x00000006u, + 0x00004bf8u, 0x0000417bu, 0x00004bf7u, 0x00050051u, 0x00000006u, 0x00004bfau, 0x000043d4u, 0x00000000u, + 0x000500c2u, 0x00000006u, 0x00004bfbu, 0x00004bfau, 0x000001a8u, 0x00050080u, 0x00000006u, 0x00004bfdu, + 0x00004bf8u, 0x00004bfbu, 0x000500c7u, 0x00000006u, 0x00004bffu, 0x00004bfdu, 0x00000746u, 0x000400c8u, + 0x00000006u, 0x00004c02u, 0x00004bfau, 0x000500c7u, 0x00000006u, 0x00004c03u, 0x00004c02u, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x00004c04u, 0x00004c03u, 0x00000694u, 0x000500c7u, 0x00000006u, 0x00004c08u, + 0x00004bf6u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004c09u, 0x00004c08u, 0x000001abu, 0x000500c6u, + 0x00000006u, 0x00004c0bu, 0x00004bffu, 0x00004c09u, 0x000500c6u, 0x00000006u, 0x00004c0du, 0x00004c0bu, + 0x000002fdu, 0x00080041u, 0x000006aau, 0x00004c10u, 0x000006a7u, 0x0000019eu, 0x00001b03u, 0x0000019eu, + 0x00004c0du, 0x0004003du, 0x0000000fu, 0x00004c11u, 0x00004c10u, 0x00040071u, 0x00000006u, 0x00004c12u, + 0x00004c11u, 0x000500c2u, 0x00000006u, 0x00004c15u, 0x00004c12u, 0x00004c04u, 0x000500c7u, 0x00000006u, + 0x00004c16u, 0x00004c15u, 0x000006b1u, 0x000500c5u, 0x00000006u, 0x00004c1au, 0x00004c16u, 0x00004aa4u, + 0x000500c4u, 0x00000006u, 0x00004c1cu, 0x00004c1au, 0x000001abu, 0x00050080u, 0x00000006u, 0x00004c1eu, + 0x00004c1cu, 0x000002fdu, 0x000500c6u, 0x00000006u, 0x00004c21u, 0x00004c1eu, 0x00004375u, 0x000500c5u, + 0x00000006u, 0x00004c24u, 0x00000777u, 0x00004c21u, 0x00080041u, 0x0000077au, 0x00004c25u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004c24u, 0x0004003du, 0x00000011u, 0x00004c26u, 0x00004c25u, + 0x00040071u, 0x00000006u, 0x00004c27u, 0x00004c26u, 0x000300f7u, 0x00004c2fu, 0x00000000u, 0x000400fau, + 0x00001b29u, 0x00004c29u, 0x00004c2cu, 0x000200f8u, 0x00004c2cu, 0x00060050u, 0x0000026fu, 0x00004c4bu, + 0x00004c27u, 0x00004c27u, 0x00004c27u, 0x000500c2u, 0x0000026fu, 0x00004c4cu, 0x00004c4bu, 0x0000064au, + 0x000500c7u, 0x0000026fu, 0x00004c4eu, 0x00004c4cu, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00004c51u, + 0x00004c4eu, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004c54u, 0x00004c4eu, 0x0000897fu, 0x000500c5u, + 0x0000026fu, 0x00004c55u, 0x00004c51u, 0x00004c54u, 0x000500c7u, 0x00000006u, 0x00004c57u, 0x00004c27u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004c58u, 0x00004c57u, 0x00000659u, 0x00040071u, 0x0000065du, + 0x00004c5au, 0x00004c55u, 0x0004007cu, 0x0000065cu, 0x00004c5bu, 0x00004c5au, 0x00040071u, 0x00000011u, + 0x00004c5du, 0x00004c58u, 0x0004007cu, 0x00000012u, 0x00004c5eu, 0x00004c5du, 0x00050051u, 0x00000012u, + 0x00004c5fu, 0x00004c5bu, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004c60u, 0x00004c5bu, 0x00000001u, + 0x00050051u, 0x00000012u, 0x00004c61u, 0x00004c5bu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00004c62u, + 0x00004c5fu, 0x00004c60u, 0x00004c61u, 0x00004c5eu, 0x000200f9u, 0x00004c2fu, 0x000200f8u, 0x00004c29u, + 0x000500c2u, 0x00000006u, 0x00004c36u, 0x00004c27u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00004c38u, + 0x00004c27u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00004c3au, 0x00004c36u, 0x0004007cu, 0x00000012u, + 0x00004c3bu, 0x00004c3au, 0x00040071u, 0x00000011u, 0x00004c43u, 0x00004c38u, 0x0004007cu, 0x00000012u, + 0x00004c44u, 0x00004c43u, 0x00070050u, 0x00000013u, 0x00004c45u, 0x00004c3bu, 0x00004c3bu, 0x00004c3bu, + 0x00004c44u, 0x000200f9u, 0x00004c2fu, 0x000200f8u, 0x00004c2fu, 0x000700f5u, 0x00000013u, 0x00007261u, + 0x00004c45u, 0x00004c29u, 0x00004c62u, 0x00004c2cu, 0x000200f9u, 0x000043ddu, 0x000200f8u, 0x000043ddu, + 0x000700f5u, 0x00000013u, 0x00007690u, 0x00006bf1u, 0x000043ceu, 0x00007261u, 0x00004c2fu, 0x000200f9u, + 0x0000440au, 0x000200f8u, 0x0000437au, 0x0004007cu, 0x000000abu, 0x0000437cu, 0x00007241u, 0x000600a9u, + 0x00000008u, 0x0000437eu, 0x0000434fu, 0x000001aeu, 0x0000019eu, 0x0004007cu, 0x00000006u, 0x0000437fu, + 0x0000437eu, 0x00050051u, 0x00000006u, 0x000048c1u, 0x0000437cu, 0x00000001u, 0x00050084u, 0x00000006u, + 0x000048c2u, 0x0000417du, 0x000048c1u, 0x00050080u, 0x00000006u, 0x000048c3u, 0x0000417bu, 0x000048c2u, + 0x00050051u, 0x00000006u, 0x000048c5u, 0x0000437cu, 0x00000000u, 0x00050084u, 0x00000006u, 0x000048c6u, + 0x000048c5u, 0x000002fau, 0x00050080u, 0x00000006u, 0x000048c8u, 0x000048c3u, 0x000048c6u, 0x000500c7u, + 0x00000006u, 0x000048cau, 0x000048c8u, 0x00000746u, 0x000500c2u, 0x00000006u, 0x000048ccu, 0x000048cau, + 0x000001a8u, 0x000500c7u, 0x00000006u, 0x000048cfu, 0x000048c1u, 0x000002f6u, 0x000500c4u, 0x00000006u, + 0x000048d0u, 0x000048cfu, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x000048d2u, 0x000048ccu, 0x000048d0u, + 0x000500c6u, 0x00000006u, 0x000048d4u, 0x000048d2u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x000048d7u, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000048d4u, 0x0004003du, 0x00000011u, 0x000048d8u, + 0x000048d7u, 0x00040071u, 0x00000006u, 0x000048d9u, 0x000048d8u, 0x000500c2u, 0x00000006u, 0x000048dbu, + 0x000048d9u, 0x000001b7u, 0x000500c7u, 0x00000006u, 0x000048dcu, 0x000048dbu, 0x00000818u, 0x00050080u, + 0x00000006u, 0x000048deu, 0x000048dcu, 0x0000437fu, 0x000500c6u, 0x00000006u, 0x000048e1u, 0x000048deu, + 0x00004375u, 0x000500c5u, 0x00000006u, 0x000048e4u, 0x00000777u, 0x000048e1u, 0x00080041u, 0x0000077au, + 0x000048e5u, 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x000048e4u, 0x0004003du, 0x00000011u, + 0x000048e6u, 0x000048e5u, 0x00040071u, 0x00000006u, 0x000048e7u, 0x000048e6u, 0x000300f7u, 0x000048efu, + 0x00000000u, 0x000400fau, 0x00001b29u, 0x000048e9u, 0x000048ecu, 0x000200f8u, 0x000048ecu, 0x00060050u, + 0x0000026fu, 0x0000490bu, 0x000048e7u, 0x000048e7u, 0x000048e7u, 0x000500c2u, 0x0000026fu, 0x0000490cu, + 0x0000490bu, 0x0000064au, 0x000500c7u, 0x0000026fu, 0x0000490eu, 0x0000490cu, 0x0000897du, 0x000500c4u, + 0x0000026fu, 0x00004911u, 0x0000490eu, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004914u, 0x0000490eu, + 0x0000897fu, 0x000500c5u, 0x0000026fu, 0x00004915u, 0x00004911u, 0x00004914u, 0x000500c7u, 0x00000006u, + 0x00004917u, 0x000048e7u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004918u, 0x00004917u, 0x00000659u, + 0x00040071u, 0x0000065du, 0x0000491au, 0x00004915u, 0x0004007cu, 0x0000065cu, 0x0000491bu, 0x0000491au, + 0x00040071u, 0x00000011u, 0x0000491du, 0x00004918u, 0x0004007cu, 0x00000012u, 0x0000491eu, 0x0000491du, + 0x00050051u, 0x00000012u, 0x0000491fu, 0x0000491bu, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004920u, + 0x0000491bu, 0x00000001u, 0x00050051u, 0x00000012u, 0x00004921u, 0x0000491bu, 0x00000002u, 0x00070050u, + 0x00000013u, 0x00004922u, 0x0000491fu, 0x00004920u, 0x00004921u, 0x0000491eu, 0x000200f9u, 0x000048efu, + 0x000200f8u, 0x000048e9u, 0x000500c2u, 0x00000006u, 0x000048f6u, 0x000048e7u, 0x000001dbu, 0x000500c7u, + 0x00000006u, 0x000048f8u, 0x000048e7u, 0x00000659u, 0x00040071u, 0x00000011u, 0x000048fau, 0x000048f6u, + 0x0004007cu, 0x00000012u, 0x000048fbu, 0x000048fau, 0x00040071u, 0x00000011u, 0x00004903u, 0x000048f8u, + 0x0004007cu, 0x00000012u, 0x00004904u, 0x00004903u, 0x00070050u, 0x00000013u, 0x00004905u, 0x000048fbu, + 0x000048fbu, 0x000048fbu, 0x00004904u, 0x000200f9u, 0x000048efu, 0x000200f8u, 0x000048efu, 0x000700f5u, + 0x00000013u, 0x00007262u, 0x00004905u, 0x000048e9u, 0x00004922u, 0x000048ecu, 0x000300f7u, 0x00004399u, + 0x00000000u, 0x000400fau, 0x00001b6bu, 0x00004386u, 0x00004399u, 0x000200f8u, 0x00004386u, 0x00050050u, + 0x00000058u, 0x00004389u, 0x000089bbu, 0x00004337u, 0x0004007cu, 0x000000abu, 0x0000438au, 0x00004389u, + 0x00050051u, 0x00000006u, 0x00004931u, 0x0000438au, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004932u, + 0x0000417du, 0x00004931u, 0x00050080u, 0x00000006u, 0x00004933u, 0x0000417bu, 0x00004932u, 0x00050051u, + 0x00000006u, 0x00004935u, 0x0000438au, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004936u, 0x00004935u, + 0x000002fau, 0x00050080u, 0x00000006u, 0x00004938u, 0x00004933u, 0x00004936u, 0x000500c7u, 0x00000006u, + 0x0000493au, 0x00004938u, 0x00000746u, 0x000500c2u, 0x00000006u, 0x0000493cu, 0x0000493au, 0x000001a8u, + 0x000500c7u, 0x00000006u, 0x0000493fu, 0x00004931u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004940u, + 0x0000493fu, 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00004942u, 0x0000493cu, 0x00004940u, 0x000500c6u, + 0x00000006u, 0x00004944u, 0x00004942u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00004947u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004944u, 0x0004003du, 0x00000011u, 0x00004948u, 0x00004947u, + 0x00040071u, 0x00000006u, 0x00004949u, 0x00004948u, 0x000500c2u, 0x00000006u, 0x0000494bu, 0x00004949u, + 0x000001b7u, 0x000500c7u, 0x00000006u, 0x0000494cu, 0x0000494bu, 0x00000818u, 0x00050080u, 0x00000006u, + 0x0000494eu, 0x0000494cu, 0x000002f6u, 0x000500c6u, 0x00000006u, 0x00004951u, 0x0000494eu, 0x00004375u, + 0x000500c5u, 0x00000006u, 0x00004954u, 0x00000777u, 0x00004951u, 0x00080041u, 0x0000077au, 0x00004955u, + 0x00000775u, 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004954u, 0x0004003du, 0x00000011u, 0x00004956u, + 0x00004955u, 0x00040071u, 0x00000006u, 0x00004957u, 0x00004956u, 0x000300f7u, 0x0000495fu, 0x00000000u, + 0x000400fau, 0x00001b29u, 0x00004959u, 0x0000495cu, 0x000200f8u, 0x0000495cu, 0x00060050u, 0x0000026fu, + 0x0000497bu, 0x00004957u, 0x00004957u, 0x00004957u, 0x000500c2u, 0x0000026fu, 0x0000497cu, 0x0000497bu, + 0x0000064au, 0x000500c7u, 0x0000026fu, 0x0000497eu, 0x0000497cu, 0x0000897du, 0x000500c4u, 0x0000026fu, + 0x00004981u, 0x0000497eu, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004984u, 0x0000497eu, 0x0000897fu, + 0x000500c5u, 0x0000026fu, 0x00004985u, 0x00004981u, 0x00004984u, 0x000500c7u, 0x00000006u, 0x00004987u, + 0x00004957u, 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004988u, 0x00004987u, 0x00000659u, 0x00040071u, + 0x0000065du, 0x0000498au, 0x00004985u, 0x0004007cu, 0x0000065cu, 0x0000498bu, 0x0000498au, 0x00040071u, + 0x00000011u, 0x0000498du, 0x00004988u, 0x0004007cu, 0x00000012u, 0x0000498eu, 0x0000498du, 0x00050051u, + 0x00000012u, 0x0000498fu, 0x0000498bu, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004990u, 0x0000498bu, + 0x00000001u, 0x00050051u, 0x00000012u, 0x00004991u, 0x0000498bu, 0x00000002u, 0x00070050u, 0x00000013u, + 0x00004992u, 0x0000498fu, 0x00004990u, 0x00004991u, 0x0000498eu, 0x000200f9u, 0x0000495fu, 0x000200f8u, + 0x00004959u, 0x000500c2u, 0x00000006u, 0x00004966u, 0x00004957u, 0x000001dbu, 0x000500c7u, 0x00000006u, + 0x00004968u, 0x00004957u, 0x00000659u, 0x00040071u, 0x00000011u, 0x0000496au, 0x00004966u, 0x0004007cu, + 0x00000012u, 0x0000496bu, 0x0000496au, 0x00040071u, 0x00000011u, 0x00004973u, 0x00004968u, 0x0004007cu, + 0x00000012u, 0x00004974u, 0x00004973u, 0x00070050u, 0x00000013u, 0x00004975u, 0x0000496bu, 0x0000496bu, + 0x0000496bu, 0x00004974u, 0x000200f9u, 0x0000495fu, 0x000200f8u, 0x0000495fu, 0x000700f5u, 0x00000013u, + 0x00007265u, 0x00004975u, 0x00004959u, 0x00004992u, 0x0000495cu, 0x00050050u, 0x00000058u, 0x00004392u, + 0x000071f4u, 0x000089bau, 0x0004007cu, 0x000000abu, 0x00004393u, 0x00004392u, 0x00050051u, 0x00000006u, + 0x000049a1u, 0x00004393u, 0x00000001u, 0x00050084u, 0x00000006u, 0x000049a2u, 0x0000417du, 0x000049a1u, + 0x00050080u, 0x00000006u, 0x000049a3u, 0x0000417bu, 0x000049a2u, 0x00050051u, 0x00000006u, 0x000049a5u, + 0x00004393u, 0x00000000u, 0x00050084u, 0x00000006u, 0x000049a6u, 0x000049a5u, 0x000002fau, 0x00050080u, + 0x00000006u, 0x000049a8u, 0x000049a3u, 0x000049a6u, 0x000500c7u, 0x00000006u, 0x000049aau, 0x000049a8u, + 0x00000746u, 0x000500c2u, 0x00000006u, 0x000049acu, 0x000049aau, 0x000001a8u, 0x000500c7u, 0x00000006u, + 0x000049afu, 0x000049a1u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x000049b0u, 0x000049afu, 0x000001a8u, + 0x000500c6u, 0x00000006u, 0x000049b2u, 0x000049acu, 0x000049b0u, 0x000500c6u, 0x00000006u, 0x000049b4u, + 0x000049b2u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x000049b7u, 0x00000775u, 0x0000019eu, 0x00001b03u, + 0x0000019eu, 0x000049b4u, 0x0004003du, 0x00000011u, 0x000049b8u, 0x000049b7u, 0x00040071u, 0x00000006u, + 0x000049b9u, 0x000049b8u, 0x000500c2u, 0x00000006u, 0x000049bbu, 0x000049b9u, 0x000001b7u, 0x000500c7u, + 0x00000006u, 0x000049bcu, 0x000049bbu, 0x00000818u, 0x00050080u, 0x00000006u, 0x000049beu, 0x000049bcu, + 0x000002fau, 0x000500c6u, 0x00000006u, 0x000049c1u, 0x000049beu, 0x00004375u, 0x000500c5u, 0x00000006u, + 0x000049c4u, 0x00000777u, 0x000049c1u, 0x00080041u, 0x0000077au, 0x000049c5u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x000049c4u, 0x0004003du, 0x00000011u, 0x000049c6u, 0x000049c5u, 0x00040071u, + 0x00000006u, 0x000049c7u, 0x000049c6u, 0x000300f7u, 0x000049cfu, 0x00000000u, 0x000400fau, 0x00001b29u, + 0x000049c9u, 0x000049ccu, 0x000200f8u, 0x000049ccu, 0x00060050u, 0x0000026fu, 0x000049ebu, 0x000049c7u, + 0x000049c7u, 0x000049c7u, 0x000500c2u, 0x0000026fu, 0x000049ecu, 0x000049ebu, 0x0000064au, 0x000500c7u, + 0x0000026fu, 0x000049eeu, 0x000049ecu, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x000049f1u, 0x000049eeu, + 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x000049f4u, 0x000049eeu, 0x0000897fu, 0x000500c5u, 0x0000026fu, + 0x000049f5u, 0x000049f1u, 0x000049f4u, 0x000500c7u, 0x00000006u, 0x000049f7u, 0x000049c7u, 0x000002f6u, + 0x00050084u, 0x00000006u, 0x000049f8u, 0x000049f7u, 0x00000659u, 0x00040071u, 0x0000065du, 0x000049fau, + 0x000049f5u, 0x0004007cu, 0x0000065cu, 0x000049fbu, 0x000049fau, 0x00040071u, 0x00000011u, 0x000049fdu, + 0x000049f8u, 0x0004007cu, 0x00000012u, 0x000049feu, 0x000049fdu, 0x00050051u, 0x00000012u, 0x000049ffu, + 0x000049fbu, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004a00u, 0x000049fbu, 0x00000001u, 0x00050051u, + 0x00000012u, 0x00004a01u, 0x000049fbu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00004a02u, 0x000049ffu, + 0x00004a00u, 0x00004a01u, 0x000049feu, 0x000200f9u, 0x000049cfu, 0x000200f8u, 0x000049c9u, 0x000500c2u, + 0x00000006u, 0x000049d6u, 0x000049c7u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x000049d8u, 0x000049c7u, + 0x00000659u, 0x00040071u, 0x00000011u, 0x000049dau, 0x000049d6u, 0x0004007cu, 0x00000012u, 0x000049dbu, + 0x000049dau, 0x00040071u, 0x00000011u, 0x000049e3u, 0x000049d8u, 0x0004007cu, 0x00000012u, 0x000049e4u, + 0x000049e3u, 0x00070050u, 0x00000013u, 0x000049e5u, 0x000049dbu, 0x000049dbu, 0x000049dbu, 0x000049e4u, + 0x000200f9u, 0x000049cfu, 0x000200f8u, 0x000049cfu, 0x000700f5u, 0x00000013u, 0x00007268u, 0x000049e5u, + 0x000049c9u, 0x00004a02u, 0x000049ccu, 0x000200f9u, 0x00004399u, 0x000200f8u, 0x00004399u, 0x000700f5u, + 0x00000013u, 0x00007598u, 0x00006bf1u, 0x000048efu, 0x00007268u, 0x000049cfu, 0x000700f5u, 0x00000013u, + 0x0000749fu, 0x00006bf1u, 0x000048efu, 0x00007265u, 0x000049cfu, 0x000300f7u, 0x000043a5u, 0x00000000u, + 0x000400fau, 0x00004343u, 0x0000439bu, 0x000043a5u, 0x000200f8u, 0x0000439bu, 0x00050050u, 0x00000058u, + 0x0000439eu, 0x000089bbu, 0x000089bau, 0x0004007cu, 0x000000abu, 0x0000439fu, 0x0000439eu, 0x00050051u, + 0x00000006u, 0x00004a11u, 0x0000439fu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00004a12u, 0x0000417du, + 0x00004a11u, 0x00050080u, 0x00000006u, 0x00004a13u, 0x0000417bu, 0x00004a12u, 0x00050051u, 0x00000006u, + 0x00004a15u, 0x0000439fu, 0x00000000u, 0x00050084u, 0x00000006u, 0x00004a16u, 0x00004a15u, 0x000002fau, + 0x00050080u, 0x00000006u, 0x00004a18u, 0x00004a13u, 0x00004a16u, 0x000500c7u, 0x00000006u, 0x00004a1au, + 0x00004a18u, 0x00000746u, 0x000500c2u, 0x00000006u, 0x00004a1cu, 0x00004a1au, 0x000001a8u, 0x000500c7u, + 0x00000006u, 0x00004a1fu, 0x00004a11u, 0x000002f6u, 0x000500c4u, 0x00000006u, 0x00004a20u, 0x00004a1fu, + 0x000001a8u, 0x000500c6u, 0x00000006u, 0x00004a22u, 0x00004a1cu, 0x00004a20u, 0x000500c6u, 0x00000006u, + 0x00004a24u, 0x00004a22u, 0x000002f6u, 0x00080041u, 0x0000077au, 0x00004a27u, 0x00000775u, 0x0000019eu, + 0x00001b03u, 0x0000019eu, 0x00004a24u, 0x0004003du, 0x00000011u, 0x00004a28u, 0x00004a27u, 0x00040071u, + 0x00000006u, 0x00004a29u, 0x00004a28u, 0x000500c2u, 0x00000006u, 0x00004a2bu, 0x00004a29u, 0x000001b7u, + 0x000500c7u, 0x00000006u, 0x00004a2cu, 0x00004a2bu, 0x00000818u, 0x00050080u, 0x00000006u, 0x00004a2eu, + 0x00004a2cu, 0x000002fdu, 0x000500c6u, 0x00000006u, 0x00004a31u, 0x00004a2eu, 0x00004375u, 0x000500c5u, + 0x00000006u, 0x00004a34u, 0x00000777u, 0x00004a31u, 0x00080041u, 0x0000077au, 0x00004a35u, 0x00000775u, + 0x0000019eu, 0x00001b03u, 0x0000019eu, 0x00004a34u, 0x0004003du, 0x00000011u, 0x00004a36u, 0x00004a35u, + 0x00040071u, 0x00000006u, 0x00004a37u, 0x00004a36u, 0x000300f7u, 0x00004a3fu, 0x00000000u, 0x000400fau, + 0x00001b29u, 0x00004a39u, 0x00004a3cu, 0x000200f8u, 0x00004a3cu, 0x00060050u, 0x0000026fu, 0x00004a5bu, + 0x00004a37u, 0x00004a37u, 0x00004a37u, 0x000500c2u, 0x0000026fu, 0x00004a5cu, 0x00004a5bu, 0x0000064au, + 0x000500c7u, 0x0000026fu, 0x00004a5eu, 0x00004a5cu, 0x0000897du, 0x000500c4u, 0x0000026fu, 0x00004a61u, + 0x00004a5eu, 0x0000897eu, 0x000500c2u, 0x0000026fu, 0x00004a64u, 0x00004a5eu, 0x0000897fu, 0x000500c5u, + 0x0000026fu, 0x00004a65u, 0x00004a61u, 0x00004a64u, 0x000500c7u, 0x00000006u, 0x00004a67u, 0x00004a37u, + 0x000002f6u, 0x00050084u, 0x00000006u, 0x00004a68u, 0x00004a67u, 0x00000659u, 0x00040071u, 0x0000065du, + 0x00004a6au, 0x00004a65u, 0x0004007cu, 0x0000065cu, 0x00004a6bu, 0x00004a6au, 0x00040071u, 0x00000011u, + 0x00004a6du, 0x00004a68u, 0x0004007cu, 0x00000012u, 0x00004a6eu, 0x00004a6du, 0x00050051u, 0x00000012u, + 0x00004a6fu, 0x00004a6bu, 0x00000000u, 0x00050051u, 0x00000012u, 0x00004a70u, 0x00004a6bu, 0x00000001u, + 0x00050051u, 0x00000012u, 0x00004a71u, 0x00004a6bu, 0x00000002u, 0x00070050u, 0x00000013u, 0x00004a72u, + 0x00004a6fu, 0x00004a70u, 0x00004a71u, 0x00004a6eu, 0x000200f9u, 0x00004a3fu, 0x000200f8u, 0x00004a39u, + 0x000500c2u, 0x00000006u, 0x00004a46u, 0x00004a37u, 0x000001dbu, 0x000500c7u, 0x00000006u, 0x00004a48u, + 0x00004a37u, 0x00000659u, 0x00040071u, 0x00000011u, 0x00004a4au, 0x00004a46u, 0x0004007cu, 0x00000012u, + 0x00004a4bu, 0x00004a4au, 0x00040071u, 0x00000011u, 0x00004a53u, 0x00004a48u, 0x0004007cu, 0x00000012u, + 0x00004a54u, 0x00004a53u, 0x00070050u, 0x00000013u, 0x00004a55u, 0x00004a4bu, 0x00004a4bu, 0x00004a4bu, + 0x00004a54u, 0x000200f9u, 0x00004a3fu, 0x000200f8u, 0x00004a3fu, 0x000700f5u, 0x00000013u, 0x0000726eu, + 0x00004a55u, 0x00004a39u, 0x00004a72u, 0x00004a3cu, 0x000200f9u, 0x000043a5u, 0x000200f8u, 0x000043a5u, + 0x000700f5u, 0x00000013u, 0x0000768au, 0x00006bf1u, 0x00004399u, 0x0000726eu, 0x00004a3fu, 0x000200f9u, + 0x0000440au, 0x000200f8u, 0x0000440au, 0x000900f5u, 0x00000013u, 0x00007689u, 0x0000768au, 0x000043a5u, + 0x00007690u, 0x000043ddu, 0x00007695u, 0x00004409u, 0x000900f5u, 0x00000013u, 0x00007596u, 0x00007598u, + 0x000043a5u, 0x0000759du, 0x000043ddu, 0x000075a1u, 0x00004409u, 0x000900f5u, 0x00000013u, 0x0000749du, + 0x0000749fu, 0x000043a5u, 0x000074a5u, 0x000043ddu, 0x000074aau, 0x00004409u, 0x000900f5u, 0x00000013u, + 0x00007333u, 0x00007262u, 0x000043a5u, 0x00007255u, 0x000043ddu, 0x00007242u, 0x00004409u, 0x000200f9u, + 0x0000440bu, 0x000200f8u, 0x0000440bu, 0x000700f5u, 0x00000013u, 0x000075c7u, 0x00006bf1u, 0x0000436bu, + 0x00007689u, 0x0000440au, 0x000700f5u, 0x00000013u, 0x000074d4u, 0x00006bf1u, 0x0000436bu, 0x00007596u, + 0x0000440au, 0x000700f5u, 0x00000013u, 0x000073dbu, 0x00006bf1u, 0x0000436bu, 0x0000749du, 0x0000440au, + 0x000700f5u, 0x00000013u, 0x00007271u, 0x00006bf1u, 0x0000436bu, 0x00007333u, 0x0000440au, 0x000200f9u, + 0x00004632u, 0x000200f8u, 0x00004632u, 0x000700f5u, 0x00000013u, 0x000075c6u, 0x000075c7u, 0x0000440bu, + 0x0000769au, 0x00004631u, 0x000700f5u, 0x00000013u, 0x000074d3u, 0x000074d4u, 0x0000440bu, 0x000075a4u, + 0x00004631u, 0x000700f5u, 0x00000013u, 0x000073dau, 0x000073dbu, 0x0000440bu, 0x000074aeu, 0x00004631u, + 0x000700f5u, 0x00000013u, 0x00007270u, 0x00007271u, 0x0000440bu, 0x00007343u, 0x00004631u, 0x000300f7u, + 0x000047c3u, 0x00000000u, 0x000400fau, 0x00001b65u, 0x00004634u, 0x0000470du, 0x000200f8u, 0x0000470du, + 0x000300f7u, 0x000047c2u, 0x00000000u, 0x000400fau, 0x0000434du, 0x0000470fu, 0x00004782u, 0x000200f8u, + 0x00004782u, 0x000300f7u, 0x000047c1u, 0x00000000u, 0x000400fau, 0x00004343u, 0x00004784u, 0x00004790u, + 0x000200f8u, 0x00004790u, 0x000600a9u, 0x00000063u, 0x000089bcu, 0x00001b6bu, 0x00004311u, 0x00001b6bu, + 0x000300f7u, 0x000047c0u, 0x00000000u, 0x000400fau, 0x000089bcu, 0x00004798u, 0x000047beu, 0x000200f8u, + 0x000047beu, 0x000200f9u, 0x000047c0u, 0x000200f8u, 0x00004798u, 0x000300f7u, 0x000047a2u, 0x00000000u, + 0x000400fau, 0x0000434fu, 0x0000479bu, 0x000047a0u, 0x000200f8u, 0x000047a0u, 0x000200f9u, 0x000047a2u, + 0x000200f8u, 0x0000479bu, 0x0007004fu, 0x00000058u, 0x0000479du, 0x000071f1u, 0x000071f1u, 0x00000001u, + 0x00000000u, 0x00050082u, 0x00000058u, 0x0000479fu, 0x00008983u, 0x0000479du, 0x000200f9u, 0x000047a2u, + 0x000200f8u, 0x000047a2u, 0x000700f5u, 0x00000058u, 0x000073d7u, 0x0000479fu, 0x0000479bu, 0x000071f1u, + 0x000047a0u, 0x00040072u, 0x0000011du, 0x000047a4u, 0x000073d7u, 0x00050082u, 0x00000013u, 0x000047a7u, + 0x000073dau, 0x00007270u, 0x00050051u, 0x00000012u, 0x000047a9u, 0x000047a4u, 0x00000000u, 0x00070050u, + 0x00000013u, 0x000047aau, 0x000047a9u, 0x000047a9u, 0x000047a9u, 0x000047a9u, 0x00050084u, 0x00000013u, + 0x000047abu, 0x000047a7u, 0x000047aau, 0x00050082u, 0x00000013u, 0x000047aeu, 0x000074d3u, 0x00007270u, + 0x00050051u, 0x00000012u, 0x000047b0u, 0x000047a4u, 0x00000001u, 0x00070050u, 0x00000013u, 0x000047b1u, + 0x000047b0u, 0x000047b0u, 0x000047b0u, 0x000047b0u, 0x00050084u, 0x00000013u, 0x000047b2u, 0x000047aeu, + 0x000047b1u, 0x00050080u, 0x00000013u, 0x000047b4u, 0x000047abu, 0x000047b2u, 0x00050080u, 0x00000013u, + 0x000047b7u, 0x000047b4u, 0x00008986u, 0x000500c3u, 0x00000013u, 0x000047bau, 0x000047b7u, 0x00008987u, + 0x00050080u, 0x00000013u, 0x000047bdu, 0x000047bau, 0x00007270u, 0x000200f9u, 0x000047c0u, 0x000200f8u, + 0x000047c0u, 0x000700f5u, 0x00000013u, 0x000076ffu, 0x000047bdu, 0x000047a2u, 0x00007270u, 0x000047beu, + 0x000200f9u, 0x000047c1u, 0x000200f8u, 0x00004784u, 0x00050080u, 0x00000013u, 0x00004787u, 0x00007270u, + 0x000074d3u, 0x00050080u, 0x00000013u, 0x00004789u, 0x00004787u, 0x000073dau, 0x00050080u, 0x00000013u, + 0x0000478bu, 0x00004789u, 0x000075c6u, 0x00050080u, 0x00000013u, 0x0000478du, 0x0000478bu, 0x00008981u, + 0x000500c3u, 0x00000013u, 0x0000478fu, 0x0000478du, 0x00008981u, 0x000200f9u, 0x000047c1u, 0x000200f8u, + 0x000047c1u, 0x000700f5u, 0x00000013u, 0x000076feu, 0x0000478fu, 0x00004784u, 0x000076ffu, 0x000047c0u, + 0x000200f9u, 0x000047c2u, 0x000200f8u, 0x0000470fu, 0x000300f7u, 0x00004781u, 0x00000000u, 0x000400fau, + 0x00001b2cu, 0x00004711u, 0x0000477fu, 0x000200f8u, 0x0000477fu, 0x000200f9u, 0x00004781u, 0x000200f8u, + 0x00004711u, 0x000300f7u, 0x00004777u, 0x00000000u, 0x000400fau, 0x00001b6bu, 0x00004713u, 0x0000475bu, + 0x000200f8u, 0x0000475bu, 0x000300f7u, 0x00004768u, 0x00000000u, 0x000400fau, 0x00004345u, 0x00004762u, + 0x00004765u, 0x000200f8u, 0x00004765u, 0x0007004fu, 0x0000011du, 0x00004767u, 0x00007270u, 0x00007270u, + 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004768u, 0x000200f8u, 0x00004762u, 0x0007004fu, 0x0000011du, + 0x00004764u, 0x000075c6u, 0x000075c6u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x00004768u, 0x000200f8u, + 0x00004768u, 0x000700f5u, 0x0000011du, 0x000076bcu, 0x00004764u, 0x00004762u, 0x00004767u, 0x00004765u, + 0x00050080u, 0x00000008u, 0x0000476du, 0x00004360u, 0x0000431bu, 0x000500afu, 0x00000063u, 0x0000476eu, + 0x0000476du, 0x00000979u, 0x000300f7u, 0x00004775u, 0x00000000u, 0x000400fau, 0x0000476eu, 0x0000476fu, + 0x00004772u, 0x000200f8u, 0x00004772u, 0x0007004fu, 0x0000011du, 0x00004774u, 0x00007270u, 0x00007270u, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004775u, 0x000200f8u, 0x0000476fu, 0x0007004fu, 0x0000011du, + 0x00004771u, 0x000075c6u, 0x000075c6u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004775u, 0x000200f8u, + 0x00004775u, 0x000700f5u, 0x0000011du, 0x000076c0u, 0x00004771u, 0x0000476fu, 0x00004774u, 0x00004772u, + 0x000200f9u, 0x00004777u, 0x000200f8u, 0x00004713u, 0x00050050u, 0x00000058u, 0x00004718u, 0x00004360u, + 0x0000431bu, 0x000500aau, 0x00000453u, 0x00004719u, 0x00004718u, 0x00000c1eu, 0x00050051u, 0x00000063u, + 0x0000471au, 0x00004719u, 0x00000000u, 0x00050051u, 0x00000063u, 0x0000471bu, 0x00004719u, 0x00000001u, + 0x00060050u, 0x0000105bu, 0x0000471cu, 0x00001b56u, 0x0000471au, 0x0000471bu, 0x0004009bu, 0x00000063u, + 0x0000471du, 0x0000471cu, 0x000300f7u, 0x0000473du, 0x00000000u, 0x000400fau, 0x0000471du, 0x0000471fu, + 0x0000472fu, 0x000200f8u, 0x0000472fu, 0x0007004fu, 0x0000011du, 0x00004735u, 0x00007270u, 0x00007270u, + 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000011du, 0x00004737u, 0x000073dau, 0x000073dau, 0x00000000u, + 0x00000001u, 0x0007004fu, 0x0000011du, 0x00004739u, 0x000074d3u, 0x000074d3u, 0x00000000u, 0x00000001u, + 0x0007004fu, 0x0000011du, 0x0000473bu, 0x000075c6u, 0x000075c6u, 0x00000000u, 0x00000001u, 0x00050080u, + 0x00000008u, 0x00005a9eu, 0x00004360u, 0x0000431bu, 0x000500afu, 0x00000063u, 0x00005aa0u, 0x00005a9eu, + 0x00000979u, 0x00050050u, 0x00000453u, 0x00005aa3u, 0x00005aa0u, 0x00005aa0u, 0x000600a9u, 0x0000011du, + 0x00005aa4u, 0x00005aa3u, 0x0000473bu, 0x00004735u, 0x000300f7u, 0x00005aaeu, 0x00000000u, 0x000400fau, + 0x00005aa0u, 0x00005aa7u, 0x00005aacu, 0x000200f8u, 0x00005aacu, 0x000200f9u, 0x00005aaeu, 0x000200f8u, + 0x00005aa7u, 0x0007004fu, 0x00000058u, 0x00005aa9u, 0x00004718u, 0x00004718u, 0x00000001u, 0x00000000u, + 0x00050082u, 0x00000058u, 0x00005aabu, 0x00008983u, 0x00005aa9u, 0x000200f9u, 0x00005aaeu, 0x000200f8u, + 0x00005aaeu, 0x000700f5u, 0x00000058u, 0x000076c1u, 0x00005aabu, 0x00005aa7u, 0x00004718u, 0x00005aacu, + 0x00040072u, 0x0000011du, 0x00005ab0u, 0x000076c1u, 0x00050082u, 0x0000011du, 0x00005ab3u, 0x00004737u, + 0x00005aa4u, 0x00050051u, 0x00000012u, 0x00005ab5u, 0x00005ab0u, 0x00000000u, 0x00050050u, 0x0000011du, + 0x00005ab6u, 0x00005ab5u, 0x00005ab5u, 0x00050084u, 0x0000011du, 0x00005ab7u, 0x00005ab3u, 0x00005ab6u, + 0x00050082u, 0x0000011du, 0x00005abau, 0x00004739u, 0x00005aa4u, 0x00050051u, 0x00000012u, 0x00005abcu, + 0x00005ab0u, 0x00000001u, 0x00050050u, 0x0000011du, 0x00005abdu, 0x00005abcu, 0x00005abcu, 0x00050084u, + 0x0000011du, 0x00005abeu, 0x00005abau, 0x00005abdu, 0x00050080u, 0x0000011du, 0x00005ac0u, 0x00005ab7u, + 0x00005abeu, 0x00050080u, 0x0000011du, 0x00005ac3u, 0x00005ac0u, 0x00008984u, 0x000500c3u, 0x0000011du, + 0x00005ac6u, 0x00005ac3u, 0x00008985u, 0x00050080u, 0x0000011du, 0x00005ac9u, 0x00005ac6u, 0x00005aa4u, + 0x000200f9u, 0x0000473du, 0x000200f8u, 0x0000471fu, 0x0007004fu, 0x0000011du, 0x00004721u, 0x00007270u, + 0x00007270u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000011du, 0x00004723u, 0x000073dau, 0x000073dau, + 0x00000000u, 0x00000001u, 0x00050080u, 0x0000011du, 0x00004724u, 0x00004721u, 0x00004723u, 0x0007004fu, + 0x0000011du, 0x00004726u, 0x000075c6u, 0x000075c6u, 0x00000000u, 0x00000001u, 0x00050080u, 0x0000011du, + 0x00004727u, 0x00004724u, 0x00004726u, 0x0007004fu, 0x0000011du, 0x00004729u, 0x000074d3u, 0x000074d3u, + 0x00000000u, 0x00000001u, 0x00050080u, 0x0000011du, 0x0000472au, 0x00004727u, 0x00004729u, 0x00050080u, + 0x0000011du, 0x0000472cu, 0x0000472au, 0x00008982u, 0x000500c3u, 0x0000011du, 0x0000472eu, 0x0000472cu, + 0x00008982u, 0x000200f9u, 0x0000473du, 0x000200f8u, 0x0000473du, 0x000700f5u, 0x0000011du, 0x000076cfu, + 0x0000472eu, 0x0000471fu, 0x00005ac9u, 0x00005aaeu, 0x000300f7u, 0x0000475au, 0x00000000u, 0x000400fau, + 0x00004343u, 0x0000473fu, 0x0000474fu, 0x000200f8u, 0x0000474fu, 0x0007004fu, 0x0000011du, 0x00004751u, + 0x00007270u, 0x00007270u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000011du, 0x00004753u, 0x000073dau, + 0x000073dau, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000011du, 0x00004755u, 0x000074d3u, 0x000074d3u, + 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000011du, 0x00004757u, 0x000075c6u, 0x000075c6u, 0x00000002u, + 0x00000003u, 0x00050050u, 0x00000453u, 0x00005adbu, 0x00004345u, 0x00004345u, 0x000600a9u, 0x0000011du, + 0x00005adcu, 0x00005adbu, 0x00004757u, 0x00004751u, 0x000300f7u, 0x00005ae6u, 0x00000000u, 0x000400fau, + 0x00004345u, 0x00005adfu, 0x00005ae4u, 0x000200f8u, 0x00005ae4u, 0x000200f9u, 0x00005ae6u, 0x000200f8u, + 0x00005adfu, 0x0007004fu, 0x00000058u, 0x00005ae1u, 0x000071f1u, 0x000071f1u, 0x00000001u, 0x00000000u, + 0x00050082u, 0x00000058u, 0x00005ae3u, 0x00008983u, 0x00005ae1u, 0x000200f9u, 0x00005ae6u, 0x000200f8u, + 0x00005ae6u, 0x000700f5u, 0x00000058u, 0x000076ccu, 0x00005ae3u, 0x00005adfu, 0x000071f1u, 0x00005ae4u, + 0x00040072u, 0x0000011du, 0x00005ae8u, 0x000076ccu, 0x00050082u, 0x0000011du, 0x00005aebu, 0x00004753u, + 0x00005adcu, 0x00050051u, 0x00000012u, 0x00005aedu, 0x00005ae8u, 0x00000000u, 0x00050050u, 0x0000011du, + 0x00005aeeu, 0x00005aedu, 0x00005aedu, 0x00050084u, 0x0000011du, 0x00005aefu, 0x00005aebu, 0x00005aeeu, + 0x00050082u, 0x0000011du, 0x00005af2u, 0x00004755u, 0x00005adcu, 0x00050051u, 0x00000012u, 0x00005af4u, + 0x00005ae8u, 0x00000001u, 0x00050050u, 0x0000011du, 0x00005af5u, 0x00005af4u, 0x00005af4u, 0x00050084u, + 0x0000011du, 0x00005af6u, 0x00005af2u, 0x00005af5u, 0x00050080u, 0x0000011du, 0x00005af8u, 0x00005aefu, + 0x00005af6u, 0x00050080u, 0x0000011du, 0x00005afbu, 0x00005af8u, 0x00008984u, 0x000500c3u, 0x0000011du, + 0x00005afeu, 0x00005afbu, 0x00008985u, 0x00050080u, 0x0000011du, 0x00005b01u, 0x00005afeu, 0x00005adcu, + 0x000200f9u, 0x0000475au, 0x000200f8u, 0x0000473fu, 0x0007004fu, 0x0000011du, 0x00004741u, 0x00007270u, + 0x00007270u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000011du, 0x00004743u, 0x000073dau, 0x000073dau, + 0x00000002u, 0x00000003u, 0x00050080u, 0x0000011du, 0x00004744u, 0x00004741u, 0x00004743u, 0x0007004fu, + 0x0000011du, 0x00004746u, 0x000075c6u, 0x000075c6u, 0x00000002u, 0x00000003u, 0x00050080u, 0x0000011du, + 0x00004747u, 0x00004744u, 0x00004746u, 0x0007004fu, 0x0000011du, 0x00004749u, 0x000074d3u, 0x000074d3u, + 0x00000002u, 0x00000003u, 0x00050080u, 0x0000011du, 0x0000474au, 0x00004747u, 0x00004749u, 0x00050080u, + 0x0000011du, 0x0000474cu, 0x0000474au, 0x00008982u, 0x000500c3u, 0x0000011du, 0x0000474eu, 0x0000474cu, + 0x00008982u, 0x000200f9u, 0x0000475au, 0x000200f8u, 0x0000475au, 0x000700f5u, 0x0000011du, 0x000076d2u, + 0x0000474eu, 0x0000473fu, 0x00005b01u, 0x00005ae6u, 0x000200f9u, 0x00004777u, 0x000200f8u, 0x00004777u, + 0x000700f5u, 0x0000011du, 0x000076d1u, 0x000076d2u, 0x0000475au, 0x000076bcu, 0x00004775u, 0x000700f5u, + 0x0000011du, 0x000076cdu, 0x000076cfu, 0x0000475au, 0x000076c0u, 0x00004775u, 0x00050051u, 0x00000012u, + 0x0000477au, 0x000076cdu, 0x00000000u, 0x00050051u, 0x00000012u, 0x0000477bu, 0x000076cdu, 0x00000001u, + 0x00050051u, 0x00000012u, 0x0000477cu, 0x000076d1u, 0x00000000u, 0x00050051u, 0x00000012u, 0x0000477du, + 0x000076d1u, 0x00000001u, 0x00070050u, 0x00000013u, 0x0000477eu, 0x0000477au, 0x0000477bu, 0x0000477cu, + 0x0000477du, 0x000200f9u, 0x00004781u, 0x000200f8u, 0x00004781u, 0x000700f5u, 0x00000013u, 0x000076fdu, + 0x0000477eu, 0x00004777u, 0x00007270u, 0x0000477fu, 0x000200f9u, 0x000047c2u, 0x000200f8u, 0x000047c2u, + 0x000700f5u, 0x00000013u, 0x000076fcu, 0x000076fdu, 0x00004781u, 0x000076feu, 0x000047c1u, 0x000200f9u, + 0x000047c3u, 0x000200f8u, 0x00004634u, 0x00040072u, 0x00000009u, 0x00004636u, 0x0000719bu, 0x000600cau, + 0x00000009u, 0x00004637u, 0x00004636u, 0x0000019eu, 0x000001deu, 0x000300f7u, 0x0000470cu, 0x00000000u, + 0x000400fau, 0x00001b2cu, 0x00004639u, 0x00004708u, 0x000200f8u, 0x00004708u, 0x0009004fu, 0x00000009u, + 0x0000470au, 0x00004637u, 0x00004637u, 0x00000002u, 0x00000002u, 0x00000002u, 0x00000002u, 0x00040072u, + 0x00000013u, 0x0000470bu, 0x0000470au, 0x000200f9u, 0x0000470cu, 0x000200f8u, 0x00004639u, 0x000300f7u, + 0x00004648u, 0x00000000u, 0x000400fau, 0x0000434du, 0x0000463bu, 0x00004646u, 0x000200f8u, 0x00004646u, + 0x000200f9u, 0x00004648u, 0x000200f8u, 0x0000463bu, 0x00050050u, 0x00000058u, 0x00004640u, 0x00004360u, + 0x0000431bu, 0x000500aau, 0x00000453u, 0x00004641u, 0x00004640u, 0x00000c1eu, 0x00050051u, 0x00000063u, + 0x00004642u, 0x00004641u, 0x00000000u, 0x00050051u, 0x00000063u, 0x00004643u, 0x00004641u, 0x00000001u, + 0x00060050u, 0x0000105bu, 0x00004644u, 0x00001b56u, 0x00004642u, 0x00004643u, 0x0004009bu, 0x00000063u, + 0x00004645u, 0x00004644u, 0x000200f9u, 0x00004648u, 0x000200f8u, 0x00004648u, 0x000700f5u, 0x00000063u, + 0x000076d4u, 0x00004645u, 0x0000463bu, 0x00004343u, 0x00004646u, 0x000300f7u, 0x00004659u, 0x00000000u, + 0x000400fau, 0x0000434du, 0x0000464eu, 0x00004657u, 0x000200f8u, 0x00004657u, 0x000200f9u, 0x00004659u, + 0x000200f8u, 0x0000464eu, 0x00050080u, 0x00000008u, 0x00004652u, 0x00004360u, 0x0000431bu, 0x000500afu, + 0x00000063u, 0x00004653u, 0x00004652u, 0x00000979u, 0x000400a8u, 0x00000063u, 0x00004655u, 0x000076d4u, + 0x000500a7u, 0x00000063u, 0x00004656u, 0x00004653u, 0x00004655u, 0x000200f9u, 0x00004659u, 0x000200f8u, + 0x00004659u, 0x000700f5u, 0x00000063u, 0x000076d7u, 0x00004656u, 0x0000464eu, 0x0000434fu, 0x00004657u, + 0x000300f7u, 0x00004662u, 0x00000000u, 0x000400fau, 0x000076d7u, 0x0000465cu, 0x0000465fu, 0x000200f8u, + 0x0000465fu, 0x0007004fu, 0x00000058u, 0x00004661u, 0x00004637u, 0x00004637u, 0x00000000u, 0x00000001u, + 0x000200f9u, 0x00004662u, 0x000200f8u, 0x0000465cu, 0x0007004fu, 0x00000058u, 0x0000465eu, 0x00004637u, + 0x00004637u, 0x00000001u, 0x00000000u, 0x000200f9u, 0x00004662u, 0x000200f8u, 0x00004662u, 0x000700f5u, + 0x00000058u, 0x000076d8u, 0x0000465eu, 0x0000465cu, 0x00004661u, 0x0000465fu, 0x000300f7u, 0x0000466bu, + 0x00000000u, 0x000400fau, 0x0000434fu, 0x00004665u, 0x00004668u, 0x000200f8u, 0x00004668u, 0x0007004fu, + 0x00000058u, 0x0000466au, 0x00004637u, 0x00004637u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x0000466bu, + 0x000200f8u, 0x00004665u, 0x0007004fu, 0x00000058u, 0x00004667u, 0x00004637u, 0x00004637u, 0x00000001u, + 0x00000000u, 0x000200f9u, 0x0000466bu, 0x000200f8u, 0x0000466bu, 0x000700f5u, 0x00000058u, 0x000076d9u, + 0x00004667u, 0x00004665u, 0x0000466au, 0x00004668u, 0x000300f7u, 0x000046b1u, 0x00000000u, 0x000400fau, + 0x000076d4u, 0x0000466eu, 0x0000468fu, 0x000200f8u, 0x0000468fu, 0x000500a7u, 0x00000063u, 0x00004692u, + 0x000076d7u, 0x0000434du, 0x000300f7u, 0x00004699u, 0x00000000u, 0x000400fau, 0x00004692u, 0x00004693u, + 0x00004696u, 0x000200f8u, 0x00004696u, 0x0007004fu, 0x0000011du, 0x00004698u, 0x00007270u, 0x00007270u, + 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004699u, 0x000200f8u, 0x00004693u, 0x0007004fu, 0x0000011du, + 0x00004695u, 0x000075c6u, 0x000075c6u, 0x00000000u, 0x00000001u, 0x000200f9u, 0x00004699u, 0x000200f8u, + 0x00004699u, 0x000700f5u, 0x0000011du, 0x000076e2u, 0x00004695u, 0x00004693u, 0x00004698u, 0x00004696u, + 0x00040072u, 0x00000058u, 0x0000469bu, 0x000076e2u, 0x00050051u, 0x00000008u, 0x0000469du, 0x000076d8u, + 0x00000000u, 0x0007004fu, 0x0000011du, 0x0000469fu, 0x000073dau, 0x000073dau, 0x00000000u, 0x00000001u, + 0x00040072u, 0x00000058u, 0x000046a0u, 0x0000469fu, 0x00050082u, 0x00000058u, 0x000046a2u, 0x000046a0u, + 0x0000469bu, 0x00050050u, 0x00000058u, 0x000046a3u, 0x0000469du, 0x0000469du, 0x00050084u, 0x00000058u, + 0x000046a4u, 0x000046a3u, 0x000046a2u, 0x00050051u, 0x00000008u, 0x000046a6u, 0x000076d8u, 0x00000001u, + 0x0007004fu, 0x0000011du, 0x000046a8u, 0x000074d3u, 0x000074d3u, 0x00000000u, 0x00000001u, 0x00040072u, + 0x00000058u, 0x000046a9u, 0x000046a8u, 0x00050082u, 0x00000058u, 0x000046abu, 0x000046a9u, 0x0000469bu, + 0x00050050u, 0x00000058u, 0x000046acu, 0x000046a6u, 0x000046a6u, 0x00050084u, 0x00000058u, 0x000046adu, + 0x000046acu, 0x000046abu, 0x00050080u, 0x00000058u, 0x000046aeu, 0x000046a4u, 0x000046adu, 0x00050080u, + 0x00000058u, 0x000046b0u, 0x000046aeu, 0x00008989u, 0x000200f9u, 0x000046b1u, 0x000200f8u, 0x0000466eu, + 0x00050051u, 0x00000008u, 0x00004670u, 0x000076d8u, 0x00000000u, 0x0007004fu, 0x0000011du, 0x00004672u, + 0x000074d3u, 0x000074d3u, 0x00000000u, 0x00000001u, 0x0007004fu, 0x0000011du, 0x00004674u, 0x000075c6u, + 0x000075c6u, 0x00000000u, 0x00000001u, 0x00050082u, 0x0000011du, 0x00004675u, 0x00004672u, 0x00004674u, + 0x00040072u, 0x00000058u, 0x00004676u, 0x00004675u, 0x00050050u, 0x00000058u, 0x00004677u, 0x00004670u, + 0x00004670u, 0x00050084u, 0x00000058u, 0x00004678u, 0x00004677u, 0x00004676u, 0x00050051u, 0x00000008u, + 0x0000467au, 0x000076d8u, 0x00000001u, 0x0007004fu, 0x0000011du, 0x0000467cu, 0x000073dau, 0x000073dau, + 0x00000000u, 0x00000001u, 0x00050082u, 0x0000011du, 0x0000467fu, 0x0000467cu, 0x00004674u, 0x00040072u, + 0x00000058u, 0x00004680u, 0x0000467fu, 0x00050050u, 0x00000058u, 0x00004681u, 0x0000467au, 0x0000467au, + 0x00050084u, 0x00000058u, 0x00004682u, 0x00004681u, 0x00004680u, 0x00050080u, 0x00000058u, 0x00004683u, + 0x00004678u, 0x00004682u, 0x0007004fu, 0x0000011du, 0x00004685u, 0x00007270u, 0x00007270u, 0x00000000u, + 0x00000001u, 0x00050082u, 0x0000011du, 0x00004688u, 0x00004685u, 0x00004674u, 0x000500c4u, 0x0000011du, + 0x0000468au, 0x00004688u, 0x00008988u, 0x00040072u, 0x00000058u, 0x0000468bu, 0x0000468au, 0x00050080u, + 0x00000058u, 0x0000468cu, 0x00004683u, 0x0000468bu, 0x00050080u, 0x00000058u, 0x0000468eu, 0x0000468cu, + 0x00008989u, 0x000200f9u, 0x000046b1u, 0x000200f8u, 0x000046b1u, 0x000700f5u, 0x00000058u, 0x000076f7u, + 0x0000468eu, 0x0000466eu, 0x000046b0u, 0x00004699u, 0x000300f7u, 0x000046f6u, 0x00000000u, 0x000400fau, + 0x00004343u, 0x000046b3u, 0x000046d4u, 0x000200f8u, 0x000046d4u, 0x000500a7u, 0x00000063u, 0x000046d7u, + 0x0000434fu, 0x0000434du, 0x000300f7u, 0x000046deu, 0x00000000u, 0x000400fau, 0x000046d7u, 0x000046d8u, + 0x000046dbu, 0x000200f8u, 0x000046dbu, 0x0007004fu, 0x0000011du, 0x000046ddu, 0x00007270u, 0x00007270u, + 0x00000002u, 0x00000003u, 0x000200f9u, 0x000046deu, 0x000200f8u, 0x000046d8u, 0x0007004fu, 0x0000011du, + 0x000046dau, 0x000075c6u, 0x000075c6u, 0x00000002u, 0x00000003u, 0x000200f9u, 0x000046deu, 0x000200f8u, + 0x000046deu, 0x000700f5u, 0x0000011du, 0x000076f1u, 0x000046dau, 0x000046d8u, 0x000046ddu, 0x000046dbu, + 0x00040072u, 0x00000058u, 0x000046e0u, 0x000076f1u, 0x00050051u, 0x00000008u, 0x000046e2u, 0x000076d9u, + 0x00000000u, 0x0007004fu, 0x0000011du, 0x000046e4u, 0x000073dau, 0x000073dau, 0x00000002u, 0x00000003u, + 0x00040072u, 0x00000058u, 0x000046e5u, 0x000046e4u, 0x00050082u, 0x00000058u, 0x000046e7u, 0x000046e5u, + 0x000046e0u, 0x00050050u, 0x00000058u, 0x000046e8u, 0x000046e2u, 0x000046e2u, 0x00050084u, 0x00000058u, + 0x000046e9u, 0x000046e8u, 0x000046e7u, 0x00050051u, 0x00000008u, 0x000046ebu, 0x000076d9u, 0x00000001u, + 0x0007004fu, 0x0000011du, 0x000046edu, 0x000074d3u, 0x000074d3u, 0x00000002u, 0x00000003u, 0x00040072u, + 0x00000058u, 0x000046eeu, 0x000046edu, 0x00050082u, 0x00000058u, 0x000046f0u, 0x000046eeu, 0x000046e0u, + 0x00050050u, 0x00000058u, 0x000046f1u, 0x000046ebu, 0x000046ebu, 0x00050084u, 0x00000058u, 0x000046f2u, + 0x000046f1u, 0x000046f0u, 0x00050080u, 0x00000058u, 0x000046f3u, 0x000046e9u, 0x000046f2u, 0x00050080u, + 0x00000058u, 0x000046f5u, 0x000046f3u, 0x00008989u, 0x000200f9u, 0x000046f6u, 0x000200f8u, 0x000046b3u, + 0x00050051u, 0x00000008u, 0x000046b5u, 0x000076d9u, 0x00000000u, 0x0007004fu, 0x0000011du, 0x000046b7u, + 0x000074d3u, 0x000074d3u, 0x00000002u, 0x00000003u, 0x0007004fu, 0x0000011du, 0x000046b9u, 0x000075c6u, + 0x000075c6u, 0x00000002u, 0x00000003u, 0x00050082u, 0x0000011du, 0x000046bau, 0x000046b7u, 0x000046b9u, + 0x00040072u, 0x00000058u, 0x000046bbu, 0x000046bau, 0x00050050u, 0x00000058u, 0x000046bcu, 0x000046b5u, + 0x000046b5u, 0x00050084u, 0x00000058u, 0x000046bdu, 0x000046bcu, 0x000046bbu, 0x00050051u, 0x00000008u, + 0x000046bfu, 0x000076d9u, 0x00000001u, 0x0007004fu, 0x0000011du, 0x000046c1u, 0x000073dau, 0x000073dau, + 0x00000002u, 0x00000003u, 0x00050082u, 0x0000011du, 0x000046c4u, 0x000046c1u, 0x000046b9u, 0x00040072u, + 0x00000058u, 0x000046c5u, 0x000046c4u, 0x00050050u, 0x00000058u, 0x000046c6u, 0x000046bfu, 0x000046bfu, + 0x00050084u, 0x00000058u, 0x000046c7u, 0x000046c6u, 0x000046c5u, 0x00050080u, 0x00000058u, 0x000046c8u, + 0x000046bdu, 0x000046c7u, 0x0007004fu, 0x0000011du, 0x000046cau, 0x00007270u, 0x00007270u, 0x00000002u, + 0x00000003u, 0x00050082u, 0x0000011du, 0x000046cdu, 0x000046cau, 0x000046b9u, 0x000500c4u, 0x0000011du, + 0x000046cfu, 0x000046cdu, 0x00008988u, 0x00040072u, 0x00000058u, 0x000046d0u, 0x000046cfu, 0x00050080u, + 0x00000058u, 0x000046d1u, 0x000046c8u, 0x000046d0u, 0x00050080u, 0x00000058u, 0x000046d3u, 0x000046d1u, + 0x00008989u, 0x000200f9u, 0x000046f6u, 0x000200f8u, 0x000046f6u, 0x000700f5u, 0x00000058u, 0x000076f9u, + 0x000046d3u, 0x000046b3u, 0x000046f5u, 0x000046deu, 0x00050051u, 0x00000008u, 0x000046f9u, 0x000076f7u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x000046fau, 0x000076f7u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x000046fbu, 0x000076f9u, 0x00000000u, 0x00050051u, 0x00000008u, 0x000046fcu, 0x000076f9u, 0x00000001u, + 0x00070050u, 0x00000009u, 0x000046fdu, 0x000046f9u, 0x000046fau, 0x000046fbu, 0x000046fcu, 0x000500c3u, + 0x00000009u, 0x00004700u, 0x000046fdu, 0x00008980u, 0x00050051u, 0x00000008u, 0x00004702u, 0x00004637u, + 0x00000002u, 0x00070050u, 0x00000009u, 0x00004704u, 0x00004702u, 0x00004702u, 0x00004702u, 0x00004702u, + 0x00050080u, 0x00000009u, 0x00004705u, 0x00004700u, 0x00004704u, 0x00040072u, 0x00000013u, 0x00004707u, + 0x00004705u, 0x000200f9u, 0x0000470cu, 0x000200f8u, 0x0000470cu, 0x000700f5u, 0x00000013u, 0x000076fbu, + 0x00004707u, 0x000046f6u, 0x0000470bu, 0x00004708u, 0x000200f9u, 0x000047c3u, 0x000200f8u, 0x000047c3u, + 0x000700f5u, 0x00000013u, 0x000076fau, 0x000076fbu, 0x0000470cu, 0x000076fcu, 0x000047c2u, 0x000400a8u, + 0x00000063u, 0x000047c7u, 0x00001b65u, 0x000500a7u, 0x00000063u, 0x000047c8u, 0x00001c9bu, 0x000047c7u, + 0x000300f7u, 0x000047cdu, 0x00000000u, 0x000400fau, 0x000047c8u, 0x000047c9u, 0x000047cdu, 0x000200f8u, + 0x000047c9u, 0x00040072u, 0x00000009u, 0x00005b0bu, 0x000076fau, 0x000600cau, 0x00000009u, 0x00005b0cu, + 0x00005b0bu, 0x0000019eu, 0x000001deu, 0x00050051u, 0x00000008u, 0x00005b0eu, 0x00005b0cu, 0x00000002u, + 0x00050051u, 0x00000012u, 0x00005b10u, 0x00002301u, 0x00000000u, 0x00040072u, 0x00000008u, 0x00005b11u, + 0x00005b10u, 0x00050051u, 0x00000008u, 0x00005b13u, 0x00005b0cu, 0x00000001u, 0x00050084u, 0x00000008u, + 0x00005b14u, 0x00005b11u, 0x00005b13u, 0x00050080u, 0x00000008u, 0x00005b15u, 0x00005b14u, 0x00000308u, + 0x000500c3u, 0x00000008u, 0x00005b16u, 0x00005b15u, 0x000001dbu, 0x00050080u, 0x00000008u, 0x00005b17u, + 0x00005b0eu, 0x00005b16u, 0x00050051u, 0x00000012u, 0x00005b1bu, 0x00002301u, 0x00000001u, 0x00040072u, + 0x00000008u, 0x00005b1cu, 0x00005b1bu, 0x00050051u, 0x00000008u, 0x00005b1eu, 0x00005b0cu, 0x00000000u, + 0x00050084u, 0x00000008u, 0x00005b1fu, 0x00005b1cu, 0x00005b1eu, 0x00050051u, 0x00000012u, 0x00005b21u, + 0x00002301u, 0x00000002u, 0x00040072u, 0x00000008u, 0x00005b22u, 0x00005b21u, 0x00050084u, 0x00000008u, + 0x00005b25u, 0x00005b22u, 0x00005b13u, 0x00050080u, 0x00000008u, 0x00005b26u, 0x00005b1fu, 0x00005b25u, + 0x00050080u, 0x00000008u, 0x00005b27u, 0x00005b26u, 0x00000308u, 0x000500c3u, 0x00000008u, 0x00005b28u, + 0x00005b27u, 0x000001dbu, 0x00050080u, 0x00000008u, 0x00005b29u, 0x00005b0eu, 0x00005b28u, 0x00050051u, + 0x00000012u, 0x00005b2du, 0x00002301u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00005b2eu, 0x00005b2du, + 0x00050084u, 0x00000008u, 0x00005b31u, 0x00005b2eu, 0x00005b1eu, 0x00050080u, 0x00000008u, 0x00005b32u, + 0x00005b31u, 0x00000308u, 0x000500c3u, 0x00000008u, 0x00005b33u, 0x00005b32u, 0x000001dbu, 0x00050080u, + 0x00000008u, 0x00005b34u, 0x00005b0eu, 0x00005b33u, 0x00040072u, 0x00000012u, 0x00005b38u, 0x00005b17u, + 0x00040072u, 0x00000012u, 0x00005b3au, 0x00005b29u, 0x00040072u, 0x00000012u, 0x00005b3cu, 0x00005b34u, + 0x00040072u, 0x00000012u, 0x00005b3eu, 0x00005b0eu, 0x00070050u, 0x00000013u, 0x00005b3fu, 0x00005b38u, + 0x00005b3au, 0x00005b3cu, 0x00005b3eu, 0x000200f9u, 0x000047cdu, 0x000200f8u, 0x000047cdu, 0x000700f5u, + 0x00000013u, 0x00007700u, 0x000076fau, 0x000047c3u, 0x00005b3fu, 0x000047c9u, 0x000200f9u, 0x00001cbbu, + 0x000200f8u, 0x00001c9du, 0x00040072u, 0x00000009u, 0x00004138u, 0x0000719bu, 0x000600cau, 0x00000009u, + 0x00004139u, 0x00004138u, 0x0000019eu, 0x000001deu, 0x00050051u, 0x00000008u, 0x0000413bu, 0x00004139u, + 0x00000002u, 0x00050051u, 0x00000012u, 0x0000413du, 0x00002301u, 0x00000000u, 0x00040072u, 0x00000008u, + 0x0000413eu, 0x0000413du, 0x00050051u, 0x00000008u, 0x00004140u, 0x00004139u, 0x00000001u, 0x00050084u, + 0x00000008u, 0x00004141u, 0x0000413eu, 0x00004140u, 0x00050080u, 0x00000008u, 0x00004142u, 0x00004141u, + 0x00000308u, 0x000500c3u, 0x00000008u, 0x00004143u, 0x00004142u, 0x000001dbu, 0x00050080u, 0x00000008u, + 0x00004144u, 0x0000413bu, 0x00004143u, 0x00050051u, 0x00000012u, 0x00004148u, 0x00002301u, 0x00000001u, + 0x00040072u, 0x00000008u, 0x00004149u, 0x00004148u, 0x00050051u, 0x00000008u, 0x0000414bu, 0x00004139u, + 0x00000000u, 0x00050084u, 0x00000008u, 0x0000414cu, 0x00004149u, 0x0000414bu, 0x00050051u, 0x00000012u, + 0x0000414eu, 0x00002301u, 0x00000002u, 0x00040072u, 0x00000008u, 0x0000414fu, 0x0000414eu, 0x00050084u, + 0x00000008u, 0x00004152u, 0x0000414fu, 0x00004140u, 0x00050080u, 0x00000008u, 0x00004153u, 0x0000414cu, + 0x00004152u, 0x00050080u, 0x00000008u, 0x00004154u, 0x00004153u, 0x00000308u, 0x000500c3u, 0x00000008u, + 0x00004155u, 0x00004154u, 0x000001dbu, 0x00050080u, 0x00000008u, 0x00004156u, 0x0000413bu, 0x00004155u, + 0x00050051u, 0x00000012u, 0x0000415au, 0x00002301u, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000415bu, + 0x0000415au, 0x00050084u, 0x00000008u, 0x0000415eu, 0x0000415bu, 0x0000414bu, 0x00050080u, 0x00000008u, + 0x0000415fu, 0x0000415eu, 0x00000308u, 0x000500c3u, 0x00000008u, 0x00004160u, 0x0000415fu, 0x000001dbu, + 0x00050080u, 0x00000008u, 0x00004161u, 0x0000413bu, 0x00004160u, 0x00040072u, 0x00000012u, 0x00004165u, + 0x00004144u, 0x00040072u, 0x00000012u, 0x00004167u, 0x00004156u, 0x00040072u, 0x00000012u, 0x00004169u, + 0x00004161u, 0x00040072u, 0x00000012u, 0x0000416bu, 0x0000413bu, 0x00070050u, 0x00000013u, 0x0000416cu, + 0x00004165u, 0x00004167u, 0x00004169u, 0x0000416bu, 0x000200f9u, 0x00001cbbu, 0x000200f8u, 0x00001cbbu, + 0x000700f5u, 0x00000013u, 0x00007b42u, 0x0000416cu, 0x00001c9du, 0x00007700u, 0x000047cdu, 0x000200f9u, + 0x00001cbcu, 0x000200f8u, 0x00001cbcu, 0x000700f5u, 0x00000013u, 0x00007a93u, 0x00006bf1u, 0x00001c96u, + 0x00007b42u, 0x00001cbbu, 0x000600a9u, 0x00000008u, 0x00001cbfu, 0x00001b47u, 0x000001a8u, 0x0000019eu, + 0x000500c3u, 0x00000008u, 0x00001cc0u, 0x00006a3fu, 0x00001cbfu, 0x000500c3u, 0x00000008u, 0x00001cc2u, + 0x00008993u, 0x000001abu, 0x000500c7u, 0x00000008u, 0x00001cc4u, 0x00008993u, 0x000001aeu, 0x000500b1u, + 0x00000063u, 0x00005b45u, 0x00001cc2u, 0x000001abu, 0x000300f7u, 0x00005b5au, 0x00000000u, 0x000400fau, + 0x00005b45u, 0x00005b46u, 0x00005b53u, 0x000200f8u, 0x00005b53u, 0x000500aau, 0x00000063u, 0x00005b55u, + 0x00001cc2u, 0x000001abu, 0x000300f7u, 0x00005b59u, 0x00000000u, 0x000400fau, 0x00005b55u, 0x00005b56u, + 0x00005b58u, 0x000200f8u, 0x00005b58u, 0x000200f9u, 0x00005b59u, 0x000200f8u, 0x00005b56u, 0x000500c7u, + 0x00000011u, 0x00005b84u, 0x00007914u, 0x000002a7u, 0x00040071u, 0x00000006u, 0x00005b85u, 0x00005b84u, + 0x0004007cu, 0x00000008u, 0x00005b86u, 0x00005b85u, 0x000200f9u, 0x00005b59u, 0x000200f8u, 0x00005b59u, + 0x000700f5u, 0x00000008u, 0x00007a1cu, 0x00005b86u, 0x00005b56u, 0x0000019eu, 0x00005b58u, 0x000200f9u, + 0x00005b5au, 0x000200f8u, 0x00005b46u, 0x000500c7u, 0x00000008u, 0x00005b49u, 0x00001cc0u, 0x000001aeu, + 0x00050084u, 0x00000008u, 0x00005b4au, 0x00005b49u, 0x000001b1u, 0x000500c7u, 0x00000008u, 0x00005b4cu, + 0x00006a43u, 0x000001aeu, 0x00050080u, 0x00000008u, 0x00005b4du, 0x00005b4au, 0x00005b4cu, 0x0003003eu, + 0x00005b40u, 0x000012adu, 0x00060041u, 0x00000176u, 0x00005b4eu, 0x00005b40u, 0x00001cc2u, 0x00005b4du, + 0x0004003du, 0x0000000fu, 0x00005b4fu, 0x00005b4eu, 0x00040071u, 0x00000006u, 0x00005b50u, 0x00005b4fu, + 0x0004007cu, 0x00000008u, 0x00005b51u, 0x00005b50u, 0x00050084u, 0x00000008u, 0x00005b52u, 0x00005b51u, + 0x000012bbu, 0x000200f9u, 0x00005b5au, 0x000200f8u, 0x00005b5au, 0x000700f5u, 0x00000008u, 0x00007a1bu, + 0x00005b52u, 0x00005b46u, 0x00007a1cu, 0x00005b59u, 0x000500aau, 0x00000063u, 0x00005b5cu, 0x00001cc4u, + 0x000001aeu, 0x000300f7u, 0x00005b80u, 0x00000000u, 0x000400fau, 0x00005b5cu, 0x00005b5du, 0x00005b5eu, + 0x000200f8u, 0x00005b5eu, 0x000500aau, 0x00000063u, 0x00005b60u, 0x00001cc4u, 0x000001abu, 0x000300f7u, + 0x00005b7fu, 0x00000000u, 0x000400fau, 0x00005b60u, 0x00005b61u, 0x00005b63u, 0x000200f8u, 0x00005b63u, + 0x000500afu, 0x00000063u, 0x00005b65u, 0x00001cc2u, 0x000001abu, 0x000300f7u, 0x00005b76u, 0x00000000u, + 0x000400fau, 0x00005b65u, 0x00005b66u, 0x00005b73u, 0x000200f8u, 0x00005b73u, 0x000500c7u, 0x00000008u, + 0x00005b75u, 0x00007a1bu, 0x000001bau, 0x000200f9u, 0x00005b76u, 0x000200f8u, 0x00005b66u, 0x000500c7u, + 0x00000008u, 0x00005b68u, 0x00001cc2u, 0x000001a8u, 0x000500c7u, 0x00000008u, 0x00005b6au, 0x00001cc0u, + 0x000001aeu, 0x00050084u, 0x00000008u, 0x00005b6bu, 0x00005b6au, 0x000001b1u, 0x000500c7u, 0x00000008u, + 0x00005b6du, 0x00006a43u, 0x000001aeu, 0x00050080u, 0x00000008u, 0x00005b6eu, 0x00005b6bu, 0x00005b6du, + 0x0003003eu, 0x00005b42u, 0x000012adu, 0x00060041u, 0x00000176u, 0x00005b6fu, 0x00005b42u, 0x00005b68u, + 0x00005b6eu, 0x0004003du, 0x0000000fu, 0x00005b70u, 0x00005b6fu, 0x00040071u, 0x00000006u, 0x00005b71u, + 0x00005b70u, 0x0004007cu, 0x00000008u, 0x00005b72u, 0x00005b71u, 0x000200f9u, 0x00005b76u, 0x000200f8u, + 0x00005b76u, 0x000700f5u, 0x00000008u, 0x00007a1du, 0x00005b72u, 0x00005b66u, 0x00005b75u, 0x00005b73u, + 0x000500aau, 0x00000063u, 0x00005b79u, 0x00001cc4u, 0x000001a8u, 0x000300f7u, 0x00005b7eu, 0x00000000u, + 0x000400fau, 0x00005b79u, 0x00005b7au, 0x00005b7eu, 0x000200f8u, 0x00005b7au, 0x000400c8u, 0x00000008u, + 0x00005b7cu, 0x00007a1du, 0x000500c7u, 0x00000008u, 0x00005b7du, 0x00005b7cu, 0x000001bau, 0x000200f9u, + 0x00005b7eu, 0x000200f8u, 0x00005b7eu, 0x000700f5u, 0x00000008u, 0x00007a26u, 0x00007a1du, 0x00005b76u, + 0x00005b7du, 0x00005b7au, 0x000200f9u, 0x00005b7fu, 0x000200f8u, 0x00005b61u, 0x000500c7u, 0x00000011u, + 0x00005b8au, 0x00007914u, 0x00000297u, 0x00040071u, 0x00000006u, 0x00005b8bu, 0x00005b8au, 0x0004007cu, + 0x00000008u, 0x00005b8cu, 0x00005b8bu, 0x000200f9u, 0x00005b7fu, 0x000200f8u, 0x00005b7fu, 0x000700f5u, + 0x00000008u, 0x00007a25u, 0x00005b8cu, 0x00005b61u, 0x00007a26u, 0x00005b7eu, 0x000200f9u, 0x00005b80u, + 0x000200f8u, 0x00005b5du, 0x000200f9u, 0x00005b80u, 0x000200f8u, 0x00005b80u, 0x000700f5u, 0x00000008u, + 0x00007a24u, 0x0000019eu, 0x00005b5du, 0x00007a25u, 0x00005b7fu, 0x000300f7u, 0x00001d31u, 0x00000000u, + 0x000400fau, 0x00001b44u, 0x00001ccau, 0x00001d15u, 0x000200f8u, 0x00001d15u, 0x000500c7u, 0x00000011u, + 0x00005f88u, 0x00007914u, 0x00000297u, 0x000500c4u, 0x00000011u, 0x00005f89u, 0x00005f88u, 0x00000299u, + 0x000500c5u, 0x00000011u, 0x00005f8au, 0x00005f89u, 0x0000029bu, 0x0004007cu, 0x00000012u, 0x00005f8bu, + 0x00005f8au, 0x00050051u, 0x0000000fu, 0x00005fa7u, 0x00007c6au, 0x00000000u, 0x00040071u, 0x00000006u, + 0x00005fa8u, 0x00005fa7u, 0x0004007cu, 0x00000008u, 0x00005fa9u, 0x00005fa8u, 0x00050051u, 0x0000000fu, + 0x00005fabu, 0x00007d80u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00005facu, 0x00005fabu, 0x0004007cu, + 0x00000008u, 0x00005fadu, 0x00005facu, 0x000300f7u, 0x0000601fu, 0x00000000u, 0x000f00fbu, 0x00005fa9u, + 0x00005ffeu, 0x00000000u, 0x00006004u, 0x00000001u, 0x00006009u, 0x00000002u, 0x0000600eu, 0x00000004u, + 0x00006013u, 0x00000007u, 0x00006019u, 0x00000006u, 0x0000601eu, 0x000200f8u, 0x0000601eu, 0x000200f9u, + 0x0000601fu, 0x000200f8u, 0x00006019u, 0x00040072u, 0x00000008u, 0x0000601cu, 0x00005f8bu, 0x00060050u, + 0x0000005du, 0x0000601du, 0x0000601cu, 0x0000601cu, 0x0000601cu, 0x000200f9u, 0x0000601fu, 0x000200f8u, + 0x00006013u, 0x0008004fu, 0x0000132au, 0x00006016u, 0x00002345u, 0x00002345u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00040071u, 0x0000026fu, 0x00006017u, 0x00006016u, 0x0004007cu, 0x0000005du, 0x00006018u, + 0x00006017u, 0x000200f9u, 0x0000601fu, 0x000200f8u, 0x0000600eu, 0x0008004fu, 0x0000065cu, 0x00006011u, + 0x00007a93u, 0x00007a93u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x00006012u, + 0x00006011u, 0x000200f9u, 0x0000601fu, 0x000200f8u, 0x00006009u, 0x0008004fu, 0x0000065cu, 0x0000600cu, + 0x0000719bu, 0x0000719bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x0000600du, + 0x0000600cu, 0x000200f9u, 0x0000601fu, 0x000200f8u, 0x00006004u, 0x000200f9u, 0x0000601fu, 0x000200f8u, + 0x00005ffeu, 0x0008004fu, 0x0000132au, 0x00006001u, 0x000022edu, 0x000022edu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00040071u, 0x0000026fu, 0x00006002u, 0x00006001u, 0x0004007cu, 0x0000005du, 0x00006003u, + 0x00006002u, 0x000200f9u, 0x0000601fu, 0x000200f8u, 0x0000601fu, 0x001100f5u, 0x0000005du, 0x00007f9cu, + 0x00006003u, 0x00005ffeu, 0x00008991u, 0x00006004u, 0x0000600du, 0x00006009u, 0x00006012u, 0x0000600eu, + 0x00006018u, 0x00006013u, 0x0000601du, 0x00006019u, 0x00001337u, 0x0000601eu, 0x000300f7u, 0x00006038u, + 0x00000000u, 0x000d00fbu, 0x00005fadu, 0x00006021u, 0x00000000u, 0x00006026u, 0x00000001u, 0x0000602au, + 0x00000002u, 0x0000602eu, 0x00000004u, 0x00006032u, 0x00000006u, 0x00006037u, 0x000200f8u, 0x00006037u, + 0x000200f9u, 0x00006038u, 0x000200f8u, 0x00006032u, 0x00050051u, 0x0000000fu, 0x00006034u, 0x00002345u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x00006035u, 0x00006034u, 0x0004007cu, 0x00000008u, 0x00006036u, + 0x00006035u, 0x000200f9u, 0x00006038u, 0x000200f8u, 0x0000602eu, 0x00050051u, 0x00000012u, 0x00006030u, + 0x00007a93u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00006031u, 0x00006030u, 0x000200f9u, 0x00006038u, + 0x000200f8u, 0x0000602au, 0x00050051u, 0x00000012u, 0x0000602cu, 0x0000719bu, 0x00000003u, 0x00040072u, + 0x00000008u, 0x0000602du, 0x0000602cu, 0x000200f9u, 0x00006038u, 0x000200f8u, 0x00006026u, 0x000200f9u, + 0x00006038u, 0x000200f8u, 0x00006021u, 0x00050051u, 0x0000000fu, 0x00006023u, 0x000022edu, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00006024u, 0x00006023u, 0x0004007cu, 0x00000008u, 0x00006025u, 0x00006024u, + 0x000200f9u, 0x00006038u, 0x000200f8u, 0x00006038u, 0x000f00f5u, 0x00000008u, 0x00007f9du, 0x00006025u, + 0x00006021u, 0x0000019eu, 0x00006026u, 0x0000602du, 0x0000602au, 0x00006031u, 0x0000602eu, 0x00006036u, + 0x00006032u, 0x00001336u, 0x00006037u, 0x00050051u, 0x00000008u, 0x0000603bu, 0x00007f9cu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x0000603cu, 0x00007f9cu, 0x00000001u, 0x00050051u, 0x00000008u, 0x0000603du, + 0x00007f9cu, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000603eu, 0x0000603bu, 0x0000603cu, 0x0000603du, + 0x00007f9du, 0x00050051u, 0x0000000fu, 0x00005fb1u, 0x00007c6au, 0x00000001u, 0x00040071u, 0x00000006u, + 0x00005fb2u, 0x00005fb1u, 0x0004007cu, 0x00000008u, 0x00005fb3u, 0x00005fb2u, 0x00050051u, 0x0000000fu, + 0x00005fb5u, 0x00007d80u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00005fb6u, 0x00005fb5u, 0x0004007cu, + 0x00000008u, 0x00005fb7u, 0x00005fb6u, 0x000300f7u, 0x0000606bu, 0x00000000u, 0x000d00fbu, 0x00005fb3u, + 0x00006044u, 0x00000000u, 0x0000604au, 0x00000001u, 0x0000604fu, 0x00000002u, 0x00006054u, 0x00000004u, + 0x00006059u, 0x00000007u, 0x0000605fu, 0x000200f8u, 0x0000605fu, 0x00050051u, 0x0000000fu, 0x00006061u, + 0x000022efu, 0x00000001u, 0x00040071u, 0x00000006u, 0x00006062u, 0x00006061u, 0x0004007cu, 0x00000008u, + 0x00006063u, 0x00006062u, 0x000500c4u, 0x00000008u, 0x00006064u, 0x00006063u, 0x000001dbu, 0x00050051u, + 0x0000000fu, 0x00006066u, 0x000022efu, 0x00000002u, 0x00040071u, 0x00000006u, 0x00006067u, 0x00006066u, + 0x0004007cu, 0x00000008u, 0x00006068u, 0x00006067u, 0x000500c5u, 0x00000008u, 0x00006069u, 0x00006064u, + 0x00006068u, 0x00060050u, 0x0000005du, 0x0000606au, 0x00006069u, 0x00006069u, 0x00006069u, 0x000200f9u, + 0x0000606bu, 0x000200f8u, 0x00006059u, 0x0008004fu, 0x0000132au, 0x0000605cu, 0x00002345u, 0x00002345u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, 0x0000605du, 0x0000605cu, 0x0004007cu, + 0x0000005du, 0x0000605eu, 0x0000605du, 0x000200f9u, 0x0000606bu, 0x000200f8u, 0x00006054u, 0x0008004fu, + 0x0000065cu, 0x00006057u, 0x00007a93u, 0x00007a93u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, + 0x0000005du, 0x00006058u, 0x00006057u, 0x000200f9u, 0x0000606bu, 0x000200f8u, 0x0000604fu, 0x0008004fu, + 0x0000065cu, 0x00006052u, 0x0000719bu, 0x0000719bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, + 0x0000005du, 0x00006053u, 0x00006052u, 0x000200f9u, 0x0000606bu, 0x000200f8u, 0x0000604au, 0x000200f9u, + 0x0000606bu, 0x000200f8u, 0x00006044u, 0x0008004fu, 0x0000132au, 0x00006047u, 0x000022efu, 0x000022efu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, 0x00006048u, 0x00006047u, 0x0004007cu, + 0x0000005du, 0x00006049u, 0x00006048u, 0x000200f9u, 0x0000606bu, 0x000200f8u, 0x0000606bu, 0x000f00f5u, + 0x0000005du, 0x00007f9fu, 0x00006049u, 0x00006044u, 0x00008991u, 0x0000604au, 0x00006053u, 0x0000604fu, + 0x00006058u, 0x00006054u, 0x0000605eu, 0x00006059u, 0x0000606au, 0x0000605fu, 0x000300f7u, 0x00006084u, + 0x00000000u, 0x000d00fbu, 0x00005fb7u, 0x0000606du, 0x00000000u, 0x00006072u, 0x00000001u, 0x00006076u, + 0x00000002u, 0x0000607au, 0x00000004u, 0x0000607eu, 0x00000006u, 0x00006083u, 0x000200f8u, 0x00006083u, + 0x000200f9u, 0x00006084u, 0x000200f8u, 0x0000607eu, 0x00050051u, 0x0000000fu, 0x00006080u, 0x00002345u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x00006081u, 0x00006080u, 0x0004007cu, 0x00000008u, 0x00006082u, + 0x00006081u, 0x000200f9u, 0x00006084u, 0x000200f8u, 0x0000607au, 0x00050051u, 0x00000012u, 0x0000607cu, + 0x00007a93u, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000607du, 0x0000607cu, 0x000200f9u, 0x00006084u, + 0x000200f8u, 0x00006076u, 0x00050051u, 0x00000012u, 0x00006078u, 0x0000719bu, 0x00000003u, 0x00040072u, + 0x00000008u, 0x00006079u, 0x00006078u, 0x000200f9u, 0x00006084u, 0x000200f8u, 0x00006072u, 0x000200f9u, + 0x00006084u, 0x000200f8u, 0x0000606du, 0x00050051u, 0x0000000fu, 0x0000606fu, 0x000022efu, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00006070u, 0x0000606fu, 0x0004007cu, 0x00000008u, 0x00006071u, 0x00006070u, + 0x000200f9u, 0x00006084u, 0x000200f8u, 0x00006084u, 0x000f00f5u, 0x00000008u, 0x00007fa0u, 0x00006071u, + 0x0000606du, 0x0000019eu, 0x00006072u, 0x00006079u, 0x00006076u, 0x0000607du, 0x0000607au, 0x00006082u, + 0x0000607eu, 0x00001336u, 0x00006083u, 0x00050051u, 0x00000008u, 0x00006087u, 0x00007f9fu, 0x00000000u, + 0x00050051u, 0x00000008u, 0x00006088u, 0x00007f9fu, 0x00000001u, 0x00050051u, 0x00000008u, 0x00006089u, + 0x00007f9fu, 0x00000002u, 0x00070050u, 0x00000009u, 0x0000608au, 0x00006087u, 0x00006088u, 0x00006089u, + 0x00007fa0u, 0x00050051u, 0x0000000fu, 0x00005fbbu, 0x00007c6au, 0x00000002u, 0x00040071u, 0x00000006u, + 0x00005fbcu, 0x00005fbbu, 0x0004007cu, 0x00000008u, 0x00005fbdu, 0x00005fbcu, 0x00050051u, 0x0000000fu, + 0x00005fbfu, 0x00007d80u, 0x00000002u, 0x00040071u, 0x00000006u, 0x00005fc0u, 0x00005fbfu, 0x0004007cu, + 0x00000008u, 0x00005fc1u, 0x00005fc0u, 0x000300f7u, 0x000060d1u, 0x00000000u, 0x001700fbu, 0x00005fbdu, + 0x00006090u, 0x00000000u, 0x00006096u, 0x00000007u, 0x0000609bu, 0x00000001u, 0x000060a0u, 0x00000002u, + 0x000060a5u, 0x00000004u, 0x000060aau, 0x00000008u, 0x000060b0u, 0x00000009u, 0x000060b5u, 0x0000000bu, + 0x000060bau, 0x0000000du, 0x000060c0u, 0x0000000fu, 0x000060c5u, 0x000200f8u, 0x000060c5u, 0x00050051u, + 0x0000000fu, 0x000060c7u, 0x000022f1u, 0x00000001u, 0x00040071u, 0x00000006u, 0x000060c8u, 0x000060c7u, + 0x0004007cu, 0x00000008u, 0x000060c9u, 0x000060c8u, 0x000500c4u, 0x00000008u, 0x000060cau, 0x000060c9u, + 0x000001dbu, 0x00050051u, 0x0000000fu, 0x000060ccu, 0x000022f1u, 0x00000002u, 0x00040071u, 0x00000006u, + 0x000060cdu, 0x000060ccu, 0x0004007cu, 0x00000008u, 0x000060ceu, 0x000060cdu, 0x000500c5u, 0x00000008u, + 0x000060cfu, 0x000060cau, 0x000060ceu, 0x00060050u, 0x0000005du, 0x000060d0u, 0x000060cfu, 0x000060cfu, + 0x000060cfu, 0x000200f9u, 0x000060d1u, 0x000200f8u, 0x000060c0u, 0x00040072u, 0x00000008u, 0x000060c3u, + 0x00007b4cu, 0x00060050u, 0x0000005du, 0x000060c4u, 0x000060c3u, 0x000060c3u, 0x000060c3u, 0x000200f9u, + 0x000060d1u, 0x000200f8u, 0x000060bau, 0x0008004fu, 0x0000132au, 0x000060bdu, 0x00002345u, 0x00002345u, + 0x00000003u, 0x00000003u, 0x00000003u, 0x00040071u, 0x0000026fu, 0x000060beu, 0x000060bdu, 0x0004007cu, + 0x0000005du, 0x000060bfu, 0x000060beu, 0x000200f9u, 0x000060d1u, 0x000200f8u, 0x000060b5u, 0x0008004fu, + 0x0000065cu, 0x000060b8u, 0x00007a93u, 0x00007a93u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, + 0x0000005du, 0x000060b9u, 0x000060b8u, 0x000200f9u, 0x000060d1u, 0x000200f8u, 0x000060b0u, 0x0008004fu, + 0x0000065cu, 0x000060b3u, 0x0000719bu, 0x0000719bu, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, + 0x0000005du, 0x000060b4u, 0x000060b3u, 0x000200f9u, 0x000060d1u, 0x000200f8u, 0x000060aau, 0x0008004fu, + 0x0000132au, 0x000060adu, 0x00002345u, 0x00002345u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x0000026fu, 0x000060aeu, 0x000060adu, 0x0004007cu, 0x0000005du, 0x000060afu, 0x000060aeu, 0x000200f9u, + 0x000060d1u, 0x000200f8u, 0x000060a5u, 0x0008004fu, 0x0000065cu, 0x000060a8u, 0x00007a93u, 0x00007a93u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x000060a9u, 0x000060a8u, 0x000200f9u, + 0x000060d1u, 0x000200f8u, 0x000060a0u, 0x0008004fu, 0x0000065cu, 0x000060a3u, 0x0000719bu, 0x0000719bu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x000060a4u, 0x000060a3u, 0x000200f9u, + 0x000060d1u, 0x000200f8u, 0x0000609bu, 0x000200f9u, 0x000060d1u, 0x000200f8u, 0x00006096u, 0x000200f9u, + 0x000060d1u, 0x000200f8u, 0x00006090u, 0x0008004fu, 0x0000132au, 0x00006093u, 0x000022f1u, 0x000022f1u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, 0x00006094u, 0x00006093u, 0x0004007cu, + 0x0000005du, 0x00006095u, 0x00006094u, 0x000200f9u, 0x000060d1u, 0x000200f8u, 0x000060d1u, 0x001900f5u, + 0x0000005du, 0x00007fa2u, 0x00006095u, 0x00006090u, 0x00008991u, 0x00006096u, 0x00008991u, 0x0000609bu, + 0x000060a4u, 0x000060a0u, 0x000060a9u, 0x000060a5u, 0x000060afu, 0x000060aau, 0x000060b4u, 0x000060b0u, + 0x000060b9u, 0x000060b5u, 0x000060bfu, 0x000060bau, 0x000060c4u, 0x000060c0u, 0x000060d0u, 0x000060c5u, + 0x000300f7u, 0x000060e9u, 0x00000000u, 0x000b00fbu, 0x00005fc1u, 0x000060d3u, 0x00000000u, 0x000060d8u, + 0x00000001u, 0x000060dcu, 0x00000002u, 0x000060e0u, 0x00000004u, 0x000060e4u, 0x000200f8u, 0x000060e4u, + 0x00050051u, 0x0000000fu, 0x000060e6u, 0x00002345u, 0x00000003u, 0x00040071u, 0x00000006u, 0x000060e7u, + 0x000060e6u, 0x0004007cu, 0x00000008u, 0x000060e8u, 0x000060e7u, 0x000200f9u, 0x000060e9u, 0x000200f8u, + 0x000060e0u, 0x00050051u, 0x00000012u, 0x000060e2u, 0x00007a93u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x000060e3u, 0x000060e2u, 0x000200f9u, 0x000060e9u, 0x000200f8u, 0x000060dcu, 0x00050051u, 0x00000012u, + 0x000060deu, 0x0000719bu, 0x00000003u, 0x00040072u, 0x00000008u, 0x000060dfu, 0x000060deu, 0x000200f9u, + 0x000060e9u, 0x000200f8u, 0x000060d8u, 0x00040072u, 0x00000008u, 0x000060dbu, 0x00007b4cu, 0x000200f9u, + 0x000060e9u, 0x000200f8u, 0x000060d3u, 0x00050051u, 0x0000000fu, 0x000060d5u, 0x000022f1u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x000060d6u, 0x000060d5u, 0x0004007cu, 0x00000008u, 0x000060d7u, 0x000060d6u, + 0x000200f9u, 0x000060e9u, 0x000200f8u, 0x000060e9u, 0x000d00f5u, 0x00000008u, 0x00007fa3u, 0x000060d7u, + 0x000060d3u, 0x000060dbu, 0x000060d8u, 0x000060dfu, 0x000060dcu, 0x000060e3u, 0x000060e0u, 0x000060e8u, + 0x000060e4u, 0x00050051u, 0x00000008u, 0x000060ecu, 0x00007fa2u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x000060edu, 0x00007fa2u, 0x00000001u, 0x00050051u, 0x00000008u, 0x000060eeu, 0x00007fa2u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x000060efu, 0x000060ecu, 0x000060edu, 0x000060eeu, 0x00007fa3u, 0x00050051u, + 0x0000000fu, 0x00005fc5u, 0x00007c6au, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005fc6u, 0x00005fc5u, + 0x0004007cu, 0x00000008u, 0x00005fc7u, 0x00005fc6u, 0x00050051u, 0x0000000fu, 0x00005fc9u, 0x00007d80u, + 0x00000003u, 0x00040071u, 0x00000006u, 0x00005fcau, 0x00005fc9u, 0x0004007cu, 0x00000008u, 0x00005fcbu, + 0x00005fcau, 0x000300f7u, 0x00006111u, 0x00000000u, 0x000d00fbu, 0x00005fc7u, 0x000060f5u, 0x00000000u, + 0x000060fbu, 0x00000001u, 0x00006100u, 0x00000002u, 0x00006105u, 0x00000004u, 0x0000610au, 0x00000006u, + 0x00006110u, 0x000200f8u, 0x00006110u, 0x000200f9u, 0x00006111u, 0x000200f8u, 0x0000610au, 0x0008004fu, + 0x0000132au, 0x0000610du, 0x00002345u, 0x00002345u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x0000026fu, 0x0000610eu, 0x0000610du, 0x0004007cu, 0x0000005du, 0x0000610fu, 0x0000610eu, 0x000200f9u, + 0x00006111u, 0x000200f8u, 0x00006105u, 0x0008004fu, 0x0000065cu, 0x00006108u, 0x00007a93u, 0x00007a93u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x00006109u, 0x00006108u, 0x000200f9u, + 0x00006111u, 0x000200f8u, 0x00006100u, 0x0008004fu, 0x0000065cu, 0x00006103u, 0x0000719bu, 0x0000719bu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x00006104u, 0x00006103u, 0x000200f9u, + 0x00006111u, 0x000200f8u, 0x000060fbu, 0x000200f9u, 0x00006111u, 0x000200f8u, 0x000060f5u, 0x0008004fu, + 0x0000132au, 0x000060f8u, 0x000022f3u, 0x000022f3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x0000026fu, 0x000060f9u, 0x000060f8u, 0x0004007cu, 0x0000005du, 0x000060fau, 0x000060f9u, 0x000200f9u, + 0x00006111u, 0x000200f8u, 0x00006111u, 0x000f00f5u, 0x0000005du, 0x00007fa5u, 0x000060fau, 0x000060f5u, + 0x00008991u, 0x000060fbu, 0x00006104u, 0x00006100u, 0x00006109u, 0x00006105u, 0x0000610fu, 0x0000610au, + 0x00001337u, 0x00006110u, 0x000300f7u, 0x0000612au, 0x00000000u, 0x000d00fbu, 0x00005fcbu, 0x00006113u, + 0x00000000u, 0x00006118u, 0x00000001u, 0x0000611cu, 0x00000002u, 0x00006120u, 0x00000004u, 0x00006124u, + 0x00000006u, 0x00006129u, 0x000200f8u, 0x00006129u, 0x000200f9u, 0x0000612au, 0x000200f8u, 0x00006124u, + 0x00050051u, 0x0000000fu, 0x00006126u, 0x00002345u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006127u, + 0x00006126u, 0x0004007cu, 0x00000008u, 0x00006128u, 0x00006127u, 0x000200f9u, 0x0000612au, 0x000200f8u, + 0x00006120u, 0x00050051u, 0x00000012u, 0x00006122u, 0x00007a93u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x00006123u, 0x00006122u, 0x000200f9u, 0x0000612au, 0x000200f8u, 0x0000611cu, 0x00050051u, 0x00000012u, + 0x0000611eu, 0x0000719bu, 0x00000003u, 0x00040072u, 0x00000008u, 0x0000611fu, 0x0000611eu, 0x000200f9u, + 0x0000612au, 0x000200f8u, 0x00006118u, 0x000200f9u, 0x0000612au, 0x000200f8u, 0x00006113u, 0x00050051u, + 0x0000000fu, 0x00006115u, 0x000022f3u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00006116u, 0x00006115u, + 0x0004007cu, 0x00000008u, 0x00006117u, 0x00006116u, 0x000200f9u, 0x0000612au, 0x000200f8u, 0x0000612au, + 0x000f00f5u, 0x00000008u, 0x00007fa6u, 0x00006117u, 0x00006113u, 0x0000019eu, 0x00006118u, 0x0000611fu, + 0x0000611cu, 0x00006123u, 0x00006120u, 0x00006128u, 0x00006124u, 0x00001336u, 0x00006129u, 0x00050051u, + 0x00000008u, 0x0000612du, 0x00007fa5u, 0x00000000u, 0x00050051u, 0x00000008u, 0x0000612eu, 0x00007fa5u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x0000612fu, 0x00007fa5u, 0x00000002u, 0x00070050u, 0x00000009u, + 0x00006130u, 0x0000612du, 0x0000612eu, 0x0000612fu, 0x00007fa6u, 0x000600cau, 0x00000009u, 0x00006138u, + 0x000060efu, 0x0000019eu, 0x000001deu, 0x00050082u, 0x00000009u, 0x00006152u, 0x0000603eu, 0x00008976u, + 0x000600cau, 0x00000009u, 0x00006153u, 0x00006152u, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, + 0x00006155u, 0x00006153u, 0x00008976u, 0x00050082u, 0x00000009u, 0x0000615au, 0x0000608au, 0x00008976u, + 0x000600cau, 0x00000009u, 0x0000615bu, 0x0000615au, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, + 0x0000615du, 0x0000615bu, 0x00008976u, 0x00050082u, 0x00000009u, 0x00006162u, 0x00006130u, 0x00008976u, + 0x000600cau, 0x00000009u, 0x00006163u, 0x00006162u, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, + 0x00006165u, 0x00006163u, 0x00008976u, 0x00050082u, 0x00000009u, 0x00006141u, 0x00006155u, 0x0000615du, + 0x00050084u, 0x00000009u, 0x00006143u, 0x00006141u, 0x00006138u, 0x00050080u, 0x00000009u, 0x00006146u, + 0x00006143u, 0x00008976u, 0x000500c3u, 0x00000009u, 0x00006149u, 0x00006146u, 0x00008980u, 0x00040072u, + 0x00000013u, 0x0000614au, 0x00006149u, 0x00040072u, 0x00000013u, 0x0000614cu, 0x00006165u, 0x00050080u, + 0x00000013u, 0x0000614du, 0x0000614au, 0x0000614cu, 0x00040072u, 0x00000009u, 0x00005fd4u, 0x0000614du, + 0x00050082u, 0x00000009u, 0x0000616au, 0x00005fd4u, 0x00008976u, 0x000600cau, 0x00000009u, 0x0000616cu, + 0x0000616au, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, 0x0000616fu, 0x0000616cu, 0x00008976u, + 0x0008000cu, 0x00000009u, 0x00006171u, 0x00000001u, 0x0000002du, 0x0000616fu, 0x00000312u, 0x00000314u, + 0x00040072u, 0x00000013u, 0x00006172u, 0x00006171u, 0x00050051u, 0x00000012u, 0x00005fd7u, 0x00006172u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x00005fd8u, 0x00005fd7u, 0x00050080u, 0x00000008u, 0x00005fdcu, + 0x00005fd8u, 0x000001a8u, 0x000500c3u, 0x00000008u, 0x00005fddu, 0x00005fdcu, 0x000001dbu, 0x00050080u, + 0x00000008u, 0x00005fdeu, 0x00005fd8u, 0x00005fddu, 0x000300f7u, 0x00005febu, 0x00000000u, 0x000400fau, + 0x00001b2fu, 0x00005fe0u, 0x00005fe8u, 0x000200f8u, 0x00005fe8u, 0x000500c4u, 0x00000008u, 0x00005feau, + 0x00001bdbu, 0x000001b4u, 0x000200f9u, 0x00005febu, 0x000200f8u, 0x00005fe0u, 0x00050084u, 0x00000008u, + 0x00005fe3u, 0x00005fdeu, 0x00001bdbu, 0x00050080u, 0x00000008u, 0x00005fe4u, 0x00005fe3u, 0x000001b1u, + 0x000500c3u, 0x00000008u, 0x00005fe5u, 0x00005fe4u, 0x000001aeu, 0x000500c3u, 0x00000008u, 0x00005fe7u, + 0x00005fe5u, 0x000001b4u, 0x000200f9u, 0x00005febu, 0x000200f8u, 0x00005febu, 0x000700f5u, 0x00000008u, + 0x00007fb5u, 0x00005fe7u, 0x00005fe0u, 0x00001bdbu, 0x00005fe8u, 0x000700f5u, 0x00000008u, 0x00007fb0u, + 0x00005fe5u, 0x00005fe0u, 0x00005feau, 0x00005fe8u, 0x000300f7u, 0x00005ff3u, 0x00000000u, 0x000400fau, + 0x00001b32u, 0x00005fedu, 0x00005fefu, 0x000200f8u, 0x00005fefu, 0x00050080u, 0x00000008u, 0x00005ff2u, + 0x00005fdeu, 0x00007a24u, 0x000200f9u, 0x00005ff3u, 0x000200f8u, 0x00005fedu, 0x000200f9u, 0x00005ff3u, + 0x000200f8u, 0x00005ff3u, 0x000700f5u, 0x00000008u, 0x00007fb1u, 0x00007fb0u, 0x00005fedu, 0x00005ff2u, + 0x00005fefu, 0x0008000cu, 0x00000008u, 0x00005ff5u, 0x00000001u, 0x0000002du, 0x00007fb1u, 0x0000019eu, + 0x00000313u, 0x00040072u, 0x00000012u, 0x00005ff6u, 0x00005ff5u, 0x00060052u, 0x00000013u, 0x00006a39u, + 0x00005ff6u, 0x00006172u, 0x00000003u, 0x00040072u, 0x0000031eu, 0x00001d2du, 0x00006a39u, 0x0004007cu, + 0x00000010u, 0x00001d2eu, 0x00001d2du, 0x00050051u, 0x0000000fu, 0x00001d30u, 0x00001d2eu, 0x00000003u, + 0x000200f9u, 0x00001d31u, 0x000200f8u, 0x00001ccau, 0x000500c7u, 0x00000011u, 0x00005b90u, 0x00007914u, + 0x00000297u, 0x000500c4u, 0x00000011u, 0x00005b91u, 0x00005b90u, 0x00000299u, 0x000500c5u, 0x00000011u, + 0x00005b92u, 0x00005b91u, 0x0000029bu, 0x0004007cu, 0x00000012u, 0x00005b93u, 0x00005b92u, 0x00050051u, + 0x0000000fu, 0x00005bb0u, 0x00007fc5u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00005bb1u, 0x00005bb0u, + 0x0004007cu, 0x00000008u, 0x00005bb2u, 0x00005bb1u, 0x00050051u, 0x0000000fu, 0x00005bb4u, 0x000080dbu, + 0x00000000u, 0x00040071u, 0x00000006u, 0x00005bb5u, 0x00005bb4u, 0x0004007cu, 0x00000008u, 0x00005bb6u, + 0x00005bb5u, 0x000300f7u, 0x00005c27u, 0x00000000u, 0x000f00fbu, 0x00005bb2u, 0x00005c06u, 0x00000000u, + 0x00005c0cu, 0x00000001u, 0x00005c11u, 0x00000002u, 0x00005c16u, 0x00000004u, 0x00005c1bu, 0x00000007u, + 0x00005c21u, 0x00000006u, 0x00005c26u, 0x000200f8u, 0x00005c26u, 0x000200f9u, 0x00005c27u, 0x000200f8u, + 0x00005c21u, 0x00040072u, 0x00000008u, 0x00005c24u, 0x00005b93u, 0x00060050u, 0x0000005du, 0x00005c25u, + 0x00005c24u, 0x00005c24u, 0x00005c24u, 0x000200f9u, 0x00005c27u, 0x000200f8u, 0x00005c1bu, 0x0008004fu, + 0x0000132au, 0x00005c1eu, 0x00002345u, 0x00002345u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x0000026fu, 0x00005c1fu, 0x00005c1eu, 0x0004007cu, 0x0000005du, 0x00005c20u, 0x00005c1fu, 0x000200f9u, + 0x00005c27u, 0x000200f8u, 0x00005c16u, 0x0008004fu, 0x0000065cu, 0x00005c19u, 0x00007a93u, 0x00007a93u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x00005c1au, 0x00005c19u, 0x000200f9u, + 0x00005c27u, 0x000200f8u, 0x00005c11u, 0x0008004fu, 0x0000065cu, 0x00005c14u, 0x0000719bu, 0x0000719bu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x00005c15u, 0x00005c14u, 0x000200f9u, + 0x00005c27u, 0x000200f8u, 0x00005c0cu, 0x000200f9u, 0x00005c27u, 0x000200f8u, 0x00005c06u, 0x0008004fu, + 0x0000132au, 0x00005c09u, 0x000022e5u, 0x000022e5u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, + 0x0000026fu, 0x00005c0au, 0x00005c09u, 0x0004007cu, 0x0000005du, 0x00005c0bu, 0x00005c0au, 0x000200f9u, + 0x00005c27u, 0x000200f8u, 0x00005c27u, 0x001100f5u, 0x0000005du, 0x000081e3u, 0x00005c0bu, 0x00005c06u, + 0x00008991u, 0x00005c0cu, 0x00005c15u, 0x00005c11u, 0x00005c1au, 0x00005c16u, 0x00005c20u, 0x00005c1bu, + 0x00005c25u, 0x00005c21u, 0x00001337u, 0x00005c26u, 0x000300f7u, 0x00005c40u, 0x00000000u, 0x000d00fbu, + 0x00005bb6u, 0x00005c29u, 0x00000000u, 0x00005c2eu, 0x00000001u, 0x00005c32u, 0x00000002u, 0x00005c36u, + 0x00000004u, 0x00005c3au, 0x00000006u, 0x00005c3fu, 0x000200f8u, 0x00005c3fu, 0x000200f9u, 0x00005c40u, + 0x000200f8u, 0x00005c3au, 0x00050051u, 0x0000000fu, 0x00005c3cu, 0x00002345u, 0x00000003u, 0x00040071u, + 0x00000006u, 0x00005c3du, 0x00005c3cu, 0x0004007cu, 0x00000008u, 0x00005c3eu, 0x00005c3du, 0x000200f9u, + 0x00005c40u, 0x000200f8u, 0x00005c36u, 0x00050051u, 0x00000012u, 0x00005c38u, 0x00007a93u, 0x00000003u, + 0x00040072u, 0x00000008u, 0x00005c39u, 0x00005c38u, 0x000200f9u, 0x00005c40u, 0x000200f8u, 0x00005c32u, + 0x00050051u, 0x00000012u, 0x00005c34u, 0x0000719bu, 0x00000003u, 0x00040072u, 0x00000008u, 0x00005c35u, + 0x00005c34u, 0x000200f9u, 0x00005c40u, 0x000200f8u, 0x00005c2eu, 0x000200f9u, 0x00005c40u, 0x000200f8u, + 0x00005c29u, 0x00050051u, 0x0000000fu, 0x00005c2bu, 0x000022e5u, 0x00000003u, 0x00040071u, 0x00000006u, + 0x00005c2cu, 0x00005c2bu, 0x0004007cu, 0x00000008u, 0x00005c2du, 0x00005c2cu, 0x000200f9u, 0x00005c40u, + 0x000200f8u, 0x00005c40u, 0x000f00f5u, 0x00000008u, 0x000081e4u, 0x00005c2du, 0x00005c29u, 0x0000019eu, + 0x00005c2eu, 0x00005c35u, 0x00005c32u, 0x00005c39u, 0x00005c36u, 0x00005c3eu, 0x00005c3au, 0x00001336u, + 0x00005c3fu, 0x00050051u, 0x00000008u, 0x00005c43u, 0x000081e3u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00005c44u, 0x000081e3u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005c45u, 0x000081e3u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00005c46u, 0x00005c43u, 0x00005c44u, 0x00005c45u, 0x000081e4u, 0x00050051u, + 0x0000000fu, 0x00005bbau, 0x00007fc5u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00005bbbu, 0x00005bbau, + 0x0004007cu, 0x00000008u, 0x00005bbcu, 0x00005bbbu, 0x00050051u, 0x0000000fu, 0x00005bbeu, 0x000080dbu, + 0x00000001u, 0x00040071u, 0x00000006u, 0x00005bbfu, 0x00005bbeu, 0x0004007cu, 0x00000008u, 0x00005bc0u, + 0x00005bbfu, 0x000300f7u, 0x00005c73u, 0x00000000u, 0x000d00fbu, 0x00005bbcu, 0x00005c4cu, 0x00000000u, + 0x00005c52u, 0x00000001u, 0x00005c57u, 0x00000002u, 0x00005c5cu, 0x00000004u, 0x00005c61u, 0x00000007u, + 0x00005c67u, 0x000200f8u, 0x00005c67u, 0x00050051u, 0x0000000fu, 0x00005c69u, 0x000022e7u, 0x00000001u, + 0x00040071u, 0x00000006u, 0x00005c6au, 0x00005c69u, 0x0004007cu, 0x00000008u, 0x00005c6bu, 0x00005c6au, + 0x000500c4u, 0x00000008u, 0x00005c6cu, 0x00005c6bu, 0x000001dbu, 0x00050051u, 0x0000000fu, 0x00005c6eu, + 0x000022e7u, 0x00000002u, 0x00040071u, 0x00000006u, 0x00005c6fu, 0x00005c6eu, 0x0004007cu, 0x00000008u, + 0x00005c70u, 0x00005c6fu, 0x000500c5u, 0x00000008u, 0x00005c71u, 0x00005c6cu, 0x00005c70u, 0x00060050u, + 0x0000005du, 0x00005c72u, 0x00005c71u, 0x00005c71u, 0x00005c71u, 0x000200f9u, 0x00005c73u, 0x000200f8u, + 0x00005c61u, 0x0008004fu, 0x0000132au, 0x00005c64u, 0x00002345u, 0x00002345u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005c65u, 0x00005c64u, 0x0004007cu, 0x0000005du, 0x00005c66u, + 0x00005c65u, 0x000200f9u, 0x00005c73u, 0x000200f8u, 0x00005c5cu, 0x0008004fu, 0x0000065cu, 0x00005c5fu, + 0x00007a93u, 0x00007a93u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x00005c60u, + 0x00005c5fu, 0x000200f9u, 0x00005c73u, 0x000200f8u, 0x00005c57u, 0x0008004fu, 0x0000065cu, 0x00005c5au, + 0x0000719bu, 0x0000719bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x00005c5bu, + 0x00005c5au, 0x000200f9u, 0x00005c73u, 0x000200f8u, 0x00005c52u, 0x000200f9u, 0x00005c73u, 0x000200f8u, + 0x00005c4cu, 0x0008004fu, 0x0000132au, 0x00005c4fu, 0x000022e7u, 0x000022e7u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005c50u, 0x00005c4fu, 0x0004007cu, 0x0000005du, 0x00005c51u, + 0x00005c50u, 0x000200f9u, 0x00005c73u, 0x000200f8u, 0x00005c73u, 0x000f00f5u, 0x0000005du, 0x000081e6u, + 0x00005c51u, 0x00005c4cu, 0x00008991u, 0x00005c52u, 0x00005c5bu, 0x00005c57u, 0x00005c60u, 0x00005c5cu, + 0x00005c66u, 0x00005c61u, 0x00005c72u, 0x00005c67u, 0x000300f7u, 0x00005c8cu, 0x00000000u, 0x000d00fbu, + 0x00005bc0u, 0x00005c75u, 0x00000000u, 0x00005c7au, 0x00000001u, 0x00005c7eu, 0x00000002u, 0x00005c82u, + 0x00000004u, 0x00005c86u, 0x00000006u, 0x00005c8bu, 0x000200f8u, 0x00005c8bu, 0x000200f9u, 0x00005c8cu, + 0x000200f8u, 0x00005c86u, 0x00050051u, 0x0000000fu, 0x00005c88u, 0x00002345u, 0x00000003u, 0x00040071u, + 0x00000006u, 0x00005c89u, 0x00005c88u, 0x0004007cu, 0x00000008u, 0x00005c8au, 0x00005c89u, 0x000200f9u, + 0x00005c8cu, 0x000200f8u, 0x00005c82u, 0x00050051u, 0x00000012u, 0x00005c84u, 0x00007a93u, 0x00000003u, + 0x00040072u, 0x00000008u, 0x00005c85u, 0x00005c84u, 0x000200f9u, 0x00005c8cu, 0x000200f8u, 0x00005c7eu, + 0x00050051u, 0x00000012u, 0x00005c80u, 0x0000719bu, 0x00000003u, 0x00040072u, 0x00000008u, 0x00005c81u, + 0x00005c80u, 0x000200f9u, 0x00005c8cu, 0x000200f8u, 0x00005c7au, 0x000200f9u, 0x00005c8cu, 0x000200f8u, + 0x00005c75u, 0x00050051u, 0x0000000fu, 0x00005c77u, 0x000022e7u, 0x00000003u, 0x00040071u, 0x00000006u, + 0x00005c78u, 0x00005c77u, 0x0004007cu, 0x00000008u, 0x00005c79u, 0x00005c78u, 0x000200f9u, 0x00005c8cu, + 0x000200f8u, 0x00005c8cu, 0x000f00f5u, 0x00000008u, 0x000081e7u, 0x00005c79u, 0x00005c75u, 0x0000019eu, + 0x00005c7au, 0x00005c81u, 0x00005c7eu, 0x00005c85u, 0x00005c82u, 0x00005c8au, 0x00005c86u, 0x00001336u, + 0x00005c8bu, 0x00050051u, 0x00000008u, 0x00005c8fu, 0x000081e6u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00005c90u, 0x000081e6u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005c91u, 0x000081e6u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00005c92u, 0x00005c8fu, 0x00005c90u, 0x00005c91u, 0x000081e7u, 0x00050051u, + 0x0000000fu, 0x00005bc4u, 0x00007fc5u, 0x00000002u, 0x00040071u, 0x00000006u, 0x00005bc5u, 0x00005bc4u, + 0x0004007cu, 0x00000008u, 0x00005bc6u, 0x00005bc5u, 0x00050051u, 0x0000000fu, 0x00005bc8u, 0x000080dbu, + 0x00000002u, 0x00040071u, 0x00000006u, 0x00005bc9u, 0x00005bc8u, 0x0004007cu, 0x00000008u, 0x00005bcau, + 0x00005bc9u, 0x000300f7u, 0x00005cd9u, 0x00000000u, 0x001700fbu, 0x00005bc6u, 0x00005c98u, 0x00000000u, + 0x00005c9eu, 0x00000007u, 0x00005ca3u, 0x00000001u, 0x00005ca8u, 0x00000002u, 0x00005cadu, 0x00000004u, + 0x00005cb2u, 0x00000008u, 0x00005cb8u, 0x00000009u, 0x00005cbdu, 0x0000000bu, 0x00005cc2u, 0x0000000du, + 0x00005cc8u, 0x0000000fu, 0x00005ccdu, 0x000200f8u, 0x00005ccdu, 0x00050051u, 0x0000000fu, 0x00005ccfu, + 0x000022e9u, 0x00000001u, 0x00040071u, 0x00000006u, 0x00005cd0u, 0x00005ccfu, 0x0004007cu, 0x00000008u, + 0x00005cd1u, 0x00005cd0u, 0x000500c4u, 0x00000008u, 0x00005cd2u, 0x00005cd1u, 0x000001dbu, 0x00050051u, + 0x0000000fu, 0x00005cd4u, 0x000022e9u, 0x00000002u, 0x00040071u, 0x00000006u, 0x00005cd5u, 0x00005cd4u, + 0x0004007cu, 0x00000008u, 0x00005cd6u, 0x00005cd5u, 0x000500c5u, 0x00000008u, 0x00005cd7u, 0x00005cd2u, + 0x00005cd6u, 0x00060050u, 0x0000005du, 0x00005cd8u, 0x00005cd7u, 0x00005cd7u, 0x00005cd7u, 0x000200f9u, + 0x00005cd9u, 0x000200f8u, 0x00005cc8u, 0x00040072u, 0x00000008u, 0x00005ccbu, 0x00007b4cu, 0x00060050u, + 0x0000005du, 0x00005cccu, 0x00005ccbu, 0x00005ccbu, 0x00005ccbu, 0x000200f9u, 0x00005cd9u, 0x000200f8u, + 0x00005cc2u, 0x0008004fu, 0x0000132au, 0x00005cc5u, 0x00002345u, 0x00002345u, 0x00000003u, 0x00000003u, + 0x00000003u, 0x00040071u, 0x0000026fu, 0x00005cc6u, 0x00005cc5u, 0x0004007cu, 0x0000005du, 0x00005cc7u, + 0x00005cc6u, 0x000200f9u, 0x00005cd9u, 0x000200f8u, 0x00005cbdu, 0x0008004fu, 0x0000065cu, 0x00005cc0u, + 0x00007a93u, 0x00007a93u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, 0x0000005du, 0x00005cc1u, + 0x00005cc0u, 0x000200f9u, 0x00005cd9u, 0x000200f8u, 0x00005cb8u, 0x0008004fu, 0x0000065cu, 0x00005cbbu, + 0x0000719bu, 0x0000719bu, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, 0x0000005du, 0x00005cbcu, + 0x00005cbbu, 0x000200f9u, 0x00005cd9u, 0x000200f8u, 0x00005cb2u, 0x0008004fu, 0x0000132au, 0x00005cb5u, + 0x00002345u, 0x00002345u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005cb6u, + 0x00005cb5u, 0x0004007cu, 0x0000005du, 0x00005cb7u, 0x00005cb6u, 0x000200f9u, 0x00005cd9u, 0x000200f8u, + 0x00005cadu, 0x0008004fu, 0x0000065cu, 0x00005cb0u, 0x00007a93u, 0x00007a93u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00040072u, 0x0000005du, 0x00005cb1u, 0x00005cb0u, 0x000200f9u, 0x00005cd9u, 0x000200f8u, + 0x00005ca8u, 0x0008004fu, 0x0000065cu, 0x00005cabu, 0x0000719bu, 0x0000719bu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00040072u, 0x0000005du, 0x00005cacu, 0x00005cabu, 0x000200f9u, 0x00005cd9u, 0x000200f8u, + 0x00005ca3u, 0x000200f9u, 0x00005cd9u, 0x000200f8u, 0x00005c9eu, 0x000200f9u, 0x00005cd9u, 0x000200f8u, + 0x00005c98u, 0x0008004fu, 0x0000132au, 0x00005c9bu, 0x000022e9u, 0x000022e9u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005c9cu, 0x00005c9bu, 0x0004007cu, 0x0000005du, 0x00005c9du, + 0x00005c9cu, 0x000200f9u, 0x00005cd9u, 0x000200f8u, 0x00005cd9u, 0x001900f5u, 0x0000005du, 0x000081e9u, + 0x00005c9du, 0x00005c98u, 0x00008991u, 0x00005c9eu, 0x00008991u, 0x00005ca3u, 0x00005cacu, 0x00005ca8u, + 0x00005cb1u, 0x00005cadu, 0x00005cb7u, 0x00005cb2u, 0x00005cbcu, 0x00005cb8u, 0x00005cc1u, 0x00005cbdu, + 0x00005cc7u, 0x00005cc2u, 0x00005cccu, 0x00005cc8u, 0x00005cd8u, 0x00005ccdu, 0x000300f7u, 0x00005cf1u, + 0x00000000u, 0x000b00fbu, 0x00005bcau, 0x00005cdbu, 0x00000000u, 0x00005ce0u, 0x00000001u, 0x00005ce4u, + 0x00000002u, 0x00005ce8u, 0x00000004u, 0x00005cecu, 0x000200f8u, 0x00005cecu, 0x00050051u, 0x0000000fu, + 0x00005ceeu, 0x00002345u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005cefu, 0x00005ceeu, 0x0004007cu, + 0x00000008u, 0x00005cf0u, 0x00005cefu, 0x000200f9u, 0x00005cf1u, 0x000200f8u, 0x00005ce8u, 0x00050051u, + 0x00000012u, 0x00005ceau, 0x00007a93u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00005cebu, 0x00005ceau, + 0x000200f9u, 0x00005cf1u, 0x000200f8u, 0x00005ce4u, 0x00050051u, 0x00000012u, 0x00005ce6u, 0x0000719bu, + 0x00000003u, 0x00040072u, 0x00000008u, 0x00005ce7u, 0x00005ce6u, 0x000200f9u, 0x00005cf1u, 0x000200f8u, + 0x00005ce0u, 0x00040072u, 0x00000008u, 0x00005ce3u, 0x00007b4cu, 0x000200f9u, 0x00005cf1u, 0x000200f8u, + 0x00005cdbu, 0x00050051u, 0x0000000fu, 0x00005cddu, 0x000022e9u, 0x00000003u, 0x00040071u, 0x00000006u, + 0x00005cdeu, 0x00005cddu, 0x0004007cu, 0x00000008u, 0x00005cdfu, 0x00005cdeu, 0x000200f9u, 0x00005cf1u, + 0x000200f8u, 0x00005cf1u, 0x000d00f5u, 0x00000008u, 0x000081eau, 0x00005cdfu, 0x00005cdbu, 0x00005ce3u, + 0x00005ce0u, 0x00005ce7u, 0x00005ce4u, 0x00005cebu, 0x00005ce8u, 0x00005cf0u, 0x00005cecu, 0x00050051u, + 0x00000008u, 0x00005cf4u, 0x000081e9u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005cf5u, 0x000081e9u, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00005cf6u, 0x000081e9u, 0x00000002u, 0x00070050u, 0x00000009u, + 0x00005cf7u, 0x00005cf4u, 0x00005cf5u, 0x00005cf6u, 0x000081eau, 0x00050051u, 0x0000000fu, 0x00005bceu, + 0x00007fc5u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005bcfu, 0x00005bceu, 0x0004007cu, 0x00000008u, + 0x00005bd0u, 0x00005bcfu, 0x00050051u, 0x0000000fu, 0x00005bd2u, 0x000080dbu, 0x00000003u, 0x00040071u, + 0x00000006u, 0x00005bd3u, 0x00005bd2u, 0x0004007cu, 0x00000008u, 0x00005bd4u, 0x00005bd3u, 0x000300f7u, + 0x00005d19u, 0x00000000u, 0x000d00fbu, 0x00005bd0u, 0x00005cfdu, 0x00000000u, 0x00005d03u, 0x00000001u, + 0x00005d08u, 0x00000002u, 0x00005d0du, 0x00000004u, 0x00005d12u, 0x00000006u, 0x00005d18u, 0x000200f8u, + 0x00005d18u, 0x000200f9u, 0x00005d19u, 0x000200f8u, 0x00005d12u, 0x0008004fu, 0x0000132au, 0x00005d15u, + 0x00002345u, 0x00002345u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005d16u, + 0x00005d15u, 0x0004007cu, 0x0000005du, 0x00005d17u, 0x00005d16u, 0x000200f9u, 0x00005d19u, 0x000200f8u, + 0x00005d0du, 0x0008004fu, 0x0000065cu, 0x00005d10u, 0x00007a93u, 0x00007a93u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00040072u, 0x0000005du, 0x00005d11u, 0x00005d10u, 0x000200f9u, 0x00005d19u, 0x000200f8u, + 0x00005d08u, 0x0008004fu, 0x0000065cu, 0x00005d0bu, 0x0000719bu, 0x0000719bu, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00040072u, 0x0000005du, 0x00005d0cu, 0x00005d0bu, 0x000200f9u, 0x00005d19u, 0x000200f8u, + 0x00005d03u, 0x000200f9u, 0x00005d19u, 0x000200f8u, 0x00005cfdu, 0x0008004fu, 0x0000132au, 0x00005d00u, + 0x000022ebu, 0x000022ebu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005d01u, + 0x00005d00u, 0x0004007cu, 0x0000005du, 0x00005d02u, 0x00005d01u, 0x000200f9u, 0x00005d19u, 0x000200f8u, + 0x00005d19u, 0x000f00f5u, 0x0000005du, 0x000081ecu, 0x00005d02u, 0x00005cfdu, 0x00008991u, 0x00005d03u, + 0x00005d0cu, 0x00005d08u, 0x00005d11u, 0x00005d0du, 0x00005d17u, 0x00005d12u, 0x00001337u, 0x00005d18u, + 0x000300f7u, 0x00005d32u, 0x00000000u, 0x000d00fbu, 0x00005bd4u, 0x00005d1bu, 0x00000000u, 0x00005d20u, + 0x00000001u, 0x00005d24u, 0x00000002u, 0x00005d28u, 0x00000004u, 0x00005d2cu, 0x00000006u, 0x00005d31u, + 0x000200f8u, 0x00005d31u, 0x000200f9u, 0x00005d32u, 0x000200f8u, 0x00005d2cu, 0x00050051u, 0x0000000fu, + 0x00005d2eu, 0x00002345u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005d2fu, 0x00005d2eu, 0x0004007cu, + 0x00000008u, 0x00005d30u, 0x00005d2fu, 0x000200f9u, 0x00005d32u, 0x000200f8u, 0x00005d28u, 0x00050051u, + 0x00000012u, 0x00005d2au, 0x00007a93u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00005d2bu, 0x00005d2au, + 0x000200f9u, 0x00005d32u, 0x000200f8u, 0x00005d24u, 0x00050051u, 0x00000012u, 0x00005d26u, 0x0000719bu, + 0x00000003u, 0x00040072u, 0x00000008u, 0x00005d27u, 0x00005d26u, 0x000200f9u, 0x00005d32u, 0x000200f8u, + 0x00005d20u, 0x000200f9u, 0x00005d32u, 0x000200f8u, 0x00005d1bu, 0x00050051u, 0x0000000fu, 0x00005d1du, + 0x000022ebu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005d1eu, 0x00005d1du, 0x0004007cu, 0x00000008u, + 0x00005d1fu, 0x00005d1eu, 0x000200f9u, 0x00005d32u, 0x000200f8u, 0x00005d32u, 0x000f00f5u, 0x00000008u, + 0x000081edu, 0x00005d1fu, 0x00005d1bu, 0x0000019eu, 0x00005d20u, 0x00005d27u, 0x00005d24u, 0x00005d2bu, + 0x00005d28u, 0x00005d30u, 0x00005d2cu, 0x00001336u, 0x00005d31u, 0x00050051u, 0x00000008u, 0x00005d35u, + 0x000081ecu, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005d36u, 0x000081ecu, 0x00000001u, 0x00050051u, + 0x00000008u, 0x00005d37u, 0x000081ecu, 0x00000002u, 0x00070050u, 0x00000009u, 0x00005d38u, 0x00005d35u, + 0x00005d36u, 0x00005d37u, 0x000081edu, 0x000600cau, 0x00000009u, 0x00005d40u, 0x00005cf7u, 0x0000019eu, + 0x000001deu, 0x00050082u, 0x00000009u, 0x00005d5au, 0x00005c46u, 0x00008976u, 0x000600cau, 0x00000009u, + 0x00005d5bu, 0x00005d5au, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, 0x00005d5du, 0x00005d5bu, + 0x00008976u, 0x00050082u, 0x00000009u, 0x00005d62u, 0x00005c92u, 0x00008976u, 0x000600cau, 0x00000009u, + 0x00005d63u, 0x00005d62u, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, 0x00005d65u, 0x00005d63u, + 0x00008976u, 0x00050082u, 0x00000009u, 0x00005d6au, 0x00005d38u, 0x00008976u, 0x000600cau, 0x00000009u, + 0x00005d6bu, 0x00005d6au, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, 0x00005d6du, 0x00005d6bu, + 0x00008976u, 0x00050082u, 0x00000009u, 0x00005d49u, 0x00005d5du, 0x00005d65u, 0x00050084u, 0x00000009u, + 0x00005d4bu, 0x00005d49u, 0x00005d40u, 0x00050080u, 0x00000009u, 0x00005d4eu, 0x00005d4bu, 0x00008976u, + 0x000500c3u, 0x00000009u, 0x00005d51u, 0x00005d4eu, 0x00008980u, 0x00040072u, 0x00000013u, 0x00005d52u, + 0x00005d51u, 0x00040072u, 0x00000013u, 0x00005d54u, 0x00005d6du, 0x00050080u, 0x00000013u, 0x00005d55u, + 0x00005d52u, 0x00005d54u, 0x000300f7u, 0x00005bffu, 0x00000000u, 0x000400fau, 0x00001b50u, 0x00005bddu, + 0x00005bfeu, 0x000200f8u, 0x00005bfeu, 0x000200f9u, 0x00005bffu, 0x000200f8u, 0x00005bddu, 0x00050051u, + 0x00000012u, 0x00005bdfu, 0x00005d55u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00005be0u, 0x00005bdfu, + 0x00050082u, 0x00000008u, 0x00005d71u, 0x00005be0u, 0x00000308u, 0x000600cau, 0x00000008u, 0x00005d72u, + 0x00005d71u, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000008u, 0x00005d73u, 0x00005d72u, 0x00000308u, + 0x0008000cu, 0x00000008u, 0x00005d74u, 0x00000001u, 0x0000002du, 0x00005d73u, 0x0000019eu, 0x00000313u, + 0x00050080u, 0x00000008u, 0x00005be4u, 0x00005d74u, 0x000001a8u, 0x000500c3u, 0x00000008u, 0x00005be5u, + 0x00005be4u, 0x000001dbu, 0x00050080u, 0x00000008u, 0x00005be6u, 0x00005d74u, 0x00005be5u, 0x000300f7u, + 0x00005bf9u, 0x00000000u, 0x000400fau, 0x00001b32u, 0x00005be8u, 0x00005bf5u, 0x000200f8u, 0x00005bf5u, + 0x00050080u, 0x00000008u, 0x00005bf8u, 0x00005be6u, 0x00007a24u, 0x000200f9u, 0x00005bf9u, 0x000200f8u, + 0x00005be8u, 0x000300f7u, 0x00005bf3u, 0x00000000u, 0x000400fau, 0x00001b2fu, 0x00005beau, 0x00005bf0u, + 0x000200f8u, 0x00005bf0u, 0x000500c4u, 0x00000008u, 0x00005bf2u, 0x00001bdbu, 0x000001b4u, 0x000200f9u, + 0x00005bf3u, 0x000200f8u, 0x00005beau, 0x00050084u, 0x00000008u, 0x00005bedu, 0x00005be6u, 0x00001bdbu, + 0x00050080u, 0x00000008u, 0x00005beeu, 0x00005bedu, 0x000001b1u, 0x000500c3u, 0x00000008u, 0x00005befu, + 0x00005beeu, 0x000001aeu, 0x000200f9u, 0x00005bf3u, 0x000200f8u, 0x00005bf3u, 0x000700f5u, 0x00000008u, + 0x000081eeu, 0x00005befu, 0x00005beau, 0x00005bf2u, 0x00005bf0u, 0x000200f9u, 0x00005bf9u, 0x000200f8u, + 0x00005bf9u, 0x000700f5u, 0x00000008u, 0x000081efu, 0x000081eeu, 0x00005bf3u, 0x00005bf8u, 0x00005bf5u, + 0x0008000cu, 0x00000008u, 0x00005bfbu, 0x00000001u, 0x0000002du, 0x000081efu, 0x0000019eu, 0x00000313u, + 0x00040072u, 0x0000031du, 0x00005bfcu, 0x00005bfbu, 0x0004007cu, 0x0000000fu, 0x00005bfdu, 0x00005bfcu, + 0x000200f9u, 0x00005bffu, 0x000200f8u, 0x00005bffu, 0x000700f5u, 0x0000000fu, 0x000081f0u, 0x00005bfdu, + 0x00005bf9u, 0x000002d6u, 0x00005bfeu, 0x000500c7u, 0x00000006u, 0x00001cf8u, 0x00008994u, 0x000018e4u, + 0x000500abu, 0x00000063u, 0x00001cf9u, 0x00001cf8u, 0x00000290u, 0x000300f7u, 0x00001d09u, 0x00000000u, + 0x000400fau, 0x00001cf9u, 0x00001cfau, 0x00001d09u, 0x000200f8u, 0x00001cfau, 0x00050080u, 0x00000008u, + 0x00001cfcu, 0x00006a43u, 0x00000990u, 0x0004007cu, 0x00000006u, 0x00001cfdu, 0x00001cfcu, 0x00050080u, + 0x00000008u, 0x00001cffu, 0x00006a3fu, 0x000001bau, 0x0004007cu, 0x00000006u, 0x00001d00u, 0x00001cffu, + 0x00060041u, 0x000016b3u, 0x00001d02u, 0x000004eau, 0x0000019eu, 0x000001aeu, 0x0004003du, 0x00000006u, + 0x00001d03u, 0x00001d02u, 0x00050080u, 0x00000006u, 0x00001d04u, 0x00001988u, 0x00001d03u, 0x00050080u, + 0x00000006u, 0x00001d05u, 0x00001d04u, 0x00000648u, 0x00060050u, 0x0000026fu, 0x00005d7au, 0x00001cfdu, + 0x00001d00u, 0x00001d05u, 0x000500c2u, 0x0000026fu, 0x00005d7du, 0x00005d7au, 0x00008970u, 0x0008004fu, + 0x0000026fu, 0x00005d7fu, 0x00005d7au, 0x00005d7au, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, + 0x0000026fu, 0x00005d80u, 0x00005d7du, 0x00005d7fu, 0x00050084u, 0x0000026fu, 0x00005d82u, 0x00005d80u, + 0x00008971u, 0x000500c2u, 0x0000026fu, 0x00005d85u, 0x00005d82u, 0x00008970u, 0x0008004fu, 0x0000026fu, + 0x00005d87u, 0x00005d82u, 0x00005d82u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x0000026fu, + 0x00005d88u, 0x00005d85u, 0x00005d87u, 0x00050084u, 0x0000026fu, 0x00005d8au, 0x00005d88u, 0x00008971u, + 0x000500c2u, 0x0000026fu, 0x00005d8du, 0x00005d8au, 0x00008970u, 0x0008004fu, 0x0000026fu, 0x00005d8fu, + 0x00005d8au, 0x00005d8au, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x0000026fu, 0x00005d90u, + 0x00005d8du, 0x00005d8fu, 0x00050084u, 0x0000026fu, 0x00005d92u, 0x00005d90u, 0x00008971u, 0x00050051u, + 0x00000006u, 0x00005d94u, 0x00005d92u, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00005d95u, 0x00005d94u, + 0x00000293u, 0x00040071u, 0x00000011u, 0x00005d96u, 0x00005d95u, 0x000500c7u, 0x00000011u, 0x00005d9au, + 0x00005d96u, 0x00000297u, 0x000500c4u, 0x00000011u, 0x00005d9bu, 0x00005d9au, 0x00000299u, 0x000500c5u, + 0x00000011u, 0x00005d9cu, 0x00005d9bu, 0x0000029bu, 0x0004007cu, 0x00000012u, 0x00005d9du, 0x00005d9cu, + 0x000200f9u, 0x00001d09u, 0x000200f8u, 0x00001d09u, 0x000700f5u, 0x00000011u, 0x000083a7u, 0x00007914u, + 0x00005bffu, 0x00005d96u, 0x00001cfau, 0x000700f5u, 0x00000012u, 0x00008349u, 0x00005b93u, 0x00005bffu, + 0x00005d9du, 0x00001cfau, 0x00050051u, 0x0000000fu, 0x00005db9u, 0x00007c6au, 0x00000000u, 0x00040071u, + 0x00000006u, 0x00005dbau, 0x00005db9u, 0x0004007cu, 0x00000008u, 0x00005dbbu, 0x00005dbau, 0x00050051u, + 0x0000000fu, 0x00005dbdu, 0x00007d80u, 0x00000000u, 0x00040071u, 0x00000006u, 0x00005dbeu, 0x00005dbdu, + 0x0004007cu, 0x00000008u, 0x00005dbfu, 0x00005dbeu, 0x000300f7u, 0x00005e31u, 0x00000000u, 0x000f00fbu, + 0x00005dbbu, 0x00005e10u, 0x00000000u, 0x00005e16u, 0x00000001u, 0x00005e1bu, 0x00000002u, 0x00005e20u, + 0x00000004u, 0x00005e25u, 0x00000007u, 0x00005e2bu, 0x00000006u, 0x00005e30u, 0x000200f8u, 0x00005e30u, + 0x000200f9u, 0x00005e31u, 0x000200f8u, 0x00005e2bu, 0x00040072u, 0x00000008u, 0x00005e2eu, 0x00008349u, + 0x00060050u, 0x0000005du, 0x00005e2fu, 0x00005e2eu, 0x00005e2eu, 0x00005e2eu, 0x000200f9u, 0x00005e31u, + 0x000200f8u, 0x00005e25u, 0x0008004fu, 0x0000132au, 0x00005e28u, 0x00002345u, 0x00002345u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005e29u, 0x00005e28u, 0x0004007cu, 0x0000005du, + 0x00005e2au, 0x00005e29u, 0x000200f9u, 0x00005e31u, 0x000200f8u, 0x00005e20u, 0x0008004fu, 0x0000065cu, + 0x00005e23u, 0x0000719bu, 0x0000719bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, + 0x00005e24u, 0x00005e23u, 0x000200f9u, 0x00005e31u, 0x000200f8u, 0x00005e1bu, 0x0008004fu, 0x0000065cu, + 0x00005e1eu, 0x00007a93u, 0x00007a93u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, + 0x00005e1fu, 0x00005e1eu, 0x000200f9u, 0x00005e31u, 0x000200f8u, 0x00005e16u, 0x0008004fu, 0x0000065cu, + 0x00005e19u, 0x00005d55u, 0x00005d55u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, + 0x00005e1au, 0x00005e19u, 0x000200f9u, 0x00005e31u, 0x000200f8u, 0x00005e10u, 0x0008004fu, 0x0000132au, + 0x00005e13u, 0x000022edu, 0x000022edu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, + 0x00005e14u, 0x00005e13u, 0x0004007cu, 0x0000005du, 0x00005e15u, 0x00005e14u, 0x000200f9u, 0x00005e31u, + 0x000200f8u, 0x00005e31u, 0x001100f5u, 0x0000005du, 0x00008381u, 0x00005e15u, 0x00005e10u, 0x00005e1au, + 0x00005e16u, 0x00005e1fu, 0x00005e1bu, 0x00005e24u, 0x00005e20u, 0x00005e2au, 0x00005e25u, 0x00005e2fu, + 0x00005e2bu, 0x00001337u, 0x00005e30u, 0x000300f7u, 0x00005e4au, 0x00000000u, 0x000d00fbu, 0x00005dbfu, + 0x00005e33u, 0x00000000u, 0x00005e38u, 0x00000001u, 0x00005e3cu, 0x00000002u, 0x00005e40u, 0x00000004u, + 0x00005e44u, 0x00000006u, 0x00005e49u, 0x000200f8u, 0x00005e49u, 0x000200f9u, 0x00005e4au, 0x000200f8u, + 0x00005e44u, 0x00050051u, 0x0000000fu, 0x00005e46u, 0x00002345u, 0x00000003u, 0x00040071u, 0x00000006u, + 0x00005e47u, 0x00005e46u, 0x0004007cu, 0x00000008u, 0x00005e48u, 0x00005e47u, 0x000200f9u, 0x00005e4au, + 0x000200f8u, 0x00005e40u, 0x00050051u, 0x00000012u, 0x00005e42u, 0x0000719bu, 0x00000003u, 0x00040072u, + 0x00000008u, 0x00005e43u, 0x00005e42u, 0x000200f9u, 0x00005e4au, 0x000200f8u, 0x00005e3cu, 0x00050051u, + 0x00000012u, 0x00005e3eu, 0x00007a93u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00005e3fu, 0x00005e3eu, + 0x000200f9u, 0x00005e4au, 0x000200f8u, 0x00005e38u, 0x00050051u, 0x00000012u, 0x00005e3au, 0x00005d55u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x00005e3bu, 0x00005e3au, 0x000200f9u, 0x00005e4au, 0x000200f8u, + 0x00005e33u, 0x00050051u, 0x0000000fu, 0x00005e35u, 0x000022edu, 0x00000003u, 0x00040071u, 0x00000006u, + 0x00005e36u, 0x00005e35u, 0x0004007cu, 0x00000008u, 0x00005e37u, 0x00005e36u, 0x000200f9u, 0x00005e4au, + 0x000200f8u, 0x00005e4au, 0x000f00f5u, 0x00000008u, 0x00008382u, 0x00005e37u, 0x00005e33u, 0x00005e3bu, + 0x00005e38u, 0x00005e3fu, 0x00005e3cu, 0x00005e43u, 0x00005e40u, 0x00005e48u, 0x00005e44u, 0x00001336u, + 0x00005e49u, 0x00050051u, 0x00000008u, 0x00005e4du, 0x00008381u, 0x00000000u, 0x00050051u, 0x00000008u, + 0x00005e4eu, 0x00008381u, 0x00000001u, 0x00050051u, 0x00000008u, 0x00005e4fu, 0x00008381u, 0x00000002u, + 0x00070050u, 0x00000009u, 0x00005e50u, 0x00005e4du, 0x00005e4eu, 0x00005e4fu, 0x00008382u, 0x00050051u, + 0x0000000fu, 0x00005dc3u, 0x00007c6au, 0x00000001u, 0x00040071u, 0x00000006u, 0x00005dc4u, 0x00005dc3u, + 0x0004007cu, 0x00000008u, 0x00005dc5u, 0x00005dc4u, 0x00050051u, 0x0000000fu, 0x00005dc7u, 0x00007d80u, + 0x00000001u, 0x00040071u, 0x00000006u, 0x00005dc8u, 0x00005dc7u, 0x0004007cu, 0x00000008u, 0x00005dc9u, + 0x00005dc8u, 0x000300f7u, 0x00005e7du, 0x00000000u, 0x000d00fbu, 0x00005dc5u, 0x00005e56u, 0x00000000u, + 0x00005e5cu, 0x00000001u, 0x00005e61u, 0x00000002u, 0x00005e66u, 0x00000004u, 0x00005e6bu, 0x00000007u, + 0x00005e71u, 0x000200f8u, 0x00005e71u, 0x00050051u, 0x0000000fu, 0x00005e73u, 0x000022efu, 0x00000001u, + 0x00040071u, 0x00000006u, 0x00005e74u, 0x00005e73u, 0x0004007cu, 0x00000008u, 0x00005e75u, 0x00005e74u, + 0x000500c4u, 0x00000008u, 0x00005e76u, 0x00005e75u, 0x000001dbu, 0x00050051u, 0x0000000fu, 0x00005e78u, + 0x000022efu, 0x00000002u, 0x00040071u, 0x00000006u, 0x00005e79u, 0x00005e78u, 0x0004007cu, 0x00000008u, + 0x00005e7au, 0x00005e79u, 0x000500c5u, 0x00000008u, 0x00005e7bu, 0x00005e76u, 0x00005e7au, 0x00060050u, + 0x0000005du, 0x00005e7cu, 0x00005e7bu, 0x00005e7bu, 0x00005e7bu, 0x000200f9u, 0x00005e7du, 0x000200f8u, + 0x00005e6bu, 0x0008004fu, 0x0000132au, 0x00005e6eu, 0x00002345u, 0x00002345u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005e6fu, 0x00005e6eu, 0x0004007cu, 0x0000005du, 0x00005e70u, + 0x00005e6fu, 0x000200f9u, 0x00005e7du, 0x000200f8u, 0x00005e66u, 0x0008004fu, 0x0000065cu, 0x00005e69u, + 0x0000719bu, 0x0000719bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x00005e6au, + 0x00005e69u, 0x000200f9u, 0x00005e7du, 0x000200f8u, 0x00005e61u, 0x0008004fu, 0x0000065cu, 0x00005e64u, + 0x00007a93u, 0x00007a93u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x00005e65u, + 0x00005e64u, 0x000200f9u, 0x00005e7du, 0x000200f8u, 0x00005e5cu, 0x0008004fu, 0x0000065cu, 0x00005e5fu, + 0x00005d55u, 0x00005d55u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, 0x00005e60u, + 0x00005e5fu, 0x000200f9u, 0x00005e7du, 0x000200f8u, 0x00005e56u, 0x0008004fu, 0x0000132au, 0x00005e59u, + 0x000022efu, 0x000022efu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005e5au, + 0x00005e59u, 0x0004007cu, 0x0000005du, 0x00005e5bu, 0x00005e5au, 0x000200f9u, 0x00005e7du, 0x000200f8u, + 0x00005e7du, 0x000f00f5u, 0x0000005du, 0x00008384u, 0x00005e5bu, 0x00005e56u, 0x00005e60u, 0x00005e5cu, + 0x00005e65u, 0x00005e61u, 0x00005e6au, 0x00005e66u, 0x00005e70u, 0x00005e6bu, 0x00005e7cu, 0x00005e71u, + 0x000300f7u, 0x00005e96u, 0x00000000u, 0x000d00fbu, 0x00005dc9u, 0x00005e7fu, 0x00000000u, 0x00005e84u, + 0x00000001u, 0x00005e88u, 0x00000002u, 0x00005e8cu, 0x00000004u, 0x00005e90u, 0x00000006u, 0x00005e95u, + 0x000200f8u, 0x00005e95u, 0x000200f9u, 0x00005e96u, 0x000200f8u, 0x00005e90u, 0x00050051u, 0x0000000fu, + 0x00005e92u, 0x00002345u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005e93u, 0x00005e92u, 0x0004007cu, + 0x00000008u, 0x00005e94u, 0x00005e93u, 0x000200f9u, 0x00005e96u, 0x000200f8u, 0x00005e8cu, 0x00050051u, + 0x00000012u, 0x00005e8eu, 0x0000719bu, 0x00000003u, 0x00040072u, 0x00000008u, 0x00005e8fu, 0x00005e8eu, + 0x000200f9u, 0x00005e96u, 0x000200f8u, 0x00005e88u, 0x00050051u, 0x00000012u, 0x00005e8au, 0x00007a93u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x00005e8bu, 0x00005e8au, 0x000200f9u, 0x00005e96u, 0x000200f8u, + 0x00005e84u, 0x00050051u, 0x00000012u, 0x00005e86u, 0x00005d55u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x00005e87u, 0x00005e86u, 0x000200f9u, 0x00005e96u, 0x000200f8u, 0x00005e7fu, 0x00050051u, 0x0000000fu, + 0x00005e81u, 0x000022efu, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005e82u, 0x00005e81u, 0x0004007cu, + 0x00000008u, 0x00005e83u, 0x00005e82u, 0x000200f9u, 0x00005e96u, 0x000200f8u, 0x00005e96u, 0x000f00f5u, + 0x00000008u, 0x00008385u, 0x00005e83u, 0x00005e7fu, 0x00005e87u, 0x00005e84u, 0x00005e8bu, 0x00005e88u, + 0x00005e8fu, 0x00005e8cu, 0x00005e94u, 0x00005e90u, 0x00001336u, 0x00005e95u, 0x00050051u, 0x00000008u, + 0x00005e99u, 0x00008384u, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005e9au, 0x00008384u, 0x00000001u, + 0x00050051u, 0x00000008u, 0x00005e9bu, 0x00008384u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00005e9cu, + 0x00005e99u, 0x00005e9au, 0x00005e9bu, 0x00008385u, 0x00050051u, 0x0000000fu, 0x00005dcdu, 0x00007c6au, + 0x00000002u, 0x00040071u, 0x00000006u, 0x00005dceu, 0x00005dcdu, 0x0004007cu, 0x00000008u, 0x00005dcfu, + 0x00005dceu, 0x00050051u, 0x0000000fu, 0x00005dd1u, 0x00007d80u, 0x00000002u, 0x00040071u, 0x00000006u, + 0x00005dd2u, 0x00005dd1u, 0x0004007cu, 0x00000008u, 0x00005dd3u, 0x00005dd2u, 0x000300f7u, 0x00005ee3u, + 0x00000000u, 0x001700fbu, 0x00005dcfu, 0x00005ea2u, 0x00000000u, 0x00005ea8u, 0x00000007u, 0x00005eadu, + 0x00000001u, 0x00005eb2u, 0x00000002u, 0x00005eb7u, 0x00000004u, 0x00005ebcu, 0x00000008u, 0x00005ec2u, + 0x00000009u, 0x00005ec7u, 0x0000000bu, 0x00005eccu, 0x0000000du, 0x00005ed2u, 0x0000000fu, 0x00005ed7u, + 0x000200f8u, 0x00005ed7u, 0x00050051u, 0x0000000fu, 0x00005ed9u, 0x000022f1u, 0x00000001u, 0x00040071u, + 0x00000006u, 0x00005edau, 0x00005ed9u, 0x0004007cu, 0x00000008u, 0x00005edbu, 0x00005edau, 0x000500c4u, + 0x00000008u, 0x00005edcu, 0x00005edbu, 0x000001dbu, 0x00050051u, 0x0000000fu, 0x00005edeu, 0x000022f1u, + 0x00000002u, 0x00040071u, 0x00000006u, 0x00005edfu, 0x00005edeu, 0x0004007cu, 0x00000008u, 0x00005ee0u, + 0x00005edfu, 0x000500c5u, 0x00000008u, 0x00005ee1u, 0x00005edcu, 0x00005ee0u, 0x00060050u, 0x0000005du, + 0x00005ee2u, 0x00005ee1u, 0x00005ee1u, 0x00005ee1u, 0x000200f9u, 0x00005ee3u, 0x000200f8u, 0x00005ed2u, + 0x00040072u, 0x00000008u, 0x00005ed5u, 0x00007b4cu, 0x00060050u, 0x0000005du, 0x00005ed6u, 0x00005ed5u, + 0x00005ed5u, 0x00005ed5u, 0x000200f9u, 0x00005ee3u, 0x000200f8u, 0x00005eccu, 0x0008004fu, 0x0000132au, + 0x00005ecfu, 0x00002345u, 0x00002345u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040071u, 0x0000026fu, + 0x00005ed0u, 0x00005ecfu, 0x0004007cu, 0x0000005du, 0x00005ed1u, 0x00005ed0u, 0x000200f9u, 0x00005ee3u, + 0x000200f8u, 0x00005ec7u, 0x0008004fu, 0x0000065cu, 0x00005ecau, 0x0000719bu, 0x0000719bu, 0x00000003u, + 0x00000003u, 0x00000003u, 0x00040072u, 0x0000005du, 0x00005ecbu, 0x00005ecau, 0x000200f9u, 0x00005ee3u, + 0x000200f8u, 0x00005ec2u, 0x0008004fu, 0x0000065cu, 0x00005ec5u, 0x00007a93u, 0x00007a93u, 0x00000003u, + 0x00000003u, 0x00000003u, 0x00040072u, 0x0000005du, 0x00005ec6u, 0x00005ec5u, 0x000200f9u, 0x00005ee3u, + 0x000200f8u, 0x00005ebcu, 0x0008004fu, 0x0000132au, 0x00005ebfu, 0x00002345u, 0x00002345u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005ec0u, 0x00005ebfu, 0x0004007cu, 0x0000005du, + 0x00005ec1u, 0x00005ec0u, 0x000200f9u, 0x00005ee3u, 0x000200f8u, 0x00005eb7u, 0x0008004fu, 0x0000065cu, + 0x00005ebau, 0x0000719bu, 0x0000719bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, + 0x00005ebbu, 0x00005ebau, 0x000200f9u, 0x00005ee3u, 0x000200f8u, 0x00005eb2u, 0x0008004fu, 0x0000065cu, + 0x00005eb5u, 0x00007a93u, 0x00007a93u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, + 0x00005eb6u, 0x00005eb5u, 0x000200f9u, 0x00005ee3u, 0x000200f8u, 0x00005eadu, 0x0008004fu, 0x0000065cu, + 0x00005eb0u, 0x00005d55u, 0x00005d55u, 0x00000003u, 0x00000003u, 0x00000003u, 0x00040072u, 0x0000005du, + 0x00005eb1u, 0x00005eb0u, 0x000200f9u, 0x00005ee3u, 0x000200f8u, 0x00005ea8u, 0x0008004fu, 0x0000065cu, + 0x00005eabu, 0x00005d55u, 0x00005d55u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, + 0x00005eacu, 0x00005eabu, 0x000200f9u, 0x00005ee3u, 0x000200f8u, 0x00005ea2u, 0x0008004fu, 0x0000132au, + 0x00005ea5u, 0x000022f1u, 0x000022f1u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, + 0x00005ea6u, 0x00005ea5u, 0x0004007cu, 0x0000005du, 0x00005ea7u, 0x00005ea6u, 0x000200f9u, 0x00005ee3u, + 0x000200f8u, 0x00005ee3u, 0x001900f5u, 0x0000005du, 0x00008387u, 0x00005ea7u, 0x00005ea2u, 0x00005eacu, + 0x00005ea8u, 0x00005eb1u, 0x00005eadu, 0x00005eb6u, 0x00005eb2u, 0x00005ebbu, 0x00005eb7u, 0x00005ec1u, + 0x00005ebcu, 0x00005ec6u, 0x00005ec2u, 0x00005ecbu, 0x00005ec7u, 0x00005ed1u, 0x00005eccu, 0x00005ed6u, + 0x00005ed2u, 0x00005ee2u, 0x00005ed7u, 0x000300f7u, 0x00005efbu, 0x00000000u, 0x000b00fbu, 0x00005dd3u, + 0x00005ee5u, 0x00000000u, 0x00005eeau, 0x00000001u, 0x00005eeeu, 0x00000002u, 0x00005ef2u, 0x00000004u, + 0x00005ef6u, 0x000200f8u, 0x00005ef6u, 0x00050051u, 0x0000000fu, 0x00005ef8u, 0x00002345u, 0x00000003u, + 0x00040071u, 0x00000006u, 0x00005ef9u, 0x00005ef8u, 0x0004007cu, 0x00000008u, 0x00005efau, 0x00005ef9u, + 0x000200f9u, 0x00005efbu, 0x000200f8u, 0x00005ef2u, 0x00050051u, 0x00000012u, 0x00005ef4u, 0x0000719bu, + 0x00000003u, 0x00040072u, 0x00000008u, 0x00005ef5u, 0x00005ef4u, 0x000200f9u, 0x00005efbu, 0x000200f8u, + 0x00005eeeu, 0x00050051u, 0x00000012u, 0x00005ef0u, 0x00007a93u, 0x00000003u, 0x00040072u, 0x00000008u, + 0x00005ef1u, 0x00005ef0u, 0x000200f9u, 0x00005efbu, 0x000200f8u, 0x00005eeau, 0x00040072u, 0x00000008u, + 0x00005eedu, 0x00007b4cu, 0x000200f9u, 0x00005efbu, 0x000200f8u, 0x00005ee5u, 0x00050051u, 0x0000000fu, + 0x00005ee7u, 0x000022f1u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005ee8u, 0x00005ee7u, 0x0004007cu, + 0x00000008u, 0x00005ee9u, 0x00005ee8u, 0x000200f9u, 0x00005efbu, 0x000200f8u, 0x00005efbu, 0x000d00f5u, + 0x00000008u, 0x00008388u, 0x00005ee9u, 0x00005ee5u, 0x00005eedu, 0x00005eeau, 0x00005ef1u, 0x00005eeeu, + 0x00005ef5u, 0x00005ef2u, 0x00005efau, 0x00005ef6u, 0x00050051u, 0x00000008u, 0x00005efeu, 0x00008387u, + 0x00000000u, 0x00050051u, 0x00000008u, 0x00005effu, 0x00008387u, 0x00000001u, 0x00050051u, 0x00000008u, + 0x00005f00u, 0x00008387u, 0x00000002u, 0x00070050u, 0x00000009u, 0x00005f01u, 0x00005efeu, 0x00005effu, + 0x00005f00u, 0x00008388u, 0x00050051u, 0x0000000fu, 0x00005dd7u, 0x00007c6au, 0x00000003u, 0x00040071u, + 0x00000006u, 0x00005dd8u, 0x00005dd7u, 0x0004007cu, 0x00000008u, 0x00005dd9u, 0x00005dd8u, 0x00050051u, + 0x0000000fu, 0x00005ddbu, 0x00007d80u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005ddcu, 0x00005ddbu, + 0x0004007cu, 0x00000008u, 0x00005dddu, 0x00005ddcu, 0x000300f7u, 0x00005f23u, 0x00000000u, 0x000d00fbu, + 0x00005dd9u, 0x00005f07u, 0x00000000u, 0x00005f0du, 0x00000001u, 0x00005f12u, 0x00000002u, 0x00005f17u, + 0x00000004u, 0x00005f1cu, 0x00000006u, 0x00005f22u, 0x000200f8u, 0x00005f22u, 0x000200f9u, 0x00005f23u, + 0x000200f8u, 0x00005f1cu, 0x0008004fu, 0x0000132au, 0x00005f1fu, 0x00002345u, 0x00002345u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, 0x00005f20u, 0x00005f1fu, 0x0004007cu, 0x0000005du, + 0x00005f21u, 0x00005f20u, 0x000200f9u, 0x00005f23u, 0x000200f8u, 0x00005f17u, 0x0008004fu, 0x0000065cu, + 0x00005f1au, 0x0000719bu, 0x0000719bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, + 0x00005f1bu, 0x00005f1au, 0x000200f9u, 0x00005f23u, 0x000200f8u, 0x00005f12u, 0x0008004fu, 0x0000065cu, + 0x00005f15u, 0x00007a93u, 0x00007a93u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, + 0x00005f16u, 0x00005f15u, 0x000200f9u, 0x00005f23u, 0x000200f8u, 0x00005f0du, 0x0008004fu, 0x0000065cu, + 0x00005f10u, 0x00005d55u, 0x00005d55u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040072u, 0x0000005du, + 0x00005f11u, 0x00005f10u, 0x000200f9u, 0x00005f23u, 0x000200f8u, 0x00005f07u, 0x0008004fu, 0x0000132au, + 0x00005f0au, 0x000022f3u, 0x000022f3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00040071u, 0x0000026fu, + 0x00005f0bu, 0x00005f0au, 0x0004007cu, 0x0000005du, 0x00005f0cu, 0x00005f0bu, 0x000200f9u, 0x00005f23u, + 0x000200f8u, 0x00005f23u, 0x000f00f5u, 0x0000005du, 0x0000838au, 0x00005f0cu, 0x00005f07u, 0x00005f11u, + 0x00005f0du, 0x00005f16u, 0x00005f12u, 0x00005f1bu, 0x00005f17u, 0x00005f21u, 0x00005f1cu, 0x00001337u, + 0x00005f22u, 0x000300f7u, 0x00005f3cu, 0x00000000u, 0x000d00fbu, 0x00005dddu, 0x00005f25u, 0x00000000u, + 0x00005f2au, 0x00000001u, 0x00005f2eu, 0x00000002u, 0x00005f32u, 0x00000004u, 0x00005f36u, 0x00000006u, + 0x00005f3bu, 0x000200f8u, 0x00005f3bu, 0x000200f9u, 0x00005f3cu, 0x000200f8u, 0x00005f36u, 0x00050051u, + 0x0000000fu, 0x00005f38u, 0x00002345u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005f39u, 0x00005f38u, + 0x0004007cu, 0x00000008u, 0x00005f3au, 0x00005f39u, 0x000200f9u, 0x00005f3cu, 0x000200f8u, 0x00005f32u, + 0x00050051u, 0x00000012u, 0x00005f34u, 0x0000719bu, 0x00000003u, 0x00040072u, 0x00000008u, 0x00005f35u, + 0x00005f34u, 0x000200f9u, 0x00005f3cu, 0x000200f8u, 0x00005f2eu, 0x00050051u, 0x00000012u, 0x00005f30u, + 0x00007a93u, 0x00000003u, 0x00040072u, 0x00000008u, 0x00005f31u, 0x00005f30u, 0x000200f9u, 0x00005f3cu, + 0x000200f8u, 0x00005f2au, 0x00050051u, 0x00000012u, 0x00005f2cu, 0x00005d55u, 0x00000003u, 0x00040072u, + 0x00000008u, 0x00005f2du, 0x00005f2cu, 0x000200f9u, 0x00005f3cu, 0x000200f8u, 0x00005f25u, 0x00050051u, + 0x0000000fu, 0x00005f27u, 0x000022f3u, 0x00000003u, 0x00040071u, 0x00000006u, 0x00005f28u, 0x00005f27u, + 0x0004007cu, 0x00000008u, 0x00005f29u, 0x00005f28u, 0x000200f9u, 0x00005f3cu, 0x000200f8u, 0x00005f3cu, + 0x000f00f5u, 0x00000008u, 0x0000838bu, 0x00005f29u, 0x00005f25u, 0x00005f2du, 0x00005f2au, 0x00005f31u, + 0x00005f2eu, 0x00005f35u, 0x00005f32u, 0x00005f3au, 0x00005f36u, 0x00001336u, 0x00005f3bu, 0x00050051u, + 0x00000008u, 0x00005f3fu, 0x0000838au, 0x00000000u, 0x00050051u, 0x00000008u, 0x00005f40u, 0x0000838au, + 0x00000001u, 0x00050051u, 0x00000008u, 0x00005f41u, 0x0000838au, 0x00000002u, 0x00070050u, 0x00000009u, + 0x00005f42u, 0x00005f3fu, 0x00005f40u, 0x00005f41u, 0x0000838bu, 0x000600cau, 0x00000009u, 0x00005f4au, + 0x00005f01u, 0x0000019eu, 0x000001deu, 0x00050082u, 0x00000009u, 0x00005f64u, 0x00005e50u, 0x00008976u, + 0x000600cau, 0x00000009u, 0x00005f65u, 0x00005f64u, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, + 0x00005f67u, 0x00005f65u, 0x00008976u, 0x00050082u, 0x00000009u, 0x00005f6cu, 0x00005e9cu, 0x00008976u, + 0x000600cau, 0x00000009u, 0x00005f6du, 0x00005f6cu, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, + 0x00005f6fu, 0x00005f6du, 0x00008976u, 0x00050082u, 0x00000009u, 0x00005f74u, 0x00005f42u, 0x00008976u, + 0x000600cau, 0x00000009u, 0x00005f75u, 0x00005f74u, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, + 0x00005f77u, 0x00005f75u, 0x00008976u, 0x00050082u, 0x00000009u, 0x00005f53u, 0x00005f67u, 0x00005f6fu, + 0x00050084u, 0x00000009u, 0x00005f55u, 0x00005f53u, 0x00005f4au, 0x00050080u, 0x00000009u, 0x00005f58u, + 0x00005f55u, 0x00008976u, 0x000500c3u, 0x00000009u, 0x00005f5bu, 0x00005f58u, 0x00008980u, 0x00040072u, + 0x00000013u, 0x00005f5cu, 0x00005f5bu, 0x00040072u, 0x00000013u, 0x00005f5eu, 0x00005f77u, 0x00050080u, + 0x00000013u, 0x00005f5fu, 0x00005f5cu, 0x00005f5eu, 0x00040072u, 0x00000009u, 0x00005de6u, 0x00005f5fu, + 0x00050082u, 0x00000009u, 0x00005f7cu, 0x00005de6u, 0x00008976u, 0x000600cau, 0x00000009u, 0x00005f7eu, + 0x00005f7cu, 0x0000019eu, 0x000001deu, 0x00050080u, 0x00000009u, 0x00005f81u, 0x00005f7eu, 0x00008976u, + 0x0008000cu, 0x00000009u, 0x00005f83u, 0x00000001u, 0x0000002du, 0x00005f81u, 0x00000312u, 0x00000314u, + 0x00040072u, 0x00000013u, 0x00005f84u, 0x00005f83u, 0x00050051u, 0x00000012u, 0x00005de9u, 0x00005f84u, + 0x00000003u, 0x00040072u, 0x00000008u, 0x00005deau, 0x00005de9u, 0x00050080u, 0x00000008u, 0x00005deeu, + 0x00005deau, 0x000001a8u, 0x000500c3u, 0x00000008u, 0x00005defu, 0x00005deeu, 0x000001dbu, 0x00050080u, + 0x00000008u, 0x00005df0u, 0x00005deau, 0x00005defu, 0x000300f7u, 0x00005dfdu, 0x00000000u, 0x000400fau, + 0x00001b2fu, 0x00005df2u, 0x00005dfau, 0x000200f8u, 0x00005dfau, 0x000500c4u, 0x00000008u, 0x00005dfcu, + 0x00001bdbu, 0x000001b4u, 0x000200f9u, 0x00005dfdu, 0x000200f8u, 0x00005df2u, 0x00050084u, 0x00000008u, + 0x00005df5u, 0x00005df0u, 0x00001bdbu, 0x00050080u, 0x00000008u, 0x00005df6u, 0x00005df5u, 0x000001b1u, + 0x000500c3u, 0x00000008u, 0x00005df7u, 0x00005df6u, 0x000001aeu, 0x000500c3u, 0x00000008u, 0x00005df9u, + 0x00005df7u, 0x000001b4u, 0x000200f9u, 0x00005dfdu, 0x000200f8u, 0x00005dfdu, 0x000700f5u, 0x00000008u, + 0x0000839au, 0x00005df9u, 0x00005df2u, 0x00001bdbu, 0x00005dfau, 0x000700f5u, 0x00000008u, 0x00008395u, + 0x00005df7u, 0x00005df2u, 0x00005dfcu, 0x00005dfau, 0x000300f7u, 0x00005e05u, 0x00000000u, 0x000400fau, + 0x00001b32u, 0x00005dffu, 0x00005e01u, 0x000200f8u, 0x00005e01u, 0x00050080u, 0x00000008u, 0x00005e04u, + 0x00005df0u, 0x00007a24u, 0x000200f9u, 0x00005e05u, 0x000200f8u, 0x00005dffu, 0x000200f9u, 0x00005e05u, + 0x000200f8u, 0x00005e05u, 0x000700f5u, 0x00000008u, 0x00008396u, 0x00008395u, 0x00005dffu, 0x00005e04u, + 0x00005e01u, 0x0008000cu, 0x00000008u, 0x00005e07u, 0x00000001u, 0x0000002du, 0x00008396u, 0x0000019eu, + 0x00000313u, 0x00040072u, 0x00000012u, 0x00005e08u, 0x00005e07u, 0x00060052u, 0x00000013u, 0x00006a16u, + 0x00005e08u, 0x00005f84u, 0x00000003u, 0x00040072u, 0x0000031eu, 0x00001d13u, 0x00006a16u, 0x0004007cu, + 0x00000010u, 0x00001d14u, 0x00001d13u, 0x000200f9u, 0x00001d31u, 0x000200f8u, 0x00001d31u, 0x000700f5u, + 0x00000010u, 0x000083ccu, 0x00001d14u, 0x00005e05u, 0x00001d2eu, 0x00005ff3u, 0x000700f5u, 0x0000000fu, + 0x000083beu, 0x000081f0u, 0x00005e05u, 0x00001d30u, 0x00005ff3u, 0x000700f5u, 0x00000011u, 0x0000839cu, + 0x000083a7u, 0x00005e05u, 0x00007914u, 0x00005ff3u, 0x000700f5u, 0x00000008u, 0x0000839bu, 0x0000839au, + 0x00005e05u, 0x00007fb5u, 0x00005ff3u, 0x000500aau, 0x00000063u, 0x00001d34u, 0x0000839bu, 0x0000019eu, + 0x000500a7u, 0x00000063u, 0x00001d35u, 0x00001b41u, 0x00001d34u, 0x000300f7u, 0x00001d37u, 0x00000000u, + 0x000400fau, 0x00001d35u, 0x00001d36u, 0x00001d37u, 0x000200f8u, 0x00001d36u, 0x000200f9u, 0x00001d5cu, + 0x000200f8u, 0x00001d37u, 0x000300f7u, 0x00001d46u, 0x00000000u, 0x000400fau, 0x00001b50u, 0x00001d39u, + 0x00001d46u, 0x000200f8u, 0x00001d39u, 0x000300f7u, 0x00001d40u, 0x00000000u, 0x000400fau, 0x00001b53u, + 0x00001d3bu, 0x00001d3du, 0x000200f8u, 0x00001d3du, 0x00050051u, 0x0000000fu, 0x00001d3fu, 0x000022f7u, + 0x00000003u, 0x000200f9u, 0x00001d40u, 0x000200f8u, 0x00001d3bu, 0x000500c7u, 0x00000011u, 0x00006176u, + 0x0000839cu, 0x000002aeu, 0x00040071u, 0x0000000fu, 0x00006177u, 0x00006176u, 0x000200f9u, 0x00001d40u, + 0x000200f8u, 0x00001d40u, 0x000700f5u, 0x0000000fu, 0x000083cau, 0x00006177u, 0x00001d3bu, 0x00001d3fu, + 0x00001d3du, 0x000500b0u, 0x00000063u, 0x00001d43u, 0x000083beu, 0x000083cau, 0x000300f7u, 0x00001d45u, + 0x00000000u, 0x000400fau, 0x00001d43u, 0x00001d44u, 0x00001d45u, 0x000200f8u, 0x00001d44u, 0x000200f9u, + 0x00001d5cu, 0x000200f8u, 0x00001d45u, 0x000200f9u, 0x00001d46u, 0x000200f8u, 0x00001d46u, 0x000500c4u, + 0x00000008u, 0x00001d4au, 0x00002595u, 0x000001deu, 0x000500c5u, 0x00000008u, 0x00001d4cu, 0x00001d4au, + 0x00007a1bu, 0x00040072u, 0x0000031du, 0x00001d4fu, 0x0000839bu, 0x0004007cu, 0x0000000fu, 0x00001d50u, + 0x00001d4fu, 0x00050051u, 0x0000000fu, 0x00001d53u, 0x00002345u, 0x00000003u, 0x00040071u, 0x00000006u, + 0x00001d54u, 0x00001d53u, 0x0004007cu, 0x00000008u, 0x00001d55u, 0x00001d54u, 0x00050080u, 0x00000008u, + 0x00001d57u, 0x00001d55u, 0x00007a24u, 0x0007000cu, 0x00000008u, 0x00001d58u, 0x00000001u, 0x00000027u, + 0x00001d57u, 0x00000313u, 0x00040072u, 0x0000031du, 0x00001d59u, 0x00001d58u, 0x0004007cu, 0x0000000fu, + 0x00001d5au, 0x00001d59u, 0x000200f9u, 0x00001d5cu, 0x000200f8u, 0x00001d5cu, 0x001900f5u, 0x00000010u, + 0x00008800u, 0x00008802u, 0x00001ad5u, 0x00008802u, 0x00001af4u, 0x00008802u, 0x00001b8cu, 0x00008802u, + 0x00001bbbu, 0x00008802u, 0x00001bbcu, 0x00008802u, 0x00001bcau, 0x00008802u, 0x00001bd8u, 0x00008802u, + 0x00001be4u, 0x00008802u, 0x00001d36u, 0x00008802u, 0x00001d44u, 0x000083ccu, 0x00001d46u, 0x001900f5u, + 0x00000008u, 0x000086bfu, 0x000086c1u, 0x00001ad5u, 0x000086c1u, 0x00001af4u, 0x000086c1u, 0x00001b8cu, + 0x0000840fu, 0x00001bbbu, 0x0000840fu, 0x00001bbcu, 0x000086c1u, 0x00001bcau, 0x000086c1u, 0x00001bd8u, + 0x000086c1u, 0x00001be4u, 0x000086c1u, 0x00001d36u, 0x000086c1u, 0x00001d44u, 0x00001d4cu, 0x00001d46u, + 0x001900f5u, 0x0000000fu, 0x0000857fu, 0x00008414u, 0x00001ad5u, 0x00008414u, 0x00001af4u, 0x00008414u, + 0x00001b8cu, 0x000002edu, 0x00001bbbu, 0x000002edu, 0x00001bbcu, 0x000002eeu, 0x00001bcau, 0x00008414u, + 0x00001bd8u, 0x00008414u, 0x00001be4u, 0x00008414u, 0x00001d36u, 0x00008414u, 0x00001d44u, 0x00001d50u, + 0x00001d46u, 0x001900f5u, 0x0000000fu, 0x00008412u, 0x00008414u, 0x00001ad5u, 0x00008414u, 0x00001af4u, + 0x00008414u, 0x00001b8cu, 0x00008414u, 0x00001bbbu, 0x00008414u, 0x00001bbcu, 0x00008414u, 0x00001bcau, + 0x00008414u, 0x00001bd8u, 0x00008414u, 0x00001be4u, 0x00008414u, 0x00001d36u, 0x00008414u, 0x00001d44u, + 0x00001d5au, 0x00001d46u, 0x001900f5u, 0x00000063u, 0x00008411u, 0x0000120du, 0x00001ad5u, 0x0000120du, + 0x00001af4u, 0x0000120du, 0x00001b8cu, 0x0000120du, 0x00001bbbu, 0x0000046eu, 0x00001bbcu, 0x00001bcbu, + 0x00001bcau, 0x0000120du, 0x00001bd8u, 0x0000120du, 0x00001be4u, 0x0000120du, 0x00001d36u, 0x0000120du, + 0x00001d44u, 0x0000046eu, 0x00001d46u, 0x000300f7u, 0x0000199du, 0x00000000u, 0x000400fau, 0x00008411u, + 0x0000199cu, 0x000019d4u, 0x000200f8u, 0x000019d4u, 0x000200f9u, 0x0000199du, 0x000200f8u, 0x0000199cu, + 0x0004007cu, 0x0000031du, 0x000019a2u, 0x0000857fu, 0x000500b3u, 0x00000063u, 0x000019a5u, 0x000019a2u, + 0x000019a4u, 0x000300f7u, 0x000019a7u, 0x00000000u, 0x000400fau, 0x000019a5u, 0x000019a6u, 0x000019c3u, + 0x000200f8u, 0x000019c3u, 0x00040072u, 0x00000008u, 0x000019c5u, 0x000019a2u, 0x000500c7u, 0x00000008u, + 0x000019c6u, 0x000019c5u, 0x00000979u, 0x000500abu, 0x00000063u, 0x000019c7u, 0x000019c6u, 0x0000019eu, + 0x000300f7u, 0x000019c9u, 0x00000000u, 0x000400fau, 0x000019c7u, 0x000019c8u, 0x000019c9u, 0x000200f8u, + 0x000019c8u, 0x0004007cu, 0x00000006u, 0x000019d1u, 0x000086bfu, 0x00060041u, 0x000019d2u, 0x000019d3u, + 0x000019cdu, 0x0000019eu, 0x00001991u, 0x0003003eu, 0x000019d3u, 0x000019d1u, 0x000200f9u, 0x000019c9u, + 0x000200f8u, 0x000019c9u, 0x000200f9u, 0x000019a7u, 0x000200f8u, 0x000019a6u, 0x00040071u, 0x000015b1u, + 0x000019afu, 0x00008800u, 0x00040071u, 0x00000010u, 0x000019b0u, 0x000019afu, 0x00060041u, 0x000015bbu, + 0x000019b1u, 0x000019abu, 0x0000019eu, 0x00001991u, 0x0003003eu, 0x000019b1u, 0x000019b0u, 0x00060041u, + 0x000006aau, 0x000019b9u, 0x000019b5u, 0x0000019eu, 0x00001991u, 0x0003003eu, 0x000019b9u, 0x00008412u, + 0x00060041u, 0x000019c1u, 0x000019c2u, 0x000019bdu, 0x0000019eu, 0x00001991u, 0x0003003eu, 0x000019c2u, + 0x000086bfu, 0x000200f9u, 0x000019a7u, 0x000200f8u, 0x000019a7u, 0x000200f9u, 0x0000199du, 0x000200f8u, + 0x0000199du, 0x000700f5u, 0x0000031du, 0x0000896du, 0x000019a2u, 0x000019a7u, 0x000019d5u, 0x000019d4u, + 0x00060041u, 0x000019dcu, 0x000019ddu, 0x000019d9u, 0x0000019eu, 0x00001991u, 0x0003003eu, 0x000019ddu, + 0x0000896du, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000029u, 0x00000000u, + 0x00020011u, 0x00000001u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, + 0x0003000eu, 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000000u, 0x00000004u, 0x6e69616du, 0x00000000u, + 0x00000008u, 0x00000016u, 0x00040047u, 0x00000008u, 0x0000000bu, 0x0000002au, 0x00050048u, 0x00000014u, + 0x00000000u, 0x0000000bu, 0x00000000u, 0x00050048u, 0x00000014u, 0x00000001u, 0x0000000bu, 0x00000001u, + 0x00050048u, 0x00000014u, 0x00000002u, 0x0000000bu, 0x00000003u, 0x00050048u, 0x00000014u, 0x00000003u, + 0x0000000bu, 0x00000004u, 0x00030047u, 0x00000014u, 0x00000002u, 0x00020013u, 0x00000002u, 0x00030021u, + 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, 0x00040020u, 0x00000007u, + 0x00000001u, 0x00000006u, 0x0004003bu, 0x00000007u, 0x00000008u, 0x00000001u, 0x0004002bu, 0x00000006u, + 0x0000000au, 0x00000000u, 0x00020014u, 0x0000000bu, 0x00030016u, 0x0000000fu, 0x00000020u, 0x00040017u, + 0x00000010u, 0x0000000fu, 0x00000004u, 0x00040015u, 0x00000011u, 0x00000020u, 0x00000000u, 0x0004002bu, + 0x00000011u, 0x00000012u, 0x00000001u, 0x0004001cu, 0x00000013u, 0x0000000fu, 0x00000012u, 0x0006001eu, + 0x00000014u, 0x00000010u, 0x0000000fu, 0x00000013u, 0x00000013u, 0x00040020u, 0x00000015u, 0x00000003u, + 0x00000014u, 0x0004003bu, 0x00000015u, 0x00000016u, 0x00000003u, 0x0004002bu, 0x0000000fu, 0x00000017u, + 0xbf800000u, 0x0004002bu, 0x0000000fu, 0x00000018u, 0x00000000u, 0x0004002bu, 0x0000000fu, 0x00000019u, + 0x3f800000u, 0x0007002cu, 0x00000010u, 0x0000001au, 0x00000017u, 0x00000017u, 0x00000018u, 0x00000019u, + 0x00040020u, 0x0000001bu, 0x00000003u, 0x00000010u, 0x0004002bu, 0x00000006u, 0x0000001fu, 0x00000001u, + 0x0004002bu, 0x0000000fu, 0x00000023u, 0x40400000u, 0x0007002cu, 0x00000010u, 0x00000024u, 0x00000017u, + 0x00000023u, 0x00000018u, 0x00000019u, 0x0007002cu, 0x00000010u, 0x00000027u, 0x00000023u, 0x00000017u, + 0x00000018u, 0x00000019u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, + 0x00000005u, 0x0004003du, 0x00000006u, 0x00000009u, 0x00000008u, 0x000500aau, 0x0000000bu, 0x0000000cu, + 0x00000009u, 0x0000000au, 0x000300f7u, 0x0000000eu, 0x00000000u, 0x000400fau, 0x0000000cu, 0x0000000du, + 0x0000001du, 0x000200f8u, 0x0000000du, 0x00050041u, 0x0000001bu, 0x0000001cu, 0x00000016u, 0x0000000au, + 0x0003003eu, 0x0000001cu, 0x0000001au, 0x000200f9u, 0x0000000eu, 0x000200f8u, 0x0000001du, 0x000500aau, + 0x0000000bu, 0x00000020u, 0x00000009u, 0x0000001fu, 0x000300f7u, 0x00000022u, 0x00000000u, 0x000400fau, + 0x00000020u, 0x00000021u, 0x00000026u, 0x000200f8u, 0x00000021u, 0x00050041u, 0x0000001bu, 0x00000025u, + 0x00000016u, 0x0000000au, 0x0003003eu, 0x00000025u, 0x00000024u, 0x000200f9u, 0x00000022u, 0x000200f8u, + 0x00000026u, 0x00050041u, 0x0000001bu, 0x00000028u, 0x00000016u, 0x0000000au, 0x0003003eu, 0x00000028u, + 0x00000027u, 0x000200f9u, 0x00000022u, 0x000200f8u, 0x00000022u, 0x000200f9u, 0x0000000eu, 0x000200f8u, + 0x0000000eu, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x000002d6u, 0x00000000u, + 0x00020011u, 0x00000001u, 0x00020011u, 0x0000002eu, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, + 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000004u, 0x00000004u, + 0x6e69616du, 0x00000000u, 0x000000c1u, 0x000001d8u, 0x00030010u, 0x00000004u, 0x00000007u, 0x00040047u, + 0x0000007bu, 0x00000001u, 0x00000001u, 0x00030047u, 0x0000008fu, 0x00000000u, 0x00040047u, 0x0000008fu, + 0x00000022u, 0x00000001u, 0x00040047u, 0x0000008fu, 0x00000021u, 0x00000000u, 0x00040047u, 0x000000c1u, + 0x0000000bu, 0x0000000fu, 0x00050048u, 0x000000c6u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, + 0x000000c6u, 0x00000001u, 0x00000023u, 0x00000008u, 0x00050048u, 0x000000c6u, 0x00000002u, 0x00000023u, + 0x0000000cu, 0x00050048u, 0x000000c6u, 0x00000003u, 0x00000023u, 0x00000010u, 0x00050048u, 0x000000c6u, + 0x00000004u, 0x00000023u, 0x00000014u, 0x00050048u, 0x000000c6u, 0x00000005u, 0x00000023u, 0x00000018u, + 0x00050048u, 0x000000c6u, 0x00000006u, 0x00000023u, 0x0000001cu, 0x00050048u, 0x000000c6u, 0x00000007u, + 0x00000023u, 0x00000020u, 0x00030047u, 0x000000c6u, 0x00000002u, 0x00040047u, 0x000000dbu, 0x00000022u, + 0x00000000u, 0x00040047u, 0x000000dbu, 0x00000021u, 0x00000001u, 0x00030047u, 0x00000159u, 0x00000000u, + 0x00040047u, 0x00000159u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000159u, 0x00000021u, 0x00000000u, + 0x00030047u, 0x0000015au, 0x00000000u, 0x00030047u, 0x0000015fu, 0x00000000u, 0x00030047u, 0x00000160u, + 0x00000000u, 0x00040047u, 0x00000162u, 0x00000001u, 0x00000002u, 0x00030047u, 0x00000199u, 0x00000000u, + 0x00030047u, 0x0000019au, 0x00000000u, 0x00030047u, 0x000001a3u, 0x00000000u, 0x00030047u, 0x000001a4u, + 0x00000000u, 0x00030047u, 0x000001adu, 0x00000000u, 0x00030047u, 0x000001aeu, 0x00000000u, 0x00040047u, + 0x000001d8u, 0x0000001eu, 0x00000000u, 0x00030047u, 0x0000024du, 0x00000000u, 0x00030047u, 0x00000251u, + 0x00000000u, 0x00030047u, 0x00000252u, 0x00000000u, 0x00030047u, 0x00000257u, 0x00000000u, 0x00030047u, + 0x00000258u, 0x00000000u, 0x00030047u, 0x0000025du, 0x00000000u, 0x00030047u, 0x0000025eu, 0x00000000u, + 0x00030047u, 0x0000025fu, 0x00000000u, 0x00030047u, 0x00000261u, 0x00000000u, 0x00030047u, 0x00000265u, + 0x00000000u, 0x00030047u, 0x00000266u, 0x00000000u, 0x00030047u, 0x0000026bu, 0x00000000u, 0x00030047u, + 0x0000026cu, 0x00000000u, 0x00030047u, 0x00000271u, 0x00000000u, 0x00030047u, 0x00000272u, 0x00000000u, + 0x00030047u, 0x00000273u, 0x00000000u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, + 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x00040017u, 0x0000000eu, 0x00000006u, 0x00000003u, + 0x00040015u, 0x0000001fu, 0x00000020u, 0x00000001u, 0x0004002bu, 0x0000001fu, 0x00000022u, 0x00000000u, + 0x0004002bu, 0x00000006u, 0x00000029u, 0x00000008u, 0x0004002bu, 0x00000006u, 0x0000002fu, 0x41c64e6du, + 0x0004002bu, 0x00000006u, 0x00000042u, 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000045u, 0x00000010u, + 0x0004002bu, 0x00000006u, 0x0000004cu, 0x0000003fu, 0x0004002bu, 0x00000006u, 0x0000004fu, 0x00000006u, + 0x0004002bu, 0x00000006u, 0x00000053u, 0x00000009u, 0x0004002bu, 0x00000006u, 0x00000055u, 0x00000038u, + 0x0004002bu, 0x00000006u, 0x00000058u, 0x00000007u, 0x0004002bu, 0x00000006u, 0x00000061u, 0x00000001u, + 0x0004002bu, 0x00000006u, 0x00000062u, 0x00000002u, 0x0006002cu, 0x0000000eu, 0x00000063u, 0x00000042u, + 0x00000061u, 0x00000062u, 0x0004002bu, 0x00000006u, 0x00000072u, 0x00000005u, 0x0004002bu, 0x00000006u, + 0x00000076u, 0x000000ffu, 0x00040032u, 0x0000001fu, 0x0000007bu, 0x00000000u, 0x0004002bu, 0x0000001fu, + 0x0000007cu, 0x00000004u, 0x00060034u, 0x0000001fu, 0x0000007du, 0x000000c7u, 0x0000007bu, 0x0000007cu, + 0x00020014u, 0x0000007eu, 0x00060034u, 0x0000007eu, 0x0000007fu, 0x000000abu, 0x0000007du, 0x00000022u, + 0x0004002bu, 0x0000001fu, 0x00000083u, 0x00000006u, 0x00040017u, 0x00000084u, 0x0000001fu, 0x00000003u, + 0x0004002bu, 0x00000006u, 0x00000089u, 0x00000100u, 0x00090019u, 0x0000008du, 0x00000006u, 0x00000005u, + 0x00000000u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, 0x0000008eu, 0x00000000u, + 0x0000008du, 0x0004003bu, 0x0000008eu, 0x0000008fu, 0x00000000u, 0x00040017u, 0x00000094u, 0x00000006u, + 0x00000004u, 0x00040017u, 0x000000bbu, 0x0000001fu, 0x00000002u, 0x00030016u, 0x000000beu, 0x00000020u, + 0x00040017u, 0x000000bfu, 0x000000beu, 0x00000004u, 0x00040020u, 0x000000c0u, 0x00000001u, 0x000000bfu, + 0x0004003bu, 0x000000c0u, 0x000000c1u, 0x00000001u, 0x00040017u, 0x000000c2u, 0x000000beu, 0x00000002u, + 0x000a001eu, 0x000000c6u, 0x000000bbu, 0x0000001fu, 0x0000001fu, 0x0000001fu, 0x0000001fu, 0x0000001fu, + 0x0000001fu, 0x0000001fu, 0x00040020u, 0x000000c7u, 0x00000009u, 0x000000c6u, 0x0004003bu, 0x000000c7u, + 0x000000c8u, 0x00000009u, 0x00040020u, 0x000000c9u, 0x00000009u, 0x000000bbu, 0x0004002bu, 0x0000001fu, + 0x000000d1u, 0x00000007u, 0x00040020u, 0x000000d2u, 0x00000009u, 0x0000001fu, 0x00040017u, 0x000000d6u, + 0x0000001fu, 0x00000004u, 0x00090019u, 0x000000d9u, 0x0000001fu, 0x00000005u, 0x00000000u, 0x00000000u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, 0x000000dau, 0x00000000u, 0x000000d9u, 0x0004003bu, + 0x000000dau, 0x000000dbu, 0x00000000u, 0x0004002bu, 0x0000001fu, 0x000000ddu, 0x00000002u, 0x0004002bu, + 0x0000001fu, 0x000000e6u, 0x00000001u, 0x0004002bu, 0x0000001fu, 0x00000119u, 0x00000005u, 0x0004002bu, + 0x0000001fu, 0x00000137u, 0x00000003u, 0x0004002bu, 0x0000001fu, 0x00000153u, 0x0000000au, 0x00090019u, + 0x00000157u, 0x00000006u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00040020u, 0x00000158u, 0x00000000u, 0x00000157u, 0x0004003bu, 0x00000158u, 0x00000159u, 0x00000000u, + 0x00030031u, 0x0000007eu, 0x00000162u, 0x0004002bu, 0x0000001fu, 0x00000184u, 0x00040000u, 0x00060034u, + 0x0000001fu, 0x00000185u, 0x000000c7u, 0x0000007bu, 0x00000184u, 0x00060034u, 0x0000007eu, 0x00000186u, + 0x000000abu, 0x00000185u, 0x00000022u, 0x0004002bu, 0x0000001fu, 0x0000018cu, 0x0000001fu, 0x0005002cu, + 0x000000bbu, 0x00000198u, 0x000000e6u, 0x00000022u, 0x0005002cu, 0x000000bbu, 0x000001a2u, 0x00000022u, + 0x000000e6u, 0x0005002cu, 0x000000bbu, 0x000001acu, 0x000000e6u, 0x000000e6u, 0x0004002bu, 0x0000001fu, + 0x000001c7u, 0x00000008u, 0x00060034u, 0x0000001fu, 0x000001c8u, 0x000000c7u, 0x0000007bu, 0x000001c7u, + 0x00060034u, 0x0000007eu, 0x000001c9u, 0x000000abu, 0x000001c8u, 0x00000022u, 0x0006002cu, 0x0000000eu, + 0x000001d5u, 0x00000076u, 0x00000076u, 0x00000076u, 0x00040020u, 0x000001d7u, 0x00000003u, 0x000000bfu, + 0x0004003bu, 0x000001d7u, 0x000001d8u, 0x00000003u, 0x00040017u, 0x000001dau, 0x000000beu, 0x00000003u, + 0x0004002bu, 0x000000beu, 0x000001dfu, 0x3f800000u, 0x0006002cu, 0x0000000eu, 0x000002c9u, 0x00000029u, + 0x00000029u, 0x00000029u, 0x0006002cu, 0x0000000eu, 0x000002cau, 0x0000002fu, 0x0000002fu, 0x0000002fu, + 0x0005002cu, 0x000000bbu, 0x000002cbu, 0x00000153u, 0x00000153u, 0x0006002cu, 0x0000000eu, 0x000002ccu, + 0x00000045u, 0x00000045u, 0x00000045u, 0x0006002cu, 0x0000000eu, 0x000002cdu, 0x00000072u, 0x00000072u, + 0x00000072u, 0x0006002cu, 0x00000084u, 0x000002ceu, 0x00000083u, 0x00000083u, 0x00000083u, 0x0006002cu, + 0x0000000eu, 0x000002cfu, 0x00000089u, 0x00000089u, 0x00000089u, 0x0006002cu, 0x0000000eu, 0x000002d0u, + 0x00000061u, 0x00000061u, 0x00000061u, 0x0004002bu, 0x000000beu, 0x000002d3u, 0x3b808081u, 0x0006002cu, + 0x000001dau, 0x000002d4u, 0x000002d3u, 0x000002d3u, 0x000002d3u, 0x00050036u, 0x00000002u, 0x00000004u, + 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003du, 0x000000bfu, 0x000000c3u, 0x000000c1u, + 0x0007004fu, 0x000000c2u, 0x000000c4u, 0x000000c3u, 0x000000c3u, 0x00000000u, 0x00000001u, 0x0004006eu, + 0x000000bbu, 0x000000c5u, 0x000000c4u, 0x00050041u, 0x000000c9u, 0x000000cau, 0x000000c8u, 0x00000022u, + 0x0004003du, 0x000000bbu, 0x000000cbu, 0x000000cau, 0x00050080u, 0x000000bbu, 0x000000ccu, 0x000000c5u, + 0x000000cbu, 0x00050051u, 0x0000001fu, 0x000000d0u, 0x000000ccu, 0x00000001u, 0x00050041u, 0x000000d2u, + 0x000000d3u, 0x000000c8u, 0x000000d1u, 0x0004003du, 0x0000001fu, 0x000000d4u, 0x000000d3u, 0x000500c3u, + 0x0000001fu, 0x000000d5u, 0x000000d0u, 0x000000d4u, 0x0004003du, 0x000000d9u, 0x000000dcu, 0x000000dbu, + 0x00050084u, 0x0000001fu, 0x000000dfu, 0x000000ddu, 0x000000d5u, 0x0005005fu, 0x000000d6u, 0x000000e1u, + 0x000000dcu, 0x000000dfu, 0x00050080u, 0x0000001fu, 0x000000e7u, 0x000000dfu, 0x000000e6u, 0x0005005fu, + 0x000000d6u, 0x000000e8u, 0x000000dcu, 0x000000e7u, 0x00050051u, 0x0000001fu, 0x000000ebu, 0x000000e1u, + 0x00000000u, 0x00050051u, 0x0000001fu, 0x000000eeu, 0x000000e1u, 0x00000001u, 0x00050051u, 0x0000001fu, + 0x000000f1u, 0x000000e1u, 0x00000002u, 0x00050051u, 0x0000001fu, 0x000000f5u, 0x000000e1u, 0x00000003u, + 0x00050051u, 0x0000001fu, 0x000000f8u, 0x000000e8u, 0x00000000u, 0x00050051u, 0x0000001fu, 0x000000fbu, + 0x000000e8u, 0x00000001u, 0x00050051u, 0x0000001fu, 0x000000feu, 0x000000e8u, 0x00000002u, 0x00050051u, + 0x0000001fu, 0x00000101u, 0x000000e8u, 0x00000003u, 0x00050041u, 0x000000d2u, 0x00000102u, 0x000000c8u, + 0x000000e6u, 0x0004003du, 0x0000001fu, 0x00000103u, 0x00000102u, 0x00050082u, 0x0000001fu, 0x00000106u, + 0x000000d0u, 0x00000103u, 0x00050051u, 0x0000001fu, 0x00000109u, 0x000000ccu, 0x00000000u, 0x000500b1u, + 0x0000007eu, 0x0000010bu, 0x00000109u, 0x000000eeu, 0x000400a8u, 0x0000007eu, 0x0000010cu, 0x0000010bu, + 0x000300f7u, 0x0000010eu, 0x00000000u, 0x000400fau, 0x0000010cu, 0x0000010du, 0x0000010eu, 0x000200f8u, + 0x0000010du, 0x000500afu, 0x0000007eu, 0x00000112u, 0x00000109u, 0x000000f1u, 0x000200f9u, 0x0000010eu, + 0x000200f8u, 0x0000010eu, 0x000700f5u, 0x0000007eu, 0x00000113u, 0x0000010bu, 0x00000005u, 0x00000112u, + 0x0000010du, 0x000400a8u, 0x0000007eu, 0x00000114u, 0x00000113u, 0x000300f7u, 0x00000116u, 0x00000000u, + 0x000400fau, 0x00000114u, 0x00000115u, 0x00000116u, 0x000200f8u, 0x00000115u, 0x00050041u, 0x000000d2u, + 0x0000011au, 0x000000c8u, 0x00000119u, 0x0004003du, 0x0000001fu, 0x0000011bu, 0x0000011au, 0x000500c7u, + 0x0000001fu, 0x0000011cu, 0x00000106u, 0x0000011bu, 0x00050041u, 0x000000d2u, 0x0000011du, 0x000000c8u, + 0x00000083u, 0x0004003du, 0x0000001fu, 0x0000011eu, 0x0000011du, 0x000500abu, 0x0000007eu, 0x0000011fu, + 0x0000011cu, 0x0000011eu, 0x000200f9u, 0x00000116u, 0x000200f8u, 0x00000116u, 0x000700f5u, 0x0000007eu, + 0x00000120u, 0x00000113u, 0x0000010eu, 0x0000011fu, 0x00000115u, 0x000300f7u, 0x00000122u, 0x00000000u, + 0x000400fau, 0x00000120u, 0x00000121u, 0x00000122u, 0x000200f8u, 0x00000121u, 0x000100fcu, 0x000200f8u, + 0x00000122u, 0x00050082u, 0x0000001fu, 0x00000127u, 0x00000109u, 0x000000ebu, 0x00050041u, 0x000000d2u, + 0x00000129u, 0x000000c8u, 0x0000007cu, 0x0004003du, 0x0000001fu, 0x0000012au, 0x00000129u, 0x000500c3u, + 0x0000001fu, 0x0000012du, 0x00000106u, 0x0000012au, 0x000300f7u, 0x00000130u, 0x00000000u, 0x000400fau, + 0x0000007fu, 0x0000012fu, 0x00000130u, 0x000200f8u, 0x0000012fu, 0x0004007cu, 0x00000006u, 0x00000133u, + 0x00000127u, 0x0004007cu, 0x00000006u, 0x00000136u, 0x0000012du, 0x00050041u, 0x000000d2u, 0x00000138u, + 0x000000c8u, 0x00000137u, 0x0004003du, 0x0000001fu, 0x00000139u, 0x00000138u, 0x0004007cu, 0x00000006u, + 0x0000013au, 0x00000139u, 0x00060050u, 0x0000000eu, 0x000001f5u, 0x00000133u, 0x00000136u, 0x0000013au, + 0x000500c2u, 0x0000000eu, 0x000001f8u, 0x000001f5u, 0x000002c9u, 0x0008004fu, 0x0000000eu, 0x000001fau, + 0x000001f5u, 0x000001f5u, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x0000000eu, 0x000001fbu, + 0x000001f8u, 0x000001fau, 0x00050084u, 0x0000000eu, 0x000001fdu, 0x000001fbu, 0x000002cau, 0x000500c2u, + 0x0000000eu, 0x00000200u, 0x000001fdu, 0x000002c9u, 0x0008004fu, 0x0000000eu, 0x00000202u, 0x000001fdu, + 0x000001fdu, 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x0000000eu, 0x00000203u, 0x00000200u, + 0x00000202u, 0x00050084u, 0x0000000eu, 0x00000205u, 0x00000203u, 0x000002cau, 0x000500c2u, 0x0000000eu, + 0x00000208u, 0x00000205u, 0x000002c9u, 0x0008004fu, 0x0000000eu, 0x0000020au, 0x00000205u, 0x00000205u, + 0x00000001u, 0x00000002u, 0x00000000u, 0x000500c6u, 0x0000000eu, 0x0000020bu, 0x00000208u, 0x0000020au, + 0x00050084u, 0x0000000eu, 0x0000020du, 0x0000020bu, 0x000002cau, 0x00050051u, 0x00000006u, 0x0000020fu, + 0x0000020du, 0x00000000u, 0x000500c2u, 0x00000006u, 0x00000210u, 0x0000020fu, 0x00000045u, 0x0004007cu, + 0x0000001fu, 0x00000211u, 0x00000210u, 0x000200f9u, 0x00000130u, 0x000200f8u, 0x00000130u, 0x000700f5u, + 0x0000001fu, 0x000002c0u, 0x00000022u, 0x00000122u, 0x00000211u, 0x0000012fu, 0x00050084u, 0x0000001fu, + 0x00000143u, 0x00000127u, 0x000000f8u, 0x00050080u, 0x0000001fu, 0x00000145u, 0x00000143u, 0x000000f5u, + 0x00050082u, 0x0000001fu, 0x0000014au, 0x0000012du, 0x00000101u, 0x00050084u, 0x0000001fu, 0x0000014cu, + 0x0000014au, 0x000000feu, 0x00050080u, 0x0000001fu, 0x0000014eu, 0x0000014cu, 0x000000fbu, 0x00050050u, + 0x000000bbu, 0x00000152u, 0x00000145u, 0x0000014eu, 0x000500c3u, 0x000000bbu, 0x00000155u, 0x00000152u, + 0x000002cbu, 0x0004003du, 0x00000157u, 0x0000015au, 0x00000159u, 0x00050051u, 0x0000001fu, 0x0000015cu, + 0x00000155u, 0x00000000u, 0x00050051u, 0x0000001fu, 0x0000015du, 0x00000155u, 0x00000001u, 0x00060050u, + 0x00000084u, 0x0000015eu, 0x0000015cu, 0x0000015du, 0x00000022u, 0x0007005fu, 0x00000094u, 0x0000015fu, + 0x0000015au, 0x0000015eu, 0x00000002u, 0x00000022u, 0x0008004fu, 0x0000000eu, 0x00000160u, 0x0000015fu, + 0x0000015fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000300f7u, 0x00000164u, 0x00000000u, 0x000400fau, + 0x00000162u, 0x00000163u, 0x00000164u, 0x000200f8u, 0x00000163u, 0x00050041u, 0x000000d2u, 0x00000167u, + 0x000000c8u, 0x000000ddu, 0x0004003du, 0x0000001fu, 0x00000168u, 0x00000167u, 0x00050082u, 0x0000001fu, + 0x00000169u, 0x0000014eu, 0x00000168u, 0x000500c3u, 0x0000001fu, 0x0000016au, 0x00000169u, 0x00000153u, + 0x00050080u, 0x0000001fu, 0x0000016fu, 0x0000014eu, 0x00000168u, 0x000500c3u, 0x0000001fu, 0x00000170u, + 0x0000016fu, 0x00000153u, 0x000500abu, 0x0000007eu, 0x00000173u, 0x0000012du, 0x00000022u, 0x000300f7u, + 0x00000175u, 0x00000000u, 0x000400fau, 0x00000173u, 0x00000174u, 0x00000175u, 0x000200f8u, 0x00000174u, + 0x000500aau, 0x0000007eu, 0x00000179u, 0x0000015du, 0x0000016au, 0x000200f9u, 0x00000175u, 0x000200f8u, + 0x00000175u, 0x000700f5u, 0x0000007eu, 0x0000017au, 0x00000173u, 0x00000163u, 0x00000179u, 0x00000174u, + 0x000300f7u, 0x0000017cu, 0x00000000u, 0x000400fau, 0x0000017au, 0x0000017bu, 0x0000017cu, 0x000200f8u, + 0x0000017bu, 0x000500abu, 0x0000007eu, 0x00000180u, 0x0000015du, 0x00000170u, 0x000200f9u, 0x0000017cu, + 0x000200f8u, 0x0000017cu, 0x000700f5u, 0x0000007eu, 0x00000181u, 0x0000017au, 0x00000175u, 0x00000180u, + 0x0000017bu, 0x000600a9u, 0x0000001fu, 0x000002d5u, 0x00000181u, 0x000000e6u, 0x00000022u, 0x000200f9u, + 0x00000164u, 0x000200f8u, 0x00000164u, 0x000700f5u, 0x0000001fu, 0x000002b5u, 0x00000022u, 0x00000130u, + 0x000002d5u, 0x0000017cu, 0x000300f7u, 0x00000188u, 0x00000000u, 0x000400fau, 0x00000186u, 0x00000187u, + 0x00000188u, 0x000200f8u, 0x00000187u, 0x000500c3u, 0x0000001fu, 0x0000018bu, 0x00000145u, 0x00000119u, + 0x000500c7u, 0x0000001fu, 0x0000018du, 0x0000018bu, 0x0000018cu, 0x000500c3u, 0x0000001fu, 0x00000190u, + 0x0000014eu, 0x00000119u, 0x000500c7u, 0x0000001fu, 0x00000191u, 0x00000190u, 0x0000018cu, 0x0008005fu, + 0x00000094u, 0x00000199u, 0x0000015au, 0x0000015eu, 0x0000000au, 0x00000022u, 0x00000198u, 0x0008004fu, + 0x0000000eu, 0x0000019au, 0x00000199u, 0x00000199u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00060050u, + 0x00000084u, 0x000001a1u, 0x0000015cu, 0x0000015du, 0x000002b5u, 0x0008005fu, 0x00000094u, 0x000001a3u, + 0x0000015au, 0x000001a1u, 0x0000000au, 0x00000022u, 0x000001a2u, 0x0008004fu, 0x0000000eu, 0x000001a4u, + 0x000001a3u, 0x000001a3u, 0x00000000u, 0x00000001u, 0x00000002u, 0x0008005fu, 0x00000094u, 0x000001adu, + 0x0000015au, 0x000001a1u, 0x0000000au, 0x00000022u, 0x000001acu, 0x0008004fu, 0x0000000eu, 0x000001aeu, + 0x000001adu, 0x000001adu, 0x00000000u, 0x00000001u, 0x00000002u, 0x0004007cu, 0x00000006u, 0x000001b0u, + 0x00000191u, 0x00050082u, 0x0000000eu, 0x00000217u, 0x000001a4u, 0x00000160u, 0x00060050u, 0x0000000eu, + 0x00000219u, 0x000001b0u, 0x000001b0u, 0x000001b0u, 0x00050084u, 0x0000000eu, 0x0000021au, 0x00000217u, + 0x00000219u, 0x00050080u, 0x0000000eu, 0x0000021cu, 0x0000021au, 0x000002ccu, 0x000500c2u, 0x0000000eu, + 0x0000021eu, 0x0000021cu, 0x000002cdu, 0x00050080u, 0x0000000eu, 0x0000021fu, 0x00000160u, 0x0000021eu, + 0x000500c7u, 0x0000000eu, 0x00000221u, 0x0000021fu, 0x000001d5u, 0x00050082u, 0x0000000eu, 0x00000227u, + 0x000001aeu, 0x0000019au, 0x00050084u, 0x0000000eu, 0x0000022au, 0x00000227u, 0x00000219u, 0x00050080u, + 0x0000000eu, 0x0000022cu, 0x0000022au, 0x000002ccu, 0x000500c2u, 0x0000000eu, 0x0000022eu, 0x0000022cu, + 0x000002cdu, 0x00050080u, 0x0000000eu, 0x0000022fu, 0x0000019au, 0x0000022eu, 0x000500c7u, 0x0000000eu, + 0x00000231u, 0x0000022fu, 0x000001d5u, 0x0004007cu, 0x00000006u, 0x000001c0u, 0x0000018du, 0x00050082u, + 0x0000000eu, 0x00000237u, 0x00000231u, 0x00000221u, 0x00060050u, 0x0000000eu, 0x00000239u, 0x000001c0u, + 0x000001c0u, 0x000001c0u, 0x00050084u, 0x0000000eu, 0x0000023au, 0x00000237u, 0x00000239u, 0x00050080u, + 0x0000000eu, 0x0000023cu, 0x0000023au, 0x000002ccu, 0x000500c2u, 0x0000000eu, 0x0000023eu, 0x0000023cu, + 0x000002cdu, 0x00050080u, 0x0000000eu, 0x0000023fu, 0x00000221u, 0x0000023eu, 0x000500c7u, 0x0000000eu, + 0x00000241u, 0x0000023fu, 0x000001d5u, 0x000200f9u, 0x00000188u, 0x000200f8u, 0x00000188u, 0x000700f5u, + 0x0000000eu, 0x000002bdu, 0x00000160u, 0x00000164u, 0x00000241u, 0x00000187u, 0x000300f7u, 0x000001cbu, + 0x00000000u, 0x000400fau, 0x000001c9u, 0x000001cau, 0x000001cfu, 0x000200f8u, 0x000001cau, 0x000300f7u, + 0x00000274u, 0x00000000u, 0x000400fau, 0x0000007fu, 0x00000245u, 0x00000260u, 0x000200f8u, 0x00000245u, + 0x000500c4u, 0x0000000eu, 0x00000248u, 0x000002bdu, 0x000002ceu, 0x0004007cu, 0x00000006u, 0x0000027au, + 0x000002c0u, 0x000500c7u, 0x00000006u, 0x0000027cu, 0x0000027au, 0x0000004cu, 0x000500c2u, 0x00000006u, + 0x0000027eu, 0x0000027au, 0x0000004fu, 0x000500c7u, 0x00000006u, 0x0000027fu, 0x0000027eu, 0x0000004cu, + 0x000500c2u, 0x00000006u, 0x00000281u, 0x0000027au, 0x00000053u, 0x000500c7u, 0x00000006u, 0x00000282u, + 0x00000281u, 0x00000055u, 0x000500c7u, 0x00000006u, 0x00000284u, 0x0000027au, 0x00000058u, 0x000500c5u, + 0x00000006u, 0x00000285u, 0x00000282u, 0x00000284u, 0x00060050u, 0x0000000eu, 0x00000286u, 0x0000027cu, + 0x0000027fu, 0x00000285u, 0x00050080u, 0x0000000eu, 0x0000024au, 0x00000248u, 0x00000286u, 0x00050080u, + 0x0000000eu, 0x0000024cu, 0x0000024au, 0x000002cfu, 0x0004003du, 0x0000008du, 0x0000024du, 0x0000008fu, + 0x00050051u, 0x00000006u, 0x0000024fu, 0x0000024cu, 0x00000000u, 0x0004007cu, 0x0000001fu, 0x00000250u, + 0x0000024fu, 0x0005005fu, 0x00000094u, 0x00000251u, 0x0000024du, 0x00000250u, 0x00050051u, 0x00000006u, + 0x00000252u, 0x00000251u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000255u, 0x0000024cu, 0x00000001u, + 0x0004007cu, 0x0000001fu, 0x00000256u, 0x00000255u, 0x0005005fu, 0x00000094u, 0x00000257u, 0x0000024du, + 0x00000256u, 0x00050051u, 0x00000006u, 0x00000258u, 0x00000257u, 0x00000000u, 0x00050051u, 0x00000006u, + 0x0000025bu, 0x0000024cu, 0x00000002u, 0x0004007cu, 0x0000001fu, 0x0000025cu, 0x0000025bu, 0x0005005fu, + 0x00000094u, 0x0000025du, 0x0000024du, 0x0000025cu, 0x00050051u, 0x00000006u, 0x0000025eu, 0x0000025du, + 0x00000000u, 0x00060050u, 0x0000000eu, 0x0000025fu, 0x00000252u, 0x00000258u, 0x0000025eu, 0x000200f9u, + 0x00000274u, 0x000200f8u, 0x00000260u, 0x0004003du, 0x0000008du, 0x00000261u, 0x0000008fu, 0x00050051u, + 0x00000006u, 0x00000263u, 0x000002bdu, 0x00000000u, 0x0004007cu, 0x0000001fu, 0x00000264u, 0x00000263u, + 0x0005005fu, 0x00000094u, 0x00000265u, 0x00000261u, 0x00000264u, 0x00050051u, 0x00000006u, 0x00000266u, + 0x00000265u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000269u, 0x000002bdu, 0x00000001u, 0x0004007cu, + 0x0000001fu, 0x0000026au, 0x00000269u, 0x0005005fu, 0x00000094u, 0x0000026bu, 0x00000261u, 0x0000026au, + 0x00050051u, 0x00000006u, 0x0000026cu, 0x0000026bu, 0x00000000u, 0x00050051u, 0x00000006u, 0x0000026fu, + 0x000002bdu, 0x00000002u, 0x0004007cu, 0x0000001fu, 0x00000270u, 0x0000026fu, 0x0005005fu, 0x00000094u, + 0x00000271u, 0x00000261u, 0x00000270u, 0x00050051u, 0x00000006u, 0x00000272u, 0x00000271u, 0x00000000u, + 0x00060050u, 0x0000000eu, 0x00000273u, 0x00000266u, 0x0000026cu, 0x00000272u, 0x000200f9u, 0x00000274u, + 0x000200f8u, 0x00000274u, 0x000700f5u, 0x0000000eu, 0x000002c6u, 0x0000025fu, 0x00000245u, 0x00000273u, + 0x00000260u, 0x000200f9u, 0x000001cbu, 0x000200f8u, 0x000001cfu, 0x000300f7u, 0x000001d1u, 0x00000000u, + 0x000400fau, 0x0000007fu, 0x000001d0u, 0x000001d1u, 0x000200f8u, 0x000001d0u, 0x0004007cu, 0x00000006u, + 0x0000028au, 0x000002c0u, 0x00060050u, 0x0000000eu, 0x0000028bu, 0x0000028au, 0x0000028au, 0x0000028au, + 0x000500c2u, 0x0000000eu, 0x0000028cu, 0x0000028bu, 0x00000063u, 0x000500c7u, 0x0000000eu, 0x0000028eu, + 0x0000028cu, 0x000002d0u, 0x00050080u, 0x0000000eu, 0x000001d4u, 0x000002bdu, 0x0000028eu, 0x0007000cu, + 0x0000000eu, 0x000001d6u, 0x00000001u, 0x00000026u, 0x000001d4u, 0x000001d5u, 0x000200f9u, 0x000001d1u, + 0x000200f8u, 0x000001d1u, 0x000700f5u, 0x0000000eu, 0x000002c8u, 0x000002bdu, 0x000001cfu, 0x000001d6u, + 0x000001d0u, 0x000200f9u, 0x000001cbu, 0x000200f8u, 0x000001cbu, 0x000700f5u, 0x0000000eu, 0x000002c7u, + 0x000002c6u, 0x00000274u, 0x000002c8u, 0x000001d1u, 0x00040070u, 0x000001dau, 0x000001dbu, 0x000002c7u, + 0x00050085u, 0x000001dau, 0x000001deu, 0x000001dbu, 0x000002d4u, 0x00050051u, 0x000000beu, 0x000001e0u, + 0x000001deu, 0x00000000u, 0x00050051u, 0x000000beu, 0x000001e1u, 0x000001deu, 0x00000001u, 0x00050051u, + 0x000000beu, 0x000001e2u, 0x000001deu, 0x00000002u, 0x00070050u, 0x000000bfu, 0x000001e3u, 0x000001e0u, + 0x000001e1u, 0x000001e2u, 0x000001dfu, 0x0003003eu, 0x000001d8u, 0x000001e3u, 0x000100fdu, 0x00010038u, + 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000173u, 0x00000000u, 0x00020011u, 0x00000001u, 0x0006000bu, + 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, + 0x0007000fu, 0x00000004u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00000046u, 0x00000079u, 0x00030010u, + 0x00000004u, 0x00000007u, 0x00040047u, 0x00000046u, 0x0000000bu, 0x0000000fu, 0x00030047u, 0x00000050u, + 0x00000000u, 0x00040047u, 0x00000050u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000050u, 0x00000021u, + 0x00000000u, 0x00030047u, 0x00000051u, 0x00000000u, 0x00030047u, 0x00000058u, 0x00000000u, 0x00030047u, + 0x00000061u, 0x00000000u, 0x00030047u, 0x0000006au, 0x00000000u, 0x00040047u, 0x00000079u, 0x0000001eu, + 0x00000000u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, + 0x00000020u, 0x00000000u, 0x00020014u, 0x00000019u, 0x00040015u, 0x0000003fu, 0x00000020u, 0x00000001u, + 0x00040017u, 0x00000040u, 0x0000003fu, 0x00000002u, 0x00030016u, 0x00000043u, 0x00000020u, 0x00040017u, + 0x00000044u, 0x00000043u, 0x00000004u, 0x00040020u, 0x00000045u, 0x00000001u, 0x00000044u, 0x0004003bu, + 0x00000045u, 0x00000046u, 0x00000001u, 0x00040017u, 0x00000047u, 0x00000043u, 0x00000002u, 0x00040017u, + 0x0000004bu, 0x00000006u, 0x00000004u, 0x00090019u, 0x0000004eu, 0x00000006u, 0x00000001u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, 0x0000004fu, 0x00000000u, 0x0000004eu, + 0x0004003bu, 0x0000004fu, 0x00000050u, 0x00000000u, 0x0004002bu, 0x0000003fu, 0x00000053u, 0x00000000u, + 0x00040017u, 0x00000054u, 0x0000003fu, 0x00000003u, 0x0004002bu, 0x0000003fu, 0x0000005fu, 0x00000001u, + 0x0005002cu, 0x00000040u, 0x00000060u, 0x0000005fu, 0x00000053u, 0x0004002bu, 0x0000003fu, 0x00000068u, + 0x00000002u, 0x0005002cu, 0x00000040u, 0x00000069u, 0x00000068u, 0x00000053u, 0x0004002bu, 0x00000006u, + 0x00000074u, 0x00000007u, 0x00040020u, 0x00000078u, 0x00000003u, 0x0000004bu, 0x0004003bu, 0x00000078u, + 0x00000079u, 0x00000003u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, + 0x00000005u, 0x0004003du, 0x00000044u, 0x00000048u, 0x00000046u, 0x0007004fu, 0x00000047u, 0x00000049u, + 0x00000048u, 0x00000048u, 0x00000000u, 0x00000001u, 0x0004006eu, 0x00000040u, 0x0000004au, 0x00000049u, + 0x0004003du, 0x0000004eu, 0x00000051u, 0x00000050u, 0x00050051u, 0x0000003fu, 0x00000055u, 0x0000004au, + 0x00000000u, 0x00050051u, 0x0000003fu, 0x00000056u, 0x0000004au, 0x00000001u, 0x00060050u, 0x00000054u, + 0x00000057u, 0x00000055u, 0x00000056u, 0x00000053u, 0x0007005fu, 0x0000004bu, 0x00000058u, 0x00000051u, + 0x00000057u, 0x00000002u, 0x00000053u, 0x0008005fu, 0x0000004bu, 0x00000061u, 0x00000051u, 0x00000057u, + 0x0000000au, 0x00000053u, 0x00000060u, 0x0008005fu, 0x0000004bu, 0x0000006au, 0x00000051u, 0x00000057u, + 0x0000000au, 0x00000053u, 0x00000069u, 0x00050051u, 0x00000006u, 0x0000006du, 0x00000058u, 0x00000003u, + 0x00050051u, 0x00000006u, 0x0000006fu, 0x00000061u, 0x00000003u, 0x000500c7u, 0x00000006u, 0x00000070u, + 0x0000006du, 0x0000006fu, 0x00050051u, 0x00000006u, 0x00000072u, 0x0000006au, 0x00000003u, 0x000500c7u, + 0x00000006u, 0x00000073u, 0x00000070u, 0x00000072u, 0x000500aau, 0x00000019u, 0x00000075u, 0x00000073u, + 0x00000074u, 0x000300f7u, 0x00000077u, 0x00000000u, 0x000400fau, 0x00000075u, 0x00000076u, 0x0000007bu, + 0x000200f8u, 0x00000076u, 0x0003003eu, 0x00000079u, 0x00000061u, 0x000200f9u, 0x00000077u, 0x000200f8u, + 0x0000007bu, 0x00050051u, 0x00000006u, 0x00000080u, 0x00000058u, 0x00000000u, 0x00050051u, 0x00000006u, + 0x00000083u, 0x00000061u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000086u, 0x0000006au, 0x00000000u, + 0x000500b0u, 0x00000019u, 0x000000b0u, 0x00000080u, 0x00000083u, 0x000600a9u, 0x00000006u, 0x00000167u, + 0x000000b0u, 0x00000083u, 0x00000080u, 0x000600a9u, 0x00000006u, 0x00000168u, 0x000000b0u, 0x00000080u, + 0x00000083u, 0x000500b0u, 0x00000019u, 0x000000bau, 0x00000168u, 0x00000086u, 0x000600a9u, 0x00000006u, + 0x00000169u, 0x000000bau, 0x00000086u, 0x00000168u, 0x000500b0u, 0x00000019u, 0x000000c4u, 0x00000167u, + 0x00000169u, 0x000600a9u, 0x00000006u, 0x0000016au, 0x000000c4u, 0x00000167u, 0x00000169u, 0x00050051u, + 0x00000006u, 0x0000008cu, 0x00000058u, 0x00000001u, 0x00050051u, 0x00000006u, 0x0000008fu, 0x00000061u, + 0x00000001u, 0x00050051u, 0x00000006u, 0x00000092u, 0x0000006au, 0x00000001u, 0x000500b0u, 0x00000019u, + 0x000000e6u, 0x0000008cu, 0x0000008fu, 0x000600a9u, 0x00000006u, 0x0000016bu, 0x000000e6u, 0x0000008fu, + 0x0000008cu, 0x000600a9u, 0x00000006u, 0x0000016cu, 0x000000e6u, 0x0000008cu, 0x0000008fu, 0x000500b0u, + 0x00000019u, 0x000000f0u, 0x0000016cu, 0x00000092u, 0x000600a9u, 0x00000006u, 0x0000016du, 0x000000f0u, + 0x00000092u, 0x0000016cu, 0x000500b0u, 0x00000019u, 0x000000fau, 0x0000016bu, 0x0000016du, 0x000600a9u, + 0x00000006u, 0x0000016eu, 0x000000fau, 0x0000016bu, 0x0000016du, 0x00050051u, 0x00000006u, 0x00000098u, + 0x00000058u, 0x00000002u, 0x00050051u, 0x00000006u, 0x0000009bu, 0x00000061u, 0x00000002u, 0x00050051u, + 0x00000006u, 0x0000009eu, 0x0000006au, 0x00000002u, 0x000500b0u, 0x00000019u, 0x0000011cu, 0x00000098u, + 0x0000009bu, 0x000600a9u, 0x00000006u, 0x0000016fu, 0x0000011cu, 0x0000009bu, 0x00000098u, 0x000600a9u, + 0x00000006u, 0x00000170u, 0x0000011cu, 0x00000098u, 0x0000009bu, 0x000500b0u, 0x00000019u, 0x00000126u, + 0x00000170u, 0x0000009eu, 0x000600a9u, 0x00000006u, 0x00000171u, 0x00000126u, 0x0000009eu, 0x00000170u, + 0x000500b0u, 0x00000019u, 0x00000130u, 0x0000016fu, 0x00000171u, 0x000600a9u, 0x00000006u, 0x00000172u, + 0x00000130u, 0x0000016fu, 0x00000171u, 0x00070050u, 0x0000004bu, 0x000000a5u, 0x0000016au, 0x0000016eu, + 0x00000172u, 0x0000006fu, 0x0003003eu, 0x00000079u, 0x000000a5u, 0x000200f9u, 0x00000077u, 0x000200f8u, + 0x00000077u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x000002b1u, 0x00000000u, + 0x00020011u, 0x00000001u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, + 0x0003000eu, 0x00000000u, 0x00000001u, 0x0008000fu, 0x00000004u, 0x00000004u, 0x6e69616du, 0x00000000u, + 0x00000046u, 0x00000079u, 0x000000c3u, 0x00030010u, 0x00000004u, 0x00000007u, 0x00040047u, 0x00000046u, + 0x0000000bu, 0x0000000fu, 0x00030047u, 0x00000050u, 0x00000000u, 0x00040047u, 0x00000050u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000050u, 0x00000021u, 0x00000000u, 0x00030047u, 0x00000051u, 0x00000000u, + 0x00030047u, 0x00000058u, 0x00000000u, 0x00030047u, 0x00000061u, 0x00000000u, 0x00030047u, 0x0000006au, + 0x00000000u, 0x00040047u, 0x00000079u, 0x0000001eu, 0x00000000u, 0x00030047u, 0x000000abu, 0x00000000u, + 0x00030047u, 0x000000b1u, 0x00000000u, 0x00030047u, 0x000000b7u, 0x00000000u, 0x00040047u, 0x000000c3u, + 0x0000001eu, 0x00000001u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, + 0x00000006u, 0x00000020u, 0x00000000u, 0x00020014u, 0x00000019u, 0x00040015u, 0x0000003fu, 0x00000020u, + 0x00000001u, 0x00040017u, 0x00000040u, 0x0000003fu, 0x00000002u, 0x00030016u, 0x00000043u, 0x00000020u, + 0x00040017u, 0x00000044u, 0x00000043u, 0x00000004u, 0x00040020u, 0x00000045u, 0x00000001u, 0x00000044u, + 0x0004003bu, 0x00000045u, 0x00000046u, 0x00000001u, 0x00040017u, 0x00000047u, 0x00000043u, 0x00000002u, + 0x00040017u, 0x0000004bu, 0x00000006u, 0x00000004u, 0x00090019u, 0x0000004eu, 0x00000006u, 0x00000001u, + 0x00000000u, 0x00000001u, 0x00000000u, 0x00000001u, 0x00000000u, 0x00040020u, 0x0000004fu, 0x00000000u, + 0x0000004eu, 0x0004003bu, 0x0000004fu, 0x00000050u, 0x00000000u, 0x0004002bu, 0x0000003fu, 0x00000053u, + 0x00000000u, 0x00040017u, 0x00000054u, 0x0000003fu, 0x00000003u, 0x0004002bu, 0x0000003fu, 0x0000005fu, + 0x00000001u, 0x0005002cu, 0x00000040u, 0x00000060u, 0x0000005fu, 0x00000053u, 0x0004002bu, 0x0000003fu, + 0x00000068u, 0x00000002u, 0x0005002cu, 0x00000040u, 0x00000069u, 0x00000068u, 0x00000053u, 0x0004002bu, + 0x00000006u, 0x00000074u, 0x00000007u, 0x00040020u, 0x00000078u, 0x00000003u, 0x0000004bu, 0x0004003bu, + 0x00000078u, 0x00000079u, 0x00000003u, 0x0004003bu, 0x00000078u, 0x000000c3u, 0x00000003u, 0x00050036u, + 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003du, 0x00000044u, + 0x00000048u, 0x00000046u, 0x0007004fu, 0x00000047u, 0x00000049u, 0x00000048u, 0x00000048u, 0x00000000u, + 0x00000001u, 0x0004006eu, 0x00000040u, 0x0000004au, 0x00000049u, 0x0004003du, 0x0000004eu, 0x00000051u, + 0x00000050u, 0x00050051u, 0x0000003fu, 0x00000055u, 0x0000004au, 0x00000000u, 0x00050051u, 0x0000003fu, + 0x00000056u, 0x0000004au, 0x00000001u, 0x00060050u, 0x00000054u, 0x00000057u, 0x00000055u, 0x00000056u, + 0x00000053u, 0x0007005fu, 0x0000004bu, 0x00000058u, 0x00000051u, 0x00000057u, 0x00000002u, 0x00000053u, + 0x0008005fu, 0x0000004bu, 0x00000061u, 0x00000051u, 0x00000057u, 0x0000000au, 0x00000053u, 0x00000060u, + 0x0008005fu, 0x0000004bu, 0x0000006au, 0x00000051u, 0x00000057u, 0x0000000au, 0x00000053u, 0x00000069u, + 0x00050051u, 0x00000006u, 0x0000006du, 0x00000058u, 0x00000003u, 0x00050051u, 0x00000006u, 0x0000006fu, + 0x00000061u, 0x00000003u, 0x000500c7u, 0x00000006u, 0x00000070u, 0x0000006du, 0x0000006fu, 0x00050051u, + 0x00000006u, 0x00000072u, 0x0000006au, 0x00000003u, 0x000500c7u, 0x00000006u, 0x00000073u, 0x00000070u, + 0x00000072u, 0x000500aau, 0x00000019u, 0x00000075u, 0x00000073u, 0x00000074u, 0x000300f7u, 0x00000077u, + 0x00000000u, 0x000400fau, 0x00000075u, 0x00000076u, 0x0000007bu, 0x000200f8u, 0x00000076u, 0x0003003eu, + 0x00000079u, 0x00000061u, 0x000200f9u, 0x00000077u, 0x000200f8u, 0x0000007bu, 0x00050051u, 0x00000006u, + 0x00000080u, 0x00000058u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000083u, 0x00000061u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00000086u, 0x0000006au, 0x00000000u, 0x000500b0u, 0x00000019u, 0x000000f7u, + 0x00000080u, 0x00000083u, 0x000600a9u, 0x00000006u, 0x00000299u, 0x000000f7u, 0x00000083u, 0x00000080u, + 0x000600a9u, 0x00000006u, 0x0000029au, 0x000000f7u, 0x00000080u, 0x00000083u, 0x000500b0u, 0x00000019u, + 0x00000101u, 0x0000029au, 0x00000086u, 0x000600a9u, 0x00000006u, 0x0000029bu, 0x00000101u, 0x00000086u, + 0x0000029au, 0x000500b0u, 0x00000019u, 0x0000010bu, 0x00000299u, 0x0000029bu, 0x000600a9u, 0x00000006u, + 0x0000029cu, 0x0000010bu, 0x00000299u, 0x0000029bu, 0x00050051u, 0x00000006u, 0x0000008cu, 0x00000058u, + 0x00000001u, 0x00050051u, 0x00000006u, 0x0000008fu, 0x00000061u, 0x00000001u, 0x00050051u, 0x00000006u, + 0x00000092u, 0x0000006au, 0x00000001u, 0x000500b0u, 0x00000019u, 0x0000012du, 0x0000008cu, 0x0000008fu, + 0x000600a9u, 0x00000006u, 0x0000029du, 0x0000012du, 0x0000008fu, 0x0000008cu, 0x000600a9u, 0x00000006u, + 0x0000029eu, 0x0000012du, 0x0000008cu, 0x0000008fu, 0x000500b0u, 0x00000019u, 0x00000137u, 0x0000029eu, + 0x00000092u, 0x000600a9u, 0x00000006u, 0x0000029fu, 0x00000137u, 0x00000092u, 0x0000029eu, 0x000500b0u, + 0x00000019u, 0x00000141u, 0x0000029du, 0x0000029fu, 0x000600a9u, 0x00000006u, 0x000002a0u, 0x00000141u, + 0x0000029du, 0x0000029fu, 0x00050051u, 0x00000006u, 0x00000098u, 0x00000058u, 0x00000002u, 0x00050051u, + 0x00000006u, 0x0000009bu, 0x00000061u, 0x00000002u, 0x00050051u, 0x00000006u, 0x0000009eu, 0x0000006au, + 0x00000002u, 0x000500b0u, 0x00000019u, 0x00000163u, 0x00000098u, 0x0000009bu, 0x000600a9u, 0x00000006u, + 0x000002a1u, 0x00000163u, 0x0000009bu, 0x00000098u, 0x000600a9u, 0x00000006u, 0x000002a2u, 0x00000163u, + 0x00000098u, 0x0000009bu, 0x000500b0u, 0x00000019u, 0x0000016du, 0x000002a2u, 0x0000009eu, 0x000600a9u, + 0x00000006u, 0x000002a3u, 0x0000016du, 0x0000009eu, 0x000002a2u, 0x000500b0u, 0x00000019u, 0x00000177u, + 0x000002a1u, 0x000002a3u, 0x000600a9u, 0x00000006u, 0x000002a4u, 0x00000177u, 0x000002a1u, 0x000002a3u, + 0x00070050u, 0x0000004bu, 0x000000a5u, 0x0000029cu, 0x000002a0u, 0x000002a4u, 0x0000006fu, 0x0003003eu, + 0x00000079u, 0x000000a5u, 0x000200f9u, 0x00000077u, 0x000200f8u, 0x00000077u, 0x00060050u, 0x00000054u, + 0x000000aau, 0x00000055u, 0x00000056u, 0x0000005fu, 0x0007005fu, 0x0000004bu, 0x000000abu, 0x00000051u, + 0x000000aau, 0x00000002u, 0x00000053u, 0x0008005fu, 0x0000004bu, 0x000000b1u, 0x00000051u, 0x000000aau, + 0x0000000au, 0x00000053u, 0x00000060u, 0x0008005fu, 0x0000004bu, 0x000000b7u, 0x00000051u, 0x000000aau, + 0x0000000au, 0x00000053u, 0x00000069u, 0x00050051u, 0x00000006u, 0x000000b9u, 0x000000abu, 0x00000003u, + 0x00050051u, 0x00000006u, 0x000000bbu, 0x000000b1u, 0x00000003u, 0x000500c7u, 0x00000006u, 0x000000bcu, + 0x000000b9u, 0x000000bbu, 0x00050051u, 0x00000006u, 0x000000beu, 0x000000b7u, 0x00000003u, 0x000500c7u, + 0x00000006u, 0x000000bfu, 0x000000bcu, 0x000000beu, 0x000500aau, 0x00000019u, 0x000000c0u, 0x000000bfu, + 0x00000074u, 0x000300f7u, 0x000000c2u, 0x00000000u, 0x000400fau, 0x000000c0u, 0x000000c1u, 0x000000c5u, + 0x000200f8u, 0x000000c1u, 0x0003003eu, 0x000000c3u, 0x000000b1u, 0x000200f9u, 0x000000c2u, 0x000200f8u, + 0x000000c5u, 0x00050051u, 0x00000006u, 0x000000c9u, 0x000000abu, 0x00000000u, 0x00050051u, 0x00000006u, + 0x000000ccu, 0x000000b1u, 0x00000000u, 0x00050051u, 0x00000006u, 0x000000cfu, 0x000000b7u, 0x00000000u, + 0x000500b0u, 0x00000019u, 0x00000199u, 0x000000c9u, 0x000000ccu, 0x000600a9u, 0x00000006u, 0x000002a5u, + 0x00000199u, 0x000000ccu, 0x000000c9u, 0x000600a9u, 0x00000006u, 0x000002a6u, 0x00000199u, 0x000000c9u, + 0x000000ccu, 0x000500b0u, 0x00000019u, 0x000001a3u, 0x000002a6u, 0x000000cfu, 0x000600a9u, 0x00000006u, + 0x000002a7u, 0x000001a3u, 0x000000cfu, 0x000002a6u, 0x000500b0u, 0x00000019u, 0x000001adu, 0x000002a5u, + 0x000002a7u, 0x000600a9u, 0x00000006u, 0x000002a8u, 0x000001adu, 0x000002a5u, 0x000002a7u, 0x00050051u, + 0x00000006u, 0x000000d4u, 0x000000abu, 0x00000001u, 0x00050051u, 0x00000006u, 0x000000d7u, 0x000000b1u, + 0x00000001u, 0x00050051u, 0x00000006u, 0x000000dau, 0x000000b7u, 0x00000001u, 0x000500b0u, 0x00000019u, + 0x000001cfu, 0x000000d4u, 0x000000d7u, 0x000600a9u, 0x00000006u, 0x000002a9u, 0x000001cfu, 0x000000d7u, + 0x000000d4u, 0x000600a9u, 0x00000006u, 0x000002aau, 0x000001cfu, 0x000000d4u, 0x000000d7u, 0x000500b0u, + 0x00000019u, 0x000001d9u, 0x000002aau, 0x000000dau, 0x000600a9u, 0x00000006u, 0x000002abu, 0x000001d9u, + 0x000000dau, 0x000002aau, 0x000500b0u, 0x00000019u, 0x000001e3u, 0x000002a9u, 0x000002abu, 0x000600a9u, + 0x00000006u, 0x000002acu, 0x000001e3u, 0x000002a9u, 0x000002abu, 0x00050051u, 0x00000006u, 0x000000dfu, + 0x000000abu, 0x00000002u, 0x00050051u, 0x00000006u, 0x000000e2u, 0x000000b1u, 0x00000002u, 0x00050051u, + 0x00000006u, 0x000000e5u, 0x000000b7u, 0x00000002u, 0x000500b0u, 0x00000019u, 0x00000205u, 0x000000dfu, + 0x000000e2u, 0x000600a9u, 0x00000006u, 0x000002adu, 0x00000205u, 0x000000e2u, 0x000000dfu, 0x000600a9u, + 0x00000006u, 0x000002aeu, 0x00000205u, 0x000000dfu, 0x000000e2u, 0x000500b0u, 0x00000019u, 0x0000020fu, + 0x000002aeu, 0x000000e5u, 0x000600a9u, 0x00000006u, 0x000002afu, 0x0000020fu, 0x000000e5u, 0x000002aeu, + 0x000500b0u, 0x00000019u, 0x00000219u, 0x000002adu, 0x000002afu, 0x000600a9u, 0x00000006u, 0x000002b0u, + 0x00000219u, 0x000002adu, 0x000002afu, 0x00070050u, 0x0000004bu, 0x000000ecu, 0x000002a8u, 0x000002acu, + 0x000002b0u, 0x000000bbu, 0x0003003eu, 0x000000c3u, 0x000000ecu, 0x000200f9u, 0x000000c2u, 0x000200f8u, + 0x000000c2u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x000002a8u, 0x00000000u, + 0x00020011u, 0x00000001u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, + 0x0003000eu, 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000004u, 0x00000004u, 0x6e69616du, 0x00000000u, + 0x00000049u, 0x00000162u, 0x00030010u, 0x00000004u, 0x00000007u, 0x00030047u, 0x0000001cu, 0x00000000u, + 0x00040047u, 0x0000001cu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000001cu, 0x00000021u, 0x00000000u, + 0x00040047u, 0x00000049u, 0x0000000bu, 0x0000000fu, 0x00050048u, 0x0000004eu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000004eu, 0x00000002u, 0x00040047u, 0x000000fdu, 0x00000001u, 0x00000001u, + 0x00040047u, 0x00000162u, 0x0000001eu, 0x00000000u, 0x00030047u, 0x00000180u, 0x00000000u, 0x00030047u, + 0x00000184u, 0x00000000u, 0x00030047u, 0x0000018du, 0x00000000u, 0x00030047u, 0x00000196u, 0x00000000u, + 0x00030047u, 0x0000019fu, 0x00000000u, 0x00030047u, 0x000001a8u, 0x00000000u, 0x00030047u, 0x000001b1u, + 0x00000000u, 0x00030047u, 0x000001bau, 0x00000000u, 0x00030047u, 0x0000025fu, 0x00000000u, 0x00030047u, + 0x00000268u, 0x00000000u, 0x00030047u, 0x00000271u, 0x00000000u, 0x00030047u, 0x0000027au, 0x00000000u, + 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, + 0x00000001u, 0x00040017u, 0x00000007u, 0x00000006u, 0x00000002u, 0x00040015u, 0x00000009u, 0x00000020u, + 0x00000000u, 0x00040017u, 0x0000000au, 0x00000009u, 0x00000004u, 0x00040017u, 0x00000010u, 0x00000009u, + 0x00000003u, 0x00090019u, 0x0000001au, 0x00000009u, 0x00000001u, 0x00000000u, 0x00000000u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00040020u, 0x0000001bu, 0x00000000u, 0x0000001au, 0x0004003bu, 0x0000001bu, + 0x0000001cu, 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000023u, 0x00000000u, 0x0004002bu, 0x00000009u, + 0x00000029u, 0x00000003u, 0x0004002bu, 0x00000009u, 0x0000002du, 0x00000007u, 0x00020014u, 0x0000002eu, + 0x00030016u, 0x00000046u, 0x00000020u, 0x00040017u, 0x00000047u, 0x00000046u, 0x00000004u, 0x00040020u, + 0x00000048u, 0x00000001u, 0x00000047u, 0x0004003bu, 0x00000048u, 0x00000049u, 0x00000001u, 0x00040017u, + 0x0000004au, 0x00000046u, 0x00000002u, 0x0003001eu, 0x0000004eu, 0x00000007u, 0x00040020u, 0x0000004fu, + 0x00000009u, 0x0000004eu, 0x0004003bu, 0x0000004fu, 0x00000050u, 0x00000009u, 0x00040020u, 0x00000051u, + 0x00000009u, 0x00000007u, 0x0004002bu, 0x00000006u, 0x00000068u, 0xffffffffu, 0x0005002cu, 0x00000007u, + 0x00000069u, 0x00000068u, 0x00000068u, 0x0004002bu, 0x00000006u, 0x0000006du, 0x00000001u, 0x0005002cu, + 0x00000007u, 0x0000006eu, 0x0000006du, 0x00000068u, 0x0004002bu, 0x00000006u, 0x00000072u, 0xfffffffeu, + 0x0005002cu, 0x00000007u, 0x00000073u, 0x00000072u, 0x00000023u, 0x0004002bu, 0x00000006u, 0x00000077u, + 0x00000002u, 0x0005002cu, 0x00000007u, 0x00000078u, 0x00000077u, 0x00000023u, 0x0005002cu, 0x00000007u, + 0x0000007cu, 0x00000068u, 0x0000006du, 0x0005002cu, 0x00000007u, 0x00000080u, 0x0000006du, 0x0000006du, + 0x0004002bu, 0x00000009u, 0x000000e3u, 0x00000001u, 0x0004002bu, 0x00000009u, 0x000000f2u, 0x00000004u, + 0x0004002bu, 0x00000009u, 0x000000f8u, 0x000000ffu, 0x00040032u, 0x00000006u, 0x000000fdu, 0x00000000u, + 0x0004002bu, 0x00000006u, 0x000000feu, 0x00010000u, 0x00060034u, 0x00000006u, 0x000000ffu, 0x000000c7u, + 0x000000fdu, 0x000000feu, 0x00060034u, 0x0000002eu, 0x00000100u, 0x000000abu, 0x000000ffu, 0x00000023u, + 0x00040017u, 0x00000103u, 0x00000006u, 0x00000003u, 0x0006002cu, 0x00000103u, 0x0000010cu, 0x00000023u, + 0x00000023u, 0x00000023u, 0x0006002cu, 0x00000103u, 0x0000012bu, 0x00000068u, 0x00000068u, 0x00000068u, + 0x0006002cu, 0x00000103u, 0x0000012cu, 0x0000006du, 0x0000006du, 0x0000006du, 0x0005002cu, 0x00000007u, + 0x0000014au, 0x00000023u, 0x0000006du, 0x0004002bu, 0x00000009u, 0x00000158u, 0x000000f8u, 0x00040020u, + 0x00000161u, 0x00000003u, 0x0000000au, 0x0004003bu, 0x00000161u, 0x00000162u, 0x00000003u, 0x0006002cu, + 0x00000010u, 0x000002a2u, 0x00000029u, 0x00000029u, 0x00000029u, 0x0006002cu, 0x00000010u, 0x000002a4u, + 0x000000e3u, 0x000000e3u, 0x000000e3u, 0x0006002cu, 0x00000010u, 0x000002a5u, 0x000000f2u, 0x000000f2u, + 0x000000f2u, 0x0006002cu, 0x00000010u, 0x000002a6u, 0x000000f8u, 0x000000f8u, 0x000000f8u, 0x0006002cu, + 0x00000010u, 0x000002a7u, 0x00000158u, 0x00000158u, 0x00000158u, 0x00050036u, 0x00000002u, 0x00000004u, + 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003du, 0x00000047u, 0x0000004bu, 0x00000049u, + 0x0007004fu, 0x0000004au, 0x0000004cu, 0x0000004bu, 0x0000004bu, 0x00000000u, 0x00000001u, 0x0004006eu, + 0x00000007u, 0x0000004du, 0x0000004cu, 0x00050041u, 0x00000051u, 0x00000052u, 0x00000050u, 0x00000023u, + 0x0004003du, 0x00000007u, 0x00000053u, 0x00000052u, 0x00050080u, 0x00000007u, 0x00000054u, 0x0000004du, + 0x00000053u, 0x0004003du, 0x0000001au, 0x00000180u, 0x0000001cu, 0x0007005fu, 0x0000000au, 0x00000184u, + 0x00000180u, 0x00000054u, 0x00000002u, 0x00000023u, 0x00050051u, 0x00000009u, 0x0000005au, 0x00000184u, + 0x00000003u, 0x000500abu, 0x0000002eu, 0x0000005bu, 0x0000005au, 0x0000002du, 0x000300f7u, 0x0000005du, + 0x00000000u, 0x000400fau, 0x0000005bu, 0x0000005cu, 0x000000fcu, 0x000200f8u, 0x0000005cu, 0x0008004fu, + 0x00000010u, 0x00000060u, 0x00000184u, 0x00000184u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00050080u, + 0x00000007u, 0x0000018cu, 0x00000054u, 0x00000069u, 0x0007005fu, 0x0000000au, 0x0000018du, 0x00000180u, + 0x0000018cu, 0x00000002u, 0x00000023u, 0x00050080u, 0x00000007u, 0x00000195u, 0x00000054u, 0x0000006eu, + 0x0007005fu, 0x0000000au, 0x00000196u, 0x00000180u, 0x00000195u, 0x00000002u, 0x00000023u, 0x00050080u, + 0x00000007u, 0x0000019eu, 0x00000054u, 0x00000073u, 0x0007005fu, 0x0000000au, 0x0000019fu, 0x00000180u, + 0x0000019eu, 0x00000002u, 0x00000023u, 0x00050080u, 0x00000007u, 0x000001a7u, 0x00000054u, 0x00000078u, + 0x0007005fu, 0x0000000au, 0x000001a8u, 0x00000180u, 0x000001a7u, 0x00000002u, 0x00000023u, 0x00050080u, + 0x00000007u, 0x000001b0u, 0x00000054u, 0x0000007cu, 0x0007005fu, 0x0000000au, 0x000001b1u, 0x00000180u, + 0x000001b0u, 0x00000002u, 0x00000023u, 0x00050080u, 0x00000007u, 0x000001b9u, 0x00000054u, 0x00000080u, + 0x0007005fu, 0x0000000au, 0x000001bau, 0x00000180u, 0x000001b9u, 0x00000002u, 0x00000023u, 0x00050051u, + 0x00000009u, 0x000001beu, 0x0000018du, 0x00000003u, 0x000500aau, 0x0000002eu, 0x000001bfu, 0x000001beu, + 0x0000002du, 0x000300f7u, 0x000001d5u, 0x00000000u, 0x000400fau, 0x000001bfu, 0x000001c0u, 0x000001d5u, + 0x000200f8u, 0x000001c0u, 0x0008004fu, 0x00000010u, 0x000001c3u, 0x0000018du, 0x0000018du, 0x00000000u, + 0x00000001u, 0x00000002u, 0x0007000cu, 0x00000010u, 0x000001c5u, 0x00000001u, 0x00000029u, 0x000001c3u, + 0x00000060u, 0x0007000cu, 0x00000010u, 0x000001c6u, 0x00000001u, 0x00000026u, 0x00000060u, 0x000001c5u, + 0x0007000cu, 0x00000010u, 0x000001cbu, 0x00000001u, 0x00000026u, 0x000001c3u, 0x00000060u, 0x0007000cu, + 0x00000010u, 0x000001ccu, 0x00000001u, 0x00000029u, 0x00000060u, 0x000001cbu, 0x000200f9u, 0x000001d5u, + 0x000200f8u, 0x000001d5u, 0x000700f5u, 0x00000010u, 0x0000028du, 0x00000060u, 0x0000005cu, 0x000001ccu, + 0x000001c0u, 0x000700f5u, 0x00000010u, 0x0000028cu, 0x00000060u, 0x0000005cu, 0x000001c6u, 0x000001c0u, + 0x000700f5u, 0x00000010u, 0x0000028bu, 0x00000060u, 0x0000005cu, 0x000001c5u, 0x000001c0u, 0x000700f5u, + 0x00000010u, 0x0000028au, 0x00000060u, 0x0000005cu, 0x000001cbu, 0x000001c0u, 0x00050051u, 0x00000009u, + 0x000001d8u, 0x00000196u, 0x00000003u, 0x000500aau, 0x0000002eu, 0x000001d9u, 0x000001d8u, 0x0000002du, + 0x000300f7u, 0x000001efu, 0x00000000u, 0x000400fau, 0x000001d9u, 0x000001dau, 0x000001efu, 0x000200f8u, + 0x000001dau, 0x0008004fu, 0x00000010u, 0x000001ddu, 0x00000196u, 0x00000196u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x0007000cu, 0x00000010u, 0x000001dfu, 0x00000001u, 0x00000029u, 0x000001ddu, 0x0000028au, + 0x0007000cu, 0x00000010u, 0x000001e0u, 0x00000001u, 0x00000026u, 0x0000028cu, 0x000001dfu, 0x0007000cu, + 0x00000010u, 0x000001e5u, 0x00000001u, 0x00000026u, 0x000001ddu, 0x0000028bu, 0x0007000cu, 0x00000010u, + 0x000001e6u, 0x00000001u, 0x00000029u, 0x0000028du, 0x000001e5u, 0x0007000cu, 0x00000010u, 0x000001eau, + 0x00000001u, 0x00000026u, 0x000001ddu, 0x0000028au, 0x0007000cu, 0x00000010u, 0x000001eeu, 0x00000001u, + 0x00000029u, 0x000001ddu, 0x0000028bu, 0x000200f9u, 0x000001efu, 0x000200f8u, 0x000001efu, 0x000700f5u, + 0x00000010u, 0x00000291u, 0x0000028du, 0x000001d5u, 0x000001e6u, 0x000001dau, 0x000700f5u, 0x00000010u, + 0x00000290u, 0x0000028cu, 0x000001d5u, 0x000001e0u, 0x000001dau, 0x000700f5u, 0x00000010u, 0x0000028fu, + 0x0000028bu, 0x000001d5u, 0x000001eeu, 0x000001dau, 0x000700f5u, 0x00000010u, 0x0000028eu, 0x0000028au, + 0x000001d5u, 0x000001eau, 0x000001dau, 0x00050051u, 0x00000009u, 0x000001f2u, 0x0000019fu, 0x00000003u, + 0x000500aau, 0x0000002eu, 0x000001f3u, 0x000001f2u, 0x0000002du, 0x000300f7u, 0x00000209u, 0x00000000u, + 0x000400fau, 0x000001f3u, 0x000001f4u, 0x00000209u, 0x000200f8u, 0x000001f4u, 0x0008004fu, 0x00000010u, + 0x000001f7u, 0x0000019fu, 0x0000019fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x0007000cu, 0x00000010u, + 0x000001f9u, 0x00000001u, 0x00000029u, 0x000001f7u, 0x0000028eu, 0x0007000cu, 0x00000010u, 0x000001fau, + 0x00000001u, 0x00000026u, 0x00000290u, 0x000001f9u, 0x0007000cu, 0x00000010u, 0x000001ffu, 0x00000001u, + 0x00000026u, 0x000001f7u, 0x0000028fu, 0x0007000cu, 0x00000010u, 0x00000200u, 0x00000001u, 0x00000029u, + 0x00000291u, 0x000001ffu, 0x0007000cu, 0x00000010u, 0x00000204u, 0x00000001u, 0x00000026u, 0x000001f7u, + 0x0000028eu, 0x0007000cu, 0x00000010u, 0x00000208u, 0x00000001u, 0x00000029u, 0x000001f7u, 0x0000028fu, + 0x000200f9u, 0x00000209u, 0x000200f8u, 0x00000209u, 0x000700f5u, 0x00000010u, 0x00000295u, 0x00000291u, + 0x000001efu, 0x00000200u, 0x000001f4u, 0x000700f5u, 0x00000010u, 0x00000294u, 0x00000290u, 0x000001efu, + 0x000001fau, 0x000001f4u, 0x000700f5u, 0x00000010u, 0x00000293u, 0x0000028fu, 0x000001efu, 0x00000208u, + 0x000001f4u, 0x000700f5u, 0x00000010u, 0x00000292u, 0x0000028eu, 0x000001efu, 0x00000204u, 0x000001f4u, + 0x00050051u, 0x00000009u, 0x0000020cu, 0x000001a8u, 0x00000003u, 0x000500aau, 0x0000002eu, 0x0000020du, + 0x0000020cu, 0x0000002du, 0x000300f7u, 0x00000223u, 0x00000000u, 0x000400fau, 0x0000020du, 0x0000020eu, + 0x00000223u, 0x000200f8u, 0x0000020eu, 0x0008004fu, 0x00000010u, 0x00000211u, 0x000001a8u, 0x000001a8u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x0007000cu, 0x00000010u, 0x00000213u, 0x00000001u, 0x00000029u, + 0x00000211u, 0x00000292u, 0x0007000cu, 0x00000010u, 0x00000214u, 0x00000001u, 0x00000026u, 0x00000294u, + 0x00000213u, 0x0007000cu, 0x00000010u, 0x00000219u, 0x00000001u, 0x00000026u, 0x00000211u, 0x00000293u, + 0x0007000cu, 0x00000010u, 0x0000021au, 0x00000001u, 0x00000029u, 0x00000295u, 0x00000219u, 0x0007000cu, + 0x00000010u, 0x0000021eu, 0x00000001u, 0x00000026u, 0x00000211u, 0x00000292u, 0x0007000cu, 0x00000010u, + 0x00000222u, 0x00000001u, 0x00000029u, 0x00000211u, 0x00000293u, 0x000200f9u, 0x00000223u, 0x000200f8u, + 0x00000223u, 0x000700f5u, 0x00000010u, 0x00000299u, 0x00000295u, 0x00000209u, 0x0000021au, 0x0000020eu, + 0x000700f5u, 0x00000010u, 0x00000298u, 0x00000294u, 0x00000209u, 0x00000214u, 0x0000020eu, 0x000700f5u, + 0x00000010u, 0x00000297u, 0x00000293u, 0x00000209u, 0x00000222u, 0x0000020eu, 0x000700f5u, 0x00000010u, + 0x00000296u, 0x00000292u, 0x00000209u, 0x0000021eu, 0x0000020eu, 0x00050051u, 0x00000009u, 0x00000226u, + 0x000001b1u, 0x00000003u, 0x000500aau, 0x0000002eu, 0x00000227u, 0x00000226u, 0x0000002du, 0x000300f7u, + 0x0000023du, 0x00000000u, 0x000400fau, 0x00000227u, 0x00000228u, 0x0000023du, 0x000200f8u, 0x00000228u, + 0x0008004fu, 0x00000010u, 0x0000022bu, 0x000001b1u, 0x000001b1u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x0007000cu, 0x00000010u, 0x0000022du, 0x00000001u, 0x00000029u, 0x0000022bu, 0x00000296u, 0x0007000cu, + 0x00000010u, 0x0000022eu, 0x00000001u, 0x00000026u, 0x00000298u, 0x0000022du, 0x0007000cu, 0x00000010u, + 0x00000233u, 0x00000001u, 0x00000026u, 0x0000022bu, 0x00000297u, 0x0007000cu, 0x00000010u, 0x00000234u, + 0x00000001u, 0x00000029u, 0x00000299u, 0x00000233u, 0x0007000cu, 0x00000010u, 0x00000238u, 0x00000001u, + 0x00000026u, 0x0000022bu, 0x00000296u, 0x0007000cu, 0x00000010u, 0x0000023cu, 0x00000001u, 0x00000029u, + 0x0000022bu, 0x00000297u, 0x000200f9u, 0x0000023du, 0x000200f8u, 0x0000023du, 0x000700f5u, 0x00000010u, + 0x0000029du, 0x00000299u, 0x00000223u, 0x00000234u, 0x00000228u, 0x000700f5u, 0x00000010u, 0x0000029cu, + 0x00000298u, 0x00000223u, 0x0000022eu, 0x00000228u, 0x000700f5u, 0x00000010u, 0x0000029bu, 0x00000297u, + 0x00000223u, 0x0000023cu, 0x00000228u, 0x000700f5u, 0x00000010u, 0x0000029au, 0x00000296u, 0x00000223u, + 0x00000238u, 0x00000228u, 0x00050051u, 0x00000009u, 0x00000240u, 0x000001bau, 0x00000003u, 0x000500aau, + 0x0000002eu, 0x00000241u, 0x00000240u, 0x0000002du, 0x000300f7u, 0x00000257u, 0x00000000u, 0x000400fau, + 0x00000241u, 0x00000242u, 0x00000257u, 0x000200f8u, 0x00000242u, 0x0008004fu, 0x00000010u, 0x00000245u, + 0x000001bau, 0x000001bau, 0x00000000u, 0x00000001u, 0x00000002u, 0x0007000cu, 0x00000010u, 0x00000247u, + 0x00000001u, 0x00000029u, 0x00000245u, 0x0000029au, 0x0007000cu, 0x00000010u, 0x00000248u, 0x00000001u, + 0x00000026u, 0x0000029cu, 0x00000247u, 0x0007000cu, 0x00000010u, 0x0000024du, 0x00000001u, 0x00000026u, + 0x00000245u, 0x0000029bu, 0x0007000cu, 0x00000010u, 0x0000024eu, 0x00000001u, 0x00000029u, 0x0000029du, + 0x0000024du, 0x000200f9u, 0x00000257u, 0x000200f8u, 0x00000257u, 0x000700f5u, 0x00000010u, 0x0000029fu, + 0x0000029du, 0x0000023du, 0x0000024eu, 0x00000242u, 0x000700f5u, 0x00000010u, 0x0000029eu, 0x0000029cu, + 0x0000023du, 0x00000248u, 0x00000242u, 0x00050080u, 0x00000010u, 0x000000e0u, 0x0000029eu, 0x0000029fu, + 0x000500c4u, 0x00000010u, 0x000000e5u, 0x00000060u, 0x000002a4u, 0x00050082u, 0x00000010u, 0x000000e6u, + 0x000000e0u, 0x000000e5u, 0x00050082u, 0x00000009u, 0x000000eau, 0x0000002du, 0x0000005au, 0x00060050u, + 0x00000010u, 0x000000f0u, 0x000000eau, 0x000000eau, 0x000000eau, 0x00050084u, 0x00000010u, 0x000000f1u, + 0x000000e6u, 0x000000f0u, 0x00050080u, 0x00000010u, 0x000000f4u, 0x000000f1u, 0x000002a5u, 0x000500c2u, + 0x00000010u, 0x000000f6u, 0x000000f4u, 0x000002a2u, 0x00050080u, 0x00000010u, 0x000000f7u, 0x00000060u, + 0x000000f6u, 0x000500c7u, 0x00000010u, 0x000000fbu, 0x000000f7u, 0x000002a6u, 0x000200f9u, 0x0000005du, + 0x000200f8u, 0x000000fcu, 0x000300f7u, 0x00000102u, 0x00000000u, 0x000400fau, 0x00000100u, 0x00000101u, + 0x0000015eu, 0x000200f8u, 0x00000101u, 0x0008004fu, 0x00000010u, 0x00000107u, 0x00000184u, 0x00000184u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c2u, 0x00000010u, 0x00000109u, 0x00000107u, 0x000002a2u, + 0x0004007cu, 0x00000103u, 0x0000010au, 0x00000109u, 0x000200f9u, 0x0000010fu, 0x000200f8u, 0x0000010fu, + 0x000700f5u, 0x00000103u, 0x00000286u, 0x0000010cu, 0x00000101u, 0x00000289u, 0x00000112u, 0x000700f5u, + 0x00000006u, 0x00000285u, 0x00000068u, 0x00000101u, 0x00000133u, 0x00000112u, 0x000500b3u, 0x0000002eu, + 0x00000115u, 0x00000285u, 0x00000023u, 0x000400f6u, 0x00000111u, 0x00000112u, 0x00000000u, 0x000400fau, + 0x00000115u, 0x00000110u, 0x00000111u, 0x000200f8u, 0x00000110u, 0x000200f9u, 0x00000117u, 0x000200f8u, + 0x00000117u, 0x000700f5u, 0x00000103u, 0x00000289u, 0x00000286u, 0x00000110u, 0x0000012fu, 0x00000118u, + 0x000700f5u, 0x00000006u, 0x00000287u, 0x00000068u, 0x00000110u, 0x00000131u, 0x00000118u, 0x000500b3u, + 0x0000002eu, 0x0000011du, 0x00000287u, 0x0000006du, 0x000400f6u, 0x00000119u, 0x00000118u, 0x00000000u, + 0x000400fau, 0x0000011du, 0x00000118u, 0x00000119u, 0x000200f8u, 0x00000118u, 0x00050050u, 0x00000007u, + 0x00000121u, 0x00000287u, 0x00000285u, 0x00050080u, 0x00000007u, 0x0000025eu, 0x00000054u, 0x00000121u, + 0x0007005fu, 0x0000000au, 0x0000025fu, 0x00000180u, 0x0000025eu, 0x00000002u, 0x00000023u, 0x0008004fu, + 0x00000010u, 0x00000124u, 0x0000025fu, 0x0000025fu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c2u, + 0x00000010u, 0x00000126u, 0x00000124u, 0x000002a2u, 0x0004007cu, 0x00000103u, 0x00000127u, 0x00000126u, + 0x00050082u, 0x00000103u, 0x0000012au, 0x00000127u, 0x0000010au, 0x0008000cu, 0x00000103u, 0x0000012du, + 0x00000001u, 0x0000002du, 0x0000012au, 0x0000012bu, 0x0000012cu, 0x00050080u, 0x00000103u, 0x0000012fu, + 0x00000289u, 0x0000012du, 0x00050080u, 0x00000006u, 0x00000131u, 0x00000287u, 0x0000006du, 0x000200f9u, + 0x00000117u, 0x000200f8u, 0x00000119u, 0x000200f9u, 0x00000112u, 0x000200f8u, 0x00000112u, 0x00050080u, + 0x00000006u, 0x00000133u, 0x00000285u, 0x0000006du, 0x000200f9u, 0x0000010fu, 0x000200f8u, 0x00000111u, + 0x00050080u, 0x00000007u, 0x00000267u, 0x00000054u, 0x0000007cu, 0x0007005fu, 0x0000000au, 0x00000268u, + 0x00000180u, 0x00000267u, 0x00000002u, 0x00000023u, 0x0008004fu, 0x00000010u, 0x00000136u, 0x00000268u, + 0x00000268u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c2u, 0x00000010u, 0x00000138u, 0x00000136u, + 0x000002a2u, 0x0004007cu, 0x00000103u, 0x00000139u, 0x00000138u, 0x00050082u, 0x00000103u, 0x0000013bu, + 0x00000139u, 0x0000010au, 0x0008000cu, 0x00000103u, 0x0000013cu, 0x00000001u, 0x0000002du, 0x0000013bu, + 0x0000012bu, 0x0000012cu, 0x00050080u, 0x00000103u, 0x0000013eu, 0x00000286u, 0x0000013cu, 0x00050080u, + 0x00000007u, 0x00000270u, 0x00000054u, 0x00000080u, 0x0007005fu, 0x0000000au, 0x00000271u, 0x00000180u, + 0x00000270u, 0x00000002u, 0x00000023u, 0x0008004fu, 0x00000010u, 0x00000141u, 0x00000271u, 0x00000271u, + 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c2u, 0x00000010u, 0x00000143u, 0x00000141u, 0x000002a2u, + 0x0004007cu, 0x00000103u, 0x00000144u, 0x00000143u, 0x00050082u, 0x00000103u, 0x00000146u, 0x00000144u, + 0x0000010au, 0x0008000cu, 0x00000103u, 0x00000147u, 0x00000001u, 0x0000002du, 0x00000146u, 0x0000012bu, + 0x0000012cu, 0x00050080u, 0x00000103u, 0x00000149u, 0x0000013eu, 0x00000147u, 0x00050080u, 0x00000007u, + 0x00000279u, 0x00000054u, 0x0000014au, 0x0007005fu, 0x0000000au, 0x0000027au, 0x00000180u, 0x00000279u, + 0x00000002u, 0x00000023u, 0x0008004fu, 0x00000010u, 0x0000014du, 0x0000027au, 0x0000027au, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000500c2u, 0x00000010u, 0x0000014fu, 0x0000014du, 0x000002a2u, 0x0004007cu, + 0x00000103u, 0x00000150u, 0x0000014fu, 0x00050082u, 0x00000103u, 0x00000152u, 0x00000150u, 0x0000010au, + 0x0008000cu, 0x00000103u, 0x00000153u, 0x00000001u, 0x0000002du, 0x00000152u, 0x0000012bu, 0x0000012cu, + 0x00050080u, 0x00000103u, 0x00000155u, 0x00000149u, 0x00000153u, 0x000500c7u, 0x00000010u, 0x0000015au, + 0x00000107u, 0x000002a7u, 0x0004007cu, 0x00000010u, 0x0000015cu, 0x00000155u, 0x00050080u, 0x00000010u, + 0x0000015du, 0x0000015au, 0x0000015cu, 0x000200f9u, 0x00000102u, 0x000200f8u, 0x0000015eu, 0x0008004fu, + 0x00000010u, 0x00000160u, 0x00000184u, 0x00000184u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000200f9u, + 0x00000102u, 0x000200f8u, 0x00000102u, 0x000700f5u, 0x00000010u, 0x000002a1u, 0x0000015du, 0x00000111u, + 0x00000160u, 0x0000015eu, 0x000200f9u, 0x0000005du, 0x000200f8u, 0x0000005du, 0x000700f5u, 0x00000010u, + 0x000002a0u, 0x000000fbu, 0x00000257u, 0x000002a1u, 0x00000102u, 0x00050051u, 0x00000009u, 0x00000166u, + 0x000002a0u, 0x00000000u, 0x00050051u, 0x00000009u, 0x00000167u, 0x000002a0u, 0x00000001u, 0x00050051u, + 0x00000009u, 0x00000168u, 0x000002a0u, 0x00000002u, 0x00070050u, 0x0000000au, 0x00000169u, 0x00000166u, + 0x00000167u, 0x00000168u, 0x0000005au, 0x0003003eu, 0x00000162u, 0x00000169u, 0x000100fdu, 0x00010038u, + 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000393u, 0x00000000u, 0x00020011u, 0x00000001u, 0x0006000bu, + 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, + 0x0008000fu, 0x00000004u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00000049u, 0x000001e0u, 0x000001e8u, + 0x00030010u, 0x00000004u, 0x00000007u, 0x00030047u, 0x0000001cu, 0x00000000u, 0x00040047u, 0x0000001cu, + 0x00000022u, 0x00000000u, 0x00040047u, 0x0000001cu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000049u, + 0x0000000bu, 0x0000000fu, 0x00050048u, 0x0000004eu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, + 0x0000004eu, 0x00000002u, 0x00040047u, 0x00000158u, 0x00000001u, 0x00000001u, 0x00040047u, 0x000001e0u, + 0x0000001eu, 0x00000000u, 0x00040047u, 0x000001e8u, 0x0000001eu, 0x00000001u, 0x00030047u, 0x00000206u, + 0x00000000u, 0x00030047u, 0x0000020au, 0x00000000u, 0x00030047u, 0x00000213u, 0x00000000u, 0x00030047u, + 0x0000021cu, 0x00000000u, 0x00030047u, 0x00000225u, 0x00000000u, 0x00030047u, 0x0000022eu, 0x00000000u, + 0x00030047u, 0x00000237u, 0x00000000u, 0x00030047u, 0x00000240u, 0x00000000u, 0x00030047u, 0x00000319u, + 0x00000000u, 0x00030047u, 0x00000322u, 0x00000000u, 0x00030047u, 0x0000032bu, 0x00000000u, 0x00030047u, + 0x00000334u, 0x00000000u, 0x00030047u, 0x0000033du, 0x00000000u, 0x00030047u, 0x00000346u, 0x00000000u, + 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, + 0x00000001u, 0x00040017u, 0x00000007u, 0x00000006u, 0x00000002u, 0x00040015u, 0x00000009u, 0x00000020u, + 0x00000000u, 0x00040017u, 0x0000000au, 0x00000009u, 0x00000004u, 0x00040017u, 0x00000010u, 0x00000009u, + 0x00000003u, 0x00090019u, 0x0000001au, 0x00000009u, 0x00000001u, 0x00000000u, 0x00000000u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00040020u, 0x0000001bu, 0x00000000u, 0x0000001au, 0x0004003bu, 0x0000001bu, + 0x0000001cu, 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000023u, 0x00000000u, 0x0004002bu, 0x00000009u, + 0x00000029u, 0x00000003u, 0x0004002bu, 0x00000009u, 0x0000002du, 0x00000007u, 0x00020014u, 0x0000002eu, + 0x00030016u, 0x00000046u, 0x00000020u, 0x00040017u, 0x00000047u, 0x00000046u, 0x00000004u, 0x00040020u, + 0x00000048u, 0x00000001u, 0x00000047u, 0x0004003bu, 0x00000048u, 0x00000049u, 0x00000001u, 0x00040017u, + 0x0000004au, 0x00000046u, 0x00000002u, 0x0003001eu, 0x0000004eu, 0x00000007u, 0x00040020u, 0x0000004fu, + 0x00000009u, 0x0000004eu, 0x0004003bu, 0x0000004fu, 0x00000050u, 0x00000009u, 0x00040020u, 0x00000051u, + 0x00000009u, 0x00000007u, 0x0004002bu, 0x00000006u, 0x00000068u, 0xffffffffu, 0x0005002cu, 0x00000007u, + 0x00000069u, 0x00000068u, 0x00000068u, 0x0004002bu, 0x00000006u, 0x0000006du, 0x00000001u, 0x0005002cu, + 0x00000007u, 0x0000006eu, 0x0000006du, 0x00000068u, 0x0004002bu, 0x00000006u, 0x00000072u, 0xfffffffeu, + 0x0005002cu, 0x00000007u, 0x00000073u, 0x00000072u, 0x00000023u, 0x0004002bu, 0x00000006u, 0x00000077u, + 0x00000002u, 0x0005002cu, 0x00000007u, 0x00000078u, 0x00000077u, 0x00000023u, 0x0005002cu, 0x00000007u, + 0x0000007cu, 0x00000068u, 0x0000006du, 0x0005002cu, 0x00000007u, 0x00000080u, 0x0000006du, 0x0000006du, + 0x00040017u, 0x00000108u, 0x0000002eu, 0x00000003u, 0x0004002bu, 0x00000009u, 0x00000126u, 0x00000001u, + 0x0004002bu, 0x00000009u, 0x00000135u, 0x00000004u, 0x0004002bu, 0x00000009u, 0x0000013bu, 0x000000ffu, + 0x00040032u, 0x00000006u, 0x00000158u, 0x00000000u, 0x0004002bu, 0x00000006u, 0x00000159u, 0x00010000u, + 0x00060034u, 0x00000006u, 0x0000015au, 0x000000c7u, 0x00000158u, 0x00000159u, 0x00060034u, 0x0000002eu, + 0x0000015bu, 0x000000abu, 0x0000015au, 0x00000023u, 0x00040017u, 0x0000015eu, 0x00000006u, 0x00000003u, + 0x0006002cu, 0x0000015eu, 0x00000167u, 0x00000023u, 0x00000023u, 0x00000023u, 0x0006002cu, 0x0000015eu, + 0x00000186u, 0x00000068u, 0x00000068u, 0x00000068u, 0x0006002cu, 0x0000015eu, 0x00000187u, 0x0000006du, + 0x0000006du, 0x0000006du, 0x0005002cu, 0x00000007u, 0x000001a7u, 0x00000023u, 0x0000006du, 0x0004002bu, + 0x00000009u, 0x000001b5u, 0x000000f8u, 0x0005002cu, 0x00000007u, 0x000001bbu, 0x00000068u, 0x00000023u, + 0x0005002cu, 0x00000007u, 0x000001c7u, 0x0000006du, 0x00000023u, 0x00040020u, 0x000001dfu, 0x00000003u, + 0x0000000au, 0x0004003bu, 0x000001dfu, 0x000001e0u, 0x00000003u, 0x0004003bu, 0x000001dfu, 0x000001e8u, + 0x00000003u, 0x0006002cu, 0x00000010u, 0x0000038du, 0x00000029u, 0x00000029u, 0x00000029u, 0x0006002cu, + 0x00000010u, 0x0000038fu, 0x00000126u, 0x00000126u, 0x00000126u, 0x0006002cu, 0x00000010u, 0x00000390u, + 0x00000135u, 0x00000135u, 0x00000135u, 0x0006002cu, 0x00000010u, 0x00000391u, 0x0000013bu, 0x0000013bu, + 0x0000013bu, 0x0006002cu, 0x00000010u, 0x00000392u, 0x000001b5u, 0x000001b5u, 0x000001b5u, 0x00050036u, + 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003du, 0x00000047u, + 0x0000004bu, 0x00000049u, 0x0007004fu, 0x0000004au, 0x0000004cu, 0x0000004bu, 0x0000004bu, 0x00000000u, + 0x00000001u, 0x0004006eu, 0x00000007u, 0x0000004du, 0x0000004cu, 0x00050041u, 0x00000051u, 0x00000052u, + 0x00000050u, 0x00000023u, 0x0004003du, 0x00000007u, 0x00000053u, 0x00000052u, 0x00050080u, 0x00000007u, + 0x00000054u, 0x0000004du, 0x00000053u, 0x0004003du, 0x0000001au, 0x00000206u, 0x0000001cu, 0x0007005fu, + 0x0000000au, 0x0000020au, 0x00000206u, 0x00000054u, 0x00000002u, 0x00000023u, 0x00050051u, 0x00000009u, + 0x0000005au, 0x0000020au, 0x00000003u, 0x000500abu, 0x0000002eu, 0x0000005bu, 0x0000005au, 0x0000002du, + 0x000300f7u, 0x0000005du, 0x00000000u, 0x000400fau, 0x0000005bu, 0x0000005cu, 0x00000157u, 0x000200f8u, + 0x0000005cu, 0x0008004fu, 0x00000010u, 0x00000060u, 0x0000020au, 0x0000020au, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00050080u, 0x00000007u, 0x00000212u, 0x00000054u, 0x00000069u, 0x0007005fu, 0x0000000au, + 0x00000213u, 0x00000206u, 0x00000212u, 0x00000002u, 0x00000023u, 0x00050080u, 0x00000007u, 0x0000021bu, + 0x00000054u, 0x0000006eu, 0x0007005fu, 0x0000000au, 0x0000021cu, 0x00000206u, 0x0000021bu, 0x00000002u, + 0x00000023u, 0x00050080u, 0x00000007u, 0x00000224u, 0x00000054u, 0x00000073u, 0x0007005fu, 0x0000000au, + 0x00000225u, 0x00000206u, 0x00000224u, 0x00000002u, 0x00000023u, 0x00050080u, 0x00000007u, 0x0000022du, + 0x00000054u, 0x00000078u, 0x0007005fu, 0x0000000au, 0x0000022eu, 0x00000206u, 0x0000022du, 0x00000002u, + 0x00000023u, 0x00050080u, 0x00000007u, 0x00000236u, 0x00000054u, 0x0000007cu, 0x0007005fu, 0x0000000au, + 0x00000237u, 0x00000206u, 0x00000236u, 0x00000002u, 0x00000023u, 0x00050080u, 0x00000007u, 0x0000023fu, + 0x00000054u, 0x00000080u, 0x0007005fu, 0x0000000au, 0x00000240u, 0x00000206u, 0x0000023fu, 0x00000002u, + 0x00000023u, 0x00050051u, 0x00000009u, 0x00000244u, 0x00000213u, 0x00000003u, 0x000500aau, 0x0000002eu, + 0x00000245u, 0x00000244u, 0x0000002du, 0x000300f7u, 0x0000025bu, 0x00000000u, 0x000400fau, 0x00000245u, + 0x00000246u, 0x0000025bu, 0x000200f8u, 0x00000246u, 0x0008004fu, 0x00000010u, 0x00000249u, 0x00000213u, + 0x00000213u, 0x00000000u, 0x00000001u, 0x00000002u, 0x0007000cu, 0x00000010u, 0x0000024bu, 0x00000001u, + 0x00000029u, 0x00000249u, 0x00000060u, 0x0007000cu, 0x00000010u, 0x0000024cu, 0x00000001u, 0x00000026u, + 0x00000060u, 0x0000024bu, 0x0007000cu, 0x00000010u, 0x00000251u, 0x00000001u, 0x00000026u, 0x00000249u, + 0x00000060u, 0x0007000cu, 0x00000010u, 0x00000252u, 0x00000001u, 0x00000029u, 0x00000060u, 0x00000251u, + 0x000200f9u, 0x0000025bu, 0x000200f8u, 0x0000025bu, 0x000700f5u, 0x00000010u, 0x0000035cu, 0x00000060u, + 0x0000005cu, 0x00000252u, 0x00000246u, 0x000700f5u, 0x00000010u, 0x0000035bu, 0x00000060u, 0x0000005cu, + 0x0000024cu, 0x00000246u, 0x000700f5u, 0x00000010u, 0x0000035au, 0x00000060u, 0x0000005cu, 0x0000024bu, + 0x00000246u, 0x000700f5u, 0x00000010u, 0x00000359u, 0x00000060u, 0x0000005cu, 0x00000251u, 0x00000246u, + 0x00050051u, 0x00000009u, 0x0000025eu, 0x0000021cu, 0x00000003u, 0x000500aau, 0x0000002eu, 0x0000025fu, + 0x0000025eu, 0x0000002du, 0x000300f7u, 0x00000275u, 0x00000000u, 0x000400fau, 0x0000025fu, 0x00000260u, + 0x00000275u, 0x000200f8u, 0x00000260u, 0x0008004fu, 0x00000010u, 0x00000263u, 0x0000021cu, 0x0000021cu, + 0x00000000u, 0x00000001u, 0x00000002u, 0x0007000cu, 0x00000010u, 0x00000265u, 0x00000001u, 0x00000029u, + 0x00000263u, 0x00000359u, 0x0007000cu, 0x00000010u, 0x00000266u, 0x00000001u, 0x00000026u, 0x0000035bu, + 0x00000265u, 0x0007000cu, 0x00000010u, 0x0000026bu, 0x00000001u, 0x00000026u, 0x00000263u, 0x0000035au, + 0x0007000cu, 0x00000010u, 0x0000026cu, 0x00000001u, 0x00000029u, 0x0000035cu, 0x0000026bu, 0x0007000cu, + 0x00000010u, 0x00000270u, 0x00000001u, 0x00000026u, 0x00000263u, 0x00000359u, 0x0007000cu, 0x00000010u, + 0x00000274u, 0x00000001u, 0x00000029u, 0x00000263u, 0x0000035au, 0x000200f9u, 0x00000275u, 0x000200f8u, + 0x00000275u, 0x000700f5u, 0x00000010u, 0x00000360u, 0x0000035cu, 0x0000025bu, 0x0000026cu, 0x00000260u, + 0x000700f5u, 0x00000010u, 0x0000035fu, 0x0000035bu, 0x0000025bu, 0x00000266u, 0x00000260u, 0x000700f5u, + 0x00000010u, 0x0000035eu, 0x0000035au, 0x0000025bu, 0x00000274u, 0x00000260u, 0x000700f5u, 0x00000010u, + 0x0000035du, 0x00000359u, 0x0000025bu, 0x00000270u, 0x00000260u, 0x00050051u, 0x00000009u, 0x00000278u, + 0x00000225u, 0x00000003u, 0x000500aau, 0x0000002eu, 0x00000279u, 0x00000278u, 0x0000002du, 0x000300f7u, + 0x0000028fu, 0x00000000u, 0x000400fau, 0x00000279u, 0x0000027au, 0x0000028fu, 0x000200f8u, 0x0000027au, + 0x0008004fu, 0x00000010u, 0x0000027du, 0x00000225u, 0x00000225u, 0x00000000u, 0x00000001u, 0x00000002u, + 0x0007000cu, 0x00000010u, 0x0000027fu, 0x00000001u, 0x00000029u, 0x0000027du, 0x0000035du, 0x0007000cu, + 0x00000010u, 0x00000280u, 0x00000001u, 0x00000026u, 0x0000035fu, 0x0000027fu, 0x0007000cu, 0x00000010u, + 0x00000285u, 0x00000001u, 0x00000026u, 0x0000027du, 0x0000035eu, 0x0007000cu, 0x00000010u, 0x00000286u, + 0x00000001u, 0x00000029u, 0x00000360u, 0x00000285u, 0x0007000cu, 0x00000010u, 0x0000028au, 0x00000001u, + 0x00000026u, 0x0000027du, 0x0000035du, 0x0007000cu, 0x00000010u, 0x0000028eu, 0x00000001u, 0x00000029u, + 0x0000027du, 0x0000035eu, 0x000200f9u, 0x0000028fu, 0x000200f8u, 0x0000028fu, 0x000700f5u, 0x00000010u, + 0x00000364u, 0x00000360u, 0x00000275u, 0x00000286u, 0x0000027au, 0x000700f5u, 0x00000010u, 0x00000363u, + 0x0000035fu, 0x00000275u, 0x00000280u, 0x0000027au, 0x000700f5u, 0x00000010u, 0x00000362u, 0x0000035eu, + 0x00000275u, 0x0000028eu, 0x0000027au, 0x000700f5u, 0x00000010u, 0x00000361u, 0x0000035du, 0x00000275u, + 0x0000028au, 0x0000027au, 0x00050051u, 0x00000009u, 0x00000292u, 0x0000022eu, 0x00000003u, 0x000500aau, + 0x0000002eu, 0x00000293u, 0x00000292u, 0x0000002du, 0x000300f7u, 0x000002a9u, 0x00000000u, 0x000400fau, + 0x00000293u, 0x00000294u, 0x000002a9u, 0x000200f8u, 0x00000294u, 0x0008004fu, 0x00000010u, 0x00000297u, + 0x0000022eu, 0x0000022eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x0007000cu, 0x00000010u, 0x00000299u, + 0x00000001u, 0x00000029u, 0x00000297u, 0x00000361u, 0x0007000cu, 0x00000010u, 0x0000029au, 0x00000001u, + 0x00000026u, 0x00000363u, 0x00000299u, 0x0007000cu, 0x00000010u, 0x0000029fu, 0x00000001u, 0x00000026u, + 0x00000297u, 0x00000362u, 0x0007000cu, 0x00000010u, 0x000002a0u, 0x00000001u, 0x00000029u, 0x00000364u, + 0x0000029fu, 0x0007000cu, 0x00000010u, 0x000002a4u, 0x00000001u, 0x00000026u, 0x00000297u, 0x00000361u, + 0x0007000cu, 0x00000010u, 0x000002a8u, 0x00000001u, 0x00000029u, 0x00000297u, 0x00000362u, 0x000200f9u, + 0x000002a9u, 0x000200f8u, 0x000002a9u, 0x000700f5u, 0x00000010u, 0x00000368u, 0x00000364u, 0x0000028fu, + 0x000002a0u, 0x00000294u, 0x000700f5u, 0x00000010u, 0x00000367u, 0x00000363u, 0x0000028fu, 0x0000029au, + 0x00000294u, 0x000700f5u, 0x00000010u, 0x00000366u, 0x00000362u, 0x0000028fu, 0x000002a8u, 0x00000294u, + 0x000700f5u, 0x00000010u, 0x00000365u, 0x00000361u, 0x0000028fu, 0x000002a4u, 0x00000294u, 0x00050051u, + 0x00000009u, 0x000002acu, 0x00000237u, 0x00000003u, 0x000500aau, 0x0000002eu, 0x000002adu, 0x000002acu, + 0x0000002du, 0x000300f7u, 0x000002c3u, 0x00000000u, 0x000400fau, 0x000002adu, 0x000002aeu, 0x000002c3u, + 0x000200f8u, 0x000002aeu, 0x0008004fu, 0x00000010u, 0x000002b1u, 0x00000237u, 0x00000237u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x0007000cu, 0x00000010u, 0x000002b3u, 0x00000001u, 0x00000029u, 0x000002b1u, + 0x00000365u, 0x0007000cu, 0x00000010u, 0x000002b4u, 0x00000001u, 0x00000026u, 0x00000367u, 0x000002b3u, + 0x0007000cu, 0x00000010u, 0x000002b9u, 0x00000001u, 0x00000026u, 0x000002b1u, 0x00000366u, 0x0007000cu, + 0x00000010u, 0x000002bau, 0x00000001u, 0x00000029u, 0x00000368u, 0x000002b9u, 0x0007000cu, 0x00000010u, + 0x000002beu, 0x00000001u, 0x00000026u, 0x000002b1u, 0x00000365u, 0x0007000cu, 0x00000010u, 0x000002c2u, + 0x00000001u, 0x00000029u, 0x000002b1u, 0x00000366u, 0x000200f9u, 0x000002c3u, 0x000200f8u, 0x000002c3u, + 0x000700f5u, 0x00000010u, 0x0000036cu, 0x00000368u, 0x000002a9u, 0x000002bau, 0x000002aeu, 0x000700f5u, + 0x00000010u, 0x0000036bu, 0x00000367u, 0x000002a9u, 0x000002b4u, 0x000002aeu, 0x000700f5u, 0x00000010u, + 0x0000036au, 0x00000366u, 0x000002a9u, 0x000002c2u, 0x000002aeu, 0x000700f5u, 0x00000010u, 0x00000369u, + 0x00000365u, 0x000002a9u, 0x000002beu, 0x000002aeu, 0x00050051u, 0x00000009u, 0x000002c6u, 0x00000240u, + 0x00000003u, 0x000500aau, 0x0000002eu, 0x000002c7u, 0x000002c6u, 0x0000002du, 0x000300f7u, 0x000002ddu, + 0x00000000u, 0x000400fau, 0x000002c7u, 0x000002c8u, 0x000002ddu, 0x000200f8u, 0x000002c8u, 0x0008004fu, + 0x00000010u, 0x000002cbu, 0x00000240u, 0x00000240u, 0x00000000u, 0x00000001u, 0x00000002u, 0x0007000cu, + 0x00000010u, 0x000002cdu, 0x00000001u, 0x00000029u, 0x000002cbu, 0x00000369u, 0x0007000cu, 0x00000010u, + 0x000002ceu, 0x00000001u, 0x00000026u, 0x0000036bu, 0x000002cdu, 0x0007000cu, 0x00000010u, 0x000002d3u, + 0x00000001u, 0x00000026u, 0x000002cbu, 0x0000036au, 0x0007000cu, 0x00000010u, 0x000002d4u, 0x00000001u, + 0x00000029u, 0x0000036cu, 0x000002d3u, 0x0007000cu, 0x00000010u, 0x000002d8u, 0x00000001u, 0x00000026u, + 0x000002cbu, 0x00000369u, 0x0007000cu, 0x00000010u, 0x000002dcu, 0x00000001u, 0x00000029u, 0x000002cbu, + 0x0000036au, 0x000200f9u, 0x000002ddu, 0x000200f8u, 0x000002ddu, 0x000700f5u, 0x00000010u, 0x00000370u, + 0x0000036cu, 0x000002c3u, 0x000002d4u, 0x000002c8u, 0x000700f5u, 0x00000010u, 0x0000036fu, 0x0000036bu, + 0x000002c3u, 0x000002ceu, 0x000002c8u, 0x000700f5u, 0x00000010u, 0x0000036eu, 0x0000036au, 0x000002c3u, + 0x000002dcu, 0x000002c8u, 0x000700f5u, 0x00000010u, 0x0000036du, 0x00000369u, 0x000002c3u, 0x000002d8u, + 0x000002c8u, 0x000300f7u, 0x000002f7u, 0x00000000u, 0x000400fau, 0x00000279u, 0x000002e2u, 0x000002f7u, + 0x000200f8u, 0x000002e2u, 0x0008004fu, 0x00000010u, 0x000002e5u, 0x00000225u, 0x00000225u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x0007000cu, 0x00000010u, 0x000002e7u, 0x00000001u, 0x00000029u, 0x000002e5u, + 0x00000365u, 0x0007000cu, 0x00000010u, 0x000002e8u, 0x00000001u, 0x00000026u, 0x00000367u, 0x000002e7u, + 0x0007000cu, 0x00000010u, 0x000002edu, 0x00000001u, 0x00000026u, 0x000002e5u, 0x00000366u, 0x0007000cu, + 0x00000010u, 0x000002eeu, 0x00000001u, 0x00000029u, 0x00000368u, 0x000002edu, 0x0007000cu, 0x00000010u, + 0x000002f2u, 0x00000001u, 0x00000026u, 0x000002e5u, 0x00000365u, 0x0007000cu, 0x00000010u, 0x000002f6u, + 0x00000001u, 0x00000029u, 0x000002e5u, 0x00000366u, 0x000200f9u, 0x000002f7u, 0x000200f8u, 0x000002f7u, + 0x000700f5u, 0x00000010u, 0x0000037cu, 0x00000368u, 0x000002ddu, 0x000002eeu, 0x000002e2u, 0x000700f5u, + 0x00000010u, 0x0000037bu, 0x00000367u, 0x000002ddu, 0x000002e8u, 0x000002e2u, 0x000700f5u, 0x00000010u, + 0x0000037au, 0x00000366u, 0x000002ddu, 0x000002f6u, 0x000002e2u, 0x000700f5u, 0x00000010u, 0x00000379u, + 0x00000365u, 0x000002ddu, 0x000002f2u, 0x000002e2u, 0x000300f7u, 0x00000311u, 0x00000000u, 0x000400fau, + 0x00000293u, 0x000002fcu, 0x00000311u, 0x000200f8u, 0x000002fcu, 0x0008004fu, 0x00000010u, 0x000002ffu, + 0x0000022eu, 0x0000022eu, 0x00000000u, 0x00000001u, 0x00000002u, 0x0007000cu, 0x00000010u, 0x00000301u, + 0x00000001u, 0x00000029u, 0x000002ffu, 0x00000379u, 0x0007000cu, 0x00000010u, 0x00000302u, 0x00000001u, + 0x00000026u, 0x0000037bu, 0x00000301u, 0x0007000cu, 0x00000010u, 0x00000307u, 0x00000001u, 0x00000026u, + 0x000002ffu, 0x0000037au, 0x0007000cu, 0x00000010u, 0x00000308u, 0x00000001u, 0x00000029u, 0x0000037cu, + 0x00000307u, 0x0007000cu, 0x00000010u, 0x0000030cu, 0x00000001u, 0x00000026u, 0x000002ffu, 0x00000379u, + 0x0007000cu, 0x00000010u, 0x00000310u, 0x00000001u, 0x00000029u, 0x000002ffu, 0x0000037au, 0x000200f9u, + 0x00000311u, 0x000200f8u, 0x00000311u, 0x000700f5u, 0x00000010u, 0x00000380u, 0x0000037cu, 0x000002f7u, + 0x00000308u, 0x000002fcu, 0x000700f5u, 0x00000010u, 0x0000037fu, 0x0000037bu, 0x000002f7u, 0x00000302u, + 0x000002fcu, 0x000700f5u, 0x00000010u, 0x0000037eu, 0x0000037au, 0x000002f7u, 0x00000310u, 0x000002fcu, + 0x000700f5u, 0x00000010u, 0x0000037du, 0x00000379u, 0x000002f7u, 0x0000030cu, 0x000002fcu, 0x000500aau, + 0x00000108u, 0x00000109u, 0x00000060u, 0x0000036du, 0x000600a9u, 0x00000010u, 0x0000010au, 0x00000109u, + 0x0000036du, 0x0000036fu, 0x000500aau, 0x00000108u, 0x00000110u, 0x00000060u, 0x0000036eu, 0x000600a9u, + 0x00000010u, 0x00000111u, 0x00000110u, 0x0000036eu, 0x00000370u, 0x000500aau, 0x00000108u, 0x00000117u, + 0x00000060u, 0x0000037du, 0x000600a9u, 0x00000010u, 0x00000118u, 0x00000117u, 0x0000037du, 0x0000037fu, + 0x000500aau, 0x00000108u, 0x0000011eu, 0x00000060u, 0x0000037eu, 0x000600a9u, 0x00000010u, 0x0000011fu, + 0x0000011eu, 0x0000037eu, 0x00000380u, 0x00050080u, 0x00000010u, 0x00000123u, 0x0000010au, 0x00000111u, + 0x000500c4u, 0x00000010u, 0x00000128u, 0x00000060u, 0x0000038fu, 0x00050082u, 0x00000010u, 0x00000129u, + 0x00000123u, 0x00000128u, 0x00050082u, 0x00000009u, 0x0000012du, 0x0000002du, 0x0000005au, 0x00060050u, + 0x00000010u, 0x00000133u, 0x0000012du, 0x0000012du, 0x0000012du, 0x00050084u, 0x00000010u, 0x00000134u, + 0x00000129u, 0x00000133u, 0x00050080u, 0x00000010u, 0x00000137u, 0x00000134u, 0x00000390u, 0x000500c2u, + 0x00000010u, 0x00000139u, 0x00000137u, 0x0000038du, 0x00050080u, 0x00000010u, 0x0000013au, 0x00000060u, + 0x00000139u, 0x000500c7u, 0x00000010u, 0x0000013eu, 0x0000013au, 0x00000391u, 0x00050080u, 0x00000010u, + 0x00000142u, 0x00000118u, 0x0000011fu, 0x00050082u, 0x00000010u, 0x00000147u, 0x00000142u, 0x00000128u, + 0x00050084u, 0x00000010u, 0x0000014eu, 0x00000147u, 0x00000133u, 0x00050080u, 0x00000010u, 0x00000150u, + 0x0000014eu, 0x00000390u, 0x000500c2u, 0x00000010u, 0x00000152u, 0x00000150u, 0x0000038du, 0x00050080u, + 0x00000010u, 0x00000153u, 0x00000060u, 0x00000152u, 0x000500c7u, 0x00000010u, 0x00000156u, 0x00000153u, + 0x00000391u, 0x000200f9u, 0x0000005du, 0x000200f8u, 0x00000157u, 0x000300f7u, 0x0000015du, 0x00000000u, + 0x000400fau, 0x0000015bu, 0x0000015cu, 0x000001dau, 0x000200f8u, 0x0000015cu, 0x0008004fu, 0x00000010u, + 0x00000162u, 0x0000020au, 0x0000020au, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c2u, 0x00000010u, + 0x00000164u, 0x00000162u, 0x0000038du, 0x0004007cu, 0x0000015eu, 0x00000165u, 0x00000164u, 0x000200f9u, + 0x0000016au, 0x000200f8u, 0x0000016au, 0x000700f5u, 0x0000015eu, 0x00000355u, 0x00000167u, 0x0000015cu, + 0x00000358u, 0x0000016du, 0x000700f5u, 0x00000006u, 0x00000354u, 0x00000068u, 0x0000015cu, 0x0000018eu, + 0x0000016du, 0x000500b3u, 0x0000002eu, 0x00000170u, 0x00000354u, 0x00000023u, 0x000400f6u, 0x0000016cu, + 0x0000016du, 0x00000000u, 0x000400fau, 0x00000170u, 0x0000016bu, 0x0000016cu, 0x000200f8u, 0x0000016bu, + 0x000200f9u, 0x00000172u, 0x000200f8u, 0x00000172u, 0x000700f5u, 0x0000015eu, 0x00000358u, 0x00000355u, + 0x0000016bu, 0x0000018au, 0x00000173u, 0x000700f5u, 0x00000006u, 0x00000356u, 0x00000068u, 0x0000016bu, + 0x0000018cu, 0x00000173u, 0x000500b3u, 0x0000002eu, 0x00000178u, 0x00000356u, 0x0000006du, 0x000400f6u, + 0x00000174u, 0x00000173u, 0x00000000u, 0x000400fau, 0x00000178u, 0x00000173u, 0x00000174u, 0x000200f8u, + 0x00000173u, 0x00050050u, 0x00000007u, 0x0000017cu, 0x00000356u, 0x00000354u, 0x00050080u, 0x00000007u, + 0x00000318u, 0x00000054u, 0x0000017cu, 0x0007005fu, 0x0000000au, 0x00000319u, 0x00000206u, 0x00000318u, + 0x00000002u, 0x00000023u, 0x0008004fu, 0x00000010u, 0x0000017fu, 0x00000319u, 0x00000319u, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000500c2u, 0x00000010u, 0x00000181u, 0x0000017fu, 0x0000038du, 0x0004007cu, + 0x0000015eu, 0x00000182u, 0x00000181u, 0x00050082u, 0x0000015eu, 0x00000185u, 0x00000182u, 0x00000165u, + 0x0008000cu, 0x0000015eu, 0x00000188u, 0x00000001u, 0x0000002du, 0x00000185u, 0x00000186u, 0x00000187u, + 0x00050080u, 0x0000015eu, 0x0000018au, 0x00000358u, 0x00000188u, 0x00050080u, 0x00000006u, 0x0000018cu, + 0x00000356u, 0x0000006du, 0x000200f9u, 0x00000172u, 0x000200f8u, 0x00000174u, 0x000200f9u, 0x0000016du, + 0x000200f8u, 0x0000016du, 0x00050080u, 0x00000006u, 0x0000018eu, 0x00000354u, 0x0000006du, 0x000200f9u, + 0x0000016au, 0x000200f8u, 0x0000016cu, 0x00050080u, 0x00000007u, 0x00000321u, 0x00000054u, 0x0000007cu, + 0x0007005fu, 0x0000000au, 0x00000322u, 0x00000206u, 0x00000321u, 0x00000002u, 0x00000023u, 0x0008004fu, + 0x00000010u, 0x00000193u, 0x00000322u, 0x00000322u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c2u, + 0x00000010u, 0x00000195u, 0x00000193u, 0x0000038du, 0x0004007cu, 0x0000015eu, 0x00000196u, 0x00000195u, + 0x00050082u, 0x0000015eu, 0x00000198u, 0x00000196u, 0x00000165u, 0x0008000cu, 0x0000015eu, 0x00000199u, + 0x00000001u, 0x0000002du, 0x00000198u, 0x00000186u, 0x00000187u, 0x00050080u, 0x0000015eu, 0x0000019bu, + 0x00000355u, 0x00000199u, 0x00050080u, 0x00000007u, 0x0000032au, 0x00000054u, 0x00000080u, 0x0007005fu, + 0x0000000au, 0x0000032bu, 0x00000206u, 0x0000032au, 0x00000002u, 0x00000023u, 0x0008004fu, 0x00000010u, + 0x0000019eu, 0x0000032bu, 0x0000032bu, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c2u, 0x00000010u, + 0x000001a0u, 0x0000019eu, 0x0000038du, 0x0004007cu, 0x0000015eu, 0x000001a1u, 0x000001a0u, 0x00050082u, + 0x0000015eu, 0x000001a3u, 0x000001a1u, 0x00000165u, 0x0008000cu, 0x0000015eu, 0x000001a4u, 0x00000001u, + 0x0000002du, 0x000001a3u, 0x00000186u, 0x00000187u, 0x00050080u, 0x0000015eu, 0x000001a6u, 0x0000019bu, + 0x000001a4u, 0x00050080u, 0x00000007u, 0x00000333u, 0x00000054u, 0x000001a7u, 0x0007005fu, 0x0000000au, + 0x00000334u, 0x00000206u, 0x00000333u, 0x00000002u, 0x00000023u, 0x0008004fu, 0x00000010u, 0x000001aau, + 0x00000334u, 0x00000334u, 0x00000000u, 0x00000001u, 0x00000002u, 0x000500c2u, 0x00000010u, 0x000001acu, + 0x000001aau, 0x0000038du, 0x0004007cu, 0x0000015eu, 0x000001adu, 0x000001acu, 0x00050082u, 0x0000015eu, + 0x000001afu, 0x000001adu, 0x00000165u, 0x0008000cu, 0x0000015eu, 0x000001b0u, 0x00000001u, 0x0000002du, + 0x000001afu, 0x00000186u, 0x00000187u, 0x00050080u, 0x0000015eu, 0x000001b2u, 0x000001a6u, 0x000001b0u, + 0x000500c7u, 0x00000010u, 0x000001b7u, 0x00000162u, 0x00000392u, 0x0004007cu, 0x00000010u, 0x000001b9u, + 0x000001b2u, 0x00050080u, 0x00000010u, 0x000001bau, 0x000001b7u, 0x000001b9u, 0x00050080u, 0x00000007u, + 0x0000033cu, 0x00000054u, 0x000001bbu, 0x0007005fu, 0x0000000au, 0x0000033du, 0x00000206u, 0x0000033cu, + 0x00000002u, 0x00000023u, 0x0008004fu, 0x00000010u, 0x000001beu, 0x0000033du, 0x0000033du, 0x00000000u, + 0x00000001u, 0x00000002u, 0x000500c2u, 0x00000010u, 0x000001c0u, 0x000001beu, 0x0000038du, 0x0004007cu, + 0x0000015eu, 0x000001c1u, 0x000001c0u, 0x00050082u, 0x0000015eu, 0x000001c3u, 0x000001c1u, 0x00000165u, + 0x0008000cu, 0x0000015eu, 0x000001c4u, 0x00000001u, 0x0000002du, 0x000001c3u, 0x00000186u, 0x00000187u, + 0x00050080u, 0x0000015eu, 0x000001c6u, 0x00000355u, 0x000001c4u, 0x00050080u, 0x00000007u, 0x00000345u, + 0x00000054u, 0x000001c7u, 0x0007005fu, 0x0000000au, 0x00000346u, 0x00000206u, 0x00000345u, 0x00000002u, + 0x00000023u, 0x0008004fu, 0x00000010u, 0x000001cau, 0x00000346u, 0x00000346u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000500c2u, 0x00000010u, 0x000001ccu, 0x000001cau, 0x0000038du, 0x0004007cu, 0x0000015eu, + 0x000001cdu, 0x000001ccu, 0x00050082u, 0x0000015eu, 0x000001cfu, 0x000001cdu, 0x00000165u, 0x0008000cu, + 0x0000015eu, 0x000001d0u, 0x00000001u, 0x0000002du, 0x000001cfu, 0x00000186u, 0x00000187u, 0x00050080u, + 0x0000015eu, 0x000001d2u, 0x000001c6u, 0x000001d0u, 0x0004007cu, 0x00000010u, 0x000001d8u, 0x000001d2u, + 0x00050080u, 0x00000010u, 0x000001d9u, 0x000001b7u, 0x000001d8u, 0x000200f9u, 0x0000015du, 0x000200f8u, + 0x000001dau, 0x0008004fu, 0x00000010u, 0x000001dcu, 0x0000020au, 0x0000020au, 0x00000000u, 0x00000001u, + 0x00000002u, 0x000200f9u, 0x0000015du, 0x000200f8u, 0x0000015du, 0x000700f5u, 0x00000010u, 0x0000038cu, + 0x000001d9u, 0x0000016cu, 0x000001dcu, 0x000001dau, 0x000700f5u, 0x00000010u, 0x0000038au, 0x000001bau, + 0x0000016cu, 0x000001dcu, 0x000001dau, 0x000200f9u, 0x0000005du, 0x000200f8u, 0x0000005du, 0x000700f5u, + 0x00000010u, 0x0000038bu, 0x00000156u, 0x00000311u, 0x0000038cu, 0x0000015du, 0x000700f5u, 0x00000010u, + 0x00000389u, 0x0000013eu, 0x00000311u, 0x0000038au, 0x0000015du, 0x00050051u, 0x00000009u, 0x000001e4u, + 0x00000389u, 0x00000000u, 0x00050051u, 0x00000009u, 0x000001e5u, 0x00000389u, 0x00000001u, 0x00050051u, + 0x00000009u, 0x000001e6u, 0x00000389u, 0x00000002u, 0x00070050u, 0x0000000au, 0x000001e7u, 0x000001e4u, + 0x000001e5u, 0x000001e6u, 0x0000005au, 0x0003003eu, 0x000001e0u, 0x000001e7u, 0x00050051u, 0x00000009u, + 0x000001ecu, 0x0000038bu, 0x00000000u, 0x00050051u, 0x00000009u, 0x000001edu, 0x0000038bu, 0x00000001u, + 0x00050051u, 0x00000009u, 0x000001eeu, 0x0000038bu, 0x00000002u, 0x00070050u, 0x0000000au, 0x000001efu, + 0x000001ecu, 0x000001edu, 0x000001eeu, 0x0000005au, 0x0003003eu, 0x000001e8u, 0x000001efu, 0x000100fdu, + 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000028u, 0x00000000u, 0x00020011u, 0x00000001u, + 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, + 0x00000001u, 0x0007000fu, 0x00000004u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x0000000fu, 0x00000019u, + 0x00030010u, 0x00000004u, 0x00000007u, 0x00040047u, 0x0000000cu, 0x00000022u, 0x00000000u, 0x00040047u, + 0x0000000cu, 0x00000021u, 0x00000000u, 0x00040047u, 0x0000000fu, 0x0000000bu, 0x0000000fu, 0x00040047u, + 0x00000019u, 0x0000001eu, 0x00000000u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, + 0x00030016u, 0x00000006u, 0x00000020u, 0x00040017u, 0x00000007u, 0x00000006u, 0x00000004u, 0x00090019u, + 0x0000000au, 0x00000006u, 0x00000001u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00000000u, + 0x00040020u, 0x0000000bu, 0x00000000u, 0x0000000au, 0x0004003bu, 0x0000000bu, 0x0000000cu, 0x00000000u, + 0x00040020u, 0x0000000eu, 0x00000001u, 0x00000007u, 0x0004003bu, 0x0000000eu, 0x0000000fu, 0x00000001u, + 0x00040017u, 0x00000010u, 0x00000006u, 0x00000002u, 0x00040015u, 0x00000013u, 0x00000020u, 0x00000001u, + 0x00040017u, 0x00000014u, 0x00000013u, 0x00000002u, 0x0004002bu, 0x00000013u, 0x00000016u, 0x00000000u, + 0x00040020u, 0x00000018u, 0x00000003u, 0x00000007u, 0x0004003bu, 0x00000018u, 0x00000019u, 0x00000003u, + 0x00040017u, 0x0000001au, 0x00000006u, 0x00000003u, 0x0004002bu, 0x00000006u, 0x00000023u, 0x00000000u, + 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003du, + 0x0000000au, 0x0000000du, 0x0000000cu, 0x0004003du, 0x00000007u, 0x00000011u, 0x0000000fu, 0x0007004fu, + 0x00000010u, 0x00000012u, 0x00000011u, 0x00000011u, 0x00000000u, 0x00000001u, 0x0004006eu, 0x00000014u, + 0x00000015u, 0x00000012u, 0x0007005fu, 0x00000007u, 0x00000017u, 0x0000000du, 0x00000015u, 0x00000002u, + 0x00000016u, 0x0008004fu, 0x0000001au, 0x0000001cu, 0x00000017u, 0x00000017u, 0x00000000u, 0x00000001u, + 0x00000002u, 0x00050051u, 0x00000006u, 0x00000021u, 0x00000017u, 0x00000003u, 0x0005008eu, 0x0000001au, + 0x00000022u, 0x0000001cu, 0x00000021u, 0x00050051u, 0x00000006u, 0x00000024u, 0x00000022u, 0x00000000u, + 0x00050051u, 0x00000006u, 0x00000025u, 0x00000022u, 0x00000001u, 0x00050051u, 0x00000006u, 0x00000026u, + 0x00000022u, 0x00000002u, 0x00070050u, 0x00000007u, 0x00000027u, 0x00000024u, 0x00000025u, 0x00000026u, + 0x00000023u, 0x0003003eu, 0x00000019u, 0x00000027u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, + 0x000d000bu, 0x00000161u, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x00001151u, 0x00020011u, + 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, 0x00000000u, + 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, + 0x00000001u, 0x0006000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x000000b7u, 0x00060010u, + 0x00000004u, 0x00000011u, 0x00000010u, 0x00000008u, 0x00000001u, 0x00040047u, 0x00000012u, 0x00000001u, + 0x00000002u, 0x00040047u, 0x00000024u, 0x00000001u, 0x00000001u, 0x00050048u, 0x0000002eu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00050048u, 0x0000002eu, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, + 0x0000002eu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00050048u, 0x0000002eu, 0x00000003u, 0x00000023u, + 0x00000010u, 0x00030047u, 0x0000002eu, 0x00000002u, 0x00040047u, 0x0000003cu, 0x00000001u, 0x00000000u, + 0x00040047u, 0x0000004au, 0x00000006u, 0x00000004u, 0x00040048u, 0x0000004bu, 0x00000000u, 0x00000018u, + 0x00050048u, 0x0000004bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000004bu, 0x00000002u, + 0x00040047u, 0x0000004du, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000004du, 0x00000021u, 0x00000001u, + 0x00040047u, 0x0000007au, 0x00000006u, 0x00000002u, 0x00040048u, 0x0000007bu, 0x00000000u, 0x00000018u, + 0x00050048u, 0x0000007bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000007bu, 0x00000002u, + 0x00040047u, 0x0000007du, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000007du, 0x00000021u, 0x00000001u, + 0x00040047u, 0x00000086u, 0x00000006u, 0x00000001u, 0x00040048u, 0x00000087u, 0x00000000u, 0x00000018u, + 0x00050048u, 0x00000087u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000087u, 0x00000002u, + 0x00040047u, 0x00000089u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000089u, 0x00000021u, 0x00000002u, + 0x00040047u, 0x000000b7u, 0x0000000bu, 0x0000001cu, 0x00040047u, 0x000000d2u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000000d2u, 0x00000021u, 0x00000000u, 0x00030047u, 0x000000d2u, 0x00000019u, 0x00040047u, + 0x000000d8u, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, + 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, 0x00040017u, 0x00000007u, 0x00000006u, 0x00000002u, + 0x00040015u, 0x00000009u, 0x00000020u, 0x00000000u, 0x00040017u, 0x0000000au, 0x00000009u, 0x00000004u, + 0x0004002bu, 0x00000006u, 0x00000011u, 0x00000001u, 0x00040032u, 0x00000006u, 0x00000012u, 0x00000000u, + 0x00060034u, 0x00000006u, 0x00000013u, 0x000000c4u, 0x00000011u, 0x00000012u, 0x00060034u, 0x00000006u, + 0x00000014u, 0x00000082u, 0x00000013u, 0x00000011u, 0x0004002bu, 0x00000009u, 0x0000001cu, 0x00000001u, + 0x0004002bu, 0x00000009u, 0x00000020u, 0x00000000u, 0x00040032u, 0x00000006u, 0x00000024u, 0x00000000u, + 0x0004002bu, 0x00000006u, 0x00000025u, 0x00000003u, 0x00060034u, 0x00000006u, 0x00000026u, 0x000000c7u, + 0x00000024u, 0x00000025u, 0x00020014u, 0x00000027u, 0x00060034u, 0x00000027u, 0x00000028u, 0x000000aau, + 0x00000026u, 0x00000025u, 0x0006001eu, 0x0000002eu, 0x00000006u, 0x00000006u, 0x00000007u, 0x00000007u, + 0x00040020u, 0x0000002fu, 0x00000009u, 0x0000002eu, 0x0004003bu, 0x0000002fu, 0x00000030u, 0x00000009u, + 0x00040020u, 0x00000031u, 0x00000009u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x00000038u, 0x00000000u, + 0x00040032u, 0x00000006u, 0x0000003cu, 0x00000000u, 0x00060034u, 0x00000006u, 0x0000003du, 0x00000082u, + 0x0000003cu, 0x00000011u, 0x00060034u, 0x00000006u, 0x0000003eu, 0x000000c3u, 0x0000003du, 0x00000011u, + 0x00060034u, 0x00000006u, 0x0000003fu, 0x000000c3u, 0x0000003eu, 0x00000011u, 0x0004002bu, 0x00000006u, + 0x00000043u, 0x00000002u, 0x00060034u, 0x00000006u, 0x00000044u, 0x000000c3u, 0x0000003cu, 0x00000043u, + 0x0003001du, 0x0000004au, 0x00000009u, 0x0003001eu, 0x0000004bu, 0x0000004au, 0x00040020u, 0x0000004cu, + 0x0000000cu, 0x0000004bu, 0x0004003bu, 0x0000004cu, 0x0000004du, 0x0000000cu, 0x00040020u, 0x0000004fu, + 0x0000000cu, 0x00000009u, 0x0004002bu, 0x00000009u, 0x00000056u, 0x00000018u, 0x0004002bu, 0x00000009u, + 0x00000057u, 0x00000010u, 0x0004002bu, 0x00000009u, 0x00000058u, 0x00000008u, 0x0004002bu, 0x00000009u, + 0x00000059u, 0x00000005u, 0x0007002cu, 0x0000000au, 0x0000005au, 0x00000056u, 0x00000057u, 0x00000058u, + 0x00000059u, 0x0004002bu, 0x00000009u, 0x0000005cu, 0x000000ffu, 0x0004002bu, 0x00000009u, 0x0000005du, + 0x00000007u, 0x0007002cu, 0x0000000au, 0x0000005eu, 0x0000005cu, 0x0000005cu, 0x0000005cu, 0x0000005du, + 0x00060034u, 0x00000006u, 0x00000061u, 0x000000c7u, 0x00000024u, 0x00000025u, 0x00060034u, 0x00000027u, + 0x00000062u, 0x000000aau, 0x00000061u, 0x00000043u, 0x00060034u, 0x00000006u, 0x00000074u, 0x000000c3u, + 0x0000003cu, 0x00000011u, 0x00040015u, 0x00000079u, 0x00000010u, 0x00000000u, 0x0003001du, 0x0000007au, + 0x00000079u, 0x0003001eu, 0x0000007bu, 0x0000007au, 0x00040020u, 0x0000007cu, 0x0000000cu, 0x0000007bu, + 0x0004003bu, 0x0000007cu, 0x0000007du, 0x0000000cu, 0x00040020u, 0x00000080u, 0x0000000cu, 0x00000079u, + 0x00040015u, 0x00000085u, 0x00000008u, 0x00000000u, 0x0003001du, 0x00000086u, 0x00000085u, 0x0003001eu, + 0x00000087u, 0x00000086u, 0x00040020u, 0x00000088u, 0x0000000cu, 0x00000087u, 0x0004003bu, 0x00000088u, + 0x00000089u, 0x0000000cu, 0x00040020u, 0x0000008bu, 0x0000000cu, 0x00000085u, 0x0004002bu, 0x00000009u, + 0x00000092u, 0x000000f8u, 0x0004002bu, 0x00000009u, 0x00000096u, 0x00000003u, 0x0004002bu, 0x00000009u, + 0x0000009bu, 0x00000002u, 0x0007002cu, 0x0000000au, 0x000000aau, 0x00000020u, 0x00000020u, 0x00000020u, + 0x00000020u, 0x0004002bu, 0x00000006u, 0x000000abu, 0x00020000u, 0x00060034u, 0x00000006u, 0x000000acu, + 0x000000c7u, 0x00000024u, 0x000000abu, 0x00060034u, 0x00000027u, 0x000000adu, 0x000000abu, 0x000000acu, + 0x00000038u, 0x00050034u, 0x00000027u, 0x000000aeu, 0x000000a8u, 0x000000adu, 0x00040017u, 0x000000b5u, + 0x00000009u, 0x00000003u, 0x00040020u, 0x000000b6u, 0x00000001u, 0x000000b5u, 0x0004003bu, 0x000000b6u, + 0x000000b7u, 0x00000001u, 0x00040017u, 0x000000b8u, 0x00000009u, 0x00000002u, 0x00040020u, 0x000000bbu, + 0x00000009u, 0x00000007u, 0x00040017u, 0x000000bfu, 0x00000027u, 0x00000002u, 0x00090019u, 0x000000d0u, + 0x00000009u, 0x00000001u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000002u, 0x00000020u, 0x00040020u, + 0x000000d1u, 0x00000000u, 0x000000d0u, 0x0004003bu, 0x000000d1u, 0x000000d2u, 0x00000000u, 0x0006002cu, + 0x000000b5u, 0x000000d8u, 0x00000057u, 0x00000058u, 0x0000001cu, 0x00050036u, 0x00000002u, 0x00000004u, + 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x000300f7u, 0x000000e7u, 0x00000000u, 0x000300fbu, + 0x00000020u, 0x000000e8u, 0x000200f8u, 0x000000e8u, 0x0004003du, 0x000000b5u, 0x000000b9u, 0x000000b7u, + 0x0007004fu, 0x000000b8u, 0x000000bau, 0x000000b9u, 0x000000b9u, 0x00000000u, 0x00000001u, 0x00050041u, + 0x000000bbu, 0x000000bcu, 0x00000030u, 0x00000025u, 0x0004003du, 0x00000007u, 0x000000bdu, 0x000000bcu, + 0x0004007cu, 0x000000b8u, 0x000000beu, 0x000000bdu, 0x000500aeu, 0x000000bfu, 0x000000c0u, 0x000000bau, + 0x000000beu, 0x0004009au, 0x00000027u, 0x000000c1u, 0x000000c0u, 0x000300f7u, 0x000000c3u, 0x00000000u, + 0x000400fau, 0x000000c1u, 0x000000c2u, 0x000000c3u, 0x000200f8u, 0x000000c2u, 0x000200f9u, 0x000000e7u, + 0x000200f8u, 0x000000c3u, 0x0004007cu, 0x00000007u, 0x000000c8u, 0x000000bau, 0x00050041u, 0x000000bbu, + 0x000000c9u, 0x00000030u, 0x00000043u, 0x0004003du, 0x00000007u, 0x000000cau, 0x000000c9u, 0x00050080u, + 0x00000007u, 0x000000cbu, 0x000000c8u, 0x000000cau, 0x00050050u, 0x00000007u, 0x000000fcu, 0x00000014u, + 0x00000014u, 0x000500c7u, 0x00000007u, 0x000000fdu, 0x000000cbu, 0x000000fcu, 0x00050050u, 0x00000007u, + 0x000000ffu, 0x00000012u, 0x00000012u, 0x000500c3u, 0x00000007u, 0x00000100u, 0x000000cbu, 0x000000ffu, + 0x00050051u, 0x00000006u, 0x00000102u, 0x000000fdu, 0x00000001u, 0x00050084u, 0x00000006u, 0x00000103u, + 0x00000102u, 0x00000013u, 0x00050051u, 0x00000006u, 0x00000105u, 0x000000fdu, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00000106u, 0x00000103u, 0x00000105u, 0x000300f7u, 0x00000151u, 0x00000000u, 0x000400fau, + 0x00000028u, 0x00000107u, 0x00000120u, 0x000200f8u, 0x00000107u, 0x00050051u, 0x00000006u, 0x00000109u, + 0x00000100u, 0x00000001u, 0x00050041u, 0x00000031u, 0x0000010au, 0x00000030u, 0x00000011u, 0x0004003du, + 0x00000006u, 0x0000010bu, 0x0000010au, 0x00050084u, 0x00000006u, 0x0000010cu, 0x00000109u, 0x0000010bu, + 0x00050051u, 0x00000006u, 0x0000010eu, 0x00000100u, 0x00000000u, 0x00050080u, 0x00000006u, 0x0000010fu, + 0x0000010cu, 0x0000010eu, 0x00050041u, 0x00000031u, 0x00000110u, 0x00000030u, 0x00000038u, 0x0004003du, + 0x00000006u, 0x00000111u, 0x00000110u, 0x00050080u, 0x00000006u, 0x00000112u, 0x0000010fu, 0x00000111u, + 0x000500c7u, 0x00000006u, 0x00000114u, 0x00000112u, 0x0000003fu, 0x00050084u, 0x00000006u, 0x00000116u, + 0x00000106u, 0x00000044u, 0x00050080u, 0x00000006u, 0x00000118u, 0x00000114u, 0x00000116u, 0x00060041u, + 0x0000004fu, 0x0000011au, 0x0000004du, 0x00000038u, 0x00000118u, 0x0004003du, 0x00000009u, 0x0000011bu, + 0x0000011au, 0x00070050u, 0x0000000au, 0x0000011du, 0x0000011bu, 0x0000011bu, 0x0000011bu, 0x0000011bu, + 0x000500c2u, 0x0000000au, 0x0000011eu, 0x0000011du, 0x0000005au, 0x000500c7u, 0x0000000au, 0x0000011fu, + 0x0000011eu, 0x0000005eu, 0x000200f9u, 0x00000151u, 0x000200f8u, 0x00000120u, 0x000300f7u, 0x00000150u, + 0x00000000u, 0x000400fau, 0x00000062u, 0x00000121u, 0x0000014fu, 0x000200f8u, 0x00000121u, 0x00050051u, + 0x00000006u, 0x00000123u, 0x00000100u, 0x00000001u, 0x00050041u, 0x00000031u, 0x00000124u, 0x00000030u, + 0x00000011u, 0x0004003du, 0x00000006u, 0x00000125u, 0x00000124u, 0x00050084u, 0x00000006u, 0x00000126u, + 0x00000123u, 0x00000125u, 0x00050051u, 0x00000006u, 0x00000128u, 0x00000100u, 0x00000000u, 0x00050080u, + 0x00000006u, 0x00000129u, 0x00000126u, 0x00000128u, 0x00050041u, 0x00000031u, 0x0000012au, 0x00000030u, + 0x00000038u, 0x0004003du, 0x00000006u, 0x0000012bu, 0x0000012au, 0x00050080u, 0x00000006u, 0x0000012cu, + 0x00000129u, 0x0000012bu, 0x000500c7u, 0x00000006u, 0x0000012eu, 0x0000012cu, 0x0000003eu, 0x00050084u, + 0x00000006u, 0x00000130u, 0x00000106u, 0x00000074u, 0x00050080u, 0x00000006u, 0x00000132u, 0x0000012eu, + 0x00000130u, 0x000500c6u, 0x00000006u, 0x00000134u, 0x00000132u, 0x00000011u, 0x00060041u, 0x00000080u, + 0x00000135u, 0x0000007du, 0x00000038u, 0x00000134u, 0x0004003du, 0x00000079u, 0x00000136u, 0x00000135u, + 0x00040071u, 0x00000009u, 0x00000137u, 0x00000136u, 0x00060041u, 0x0000008bu, 0x00000139u, 0x00000089u, + 0x00000038u, 0x00000132u, 0x0004003du, 0x00000085u, 0x0000013au, 0x00000139u, 0x00040071u, 0x00000009u, + 0x0000013bu, 0x0000013au, 0x000500c2u, 0x00000009u, 0x0000013du, 0x00000137u, 0x00000058u, 0x000500c7u, + 0x00000009u, 0x0000013eu, 0x0000013du, 0x00000092u, 0x000500c2u, 0x00000009u, 0x00000140u, 0x00000137u, + 0x00000096u, 0x000500c7u, 0x00000009u, 0x00000141u, 0x00000140u, 0x00000092u, 0x000500c4u, 0x00000009u, + 0x00000143u, 0x00000137u, 0x0000009bu, 0x000500c7u, 0x00000009u, 0x00000144u, 0x00000143u, 0x00000092u, + 0x000500c7u, 0x00000009u, 0x00000146u, 0x00000137u, 0x0000001cu, 0x000500c4u, 0x00000009u, 0x00000147u, + 0x00000146u, 0x0000009bu, 0x000500c5u, 0x00000009u, 0x00000149u, 0x00000147u, 0x0000013bu, 0x00070050u, + 0x0000000au, 0x0000014eu, 0x0000013eu, 0x00000141u, 0x00000144u, 0x00000149u, 0x000200f9u, 0x00000150u, + 0x000200f8u, 0x0000014fu, 0x000200f9u, 0x00000150u, 0x000200f8u, 0x00000150u, 0x000700f5u, 0x0000000au, + 0x0000015fu, 0x0000014eu, 0x00000121u, 0x000000aau, 0x0000014fu, 0x000200f9u, 0x00000151u, 0x000200f8u, + 0x00000151u, 0x000700f5u, 0x0000000au, 0x0000015eu, 0x0000011fu, 0x00000107u, 0x0000015fu, 0x00000150u, + 0x000300f7u, 0x00000154u, 0x00000000u, 0x000400fau, 0x000000aeu, 0x00000152u, 0x00000154u, 0x000200f8u, + 0x00000152u, 0x00060052u, 0x0000000au, 0x0000015du, 0x0000005du, 0x0000015eu, 0x00000003u, 0x000200f9u, + 0x00000154u, 0x000200f8u, 0x00000154u, 0x000700f5u, 0x0000000au, 0x00000160u, 0x0000015eu, 0x00000151u, + 0x0000015du, 0x00000152u, 0x0004003du, 0x000000d0u, 0x000000d3u, 0x000000d2u, 0x00040063u, 0x000000d3u, + 0x000000c8u, 0x00000160u, 0x000200f9u, 0x000000e7u, 0x000200f8u, 0x000000e7u, 0x000100fdu, 0x00010038u, + 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000066u, 0x00000000u, 0x00020011u, 0x00000001u, 0x0006000bu, + 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, + 0x0007000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00000013u, 0x00000025u, 0x00060010u, + 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, 0x00040047u, 0x0000000bu, 0x00000006u, + 0x00000010u, 0x00050048u, 0x0000000cu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000000cu, + 0x00000002u, 0x00040047u, 0x0000000eu, 0x00000022u, 0x00000001u, 0x00040047u, 0x0000000eu, 0x00000021u, + 0x00000000u, 0x00040047u, 0x00000013u, 0x0000000bu, 0x0000001au, 0x00040047u, 0x00000021u, 0x00000001u, + 0x00000001u, 0x00040047u, 0x00000025u, 0x0000000bu, 0x0000001du, 0x00040047u, 0x0000002au, 0x00000006u, + 0x00000004u, 0x00040048u, 0x0000002bu, 0x00000000u, 0x00000018u, 0x00050048u, 0x0000002bu, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x0000002bu, 0x00000002u, 0x00040047u, 0x0000002du, 0x00000022u, + 0x00000000u, 0x00040047u, 0x0000002du, 0x00000021u, 0x00000002u, 0x00040047u, 0x0000003fu, 0x00000006u, + 0x00000004u, 0x00040048u, 0x00000040u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000040u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000040u, 0x00000002u, 0x00040047u, 0x00000042u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000042u, 0x00000021u, 0x00000001u, 0x00040047u, 0x00000046u, 0x00000006u, + 0x00000004u, 0x00050048u, 0x00000047u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000047u, + 0x00000002u, 0x00040047u, 0x00000049u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000049u, 0x00000021u, + 0x00000000u, 0x00040047u, 0x00000061u, 0x00000001u, 0x00000000u, 0x00040047u, 0x00000063u, 0x0000000bu, + 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, 0x00000006u, + 0x00000020u, 0x00000000u, 0x00040017u, 0x00000009u, 0x00000006u, 0x00000004u, 0x0004002bu, 0x00000006u, + 0x0000000au, 0x00000400u, 0x0004001cu, 0x0000000bu, 0x00000009u, 0x0000000au, 0x0003001eu, 0x0000000cu, + 0x0000000bu, 0x00040020u, 0x0000000du, 0x00000002u, 0x0000000cu, 0x0004003bu, 0x0000000du, 0x0000000eu, + 0x00000002u, 0x00040015u, 0x0000000fu, 0x00000020u, 0x00000001u, 0x0004002bu, 0x0000000fu, 0x00000010u, + 0x00000000u, 0x00040017u, 0x00000011u, 0x00000006u, 0x00000003u, 0x00040020u, 0x00000012u, 0x00000001u, + 0x00000011u, 0x0004003bu, 0x00000012u, 0x00000013u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x00000014u, + 0x00000000u, 0x00040020u, 0x00000015u, 0x00000001u, 0x00000006u, 0x0004002bu, 0x00000006u, 0x00000018u, + 0x00000002u, 0x0004002bu, 0x00000006u, 0x0000001cu, 0x00000003u, 0x00040020u, 0x0000001eu, 0x00000002u, + 0x00000006u, 0x00040032u, 0x0000000fu, 0x00000021u, 0x00000100u, 0x00060034u, 0x00000006u, 0x00000022u, + 0x00000080u, 0x00000021u, 0x00000014u, 0x0004003bu, 0x00000015u, 0x00000025u, 0x00000001u, 0x0003001du, + 0x0000002au, 0x00000006u, 0x0003001eu, 0x0000002bu, 0x0000002au, 0x00040020u, 0x0000002cu, 0x0000000cu, + 0x0000002bu, 0x0004003bu, 0x0000002cu, 0x0000002du, 0x0000000cu, 0x00040020u, 0x0000002fu, 0x0000000cu, + 0x00000006u, 0x0004002bu, 0x00000006u, 0x00000033u, 0xffffffffu, 0x00020014u, 0x00000034u, 0x0003001du, + 0x0000003fu, 0x00000006u, 0x0003001eu, 0x00000040u, 0x0000003fu, 0x00040020u, 0x00000041u, 0x0000000cu, + 0x00000040u, 0x0004003bu, 0x00000041u, 0x00000042u, 0x0000000cu, 0x0003001du, 0x00000046u, 0x00000006u, + 0x0003001eu, 0x00000047u, 0x00000046u, 0x00040020u, 0x00000048u, 0x0000000cu, 0x00000047u, 0x0004003bu, + 0x00000048u, 0x00000049u, 0x0000000cu, 0x00040032u, 0x00000006u, 0x00000061u, 0x00000001u, 0x0004002bu, + 0x00000006u, 0x00000062u, 0x00000001u, 0x00060033u, 0x00000011u, 0x00000063u, 0x00000061u, 0x00000062u, + 0x00000062u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, + 0x000300f7u, 0x00000064u, 0x00000000u, 0x000300fbu, 0x00000014u, 0x00000065u, 0x000200f8u, 0x00000065u, + 0x00050041u, 0x00000015u, 0x00000016u, 0x00000013u, 0x00000014u, 0x0004003du, 0x00000006u, 0x00000017u, + 0x00000016u, 0x000500c2u, 0x00000006u, 0x00000019u, 0x00000017u, 0x00000018u, 0x000500c7u, 0x00000006u, + 0x0000001du, 0x00000017u, 0x0000001cu, 0x00070041u, 0x0000001eu, 0x0000001fu, 0x0000000eu, 0x00000010u, + 0x00000019u, 0x0000001du, 0x0004003du, 0x00000006u, 0x00000020u, 0x0000001fu, 0x00050084u, 0x00000006u, + 0x00000024u, 0x00000020u, 0x00000022u, 0x0004003du, 0x00000006u, 0x00000026u, 0x00000025u, 0x00050080u, + 0x00000006u, 0x00000028u, 0x00000024u, 0x00000026u, 0x00060041u, 0x0000002fu, 0x00000030u, 0x0000002du, + 0x00000010u, 0x00000028u, 0x0004003du, 0x00000006u, 0x00000031u, 0x00000030u, 0x000500aau, 0x00000034u, + 0x00000035u, 0x00000031u, 0x00000033u, 0x000300f7u, 0x00000037u, 0x00000000u, 0x000400fau, 0x00000035u, + 0x00000036u, 0x00000039u, 0x000200f8u, 0x00000036u, 0x000200f9u, 0x00000064u, 0x000200f8u, 0x00000039u, + 0x000500aau, 0x00000034u, 0x0000003bu, 0x00000031u, 0x00000014u, 0x000300f7u, 0x0000003du, 0x00000000u, + 0x000400fau, 0x0000003bu, 0x0000003cu, 0x0000004du, 0x000200f8u, 0x0000003cu, 0x00060041u, 0x0000002fu, + 0x00000044u, 0x00000042u, 0x00000010u, 0x00000028u, 0x0004003du, 0x00000006u, 0x00000045u, 0x00000044u, + 0x00060041u, 0x0000002fu, 0x0000004cu, 0x00000049u, 0x00000010u, 0x00000028u, 0x0003003eu, 0x0000004cu, + 0x00000045u, 0x000200f9u, 0x0000003du, 0x000200f8u, 0x0000004du, 0x00060041u, 0x0000002fu, 0x00000050u, + 0x00000049u, 0x00000010u, 0x00000028u, 0x0004003du, 0x00000006u, 0x00000051u, 0x00000050u, 0x00060041u, + 0x0000002fu, 0x00000054u, 0x00000042u, 0x00000010u, 0x00000028u, 0x0004003du, 0x00000006u, 0x00000055u, + 0x00000054u, 0x000500c7u, 0x00000006u, 0x00000058u, 0x00000051u, 0x00000031u, 0x000400c8u, 0x00000006u, + 0x0000005bu, 0x00000031u, 0x000500c7u, 0x00000006u, 0x0000005cu, 0x00000055u, 0x0000005bu, 0x000500c5u, + 0x00000006u, 0x0000005du, 0x00000058u, 0x0000005cu, 0x0003003eu, 0x00000050u, 0x0000005du, 0x000200f9u, + 0x0000003du, 0x000200f8u, 0x0000003du, 0x000200f9u, 0x00000037u, 0x000200f8u, 0x00000037u, 0x000200f9u, + 0x00000064u, 0x000200f8u, 0x00000064u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, + 0x00000032u, 0x00000000u, 0x00020011u, 0x00000001u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, + 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000005u, 0x00000004u, + 0x6e69616du, 0x00000000u, 0x00000013u, 0x0000002au, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, + 0x00000001u, 0x00000001u, 0x00040047u, 0x0000000bu, 0x00000006u, 0x00000010u, 0x00050048u, 0x0000000cu, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000000cu, 0x00000002u, 0x00040047u, 0x0000000eu, + 0x00000022u, 0x00000001u, 0x00040047u, 0x0000000eu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000013u, + 0x0000000bu, 0x0000001au, 0x00040047u, 0x00000021u, 0x00000001u, 0x00000001u, 0x00040047u, 0x00000025u, + 0x00000006u, 0x00000004u, 0x00040048u, 0x00000026u, 0x00000000u, 0x00000019u, 0x00050048u, 0x00000026u, + 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000026u, 0x00000002u, 0x00040047u, 0x00000028u, + 0x00000022u, 0x00000000u, 0x00040047u, 0x00000028u, 0x00000021u, 0x00000000u, 0x00040047u, 0x0000002au, + 0x0000000bu, 0x0000001du, 0x00040047u, 0x0000002fu, 0x00000001u, 0x00000000u, 0x00040047u, 0x00000031u, + 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, + 0x00000006u, 0x00000020u, 0x00000000u, 0x00040017u, 0x00000009u, 0x00000006u, 0x00000004u, 0x0004002bu, + 0x00000006u, 0x0000000au, 0x00000400u, 0x0004001cu, 0x0000000bu, 0x00000009u, 0x0000000au, 0x0003001eu, + 0x0000000cu, 0x0000000bu, 0x00040020u, 0x0000000du, 0x00000002u, 0x0000000cu, 0x0004003bu, 0x0000000du, + 0x0000000eu, 0x00000002u, 0x00040015u, 0x0000000fu, 0x00000020u, 0x00000001u, 0x0004002bu, 0x0000000fu, + 0x00000010u, 0x00000000u, 0x00040017u, 0x00000011u, 0x00000006u, 0x00000003u, 0x00040020u, 0x00000012u, + 0x00000001u, 0x00000011u, 0x0004003bu, 0x00000012u, 0x00000013u, 0x00000001u, 0x0004002bu, 0x00000006u, + 0x00000014u, 0x00000000u, 0x00040020u, 0x00000015u, 0x00000001u, 0x00000006u, 0x0004002bu, 0x00000006u, + 0x00000018u, 0x00000002u, 0x0004002bu, 0x00000006u, 0x0000001cu, 0x00000003u, 0x00040020u, 0x0000001eu, + 0x00000002u, 0x00000006u, 0x00040032u, 0x0000000fu, 0x00000021u, 0x00000100u, 0x00060034u, 0x00000006u, + 0x00000022u, 0x00000080u, 0x00000021u, 0x00000014u, 0x0003001du, 0x00000025u, 0x00000006u, 0x0003001eu, + 0x00000026u, 0x00000025u, 0x00040020u, 0x00000027u, 0x0000000cu, 0x00000026u, 0x0004003bu, 0x00000027u, + 0x00000028u, 0x0000000cu, 0x0004003bu, 0x00000015u, 0x0000002au, 0x00000001u, 0x00040020u, 0x0000002du, + 0x0000000cu, 0x00000006u, 0x00040032u, 0x00000006u, 0x0000002fu, 0x00000001u, 0x0004002bu, 0x00000006u, + 0x00000030u, 0x00000001u, 0x00060033u, 0x00000011u, 0x00000031u, 0x0000002fu, 0x00000030u, 0x00000030u, + 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x00050041u, + 0x00000015u, 0x00000016u, 0x00000013u, 0x00000014u, 0x0004003du, 0x00000006u, 0x00000017u, 0x00000016u, + 0x000500c2u, 0x00000006u, 0x00000019u, 0x00000017u, 0x00000018u, 0x000500c7u, 0x00000006u, 0x0000001du, + 0x00000017u, 0x0000001cu, 0x00070041u, 0x0000001eu, 0x0000001fu, 0x0000000eu, 0x00000010u, 0x00000019u, + 0x0000001du, 0x0004003du, 0x00000006u, 0x00000020u, 0x0000001fu, 0x00050084u, 0x00000006u, 0x00000024u, + 0x00000020u, 0x00000022u, 0x0004003du, 0x00000006u, 0x0000002bu, 0x0000002au, 0x00050080u, 0x00000006u, + 0x0000002cu, 0x00000024u, 0x0000002bu, 0x00060041u, 0x0000002du, 0x0000002eu, 0x00000028u, 0x00000010u, + 0x0000002cu, 0x0003003eu, 0x0000002eu, 0x00000014u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, + 0x000d000bu, 0x000000cau, 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x00001151u, 0x00020011u, + 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, 0x00000000u, + 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, + 0x00000001u, 0x0006000fu, 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x0000005du, 0x00060010u, + 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, 0x00040047u, 0x00000013u, 0x00000001u, + 0x00000000u, 0x00040047u, 0x0000001cu, 0x00000006u, 0x00000001u, 0x00040048u, 0x0000001du, 0x00000000u, + 0x00000018u, 0x00050048u, 0x0000001du, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000001du, + 0x00000002u, 0x00040047u, 0x0000001fu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000001fu, 0x00000021u, + 0x00000000u, 0x00040047u, 0x00000026u, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000027u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000027u, 0x00000002u, 0x00040047u, 0x00000029u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000029u, 0x00000021u, 0x00000002u, 0x00040047u, 0x00000034u, 0x00000006u, + 0x00000002u, 0x00040048u, 0x00000035u, 0x00000000u, 0x00000018u, 0x00050048u, 0x00000035u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000035u, 0x00000002u, 0x00040047u, 0x00000037u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000037u, 0x00000021u, 0x00000000u, 0x00040047u, 0x0000003du, 0x00000006u, + 0x00000002u, 0x00050048u, 0x0000003eu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000003eu, + 0x00000002u, 0x00040047u, 0x00000040u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000040u, 0x00000021u, + 0x00000002u, 0x00040047u, 0x0000004bu, 0x00000006u, 0x00000004u, 0x00040048u, 0x0000004cu, 0x00000000u, + 0x00000018u, 0x00050048u, 0x0000004cu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000004cu, + 0x00000002u, 0x00040047u, 0x0000004eu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000004eu, 0x00000021u, + 0x00000000u, 0x00040047u, 0x00000053u, 0x00000006u, 0x00000004u, 0x00050048u, 0x00000054u, 0x00000000u, + 0x00000023u, 0x00000000u, 0x00030047u, 0x00000054u, 0x00000002u, 0x00040047u, 0x00000056u, 0x00000022u, + 0x00000000u, 0x00040047u, 0x00000056u, 0x00000021u, 0x00000002u, 0x00040047u, 0x0000005du, 0x0000000bu, + 0x0000001cu, 0x00050048u, 0x00000062u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x00000062u, + 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000062u, 0x00000002u, 0x00000023u, 0x00000008u, + 0x00030047u, 0x00000062u, 0x00000002u, 0x00040047u, 0x00000077u, 0x00000001u, 0x00000001u, 0x00040047u, + 0x00000089u, 0x00000001u, 0x00000002u, 0x00040047u, 0x00000092u, 0x00000001u, 0x00000003u, 0x00040047u, + 0x00000094u, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, + 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x00040015u, 0x00000012u, 0x00000020u, 0x00000001u, + 0x00040032u, 0x00000012u, 0x00000013u, 0x00800000u, 0x0004002bu, 0x00000012u, 0x00000014u, 0x00000001u, + 0x00060034u, 0x00000012u, 0x00000015u, 0x00000082u, 0x00000013u, 0x00000014u, 0x0004002bu, 0x00000006u, + 0x00000016u, 0x00000000u, 0x00060034u, 0x00000006u, 0x00000017u, 0x00000080u, 0x00000015u, 0x00000016u, + 0x00040015u, 0x0000001bu, 0x00000008u, 0x00000000u, 0x0003001du, 0x0000001cu, 0x0000001bu, 0x0003001eu, + 0x0000001du, 0x0000001cu, 0x00040020u, 0x0000001eu, 0x0000000cu, 0x0000001du, 0x0004003bu, 0x0000001eu, + 0x0000001fu, 0x0000000cu, 0x0004002bu, 0x00000012u, 0x00000020u, 0x00000000u, 0x00040020u, 0x00000022u, + 0x0000000cu, 0x0000001bu, 0x0003001du, 0x00000026u, 0x0000001bu, 0x0003001eu, 0x00000027u, 0x00000026u, + 0x00040020u, 0x00000028u, 0x0000000cu, 0x00000027u, 0x0004003bu, 0x00000028u, 0x00000029u, 0x0000000cu, + 0x00060034u, 0x00000012u, 0x0000002eu, 0x000000c3u, 0x00000015u, 0x00000014u, 0x00060034u, 0x00000006u, + 0x0000002fu, 0x00000080u, 0x0000002eu, 0x00000016u, 0x00040015u, 0x00000033u, 0x00000010u, 0x00000000u, + 0x0003001du, 0x00000034u, 0x00000033u, 0x0003001eu, 0x00000035u, 0x00000034u, 0x00040020u, 0x00000036u, + 0x0000000cu, 0x00000035u, 0x0004003bu, 0x00000036u, 0x00000037u, 0x0000000cu, 0x00040020u, 0x00000039u, + 0x0000000cu, 0x00000033u, 0x0003001du, 0x0000003du, 0x00000033u, 0x0003001eu, 0x0000003eu, 0x0000003du, + 0x00040020u, 0x0000003fu, 0x0000000cu, 0x0000003eu, 0x0004003bu, 0x0000003fu, 0x00000040u, 0x0000000cu, + 0x0004002bu, 0x00000012u, 0x00000045u, 0x00000002u, 0x00060034u, 0x00000012u, 0x00000046u, 0x000000c3u, + 0x00000015u, 0x00000045u, 0x00060034u, 0x00000006u, 0x00000047u, 0x00000080u, 0x00000046u, 0x00000016u, + 0x0003001du, 0x0000004bu, 0x00000006u, 0x0003001eu, 0x0000004cu, 0x0000004bu, 0x00040020u, 0x0000004du, + 0x0000000cu, 0x0000004cu, 0x0004003bu, 0x0000004du, 0x0000004eu, 0x0000000cu, 0x00040020u, 0x00000050u, + 0x0000000cu, 0x00000006u, 0x0003001du, 0x00000053u, 0x00000006u, 0x0003001eu, 0x00000054u, 0x00000053u, + 0x00040020u, 0x00000055u, 0x0000000cu, 0x00000054u, 0x0004003bu, 0x00000055u, 0x00000056u, 0x0000000cu, + 0x00040017u, 0x0000005bu, 0x00000006u, 0x00000003u, 0x00040020u, 0x0000005cu, 0x00000001u, 0x0000005bu, + 0x0004003bu, 0x0000005cu, 0x0000005du, 0x00000001u, 0x00040020u, 0x0000005eu, 0x00000001u, 0x00000006u, + 0x0005001eu, 0x00000062u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00040020u, 0x00000063u, 0x00000009u, + 0x00000062u, 0x0004003bu, 0x00000063u, 0x00000064u, 0x00000009u, 0x00040020u, 0x00000065u, 0x00000009u, + 0x00000006u, 0x00020014u, 0x00000068u, 0x00040032u, 0x00000012u, 0x00000077u, 0x00000000u, 0x00030031u, + 0x00000068u, 0x00000089u, 0x00050034u, 0x00000068u, 0x0000008au, 0x000000a8u, 0x00000089u, 0x00040032u, + 0x00000006u, 0x00000092u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x00000093u, 0x00000001u, 0x00060033u, + 0x0000005bu, 0x00000094u, 0x00000092u, 0x00000093u, 0x00000093u, 0x00050036u, 0x00000002u, 0x00000004u, + 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x000300f7u, 0x00000096u, 0x00000000u, 0x000300fbu, + 0x00000016u, 0x00000097u, 0x000200f8u, 0x00000097u, 0x00050041u, 0x0000005eu, 0x0000005fu, 0x0000005du, + 0x00000016u, 0x0004003du, 0x00000006u, 0x00000060u, 0x0000005fu, 0x00050041u, 0x00000065u, 0x00000066u, + 0x00000064u, 0x00000020u, 0x0004003du, 0x00000006u, 0x00000067u, 0x00000066u, 0x000500aeu, 0x00000068u, + 0x00000069u, 0x00000060u, 0x00000067u, 0x000300f7u, 0x0000006bu, 0x00000000u, 0x000400fau, 0x00000069u, + 0x0000006au, 0x0000006bu, 0x000200f8u, 0x0000006au, 0x000200f9u, 0x00000096u, 0x000200f8u, 0x0000006bu, + 0x00050041u, 0x00000065u, 0x0000006fu, 0x00000064u, 0x00000045u, 0x0004003du, 0x00000006u, 0x00000070u, + 0x0000006fu, 0x00050080u, 0x00000006u, 0x00000071u, 0x00000060u, 0x00000070u, 0x00050041u, 0x00000065u, + 0x00000074u, 0x00000064u, 0x00000014u, 0x0004003du, 0x00000006u, 0x00000075u, 0x00000074u, 0x00050080u, + 0x00000006u, 0x00000076u, 0x00000060u, 0x00000075u, 0x000300f7u, 0x0000007bu, 0x00000000u, 0x000900fbu, + 0x00000077u, 0x0000007bu, 0x00000000u, 0x00000078u, 0x00000001u, 0x00000079u, 0x00000002u, 0x0000007au, + 0x000200f8u, 0x00000078u, 0x000500c7u, 0x00000006u, 0x0000009fu, 0x00000076u, 0x00000017u, 0x00060041u, + 0x00000022u, 0x000000a1u, 0x0000001fu, 0x00000020u, 0x0000009fu, 0x0004003du, 0x0000001bu, 0x000000a2u, + 0x000000a1u, 0x00040071u, 0x00000006u, 0x000000a3u, 0x000000a2u, 0x00040071u, 0x0000001bu, 0x000000a6u, + 0x000000a3u, 0x00060041u, 0x00000022u, 0x000000a7u, 0x00000029u, 0x00000020u, 0x0000009fu, 0x0003003eu, + 0x000000a7u, 0x000000a6u, 0x000200f9u, 0x0000007bu, 0x000200f8u, 0x00000079u, 0x000500c7u, 0x00000006u, + 0x000000abu, 0x00000076u, 0x0000002fu, 0x00060041u, 0x00000039u, 0x000000adu, 0x00000037u, 0x00000020u, + 0x000000abu, 0x0004003du, 0x00000033u, 0x000000aeu, 0x000000adu, 0x00040071u, 0x00000006u, 0x000000afu, + 0x000000aeu, 0x00040071u, 0x00000033u, 0x000000b2u, 0x000000afu, 0x00060041u, 0x00000039u, 0x000000b3u, + 0x00000040u, 0x00000020u, 0x000000abu, 0x0003003eu, 0x000000b3u, 0x000000b2u, 0x000200f9u, 0x0000007bu, + 0x000200f8u, 0x0000007au, 0x000500c7u, 0x00000006u, 0x000000b7u, 0x00000076u, 0x00000047u, 0x00060041u, + 0x00000050u, 0x000000b9u, 0x0000004eu, 0x00000020u, 0x000000b7u, 0x0004003du, 0x00000006u, 0x000000bau, + 0x000000b9u, 0x00060041u, 0x00000050u, 0x000000bdu, 0x00000056u, 0x00000020u, 0x000000b7u, 0x0003003eu, + 0x000000bdu, 0x000000bau, 0x000200f9u, 0x0000007bu, 0x000200f8u, 0x0000007bu, 0x000300f7u, 0x0000008cu, + 0x00000000u, 0x000400fau, 0x0000008au, 0x0000008bu, 0x0000008cu, 0x000200f8u, 0x0000008bu, 0x000500c7u, + 0x00000006u, 0x000000c1u, 0x00000071u, 0x0000002fu, 0x00060041u, 0x00000039u, 0x000000c3u, 0x00000037u, + 0x00000020u, 0x000000c1u, 0x0004003du, 0x00000033u, 0x000000c4u, 0x000000c3u, 0x00040071u, 0x00000006u, + 0x000000c5u, 0x000000c4u, 0x00040071u, 0x00000033u, 0x000000c8u, 0x000000c5u, 0x00060041u, 0x00000039u, + 0x000000c9u, 0x00000040u, 0x00000020u, 0x000000c1u, 0x0003003eu, 0x000000c9u, 0x000000c8u, 0x000200f9u, + 0x0000008cu, 0x000200f8u, 0x0000008cu, 0x000200f9u, 0x00000096u, 0x000200f8u, 0x00000096u, 0x000100fdu, + 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000248u, 0x00000000u, 0x00020011u, 0x00000001u, + 0x00020011u, 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, 0x5f565053u, 0x5f52484bu, 0x74696238u, + 0x6f74735fu, 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, + 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0006000fu, 0x00000005u, 0x00000004u, 0x6e69616du, + 0x00000000u, 0x00000116u, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, + 0x00040047u, 0x00000013u, 0x00000001u, 0x00000000u, 0x00040047u, 0x0000001cu, 0x00000006u, 0x00000001u, + 0x00040048u, 0x0000001du, 0x00000000u, 0x00000018u, 0x00050048u, 0x0000001du, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000001du, 0x00000002u, 0x00040047u, 0x0000001fu, 0x00000022u, 0x00000000u, + 0x00040047u, 0x0000001fu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000027u, 0x00000006u, 0x00000001u, + 0x00050048u, 0x00000028u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000028u, 0x00000002u, + 0x00040047u, 0x0000002au, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000002au, 0x00000021u, 0x00000002u, + 0x00040047u, 0x0000003au, 0x00000006u, 0x00000001u, 0x00040048u, 0x0000003bu, 0x00000000u, 0x00000018u, + 0x00050048u, 0x0000003bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000003bu, 0x00000002u, + 0x00040047u, 0x0000003du, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000003du, 0x00000021u, 0x00000001u, + 0x00040047u, 0x0000004cu, 0x00000001u, 0x00000004u, 0x00040047u, 0x0000004eu, 0x00000006u, 0x00000001u, + 0x00050048u, 0x0000004fu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000004fu, 0x00000002u, + 0x00040047u, 0x00000051u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000051u, 0x00000021u, 0x00000003u, + 0x00040047u, 0x0000005fu, 0x00000006u, 0x00000001u, 0x00050048u, 0x00000060u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x00000060u, 0x00000002u, 0x00040047u, 0x00000062u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x00000062u, 0x00000021u, 0x00000004u, 0x00040047u, 0x00000079u, 0x00000006u, 0x00000002u, + 0x00040048u, 0x0000007au, 0x00000000u, 0x00000018u, 0x00050048u, 0x0000007au, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x0000007au, 0x00000002u, 0x00040047u, 0x0000007cu, 0x00000022u, 0x00000000u, + 0x00040047u, 0x0000007cu, 0x00000021u, 0x00000000u, 0x00040047u, 0x00000083u, 0x00000006u, 0x00000002u, + 0x00050048u, 0x00000084u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000084u, 0x00000002u, + 0x00040047u, 0x00000086u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000086u, 0x00000021u, 0x00000002u, + 0x00040047u, 0x000000a0u, 0x00000006u, 0x00000002u, 0x00050048u, 0x000000a1u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000000a1u, 0x00000002u, 0x00040047u, 0x000000a3u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000000a3u, 0x00000021u, 0x00000003u, 0x00040047u, 0x000000c2u, 0x00000006u, 0x00000004u, + 0x00040048u, 0x000000c3u, 0x00000000u, 0x00000018u, 0x00050048u, 0x000000c3u, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000000c3u, 0x00000002u, 0x00040047u, 0x000000c5u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000000c5u, 0x00000021u, 0x00000000u, 0x00040047u, 0x000000cbu, 0x00000006u, 0x00000004u, + 0x00050048u, 0x000000ccu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000000ccu, 0x00000002u, + 0x00040047u, 0x000000ceu, 0x00000022u, 0x00000000u, 0x00040047u, 0x000000ceu, 0x00000021u, 0x00000002u, + 0x00040047u, 0x000000edu, 0x00000006u, 0x00000004u, 0x00050048u, 0x000000eeu, 0x00000000u, 0x00000023u, + 0x00000000u, 0x00030047u, 0x000000eeu, 0x00000002u, 0x00040047u, 0x000000f0u, 0x00000022u, 0x00000000u, + 0x00040047u, 0x000000f0u, 0x00000021u, 0x00000003u, 0x00040047u, 0x00000116u, 0x0000000bu, 0x0000001cu, + 0x00050048u, 0x0000011bu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00050048u, 0x0000011bu, 0x00000001u, + 0x00000023u, 0x00000004u, 0x00050048u, 0x0000011bu, 0x00000002u, 0x00000023u, 0x00000008u, 0x00030047u, + 0x0000011bu, 0x00000002u, 0x00040047u, 0x0000012fu, 0x00000001u, 0x00000001u, 0x00040047u, 0x00000141u, + 0x00000001u, 0x00000002u, 0x00040047u, 0x00000148u, 0x00000001u, 0x00000003u, 0x00040047u, 0x00000149u, + 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, 0x00040015u, + 0x00000006u, 0x00000020u, 0x00000000u, 0x00040015u, 0x00000012u, 0x00000020u, 0x00000001u, 0x00040032u, + 0x00000012u, 0x00000013u, 0x00800000u, 0x0004002bu, 0x00000012u, 0x00000014u, 0x00000001u, 0x00060034u, + 0x00000012u, 0x00000015u, 0x00000082u, 0x00000013u, 0x00000014u, 0x0004002bu, 0x00000006u, 0x00000016u, + 0x00000000u, 0x00060034u, 0x00000006u, 0x00000017u, 0x00000080u, 0x00000015u, 0x00000016u, 0x00040015u, + 0x0000001bu, 0x00000008u, 0x00000000u, 0x0003001du, 0x0000001cu, 0x0000001bu, 0x0003001eu, 0x0000001du, + 0x0000001cu, 0x00040020u, 0x0000001eu, 0x0000000cu, 0x0000001du, 0x0004003bu, 0x0000001eu, 0x0000001fu, + 0x0000000cu, 0x0004002bu, 0x00000012u, 0x00000020u, 0x00000000u, 0x00040020u, 0x00000022u, 0x0000000cu, + 0x0000001bu, 0x0003001du, 0x00000027u, 0x0000001bu, 0x0003001eu, 0x00000028u, 0x00000027u, 0x00040020u, + 0x00000029u, 0x0000000cu, 0x00000028u, 0x0004003bu, 0x00000029u, 0x0000002au, 0x0000000cu, 0x00020014u, + 0x00000031u, 0x0004002bu, 0x00000006u, 0x00000037u, 0x00000003u, 0x0003001du, 0x0000003au, 0x0000001bu, + 0x0003001eu, 0x0000003bu, 0x0000003au, 0x00040020u, 0x0000003cu, 0x0000000cu, 0x0000003bu, 0x0004003bu, + 0x0000003cu, 0x0000003du, 0x0000000cu, 0x0004002bu, 0x00000006u, 0x0000003fu, 0x00000001u, 0x00040032u, + 0x00000012u, 0x0000004cu, 0x00000001u, 0x0003001du, 0x0000004eu, 0x0000001bu, 0x0003001eu, 0x0000004fu, + 0x0000004eu, 0x00040020u, 0x00000050u, 0x0000000cu, 0x0000004fu, 0x0004003bu, 0x00000050u, 0x00000051u, + 0x0000000cu, 0x0003001du, 0x0000005fu, 0x0000001bu, 0x0003001eu, 0x00000060u, 0x0000005fu, 0x00040020u, + 0x00000061u, 0x0000000cu, 0x00000060u, 0x0004003bu, 0x00000061u, 0x00000062u, 0x0000000cu, 0x00060034u, + 0x00000012u, 0x00000066u, 0x000000c3u, 0x00000013u, 0x00000014u, 0x00060034u, 0x00000012u, 0x00000073u, + 0x000000c3u, 0x00000015u, 0x00000014u, 0x00060034u, 0x00000006u, 0x00000074u, 0x00000080u, 0x00000073u, + 0x00000016u, 0x00040015u, 0x00000078u, 0x00000010u, 0x00000000u, 0x0003001du, 0x00000079u, 0x00000078u, + 0x0003001eu, 0x0000007au, 0x00000079u, 0x00040020u, 0x0000007bu, 0x0000000cu, 0x0000007au, 0x0004003bu, + 0x0000007bu, 0x0000007cu, 0x0000000cu, 0x00040020u, 0x0000007eu, 0x0000000cu, 0x00000078u, 0x0003001du, + 0x00000083u, 0x00000078u, 0x0003001eu, 0x00000084u, 0x00000083u, 0x00040020u, 0x00000085u, 0x0000000cu, + 0x00000084u, 0x0004003bu, 0x00000085u, 0x00000086u, 0x0000000cu, 0x0003001du, 0x000000a0u, 0x00000078u, + 0x0003001eu, 0x000000a1u, 0x000000a0u, 0x00040020u, 0x000000a2u, 0x0000000cu, 0x000000a1u, 0x0004003bu, + 0x000000a2u, 0x000000a3u, 0x0000000cu, 0x00060034u, 0x00000012u, 0x000000a6u, 0x000000c3u, 0x00000013u, + 0x00000014u, 0x00060034u, 0x00000012u, 0x000000afu, 0x000000c3u, 0x00000013u, 0x00000014u, 0x0004002bu, + 0x00000012u, 0x000000bcu, 0x00000002u, 0x00060034u, 0x00000012u, 0x000000bdu, 0x000000c3u, 0x00000015u, + 0x000000bcu, 0x00060034u, 0x00000006u, 0x000000beu, 0x00000080u, 0x000000bdu, 0x00000016u, 0x0003001du, + 0x000000c2u, 0x00000006u, 0x0003001eu, 0x000000c3u, 0x000000c2u, 0x00040020u, 0x000000c4u, 0x0000000cu, + 0x000000c3u, 0x0004003bu, 0x000000c4u, 0x000000c5u, 0x0000000cu, 0x00040020u, 0x000000c7u, 0x0000000cu, + 0x00000006u, 0x0003001du, 0x000000cbu, 0x00000006u, 0x0003001eu, 0x000000ccu, 0x000000cbu, 0x00040020u, + 0x000000cdu, 0x0000000cu, 0x000000ccu, 0x0004003bu, 0x000000cdu, 0x000000ceu, 0x0000000cu, 0x0004002bu, + 0x00000006u, 0x000000d8u, 0x00000002u, 0x0003001du, 0x000000edu, 0x00000006u, 0x0003001eu, 0x000000eeu, + 0x000000edu, 0x00040020u, 0x000000efu, 0x0000000cu, 0x000000eeu, 0x0004003bu, 0x000000efu, 0x000000f0u, + 0x0000000cu, 0x00060034u, 0x00000012u, 0x000000f3u, 0x000000c3u, 0x00000013u, 0x000000bcu, 0x00060034u, + 0x00000012u, 0x000000fcu, 0x000000c3u, 0x00000013u, 0x00000014u, 0x00060034u, 0x00000012u, 0x00000107u, + 0x000000c3u, 0x00000013u, 0x00000014u, 0x00040017u, 0x00000114u, 0x00000006u, 0x00000003u, 0x00040020u, + 0x00000115u, 0x00000001u, 0x00000114u, 0x0004003bu, 0x00000115u, 0x00000116u, 0x00000001u, 0x00040020u, + 0x00000117u, 0x00000001u, 0x00000006u, 0x0005001eu, 0x0000011bu, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00040020u, 0x0000011cu, 0x00000009u, 0x0000011bu, 0x0004003bu, 0x0000011cu, 0x0000011du, 0x00000009u, + 0x00040020u, 0x0000011eu, 0x00000009u, 0x00000006u, 0x00040032u, 0x00000012u, 0x0000012fu, 0x00000000u, + 0x00030031u, 0x00000031u, 0x00000141u, 0x00050034u, 0x00000031u, 0x00000142u, 0x000000a8u, 0x00000141u, + 0x00040032u, 0x00000006u, 0x00000148u, 0x00000001u, 0x00060033u, 0x00000114u, 0x00000149u, 0x00000148u, + 0x0000003fu, 0x0000003fu, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, + 0x00000005u, 0x000300f7u, 0x0000014au, 0x00000000u, 0x000300fbu, 0x00000016u, 0x0000014bu, 0x000200f8u, + 0x0000014bu, 0x00050041u, 0x00000117u, 0x00000118u, 0x00000116u, 0x00000016u, 0x0004003du, 0x00000006u, + 0x00000119u, 0x00000118u, 0x00050041u, 0x0000011eu, 0x0000011fu, 0x0000011du, 0x00000020u, 0x0004003du, + 0x00000006u, 0x00000120u, 0x0000011fu, 0x000500aeu, 0x00000031u, 0x00000121u, 0x00000119u, 0x00000120u, + 0x000300f7u, 0x00000123u, 0x00000000u, 0x000400fau, 0x00000121u, 0x00000122u, 0x00000123u, 0x000200f8u, + 0x00000122u, 0x000200f9u, 0x0000014au, 0x000200f8u, 0x00000123u, 0x00050041u, 0x0000011eu, 0x00000127u, + 0x0000011du, 0x000000bcu, 0x0004003du, 0x00000006u, 0x00000128u, 0x00000127u, 0x00050080u, 0x00000006u, + 0x00000129u, 0x00000119u, 0x00000128u, 0x00050041u, 0x0000011eu, 0x0000012cu, 0x0000011du, 0x00000014u, + 0x0004003du, 0x00000006u, 0x0000012du, 0x0000012cu, 0x00050080u, 0x00000006u, 0x0000012eu, 0x00000119u, + 0x0000012du, 0x000300f7u, 0x00000133u, 0x00000000u, 0x000900fbu, 0x0000012fu, 0x00000133u, 0x00000000u, + 0x00000130u, 0x00000001u, 0x00000131u, 0x00000002u, 0x00000132u, 0x000200f8u, 0x00000130u, 0x000500c7u, + 0x00000006u, 0x00000157u, 0x0000012eu, 0x00000017u, 0x00060041u, 0x00000022u, 0x00000159u, 0x0000001fu, + 0x00000020u, 0x00000157u, 0x0004003du, 0x0000001bu, 0x0000015au, 0x00000159u, 0x00040071u, 0x00000006u, + 0x0000015bu, 0x0000015au, 0x00060041u, 0x00000022u, 0x0000015du, 0x0000002au, 0x00000020u, 0x00000157u, + 0x0004003du, 0x0000001bu, 0x0000015eu, 0x0000015du, 0x00040071u, 0x00000006u, 0x0000015fu, 0x0000015eu, + 0x000500abu, 0x00000031u, 0x00000162u, 0x0000015bu, 0x0000015fu, 0x000300f7u, 0x0000018eu, 0x00000000u, + 0x000400fau, 0x00000162u, 0x00000163u, 0x0000018eu, 0x000200f8u, 0x00000163u, 0x000500c6u, 0x00000006u, + 0x00000165u, 0x00000157u, 0x00000037u, 0x000500c2u, 0x00000006u, 0x00000167u, 0x00000165u, 0x0000003fu, + 0x00060041u, 0x00000022u, 0x00000168u, 0x0000003du, 0x00000020u, 0x00000167u, 0x0004003du, 0x0000001bu, + 0x00000169u, 0x00000168u, 0x00040071u, 0x00000006u, 0x0000016au, 0x00000169u, 0x000200f9u, 0x0000016bu, + 0x000200f8u, 0x0000016bu, 0x000700f5u, 0x00000012u, 0x00000245u, 0x00000020u, 0x00000163u, 0x00000188u, + 0x00000186u, 0x000500b1u, 0x00000031u, 0x0000016eu, 0x00000245u, 0x0000004cu, 0x000400f6u, 0x00000189u, + 0x00000186u, 0x00000000u, 0x000400fau, 0x0000016eu, 0x0000016fu, 0x00000189u, 0x000200f8u, 0x0000016fu, + 0x00050084u, 0x00000012u, 0x00000172u, 0x00000245u, 0x00000013u, 0x0004007cu, 0x00000006u, 0x00000173u, + 0x00000172u, 0x00050080u, 0x00000006u, 0x00000174u, 0x00000157u, 0x00000173u, 0x00040071u, 0x0000001bu, + 0x00000176u, 0x0000015bu, 0x00060041u, 0x00000022u, 0x00000177u, 0x00000051u, 0x00000020u, 0x00000174u, + 0x0003003eu, 0x00000177u, 0x00000176u, 0x000500c7u, 0x00000006u, 0x00000179u, 0x00000165u, 0x0000003fu, + 0x000500abu, 0x00000031u, 0x0000017au, 0x00000179u, 0x00000016u, 0x000300f7u, 0x00000185u, 0x00000000u, + 0x000400fau, 0x0000017au, 0x0000017bu, 0x00000185u, 0x000200f8u, 0x0000017bu, 0x00050084u, 0x00000012u, + 0x0000017fu, 0x00000245u, 0x00000066u, 0x0004007cu, 0x00000006u, 0x00000180u, 0x0000017fu, 0x00050080u, + 0x00000006u, 0x00000181u, 0x00000167u, 0x00000180u, 0x00040071u, 0x0000001bu, 0x00000183u, 0x0000016au, + 0x00060041u, 0x00000022u, 0x00000184u, 0x00000062u, 0x00000020u, 0x00000181u, 0x0003003eu, 0x00000184u, + 0x00000183u, 0x000200f9u, 0x00000185u, 0x000200f8u, 0x00000185u, 0x000200f9u, 0x00000186u, 0x000200f8u, + 0x00000186u, 0x00050080u, 0x00000012u, 0x00000188u, 0x00000245u, 0x00000014u, 0x000200f9u, 0x0000016bu, + 0x000200f8u, 0x00000189u, 0x00040071u, 0x0000001bu, 0x0000018cu, 0x0000015bu, 0x0003003eu, 0x0000015du, + 0x0000018cu, 0x000200f9u, 0x0000018eu, 0x000200f8u, 0x0000018eu, 0x000200f9u, 0x00000133u, 0x000200f8u, + 0x00000131u, 0x000500c7u, 0x00000006u, 0x00000196u, 0x0000012eu, 0x00000074u, 0x00060041u, 0x0000007eu, + 0x00000198u, 0x0000007cu, 0x00000020u, 0x00000196u, 0x0004003du, 0x00000078u, 0x00000199u, 0x00000198u, + 0x00040071u, 0x00000006u, 0x0000019au, 0x00000199u, 0x00060041u, 0x0000007eu, 0x0000019cu, 0x00000086u, + 0x00000020u, 0x00000196u, 0x0004003du, 0x00000078u, 0x0000019du, 0x0000019cu, 0x00040071u, 0x00000006u, + 0x0000019eu, 0x0000019du, 0x000500abu, 0x00000031u, 0x000001a1u, 0x0000019au, 0x0000019eu, 0x000300f7u, + 0x000001c6u, 0x00000000u, 0x000400fau, 0x000001a1u, 0x000001a2u, 0x000001c6u, 0x000200f8u, 0x000001a2u, + 0x000500c6u, 0x00000006u, 0x000001a4u, 0x00000196u, 0x0000003fu, 0x00060041u, 0x00000022u, 0x000001a6u, + 0x0000003du, 0x00000020u, 0x000001a4u, 0x0004003du, 0x0000001bu, 0x000001a7u, 0x000001a6u, 0x00040071u, + 0x00000006u, 0x000001a8u, 0x000001a7u, 0x000200f9u, 0x000001a9u, 0x000200f8u, 0x000001a9u, 0x000700f5u, + 0x00000012u, 0x00000244u, 0x00000020u, 0x000001a2u, 0x000001c0u, 0x000001adu, 0x000500b1u, 0x00000031u, + 0x000001acu, 0x00000244u, 0x0000004cu, 0x000400f6u, 0x000001c1u, 0x000001adu, 0x00000000u, 0x000400fau, + 0x000001acu, 0x000001adu, 0x000001c1u, 0x000200f8u, 0x000001adu, 0x00050084u, 0x00000012u, 0x000001b0u, + 0x00000244u, 0x000000a6u, 0x0004007cu, 0x00000006u, 0x000001b1u, 0x000001b0u, 0x00050080u, 0x00000006u, + 0x000001b2u, 0x00000196u, 0x000001b1u, 0x00040071u, 0x00000078u, 0x000001b4u, 0x0000019au, 0x00060041u, + 0x0000007eu, 0x000001b5u, 0x000000a3u, 0x00000020u, 0x000001b2u, 0x0003003eu, 0x000001b5u, 0x000001b4u, + 0x00050084u, 0x00000012u, 0x000001b8u, 0x00000244u, 0x000000afu, 0x0004007cu, 0x00000006u, 0x000001b9u, + 0x000001b8u, 0x00050080u, 0x00000006u, 0x000001bau, 0x000001a4u, 0x000001b9u, 0x00040071u, 0x0000001bu, + 0x000001bcu, 0x000001a8u, 0x00060041u, 0x00000022u, 0x000001bdu, 0x00000062u, 0x00000020u, 0x000001bau, + 0x0003003eu, 0x000001bdu, 0x000001bcu, 0x00050080u, 0x00000012u, 0x000001c0u, 0x00000244u, 0x00000014u, + 0x000200f9u, 0x000001a9u, 0x000200f8u, 0x000001c1u, 0x00040071u, 0x00000078u, 0x000001c4u, 0x0000019au, + 0x0003003eu, 0x0000019cu, 0x000001c4u, 0x000200f9u, 0x000001c6u, 0x000200f8u, 0x000001c6u, 0x000200f9u, + 0x00000133u, 0x000200f8u, 0x00000132u, 0x000500c7u, 0x00000006u, 0x000001ceu, 0x0000012eu, 0x000000beu, + 0x00060041u, 0x000000c7u, 0x000001d0u, 0x000000c5u, 0x00000020u, 0x000001ceu, 0x0004003du, 0x00000006u, + 0x000001d1u, 0x000001d0u, 0x00060041u, 0x000000c7u, 0x000001d3u, 0x000000ceu, 0x00000020u, 0x000001ceu, + 0x0004003du, 0x00000006u, 0x000001d4u, 0x000001d3u, 0x000500abu, 0x00000031u, 0x000001d7u, 0x000001d1u, + 0x000001d4u, 0x000300f7u, 0x0000020au, 0x00000000u, 0x000400fau, 0x000001d7u, 0x000001d8u, 0x0000020au, + 0x000200f8u, 0x000001d8u, 0x00050084u, 0x00000006u, 0x000001dau, 0x000000d8u, 0x000001ceu, 0x00060041u, + 0x00000022u, 0x000001dbu, 0x0000003du, 0x00000020u, 0x000001dau, 0x0004003du, 0x0000001bu, 0x000001dcu, + 0x000001dbu, 0x00040071u, 0x00000006u, 0x000001ddu, 0x000001dcu, 0x00050080u, 0x00000006u, 0x000001e0u, + 0x000001dau, 0x0000003fu, 0x00060041u, 0x00000022u, 0x000001e1u, 0x0000003du, 0x00000020u, 0x000001e0u, + 0x0004003du, 0x0000001bu, 0x000001e2u, 0x000001e1u, 0x00040071u, 0x00000006u, 0x000001e3u, 0x000001e2u, + 0x000200f9u, 0x000001e4u, 0x000200f8u, 0x000001e4u, 0x000700f5u, 0x00000012u, 0x00000243u, 0x00000020u, + 0x000001d8u, 0x00000205u, 0x000001e8u, 0x000500b1u, 0x00000031u, 0x000001e7u, 0x00000243u, 0x0000004cu, + 0x000400f6u, 0x00000206u, 0x000001e8u, 0x00000000u, 0x000400fau, 0x000001e7u, 0x000001e8u, 0x00000206u, + 0x000200f8u, 0x000001e8u, 0x00050084u, 0x00000012u, 0x000001ebu, 0x00000243u, 0x000000f3u, 0x0004007cu, + 0x00000006u, 0x000001ecu, 0x000001ebu, 0x00050080u, 0x00000006u, 0x000001edu, 0x000001ceu, 0x000001ecu, + 0x00060041u, 0x000000c7u, 0x000001efu, 0x000000f0u, 0x00000020u, 0x000001edu, 0x0003003eu, 0x000001efu, + 0x000001d1u, 0x00050084u, 0x00000012u, 0x000001f3u, 0x00000243u, 0x000000fcu, 0x0004007cu, 0x00000006u, + 0x000001f4u, 0x000001f3u, 0x00050080u, 0x00000006u, 0x000001f5u, 0x000001dau, 0x000001f4u, 0x00040071u, + 0x0000001bu, 0x000001f7u, 0x000001ddu, 0x00060041u, 0x00000022u, 0x000001f8u, 0x00000062u, 0x00000020u, + 0x000001f5u, 0x0003003eu, 0x000001f8u, 0x000001f7u, 0x00050084u, 0x00000012u, 0x000001fdu, 0x00000243u, + 0x00000107u, 0x0004007cu, 0x00000006u, 0x000001feu, 0x000001fdu, 0x00050080u, 0x00000006u, 0x000001ffu, + 0x000001e0u, 0x000001feu, 0x00040071u, 0x0000001bu, 0x00000201u, 0x000001e3u, 0x00060041u, 0x00000022u, + 0x00000202u, 0x00000062u, 0x00000020u, 0x000001ffu, 0x0003003eu, 0x00000202u, 0x00000201u, 0x00050080u, + 0x00000012u, 0x00000205u, 0x00000243u, 0x00000014u, 0x000200f9u, 0x000001e4u, 0x000200f8u, 0x00000206u, + 0x0003003eu, 0x000001d3u, 0x000001d1u, 0x000200f9u, 0x0000020au, 0x000200f8u, 0x0000020au, 0x000200f9u, + 0x00000133u, 0x000200f8u, 0x00000133u, 0x000300f7u, 0x00000144u, 0x00000000u, 0x000400fau, 0x00000142u, + 0x00000143u, 0x00000144u, 0x000200f8u, 0x00000143u, 0x000500c7u, 0x00000006u, 0x00000212u, 0x00000129u, + 0x00000074u, 0x00060041u, 0x0000007eu, 0x00000214u, 0x0000007cu, 0x00000020u, 0x00000212u, 0x0004003du, + 0x00000078u, 0x00000215u, 0x00000214u, 0x00040071u, 0x00000006u, 0x00000216u, 0x00000215u, 0x00060041u, + 0x0000007eu, 0x00000218u, 0x00000086u, 0x00000020u, 0x00000212u, 0x0004003du, 0x00000078u, 0x00000219u, + 0x00000218u, 0x00040071u, 0x00000006u, 0x0000021au, 0x00000219u, 0x000500abu, 0x00000031u, 0x0000021du, + 0x00000216u, 0x0000021au, 0x000300f7u, 0x00000242u, 0x00000000u, 0x000400fau, 0x0000021du, 0x0000021eu, + 0x00000242u, 0x000200f8u, 0x0000021eu, 0x000500c6u, 0x00000006u, 0x00000220u, 0x00000212u, 0x0000003fu, + 0x00060041u, 0x00000022u, 0x00000222u, 0x0000003du, 0x00000020u, 0x00000220u, 0x0004003du, 0x0000001bu, + 0x00000223u, 0x00000222u, 0x00040071u, 0x00000006u, 0x00000224u, 0x00000223u, 0x000200f9u, 0x00000225u, + 0x000200f8u, 0x00000225u, 0x000700f5u, 0x00000012u, 0x00000247u, 0x00000020u, 0x0000021eu, 0x0000023cu, + 0x00000229u, 0x000500b1u, 0x00000031u, 0x00000228u, 0x00000247u, 0x0000004cu, 0x000400f6u, 0x0000023du, + 0x00000229u, 0x00000000u, 0x000400fau, 0x00000228u, 0x00000229u, 0x0000023du, 0x000200f8u, 0x00000229u, + 0x00050084u, 0x00000012u, 0x0000022cu, 0x00000247u, 0x000000a6u, 0x0004007cu, 0x00000006u, 0x0000022du, + 0x0000022cu, 0x00050080u, 0x00000006u, 0x0000022eu, 0x00000212u, 0x0000022du, 0x00040071u, 0x00000078u, + 0x00000230u, 0x00000216u, 0x00060041u, 0x0000007eu, 0x00000231u, 0x000000a3u, 0x00000020u, 0x0000022eu, + 0x0003003eu, 0x00000231u, 0x00000230u, 0x00050084u, 0x00000012u, 0x00000234u, 0x00000247u, 0x000000afu, + 0x0004007cu, 0x00000006u, 0x00000235u, 0x00000234u, 0x00050080u, 0x00000006u, 0x00000236u, 0x00000220u, + 0x00000235u, 0x00040071u, 0x0000001bu, 0x00000238u, 0x00000224u, 0x00060041u, 0x00000022u, 0x00000239u, + 0x00000062u, 0x00000020u, 0x00000236u, 0x0003003eu, 0x00000239u, 0x00000238u, 0x00050080u, 0x00000012u, + 0x0000023cu, 0x00000247u, 0x00000014u, 0x000200f9u, 0x00000225u, 0x000200f8u, 0x0000023du, 0x00040071u, + 0x00000078u, 0x00000240u, 0x00000216u, 0x0003003eu, 0x00000218u, 0x00000240u, 0x000200f9u, 0x00000242u, + 0x000200f8u, 0x00000242u, 0x000200f9u, 0x00000144u, 0x000200f8u, 0x00000144u, 0x000200f9u, 0x0000014au, + 0x000200f8u, 0x0000014au, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x000002f2u, + 0x00000000u, 0x00020011u, 0x00000001u, 0x00020011u, 0x00001151u, 0x00020011u, 0x00001160u, 0x0007000au, + 0x5f565053u, 0x5f52484bu, 0x74696238u, 0x6f74735fu, 0x65676172u, 0x00000000u, 0x0006000bu, 0x00000001u, + 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0006000fu, + 0x00000005u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00000143u, 0x00060010u, 0x00000004u, 0x00000011u, + 0x00000001u, 0x00000001u, 0x00000001u, 0x00040047u, 0x00000034u, 0x00000001u, 0x00000004u, 0x00040047u, + 0x00000039u, 0x00000006u, 0x00000001u, 0x00040048u, 0x0000003au, 0x00000000u, 0x00000018u, 0x00050048u, + 0x0000003au, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000003au, 0x00000002u, 0x00040047u, + 0x0000003cu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000003cu, 0x00000021u, 0x00000003u, 0x00040047u, + 0x0000004eu, 0x00000006u, 0x00000001u, 0x00040048u, 0x0000004fu, 0x00000000u, 0x00000019u, 0x00050048u, + 0x0000004fu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x0000004fu, 0x00000002u, 0x00040047u, + 0x00000051u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000051u, 0x00000021u, 0x00000002u, 0x00040047u, + 0x00000056u, 0x00000006u, 0x00000001u, 0x00040048u, 0x00000057u, 0x00000000u, 0x00000019u, 0x00050048u, + 0x00000057u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000057u, 0x00000002u, 0x00040047u, + 0x00000059u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000059u, 0x00000021u, 0x00000000u, 0x00040047u, + 0x00000088u, 0x00000006u, 0x00000002u, 0x00040048u, 0x00000089u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000089u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000089u, 0x00000002u, 0x00040047u, + 0x0000008bu, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000008bu, 0x00000021u, 0x00000003u, 0x00040047u, + 0x0000008eu, 0x00000001u, 0x00000000u, 0x00040047u, 0x0000009eu, 0x00000001u, 0x00000005u, 0x00040047u, + 0x000000cdu, 0x00000006u, 0x00000002u, 0x00040048u, 0x000000ceu, 0x00000000u, 0x00000019u, 0x00050048u, + 0x000000ceu, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000000ceu, 0x00000002u, 0x00040047u, + 0x000000d0u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000000d0u, 0x00000021u, 0x00000000u, 0x00040047u, + 0x000000d5u, 0x00000006u, 0x00000002u, 0x00040048u, 0x000000d6u, 0x00000000u, 0x00000019u, 0x00050048u, + 0x000000d6u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x000000d6u, 0x00000002u, 0x00040047u, + 0x000000d8u, 0x00000022u, 0x00000000u, 0x00040047u, 0x000000d8u, 0x00000021u, 0x00000002u, 0x00040047u, + 0x0000010fu, 0x00000006u, 0x00000004u, 0x00040048u, 0x00000110u, 0x00000000u, 0x00000018u, 0x00050048u, + 0x00000110u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000110u, 0x00000002u, 0x00040047u, + 0x00000112u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000112u, 0x00000021u, 0x00000003u, 0x00040047u, + 0x00000130u, 0x00000006u, 0x00000004u, 0x00040048u, 0x00000131u, 0x00000000u, 0x00000019u, 0x00050048u, + 0x00000131u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000131u, 0x00000002u, 0x00040047u, + 0x00000133u, 0x00000022u, 0x00000000u, 0x00040047u, 0x00000133u, 0x00000021u, 0x00000000u, 0x00040047u, + 0x00000137u, 0x00000006u, 0x00000004u, 0x00040048u, 0x00000138u, 0x00000000u, 0x00000019u, 0x00050048u, + 0x00000138u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000138u, 0x00000002u, 0x00040047u, + 0x0000013au, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000013au, 0x00000021u, 0x00000002u, 0x00040047u, + 0x00000143u, 0x0000000bu, 0x0000001cu, 0x00050048u, 0x00000149u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00050048u, 0x00000149u, 0x00000001u, 0x00000023u, 0x00000004u, 0x00050048u, 0x00000149u, 0x00000002u, + 0x00000023u, 0x00000008u, 0x00050048u, 0x00000149u, 0x00000003u, 0x00000023u, 0x0000000cu, 0x00050048u, + 0x00000149u, 0x00000004u, 0x00000023u, 0x00000010u, 0x00030047u, 0x00000149u, 0x00000002u, 0x00040047u, + 0x00000196u, 0x00000001u, 0x00000001u, 0x00040047u, 0x000001beu, 0x00000001u, 0x00000006u, 0x00040047u, + 0x000001dfu, 0x00000001u, 0x00000002u, 0x00040047u, 0x000001fau, 0x00000001u, 0x00000003u, 0x00040047u, + 0x000001fbu, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, + 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x00040020u, 0x00000007u, 0x00000007u, 0x00000006u, + 0x00040017u, 0x0000000cu, 0x00000006u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x00000029u, 0x00000000u, + 0x00040015u, 0x0000002au, 0x00000020u, 0x00000001u, 0x0004002bu, 0x0000002au, 0x0000002du, 0x00000000u, + 0x00040032u, 0x0000002au, 0x00000034u, 0x00000001u, 0x00020014u, 0x00000035u, 0x00040015u, 0x00000038u, + 0x00000008u, 0x00000000u, 0x0003001du, 0x00000039u, 0x00000038u, 0x0003001eu, 0x0000003au, 0x00000039u, + 0x00040020u, 0x0000003bu, 0x0000000cu, 0x0000003au, 0x0004003bu, 0x0000003bu, 0x0000003cu, 0x0000000cu, + 0x00040020u, 0x0000003eu, 0x0000000cu, 0x00000038u, 0x0004002bu, 0x0000002au, 0x00000046u, 0x00000001u, + 0x00060034u, 0x0000002au, 0x00000049u, 0x000000c3u, 0x00000034u, 0x00000046u, 0x00060034u, 0x00000006u, + 0x0000004au, 0x00000080u, 0x00000049u, 0x00000029u, 0x00060034u, 0x00000006u, 0x0000004cu, 0x00000080u, + 0x00000034u, 0x00000029u, 0x0003001du, 0x0000004eu, 0x00000038u, 0x0003001eu, 0x0000004fu, 0x0000004eu, + 0x00040020u, 0x00000050u, 0x0000000cu, 0x0000004fu, 0x0004003bu, 0x00000050u, 0x00000051u, 0x0000000cu, + 0x0003001du, 0x00000056u, 0x00000038u, 0x0003001eu, 0x00000057u, 0x00000056u, 0x00040020u, 0x00000058u, + 0x0000000cu, 0x00000057u, 0x0004003bu, 0x00000058u, 0x00000059u, 0x0000000cu, 0x0004002bu, 0x00000006u, + 0x00000060u, 0x0000000bu, 0x0004002bu, 0x00000006u, 0x00000061u, 0x00000006u, 0x0004002bu, 0x00000006u, + 0x00000062u, 0x00000001u, 0x0007002cu, 0x0000000cu, 0x00000063u, 0x00000060u, 0x00000061u, 0x00000062u, + 0x00000029u, 0x0004002bu, 0x00000006u, 0x00000065u, 0x0000001fu, 0x0007002cu, 0x0000000cu, 0x00000066u, + 0x00000065u, 0x00000065u, 0x00000065u, 0x00000062u, 0x0004002bu, 0x00000006u, 0x00000071u, 0x00000002u, + 0x0004002bu, 0x00000006u, 0x00000076u, 0x00000003u, 0x0007002cu, 0x0000000cu, 0x0000007du, 0x00000029u, + 0x00000029u, 0x00000029u, 0x00000029u, 0x00040015u, 0x00000087u, 0x00000010u, 0x00000000u, 0x0003001du, + 0x00000088u, 0x00000087u, 0x0003001eu, 0x00000089u, 0x00000088u, 0x00040020u, 0x0000008au, 0x0000000cu, + 0x00000089u, 0x0004003bu, 0x0000008au, 0x0000008bu, 0x0000000cu, 0x00040032u, 0x0000002au, 0x0000008eu, + 0x00800000u, 0x00060034u, 0x0000002au, 0x0000008fu, 0x000000c3u, 0x0000008eu, 0x00000046u, 0x00040020u, + 0x00000093u, 0x0000000cu, 0x00000087u, 0x00030031u, 0x00000035u, 0x0000009eu, 0x0004002bu, 0x00000006u, + 0x000000a2u, 0x00000010u, 0x0004001cu, 0x000000a3u, 0x00000006u, 0x000000a2u, 0x0004002bu, 0x00000006u, + 0x000000a4u, 0x00000004u, 0x0004002bu, 0x00000006u, 0x000000a5u, 0x00000005u, 0x0004002bu, 0x00000006u, + 0x000000a6u, 0x00000007u, 0x0013002cu, 0x000000a3u, 0x000000a7u, 0x00000029u, 0x000000a4u, 0x00000062u, + 0x000000a5u, 0x000000a4u, 0x00000029u, 0x000000a5u, 0x00000062u, 0x00000076u, 0x000000a6u, 0x00000071u, + 0x00000061u, 0x000000a6u, 0x00000076u, 0x00000061u, 0x00000071u, 0x00040020u, 0x000000aeu, 0x00000007u, + 0x000000a3u, 0x00060034u, 0x00000006u, 0x000000b2u, 0x00000080u, 0x00000034u, 0x00000029u, 0x0004002bu, + 0x00000006u, 0x000000b4u, 0x00000008u, 0x0004002bu, 0x0000002au, 0x000000bbu, 0x00000008u, 0x00060034u, + 0x0000002au, 0x000000bcu, 0x00000084u, 0x000000bbu, 0x00000034u, 0x00060034u, 0x00000006u, 0x000000bdu, + 0x00000080u, 0x000000bcu, 0x00000029u, 0x00060034u, 0x0000002au, 0x000000c2u, 0x000000c3u, 0x00000034u, + 0x00000046u, 0x00060034u, 0x00000006u, 0x000000c3u, 0x00000080u, 0x000000c2u, 0x00000029u, 0x00060034u, + 0x00000006u, 0x000000c6u, 0x00000080u, 0x00000034u, 0x00000029u, 0x0003001du, 0x000000cdu, 0x00000087u, + 0x0003001eu, 0x000000ceu, 0x000000cdu, 0x00040020u, 0x000000cfu, 0x0000000cu, 0x000000ceu, 0x0004003bu, + 0x000000cfu, 0x000000d0u, 0x0000000cu, 0x0003001du, 0x000000d5u, 0x00000087u, 0x0003001eu, 0x000000d6u, + 0x000000d5u, 0x00040020u, 0x000000d7u, 0x0000000cu, 0x000000d6u, 0x0004003bu, 0x000000d7u, 0x000000d8u, + 0x0000000cu, 0x0004002bu, 0x00000006u, 0x000000ecu, 0x00000018u, 0x0007002cu, 0x0000000cu, 0x000000edu, + 0x000000ecu, 0x000000a2u, 0x000000b4u, 0x00000029u, 0x0004002bu, 0x00000006u, 0x000000efu, 0x000000ffu, + 0x0007002cu, 0x0000000cu, 0x000000f0u, 0x000000efu, 0x000000efu, 0x000000efu, 0x000000efu, 0x0003001du, + 0x0000010fu, 0x00000006u, 0x0003001eu, 0x00000110u, 0x0000010fu, 0x00040020u, 0x00000111u, 0x0000000cu, + 0x00000110u, 0x0004003bu, 0x00000111u, 0x00000112u, 0x0000000cu, 0x0004002bu, 0x0000002au, 0x00000115u, + 0x00000002u, 0x00060034u, 0x0000002au, 0x00000116u, 0x000000c3u, 0x0000008eu, 0x00000115u, 0x00040020u, + 0x0000011au, 0x0000000cu, 0x00000006u, 0x00060034u, 0x0000002au, 0x00000125u, 0x000000c3u, 0x00000034u, + 0x00000046u, 0x00060034u, 0x00000006u, 0x00000126u, 0x00000080u, 0x00000125u, 0x00000029u, 0x00060034u, + 0x00000006u, 0x00000129u, 0x00000080u, 0x00000034u, 0x00000029u, 0x0003001du, 0x00000130u, 0x00000006u, + 0x0003001eu, 0x00000131u, 0x00000130u, 0x00040020u, 0x00000132u, 0x0000000cu, 0x00000131u, 0x0004003bu, + 0x00000132u, 0x00000133u, 0x0000000cu, 0x0003001du, 0x00000137u, 0x00000006u, 0x0003001eu, 0x00000138u, + 0x00000137u, 0x00040020u, 0x00000139u, 0x0000000cu, 0x00000138u, 0x0004003bu, 0x00000139u, 0x0000013au, + 0x0000000cu, 0x00040017u, 0x0000013eu, 0x00000006u, 0x00000002u, 0x00040017u, 0x00000141u, 0x00000006u, + 0x00000003u, 0x00040020u, 0x00000142u, 0x00000001u, 0x00000141u, 0x0004003bu, 0x00000142u, 0x00000143u, + 0x00000001u, 0x0007001eu, 0x00000149u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, 0x00000006u, + 0x00040020u, 0x0000014au, 0x00000009u, 0x00000149u, 0x0004003bu, 0x0000014au, 0x0000014bu, 0x00000009u, + 0x0004002bu, 0x0000002au, 0x0000014cu, 0x00000003u, 0x00040020u, 0x0000014du, 0x00000009u, 0x00000006u, + 0x00060034u, 0x0000002au, 0x00000175u, 0x000000c3u, 0x0000008eu, 0x00000115u, 0x00060034u, 0x0000002au, + 0x00000176u, 0x00000084u, 0x00000034u, 0x00000175u, 0x00060034u, 0x00000006u, 0x00000177u, 0x00000080u, + 0x00000176u, 0x00000029u, 0x00040032u, 0x0000002au, 0x00000196u, 0x00000000u, 0x00060034u, 0x0000002au, + 0x0000019bu, 0x00000082u, 0x0000008eu, 0x00000046u, 0x00060034u, 0x00000006u, 0x0000019cu, 0x00000080u, + 0x0000019bu, 0x00000029u, 0x00060034u, 0x0000002au, 0x000001a5u, 0x000000c3u, 0x0000019bu, 0x00000046u, + 0x00060034u, 0x00000006u, 0x000001a6u, 0x00000080u, 0x000001a5u, 0x00000029u, 0x00060034u, 0x0000002au, + 0x000001b5u, 0x000000c3u, 0x0000019bu, 0x00000115u, 0x00060034u, 0x00000006u, 0x000001b6u, 0x00000080u, + 0x000001b5u, 0x00000029u, 0x00030031u, 0x00000035u, 0x000001beu, 0x0004002bu, 0x00000006u, 0x000001c1u, + 0x00000048u, 0x00060034u, 0x00000006u, 0x000001cau, 0x00000080u, 0x0000008eu, 0x00000029u, 0x00060034u, + 0x0000002au, 0x000001d0u, 0x000000c3u, 0x0000008eu, 0x00000046u, 0x00060034u, 0x00000006u, 0x000001d1u, + 0x00000080u, 0x000001d0u, 0x00000029u, 0x00060034u, 0x0000002au, 0x000001d8u, 0x000000c3u, 0x0000008eu, + 0x00000115u, 0x00060034u, 0x00000006u, 0x000001d9u, 0x00000080u, 0x000001d8u, 0x00000029u, 0x0004002bu, + 0x00000006u, 0x000001dbu, 0xffffffffu, 0x00030031u, 0x00000035u, 0x000001dfu, 0x00050034u, 0x00000035u, + 0x000001e0u, 0x000000a8u, 0x000001dfu, 0x00060034u, 0x00000006u, 0x000001e6u, 0x00000080u, 0x000001a5u, + 0x00000029u, 0x00060034u, 0x0000002au, 0x000001f4u, 0x000000c3u, 0x0000008eu, 0x00000062u, 0x00060034u, + 0x00000006u, 0x000001f5u, 0x00000080u, 0x000001f4u, 0x00000029u, 0x00040032u, 0x00000006u, 0x000001fau, + 0x00000001u, 0x00060033u, 0x00000141u, 0x000001fbu, 0x000001fau, 0x00000062u, 0x00000062u, 0x0005002cu, + 0x0000013eu, 0x000002eeu, 0x00000071u, 0x00000071u, 0x0004002bu, 0x00000038u, 0x000002efu, 0x000000ffu, + 0x0004002bu, 0x00000087u, 0x000002f0u, 0x0000ffffu, 0x0007002cu, 0x0000000cu, 0x000002f1u, 0x000000b4u, + 0x000000b4u, 0x000000b4u, 0x000000b4u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, + 0x000200f8u, 0x00000005u, 0x0004003bu, 0x000000aeu, 0x00000224u, 0x00000007u, 0x0004003du, 0x00000141u, + 0x00000144u, 0x00000143u, 0x0007004fu, 0x0000013eu, 0x00000145u, 0x00000144u, 0x00000144u, 0x00000000u, + 0x00000001u, 0x00050051u, 0x00000006u, 0x00000148u, 0x00000144u, 0x00000001u, 0x00050041u, 0x0000014du, + 0x0000014eu, 0x0000014bu, 0x0000014cu, 0x0004003du, 0x00000006u, 0x0000014fu, 0x0000014eu, 0x00050084u, + 0x00000006u, 0x00000150u, 0x00000148u, 0x0000014fu, 0x00050051u, 0x00000006u, 0x00000152u, 0x00000144u, + 0x00000000u, 0x00050080u, 0x00000006u, 0x00000153u, 0x00000150u, 0x00000152u, 0x00050041u, 0x0000014du, + 0x00000156u, 0x0000014bu, 0x00000115u, 0x0004003du, 0x00000006u, 0x00000157u, 0x00000156u, 0x00050080u, + 0x00000006u, 0x00000158u, 0x00000153u, 0x00000157u, 0x00050041u, 0x0000014du, 0x0000015bu, 0x0000014bu, + 0x00000046u, 0x0004003du, 0x00000006u, 0x0000015cu, 0x0000015bu, 0x00050080u, 0x00000006u, 0x0000015du, + 0x00000153u, 0x0000015cu, 0x000500c2u, 0x0000013eu, 0x00000161u, 0x00000145u, 0x000002eeu, 0x00050051u, + 0x00000006u, 0x00000164u, 0x00000161u, 0x00000000u, 0x00050051u, 0x00000006u, 0x00000166u, 0x00000161u, + 0x00000001u, 0x00050080u, 0x00000006u, 0x00000169u, 0x0000014fu, 0x00000076u, 0x000500c2u, 0x00000006u, + 0x0000016au, 0x00000169u, 0x00000071u, 0x00050084u, 0x00000006u, 0x0000016bu, 0x00000166u, 0x0000016au, + 0x00050080u, 0x00000006u, 0x0000016cu, 0x00000164u, 0x0000016bu, 0x000500b0u, 0x00000035u, 0x00000171u, + 0x00000152u, 0x0000014fu, 0x000300f7u, 0x00000173u, 0x00000000u, 0x000400fau, 0x00000171u, 0x00000172u, + 0x0000017cu, 0x000200f8u, 0x00000172u, 0x00050080u, 0x00000006u, 0x00000179u, 0x00000177u, 0x0000016cu, + 0x00060041u, 0x0000011au, 0x0000017au, 0x00000112u, 0x0000002du, 0x00000179u, 0x0004003du, 0x00000006u, + 0x0000017bu, 0x0000017au, 0x000200f9u, 0x00000173u, 0x000200f8u, 0x0000017cu, 0x000200f9u, 0x00000173u, + 0x000200f8u, 0x00000173u, 0x000700f5u, 0x00000006u, 0x000002d4u, 0x0000017bu, 0x00000172u, 0x00000029u, + 0x0000017cu, 0x000500c7u, 0x00000006u, 0x00000180u, 0x00000152u, 0x00000076u, 0x000500c7u, 0x00000006u, + 0x00000183u, 0x00000148u, 0x00000076u, 0x00050084u, 0x00000006u, 0x00000184u, 0x000000a4u, 0x00000183u, + 0x00050080u, 0x00000006u, 0x00000185u, 0x00000180u, 0x00000184u, 0x00050084u, 0x00000006u, 0x00000186u, + 0x00000071u, 0x00000185u, 0x000500c2u, 0x00000006u, 0x00000189u, 0x000002d4u, 0x00000186u, 0x000500c7u, + 0x00000006u, 0x0000018du, 0x00000189u, 0x00000062u, 0x000500abu, 0x00000035u, 0x0000018eu, 0x0000018du, + 0x00000029u, 0x000500c7u, 0x00000006u, 0x00000191u, 0x00000189u, 0x00000071u, 0x000500abu, 0x00000035u, + 0x00000192u, 0x00000191u, 0x00000029u, 0x000300f7u, 0x00000195u, 0x00000000u, 0x000400fau, 0x0000018eu, + 0x00000194u, 0x00000195u, 0x000200f8u, 0x00000194u, 0x000300f7u, 0x0000019au, 0x00000000u, 0x000900fbu, + 0x00000196u, 0x0000019au, 0x00000000u, 0x00000197u, 0x00000001u, 0x00000198u, 0x00000002u, 0x00000199u, + 0x000200f8u, 0x00000197u, 0x000500c7u, 0x00000006u, 0x0000019eu, 0x0000015du, 0x0000019cu, 0x000500c6u, + 0x00000006u, 0x000001a0u, 0x0000019eu, 0x00000076u, 0x000200f9u, 0x00000204u, 0x000200f8u, 0x00000204u, + 0x000700f5u, 0x00000006u, 0x000002dcu, 0x00000029u, 0x00000197u, 0x0000020fu, 0x00000208u, 0x000700f5u, + 0x0000002au, 0x000002dbu, 0x0000002du, 0x00000197u, 0x00000212u, 0x00000208u, 0x000500b1u, 0x00000035u, + 0x00000207u, 0x000002dbu, 0x00000034u, 0x000400f6u, 0x00000213u, 0x00000208u, 0x00000000u, 0x000400fau, + 0x00000207u, 0x00000208u, 0x00000213u, 0x000200f8u, 0x00000208u, 0x00060041u, 0x0000003eu, 0x0000020au, + 0x0000003cu, 0x0000002du, 0x000001a0u, 0x0004003du, 0x00000038u, 0x0000020bu, 0x0000020au, 0x00040071u, + 0x00000006u, 0x0000020cu, 0x0000020bu, 0x00050080u, 0x00000006u, 0x0000020fu, 0x000002dcu, 0x0000020cu, + 0x00050080u, 0x0000002au, 0x00000212u, 0x000002dbu, 0x00000046u, 0x000200f9u, 0x00000204u, 0x000200f8u, + 0x00000213u, 0x00050080u, 0x00000006u, 0x00000215u, 0x000002dcu, 0x0000004au, 0x00050086u, 0x00000006u, + 0x00000216u, 0x00000215u, 0x0000004cu, 0x00040071u, 0x00000038u, 0x00000219u, 0x00000216u, 0x00060041u, + 0x0000003eu, 0x0000021au, 0x00000051u, 0x0000002du, 0x000001a0u, 0x0003003eu, 0x0000021au, 0x00000219u, + 0x00060041u, 0x0000003eu, 0x0000021eu, 0x00000059u, 0x0000002du, 0x000001a0u, 0x0003003eu, 0x0000021eu, + 0x00000219u, 0x000200f9u, 0x0000019au, 0x000200f8u, 0x00000198u, 0x000500c7u, 0x00000006u, 0x000001a8u, + 0x0000015du, 0x000001a6u, 0x000500c6u, 0x00000006u, 0x000001aau, 0x000001a8u, 0x00000062u, 0x000200f9u, + 0x00000228u, 0x000200f8u, 0x00000228u, 0x000700f5u, 0x0000000cu, 0x000002d9u, 0x0000007du, 0x00000198u, + 0x00000238u, 0x0000022cu, 0x000700f5u, 0x0000002au, 0x000002d8u, 0x0000002du, 0x00000198u, 0x0000023bu, + 0x0000022cu, 0x000500b1u, 0x00000035u, 0x0000022bu, 0x000002d8u, 0x00000034u, 0x000400f6u, 0x0000023cu, + 0x0000022cu, 0x00000000u, 0x000400fau, 0x0000022bu, 0x0000022cu, 0x0000023cu, 0x000200f8u, 0x0000022cu, + 0x00050084u, 0x0000002au, 0x0000022fu, 0x000002d8u, 0x0000008fu, 0x0004007cu, 0x00000006u, 0x00000230u, + 0x0000022fu, 0x00050080u, 0x00000006u, 0x00000231u, 0x000001aau, 0x00000230u, 0x00060041u, 0x00000093u, + 0x00000232u, 0x0000008bu, 0x0000002du, 0x00000231u, 0x0004003du, 0x00000087u, 0x00000233u, 0x00000232u, + 0x00040071u, 0x00000006u, 0x00000234u, 0x00000233u, 0x00070050u, 0x0000000cu, 0x00000263u, 0x00000234u, + 0x00000234u, 0x00000234u, 0x00000234u, 0x000500c2u, 0x0000000cu, 0x00000264u, 0x00000263u, 0x00000063u, + 0x000500c7u, 0x0000000cu, 0x00000265u, 0x00000264u, 0x00000066u, 0x00050080u, 0x0000000cu, 0x00000238u, + 0x000002d9u, 0x00000265u, 0x00050080u, 0x0000002au, 0x0000023bu, 0x000002d8u, 0x00000046u, 0x000200f9u, + 0x00000228u, 0x000200f8u, 0x0000023cu, 0x000300f7u, 0x00000255u, 0x00000000u, 0x000400fau, 0x0000009eu, + 0x0000023du, 0x0000024fu, 0x000200f8u, 0x0000023du, 0x00050084u, 0x00000006u, 0x00000240u, 0x00000183u, + 0x000000a4u, 0x00050080u, 0x00000006u, 0x00000243u, 0x00000240u, 0x00000180u, 0x0003003eu, 0x00000224u, + 0x000000a7u, 0x00050041u, 0x00000007u, 0x00000244u, 0x00000224u, 0x00000243u, 0x0004003du, 0x00000006u, + 0x00000245u, 0x00000244u, 0x00050084u, 0x00000006u, 0x00000246u, 0x00000245u, 0x000000b2u, 0x00050084u, + 0x0000000cu, 0x00000249u, 0x000002f1u, 0x000002d9u, 0x00070050u, 0x0000000cu, 0x0000024bu, 0x00000246u, + 0x00000246u, 0x00000246u, 0x00000246u, 0x00050080u, 0x0000000cu, 0x0000024cu, 0x00000249u, 0x0000024bu, + 0x00070050u, 0x0000000cu, 0x0000024du, 0x000000bdu, 0x000000bdu, 0x000000bdu, 0x000000bdu, 0x00050086u, + 0x0000000cu, 0x0000024eu, 0x0000024cu, 0x0000024du, 0x000200f9u, 0x00000255u, 0x000200f8u, 0x0000024fu, + 0x00070050u, 0x0000000cu, 0x00000251u, 0x000000c3u, 0x000000c3u, 0x000000c3u, 0x000000c3u, 0x00050080u, + 0x0000000cu, 0x00000252u, 0x000002d9u, 0x00000251u, 0x00070050u, 0x0000000cu, 0x00000253u, 0x000000c6u, + 0x000000c6u, 0x000000c6u, 0x000000c6u, 0x00050086u, 0x0000000cu, 0x00000254u, 0x00000252u, 0x00000253u, + 0x000200f9u, 0x00000255u, 0x000200f8u, 0x00000255u, 0x000700f5u, 0x0000000cu, 0x000002dau, 0x0000024eu, + 0x0000023du, 0x00000254u, 0x0000024fu, 0x00050051u, 0x00000006u, 0x00000269u, 0x000002dau, 0x00000000u, + 0x000500c4u, 0x00000006u, 0x0000026au, 0x00000269u, 0x00000060u, 0x00050051u, 0x00000006u, 0x0000026cu, + 0x000002dau, 0x00000001u, 0x000500c4u, 0x00000006u, 0x0000026du, 0x0000026cu, 0x00000061u, 0x000500c5u, + 0x00000006u, 0x0000026eu, 0x0000026au, 0x0000026du, 0x00050051u, 0x00000006u, 0x00000270u, 0x000002dau, + 0x00000002u, 0x000500c4u, 0x00000006u, 0x00000271u, 0x00000270u, 0x00000062u, 0x000500c5u, 0x00000006u, + 0x00000272u, 0x0000026eu, 0x00000271u, 0x00050051u, 0x00000006u, 0x00000274u, 0x000002dau, 0x00000003u, + 0x000500c5u, 0x00000006u, 0x00000275u, 0x00000272u, 0x00000274u, 0x00040071u, 0x00000087u, 0x0000025au, + 0x00000275u, 0x00060041u, 0x00000093u, 0x0000025bu, 0x000000d0u, 0x0000002du, 0x000001aau, 0x0003003eu, + 0x0000025bu, 0x0000025au, 0x00060041u, 0x00000093u, 0x0000025fu, 0x000000d8u, 0x0000002du, 0x000001aau, + 0x0003003eu, 0x0000025fu, 0x0000025au, 0x000200f9u, 0x0000019au, 0x000200f8u, 0x00000199u, 0x000500c7u, + 0x00000006u, 0x000001b8u, 0x0000015du, 0x000001b6u, 0x000200f9u, 0x0000027du, 0x000200f8u, 0x0000027du, + 0x000700f5u, 0x0000000cu, 0x000002d7u, 0x0000007du, 0x00000199u, 0x0000028cu, 0x00000281u, 0x000700f5u, + 0x0000002au, 0x000002d6u, 0x0000002du, 0x00000199u, 0x0000028fu, 0x00000281u, 0x000500b1u, 0x00000035u, + 0x00000280u, 0x000002d6u, 0x00000034u, 0x000400f6u, 0x00000290u, 0x00000281u, 0x00000000u, 0x000400fau, + 0x00000280u, 0x00000281u, 0x00000290u, 0x000200f8u, 0x00000281u, 0x00050084u, 0x0000002au, 0x00000284u, + 0x000002d6u, 0x00000116u, 0x0004007cu, 0x00000006u, 0x00000285u, 0x00000284u, 0x00050080u, 0x00000006u, + 0x00000286u, 0x000001b8u, 0x00000285u, 0x00060041u, 0x0000011au, 0x00000287u, 0x00000112u, 0x0000002du, + 0x00000286u, 0x0004003du, 0x00000006u, 0x00000288u, 0x00000287u, 0x00070050u, 0x0000000cu, 0x000002a1u, + 0x00000288u, 0x00000288u, 0x00000288u, 0x00000288u, 0x000500c2u, 0x0000000cu, 0x000002a2u, 0x000002a1u, + 0x000000edu, 0x000500c7u, 0x0000000cu, 0x000002a3u, 0x000002a2u, 0x000000f0u, 0x00050080u, 0x0000000cu, + 0x0000028cu, 0x000002d7u, 0x000002a3u, 0x00050080u, 0x0000002au, 0x0000028fu, 0x000002d6u, 0x00000046u, + 0x000200f9u, 0x0000027du, 0x000200f8u, 0x00000290u, 0x00070050u, 0x0000000cu, 0x00000292u, 0x00000126u, + 0x00000126u, 0x00000126u, 0x00000126u, 0x00050080u, 0x0000000cu, 0x00000293u, 0x000002d7u, 0x00000292u, + 0x00070050u, 0x0000000cu, 0x00000294u, 0x00000129u, 0x00000129u, 0x00000129u, 0x00000129u, 0x00050086u, + 0x0000000cu, 0x00000295u, 0x00000293u, 0x00000294u, 0x00050051u, 0x00000006u, 0x000002a7u, 0x00000295u, + 0x00000000u, 0x000500c4u, 0x00000006u, 0x000002a8u, 0x000002a7u, 0x000000ecu, 0x00050051u, 0x00000006u, + 0x000002aau, 0x00000295u, 0x00000001u, 0x000500c4u, 0x00000006u, 0x000002abu, 0x000002aau, 0x000000a2u, + 0x000500c5u, 0x00000006u, 0x000002acu, 0x000002a8u, 0x000002abu, 0x00050051u, 0x00000006u, 0x000002aeu, + 0x00000295u, 0x00000002u, 0x000500c4u, 0x00000006u, 0x000002afu, 0x000002aeu, 0x000000b4u, 0x000500c5u, + 0x00000006u, 0x000002b0u, 0x000002acu, 0x000002afu, 0x00050051u, 0x00000006u, 0x000002b2u, 0x00000295u, + 0x00000003u, 0x000500c4u, 0x00000006u, 0x000002b3u, 0x000002b2u, 0x00000029u, 0x000500c5u, 0x00000006u, + 0x000002b4u, 0x000002b0u, 0x000002b3u, 0x00060041u, 0x0000011au, 0x0000029au, 0x00000133u, 0x0000002du, + 0x000001b8u, 0x0003003eu, 0x0000029au, 0x000002b4u, 0x00060041u, 0x0000011au, 0x0000029du, 0x0000013au, + 0x0000002du, 0x000001b8u, 0x0003003eu, 0x0000029du, 0x000002b4u, 0x000200f9u, 0x0000019au, 0x000200f8u, + 0x0000019au, 0x000b00f5u, 0x00000006u, 0x000002deu, 0x0000015du, 0x00000194u, 0x000001a0u, 0x00000213u, + 0x000001aau, 0x00000255u, 0x000001b8u, 0x00000290u, 0x000200f9u, 0x00000195u, 0x000200f8u, 0x00000195u, + 0x000700f5u, 0x00000006u, 0x000002ddu, 0x0000015du, 0x00000173u, 0x000002deu, 0x0000019au, 0x000300f7u, + 0x000001c0u, 0x00000000u, 0x000400fau, 0x000001beu, 0x000001bfu, 0x000001c0u, 0x000200f8u, 0x000001bfu, + 0x000300e1u, 0x00000062u, 0x000001c1u, 0x000300f7u, 0x000001c4u, 0x00000000u, 0x000400fau, 0x0000018eu, + 0x000001c3u, 0x000001c4u, 0x000200f8u, 0x000001c3u, 0x000300f7u, 0x000001c8u, 0x00000000u, 0x000900fbu, + 0x00000196u, 0x000001c8u, 0x00000000u, 0x000001c5u, 0x00000001u, 0x000001c6u, 0x00000002u, 0x000001c7u, + 0x000200f8u, 0x000001c5u, 0x00050080u, 0x00000006u, 0x000001cbu, 0x000002ddu, 0x000001cau, 0x00060041u, + 0x0000003eu, 0x000001cdu, 0x00000059u, 0x0000002du, 0x000001cbu, 0x0003003eu, 0x000001cdu, 0x000002efu, + 0x000200f9u, 0x000001c8u, 0x000200f8u, 0x000001c6u, 0x00050080u, 0x00000006u, 0x000001d2u, 0x000002ddu, + 0x000001d1u, 0x00060041u, 0x00000093u, 0x000001d5u, 0x000000d0u, 0x0000002du, 0x000001d2u, 0x0003003eu, + 0x000001d5u, 0x000002f0u, 0x000200f9u, 0x000001c8u, 0x000200f8u, 0x000001c7u, 0x00050080u, 0x00000006u, + 0x000001dau, 0x000002ddu, 0x000001d9u, 0x00060041u, 0x0000011au, 0x000001dcu, 0x00000133u, 0x0000002du, + 0x000001dau, 0x0003003eu, 0x000001dcu, 0x000001dbu, 0x000200f9u, 0x000001c8u, 0x000200f8u, 0x000001c8u, + 0x000200f9u, 0x000001c4u, 0x000200f8u, 0x000001c4u, 0x000200f9u, 0x000001c0u, 0x000200f8u, 0x000001c0u, + 0x000300f7u, 0x000001e2u, 0x00000000u, 0x000400fau, 0x000001e0u, 0x000001e1u, 0x000001e2u, 0x000200f8u, + 0x000001e1u, 0x000300f7u, 0x000001e5u, 0x00000000u, 0x000400fau, 0x00000192u, 0x000001e4u, 0x000001e5u, + 0x000200f8u, 0x000001e4u, 0x000500c7u, 0x00000006u, 0x000001e8u, 0x00000158u, 0x000001e6u, 0x000500c6u, + 0x00000006u, 0x000001eau, 0x000001e8u, 0x00000062u, 0x00060041u, 0x00000093u, 0x000002b8u, 0x0000008bu, + 0x0000002du, 0x000001eau, 0x0004003du, 0x00000087u, 0x000002b9u, 0x000002b8u, 0x00040071u, 0x00000006u, + 0x000002bau, 0x000002b9u, 0x00040071u, 0x00000087u, 0x000002bdu, 0x000002bau, 0x00060041u, 0x00000093u, + 0x000002beu, 0x000000d0u, 0x0000002du, 0x000001eau, 0x0003003eu, 0x000002beu, 0x000002bdu, 0x00060041u, + 0x00000093u, 0x000002c2u, 0x000000d8u, 0x0000002du, 0x000001eau, 0x0003003eu, 0x000002c2u, 0x000002bdu, + 0x000200f9u, 0x000001e5u, 0x000200f8u, 0x000001e5u, 0x000700f5u, 0x00000006u, 0x000002edu, 0x00000158u, + 0x000001e1u, 0x000001eau, 0x000001e4u, 0x000300f7u, 0x000001efu, 0x00000000u, 0x000400fau, 0x000001beu, + 0x000001eeu, 0x000001efu, 0x000200f8u, 0x000001eeu, 0x000300e1u, 0x00000062u, 0x000001c1u, 0x000300f7u, + 0x000001f2u, 0x00000000u, 0x000400fau, 0x00000192u, 0x000001f1u, 0x000001f2u, 0x000200f8u, 0x000001f1u, + 0x00050080u, 0x00000006u, 0x000001f6u, 0x000002edu, 0x000001f5u, 0x00060041u, 0x00000093u, 0x000001f8u, + 0x000000d0u, 0x0000002du, 0x000001f6u, 0x0003003eu, 0x000001f8u, 0x000002f0u, 0x000200f9u, 0x000001f2u, + 0x000200f8u, 0x000001f2u, 0x000200f9u, 0x000001efu, 0x000200f8u, 0x000001efu, 0x000200f9u, 0x000001e2u, + 0x000200f8u, 0x000001e2u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000019u, + 0x00000000u, 0x00020011u, 0x00000001u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, + 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0006000fu, 0x00000005u, 0x00000004u, 0x6e69616du, + 0x00000000u, 0x0000000fu, 0x00060010u, 0x00000004u, 0x00000011u, 0x00000001u, 0x00000001u, 0x00000001u, + 0x00040047u, 0x00000007u, 0x00000006u, 0x00000004u, 0x00040048u, 0x00000008u, 0x00000000u, 0x00000019u, + 0x00050048u, 0x00000008u, 0x00000000u, 0x00000023u, 0x00000000u, 0x00030047u, 0x00000008u, 0x00000002u, + 0x00040047u, 0x0000000au, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000000au, 0x00000021u, 0x00000000u, + 0x00040047u, 0x0000000fu, 0x0000000bu, 0x0000001cu, 0x00040047u, 0x00000016u, 0x00000001u, 0x00000000u, + 0x00040047u, 0x00000018u, 0x0000000bu, 0x00000019u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, + 0x00000002u, 0x00040015u, 0x00000006u, 0x00000020u, 0x00000000u, 0x0003001du, 0x00000007u, 0x00000006u, + 0x0003001eu, 0x00000008u, 0x00000007u, 0x00040020u, 0x00000009u, 0x0000000cu, 0x00000008u, 0x0004003bu, + 0x00000009u, 0x0000000au, 0x0000000cu, 0x00040015u, 0x0000000bu, 0x00000020u, 0x00000001u, 0x0004002bu, + 0x0000000bu, 0x0000000cu, 0x00000000u, 0x00040017u, 0x0000000du, 0x00000006u, 0x00000003u, 0x00040020u, + 0x0000000eu, 0x00000001u, 0x0000000du, 0x0004003bu, 0x0000000eu, 0x0000000fu, 0x00000001u, 0x0004002bu, + 0x00000006u, 0x00000010u, 0x00000000u, 0x00040020u, 0x00000011u, 0x00000001u, 0x00000006u, 0x00040020u, + 0x00000014u, 0x0000000cu, 0x00000006u, 0x00040032u, 0x00000006u, 0x00000016u, 0x00000001u, 0x0004002bu, + 0x00000006u, 0x00000017u, 0x00000001u, 0x00060033u, 0x0000000du, 0x00000018u, 0x00000016u, 0x00000017u, + 0x00000017u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, + 0x00050041u, 0x00000011u, 0x00000012u, 0x0000000fu, 0x00000010u, 0x0004003du, 0x00000006u, 0x00000013u, + 0x00000012u, 0x00060041u, 0x00000014u, 0x00000015u, 0x0000000au, 0x0000000cu, 0x00000013u, 0x0003003eu, + 0x00000015u, 0x00000010u, 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x0000003fu, + 0x00000000u, 0x00020011u, 0x00000001u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, + 0x00000000u, 0x0003000eu, 0x00000000u, 0x00000001u, 0x0008000fu, 0x00000000u, 0x00000004u, 0x6e69616du, + 0x00000000u, 0x00000008u, 0x00000016u, 0x0000002bu, 0x00040047u, 0x00000008u, 0x0000000bu, 0x0000002au, + 0x00050048u, 0x00000014u, 0x00000000u, 0x0000000bu, 0x00000000u, 0x00050048u, 0x00000014u, 0x00000001u, + 0x0000000bu, 0x00000001u, 0x00050048u, 0x00000014u, 0x00000002u, 0x0000000bu, 0x00000003u, 0x00050048u, + 0x00000014u, 0x00000003u, 0x0000000bu, 0x00000004u, 0x00030047u, 0x00000014u, 0x00000002u, 0x00040047u, + 0x0000002bu, 0x0000001eu, 0x00000000u, 0x00050048u, 0x00000037u, 0x00000000u, 0x00000023u, 0x00000000u, + 0x00030047u, 0x00000037u, 0x00000002u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, 0x00000002u, + 0x00040015u, 0x00000006u, 0x00000020u, 0x00000001u, 0x00040020u, 0x00000007u, 0x00000001u, 0x00000006u, + 0x0004003bu, 0x00000007u, 0x00000008u, 0x00000001u, 0x0004002bu, 0x00000006u, 0x0000000au, 0x00000000u, + 0x00020014u, 0x0000000bu, 0x00030016u, 0x0000000fu, 0x00000020u, 0x00040017u, 0x00000010u, 0x0000000fu, + 0x00000004u, 0x00040015u, 0x00000011u, 0x00000020u, 0x00000000u, 0x0004002bu, 0x00000011u, 0x00000012u, + 0x00000001u, 0x0004001cu, 0x00000013u, 0x0000000fu, 0x00000012u, 0x0006001eu, 0x00000014u, 0x00000010u, + 0x0000000fu, 0x00000013u, 0x00000013u, 0x00040020u, 0x00000015u, 0x00000003u, 0x00000014u, 0x0004003bu, + 0x00000015u, 0x00000016u, 0x00000003u, 0x0004002bu, 0x0000000fu, 0x00000017u, 0xbf800000u, 0x0004002bu, + 0x0000000fu, 0x00000018u, 0x00000000u, 0x0004002bu, 0x0000000fu, 0x00000019u, 0x3f800000u, 0x0007002cu, + 0x00000010u, 0x0000001au, 0x00000017u, 0x00000017u, 0x00000018u, 0x00000019u, 0x00040020u, 0x0000001bu, + 0x00000003u, 0x00000010u, 0x0004002bu, 0x00000006u, 0x0000001fu, 0x00000001u, 0x0004002bu, 0x0000000fu, + 0x00000023u, 0x40400000u, 0x0007002cu, 0x00000010u, 0x00000024u, 0x00000017u, 0x00000023u, 0x00000018u, + 0x00000019u, 0x0007002cu, 0x00000010u, 0x00000027u, 0x00000023u, 0x00000017u, 0x00000018u, 0x00000019u, + 0x00040017u, 0x00000029u, 0x0000000fu, 0x00000002u, 0x00040020u, 0x0000002au, 0x00000003u, 0x00000029u, + 0x0004003bu, 0x0000002au, 0x0000002bu, 0x00000003u, 0x0004002bu, 0x00000011u, 0x0000002cu, 0x00000000u, + 0x00040020u, 0x0000002du, 0x00000003u, 0x0000000fu, 0x0004002bu, 0x0000000fu, 0x00000030u, 0x3f000000u, + 0x0003001eu, 0x00000037u, 0x0000000fu, 0x00040020u, 0x00000038u, 0x00000009u, 0x00000037u, 0x0004003bu, + 0x00000038u, 0x00000039u, 0x00000009u, 0x00040020u, 0x0000003au, 0x00000009u, 0x0000000fu, 0x00050036u, + 0x00000002u, 0x00000004u, 0x00000000u, 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003du, 0x00000006u, + 0x00000009u, 0x00000008u, 0x000500aau, 0x0000000bu, 0x0000000cu, 0x00000009u, 0x0000000au, 0x000300f7u, + 0x0000000eu, 0x00000000u, 0x000400fau, 0x0000000cu, 0x0000000du, 0x0000001du, 0x000200f8u, 0x0000000du, + 0x00050041u, 0x0000001bu, 0x0000001cu, 0x00000016u, 0x0000000au, 0x0003003eu, 0x0000001cu, 0x0000001au, + 0x000200f9u, 0x0000000eu, 0x000200f8u, 0x0000001du, 0x000500aau, 0x0000000bu, 0x00000020u, 0x00000009u, + 0x0000001fu, 0x000300f7u, 0x00000022u, 0x00000000u, 0x000400fau, 0x00000020u, 0x00000021u, 0x00000026u, + 0x000200f8u, 0x00000021u, 0x00050041u, 0x0000001bu, 0x00000025u, 0x00000016u, 0x0000000au, 0x0003003eu, + 0x00000025u, 0x00000024u, 0x000200f9u, 0x00000022u, 0x000200f8u, 0x00000026u, 0x00050041u, 0x0000001bu, + 0x00000028u, 0x00000016u, 0x0000000au, 0x0003003eu, 0x00000028u, 0x00000027u, 0x000200f9u, 0x00000022u, + 0x000200f8u, 0x00000022u, 0x000200f9u, 0x0000000eu, 0x000200f8u, 0x0000000eu, 0x00060041u, 0x0000002du, + 0x0000002eu, 0x00000016u, 0x0000000au, 0x0000002cu, 0x0004003du, 0x0000000fu, 0x0000002fu, 0x0000002eu, + 0x0008000cu, 0x0000000fu, 0x00000032u, 0x00000001u, 0x00000032u, 0x0000002fu, 0x00000030u, 0x00000030u, + 0x00060041u, 0x0000002du, 0x00000033u, 0x00000016u, 0x0000000au, 0x00000012u, 0x0004003du, 0x0000000fu, + 0x00000034u, 0x00000033u, 0x0008000cu, 0x0000000fu, 0x00000036u, 0x00000001u, 0x00000032u, 0x00000034u, + 0x00000030u, 0x00000030u, 0x00050041u, 0x0000003au, 0x0000003bu, 0x00000039u, 0x0000000au, 0x0004003du, + 0x0000000fu, 0x0000003cu, 0x0000003bu, 0x00050081u, 0x0000000fu, 0x0000003du, 0x00000036u, 0x0000003cu, + 0x00050050u, 0x00000029u, 0x0000003eu, 0x00000032u, 0x0000003du, 0x0003003eu, 0x0000002bu, 0x0000003eu, + 0x000100fdu, 0x00010038u, 0x07230203u, 0x00010300u, 0x000d000bu, 0x00000015u, 0x00000000u, 0x00020011u, + 0x00000001u, 0x0006000bu, 0x00000001u, 0x4c534c47u, 0x6474732eu, 0x3035342eu, 0x00000000u, 0x0003000eu, + 0x00000000u, 0x00000001u, 0x0007000fu, 0x00000004u, 0x00000004u, 0x6e69616du, 0x00000000u, 0x00000009u, + 0x00000011u, 0x00030010u, 0x00000004u, 0x00000007u, 0x00040047u, 0x00000009u, 0x0000001eu, 0x00000000u, + 0x00040047u, 0x0000000du, 0x00000022u, 0x00000000u, 0x00040047u, 0x0000000du, 0x00000021u, 0x00000000u, + 0x00040047u, 0x00000011u, 0x0000001eu, 0x00000000u, 0x00020013u, 0x00000002u, 0x00030021u, 0x00000003u, + 0x00000002u, 0x00030016u, 0x00000006u, 0x00000020u, 0x00040017u, 0x00000007u, 0x00000006u, 0x00000004u, + 0x00040020u, 0x00000008u, 0x00000003u, 0x00000007u, 0x0004003bu, 0x00000008u, 0x00000009u, 0x00000003u, + 0x00090019u, 0x0000000au, 0x00000006u, 0x00000001u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000001u, + 0x00000000u, 0x0003001bu, 0x0000000bu, 0x0000000au, 0x00040020u, 0x0000000cu, 0x00000000u, 0x0000000bu, + 0x0004003bu, 0x0000000cu, 0x0000000du, 0x00000000u, 0x00040017u, 0x0000000fu, 0x00000006u, 0x00000002u, + 0x00040020u, 0x00000010u, 0x00000001u, 0x0000000fu, 0x0004003bu, 0x00000010u, 0x00000011u, 0x00000001u, + 0x0004002bu, 0x00000006u, 0x00000013u, 0x00000000u, 0x00050036u, 0x00000002u, 0x00000004u, 0x00000000u, + 0x00000003u, 0x000200f8u, 0x00000005u, 0x0004003du, 0x0000000bu, 0x0000000eu, 0x0000000du, 0x0004003du, + 0x0000000fu, 0x00000012u, 0x00000011u, 0x00070058u, 0x00000007u, 0x00000014u, 0x0000000eu, 0x00000012u, + 0x00000002u, 0x00000013u, 0x0003003eu, 0x00000009u, 0x00000014u, 0x000100fdu, 0x00010038u, +}; + +static const uint8_t reflection_bank[] = +{ + 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, + 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, + 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x1b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x1b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x1b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x1b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x64, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, + 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x18, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, + 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, + 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x52, 0x00, 0x41, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +template +template +Shaders::Shaders(Device &device, Layout &layout, const Resolver &resolver) +{ + (void)resolver; + layout.unserialize(reflection_bank + 0, 348); + this->tmem_update = device.request_program(spirv_bank + 0, 16788, &layout); + layout.unserialize(reflection_bank + 348, 348); + this->span_setup = device.request_program(spirv_bank + 4197, 9180, &layout); + layout.unserialize(reflection_bank + 696, 348); + this->clear_indirect_buffer = device.request_program(spirv_bank + 6492, 684, &layout); + if (resolver("tile_binning_combined", "SUBGROUP") == 0 && + resolver("tile_binning_combined", "UBERSHADER") == 0 && + resolver("tile_binning_combined", "SMALL_TYPES") == 0) + { + layout.unserialize(reflection_bank + 1044, 348); + this->tile_binning_combined = device.request_program(spirv_bank + 6663, 14152, &layout); + } + if (resolver("tile_binning_combined", "SUBGROUP") == 1 && + resolver("tile_binning_combined", "UBERSHADER") == 0 && + resolver("tile_binning_combined", "SMALL_TYPES") == 0) + { + layout.unserialize(reflection_bank + 1392, 348); + this->tile_binning_combined = device.request_program(spirv_bank + 10201, 14940, &layout); + } + if (resolver("tile_binning_combined", "SUBGROUP") == 0 && + resolver("tile_binning_combined", "UBERSHADER") == 1 && + resolver("tile_binning_combined", "SMALL_TYPES") == 0) + { + layout.unserialize(reflection_bank + 1740, 348); + this->tile_binning_combined = device.request_program(spirv_bank + 13936, 12356, &layout); + } + if (resolver("tile_binning_combined", "SUBGROUP") == 1 && + resolver("tile_binning_combined", "UBERSHADER") == 1 && + resolver("tile_binning_combined", "SMALL_TYPES") == 0) + { + layout.unserialize(reflection_bank + 2088, 348); + this->tile_binning_combined = device.request_program(spirv_bank + 17025, 12580, &layout); + } + if (resolver("tile_binning_combined", "SUBGROUP") == 0 && + resolver("tile_binning_combined", "UBERSHADER") == 0 && + resolver("tile_binning_combined", "SMALL_TYPES") == 1) + { + layout.unserialize(reflection_bank + 2436, 348); + this->tile_binning_combined = device.request_program(spirv_bank + 20170, 13704, &layout); + } + if (resolver("tile_binning_combined", "SUBGROUP") == 1 && + resolver("tile_binning_combined", "UBERSHADER") == 0 && + resolver("tile_binning_combined", "SMALL_TYPES") == 1) + { + layout.unserialize(reflection_bank + 2784, 348); + this->tile_binning_combined = device.request_program(spirv_bank + 23596, 14492, &layout); + } + if (resolver("tile_binning_combined", "SUBGROUP") == 0 && + resolver("tile_binning_combined", "UBERSHADER") == 1 && + resolver("tile_binning_combined", "SMALL_TYPES") == 1) + { + layout.unserialize(reflection_bank + 3132, 348); + this->tile_binning_combined = device.request_program(spirv_bank + 27219, 11892, &layout); + } + if (resolver("tile_binning_combined", "SUBGROUP") == 1 && + resolver("tile_binning_combined", "UBERSHADER") == 1 && + resolver("tile_binning_combined", "SMALL_TYPES") == 1) + { + layout.unserialize(reflection_bank + 3480, 348); + this->tile_binning_combined = device.request_program(spirv_bank + 30192, 12116, &layout); + } + if (resolver("ubershader", "SUBGROUP") == 0 && + resolver("ubershader", "SMALL_TYPES") == 0) + { + layout.unserialize(reflection_bank + 3828, 348); + this->ubershader = device.request_program(spirv_bank + 33221, 212168, &layout); + } + if (resolver("ubershader", "SUBGROUP") == 1 && + resolver("ubershader", "SMALL_TYPES") == 0) + { + layout.unserialize(reflection_bank + 4176, 348); + this->ubershader = device.request_program(spirv_bank + 86263, 212444, &layout); + } + if (resolver("ubershader", "SUBGROUP") == 0 && + resolver("ubershader", "SMALL_TYPES") == 1) + { + layout.unserialize(reflection_bank + 4524, 348); + this->ubershader = device.request_program(spirv_bank + 139374, 223464, &layout); + } + if (resolver("ubershader", "SUBGROUP") == 1 && + resolver("ubershader", "SMALL_TYPES") == 1) + { + layout.unserialize(reflection_bank + 4872, 348); + this->ubershader = device.request_program(spirv_bank + 195240, 223740, &layout); + } + if (resolver("depth_blend", "SUBGROUP") == 0 && + resolver("depth_blend", "SMALL_TYPES") == 0) + { + layout.unserialize(reflection_bank + 5220, 348); + this->depth_blend = device.request_program(spirv_bank + 251175, 34348, &layout); + } + if (resolver("depth_blend", "SUBGROUP") == 1 && + resolver("depth_blend", "SMALL_TYPES") == 0) + { + layout.unserialize(reflection_bank + 5568, 348); + this->depth_blend = device.request_program(spirv_bank + 259762, 34624, &layout); + } + if (resolver("depth_blend", "SUBGROUP") == 0 && + resolver("depth_blend", "SMALL_TYPES") == 1) + { + layout.unserialize(reflection_bank + 5916, 348); + this->depth_blend = device.request_program(spirv_bank + 268418, 35440, &layout); + } + if (resolver("depth_blend", "SUBGROUP") == 1 && + resolver("depth_blend", "SMALL_TYPES") == 1) + { + layout.unserialize(reflection_bank + 6264, 348); + this->depth_blend = device.request_program(spirv_bank + 277278, 35716, &layout); + } + if (resolver("rasterizer", "SMALL_TYPES") == 0) + { + layout.unserialize(reflection_bank + 6612, 348); + this->rasterizer = device.request_program(spirv_bank + 286207, 182324, &layout); + } + if (resolver("rasterizer", "SMALL_TYPES") == 1) + { + layout.unserialize(reflection_bank + 6960, 348); + this->rasterizer = device.request_program(spirv_bank + 331788, 193596, &layout); + } + layout.unserialize(reflection_bank + 7308, 348); + this->fullscreen = device.request_shader(spirv_bank + 380187, 928, &layout); + layout.unserialize(reflection_bank + 7656, 348); + this->vi_scale = device.request_shader(spirv_bank + 380419, 6676, &layout); + layout.unserialize(reflection_bank + 8004, 348); + this->vi_divot[0] = device.request_shader(spirv_bank + 382088, 1772, &layout); + layout.unserialize(reflection_bank + 8352, 348); + this->vi_divot[1] = device.request_shader(spirv_bank + 382531, 2848, &layout); + layout.unserialize(reflection_bank + 8700, 348); + this->vi_fetch[0] = device.request_shader(spirv_bank + 383243, 5908, &layout); + layout.unserialize(reflection_bank + 9048, 348); + this->vi_fetch[1] = device.request_shader(spirv_bank + 384720, 7748, &layout); + layout.unserialize(reflection_bank + 9396, 348); + this->vi_blend_fields = device.request_shader(spirv_bank + 386657, 756, &layout); + layout.unserialize(reflection_bank + 9744, 348); + this->extract_vram = device.request_program(spirv_bank + 386846, 3720, &layout); + layout.unserialize(reflection_bank + 10092, 348); + this->masked_rdram_resolve = device.request_program(spirv_bank + 387776, 1876, &layout); + layout.unserialize(reflection_bank + 10440, 348); + this->clear_write_mask = device.request_program(spirv_bank + 388245, 1092, &layout); + layout.unserialize(reflection_bank + 10788, 348); + this->update_upscaled_domain_post = device.request_program(spirv_bank + 388518, 2764, &layout); + layout.unserialize(reflection_bank + 11136, 348); + this->update_upscaled_domain_pre = device.request_program(spirv_bank + 389209, 6092, &layout); + layout.unserialize(reflection_bank + 11484, 348); + this->update_upscaled_domain_resolve = device.request_program(spirv_bank + 390732, 7872, &layout); + layout.unserialize(reflection_bank + 11832, 348); + this->clear_super_sampled_write_mask = device.request_program(spirv_bank + 392700, 640, &layout); + layout.unserialize(reflection_bank + 12180, 348); + this->vi_deinterlace_vert = device.request_shader(spirv_bank + 392860, 1368, &layout); + layout.unserialize(reflection_bank + 12528, 348); + this->vi_deinterlace_frag = device.request_shader(spirv_bank + 393202, 500, &layout); +} +} +#endif diff --git a/parallel-rdp/shaders/slangmosh.json b/parallel-rdp/shaders/slangmosh.json new file mode 100644 index 00000000..d9e0f541 --- /dev/null +++ b/parallel-rdp/shaders/slangmosh.json @@ -0,0 +1,126 @@ +{ + "include": [ "../../Granite/assets/shaders/inc" ], + "shaders": [ + { + "name": "tmem_update", + "compute": true, + "path": "tmem_update.comp" + }, + { + + "name": "span_setup", + "compute": true, + "path": "span_setup.comp" + }, + { + "name": "clear_indirect_buffer", + "compute": true, + "path": "clear_indirect_buffer.comp" + }, + { + "name": "tile_binning_combined", + "compute": true, + "path": "tile_binning_combined.comp", + "variants": [ + { "define": "SUBGROUP", "count": 2, "resolve": true }, + { "define": "UBERSHADER", "count": 2, "resolve": true }, + { "define": "SMALL_TYPES", "count": 2, "resolve": true } + ] + }, + { + "name": "ubershader", + "path": "ubershader.comp", + "compute": true, + "variants": [ + { "define": "SUBGROUP", "count": 2, "resolve": true }, + { "define": "SMALL_TYPES", "count": 2, "resolve": true } + ] + }, + { + "name": "depth_blend", + "path": "depth_blend.comp", + "compute": true, + "variants": [ + { "define": "SUBGROUP", "count": 2, "resolve": true }, + { "define": "SMALL_TYPES", "count": 2, "resolve": true } + ] + }, + { + "name": "rasterizer", + "path": "rasterizer.comp", + "compute": true, + "variants": [ + { "define": "SMALL_TYPES", "count": 2, "resolve": true } + ] + }, + { + "name": "fullscreen", + "path": "fullscreen.vert" + }, + { + "name": "vi_scale", + "path": "vi_scale.frag" + }, + { + "name": "vi_divot", + "path": "vi_divot.frag", + "variants": [ + { "define": "FETCH_BUG", "count": 2 } + ] + }, + { + "name": "vi_fetch", + "path": "vi_fetch.frag", + "variants": [ + { "define": "FETCH_BUG", "count": 2 } + ] + }, + { + "name": "vi_blend_fields", + "path": "vi_blend_fields.frag" + }, + { + "name": "extract_vram", + "path": "extract_vram.comp", + "compute": true + }, + { + "name": "masked_rdram_resolve", + "path": "masked_rdram_resolve.comp", + "compute": true + }, + { + "name": "clear_write_mask", + "path": "clear_write_mask.comp", + "compute": true + }, + { + "name": "update_upscaled_domain_post", + "path": "update_upscaled_domain_post.comp", + "compute": true + }, + { + "name": "update_upscaled_domain_pre", + "path": "update_upscaled_domain_pre.comp", + "compute": true + }, + { + "name": "update_upscaled_domain_resolve", + "path": "update_upscaled_domain_resolve.comp", + "compute": true + }, + { + "name": "clear_super_sampled_write_mask", + "path": "clear_super_sampled_write_mask.comp", + "compute": true + }, + { + "name": "vi_deinterlace_vert", + "path": "vi_deinterlace.vert" + }, + { + "name": "vi_deinterlace_frag", + "path": "vi_deinterlace.frag" + } + ] +} diff --git a/parallel-rdp/shaders/small_types.h b/parallel-rdp/shaders/small_types.h new file mode 100644 index 00000000..e7206f39 --- /dev/null +++ b/parallel-rdp/shaders/small_types.h @@ -0,0 +1,121 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +// Utility header to smooth over the difference between +// 8/16-bit integer arithmetic vs. just 8/16-bit storage. + +#ifndef SMALL_INTEGERS_H_ +#define SMALL_INTEGERS_H_ + +#extension GL_EXT_shader_16bit_storage : require +#extension GL_EXT_shader_8bit_storage : require + +#if SMALL_TYPES +#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require +#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require + +#define mem_u8 uint8_t +#define mem_u16 uint16_t +#define mem_u8x2 u8vec2 +#define mem_u16x2 u16vec2 +#define mem_u8x3 u8vec3 +#define mem_u16x3 u16vec3 +#define mem_u8x4 u8vec4 +#define mem_u16x4 u16vec4 + +#define mem_i8 int8_t +#define mem_i16 int16_t +#define mem_i8x2 i8vec2 +#define mem_i16x2 i16vec2 +#define mem_i8x3 i8vec3 +#define mem_i16x3 i16vec3 +#define mem_i8x4 i8vec4 +#define mem_i16x4 i16vec4 + +#define u8 uint8_t +#define u16 uint16_t +#define u8x2 u8vec2 +#define u16x2 u16vec2 +#define u8x3 u8vec3 +#define u16x3 u16vec3 +#define u8x4 u8vec4 +#define u16x4 u16vec4 + +#define i8 int8_t +#define i16 int16_t +#define i8x2 i8vec2 +#define i16x2 i16vec2 +#define i8x3 i8vec3 +#define i16x3 i16vec3 +#define i8x4 i8vec4 +#define i16x4 i16vec4 + +#define U8_C(x) uint8_t(x) +#define I8_C(x) int8_t(x) +#define U16_C(x) uint16_t(x) +#define I16_C(x) int16_t(x) + +#else + +#define mem_u8 uint8_t +#define mem_u16 uint16_t +#define mem_u8x2 u8vec2 +#define mem_u16x2 u16vec2 +#define mem_u8x3 u8vec3 +#define mem_u16x3 u16vec3 +#define mem_u8x4 u8vec4 +#define mem_u16x4 u16vec4 + +#define mem_i8 int8_t +#define mem_i16 int16_t +#define mem_i8x2 i8vec2 +#define mem_i16x2 i16vec2 +#define mem_i8x3 i8vec3 +#define mem_i16x3 i16vec3 +#define mem_i8x4 i8vec4 +#define mem_i16x4 i16vec4 + +#define u8 int +#define u16 int +#define u8x2 ivec2 +#define u16x2 ivec2 +#define u8x3 ivec3 +#define u16x3 ivec3 +#define u8x4 ivec4 +#define u16x4 ivec4 + +#define i8 int +#define i16 int +#define i8x2 ivec2 +#define i16x2 ivec2 +#define i8x3 ivec3 +#define i16x3 ivec3 +#define i8x4 ivec4 +#define i16x4 ivec4 + +#define U8_C(x) int(x) +#define I8_C(x) int(x) +#define U16_C(x) int(x) +#define I16_C(x) int(x) + +#endif +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/span_setup.comp b/parallel-rdp/shaders/span_setup.comp new file mode 100644 index 00000000..84480b9f --- /dev/null +++ b/parallel-rdp/shaders/span_setup.comp @@ -0,0 +1,227 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "small_types.h" +#include "debug.h" + +layout(local_size_x_id = 0) in; +layout(constant_id = 1) const int SCALING_LOG2 = 0; +const int SCALING_FACTOR = 1 << SCALING_LOG2; +#include "data_structures.h" + +layout(std430, set = 0, binding = 0) readonly buffer TriangleSetupBuffer +{ + TriangleSetupMem elems[]; +} triangle_setup; +#include "load_triangle_setup.h" + +layout(std430, set = 0, binding = 1) readonly buffer AttributeSetupBuffer +{ + AttributeSetupMem elems[]; +} attribute_setup; +#include "load_attribute_setup.h" + +layout(set = 0, binding = 2, std430) readonly buffer ScissorStateBuffer +{ + ScissorStateMem elems[]; +} scissor_state; +#include "load_scissor_state.h" + +layout(std430, set = 0, binding = 3) writeonly buffer SpanSetups +{ + SpanSetupMem elems[]; +} span_setups; +#include "store_span_setup.h" + +layout(set = 1, binding = 0) uniform utextureBuffer uInterpolationJobs; + +const int SUBPIXELS = 4; +const int SUBPIXELS_LOG2 = 2; + +// Convert a 16.16 signed value to 16.3. We have 8 subpixels in X direction after snapping. +ivec4 quantize_x(ivec4 x) +{ + ivec4 sticky = ivec4(notEqual(x & 0xfff, ivec4(0))); + ivec4 snapped = ivec4((x >> 12) | sticky); + return snapped; +} + +int min4(ivec4 v) +{ + ivec2 v2 = min(v.xy, v.zw); + return min(v2.x, v2.y); +} + +int max4(ivec4 v) +{ + ivec2 v2 = max(v.xy, v.zw); + return max(v2.x, v2.y); +} + +ivec4 interpolate_snapped(ivec4 dvalue, int dy) +{ + int dy_shifted = dy >> SCALING_LOG2; + int dy_masked = dy & (SCALING_FACTOR - 1); + return dy_shifted * dvalue + dy_masked * (dvalue >> SCALING_LOG2); +} + +void main() +{ + ivec3 job_indices = ivec3(texelFetch(uInterpolationJobs, int(gl_WorkGroupID.x)).xyz); + int primitive_index = job_indices.x; + int base_y = job_indices.y * SCALING_FACTOR; + int max_y = job_indices.z * SCALING_FACTOR + (SCALING_FACTOR - 1); + int y = base_y + int(gl_LocalInvocationIndex); + if (y > max_y) + return; + + TriangleSetup setup = load_triangle_setup(primitive_index); + AttributeSetup attr = load_attribute_setup(primitive_index); + ScissorState scissor = load_scissor_state(primitive_index); + + bool flip = (setup.flags & TRIANGLE_SETUP_FLIP_BIT) != 0; + bool interlace_en = (setup.flags & TRIANGLE_SETUP_INTERLACE_FIELD_BIT) != 0; + bool keep_odd_field = (setup.flags & TRIANGLE_SETUP_INTERLACE_KEEP_ODD_BIT) != 0; + + SpanSetup span_setup; + + // Interpolate RGBA, STZW to their scanline. + { + bool do_offset = (setup.flags & TRIANGLE_SETUP_DO_OFFSET_BIT) != 0; + bool skip_xfrac = (setup.flags & TRIANGLE_SETUP_SKIP_XFRAC_BIT) != 0; + int y_interpolation_base = int(setup.yh) >> 2; + y_interpolation_base *= SCALING_FACTOR; + + // For high-resolution interpolation, make sure we snap interpolation correctly at whole pixels, + // and quantize derivatives in-between pixels. + int dy = y - y_interpolation_base; + + int xh = setup.xh * SCALING_FACTOR + dy * (setup.dxhdy << 2); + + ivec4 drgba_diff = ivec4(0); + ivec4 dstzw_diff = ivec4(0); + + // In do_offset mode, varyings are latched at last subpixel line instead of first (for some reason). + if (do_offset) + { + xh += (SCALING_FACTOR * 3) * setup.dxhdy; + + ivec4 drgba_deh = attr.drgba_de & ~0x1ff; + ivec4 drgba_dyh = attr.drgba_dy & ~0x1ff; + drgba_diff = drgba_deh - (drgba_deh >> 2) - drgba_dyh + (drgba_dyh >> 2); + + ivec4 dstzw_deh = attr.dstzw_de & ~0x1ff; + ivec4 dstzw_dyh = attr.dstzw_dy & ~0x1ff; + dstzw_diff = dstzw_deh - (dstzw_deh >> 2) - dstzw_dyh + (dstzw_dyh >> 2); + } + + int base_x = xh >> 15; + int xfrac = skip_xfrac ? 0 : ((xh >> 7) & 0xff); + + ivec4 rgba = attr.rgba + interpolate_snapped(attr.drgba_de, dy); + rgba = ((rgba & ~0x1ff) + drgba_diff - interpolate_snapped((attr.drgba_dx >> 8) & ~1, xfrac)) & ~0x3ff; + + ivec4 stzw = attr.stzw + interpolate_snapped(attr.dstzw_de, dy); + stzw = ((stzw & ~0x1ff) + dstzw_diff - interpolate_snapped((attr.dstzw_dx >> 8) & ~1, xfrac)) & ~0x3ff; + + span_setup.rgba = rgba; + span_setup.stzw = stzw; + span_setup.interpolation_base_x = base_x; + } + + // Check Y dimension. + int yh_interpolation_base = int(setup.yh) & ~(SUBPIXELS - 1); + int ym_interpolation_base = int(setup.ym); + yh_interpolation_base *= SCALING_FACTOR; + ym_interpolation_base *= SCALING_FACTOR; + + int y_sub = int(y * SUBPIXELS); + ivec4 y_subs = y_sub + ivec4(0, 1, 2, 3); + int ylo = max(setup.yh, scissor.ylo) * SCALING_FACTOR; + int yhi = min(setup.yl, scissor.yhi) * SCALING_FACTOR; + + bvec4 clip_lo_y = lessThan(y_subs, ivec4(ylo)); + bvec4 clip_hi_y = greaterThanEqual(y_subs, ivec4(yhi)); + uvec4 clip_y = uvec4(clip_lo_y) | uvec4(clip_hi_y); + + // Interpolate X at all 4 Y-subpixels. + ivec4 xh = setup.xh * SCALING_FACTOR + (y_subs - yh_interpolation_base) * setup.dxhdy; + ivec4 xm = setup.xm * SCALING_FACTOR + (y_subs - yh_interpolation_base) * setup.dxmdy; + ivec4 xl = setup.xl * SCALING_FACTOR + (y_subs - ym_interpolation_base) * setup.dxldy; + xl = mix(xl, xm, lessThan(y_subs, ivec4(SCALING_FACTOR * setup.ym))); + + // If we have overflows, we can become sensitive to this in invalid_line check, where + // checks that should pass fail, and vice versa. + // Note that we shaved off one bit in triangle setup for upscaling purposes, + // so this should be 28 bits normally. + xl = bitfieldExtract(xl, 0, 27 + SCALING_LOG2); + xh = bitfieldExtract(xh, 0, 27 + SCALING_LOG2); + + ivec4 xh_shifted = quantize_x(xh); + ivec4 xl_shifted = quantize_x(xl); + + ivec4 xleft, xright; + if (flip) + { + xleft = xh_shifted; + xright = xl_shifted; + } + else + { + xleft = xl_shifted; + xright = xh_shifted; + } + + bvec4 invalid_line = greaterThan(xleft >> 1, xright >> 1); + + ivec4 lo_scissor = ivec4(SCALING_FACTOR * (scissor.xlo << 1)); + ivec4 hi_scissor = ivec4(SCALING_FACTOR * (scissor.xhi << 1)); + + bool all_over = all(greaterThanEqual(min(xleft, xright), hi_scissor)); + bool all_under = all(lessThan(max(xleft, xright), lo_scissor)); + + xleft = max(xleft, lo_scissor); + xleft = min(xleft, hi_scissor); + xright = max(xright, lo_scissor); + xright = min(xright, hi_scissor); + + invalid_line = bvec4(uvec4(invalid_line) | clip_y); + + xleft = mix(xleft, ivec4(0xffff), invalid_line); + xright = mix(xright, ivec4(0), invalid_line); + + int start_x = min4(xleft) >> 3; + int end_x = max4(xright) >> 3; + + span_setup.xleft = xleft; + span_setup.xright = xright; + span_setup.start_x = start_x; + span_setup.end_x = end_x; + span_setup.valid_line = int(!all(invalid_line) && !all_over && !all_under); + + if (interlace_en) + if (((y >> SCALING_LOG2) & 1) != int(keep_odd_field)) + span_setup.valid_line = U16_C(0); + + span_setup.lodlength = int(flip ? (end_x - span_setup.interpolation_base_x) : (span_setup.interpolation_base_x - start_x)); + store_span_setup(gl_GlobalInvocationID.x, span_setup); +} diff --git a/parallel-rdp/shaders/store_span_setup.h b/parallel-rdp/shaders/store_span_setup.h new file mode 100644 index 00000000..739db460 --- /dev/null +++ b/parallel-rdp/shaders/store_span_setup.h @@ -0,0 +1,43 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef STORE_SPAN_SETUP_H_ +#define STORE_SPAN_SETUP_H_ + +void store_span_setup(uint index, SpanSetup setup) +{ +#if SMALL_TYPES + span_setups.elems[index] = setup; +#else + span_setups.elems[index].rgba = setup.rgba; + span_setups.elems[index].stzw = setup.stzw; + span_setups.elems[index].xleft = mem_u16x4(uvec4(setup.xleft)); + span_setups.elems[index].xright = mem_u16x4(uvec4(setup.xright)); + span_setups.elems[index].interpolation_base_x = setup.interpolation_base_x; + span_setups.elems[index].start_x = setup.start_x; + span_setups.elems[index].end_x = setup.end_x; + span_setups.elems[index].lodlength = mem_i16(setup.lodlength); + span_setups.elems[index].valid_line = mem_u16(setup.valid_line); +#endif +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/texture.h b/parallel-rdp/shaders/texture.h new file mode 100644 index 00000000..ae754b16 --- /dev/null +++ b/parallel-rdp/shaders/texture.h @@ -0,0 +1,1005 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef TEXTURE_H_ +#define TEXTURE_H_ + +#include "data_structures.h" + +const int TEXTURE_FORMAT_RGBA = 0; +const int TEXTURE_FORMAT_YUV = 1; +const int TEXTURE_FORMAT_CI = 2; +const int TEXTURE_FORMAT_IA = 3; +const int TEXTURE_FORMAT_I = 4; + +int texel_mask_s(TileInfo tile, int s) +{ + if (tile.mask_s != 0) + { + int mask = 1 << tile.mask_s; + if ((tile.flags & TILE_INFO_MIRROR_S_BIT) != 0) + s ^= max((s & mask) - 1, 0); + s &= mask - 1; + } + + return s; +} + +ivec2 texel_mask_s_copy(TileInfo tile, int s) +{ + ivec2 multi_s = s + ivec2(0, 1); + + if (tile.mask_s != 0) + { + int mask = 1 << tile.mask_s; + if ((tile.flags & TILE_INFO_MIRROR_S_BIT) != 0) + multi_s ^= max((multi_s & mask) - 1, 0); + multi_s &= mask - 1; + } + + return multi_s; +} + +int texel_mask_t(TileInfo tile, int t) +{ + if (tile.mask_t != 0) + { + int mask = 1 << tile.mask_t; + if ((tile.flags & TILE_INFO_MIRROR_T_BIT) != 0) + t ^= max((t & mask) - 1, 0); + t &= mask - 1; + } + + return t; +} + +i16x4 convert_rgba16(uint word) +{ + uvec3 rgb = (uvec3(word) >> uvec3(11, 6, 1)) & 31u; + rgb = (rgb << 3u) | (rgb >> 2u); + uint alpha = (word & 1u) * 0xffu; + return i16x4(rgb, alpha); +} + +i16x4 convert_ia16(uint word) +{ + uint intensity = word >> 8; + uint alpha = word & 0xff; + return i16x4(intensity, intensity, intensity, alpha); +} + +i16x4 sample_texel_rgba4(TileInfo tile, uint tmem_instance, uvec2 st) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x >> 1; + byte_offset &= 0xfff; + + uint shift = (~st.x & 1) * 4; + + uint index = byte_offset; + index ^= (st.y & 1) << 2; + index ^= 3; + + uint word = uint(tmem8.instances[tmem_instance].elems[index]); + word = (word >> shift) & 0xf; + word |= word << 4; + return i16x4(word); +} + +i16x4 sample_texel_ia4(TileInfo tile, uint tmem_instance, uvec2 st) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x >> 1; + byte_offset &= 0xfff; + + uint shift = (~st.x & 1) * 4; + + uint index = byte_offset; + index ^= (st.y & 1) << 2; + index ^= 3; + + uint word = uint(tmem8.instances[tmem_instance].elems[index]); + word = (word >> shift) & 0xf; + + uint intensity = word & 0xe; + intensity = (intensity << 4) | (intensity << 1) | (intensity >> 2); + return i16x4(intensity, intensity, intensity, (word & 1) * 0xff); +} + +i16x4 sample_texel_ci4(TileInfo tile, uint tmem_instance, uvec2 st, uint pal) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x >> 1; + byte_offset &= 0xfff; + + uint shift = (~st.x & 1) * 4; + + uint index = byte_offset; + index ^= (st.y & 1) << 2; + index ^= 3; + + uint word = uint(tmem8.instances[tmem_instance].elems[index]); + word = (word >> shift) & 0xf; + word |= pal << 4; + return i16x4(word); +} + +i16x4 sample_texel_ci4_tlut(TileInfo tile, uint tmem_instance, uvec2 st, uint pal, uint lut_offset, uint addr_xor, bool tlut_type) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x >> 1; + byte_offset &= 0x7ff; + + uint shift = (~st.x & 1) * 4; + + uint index = byte_offset; + index ^= (st.y & 1) << 2; + index ^= 3; + + uint word = uint(tmem8.instances[tmem_instance].elems[index]); + word = (word >> shift) & 0xf; + word |= pal << 4; + + uint lut_entry = (word << 2) + lut_offset; + lut_entry ^= addr_xor; + + word = uint(tmem16.instances[tmem_instance].elems[0x400 | lut_entry]); + return tlut_type ? convert_ia16(word) : convert_rgba16(word); +} + +i16x4 sample_texel_ci8_tlut(TileInfo tile, uint tmem_instance, uvec2 st, uint lut_offset, uint addr_xor, bool tlut_type) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x; + byte_offset &= 0x7ff; + + uint index = byte_offset; + index ^= (st.y & 1) << 2; + index ^= 3; + + uint word = uint(tmem8.instances[tmem_instance].elems[index]); + uint lut_entry = (word << 2) + lut_offset; + lut_entry ^= addr_xor; + + word = uint(tmem16.instances[tmem_instance].elems[0x400 | lut_entry]); + return tlut_type ? convert_ia16(word) : convert_rgba16(word); +} + +i16x4 sample_texel_ci32(TileInfo tile, uint tmem_instance, uvec2 st) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x * 2; + byte_offset &= 0xfff; + + uint index = byte_offset >> 1; + index ^= (st.y & 1) << 1; + index ^= 1; + + uint word = uint(tmem16.instances[tmem_instance].elems[index]); + return i16x2(word >> 8, word & 0xff).xyxy; +} + +i16x4 sample_texel_ci32_tlut(TileInfo tile, uint tmem_instance, uvec2 st, uint lut_offset, uint addr_xor, bool tlut_type) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x * 2; + byte_offset &= 0x7ff; + + uint index = byte_offset >> 1; + index ^= (st.y & 1) << 1; + index ^= 1; + + uint word = uint(tmem16.instances[tmem_instance].elems[index]); + uint lut_entry = ((word >> 6) & ~3) + lut_offset; + lut_entry ^= addr_xor; + word = uint(tmem16.instances[tmem_instance].elems[0x400 | lut_entry]); + return tlut_type ? convert_ia16(word) : convert_rgba16(word); +} + +i16x4 sample_texel_rgba8(TileInfo tile, uint tmem_instance, uvec2 st) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x; + byte_offset &= 0xfff; + + uint index = byte_offset; + index ^= (st.y & 1) << 2; + index ^= 3; + + uint word = uint(tmem8.instances[tmem_instance].elems[index]); + return i16x4(word); +} + +i16x4 sample_texel_ia8(TileInfo tile, uint tmem_instance, uvec2 st) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x; + byte_offset &= 0xfff; + + uint index = byte_offset; + index ^= (st.y & 1) << 2; + index ^= 3; + + uint word = uint(tmem8.instances[tmem_instance].elems[index]); + uint intensity = word >> 4; + uint alpha = word & 0xf; + alpha |= alpha << 4; + intensity |= intensity << 4; + return i16x4(intensity, intensity, intensity, alpha); +} + +i16x4 sample_texel_yuv16(TileInfo tile, uint tmem_instance, uvec2 st, uint chroma_x) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + uint byte_offset_luma = byte_offset + st.x; + byte_offset_luma &= 0x7ff; + + uint byte_offset_chroma = byte_offset + chroma_x * 2; + byte_offset_chroma &= 0x7ff; + + uint index_luma = byte_offset_luma; + index_luma ^= (st.y & 1) << 2; + index_luma ^= 3; + + uint index_chroma = byte_offset_chroma >> 1; + index_chroma ^= (st.y & 1) << 1; + index_chroma ^= 1; + + u8 luma = u8(tmem8.instances[tmem_instance].elems[index_luma | 0x800]); + u16 chroma = u16(tmem16.instances[tmem_instance].elems[index_chroma]); + u8 u = u8((chroma >> U16_C(8)) & U16_C(0xff)); + u8 v = u8((chroma >> U16_C(0)) & U16_C(0xff)); + return i16x4(i16(u) - I16_C(0x80), i16(v) - I16_C(0x80), luma, luma); +} + +i16x4 sample_texel_rgba16(TileInfo tile, uint tmem_instance, uvec2 st) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x * 2; + byte_offset &= 0xfff; + + uint index = byte_offset >> 1; + index ^= (st.y & 1) << 1; + index ^= 1; + + uint word = uint(tmem16.instances[tmem_instance].elems[index]); + return convert_rgba16(word); +} + +i16x4 sample_texel_ia16(TileInfo tile, uint tmem_instance, uvec2 st) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x * 2; + byte_offset &= 0xfff; + + uint index = byte_offset >> 1; + index ^= (st.y & 1) << 1; + index ^= 1; + + uint word = uint(tmem16.instances[tmem_instance].elems[index]); + return convert_ia16(word); +} + +i16x4 sample_texel_rgba32(TileInfo tile, uint tmem_instance, uvec2 st) +{ + uint byte_offset = tile.offset + tile.stride * st.y; + byte_offset += st.x * 2; + byte_offset &= 0x7ff; + + uint index = byte_offset >> 1; + index ^= (st.y & 1) << 1; + index ^= 1; + + uint lower_word = uint(tmem16.instances[tmem_instance].elems[index]); + uint upper_word = uint(tmem16.instances[tmem_instance].elems[index | 0x400]); + return i16x4(lower_word >> 8, lower_word & 0xff, upper_word >> 8, upper_word & 0xff); +} + +int clamp_and_shift_coord(bool clamp_bit, int coord, int lo, int hi, int shift) +{ + // Clamp 17-bit coordinate to 16-bit coordinate here. + coord = clamp(coord, -0x8000, 0x7fff); + + if (shift < 11) + coord >>= shift; + else + { + coord <<= (32 - shift); + coord >>= 16; + } + + if (clamp_bit) + { + bool clamp_hi = (coord >> 3) >= hi; + if (clamp_hi) + coord = (((hi >> 2) - (lo >> 2)) & 0x3ff) << 5; + else + coord = max(coord - (lo << 3), 0); + } + else + coord -= lo << 3; + + return coord; +} + +int shift_coord(int coord, int lo, int shift) +{ + // Clamp 17-bit coordinate to 16-bit coordinate here. + coord = clamp(coord, -0x8000, 0x7fff); + + if (shift < 11) + coord >>= shift; + else + { + coord <<= (32 - shift); + coord >>= 16; + } + coord -= lo << 3; + return coord; +} + +// The copy pipe reads 4x16 words. +int sample_texture_copy_word(TileInfo tile, uint tmem_instance, ivec2 st, int s_offset, bool tlut, bool tlut_type) +{ + // For non-16bpp TMEM, the lower 32-bits are sampled based on direct 16-bit fetches. There are no shifts applied. + bool high_word = s_offset < 2; + bool replicate_8bpp = high_word && tile.size != 2 && !tlut; + int samp; + + int s_shamt = min(int(tile.size), 2); + bool large_texel = int(tile.size) == 3; + int idx_mask = (large_texel || tlut) ? 0x3ff : 0x7ff; + + if (replicate_8bpp) + { + // The high word of 8-bpp replication is special in the sense that we sample 8-bpp correctly. + // Sample the two possible words. + st.x += 2 * s_offset; + ivec2 s = texel_mask_s_copy(tile, st.x); + int t = texel_mask_t(tile, st.y); + + uint tbase = tile.offset + tile.stride * t; + uvec2 nibble_offset = (tbase * 2 + (s << s_shamt)) & 0x1fffu; + nibble_offset ^= (t & 1u) * 8u; + uvec2 index = nibble_offset >> 2u; + + index &= idx_mask; + int samp0 = int(tmem16.instances[tmem_instance].elems[index.x ^ 1]); + int samp1 = int(tmem16.instances[tmem_instance].elems[index.y ^ 1]); + + if (tile.size == 1) + { + samp0 >>= 8 - 4 * int(nibble_offset.x & 2); + samp1 >>= 8 - 4 * int(nibble_offset.y & 2); + samp0 &= 0xff; + samp1 &= 0xff; + } + else if (tile.size == 0) + { + samp0 >>= 12 - 4 * int(nibble_offset.x & 3u); + samp1 >>= 12 - 4 * int(nibble_offset.y & 3u); + samp0 = (samp0 & 0xf) * 0x11; + samp1 = (samp1 & 0xf) * 0x11; + } + else + { + samp0 >>= 8; + samp1 >>= 8; + } + + samp = (samp0 << 8) | samp1; + } + else + { + st.x += s_offset; + int s = texel_mask_s(tile, st.x); + int t = texel_mask_t(tile, st.y); + + uint tbase = tile.offset + tile.stride * t; + uint nibble_offset = (tbase * 2 + (s << s_shamt)) & 0x1fffu; + nibble_offset ^= (t & 1u) * 8u; + + uint index = nibble_offset >> 2u; + index &= idx_mask; + samp = int(tmem16.instances[tmem_instance].elems[index ^ 1]); + + if (tlut) + { + if (tile.size == 0) + { + samp >>= 12 - 4 * (nibble_offset & 3); + samp &= 0xf; + samp |= tile.palette << 4; + samp <<= 2; + samp += s_offset; + } + else + { + samp >>= 8 - 4 * (nibble_offset & 2); + samp &= 0xff; + samp <<= 2; + samp += s_offset; + } + samp = int(tmem16.instances[tmem_instance].elems[(samp | 0x400) ^ 1]); + } + } + + return samp; +} + +int sample_texture_copy(TileInfo tile, uint tmem_instance, ivec2 st, int s_offset, bool tlut, bool tlut_type) +{ + st.x = shift_coord(st.x, int(tile.slo), int(tile.shift_s)); + st.y = shift_coord(st.y, int(tile.tlo), int(tile.shift_t)); + st >>= 5; + + int samp; + if (global_constants.fb_info.fb_size == 0) + { + samp = 0; + } + else if (global_constants.fb_info.fb_size == 1) + { + samp = sample_texture_copy_word(tile, tmem_instance, st, s_offset >> 1, tlut, tlut_type); + samp >>= 8 - 8 * (s_offset & 1); + samp &= 0xff; + } + else + { + samp = sample_texture_copy_word(tile, tmem_instance, st, s_offset, tlut, tlut_type); + } + + return samp; +} + +i16x2 bilinear_3tap(i16x2 t00, i16x2 t10, i16x2 t01, i16x2 t11, ivec2 frac) +{ + int sum_frac = frac.x + frac.y; + i16x2 t_base = sum_frac >= 32 ? t11 : t00; + i16x2 flip_frac = i16x2(sum_frac >= 32 ? (32 - frac.yx) : frac); + i16x2 accum = (t10 - t_base) * flip_frac.x; + accum += (t01 - t_base) * flip_frac.y; + accum += I16_C(0x10); + accum >>= I16_C(5); + accum += t_base; + return accum; +} + +i16x4 texture_convert_factors(i16x4 texel_in, i16x4 factors) +{ + ivec4 texel = bitfieldExtract(ivec4(texel_in), 0, 9); + + int r = texel.b + ((factors.x * texel.g + 0x80) >> 8); + int g = texel.b + ((factors.y * texel.r + factors.z * texel.g + 0x80) >> 8); + int b = texel.b + ((factors.w * texel.r + 0x80) >> 8); + int a = texel.b; + return i16x4(r, g, b, a); +} + +i16x4 sample_texture(TileInfo tile, uint tmem_instance, ivec2 st, bool tlut, bool tlut_type, + bool sample_quad, bool mid_texel_state, bool convert_one, bool bilerp, + i16x4 conversion_factors, i16x4 prev_cycle) +{ + st.x = clamp_and_shift_coord((tile.flags & TILE_INFO_CLAMP_S_BIT) != 0, st.x, int(tile.slo), int(tile.shi), int(tile.shift_s)); + st.y = clamp_and_shift_coord((tile.flags & TILE_INFO_CLAMP_T_BIT) != 0, st.y, int(tile.tlo), int(tile.thi), int(tile.shift_t)); + + ivec2 frac; + if (sample_quad || tlut) + frac = st & 31; + else + frac = ivec2(0); + + int sum_frac = frac.x + frac.y; + st >>= 5; + + int s0 = texel_mask_s(tile, st.x); + int t0 = texel_mask_t(tile, st.y); + int s1 = texel_mask_s(tile, st.x + 1); + int t1 = texel_mask_t(tile, st.y + 1); + + // Very specific weird logic going on with t0 and t1. + int tdiff = max(t1 - t0, -255); + t1 = (t0 & 0xff) + tdiff; + t0 &= 0xff; + + i16x4 t_base, t10, t01, t11; + bool mid_texel = all(bvec4(mid_texel_state, bilerp, equal(frac, ivec2(0x10)))); + + bool upper_lut = sum_frac >= 0x20; + if (mid_texel) + { + // Ensure we sample all 4 texels. + sum_frac = 0; + } + + bool yuv = tile.fmt == TEXTURE_FORMAT_YUV; + ivec2 base_st = sum_frac >= 0x20 ? ivec2(s1, t1) : ivec2(s0, t0); + int chroma_frac = ((s0 & 1) << 4) | (frac.x >> 1); + + if (tlut) + { + if (!sample_quad) + { + // Weird mode where we sample a bilinear footprint with the 4 banks of TLUT instead. + // Force the footprint to be sampled, but adjust the input coordinates instead. + base_st = ivec2(s0, t0); + s1 = s0; + t1 = t0; + } + + switch (int(tile.fmt)) + { + case TEXTURE_FORMAT_RGBA: + case TEXTURE_FORMAT_CI: + case TEXTURE_FORMAT_IA: + case TEXTURE_FORMAT_I: + { + // For TLUT, entries in the LUT are duplicated and we must make sure that we sample 3 different banks + // when we look up the TLUT entry. In normal situations, this is irrelevant, but we're trying to be accurate here. + bool upper = sum_frac >= 0x20; + uint addr_xor = upper_lut ? 2 : 1; + + switch (int(tile.size)) + { + case 0: + t_base = sample_texel_ci4_tlut(tile, tmem_instance, base_st, tile.palette, upper ? 3 : 0, addr_xor, tlut_type); + if (bilerp) + { + t10 = sample_texel_ci4_tlut(tile, tmem_instance, ivec2(s1, t0), tile.palette, 1, addr_xor, + tlut_type); + t01 = sample_texel_ci4_tlut(tile, tmem_instance, ivec2(s0, t1), tile.palette, 2, addr_xor, + tlut_type); + } + if (mid_texel) + { + t11 = sample_texel_ci4_tlut(tile, tmem_instance, ivec2(s1, t1), tile.palette, 3, addr_xor, + tlut_type); + } + break; + + case 1: + t_base = sample_texel_ci8_tlut(tile, tmem_instance, base_st, upper ? 3 : 0, addr_xor, tlut_type); + if (bilerp) + { + t10 = sample_texel_ci8_tlut(tile, tmem_instance, ivec2(s1, t0), 1, addr_xor, tlut_type); + t01 = sample_texel_ci8_tlut(tile, tmem_instance, ivec2(s0, t1), 2, addr_xor, tlut_type); + } + if (mid_texel) + t11 = sample_texel_ci8_tlut(tile, tmem_instance, ivec2(s1, t1), 3, addr_xor, tlut_type); + break; + + default: + t_base = sample_texel_ci32_tlut(tile, tmem_instance, base_st, upper ? 3 : 0, addr_xor, tlut_type); + if (bilerp) + { + t10 = sample_texel_ci32_tlut(tile, tmem_instance, ivec2(s1, t0), 1, addr_xor, tlut_type); + t01 = sample_texel_ci32_tlut(tile, tmem_instance, ivec2(s0, t1), 2, addr_xor, tlut_type); + } + if (mid_texel) + t11 = sample_texel_ci32_tlut(tile, tmem_instance, ivec2(s1, t1), 3, addr_xor, tlut_type); + break; + } + break; + } + } + } + else + { + switch (int(tile.fmt)) + { + case TEXTURE_FORMAT_RGBA: + switch (int(tile.size)) + { + case 0: + t_base = sample_texel_rgba4(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_rgba4(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_rgba4(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_rgba4(tile, tmem_instance, ivec2(s1, t1)); + break; + + case 1: + t_base = sample_texel_rgba8(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_rgba8(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_rgba8(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_rgba8(tile, tmem_instance, ivec2(s1, t1)); + break; + + case 2: + t_base = sample_texel_rgba16(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_rgba16(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_rgba16(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_rgba16(tile, tmem_instance, ivec2(s1, t1)); + break; + + case 3: + t_base = sample_texel_rgba32(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_rgba32(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_rgba32(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_rgba32(tile, tmem_instance, ivec2(s1, t1)); + break; + } + break; + + case TEXTURE_FORMAT_YUV: + { + uint chroma_x0 = s0 >> 1; + uint chroma_x1 = (s1 + (s1 - s0)) >> 1; + + // Only implement 16bpp for now. It's the only one that gives meaningful results. + t_base = sample_texel_yuv16(tile, tmem_instance, ivec2(s0, t0), chroma_x0); + if (sample_quad) + { + t10 = sample_texel_yuv16(tile, tmem_instance, ivec2(s1, t0), chroma_x1); + t01 = sample_texel_yuv16(tile, tmem_instance, ivec2(s0, t1), chroma_x0); + t11 = sample_texel_yuv16(tile, tmem_instance, ivec2(s1, t1), chroma_x1); + } + break; + } + + case TEXTURE_FORMAT_CI: + switch (int(tile.size)) + { + case 0: + t_base = sample_texel_ci4(tile, tmem_instance, base_st, tile.palette); + if (sample_quad) + { + t10 = sample_texel_ci4(tile, tmem_instance, ivec2(s1, t0), tile.palette); + t01 = sample_texel_ci4(tile, tmem_instance, ivec2(s0, t1), tile.palette); + } + if (mid_texel) + t11 = sample_texel_ci4(tile, tmem_instance, ivec2(s1, t1), tile.palette); + break; + + case 1: + t_base = sample_texel_rgba8(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_rgba8(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_rgba8(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_rgba8(tile, tmem_instance, ivec2(s1, t1)); + break; + + default: + t_base = sample_texel_ci32(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_ci32(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_ci32(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_ci32(tile, tmem_instance, ivec2(s1, t1)); + break; + } + break; + + case TEXTURE_FORMAT_IA: + switch (int(tile.size)) + { + case 0: + t_base = sample_texel_ia4(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_ia4(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_ia4(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_ia4(tile, tmem_instance, ivec2(s1, t1)); + break; + + case 1: + t_base = sample_texel_ia8(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_ia8(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_ia8(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_ia8(tile, tmem_instance, ivec2(s1, t1)); + break; + + case 2: + t_base = sample_texel_ia16(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_ia16(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_ia16(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_ia16(tile, tmem_instance, ivec2(s1, t1)); + break; + + case 3: + t_base = sample_texel_ci32(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_ci32(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_ci32(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_ci32(tile, tmem_instance, ivec2(s1, t1)); + break; + } + break; + + case TEXTURE_FORMAT_I: + switch (int(tile.size)) + { + case 0: + t_base = sample_texel_rgba4(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_rgba4(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_rgba4(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_rgba4(tile, tmem_instance, ivec2(s1, t1)); + break; + + case 1: + t_base = sample_texel_rgba8(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_rgba8(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_rgba8(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_rgba8(tile, tmem_instance, ivec2(s1, t1)); + break; + + default: + t_base = sample_texel_ci32(tile, tmem_instance, base_st); + if (sample_quad) + { + t10 = sample_texel_ci32(tile, tmem_instance, ivec2(s1, t0)); + t01 = sample_texel_ci32(tile, tmem_instance, ivec2(s0, t1)); + } + if (mid_texel) + t11 = sample_texel_ci32(tile, tmem_instance, ivec2(s1, t1)); + break; + } + break; + } + } + + i16x4 accum; + + // This is esoteric gibberish for the most part ... + + // Basic ideas seem to be: + // - If mid_texel is enabled and we end up sampling center pixel, replace any 3-tap bilinear with 4-tap average. + // - If YUV is used, filtering is separate for RG (chroma) and BA (luma) channels. Upper / Mid signals are separate. + // - For YUV, sampling without bilerp with sample_quad means picking either t00 or t11, the base texel of any 3-tap bilerp plane. + // Chroma and Luma planes are selected separately. + // Then, the texel is converted. + // - If convert_one + sample_quad + bilerp is used, a whack mode is entered where the conversion factors are dynamic. + // This also needs to handle variants of MID / YUV. + + if (convert_one) + { + // bilerp + convert_one path. !bilerp + convert_one path is trivial and does not require sampling at all. + // It is handled outside. + + ivec4 prev_sext = bitfieldExtract(ivec4(prev_cycle), 0, 9); + if (sample_quad) + { + bool mid_rg = yuv ? all(bvec3(mid_texel_state, equal(ivec2(chroma_frac, frac.y), ivec2(0x10)))) : mid_texel; + bool mid_ba = mid_texel; + + bool upper_ba = sum_frac >= 32; + bool upper_rg = yuv ? ((chroma_frac + frac.y) >= 32 && !mid_rg) : upper_ba; + + ivec2 factors_rg = upper_rg ? prev_sext.gr : prev_sext.rg; + ivec2 factors_ba = upper_ba ? prev_sext.gr : prev_sext.rg; + + // t11 vs t00 selection is already done for non-YUV. YUV needs to defer here. + + ivec2 converted_rg, converted_ba; + if (mid_rg) + { + converted_rg = factors_rg.r * (t01.rg - t11.rg) + + factors_rg.g * (t10.rg - t11.rg) + + ((t_base.rg - t11.rg) << 6) + 0x80; + } + else + { + ivec2 base_rg = upper_rg && yuv ? t11.xy : t_base.xy; + converted_rg = factors_rg.r * (t10.xy - base_rg) + factors_rg.g * (t01.xy - base_rg) + 0x80; + } + + if (mid_ba) + { + converted_ba = factors_ba.r * (t01.ba - t11.ba) + + factors_ba.g * (t10.ba - t11.ba) + + ((t_base.ba - t11.ba) << 6) + 0x80; + } + else + { + ivec2 base_ba = upper_ba && yuv ? t11.zw : t_base.zw; + converted_ba = factors_ba.r * (t10.zw - base_ba) + factors_ba.g * (t01.zw - base_ba) + 0x80; + } + + ivec4 converted = ivec4(converted_rg, converted_ba); + converted >>= 8; + converted += prev_sext.b; + accum = i16x4(converted); + } + else + accum = i16x4(prev_sext.bbbb); + } + else if (yuv) + { + if (sample_quad) + { + i16x2 accum_chroma; + i16x2 accum_luma; + + if (bilerp) + { + bool mid_chroma = all(bvec3(mid_texel_state, equal(ivec2(chroma_frac, frac.y), ivec2(0x10)))); + if (mid_chroma) + accum_chroma = (t_base.xy + t10.xy + t11.xy + t01.xy + I16_C(2)) >> I16_C(2); + else + accum_chroma = bilinear_3tap(t_base.xy, t10.xy, t01.xy, t11.xy, ivec2(chroma_frac, frac.y)); + + if (mid_texel) + accum_luma = (t_base.zw + t10.zw + t11.zw + t01.zw + I16_C(2)) >> I16_C(2); + else + accum_luma = bilinear_3tap(t_base.zw, t10.zw, t01.zw, t11.zw, frac); + } + else + { + // Weird path. Seems to pick either t00 or t11 for purposes of nearest. + // Bilinear footprint path, except it's not doing bilinear path. + accum_luma = frac.x + frac.y >= 32 ? t11.zw : t_base.zw; + accum_chroma = chroma_frac + frac.y >= 32 ? t11.xy : t_base.xy; + } + + accum = i16x4(accum_chroma, accum_luma); + } + else + accum = t_base; + } + else if (mid_texel) + { + accum = (t_base + t01 + t10 + t11 + I16_C(2)) >> I16_C(2); + } + else if (bilerp && (sample_quad || tlut)) + { + i16x2 flip_frac = i16x2(sum_frac >= 32 ? (32 - frac.yx) : frac); + accum = (t10 - t_base) * flip_frac.x; + accum += (t01 - t_base) * flip_frac.y; + accum += I16_C(0x10); + accum >>= I16_C(5); + accum += t_base; + } + else + accum = t_base; + + // If we don't spend math on bilerp for this cycle, we get conversion instead. + // This happens regardless of convert_one. Convert_one in cycle 1 only means we take the + // previous texel cycle and perform some math on it. + + if (!bilerp && !convert_one) + accum = texture_convert_factors(accum, conversion_factors); + + return accum; +} + +void compute_lod_2cycle(inout uint tile0, inout uint tile1, out i16 lod_frac, uint max_level, int min_lod, + ivec2 st, ivec2 st_dx, ivec2 st_dy, + bool perspective_overflow, bool tex_lod_en, bool sharpen_tex_en, bool detail_tex_en) +{ + bool magnify = false; + bool distant = false; + + uint tile_offset = 0; + + if (perspective_overflow) + { + distant = true; + lod_frac = i16(0xff); + } + else + { + ivec2 dx = st_dx - st; + // Kinda abs, except it's 1 less than expected if negative. + dx ^= dx >> 31; + ivec2 dy = st_dy - st; + // Kinda abs, except it's 1 less than expected if negative. + dy ^= dy >> 31; + + ivec2 max_d2 = max(dx, dy); + int max_d = max(max_d2.x, max_d2.y); + + if (max_d >= 0x4000) + { + distant = true; + lod_frac = i16(0xff); + tile_offset = max_level; + } + else if (max_d < 32) // LOD < 0 + { + distant = max_level == 0u; + magnify = true; + + if (!sharpen_tex_en && !detail_tex_en) + lod_frac = i16(distant ? 0xff : 0); + else + lod_frac = i16((max(min_lod, max_d) << 3) + (sharpen_tex_en ? -0x100 : 0)); + } + else + { + int mip_base = max(findMSB(max_d >> 5), 0); + distant = mip_base >= max_level; + + if (distant && !sharpen_tex_en && !detail_tex_en) + { + lod_frac = i16(0xff); + } + else + { + lod_frac = i16(((max_d << 3) >> mip_base) & 0xff); + tile_offset = mip_base; + } + } + } + + if (tex_lod_en) + { + if (distant) + tile_offset = max_level; + + if (!detail_tex_en) + { + tile0 = (tile0 + tile_offset) & 7u; + if (distant || (!sharpen_tex_en && magnify)) + tile1 = tile0; + else + tile1 = (tile0 + 1) & 7; + } + else + { + tile1 = (tile0 + tile_offset + ((distant || magnify) ? 1 : 2)) & 7u; + tile0 = (tile0 + tile_offset + (magnify ? 0 : 1)) & 7u; + } + } +} + +#endif diff --git a/parallel-rdp/shaders/tile_binning_combined.comp b/parallel-rdp/shaders/tile_binning_combined.comp new file mode 100644 index 00000000..909b3194 --- /dev/null +++ b/parallel-rdp/shaders/tile_binning_combined.comp @@ -0,0 +1,270 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +// Consumes result from tile_binning_prepass.comp, bins at a finer resolution (8x8 or 16x16 blocks). +#include "small_types.h" + +#if SUBGROUP +#extension GL_KHR_shader_subgroup_basic : require +#extension GL_KHR_shader_subgroup_vote : require +#extension GL_KHR_shader_subgroup_ballot : require +#extension GL_KHR_shader_subgroup_arithmetic : require +layout(local_size_x_id = 0) in; +#else +// Reasonable default. For AMD (64 threads), subgroups are definitely supported, so this won't be hit. +layout(local_size_x = 32) in; +#endif + +#include "debug.h" +#include "data_structures.h" +#include "binning.h" + +layout(constant_id = 1) const int TILE_WIDTH = 8; +layout(constant_id = 2) const int TILE_HEIGHT = 8; +layout(constant_id = 3) const int MAX_PRIMITIVES = 256; +layout(constant_id = 4) const int MAX_WIDTH = 1024; +layout(constant_id = 5) const int TILE_INSTANCE_STRIDE = 0x8000; +layout(constant_id = 6) const int SCALE_FACTOR = 1; + +const int TILE_BINNING_STRIDE = MAX_PRIMITIVES / 32; +const int MAX_TILES_X = MAX_WIDTH / TILE_WIDTH; + +layout(set = 0, binding = 0, std430) readonly buffer TriangleSetupBuffer +{ + TriangleSetupMem elems[]; +} triangle_setup; +#include "load_triangle_setup.h" + +layout(set = 0, binding = 1, std430) readonly buffer ScissorStateBuffer +{ + ScissorStateMem elems[]; +} scissor_state; +#include "load_scissor_state.h" + +layout(set = 0, binding = 2, std430) readonly buffer StateIndicesBuffer +{ + InstanceIndicesMem elems[]; +} state_indices; + +layout(std430, set = 0, binding = 3) writeonly buffer TileBitmask +{ + uint binned_bitmask[]; +}; + +layout(std430, set = 0, binding = 4) writeonly buffer TileBitmaskCoarse +{ + uint binned_bitmask_coarse[]; +}; + +#if !UBERSHADER +layout(std430, set = 0, binding = 5) writeonly buffer TileInstanceOffset +{ + uint elems[]; +} tile_instance_offsets; + +layout(std430, set = 0, binding = 6) buffer IndirectBuffer +{ + uvec4 elems[]; +} indirect_counts; + +// This can actually be uint16_t, but AMD doesn't seem to support loading uint16_t in SMEM unit, +// the memory traffic for this data structure is not relevant anyways. +struct TileRasterWork +{ + uint tile_x, tile_y; + uint tile_instance; + uint primitive; +}; + +layout(std430, set = 0, binding = 7) writeonly buffer WorkList +{ + uvec4 elems[]; +} tile_raster_work; +#endif + +#if !UBERSHADER +uint allocate_work_offset(uint variant_index) +{ +#if !SUBGROUP + return atomicAdd(indirect_counts.elems[variant_index].x, 1u); +#else + // Merge atomic operations. Compiler would normally do this, + // but it might not have figured out that variant_index is uniform. + uvec4 active_mask = subgroupBallot(true); + uint count = subgroupBallotBitCount(active_mask); + uint work_offset = 0u; + if (subgroupElect()) + work_offset = atomicAdd(indirect_counts.elems[variant_index].x, count); + work_offset = subgroupBroadcastFirst(work_offset); + work_offset += subgroupBallotExclusiveBitCount(active_mask); + return work_offset; +#endif +} +#endif + +layout(push_constant, std430) uniform Registers +{ + uvec2 resolution; + int primitive_count; +} fb_info; + +#if !SUBGROUP +shared uint merged_mask_shared; +#endif + +void main() +{ + int group_index = int(gl_WorkGroupID.x); + ivec2 meta_tile = ivec2(gl_WorkGroupID.yz); + + const int TILES_X = 8; + const int TILES_Y = int(gl_WorkGroupSize.x) >> 3; + +#if SUBGROUP + // Spec is unclear how gl_LocalInvocationIndex is mapped to gl_SubgroupInvocationID, so synthesize our own. + // We know the subgroups are fully occupied with VK_EXT_subgroup_size_control already. + int local_index = int(gl_SubgroupInvocationID); + int SUBGROUP_TILES_Y = int(gl_SubgroupSize) >> 3; +#else + int local_index = int(gl_LocalInvocationIndex); +#endif + + int inner_tile_x = local_index & 7; + int inner_tile_y = local_index >> 3; +#if SUBGROUP + inner_tile_y += SUBGROUP_TILES_Y * int(gl_SubgroupID); +#endif + ivec2 tile = meta_tile * ivec2(TILES_X, TILES_Y) + ivec2(inner_tile_x, inner_tile_y); + + int linear_tile = tile.y * MAX_TILES_X + tile.x; + + ivec2 base_coord_meta = meta_tile * ivec2(TILE_WIDTH * TILES_X, TILE_HEIGHT * TILES_Y); +#if SUBGROUP + base_coord_meta.y += SUBGROUP_TILES_Y * TILE_HEIGHT * int(gl_SubgroupID); + ivec2 end_coord_meta = min(base_coord_meta + ivec2(TILE_WIDTH * TILES_X, TILE_HEIGHT * SUBGROUP_TILES_Y), ivec2(fb_info.resolution)) - 1; +#else + ivec2 end_coord_meta = min(base_coord_meta + ivec2(TILE_WIDTH * TILES_X, TILE_HEIGHT * TILES_Y), ivec2(fb_info.resolution)) - 1; +#endif + + ivec2 base_coord = tile * ivec2(TILE_WIDTH, TILE_HEIGHT); + ivec2 end_coord = min(base_coord + ivec2(TILE_WIDTH, TILE_HEIGHT), ivec2(fb_info.resolution)) - 1; + + int primitive_count = fb_info.primitive_count; + +#if !SUBGROUP + if (local_index == 0) + merged_mask_shared = 0u; + barrier(); +#endif + + bool binned = false; + if (local_index < 32) + { + uint primitive_index = group_index * 32 + local_index; + if (primitive_index < primitive_count) + { + ScissorState scissor = load_scissor_state(primitive_index); + TriangleSetup setup = load_triangle_setup(primitive_index); + binned = bin_primitive(setup, base_coord_meta, end_coord_meta, SCALE_FACTOR, scissor); + } + } + +#if SUBGROUP + uint merged_mask = subgroupBallot(binned).x; +#else + if (binned) + atomicOr(merged_mask_shared, 1u << local_index); + barrier(); + uint merged_mask = merged_mask_shared; +#endif + + uint binned_mask = 0u; + while (merged_mask != 0u) + { + int bit = findLSB(merged_mask); + merged_mask &= ~(1u << bit); + uint primitive_index = group_index * 32 + bit; + ScissorState scissor = load_scissor_state(primitive_index); + TriangleSetup setup = load_triangle_setup(primitive_index); + if (bin_primitive(setup, base_coord, end_coord, SCALE_FACTOR, scissor)) + binned_mask |= 1u << bit; + } + + binned_bitmask[linear_tile * TILE_BINNING_STRIDE + group_index] = binned_mask; + if (binned_mask != 0u) + atomicOr(binned_bitmask_coarse[linear_tile], 1u << group_index); + else + atomicAnd(binned_bitmask_coarse[linear_tile], ~(1u << group_index)); + +#if SUBGROUP +#if !UBERSHADER + uint bit_count = uint(bitCount(binned_mask)); + uint instance_offset = 0u; + if (subgroupAny(bit_count != 0u)) + { + // Allocate tile instance space for all threads in subgroup in one go. + uint total_bit_count = subgroupAdd(bit_count); + + if (subgroupElect()) + if (total_bit_count != 0u) + instance_offset = atomicAdd(indirect_counts.elems[0].w, total_bit_count); + + instance_offset = subgroupBroadcastFirst(instance_offset); + instance_offset += subgroupInclusiveAdd(bit_count) - bit_count; + } +#endif +#else +#if !UBERSHADER + uint bit_count = uint(bitCount(binned_mask)); + uint instance_offset = 0u; + if (bit_count != 0u) + instance_offset = atomicAdd(indirect_counts.elems[0].w, bit_count); +#endif +#endif + +#if !UBERSHADER + if (bit_count != 0u) + tile_instance_offsets.elems[linear_tile * TILE_BINNING_STRIDE + group_index] = instance_offset; + +#if SUBGROUP + uint variant_mask = subgroupOr(binned_mask); +#else + uint variant_mask = binned_mask; +#endif + + while (variant_mask != 0u) + { + int bit = findLSB(variant_mask); + variant_mask &= ~(1u << bit); + int primitive_index = group_index * 32 + bit; + + if ((binned_mask & (1u << bit)) != 0u) + { + uint variant_index = uint(state_indices.elems[primitive_index].static_depth_tmem.x); + uint work_offset = allocate_work_offset(variant_index); + tile_raster_work.elems[work_offset + uint(TILE_INSTANCE_STRIDE) * variant_index] = + uvec4(tile.x, tile.y, instance_offset, primitive_index); + instance_offset++; + } + } +#endif +} diff --git a/parallel-rdp/shaders/tmem_update.comp b/parallel-rdp/shaders/tmem_update.comp new file mode 100644 index 00000000..ba340813 --- /dev/null +++ b/parallel-rdp/shaders/tmem_update.comp @@ -0,0 +1,577 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#include "debug.h" +#include "small_types.h" +layout(local_size_x_id = 0) in; + +layout(set = 0, binding = 0, std430) readonly buffer VRAM8Buffer +{ + mem_u8 data[]; +} vram8; + +layout(set = 0, binding = 0, std430) readonly buffer VRAM16Buffer +{ + mem_u16 data[]; +} vram16; + +layout(set = 0, binding = 0, std430) readonly buffer VRAM32Buffer +{ + uint data[]; +} vram32; + +layout(set = 0, binding = 1, std430) buffer TMEM16Buffer +{ + mem_u16 data[2048]; +} tmem16; + +struct TileInstance +{ + mem_u16 data[2048]; +}; + +layout(set = 0, binding = 2, std430) writeonly buffer TMEMInstances +{ + TileInstance instances[]; +} tile_instances; + +layout(push_constant, std430) uniform Registers +{ + int num_uploads; +} registers; + +const int TEXTURE_FMT_RGBA = 0; +const int TEXTURE_FMT_YUV = 1; +const int TEXTURE_FMT_CI = 2; +const int TEXTURE_FMT_IA = 3; +const int TEXTURE_FMT_I = 4; + +const int UPLOAD_MODE_TILE = 0; +const int UPLOAD_MODE_TLUT = 1; +const int UPLOAD_MODE_BLOCK = 2; + +struct UploadInfo +{ + int width, height; + float min_t_mod, max_t_mod; + + int vram_addr; + int vram_width; + int vram_size; + int vram_effective_width; + + int tmem_offset; + int tmem_stride_words; + int tmem_size; + int tmem_fmt; + + int mode; + float inv_tmem_stride_words; + int dxt; + int padding; +}; + +layout(set = 1, binding = 0, std140) uniform UploadInfos +{ + UploadInfo upload_info[256]; +}; + +bool tmem_dirty; +uint current_tmem_value; + +int compute_upload_t(int offset, float inv_stride) +{ + // This is still exact for all relevant inputs, and much faster than integer divide. + return int((float(offset) + 0.5) * inv_stride); +} + +// In 32bpp upload mode we read 64 bits and split the result over the lower and upper TMEM. +void update_tmem_32(UploadInfo info, int tmem16_index, bool upper_tmem, bool yuv) +{ + int tmem16_offset = (info.tmem_offset & 0x7ff) >> 1; + int tmem16_stride = info.tmem_stride_words; + + int pixel_offset = (tmem16_index - tmem16_offset) & 0x3ff; + int upload_x, upload_y; + int upload_x_xor = 0; + + if (info.mode == UPLOAD_MODE_BLOCK) + { + int word_offset = pixel_offset >> 1; + + if (info.tmem_stride_words == 0) + { + // Trivial case, we can just compute T factor directly and set upload_x_xor. + // Other than that, it works like a simple 1D upload. + + // However, if DxT is weird, we might end up in a situation where this word is written multiple times, + // or zero times. + + int iteration_candidate_first = word_offset & ~1; + int iteration_candidate_second = iteration_candidate_first + 1; + int first_t = (iteration_candidate_first * info.dxt) >> 16; + int second_t = (iteration_candidate_second * info.dxt) >> 16; + if (first_t != second_t) + { + int iteration_candidate_first_write_index = iteration_candidate_first ^ (first_t & 1); + int iteration_candidate_second_write_index = iteration_candidate_second ^ (second_t & 1); + if (iteration_candidate_second_write_index == word_offset) + upload_x_xor = (second_t & 1) << 1; + else if (iteration_candidate_first_write_index == word_offset) + upload_x_xor = (first_t & 1) << 1; + else + return; + } + else + upload_x_xor ^= (first_t & 1) << 1; + } + else + { + // Welp ... This is pure insanity, but if we want to be completely correct ... + int min_t = compute_upload_t(word_offset & ~1, info.min_t_mod); + int max_t = compute_upload_t(word_offset | 1, info.max_t_mod); + + // If t has a range, then the solution to Y = (t = floor(X * dt / 2048)) * stride + X has a range space of: + // Y - t_max * stride <= X <= Y - t_min * stride. + int max_word_candidate = (word_offset | 1) - tmem16_stride * min_t; + int min_word_candidate = (word_offset & ~1) - tmem16_stride * max_t; + + // If we have constraints for X, we constraint T further. + min_t = max(min_t, (min_word_candidate * info.dxt) >> 16); + max_t = min(max_t, (max_word_candidate * info.dxt) >> 16); + + bool found_candidate = false; + for (int t = max_t; t >= min_t; t--) + { + // Check to see if t is a solution to the equation. + // Potentially two targets could write here. + int candidate_solution_first = (word_offset & ~1) - tmem16_stride * t; + int candidate_solution_second = (word_offset | 1) - tmem16_stride * t; + + int candidate_t_first = (candidate_solution_first * info.dxt) >> 16; + int candidate_t_second = (candidate_solution_second * info.dxt) >> 16; + + if (((candidate_solution_second + candidate_t_second * tmem16_stride) ^ (candidate_t_second & 1)) == word_offset) + { + found_candidate = true; + pixel_offset = (candidate_solution_second << 1) + (pixel_offset & 1); + break; + } + else if (((candidate_solution_first + candidate_t_first * tmem16_stride) ^ (candidate_t_first & 1)) == word_offset) + { + found_candidate = true; + pixel_offset = (candidate_solution_first << 1) + (pixel_offset & 1); + break; + } + } + + // We strided over this 64bpp word. + if (!found_candidate) + return; + } + + upload_x = pixel_offset; + upload_y = 0; + } + else if (tmem16_stride == 0) + { + // For TMEM stride of 0 we're essentially replaying the same line over and over and the final visible result + // is what happened in Y == height - 1. + upload_x = pixel_offset; + upload_y = info.height - 1; + } + else + { + upload_y = compute_upload_t(pixel_offset, info.inv_tmem_stride_words); + upload_x = pixel_offset - upload_y * tmem16_stride; + + // If stride is smaller than width, we'll need to unroll the last line. + if (upload_y >= info.height) + { + upload_x += tmem16_stride * (upload_y - info.height + 1); + upload_y = info.height - 1; + } + } + + int last_line_upload_x = upload_x ^ ((upload_y & 1) << 1); + if (last_line_upload_x >= info.width && upload_y > 0) + { + // If the last line won't trigger a write, the previous line probably did. + upload_y--; + upload_x += tmem16_stride; + } + + int iteration_offset; + + upload_x ^= ((upload_y & 1) << 1) | upload_x_xor; + + if (info.vram_size == 3 || yuv) + { + iteration_offset = 4 * (upload_x & ~1); + } + else if (info.vram_size == 2) + { + // In 16bpp VRAM mode, we are supposed to step 4 pixels at a time (8 bytes), which will form 2 complete pixels. + // However, in 32bpp tile mode we're not shifting the X value appropriately. + // So, we're writing texels [0, 1, ..., 4, 5, ...], etc. + if ((upload_x & 2) != 0) + { + // We're not writing in this line, but the previous line might have! + // Interleaving patterns will form ... + if (upload_y > 0) + { + upload_y--; + upload_x += tmem16_stride; + upload_x ^= 2; + } + else + { + // These 2 words will never be written to. + return; + } + } + iteration_offset = 2 * (upload_x & ~1); + } + else if (info.vram_size == 1) + { + // 4 potential mirrors. + for (int i = 0; i < 4 && upload_y > 0 && (upload_x & 6) != 0; i++) + { + upload_y--; + upload_x += tmem16_stride; + upload_x ^= 2; + } + + if ((upload_x & 6) != 0) + { + // These 6 words will never be written to. + return; + } + + iteration_offset = upload_x & ~1; + } + + if (upload_x >= info.width) + return; + + int line_rdram_addr = info.vram_addr + ((upload_y * info.vram_width) << (info.vram_size - 1)); + + // The loading pipeline reads 64 bits per iteration. + int rdram_addr = line_rdram_addr + iteration_offset + 4 * (upload_x & 1); + + uint word; + if ((rdram_addr & 3) == 0) + { + word = uint(vram32.data[rdram_addr >> 2]); + } + else + { + word = (uint(vram8.data[rdram_addr ^ 3]) << 24) | + (uint(vram8.data[(rdram_addr + 1) ^ 3]) << 16) | + (uint(vram8.data[(rdram_addr + 2) ^ 3]) << 8) | + uint(vram8.data[(rdram_addr + 3) ^ 3]); + } + + if (yuv) + { + // Lower TMEM receives interleaved UV samples, while upper receives Y. + if (upper_tmem) + { + uint y0 = (word >> 16u) & 0xffu; + uint y1 = (word >> 0u) & 0xffu; + word = (y0 << 8u) | y1; + } + else + { + uint u = (word >> 24u) & 0xffu; + uint v = (word >> 8u) & 0xffu; + word = (u << 8u) | v; + } + } + else + { + word >>= 16u - 16u * uint(upper_tmem); + word &= 0xffffu; + } + current_tmem_value = word; + tmem_dirty = true; +} + +void update_tmem_16(UploadInfo info, int tmem16_index) +{ + int tmem16_offset = (info.tmem_offset & 0xfff) >> 1; + int tmem16_stride = info.tmem_stride_words; + + int pixel_offset = (tmem16_index - tmem16_offset) & 0x7ff; + int upload_x, upload_y; + int upload_x_xor = 0; + + if (info.mode == UPLOAD_MODE_BLOCK) + { + int word_offset = pixel_offset >> 2; + + if (info.tmem_stride_words == 0) + { + // Trivial case, we can just compute T factor directly and set upload_x_xor. + // Other than that, it works like a simple 1D upload. + upload_x_xor = (((word_offset * info.dxt) >> 16) & 1) << 1; + } + else + { + // Welp ... This is pure insanity, but if we want to be completely correct ... + int min_t = compute_upload_t(word_offset, info.min_t_mod); + int max_t = compute_upload_t(word_offset, info.max_t_mod); + + // If t has a range, then the solution to Y = (t = floor(X * dt / 2048)) * stride + X has a range space of: + // Y - t_max * stride <= X <= Y - t_min * stride. + int max_word_candidate = word_offset - tmem16_stride * min_t; + int min_word_candidate = word_offset - tmem16_stride * max_t; + + // If we have constraints for X, we constraint T further. + min_t = max(min_t, (min_word_candidate * info.dxt) >> 16); + max_t = min(max_t, (max_word_candidate * info.dxt) >> 16); + + bool found_candidate = false; + for (int t = max_t; t >= min_t; t--) + { + // Check to see if t is a solution to the equation. + int candidate_solution = word_offset - tmem16_stride * t; + int computed_t = (candidate_solution * info.dxt) >> 16; + if (candidate_solution + computed_t * tmem16_stride == word_offset) + { + found_candidate = true; + upload_x_xor = (computed_t & 1) << 1; + pixel_offset = (candidate_solution << 2) + (pixel_offset & 3); + } + } + + // We strided over this 64bpp word. + if (!found_candidate) + return; + } + + upload_x = pixel_offset; + upload_y = 0; + } + else if (tmem16_stride == 0) + { + // For TMEM stride of 0 we're essentially replaying the same line over and over and the final visible result + // is what happened in Y == height - 1. + upload_x = pixel_offset; + upload_y = info.height - 1; + } + else + { + upload_y = compute_upload_t(pixel_offset, info.inv_tmem_stride_words); + upload_x = pixel_offset - upload_y * tmem16_stride; + + // If stride is smaller than width, we'll need to unroll the last line. + if (upload_y >= info.height) + { + upload_x += tmem16_stride * (upload_y - info.height + 1); + upload_y = info.height - 1; + } + } + + // This is pure bullshit magic which arises as an edge case when + // tile pixel size does not match texture image size. + // Should not happen in normal applications. + // This is basically doing scatter-as-gather, so we need to figure out + // if there is no write to our texel after all (striding), or if there are multiple writes + // to our texel, in which case we need to figure out the last writer. + // This code is black magic, and it's made with blood, sweat and tears from testing with lots of trial and error. + int iteration_offset; + if (info.tmem_size != info.vram_size) + { + if (info.vram_size - info.tmem_size == 1) + { + // If TMEM is N bpp but VRAM is 2N bpp, we will get mirrored writes here. + // Select which half of the 2N bpp load we observe in TMEM. + iteration_offset = (upload_x & ~3) * 4; + if ((upload_x & ~3) + 2 < (info.vram_effective_width >> (3 - info.vram_size))) + iteration_offset += 8; + } + else if (info.tmem_size == 2 && info.vram_size == 1) + { + // In 8bpp VRAM mode, we are supposed to step 8 pixels at a time (8 bytes), which will form 4 complete pixels. + // However, in 16bpp tile mode we're not shifting the X value appropriately. + // So, we're writing texels [0, 1, 2, 3, ..., 8, 9, 10, 11], etc. + if ((upload_x & 4) != 0) + { + // We're not writing in this line, but the previous line might have! + // Interleaving patterns will form ... + if ((tmem16_stride & 4) != 0 && upload_y > 0) + { + upload_y--; + upload_x += tmem16_stride; + } + else + { + // These 4 words will never be written to. + return; + } + } + iteration_offset = upload_x & ~3; + } + } + else + { + // Normal case TMEM size aligns with VRAM size. + iteration_offset = (upload_x & ~3) * 2; + } + + if (upload_x >= info.width) + return; + + int line_rdram_addr = info.vram_addr + ((upload_y * info.vram_width) << (info.vram_size - 1)); + upload_x ^= ((upload_y & 1) << 1) | upload_x_xor; + + // The loading pipeline reads 64 bits per iteration. + int rdram_addr = line_rdram_addr + iteration_offset + 2 * (upload_x & 3); + + uint word; + if ((rdram_addr & 1) == 0) + word = uint(vram16.data[(rdram_addr >> 1) ^ 1]); + else + word = (uint(vram8.data[rdram_addr ^ 3]) << 8) | uint(vram8.data[(rdram_addr + 1) ^ 3]); + + current_tmem_value = word; + tmem_dirty = true; +} + +void update_tmem_lut(UploadInfo info, int tmem16_index) +{ + int tmem16_offset = (info.tmem_offset & 0xfff) >> 1; + int pixel_offset = (tmem16_index - tmem16_offset) & 0x7ff; + int pixel_offset_splat; + + if (info.vram_size - info.tmem_size == 2) + { + pixel_offset_splat = pixel_offset >> 2; + pixel_offset_splat <<= info.vram_size - 2; + if (pixel_offset_splat >= info.vram_effective_width) + return; + } + else if (info.vram_size - info.tmem_size == 1) + { + if ((pixel_offset & 4) == 0) + { + int shamt = info.tmem_size + (info.vram_size == 2 ? 2 : 0); + pixel_offset_splat = (pixel_offset & ~7) >> shamt; + if (pixel_offset_splat >= info.vram_effective_width) + return; + } + else + { + return; + } + } + else if (info.vram_size == info.tmem_size) + { + if ((pixel_offset & 0xc) == 0) + { + int shamt = info.tmem_size + (info.vram_size == 2 ? 2 : 0); + pixel_offset_splat = (pixel_offset & ~3) >> shamt; + if (pixel_offset_splat >= info.vram_effective_width) + return; + } + else + { + return; + } + } + else if (info.vram_size - info.tmem_size == -1) + { + if ((pixel_offset & 0x1c) == 0) + { + int shamt = info.tmem_size; + pixel_offset_splat = (pixel_offset >> shamt) & ~7; + if (pixel_offset_splat >= info.vram_effective_width) + return; + } + else + { + return; + } + } + else + { + // 4bpp tile, 32bpp VRAM. Mirrored writes. + int span_iteration = pixel_offset >> 2; + span_iteration = span_iteration * 2; + int span_pixel = span_iteration * 2; + if (span_pixel + 2 < info.vram_effective_width) + span_pixel += 2; + + if (span_pixel >= info.vram_effective_width) + return; + + pixel_offset_splat = span_pixel; + } + + int rdram_addr = info.vram_addr + (pixel_offset_splat << (info.vram_size - 1)); + + // Odd behavior when we have unaligned TLUT uploads. + rdram_addr += 2 * (rdram_addr & 1) * (pixel_offset & 3); + + uint word; + if ((rdram_addr & 1) == 0) + word = uint(vram16.data[(rdram_addr >> 1) ^ 1]); + else + word = (uint(vram8.data[rdram_addr ^ 3]) << 8) | uint(vram8.data[(rdram_addr + 1) ^ 3]); + + current_tmem_value = word; + tmem_dirty = true; +} + +void main() +{ + tmem_dirty = false; + current_tmem_value = uint(tmem16.data[gl_GlobalInvocationID.x]); + int tmem16_index = int(gl_GlobalInvocationID.x) ^ 1; + bool upper_tmem = tmem16_index >= 0x400; + + tile_instances.instances[0].data[gl_GlobalInvocationID.x] = mem_u16(current_tmem_value); + + int num_uploads = registers.num_uploads; + for (int i = 0; i < num_uploads; i++) + { + UploadInfo info = upload_info[i]; + if (info.mode == UPLOAD_MODE_TLUT) + { + update_tmem_lut(info, tmem16_index); + } + else + { + bool yuv = info.tmem_fmt == TEXTURE_FMT_YUV; + if (info.tmem_size == 3 || yuv) + update_tmem_32(info, tmem16_index & 0x3ff, upper_tmem, yuv); + else + update_tmem_16(info, tmem16_index); + } + + tile_instances.instances[i + 1].data[gl_GlobalInvocationID.x] = mem_u16(current_tmem_value); + } + + if (tmem_dirty) + tmem16.data[gl_GlobalInvocationID.x] = mem_u16(current_tmem_value); +} \ No newline at end of file diff --git a/parallel-rdp/shaders/ubershader.comp b/parallel-rdp/shaders/ubershader.comp new file mode 100644 index 00000000..756be5a8 --- /dev/null +++ b/parallel-rdp/shaders/ubershader.comp @@ -0,0 +1,103 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +// RIP to any GPU which attempts to execute this monstrosity :) + +#if SUBGROUP +#extension GL_KHR_shader_subgroup_basic : require +#extension GL_KHR_shader_subgroup_vote : require +#extension GL_KHR_shader_subgroup_ballot : require +#extension GL_KHR_shader_subgroup_arithmetic : require +#endif +#include "small_types.h" + +layout(local_size_x_id = 3, local_size_y_id = 4) in; + +#include "debug.h" +#include "data_structures_buffers.h" + +#include "noise.h" +#include "memory_interfacing.h" +#include "shading.h" + +layout(push_constant, std430) uniform Registers +{ + uint fb_addr_index; + uint fb_depth_addr_index; + uint fb_width; + uint fb_height; + uint group_mask; +} registers; + +layout(constant_id = 5) const int MAX_PRIMITIVES = 256; +layout(constant_id = 6) const int MAX_WIDTH = 1024; + +const int TILE_BINNING_STRIDE = MAX_PRIMITIVES / 32; +const int MAX_TILES_X = MAX_WIDTH / int(gl_WorkGroupSize.x); + +void main() +{ + int x = int(gl_GlobalInvocationID.x); + int y = int(gl_GlobalInvocationID.y); + ivec2 tile = ivec2(gl_WorkGroupID.xy); + + int linear_tile = tile.x + tile.y * MAX_TILES_X; + int linear_tile_base = linear_tile * TILE_BINNING_STRIDE; + + uint coarse_binned = tile_binning_coarse.elems[linear_tile] & registers.group_mask; + if (coarse_binned == 0u) + return; + + init_tile(gl_GlobalInvocationID.xy, + registers.fb_width, registers.fb_height, + registers.fb_addr_index, registers.fb_depth_addr_index); + + while (coarse_binned != 0u) + { + int mask_index = findLSB(coarse_binned); + coarse_binned &= ~uint(1 << mask_index); + + uint binned = tile_binning.elems[linear_tile_base + mask_index]; + while (binned != 0u) + { + int i = findLSB(binned); + binned &= ~uint(1 << i); + uint primitive_index = uint(i + 32 * mask_index); + + ShadedData shaded; + if (shade_pixel(x, y, primitive_index, shaded)) + { + if ((shaded.coverage_count & COVERAGE_FILL_BIT) != 0) + fill_color(derived_setup.elems[primitive_index].fill_color); + else if ((shaded.coverage_count & COVERAGE_COPY_BIT) != 0) + copy_pipeline(shaded.z_dith, primitive_index); + else + depth_blend(x, y, primitive_index, shaded); + } + } + } + + finish_tile(gl_GlobalInvocationID.xy, + registers.fb_width, registers.fb_height, + registers.fb_addr_index, registers.fb_depth_addr_index); +} diff --git a/parallel-rdp/shaders/update_upscaled_domain_post.comp b/parallel-rdp/shaders/update_upscaled_domain_post.comp new file mode 100644 index 00000000..6c339201 --- /dev/null +++ b/parallel-rdp/shaders/update_upscaled_domain_post.comp @@ -0,0 +1,119 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "small_types.h" +#include "fb_formats.h" + +layout(local_size_x_id = 3) in; + +layout(constant_id = 0) const int RDRAM_SIZE = 8 * 1024 * 1024; +const int RDRAM_MASK_8 = RDRAM_SIZE - 1; +const int RDRAM_MASK_16 = RDRAM_MASK_8 >> 1; +const int RDRAM_MASK_32 = RDRAM_MASK_8 >> 2; +layout(constant_id = 1) const int FB_SIZE_LOG2 = 0; +layout(constant_id = 2) const bool COLOR_DEPTH_ALIAS = false; +layout(constant_id = 4) const int NUM_SAMPLES = 1; + +layout(push_constant) uniform Registers +{ + uint num_pixels, fb_addr, fb_depth_addr; +} registers; + +layout(set = 0, binding = 0) readonly buffer RDRAMSingleSampled8 +{ + uint8_t elems[]; +} vram8; + +layout(set = 0, binding = 0) readonly buffer RDRAMSingleSampled16 +{ + uint16_t elems[]; +} vram16; + +layout(set = 0, binding = 0) readonly buffer RDRAMSingleSampled32 +{ + uint elems[]; +} vram32; + +layout(set = 0, binding = 2) buffer RDRAMUpscalingReference8 +{ + uint8_t elems[]; +} vram_reference8; + +layout(set = 0, binding = 2) buffer RDRAMUpscalingReference16 +{ + uint16_t elems[]; +} vram_reference16; + +layout(set = 0, binding = 2) buffer RDRAMUpscalingReference32 +{ + uint elems[]; +} vram_reference32; + +void copy_rdram_8(uint index) +{ + index &= RDRAM_MASK_8; + uint real_word = uint(vram8.elems[index]); + vram_reference8.elems[index] = uint8_t(real_word); +} + +void copy_rdram_16(uint index) +{ + index &= RDRAM_MASK_16; + uint real_word = uint(vram16.elems[index]); + vram_reference16.elems[index] = uint16_t(real_word); +} + +void copy_rdram_32(uint index) +{ + index &= RDRAM_MASK_32; + uint real_word = vram32.elems[index]; + vram_reference32.elems[index] = real_word; +} + +void main() +{ + uint index = gl_GlobalInvocationID.x; + if (index >= registers.num_pixels) + return; + + uint depth_index = index + registers.fb_depth_addr; + uint color_index = index + registers.fb_addr; + + switch (FB_SIZE_LOG2) + { + case 0: + copy_rdram_8(color_index); + break; + + case 1: + copy_rdram_16(color_index); + break; + + case 2: + copy_rdram_32(color_index); + break; + } + + if (!COLOR_DEPTH_ALIAS) + copy_rdram_16(depth_index); +} \ No newline at end of file diff --git a/parallel-rdp/shaders/update_upscaled_domain_pre.comp b/parallel-rdp/shaders/update_upscaled_domain_pre.comp new file mode 100644 index 00000000..c69ca9fd --- /dev/null +++ b/parallel-rdp/shaders/update_upscaled_domain_pre.comp @@ -0,0 +1,185 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "small_types.h" + +layout(local_size_x_id = 3) in; + +layout(constant_id = 0) const int RDRAM_SIZE = 8 * 1024 * 1024; +const int RDRAM_MASK_8 = RDRAM_SIZE - 1; +const int RDRAM_MASK_16 = RDRAM_MASK_8 >> 1; +const int RDRAM_MASK_32 = RDRAM_MASK_8 >> 2; +layout(constant_id = 1) const int FB_SIZE_LOG2 = 0; +layout(constant_id = 2) const bool COLOR_DEPTH_ALIAS = false; +layout(constant_id = 4) const int NUM_SAMPLES = 1; + +layout(push_constant) uniform Registers +{ + uint num_pixels, fb_addr, fb_depth_addr; +} registers; + +layout(set = 0, binding = 0) readonly buffer RDRAMSingleSampled8 +{ + uint8_t elems[]; +} vram8; + +layout(set = 0, binding = 0) readonly buffer RDRAMSingleSampled16 +{ + uint16_t elems[]; +} vram16; + +layout(set = 0, binding = 0) readonly buffer RDRAMSingleSampled32 +{ + uint elems[]; +} vram32; + +layout(set = 0, binding = 1) readonly buffer RDRAMHiddenSingleSampled +{ + uint8_t elems[]; +} hidden_vram; + +layout(set = 0, binding = 2) buffer RDRAMUpscalingReference8 +{ + uint8_t elems[]; +} vram_reference8; + +layout(set = 0, binding = 2) buffer RDRAMUpscalingReference16 +{ + uint16_t elems[]; +} vram_reference16; + +layout(set = 0, binding = 2) buffer RDRAMUpscalingReference32 +{ + uint elems[]; +} vram_reference32; + +layout(set = 0, binding = 3) buffer RDRAMUpscaling8 +{ + uint8_t elems[]; +} vram_upscaled8; + +layout(set = 0, binding = 3) buffer RDRAMUpscaling16 +{ + uint16_t elems[]; +} vram_upscaled16; + +layout(set = 0, binding = 3) buffer RDRAMUpscaling32 +{ + uint elems[]; +} vram_upscaled32; + +layout(set = 0, binding = 4) buffer RDRAMHiddenUpscaling +{ + uint8_t elems[]; +} hidden_vram_upscaled; + +void update_rdram_8(uint index) +{ + index &= RDRAM_MASK_8; + + uint real_word = uint(vram8.elems[index]); + uint reference_word = uint(vram_reference8.elems[index]); + + if (real_word != reference_word) + { + uint mirrored_index = index ^ 3u; + uint real_hidden_word = uint(hidden_vram.elems[mirrored_index >> 1u]); + for (int i = 0; i < NUM_SAMPLES; i++) + { + vram_upscaled8.elems[index + i * RDRAM_SIZE] = uint8_t(real_word); + if ((mirrored_index & 1u) != 0u) + hidden_vram_upscaled.elems[(mirrored_index >> 1u) + i * (RDRAM_SIZE >> 1)] = uint8_t(real_hidden_word); + } + vram_reference8.elems[index] = uint8_t(real_word); + } +} + +void update_rdram_16(uint index) +{ + index &= RDRAM_MASK_16; + + uint real_word = uint(vram16.elems[index]); + uint reference_word = uint(vram_reference16.elems[index]); + + if (real_word != reference_word) + { + uint mirrored_index = index ^ 1u; + uint real_hidden_word = uint(hidden_vram.elems[mirrored_index]); + for (int i = 0; i < NUM_SAMPLES; i++) + { + vram_upscaled16.elems[index + i * (RDRAM_SIZE >> 1)] = uint16_t(real_word); + hidden_vram_upscaled.elems[mirrored_index + i * (RDRAM_SIZE >> 1)] = uint8_t(real_hidden_word); + } + vram_reference16.elems[index] = uint16_t(real_word); + } +} + +void update_rdram_32(uint index) +{ + index &= RDRAM_MASK_32; + + uint real_word = vram32.elems[index]; + uint reference_word = vram_reference32.elems[index]; + + if (real_word != reference_word) + { + uint real_hidden_word0 = uint(hidden_vram.elems[2u * index]); + uint real_hidden_word1 = uint(hidden_vram.elems[2u * index + 1u]); + + for (int i = 0; i < NUM_SAMPLES; i++) + { + vram_upscaled32.elems[index + i * (RDRAM_SIZE >> 2)] = real_word; + hidden_vram_upscaled.elems[2u * index + i * (RDRAM_SIZE >> 1)] = uint8_t(real_hidden_word0); + hidden_vram_upscaled.elems[2u * index + 1u + i * (RDRAM_SIZE >> 1)] = uint8_t(real_hidden_word1); + } + vram_reference32.elems[index] = real_word; + } +} + +void main() +{ + uint index = gl_GlobalInvocationID.x; + if (index >= registers.num_pixels) + return; + + uint depth_index = index + registers.fb_depth_addr; + uint color_index = index + registers.fb_addr; + + switch (FB_SIZE_LOG2) + { + case 0: + update_rdram_8(color_index); + break; + + case 1: + update_rdram_16(color_index); + break; + + case 2: + update_rdram_32(color_index); + break; + } + + if (!COLOR_DEPTH_ALIAS) + update_rdram_16(depth_index); +} diff --git a/parallel-rdp/shaders/update_upscaled_domain_resolve.comp b/parallel-rdp/shaders/update_upscaled_domain_resolve.comp new file mode 100644 index 00000000..a0a58043 --- /dev/null +++ b/parallel-rdp/shaders/update_upscaled_domain_resolve.comp @@ -0,0 +1,277 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "small_types.h" +#include "fb_formats.h" + +layout(local_size_x_id = 3) in; + +layout(constant_id = 0) const int RDRAM_SIZE = 8 * 1024 * 1024; +const int RDRAM_MASK_8 = RDRAM_SIZE - 1; +const int RDRAM_MASK_16 = RDRAM_MASK_8 >> 1; +const int RDRAM_MASK_32 = RDRAM_MASK_8 >> 2; +layout(constant_id = 1) const int FB_SIZE_LOG2 = 0; +layout(constant_id = 2) const bool COLOR_DEPTH_ALIAS = false; +layout(constant_id = 4) const int NUM_SAMPLES = 1; +layout(constant_id = 5) const bool DITHER = false; +layout(constant_id = 6) const bool RDRAM_UNSCALED_WRITE_MASK = false; + +layout(push_constant) uniform Registers +{ + uint num_pixels, fb_addr, fb_depth_addr, width, height; +} registers; + +layout(set = 0, binding = 0) writeonly buffer RDRAMSingleSampled8 +{ + uint8_t elems[]; +} vram8; + +layout(set = 0, binding = 0) writeonly buffer RDRAMSingleSampled16 +{ + uint16_t elems[]; +} vram16; + +layout(set = 0, binding = 0) writeonly buffer RDRAMSingleSampled32 +{ + uint elems[]; +} vram32; + +layout(set = 0, binding = 2) writeonly buffer RDRAMUpscalingReference8 +{ + uint8_t elems[]; +} vram_reference8; + +layout(set = 0, binding = 2) writeonly buffer RDRAMUpscalingReference16 +{ + uint16_t elems[]; +} vram_reference16; + +layout(set = 0, binding = 2) writeonly buffer RDRAMUpscalingReference32 +{ + uint elems[]; +} vram_reference32; + +layout(set = 0, binding = 3) readonly buffer RDRAMUpscaling8 +{ + uint8_t elems[]; +} vram_upscaled8; + +layout(set = 0, binding = 3) readonly buffer RDRAMUpscaling16 +{ + uint16_t elems[]; +} vram_upscaled16; + +layout(set = 0, binding = 3) readonly buffer RDRAMUpscaling32 +{ + uint elems[]; +} vram_upscaled32; + +layout(set = 0, binding = 4) readonly buffer RDRAMHiddenUpscaling +{ + uint8_t elems[]; +} hidden_vram_upscaled; + +void copy_rdram_8(uint index) +{ + uint r = 0u; + for (int i = 0; i < NUM_SAMPLES; i++) + { + uint real_word = uint(vram_upscaled8.elems[index]); + r += real_word; + } + + r = (r + (NUM_SAMPLES >> 1)) / NUM_SAMPLES; + vram_reference8.elems[index] = uint8_t(r); + vram8.elems[index] = uint8_t(r); +} + +uvec4 decode_rgba5551(uint word) +{ + return (uvec4(word) >> uvec4(11, 6, 1, 0)) & uvec4(0x1f, 0x1f, 0x1f, 1); +} + +uint encode_rgba5551(uvec4 color) +{ + return (color.r << 11u) | (color.g << 6u) | (color.b << 1u) | color.a; +} + +const uint bayer_dither_lut[16] = uint[]( + 0, 4, 1, 5, + 4, 0, 5, 1, + 3, 7, 2, 6, + 7, 3, 6, 2); + +void copy_rdram_16(uint index, uint x, uint y) +{ + uvec4 rgba = uvec4(0u); + for (int i = 0; i < NUM_SAMPLES; i++) + { + uint real_word = uint(vram_upscaled16.elems[index + i * (RDRAM_SIZE >> 1)]); + rgba += decode_rgba5551(real_word); + } + + if (DITHER) + { + uint dither_value = bayer_dither_lut[(y & 3u) * 4u + (x & 3u)] * NUM_SAMPLES; + rgba = (8u * rgba + dither_value) / (8 * NUM_SAMPLES); + } + else + { + rgba = (rgba + (NUM_SAMPLES >> 1)) / NUM_SAMPLES; + } + + uint encoded = encode_rgba5551(rgba); + vram16.elems[index] = uint16_t(encoded); + vram_reference16.elems[index] = uint16_t(encoded); +} + +void copy_rdram_16_single_sample(uint index) +{ + // Copies the first sample. We cannot meaningfully filter depth samples. + // The first sample should overlap exactly with the single-sampled version. + // Coverage clipping might slightly change the result, but shouldn't be different enough to break things. + uint upscaled_word = uint(vram_upscaled16.elems[index]); + vram16.elems[index] = uint16_t(upscaled_word); + vram_reference16.elems[index] = uint16_t(upscaled_word); +} + +uvec4 decode_rgba8(uint word) +{ + return (uvec4(word) >> uvec4(24, 16, 8, 0)) & uvec4(0xff); +} + +uint encode_rgba8(uvec4 color) +{ + return (color.r << 24u) | (color.g << 16u) | (color.b << 8u) | (color.a << 0u); +} + +void copy_rdram_32(uint index) +{ + uvec4 rgba = uvec4(0u); + for (int i = 0; i < NUM_SAMPLES; i++) + { + uint real_word = vram_upscaled32.elems[index + i * (RDRAM_SIZE >> 2)]; + rgba += decode_rgba8(real_word); + } + + rgba = (rgba + (NUM_SAMPLES >> 1)) / NUM_SAMPLES; + uint encoded = encode_rgba8(rgba); + vram32.elems[index] = encoded; + vram_reference32.elems[index] = encoded; +} + +void main() +{ + uvec2 coord = gl_GlobalInvocationID.xy; + uint index = coord.y * registers.width + coord.x; + uint depth_index = index + registers.fb_depth_addr; + uint color_index = index + registers.fb_addr; + + uvec2 mask_coord = coord >> 2u; + uint mask_index = mask_coord.x + mask_coord.y * ((registers.width + 3) >> 2u); + + uint write_mask; + if (coord.x < registers.width) + write_mask = vram_upscaled32.elems[NUM_SAMPLES * (RDRAM_SIZE >> 2) + mask_index]; + else + write_mask = 0u; + + uint shamt = 2u * ((coord.x & 3u) + 4u * (coord.y & 3u)); + write_mask = write_mask >> shamt; + bool color_write_mask = (write_mask & 1u) != 0u; + bool depth_write_mask = (write_mask & 2u) != 0u; + + if (color_write_mask) + { + switch (FB_SIZE_LOG2) + { + case 0: + color_index &= RDRAM_MASK_8; + color_index ^= 3u; + copy_rdram_8(color_index); + break; + + case 1: + color_index &= RDRAM_MASK_16; + color_index ^= 1u; + copy_rdram_16(color_index, coord.x, coord.y); + break; + + case 2: + color_index &= RDRAM_MASK_32; + copy_rdram_32(color_index); + break; + } + } + + // Metal portability: Memory barriers must happen in uniform control flow. + if (RDRAM_UNSCALED_WRITE_MASK) + { + // Need this memory barrier to ensure the mask readback does not read + // an invalid value from RDRAM. If the mask is seen, the valid RDRAM value is + // also coherent. + memoryBarrierBuffer(); + + if (color_write_mask) + { + switch (FB_SIZE_LOG2) + { + case 0: + vram8.elems[color_index + RDRAM_SIZE] = mem_u8(0xff); + break; + + case 1: + vram16.elems[color_index + (RDRAM_SIZE >> 1)] = mem_u16(0xffff); + break; + + case 2: + vram32.elems[color_index + (RDRAM_SIZE >> 2)] = ~0u; + break; + } + } + } + + // Don't bother writing back hidden VRAM. It is not visible to host anyways, and coverage is meaningless when it's filtered. + // If host later decides to modify the CPU memory, then the hidden VRAM values become complete bogus either way. + + if (!COLOR_DEPTH_ALIAS) + { + if (depth_write_mask) + { + depth_index &= RDRAM_MASK_16; + depth_index ^= 1u; + copy_rdram_16_single_sample(depth_index); + } + + // Metal portability: Memory barriers must happen in uniform control flow. + if (RDRAM_UNSCALED_WRITE_MASK) + { + // Need this memory barrier to ensure the mask readback does not read + // an invalid value from RDRAM. If the mask is seen, the valid RDRAM value is + // also coherent. + memoryBarrierBuffer(); + if (depth_write_mask) + vram16.elems[depth_index + (RDRAM_SIZE >> 1u)] = mem_u16(0xffff); + } + } +} diff --git a/parallel-rdp/shaders/vi_blend_fields.frag b/parallel-rdp/shaders/vi_blend_fields.frag new file mode 100644 index 00000000..038104c9 --- /dev/null +++ b/parallel-rdp/shaders/vi_blend_fields.frag @@ -0,0 +1,33 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#extension GL_EXT_samplerless_texture_functions : require + +layout(location = 0) out vec4 FragColor; +layout(set = 0, binding = 0) uniform texture2D uImage; + +void main() +{ + // A persistent pixel does not propagate more than one frame. + vec4 input_pixel = texelFetch(uImage, ivec2(gl_FragCoord.xy), 0); + FragColor = vec4(input_pixel.rgb * input_pixel.a, 0.0); +} \ No newline at end of file diff --git a/parallel-rdp/shaders/vi_debug.h b/parallel-rdp/shaders/vi_debug.h new file mode 100644 index 00000000..7f007a64 --- /dev/null +++ b/parallel-rdp/shaders/vi_debug.h @@ -0,0 +1,60 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef VI_DEBUG_H_ +#define VI_DEBUG_H_ + +#if defined(DEBUG_ENABLE) && DEBUG_ENABLE +#include "debug_channel.h" + +void GENERIC_MESSAGE_(int line) +{ + add_debug_message(0, uvec3(gl_FragCoord.xy, 0), line); +} + +void GENERIC_MESSAGE_(int line, uint v) +{ + add_debug_message(0, uvec3(gl_FragCoord.xy, 0), uvec2(line, v)); +} + +void GENERIC_MESSAGE_(int line, uvec2 v) +{ + add_debug_message(0, uvec3(gl_FragCoord.xy, 0), uvec3(line, v)); +} + +void GENERIC_MESSAGE_(int line, uvec3 v) +{ + add_debug_message(0, uvec3(gl_FragCoord.xy, 0), uvec4(line, v)); +} + +#define GENERIC_MESSAGE0() GENERIC_MESSAGE_(__LINE__) +#define GENERIC_MESSAGE1(a) GENERIC_MESSAGE_(__LINE__, a) +#define GENERIC_MESSAGE2(a, b) GENERIC_MESSAGE_(__LINE__, uvec2(a, b)) +#define GENERIC_MESSAGE3(a, b, c) GENERIC_MESSAGE_(__LINE__, uvec3(a, b, c)) +#else +#define GENERIC_MESSAGE0() +#define GENERIC_MESSAGE1(a) +#define GENERIC_MESSAGE2(a, b) +#define GENERIC_MESSAGE3(a, b, c) +#endif + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/vi_deinterlace.frag b/parallel-rdp/shaders/vi_deinterlace.frag new file mode 100644 index 00000000..f190b1fe --- /dev/null +++ b/parallel-rdp/shaders/vi_deinterlace.frag @@ -0,0 +1,31 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +layout(location = 0) in vec2 vUV; +layout(set = 0, binding = 0) uniform sampler2D uSampler; +layout(location = 0) out vec4 FragColor; + +void main() +{ + FragColor = textureLod(uSampler, vUV, 0.0); +} \ No newline at end of file diff --git a/parallel-rdp/shaders/vi_deinterlace.vert b/parallel-rdp/shaders/vi_deinterlace.vert new file mode 100644 index 00000000..9aaca96c --- /dev/null +++ b/parallel-rdp/shaders/vi_deinterlace.vert @@ -0,0 +1,41 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +layout(location = 0) out vec2 vUV; + +layout(push_constant) uniform UBO +{ + float y_offset; +} registers; + +void main() +{ + if (gl_VertexIndex == 0) + gl_Position = vec4(-1.0, -1.0, 0.0, 1.0); + else if (gl_VertexIndex == 1) + gl_Position = vec4(-1.0, +3.0, 0.0, 1.0); + else + gl_Position = vec4(+3.0, -1.0, 0.0, 1.0); + + vUV = vec2(gl_Position.x * 0.5 + 0.5, gl_Position.y * 0.5 + 0.5 + registers.y_offset); +} diff --git a/parallel-rdp/shaders/vi_divot.frag b/parallel-rdp/shaders/vi_divot.frag new file mode 100644 index 00000000..9be923c5 --- /dev/null +++ b/parallel-rdp/shaders/vi_divot.frag @@ -0,0 +1,93 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#extension GL_EXT_samplerless_texture_functions : require + +#include "vi_debug.h" + +layout(location = 0) out uvec4 FragColor; +#if defined(FETCH_BUG) && FETCH_BUG +layout(location = 1) out uvec4 FragColorFetchBug; +#endif + +layout(set = 0, binding = 0) uniform mediump utexture2DArray uFetchCache; + +void swap(inout uint a, inout uint b) +{ + uint tmp = a; + a = b; + b = tmp; +} + +// Workaround Metal using median3. +uint Median3(uint left, uint center, uint right) +{ + if (left < center) + swap(left, center); + if (center < right) + swap(center, right); + if (left < center) + swap(left, center); + + return center; +} + +void main() +{ + ivec2 pix = ivec2(gl_FragCoord.xy); + + uvec4 left = texelFetch(uFetchCache, ivec3(pix, 0), 0); + uvec4 mid = texelFetchOffset(uFetchCache, ivec3(pix, 0), 0, ivec2(1, 0)); + uvec4 right = texelFetchOffset(uFetchCache, ivec3(pix, 0), 0, ivec2(2, 0)); + + if ((left.a & mid.a & right.a) == 7u) + { + FragColor = mid; + } + else + { + // Median filter. TODO: Optimize with mid3? + uint r = Median3(left.r, mid.r, right.r); + uint g = Median3(left.g, mid.g, right.g); + uint b = Median3(left.b, mid.b, right.b); + FragColor = uvec4(r, g, b, mid.a); + } + +#if defined(FETCH_BUG) && FETCH_BUG + left = texelFetch(uFetchCache, ivec3(pix, 1), 0); + mid = texelFetchOffset(uFetchCache, ivec3(pix, 1), 0, ivec2(1, 0)); + right = texelFetchOffset(uFetchCache, ivec3(pix, 1), 0, ivec2(2, 0)); + + if ((left.a & mid.a & right.a) == 7u) + { + FragColorFetchBug = mid; + } + else + { + // Median filter. TODO: Optimize with mid3? + uint r = Median3(left.r, mid.r, right.r); + uint g = Median3(left.g, mid.g, right.g); + uint b = Median3(left.b, mid.b, right.b); + FragColorFetchBug = uvec4(r, g, b, mid.a); + } +#endif +} diff --git a/parallel-rdp/shaders/vi_fetch.frag b/parallel-rdp/shaders/vi_fetch.frag new file mode 100644 index 00000000..6fba3655 --- /dev/null +++ b/parallel-rdp/shaders/vi_fetch.frag @@ -0,0 +1,164 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#extension GL_EXT_samplerless_texture_functions : require +#include "small_types.h" +#include "vi_status.h" +#include "vi_debug.h" + +layout(set = 0, binding = 0) uniform mediump utexture2D uAAInput; + +layout(location = 0) out uvec4 FragColor; +#if defined(FETCH_BUG) && FETCH_BUG +layout(location = 1) out uvec4 FragColorFetchBug; +#endif + +layout(push_constant) uniform Registers +{ + ivec2 offset; +} registers; + +ivec2 pix; +uvec4 fetch_color_offset(ivec2 offset) +{ + return texelFetch(uAAInput, pix + offset, 0); +} + +void check_neighbor(uvec4 candidate, + inout uvec3 lo, inout uvec3 hi, + inout uvec3 second_lo, inout uvec3 second_hi) +{ + if (candidate.a == 7u) + { + second_lo = min(second_lo, max(candidate.rgb, lo)); + second_hi = max(second_hi, min(candidate.rgb, hi)); + + lo = min(candidate.rgb, lo); + hi = max(candidate.rgb, hi); + } +} + +void main() +{ + pix = ivec2(gl_FragCoord.xy) + registers.offset; + + uvec4 mid_pixel = fetch_color_offset(ivec2(0)); + + // AA-filter. If coverage is not full, we blend current pixel against background. + uvec3 color; +#if defined(FETCH_BUG) && FETCH_BUG + uvec3 color_bug; +#endif + + if (mid_pixel.a != 7u) + { + uvec3 lo = mid_pixel.rgb; + uvec3 hi = lo; + uvec3 second_lo = lo; + uvec3 second_hi = lo; + + // Somehow, we're supposed to find the second lowest and second highest neighbor. + uvec4 left_up = fetch_color_offset(ivec2(-1, -1)); + uvec4 right_up = fetch_color_offset(ivec2(+1, -1)); + uvec4 to_left = fetch_color_offset(ivec2(-2, 0)); + uvec4 to_right = fetch_color_offset(ivec2(+2, 0)); + uvec4 left_down = fetch_color_offset(ivec2(-1, +1)); + uvec4 right_down = fetch_color_offset(ivec2(+1, +1)); + + check_neighbor(left_up, lo, hi, second_lo, second_hi); + check_neighbor(right_up, lo, hi, second_lo, second_hi); + check_neighbor(to_left, lo, hi, second_lo, second_hi); + check_neighbor(to_right, lo, hi, second_lo, second_hi); + +#if defined(FETCH_BUG) && FETCH_BUG + // In the fetch-bug state, we apparently do not read the lower values. + // Instead, the lower values are treated as left and right. + uvec3 lo_bug = lo; + uvec3 hi_bug = hi; + uvec3 second_lo_bug = second_lo; + uvec3 second_hi_bug = second_hi; +#endif + + check_neighbor(left_down, lo, hi, second_lo, second_hi); + check_neighbor(right_down, lo, hi, second_lo, second_hi); +#if defined(FETCH_BUG) && FETCH_BUG + check_neighbor(to_left, lo_bug, hi_bug, second_lo_bug, second_hi_bug); + check_neighbor(to_right, lo_bug, hi_bug, second_lo_bug, second_hi_bug); + second_lo = mix(second_lo, lo, equal(mid_pixel.rgb, lo)); + second_hi = mix(second_hi, hi, equal(mid_pixel.rgb, hi)); + second_lo_bug = mix(second_lo_bug, lo_bug, equal(mid_pixel.rgb, lo_bug)); + second_hi_bug = mix(second_hi_bug, hi_bug, equal(mid_pixel.rgb, hi_bug)); +#endif + + uvec3 offset = second_lo + second_hi - (mid_pixel.rgb << 1u); + uint coeff = 7u - mid_pixel.a; + color = mid_pixel.rgb + (((offset * coeff) + 4u) >> 3u); + color &= 0xffu; + +#if defined(FETCH_BUG) && FETCH_BUG + uvec3 offset_bug = second_lo_bug + second_hi_bug - (mid_pixel.rgb << 1u); + color_bug = mid_pixel.rgb + (((offset_bug * coeff) + 4u) >> 3u); + color_bug &= 0xffu; +#endif + } + else if (DITHER_ENABLE) + { + // Dither filter. + ivec3 tmp_color = ivec3(mid_pixel.rgb >> 3u); + ivec3 tmp_accum = ivec3(0); + for (int y = -1; y <= 0; y++) + { + for (int x = -1; x <= 1; x++) + { + ivec3 col = ivec3(fetch_color_offset(ivec2(x, y)).rgb >> 3u); + tmp_accum += clamp(col - tmp_color, ivec3(-1), ivec3(1)); + } + } + +#if defined(FETCH_BUG) && FETCH_BUG + ivec3 tmp_accum_bug = tmp_accum; +#endif + + tmp_accum += clamp(ivec3(fetch_color_offset(ivec2(-1, 1)).rgb >> 3u) - tmp_color, ivec3(-1), ivec3(1)); + tmp_accum += clamp(ivec3(fetch_color_offset(ivec2(+1, 1)).rgb >> 3u) - tmp_color, ivec3(-1), ivec3(1)); + tmp_accum += clamp(ivec3(fetch_color_offset(ivec2(0, 1)).rgb >> 3u) - tmp_color, ivec3(-1), ivec3(1)); + color = (mid_pixel.rgb & 0xf8u) + tmp_accum; + +#if defined(FETCH_BUG) && FETCH_BUG + tmp_accum_bug += clamp(ivec3(fetch_color_offset(ivec2(-1, 0)).rgb >> 3u) - tmp_color, ivec3(-1), ivec3(1)); + tmp_accum_bug += clamp(ivec3(fetch_color_offset(ivec2(+1, 0)).rgb >> 3u) - tmp_color, ivec3(-1), ivec3(1)); + color_bug = (mid_pixel.rgb & 0xf8u) + tmp_accum_bug; +#endif + } + else + { + color = mid_pixel.rgb; +#if defined(FETCH_BUG) && FETCH_BUG + color_bug = mid_pixel.rgb; +#endif + } + + FragColor = uvec4(color, mid_pixel.a); +#if defined(FETCH_BUG) && FETCH_BUG + FragColorFetchBug = uvec4(color_bug, mid_pixel.a); +#endif +} \ No newline at end of file diff --git a/parallel-rdp/shaders/vi_scale.frag b/parallel-rdp/shaders/vi_scale.frag new file mode 100644 index 00000000..83c705c8 --- /dev/null +++ b/parallel-rdp/shaders/vi_scale.frag @@ -0,0 +1,154 @@ +#version 450 +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +#extension GL_EXT_samplerless_texture_functions : require + +#include "small_types.h" +#include "vi_status.h" +#include "vi_debug.h" +#include "noise.h" + +layout(set = 0, binding = 0) uniform mediump utexture2DArray uDivotOutput; +layout(set = 0, binding = 1) uniform itextureBuffer uHorizontalInfo; +layout(set = 1, binding = 0) uniform mediump utextureBuffer uGammaTable; +layout(location = 0) out vec4 FragColor; + +layout(push_constant, std430) uniform Registers +{ + ivec2 frag_coord_offset; + int v_start; + int y_add; + int frame_count; + + int serrate_shift; + int serrate_mask; + int serrate_select; + + int info_y_shift; +} registers; + +uvec3 vi_lerp(uvec3 a, uvec3 b, uint l) +{ + return (a + (((b - a) * l + 16u) >> 5u)) & 0xffu; +} + +uvec3 integer_gamma(uvec3 color) +{ + uvec3 res; + if (GAMMA_DITHER) + { + color = (color << 6) + noise_get_full_gamma_dither() + 256u; + res = uvec3( + texelFetch(uGammaTable, int(color.r)).r, + texelFetch(uGammaTable, int(color.g)).r, + texelFetch(uGammaTable, int(color.b)).r); + } + else + { + res = uvec3( + texelFetch(uGammaTable, int(color.r)).r, + texelFetch(uGammaTable, int(color.g)).r, + texelFetch(uGammaTable, int(color.b)).r); + } + return res; +} + +layout(constant_id = 2) const bool FETCH_BUG = false; + +void main() +{ + // Handles crop where we start scanning out at an offset. + ivec2 coord = ivec2(gl_FragCoord.xy) + registers.frag_coord_offset; + + int info_index = coord.y >> registers.info_y_shift; + ivec4 horiz_info0 = texelFetch(uHorizontalInfo, 2 * info_index + 0); + ivec4 horiz_info1 = texelFetch(uHorizontalInfo, 2 * info_index + 1); + + int h_start = horiz_info0.x; + int h_start_clamp = horiz_info0.y; + int h_end_clamp = horiz_info0.z; + int x_start = horiz_info0.w; + int x_add = horiz_info1.x; + int y_start = horiz_info1.y; + int y_add = horiz_info1.z; + int y_base = horiz_info1.w; + + // Rebase Y relative to YStart. + coord.y -= registers.v_start; + + // Scissor against HStart/End, also handles serrate where we skip every other line. + if (coord.x < h_start_clamp || coord.x >= h_end_clamp || + ((coord.y & registers.serrate_mask) != registers.serrate_select)) + discard; + + // Shift the X coord to be relative to sampling, this can change per scanline. + coord.x -= h_start; + + // Rebase Y in terms of progressive scan. + coord.y >>= registers.serrate_shift; + + if (GAMMA_DITHER) + reseed_noise(coord.x, coord.y, registers.frame_count); + + int x = coord.x * x_add + x_start; + int y = (coord.y - y_base) * y_add + y_start; + ivec2 base_coord = ivec2(x, y) >> 10; + uvec3 c00 = texelFetch(uDivotOutput, ivec3(base_coord, 0), 0).rgb; + + int bug_offset = 0; + if (FETCH_BUG) + { + // This is super awkward. + // Basically there seems to be some kind of issue where if we interpolate in Y, + // we're going to get buggy output. + // If we hit this case, the next line we filter against will come from the "buggy" array slice. + // Why this makes sense, I have no idea. + // + // XXX: This assumes constant YAdd. + // No idea how this is supposed to work if YAdd can vary per scanline. + int prev_y = (y - registers.y_add) >> 10; + int next_y = (y + registers.y_add) >> 10; + if (coord.y != 0 && base_coord.y == prev_y && base_coord.y != next_y) + bug_offset = 1; + } + + if (SCALE_AA) + { + int x_frac = (x >> 5) & 31; + int y_frac = (y >> 5) & 31; + + uvec3 c10 = texelFetchOffset(uDivotOutput, ivec3(base_coord, 0), 0, ivec2(1, 0)).rgb; + uvec3 c01 = texelFetchOffset(uDivotOutput, ivec3(base_coord, bug_offset), 0, ivec2(0, 1)).rgb; + uvec3 c11 = texelFetchOffset(uDivotOutput, ivec3(base_coord, bug_offset), 0, ivec2(1)).rgb; + + c00 = vi_lerp(c00, c01, y_frac); + c10 = vi_lerp(c10, c11, y_frac); + c00 = vi_lerp(c00, c10, x_frac); + } + + if (GAMMA_ENABLE) + c00 = integer_gamma(c00); + else if (GAMMA_DITHER) + c00 = min(c00 + noise_get_partial_gamma_dither(), uvec3(0xff)); + + FragColor = vec4(vec3(c00) / 255.0, 1.0); +} \ No newline at end of file diff --git a/parallel-rdp/shaders/vi_status.h b/parallel-rdp/shaders/vi_status.h new file mode 100644 index 00000000..a914cfc6 --- /dev/null +++ b/parallel-rdp/shaders/vi_status.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef VI_STATUS_H_ +#define VI_STATUS_H_ + +layout(constant_id = 1) const int VI_STATUS = 0; +const int VI_CONTROL_TYPE_BLANK_BIT = 0 << 0; +const int VI_CONTROL_TYPE_RESERVED_BIT = 1 << 0; +const int VI_CONTROL_TYPE_RGBA5551_BIT = 2 << 0; +const int VI_CONTROL_TYPE_RGBA8888_BIT = 3 << 0; +const int VI_CONTROL_TYPE_MASK = 3 << 0; +const int VI_CONTROL_GAMMA_DITHER_ENABLE_BIT = 1 << 2; +const int VI_CONTROL_GAMMA_ENABLE_BIT = 1 << 3; +const int VI_CONTROL_DIVOT_ENABLE_BIT = 1 << 4; +const int VI_CONTROL_SERRATE_BIT = 1 << 6; +const int VI_CONTROL_DITHER_FILTER_ENABLE_BIT = 1 << 16; +const int VI_CONTROL_META_AA_BIT = 1 << 17; +const int VI_CONTROL_META_SCALE_BIT = 1 << 18; + +const bool FMT_RGBA5551 = (VI_STATUS & VI_CONTROL_TYPE_MASK) == VI_CONTROL_TYPE_RGBA5551_BIT; +const bool FMT_RGBA8888 = (VI_STATUS & VI_CONTROL_TYPE_MASK) == VI_CONTROL_TYPE_RGBA8888_BIT; +const bool DITHER_ENABLE = (VI_STATUS & VI_CONTROL_DITHER_FILTER_ENABLE_BIT) != 0; +const bool FETCH_AA = (VI_STATUS & VI_CONTROL_META_AA_BIT) != 0; +const bool SCALE_AA = (VI_STATUS & VI_CONTROL_META_SCALE_BIT) != 0; +const bool GAMMA_ENABLE = (VI_STATUS & VI_CONTROL_GAMMA_ENABLE_BIT) != 0; +const bool GAMMA_DITHER = (VI_STATUS & VI_CONTROL_GAMMA_DITHER_ENABLE_BIT) != 0; + +#endif \ No newline at end of file diff --git a/parallel-rdp/shaders/z_encode.h b/parallel-rdp/shaders/z_encode.h new file mode 100644 index 00000000..022a68a0 --- /dev/null +++ b/parallel-rdp/shaders/z_encode.h @@ -0,0 +1,58 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef Z_ENCODE_H_ +#define Z_ENCODE_H_ + +// The Z compression is kind of clever, and uses inverted FP, with more precision close to 1. +// The compressed Z result is 14 bits, and decompresses to 18-bit UNORM. +int z_decompress(u16 z_) +{ + int z = int(z_); + int exponent = z >> 11; + int mantissa = z & 0x7ff; + int shift = max(6 - exponent, 0); + int base = 0x40000 - (0x40000 >> exponent); + return (mantissa << shift) + base; +} + +u16 z_compress(int z) +{ + int inv_z = max(0x3ffff - z, 1); + int exponent = 17 - findMSB(inv_z); + exponent = clamp(exponent, 0, 7); + int shift = max(6 - exponent, 0); + int mantissa = (z >> shift) & 0x7ff; + return u16((exponent << 11) + mantissa); +} + +int dz_decompress(int dz) +{ + return 1 << dz; +} + +int dz_compress(int dz) +{ + return max(findMSB(dz), 0); +} + +#endif \ No newline at end of file diff --git a/parallel-rdp/video_interface.cpp b/parallel-rdp/video_interface.cpp new file mode 100644 index 00000000..e401067e --- /dev/null +++ b/parallel-rdp/video_interface.cpp @@ -0,0 +1,1427 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "video_interface.hpp" +#include "rdp_renderer.hpp" +#include "luts.hpp" +#include "bitops.hpp" +#include + +#ifndef PARALLEL_RDP_SHADER_DIR +#include "shaders/slangmosh.hpp" +#endif + +namespace RDP +{ +void VideoInterface::set_device(Vulkan::Device *device_) +{ + device = device_; + init_gamma_table(); + + if (const char *env = getenv("VI_DEBUG")) + debug_channel = strtol(env, nullptr, 0) != 0; + if (const char *env = getenv("VI_DEBUG_X")) + filter_debug_channel_x = strtol(env, nullptr, 0); + if (const char *env = getenv("VI_DEBUG_Y")) + filter_debug_channel_y = strtol(env, nullptr, 0); + + if (const char *timestamp_env = getenv("PARALLEL_RDP_BENCH")) + timestamp = strtol(timestamp_env, nullptr, 0) > 0; +} + +void VideoInterface::set_renderer(Renderer *renderer_) +{ + renderer = renderer_; +} + +int VideoInterface::resolve_shader_define(const char *name, const char *define) const +{ + if (strcmp(define, "DEBUG_ENABLE") == 0) + return int(debug_channel); + else + return 0; +} + +void VideoInterface::message(const std::string &tag, uint32_t code, uint32_t x, uint32_t y, uint32_t, uint32_t num_words, + const Vulkan::DebugChannelInterface::Word *words) +{ + if (filter_debug_channel_x >= 0 && x != uint32_t(filter_debug_channel_x)) + return; + if (filter_debug_channel_y >= 0 && y != uint32_t(filter_debug_channel_y)) + return; + + switch (num_words) + { + case 1: + LOGI("(%u, %u), line %d.\n", x, y, words[0].s32); + break; + + case 2: + LOGI("(%u, %u), line %d: (%d).\n", x, y, words[0].s32, words[1].s32); + break; + + case 3: + LOGI("(%u, %u), line %d: (%d, %d).\n", x, y, words[0].s32, words[1].s32, words[2].s32); + break; + + case 4: + LOGI("(%u, %u), line %d: (%d, %d, %d).\n", x, y, + words[0].s32, words[1].s32, words[2].s32, words[3].s32); + break; + + default: + LOGE("Unknown number of generic parameters: %u\n", num_words); + break; + } +} + +void VideoInterface::init_gamma_table() +{ + Vulkan::BufferCreateInfo info = {}; + info.domain = Vulkan::BufferDomain::Device; + info.size = sizeof(gamma_table); + info.usage = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT; + + gamma_lut = device->create_buffer(info, gamma_table); + + Vulkan::BufferViewCreateInfo view = {}; + view.buffer = gamma_lut.get(); + view.range = sizeof(gamma_table); + view.format = VK_FORMAT_R8_UINT; + gamma_lut_view = device->create_buffer_view(view); +} + +void VideoInterface::set_vi_register(VIRegister reg, uint32_t value) +{ + vi_registers[unsigned(reg)] = value; +} + +void VideoInterface::set_rdram(const Vulkan::Buffer *rdram_, size_t offset, size_t size) +{ + rdram = rdram_; + rdram_offset = offset; + rdram_size = size; +} + +void VideoInterface::set_hidden_rdram(const Vulkan::Buffer *hidden_rdram_) +{ + hidden_rdram = hidden_rdram_; +} + +void VideoInterface::set_shader_bank(const ShaderBank *bank) +{ + shader_bank = bank; +} + +static VkPipelineStageFlagBits2 layout_to_stage(VkImageLayout layout) +{ + switch (layout) + { + case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: + case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: + // We use BLIT stage internally, but caller expects COPY generally. + return VK_PIPELINE_STAGE_2_BLIT_BIT | VK_PIPELINE_STAGE_2_COPY_BIT; + + case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: + return VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; + + case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: + return VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + + default: + return 0; + } +} + +static VkAccessFlags2 layout_to_access(VkImageLayout layout) +{ + switch (layout) + { + case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: + return VK_ACCESS_TRANSFER_READ_BIT; + + case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: + return VK_ACCESS_TRANSFER_WRITE_BIT; + + case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: + return VK_ACCESS_2_SHADER_SAMPLED_READ_BIT; + + case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: + return VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + + default: + return 0; + } +} + +VideoInterface::Registers VideoInterface::decode_vi_registers(HorizontalInfoLines *lines) const +{ + Registers reg = {}; + + // Definitely should not change per scanline ... + reg.status = vi_registers[unsigned(VIRegister::Control)]; + reg.vi_width = vi_registers[unsigned(VIRegister::Width)] & 0xfff; + reg.vi_offset = vi_registers[unsigned(VIRegister::Origin)] & 0xffffff; + reg.v_current_line = vi_registers[unsigned(VIRegister::VCurrentLine)] & 1; + reg.v_start = (vi_registers[unsigned(VIRegister::VStart)] >> 16) & 0x3ff; + + // It might be possible to change YStart/YAdd per scanline, but it's dubious ... + int y_start = (vi_registers[unsigned(VIRegister::YScale)] >> 16) & 0xfff; + int y_add = vi_registers[unsigned(VIRegister::YScale)] & 0xfff; + reg.init_y_add = y_add; + + // Must be constant for a frame, or things won't make any sense. + int v_end = vi_registers[unsigned(VIRegister::VStart)] & 0x3ff; + int v_sync = vi_registers[unsigned(VIRegister::VSync)] & 0x3ff; + + reg.is_pal = unsigned(v_sync) > (VI_V_SYNC_NTSC + 25); + + // Clamp vertical ranges. + // Restrict the area we might have to scan out to AA buffers as a performance optimization + // and safety since we iterate over v_start/v_end later. + int v_end_max = reg.is_pal ? VI_V_END_PAL : VI_V_END_NTSC; + if (v_end > v_end_max) + v_end = v_end_max; + if (reg.v_start > v_end_max) + reg.v_start = v_end_max; + + int v_start_offset = reg.is_pal ? VI_V_OFFSET_PAL : VI_V_OFFSET_NTSC; + reg.v_res = (v_end - reg.v_start) >> 1; + reg.v_start = (reg.v_start - v_start_offset) / 2; + + if (reg.v_start < 0) + { + // If YAdd can change per scanline, this won't be correct. + y_start -= y_add * reg.v_start; + // v_res is not adjusted here for some reason, but h_res is? + reg.v_start = 0; + } + + // Clamp v_res to scanout range. + reg.v_res = std::min(reg.v_res, int(VI_MAX_OUTPUT_SCANLINES) - reg.v_start); + + // Horizontal shenanigans. + int h_start_clamp_lo = INT32_MAX; + int h_end_clamp_hi = 0; + int h_start_lo = INT32_MAX; + int h_end_hi = 0; + + reg.max_x = 0; + bool degenerate_y = reg.v_res <= 0; + + // Clear out degenerate lines. + if (lines) + { + if (degenerate_y) + { + for (auto &line : lines->lines) + line = {}; + } + else + { + for (int line = 0; line < reg.v_start; line++) + lines->lines[line] = {}; + for (int line = reg.v_start + reg.v_res; line < int(VI_MAX_OUTPUT_SCANLINES); line++) + lines->lines[line] = {}; + } + } + + const auto analyze_line = [&](int x_start, int x_add, int h_start, int h_end, HorizontalInfo *line) { + // Clamp horizontal region to [0, 640]. + bool left_clamp = false; + bool right_clamp = false; + + h_start -= reg.is_pal ? VI_H_OFFSET_PAL : VI_H_OFFSET_NTSC; + h_end -= reg.is_pal ? VI_H_OFFSET_PAL : VI_H_OFFSET_NTSC; + + if (h_start < 0) + { + x_start -= x_add * h_start; + h_start = 0; + // Reference weirdness that doesn't really make sense. + left_clamp = true; + } + + if (h_end > VI_SCANOUT_WIDTH) + { + h_end = VI_SCANOUT_WIDTH; + // Reference weirdness that doesn't really make sense. + right_clamp = true; + } + + int h_start_clamp = h_start + (left_clamp ? 0 : 8); + int h_end_clamp = h_end - (right_clamp ? 0 : 7); + + // Effectively, these are bounding boxes. + int h_res = h_end - h_start; + int max_x = (x_start + h_res * x_add) >> 10; + reg.max_x = std::max(reg.max_x, max_x); + h_start_lo = std::min(h_start_lo, h_start); + h_end_hi = std::max(h_end_hi, h_end); + h_start_clamp_lo = std::min(h_start_clamp_lo, h_start_clamp); + h_end_clamp_hi = std::max(h_end_clamp_hi, h_end_clamp); + + if (line) + { + auto &l = *line; + l.h_start = h_start; + l.h_start_clamp = h_start_clamp; + l.h_end_clamp = h_end_clamp; + l.x_start = x_start; + l.x_add = x_add; + l.y_start = y_start; + l.y_add = y_add; + l.y_base = 0; // TODO: If we start adjusting YAdd per scanline, we'll need to begin a new base region. + } + }; + + if (degenerate_y || !per_line_state.ended) + { + int x_start = (vi_registers[unsigned(VIRegister::XScale)] >> 16) & 0xfff; + int x_add = vi_registers[unsigned(VIRegister::XScale)] & 0xfff; + int h_start = (vi_registers[unsigned(VIRegister::HStart)] >> 16) & 0x3ff; + int h_end = vi_registers[unsigned(VIRegister::HStart)] & 0x3ff; + + HorizontalInfo line_info; + + // Need to make sure we update bounding box state for X at least. + // This is treated as a degenerate frame, not necessarily invalid frame (null handle). + // This is to have same behavior as reference. + analyze_line(x_start, x_add, h_start, h_end, &line_info); + + if (lines) + for (int line = reg.v_start; line < reg.v_start + reg.v_res; line++) + lines->lines[line] = line_info; + } + else + { + for (int line = reg.v_start; line < reg.v_start + reg.v_res; line++) + { + // TODO: No idea if this is correct. This intuitively makes sense, but that's about it. + int effective_line = 2 * line + v_start_offset + int(reg.v_current_line == 0); + + int x_start = (per_line_state.x_scale.line_state[effective_line] >> 16) & 0xfff; + int x_add = per_line_state.x_scale.line_state[effective_line] & 0xfff; + int h_start = (per_line_state.h_start.line_state[effective_line] >> 16) & 0x3ff; + int h_end = per_line_state.h_start.line_state[effective_line] & 0x3ff; + + analyze_line(x_start, x_add, h_start, h_end, lines ? &lines->lines[line] : nullptr); + } + } + + // Effectively, these are bounding boxes. + reg.max_y = (y_start + reg.v_res * y_add) >> 10; + reg.h_start = h_start_lo; + reg.h_res = h_end_hi - h_start_lo; + reg.h_start_clamp = h_start_clamp_lo; + reg.h_res_clamp = h_end_clamp_hi - h_start_clamp_lo; + + // The basic formula is that a frame is counted with an active horizontal range of + // X(range) = [H_OFFSET, H_OFFSET + H_RES], giving 640 output pixels per line. + // Similarly, vertical scanout has an active range of Y(range) = [V_OFFSET, V_OFFSET + V_RES]. + // Y is counted in terms of interlaced lines (i.e. 480 and 576). + // We will scan out half of these per field (e.g. 240p or 480i for NTSC). + // The HStart and VStart registers are used to signal where on screen we render. + // HStart and VStart registers might carve out a portion of the screen, or use a larger one, + // the active area on screen is an intersection of the VI register state and the X(range)/Y(range). + // When the X counter hits HStart, we begin computing the X coordinate we want to sample based on + // X(sample) = XStart + XAdd * (X - HStart). + // Similarly, Y(sample) = YStart + YAdd * (Y - (VStart >> 1)), YAdd increments once per scanline. + // We always normalize the interpolations to be progressive. + // Interlacing just shifts positions on screen after the fact. + // + // VRAM(X, Y) is fetched with any post-processing required, looking at neighboring VRAM pixels. + // For this reason, we compute the maximum X and Y we might access, and build an X x Y image + // which is already preprocessed with AA, Divot filters, etc. + // The final scaling pass interpolates that result. + // The mental model here is that the VI could have a line buffer to keep some scanlines in cache to support the + // processing. XStart/YStart registers just control how fast we iterate through these lines, + // which implements scaling effects. + // + // As another weird quirk, it seems like we need to account for a + // 8 pixel guard band horizontally (reg.left_clamp / reg.right_clamp) + // if we begin scanout inside the active region for whatever reason. + // This is to match reference. + + return reg; +} + +void VideoInterface::scanout_memory_range(unsigned &offset, unsigned &length) const +{ + auto reg = decode_vi_registers(nullptr); + + bool divot = (reg.status & VI_CONTROL_DIVOT_ENABLE_BIT) != 0; + + // Need to sample a 2-pixel border to have room for AA filter and divot. + int aa_width = reg.max_x + 2 + 4 + int(divot) * 2; + // 1 pixel border on top and bottom. + int aa_height = reg.max_y + 1 + 4; + + int x_off = divot ? -3 : -2; + int y_off = -2; + + if (reg.vi_offset == 0 || reg.h_res <= 0 || reg.h_start >= VI_SCANOUT_WIDTH) + { + offset = 0; + length = 0; + return; + } + + int pixel_size = ((reg.status & VI_CONTROL_TYPE_MASK) | VI_CONTROL_TYPE_RGBA5551_BIT) == VI_CONTROL_TYPE_RGBA8888_BIT ? 4 : 2; + reg.vi_offset &= ~(pixel_size - 1); + reg.vi_offset += (x_off + y_off * reg.vi_width) * pixel_size; + + offset = reg.vi_offset; + length = (aa_height * reg.vi_width + aa_width) * pixel_size; +} + +bool VideoInterface::need_fetch_bug_emulation(const Registers ®s, unsigned scaling_factor) +{ + // If we risk sampling same Y coordinate for two scanlines we can trigger this case, + // so add workaround paths for it. + return regs.init_y_add < 1024 && scaling_factor == 1; +} + +Vulkan::ImageHandle VideoInterface::vram_fetch_stage(const Registers ®s, unsigned scaling_factor) const +{ + auto async_cmd = device->request_command_buffer(Vulkan::CommandBuffer::Type::AsyncCompute); + Vulkan::ImageHandle vram_image; + Vulkan::QueryPoolHandle start_ts, end_ts; + bool divot = (regs.status & VI_CONTROL_DIVOT_ENABLE_BIT) != 0; + + if (scaling_factor > 1) + { + unsigned pixel_size_log2 = ((regs.status & VI_CONTROL_TYPE_MASK) == VI_CONTROL_TYPE_RGBA8888_BIT) ? 2 : 1; + unsigned offset, length; + scanout_memory_range(offset, length); + renderer->submit_update_upscaled_domain_external(*async_cmd, offset, length, pixel_size_log2); + async_cmd->barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_READ_BIT); + } + + if (timestamp) + start_ts = async_cmd->write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + + // Need to sample a 2-pixel border to have room for AA filter and divot. + int extract_width = regs.max_x + 2 + 4 + int(divot) * 2; + // 1 pixel border on top and bottom. + int extract_height = regs.max_y + 1 + 4; + + Vulkan::ImageCreateInfo rt_info = Vulkan::ImageCreateInfo::render_target( + extract_width, + extract_height, + VK_FORMAT_R8G8B8A8_UINT); + + rt_info.usage = VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; + rt_info.initial_layout = VK_IMAGE_LAYOUT_UNDEFINED; + rt_info.misc = Vulkan::IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT | + Vulkan::IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_COMPUTE_BIT; + vram_image = device->create_image(rt_info); + vram_image->set_layout(Vulkan::Layout::General); + + async_cmd->image_barrier(*vram_image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, + 0, 0, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT); + +#ifdef PARALLEL_RDP_SHADER_DIR + async_cmd->set_program("rdp://extract_vram.comp"); +#else + async_cmd->set_program(shader_bank->extract_vram); +#endif + async_cmd->set_storage_texture(0, 0, vram_image->get_view()); + + if (scaling_factor > 1) + { + async_cmd->set_storage_buffer(0, 1, *renderer->get_upscaled_rdram_buffer()); + async_cmd->set_storage_buffer(0, 2, *renderer->get_upscaled_hidden_rdram_buffer()); + } + else + { + async_cmd->set_storage_buffer(0, 1, *rdram, rdram_offset, rdram_size); + async_cmd->set_storage_buffer(0, 2, *hidden_rdram); + } + + struct Push + { + uint32_t fb_offset; + uint32_t fb_width; + int32_t x_offset; + int32_t y_offset; + int32_t x_res; + int32_t y_res; + } push = {}; + + if ((regs.status & VI_CONTROL_TYPE_MASK) == VI_CONTROL_TYPE_RGBA8888_BIT) + push.fb_offset = regs.vi_offset >> 2; + else + push.fb_offset = regs.vi_offset >> 1; + + push.fb_width = regs.vi_width; + push.x_offset = divot ? -3 : -2; + push.y_offset = -2; + push.x_res = extract_width; + push.y_res = extract_height; + + async_cmd->set_specialization_constant_mask(7); + async_cmd->set_specialization_constant(0, uint32_t(rdram_size)); + async_cmd->set_specialization_constant(1, regs.status & (VI_CONTROL_TYPE_MASK | VI_CONTROL_META_AA_BIT)); + async_cmd->set_specialization_constant(2, Util::trailing_zeroes(scaling_factor)); + + async_cmd->push_constants(&push, 0, sizeof(push)); + async_cmd->dispatch((extract_width + 15) / 16, + (extract_height + 7) / 8, + 1); + + // Just enforce an execution barrier here for rendering work in next frame. + async_cmd->barrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0); + + if (timestamp) + { + end_ts = async_cmd->write_timestamp(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT); + device->register_time_interval("VI GPU", std::move(start_ts), std::move(end_ts), "extract-vram"); + } + + Vulkan::Semaphore sem; + device->submit(async_cmd, nullptr, 1, &sem); + device->add_wait_semaphore(Vulkan::CommandBuffer::Type::Generic, std::move(sem), + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, true); + + return vram_image; +} + +Vulkan::ImageHandle VideoInterface::aa_fetch_stage(Vulkan::CommandBuffer &cmd, Vulkan::Image &vram_image, + const Registers ®s, unsigned scaling_factor) const +{ + Vulkan::ImageHandle aa_image; + Vulkan::QueryPoolHandle start_ts, end_ts; + bool fetch_bug = need_fetch_bug_emulation(regs, scaling_factor); + bool divot = (regs.status & VI_CONTROL_DIVOT_ENABLE_BIT) != 0; + + // For the AA pass, we need to figure out how many pixels we might need to read. + int aa_width = regs.max_x + 3 + int(divot) * 2; + int aa_height = regs.max_y + 2; + + Vulkan::ImageCreateInfo rt_info = Vulkan::ImageCreateInfo::render_target(aa_width, aa_height, + VK_FORMAT_R8G8B8A8_UINT); + rt_info.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; + rt_info.initial_layout = VK_IMAGE_LAYOUT_UNDEFINED; + rt_info.layers = fetch_bug ? 2 : 1; + rt_info.misc = Vulkan::IMAGE_MISC_FORCE_ARRAY_BIT; + aa_image = device->create_image(rt_info); + + Vulkan::ImageViewCreateInfo view_info = {}; + view_info.image = aa_image.get(); + view_info.view_type = VK_IMAGE_VIEW_TYPE_2D; + view_info.layers = 1; + + Vulkan::ImageViewHandle aa_primary, aa_secondary; + view_info.base_layer = 0; + aa_primary = device->create_image_view(view_info); + + if (fetch_bug) + { + view_info.base_layer = 1; + aa_secondary = device->create_image_view(view_info); + } + + Vulkan::RenderPassInfo rp; + rp.color_attachments[0] = aa_primary.get(); + rp.clear_attachments = 0; + + if (fetch_bug) + { + rp.color_attachments[1] = aa_secondary.get(); + rp.num_color_attachments = 2; + rp.store_attachments = 3; + } + else + { + rp.num_color_attachments = 1; + rp.store_attachments = 1; + } + + cmd.image_barrier(*aa_image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + 0, 0, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT); + + if (timestamp) + start_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); + + cmd.begin_render_pass(rp); + cmd.set_opaque_state(); + +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://fullscreen.vert", "rdp://vi_fetch.frag", + { + { "DEBUG_ENABLE", debug_channel ? 1 : 0 }, + { "FETCH_BUG", fetch_bug ? 1 : 0 }, + }); +#else + cmd.set_program(device->request_program(shader_bank->fullscreen, shader_bank->vi_fetch[int(fetch_bug)])); +#endif + + struct Push + { + int32_t x_offset; + int32_t y_offset; + } push = {}; + + push.x_offset = 2; + push.y_offset = 2; + + cmd.push_constants(&push, 0, sizeof(push)); + + cmd.set_specialization_constant_mask(3); + cmd.set_specialization_constant(0, uint32_t(rdram_size)); + cmd.set_specialization_constant(1, + regs.status & (VI_CONTROL_META_AA_BIT | VI_CONTROL_DITHER_FILTER_ENABLE_BIT)); + + cmd.set_texture(0, 0, vram_image.get_view()); + cmd.draw(3); + cmd.end_render_pass(); + + if (timestamp) + { + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); + device->register_time_interval("VI GPU", std::move(start_ts), std::move(end_ts), "vi-fetch"); + } + + cmd.image_barrier(*aa_image, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_ACCESS_2_SHADER_SAMPLED_READ_BIT); + + return aa_image; +} + +Vulkan::ImageHandle VideoInterface::divot_stage(Vulkan::CommandBuffer &cmd, Vulkan::Image &aa_image, + const Registers ®s, unsigned scaling_factor) const +{ + Vulkan::ImageHandle divot_image; + Vulkan::QueryPoolHandle start_ts, end_ts; + bool fetch_bug = need_fetch_bug_emulation(regs, scaling_factor); + + // For the divot pass, we need to figure out how many pixels we might need to read. + int divot_width = regs.max_x + 2; + int divot_height = regs.max_y + 2; + + Vulkan::ImageCreateInfo rt_info = Vulkan::ImageCreateInfo::render_target(divot_width, divot_height, + VK_FORMAT_R8G8B8A8_UINT); + rt_info.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT; + rt_info.initial_layout = VK_IMAGE_LAYOUT_UNDEFINED; + rt_info.layers = fetch_bug ? 2 : 1; + rt_info.misc = Vulkan::IMAGE_MISC_FORCE_ARRAY_BIT; + divot_image = device->create_image(rt_info); + + Vulkan::ImageViewCreateInfo view_info = {}; + view_info.image = divot_image.get(); + view_info.view_type = VK_IMAGE_VIEW_TYPE_2D; + view_info.layers = 1; + + Vulkan::ImageViewHandle divot_primary, divot_secondary; + view_info.base_layer = 0; + divot_primary = device->create_image_view(view_info); + + if (fetch_bug) + { + view_info.base_layer = 1; + divot_secondary = device->create_image_view(view_info); + } + + Vulkan::RenderPassInfo rp; + rp.color_attachments[0] = divot_primary.get(); + rp.clear_attachments = 0; + + if (fetch_bug) + { + rp.color_attachments[1] = divot_secondary.get(); + rp.num_color_attachments = 2; + rp.store_attachments = 3; + } + else + { + rp.num_color_attachments = 1; + rp.store_attachments = 1; + } + + cmd.image_barrier(*divot_image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + 0, 0, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT); + + if (timestamp) + start_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); + + cmd.begin_render_pass(rp); + cmd.set_opaque_state(); + +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://fullscreen.vert", "rdp://vi_divot.frag", { + { "DEBUG_ENABLE", debug_channel ? 1 : 0 }, + { "FETCH_BUG", fetch_bug ? 1 : 0 }, + }); +#else + cmd.set_program(device->request_program(shader_bank->fullscreen, shader_bank->vi_divot[int(fetch_bug)])); +#endif + + cmd.set_texture(0, 0, aa_image.get_view()); + cmd.draw(3); + cmd.end_render_pass(); + + if (timestamp) + { + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); + device->register_time_interval("VI GPU", std::move(start_ts), std::move(end_ts), "vi-divot"); + } + + cmd.image_barrier(*divot_image, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_ACCESS_2_SHADER_SAMPLED_READ_BIT); + + return divot_image; +} + +void VideoInterface::bind_horizontal_info_view(Vulkan::CommandBuffer &cmd, const HorizontalInfoLines &lines) +{ + auto &device = cmd.get_device(); + + Vulkan::BufferCreateInfo horizontal_buffer_info = {}; + horizontal_buffer_info.size = sizeof(lines); + horizontal_buffer_info.usage = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT; + horizontal_buffer_info.domain = Vulkan::BufferDomain::LinkedDeviceHost; + auto scanout_parameters = device.create_buffer(horizontal_buffer_info, &lines); + + Vulkan::BufferViewCreateInfo horizontal_view_info = {}; + horizontal_view_info.format = VK_FORMAT_R32G32B32A32_SINT; + horizontal_view_info.buffer = scanout_parameters.get(); + horizontal_view_info.range = sizeof(lines); + + auto scanout_parameters_view = device.create_buffer_view(horizontal_view_info); + cmd.set_buffer_view(0, 1, *scanout_parameters_view); +} + +Vulkan::ImageHandle VideoInterface::scale_stage(Vulkan::CommandBuffer &cmd, const Vulkan::Image *divot_image, + Registers regs, const HorizontalInfoLines &lines, + unsigned scaling_factor, bool degenerate, + const ScanoutOptions &options, bool final_pass) const +{ + Vulkan::ImageHandle scale_image; + Vulkan::QueryPoolHandle start_ts, end_ts; + bool fetch_bug = need_fetch_bug_emulation(regs, scaling_factor); + bool serrate = (regs.status & VI_CONTROL_SERRATE_BIT) != 0 && !options.upscale_deinterlacing; + + Vulkan::ImageCreateInfo rt_info = Vulkan::ImageCreateInfo::render_target( + VI_SCANOUT_WIDTH * scaling_factor, + ((regs.is_pal ? VI_V_RES_PAL: VI_V_RES_NTSC) >> int(!serrate)) * scaling_factor, + VK_FORMAT_R8G8B8A8_UNORM); + + unsigned crop_left = 0; + unsigned crop_right = 0; + unsigned crop_top = 0; + unsigned crop_bottom = 0; + + if (options.crop_rect.enable) + { + crop_left = options.crop_rect.left; + crop_right = options.crop_rect.right; + crop_top = options.crop_rect.top; + crop_bottom = options.crop_rect.bottom; + + if (serrate) + { + crop_top *= 2; + crop_bottom *= 2; + } + } + else + { + // Rescale crop pixels to preserve aspect ratio. + auto crop_pixels_y = options.crop_overscan_pixels * (serrate ? 2 : 1); + auto crop_pixels_x = unsigned(std::round(float(crop_pixels_y) * (float(rt_info.width) / float(rt_info.height)))); + + crop_left = crop_right = crop_pixels_x; + crop_top = crop_bottom = crop_pixels_y; + } + + crop_left *= scaling_factor; + crop_right *= scaling_factor; + crop_top *= scaling_factor; + crop_bottom *= scaling_factor; + + if (crop_left + crop_right < rt_info.width && crop_top + crop_bottom < rt_info.height) + { + rt_info.width -= crop_left + crop_right; + rt_info.height -= crop_top + crop_bottom; + } + else + { + LOGE("Too large crop of %u x %u for RT %u x %u.\n", + crop_left + crop_right, crop_top + crop_bottom, rt_info.width, rt_info.height); + } + + rt_info.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; + rt_info.initial_layout = VK_IMAGE_LAYOUT_UNDEFINED; + rt_info.misc = Vulkan::IMAGE_MISC_MUTABLE_SRGB_BIT; + + if (options.export_scanout && final_pass) + { + rt_info.misc |= Vulkan::IMAGE_MISC_EXTERNAL_MEMORY_BIT; + rt_info.external.memory_handle_type = options.export_handle_type; + } + + scale_image = device->create_image(rt_info); + + if (!scale_image) + { + LOGE("Failed to allocate scale image.\n"); + return {}; + } + + Vulkan::RenderPassInfo rp; + rp.color_attachments[0] = &scale_image->get_view(); + memset(&rp.clear_color[0], 0, sizeof(rp.clear_color[0])); + rp.num_color_attachments = 1; + rp.clear_attachments = 1; + rp.store_attachments = 1; + + cmd.image_barrier(*scale_image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + 0, 0, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT); + + if (prev_scanout_image) + { + if (prev_image_is_external) + { + cmd.acquire_image_barrier(*prev_scanout_image, prev_image_layout, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_ACCESS_2_SHADER_SAMPLED_READ_BIT); + } + else if (prev_image_layout != VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) + { + VK_ASSERT(prev_image_layout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); + cmd.image_barrier(*prev_scanout_image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + VK_PIPELINE_STAGE_2_COPY_BIT | VK_PIPELINE_STAGE_2_BLIT_BIT, 0, + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_ACCESS_2_SHADER_SAMPLED_READ_BIT); + } + } + + if (timestamp) + start_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); + + cmd.begin_render_pass(rp); + + cmd.set_specialization_constant_mask((1 << 1) | (1 << 2)); + cmd.set_specialization_constant(1, + regs.status & (VI_CONTROL_GAMMA_ENABLE_BIT | + VI_CONTROL_GAMMA_DITHER_ENABLE_BIT | + VI_CONTROL_META_SCALE_BIT | + VI_CONTROL_META_AA_BIT)); + cmd.set_specialization_constant(2, uint32_t(fetch_bug)); + + struct Push + { + int32_t h_offset, v_offset; + int32_t v_start; + uint32_t y_add; + uint32_t frame_count; + + uint32_t serrate_shift; + uint32_t serrate_mask; + uint32_t serrate_select; + + uint32_t info_y_shift; + } push = {}; + + push.info_y_shift = Util::floor_log2(scaling_factor); + + if (serrate) + { + regs.v_start *= 2; + regs.v_res *= 2; + push.serrate_shift = 1; + push.serrate_mask = 1; + bool field_state = regs.v_current_line == 0; + push.serrate_select = int(field_state); + push.info_y_shift++; + } + + push.h_offset = int(crop_left); + push.v_offset = int(crop_top); + push.v_start = regs.v_start; + push.y_add = regs.init_y_add; + push.frame_count = frame_count; + + cmd.set_opaque_state(); +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://fullscreen.vert", "rdp://vi_scale.frag", { + { "DEBUG_ENABLE", debug_channel ? 1 : 0 }, + }); +#else + cmd.set_program(device->request_program(shader_bank->fullscreen, shader_bank->vi_scale)); +#endif + cmd.set_buffer_view(1, 0, *gamma_lut_view); + bind_horizontal_info_view(cmd, lines); + + cmd.push_constants(&push, 0, sizeof(push)); + + const auto shift_rect = [](VkRect2D &rect, int x, int y) { + rect.offset.x += x; + rect.offset.y += y; + + if (rect.offset.x < 0) + { + rect.extent.width += rect.offset.x; + rect.offset.x = 0; + } + + if (rect.offset.y < 0) + { + rect.extent.height += rect.offset.y; + rect.offset.y = 0; + } + + // Check for signed overflow without relying on -fwrapv. + if (rect.extent.width & 0x80000000u) + rect.extent.width = 0; + if (rect.extent.height & 0x80000000u) + rect.extent.height = 0; + }; + + if (!degenerate && divot_image && regs.h_res > 0 && regs.v_res > 0) + { + VkRect2D rect = {{ regs.h_start, regs.v_start }, { uint32_t(regs.h_res), uint32_t(regs.v_res) }}; + shift_rect(rect, -int(crop_left), -int(crop_top)); + + if (rect.extent.width > 0 && rect.extent.height > 0) + { + cmd.set_texture(0, 0, divot_image->get_view()); + cmd.set_scissor(rect); + cmd.draw(3); + } + } + + // To deal with weave interlacing and other "persistence effects", we blend in previous frame's result. + // This is somewhat arbitrary, but seems to work well enough in practice. + + if (prev_scanout_image && options.blend_previous_frame) + { + cmd.set_blend_enable(true); + cmd.set_blend_factors(VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA, VK_BLEND_FACTOR_DST_ALPHA); + // Don't overwrite alpha, it's already zero. + cmd.set_color_write_mask(0x7); + cmd.set_specialization_constant_mask(0); + cmd.set_texture(0, 0, prev_scanout_image->get_view()); +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://fullscreen.vert", "rdp://vi_blend_fields.frag", { + { "DEBUG_ENABLE", debug_channel ? 1 : 0 }, + }); +#else + cmd.set_program(device->request_program(shader_bank->fullscreen, shader_bank->vi_blend_fields)); +#endif + + if (degenerate) + { + if (regs.h_res > 0) + { + VkRect2D rect = {{ regs.h_start, 0 }, { uint32_t(regs.h_res), prev_scanout_image->get_height() }}; + shift_rect(rect, -int(crop_left), -int(crop_top)); + if (rect.extent.width > 0 && rect.extent.height > 0) + { + cmd.set_scissor(rect); + cmd.draw(3); + } + } + } + else + { + // Top part. + if (regs.h_res > 0 && regs.v_start > 0) + { + VkRect2D rect = {{ regs.h_start, 0 }, { uint32_t(regs.h_res), uint32_t(regs.v_start) }}; + shift_rect(rect, -int(crop_left), -int(crop_top)); + if (rect.extent.width > 0 && rect.extent.height > 0) + { + cmd.set_scissor(rect); + cmd.draw(3); + } + } + + // Middle part, don't overwrite the 8 pixel guard band. + if (regs.h_res_clamp > 0 && regs.v_res > 0) + { + VkRect2D rect = {{ regs.h_start_clamp, regs.v_start }, { uint32_t(regs.h_res_clamp), uint32_t(regs.v_res) }}; + shift_rect(rect, -int(crop_left), -int(crop_top)); + if (rect.extent.width > 0 && rect.extent.height > 0) + { + cmd.set_scissor(rect); + cmd.draw(3); + } + } + + // Bottom part. + if (regs.h_res > 0 && prev_scanout_image->get_height() > uint32_t(regs.v_start + regs.v_res)) + { + VkRect2D rect = {{ regs.h_start, regs.v_start + regs.v_res }, + { uint32_t(regs.h_res), prev_scanout_image->get_height() - uint32_t(regs.v_start + regs.v_res) }}; + shift_rect(rect, -int(crop_left), -int(crop_top)); + if (rect.extent.width > 0 && rect.extent.height > 0) + { + cmd.set_scissor(rect); + cmd.draw(3); + } + } + } + } + + cmd.end_render_pass(); + + if (timestamp) + { + end_ts = cmd.write_timestamp(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); + device->register_time_interval("VI GPU", std::move(start_ts), std::move(end_ts), "vi-scale"); + } + + return scale_image; +} + +Vulkan::ImageHandle VideoInterface::downscale_stage(Vulkan::CommandBuffer &cmd, Vulkan::Image &scale_image, + unsigned scaling_factor, unsigned downscale_steps, + const ScanoutOptions &options, bool final_pass) const +{ + Vulkan::ImageHandle downscale_image; + const Vulkan::Image *input = &scale_image; + Vulkan::ImageHandle holder; + + bool need_pass = scaling_factor > 1 && downscale_steps; + + // TODO: Could optimize this to happen in one pass, but ... eh. + while (need_pass) + { + if (input != &scale_image) + { + cmd.image_barrier(*input, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, + VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, + VK_PIPELINE_STAGE_2_BLIT_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_2_BLIT_BIT, VK_ACCESS_TRANSFER_READ_BIT); + } + + unsigned width = input->get_width(); + unsigned height = input->get_height(); + + Vulkan::ImageCreateInfo rt_info = Vulkan::ImageCreateInfo::render_target( + width / 2, height / 2, + VK_FORMAT_R8G8B8A8_UNORM); + + rt_info.usage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; + rt_info.initial_layout = VK_IMAGE_LAYOUT_UNDEFINED; + rt_info.misc = Vulkan::IMAGE_MISC_MUTABLE_SRGB_BIT; + + scaling_factor /= 2; + downscale_steps--; + need_pass = scaling_factor > 1 && downscale_steps; + + if (options.export_scanout && final_pass && !need_pass) + { + rt_info.misc |= Vulkan::IMAGE_MISC_EXTERNAL_MEMORY_BIT; + rt_info.external.memory_handle_type = options.export_handle_type; + } + + downscale_image = device->create_image(rt_info); + + if (!downscale_image) + { + LOGE("Failed to allocate downscale image.\n"); + return {}; + } + + cmd.image_barrier(*downscale_image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, + 0, 0, VK_PIPELINE_STAGE_2_BLIT_BIT, VK_ACCESS_TRANSFER_WRITE_BIT); + + cmd.blit_image(*downscale_image, *input, + {}, {int(rt_info.width), int(rt_info.height), 1}, + {}, {int(width), int(height), 1}, + 0, 0); + + input = downscale_image.get(); + holder = downscale_image; + } + + return downscale_image; +} + +Vulkan::ImageHandle VideoInterface::upscale_deinterlace(Vulkan::CommandBuffer &cmd, Vulkan::Image &scale_image, + unsigned scaling_factor, bool field_select, + const ScanoutOptions &options) const +{ + Vulkan::ImageHandle deinterlaced_image; + + // If we're running upscaled, upscaling Y further is somewhat meaningless and bandwidth intensive. + Vulkan::ImageCreateInfo rt_info = Vulkan::ImageCreateInfo::render_target( + scale_image.get_width(), scale_image.get_height() * (scaling_factor == 1 ? 2 : 1), + VK_FORMAT_R8G8B8A8_UNORM); + + rt_info.usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT; + rt_info.initial_layout = VK_IMAGE_LAYOUT_UNDEFINED; + rt_info.misc = Vulkan::IMAGE_MISC_MUTABLE_SRGB_BIT; + + if (options.export_scanout) + { + rt_info.misc |= Vulkan::IMAGE_MISC_EXTERNAL_MEMORY_BIT; + rt_info.external.memory_handle_type = options.export_handle_type; + } + + deinterlaced_image = device->create_image(rt_info); + + if (!deinterlaced_image) + { + LOGE("Failed to allocate deinterlace image.\n"); + return {}; + } + + Vulkan::RenderPassInfo rp; + rp.color_attachments[0] = &deinterlaced_image->get_view(); + rp.num_color_attachments = 1; + rp.store_attachments = 1; + + cmd.image_barrier(*deinterlaced_image, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + 0, 0, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT); + + cmd.begin_render_pass(rp); + cmd.set_opaque_state(); + + struct Push + { + float y_offset; + } push = {}; + push.y_offset = (float(scaling_factor) * (field_select ? -0.25f : +0.25f)) / float(scale_image.get_height()); + cmd.push_constants(&push, 0, sizeof(push)); + +#ifdef PARALLEL_RDP_SHADER_DIR + cmd.set_program("rdp://vi_deinterlace.vert", "rdp://vi_deinterlace.frag", { + { "DEBUG_ENABLE", debug_channel ? 1 : 0 }, + }); +#else + cmd.set_program(device->request_program(shader_bank->vi_deinterlace_vert, shader_bank->vi_deinterlace_frag)); +#endif + cmd.set_texture(0, 0, scale_image.get_view(), Vulkan::StockSampler::LinearClamp); + cmd.draw(3); + cmd.end_render_pass(); + return deinterlaced_image; +} + +void VideoInterface::begin_vi_register_per_scanline(PerScanlineRegisterFlags flags) +{ + per_line_state.flags = flags; + per_line_state.h_start.latched_state = vi_registers[unsigned(VIRegister::HStart)]; + per_line_state.x_scale.latched_state = vi_registers[unsigned(VIRegister::XScale)]; + per_line_state.h_start.line_state[0] = vi_registers[unsigned(VIRegister::HStart)]; + per_line_state.x_scale.line_state[0] = vi_registers[unsigned(VIRegister::XScale)]; + per_line_state.line = 0; + per_line_state.ended = false; +} + +void VideoInterface::set_vi_register_for_scanline(PerScanlineRegisterBits reg, uint32_t value) +{ + if ((per_line_state.flags & reg) == 0) + { + LOGW("Attempting to set VI register %u per scanline, " + "but was not flagged in begin_vi_register_per_scanline, ignoring.\n", reg); + return; + } + + switch (reg) + { + case PER_SCANLINE_HSTART_BIT: + per_line_state.h_start.latched_state = value; + break; + + case PER_SCANLINE_XSCALE_BIT: + per_line_state.x_scale.latched_state = value; + break; + + default: + break; + } +} + +void VideoInterface::latch_vi_register_for_scanline(unsigned vi_line) +{ + vi_line = std::min(vi_line, VI_V_END_MAX - 1); + + if (vi_line <= per_line_state.line) + { + LOGW("Ignoring vi_line %u, current line is %u, not monotonically increasing, ignoring.\n", + vi_line, per_line_state.line); + return; + } + + unsigned new_counter = per_line_state.line; + + while (++new_counter < vi_line) + { + per_line_state.h_start.line_state[new_counter] = per_line_state.h_start.line_state[per_line_state.line]; + per_line_state.x_scale.line_state[new_counter] = per_line_state.x_scale.line_state[per_line_state.line]; + } + + per_line_state.h_start.line_state[new_counter] = per_line_state.h_start.latched_state; + per_line_state.x_scale.line_state[new_counter] = per_line_state.x_scale.latched_state; + per_line_state.line = new_counter; +} + +void VideoInterface::clear_per_scanline_state() +{ + per_line_state.flags = 0; + per_line_state.ended = false; +} + +void VideoInterface::end_vi_register_per_scanline() +{ + if (per_line_state.flags == 0) + { + LOGW("Cannot end vi_register_per_scanline() with per line flags == 0, ignoring.\n"); + return; + } + + if (per_line_state.ended) + { + LOGW("Already ended per line register state, ignoring.\n"); + return; + } + + unsigned new_counter = per_line_state.line; + while (++new_counter < VI_V_END_MAX) + { + per_line_state.h_start.line_state[new_counter] = per_line_state.h_start.line_state[per_line_state.line]; + per_line_state.x_scale.line_state[new_counter] = per_line_state.x_scale.line_state[per_line_state.line]; + } + + per_line_state.ended = true; +} + +Vulkan::ImageHandle VideoInterface::scanout(VkImageLayout target_layout, const ScanoutOptions &options, unsigned scaling_factor_) +{ + unsigned downscale_steps = std::min(8u, options.downscale_steps); + int scaling_factor = int(scaling_factor_); + Vulkan::ImageHandle scanout; + HorizontalInfoLines lines; + + auto regs = decode_vi_registers(&lines); + clear_per_scanline_state(); + + if (regs.vi_offset == 0) + { + prev_scanout_image.reset(); + return scanout; + } + + if (!options.vi.serrate) + regs.status &= ~VI_CONTROL_SERRATE_BIT; + + bool status_is_aa = (regs.status & VI_CONTROL_AA_MODE_MASK) < VI_CONTROL_AA_MODE_RESAMP_ONLY_BIT; + bool status_is_bilinear = (regs.status & VI_CONTROL_AA_MODE_MASK) < VI_CONTROL_AA_MODE_RESAMP_REPLICATE_BIT; + + status_is_aa = status_is_aa && options.vi.aa; + status_is_bilinear = status_is_bilinear && options.vi.scale; + + regs.status &= ~(VI_CONTROL_AA_MODE_MASK | VI_CONTROL_META_AA_BIT | VI_CONTROL_META_SCALE_BIT); + if (status_is_aa) + regs.status |= VI_CONTROL_META_AA_BIT; + if (status_is_bilinear) + regs.status |= VI_CONTROL_META_SCALE_BIT; + + if (!options.vi.gamma_dither) + regs.status &= ~VI_CONTROL_GAMMA_DITHER_ENABLE_BIT; + if (!options.vi.divot_filter) + regs.status &= ~VI_CONTROL_DIVOT_ENABLE_BIT; + if (!options.vi.dither_filter) + regs.status &= ~VI_CONTROL_DITHER_FILTER_ENABLE_BIT; + + bool is_blank = (regs.status & VI_CONTROL_TYPE_RGBA5551_BIT) == 0; + if (is_blank && previous_frame_blank) + { + frame_count++; + prev_scanout_image.reset(); + return scanout; + } + + if (is_blank) + prev_scanout_image.reset(); + + regs.status |= VI_CONTROL_TYPE_RGBA5551_BIT; + previous_frame_blank = is_blank; + + bool divot = (regs.status & VI_CONTROL_DIVOT_ENABLE_BIT) != 0; + + if (regs.h_res <= 0 || regs.h_start >= VI_SCANOUT_WIDTH) + { + frame_count++; + + // A dirty hack to make it work for games which strobe the invalid state (but expect the image to persist), + // and games which legitimately render invalid frames for long stretches where a black screen is expected. + if (options.persist_frame_on_invalid_input && (frame_count - last_valid_frame_count < 4)) + { + scanout = prev_scanout_image; + + if (scanout && prev_image_layout != target_layout) + { + auto cmd = device->request_command_buffer(); + cmd->image_barrier(*scanout, prev_image_layout, target_layout, + layout_to_stage(prev_image_layout), 0, + layout_to_stage(target_layout), layout_to_access(target_layout)); + prev_image_layout = target_layout; + device->submit(cmd); + } + } + else + prev_scanout_image.reset(); + + return scanout; + } + + last_valid_frame_count = frame_count; + + bool degenerate = regs.h_res <= 0 || regs.v_res <= 0; + + regs.h_start *= scaling_factor; + regs.h_start_clamp *= scaling_factor; + regs.v_start *= scaling_factor; + + regs.h_res *= scaling_factor; + regs.h_res_clamp *= scaling_factor; + regs.v_res *= scaling_factor; + + regs.max_x = regs.max_x * scaling_factor + (scaling_factor - 1); + regs.max_y = regs.max_y * scaling_factor + (scaling_factor - 1); + + for (auto &line : lines.lines) + { + line.h_start *= scaling_factor; + line.h_start_clamp *= scaling_factor; + line.h_end_clamp *= scaling_factor; + line.x_start *= scaling_factor; + line.y_start *= scaling_factor; + line.y_base *= scaling_factor; + } + + // First we copy data out of VRAM into a texture which we will then perform our post-AA on. + // We do this on the async queue so we don't have to stall async queue on graphics work to deal with WAR hazards. + // After the copy, we can immediately begin rendering new frames while we do post in parallel. + Vulkan::ImageHandle vram_image; + if (!degenerate) + vram_image = vram_fetch_stage(regs, scaling_factor); + + auto cmd = device->request_command_buffer(); + + if (debug_channel) + cmd->begin_debug_channel(this, "VI", 32 * 1024 * 1024); + + // In the first pass, we need to read from VRAM and apply the fetch filter. + // This is either the AA filter if coverage < 7, or the dither reconstruction filter if coverage == 7 and enabled. + // Following that, post-AA filter, we have the divot filter. + // In this filter, we need to find the median value of three horizontal pixels, post AA if any of them have coverage < 7. + // Finally, we lerp the result based on x_add and y_add, and then, apply gamma/dither on top as desired. + + // AA -> divot could probably be done with compute and shared memory, but ideally this is done in fragment shaders in this implementation + // so that we can run higher-priority compute shading workload async in the async queue. + // We also get to take advantage of framebuffer compression FWIW. + + Vulkan::ImageHandle aa_image; + if (!degenerate) + aa_image = aa_fetch_stage(*cmd, *vram_image, regs, scaling_factor); + + // Divot pass + Vulkan::ImageHandle divot_image; + if (divot && !degenerate) + divot_image = divot_stage(*cmd, *aa_image, regs, scaling_factor); + else + divot_image = std::move(aa_image); + + // Scale pass + bool is_final_pass = !downscale_steps || scaling_factor <= 1; + bool serrate = (regs.status & VI_CONTROL_SERRATE_BIT) != 0; + + auto scale_image = scale_stage(*cmd, divot_image.get(), + regs, lines, + scaling_factor, degenerate, options, + is_final_pass); + + auto src_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + + if (!is_final_pass && scale_image) + { + cmd->image_barrier(*scale_image, src_layout, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, + layout_to_stage(src_layout), layout_to_access(src_layout), + VK_PIPELINE_STAGE_2_BLIT_BIT, VK_ACCESS_TRANSFER_READ_BIT); + + is_final_pass = !serrate || !options.upscale_deinterlacing; + + scale_image = downscale_stage(*cmd, *scale_image, scaling_factor, downscale_steps, + options, is_final_pass); + + src_layout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; + } + + if (!is_final_pass && scale_image) + { + cmd->image_barrier(*scale_image, src_layout, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + layout_to_stage(src_layout), layout_to_access(src_layout), + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_ACCESS_2_SHADER_SAMPLED_READ_BIT); + + bool field_state = regs.v_current_line == 0; + scale_image = upscale_deinterlace(*cmd, *scale_image, + std::max(1, scaling_factor >> downscale_steps), + field_state, options); + src_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + } + + if (scale_image) + { + if (options.export_scanout) + { + // Foreign handle types (e.g. D3D) must use GENERAL layouts. + if (options.export_handle_type != Vulkan::ExternalHandle::get_opaque_memory_handle_type()) + target_layout = VK_IMAGE_LAYOUT_GENERAL; + + cmd->release_image_barrier(*scale_image, src_layout, + target_layout, + layout_to_stage(src_layout), + layout_to_access(src_layout)); + } + else + { + cmd->image_barrier(*scale_image, src_layout, target_layout, + layout_to_stage(src_layout), layout_to_access(src_layout), + layout_to_stage(target_layout), layout_to_access(target_layout)); + } + } + + prev_image_layout = target_layout; + prev_scanout_image = scale_image; + prev_image_is_external = options.export_scanout; + + if (options.persist_frame_on_invalid_input && options.export_scanout) + { + LOGE("persist_frame_on_invalid_input cannot be combined with export_scanout.\n"); + prev_scanout_image.reset(); + } + + device->submit(cmd); + scanout = std::move(scale_image); + frame_count++; + return scanout; +} +} diff --git a/parallel-rdp/video_interface.hpp b/parallel-rdp/video_interface.hpp new file mode 100644 index 00000000..98a75e0a --- /dev/null +++ b/parallel-rdp/video_interface.hpp @@ -0,0 +1,240 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include "device.hpp" +#include "rdp_common.hpp" + +namespace RDP +{ +struct ScanoutOptions +{ + // Simple (obsolete) crop method. If crop_rect.enable is false, this + // crops top / bottom with number of pixels (doubled if interlace), + // and left / right are cropped in an aspect preserving way. + // If crop_rect.enable is true, + // this is ignored and the crop_rect struct is used instead. + // Crop pixels are adjusted for upscaling, pixels are assumed to + // be specified for the original resolution. + unsigned crop_overscan_pixels = 0; + + struct CropRect + { + unsigned left = 0; + unsigned right = 0; + unsigned top = 0; // Doubled if interlace + unsigned bottom = 0; // Doubled if interlace + bool enable = false; + } crop_rect; + + unsigned downscale_steps = 0; + + // Works around certain game bugs. Considered a hack if enabled. + bool persist_frame_on_invalid_input = false; + + // To be equivalent to reference behavior where + // pixels persist for an extra frame. + // Not hardware accurate, but needed for weave interlace mode. + bool blend_previous_frame = false; + + // Upscale deinterlacing deinterlaces by upscaling in Y, with an Y coordinate offset matching the field. + // If disabled, weave interlacing is used. + // Weave deinterlacing should *not* be used, except to run test suite! + bool upscale_deinterlacing = true; + + struct + { + bool aa = true; + bool scale = true; + bool serrate = true; + bool dither_filter = true; + bool divot_filter = true; + bool gamma_dither = true; + } vi; + + // External memory support. + // If true, the scanout image will be created with external memory support. + // presist_frame_on_invalid_input must be false when using exports. + VkExternalMemoryHandleTypeFlagBits export_handle_type = {}; + bool export_scanout = false; +}; + +struct VIScanoutBuffer +{ + Vulkan::BufferHandle buffer; + Vulkan::Fence fence; + unsigned width = 0; + unsigned height = 0; +}; + +class Renderer; + +class VideoInterface : public Vulkan::DebugChannelInterface +{ +public: + void set_device(Vulkan::Device *device); + void set_renderer(Renderer *renderer); + void set_vi_register(VIRegister reg, uint32_t value); + + void set_rdram(const Vulkan::Buffer *rdram, size_t offset, size_t size); + void set_hidden_rdram(const Vulkan::Buffer *hidden_rdram); + + int resolve_shader_define(const char *name, const char *define) const; + + Vulkan::ImageHandle scanout(VkImageLayout target_layout, const ScanoutOptions &options = {}, unsigned scale_factor = 1); + void scanout_memory_range(unsigned &offset, unsigned &length) const; + void set_shader_bank(const ShaderBank *bank); + + enum PerScanlineRegisterBits + { + // Currently supported bits. + PER_SCANLINE_HSTART_BIT = 1 << 0, + PER_SCANLINE_XSCALE_BIT = 1 << 1 + }; + using PerScanlineRegisterFlags = uint32_t; + + void begin_vi_register_per_scanline(PerScanlineRegisterFlags flags); + void set_vi_register_for_scanline(PerScanlineRegisterBits reg, uint32_t value); + void latch_vi_register_for_scanline(unsigned vi_line); + void end_vi_register_per_scanline(); + +private: + Vulkan::Device *device = nullptr; + Renderer *renderer = nullptr; + uint32_t vi_registers[unsigned(VIRegister::Count)] = {}; + + struct PerScanlineRegisterState + { + uint32_t latched_state; + uint32_t line_state[VI_V_END_MAX]; + }; + + struct + { + PerScanlineRegisterState h_start; + PerScanlineRegisterState x_scale; + PerScanlineRegisterFlags flags = 0; + unsigned line = 0; + bool ended = false; + } per_line_state; + + const Vulkan::Buffer *rdram = nullptr; + const Vulkan::Buffer *hidden_rdram = nullptr; + Vulkan::BufferHandle gamma_lut; + Vulkan::BufferViewHandle gamma_lut_view; + const ShaderBank *shader_bank = nullptr; + + void init_gamma_table(); + bool previous_frame_blank = false; + bool debug_channel = false; + int filter_debug_channel_x = -1; + int filter_debug_channel_y = -1; + + void message(const std::string &tag, uint32_t code, + uint32_t x, uint32_t y, uint32_t z, + uint32_t num_words, const Vulkan::DebugChannelInterface::Word *words) override; + + // Frame state. + uint32_t frame_count = 0; + uint32_t last_valid_frame_count = 0; + Vulkan::ImageHandle prev_scanout_image; + VkImageLayout prev_image_layout = VK_IMAGE_LAYOUT_UNDEFINED; + bool prev_image_is_external = false; + + size_t rdram_offset = 0; + size_t rdram_size = 0; + bool timestamp = false; + + struct HorizontalInfo + { + int32_t h_start; + int32_t h_start_clamp; + int32_t h_end_clamp; + int32_t x_start; + int32_t x_add; + int32_t y_start; + int32_t y_add; + int32_t y_base; + }; + + struct HorizontalInfoLines + { + HorizontalInfo lines[VI_MAX_OUTPUT_SCANLINES]; + }; + + static void bind_horizontal_info_view(Vulkan::CommandBuffer &cmd, const HorizontalInfoLines &lines); + + struct Registers + { + int vi_width; + int vi_offset; + int v_current_line; + bool is_pal; + uint32_t status; + + int init_y_add; + + // Global scale pass scissor box. + int h_start_clamp, h_res_clamp; + int h_start, h_res; + int v_start, v_res; + + // For AA stages. + int max_x, max_y; + }; + + Registers decode_vi_registers(HorizontalInfoLines *lines) const; + void clear_per_scanline_state(); + + Vulkan::ImageHandle vram_fetch_stage(const Registers ®isters, + unsigned scaling_factor) const; + Vulkan::ImageHandle aa_fetch_stage(Vulkan::CommandBuffer &cmd, + Vulkan::Image &vram_image, + const Registers ®isters, + unsigned scaling_factor) const; + Vulkan::ImageHandle divot_stage(Vulkan::CommandBuffer &cmd, + Vulkan::Image &aa_image, + const Registers ®isters, + unsigned scaling_factor) const; + Vulkan::ImageHandle scale_stage(Vulkan::CommandBuffer &cmd, + const Vulkan::Image *divot_image, + Registers registers, + const HorizontalInfoLines &lines, + unsigned scaling_factor, + bool degenerate, + const ScanoutOptions &options, + bool final_pass) const; + Vulkan::ImageHandle downscale_stage(Vulkan::CommandBuffer &cmd, + Vulkan::Image &scale_image, + unsigned scaling_factor, + unsigned downscale_factor, + const ScanoutOptions &options, + bool final_pass) const; + Vulkan::ImageHandle upscale_deinterlace(Vulkan::CommandBuffer &cmd, + Vulkan::Image &scale_image, + unsigned scaling_factor, bool field_select, + const ScanoutOptions &options) const; + static bool need_fetch_bug_emulation(const Registers ®, unsigned scaling_factor); +}; +} diff --git a/parallel-rdp/worker_thread.hpp b/parallel-rdp/worker_thread.hpp new file mode 100644 index 00000000..101539e6 --- /dev/null +++ b/parallel-rdp/worker_thread.hpp @@ -0,0 +1,127 @@ +/* Copyright (c) 2020 Themaister + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include "thread_id.hpp" + +#ifdef PARALLEL_RDP_SHADER_DIR +#include "global_managers.hpp" +#endif + +namespace RDP +{ +template +class WorkerThread +{ +public: + explicit WorkerThread( +#ifdef PARALLEL_RDP_SHADER_DIR + Granite::Global::GlobalManagersHandle globals, +#endif + Executor exec) + : executor(std::move(exec)) +#ifdef PARALLEL_RDP_SHADER_DIR + , handles(std::move(globals)) +#endif + { + thr = std::thread(&WorkerThread::main_loop, this); + } + + ~WorkerThread() + { + if (thr.joinable()) + { + { + std::lock_guard holder{to_thread_mutex}; + work_queue.push({}); + to_thread_cond.notify_one(); + } + thr.join(); + } + } + + template + void wait(Cond &&cond) + { + std::unique_lock holder{to_main_mutex}; + to_main_cond.wait(holder, std::forward(cond)); + } + + void push(T &&t) + { + std::lock_guard holder{to_thread_mutex}; + work_queue.push(std::move(t)); + to_thread_cond.notify_one(); + } + +private: + std::thread thr; + std::mutex to_thread_mutex; + std::condition_variable to_thread_cond; + std::mutex to_main_mutex; + std::condition_variable to_main_cond; + std::queue work_queue; + Executor executor; + +#ifdef PARALLEL_RDP_SHADER_DIR + Granite::Global::GlobalManagersHandle handles; +#endif + + void main_loop() + { +#ifdef PARALLEL_RDP_SHADER_DIR + Granite::Global::set_thread_context(*handles); + handles.reset(); +#endif + + // Avoid benign errors in logging. + // This thread never actually needs the thread ID. + Util::register_thread_index(0); + + for (;;) + { + T value; + + { + std::unique_lock holder{to_thread_mutex}; + to_thread_cond.wait(holder, [this]() { return !work_queue.empty(); }); + value = std::move(work_queue.front()); + work_queue.pop(); + } + + if (executor.is_sentinel(value)) + break; + + executor.perform_work(value); + std::lock_guard holder{to_main_mutex}; + executor.notify_work_locked(value); + to_main_cond.notify_one(); + } + } +}; +} \ No newline at end of file diff --git a/util/aligned_alloc.cpp b/util/aligned_alloc.cpp new file mode 100644 index 00000000..9f5900ec --- /dev/null +++ b/util/aligned_alloc.cpp @@ -0,0 +1,83 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "aligned_alloc.hpp" +#include +#include +#include +#ifdef _WIN32 +#include +#endif + +namespace Util +{ +void *memalign_alloc(size_t boundary, size_t size) +{ +#if defined(_WIN32) + return _aligned_malloc(size, boundary); +#elif defined(_ISOC11_SOURCE) + return aligned_alloc(boundary, (size + boundary - 1) & ~(boundary - 1)); +#elif (_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600) + void *ptr = nullptr; + if (posix_memalign(&ptr, boundary, size) < 0) + return nullptr; + return ptr; +#else + // Align stuff ourselves. Kinda ugly, but will work anywhere. + void **place; + uintptr_t addr = 0; + void *ptr = malloc(boundary + size + sizeof(uintptr_t)); + + if (ptr == nullptr) + return nullptr; + + addr = ((uintptr_t)ptr + sizeof(uintptr_t) + boundary) & ~(boundary - 1); + place = (void **) addr; + place[-1] = ptr; + + return (void *) addr; +#endif +} + +void *memalign_calloc(size_t boundary, size_t size) +{ + void *ret = memalign_alloc(boundary, size); + if (ret) + memset(ret, 0, size); + return ret; +} + +void memalign_free(void *ptr) +{ +#if defined(_WIN32) + _aligned_free(ptr); +#elif !defined(_ISOC11_SOURCE) && !((_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600)) + if (ptr != nullptr) + { + void **p = (void **) ptr; + free(p[-1]); + } +#else + free(ptr); +#endif +} +} diff --git a/util/aligned_alloc.hpp b/util/aligned_alloc.hpp new file mode 100644 index 00000000..c2f82bd7 --- /dev/null +++ b/util/aligned_alloc.hpp @@ -0,0 +1,68 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include + +namespace Util +{ +void *memalign_alloc(size_t boundary, size_t size); +void *memalign_calloc(size_t boundary, size_t size); +void memalign_free(void *ptr); + +struct AlignedDeleter { void operator()(void *ptr) { memalign_free(ptr); }}; + +template +struct AlignedAllocation +{ + static void *operator new(size_t size) + { + void *ret = ::Util::memalign_alloc(alignof(T), size); +#ifdef __EXCEPTIONS + if (!ret) throw std::bad_alloc(); +#endif + return ret; + } + + static void *operator new[](size_t size) + { + void *ret = ::Util::memalign_alloc(alignof(T), size); +#ifdef __EXCEPTIONS + if (!ret) throw std::bad_alloc(); +#endif + return ret; + } + + static void operator delete(void *ptr) + { + return ::Util::memalign_free(ptr); + } + + static void operator delete[](void *ptr) + { + return ::Util::memalign_free(ptr); + } +}; +} diff --git a/util/arena_allocator.cpp b/util/arena_allocator.cpp new file mode 100644 index 00000000..27abc927 --- /dev/null +++ b/util/arena_allocator.cpp @@ -0,0 +1,197 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#include "arena_allocator.hpp" +#include "bitops.hpp" +#include + +namespace Util +{ +void LegionAllocator::allocate(uint32_t num_blocks, uint32_t &out_mask, uint32_t &out_offset) +{ + assert(NumSubBlocks >= num_blocks); + assert(num_blocks != 0); + + uint32_t block_mask; + if (num_blocks == NumSubBlocks) + block_mask = ~0u; + else + block_mask = ((1u << num_blocks) - 1u); + + uint32_t mask = free_blocks[num_blocks - 1]; + uint32_t b = trailing_zeroes(mask); + + assert(((free_blocks[0] >> b) & block_mask) == block_mask); + + uint32_t sb = block_mask << b; + free_blocks[0] &= ~sb; + update_longest_run(); + + out_mask = sb; + out_offset = b; +} + +void LegionAllocator::free(uint32_t mask) +{ + assert((free_blocks[0] & mask) == 0); + free_blocks[0] |= mask; + update_longest_run(); +} + +void LegionAllocator::update_longest_run() +{ + uint32_t f = free_blocks[0]; + longest_run = 0; + + while (f) + { + free_blocks[longest_run++] = f; + f &= f >> 1; + } +} + +bool SliceSubAllocator::allocate_backing_heap(AllocatedSlice *allocation) +{ + uint32_t count = sub_block_size * Util::LegionAllocator::NumSubBlocks; + + if (parent) + { + return parent->allocate(count, allocation); + } + else if (global_allocator) + { + uint32_t index = global_allocator->allocate(count); + if (index == UINT32_MAX) + return false; + + *allocation = {}; + allocation->count = count; + allocation->buffer_index = index; + return true; + } + else + { + return false; + } +} + +void SliceSubAllocator::free_backing_heap(AllocatedSlice *allocation) const +{ + if (parent) + parent->free(allocation->heap, allocation->mask); + else if (global_allocator) + global_allocator->free(allocation->buffer_index); +} + +void SliceSubAllocator::prepare_allocation(AllocatedSlice *allocation, Util::IntrusiveList::Iterator heap, + const Util::SuballocationResult &suballoc) +{ + allocation->buffer_index = heap->allocation.buffer_index; + allocation->offset = heap->allocation.offset + suballoc.offset; + allocation->count = suballoc.size; + allocation->mask = suballoc.mask; + allocation->heap = heap; + allocation->alloc = this; +} + +void SliceAllocator::init(uint32_t sub_block_size, uint32_t num_sub_blocks_in_arena_log2, + Util::SliceBackingAllocator *alloc) +{ + global_allocator = alloc; + assert(num_sub_blocks_in_arena_log2 < SliceAllocatorCount * 5 && num_sub_blocks_in_arena_log2 >= 5); + unsigned num_hierarchies = (num_sub_blocks_in_arena_log2 + 4) / 5; + assert(num_hierarchies <= SliceAllocatorCount); + + for (unsigned i = 0; i < num_hierarchies - 1; i++) + allocators[i].parent = &allocators[i + 1]; + allocators[num_hierarchies - 1].global_allocator = alloc; + + unsigned shamt[SliceAllocatorCount] = {}; + shamt[num_hierarchies - 1] = num_sub_blocks_in_arena_log2 - Util::floor_log2(Util::LegionAllocator::NumSubBlocks); + + // Spread out the multiplier if possible. + for (unsigned i = num_hierarchies - 1; i > 1; i--) + { + shamt[i - 1] = shamt[i] - shamt[i] / (i); + assert(shamt[i] - shamt[i - 1] <= Util::floor_log2(Util::LegionAllocator::NumSubBlocks)); + } + + for (unsigned i = 0; i < num_hierarchies; i++) + { + allocators[i].set_sub_block_size(sub_block_size << shamt[i]); + allocators[i].set_object_pool(&object_pool); + } +} + +void SliceAllocator::free(const Util::AllocatedSlice &slice) +{ + if (slice.alloc) + slice.alloc->free(slice.heap, slice.mask); + else if (slice.buffer_index != UINT32_MAX) + global_allocator->free(slice.buffer_index); +} + +void SliceAllocator::prime(const void *opaque_meta) +{ + for (auto &alloc : allocators) + { + if (alloc.global_allocator) + { + alloc.global_allocator->prime(alloc.get_sub_block_size() * Util::LegionAllocator::NumSubBlocks, opaque_meta); + break; + } + } +} + +bool SliceAllocator::allocate(uint32_t count, Util::AllocatedSlice *slice) +{ + for (auto &alloc : allocators) + { + uint32_t max_alloc_size = alloc.get_max_allocation_size(); + if (count <= max_alloc_size) + return alloc.allocate(count, slice); + } + + LOGE("Allocation of %u elements is too large for SliceAllocator.\n", count); + return false; +} + +void SliceBackingAllocatorVA::free(uint32_t) +{ + allocated = false; +} + +uint32_t SliceBackingAllocatorVA::allocate(uint32_t) +{ + if (allocated) + return UINT32_MAX; + else + { + allocated = true; + return 0; + } +} + +void SliceBackingAllocatorVA::prime(uint32_t, const void *) +{ +} +} diff --git a/util/arena_allocator.hpp b/util/arena_allocator.hpp new file mode 100644 index 00000000..e6a73608 --- /dev/null +++ b/util/arena_allocator.hpp @@ -0,0 +1,336 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen +* +* Permission is hereby granted, free of charge, to any person obtaining +* a copy of this software and associated documentation files (the +* "Software"), to deal in the Software without restriction, including +* without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to +* permit persons to whom the Software is furnished to do so, subject to +* the following conditions: +* +* The above copyright notice and this permission notice shall be +* included in all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#pragma once + +#include +#include +#include "intrusive_list.hpp" +#include "logging.hpp" +#include "object_pool.hpp" +#include "bitops.hpp" + +namespace Util +{ +// Expands the buddy allocator to consider 32 "buddies". +// The allocator is logical and works in terms of units, not bytes. +class LegionAllocator +{ +public: + enum + { + NumSubBlocks = 32u, + AllFree = ~0u + }; + + LegionAllocator(const LegionAllocator &) = delete; + void operator=(const LegionAllocator &) = delete; + + LegionAllocator() + { + for (auto &v : free_blocks) + v = AllFree; + longest_run = 32; + } + + ~LegionAllocator() + { + if (free_blocks[0] != AllFree) + LOGE("Memory leak in block detected.\n"); + } + + inline bool full() const + { + return free_blocks[0] == 0; + } + + inline bool empty() const + { + return free_blocks[0] == AllFree; + } + + inline uint32_t get_longest_run() const + { + return longest_run; + } + + void allocate(uint32_t num_blocks, uint32_t &mask, uint32_t &offset); + void free(uint32_t mask); + +private: + uint32_t free_blocks[NumSubBlocks]; + uint32_t longest_run = 0; + void update_longest_run(); +}; + +// Represents that a legion heap is backed by some kind of allocation. +template +struct LegionHeap : Util::IntrusiveListEnabled> +{ + BackingAllocation allocation; + Util::LegionAllocator heap; +}; + +template +struct AllocationArena +{ + Util::IntrusiveList> heaps[Util::LegionAllocator::NumSubBlocks]; + Util::IntrusiveList> full_heaps; + uint32_t heap_availability_mask = 0; +}; + +struct SuballocationResult +{ + uint32_t offset; + uint32_t size; + uint32_t mask; +}; + +template +class ArenaAllocator +{ +public: + using MiniHeap = LegionHeap; + + ~ArenaAllocator() + { + bool error = false; + + if (heap_arena.full_heaps.begin()) + error = true; + + for (auto &h : heap_arena.heaps) + if (h.begin()) + error = true; + + if (error) + LOGE("Memory leaked in class allocator!\n"); + } + + inline void set_sub_block_size(uint32_t size) + { + assert(Util::is_pow2(size)); + sub_block_size_log2 = Util::floor_log2(size); + sub_block_size = size; + } + + inline uint32_t get_max_allocation_size() const + { + return sub_block_size * Util::LegionAllocator::NumSubBlocks; + } + + inline uint32_t get_sub_block_size() const + { + return sub_block_size; + } + + inline uint32_t get_block_alignment() const + { + return get_sub_block_size(); + } + + inline bool allocate(uint32_t size, BackingAllocation *alloc) + { + unsigned num_blocks = (size + sub_block_size - 1) >> sub_block_size_log2; + uint32_t size_mask = (1u << (num_blocks - 1)) - 1; + uint32_t index = trailing_zeroes(heap_arena.heap_availability_mask & ~size_mask); + + if (index < LegionAllocator::NumSubBlocks) + { + auto itr = heap_arena.heaps[index].begin(); + assert(itr); + assert(index >= (num_blocks - 1)); + + auto &heap = *itr; + static_cast(this)->prepare_allocation(alloc, itr, suballocate(num_blocks, heap)); + + unsigned new_index = heap.heap.get_longest_run() - 1; + + if (heap.heap.full()) + { + heap_arena.full_heaps.move_to_front(heap_arena.heaps[index], itr); + if (!heap_arena.heaps[index].begin()) + heap_arena.heap_availability_mask &= ~(1u << index); + } + else if (new_index != index) + { + auto &new_heap = heap_arena.heaps[new_index]; + new_heap.move_to_front(heap_arena.heaps[index], itr); + heap_arena.heap_availability_mask |= 1u << new_index; + if (!heap_arena.heaps[index].begin()) + heap_arena.heap_availability_mask &= ~(1u << index); + } + + return true; + } + + // We didn't find a vacant heap, make a new one. + auto *node = object_pool->allocate(); + if (!node) + return false; + + auto &heap = *node; + + if (!static_cast(this)->allocate_backing_heap(&heap.allocation)) + { + object_pool->free(node); + return false; + } + + // This cannot fail. + static_cast(this)->prepare_allocation(alloc, node, suballocate(num_blocks, heap)); + + if (heap.heap.full()) + { + heap_arena.full_heaps.insert_front(node); + } + else + { + unsigned new_index = heap.heap.get_longest_run() - 1; + heap_arena.heaps[new_index].insert_front(node); + heap_arena.heap_availability_mask |= 1u << new_index; + } + + return true; + } + + inline void free(typename IntrusiveList::Iterator itr, uint32_t mask) + { + auto *heap = itr.get(); + auto &block = heap->heap; + bool was_full = block.full(); + + unsigned index = block.get_longest_run() - 1; + block.free(mask); + unsigned new_index = block.get_longest_run() - 1; + + if (block.empty()) + { + static_cast(this)->free_backing_heap(&heap->allocation); + + if (was_full) + heap_arena.full_heaps.erase(heap); + else + { + heap_arena.heaps[index].erase(heap); + if (!heap_arena.heaps[index].begin()) + heap_arena.heap_availability_mask &= ~(1u << index); + } + + object_pool->free(heap); + } + else if (was_full) + { + heap_arena.heaps[new_index].move_to_front(heap_arena.full_heaps, heap); + heap_arena.heap_availability_mask |= 1u << new_index; + } + else if (index != new_index) + { + heap_arena.heaps[new_index].move_to_front(heap_arena.heaps[index], heap); + heap_arena.heap_availability_mask |= 1u << new_index; + if (!heap_arena.heaps[index].begin()) + heap_arena.heap_availability_mask &= ~(1u << index); + } + } + + inline void set_object_pool(ObjectPool *object_pool_) + { + object_pool = object_pool_; + } + +protected: + AllocationArena heap_arena; + ObjectPool> *object_pool = nullptr; + + uint32_t sub_block_size = 1; + uint32_t sub_block_size_log2 = 0; + +private: + inline SuballocationResult suballocate(uint32_t num_blocks, MiniHeap &heap) + { + SuballocationResult res = {}; + res.size = num_blocks << sub_block_size_log2; + heap.heap.allocate(num_blocks, res.mask, res.offset); + res.offset <<= sub_block_size_log2; + return res; + } +}; + +struct SliceSubAllocator; + +struct AllocatedSlice +{ + uint32_t buffer_index = UINT32_MAX; + uint32_t offset = 0; + uint32_t count = 0; + uint32_t mask = 0; + + SliceSubAllocator *alloc = nullptr; + Util::IntrusiveList>::Iterator heap = {}; +}; + +struct SliceBackingAllocator +{ + virtual ~SliceBackingAllocator() = default; + virtual uint32_t allocate(uint32_t count) = 0; + virtual void free(uint32_t index) = 0; + virtual void prime(uint32_t count, const void *opaque_meta) = 0; +}; + +struct SliceBackingAllocatorVA : SliceBackingAllocator +{ + uint32_t allocate(uint32_t count) override; + void free(uint32_t index) override; + void prime(uint32_t count, const void *opaque_meta) override; + bool allocated = false; +}; + +struct SliceSubAllocator : Util::ArenaAllocator +{ + SliceSubAllocator *parent = nullptr; + SliceBackingAllocator *global_allocator = nullptr; + + // Implements curious recurring template pattern calls. + bool allocate_backing_heap(AllocatedSlice *allocation); + void free_backing_heap(AllocatedSlice *allocation) const; + void prepare_allocation(AllocatedSlice *allocation, Util::IntrusiveList::Iterator heap, + const Util::SuballocationResult &suballoc); +}; + +class SliceAllocator +{ +public: + bool allocate(uint32_t count, Util::AllocatedSlice *slice); + void free(const Util::AllocatedSlice &slice); + void prime(const void *opaque_meta); + +protected: + SliceAllocator() = default; + void init(uint32_t sub_block_size, uint32_t num_sub_blocks_in_arena_log2, SliceBackingAllocator *alloc); + +private: + Util::ObjectPool> object_pool; + SliceBackingAllocator *global_allocator = nullptr; + enum { SliceAllocatorCount = 5 }; + Util::SliceSubAllocator allocators[SliceAllocatorCount]; +}; +} \ No newline at end of file diff --git a/util/bitops.hpp b/util/bitops.hpp new file mode 100644 index 00000000..a523f870 --- /dev/null +++ b/util/bitops.hpp @@ -0,0 +1,173 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#ifdef _MSC_VER +#include +#endif + +namespace Util +{ +#ifdef __GNUC__ +#define leading_zeroes_(x) ((x) == 0 ? 32 : __builtin_clz(x)) +#define trailing_zeroes_(x) ((x) == 0 ? 32 : __builtin_ctz(x)) +#define trailing_ones_(x) __builtin_ctz(~uint32_t(x)) +#define leading_zeroes64_(x) ((x) == 0 ? 64 : __builtin_clzll(x)) +#define trailing_zeroes64_(x) ((x) == 0 ? 64 : __builtin_ctzll(x)) +#define trailing_ones64_(x) __builtin_ctzll(~uint64_t(x)) +#define popcount32_(x) __builtin_popcount(x) + +static inline uint32_t leading_zeroes(uint32_t x) { return leading_zeroes_(x); } +static inline uint32_t trailing_zeroes(uint32_t x) { return trailing_zeroes_(x); } +static inline uint32_t trailing_ones(uint32_t x) { return trailing_ones_(x); } +static inline uint32_t leading_zeroes64(uint64_t x) { return leading_zeroes64_(x); } +static inline uint32_t trailing_zeroes64(uint64_t x) { return trailing_zeroes64_(x); } +static inline uint32_t trailing_ones64(uint64_t x) { return trailing_ones64_(x); } +static inline uint32_t popcount32(uint32_t x) { return popcount32_(x); } + +#elif defined(_MSC_VER) +namespace Internal +{ +static inline uint32_t popcount32(uint32_t x) +{ + return __popcnt(x); +} + +static inline uint32_t clz(uint32_t x) +{ + unsigned long result; + if (_BitScanReverse(&result, x)) + return 31 - result; + else + return 32; +} + +static inline uint32_t ctz(uint32_t x) +{ + unsigned long result; + if (_BitScanForward(&result, x)) + return result; + else + return 32; +} + +static inline uint32_t clz64(uint64_t x) +{ + unsigned long result; + if (_BitScanReverse64(&result, x)) + return 63 - result; + else + return 64; +} + +static inline uint32_t ctz64(uint64_t x) +{ + unsigned long result; + if (_BitScanForward64(&result, x)) + return result; + else + return 64; +} +} + +static inline uint32_t leading_zeroes(uint32_t x) { return Internal::clz(x); } +static inline uint32_t trailing_zeroes(uint32_t x) { return Internal::ctz(x); } +static inline uint32_t trailing_ones(uint32_t x) { return Internal::ctz(~x); } +static inline uint32_t leading_zeroes64(uint64_t x) { return Internal::clz64(x); } +static inline uint32_t trailing_zeroes64(uint64_t x) { return Internal::ctz64(x); } +static inline uint32_t trailing_ones64(uint64_t x) { return Internal::ctz64(~x); } +static inline uint32_t popcount32(uint32_t x) { return Internal::popcount32(x); } +#else +#error "Implement me." +#endif + +template +inline void for_each_bit64(uint64_t value, const T &func) +{ + while (value) + { + uint32_t bit = trailing_zeroes64(value); + func(bit); + value &= ~(1ull << bit); + } +} + +template +inline void for_each_bit(uint32_t value, const T &func) +{ + while (value) + { + uint32_t bit = trailing_zeroes(value); + func(bit); + value &= ~(1u << bit); + } +} + +template +inline void for_each_bit_range(uint32_t value, const T &func) +{ + if (value == ~0u) + { + func(0, 32); + return; + } + + uint32_t bit_offset = 0; + while (value) + { + uint32_t bit = trailing_zeroes(value); + bit_offset += bit; + value >>= bit; + uint32_t range = trailing_ones(value); + func(bit_offset, range); + value &= ~((1u << range) - 1); + } +} + +template +inline bool is_pow2(T value) +{ + return (value & (value - T(1))) == T(0); +} + +inline uint32_t next_pow2(uint32_t v) +{ + v--; + v |= v >> 16; + v |= v >> 8; + v |= v >> 4; + v |= v >> 2; + v |= v >> 1; + return v + 1; +} + +inline uint32_t prev_pow2(uint32_t v) +{ + return next_pow2(v + 1) >> 1; +} + +inline uint32_t floor_log2(uint32_t v) +{ + return 31 - leading_zeroes(v); +} +} diff --git a/util/dynamic_array.hpp b/util/dynamic_array.hpp new file mode 100644 index 00000000..9a790ae8 --- /dev/null +++ b/util/dynamic_array.hpp @@ -0,0 +1,59 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "aligned_alloc.hpp" +#include +#include +#include + +namespace Util +{ +template +class DynamicArray +{ +public: + // Only POD-like types work here since we don't invoke placement new or delete. + static_assert(std::is_trivially_default_constructible::value, "T must be trivially constructible."); + static_assert(std::is_trivially_destructible::value, "T must be trivially destructible."); + + inline void reserve(size_t n) + { + if (n > N) + { + buffer.reset(static_cast(memalign_alloc(std::max(64, alignof(T)), n * sizeof(T)))); + N = n; + } + } + + inline T &operator[](size_t index) { return buffer.get()[index]; } + inline const T &operator[](size_t index) const { return buffer.get()[index]; } + inline T *data() { return buffer.get(); } + inline const T *data() const { return buffer.get(); } + inline size_t get_capacity() const { return N; } + +private: + std::unique_ptr buffer; + size_t N = 0; +}; +} diff --git a/util/enum_cast.hpp b/util/enum_cast.hpp new file mode 100644 index 00000000..429bed15 --- /dev/null +++ b/util/enum_cast.hpp @@ -0,0 +1,34 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include + +namespace Util +{ +template +constexpr typename std::underlying_type::type ecast(T x) +{ + return static_cast::type>(x); +} +} \ No newline at end of file diff --git a/util/environment.cpp b/util/environment.cpp new file mode 100644 index 00000000..d2fb2bae --- /dev/null +++ b/util/environment.cpp @@ -0,0 +1,96 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifdef _WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#endif + +#include "environment.hpp" +#include +#include + +namespace Util +{ +bool get_environment(const char *env, std::string &str) +{ +#ifdef _WIN32 + char buf[4096]; + DWORD count = GetEnvironmentVariableA(env, buf, sizeof(buf)); + if (count) + { + str = { buf, buf + count }; + return true; + } + else + return false; +#else + if (const char *v = getenv(env)) + { + str = v; + return true; + } + else + return false; +#endif +} + +void set_environment(const char *env, const char *value) +{ +#ifdef _WIN32 + SetEnvironmentVariableA(env, value); +#else + setenv(env, value, 1); +#endif +} + +std::string get_environment_string(const char *env, const char *default_value) +{ + std::string v; + if (!get_environment(env, v)) + v = default_value; + return v; +} + +unsigned get_environment_uint(const char *env, unsigned default_value) +{ + unsigned value = default_value; + std::string v; + if (get_environment(env, v)) + value = unsigned(std::stoul(v)); + return value; +} + +int get_environment_int(const char *env, int default_value) +{ + int value = default_value; + std::string v; + if (get_environment(env, v)) + value = int(std::stol(v)); + return value; +} + +bool get_environment_bool(const char *env, bool default_value) +{ + return get_environment_int(env, int(default_value)) != 0; +} +} diff --git a/util/environment.hpp b/util/environment.hpp new file mode 100644 index 00000000..de09b34d --- /dev/null +++ b/util/environment.hpp @@ -0,0 +1,35 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include + +namespace Util +{ +bool get_environment(const char *env, std::string &str); +std::string get_environment_string(const char *env, const char *default_value); +unsigned get_environment_uint(const char *env, unsigned default_value); +int get_environment_int(const char *env, int default_value); +bool get_environment_bool(const char *env, bool default_value); +void set_environment(const char *env, const char *value); +} diff --git a/util/hash.hpp b/util/hash.hpp new file mode 100644 index 00000000..a2184b6e --- /dev/null +++ b/util/hash.hpp @@ -0,0 +1,105 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once +#include +#include + +namespace Util +{ +using Hash = uint64_t; + +class Hasher +{ +public: + explicit Hasher(Hash h_) + : h(h_) + { + } + + Hasher() = default; + + template + inline void data(const T *data_, size_t size) + { + size /= sizeof(*data_); + for (size_t i = 0; i < size; i++) + h = (h * 0x100000001b3ull) ^ data_[i]; + } + + inline void u32(uint32_t value) + { + h = (h * 0x100000001b3ull) ^ value; + } + + inline void s32(int32_t value) + { + u32(uint32_t(value)); + } + + inline void f32(float value) + { + union + { + float f32; + uint32_t u32; + } u; + u.f32 = value; + u32(u.u32); + } + + inline void u64(uint64_t value) + { + u32(value & 0xffffffffu); + u32(value >> 32); + } + + template + inline void pointer(T *ptr) + { + u64(reinterpret_cast(ptr)); + } + + inline void string(const char *str) + { + char c; + u32(0xff); + while ((c = *str++) != '\0') + u32(uint8_t(c)); + } + + inline void string(const std::string &str) + { + u32(0xff); + for (auto &c : str) + u32(uint8_t(c)); + } + + inline Hash get() const + { + return h; + } + +private: + Hash h = 0xcbf29ce484222325ull; +}; +} diff --git a/util/intrusive.hpp b/util/intrusive.hpp new file mode 100644 index 00000000..d115f96d --- /dev/null +++ b/util/intrusive.hpp @@ -0,0 +1,310 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include +#include +#include + +namespace Util +{ +class SingleThreadCounter +{ +public: + inline void add_ref() + { + count++; + } + + inline bool release() + { + return --count == 0; + } + +private: + uint32_t count = 1; +}; + +class MultiThreadCounter +{ +public: + MultiThreadCounter() + { + count.store(1, std::memory_order_relaxed); + } + + inline void add_ref() + { + count.fetch_add(1, std::memory_order_relaxed); + } + + inline bool release() + { + auto result = count.fetch_sub(1, std::memory_order_acq_rel); + return result == 1; + } + +private: + std::atomic_uint32_t count; +}; + +template +class IntrusivePtr; + +template , typename ReferenceOps = SingleThreadCounter> +class IntrusivePtrEnabled +{ +public: + using IntrusivePtrType = IntrusivePtr; + using EnabledBase = T; + using EnabledDeleter = Deleter; + using EnabledReferenceOp = ReferenceOps; + + void release_reference() + { + if (reference_count.release()) + Deleter()(static_cast(this)); + } + + void add_reference() + { + reference_count.add_ref(); + } + + IntrusivePtrEnabled() = default; + + IntrusivePtrEnabled(const IntrusivePtrEnabled &) = delete; + + void operator=(const IntrusivePtrEnabled &) = delete; + +protected: + Util::IntrusivePtr reference_from_this(); + +private: + ReferenceOps reference_count; +}; + +template +class IntrusivePtr +{ +public: + template + friend class IntrusivePtr; + + IntrusivePtr() = default; + + explicit IntrusivePtr(T *handle) + : data(handle) + { + } + + T &operator*() + { + return *data; + } + + const T &operator*() const + { + return *data; + } + + T *operator->() + { + return data; + } + + const T *operator->() const + { + return data; + } + + explicit operator bool() const + { + return data != nullptr; + } + + bool operator==(const IntrusivePtr &other) const + { + return data == other.data; + } + + bool operator!=(const IntrusivePtr &other) const + { + return data != other.data; + } + + T *get() + { + return data; + } + + const T *get() const + { + return data; + } + + void reset() + { + using ReferenceBase = IntrusivePtrEnabled< + typename T::EnabledBase, + typename T::EnabledDeleter, + typename T::EnabledReferenceOp>; + + // Static up-cast here to avoid potential issues with multiple intrusive inheritance. + // Also makes sure that the pointer type actually inherits from this type. + if (data) + static_cast(data)->release_reference(); + data = nullptr; + } + + template + IntrusivePtr &operator=(const IntrusivePtr &other) + { + static_assert(std::is_base_of::value, + "Cannot safely assign downcasted intrusive pointers."); + + using ReferenceBase = IntrusivePtrEnabled< + typename T::EnabledBase, + typename T::EnabledDeleter, + typename T::EnabledReferenceOp>; + + reset(); + data = static_cast(other.data); + + // Static up-cast here to avoid potential issues with multiple intrusive inheritance. + // Also makes sure that the pointer type actually inherits from this type. + if (data) + static_cast(data)->add_reference(); + return *this; + } + + IntrusivePtr &operator=(const IntrusivePtr &other) + { + using ReferenceBase = IntrusivePtrEnabled< + typename T::EnabledBase, + typename T::EnabledDeleter, + typename T::EnabledReferenceOp>; + + if (this != &other) + { + reset(); + data = other.data; + if (data) + static_cast(data)->add_reference(); + } + return *this; + } + + template + IntrusivePtr(const IntrusivePtr &other) + { + *this = other; + } + + IntrusivePtr(const IntrusivePtr &other) + { + *this = other; + } + + ~IntrusivePtr() + { + reset(); + } + + template + IntrusivePtr &operator=(IntrusivePtr &&other) noexcept + { + reset(); + data = other.data; + other.data = nullptr; + return *this; + } + + IntrusivePtr &operator=(IntrusivePtr &&other) noexcept + { + if (this != &other) + { + reset(); + data = other.data; + other.data = nullptr; + } + return *this; + } + + template + IntrusivePtr(IntrusivePtr &&other) noexcept + { + *this = std::move(other); + } + + template + IntrusivePtr(IntrusivePtr &&other) noexcept + { + *this = std::move(other); + } + + T *release() & + { + T *ret = data; + data = nullptr; + return ret; + } + + T *release() && + { + T *ret = data; + data = nullptr; + return ret; + } + +private: + T *data = nullptr; +}; + +template +IntrusivePtr IntrusivePtrEnabled::reference_from_this() +{ + add_reference(); + return IntrusivePtr(static_cast(this)); +} + +template +using DerivedIntrusivePtrType = IntrusivePtr; + +template +DerivedIntrusivePtrType make_handle(P &&... p) +{ + return DerivedIntrusivePtrType(new T(std::forward

(p)...)); +} + +template +typename Base::IntrusivePtrType make_derived_handle(P &&... p) +{ + return typename Base::IntrusivePtrType(new Derived(std::forward

(p)...)); +} + +template +using ThreadSafeIntrusivePtrEnabled = IntrusivePtrEnabled, MultiThreadCounter>; +} diff --git a/util/intrusive_hash_map.hpp b/util/intrusive_hash_map.hpp new file mode 100644 index 00000000..ab42b4fb --- /dev/null +++ b/util/intrusive_hash_map.hpp @@ -0,0 +1,690 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "hash.hpp" +#include "intrusive_list.hpp" +#include "object_pool.hpp" +#include "read_write_lock.hpp" +#include +#include + +namespace Util +{ +template +class IntrusiveHashMapEnabled : public IntrusiveListEnabled +{ +public: + IntrusiveHashMapEnabled() = default; + IntrusiveHashMapEnabled(Util::Hash hash) + : intrusive_hashmap_key(hash) + { + } + + void set_hash(Util::Hash hash) + { + intrusive_hashmap_key = hash; + } + + Util::Hash get_hash() const + { + return intrusive_hashmap_key; + } + +private: + Hash intrusive_hashmap_key = 0; +}; + +template +struct IntrusivePODWrapper : public IntrusiveHashMapEnabled> +{ + template + explicit IntrusivePODWrapper(U&& value_) + : value(std::forward(value_)) + { + } + + IntrusivePODWrapper() = default; + + T& get() + { + return value; + } + + const T& get() const + { + return value; + } + + T value = {}; +}; + +// This HashMap is non-owning. It just arranges a list of pointers. +// It's kind of special purpose container used by the Vulkan backend. +// Dealing with memory ownership is done through composition by a different class. +// T must inherit from IntrusiveHashMapEnabled. +// Each instance of T can only be part of one hashmap. + +template +class IntrusiveHashMapHolder +{ +public: + enum { InitialSize = 16, InitialLoadCount = 3 }; + + T *find(Hash hash) const + { + if (values.empty()) + return nullptr; + + Hash hash_mask = values.size() - 1; + auto masked = hash & hash_mask; + for (unsigned i = 0; i < load_count; i++) + { + if (values[masked] && get_hash(values[masked]) == hash) + return values[masked]; + masked = (masked + 1) & hash_mask; + } + + return nullptr; + } + + template + bool find_and_consume_pod(Hash hash, P &p) const + { + T *t = find(hash); + if (t) + { + p = t->get(); + return true; + } + else + return false; + } + + // Inserts, if value already exists, insertion does not happen. + // Return value is the data which is not part of the hashmap. + // It should be deleted or similar. + // Returns nullptr if nothing was in the hashmap for this key. + T *insert_yield(T *&value) + { + if (values.empty()) + grow(); + + Hash hash_mask = values.size() - 1; + auto hash = get_hash(value); + auto masked = hash & hash_mask; + + for (unsigned i = 0; i < load_count; i++) + { + if (values[masked] && get_hash(values[masked]) == hash) + { + T *ret = value; + value = values[masked]; + return ret; + } + else if (!values[masked]) + { + values[masked] = value; + list.insert_front(value); + return nullptr; + } + masked = (masked + 1) & hash_mask; + } + + grow(); + return insert_yield(value); + } + + T *insert_replace(T *value) + { + if (values.empty()) + grow(); + + Hash hash_mask = values.size() - 1; + auto hash = get_hash(value); + auto masked = hash & hash_mask; + + for (unsigned i = 0; i < load_count; i++) + { + if (values[masked] && get_hash(values[masked]) == hash) + { + std::swap(values[masked], value); + list.erase(value); + list.insert_front(values[masked]); + return value; + } + else if (!values[masked]) + { + assert(!values[masked]); + values[masked] = value; + list.insert_front(value); + return nullptr; + } + masked = (masked + 1) & hash_mask; + } + + grow(); + return insert_replace(value); + } + + T *erase(Hash hash) + { + Hash hash_mask = values.size() - 1; + auto masked = hash & hash_mask; + + for (unsigned i = 0; i < load_count; i++) + { + if (values[masked] && get_hash(values[masked]) == hash) + { + auto *value = values[masked]; + list.erase(value); + values[masked] = nullptr; + return value; + } + masked = (masked + 1) & hash_mask; + } + return nullptr; + } + + void erase(T *value) + { + erase(get_hash(value)); + } + + void clear() + { + list.clear(); + values.clear(); + load_count = 0; + } + + typename IntrusiveList::Iterator begin() const + { + return list.begin(); + } + + typename IntrusiveList::Iterator end() const + { + return list.end(); + } + + IntrusiveList &inner_list() + { + return list; + } + + const IntrusiveList &inner_list() const + { + return list; + } + +private: + + inline bool compare_key(Hash masked, Hash hash) const + { + return get_key_for_index(masked) == hash; + } + + inline Hash get_hash(const T *value) const + { + return static_cast *>(value)->get_hash(); + } + + inline Hash get_key_for_index(Hash masked) const + { + return get_hash(values[masked]); + } + + bool insert_inner(T *value) + { + Hash hash_mask = values.size() - 1; + auto hash = get_hash(value); + auto masked = hash & hash_mask; + + for (unsigned i = 0; i < load_count; i++) + { + if (!values[masked]) + { + values[masked] = value; + return true; + } + masked = (masked + 1) & hash_mask; + } + return false; + } + + void grow() + { + bool success; + do + { + for (auto &v : values) + v = nullptr; + + if (values.empty()) + { + values.resize(InitialSize); + load_count = InitialLoadCount; + //LOGI("Growing hashmap to %u elements.\n", InitialSize); + } + else + { + values.resize(values.size() * 2); + //LOGI("Growing hashmap to %u elements.\n", unsigned(values.size())); + load_count++; + } + + // Re-insert. + success = true; + for (auto &t : list) + { + if (!insert_inner(&t)) + { + success = false; + break; + } + } + } while (!success); + } + + std::vector values; + IntrusiveList list; + unsigned load_count = 0; +}; + +template +class IntrusiveHashMap +{ +public: + ~IntrusiveHashMap() + { + clear(); + } + + IntrusiveHashMap() = default; + IntrusiveHashMap(const IntrusiveHashMap &) = delete; + void operator=(const IntrusiveHashMap &) = delete; + + void clear() + { + auto &list = hashmap.inner_list(); + auto itr = list.begin(); + while (itr != list.end()) + { + auto *to_free = itr.get(); + itr = list.erase(itr); + pool.free(to_free); + } + + hashmap.clear(); + } + + T *find(Hash hash) const + { + return hashmap.find(hash); + } + + T &operator[](Hash hash) + { + auto *t = find(hash); + if (!t) + t = emplace_yield(hash); + return *t; + } + + template + bool find_and_consume_pod(Hash hash, P &p) const + { + return hashmap.find_and_consume_pod(hash, p); + } + + void erase(T *value) + { + hashmap.erase(value); + pool.free(value); + } + + void erase(Hash hash) + { + auto *value = hashmap.erase(hash); + if (value) + pool.free(value); + } + + template + T *emplace_replace(Hash hash, P&&... p) + { + T *t = allocate(std::forward

(p)...); + return insert_replace(hash, t); + } + + template + T *emplace_yield(Hash hash, P&&... p) + { + T *t = allocate(std::forward

(p)...); + return insert_yield(hash, t); + } + + template + T *allocate(P&&... p) + { + return pool.allocate(std::forward

(p)...); + } + + void free(T *value) + { + pool.free(value); + } + + T *insert_replace(Hash hash, T *value) + { + static_cast *>(value)->set_hash(hash); + T *to_delete = hashmap.insert_replace(value); + if (to_delete) + pool.free(to_delete); + return value; + } + + T *insert_yield(Hash hash, T *value) + { + static_cast *>(value)->set_hash(hash); + T *to_delete = hashmap.insert_yield(value); + if (to_delete) + pool.free(to_delete); + return value; + } + + typename IntrusiveList::Iterator begin() const + { + return hashmap.begin(); + } + + typename IntrusiveList::Iterator end() const + { + return hashmap.end(); + } + + IntrusiveHashMap &get_thread_unsafe() + { + return *this; + } + + const IntrusiveHashMap &get_thread_unsafe() const + { + return *this; + } + +private: + IntrusiveHashMapHolder hashmap; + ObjectPool pool; +}; + +template +using IntrusiveHashMapWrapper = IntrusiveHashMap>; + +template +class ThreadSafeIntrusiveHashMap +{ +public: + T *find(Hash hash) const + { + lock.lock_read(); + T *t = hashmap.find(hash); + lock.unlock_read(); + + // We can race with the intrusive list internal pointers, + // but that's an internal detail which should never be touched outside the hashmap. + return t; + } + + template + bool find_and_consume_pod(Hash hash, P &p) const + { + lock.lock_read(); + bool ret = hashmap.find_and_consume_pod(hash, p); + lock.unlock_read(); + return ret; + } + + void clear() + { + lock.lock_write(); + hashmap.clear(); + lock.unlock_write(); + } + + // Assumption is that readers will not be erased while in use by any other thread. + void erase(T *value) + { + lock.lock_write(); + hashmap.erase(value); + lock.unlock_write(); + } + + void erase(Hash hash) + { + lock.lock_write(); + hashmap.erase(hash); + lock.unlock_write(); + } + + template + T *allocate(P&&... p) + { + lock.lock_write(); + T *t = hashmap.allocate(std::forward

(p)...); + lock.unlock_write(); + return t; + } + + void free(T *value) + { + lock.lock_write(); + hashmap.free(value); + lock.unlock_write(); + } + + T *insert_replace(Hash hash, T *value) + { + lock.lock_write(); + value = hashmap.insert_replace(hash, value); + lock.unlock_write(); + return value; + } + + T *insert_yield(Hash hash, T *value) + { + lock.lock_write(); + value = hashmap.insert_yield(hash, value); + lock.unlock_write(); + return value; + } + + // This one is very sketchy, since callers need to make sure there are no readers of this hash. + template + T *emplace_replace(Hash hash, P&&... p) + { + lock.lock_write(); + T *t = hashmap.emplace_replace(hash, std::forward

(p)...); + lock.unlock_write(); + return t; + } + + template + T *emplace_yield(Hash hash, P&&... p) + { + lock.lock_write(); + T *t = hashmap.emplace_yield(hash, std::forward

(p)...); + lock.unlock_write(); + return t; + } + + // Not supposed to be called in racy conditions, + // we could have a global read lock and unlock while iterating if necessary. + typename IntrusiveList::Iterator begin() + { + return hashmap.begin(); + } + + typename IntrusiveList::Iterator end() + { + return hashmap.end(); + } + + IntrusiveHashMap &get_thread_unsafe() + { + return hashmap; + } + + const IntrusiveHashMap &get_thread_unsafe() const + { + return hashmap; + } + +private: + IntrusiveHashMap hashmap; + mutable RWSpinLock lock; +}; + +// A special purpose hashmap which is split into a read-only, immutable portion and a plain thread-safe one. +// User can move read-write thread-safe portion to read-only portion when user knows it's safe to do so. +template +class ThreadSafeIntrusiveHashMapReadCached +{ +public: + ~ThreadSafeIntrusiveHashMapReadCached() + { + clear(); + } + + T *find(Hash hash) const + { + T *t = read_only.find(hash); + if (t) + return t; + + lock.lock_read(); + t = read_write.find(hash); + lock.unlock_read(); + return t; + } + + void move_to_read_only() + { + auto &list = read_write.inner_list(); + auto itr = list.begin(); + while (itr != list.end()) + { + auto *to_move = itr.get(); + read_write.erase(to_move); + T *to_delete = read_only.insert_yield(to_move); + if (to_delete) + object_pool.free(to_delete); + itr = list.begin(); + } + } + + template + bool find_and_consume_pod(Hash hash, P &p) const + { + if (read_only.find_and_consume_pod(hash, p)) + return true; + + lock.lock_read(); + bool ret = read_write.find_and_consume_pod(hash, p); + lock.unlock_read(); + return ret; + } + + void clear() + { + lock.lock_write(); + clear_list(read_only.inner_list()); + clear_list(read_write.inner_list()); + read_only.clear(); + read_write.clear(); + lock.unlock_write(); + } + + template + T *allocate(P&&... p) + { + lock.lock_write(); + T *t = object_pool.allocate(std::forward

(p)...); + lock.unlock_write(); + return t; + } + + void free(T *ptr) + { + lock.lock_write(); + object_pool.free(ptr); + lock.unlock_write(); + } + + T *insert_yield(Hash hash, T *value) + { + static_cast *>(value)->set_hash(hash); + lock.lock_write(); + T *to_delete = read_write.insert_yield(value); + if (to_delete) + object_pool.free(to_delete); + lock.unlock_write(); + return value; + } + + template + T *emplace_yield(Hash hash, P&&... p) + { + T *t = allocate(std::forward

(p)...); + return insert_yield(hash, t); + } + + IntrusiveHashMapHolder &get_read_only() + { + return read_only; + } + + IntrusiveHashMapHolder &get_read_write() + { + return read_write; + } + +private: + IntrusiveHashMapHolder read_only; + IntrusiveHashMapHolder read_write; + ObjectPool object_pool; + mutable RWSpinLock lock; + + void clear_list(IntrusiveList &list) + { + auto itr = list.begin(); + while (itr != list.end()) + { + auto *to_free = itr.get(); + itr = list.erase(itr); + object_pool.free(to_free); + } + } +}; +} diff --git a/util/intrusive_list.hpp b/util/intrusive_list.hpp new file mode 100644 index 00000000..11c345b4 --- /dev/null +++ b/util/intrusive_list.hpp @@ -0,0 +1,197 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +namespace Util +{ +template +struct IntrusiveListEnabled +{ + IntrusiveListEnabled *prev = nullptr; + IntrusiveListEnabled *next = nullptr; +}; + +template +class IntrusiveList +{ +public: + void clear() + { + head = nullptr; + tail = nullptr; + } + + class Iterator + { + public: + friend class IntrusiveList; + Iterator(IntrusiveListEnabled *node_) + : node(node_) + { + } + + Iterator() = default; + + explicit operator bool() const + { + return node != nullptr; + } + + bool operator==(const Iterator &other) const + { + return node == other.node; + } + + bool operator!=(const Iterator &other) const + { + return node != other.node; + } + + T &operator*() + { + return *static_cast(node); + } + + const T &operator*() const + { + return *static_cast(node); + } + + T *get() + { + return static_cast(node); + } + + const T *get() const + { + return static_cast(node); + } + + T *operator->() + { + return static_cast(node); + } + + const T *operator->() const + { + return static_cast(node); + } + + Iterator &operator++() + { + node = node->next; + return *this; + } + + Iterator &operator--() + { + node = node->prev; + return *this; + } + + private: + IntrusiveListEnabled *node = nullptr; + }; + + Iterator begin() const + { + return Iterator(head); + } + + Iterator rbegin() const + { + return Iterator(tail); + } + + Iterator end() const + { + return Iterator(); + } + + Iterator erase(Iterator itr) + { + auto *node = itr.get(); + auto *next = node->next; + auto *prev = node->prev; + + if (prev) + prev->next = next; + else + head = next; + + if (next) + next->prev = prev; + else + tail = prev; + + return next; + } + + void insert_front(Iterator itr) + { + auto *node = itr.get(); + if (head) + head->prev = node; + else + tail = node; + + node->next = head; + node->prev = nullptr; + head = node; + } + + void insert_back(Iterator itr) + { + auto *node = itr.get(); + if (tail) + tail->next = node; + else + head = node; + + node->prev = tail; + node->next = nullptr; + tail = node; + } + + void move_to_front(IntrusiveList &other, Iterator itr) + { + other.erase(itr); + insert_front(itr); + } + + void move_to_back(IntrusiveList &other, Iterator itr) + { + other.erase(itr); + insert_back(itr); + } + + bool empty() const + { + return head == nullptr; + } + +private: + IntrusiveListEnabled *head = nullptr; + IntrusiveListEnabled *tail = nullptr; +}; +} \ No newline at end of file diff --git a/util/logging.cpp b/util/logging.cpp new file mode 100644 index 00000000..e88f42f2 --- /dev/null +++ b/util/logging.cpp @@ -0,0 +1,72 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "logging.hpp" + +#ifdef _WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#endif + +namespace Util +{ +static thread_local LoggingInterface *logging_iface; + +bool interface_log(const char *tag, const char *fmt, ...) +{ + if (!logging_iface) + return false; + + va_list va; + va_start(va, fmt); + bool ret = logging_iface->log(tag, fmt, va); + va_end(va); + return ret; +} + +void set_thread_logging_interface(LoggingInterface *iface) +{ + logging_iface = iface; +} + +#ifdef _WIN32 +void debug_output_log(const char *tag, const char *fmt, ...) +{ + if (!IsDebuggerPresent()) + return; + + va_list va; + va_start(va, fmt); + auto len = vsnprintf(nullptr, 0, fmt, va); + if (len > 0) + { + size_t tag_len = strlen(tag); + char *buf = new char[len + tag_len + 1]; + memcpy(buf, tag, tag_len); + vsnprintf(buf + tag_len, len + 1, fmt, va); + OutputDebugStringA(buf); + delete[] buf; + } + va_end(va); +} +#endif +} \ No newline at end of file diff --git a/util/logging.hpp b/util/logging.hpp new file mode 100644 index 00000000..acd10f11 --- /dev/null +++ b/util/logging.hpp @@ -0,0 +1,96 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include + +namespace Util +{ +class LoggingInterface +{ +public: + virtual ~LoggingInterface() = default; + virtual bool log(const char *tag, const char *fmt, va_list va) = 0; +}; + +bool interface_log(const char *tag, const char *fmt, ...); +void set_thread_logging_interface(LoggingInterface *iface); +} + +#if defined(_WIN32) +namespace Util +{ +void debug_output_log(const char *tag, const char *fmt, ...); +} + +#define LOGE_FALLBACK(...) do { \ + fprintf(stderr, "[ERROR]: " __VA_ARGS__); \ + fflush(stderr); \ + ::Util::debug_output_log("[ERROR]: ", __VA_ARGS__); \ +} while(false) + +#define LOGW_FALLBACK(...) do { \ + fprintf(stderr, "[WARN]: " __VA_ARGS__); \ + fflush(stderr); \ + ::Util::debug_output_log("[WARN]: ", __VA_ARGS__); \ +} while(false) + +#define LOGI_FALLBACK(...) do { \ + fprintf(stderr, "[INFO]: " __VA_ARGS__); \ + fflush(stderr); \ + ::Util::debug_output_log("[INFO]: ", __VA_ARGS__); \ +} while(false) +#elif defined(ANDROID) +#include +#define LOGE_FALLBACK(...) do { __android_log_print(ANDROID_LOG_ERROR, "Granite", __VA_ARGS__); } while(0) +#define LOGW_FALLBACK(...) do { __android_log_print(ANDROID_LOG_WARN, "Granite", __VA_ARGS__); } while(0) +#define LOGI_FALLBACK(...) do { __android_log_print(ANDROID_LOG_INFO, "Granite", __VA_ARGS__); } while(0) +#else +#define LOGE_FALLBACK(...) \ + do \ + { \ + fprintf(stderr, "[ERROR]: " __VA_ARGS__); \ + fflush(stderr); \ + } while (false) + +#define LOGW_FALLBACK(...) \ + do \ + { \ + fprintf(stderr, "[WARN]: " __VA_ARGS__); \ + fflush(stderr); \ + } while (false) + +#define LOGI_FALLBACK(...) \ + do \ + { \ + fprintf(stderr, "[INFO]: " __VA_ARGS__); \ + fflush(stderr); \ + } while (false) +#endif + +#define LOGE(...) do { if (!::Util::interface_log("[ERROR]: ", __VA_ARGS__)) { LOGE_FALLBACK(__VA_ARGS__); }} while(0) +#define LOGW(...) do { if (!::Util::interface_log("[WARN]: ", __VA_ARGS__)) { LOGW_FALLBACK(__VA_ARGS__); }} while(0) +#define LOGI(...) do { if (!::Util::interface_log("[INFO]: ", __VA_ARGS__)) { LOGI_FALLBACK(__VA_ARGS__); }} while(0) + diff --git a/util/object_pool.hpp b/util/object_pool.hpp new file mode 100644 index 00000000..b10b354d --- /dev/null +++ b/util/object_pool.hpp @@ -0,0 +1,132 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include "aligned_alloc.hpp" + +//#define OBJECT_POOL_DEBUG + +namespace Util +{ +template +class ObjectPool +{ +public: + template + T *allocate(P &&... p) + { +#ifndef OBJECT_POOL_DEBUG + if (vacants.empty()) + { + unsigned num_objects = 64u << memory.size(); + T *ptr = static_cast(memalign_alloc(std::max(64, alignof(T)), + num_objects * sizeof(T))); + if (!ptr) + return nullptr; + + for (unsigned i = 0; i < num_objects; i++) + vacants.push_back(&ptr[i]); + + memory.emplace_back(ptr); + } + + T *ptr = vacants.back(); + vacants.pop_back(); + new(ptr) T(std::forward

(p)...); + return ptr; +#else + return new T(std::forward

(p)...); +#endif + } + + void free(T *ptr) + { +#ifndef OBJECT_POOL_DEBUG + ptr->~T(); + vacants.push_back(ptr); +#else + delete ptr; +#endif + } + + void clear() + { +#ifndef OBJECT_POOL_DEBUG + vacants.clear(); + memory.clear(); +#endif + } + +protected: +#ifndef OBJECT_POOL_DEBUG + std::vector vacants; + + struct MallocDeleter + { + void operator()(T *ptr) + { + memalign_free(ptr); + } + }; + + std::vector> memory; +#endif +}; + +template +class ThreadSafeObjectPool : private ObjectPool +{ +public: + template + T *allocate(P &&... p) + { + std::lock_guard holder{lock}; + return ObjectPool::allocate(std::forward

(p)...); + } + + void free(T *ptr) + { +#ifndef OBJECT_POOL_DEBUG + ptr->~T(); + std::lock_guard holder{lock}; + this->vacants.push_back(ptr); +#else + delete ptr; +#endif + } + + void clear() + { + std::lock_guard holder{lock}; + ObjectPool::clear(); + } + +private: + std::mutex lock; +}; +} diff --git a/util/read_write_lock.hpp b/util/read_write_lock.hpp new file mode 100644 index 00000000..bca81703 --- /dev/null +++ b/util/read_write_lock.hpp @@ -0,0 +1,149 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include + +#ifdef __SSE2__ +#include +#endif + +namespace Util +{ +class RWSpinLock +{ +public: + enum { Reader = 2, Writer = 1 }; + RWSpinLock() + { + counter.store(0); + } + + inline void lock_read() + { + unsigned v = counter.fetch_add(Reader, std::memory_order_acquire); + while ((v & Writer) != 0) + { +#ifdef __SSE2__ + _mm_pause(); +#endif + v = counter.load(std::memory_order_acquire); + } + } + + inline bool try_lock_read() + { + unsigned v = counter.fetch_add(Reader, std::memory_order_acquire); + if ((v & Writer) != 0) + { + unlock_read(); + return false; + } + + return true; + } + + inline void unlock_read() + { + counter.fetch_sub(Reader, std::memory_order_release); + } + + inline void lock_write() + { + uint32_t expected = 0; + while (!counter.compare_exchange_weak(expected, Writer, + std::memory_order_acquire, + std::memory_order_relaxed)) + { +#ifdef __SSE2__ + _mm_pause(); +#endif + expected = 0; + } + } + + inline bool try_lock_write() + { + uint32_t expected = 0; + return counter.compare_exchange_strong(expected, Writer, + std::memory_order_acquire, + std::memory_order_relaxed); + } + + inline void unlock_write() + { + counter.fetch_and(~Writer, std::memory_order_release); + } + + inline void promote_reader_to_writer() + { + uint32_t expected = Reader; + if (!counter.compare_exchange_strong(expected, Writer, + std::memory_order_acquire, + std::memory_order_relaxed)) + { + unlock_read(); + lock_write(); + } + } + +private: + std::atomic_uint32_t counter; +}; + +class RWSpinLockReadHolder +{ +public: + explicit RWSpinLockReadHolder(RWSpinLock &lock_) + : lock(lock_) + { + lock.lock_read(); + } + + ~RWSpinLockReadHolder() + { + lock.unlock_read(); + } + +private: + RWSpinLock &lock; +}; + +class RWSpinLockWriteHolder +{ +public: + explicit RWSpinLockWriteHolder(RWSpinLock &lock_) + : lock(lock_) + { + lock.lock_write(); + } + + ~RWSpinLockWriteHolder() + { + lock.unlock_write(); + } + +private: + RWSpinLock &lock; +}; +} diff --git a/util/small_vector.hpp b/util/small_vector.hpp new file mode 100644 index 00000000..64249a35 --- /dev/null +++ b/util/small_vector.hpp @@ -0,0 +1,456 @@ +/* Copyright (c) 2019-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include + +namespace Util +{ +// std::aligned_storage does not support size == 0, so roll our own. +template +class AlignedBuffer +{ +public: + T *data() + { + return reinterpret_cast(aligned_char); + } + +private: + alignas(T) char aligned_char[sizeof(T) * N]; +}; + +template +class AlignedBuffer +{ +public: + T *data() + { + return nullptr; + } +}; + +// An immutable version of SmallVector which erases type information about storage. +template +class VectorView +{ +public: + T &operator[](size_t i) + { + return ptr[i]; + } + + const T &operator[](size_t i) const + { + return ptr[i]; + } + + bool empty() const + { + return buffer_size == 0; + } + + size_t size() const + { + return buffer_size; + } + + T *data() + { + return ptr; + } + + const T *data() const + { + return ptr; + } + + T *begin() + { + return ptr; + } + + T *end() + { + return ptr + buffer_size; + } + + const T *begin() const + { + return ptr; + } + + const T *end() const + { + return ptr + buffer_size; + } + + T &front() + { + return ptr[0]; + } + + const T &front() const + { + return ptr[0]; + } + + T &back() + { + return ptr[buffer_size - 1]; + } + + const T &back() const + { + return ptr[buffer_size - 1]; + } + + // Avoid sliced copies. Base class should only be read as a reference. + VectorView(const VectorView &) = delete; + void operator=(const VectorView &) = delete; + +protected: + VectorView() = default; + T *ptr = nullptr; + size_t buffer_size = 0; +}; + +// Simple vector which supports up to N elements inline, without malloc/free. +// We use a lot of throwaway vectors all over the place which triggers allocations. +// This class only implements the subset of std::vector we need in SPIRV-Cross. +// It is *NOT* a drop-in replacement in general projects. +template +class SmallVector : public VectorView +{ +public: + SmallVector() + { + this->ptr = stack_storage.data(); + buffer_capacity = N; + } + + SmallVector(const T *arg_list_begin, const T *arg_list_end) + : SmallVector() + { + auto count = size_t(arg_list_end - arg_list_begin); + reserve(count); + for (size_t i = 0; i < count; i++, arg_list_begin++) + new (&this->ptr[i]) T(*arg_list_begin); + this->buffer_size = count; + } + + SmallVector(SmallVector &&other) noexcept : SmallVector() + { + *this = std::move(other); + } + + SmallVector(const std::initializer_list &init_list) : SmallVector() + { + insert(this->end(), init_list.begin(), init_list.end()); + } + + SmallVector &operator=(SmallVector &&other) noexcept + { + clear(); + if (other.ptr != other.stack_storage.data()) + { + // Pilfer allocated pointer. + if (this->ptr != stack_storage.data()) + free(this->ptr); + this->ptr = other.ptr; + this->buffer_size = other.buffer_size; + buffer_capacity = other.buffer_capacity; + other.ptr = nullptr; + other.buffer_size = 0; + other.buffer_capacity = 0; + } + else + { + // Need to move the stack contents individually. + reserve(other.buffer_size); + for (size_t i = 0; i < other.buffer_size; i++) + { + new (&this->ptr[i]) T(std::move(other.ptr[i])); + other.ptr[i].~T(); + } + this->buffer_size = other.buffer_size; + other.buffer_size = 0; + } + return *this; + } + + SmallVector(const SmallVector &other) + : SmallVector() + { + *this = other; + } + + SmallVector &operator=(const SmallVector &other) + { + clear(); + reserve(other.buffer_size); + for (size_t i = 0; i < other.buffer_size; i++) + new (&this->ptr[i]) T(other.ptr[i]); + this->buffer_size = other.buffer_size; + return *this; + } + + explicit SmallVector(size_t count) + : SmallVector() + { + resize(count); + } + + ~SmallVector() + { + clear(); + if (this->ptr != stack_storage.data()) + free(this->ptr); + } + + void clear() + { + for (size_t i = 0; i < this->buffer_size; i++) + this->ptr[i].~T(); + this->buffer_size = 0; + } + + void push_back(const T &t) + { + reserve(this->buffer_size + 1); + new (&this->ptr[this->buffer_size]) T(t); + this->buffer_size++; + } + + void push_back(T &&t) + { + reserve(this->buffer_size + 1); + new (&this->ptr[this->buffer_size]) T(std::move(t)); + this->buffer_size++; + } + + void pop_back() + { + // Work around false positive warning on GCC 8.3. + // Calling pop_back on empty vector is undefined. + if (!this->empty()) + resize(this->buffer_size - 1); + } + + template + void emplace_back(Ts &&... ts) + { + reserve(this->buffer_size + 1); + new (&this->ptr[this->buffer_size]) T(std::forward(ts)...); + this->buffer_size++; + } + + void reserve(size_t count) + { + if (count > buffer_capacity) + { + size_t target_capacity = buffer_capacity; + if (target_capacity == 0) + target_capacity = 1; + if (target_capacity < N) + target_capacity = N; + + while (target_capacity < count) + target_capacity <<= 1u; + + T *new_buffer = + target_capacity > N ? static_cast(malloc(target_capacity * sizeof(T))) : stack_storage.data(); + + if (!new_buffer) + std::terminate(); + + // In case for some reason two allocations both come from same stack. + if (new_buffer != this->ptr) + { + // We don't deal with types which can throw in move constructor. + for (size_t i = 0; i < this->buffer_size; i++) + { + new (&new_buffer[i]) T(std::move(this->ptr[i])); + this->ptr[i].~T(); + } + } + + if (this->ptr != stack_storage.data()) + free(this->ptr); + this->ptr = new_buffer; + buffer_capacity = target_capacity; + } + } + + void insert(T *itr, const T *insert_begin, const T *insert_end) + { + auto count = size_t(insert_end - insert_begin); + if (itr == this->end()) + { + reserve(this->buffer_size + count); + for (size_t i = 0; i < count; i++, insert_begin++) + new (&this->ptr[this->buffer_size + i]) T(*insert_begin); + this->buffer_size += count; + } + else + { + if (this->buffer_size + count > buffer_capacity) + { + auto target_capacity = this->buffer_size + count; + if (target_capacity == 0) + target_capacity = 1; + if (target_capacity < N) + target_capacity = N; + + while (target_capacity < count) + target_capacity <<= 1u; + + // Need to allocate new buffer. Move everything to a new buffer. + T *new_buffer = + target_capacity > N ? static_cast(malloc(target_capacity * sizeof(T))) : stack_storage.data(); + if (!new_buffer) + std::terminate(); + + // First, move elements from source buffer to new buffer. + // We don't deal with types which can throw in move constructor. + auto *target_itr = new_buffer; + auto *original_source_itr = this->begin(); + + if (new_buffer != this->ptr) + { + while (original_source_itr != itr) + { + new (target_itr) T(std::move(*original_source_itr)); + original_source_itr->~T(); + ++original_source_itr; + ++target_itr; + } + } + + // Copy-construct new elements. + for (auto *source_itr = insert_begin; source_itr != insert_end; ++source_itr, ++target_itr) + new (target_itr) T(*source_itr); + + // Move over the other half. + if (new_buffer != this->ptr || insert_begin != insert_end) + { + while (original_source_itr != this->end()) + { + new (target_itr) T(std::move(*original_source_itr)); + original_source_itr->~T(); + ++original_source_itr; + ++target_itr; + } + } + + if (this->ptr != stack_storage.data()) + free(this->ptr); + this->ptr = new_buffer; + buffer_capacity = target_capacity; + } + else + { + // Move in place, need to be a bit careful about which elements are constructed and which are not. + // Move the end and construct the new elements. + auto *target_itr = this->end() + count; + auto *source_itr = this->end(); + while (target_itr != this->end() && source_itr != itr) + { + --target_itr; + --source_itr; + new (target_itr) T(std::move(*source_itr)); + } + + // For already constructed elements we can move-assign. + std::move_backward(itr, source_itr, target_itr); + + // For the inserts which go to already constructed elements, we can do a plain copy. + while (itr != this->end() && insert_begin != insert_end) + *itr++ = *insert_begin++; + + // For inserts into newly allocated memory, we must copy-construct instead. + while (insert_begin != insert_end) + { + new (itr) T(*insert_begin); + ++itr; + ++insert_begin; + } + } + + this->buffer_size += count; + } + } + + void insert(T *itr, const T &value) + { + insert(itr, &value, &value + 1); + } + + T *erase(T *itr) + { + std::move(itr + 1, this->end(), itr); + this->ptr[--this->buffer_size].~T(); + return itr; + } + + void erase(T *start_erase, T *end_erase) + { + if (end_erase == this->end()) + { + resize(size_t(start_erase - this->begin())); + } + else + { + auto new_size = this->buffer_size - (end_erase - start_erase); + std::move(end_erase, this->end(), start_erase); + resize(new_size); + } + } + + void resize(size_t new_size) + { + if (new_size < this->buffer_size) + { + for (size_t i = new_size; i < this->buffer_size; i++) + this->ptr[i].~T(); + } + else if (new_size > this->buffer_size) + { + reserve(new_size); + for (size_t i = this->buffer_size; i < new_size; i++) + new (&this->ptr[i]) T(); + } + + this->buffer_size = new_size; + } + +private: + size_t buffer_capacity = 0; + AlignedBuffer stack_storage; +}; +} diff --git a/util/stack_allocator.hpp b/util/stack_allocator.hpp new file mode 100644 index 00000000..45f4aaa3 --- /dev/null +++ b/util/stack_allocator.hpp @@ -0,0 +1,62 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include + +namespace Util +{ +template +class StackAllocator +{ +public: + T *allocate(size_t count) + { + if (count == 0) + return nullptr; + if (offset + count > N) + return nullptr; + + T *ret = buffer + offset; + offset += count; + return ret; + } + + T *allocate_cleared(size_t count) + { + T *ret = allocate(count); + if (ret) + std::fill(ret, ret + count, T()); + return ret; + } + + void reset() + { + offset = 0; + } + +private: + T buffer[N]; + size_t offset = 0; +}; +} \ No newline at end of file diff --git a/util/temporary_hashmap.hpp b/util/temporary_hashmap.hpp new file mode 100644 index 00000000..40bbc4b3 --- /dev/null +++ b/util/temporary_hashmap.hpp @@ -0,0 +1,177 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "hash.hpp" +#include "object_pool.hpp" +#include "intrusive_list.hpp" +#include "intrusive_hash_map.hpp" +#include + +namespace Util +{ +template +class TemporaryHashmapEnabled +{ +public: + void set_hash(Hash hash_) + { + hash = hash_; + } + + void set_index(unsigned index_) + { + index = index_; + } + + Hash get_hash() + { + return hash; + } + + unsigned get_index() const + { + return index; + } + +private: + Hash hash = 0; + unsigned index = 0; +}; + +template +class TemporaryHashmap +{ +public: + ~TemporaryHashmap() + { + clear(); + } + + void clear() + { + for (auto &ring : rings) + { + while (!ring.empty()) + { + auto itr = ring.begin(); + ring.erase(itr); + auto &node = *itr; + object_pool.free(static_cast(&node)); + } + } + hashmap.clear(); + + for (auto &vacant : vacants) + object_pool.free(static_cast(&*vacant)); + vacants.clear(); + object_pool.clear(); + } + + void begin_frame() + { + index = (index + 1) & (RingSize - 1); + auto &ring = rings[index]; + + while (!ring.empty()) + { + auto itr = ring.begin(); + ring.erase(itr); + auto &node = *itr; + hashmap.erase(node.get_hash()); + free_object(&node, ReuseTag()); + } + } + + T *request(Hash hash) + { + auto *v = hashmap.find(hash); + if (v) + { + auto node = v->get(); + if (node->get_index() != index) + { + rings[index].move_to_front(rings[node->get_index()], node); + node->set_index(index); + } + + return &*node; + } + else + return nullptr; + } + + template + void make_vacant(P &&... p) + { + vacants.push_back(object_pool.allocate(std::forward

(p)...)); + } + + T *request_vacant(Hash hash) + { + if (vacants.empty()) + return nullptr; + + auto top = vacants.back(); + vacants.pop_back(); + top->set_index(index); + top->set_hash(hash); + hashmap.emplace_replace(hash, top); + rings[index].insert_front(top); + return &*top; + } + + template + T *emplace(Hash hash, P &&... p) + { + auto *node = object_pool.allocate(std::forward

(p)...); + node->set_index(index); + node->set_hash(hash); + hashmap.emplace_replace(hash, node); + rings[index].insert_front(node); + return node; + } + +private: + IntrusiveList rings[RingSize]; + ObjectPool object_pool; + unsigned index = 0; + IntrusiveHashMap::Iterator>> hashmap; + std::vector::Iterator> vacants; + + template + struct ReuseTag + { + }; + + void free_object(T *object, const ReuseTag &) + { + object_pool.free(object); + } + + void free_object(T *object, const ReuseTag &) + { + vacants.push_back(object); + } +}; +} diff --git a/util/thread_id.cpp b/util/thread_id.cpp new file mode 100644 index 00000000..c4e4b70d --- /dev/null +++ b/util/thread_id.cpp @@ -0,0 +1,45 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "thread_id.hpp" +#include "logging.hpp" + +namespace Util +{ +static thread_local unsigned thread_id_to_index = ~0u; + +unsigned get_current_thread_index() +{ + auto ret = thread_id_to_index; + if (ret == ~0u) + { + LOGE("Thread does not exist in thread manager or is not the main thread.\n"); + return 0; + } + return ret; +} + +void register_thread_index(unsigned index) +{ + thread_id_to_index = index; +} +} diff --git a/util/thread_id.hpp b/util/thread_id.hpp new file mode 100644 index 00000000..6d069e7c --- /dev/null +++ b/util/thread_id.hpp @@ -0,0 +1,29 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +namespace Util +{ +unsigned get_current_thread_index(); +void register_thread_index(unsigned thread_index); +} \ No newline at end of file diff --git a/util/thread_name.cpp b/util/thread_name.cpp new file mode 100644 index 00000000..e875dbe0 --- /dev/null +++ b/util/thread_name.cpp @@ -0,0 +1,59 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "thread_name.hpp" + +#if !defined(_WIN32) +#include +#else +#define WIN32_LEAN_AND_MEAN +#include +#include +#endif + +namespace Util +{ +void set_current_thread_name(const char *name) +{ +#if defined(__linux__) + pthread_setname_np(pthread_self(), name); +#elif defined(__APPLE__) + pthread_setname_np(name); +#elif defined(_WIN32) + using PFN_SetThreadDescription = HRESULT (WINAPI *)(HANDLE, PCWSTR); + auto module = GetModuleHandleA("kernel32.dll"); + PFN_SetThreadDescription SetThreadDescription = module ? reinterpret_cast( + (void *)GetProcAddress(module, "SetThreadDescription")) : nullptr; + + if (SetThreadDescription) + { + std::wstring wname; + while (*name != '\0') + { + wname.push_back(*name); + name++; + } + SetThreadDescription(GetCurrentThread(), wname.c_str()); + } +#endif +} +} diff --git a/util/thread_name.hpp b/util/thread_name.hpp new file mode 100644 index 00000000..645fca6d --- /dev/null +++ b/util/thread_name.hpp @@ -0,0 +1,28 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +namespace Util +{ +void set_current_thread_name(const char *name); +} diff --git a/util/timeline_trace_file.cpp b/util/timeline_trace_file.cpp new file mode 100644 index 00000000..d7bc731d --- /dev/null +++ b/util/timeline_trace_file.cpp @@ -0,0 +1,185 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "logging.hpp" +#include "timeline_trace_file.hpp" +#include "thread_name.hpp" +#include "timer.hpp" +#include +#include + +namespace Util +{ +static thread_local char trace_tid[32]; +static thread_local TimelineTraceFile *trace_file; + +void TimelineTraceFile::set_tid(const char *tid) +{ + snprintf(trace_tid, sizeof(trace_tid), "%s", tid); +} + +void TimelineTraceFile::set_per_thread(TimelineTraceFile *file) +{ + trace_file = file; +} + +TimelineTraceFile *TimelineTraceFile::get_per_thread() +{ + return trace_file; +} + +void TimelineTraceFile::Event::set_desc(const char *desc_) +{ + snprintf(desc, sizeof(desc), "%s", desc_); +} + +void TimelineTraceFile::Event::set_tid(const char *tid_) +{ + snprintf(tid, sizeof(tid), "%s", tid_); +} + +TimelineTraceFile::Event *TimelineTraceFile::begin_event(const char *desc, uint32_t pid) +{ + auto *e = event_pool.allocate(); + e->pid = pid; + e->set_tid(trace_tid); + e->set_desc(desc); + e->start_ns = get_current_time_nsecs(); + return e; +} + +TimelineTraceFile::Event *TimelineTraceFile::allocate_event() +{ + auto *e = event_pool.allocate(); + e->desc[0] = '\0'; + e->tid[0] = '\0'; + e->pid = 0; + e->start_ns = 0; + e->end_ns = 0; + return e; +} + +void TimelineTraceFile::submit_event(Event *e) +{ + std::lock_guard holder{lock}; + queued_events.push(e); + cond.notify_one(); +} + +void TimelineTraceFile::end_event(Event *e) +{ + e->end_ns = get_current_time_nsecs(); + submit_event(e); +} + +TimelineTraceFile::TimelineTraceFile(const std::string &path) +{ + thr = std::thread(&TimelineTraceFile::looper, this, path); +} + +void TimelineTraceFile::looper(std::string path) +{ + set_current_thread_name("json-trace-io"); + + FILE *file = fopen(path.c_str(), "w"); + if (!file) + LOGE("Failed to open file: %s.\n", path.c_str()); + + if (file) + fputs("[\n", file); + + uint64_t base_ts = get_current_time_nsecs(); + + for (;;) + { + Event *e; + { + std::unique_lock holder{lock}; + cond.wait(holder, [this]() { + return !queued_events.empty(); + }); + e = queued_events.front(); + queued_events.pop(); + } + + if (!e) + break; + + auto start_us = int64_t(e->start_ns - base_ts) * 1e-3; + auto end_us = int64_t(e->end_ns - base_ts) * 1e-3; + + if (file && start_us <= end_us) + { + fprintf(file, "{ \"name\": \"%s\", \"ph\": \"B\", \"tid\": \"%s\", \"pid\": \"%u\", \"ts\": %f },\n", + e->desc, e->tid, e->pid, start_us); + fprintf(file, "{ \"name\": \"%s\", \"ph\": \"E\", \"tid\": \"%s\", \"pid\": \"%u\", \"ts\": %f },\n", + e->desc, e->tid, e->pid, end_us); + } + + event_pool.free(e); + } + + // Intentionally truncate the JSON so that we can emit "," after the last element. + if (file) + fclose(file); +} + +TimelineTraceFile::~TimelineTraceFile() +{ + submit_event(nullptr); + if (thr.joinable()) + thr.join(); +} + +TimelineTraceFile::ScopedEvent::ScopedEvent(TimelineTraceFile *file_, const char *tag, uint32_t pid) + : file(file_) +{ + if (file && tag && *tag != '\0') + event = file->begin_event(tag, pid); +} + +TimelineTraceFile::ScopedEvent::~ScopedEvent() +{ + if (event) + file->end_event(event); +} + +TimelineTraceFile::ScopedEvent & +TimelineTraceFile::ScopedEvent::operator=(TimelineTraceFile::ScopedEvent &&other) noexcept +{ + if (this != &other) + { + if (event) + file->end_event(event); + event = other.event; + file = other.file; + other.event = nullptr; + other.file = nullptr; + } + return *this; +} + +TimelineTraceFile::ScopedEvent::ScopedEvent(TimelineTraceFile::ScopedEvent &&other) noexcept +{ + *this = std::move(other); +} +} diff --git a/util/timeline_trace_file.hpp b/util/timeline_trace_file.hpp new file mode 100644 index 00000000..6a309119 --- /dev/null +++ b/util/timeline_trace_file.hpp @@ -0,0 +1,96 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include "object_pool.hpp" + +namespace Util +{ +class TimelineTraceFile +{ +public: + explicit TimelineTraceFile(const std::string &path); + ~TimelineTraceFile(); + + static void set_tid(const char *tid); + static TimelineTraceFile *get_per_thread(); + static void set_per_thread(TimelineTraceFile *file); + + struct Event + { + char desc[256]; + char tid[32]; + uint32_t pid; + uint64_t start_ns, end_ns; + + void set_desc(const char *desc); + void set_tid(const char *tid); + }; + Event *begin_event(const char *desc, uint32_t pid = 0); + void end_event(Event *e); + + Event *allocate_event(); + void submit_event(Event *e); + + struct ScopedEvent + { + ScopedEvent(TimelineTraceFile *file, const char *tag, uint32_t pid = 0); + ScopedEvent() = default; + ~ScopedEvent(); + void operator=(const ScopedEvent &) = delete; + ScopedEvent(const ScopedEvent &) = delete; + ScopedEvent(ScopedEvent &&other) noexcept; + ScopedEvent &operator=(ScopedEvent &&other) noexcept; + TimelineTraceFile *file = nullptr; + Event *event = nullptr; + }; + +private: + void looper(std::string path); + std::thread thr; + std::mutex lock; + std::condition_variable cond; + + ThreadSafeObjectPool event_pool; + std::queue queued_events; +}; + +#ifndef GRANITE_SHIPPING + +#define GRANITE_MACRO_CONCAT_IMPL(a, b) a##b +#define GRANITE_MACRO_CONCAT(a, b) GRANITE_MACRO_CONCAT_IMPL(a, b) +#define GRANITE_SCOPED_TIMELINE_EVENT(str) \ + ::Util::TimelineTraceFile::ScopedEvent GRANITE_MACRO_CONCAT(_timeline_scoped_count_, __COUNTER__){GRANITE_THREAD_GROUP() ? GRANITE_THREAD_GROUP()->get_timeline_trace_file() : nullptr, str} +#define GRANITE_SCOPED_TIMELINE_EVENT_FILE(file, str) \ + ::Util::TimelineTraceFile::ScopedEvent GRANITE_MACRO_CONCAT(_timeline_scoped_count_, __COUNTER__){file, str} +#else +#define GRANITE_SCOPED_TIMELINE_EVENT(...) ((void)0) +#define GRANITE_SCOPED_TIMELINE_EVENT_FILE(...) ((void)0) +#endif +} diff --git a/util/timer.cpp b/util/timer.cpp new file mode 100644 index 00000000..11030109 --- /dev/null +++ b/util/timer.cpp @@ -0,0 +1,131 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "timer.hpp" + +#ifdef _WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#else +#include +#endif + +namespace Util +{ +FrameTimer::FrameTimer() +{ + reset(); +} + +void FrameTimer::reset() +{ + start = get_time(); + last = start; + last_period = 0; +} + +void FrameTimer::enter_idle() +{ + idle_start = get_time(); +} + +void FrameTimer::leave_idle() +{ + auto idle_end = get_time(); + idle_time += idle_end - idle_start; +} + +double FrameTimer::get_frame_time() const +{ + return double(last_period) * 1e-9; +} + +double FrameTimer::frame() +{ + auto new_time = get_time() - idle_time; + last_period = new_time - last; + last = new_time; + return double(last_period) * 1e-9; +} + +double FrameTimer::frame(double frame_time) +{ + last_period = int64_t(frame_time * 1e9); + last += last_period; + return frame_time; +} + +double FrameTimer::get_elapsed() const +{ + return double(last - start) * 1e-9; +} + +int64_t FrameTimer::get_time() +{ + return get_current_time_nsecs(); +} + +#ifdef _WIN32 +struct QPCFreq +{ + QPCFreq() + { + LARGE_INTEGER freq; + QueryPerformanceFrequency(&freq); + inv_freq = 1e9 / double(freq.QuadPart); + } + + double inv_freq; +} static static_qpc_freq; +#endif + +int64_t get_current_time_nsecs() +{ +#ifdef _WIN32 + LARGE_INTEGER li; + if (!QueryPerformanceCounter(&li)) + return 0; + return int64_t(double(li.QuadPart) * static_qpc_freq.inv_freq); +#else + struct timespec ts = {}; +#if defined(ANDROID) || defined(__FreeBSD__) + constexpr auto timebase = CLOCK_MONOTONIC; +#else + constexpr auto timebase = CLOCK_MONOTONIC_RAW; +#endif + if (clock_gettime(timebase, &ts) < 0) + return 0; + return ts.tv_sec * 1000000000ll + ts.tv_nsec; +#endif +} + +void Timer::start() +{ + t = get_current_time_nsecs(); +} + +double Timer::end() +{ + auto nt = get_current_time_nsecs(); + return double(nt - t) * 1e-9; +} +} diff --git a/util/timer.hpp b/util/timer.hpp new file mode 100644 index 00000000..416a0ebf --- /dev/null +++ b/util/timer.hpp @@ -0,0 +1,63 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include + +namespace Util +{ +class FrameTimer +{ +public: + FrameTimer(); + + void reset(); + double frame(); + double frame(double frame_time); + double get_elapsed() const; + double get_frame_time() const; + + void enter_idle(); + void leave_idle(); + +private: + int64_t start; + int64_t last; + int64_t last_period; + int64_t idle_start; + int64_t idle_time = 0; + int64_t get_time(); +}; + +class Timer +{ +public: + void start(); + double end(); + +private: + int64_t t = 0; +}; + +int64_t get_current_time_nsecs(); +} \ No newline at end of file diff --git a/volk/volk.c b/volk/volk.c new file mode 100644 index 00000000..fc89854a --- /dev/null +++ b/volk/volk.c @@ -0,0 +1,3009 @@ +/* This file is part of volk library; see volk.h for version/license details */ +/* clang-format off */ +#include "volk.h" + +#ifdef _WIN32 + typedef const char* LPCSTR; + typedef struct HINSTANCE__* HINSTANCE; + typedef HINSTANCE HMODULE; + #if defined(_MINWINDEF_) + /* minwindef.h defines FARPROC, and attempting to redefine it may conflict with -Wstrict-prototypes */ + #elif defined(_WIN64) + typedef __int64 (__stdcall* FARPROC)(void); + #else + typedef int (__stdcall* FARPROC)(void); + #endif +#else +# include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef _WIN32 +__declspec(dllimport) HMODULE __stdcall LoadLibraryA(LPCSTR); +__declspec(dllimport) FARPROC __stdcall GetProcAddress(HMODULE, LPCSTR); +#endif + +static VkInstance loadedInstance = VK_NULL_HANDLE; +static VkDevice loadedDevice = VK_NULL_HANDLE; + +static void volkGenLoadLoader(void* context, PFN_vkVoidFunction (*load)(void*, const char*)); +static void volkGenLoadInstance(void* context, PFN_vkVoidFunction (*load)(void*, const char*)); +static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, const char*)); +static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context, PFN_vkVoidFunction (*load)(void*, const char*)); + +static PFN_vkVoidFunction vkGetInstanceProcAddrStub(void* context, const char* name) +{ + return vkGetInstanceProcAddr((VkInstance)context, name); +} + +static PFN_vkVoidFunction vkGetDeviceProcAddrStub(void* context, const char* name) +{ + return vkGetDeviceProcAddr((VkDevice)context, name); +} + +VkResult volkInitialize(void) +{ +#if defined(_WIN32) + HMODULE module = LoadLibraryA("vulkan-1.dll"); + if (!module) + return VK_ERROR_INITIALIZATION_FAILED; + + // note: function pointer is cast through void function pointer to silence cast-function-type warning on gcc8 + vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)(void(*)(void))GetProcAddress(module, "vkGetInstanceProcAddr"); +#elif defined(__APPLE__) + void* module = dlopen("libvulkan.dylib", RTLD_NOW | RTLD_LOCAL); + if (!module) + module = dlopen("libvulkan.1.dylib", RTLD_NOW | RTLD_LOCAL); + if (!module) + module = dlopen("libMoltenVK.dylib", RTLD_NOW | RTLD_LOCAL); + if (!module) + return VK_ERROR_INITIALIZATION_FAILED; + + vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlsym(module, "vkGetInstanceProcAddr"); +#else + void* module = dlopen("libvulkan.so.1", RTLD_NOW | RTLD_LOCAL); + if (!module) + module = dlopen("libvulkan.so", RTLD_NOW | RTLD_LOCAL); + if (!module) + return VK_ERROR_INITIALIZATION_FAILED; + + vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)dlsym(module, "vkGetInstanceProcAddr"); +#endif + + volkGenLoadLoader(NULL, vkGetInstanceProcAddrStub); + + return VK_SUCCESS; +} + +void volkInitializeCustom(PFN_vkGetInstanceProcAddr handler) +{ + vkGetInstanceProcAddr = handler; + + volkGenLoadLoader(NULL, vkGetInstanceProcAddrStub); +} + +uint32_t volkGetInstanceVersion(void) +{ +#if defined(VK_VERSION_1_1) + uint32_t apiVersion = 0; + if (vkEnumerateInstanceVersion && vkEnumerateInstanceVersion(&apiVersion) == VK_SUCCESS) + return apiVersion; +#endif + + if (vkCreateInstance) + return VK_API_VERSION_1_0; + + return 0; +} + +void volkLoadInstance(VkInstance instance) +{ + loadedInstance = instance; + volkGenLoadInstance(instance, vkGetInstanceProcAddrStub); + volkGenLoadDevice(instance, vkGetInstanceProcAddrStub); +} + +void volkLoadInstanceOnly(VkInstance instance) +{ + loadedInstance = instance; + volkGenLoadInstance(instance, vkGetInstanceProcAddrStub); +} + +VkInstance volkGetLoadedInstance(void) +{ + return loadedInstance; +} + +void volkLoadDevice(VkDevice device) +{ + loadedDevice = device; + volkGenLoadDevice(device, vkGetDeviceProcAddrStub); +} + +VkDevice volkGetLoadedDevice(void) +{ + return loadedDevice; +} + +void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device) +{ + volkGenLoadDeviceTable(table, device, vkGetDeviceProcAddrStub); +} + +static void volkGenLoadLoader(void* context, PFN_vkVoidFunction (*load)(void*, const char*)) +{ + /* VOLK_GENERATE_LOAD_LOADER */ +#if defined(VK_VERSION_1_0) + vkCreateInstance = (PFN_vkCreateInstance)load(context, "vkCreateInstance"); + vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties)load(context, "vkEnumerateInstanceExtensionProperties"); + vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties)load(context, "vkEnumerateInstanceLayerProperties"); +#endif /* defined(VK_VERSION_1_0) */ +#if defined(VK_VERSION_1_1) + vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion)load(context, "vkEnumerateInstanceVersion"); +#endif /* defined(VK_VERSION_1_1) */ + /* VOLK_GENERATE_LOAD_LOADER */ +} + +static void volkGenLoadInstance(void* context, PFN_vkVoidFunction (*load)(void*, const char*)) +{ + /* VOLK_GENERATE_LOAD_INSTANCE */ +#if defined(VK_VERSION_1_0) + vkCreateDevice = (PFN_vkCreateDevice)load(context, "vkCreateDevice"); + vkDestroyInstance = (PFN_vkDestroyInstance)load(context, "vkDestroyInstance"); + vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)load(context, "vkEnumerateDeviceExtensionProperties"); + vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)load(context, "vkEnumerateDeviceLayerProperties"); + vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)load(context, "vkEnumeratePhysicalDevices"); + vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr)load(context, "vkGetDeviceProcAddr"); + vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)load(context, "vkGetPhysicalDeviceFeatures"); + vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)load(context, "vkGetPhysicalDeviceFormatProperties"); + vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)load(context, "vkGetPhysicalDeviceImageFormatProperties"); + vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)load(context, "vkGetPhysicalDeviceMemoryProperties"); + vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)load(context, "vkGetPhysicalDeviceProperties"); + vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)load(context, "vkGetPhysicalDeviceQueueFamilyProperties"); + vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties"); +#endif /* defined(VK_VERSION_1_0) */ +#if defined(VK_VERSION_1_1) + vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)load(context, "vkEnumeratePhysicalDeviceGroups"); + vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)load(context, "vkGetPhysicalDeviceExternalBufferProperties"); + vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)load(context, "vkGetPhysicalDeviceExternalFenceProperties"); + vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)load(context, "vkGetPhysicalDeviceExternalSemaphoreProperties"); + vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)load(context, "vkGetPhysicalDeviceFeatures2"); + vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)load(context, "vkGetPhysicalDeviceFormatProperties2"); + vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)load(context, "vkGetPhysicalDeviceImageFormatProperties2"); + vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)load(context, "vkGetPhysicalDeviceMemoryProperties2"); + vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)load(context, "vkGetPhysicalDeviceProperties2"); + vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)load(context, "vkGetPhysicalDeviceQueueFamilyProperties2"); + vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties2"); +#endif /* defined(VK_VERSION_1_1) */ +#if defined(VK_VERSION_1_3) + vkGetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties)load(context, "vkGetPhysicalDeviceToolProperties"); +#endif /* defined(VK_VERSION_1_3) */ +#if defined(VK_EXT_acquire_drm_display) + vkAcquireDrmDisplayEXT = (PFN_vkAcquireDrmDisplayEXT)load(context, "vkAcquireDrmDisplayEXT"); + vkGetDrmDisplayEXT = (PFN_vkGetDrmDisplayEXT)load(context, "vkGetDrmDisplayEXT"); +#endif /* defined(VK_EXT_acquire_drm_display) */ +#if defined(VK_EXT_acquire_xlib_display) + vkAcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)load(context, "vkAcquireXlibDisplayEXT"); + vkGetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)load(context, "vkGetRandROutputDisplayEXT"); +#endif /* defined(VK_EXT_acquire_xlib_display) */ +#if defined(VK_EXT_calibrated_timestamps) + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)load(context, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"); +#endif /* defined(VK_EXT_calibrated_timestamps) */ +#if defined(VK_EXT_debug_report) + vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)load(context, "vkCreateDebugReportCallbackEXT"); + vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)load(context, "vkDebugReportMessageEXT"); + vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)load(context, "vkDestroyDebugReportCallbackEXT"); +#endif /* defined(VK_EXT_debug_report) */ +#if defined(VK_EXT_debug_utils) + vkCmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)load(context, "vkCmdBeginDebugUtilsLabelEXT"); + vkCmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)load(context, "vkCmdEndDebugUtilsLabelEXT"); + vkCmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)load(context, "vkCmdInsertDebugUtilsLabelEXT"); + vkCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)load(context, "vkCreateDebugUtilsMessengerEXT"); + vkDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)load(context, "vkDestroyDebugUtilsMessengerEXT"); + vkQueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)load(context, "vkQueueBeginDebugUtilsLabelEXT"); + vkQueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)load(context, "vkQueueEndDebugUtilsLabelEXT"); + vkQueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)load(context, "vkQueueInsertDebugUtilsLabelEXT"); + vkSetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)load(context, "vkSetDebugUtilsObjectNameEXT"); + vkSetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)load(context, "vkSetDebugUtilsObjectTagEXT"); + vkSubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)load(context, "vkSubmitDebugUtilsMessageEXT"); +#endif /* defined(VK_EXT_debug_utils) */ +#if defined(VK_EXT_direct_mode_display) + vkReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)load(context, "vkReleaseDisplayEXT"); +#endif /* defined(VK_EXT_direct_mode_display) */ +#if defined(VK_EXT_directfb_surface) + vkCreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)load(context, "vkCreateDirectFBSurfaceEXT"); + vkGetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)load(context, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"); +#endif /* defined(VK_EXT_directfb_surface) */ +#if defined(VK_EXT_display_surface_counter) + vkGetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)load(context, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"); +#endif /* defined(VK_EXT_display_surface_counter) */ +#if defined(VK_EXT_full_screen_exclusive) + vkGetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)load(context, "vkGetPhysicalDeviceSurfacePresentModes2EXT"); +#endif /* defined(VK_EXT_full_screen_exclusive) */ +#if defined(VK_EXT_headless_surface) + vkCreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)load(context, "vkCreateHeadlessSurfaceEXT"); +#endif /* defined(VK_EXT_headless_surface) */ +#if defined(VK_EXT_metal_surface) + vkCreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)load(context, "vkCreateMetalSurfaceEXT"); +#endif /* defined(VK_EXT_metal_surface) */ +#if defined(VK_EXT_sample_locations) + vkGetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)load(context, "vkGetPhysicalDeviceMultisamplePropertiesEXT"); +#endif /* defined(VK_EXT_sample_locations) */ +#if defined(VK_EXT_tooling_info) + vkGetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)load(context, "vkGetPhysicalDeviceToolPropertiesEXT"); +#endif /* defined(VK_EXT_tooling_info) */ +#if defined(VK_FUCHSIA_imagepipe_surface) + vkCreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)load(context, "vkCreateImagePipeSurfaceFUCHSIA"); +#endif /* defined(VK_FUCHSIA_imagepipe_surface) */ +#if defined(VK_GGP_stream_descriptor_surface) + vkCreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)load(context, "vkCreateStreamDescriptorSurfaceGGP"); +#endif /* defined(VK_GGP_stream_descriptor_surface) */ +#if defined(VK_KHR_android_surface) + vkCreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)load(context, "vkCreateAndroidSurfaceKHR"); +#endif /* defined(VK_KHR_android_surface) */ +#if defined(VK_KHR_cooperative_matrix) + vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)load(context, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR"); +#endif /* defined(VK_KHR_cooperative_matrix) */ +#if defined(VK_KHR_device_group_creation) + vkEnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)load(context, "vkEnumeratePhysicalDeviceGroupsKHR"); +#endif /* defined(VK_KHR_device_group_creation) */ +#if defined(VK_KHR_display) + vkCreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)load(context, "vkCreateDisplayModeKHR"); + vkCreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)load(context, "vkCreateDisplayPlaneSurfaceKHR"); + vkGetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)load(context, "vkGetDisplayModePropertiesKHR"); + vkGetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)load(context, "vkGetDisplayPlaneCapabilitiesKHR"); + vkGetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)load(context, "vkGetDisplayPlaneSupportedDisplaysKHR"); + vkGetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)load(context, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"); + vkGetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)load(context, "vkGetPhysicalDeviceDisplayPropertiesKHR"); +#endif /* defined(VK_KHR_display) */ +#if defined(VK_KHR_external_fence_capabilities) + vkGetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)load(context, "vkGetPhysicalDeviceExternalFencePropertiesKHR"); +#endif /* defined(VK_KHR_external_fence_capabilities) */ +#if defined(VK_KHR_external_memory_capabilities) + vkGetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)load(context, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"); +#endif /* defined(VK_KHR_external_memory_capabilities) */ +#if defined(VK_KHR_external_semaphore_capabilities) + vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)load(context, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); +#endif /* defined(VK_KHR_external_semaphore_capabilities) */ +#if defined(VK_KHR_fragment_shading_rate) + vkGetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)load(context, "vkGetPhysicalDeviceFragmentShadingRatesKHR"); +#endif /* defined(VK_KHR_fragment_shading_rate) */ +#if defined(VK_KHR_get_display_properties2) + vkGetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)load(context, "vkGetDisplayModeProperties2KHR"); + vkGetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)load(context, "vkGetDisplayPlaneCapabilities2KHR"); + vkGetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)load(context, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"); + vkGetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)load(context, "vkGetPhysicalDeviceDisplayProperties2KHR"); +#endif /* defined(VK_KHR_get_display_properties2) */ +#if defined(VK_KHR_get_physical_device_properties2) + vkGetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)load(context, "vkGetPhysicalDeviceFeatures2KHR"); + vkGetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)load(context, "vkGetPhysicalDeviceFormatProperties2KHR"); + vkGetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)load(context, "vkGetPhysicalDeviceImageFormatProperties2KHR"); + vkGetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)load(context, "vkGetPhysicalDeviceMemoryProperties2KHR"); + vkGetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)load(context, "vkGetPhysicalDeviceProperties2KHR"); + vkGetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)load(context, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"); + vkGetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)load(context, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); +#endif /* defined(VK_KHR_get_physical_device_properties2) */ +#if defined(VK_KHR_get_surface_capabilities2) + vkGetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)load(context, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"); + vkGetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)load(context, "vkGetPhysicalDeviceSurfaceFormats2KHR"); +#endif /* defined(VK_KHR_get_surface_capabilities2) */ +#if defined(VK_KHR_performance_query) + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)load(context, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"); + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)load(context, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"); +#endif /* defined(VK_KHR_performance_query) */ +#if defined(VK_KHR_surface) + vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)load(context, "vkDestroySurfaceKHR"); + vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)load(context, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"); + vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)load(context, "vkGetPhysicalDeviceSurfaceFormatsKHR"); + vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)load(context, "vkGetPhysicalDeviceSurfacePresentModesKHR"); + vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)load(context, "vkGetPhysicalDeviceSurfaceSupportKHR"); +#endif /* defined(VK_KHR_surface) */ +#if defined(VK_KHR_video_encode_queue) + vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)load(context, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR"); +#endif /* defined(VK_KHR_video_encode_queue) */ +#if defined(VK_KHR_video_queue) + vkGetPhysicalDeviceVideoCapabilitiesKHR = (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)load(context, "vkGetPhysicalDeviceVideoCapabilitiesKHR"); + vkGetPhysicalDeviceVideoFormatPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)load(context, "vkGetPhysicalDeviceVideoFormatPropertiesKHR"); +#endif /* defined(VK_KHR_video_queue) */ +#if defined(VK_KHR_wayland_surface) + vkCreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)load(context, "vkCreateWaylandSurfaceKHR"); + vkGetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)load(context, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"); +#endif /* defined(VK_KHR_wayland_surface) */ +#if defined(VK_KHR_win32_surface) + vkCreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)load(context, "vkCreateWin32SurfaceKHR"); + vkGetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)load(context, "vkGetPhysicalDeviceWin32PresentationSupportKHR"); +#endif /* defined(VK_KHR_win32_surface) */ +#if defined(VK_KHR_xcb_surface) + vkCreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)load(context, "vkCreateXcbSurfaceKHR"); + vkGetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)load(context, "vkGetPhysicalDeviceXcbPresentationSupportKHR"); +#endif /* defined(VK_KHR_xcb_surface) */ +#if defined(VK_KHR_xlib_surface) + vkCreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)load(context, "vkCreateXlibSurfaceKHR"); + vkGetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)load(context, "vkGetPhysicalDeviceXlibPresentationSupportKHR"); +#endif /* defined(VK_KHR_xlib_surface) */ +#if defined(VK_MVK_ios_surface) + vkCreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)load(context, "vkCreateIOSSurfaceMVK"); +#endif /* defined(VK_MVK_ios_surface) */ +#if defined(VK_MVK_macos_surface) + vkCreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)load(context, "vkCreateMacOSSurfaceMVK"); +#endif /* defined(VK_MVK_macos_surface) */ +#if defined(VK_NN_vi_surface) + vkCreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)load(context, "vkCreateViSurfaceNN"); +#endif /* defined(VK_NN_vi_surface) */ +#if defined(VK_NV_acquire_winrt_display) + vkAcquireWinrtDisplayNV = (PFN_vkAcquireWinrtDisplayNV)load(context, "vkAcquireWinrtDisplayNV"); + vkGetWinrtDisplayNV = (PFN_vkGetWinrtDisplayNV)load(context, "vkGetWinrtDisplayNV"); +#endif /* defined(VK_NV_acquire_winrt_display) */ +#if defined(VK_NV_cooperative_matrix) + vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)load(context, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"); +#endif /* defined(VK_NV_cooperative_matrix) */ +#if defined(VK_NV_coverage_reduction_mode) + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)load(context, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"); +#endif /* defined(VK_NV_coverage_reduction_mode) */ +#if defined(VK_NV_external_memory_capabilities) + vkGetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)load(context, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"); +#endif /* defined(VK_NV_external_memory_capabilities) */ +#if defined(VK_NV_optical_flow) + vkGetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)load(context, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"); +#endif /* defined(VK_NV_optical_flow) */ +#if defined(VK_QNX_screen_surface) + vkCreateScreenSurfaceQNX = (PFN_vkCreateScreenSurfaceQNX)load(context, "vkCreateScreenSurfaceQNX"); + vkGetPhysicalDeviceScreenPresentationSupportQNX = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)load(context, "vkGetPhysicalDeviceScreenPresentationSupportQNX"); +#endif /* defined(VK_QNX_screen_surface) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) + vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)load(context, "vkGetPhysicalDevicePresentRectanglesKHR"); +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ + /* VOLK_GENERATE_LOAD_INSTANCE */ +} + +static void volkGenLoadDevice(void* context, PFN_vkVoidFunction (*load)(void*, const char*)) +{ + /* VOLK_GENERATE_LOAD_DEVICE */ +#if defined(VK_VERSION_1_0) + vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)load(context, "vkAllocateCommandBuffers"); + vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)load(context, "vkAllocateDescriptorSets"); + vkAllocateMemory = (PFN_vkAllocateMemory)load(context, "vkAllocateMemory"); + vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)load(context, "vkBeginCommandBuffer"); + vkBindBufferMemory = (PFN_vkBindBufferMemory)load(context, "vkBindBufferMemory"); + vkBindImageMemory = (PFN_vkBindImageMemory)load(context, "vkBindImageMemory"); + vkCmdBeginQuery = (PFN_vkCmdBeginQuery)load(context, "vkCmdBeginQuery"); + vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)load(context, "vkCmdBeginRenderPass"); + vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)load(context, "vkCmdBindDescriptorSets"); + vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)load(context, "vkCmdBindIndexBuffer"); + vkCmdBindPipeline = (PFN_vkCmdBindPipeline)load(context, "vkCmdBindPipeline"); + vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)load(context, "vkCmdBindVertexBuffers"); + vkCmdBlitImage = (PFN_vkCmdBlitImage)load(context, "vkCmdBlitImage"); + vkCmdClearAttachments = (PFN_vkCmdClearAttachments)load(context, "vkCmdClearAttachments"); + vkCmdClearColorImage = (PFN_vkCmdClearColorImage)load(context, "vkCmdClearColorImage"); + vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)load(context, "vkCmdClearDepthStencilImage"); + vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)load(context, "vkCmdCopyBuffer"); + vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)load(context, "vkCmdCopyBufferToImage"); + vkCmdCopyImage = (PFN_vkCmdCopyImage)load(context, "vkCmdCopyImage"); + vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)load(context, "vkCmdCopyImageToBuffer"); + vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)load(context, "vkCmdCopyQueryPoolResults"); + vkCmdDispatch = (PFN_vkCmdDispatch)load(context, "vkCmdDispatch"); + vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)load(context, "vkCmdDispatchIndirect"); + vkCmdDraw = (PFN_vkCmdDraw)load(context, "vkCmdDraw"); + vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)load(context, "vkCmdDrawIndexed"); + vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)load(context, "vkCmdDrawIndexedIndirect"); + vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)load(context, "vkCmdDrawIndirect"); + vkCmdEndQuery = (PFN_vkCmdEndQuery)load(context, "vkCmdEndQuery"); + vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)load(context, "vkCmdEndRenderPass"); + vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)load(context, "vkCmdExecuteCommands"); + vkCmdFillBuffer = (PFN_vkCmdFillBuffer)load(context, "vkCmdFillBuffer"); + vkCmdNextSubpass = (PFN_vkCmdNextSubpass)load(context, "vkCmdNextSubpass"); + vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)load(context, "vkCmdPipelineBarrier"); + vkCmdPushConstants = (PFN_vkCmdPushConstants)load(context, "vkCmdPushConstants"); + vkCmdResetEvent = (PFN_vkCmdResetEvent)load(context, "vkCmdResetEvent"); + vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)load(context, "vkCmdResetQueryPool"); + vkCmdResolveImage = (PFN_vkCmdResolveImage)load(context, "vkCmdResolveImage"); + vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)load(context, "vkCmdSetBlendConstants"); + vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)load(context, "vkCmdSetDepthBias"); + vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)load(context, "vkCmdSetDepthBounds"); + vkCmdSetEvent = (PFN_vkCmdSetEvent)load(context, "vkCmdSetEvent"); + vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)load(context, "vkCmdSetLineWidth"); + vkCmdSetScissor = (PFN_vkCmdSetScissor)load(context, "vkCmdSetScissor"); + vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)load(context, "vkCmdSetStencilCompareMask"); + vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)load(context, "vkCmdSetStencilReference"); + vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)load(context, "vkCmdSetStencilWriteMask"); + vkCmdSetViewport = (PFN_vkCmdSetViewport)load(context, "vkCmdSetViewport"); + vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)load(context, "vkCmdUpdateBuffer"); + vkCmdWaitEvents = (PFN_vkCmdWaitEvents)load(context, "vkCmdWaitEvents"); + vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)load(context, "vkCmdWriteTimestamp"); + vkCreateBuffer = (PFN_vkCreateBuffer)load(context, "vkCreateBuffer"); + vkCreateBufferView = (PFN_vkCreateBufferView)load(context, "vkCreateBufferView"); + vkCreateCommandPool = (PFN_vkCreateCommandPool)load(context, "vkCreateCommandPool"); + vkCreateComputePipelines = (PFN_vkCreateComputePipelines)load(context, "vkCreateComputePipelines"); + vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)load(context, "vkCreateDescriptorPool"); + vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)load(context, "vkCreateDescriptorSetLayout"); + vkCreateEvent = (PFN_vkCreateEvent)load(context, "vkCreateEvent"); + vkCreateFence = (PFN_vkCreateFence)load(context, "vkCreateFence"); + vkCreateFramebuffer = (PFN_vkCreateFramebuffer)load(context, "vkCreateFramebuffer"); + vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)load(context, "vkCreateGraphicsPipelines"); + vkCreateImage = (PFN_vkCreateImage)load(context, "vkCreateImage"); + vkCreateImageView = (PFN_vkCreateImageView)load(context, "vkCreateImageView"); + vkCreatePipelineCache = (PFN_vkCreatePipelineCache)load(context, "vkCreatePipelineCache"); + vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)load(context, "vkCreatePipelineLayout"); + vkCreateQueryPool = (PFN_vkCreateQueryPool)load(context, "vkCreateQueryPool"); + vkCreateRenderPass = (PFN_vkCreateRenderPass)load(context, "vkCreateRenderPass"); + vkCreateSampler = (PFN_vkCreateSampler)load(context, "vkCreateSampler"); + vkCreateSemaphore = (PFN_vkCreateSemaphore)load(context, "vkCreateSemaphore"); + vkCreateShaderModule = (PFN_vkCreateShaderModule)load(context, "vkCreateShaderModule"); + vkDestroyBuffer = (PFN_vkDestroyBuffer)load(context, "vkDestroyBuffer"); + vkDestroyBufferView = (PFN_vkDestroyBufferView)load(context, "vkDestroyBufferView"); + vkDestroyCommandPool = (PFN_vkDestroyCommandPool)load(context, "vkDestroyCommandPool"); + vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)load(context, "vkDestroyDescriptorPool"); + vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)load(context, "vkDestroyDescriptorSetLayout"); + vkDestroyDevice = (PFN_vkDestroyDevice)load(context, "vkDestroyDevice"); + vkDestroyEvent = (PFN_vkDestroyEvent)load(context, "vkDestroyEvent"); + vkDestroyFence = (PFN_vkDestroyFence)load(context, "vkDestroyFence"); + vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)load(context, "vkDestroyFramebuffer"); + vkDestroyImage = (PFN_vkDestroyImage)load(context, "vkDestroyImage"); + vkDestroyImageView = (PFN_vkDestroyImageView)load(context, "vkDestroyImageView"); + vkDestroyPipeline = (PFN_vkDestroyPipeline)load(context, "vkDestroyPipeline"); + vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)load(context, "vkDestroyPipelineCache"); + vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)load(context, "vkDestroyPipelineLayout"); + vkDestroyQueryPool = (PFN_vkDestroyQueryPool)load(context, "vkDestroyQueryPool"); + vkDestroyRenderPass = (PFN_vkDestroyRenderPass)load(context, "vkDestroyRenderPass"); + vkDestroySampler = (PFN_vkDestroySampler)load(context, "vkDestroySampler"); + vkDestroySemaphore = (PFN_vkDestroySemaphore)load(context, "vkDestroySemaphore"); + vkDestroyShaderModule = (PFN_vkDestroyShaderModule)load(context, "vkDestroyShaderModule"); + vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)load(context, "vkDeviceWaitIdle"); + vkEndCommandBuffer = (PFN_vkEndCommandBuffer)load(context, "vkEndCommandBuffer"); + vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)load(context, "vkFlushMappedMemoryRanges"); + vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)load(context, "vkFreeCommandBuffers"); + vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)load(context, "vkFreeDescriptorSets"); + vkFreeMemory = (PFN_vkFreeMemory)load(context, "vkFreeMemory"); + vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)load(context, "vkGetBufferMemoryRequirements"); + vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)load(context, "vkGetDeviceMemoryCommitment"); + vkGetDeviceQueue = (PFN_vkGetDeviceQueue)load(context, "vkGetDeviceQueue"); + vkGetEventStatus = (PFN_vkGetEventStatus)load(context, "vkGetEventStatus"); + vkGetFenceStatus = (PFN_vkGetFenceStatus)load(context, "vkGetFenceStatus"); + vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)load(context, "vkGetImageMemoryRequirements"); + vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)load(context, "vkGetImageSparseMemoryRequirements"); + vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)load(context, "vkGetImageSubresourceLayout"); + vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)load(context, "vkGetPipelineCacheData"); + vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)load(context, "vkGetQueryPoolResults"); + vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)load(context, "vkGetRenderAreaGranularity"); + vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)load(context, "vkInvalidateMappedMemoryRanges"); + vkMapMemory = (PFN_vkMapMemory)load(context, "vkMapMemory"); + vkMergePipelineCaches = (PFN_vkMergePipelineCaches)load(context, "vkMergePipelineCaches"); + vkQueueBindSparse = (PFN_vkQueueBindSparse)load(context, "vkQueueBindSparse"); + vkQueueSubmit = (PFN_vkQueueSubmit)load(context, "vkQueueSubmit"); + vkQueueWaitIdle = (PFN_vkQueueWaitIdle)load(context, "vkQueueWaitIdle"); + vkResetCommandBuffer = (PFN_vkResetCommandBuffer)load(context, "vkResetCommandBuffer"); + vkResetCommandPool = (PFN_vkResetCommandPool)load(context, "vkResetCommandPool"); + vkResetDescriptorPool = (PFN_vkResetDescriptorPool)load(context, "vkResetDescriptorPool"); + vkResetEvent = (PFN_vkResetEvent)load(context, "vkResetEvent"); + vkResetFences = (PFN_vkResetFences)load(context, "vkResetFences"); + vkSetEvent = (PFN_vkSetEvent)load(context, "vkSetEvent"); + vkUnmapMemory = (PFN_vkUnmapMemory)load(context, "vkUnmapMemory"); + vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)load(context, "vkUpdateDescriptorSets"); + vkWaitForFences = (PFN_vkWaitForFences)load(context, "vkWaitForFences"); +#endif /* defined(VK_VERSION_1_0) */ +#if defined(VK_VERSION_1_1) + vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)load(context, "vkBindBufferMemory2"); + vkBindImageMemory2 = (PFN_vkBindImageMemory2)load(context, "vkBindImageMemory2"); + vkCmdDispatchBase = (PFN_vkCmdDispatchBase)load(context, "vkCmdDispatchBase"); + vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)load(context, "vkCmdSetDeviceMask"); + vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)load(context, "vkCreateDescriptorUpdateTemplate"); + vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)load(context, "vkCreateSamplerYcbcrConversion"); + vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)load(context, "vkDestroyDescriptorUpdateTemplate"); + vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)load(context, "vkDestroySamplerYcbcrConversion"); + vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)load(context, "vkGetBufferMemoryRequirements2"); + vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)load(context, "vkGetDescriptorSetLayoutSupport"); + vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)load(context, "vkGetDeviceGroupPeerMemoryFeatures"); + vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)load(context, "vkGetDeviceQueue2"); + vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)load(context, "vkGetImageMemoryRequirements2"); + vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)load(context, "vkGetImageSparseMemoryRequirements2"); + vkTrimCommandPool = (PFN_vkTrimCommandPool)load(context, "vkTrimCommandPool"); + vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)load(context, "vkUpdateDescriptorSetWithTemplate"); +#endif /* defined(VK_VERSION_1_1) */ +#if defined(VK_VERSION_1_2) + vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)load(context, "vkCmdBeginRenderPass2"); + vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)load(context, "vkCmdDrawIndexedIndirectCount"); + vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)load(context, "vkCmdDrawIndirectCount"); + vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)load(context, "vkCmdEndRenderPass2"); + vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2)load(context, "vkCmdNextSubpass2"); + vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)load(context, "vkCreateRenderPass2"); + vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)load(context, "vkGetBufferDeviceAddress"); + vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)load(context, "vkGetBufferOpaqueCaptureAddress"); + vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)load(context, "vkGetDeviceMemoryOpaqueCaptureAddress"); + vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)load(context, "vkGetSemaphoreCounterValue"); + vkResetQueryPool = (PFN_vkResetQueryPool)load(context, "vkResetQueryPool"); + vkSignalSemaphore = (PFN_vkSignalSemaphore)load(context, "vkSignalSemaphore"); + vkWaitSemaphores = (PFN_vkWaitSemaphores)load(context, "vkWaitSemaphores"); +#endif /* defined(VK_VERSION_1_2) */ +#if defined(VK_VERSION_1_3) + vkCmdBeginRendering = (PFN_vkCmdBeginRendering)load(context, "vkCmdBeginRendering"); + vkCmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)load(context, "vkCmdBindVertexBuffers2"); + vkCmdBlitImage2 = (PFN_vkCmdBlitImage2)load(context, "vkCmdBlitImage2"); + vkCmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)load(context, "vkCmdCopyBuffer2"); + vkCmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)load(context, "vkCmdCopyBufferToImage2"); + vkCmdCopyImage2 = (PFN_vkCmdCopyImage2)load(context, "vkCmdCopyImage2"); + vkCmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)load(context, "vkCmdCopyImageToBuffer2"); + vkCmdEndRendering = (PFN_vkCmdEndRendering)load(context, "vkCmdEndRendering"); + vkCmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)load(context, "vkCmdPipelineBarrier2"); + vkCmdResetEvent2 = (PFN_vkCmdResetEvent2)load(context, "vkCmdResetEvent2"); + vkCmdResolveImage2 = (PFN_vkCmdResolveImage2)load(context, "vkCmdResolveImage2"); + vkCmdSetCullMode = (PFN_vkCmdSetCullMode)load(context, "vkCmdSetCullMode"); + vkCmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)load(context, "vkCmdSetDepthBiasEnable"); + vkCmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)load(context, "vkCmdSetDepthBoundsTestEnable"); + vkCmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)load(context, "vkCmdSetDepthCompareOp"); + vkCmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)load(context, "vkCmdSetDepthTestEnable"); + vkCmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)load(context, "vkCmdSetDepthWriteEnable"); + vkCmdSetEvent2 = (PFN_vkCmdSetEvent2)load(context, "vkCmdSetEvent2"); + vkCmdSetFrontFace = (PFN_vkCmdSetFrontFace)load(context, "vkCmdSetFrontFace"); + vkCmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)load(context, "vkCmdSetPrimitiveRestartEnable"); + vkCmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)load(context, "vkCmdSetPrimitiveTopology"); + vkCmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)load(context, "vkCmdSetRasterizerDiscardEnable"); + vkCmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)load(context, "vkCmdSetScissorWithCount"); + vkCmdSetStencilOp = (PFN_vkCmdSetStencilOp)load(context, "vkCmdSetStencilOp"); + vkCmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)load(context, "vkCmdSetStencilTestEnable"); + vkCmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)load(context, "vkCmdSetViewportWithCount"); + vkCmdWaitEvents2 = (PFN_vkCmdWaitEvents2)load(context, "vkCmdWaitEvents2"); + vkCmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)load(context, "vkCmdWriteTimestamp2"); + vkCreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)load(context, "vkCreatePrivateDataSlot"); + vkDestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)load(context, "vkDestroyPrivateDataSlot"); + vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)load(context, "vkGetDeviceBufferMemoryRequirements"); + vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)load(context, "vkGetDeviceImageMemoryRequirements"); + vkGetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)load(context, "vkGetDeviceImageSparseMemoryRequirements"); + vkGetPrivateData = (PFN_vkGetPrivateData)load(context, "vkGetPrivateData"); + vkQueueSubmit2 = (PFN_vkQueueSubmit2)load(context, "vkQueueSubmit2"); + vkSetPrivateData = (PFN_vkSetPrivateData)load(context, "vkSetPrivateData"); +#endif /* defined(VK_VERSION_1_3) */ +#if defined(VK_AMDX_shader_enqueue) + vkCmdDispatchGraphAMDX = (PFN_vkCmdDispatchGraphAMDX)load(context, "vkCmdDispatchGraphAMDX"); + vkCmdDispatchGraphIndirectAMDX = (PFN_vkCmdDispatchGraphIndirectAMDX)load(context, "vkCmdDispatchGraphIndirectAMDX"); + vkCmdDispatchGraphIndirectCountAMDX = (PFN_vkCmdDispatchGraphIndirectCountAMDX)load(context, "vkCmdDispatchGraphIndirectCountAMDX"); + vkCmdInitializeGraphScratchMemoryAMDX = (PFN_vkCmdInitializeGraphScratchMemoryAMDX)load(context, "vkCmdInitializeGraphScratchMemoryAMDX"); + vkCreateExecutionGraphPipelinesAMDX = (PFN_vkCreateExecutionGraphPipelinesAMDX)load(context, "vkCreateExecutionGraphPipelinesAMDX"); + vkGetExecutionGraphPipelineNodeIndexAMDX = (PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)load(context, "vkGetExecutionGraphPipelineNodeIndexAMDX"); + vkGetExecutionGraphPipelineScratchSizeAMDX = (PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)load(context, "vkGetExecutionGraphPipelineScratchSizeAMDX"); +#endif /* defined(VK_AMDX_shader_enqueue) */ +#if defined(VK_AMD_buffer_marker) + vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)load(context, "vkCmdWriteBufferMarkerAMD"); +#endif /* defined(VK_AMD_buffer_marker) */ +#if defined(VK_AMD_display_native_hdr) + vkSetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)load(context, "vkSetLocalDimmingAMD"); +#endif /* defined(VK_AMD_display_native_hdr) */ +#if defined(VK_AMD_draw_indirect_count) + vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)load(context, "vkCmdDrawIndexedIndirectCountAMD"); + vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)load(context, "vkCmdDrawIndirectCountAMD"); +#endif /* defined(VK_AMD_draw_indirect_count) */ +#if defined(VK_AMD_shader_info) + vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)load(context, "vkGetShaderInfoAMD"); +#endif /* defined(VK_AMD_shader_info) */ +#if defined(VK_ANDROID_external_memory_android_hardware_buffer) + vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)load(context, "vkGetAndroidHardwareBufferPropertiesANDROID"); + vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)load(context, "vkGetMemoryAndroidHardwareBufferANDROID"); +#endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ +#if defined(VK_EXT_attachment_feedback_loop_dynamic_state) + vkCmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)load(context, "vkCmdSetAttachmentFeedbackLoopEnableEXT"); +#endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ +#if defined(VK_EXT_buffer_device_address) + vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)load(context, "vkGetBufferDeviceAddressEXT"); +#endif /* defined(VK_EXT_buffer_device_address) */ +#if defined(VK_EXT_calibrated_timestamps) + vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)load(context, "vkGetCalibratedTimestampsEXT"); +#endif /* defined(VK_EXT_calibrated_timestamps) */ +#if defined(VK_EXT_color_write_enable) + vkCmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)load(context, "vkCmdSetColorWriteEnableEXT"); +#endif /* defined(VK_EXT_color_write_enable) */ +#if defined(VK_EXT_conditional_rendering) + vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)load(context, "vkCmdBeginConditionalRenderingEXT"); + vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)load(context, "vkCmdEndConditionalRenderingEXT"); +#endif /* defined(VK_EXT_conditional_rendering) */ +#if defined(VK_EXT_debug_marker) + vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)load(context, "vkCmdDebugMarkerBeginEXT"); + vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)load(context, "vkCmdDebugMarkerEndEXT"); + vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)load(context, "vkCmdDebugMarkerInsertEXT"); + vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)load(context, "vkDebugMarkerSetObjectNameEXT"); + vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)load(context, "vkDebugMarkerSetObjectTagEXT"); +#endif /* defined(VK_EXT_debug_marker) */ +#if defined(VK_EXT_depth_bias_control) + vkCmdSetDepthBias2EXT = (PFN_vkCmdSetDepthBias2EXT)load(context, "vkCmdSetDepthBias2EXT"); +#endif /* defined(VK_EXT_depth_bias_control) */ +#if defined(VK_EXT_descriptor_buffer) + vkCmdBindDescriptorBufferEmbeddedSamplersEXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)load(context, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT"); + vkCmdBindDescriptorBuffersEXT = (PFN_vkCmdBindDescriptorBuffersEXT)load(context, "vkCmdBindDescriptorBuffersEXT"); + vkCmdSetDescriptorBufferOffsetsEXT = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)load(context, "vkCmdSetDescriptorBufferOffsetsEXT"); + vkGetBufferOpaqueCaptureDescriptorDataEXT = (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)load(context, "vkGetBufferOpaqueCaptureDescriptorDataEXT"); + vkGetDescriptorEXT = (PFN_vkGetDescriptorEXT)load(context, "vkGetDescriptorEXT"); + vkGetDescriptorSetLayoutBindingOffsetEXT = (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)load(context, "vkGetDescriptorSetLayoutBindingOffsetEXT"); + vkGetDescriptorSetLayoutSizeEXT = (PFN_vkGetDescriptorSetLayoutSizeEXT)load(context, "vkGetDescriptorSetLayoutSizeEXT"); + vkGetImageOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)load(context, "vkGetImageOpaqueCaptureDescriptorDataEXT"); + vkGetImageViewOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)load(context, "vkGetImageViewOpaqueCaptureDescriptorDataEXT"); + vkGetSamplerOpaqueCaptureDescriptorDataEXT = (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)load(context, "vkGetSamplerOpaqueCaptureDescriptorDataEXT"); +#endif /* defined(VK_EXT_descriptor_buffer) */ +#if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) + vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)load(context, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT"); +#endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ +#if defined(VK_EXT_device_fault) + vkGetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)load(context, "vkGetDeviceFaultInfoEXT"); +#endif /* defined(VK_EXT_device_fault) */ +#if defined(VK_EXT_discard_rectangles) + vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)load(context, "vkCmdSetDiscardRectangleEXT"); +#endif /* defined(VK_EXT_discard_rectangles) */ +#if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 + vkCmdSetDiscardRectangleEnableEXT = (PFN_vkCmdSetDiscardRectangleEnableEXT)load(context, "vkCmdSetDiscardRectangleEnableEXT"); + vkCmdSetDiscardRectangleModeEXT = (PFN_vkCmdSetDiscardRectangleModeEXT)load(context, "vkCmdSetDiscardRectangleModeEXT"); +#endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ +#if defined(VK_EXT_display_control) + vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)load(context, "vkDisplayPowerControlEXT"); + vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)load(context, "vkGetSwapchainCounterEXT"); + vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)load(context, "vkRegisterDeviceEventEXT"); + vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)load(context, "vkRegisterDisplayEventEXT"); +#endif /* defined(VK_EXT_display_control) */ +#if defined(VK_EXT_external_memory_host) + vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)load(context, "vkGetMemoryHostPointerPropertiesEXT"); +#endif /* defined(VK_EXT_external_memory_host) */ +#if defined(VK_EXT_full_screen_exclusive) + vkAcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)load(context, "vkAcquireFullScreenExclusiveModeEXT"); + vkReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)load(context, "vkReleaseFullScreenExclusiveModeEXT"); +#endif /* defined(VK_EXT_full_screen_exclusive) */ +#if defined(VK_EXT_hdr_metadata) + vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)load(context, "vkSetHdrMetadataEXT"); +#endif /* defined(VK_EXT_hdr_metadata) */ +#if defined(VK_EXT_host_image_copy) + vkCopyImageToImageEXT = (PFN_vkCopyImageToImageEXT)load(context, "vkCopyImageToImageEXT"); + vkCopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT)load(context, "vkCopyImageToMemoryEXT"); + vkCopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT)load(context, "vkCopyMemoryToImageEXT"); + vkTransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT)load(context, "vkTransitionImageLayoutEXT"); +#endif /* defined(VK_EXT_host_image_copy) */ +#if defined(VK_EXT_host_query_reset) + vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)load(context, "vkResetQueryPoolEXT"); +#endif /* defined(VK_EXT_host_query_reset) */ +#if defined(VK_EXT_image_drm_format_modifier) + vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)load(context, "vkGetImageDrmFormatModifierPropertiesEXT"); +#endif /* defined(VK_EXT_image_drm_format_modifier) */ +#if defined(VK_EXT_line_rasterization) + vkCmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)load(context, "vkCmdSetLineStippleEXT"); +#endif /* defined(VK_EXT_line_rasterization) */ +#if defined(VK_EXT_mesh_shader) + vkCmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)load(context, "vkCmdDrawMeshTasksEXT"); + vkCmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)load(context, "vkCmdDrawMeshTasksIndirectCountEXT"); + vkCmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)load(context, "vkCmdDrawMeshTasksIndirectEXT"); +#endif /* defined(VK_EXT_mesh_shader) */ +#if defined(VK_EXT_metal_objects) + vkExportMetalObjectsEXT = (PFN_vkExportMetalObjectsEXT)load(context, "vkExportMetalObjectsEXT"); +#endif /* defined(VK_EXT_metal_objects) */ +#if defined(VK_EXT_multi_draw) + vkCmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)load(context, "vkCmdDrawMultiEXT"); + vkCmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)load(context, "vkCmdDrawMultiIndexedEXT"); +#endif /* defined(VK_EXT_multi_draw) */ +#if defined(VK_EXT_opacity_micromap) + vkBuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)load(context, "vkBuildMicromapsEXT"); + vkCmdBuildMicromapsEXT = (PFN_vkCmdBuildMicromapsEXT)load(context, "vkCmdBuildMicromapsEXT"); + vkCmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)load(context, "vkCmdCopyMemoryToMicromapEXT"); + vkCmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)load(context, "vkCmdCopyMicromapEXT"); + vkCmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)load(context, "vkCmdCopyMicromapToMemoryEXT"); + vkCmdWriteMicromapsPropertiesEXT = (PFN_vkCmdWriteMicromapsPropertiesEXT)load(context, "vkCmdWriteMicromapsPropertiesEXT"); + vkCopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)load(context, "vkCopyMemoryToMicromapEXT"); + vkCopyMicromapEXT = (PFN_vkCopyMicromapEXT)load(context, "vkCopyMicromapEXT"); + vkCopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)load(context, "vkCopyMicromapToMemoryEXT"); + vkCreateMicromapEXT = (PFN_vkCreateMicromapEXT)load(context, "vkCreateMicromapEXT"); + vkDestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)load(context, "vkDestroyMicromapEXT"); + vkGetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)load(context, "vkGetDeviceMicromapCompatibilityEXT"); + vkGetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)load(context, "vkGetMicromapBuildSizesEXT"); + vkWriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)load(context, "vkWriteMicromapsPropertiesEXT"); +#endif /* defined(VK_EXT_opacity_micromap) */ +#if defined(VK_EXT_pageable_device_local_memory) + vkSetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)load(context, "vkSetDeviceMemoryPriorityEXT"); +#endif /* defined(VK_EXT_pageable_device_local_memory) */ +#if defined(VK_EXT_pipeline_properties) + vkGetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)load(context, "vkGetPipelinePropertiesEXT"); +#endif /* defined(VK_EXT_pipeline_properties) */ +#if defined(VK_EXT_private_data) + vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)load(context, "vkCreatePrivateDataSlotEXT"); + vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)load(context, "vkDestroyPrivateDataSlotEXT"); + vkGetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)load(context, "vkGetPrivateDataEXT"); + vkSetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)load(context, "vkSetPrivateDataEXT"); +#endif /* defined(VK_EXT_private_data) */ +#if defined(VK_EXT_sample_locations) + vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)load(context, "vkCmdSetSampleLocationsEXT"); +#endif /* defined(VK_EXT_sample_locations) */ +#if defined(VK_EXT_shader_module_identifier) + vkGetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)load(context, "vkGetShaderModuleCreateInfoIdentifierEXT"); + vkGetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)load(context, "vkGetShaderModuleIdentifierEXT"); +#endif /* defined(VK_EXT_shader_module_identifier) */ +#if defined(VK_EXT_shader_object) + vkCmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)load(context, "vkCmdBindShadersEXT"); + vkCreateShadersEXT = (PFN_vkCreateShadersEXT)load(context, "vkCreateShadersEXT"); + vkDestroyShaderEXT = (PFN_vkDestroyShaderEXT)load(context, "vkDestroyShaderEXT"); + vkGetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)load(context, "vkGetShaderBinaryDataEXT"); +#endif /* defined(VK_EXT_shader_object) */ +#if defined(VK_EXT_swapchain_maintenance1) + vkReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)load(context, "vkReleaseSwapchainImagesEXT"); +#endif /* defined(VK_EXT_swapchain_maintenance1) */ +#if defined(VK_EXT_transform_feedback) + vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)load(context, "vkCmdBeginQueryIndexedEXT"); + vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)load(context, "vkCmdBeginTransformFeedbackEXT"); + vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)load(context, "vkCmdBindTransformFeedbackBuffersEXT"); + vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)load(context, "vkCmdDrawIndirectByteCountEXT"); + vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)load(context, "vkCmdEndQueryIndexedEXT"); + vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)load(context, "vkCmdEndTransformFeedbackEXT"); +#endif /* defined(VK_EXT_transform_feedback) */ +#if defined(VK_EXT_validation_cache) + vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)load(context, "vkCreateValidationCacheEXT"); + vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)load(context, "vkDestroyValidationCacheEXT"); + vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)load(context, "vkGetValidationCacheDataEXT"); + vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)load(context, "vkMergeValidationCachesEXT"); +#endif /* defined(VK_EXT_validation_cache) */ +#if defined(VK_FUCHSIA_buffer_collection) + vkCreateBufferCollectionFUCHSIA = (PFN_vkCreateBufferCollectionFUCHSIA)load(context, "vkCreateBufferCollectionFUCHSIA"); + vkDestroyBufferCollectionFUCHSIA = (PFN_vkDestroyBufferCollectionFUCHSIA)load(context, "vkDestroyBufferCollectionFUCHSIA"); + vkGetBufferCollectionPropertiesFUCHSIA = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)load(context, "vkGetBufferCollectionPropertiesFUCHSIA"); + vkSetBufferCollectionBufferConstraintsFUCHSIA = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)load(context, "vkSetBufferCollectionBufferConstraintsFUCHSIA"); + vkSetBufferCollectionImageConstraintsFUCHSIA = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)load(context, "vkSetBufferCollectionImageConstraintsFUCHSIA"); +#endif /* defined(VK_FUCHSIA_buffer_collection) */ +#if defined(VK_FUCHSIA_external_memory) + vkGetMemoryZirconHandleFUCHSIA = (PFN_vkGetMemoryZirconHandleFUCHSIA)load(context, "vkGetMemoryZirconHandleFUCHSIA"); + vkGetMemoryZirconHandlePropertiesFUCHSIA = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)load(context, "vkGetMemoryZirconHandlePropertiesFUCHSIA"); +#endif /* defined(VK_FUCHSIA_external_memory) */ +#if defined(VK_FUCHSIA_external_semaphore) + vkGetSemaphoreZirconHandleFUCHSIA = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)load(context, "vkGetSemaphoreZirconHandleFUCHSIA"); + vkImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)load(context, "vkImportSemaphoreZirconHandleFUCHSIA"); +#endif /* defined(VK_FUCHSIA_external_semaphore) */ +#if defined(VK_GOOGLE_display_timing) + vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)load(context, "vkGetPastPresentationTimingGOOGLE"); + vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)load(context, "vkGetRefreshCycleDurationGOOGLE"); +#endif /* defined(VK_GOOGLE_display_timing) */ +#if defined(VK_HUAWEI_cluster_culling_shader) + vkCmdDrawClusterHUAWEI = (PFN_vkCmdDrawClusterHUAWEI)load(context, "vkCmdDrawClusterHUAWEI"); + vkCmdDrawClusterIndirectHUAWEI = (PFN_vkCmdDrawClusterIndirectHUAWEI)load(context, "vkCmdDrawClusterIndirectHUAWEI"); +#endif /* defined(VK_HUAWEI_cluster_culling_shader) */ +#if defined(VK_HUAWEI_invocation_mask) + vkCmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)load(context, "vkCmdBindInvocationMaskHUAWEI"); +#endif /* defined(VK_HUAWEI_invocation_mask) */ +#if defined(VK_HUAWEI_subpass_shading) + vkCmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)load(context, "vkCmdSubpassShadingHUAWEI"); + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)load(context, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"); +#endif /* defined(VK_HUAWEI_subpass_shading) */ +#if defined(VK_INTEL_performance_query) + vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)load(context, "vkAcquirePerformanceConfigurationINTEL"); + vkCmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)load(context, "vkCmdSetPerformanceMarkerINTEL"); + vkCmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)load(context, "vkCmdSetPerformanceOverrideINTEL"); + vkCmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)load(context, "vkCmdSetPerformanceStreamMarkerINTEL"); + vkGetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)load(context, "vkGetPerformanceParameterINTEL"); + vkInitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)load(context, "vkInitializePerformanceApiINTEL"); + vkQueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)load(context, "vkQueueSetPerformanceConfigurationINTEL"); + vkReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)load(context, "vkReleasePerformanceConfigurationINTEL"); + vkUninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)load(context, "vkUninitializePerformanceApiINTEL"); +#endif /* defined(VK_INTEL_performance_query) */ +#if defined(VK_KHR_acceleration_structure) + vkBuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)load(context, "vkBuildAccelerationStructuresKHR"); + vkCmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)load(context, "vkCmdBuildAccelerationStructuresIndirectKHR"); + vkCmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)load(context, "vkCmdBuildAccelerationStructuresKHR"); + vkCmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)load(context, "vkCmdCopyAccelerationStructureKHR"); + vkCmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)load(context, "vkCmdCopyAccelerationStructureToMemoryKHR"); + vkCmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)load(context, "vkCmdCopyMemoryToAccelerationStructureKHR"); + vkCmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)load(context, "vkCmdWriteAccelerationStructuresPropertiesKHR"); + vkCopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)load(context, "vkCopyAccelerationStructureKHR"); + vkCopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)load(context, "vkCopyAccelerationStructureToMemoryKHR"); + vkCopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)load(context, "vkCopyMemoryToAccelerationStructureKHR"); + vkCreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)load(context, "vkCreateAccelerationStructureKHR"); + vkDestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)load(context, "vkDestroyAccelerationStructureKHR"); + vkGetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)load(context, "vkGetAccelerationStructureBuildSizesKHR"); + vkGetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)load(context, "vkGetAccelerationStructureDeviceAddressKHR"); + vkGetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)load(context, "vkGetDeviceAccelerationStructureCompatibilityKHR"); + vkWriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)load(context, "vkWriteAccelerationStructuresPropertiesKHR"); +#endif /* defined(VK_KHR_acceleration_structure) */ +#if defined(VK_KHR_bind_memory2) + vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)load(context, "vkBindBufferMemory2KHR"); + vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)load(context, "vkBindImageMemory2KHR"); +#endif /* defined(VK_KHR_bind_memory2) */ +#if defined(VK_KHR_buffer_device_address) + vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)load(context, "vkGetBufferDeviceAddressKHR"); + vkGetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)load(context, "vkGetBufferOpaqueCaptureAddressKHR"); + vkGetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)load(context, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"); +#endif /* defined(VK_KHR_buffer_device_address) */ +#if defined(VK_KHR_copy_commands2) + vkCmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)load(context, "vkCmdBlitImage2KHR"); + vkCmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)load(context, "vkCmdCopyBuffer2KHR"); + vkCmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)load(context, "vkCmdCopyBufferToImage2KHR"); + vkCmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)load(context, "vkCmdCopyImage2KHR"); + vkCmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)load(context, "vkCmdCopyImageToBuffer2KHR"); + vkCmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)load(context, "vkCmdResolveImage2KHR"); +#endif /* defined(VK_KHR_copy_commands2) */ +#if defined(VK_KHR_create_renderpass2) + vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)load(context, "vkCmdBeginRenderPass2KHR"); + vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)load(context, "vkCmdEndRenderPass2KHR"); + vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)load(context, "vkCmdNextSubpass2KHR"); + vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)load(context, "vkCreateRenderPass2KHR"); +#endif /* defined(VK_KHR_create_renderpass2) */ +#if defined(VK_KHR_deferred_host_operations) + vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)load(context, "vkCreateDeferredOperationKHR"); + vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)load(context, "vkDeferredOperationJoinKHR"); + vkDestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)load(context, "vkDestroyDeferredOperationKHR"); + vkGetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)load(context, "vkGetDeferredOperationMaxConcurrencyKHR"); + vkGetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)load(context, "vkGetDeferredOperationResultKHR"); +#endif /* defined(VK_KHR_deferred_host_operations) */ +#if defined(VK_KHR_descriptor_update_template) + vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)load(context, "vkCreateDescriptorUpdateTemplateKHR"); + vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)load(context, "vkDestroyDescriptorUpdateTemplateKHR"); + vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)load(context, "vkUpdateDescriptorSetWithTemplateKHR"); +#endif /* defined(VK_KHR_descriptor_update_template) */ +#if defined(VK_KHR_device_group) + vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)load(context, "vkCmdDispatchBaseKHR"); + vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)load(context, "vkCmdSetDeviceMaskKHR"); + vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)load(context, "vkGetDeviceGroupPeerMemoryFeaturesKHR"); +#endif /* defined(VK_KHR_device_group) */ +#if defined(VK_KHR_display_swapchain) + vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)load(context, "vkCreateSharedSwapchainsKHR"); +#endif /* defined(VK_KHR_display_swapchain) */ +#if defined(VK_KHR_draw_indirect_count) + vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)load(context, "vkCmdDrawIndexedIndirectCountKHR"); + vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)load(context, "vkCmdDrawIndirectCountKHR"); +#endif /* defined(VK_KHR_draw_indirect_count) */ +#if defined(VK_KHR_dynamic_rendering) + vkCmdBeginRenderingKHR = (PFN_vkCmdBeginRenderingKHR)load(context, "vkCmdBeginRenderingKHR"); + vkCmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)load(context, "vkCmdEndRenderingKHR"); +#endif /* defined(VK_KHR_dynamic_rendering) */ +#if defined(VK_KHR_external_fence_fd) + vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)load(context, "vkGetFenceFdKHR"); + vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)load(context, "vkImportFenceFdKHR"); +#endif /* defined(VK_KHR_external_fence_fd) */ +#if defined(VK_KHR_external_fence_win32) + vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)load(context, "vkGetFenceWin32HandleKHR"); + vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)load(context, "vkImportFenceWin32HandleKHR"); +#endif /* defined(VK_KHR_external_fence_win32) */ +#if defined(VK_KHR_external_memory_fd) + vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)load(context, "vkGetMemoryFdKHR"); + vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)load(context, "vkGetMemoryFdPropertiesKHR"); +#endif /* defined(VK_KHR_external_memory_fd) */ +#if defined(VK_KHR_external_memory_win32) + vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)load(context, "vkGetMemoryWin32HandleKHR"); + vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)load(context, "vkGetMemoryWin32HandlePropertiesKHR"); +#endif /* defined(VK_KHR_external_memory_win32) */ +#if defined(VK_KHR_external_semaphore_fd) + vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)load(context, "vkGetSemaphoreFdKHR"); + vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)load(context, "vkImportSemaphoreFdKHR"); +#endif /* defined(VK_KHR_external_semaphore_fd) */ +#if defined(VK_KHR_external_semaphore_win32) + vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)load(context, "vkGetSemaphoreWin32HandleKHR"); + vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)load(context, "vkImportSemaphoreWin32HandleKHR"); +#endif /* defined(VK_KHR_external_semaphore_win32) */ +#if defined(VK_KHR_fragment_shading_rate) + vkCmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)load(context, "vkCmdSetFragmentShadingRateKHR"); +#endif /* defined(VK_KHR_fragment_shading_rate) */ +#if defined(VK_KHR_get_memory_requirements2) + vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)load(context, "vkGetBufferMemoryRequirements2KHR"); + vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)load(context, "vkGetImageMemoryRequirements2KHR"); + vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)load(context, "vkGetImageSparseMemoryRequirements2KHR"); +#endif /* defined(VK_KHR_get_memory_requirements2) */ +#if defined(VK_KHR_maintenance1) + vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)load(context, "vkTrimCommandPoolKHR"); +#endif /* defined(VK_KHR_maintenance1) */ +#if defined(VK_KHR_maintenance3) + vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)load(context, "vkGetDescriptorSetLayoutSupportKHR"); +#endif /* defined(VK_KHR_maintenance3) */ +#if defined(VK_KHR_maintenance4) + vkGetDeviceBufferMemoryRequirementsKHR = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)load(context, "vkGetDeviceBufferMemoryRequirementsKHR"); + vkGetDeviceImageMemoryRequirementsKHR = (PFN_vkGetDeviceImageMemoryRequirementsKHR)load(context, "vkGetDeviceImageMemoryRequirementsKHR"); + vkGetDeviceImageSparseMemoryRequirementsKHR = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)load(context, "vkGetDeviceImageSparseMemoryRequirementsKHR"); +#endif /* defined(VK_KHR_maintenance4) */ +#if defined(VK_KHR_maintenance5) + vkCmdBindIndexBuffer2KHR = (PFN_vkCmdBindIndexBuffer2KHR)load(context, "vkCmdBindIndexBuffer2KHR"); + vkGetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)load(context, "vkGetDeviceImageSubresourceLayoutKHR"); + vkGetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)load(context, "vkGetImageSubresourceLayout2KHR"); + vkGetRenderingAreaGranularityKHR = (PFN_vkGetRenderingAreaGranularityKHR)load(context, "vkGetRenderingAreaGranularityKHR"); +#endif /* defined(VK_KHR_maintenance5) */ +#if defined(VK_KHR_map_memory2) + vkMapMemory2KHR = (PFN_vkMapMemory2KHR)load(context, "vkMapMemory2KHR"); + vkUnmapMemory2KHR = (PFN_vkUnmapMemory2KHR)load(context, "vkUnmapMemory2KHR"); +#endif /* defined(VK_KHR_map_memory2) */ +#if defined(VK_KHR_performance_query) + vkAcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)load(context, "vkAcquireProfilingLockKHR"); + vkReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)load(context, "vkReleaseProfilingLockKHR"); +#endif /* defined(VK_KHR_performance_query) */ +#if defined(VK_KHR_pipeline_executable_properties) + vkGetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)load(context, "vkGetPipelineExecutableInternalRepresentationsKHR"); + vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)load(context, "vkGetPipelineExecutablePropertiesKHR"); + vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)load(context, "vkGetPipelineExecutableStatisticsKHR"); +#endif /* defined(VK_KHR_pipeline_executable_properties) */ +#if defined(VK_KHR_present_wait) + vkWaitForPresentKHR = (PFN_vkWaitForPresentKHR)load(context, "vkWaitForPresentKHR"); +#endif /* defined(VK_KHR_present_wait) */ +#if defined(VK_KHR_push_descriptor) + vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR"); +#endif /* defined(VK_KHR_push_descriptor) */ +#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) + vkCmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)load(context, "vkCmdTraceRaysIndirect2KHR"); +#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ +#if defined(VK_KHR_ray_tracing_pipeline) + vkCmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)load(context, "vkCmdSetRayTracingPipelineStackSizeKHR"); + vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)load(context, "vkCmdTraceRaysIndirectKHR"); + vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)load(context, "vkCmdTraceRaysKHR"); + vkCreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)load(context, "vkCreateRayTracingPipelinesKHR"); + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)load(context, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"); + vkGetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)load(context, "vkGetRayTracingShaderGroupHandlesKHR"); + vkGetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)load(context, "vkGetRayTracingShaderGroupStackSizeKHR"); +#endif /* defined(VK_KHR_ray_tracing_pipeline) */ +#if defined(VK_KHR_sampler_ycbcr_conversion) + vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)load(context, "vkCreateSamplerYcbcrConversionKHR"); + vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)load(context, "vkDestroySamplerYcbcrConversionKHR"); +#endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ +#if defined(VK_KHR_shared_presentable_image) + vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)load(context, "vkGetSwapchainStatusKHR"); +#endif /* defined(VK_KHR_shared_presentable_image) */ +#if defined(VK_KHR_swapchain) + vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)load(context, "vkAcquireNextImageKHR"); + vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)load(context, "vkCreateSwapchainKHR"); + vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)load(context, "vkDestroySwapchainKHR"); + vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)load(context, "vkGetSwapchainImagesKHR"); + vkQueuePresentKHR = (PFN_vkQueuePresentKHR)load(context, "vkQueuePresentKHR"); +#endif /* defined(VK_KHR_swapchain) */ +#if defined(VK_KHR_synchronization2) + vkCmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)load(context, "vkCmdPipelineBarrier2KHR"); + vkCmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)load(context, "vkCmdResetEvent2KHR"); + vkCmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)load(context, "vkCmdSetEvent2KHR"); + vkCmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)load(context, "vkCmdWaitEvents2KHR"); + vkCmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)load(context, "vkCmdWriteTimestamp2KHR"); + vkQueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)load(context, "vkQueueSubmit2KHR"); +#endif /* defined(VK_KHR_synchronization2) */ +#if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) + vkCmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)load(context, "vkCmdWriteBufferMarker2AMD"); +#endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */ +#if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) + vkGetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)load(context, "vkGetQueueCheckpointData2NV"); +#endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */ +#if defined(VK_KHR_timeline_semaphore) + vkGetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)load(context, "vkGetSemaphoreCounterValueKHR"); + vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)load(context, "vkSignalSemaphoreKHR"); + vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)load(context, "vkWaitSemaphoresKHR"); +#endif /* defined(VK_KHR_timeline_semaphore) */ +#if defined(VK_KHR_video_decode_queue) + vkCmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)load(context, "vkCmdDecodeVideoKHR"); +#endif /* defined(VK_KHR_video_decode_queue) */ +#if defined(VK_KHR_video_encode_queue) + vkCmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)load(context, "vkCmdEncodeVideoKHR"); + vkGetEncodedVideoSessionParametersKHR = (PFN_vkGetEncodedVideoSessionParametersKHR)load(context, "vkGetEncodedVideoSessionParametersKHR"); +#endif /* defined(VK_KHR_video_encode_queue) */ +#if defined(VK_KHR_video_queue) + vkBindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)load(context, "vkBindVideoSessionMemoryKHR"); + vkCmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)load(context, "vkCmdBeginVideoCodingKHR"); + vkCmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)load(context, "vkCmdControlVideoCodingKHR"); + vkCmdEndVideoCodingKHR = (PFN_vkCmdEndVideoCodingKHR)load(context, "vkCmdEndVideoCodingKHR"); + vkCreateVideoSessionKHR = (PFN_vkCreateVideoSessionKHR)load(context, "vkCreateVideoSessionKHR"); + vkCreateVideoSessionParametersKHR = (PFN_vkCreateVideoSessionParametersKHR)load(context, "vkCreateVideoSessionParametersKHR"); + vkDestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)load(context, "vkDestroyVideoSessionKHR"); + vkDestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)load(context, "vkDestroyVideoSessionParametersKHR"); + vkGetVideoSessionMemoryRequirementsKHR = (PFN_vkGetVideoSessionMemoryRequirementsKHR)load(context, "vkGetVideoSessionMemoryRequirementsKHR"); + vkUpdateVideoSessionParametersKHR = (PFN_vkUpdateVideoSessionParametersKHR)load(context, "vkUpdateVideoSessionParametersKHR"); +#endif /* defined(VK_KHR_video_queue) */ +#if defined(VK_NVX_binary_import) + vkCmdCuLaunchKernelNVX = (PFN_vkCmdCuLaunchKernelNVX)load(context, "vkCmdCuLaunchKernelNVX"); + vkCreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)load(context, "vkCreateCuFunctionNVX"); + vkCreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)load(context, "vkCreateCuModuleNVX"); + vkDestroyCuFunctionNVX = (PFN_vkDestroyCuFunctionNVX)load(context, "vkDestroyCuFunctionNVX"); + vkDestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)load(context, "vkDestroyCuModuleNVX"); +#endif /* defined(VK_NVX_binary_import) */ +#if defined(VK_NVX_image_view_handle) + vkGetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)load(context, "vkGetImageViewAddressNVX"); + vkGetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)load(context, "vkGetImageViewHandleNVX"); +#endif /* defined(VK_NVX_image_view_handle) */ +#if defined(VK_NV_clip_space_w_scaling) + vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)load(context, "vkCmdSetViewportWScalingNV"); +#endif /* defined(VK_NV_clip_space_w_scaling) */ +#if defined(VK_NV_copy_memory_indirect) + vkCmdCopyMemoryIndirectNV = (PFN_vkCmdCopyMemoryIndirectNV)load(context, "vkCmdCopyMemoryIndirectNV"); + vkCmdCopyMemoryToImageIndirectNV = (PFN_vkCmdCopyMemoryToImageIndirectNV)load(context, "vkCmdCopyMemoryToImageIndirectNV"); +#endif /* defined(VK_NV_copy_memory_indirect) */ +#if defined(VK_NV_cuda_kernel_launch) + vkCmdCudaLaunchKernelNV = (PFN_vkCmdCudaLaunchKernelNV)load(context, "vkCmdCudaLaunchKernelNV"); + vkCreateCudaFunctionNV = (PFN_vkCreateCudaFunctionNV)load(context, "vkCreateCudaFunctionNV"); + vkCreateCudaModuleNV = (PFN_vkCreateCudaModuleNV)load(context, "vkCreateCudaModuleNV"); + vkDestroyCudaFunctionNV = (PFN_vkDestroyCudaFunctionNV)load(context, "vkDestroyCudaFunctionNV"); + vkDestroyCudaModuleNV = (PFN_vkDestroyCudaModuleNV)load(context, "vkDestroyCudaModuleNV"); + vkGetCudaModuleCacheNV = (PFN_vkGetCudaModuleCacheNV)load(context, "vkGetCudaModuleCacheNV"); +#endif /* defined(VK_NV_cuda_kernel_launch) */ +#if defined(VK_NV_device_diagnostic_checkpoints) + vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)load(context, "vkCmdSetCheckpointNV"); + vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)load(context, "vkGetQueueCheckpointDataNV"); +#endif /* defined(VK_NV_device_diagnostic_checkpoints) */ +#if defined(VK_NV_device_generated_commands) + vkCmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)load(context, "vkCmdBindPipelineShaderGroupNV"); + vkCmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)load(context, "vkCmdExecuteGeneratedCommandsNV"); + vkCmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)load(context, "vkCmdPreprocessGeneratedCommandsNV"); + vkCreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)load(context, "vkCreateIndirectCommandsLayoutNV"); + vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)load(context, "vkDestroyIndirectCommandsLayoutNV"); + vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)load(context, "vkGetGeneratedCommandsMemoryRequirementsNV"); +#endif /* defined(VK_NV_device_generated_commands) */ +#if defined(VK_NV_device_generated_commands_compute) + vkCmdUpdatePipelineIndirectBufferNV = (PFN_vkCmdUpdatePipelineIndirectBufferNV)load(context, "vkCmdUpdatePipelineIndirectBufferNV"); + vkGetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV)load(context, "vkGetPipelineIndirectDeviceAddressNV"); + vkGetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)load(context, "vkGetPipelineIndirectMemoryRequirementsNV"); +#endif /* defined(VK_NV_device_generated_commands_compute) */ +#if defined(VK_NV_external_memory_rdma) + vkGetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)load(context, "vkGetMemoryRemoteAddressNV"); +#endif /* defined(VK_NV_external_memory_rdma) */ +#if defined(VK_NV_external_memory_win32) + vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)load(context, "vkGetMemoryWin32HandleNV"); +#endif /* defined(VK_NV_external_memory_win32) */ +#if defined(VK_NV_fragment_shading_rate_enums) + vkCmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)load(context, "vkCmdSetFragmentShadingRateEnumNV"); +#endif /* defined(VK_NV_fragment_shading_rate_enums) */ +#if defined(VK_NV_low_latency2) + vkGetLatencyTimingsNV = (PFN_vkGetLatencyTimingsNV)load(context, "vkGetLatencyTimingsNV"); + vkLatencySleepNV = (PFN_vkLatencySleepNV)load(context, "vkLatencySleepNV"); + vkQueueNotifyOutOfBandNV = (PFN_vkQueueNotifyOutOfBandNV)load(context, "vkQueueNotifyOutOfBandNV"); + vkSetLatencyMarkerNV = (PFN_vkSetLatencyMarkerNV)load(context, "vkSetLatencyMarkerNV"); + vkSetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)load(context, "vkSetLatencySleepModeNV"); +#endif /* defined(VK_NV_low_latency2) */ +#if defined(VK_NV_memory_decompression) + vkCmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)load(context, "vkCmdDecompressMemoryIndirectCountNV"); + vkCmdDecompressMemoryNV = (PFN_vkCmdDecompressMemoryNV)load(context, "vkCmdDecompressMemoryNV"); +#endif /* defined(VK_NV_memory_decompression) */ +#if defined(VK_NV_mesh_shader) + vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)load(context, "vkCmdDrawMeshTasksIndirectCountNV"); + vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)load(context, "vkCmdDrawMeshTasksIndirectNV"); + vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)load(context, "vkCmdDrawMeshTasksNV"); +#endif /* defined(VK_NV_mesh_shader) */ +#if defined(VK_NV_optical_flow) + vkBindOpticalFlowSessionImageNV = (PFN_vkBindOpticalFlowSessionImageNV)load(context, "vkBindOpticalFlowSessionImageNV"); + vkCmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)load(context, "vkCmdOpticalFlowExecuteNV"); + vkCreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)load(context, "vkCreateOpticalFlowSessionNV"); + vkDestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)load(context, "vkDestroyOpticalFlowSessionNV"); +#endif /* defined(VK_NV_optical_flow) */ +#if defined(VK_NV_ray_tracing) + vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)load(context, "vkBindAccelerationStructureMemoryNV"); + vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)load(context, "vkCmdBuildAccelerationStructureNV"); + vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)load(context, "vkCmdCopyAccelerationStructureNV"); + vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)load(context, "vkCmdTraceRaysNV"); + vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)load(context, "vkCmdWriteAccelerationStructuresPropertiesNV"); + vkCompileDeferredNV = (PFN_vkCompileDeferredNV)load(context, "vkCompileDeferredNV"); + vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)load(context, "vkCreateAccelerationStructureNV"); + vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)load(context, "vkCreateRayTracingPipelinesNV"); + vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)load(context, "vkDestroyAccelerationStructureNV"); + vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)load(context, "vkGetAccelerationStructureHandleNV"); + vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)load(context, "vkGetAccelerationStructureMemoryRequirementsNV"); + vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)load(context, "vkGetRayTracingShaderGroupHandlesNV"); +#endif /* defined(VK_NV_ray_tracing) */ +#if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 + vkCmdSetExclusiveScissorEnableNV = (PFN_vkCmdSetExclusiveScissorEnableNV)load(context, "vkCmdSetExclusiveScissorEnableNV"); +#endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ +#if defined(VK_NV_scissor_exclusive) + vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)load(context, "vkCmdSetExclusiveScissorNV"); +#endif /* defined(VK_NV_scissor_exclusive) */ +#if defined(VK_NV_shading_rate_image) + vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)load(context, "vkCmdBindShadingRateImageNV"); + vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV"); + vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV"); +#endif /* defined(VK_NV_shading_rate_image) */ +#if defined(VK_QCOM_tile_properties) + vkGetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)load(context, "vkGetDynamicRenderingTilePropertiesQCOM"); + vkGetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)load(context, "vkGetFramebufferTilePropertiesQCOM"); +#endif /* defined(VK_QCOM_tile_properties) */ +#if defined(VK_QNX_external_memory_screen_buffer) + vkGetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)load(context, "vkGetScreenBufferPropertiesQNX"); +#endif /* defined(VK_QNX_external_memory_screen_buffer) */ +#if defined(VK_VALVE_descriptor_set_host_mapping) + vkGetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)load(context, "vkGetDescriptorSetHostMappingVALVE"); + vkGetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)load(context, "vkGetDescriptorSetLayoutHostMappingInfoVALVE"); +#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ +#if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) + vkCmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)load(context, "vkCmdBindVertexBuffers2EXT"); + vkCmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)load(context, "vkCmdSetCullModeEXT"); + vkCmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)load(context, "vkCmdSetDepthBoundsTestEnableEXT"); + vkCmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)load(context, "vkCmdSetDepthCompareOpEXT"); + vkCmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)load(context, "vkCmdSetDepthTestEnableEXT"); + vkCmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)load(context, "vkCmdSetDepthWriteEnableEXT"); + vkCmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)load(context, "vkCmdSetFrontFaceEXT"); + vkCmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)load(context, "vkCmdSetPrimitiveTopologyEXT"); + vkCmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)load(context, "vkCmdSetScissorWithCountEXT"); + vkCmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)load(context, "vkCmdSetStencilOpEXT"); + vkCmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)load(context, "vkCmdSetStencilTestEnableEXT"); + vkCmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)load(context, "vkCmdSetViewportWithCountEXT"); +#endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) + vkCmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)load(context, "vkCmdSetDepthBiasEnableEXT"); + vkCmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)load(context, "vkCmdSetLogicOpEXT"); + vkCmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)load(context, "vkCmdSetPatchControlPointsEXT"); + vkCmdSetPrimitiveRestartEnableEXT = (PFN_vkCmdSetPrimitiveRestartEnableEXT)load(context, "vkCmdSetPrimitiveRestartEnableEXT"); + vkCmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)load(context, "vkCmdSetRasterizerDiscardEnableEXT"); +#endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) + vkCmdSetAlphaToCoverageEnableEXT = (PFN_vkCmdSetAlphaToCoverageEnableEXT)load(context, "vkCmdSetAlphaToCoverageEnableEXT"); + vkCmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)load(context, "vkCmdSetAlphaToOneEnableEXT"); + vkCmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)load(context, "vkCmdSetColorBlendAdvancedEXT"); + vkCmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)load(context, "vkCmdSetColorBlendEnableEXT"); + vkCmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)load(context, "vkCmdSetColorBlendEquationEXT"); + vkCmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)load(context, "vkCmdSetColorWriteMaskEXT"); + vkCmdSetConservativeRasterizationModeEXT = (PFN_vkCmdSetConservativeRasterizationModeEXT)load(context, "vkCmdSetConservativeRasterizationModeEXT"); + vkCmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)load(context, "vkCmdSetDepthClampEnableEXT"); + vkCmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)load(context, "vkCmdSetDepthClipEnableEXT"); + vkCmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)load(context, "vkCmdSetDepthClipNegativeOneToOneEXT"); + vkCmdSetExtraPrimitiveOverestimationSizeEXT = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)load(context, "vkCmdSetExtraPrimitiveOverestimationSizeEXT"); + vkCmdSetLineRasterizationModeEXT = (PFN_vkCmdSetLineRasterizationModeEXT)load(context, "vkCmdSetLineRasterizationModeEXT"); + vkCmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)load(context, "vkCmdSetLineStippleEnableEXT"); + vkCmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)load(context, "vkCmdSetLogicOpEnableEXT"); + vkCmdSetPolygonModeEXT = (PFN_vkCmdSetPolygonModeEXT)load(context, "vkCmdSetPolygonModeEXT"); + vkCmdSetProvokingVertexModeEXT = (PFN_vkCmdSetProvokingVertexModeEXT)load(context, "vkCmdSetProvokingVertexModeEXT"); + vkCmdSetRasterizationSamplesEXT = (PFN_vkCmdSetRasterizationSamplesEXT)load(context, "vkCmdSetRasterizationSamplesEXT"); + vkCmdSetRasterizationStreamEXT = (PFN_vkCmdSetRasterizationStreamEXT)load(context, "vkCmdSetRasterizationStreamEXT"); + vkCmdSetSampleLocationsEnableEXT = (PFN_vkCmdSetSampleLocationsEnableEXT)load(context, "vkCmdSetSampleLocationsEnableEXT"); + vkCmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)load(context, "vkCmdSetSampleMaskEXT"); + vkCmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)load(context, "vkCmdSetTessellationDomainOriginEXT"); +#endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) + vkCmdSetViewportWScalingEnableNV = (PFN_vkCmdSetViewportWScalingEnableNV)load(context, "vkCmdSetViewportWScalingEnableNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) + vkCmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)load(context, "vkCmdSetViewportSwizzleNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) + vkCmdSetCoverageToColorEnableNV = (PFN_vkCmdSetCoverageToColorEnableNV)load(context, "vkCmdSetCoverageToColorEnableNV"); + vkCmdSetCoverageToColorLocationNV = (PFN_vkCmdSetCoverageToColorLocationNV)load(context, "vkCmdSetCoverageToColorLocationNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) + vkCmdSetCoverageModulationModeNV = (PFN_vkCmdSetCoverageModulationModeNV)load(context, "vkCmdSetCoverageModulationModeNV"); + vkCmdSetCoverageModulationTableEnableNV = (PFN_vkCmdSetCoverageModulationTableEnableNV)load(context, "vkCmdSetCoverageModulationTableEnableNV"); + vkCmdSetCoverageModulationTableNV = (PFN_vkCmdSetCoverageModulationTableNV)load(context, "vkCmdSetCoverageModulationTableNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) + vkCmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)load(context, "vkCmdSetShadingRateImageEnableNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) + vkCmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)load(context, "vkCmdSetRepresentativeFragmentTestEnableNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) + vkCmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)load(context, "vkCmdSetCoverageReductionModeNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ +#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) + vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)load(context, "vkGetDeviceGroupSurfacePresentModes2EXT"); +#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ +#if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) + vkGetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)load(context, "vkGetImageSubresourceLayout2EXT"); +#endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ +#if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) + vkCmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT)load(context, "vkCmdSetVertexInputEXT"); +#endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ +#if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) + vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)load(context, "vkCmdPushDescriptorSetWithTemplateKHR"); +#endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) + vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)load(context, "vkGetDeviceGroupPresentCapabilitiesKHR"); + vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)load(context, "vkGetDeviceGroupSurfacePresentModesKHR"); +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) + vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)load(context, "vkAcquireNextImage2KHR"); +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ + /* VOLK_GENERATE_LOAD_DEVICE */ +} + +static void volkGenLoadDeviceTable(struct VolkDeviceTable* table, void* context, PFN_vkVoidFunction (*load)(void*, const char*)) +{ + /* VOLK_GENERATE_LOAD_DEVICE_TABLE */ +#if defined(VK_VERSION_1_0) + table->vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)load(context, "vkAllocateCommandBuffers"); + table->vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)load(context, "vkAllocateDescriptorSets"); + table->vkAllocateMemory = (PFN_vkAllocateMemory)load(context, "vkAllocateMemory"); + table->vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer)load(context, "vkBeginCommandBuffer"); + table->vkBindBufferMemory = (PFN_vkBindBufferMemory)load(context, "vkBindBufferMemory"); + table->vkBindImageMemory = (PFN_vkBindImageMemory)load(context, "vkBindImageMemory"); + table->vkCmdBeginQuery = (PFN_vkCmdBeginQuery)load(context, "vkCmdBeginQuery"); + table->vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)load(context, "vkCmdBeginRenderPass"); + table->vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)load(context, "vkCmdBindDescriptorSets"); + table->vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)load(context, "vkCmdBindIndexBuffer"); + table->vkCmdBindPipeline = (PFN_vkCmdBindPipeline)load(context, "vkCmdBindPipeline"); + table->vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)load(context, "vkCmdBindVertexBuffers"); + table->vkCmdBlitImage = (PFN_vkCmdBlitImage)load(context, "vkCmdBlitImage"); + table->vkCmdClearAttachments = (PFN_vkCmdClearAttachments)load(context, "vkCmdClearAttachments"); + table->vkCmdClearColorImage = (PFN_vkCmdClearColorImage)load(context, "vkCmdClearColorImage"); + table->vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)load(context, "vkCmdClearDepthStencilImage"); + table->vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer)load(context, "vkCmdCopyBuffer"); + table->vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)load(context, "vkCmdCopyBufferToImage"); + table->vkCmdCopyImage = (PFN_vkCmdCopyImage)load(context, "vkCmdCopyImage"); + table->vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)load(context, "vkCmdCopyImageToBuffer"); + table->vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)load(context, "vkCmdCopyQueryPoolResults"); + table->vkCmdDispatch = (PFN_vkCmdDispatch)load(context, "vkCmdDispatch"); + table->vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)load(context, "vkCmdDispatchIndirect"); + table->vkCmdDraw = (PFN_vkCmdDraw)load(context, "vkCmdDraw"); + table->vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed)load(context, "vkCmdDrawIndexed"); + table->vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)load(context, "vkCmdDrawIndexedIndirect"); + table->vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect)load(context, "vkCmdDrawIndirect"); + table->vkCmdEndQuery = (PFN_vkCmdEndQuery)load(context, "vkCmdEndQuery"); + table->vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass)load(context, "vkCmdEndRenderPass"); + table->vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands)load(context, "vkCmdExecuteCommands"); + table->vkCmdFillBuffer = (PFN_vkCmdFillBuffer)load(context, "vkCmdFillBuffer"); + table->vkCmdNextSubpass = (PFN_vkCmdNextSubpass)load(context, "vkCmdNextSubpass"); + table->vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)load(context, "vkCmdPipelineBarrier"); + table->vkCmdPushConstants = (PFN_vkCmdPushConstants)load(context, "vkCmdPushConstants"); + table->vkCmdResetEvent = (PFN_vkCmdResetEvent)load(context, "vkCmdResetEvent"); + table->vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool)load(context, "vkCmdResetQueryPool"); + table->vkCmdResolveImage = (PFN_vkCmdResolveImage)load(context, "vkCmdResolveImage"); + table->vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)load(context, "vkCmdSetBlendConstants"); + table->vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias)load(context, "vkCmdSetDepthBias"); + table->vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)load(context, "vkCmdSetDepthBounds"); + table->vkCmdSetEvent = (PFN_vkCmdSetEvent)load(context, "vkCmdSetEvent"); + table->vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth)load(context, "vkCmdSetLineWidth"); + table->vkCmdSetScissor = (PFN_vkCmdSetScissor)load(context, "vkCmdSetScissor"); + table->vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)load(context, "vkCmdSetStencilCompareMask"); + table->vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference)load(context, "vkCmdSetStencilReference"); + table->vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)load(context, "vkCmdSetStencilWriteMask"); + table->vkCmdSetViewport = (PFN_vkCmdSetViewport)load(context, "vkCmdSetViewport"); + table->vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)load(context, "vkCmdUpdateBuffer"); + table->vkCmdWaitEvents = (PFN_vkCmdWaitEvents)load(context, "vkCmdWaitEvents"); + table->vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)load(context, "vkCmdWriteTimestamp"); + table->vkCreateBuffer = (PFN_vkCreateBuffer)load(context, "vkCreateBuffer"); + table->vkCreateBufferView = (PFN_vkCreateBufferView)load(context, "vkCreateBufferView"); + table->vkCreateCommandPool = (PFN_vkCreateCommandPool)load(context, "vkCreateCommandPool"); + table->vkCreateComputePipelines = (PFN_vkCreateComputePipelines)load(context, "vkCreateComputePipelines"); + table->vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool)load(context, "vkCreateDescriptorPool"); + table->vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)load(context, "vkCreateDescriptorSetLayout"); + table->vkCreateEvent = (PFN_vkCreateEvent)load(context, "vkCreateEvent"); + table->vkCreateFence = (PFN_vkCreateFence)load(context, "vkCreateFence"); + table->vkCreateFramebuffer = (PFN_vkCreateFramebuffer)load(context, "vkCreateFramebuffer"); + table->vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)load(context, "vkCreateGraphicsPipelines"); + table->vkCreateImage = (PFN_vkCreateImage)load(context, "vkCreateImage"); + table->vkCreateImageView = (PFN_vkCreateImageView)load(context, "vkCreateImageView"); + table->vkCreatePipelineCache = (PFN_vkCreatePipelineCache)load(context, "vkCreatePipelineCache"); + table->vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout)load(context, "vkCreatePipelineLayout"); + table->vkCreateQueryPool = (PFN_vkCreateQueryPool)load(context, "vkCreateQueryPool"); + table->vkCreateRenderPass = (PFN_vkCreateRenderPass)load(context, "vkCreateRenderPass"); + table->vkCreateSampler = (PFN_vkCreateSampler)load(context, "vkCreateSampler"); + table->vkCreateSemaphore = (PFN_vkCreateSemaphore)load(context, "vkCreateSemaphore"); + table->vkCreateShaderModule = (PFN_vkCreateShaderModule)load(context, "vkCreateShaderModule"); + table->vkDestroyBuffer = (PFN_vkDestroyBuffer)load(context, "vkDestroyBuffer"); + table->vkDestroyBufferView = (PFN_vkDestroyBufferView)load(context, "vkDestroyBufferView"); + table->vkDestroyCommandPool = (PFN_vkDestroyCommandPool)load(context, "vkDestroyCommandPool"); + table->vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)load(context, "vkDestroyDescriptorPool"); + table->vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)load(context, "vkDestroyDescriptorSetLayout"); + table->vkDestroyDevice = (PFN_vkDestroyDevice)load(context, "vkDestroyDevice"); + table->vkDestroyEvent = (PFN_vkDestroyEvent)load(context, "vkDestroyEvent"); + table->vkDestroyFence = (PFN_vkDestroyFence)load(context, "vkDestroyFence"); + table->vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer)load(context, "vkDestroyFramebuffer"); + table->vkDestroyImage = (PFN_vkDestroyImage)load(context, "vkDestroyImage"); + table->vkDestroyImageView = (PFN_vkDestroyImageView)load(context, "vkDestroyImageView"); + table->vkDestroyPipeline = (PFN_vkDestroyPipeline)load(context, "vkDestroyPipeline"); + table->vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache)load(context, "vkDestroyPipelineCache"); + table->vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)load(context, "vkDestroyPipelineLayout"); + table->vkDestroyQueryPool = (PFN_vkDestroyQueryPool)load(context, "vkDestroyQueryPool"); + table->vkDestroyRenderPass = (PFN_vkDestroyRenderPass)load(context, "vkDestroyRenderPass"); + table->vkDestroySampler = (PFN_vkDestroySampler)load(context, "vkDestroySampler"); + table->vkDestroySemaphore = (PFN_vkDestroySemaphore)load(context, "vkDestroySemaphore"); + table->vkDestroyShaderModule = (PFN_vkDestroyShaderModule)load(context, "vkDestroyShaderModule"); + table->vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle)load(context, "vkDeviceWaitIdle"); + table->vkEndCommandBuffer = (PFN_vkEndCommandBuffer)load(context, "vkEndCommandBuffer"); + table->vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)load(context, "vkFlushMappedMemoryRanges"); + table->vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers)load(context, "vkFreeCommandBuffers"); + table->vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets)load(context, "vkFreeDescriptorSets"); + table->vkFreeMemory = (PFN_vkFreeMemory)load(context, "vkFreeMemory"); + table->vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)load(context, "vkGetBufferMemoryRequirements"); + table->vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)load(context, "vkGetDeviceMemoryCommitment"); + table->vkGetDeviceQueue = (PFN_vkGetDeviceQueue)load(context, "vkGetDeviceQueue"); + table->vkGetEventStatus = (PFN_vkGetEventStatus)load(context, "vkGetEventStatus"); + table->vkGetFenceStatus = (PFN_vkGetFenceStatus)load(context, "vkGetFenceStatus"); + table->vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)load(context, "vkGetImageMemoryRequirements"); + table->vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)load(context, "vkGetImageSparseMemoryRequirements"); + table->vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)load(context, "vkGetImageSubresourceLayout"); + table->vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData)load(context, "vkGetPipelineCacheData"); + table->vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults)load(context, "vkGetQueryPoolResults"); + table->vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)load(context, "vkGetRenderAreaGranularity"); + table->vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)load(context, "vkInvalidateMappedMemoryRanges"); + table->vkMapMemory = (PFN_vkMapMemory)load(context, "vkMapMemory"); + table->vkMergePipelineCaches = (PFN_vkMergePipelineCaches)load(context, "vkMergePipelineCaches"); + table->vkQueueBindSparse = (PFN_vkQueueBindSparse)load(context, "vkQueueBindSparse"); + table->vkQueueSubmit = (PFN_vkQueueSubmit)load(context, "vkQueueSubmit"); + table->vkQueueWaitIdle = (PFN_vkQueueWaitIdle)load(context, "vkQueueWaitIdle"); + table->vkResetCommandBuffer = (PFN_vkResetCommandBuffer)load(context, "vkResetCommandBuffer"); + table->vkResetCommandPool = (PFN_vkResetCommandPool)load(context, "vkResetCommandPool"); + table->vkResetDescriptorPool = (PFN_vkResetDescriptorPool)load(context, "vkResetDescriptorPool"); + table->vkResetEvent = (PFN_vkResetEvent)load(context, "vkResetEvent"); + table->vkResetFences = (PFN_vkResetFences)load(context, "vkResetFences"); + table->vkSetEvent = (PFN_vkSetEvent)load(context, "vkSetEvent"); + table->vkUnmapMemory = (PFN_vkUnmapMemory)load(context, "vkUnmapMemory"); + table->vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)load(context, "vkUpdateDescriptorSets"); + table->vkWaitForFences = (PFN_vkWaitForFences)load(context, "vkWaitForFences"); +#endif /* defined(VK_VERSION_1_0) */ +#if defined(VK_VERSION_1_1) + table->vkBindBufferMemory2 = (PFN_vkBindBufferMemory2)load(context, "vkBindBufferMemory2"); + table->vkBindImageMemory2 = (PFN_vkBindImageMemory2)load(context, "vkBindImageMemory2"); + table->vkCmdDispatchBase = (PFN_vkCmdDispatchBase)load(context, "vkCmdDispatchBase"); + table->vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)load(context, "vkCmdSetDeviceMask"); + table->vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)load(context, "vkCreateDescriptorUpdateTemplate"); + table->vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)load(context, "vkCreateSamplerYcbcrConversion"); + table->vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)load(context, "vkDestroyDescriptorUpdateTemplate"); + table->vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)load(context, "vkDestroySamplerYcbcrConversion"); + table->vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)load(context, "vkGetBufferMemoryRequirements2"); + table->vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)load(context, "vkGetDescriptorSetLayoutSupport"); + table->vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)load(context, "vkGetDeviceGroupPeerMemoryFeatures"); + table->vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2)load(context, "vkGetDeviceQueue2"); + table->vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)load(context, "vkGetImageMemoryRequirements2"); + table->vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)load(context, "vkGetImageSparseMemoryRequirements2"); + table->vkTrimCommandPool = (PFN_vkTrimCommandPool)load(context, "vkTrimCommandPool"); + table->vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)load(context, "vkUpdateDescriptorSetWithTemplate"); +#endif /* defined(VK_VERSION_1_1) */ +#if defined(VK_VERSION_1_2) + table->vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)load(context, "vkCmdBeginRenderPass2"); + table->vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)load(context, "vkCmdDrawIndexedIndirectCount"); + table->vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)load(context, "vkCmdDrawIndirectCount"); + table->vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)load(context, "vkCmdEndRenderPass2"); + table->vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2)load(context, "vkCmdNextSubpass2"); + table->vkCreateRenderPass2 = (PFN_vkCreateRenderPass2)load(context, "vkCreateRenderPass2"); + table->vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)load(context, "vkGetBufferDeviceAddress"); + table->vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)load(context, "vkGetBufferOpaqueCaptureAddress"); + table->vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)load(context, "vkGetDeviceMemoryOpaqueCaptureAddress"); + table->vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)load(context, "vkGetSemaphoreCounterValue"); + table->vkResetQueryPool = (PFN_vkResetQueryPool)load(context, "vkResetQueryPool"); + table->vkSignalSemaphore = (PFN_vkSignalSemaphore)load(context, "vkSignalSemaphore"); + table->vkWaitSemaphores = (PFN_vkWaitSemaphores)load(context, "vkWaitSemaphores"); +#endif /* defined(VK_VERSION_1_2) */ +#if defined(VK_VERSION_1_3) + table->vkCmdBeginRendering = (PFN_vkCmdBeginRendering)load(context, "vkCmdBeginRendering"); + table->vkCmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)load(context, "vkCmdBindVertexBuffers2"); + table->vkCmdBlitImage2 = (PFN_vkCmdBlitImage2)load(context, "vkCmdBlitImage2"); + table->vkCmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)load(context, "vkCmdCopyBuffer2"); + table->vkCmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)load(context, "vkCmdCopyBufferToImage2"); + table->vkCmdCopyImage2 = (PFN_vkCmdCopyImage2)load(context, "vkCmdCopyImage2"); + table->vkCmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)load(context, "vkCmdCopyImageToBuffer2"); + table->vkCmdEndRendering = (PFN_vkCmdEndRendering)load(context, "vkCmdEndRendering"); + table->vkCmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)load(context, "vkCmdPipelineBarrier2"); + table->vkCmdResetEvent2 = (PFN_vkCmdResetEvent2)load(context, "vkCmdResetEvent2"); + table->vkCmdResolveImage2 = (PFN_vkCmdResolveImage2)load(context, "vkCmdResolveImage2"); + table->vkCmdSetCullMode = (PFN_vkCmdSetCullMode)load(context, "vkCmdSetCullMode"); + table->vkCmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)load(context, "vkCmdSetDepthBiasEnable"); + table->vkCmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)load(context, "vkCmdSetDepthBoundsTestEnable"); + table->vkCmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)load(context, "vkCmdSetDepthCompareOp"); + table->vkCmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)load(context, "vkCmdSetDepthTestEnable"); + table->vkCmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)load(context, "vkCmdSetDepthWriteEnable"); + table->vkCmdSetEvent2 = (PFN_vkCmdSetEvent2)load(context, "vkCmdSetEvent2"); + table->vkCmdSetFrontFace = (PFN_vkCmdSetFrontFace)load(context, "vkCmdSetFrontFace"); + table->vkCmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)load(context, "vkCmdSetPrimitiveRestartEnable"); + table->vkCmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)load(context, "vkCmdSetPrimitiveTopology"); + table->vkCmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)load(context, "vkCmdSetRasterizerDiscardEnable"); + table->vkCmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)load(context, "vkCmdSetScissorWithCount"); + table->vkCmdSetStencilOp = (PFN_vkCmdSetStencilOp)load(context, "vkCmdSetStencilOp"); + table->vkCmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)load(context, "vkCmdSetStencilTestEnable"); + table->vkCmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)load(context, "vkCmdSetViewportWithCount"); + table->vkCmdWaitEvents2 = (PFN_vkCmdWaitEvents2)load(context, "vkCmdWaitEvents2"); + table->vkCmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)load(context, "vkCmdWriteTimestamp2"); + table->vkCreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)load(context, "vkCreatePrivateDataSlot"); + table->vkDestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)load(context, "vkDestroyPrivateDataSlot"); + table->vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)load(context, "vkGetDeviceBufferMemoryRequirements"); + table->vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)load(context, "vkGetDeviceImageMemoryRequirements"); + table->vkGetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)load(context, "vkGetDeviceImageSparseMemoryRequirements"); + table->vkGetPrivateData = (PFN_vkGetPrivateData)load(context, "vkGetPrivateData"); + table->vkQueueSubmit2 = (PFN_vkQueueSubmit2)load(context, "vkQueueSubmit2"); + table->vkSetPrivateData = (PFN_vkSetPrivateData)load(context, "vkSetPrivateData"); +#endif /* defined(VK_VERSION_1_3) */ +#if defined(VK_AMDX_shader_enqueue) + table->vkCmdDispatchGraphAMDX = (PFN_vkCmdDispatchGraphAMDX)load(context, "vkCmdDispatchGraphAMDX"); + table->vkCmdDispatchGraphIndirectAMDX = (PFN_vkCmdDispatchGraphIndirectAMDX)load(context, "vkCmdDispatchGraphIndirectAMDX"); + table->vkCmdDispatchGraphIndirectCountAMDX = (PFN_vkCmdDispatchGraphIndirectCountAMDX)load(context, "vkCmdDispatchGraphIndirectCountAMDX"); + table->vkCmdInitializeGraphScratchMemoryAMDX = (PFN_vkCmdInitializeGraphScratchMemoryAMDX)load(context, "vkCmdInitializeGraphScratchMemoryAMDX"); + table->vkCreateExecutionGraphPipelinesAMDX = (PFN_vkCreateExecutionGraphPipelinesAMDX)load(context, "vkCreateExecutionGraphPipelinesAMDX"); + table->vkGetExecutionGraphPipelineNodeIndexAMDX = (PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)load(context, "vkGetExecutionGraphPipelineNodeIndexAMDX"); + table->vkGetExecutionGraphPipelineScratchSizeAMDX = (PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)load(context, "vkGetExecutionGraphPipelineScratchSizeAMDX"); +#endif /* defined(VK_AMDX_shader_enqueue) */ +#if defined(VK_AMD_buffer_marker) + table->vkCmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)load(context, "vkCmdWriteBufferMarkerAMD"); +#endif /* defined(VK_AMD_buffer_marker) */ +#if defined(VK_AMD_display_native_hdr) + table->vkSetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)load(context, "vkSetLocalDimmingAMD"); +#endif /* defined(VK_AMD_display_native_hdr) */ +#if defined(VK_AMD_draw_indirect_count) + table->vkCmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)load(context, "vkCmdDrawIndexedIndirectCountAMD"); + table->vkCmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)load(context, "vkCmdDrawIndirectCountAMD"); +#endif /* defined(VK_AMD_draw_indirect_count) */ +#if defined(VK_AMD_shader_info) + table->vkGetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)load(context, "vkGetShaderInfoAMD"); +#endif /* defined(VK_AMD_shader_info) */ +#if defined(VK_ANDROID_external_memory_android_hardware_buffer) + table->vkGetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)load(context, "vkGetAndroidHardwareBufferPropertiesANDROID"); + table->vkGetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)load(context, "vkGetMemoryAndroidHardwareBufferANDROID"); +#endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ +#if defined(VK_EXT_attachment_feedback_loop_dynamic_state) + table->vkCmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)load(context, "vkCmdSetAttachmentFeedbackLoopEnableEXT"); +#endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ +#if defined(VK_EXT_buffer_device_address) + table->vkGetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)load(context, "vkGetBufferDeviceAddressEXT"); +#endif /* defined(VK_EXT_buffer_device_address) */ +#if defined(VK_EXT_calibrated_timestamps) + table->vkGetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)load(context, "vkGetCalibratedTimestampsEXT"); +#endif /* defined(VK_EXT_calibrated_timestamps) */ +#if defined(VK_EXT_color_write_enable) + table->vkCmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)load(context, "vkCmdSetColorWriteEnableEXT"); +#endif /* defined(VK_EXT_color_write_enable) */ +#if defined(VK_EXT_conditional_rendering) + table->vkCmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)load(context, "vkCmdBeginConditionalRenderingEXT"); + table->vkCmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)load(context, "vkCmdEndConditionalRenderingEXT"); +#endif /* defined(VK_EXT_conditional_rendering) */ +#if defined(VK_EXT_debug_marker) + table->vkCmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)load(context, "vkCmdDebugMarkerBeginEXT"); + table->vkCmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)load(context, "vkCmdDebugMarkerEndEXT"); + table->vkCmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)load(context, "vkCmdDebugMarkerInsertEXT"); + table->vkDebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)load(context, "vkDebugMarkerSetObjectNameEXT"); + table->vkDebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)load(context, "vkDebugMarkerSetObjectTagEXT"); +#endif /* defined(VK_EXT_debug_marker) */ +#if defined(VK_EXT_depth_bias_control) + table->vkCmdSetDepthBias2EXT = (PFN_vkCmdSetDepthBias2EXT)load(context, "vkCmdSetDepthBias2EXT"); +#endif /* defined(VK_EXT_depth_bias_control) */ +#if defined(VK_EXT_descriptor_buffer) + table->vkCmdBindDescriptorBufferEmbeddedSamplersEXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)load(context, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT"); + table->vkCmdBindDescriptorBuffersEXT = (PFN_vkCmdBindDescriptorBuffersEXT)load(context, "vkCmdBindDescriptorBuffersEXT"); + table->vkCmdSetDescriptorBufferOffsetsEXT = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)load(context, "vkCmdSetDescriptorBufferOffsetsEXT"); + table->vkGetBufferOpaqueCaptureDescriptorDataEXT = (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)load(context, "vkGetBufferOpaqueCaptureDescriptorDataEXT"); + table->vkGetDescriptorEXT = (PFN_vkGetDescriptorEXT)load(context, "vkGetDescriptorEXT"); + table->vkGetDescriptorSetLayoutBindingOffsetEXT = (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)load(context, "vkGetDescriptorSetLayoutBindingOffsetEXT"); + table->vkGetDescriptorSetLayoutSizeEXT = (PFN_vkGetDescriptorSetLayoutSizeEXT)load(context, "vkGetDescriptorSetLayoutSizeEXT"); + table->vkGetImageOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)load(context, "vkGetImageOpaqueCaptureDescriptorDataEXT"); + table->vkGetImageViewOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)load(context, "vkGetImageViewOpaqueCaptureDescriptorDataEXT"); + table->vkGetSamplerOpaqueCaptureDescriptorDataEXT = (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)load(context, "vkGetSamplerOpaqueCaptureDescriptorDataEXT"); +#endif /* defined(VK_EXT_descriptor_buffer) */ +#if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) + table->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)load(context, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT"); +#endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ +#if defined(VK_EXT_device_fault) + table->vkGetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)load(context, "vkGetDeviceFaultInfoEXT"); +#endif /* defined(VK_EXT_device_fault) */ +#if defined(VK_EXT_discard_rectangles) + table->vkCmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)load(context, "vkCmdSetDiscardRectangleEXT"); +#endif /* defined(VK_EXT_discard_rectangles) */ +#if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 + table->vkCmdSetDiscardRectangleEnableEXT = (PFN_vkCmdSetDiscardRectangleEnableEXT)load(context, "vkCmdSetDiscardRectangleEnableEXT"); + table->vkCmdSetDiscardRectangleModeEXT = (PFN_vkCmdSetDiscardRectangleModeEXT)load(context, "vkCmdSetDiscardRectangleModeEXT"); +#endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ +#if defined(VK_EXT_display_control) + table->vkDisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)load(context, "vkDisplayPowerControlEXT"); + table->vkGetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)load(context, "vkGetSwapchainCounterEXT"); + table->vkRegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)load(context, "vkRegisterDeviceEventEXT"); + table->vkRegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)load(context, "vkRegisterDisplayEventEXT"); +#endif /* defined(VK_EXT_display_control) */ +#if defined(VK_EXT_external_memory_host) + table->vkGetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)load(context, "vkGetMemoryHostPointerPropertiesEXT"); +#endif /* defined(VK_EXT_external_memory_host) */ +#if defined(VK_EXT_full_screen_exclusive) + table->vkAcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)load(context, "vkAcquireFullScreenExclusiveModeEXT"); + table->vkReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)load(context, "vkReleaseFullScreenExclusiveModeEXT"); +#endif /* defined(VK_EXT_full_screen_exclusive) */ +#if defined(VK_EXT_hdr_metadata) + table->vkSetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)load(context, "vkSetHdrMetadataEXT"); +#endif /* defined(VK_EXT_hdr_metadata) */ +#if defined(VK_EXT_host_image_copy) + table->vkCopyImageToImageEXT = (PFN_vkCopyImageToImageEXT)load(context, "vkCopyImageToImageEXT"); + table->vkCopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT)load(context, "vkCopyImageToMemoryEXT"); + table->vkCopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT)load(context, "vkCopyMemoryToImageEXT"); + table->vkTransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT)load(context, "vkTransitionImageLayoutEXT"); +#endif /* defined(VK_EXT_host_image_copy) */ +#if defined(VK_EXT_host_query_reset) + table->vkResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)load(context, "vkResetQueryPoolEXT"); +#endif /* defined(VK_EXT_host_query_reset) */ +#if defined(VK_EXT_image_drm_format_modifier) + table->vkGetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)load(context, "vkGetImageDrmFormatModifierPropertiesEXT"); +#endif /* defined(VK_EXT_image_drm_format_modifier) */ +#if defined(VK_EXT_line_rasterization) + table->vkCmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)load(context, "vkCmdSetLineStippleEXT"); +#endif /* defined(VK_EXT_line_rasterization) */ +#if defined(VK_EXT_mesh_shader) + table->vkCmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)load(context, "vkCmdDrawMeshTasksEXT"); + table->vkCmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)load(context, "vkCmdDrawMeshTasksIndirectCountEXT"); + table->vkCmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)load(context, "vkCmdDrawMeshTasksIndirectEXT"); +#endif /* defined(VK_EXT_mesh_shader) */ +#if defined(VK_EXT_metal_objects) + table->vkExportMetalObjectsEXT = (PFN_vkExportMetalObjectsEXT)load(context, "vkExportMetalObjectsEXT"); +#endif /* defined(VK_EXT_metal_objects) */ +#if defined(VK_EXT_multi_draw) + table->vkCmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)load(context, "vkCmdDrawMultiEXT"); + table->vkCmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)load(context, "vkCmdDrawMultiIndexedEXT"); +#endif /* defined(VK_EXT_multi_draw) */ +#if defined(VK_EXT_opacity_micromap) + table->vkBuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)load(context, "vkBuildMicromapsEXT"); + table->vkCmdBuildMicromapsEXT = (PFN_vkCmdBuildMicromapsEXT)load(context, "vkCmdBuildMicromapsEXT"); + table->vkCmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)load(context, "vkCmdCopyMemoryToMicromapEXT"); + table->vkCmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)load(context, "vkCmdCopyMicromapEXT"); + table->vkCmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)load(context, "vkCmdCopyMicromapToMemoryEXT"); + table->vkCmdWriteMicromapsPropertiesEXT = (PFN_vkCmdWriteMicromapsPropertiesEXT)load(context, "vkCmdWriteMicromapsPropertiesEXT"); + table->vkCopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)load(context, "vkCopyMemoryToMicromapEXT"); + table->vkCopyMicromapEXT = (PFN_vkCopyMicromapEXT)load(context, "vkCopyMicromapEXT"); + table->vkCopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)load(context, "vkCopyMicromapToMemoryEXT"); + table->vkCreateMicromapEXT = (PFN_vkCreateMicromapEXT)load(context, "vkCreateMicromapEXT"); + table->vkDestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)load(context, "vkDestroyMicromapEXT"); + table->vkGetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)load(context, "vkGetDeviceMicromapCompatibilityEXT"); + table->vkGetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)load(context, "vkGetMicromapBuildSizesEXT"); + table->vkWriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)load(context, "vkWriteMicromapsPropertiesEXT"); +#endif /* defined(VK_EXT_opacity_micromap) */ +#if defined(VK_EXT_pageable_device_local_memory) + table->vkSetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)load(context, "vkSetDeviceMemoryPriorityEXT"); +#endif /* defined(VK_EXT_pageable_device_local_memory) */ +#if defined(VK_EXT_pipeline_properties) + table->vkGetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)load(context, "vkGetPipelinePropertiesEXT"); +#endif /* defined(VK_EXT_pipeline_properties) */ +#if defined(VK_EXT_private_data) + table->vkCreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)load(context, "vkCreatePrivateDataSlotEXT"); + table->vkDestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)load(context, "vkDestroyPrivateDataSlotEXT"); + table->vkGetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)load(context, "vkGetPrivateDataEXT"); + table->vkSetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)load(context, "vkSetPrivateDataEXT"); +#endif /* defined(VK_EXT_private_data) */ +#if defined(VK_EXT_sample_locations) + table->vkCmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)load(context, "vkCmdSetSampleLocationsEXT"); +#endif /* defined(VK_EXT_sample_locations) */ +#if defined(VK_EXT_shader_module_identifier) + table->vkGetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)load(context, "vkGetShaderModuleCreateInfoIdentifierEXT"); + table->vkGetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)load(context, "vkGetShaderModuleIdentifierEXT"); +#endif /* defined(VK_EXT_shader_module_identifier) */ +#if defined(VK_EXT_shader_object) + table->vkCmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)load(context, "vkCmdBindShadersEXT"); + table->vkCreateShadersEXT = (PFN_vkCreateShadersEXT)load(context, "vkCreateShadersEXT"); + table->vkDestroyShaderEXT = (PFN_vkDestroyShaderEXT)load(context, "vkDestroyShaderEXT"); + table->vkGetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)load(context, "vkGetShaderBinaryDataEXT"); +#endif /* defined(VK_EXT_shader_object) */ +#if defined(VK_EXT_swapchain_maintenance1) + table->vkReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)load(context, "vkReleaseSwapchainImagesEXT"); +#endif /* defined(VK_EXT_swapchain_maintenance1) */ +#if defined(VK_EXT_transform_feedback) + table->vkCmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)load(context, "vkCmdBeginQueryIndexedEXT"); + table->vkCmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)load(context, "vkCmdBeginTransformFeedbackEXT"); + table->vkCmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)load(context, "vkCmdBindTransformFeedbackBuffersEXT"); + table->vkCmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)load(context, "vkCmdDrawIndirectByteCountEXT"); + table->vkCmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)load(context, "vkCmdEndQueryIndexedEXT"); + table->vkCmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)load(context, "vkCmdEndTransformFeedbackEXT"); +#endif /* defined(VK_EXT_transform_feedback) */ +#if defined(VK_EXT_validation_cache) + table->vkCreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)load(context, "vkCreateValidationCacheEXT"); + table->vkDestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)load(context, "vkDestroyValidationCacheEXT"); + table->vkGetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)load(context, "vkGetValidationCacheDataEXT"); + table->vkMergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)load(context, "vkMergeValidationCachesEXT"); +#endif /* defined(VK_EXT_validation_cache) */ +#if defined(VK_FUCHSIA_buffer_collection) + table->vkCreateBufferCollectionFUCHSIA = (PFN_vkCreateBufferCollectionFUCHSIA)load(context, "vkCreateBufferCollectionFUCHSIA"); + table->vkDestroyBufferCollectionFUCHSIA = (PFN_vkDestroyBufferCollectionFUCHSIA)load(context, "vkDestroyBufferCollectionFUCHSIA"); + table->vkGetBufferCollectionPropertiesFUCHSIA = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)load(context, "vkGetBufferCollectionPropertiesFUCHSIA"); + table->vkSetBufferCollectionBufferConstraintsFUCHSIA = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)load(context, "vkSetBufferCollectionBufferConstraintsFUCHSIA"); + table->vkSetBufferCollectionImageConstraintsFUCHSIA = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)load(context, "vkSetBufferCollectionImageConstraintsFUCHSIA"); +#endif /* defined(VK_FUCHSIA_buffer_collection) */ +#if defined(VK_FUCHSIA_external_memory) + table->vkGetMemoryZirconHandleFUCHSIA = (PFN_vkGetMemoryZirconHandleFUCHSIA)load(context, "vkGetMemoryZirconHandleFUCHSIA"); + table->vkGetMemoryZirconHandlePropertiesFUCHSIA = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)load(context, "vkGetMemoryZirconHandlePropertiesFUCHSIA"); +#endif /* defined(VK_FUCHSIA_external_memory) */ +#if defined(VK_FUCHSIA_external_semaphore) + table->vkGetSemaphoreZirconHandleFUCHSIA = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)load(context, "vkGetSemaphoreZirconHandleFUCHSIA"); + table->vkImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)load(context, "vkImportSemaphoreZirconHandleFUCHSIA"); +#endif /* defined(VK_FUCHSIA_external_semaphore) */ +#if defined(VK_GOOGLE_display_timing) + table->vkGetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)load(context, "vkGetPastPresentationTimingGOOGLE"); + table->vkGetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)load(context, "vkGetRefreshCycleDurationGOOGLE"); +#endif /* defined(VK_GOOGLE_display_timing) */ +#if defined(VK_HUAWEI_cluster_culling_shader) + table->vkCmdDrawClusterHUAWEI = (PFN_vkCmdDrawClusterHUAWEI)load(context, "vkCmdDrawClusterHUAWEI"); + table->vkCmdDrawClusterIndirectHUAWEI = (PFN_vkCmdDrawClusterIndirectHUAWEI)load(context, "vkCmdDrawClusterIndirectHUAWEI"); +#endif /* defined(VK_HUAWEI_cluster_culling_shader) */ +#if defined(VK_HUAWEI_invocation_mask) + table->vkCmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)load(context, "vkCmdBindInvocationMaskHUAWEI"); +#endif /* defined(VK_HUAWEI_invocation_mask) */ +#if defined(VK_HUAWEI_subpass_shading) + table->vkCmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)load(context, "vkCmdSubpassShadingHUAWEI"); + table->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)load(context, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"); +#endif /* defined(VK_HUAWEI_subpass_shading) */ +#if defined(VK_INTEL_performance_query) + table->vkAcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)load(context, "vkAcquirePerformanceConfigurationINTEL"); + table->vkCmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)load(context, "vkCmdSetPerformanceMarkerINTEL"); + table->vkCmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)load(context, "vkCmdSetPerformanceOverrideINTEL"); + table->vkCmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)load(context, "vkCmdSetPerformanceStreamMarkerINTEL"); + table->vkGetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)load(context, "vkGetPerformanceParameterINTEL"); + table->vkInitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)load(context, "vkInitializePerformanceApiINTEL"); + table->vkQueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)load(context, "vkQueueSetPerformanceConfigurationINTEL"); + table->vkReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)load(context, "vkReleasePerformanceConfigurationINTEL"); + table->vkUninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)load(context, "vkUninitializePerformanceApiINTEL"); +#endif /* defined(VK_INTEL_performance_query) */ +#if defined(VK_KHR_acceleration_structure) + table->vkBuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)load(context, "vkBuildAccelerationStructuresKHR"); + table->vkCmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)load(context, "vkCmdBuildAccelerationStructuresIndirectKHR"); + table->vkCmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)load(context, "vkCmdBuildAccelerationStructuresKHR"); + table->vkCmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)load(context, "vkCmdCopyAccelerationStructureKHR"); + table->vkCmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)load(context, "vkCmdCopyAccelerationStructureToMemoryKHR"); + table->vkCmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)load(context, "vkCmdCopyMemoryToAccelerationStructureKHR"); + table->vkCmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)load(context, "vkCmdWriteAccelerationStructuresPropertiesKHR"); + table->vkCopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)load(context, "vkCopyAccelerationStructureKHR"); + table->vkCopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)load(context, "vkCopyAccelerationStructureToMemoryKHR"); + table->vkCopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)load(context, "vkCopyMemoryToAccelerationStructureKHR"); + table->vkCreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)load(context, "vkCreateAccelerationStructureKHR"); + table->vkDestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)load(context, "vkDestroyAccelerationStructureKHR"); + table->vkGetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)load(context, "vkGetAccelerationStructureBuildSizesKHR"); + table->vkGetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)load(context, "vkGetAccelerationStructureDeviceAddressKHR"); + table->vkGetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)load(context, "vkGetDeviceAccelerationStructureCompatibilityKHR"); + table->vkWriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)load(context, "vkWriteAccelerationStructuresPropertiesKHR"); +#endif /* defined(VK_KHR_acceleration_structure) */ +#if defined(VK_KHR_bind_memory2) + table->vkBindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)load(context, "vkBindBufferMemory2KHR"); + table->vkBindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)load(context, "vkBindImageMemory2KHR"); +#endif /* defined(VK_KHR_bind_memory2) */ +#if defined(VK_KHR_buffer_device_address) + table->vkGetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)load(context, "vkGetBufferDeviceAddressKHR"); + table->vkGetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)load(context, "vkGetBufferOpaqueCaptureAddressKHR"); + table->vkGetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)load(context, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"); +#endif /* defined(VK_KHR_buffer_device_address) */ +#if defined(VK_KHR_copy_commands2) + table->vkCmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)load(context, "vkCmdBlitImage2KHR"); + table->vkCmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)load(context, "vkCmdCopyBuffer2KHR"); + table->vkCmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)load(context, "vkCmdCopyBufferToImage2KHR"); + table->vkCmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)load(context, "vkCmdCopyImage2KHR"); + table->vkCmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)load(context, "vkCmdCopyImageToBuffer2KHR"); + table->vkCmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)load(context, "vkCmdResolveImage2KHR"); +#endif /* defined(VK_KHR_copy_commands2) */ +#if defined(VK_KHR_create_renderpass2) + table->vkCmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)load(context, "vkCmdBeginRenderPass2KHR"); + table->vkCmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)load(context, "vkCmdEndRenderPass2KHR"); + table->vkCmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)load(context, "vkCmdNextSubpass2KHR"); + table->vkCreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)load(context, "vkCreateRenderPass2KHR"); +#endif /* defined(VK_KHR_create_renderpass2) */ +#if defined(VK_KHR_deferred_host_operations) + table->vkCreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)load(context, "vkCreateDeferredOperationKHR"); + table->vkDeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)load(context, "vkDeferredOperationJoinKHR"); + table->vkDestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)load(context, "vkDestroyDeferredOperationKHR"); + table->vkGetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)load(context, "vkGetDeferredOperationMaxConcurrencyKHR"); + table->vkGetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)load(context, "vkGetDeferredOperationResultKHR"); +#endif /* defined(VK_KHR_deferred_host_operations) */ +#if defined(VK_KHR_descriptor_update_template) + table->vkCreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)load(context, "vkCreateDescriptorUpdateTemplateKHR"); + table->vkDestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)load(context, "vkDestroyDescriptorUpdateTemplateKHR"); + table->vkUpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)load(context, "vkUpdateDescriptorSetWithTemplateKHR"); +#endif /* defined(VK_KHR_descriptor_update_template) */ +#if defined(VK_KHR_device_group) + table->vkCmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)load(context, "vkCmdDispatchBaseKHR"); + table->vkCmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)load(context, "vkCmdSetDeviceMaskKHR"); + table->vkGetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)load(context, "vkGetDeviceGroupPeerMemoryFeaturesKHR"); +#endif /* defined(VK_KHR_device_group) */ +#if defined(VK_KHR_display_swapchain) + table->vkCreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)load(context, "vkCreateSharedSwapchainsKHR"); +#endif /* defined(VK_KHR_display_swapchain) */ +#if defined(VK_KHR_draw_indirect_count) + table->vkCmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)load(context, "vkCmdDrawIndexedIndirectCountKHR"); + table->vkCmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)load(context, "vkCmdDrawIndirectCountKHR"); +#endif /* defined(VK_KHR_draw_indirect_count) */ +#if defined(VK_KHR_dynamic_rendering) + table->vkCmdBeginRenderingKHR = (PFN_vkCmdBeginRenderingKHR)load(context, "vkCmdBeginRenderingKHR"); + table->vkCmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)load(context, "vkCmdEndRenderingKHR"); +#endif /* defined(VK_KHR_dynamic_rendering) */ +#if defined(VK_KHR_external_fence_fd) + table->vkGetFenceFdKHR = (PFN_vkGetFenceFdKHR)load(context, "vkGetFenceFdKHR"); + table->vkImportFenceFdKHR = (PFN_vkImportFenceFdKHR)load(context, "vkImportFenceFdKHR"); +#endif /* defined(VK_KHR_external_fence_fd) */ +#if defined(VK_KHR_external_fence_win32) + table->vkGetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)load(context, "vkGetFenceWin32HandleKHR"); + table->vkImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)load(context, "vkImportFenceWin32HandleKHR"); +#endif /* defined(VK_KHR_external_fence_win32) */ +#if defined(VK_KHR_external_memory_fd) + table->vkGetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)load(context, "vkGetMemoryFdKHR"); + table->vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)load(context, "vkGetMemoryFdPropertiesKHR"); +#endif /* defined(VK_KHR_external_memory_fd) */ +#if defined(VK_KHR_external_memory_win32) + table->vkGetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)load(context, "vkGetMemoryWin32HandleKHR"); + table->vkGetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)load(context, "vkGetMemoryWin32HandlePropertiesKHR"); +#endif /* defined(VK_KHR_external_memory_win32) */ +#if defined(VK_KHR_external_semaphore_fd) + table->vkGetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)load(context, "vkGetSemaphoreFdKHR"); + table->vkImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)load(context, "vkImportSemaphoreFdKHR"); +#endif /* defined(VK_KHR_external_semaphore_fd) */ +#if defined(VK_KHR_external_semaphore_win32) + table->vkGetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)load(context, "vkGetSemaphoreWin32HandleKHR"); + table->vkImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)load(context, "vkImportSemaphoreWin32HandleKHR"); +#endif /* defined(VK_KHR_external_semaphore_win32) */ +#if defined(VK_KHR_fragment_shading_rate) + table->vkCmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)load(context, "vkCmdSetFragmentShadingRateKHR"); +#endif /* defined(VK_KHR_fragment_shading_rate) */ +#if defined(VK_KHR_get_memory_requirements2) + table->vkGetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)load(context, "vkGetBufferMemoryRequirements2KHR"); + table->vkGetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)load(context, "vkGetImageMemoryRequirements2KHR"); + table->vkGetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)load(context, "vkGetImageSparseMemoryRequirements2KHR"); +#endif /* defined(VK_KHR_get_memory_requirements2) */ +#if defined(VK_KHR_maintenance1) + table->vkTrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)load(context, "vkTrimCommandPoolKHR"); +#endif /* defined(VK_KHR_maintenance1) */ +#if defined(VK_KHR_maintenance3) + table->vkGetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)load(context, "vkGetDescriptorSetLayoutSupportKHR"); +#endif /* defined(VK_KHR_maintenance3) */ +#if defined(VK_KHR_maintenance4) + table->vkGetDeviceBufferMemoryRequirementsKHR = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)load(context, "vkGetDeviceBufferMemoryRequirementsKHR"); + table->vkGetDeviceImageMemoryRequirementsKHR = (PFN_vkGetDeviceImageMemoryRequirementsKHR)load(context, "vkGetDeviceImageMemoryRequirementsKHR"); + table->vkGetDeviceImageSparseMemoryRequirementsKHR = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)load(context, "vkGetDeviceImageSparseMemoryRequirementsKHR"); +#endif /* defined(VK_KHR_maintenance4) */ +#if defined(VK_KHR_maintenance5) + table->vkCmdBindIndexBuffer2KHR = (PFN_vkCmdBindIndexBuffer2KHR)load(context, "vkCmdBindIndexBuffer2KHR"); + table->vkGetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)load(context, "vkGetDeviceImageSubresourceLayoutKHR"); + table->vkGetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)load(context, "vkGetImageSubresourceLayout2KHR"); + table->vkGetRenderingAreaGranularityKHR = (PFN_vkGetRenderingAreaGranularityKHR)load(context, "vkGetRenderingAreaGranularityKHR"); +#endif /* defined(VK_KHR_maintenance5) */ +#if defined(VK_KHR_map_memory2) + table->vkMapMemory2KHR = (PFN_vkMapMemory2KHR)load(context, "vkMapMemory2KHR"); + table->vkUnmapMemory2KHR = (PFN_vkUnmapMemory2KHR)load(context, "vkUnmapMemory2KHR"); +#endif /* defined(VK_KHR_map_memory2) */ +#if defined(VK_KHR_performance_query) + table->vkAcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)load(context, "vkAcquireProfilingLockKHR"); + table->vkReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)load(context, "vkReleaseProfilingLockKHR"); +#endif /* defined(VK_KHR_performance_query) */ +#if defined(VK_KHR_pipeline_executable_properties) + table->vkGetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)load(context, "vkGetPipelineExecutableInternalRepresentationsKHR"); + table->vkGetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)load(context, "vkGetPipelineExecutablePropertiesKHR"); + table->vkGetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)load(context, "vkGetPipelineExecutableStatisticsKHR"); +#endif /* defined(VK_KHR_pipeline_executable_properties) */ +#if defined(VK_KHR_present_wait) + table->vkWaitForPresentKHR = (PFN_vkWaitForPresentKHR)load(context, "vkWaitForPresentKHR"); +#endif /* defined(VK_KHR_present_wait) */ +#if defined(VK_KHR_push_descriptor) + table->vkCmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)load(context, "vkCmdPushDescriptorSetKHR"); +#endif /* defined(VK_KHR_push_descriptor) */ +#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) + table->vkCmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)load(context, "vkCmdTraceRaysIndirect2KHR"); +#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ +#if defined(VK_KHR_ray_tracing_pipeline) + table->vkCmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)load(context, "vkCmdSetRayTracingPipelineStackSizeKHR"); + table->vkCmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)load(context, "vkCmdTraceRaysIndirectKHR"); + table->vkCmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)load(context, "vkCmdTraceRaysKHR"); + table->vkCreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)load(context, "vkCreateRayTracingPipelinesKHR"); + table->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)load(context, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"); + table->vkGetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)load(context, "vkGetRayTracingShaderGroupHandlesKHR"); + table->vkGetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)load(context, "vkGetRayTracingShaderGroupStackSizeKHR"); +#endif /* defined(VK_KHR_ray_tracing_pipeline) */ +#if defined(VK_KHR_sampler_ycbcr_conversion) + table->vkCreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)load(context, "vkCreateSamplerYcbcrConversionKHR"); + table->vkDestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)load(context, "vkDestroySamplerYcbcrConversionKHR"); +#endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ +#if defined(VK_KHR_shared_presentable_image) + table->vkGetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)load(context, "vkGetSwapchainStatusKHR"); +#endif /* defined(VK_KHR_shared_presentable_image) */ +#if defined(VK_KHR_swapchain) + table->vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)load(context, "vkAcquireNextImageKHR"); + table->vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)load(context, "vkCreateSwapchainKHR"); + table->vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)load(context, "vkDestroySwapchainKHR"); + table->vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)load(context, "vkGetSwapchainImagesKHR"); + table->vkQueuePresentKHR = (PFN_vkQueuePresentKHR)load(context, "vkQueuePresentKHR"); +#endif /* defined(VK_KHR_swapchain) */ +#if defined(VK_KHR_synchronization2) + table->vkCmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)load(context, "vkCmdPipelineBarrier2KHR"); + table->vkCmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)load(context, "vkCmdResetEvent2KHR"); + table->vkCmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)load(context, "vkCmdSetEvent2KHR"); + table->vkCmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)load(context, "vkCmdWaitEvents2KHR"); + table->vkCmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)load(context, "vkCmdWriteTimestamp2KHR"); + table->vkQueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)load(context, "vkQueueSubmit2KHR"); +#endif /* defined(VK_KHR_synchronization2) */ +#if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) + table->vkCmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)load(context, "vkCmdWriteBufferMarker2AMD"); +#endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */ +#if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) + table->vkGetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)load(context, "vkGetQueueCheckpointData2NV"); +#endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */ +#if defined(VK_KHR_timeline_semaphore) + table->vkGetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)load(context, "vkGetSemaphoreCounterValueKHR"); + table->vkSignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)load(context, "vkSignalSemaphoreKHR"); + table->vkWaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)load(context, "vkWaitSemaphoresKHR"); +#endif /* defined(VK_KHR_timeline_semaphore) */ +#if defined(VK_KHR_video_decode_queue) + table->vkCmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)load(context, "vkCmdDecodeVideoKHR"); +#endif /* defined(VK_KHR_video_decode_queue) */ +#if defined(VK_KHR_video_encode_queue) + table->vkCmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)load(context, "vkCmdEncodeVideoKHR"); + table->vkGetEncodedVideoSessionParametersKHR = (PFN_vkGetEncodedVideoSessionParametersKHR)load(context, "vkGetEncodedVideoSessionParametersKHR"); +#endif /* defined(VK_KHR_video_encode_queue) */ +#if defined(VK_KHR_video_queue) + table->vkBindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)load(context, "vkBindVideoSessionMemoryKHR"); + table->vkCmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)load(context, "vkCmdBeginVideoCodingKHR"); + table->vkCmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)load(context, "vkCmdControlVideoCodingKHR"); + table->vkCmdEndVideoCodingKHR = (PFN_vkCmdEndVideoCodingKHR)load(context, "vkCmdEndVideoCodingKHR"); + table->vkCreateVideoSessionKHR = (PFN_vkCreateVideoSessionKHR)load(context, "vkCreateVideoSessionKHR"); + table->vkCreateVideoSessionParametersKHR = (PFN_vkCreateVideoSessionParametersKHR)load(context, "vkCreateVideoSessionParametersKHR"); + table->vkDestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)load(context, "vkDestroyVideoSessionKHR"); + table->vkDestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)load(context, "vkDestroyVideoSessionParametersKHR"); + table->vkGetVideoSessionMemoryRequirementsKHR = (PFN_vkGetVideoSessionMemoryRequirementsKHR)load(context, "vkGetVideoSessionMemoryRequirementsKHR"); + table->vkUpdateVideoSessionParametersKHR = (PFN_vkUpdateVideoSessionParametersKHR)load(context, "vkUpdateVideoSessionParametersKHR"); +#endif /* defined(VK_KHR_video_queue) */ +#if defined(VK_NVX_binary_import) + table->vkCmdCuLaunchKernelNVX = (PFN_vkCmdCuLaunchKernelNVX)load(context, "vkCmdCuLaunchKernelNVX"); + table->vkCreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)load(context, "vkCreateCuFunctionNVX"); + table->vkCreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)load(context, "vkCreateCuModuleNVX"); + table->vkDestroyCuFunctionNVX = (PFN_vkDestroyCuFunctionNVX)load(context, "vkDestroyCuFunctionNVX"); + table->vkDestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)load(context, "vkDestroyCuModuleNVX"); +#endif /* defined(VK_NVX_binary_import) */ +#if defined(VK_NVX_image_view_handle) + table->vkGetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)load(context, "vkGetImageViewAddressNVX"); + table->vkGetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)load(context, "vkGetImageViewHandleNVX"); +#endif /* defined(VK_NVX_image_view_handle) */ +#if defined(VK_NV_clip_space_w_scaling) + table->vkCmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)load(context, "vkCmdSetViewportWScalingNV"); +#endif /* defined(VK_NV_clip_space_w_scaling) */ +#if defined(VK_NV_copy_memory_indirect) + table->vkCmdCopyMemoryIndirectNV = (PFN_vkCmdCopyMemoryIndirectNV)load(context, "vkCmdCopyMemoryIndirectNV"); + table->vkCmdCopyMemoryToImageIndirectNV = (PFN_vkCmdCopyMemoryToImageIndirectNV)load(context, "vkCmdCopyMemoryToImageIndirectNV"); +#endif /* defined(VK_NV_copy_memory_indirect) */ +#if defined(VK_NV_cuda_kernel_launch) + table->vkCmdCudaLaunchKernelNV = (PFN_vkCmdCudaLaunchKernelNV)load(context, "vkCmdCudaLaunchKernelNV"); + table->vkCreateCudaFunctionNV = (PFN_vkCreateCudaFunctionNV)load(context, "vkCreateCudaFunctionNV"); + table->vkCreateCudaModuleNV = (PFN_vkCreateCudaModuleNV)load(context, "vkCreateCudaModuleNV"); + table->vkDestroyCudaFunctionNV = (PFN_vkDestroyCudaFunctionNV)load(context, "vkDestroyCudaFunctionNV"); + table->vkDestroyCudaModuleNV = (PFN_vkDestroyCudaModuleNV)load(context, "vkDestroyCudaModuleNV"); + table->vkGetCudaModuleCacheNV = (PFN_vkGetCudaModuleCacheNV)load(context, "vkGetCudaModuleCacheNV"); +#endif /* defined(VK_NV_cuda_kernel_launch) */ +#if defined(VK_NV_device_diagnostic_checkpoints) + table->vkCmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)load(context, "vkCmdSetCheckpointNV"); + table->vkGetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)load(context, "vkGetQueueCheckpointDataNV"); +#endif /* defined(VK_NV_device_diagnostic_checkpoints) */ +#if defined(VK_NV_device_generated_commands) + table->vkCmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)load(context, "vkCmdBindPipelineShaderGroupNV"); + table->vkCmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)load(context, "vkCmdExecuteGeneratedCommandsNV"); + table->vkCmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)load(context, "vkCmdPreprocessGeneratedCommandsNV"); + table->vkCreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)load(context, "vkCreateIndirectCommandsLayoutNV"); + table->vkDestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)load(context, "vkDestroyIndirectCommandsLayoutNV"); + table->vkGetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)load(context, "vkGetGeneratedCommandsMemoryRequirementsNV"); +#endif /* defined(VK_NV_device_generated_commands) */ +#if defined(VK_NV_device_generated_commands_compute) + table->vkCmdUpdatePipelineIndirectBufferNV = (PFN_vkCmdUpdatePipelineIndirectBufferNV)load(context, "vkCmdUpdatePipelineIndirectBufferNV"); + table->vkGetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV)load(context, "vkGetPipelineIndirectDeviceAddressNV"); + table->vkGetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)load(context, "vkGetPipelineIndirectMemoryRequirementsNV"); +#endif /* defined(VK_NV_device_generated_commands_compute) */ +#if defined(VK_NV_external_memory_rdma) + table->vkGetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)load(context, "vkGetMemoryRemoteAddressNV"); +#endif /* defined(VK_NV_external_memory_rdma) */ +#if defined(VK_NV_external_memory_win32) + table->vkGetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)load(context, "vkGetMemoryWin32HandleNV"); +#endif /* defined(VK_NV_external_memory_win32) */ +#if defined(VK_NV_fragment_shading_rate_enums) + table->vkCmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)load(context, "vkCmdSetFragmentShadingRateEnumNV"); +#endif /* defined(VK_NV_fragment_shading_rate_enums) */ +#if defined(VK_NV_low_latency2) + table->vkGetLatencyTimingsNV = (PFN_vkGetLatencyTimingsNV)load(context, "vkGetLatencyTimingsNV"); + table->vkLatencySleepNV = (PFN_vkLatencySleepNV)load(context, "vkLatencySleepNV"); + table->vkQueueNotifyOutOfBandNV = (PFN_vkQueueNotifyOutOfBandNV)load(context, "vkQueueNotifyOutOfBandNV"); + table->vkSetLatencyMarkerNV = (PFN_vkSetLatencyMarkerNV)load(context, "vkSetLatencyMarkerNV"); + table->vkSetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)load(context, "vkSetLatencySleepModeNV"); +#endif /* defined(VK_NV_low_latency2) */ +#if defined(VK_NV_memory_decompression) + table->vkCmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)load(context, "vkCmdDecompressMemoryIndirectCountNV"); + table->vkCmdDecompressMemoryNV = (PFN_vkCmdDecompressMemoryNV)load(context, "vkCmdDecompressMemoryNV"); +#endif /* defined(VK_NV_memory_decompression) */ +#if defined(VK_NV_mesh_shader) + table->vkCmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)load(context, "vkCmdDrawMeshTasksIndirectCountNV"); + table->vkCmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)load(context, "vkCmdDrawMeshTasksIndirectNV"); + table->vkCmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)load(context, "vkCmdDrawMeshTasksNV"); +#endif /* defined(VK_NV_mesh_shader) */ +#if defined(VK_NV_optical_flow) + table->vkBindOpticalFlowSessionImageNV = (PFN_vkBindOpticalFlowSessionImageNV)load(context, "vkBindOpticalFlowSessionImageNV"); + table->vkCmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)load(context, "vkCmdOpticalFlowExecuteNV"); + table->vkCreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)load(context, "vkCreateOpticalFlowSessionNV"); + table->vkDestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)load(context, "vkDestroyOpticalFlowSessionNV"); +#endif /* defined(VK_NV_optical_flow) */ +#if defined(VK_NV_ray_tracing) + table->vkBindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)load(context, "vkBindAccelerationStructureMemoryNV"); + table->vkCmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)load(context, "vkCmdBuildAccelerationStructureNV"); + table->vkCmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)load(context, "vkCmdCopyAccelerationStructureNV"); + table->vkCmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)load(context, "vkCmdTraceRaysNV"); + table->vkCmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)load(context, "vkCmdWriteAccelerationStructuresPropertiesNV"); + table->vkCompileDeferredNV = (PFN_vkCompileDeferredNV)load(context, "vkCompileDeferredNV"); + table->vkCreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)load(context, "vkCreateAccelerationStructureNV"); + table->vkCreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)load(context, "vkCreateRayTracingPipelinesNV"); + table->vkDestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)load(context, "vkDestroyAccelerationStructureNV"); + table->vkGetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)load(context, "vkGetAccelerationStructureHandleNV"); + table->vkGetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)load(context, "vkGetAccelerationStructureMemoryRequirementsNV"); + table->vkGetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)load(context, "vkGetRayTracingShaderGroupHandlesNV"); +#endif /* defined(VK_NV_ray_tracing) */ +#if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 + table->vkCmdSetExclusiveScissorEnableNV = (PFN_vkCmdSetExclusiveScissorEnableNV)load(context, "vkCmdSetExclusiveScissorEnableNV"); +#endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ +#if defined(VK_NV_scissor_exclusive) + table->vkCmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)load(context, "vkCmdSetExclusiveScissorNV"); +#endif /* defined(VK_NV_scissor_exclusive) */ +#if defined(VK_NV_shading_rate_image) + table->vkCmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)load(context, "vkCmdBindShadingRateImageNV"); + table->vkCmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)load(context, "vkCmdSetCoarseSampleOrderNV"); + table->vkCmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)load(context, "vkCmdSetViewportShadingRatePaletteNV"); +#endif /* defined(VK_NV_shading_rate_image) */ +#if defined(VK_QCOM_tile_properties) + table->vkGetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)load(context, "vkGetDynamicRenderingTilePropertiesQCOM"); + table->vkGetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)load(context, "vkGetFramebufferTilePropertiesQCOM"); +#endif /* defined(VK_QCOM_tile_properties) */ +#if defined(VK_QNX_external_memory_screen_buffer) + table->vkGetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)load(context, "vkGetScreenBufferPropertiesQNX"); +#endif /* defined(VK_QNX_external_memory_screen_buffer) */ +#if defined(VK_VALVE_descriptor_set_host_mapping) + table->vkGetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)load(context, "vkGetDescriptorSetHostMappingVALVE"); + table->vkGetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)load(context, "vkGetDescriptorSetLayoutHostMappingInfoVALVE"); +#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ +#if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) + table->vkCmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)load(context, "vkCmdBindVertexBuffers2EXT"); + table->vkCmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)load(context, "vkCmdSetCullModeEXT"); + table->vkCmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)load(context, "vkCmdSetDepthBoundsTestEnableEXT"); + table->vkCmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)load(context, "vkCmdSetDepthCompareOpEXT"); + table->vkCmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)load(context, "vkCmdSetDepthTestEnableEXT"); + table->vkCmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)load(context, "vkCmdSetDepthWriteEnableEXT"); + table->vkCmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)load(context, "vkCmdSetFrontFaceEXT"); + table->vkCmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)load(context, "vkCmdSetPrimitiveTopologyEXT"); + table->vkCmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)load(context, "vkCmdSetScissorWithCountEXT"); + table->vkCmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)load(context, "vkCmdSetStencilOpEXT"); + table->vkCmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)load(context, "vkCmdSetStencilTestEnableEXT"); + table->vkCmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)load(context, "vkCmdSetViewportWithCountEXT"); +#endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) + table->vkCmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)load(context, "vkCmdSetDepthBiasEnableEXT"); + table->vkCmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)load(context, "vkCmdSetLogicOpEXT"); + table->vkCmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)load(context, "vkCmdSetPatchControlPointsEXT"); + table->vkCmdSetPrimitiveRestartEnableEXT = (PFN_vkCmdSetPrimitiveRestartEnableEXT)load(context, "vkCmdSetPrimitiveRestartEnableEXT"); + table->vkCmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)load(context, "vkCmdSetRasterizerDiscardEnableEXT"); +#endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) + table->vkCmdSetAlphaToCoverageEnableEXT = (PFN_vkCmdSetAlphaToCoverageEnableEXT)load(context, "vkCmdSetAlphaToCoverageEnableEXT"); + table->vkCmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)load(context, "vkCmdSetAlphaToOneEnableEXT"); + table->vkCmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)load(context, "vkCmdSetColorBlendAdvancedEXT"); + table->vkCmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)load(context, "vkCmdSetColorBlendEnableEXT"); + table->vkCmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)load(context, "vkCmdSetColorBlendEquationEXT"); + table->vkCmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)load(context, "vkCmdSetColorWriteMaskEXT"); + table->vkCmdSetConservativeRasterizationModeEXT = (PFN_vkCmdSetConservativeRasterizationModeEXT)load(context, "vkCmdSetConservativeRasterizationModeEXT"); + table->vkCmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)load(context, "vkCmdSetDepthClampEnableEXT"); + table->vkCmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)load(context, "vkCmdSetDepthClipEnableEXT"); + table->vkCmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)load(context, "vkCmdSetDepthClipNegativeOneToOneEXT"); + table->vkCmdSetExtraPrimitiveOverestimationSizeEXT = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)load(context, "vkCmdSetExtraPrimitiveOverestimationSizeEXT"); + table->vkCmdSetLineRasterizationModeEXT = (PFN_vkCmdSetLineRasterizationModeEXT)load(context, "vkCmdSetLineRasterizationModeEXT"); + table->vkCmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)load(context, "vkCmdSetLineStippleEnableEXT"); + table->vkCmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)load(context, "vkCmdSetLogicOpEnableEXT"); + table->vkCmdSetPolygonModeEXT = (PFN_vkCmdSetPolygonModeEXT)load(context, "vkCmdSetPolygonModeEXT"); + table->vkCmdSetProvokingVertexModeEXT = (PFN_vkCmdSetProvokingVertexModeEXT)load(context, "vkCmdSetProvokingVertexModeEXT"); + table->vkCmdSetRasterizationSamplesEXT = (PFN_vkCmdSetRasterizationSamplesEXT)load(context, "vkCmdSetRasterizationSamplesEXT"); + table->vkCmdSetRasterizationStreamEXT = (PFN_vkCmdSetRasterizationStreamEXT)load(context, "vkCmdSetRasterizationStreamEXT"); + table->vkCmdSetSampleLocationsEnableEXT = (PFN_vkCmdSetSampleLocationsEnableEXT)load(context, "vkCmdSetSampleLocationsEnableEXT"); + table->vkCmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)load(context, "vkCmdSetSampleMaskEXT"); + table->vkCmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)load(context, "vkCmdSetTessellationDomainOriginEXT"); +#endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) + table->vkCmdSetViewportWScalingEnableNV = (PFN_vkCmdSetViewportWScalingEnableNV)load(context, "vkCmdSetViewportWScalingEnableNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) + table->vkCmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)load(context, "vkCmdSetViewportSwizzleNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) + table->vkCmdSetCoverageToColorEnableNV = (PFN_vkCmdSetCoverageToColorEnableNV)load(context, "vkCmdSetCoverageToColorEnableNV"); + table->vkCmdSetCoverageToColorLocationNV = (PFN_vkCmdSetCoverageToColorLocationNV)load(context, "vkCmdSetCoverageToColorLocationNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) + table->vkCmdSetCoverageModulationModeNV = (PFN_vkCmdSetCoverageModulationModeNV)load(context, "vkCmdSetCoverageModulationModeNV"); + table->vkCmdSetCoverageModulationTableEnableNV = (PFN_vkCmdSetCoverageModulationTableEnableNV)load(context, "vkCmdSetCoverageModulationTableEnableNV"); + table->vkCmdSetCoverageModulationTableNV = (PFN_vkCmdSetCoverageModulationTableNV)load(context, "vkCmdSetCoverageModulationTableNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) + table->vkCmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)load(context, "vkCmdSetShadingRateImageEnableNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) + table->vkCmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)load(context, "vkCmdSetRepresentativeFragmentTestEnableNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) + table->vkCmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)load(context, "vkCmdSetCoverageReductionModeNV"); +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ +#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) + table->vkGetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)load(context, "vkGetDeviceGroupSurfacePresentModes2EXT"); +#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ +#if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) + table->vkGetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)load(context, "vkGetImageSubresourceLayout2EXT"); +#endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ +#if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) + table->vkCmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT)load(context, "vkCmdSetVertexInputEXT"); +#endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ +#if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) + table->vkCmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)load(context, "vkCmdPushDescriptorSetWithTemplateKHR"); +#endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) + table->vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)load(context, "vkGetDeviceGroupPresentCapabilitiesKHR"); + table->vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)load(context, "vkGetDeviceGroupSurfacePresentModesKHR"); +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) + table->vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)load(context, "vkAcquireNextImage2KHR"); +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ + /* VOLK_GENERATE_LOAD_DEVICE_TABLE */ +} + +#ifdef __GNUC__ +#ifdef VOLK_DEFAULT_VISIBILITY +# pragma GCC visibility push(default) +#else +# pragma GCC visibility push(hidden) +#endif +#endif + +/* VOLK_GENERATE_PROTOTYPES_C */ +#if defined(VK_VERSION_1_0) +PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; +PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; +PFN_vkAllocateMemory vkAllocateMemory; +PFN_vkBeginCommandBuffer vkBeginCommandBuffer; +PFN_vkBindBufferMemory vkBindBufferMemory; +PFN_vkBindImageMemory vkBindImageMemory; +PFN_vkCmdBeginQuery vkCmdBeginQuery; +PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; +PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; +PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; +PFN_vkCmdBindPipeline vkCmdBindPipeline; +PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; +PFN_vkCmdBlitImage vkCmdBlitImage; +PFN_vkCmdClearAttachments vkCmdClearAttachments; +PFN_vkCmdClearColorImage vkCmdClearColorImage; +PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; +PFN_vkCmdCopyBuffer vkCmdCopyBuffer; +PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; +PFN_vkCmdCopyImage vkCmdCopyImage; +PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; +PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; +PFN_vkCmdDispatch vkCmdDispatch; +PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; +PFN_vkCmdDraw vkCmdDraw; +PFN_vkCmdDrawIndexed vkCmdDrawIndexed; +PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; +PFN_vkCmdDrawIndirect vkCmdDrawIndirect; +PFN_vkCmdEndQuery vkCmdEndQuery; +PFN_vkCmdEndRenderPass vkCmdEndRenderPass; +PFN_vkCmdExecuteCommands vkCmdExecuteCommands; +PFN_vkCmdFillBuffer vkCmdFillBuffer; +PFN_vkCmdNextSubpass vkCmdNextSubpass; +PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; +PFN_vkCmdPushConstants vkCmdPushConstants; +PFN_vkCmdResetEvent vkCmdResetEvent; +PFN_vkCmdResetQueryPool vkCmdResetQueryPool; +PFN_vkCmdResolveImage vkCmdResolveImage; +PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; +PFN_vkCmdSetDepthBias vkCmdSetDepthBias; +PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; +PFN_vkCmdSetEvent vkCmdSetEvent; +PFN_vkCmdSetLineWidth vkCmdSetLineWidth; +PFN_vkCmdSetScissor vkCmdSetScissor; +PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; +PFN_vkCmdSetStencilReference vkCmdSetStencilReference; +PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; +PFN_vkCmdSetViewport vkCmdSetViewport; +PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; +PFN_vkCmdWaitEvents vkCmdWaitEvents; +PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; +PFN_vkCreateBuffer vkCreateBuffer; +PFN_vkCreateBufferView vkCreateBufferView; +PFN_vkCreateCommandPool vkCreateCommandPool; +PFN_vkCreateComputePipelines vkCreateComputePipelines; +PFN_vkCreateDescriptorPool vkCreateDescriptorPool; +PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; +PFN_vkCreateDevice vkCreateDevice; +PFN_vkCreateEvent vkCreateEvent; +PFN_vkCreateFence vkCreateFence; +PFN_vkCreateFramebuffer vkCreateFramebuffer; +PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; +PFN_vkCreateImage vkCreateImage; +PFN_vkCreateImageView vkCreateImageView; +PFN_vkCreateInstance vkCreateInstance; +PFN_vkCreatePipelineCache vkCreatePipelineCache; +PFN_vkCreatePipelineLayout vkCreatePipelineLayout; +PFN_vkCreateQueryPool vkCreateQueryPool; +PFN_vkCreateRenderPass vkCreateRenderPass; +PFN_vkCreateSampler vkCreateSampler; +PFN_vkCreateSemaphore vkCreateSemaphore; +PFN_vkCreateShaderModule vkCreateShaderModule; +PFN_vkDestroyBuffer vkDestroyBuffer; +PFN_vkDestroyBufferView vkDestroyBufferView; +PFN_vkDestroyCommandPool vkDestroyCommandPool; +PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; +PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; +PFN_vkDestroyDevice vkDestroyDevice; +PFN_vkDestroyEvent vkDestroyEvent; +PFN_vkDestroyFence vkDestroyFence; +PFN_vkDestroyFramebuffer vkDestroyFramebuffer; +PFN_vkDestroyImage vkDestroyImage; +PFN_vkDestroyImageView vkDestroyImageView; +PFN_vkDestroyInstance vkDestroyInstance; +PFN_vkDestroyPipeline vkDestroyPipeline; +PFN_vkDestroyPipelineCache vkDestroyPipelineCache; +PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; +PFN_vkDestroyQueryPool vkDestroyQueryPool; +PFN_vkDestroyRenderPass vkDestroyRenderPass; +PFN_vkDestroySampler vkDestroySampler; +PFN_vkDestroySemaphore vkDestroySemaphore; +PFN_vkDestroyShaderModule vkDestroyShaderModule; +PFN_vkDeviceWaitIdle vkDeviceWaitIdle; +PFN_vkEndCommandBuffer vkEndCommandBuffer; +PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; +PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; +PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; +PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; +PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; +PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; +PFN_vkFreeCommandBuffers vkFreeCommandBuffers; +PFN_vkFreeDescriptorSets vkFreeDescriptorSets; +PFN_vkFreeMemory vkFreeMemory; +PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; +PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; +PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; +PFN_vkGetDeviceQueue vkGetDeviceQueue; +PFN_vkGetEventStatus vkGetEventStatus; +PFN_vkGetFenceStatus vkGetFenceStatus; +PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; +PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; +PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; +PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; +PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; +PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; +PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; +PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; +PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; +PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; +PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; +PFN_vkGetPipelineCacheData vkGetPipelineCacheData; +PFN_vkGetQueryPoolResults vkGetQueryPoolResults; +PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; +PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; +PFN_vkMapMemory vkMapMemory; +PFN_vkMergePipelineCaches vkMergePipelineCaches; +PFN_vkQueueBindSparse vkQueueBindSparse; +PFN_vkQueueSubmit vkQueueSubmit; +PFN_vkQueueWaitIdle vkQueueWaitIdle; +PFN_vkResetCommandBuffer vkResetCommandBuffer; +PFN_vkResetCommandPool vkResetCommandPool; +PFN_vkResetDescriptorPool vkResetDescriptorPool; +PFN_vkResetEvent vkResetEvent; +PFN_vkResetFences vkResetFences; +PFN_vkSetEvent vkSetEvent; +PFN_vkUnmapMemory vkUnmapMemory; +PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; +PFN_vkWaitForFences vkWaitForFences; +#endif /* defined(VK_VERSION_1_0) */ +#if defined(VK_VERSION_1_1) +PFN_vkBindBufferMemory2 vkBindBufferMemory2; +PFN_vkBindImageMemory2 vkBindImageMemory2; +PFN_vkCmdDispatchBase vkCmdDispatchBase; +PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; +PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; +PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; +PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; +PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; +PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion; +PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups; +PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; +PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; +PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; +PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; +PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; +PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; +PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties; +PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties; +PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties; +PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; +PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2; +PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; +PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2; +PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; +PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2; +PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2; +PFN_vkTrimCommandPool vkTrimCommandPool; +PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; +#endif /* defined(VK_VERSION_1_1) */ +#if defined(VK_VERSION_1_2) +PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2; +PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount; +PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount; +PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2; +PFN_vkCmdNextSubpass2 vkCmdNextSubpass2; +PFN_vkCreateRenderPass2 vkCreateRenderPass2; +PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress; +PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress; +PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress; +PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue; +PFN_vkResetQueryPool vkResetQueryPool; +PFN_vkSignalSemaphore vkSignalSemaphore; +PFN_vkWaitSemaphores vkWaitSemaphores; +#endif /* defined(VK_VERSION_1_2) */ +#if defined(VK_VERSION_1_3) +PFN_vkCmdBeginRendering vkCmdBeginRendering; +PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2; +PFN_vkCmdBlitImage2 vkCmdBlitImage2; +PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2; +PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2; +PFN_vkCmdCopyImage2 vkCmdCopyImage2; +PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2; +PFN_vkCmdEndRendering vkCmdEndRendering; +PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2; +PFN_vkCmdResetEvent2 vkCmdResetEvent2; +PFN_vkCmdResolveImage2 vkCmdResolveImage2; +PFN_vkCmdSetCullMode vkCmdSetCullMode; +PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable; +PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable; +PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp; +PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable; +PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable; +PFN_vkCmdSetEvent2 vkCmdSetEvent2; +PFN_vkCmdSetFrontFace vkCmdSetFrontFace; +PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable; +PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology; +PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable; +PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount; +PFN_vkCmdSetStencilOp vkCmdSetStencilOp; +PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable; +PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount; +PFN_vkCmdWaitEvents2 vkCmdWaitEvents2; +PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2; +PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot; +PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot; +PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements; +PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements; +PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements; +PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties; +PFN_vkGetPrivateData vkGetPrivateData; +PFN_vkQueueSubmit2 vkQueueSubmit2; +PFN_vkSetPrivateData vkSetPrivateData; +#endif /* defined(VK_VERSION_1_3) */ +#if defined(VK_AMDX_shader_enqueue) +PFN_vkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDX; +PFN_vkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDX; +PFN_vkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDX; +PFN_vkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDX; +PFN_vkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDX; +PFN_vkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDX; +PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX; +#endif /* defined(VK_AMDX_shader_enqueue) */ +#if defined(VK_AMD_buffer_marker) +PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; +#endif /* defined(VK_AMD_buffer_marker) */ +#if defined(VK_AMD_display_native_hdr) +PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD; +#endif /* defined(VK_AMD_display_native_hdr) */ +#if defined(VK_AMD_draw_indirect_count) +PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; +PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; +#endif /* defined(VK_AMD_draw_indirect_count) */ +#if defined(VK_AMD_shader_info) +PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; +#endif /* defined(VK_AMD_shader_info) */ +#if defined(VK_ANDROID_external_memory_android_hardware_buffer) +PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; +PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; +#endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ +#if defined(VK_EXT_acquire_drm_display) +PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT; +PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT; +#endif /* defined(VK_EXT_acquire_drm_display) */ +#if defined(VK_EXT_acquire_xlib_display) +PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT; +PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; +#endif /* defined(VK_EXT_acquire_xlib_display) */ +#if defined(VK_EXT_attachment_feedback_loop_dynamic_state) +PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT; +#endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ +#if defined(VK_EXT_buffer_device_address) +PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT; +#endif /* defined(VK_EXT_buffer_device_address) */ +#if defined(VK_EXT_calibrated_timestamps) +PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; +PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; +#endif /* defined(VK_EXT_calibrated_timestamps) */ +#if defined(VK_EXT_color_write_enable) +PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT; +#endif /* defined(VK_EXT_color_write_enable) */ +#if defined(VK_EXT_conditional_rendering) +PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; +PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; +#endif /* defined(VK_EXT_conditional_rendering) */ +#if defined(VK_EXT_debug_marker) +PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; +PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; +PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; +PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; +PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; +#endif /* defined(VK_EXT_debug_marker) */ +#if defined(VK_EXT_debug_report) +PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; +PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; +PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; +#endif /* defined(VK_EXT_debug_report) */ +#if defined(VK_EXT_debug_utils) +PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; +PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; +PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; +PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; +PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; +PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; +PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; +PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; +PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; +PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; +PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT; +#endif /* defined(VK_EXT_debug_utils) */ +#if defined(VK_EXT_depth_bias_control) +PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT; +#endif /* defined(VK_EXT_depth_bias_control) */ +#if defined(VK_EXT_descriptor_buffer) +PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT vkCmdBindDescriptorBufferEmbeddedSamplersEXT; +PFN_vkCmdBindDescriptorBuffersEXT vkCmdBindDescriptorBuffersEXT; +PFN_vkCmdSetDescriptorBufferOffsetsEXT vkCmdSetDescriptorBufferOffsetsEXT; +PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT vkGetBufferOpaqueCaptureDescriptorDataEXT; +PFN_vkGetDescriptorEXT vkGetDescriptorEXT; +PFN_vkGetDescriptorSetLayoutBindingOffsetEXT vkGetDescriptorSetLayoutBindingOffsetEXT; +PFN_vkGetDescriptorSetLayoutSizeEXT vkGetDescriptorSetLayoutSizeEXT; +PFN_vkGetImageOpaqueCaptureDescriptorDataEXT vkGetImageOpaqueCaptureDescriptorDataEXT; +PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT vkGetImageViewOpaqueCaptureDescriptorDataEXT; +PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT vkGetSamplerOpaqueCaptureDescriptorDataEXT; +#endif /* defined(VK_EXT_descriptor_buffer) */ +#if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) +PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT; +#endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ +#if defined(VK_EXT_device_fault) +PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT; +#endif /* defined(VK_EXT_device_fault) */ +#if defined(VK_EXT_direct_mode_display) +PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; +#endif /* defined(VK_EXT_direct_mode_display) */ +#if defined(VK_EXT_directfb_surface) +PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT; +PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT; +#endif /* defined(VK_EXT_directfb_surface) */ +#if defined(VK_EXT_discard_rectangles) +PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; +#endif /* defined(VK_EXT_discard_rectangles) */ +#if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 +PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT; +PFN_vkCmdSetDiscardRectangleModeEXT vkCmdSetDiscardRectangleModeEXT; +#endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ +#if defined(VK_EXT_display_control) +PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; +PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; +PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; +PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; +#endif /* defined(VK_EXT_display_control) */ +#if defined(VK_EXT_display_surface_counter) +PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; +#endif /* defined(VK_EXT_display_surface_counter) */ +#if defined(VK_EXT_external_memory_host) +PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; +#endif /* defined(VK_EXT_external_memory_host) */ +#if defined(VK_EXT_full_screen_exclusive) +PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT; +PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT; +PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT; +#endif /* defined(VK_EXT_full_screen_exclusive) */ +#if defined(VK_EXT_hdr_metadata) +PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; +#endif /* defined(VK_EXT_hdr_metadata) */ +#if defined(VK_EXT_headless_surface) +PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT; +#endif /* defined(VK_EXT_headless_surface) */ +#if defined(VK_EXT_host_image_copy) +PFN_vkCopyImageToImageEXT vkCopyImageToImageEXT; +PFN_vkCopyImageToMemoryEXT vkCopyImageToMemoryEXT; +PFN_vkCopyMemoryToImageEXT vkCopyMemoryToImageEXT; +PFN_vkTransitionImageLayoutEXT vkTransitionImageLayoutEXT; +#endif /* defined(VK_EXT_host_image_copy) */ +#if defined(VK_EXT_host_query_reset) +PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT; +#endif /* defined(VK_EXT_host_query_reset) */ +#if defined(VK_EXT_image_drm_format_modifier) +PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; +#endif /* defined(VK_EXT_image_drm_format_modifier) */ +#if defined(VK_EXT_line_rasterization) +PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT; +#endif /* defined(VK_EXT_line_rasterization) */ +#if defined(VK_EXT_mesh_shader) +PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT; +PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT; +PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT; +#endif /* defined(VK_EXT_mesh_shader) */ +#if defined(VK_EXT_metal_objects) +PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT; +#endif /* defined(VK_EXT_metal_objects) */ +#if defined(VK_EXT_metal_surface) +PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT; +#endif /* defined(VK_EXT_metal_surface) */ +#if defined(VK_EXT_multi_draw) +PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT; +PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT; +#endif /* defined(VK_EXT_multi_draw) */ +#if defined(VK_EXT_opacity_micromap) +PFN_vkBuildMicromapsEXT vkBuildMicromapsEXT; +PFN_vkCmdBuildMicromapsEXT vkCmdBuildMicromapsEXT; +PFN_vkCmdCopyMemoryToMicromapEXT vkCmdCopyMemoryToMicromapEXT; +PFN_vkCmdCopyMicromapEXT vkCmdCopyMicromapEXT; +PFN_vkCmdCopyMicromapToMemoryEXT vkCmdCopyMicromapToMemoryEXT; +PFN_vkCmdWriteMicromapsPropertiesEXT vkCmdWriteMicromapsPropertiesEXT; +PFN_vkCopyMemoryToMicromapEXT vkCopyMemoryToMicromapEXT; +PFN_vkCopyMicromapEXT vkCopyMicromapEXT; +PFN_vkCopyMicromapToMemoryEXT vkCopyMicromapToMemoryEXT; +PFN_vkCreateMicromapEXT vkCreateMicromapEXT; +PFN_vkDestroyMicromapEXT vkDestroyMicromapEXT; +PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT; +PFN_vkGetMicromapBuildSizesEXT vkGetMicromapBuildSizesEXT; +PFN_vkWriteMicromapsPropertiesEXT vkWriteMicromapsPropertiesEXT; +#endif /* defined(VK_EXT_opacity_micromap) */ +#if defined(VK_EXT_pageable_device_local_memory) +PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT; +#endif /* defined(VK_EXT_pageable_device_local_memory) */ +#if defined(VK_EXT_pipeline_properties) +PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT; +#endif /* defined(VK_EXT_pipeline_properties) */ +#if defined(VK_EXT_private_data) +PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT; +PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT; +PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT; +PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT; +#endif /* defined(VK_EXT_private_data) */ +#if defined(VK_EXT_sample_locations) +PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; +PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT; +#endif /* defined(VK_EXT_sample_locations) */ +#if defined(VK_EXT_shader_module_identifier) +PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT; +PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT; +#endif /* defined(VK_EXT_shader_module_identifier) */ +#if defined(VK_EXT_shader_object) +PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT; +PFN_vkCreateShadersEXT vkCreateShadersEXT; +PFN_vkDestroyShaderEXT vkDestroyShaderEXT; +PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT; +#endif /* defined(VK_EXT_shader_object) */ +#if defined(VK_EXT_swapchain_maintenance1) +PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT; +#endif /* defined(VK_EXT_swapchain_maintenance1) */ +#if defined(VK_EXT_tooling_info) +PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT; +#endif /* defined(VK_EXT_tooling_info) */ +#if defined(VK_EXT_transform_feedback) +PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; +PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; +PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; +PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; +PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; +PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; +#endif /* defined(VK_EXT_transform_feedback) */ +#if defined(VK_EXT_validation_cache) +PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; +PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; +PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; +PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; +#endif /* defined(VK_EXT_validation_cache) */ +#if defined(VK_FUCHSIA_buffer_collection) +PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA; +PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA; +PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA; +PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA; +PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA; +#endif /* defined(VK_FUCHSIA_buffer_collection) */ +#if defined(VK_FUCHSIA_external_memory) +PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA; +PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA; +#endif /* defined(VK_FUCHSIA_external_memory) */ +#if defined(VK_FUCHSIA_external_semaphore) +PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA; +PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA; +#endif /* defined(VK_FUCHSIA_external_semaphore) */ +#if defined(VK_FUCHSIA_imagepipe_surface) +PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA; +#endif /* defined(VK_FUCHSIA_imagepipe_surface) */ +#if defined(VK_GGP_stream_descriptor_surface) +PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP; +#endif /* defined(VK_GGP_stream_descriptor_surface) */ +#if defined(VK_GOOGLE_display_timing) +PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; +PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; +#endif /* defined(VK_GOOGLE_display_timing) */ +#if defined(VK_HUAWEI_cluster_culling_shader) +PFN_vkCmdDrawClusterHUAWEI vkCmdDrawClusterHUAWEI; +PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI; +#endif /* defined(VK_HUAWEI_cluster_culling_shader) */ +#if defined(VK_HUAWEI_invocation_mask) +PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI; +#endif /* defined(VK_HUAWEI_invocation_mask) */ +#if defined(VK_HUAWEI_subpass_shading) +PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI; +PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI; +#endif /* defined(VK_HUAWEI_subpass_shading) */ +#if defined(VK_INTEL_performance_query) +PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL; +PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL; +PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL; +PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL; +PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL; +PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL; +PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL; +PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL; +PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL; +#endif /* defined(VK_INTEL_performance_query) */ +#if defined(VK_KHR_acceleration_structure) +PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR; +PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR; +PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR; +PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR; +PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR; +PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR; +PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR; +PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR; +PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR; +PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR; +PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR; +PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR; +PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR; +PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR; +PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR; +PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR; +#endif /* defined(VK_KHR_acceleration_structure) */ +#if defined(VK_KHR_android_surface) +PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; +#endif /* defined(VK_KHR_android_surface) */ +#if defined(VK_KHR_bind_memory2) +PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; +PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; +#endif /* defined(VK_KHR_bind_memory2) */ +#if defined(VK_KHR_buffer_device_address) +PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR; +PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR; +PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR; +#endif /* defined(VK_KHR_buffer_device_address) */ +#if defined(VK_KHR_cooperative_matrix) +PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR; +#endif /* defined(VK_KHR_cooperative_matrix) */ +#if defined(VK_KHR_copy_commands2) +PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR; +PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR; +PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR; +PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR; +PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR; +PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR; +#endif /* defined(VK_KHR_copy_commands2) */ +#if defined(VK_KHR_create_renderpass2) +PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; +PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; +PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; +PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; +#endif /* defined(VK_KHR_create_renderpass2) */ +#if defined(VK_KHR_deferred_host_operations) +PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR; +PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR; +PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR; +PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR; +PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR; +#endif /* defined(VK_KHR_deferred_host_operations) */ +#if defined(VK_KHR_descriptor_update_template) +PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; +PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; +PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; +#endif /* defined(VK_KHR_descriptor_update_template) */ +#if defined(VK_KHR_device_group) +PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; +PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; +PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; +#endif /* defined(VK_KHR_device_group) */ +#if defined(VK_KHR_device_group_creation) +PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR; +#endif /* defined(VK_KHR_device_group_creation) */ +#if defined(VK_KHR_display) +PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; +PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; +PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; +PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; +PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; +PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; +PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; +#endif /* defined(VK_KHR_display) */ +#if defined(VK_KHR_display_swapchain) +PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; +#endif /* defined(VK_KHR_display_swapchain) */ +#if defined(VK_KHR_draw_indirect_count) +PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; +PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; +#endif /* defined(VK_KHR_draw_indirect_count) */ +#if defined(VK_KHR_dynamic_rendering) +PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR; +PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR; +#endif /* defined(VK_KHR_dynamic_rendering) */ +#if defined(VK_KHR_external_fence_capabilities) +PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR; +#endif /* defined(VK_KHR_external_fence_capabilities) */ +#if defined(VK_KHR_external_fence_fd) +PFN_vkGetFenceFdKHR vkGetFenceFdKHR; +PFN_vkImportFenceFdKHR vkImportFenceFdKHR; +#endif /* defined(VK_KHR_external_fence_fd) */ +#if defined(VK_KHR_external_fence_win32) +PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; +PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; +#endif /* defined(VK_KHR_external_fence_win32) */ +#if defined(VK_KHR_external_memory_capabilities) +PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR; +#endif /* defined(VK_KHR_external_memory_capabilities) */ +#if defined(VK_KHR_external_memory_fd) +PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; +PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; +#endif /* defined(VK_KHR_external_memory_fd) */ +#if defined(VK_KHR_external_memory_win32) +PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; +PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; +#endif /* defined(VK_KHR_external_memory_win32) */ +#if defined(VK_KHR_external_semaphore_capabilities) +PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; +#endif /* defined(VK_KHR_external_semaphore_capabilities) */ +#if defined(VK_KHR_external_semaphore_fd) +PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; +PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; +#endif /* defined(VK_KHR_external_semaphore_fd) */ +#if defined(VK_KHR_external_semaphore_win32) +PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; +PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; +#endif /* defined(VK_KHR_external_semaphore_win32) */ +#if defined(VK_KHR_fragment_shading_rate) +PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR; +PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR; +#endif /* defined(VK_KHR_fragment_shading_rate) */ +#if defined(VK_KHR_get_display_properties2) +PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR; +PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR; +PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR; +PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR; +#endif /* defined(VK_KHR_get_display_properties2) */ +#if defined(VK_KHR_get_memory_requirements2) +PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; +PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; +PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; +#endif /* defined(VK_KHR_get_memory_requirements2) */ +#if defined(VK_KHR_get_physical_device_properties2) +PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; +PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; +PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR; +PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; +PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; +PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR; +PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR; +#endif /* defined(VK_KHR_get_physical_device_properties2) */ +#if defined(VK_KHR_get_surface_capabilities2) +PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR; +PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR; +#endif /* defined(VK_KHR_get_surface_capabilities2) */ +#if defined(VK_KHR_maintenance1) +PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; +#endif /* defined(VK_KHR_maintenance1) */ +#if defined(VK_KHR_maintenance3) +PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; +#endif /* defined(VK_KHR_maintenance3) */ +#if defined(VK_KHR_maintenance4) +PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR; +PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR; +PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR; +#endif /* defined(VK_KHR_maintenance4) */ +#if defined(VK_KHR_maintenance5) +PFN_vkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHR; +PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR; +PFN_vkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHR; +PFN_vkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHR; +#endif /* defined(VK_KHR_maintenance5) */ +#if defined(VK_KHR_map_memory2) +PFN_vkMapMemory2KHR vkMapMemory2KHR; +PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR; +#endif /* defined(VK_KHR_map_memory2) */ +#if defined(VK_KHR_performance_query) +PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR; +PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR; +PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR; +PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR; +#endif /* defined(VK_KHR_performance_query) */ +#if defined(VK_KHR_pipeline_executable_properties) +PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR; +PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR; +PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR; +#endif /* defined(VK_KHR_pipeline_executable_properties) */ +#if defined(VK_KHR_present_wait) +PFN_vkWaitForPresentKHR vkWaitForPresentKHR; +#endif /* defined(VK_KHR_present_wait) */ +#if defined(VK_KHR_push_descriptor) +PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; +#endif /* defined(VK_KHR_push_descriptor) */ +#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) +PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR; +#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ +#if defined(VK_KHR_ray_tracing_pipeline) +PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR; +PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR; +PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR; +PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR; +PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; +PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR; +PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR; +#endif /* defined(VK_KHR_ray_tracing_pipeline) */ +#if defined(VK_KHR_sampler_ycbcr_conversion) +PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; +PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; +#endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ +#if defined(VK_KHR_shared_presentable_image) +PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; +#endif /* defined(VK_KHR_shared_presentable_image) */ +#if defined(VK_KHR_surface) +PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; +PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; +PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; +PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; +PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; +#endif /* defined(VK_KHR_surface) */ +#if defined(VK_KHR_swapchain) +PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; +PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; +PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; +PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; +PFN_vkQueuePresentKHR vkQueuePresentKHR; +#endif /* defined(VK_KHR_swapchain) */ +#if defined(VK_KHR_synchronization2) +PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR; +PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR; +PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR; +PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR; +PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR; +PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR; +#endif /* defined(VK_KHR_synchronization2) */ +#if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) +PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD; +#endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */ +#if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) +PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV; +#endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */ +#if defined(VK_KHR_timeline_semaphore) +PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR; +PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR; +PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR; +#endif /* defined(VK_KHR_timeline_semaphore) */ +#if defined(VK_KHR_video_decode_queue) +PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR; +#endif /* defined(VK_KHR_video_decode_queue) */ +#if defined(VK_KHR_video_encode_queue) +PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR; +PFN_vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR; +PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR; +#endif /* defined(VK_KHR_video_encode_queue) */ +#if defined(VK_KHR_video_queue) +PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR; +PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR; +PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR; +PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR; +PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR; +PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR; +PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR; +PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR; +PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR; +PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR; +PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR; +PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR; +#endif /* defined(VK_KHR_video_queue) */ +#if defined(VK_KHR_wayland_surface) +PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; +PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; +#endif /* defined(VK_KHR_wayland_surface) */ +#if defined(VK_KHR_win32_surface) +PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; +PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; +#endif /* defined(VK_KHR_win32_surface) */ +#if defined(VK_KHR_xcb_surface) +PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; +PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; +#endif /* defined(VK_KHR_xcb_surface) */ +#if defined(VK_KHR_xlib_surface) +PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; +PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; +#endif /* defined(VK_KHR_xlib_surface) */ +#if defined(VK_MVK_ios_surface) +PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK; +#endif /* defined(VK_MVK_ios_surface) */ +#if defined(VK_MVK_macos_surface) +PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK; +#endif /* defined(VK_MVK_macos_surface) */ +#if defined(VK_NN_vi_surface) +PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN; +#endif /* defined(VK_NN_vi_surface) */ +#if defined(VK_NVX_binary_import) +PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX; +PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX; +PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX; +PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX; +PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX; +#endif /* defined(VK_NVX_binary_import) */ +#if defined(VK_NVX_image_view_handle) +PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX; +PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX; +#endif /* defined(VK_NVX_image_view_handle) */ +#if defined(VK_NV_acquire_winrt_display) +PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV; +PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV; +#endif /* defined(VK_NV_acquire_winrt_display) */ +#if defined(VK_NV_clip_space_w_scaling) +PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; +#endif /* defined(VK_NV_clip_space_w_scaling) */ +#if defined(VK_NV_cooperative_matrix) +PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV; +#endif /* defined(VK_NV_cooperative_matrix) */ +#if defined(VK_NV_copy_memory_indirect) +PFN_vkCmdCopyMemoryIndirectNV vkCmdCopyMemoryIndirectNV; +PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV; +#endif /* defined(VK_NV_copy_memory_indirect) */ +#if defined(VK_NV_coverage_reduction_mode) +PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV; +#endif /* defined(VK_NV_coverage_reduction_mode) */ +#if defined(VK_NV_cuda_kernel_launch) +PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV; +PFN_vkCreateCudaFunctionNV vkCreateCudaFunctionNV; +PFN_vkCreateCudaModuleNV vkCreateCudaModuleNV; +PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV; +PFN_vkDestroyCudaModuleNV vkDestroyCudaModuleNV; +PFN_vkGetCudaModuleCacheNV vkGetCudaModuleCacheNV; +#endif /* defined(VK_NV_cuda_kernel_launch) */ +#if defined(VK_NV_device_diagnostic_checkpoints) +PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; +PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; +#endif /* defined(VK_NV_device_diagnostic_checkpoints) */ +#if defined(VK_NV_device_generated_commands) +PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV; +PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV; +PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV; +PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV; +PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV; +PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV; +#endif /* defined(VK_NV_device_generated_commands) */ +#if defined(VK_NV_device_generated_commands_compute) +PFN_vkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNV; +PFN_vkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNV; +PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV; +#endif /* defined(VK_NV_device_generated_commands_compute) */ +#if defined(VK_NV_external_memory_capabilities) +PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; +#endif /* defined(VK_NV_external_memory_capabilities) */ +#if defined(VK_NV_external_memory_rdma) +PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV; +#endif /* defined(VK_NV_external_memory_rdma) */ +#if defined(VK_NV_external_memory_win32) +PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; +#endif /* defined(VK_NV_external_memory_win32) */ +#if defined(VK_NV_fragment_shading_rate_enums) +PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV; +#endif /* defined(VK_NV_fragment_shading_rate_enums) */ +#if defined(VK_NV_low_latency2) +PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV; +PFN_vkLatencySleepNV vkLatencySleepNV; +PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV; +PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV; +PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV; +#endif /* defined(VK_NV_low_latency2) */ +#if defined(VK_NV_memory_decompression) +PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV; +PFN_vkCmdDecompressMemoryNV vkCmdDecompressMemoryNV; +#endif /* defined(VK_NV_memory_decompression) */ +#if defined(VK_NV_mesh_shader) +PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; +PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; +PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; +#endif /* defined(VK_NV_mesh_shader) */ +#if defined(VK_NV_optical_flow) +PFN_vkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNV; +PFN_vkCmdOpticalFlowExecuteNV vkCmdOpticalFlowExecuteNV; +PFN_vkCreateOpticalFlowSessionNV vkCreateOpticalFlowSessionNV; +PFN_vkDestroyOpticalFlowSessionNV vkDestroyOpticalFlowSessionNV; +PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV; +#endif /* defined(VK_NV_optical_flow) */ +#if defined(VK_NV_ray_tracing) +PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; +PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; +PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; +PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; +PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; +PFN_vkCompileDeferredNV vkCompileDeferredNV; +PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; +PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; +PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; +PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; +PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; +PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; +#endif /* defined(VK_NV_ray_tracing) */ +#if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 +PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV; +#endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ +#if defined(VK_NV_scissor_exclusive) +PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; +#endif /* defined(VK_NV_scissor_exclusive) */ +#if defined(VK_NV_shading_rate_image) +PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; +PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; +PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; +#endif /* defined(VK_NV_shading_rate_image) */ +#if defined(VK_QCOM_tile_properties) +PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM; +PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM; +#endif /* defined(VK_QCOM_tile_properties) */ +#if defined(VK_QNX_external_memory_screen_buffer) +PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX; +#endif /* defined(VK_QNX_external_memory_screen_buffer) */ +#if defined(VK_QNX_screen_surface) +PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX; +PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX; +#endif /* defined(VK_QNX_screen_surface) */ +#if defined(VK_VALVE_descriptor_set_host_mapping) +PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; +PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; +#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ +#if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) +PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT; +PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT; +PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT; +PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT; +PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT; +PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT; +PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT; +PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT; +PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT; +PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT; +PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT; +PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT; +#endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) +PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT; +PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT; +PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT; +PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT; +PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT; +#endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) +PFN_vkCmdSetAlphaToCoverageEnableEXT vkCmdSetAlphaToCoverageEnableEXT; +PFN_vkCmdSetAlphaToOneEnableEXT vkCmdSetAlphaToOneEnableEXT; +PFN_vkCmdSetColorBlendAdvancedEXT vkCmdSetColorBlendAdvancedEXT; +PFN_vkCmdSetColorBlendEnableEXT vkCmdSetColorBlendEnableEXT; +PFN_vkCmdSetColorBlendEquationEXT vkCmdSetColorBlendEquationEXT; +PFN_vkCmdSetColorWriteMaskEXT vkCmdSetColorWriteMaskEXT; +PFN_vkCmdSetConservativeRasterizationModeEXT vkCmdSetConservativeRasterizationModeEXT; +PFN_vkCmdSetDepthClampEnableEXT vkCmdSetDepthClampEnableEXT; +PFN_vkCmdSetDepthClipEnableEXT vkCmdSetDepthClipEnableEXT; +PFN_vkCmdSetDepthClipNegativeOneToOneEXT vkCmdSetDepthClipNegativeOneToOneEXT; +PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT; +PFN_vkCmdSetLineRasterizationModeEXT vkCmdSetLineRasterizationModeEXT; +PFN_vkCmdSetLineStippleEnableEXT vkCmdSetLineStippleEnableEXT; +PFN_vkCmdSetLogicOpEnableEXT vkCmdSetLogicOpEnableEXT; +PFN_vkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXT; +PFN_vkCmdSetProvokingVertexModeEXT vkCmdSetProvokingVertexModeEXT; +PFN_vkCmdSetRasterizationSamplesEXT vkCmdSetRasterizationSamplesEXT; +PFN_vkCmdSetRasterizationStreamEXT vkCmdSetRasterizationStreamEXT; +PFN_vkCmdSetSampleLocationsEnableEXT vkCmdSetSampleLocationsEnableEXT; +PFN_vkCmdSetSampleMaskEXT vkCmdSetSampleMaskEXT; +PFN_vkCmdSetTessellationDomainOriginEXT vkCmdSetTessellationDomainOriginEXT; +#endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) +PFN_vkCmdSetViewportWScalingEnableNV vkCmdSetViewportWScalingEnableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) +PFN_vkCmdSetViewportSwizzleNV vkCmdSetViewportSwizzleNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) +PFN_vkCmdSetCoverageToColorEnableNV vkCmdSetCoverageToColorEnableNV; +PFN_vkCmdSetCoverageToColorLocationNV vkCmdSetCoverageToColorLocationNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) +PFN_vkCmdSetCoverageModulationModeNV vkCmdSetCoverageModulationModeNV; +PFN_vkCmdSetCoverageModulationTableEnableNV vkCmdSetCoverageModulationTableEnableNV; +PFN_vkCmdSetCoverageModulationTableNV vkCmdSetCoverageModulationTableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) +PFN_vkCmdSetShadingRateImageEnableNV vkCmdSetShadingRateImageEnableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) +PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) +PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ +#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) +PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; +#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ +#if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) +PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT; +#endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ +#if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) +PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT; +#endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ +#if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) +PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; +#endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) +PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; +PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; +PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR; +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) +PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ +/* VOLK_GENERATE_PROTOTYPES_C */ + +#ifdef __GNUC__ +# pragma GCC visibility pop +#endif + +#ifdef __cplusplus +} +#endif +/* clang-format on */ diff --git a/volk/volk.h b/volk/volk.h new file mode 100644 index 00000000..59e6020d --- /dev/null +++ b/volk/volk.h @@ -0,0 +1,1981 @@ +/** + * volk + * + * Copyright (C) 2018-2023, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) + * Report bugs and download new versions at https://github.com/zeux/volk + * + * This library is distributed under the MIT License. See notice at the end of this file. + */ +/* clang-format off */ +#ifndef VOLK_H_ +#define VOLK_H_ + +#if defined(VULKAN_H_) && !defined(VK_NO_PROTOTYPES) +# error To use volk, you need to define VK_NO_PROTOTYPES before including vulkan.h +#endif + +/* VOLK_GENERATE_VERSION_DEFINE */ +#define VOLK_HEADER_VERSION 269 +/* VOLK_GENERATE_VERSION_DEFINE */ + +#ifndef VK_NO_PROTOTYPES +# define VK_NO_PROTOTYPES +#endif + +#ifndef VULKAN_H_ +# ifdef VOLK_VULKAN_H_PATH +# include VOLK_VULKAN_H_PATH +# elif defined(VK_USE_PLATFORM_WIN32_KHR) +# include +# include + + /* When VK_USE_PLATFORM_WIN32_KHR is defined, instead of including vulkan.h directly, we include individual parts of the SDK + * This is necessary to avoid including which is very heavy - it takes 200ms to parse without WIN32_LEAN_AND_MEAN + * and 100ms to parse with it. vulkan_win32.h only needs a few symbols that are easy to redefine ourselves. + */ + typedef unsigned long DWORD; + typedef const wchar_t* LPCWSTR; + typedef void* HANDLE; + typedef struct HINSTANCE__* HINSTANCE; + typedef struct HWND__* HWND; + typedef struct HMONITOR__* HMONITOR; + typedef struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES; + +# include + +# ifdef VK_ENABLE_BETA_EXTENSIONS +# include +# endif +# else +# include +# endif +#endif + +/* Disable several extensions on earlier SDKs because later SDKs introduce a backwards incompatible change to function signatures */ +#if VK_HEADER_VERSION < 140 +# undef VK_NVX_image_view_handle +#endif +#if VK_HEADER_VERSION < 184 +# undef VK_HUAWEI_subpass_shading +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +struct VolkDeviceTable; + +/** + * Initialize library by loading Vulkan loader; call this function before creating the Vulkan instance. + * + * Returns VK_SUCCESS on success and VK_ERROR_INITIALIZATION_FAILED otherwise. + */ +VkResult volkInitialize(void); + +/** + * Initialize library by providing a custom handler to load global symbols. + * + * This function can be used instead of volkInitialize. + * The handler function pointer will be asked to load global Vulkan symbols which require no instance + * (such as vkCreateInstance, vkEnumerateInstance* and vkEnumerateInstanceVersion if available). + */ +void volkInitializeCustom(PFN_vkGetInstanceProcAddr handler); + +/** + * Get Vulkan instance version supported by the Vulkan loader, or 0 if Vulkan isn't supported + * + * Returns 0 if volkInitialize wasn't called or failed. + */ +uint32_t volkGetInstanceVersion(void); + +/** + * Load global function pointers using application-created VkInstance; call this function after creating the Vulkan instance. + */ +void volkLoadInstance(VkInstance instance); + +/** + * Load global function pointers using application-created VkInstance; call this function after creating the Vulkan instance. + * Skips loading device-based function pointers, requires usage of volkLoadDevice afterwards. + */ +void volkLoadInstanceOnly(VkInstance instance); + +/** + * Load global function pointers using application-created VkDevice; call this function after creating the Vulkan device. + * + * Note: this is not suitable for applications that want to use multiple VkDevice objects concurrently. + */ +void volkLoadDevice(VkDevice device); + +/** + * Return last VkInstance for which global function pointers have been loaded via volkLoadInstance(), + * or VK_NULL_HANDLE if volkLoadInstance() has not been called. + */ +VkInstance volkGetLoadedInstance(void); + +/** + * Return last VkDevice for which global function pointers have been loaded via volkLoadDevice(), + * or VK_NULL_HANDLE if volkLoadDevice() has not been called. + */ +VkDevice volkGetLoadedDevice(void); + +/** + * Load function pointers using application-created VkDevice into a table. + * Application should use function pointers from that table instead of using global function pointers. + */ +void volkLoadDeviceTable(struct VolkDeviceTable* table, VkDevice device); + +/** + * Device-specific function pointer table + */ +struct VolkDeviceTable +{ + /* VOLK_GENERATE_DEVICE_TABLE */ +#if defined(VK_VERSION_1_0) + PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; + PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; + PFN_vkAllocateMemory vkAllocateMemory; + PFN_vkBeginCommandBuffer vkBeginCommandBuffer; + PFN_vkBindBufferMemory vkBindBufferMemory; + PFN_vkBindImageMemory vkBindImageMemory; + PFN_vkCmdBeginQuery vkCmdBeginQuery; + PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; + PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; + PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; + PFN_vkCmdBindPipeline vkCmdBindPipeline; + PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; + PFN_vkCmdBlitImage vkCmdBlitImage; + PFN_vkCmdClearAttachments vkCmdClearAttachments; + PFN_vkCmdClearColorImage vkCmdClearColorImage; + PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; + PFN_vkCmdCopyBuffer vkCmdCopyBuffer; + PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; + PFN_vkCmdCopyImage vkCmdCopyImage; + PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; + PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; + PFN_vkCmdDispatch vkCmdDispatch; + PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; + PFN_vkCmdDraw vkCmdDraw; + PFN_vkCmdDrawIndexed vkCmdDrawIndexed; + PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; + PFN_vkCmdDrawIndirect vkCmdDrawIndirect; + PFN_vkCmdEndQuery vkCmdEndQuery; + PFN_vkCmdEndRenderPass vkCmdEndRenderPass; + PFN_vkCmdExecuteCommands vkCmdExecuteCommands; + PFN_vkCmdFillBuffer vkCmdFillBuffer; + PFN_vkCmdNextSubpass vkCmdNextSubpass; + PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; + PFN_vkCmdPushConstants vkCmdPushConstants; + PFN_vkCmdResetEvent vkCmdResetEvent; + PFN_vkCmdResetQueryPool vkCmdResetQueryPool; + PFN_vkCmdResolveImage vkCmdResolveImage; + PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; + PFN_vkCmdSetDepthBias vkCmdSetDepthBias; + PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; + PFN_vkCmdSetEvent vkCmdSetEvent; + PFN_vkCmdSetLineWidth vkCmdSetLineWidth; + PFN_vkCmdSetScissor vkCmdSetScissor; + PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; + PFN_vkCmdSetStencilReference vkCmdSetStencilReference; + PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; + PFN_vkCmdSetViewport vkCmdSetViewport; + PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; + PFN_vkCmdWaitEvents vkCmdWaitEvents; + PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; + PFN_vkCreateBuffer vkCreateBuffer; + PFN_vkCreateBufferView vkCreateBufferView; + PFN_vkCreateCommandPool vkCreateCommandPool; + PFN_vkCreateComputePipelines vkCreateComputePipelines; + PFN_vkCreateDescriptorPool vkCreateDescriptorPool; + PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; + PFN_vkCreateEvent vkCreateEvent; + PFN_vkCreateFence vkCreateFence; + PFN_vkCreateFramebuffer vkCreateFramebuffer; + PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; + PFN_vkCreateImage vkCreateImage; + PFN_vkCreateImageView vkCreateImageView; + PFN_vkCreatePipelineCache vkCreatePipelineCache; + PFN_vkCreatePipelineLayout vkCreatePipelineLayout; + PFN_vkCreateQueryPool vkCreateQueryPool; + PFN_vkCreateRenderPass vkCreateRenderPass; + PFN_vkCreateSampler vkCreateSampler; + PFN_vkCreateSemaphore vkCreateSemaphore; + PFN_vkCreateShaderModule vkCreateShaderModule; + PFN_vkDestroyBuffer vkDestroyBuffer; + PFN_vkDestroyBufferView vkDestroyBufferView; + PFN_vkDestroyCommandPool vkDestroyCommandPool; + PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; + PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; + PFN_vkDestroyDevice vkDestroyDevice; + PFN_vkDestroyEvent vkDestroyEvent; + PFN_vkDestroyFence vkDestroyFence; + PFN_vkDestroyFramebuffer vkDestroyFramebuffer; + PFN_vkDestroyImage vkDestroyImage; + PFN_vkDestroyImageView vkDestroyImageView; + PFN_vkDestroyPipeline vkDestroyPipeline; + PFN_vkDestroyPipelineCache vkDestroyPipelineCache; + PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; + PFN_vkDestroyQueryPool vkDestroyQueryPool; + PFN_vkDestroyRenderPass vkDestroyRenderPass; + PFN_vkDestroySampler vkDestroySampler; + PFN_vkDestroySemaphore vkDestroySemaphore; + PFN_vkDestroyShaderModule vkDestroyShaderModule; + PFN_vkDeviceWaitIdle vkDeviceWaitIdle; + PFN_vkEndCommandBuffer vkEndCommandBuffer; + PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; + PFN_vkFreeCommandBuffers vkFreeCommandBuffers; + PFN_vkFreeDescriptorSets vkFreeDescriptorSets; + PFN_vkFreeMemory vkFreeMemory; + PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; + PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; + PFN_vkGetDeviceQueue vkGetDeviceQueue; + PFN_vkGetEventStatus vkGetEventStatus; + PFN_vkGetFenceStatus vkGetFenceStatus; + PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; + PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; + PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; + PFN_vkGetPipelineCacheData vkGetPipelineCacheData; + PFN_vkGetQueryPoolResults vkGetQueryPoolResults; + PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; + PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; + PFN_vkMapMemory vkMapMemory; + PFN_vkMergePipelineCaches vkMergePipelineCaches; + PFN_vkQueueBindSparse vkQueueBindSparse; + PFN_vkQueueSubmit vkQueueSubmit; + PFN_vkQueueWaitIdle vkQueueWaitIdle; + PFN_vkResetCommandBuffer vkResetCommandBuffer; + PFN_vkResetCommandPool vkResetCommandPool; + PFN_vkResetDescriptorPool vkResetDescriptorPool; + PFN_vkResetEvent vkResetEvent; + PFN_vkResetFences vkResetFences; + PFN_vkSetEvent vkSetEvent; + PFN_vkUnmapMemory vkUnmapMemory; + PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; + PFN_vkWaitForFences vkWaitForFences; +#endif /* defined(VK_VERSION_1_0) */ +#if defined(VK_VERSION_1_1) + PFN_vkBindBufferMemory2 vkBindBufferMemory2; + PFN_vkBindImageMemory2 vkBindImageMemory2; + PFN_vkCmdDispatchBase vkCmdDispatchBase; + PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; + PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; + PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; + PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; + PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; + PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; + PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; + PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; + PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; + PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; + PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; + PFN_vkTrimCommandPool vkTrimCommandPool; + PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; +#endif /* defined(VK_VERSION_1_1) */ +#if defined(VK_VERSION_1_2) + PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2; + PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount; + PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount; + PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2; + PFN_vkCmdNextSubpass2 vkCmdNextSubpass2; + PFN_vkCreateRenderPass2 vkCreateRenderPass2; + PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress; + PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress; + PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress; + PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue; + PFN_vkResetQueryPool vkResetQueryPool; + PFN_vkSignalSemaphore vkSignalSemaphore; + PFN_vkWaitSemaphores vkWaitSemaphores; +#endif /* defined(VK_VERSION_1_2) */ +#if defined(VK_VERSION_1_3) + PFN_vkCmdBeginRendering vkCmdBeginRendering; + PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2; + PFN_vkCmdBlitImage2 vkCmdBlitImage2; + PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2; + PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2; + PFN_vkCmdCopyImage2 vkCmdCopyImage2; + PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2; + PFN_vkCmdEndRendering vkCmdEndRendering; + PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2; + PFN_vkCmdResetEvent2 vkCmdResetEvent2; + PFN_vkCmdResolveImage2 vkCmdResolveImage2; + PFN_vkCmdSetCullMode vkCmdSetCullMode; + PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable; + PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable; + PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp; + PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable; + PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable; + PFN_vkCmdSetEvent2 vkCmdSetEvent2; + PFN_vkCmdSetFrontFace vkCmdSetFrontFace; + PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable; + PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology; + PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable; + PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount; + PFN_vkCmdSetStencilOp vkCmdSetStencilOp; + PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable; + PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount; + PFN_vkCmdWaitEvents2 vkCmdWaitEvents2; + PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2; + PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot; + PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot; + PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements; + PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements; + PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements; + PFN_vkGetPrivateData vkGetPrivateData; + PFN_vkQueueSubmit2 vkQueueSubmit2; + PFN_vkSetPrivateData vkSetPrivateData; +#endif /* defined(VK_VERSION_1_3) */ +#if defined(VK_AMDX_shader_enqueue) + PFN_vkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDX; + PFN_vkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDX; + PFN_vkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDX; + PFN_vkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDX; + PFN_vkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDX; + PFN_vkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDX; + PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX; +#endif /* defined(VK_AMDX_shader_enqueue) */ +#if defined(VK_AMD_buffer_marker) + PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; +#endif /* defined(VK_AMD_buffer_marker) */ +#if defined(VK_AMD_display_native_hdr) + PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD; +#endif /* defined(VK_AMD_display_native_hdr) */ +#if defined(VK_AMD_draw_indirect_count) + PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; + PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; +#endif /* defined(VK_AMD_draw_indirect_count) */ +#if defined(VK_AMD_shader_info) + PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; +#endif /* defined(VK_AMD_shader_info) */ +#if defined(VK_ANDROID_external_memory_android_hardware_buffer) + PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; + PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; +#endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ +#if defined(VK_EXT_attachment_feedback_loop_dynamic_state) + PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT; +#endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ +#if defined(VK_EXT_buffer_device_address) + PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT; +#endif /* defined(VK_EXT_buffer_device_address) */ +#if defined(VK_EXT_calibrated_timestamps) + PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; +#endif /* defined(VK_EXT_calibrated_timestamps) */ +#if defined(VK_EXT_color_write_enable) + PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT; +#endif /* defined(VK_EXT_color_write_enable) */ +#if defined(VK_EXT_conditional_rendering) + PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; + PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; +#endif /* defined(VK_EXT_conditional_rendering) */ +#if defined(VK_EXT_debug_marker) + PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; + PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; + PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; + PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; + PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; +#endif /* defined(VK_EXT_debug_marker) */ +#if defined(VK_EXT_depth_bias_control) + PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT; +#endif /* defined(VK_EXT_depth_bias_control) */ +#if defined(VK_EXT_descriptor_buffer) + PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT vkCmdBindDescriptorBufferEmbeddedSamplersEXT; + PFN_vkCmdBindDescriptorBuffersEXT vkCmdBindDescriptorBuffersEXT; + PFN_vkCmdSetDescriptorBufferOffsetsEXT vkCmdSetDescriptorBufferOffsetsEXT; + PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT vkGetBufferOpaqueCaptureDescriptorDataEXT; + PFN_vkGetDescriptorEXT vkGetDescriptorEXT; + PFN_vkGetDescriptorSetLayoutBindingOffsetEXT vkGetDescriptorSetLayoutBindingOffsetEXT; + PFN_vkGetDescriptorSetLayoutSizeEXT vkGetDescriptorSetLayoutSizeEXT; + PFN_vkGetImageOpaqueCaptureDescriptorDataEXT vkGetImageOpaqueCaptureDescriptorDataEXT; + PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT vkGetImageViewOpaqueCaptureDescriptorDataEXT; + PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT vkGetSamplerOpaqueCaptureDescriptorDataEXT; +#endif /* defined(VK_EXT_descriptor_buffer) */ +#if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) + PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT; +#endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ +#if defined(VK_EXT_device_fault) + PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT; +#endif /* defined(VK_EXT_device_fault) */ +#if defined(VK_EXT_discard_rectangles) + PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; +#endif /* defined(VK_EXT_discard_rectangles) */ +#if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 + PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT; + PFN_vkCmdSetDiscardRectangleModeEXT vkCmdSetDiscardRectangleModeEXT; +#endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ +#if defined(VK_EXT_display_control) + PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; + PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; + PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; + PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; +#endif /* defined(VK_EXT_display_control) */ +#if defined(VK_EXT_external_memory_host) + PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; +#endif /* defined(VK_EXT_external_memory_host) */ +#if defined(VK_EXT_full_screen_exclusive) + PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT; + PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT; +#endif /* defined(VK_EXT_full_screen_exclusive) */ +#if defined(VK_EXT_hdr_metadata) + PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; +#endif /* defined(VK_EXT_hdr_metadata) */ +#if defined(VK_EXT_host_image_copy) + PFN_vkCopyImageToImageEXT vkCopyImageToImageEXT; + PFN_vkCopyImageToMemoryEXT vkCopyImageToMemoryEXT; + PFN_vkCopyMemoryToImageEXT vkCopyMemoryToImageEXT; + PFN_vkTransitionImageLayoutEXT vkTransitionImageLayoutEXT; +#endif /* defined(VK_EXT_host_image_copy) */ +#if defined(VK_EXT_host_query_reset) + PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT; +#endif /* defined(VK_EXT_host_query_reset) */ +#if defined(VK_EXT_image_drm_format_modifier) + PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; +#endif /* defined(VK_EXT_image_drm_format_modifier) */ +#if defined(VK_EXT_line_rasterization) + PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT; +#endif /* defined(VK_EXT_line_rasterization) */ +#if defined(VK_EXT_mesh_shader) + PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT; + PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT; + PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT; +#endif /* defined(VK_EXT_mesh_shader) */ +#if defined(VK_EXT_metal_objects) + PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT; +#endif /* defined(VK_EXT_metal_objects) */ +#if defined(VK_EXT_multi_draw) + PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT; + PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT; +#endif /* defined(VK_EXT_multi_draw) */ +#if defined(VK_EXT_opacity_micromap) + PFN_vkBuildMicromapsEXT vkBuildMicromapsEXT; + PFN_vkCmdBuildMicromapsEXT vkCmdBuildMicromapsEXT; + PFN_vkCmdCopyMemoryToMicromapEXT vkCmdCopyMemoryToMicromapEXT; + PFN_vkCmdCopyMicromapEXT vkCmdCopyMicromapEXT; + PFN_vkCmdCopyMicromapToMemoryEXT vkCmdCopyMicromapToMemoryEXT; + PFN_vkCmdWriteMicromapsPropertiesEXT vkCmdWriteMicromapsPropertiesEXT; + PFN_vkCopyMemoryToMicromapEXT vkCopyMemoryToMicromapEXT; + PFN_vkCopyMicromapEXT vkCopyMicromapEXT; + PFN_vkCopyMicromapToMemoryEXT vkCopyMicromapToMemoryEXT; + PFN_vkCreateMicromapEXT vkCreateMicromapEXT; + PFN_vkDestroyMicromapEXT vkDestroyMicromapEXT; + PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT; + PFN_vkGetMicromapBuildSizesEXT vkGetMicromapBuildSizesEXT; + PFN_vkWriteMicromapsPropertiesEXT vkWriteMicromapsPropertiesEXT; +#endif /* defined(VK_EXT_opacity_micromap) */ +#if defined(VK_EXT_pageable_device_local_memory) + PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT; +#endif /* defined(VK_EXT_pageable_device_local_memory) */ +#if defined(VK_EXT_pipeline_properties) + PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT; +#endif /* defined(VK_EXT_pipeline_properties) */ +#if defined(VK_EXT_private_data) + PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT; + PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT; + PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT; + PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT; +#endif /* defined(VK_EXT_private_data) */ +#if defined(VK_EXT_sample_locations) + PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; +#endif /* defined(VK_EXT_sample_locations) */ +#if defined(VK_EXT_shader_module_identifier) + PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT; + PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT; +#endif /* defined(VK_EXT_shader_module_identifier) */ +#if defined(VK_EXT_shader_object) + PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT; + PFN_vkCreateShadersEXT vkCreateShadersEXT; + PFN_vkDestroyShaderEXT vkDestroyShaderEXT; + PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT; +#endif /* defined(VK_EXT_shader_object) */ +#if defined(VK_EXT_swapchain_maintenance1) + PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT; +#endif /* defined(VK_EXT_swapchain_maintenance1) */ +#if defined(VK_EXT_transform_feedback) + PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; + PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; + PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; + PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; + PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; + PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; +#endif /* defined(VK_EXT_transform_feedback) */ +#if defined(VK_EXT_validation_cache) + PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; + PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; + PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; + PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; +#endif /* defined(VK_EXT_validation_cache) */ +#if defined(VK_FUCHSIA_buffer_collection) + PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA; + PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA; + PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA; + PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA; + PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA; +#endif /* defined(VK_FUCHSIA_buffer_collection) */ +#if defined(VK_FUCHSIA_external_memory) + PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA; + PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA; +#endif /* defined(VK_FUCHSIA_external_memory) */ +#if defined(VK_FUCHSIA_external_semaphore) + PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA; + PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA; +#endif /* defined(VK_FUCHSIA_external_semaphore) */ +#if defined(VK_GOOGLE_display_timing) + PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; + PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; +#endif /* defined(VK_GOOGLE_display_timing) */ +#if defined(VK_HUAWEI_cluster_culling_shader) + PFN_vkCmdDrawClusterHUAWEI vkCmdDrawClusterHUAWEI; + PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI; +#endif /* defined(VK_HUAWEI_cluster_culling_shader) */ +#if defined(VK_HUAWEI_invocation_mask) + PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI; +#endif /* defined(VK_HUAWEI_invocation_mask) */ +#if defined(VK_HUAWEI_subpass_shading) + PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI; + PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI; +#endif /* defined(VK_HUAWEI_subpass_shading) */ +#if defined(VK_INTEL_performance_query) + PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL; + PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL; + PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL; + PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL; + PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL; + PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL; + PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL; + PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL; + PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL; +#endif /* defined(VK_INTEL_performance_query) */ +#if defined(VK_KHR_acceleration_structure) + PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR; + PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR; + PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR; + PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR; + PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR; + PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR; + PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR; + PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR; + PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR; + PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR; + PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR; + PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR; + PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR; + PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR; + PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR; + PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR; +#endif /* defined(VK_KHR_acceleration_structure) */ +#if defined(VK_KHR_bind_memory2) + PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; + PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; +#endif /* defined(VK_KHR_bind_memory2) */ +#if defined(VK_KHR_buffer_device_address) + PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR; + PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR; + PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR; +#endif /* defined(VK_KHR_buffer_device_address) */ +#if defined(VK_KHR_copy_commands2) + PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR; + PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR; + PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR; + PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR; + PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR; + PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR; +#endif /* defined(VK_KHR_copy_commands2) */ +#if defined(VK_KHR_create_renderpass2) + PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; + PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; + PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; + PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; +#endif /* defined(VK_KHR_create_renderpass2) */ +#if defined(VK_KHR_deferred_host_operations) + PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR; + PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR; + PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR; + PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR; + PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR; +#endif /* defined(VK_KHR_deferred_host_operations) */ +#if defined(VK_KHR_descriptor_update_template) + PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; + PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; + PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; +#endif /* defined(VK_KHR_descriptor_update_template) */ +#if defined(VK_KHR_device_group) + PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; + PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; + PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; +#endif /* defined(VK_KHR_device_group) */ +#if defined(VK_KHR_display_swapchain) + PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; +#endif /* defined(VK_KHR_display_swapchain) */ +#if defined(VK_KHR_draw_indirect_count) + PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; + PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; +#endif /* defined(VK_KHR_draw_indirect_count) */ +#if defined(VK_KHR_dynamic_rendering) + PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR; + PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR; +#endif /* defined(VK_KHR_dynamic_rendering) */ +#if defined(VK_KHR_external_fence_fd) + PFN_vkGetFenceFdKHR vkGetFenceFdKHR; + PFN_vkImportFenceFdKHR vkImportFenceFdKHR; +#endif /* defined(VK_KHR_external_fence_fd) */ +#if defined(VK_KHR_external_fence_win32) + PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; + PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; +#endif /* defined(VK_KHR_external_fence_win32) */ +#if defined(VK_KHR_external_memory_fd) + PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; + PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; +#endif /* defined(VK_KHR_external_memory_fd) */ +#if defined(VK_KHR_external_memory_win32) + PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; + PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; +#endif /* defined(VK_KHR_external_memory_win32) */ +#if defined(VK_KHR_external_semaphore_fd) + PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; + PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; +#endif /* defined(VK_KHR_external_semaphore_fd) */ +#if defined(VK_KHR_external_semaphore_win32) + PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; + PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; +#endif /* defined(VK_KHR_external_semaphore_win32) */ +#if defined(VK_KHR_fragment_shading_rate) + PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR; +#endif /* defined(VK_KHR_fragment_shading_rate) */ +#if defined(VK_KHR_get_memory_requirements2) + PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; + PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; + PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; +#endif /* defined(VK_KHR_get_memory_requirements2) */ +#if defined(VK_KHR_maintenance1) + PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; +#endif /* defined(VK_KHR_maintenance1) */ +#if defined(VK_KHR_maintenance3) + PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; +#endif /* defined(VK_KHR_maintenance3) */ +#if defined(VK_KHR_maintenance4) + PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR; + PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR; + PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR; +#endif /* defined(VK_KHR_maintenance4) */ +#if defined(VK_KHR_maintenance5) + PFN_vkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHR; + PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR; + PFN_vkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHR; + PFN_vkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHR; +#endif /* defined(VK_KHR_maintenance5) */ +#if defined(VK_KHR_map_memory2) + PFN_vkMapMemory2KHR vkMapMemory2KHR; + PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR; +#endif /* defined(VK_KHR_map_memory2) */ +#if defined(VK_KHR_performance_query) + PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR; + PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR; +#endif /* defined(VK_KHR_performance_query) */ +#if defined(VK_KHR_pipeline_executable_properties) + PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR; + PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR; + PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR; +#endif /* defined(VK_KHR_pipeline_executable_properties) */ +#if defined(VK_KHR_present_wait) + PFN_vkWaitForPresentKHR vkWaitForPresentKHR; +#endif /* defined(VK_KHR_present_wait) */ +#if defined(VK_KHR_push_descriptor) + PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; +#endif /* defined(VK_KHR_push_descriptor) */ +#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) + PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR; +#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ +#if defined(VK_KHR_ray_tracing_pipeline) + PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR; + PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR; + PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR; + PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR; + PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; + PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR; + PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR; +#endif /* defined(VK_KHR_ray_tracing_pipeline) */ +#if defined(VK_KHR_sampler_ycbcr_conversion) + PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; + PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; +#endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ +#if defined(VK_KHR_shared_presentable_image) + PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; +#endif /* defined(VK_KHR_shared_presentable_image) */ +#if defined(VK_KHR_swapchain) + PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; + PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; + PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; + PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; + PFN_vkQueuePresentKHR vkQueuePresentKHR; +#endif /* defined(VK_KHR_swapchain) */ +#if defined(VK_KHR_synchronization2) + PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR; + PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR; + PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR; + PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR; + PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR; + PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR; +#endif /* defined(VK_KHR_synchronization2) */ +#if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) + PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD; +#endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */ +#if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) + PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV; +#endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */ +#if defined(VK_KHR_timeline_semaphore) + PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR; + PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR; + PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR; +#endif /* defined(VK_KHR_timeline_semaphore) */ +#if defined(VK_KHR_video_decode_queue) + PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR; +#endif /* defined(VK_KHR_video_decode_queue) */ +#if defined(VK_KHR_video_encode_queue) + PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR; + PFN_vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR; +#endif /* defined(VK_KHR_video_encode_queue) */ +#if defined(VK_KHR_video_queue) + PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR; + PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR; + PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR; + PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR; + PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR; + PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR; + PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR; + PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR; + PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR; + PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR; +#endif /* defined(VK_KHR_video_queue) */ +#if defined(VK_NVX_binary_import) + PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX; + PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX; + PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX; + PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX; + PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX; +#endif /* defined(VK_NVX_binary_import) */ +#if defined(VK_NVX_image_view_handle) + PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX; + PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX; +#endif /* defined(VK_NVX_image_view_handle) */ +#if defined(VK_NV_clip_space_w_scaling) + PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; +#endif /* defined(VK_NV_clip_space_w_scaling) */ +#if defined(VK_NV_copy_memory_indirect) + PFN_vkCmdCopyMemoryIndirectNV vkCmdCopyMemoryIndirectNV; + PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV; +#endif /* defined(VK_NV_copy_memory_indirect) */ +#if defined(VK_NV_cuda_kernel_launch) + PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV; + PFN_vkCreateCudaFunctionNV vkCreateCudaFunctionNV; + PFN_vkCreateCudaModuleNV vkCreateCudaModuleNV; + PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV; + PFN_vkDestroyCudaModuleNV vkDestroyCudaModuleNV; + PFN_vkGetCudaModuleCacheNV vkGetCudaModuleCacheNV; +#endif /* defined(VK_NV_cuda_kernel_launch) */ +#if defined(VK_NV_device_diagnostic_checkpoints) + PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; + PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; +#endif /* defined(VK_NV_device_diagnostic_checkpoints) */ +#if defined(VK_NV_device_generated_commands) + PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV; + PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV; + PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV; + PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV; + PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV; + PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV; +#endif /* defined(VK_NV_device_generated_commands) */ +#if defined(VK_NV_device_generated_commands_compute) + PFN_vkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNV; + PFN_vkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNV; + PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV; +#endif /* defined(VK_NV_device_generated_commands_compute) */ +#if defined(VK_NV_external_memory_rdma) + PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV; +#endif /* defined(VK_NV_external_memory_rdma) */ +#if defined(VK_NV_external_memory_win32) + PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; +#endif /* defined(VK_NV_external_memory_win32) */ +#if defined(VK_NV_fragment_shading_rate_enums) + PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV; +#endif /* defined(VK_NV_fragment_shading_rate_enums) */ +#if defined(VK_NV_low_latency2) + PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV; + PFN_vkLatencySleepNV vkLatencySleepNV; + PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV; + PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV; + PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV; +#endif /* defined(VK_NV_low_latency2) */ +#if defined(VK_NV_memory_decompression) + PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV; + PFN_vkCmdDecompressMemoryNV vkCmdDecompressMemoryNV; +#endif /* defined(VK_NV_memory_decompression) */ +#if defined(VK_NV_mesh_shader) + PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; + PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; + PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; +#endif /* defined(VK_NV_mesh_shader) */ +#if defined(VK_NV_optical_flow) + PFN_vkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNV; + PFN_vkCmdOpticalFlowExecuteNV vkCmdOpticalFlowExecuteNV; + PFN_vkCreateOpticalFlowSessionNV vkCreateOpticalFlowSessionNV; + PFN_vkDestroyOpticalFlowSessionNV vkDestroyOpticalFlowSessionNV; +#endif /* defined(VK_NV_optical_flow) */ +#if defined(VK_NV_ray_tracing) + PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; + PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; + PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; + PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; + PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; + PFN_vkCompileDeferredNV vkCompileDeferredNV; + PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; + PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; + PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; + PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; + PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; + PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; +#endif /* defined(VK_NV_ray_tracing) */ +#if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 + PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV; +#endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ +#if defined(VK_NV_scissor_exclusive) + PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; +#endif /* defined(VK_NV_scissor_exclusive) */ +#if defined(VK_NV_shading_rate_image) + PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; + PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; + PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; +#endif /* defined(VK_NV_shading_rate_image) */ +#if defined(VK_QCOM_tile_properties) + PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM; + PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM; +#endif /* defined(VK_QCOM_tile_properties) */ +#if defined(VK_QNX_external_memory_screen_buffer) + PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX; +#endif /* defined(VK_QNX_external_memory_screen_buffer) */ +#if defined(VK_VALVE_descriptor_set_host_mapping) + PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; + PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; +#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ +#if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) + PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT; + PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT; + PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT; + PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT; + PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT; + PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT; + PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT; + PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT; + PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT; + PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT; + PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT; + PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT; +#endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) + PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT; + PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT; + PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT; + PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT; + PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT; +#endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) + PFN_vkCmdSetAlphaToCoverageEnableEXT vkCmdSetAlphaToCoverageEnableEXT; + PFN_vkCmdSetAlphaToOneEnableEXT vkCmdSetAlphaToOneEnableEXT; + PFN_vkCmdSetColorBlendAdvancedEXT vkCmdSetColorBlendAdvancedEXT; + PFN_vkCmdSetColorBlendEnableEXT vkCmdSetColorBlendEnableEXT; + PFN_vkCmdSetColorBlendEquationEXT vkCmdSetColorBlendEquationEXT; + PFN_vkCmdSetColorWriteMaskEXT vkCmdSetColorWriteMaskEXT; + PFN_vkCmdSetConservativeRasterizationModeEXT vkCmdSetConservativeRasterizationModeEXT; + PFN_vkCmdSetDepthClampEnableEXT vkCmdSetDepthClampEnableEXT; + PFN_vkCmdSetDepthClipEnableEXT vkCmdSetDepthClipEnableEXT; + PFN_vkCmdSetDepthClipNegativeOneToOneEXT vkCmdSetDepthClipNegativeOneToOneEXT; + PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT; + PFN_vkCmdSetLineRasterizationModeEXT vkCmdSetLineRasterizationModeEXT; + PFN_vkCmdSetLineStippleEnableEXT vkCmdSetLineStippleEnableEXT; + PFN_vkCmdSetLogicOpEnableEXT vkCmdSetLogicOpEnableEXT; + PFN_vkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXT; + PFN_vkCmdSetProvokingVertexModeEXT vkCmdSetProvokingVertexModeEXT; + PFN_vkCmdSetRasterizationSamplesEXT vkCmdSetRasterizationSamplesEXT; + PFN_vkCmdSetRasterizationStreamEXT vkCmdSetRasterizationStreamEXT; + PFN_vkCmdSetSampleLocationsEnableEXT vkCmdSetSampleLocationsEnableEXT; + PFN_vkCmdSetSampleMaskEXT vkCmdSetSampleMaskEXT; + PFN_vkCmdSetTessellationDomainOriginEXT vkCmdSetTessellationDomainOriginEXT; +#endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) + PFN_vkCmdSetViewportWScalingEnableNV vkCmdSetViewportWScalingEnableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) + PFN_vkCmdSetViewportSwizzleNV vkCmdSetViewportSwizzleNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) + PFN_vkCmdSetCoverageToColorEnableNV vkCmdSetCoverageToColorEnableNV; + PFN_vkCmdSetCoverageToColorLocationNV vkCmdSetCoverageToColorLocationNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) + PFN_vkCmdSetCoverageModulationModeNV vkCmdSetCoverageModulationModeNV; + PFN_vkCmdSetCoverageModulationTableEnableNV vkCmdSetCoverageModulationTableEnableNV; + PFN_vkCmdSetCoverageModulationTableNV vkCmdSetCoverageModulationTableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) + PFN_vkCmdSetShadingRateImageEnableNV vkCmdSetShadingRateImageEnableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) + PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) + PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ +#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) + PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; +#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ +#if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) + PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT; +#endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ +#if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) + PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT; +#endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ +#if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) + PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; +#endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) + PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; + PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) + PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ + /* VOLK_GENERATE_DEVICE_TABLE */ +}; + +/* VOLK_GENERATE_PROTOTYPES_H */ +#if defined(VK_VERSION_1_0) +extern PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers; +extern PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets; +extern PFN_vkAllocateMemory vkAllocateMemory; +extern PFN_vkBeginCommandBuffer vkBeginCommandBuffer; +extern PFN_vkBindBufferMemory vkBindBufferMemory; +extern PFN_vkBindImageMemory vkBindImageMemory; +extern PFN_vkCmdBeginQuery vkCmdBeginQuery; +extern PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass; +extern PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets; +extern PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer; +extern PFN_vkCmdBindPipeline vkCmdBindPipeline; +extern PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers; +extern PFN_vkCmdBlitImage vkCmdBlitImage; +extern PFN_vkCmdClearAttachments vkCmdClearAttachments; +extern PFN_vkCmdClearColorImage vkCmdClearColorImage; +extern PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage; +extern PFN_vkCmdCopyBuffer vkCmdCopyBuffer; +extern PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage; +extern PFN_vkCmdCopyImage vkCmdCopyImage; +extern PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer; +extern PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults; +extern PFN_vkCmdDispatch vkCmdDispatch; +extern PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect; +extern PFN_vkCmdDraw vkCmdDraw; +extern PFN_vkCmdDrawIndexed vkCmdDrawIndexed; +extern PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect; +extern PFN_vkCmdDrawIndirect vkCmdDrawIndirect; +extern PFN_vkCmdEndQuery vkCmdEndQuery; +extern PFN_vkCmdEndRenderPass vkCmdEndRenderPass; +extern PFN_vkCmdExecuteCommands vkCmdExecuteCommands; +extern PFN_vkCmdFillBuffer vkCmdFillBuffer; +extern PFN_vkCmdNextSubpass vkCmdNextSubpass; +extern PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier; +extern PFN_vkCmdPushConstants vkCmdPushConstants; +extern PFN_vkCmdResetEvent vkCmdResetEvent; +extern PFN_vkCmdResetQueryPool vkCmdResetQueryPool; +extern PFN_vkCmdResolveImage vkCmdResolveImage; +extern PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants; +extern PFN_vkCmdSetDepthBias vkCmdSetDepthBias; +extern PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds; +extern PFN_vkCmdSetEvent vkCmdSetEvent; +extern PFN_vkCmdSetLineWidth vkCmdSetLineWidth; +extern PFN_vkCmdSetScissor vkCmdSetScissor; +extern PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask; +extern PFN_vkCmdSetStencilReference vkCmdSetStencilReference; +extern PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask; +extern PFN_vkCmdSetViewport vkCmdSetViewport; +extern PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer; +extern PFN_vkCmdWaitEvents vkCmdWaitEvents; +extern PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp; +extern PFN_vkCreateBuffer vkCreateBuffer; +extern PFN_vkCreateBufferView vkCreateBufferView; +extern PFN_vkCreateCommandPool vkCreateCommandPool; +extern PFN_vkCreateComputePipelines vkCreateComputePipelines; +extern PFN_vkCreateDescriptorPool vkCreateDescriptorPool; +extern PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout; +extern PFN_vkCreateDevice vkCreateDevice; +extern PFN_vkCreateEvent vkCreateEvent; +extern PFN_vkCreateFence vkCreateFence; +extern PFN_vkCreateFramebuffer vkCreateFramebuffer; +extern PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines; +extern PFN_vkCreateImage vkCreateImage; +extern PFN_vkCreateImageView vkCreateImageView; +extern PFN_vkCreateInstance vkCreateInstance; +extern PFN_vkCreatePipelineCache vkCreatePipelineCache; +extern PFN_vkCreatePipelineLayout vkCreatePipelineLayout; +extern PFN_vkCreateQueryPool vkCreateQueryPool; +extern PFN_vkCreateRenderPass vkCreateRenderPass; +extern PFN_vkCreateSampler vkCreateSampler; +extern PFN_vkCreateSemaphore vkCreateSemaphore; +extern PFN_vkCreateShaderModule vkCreateShaderModule; +extern PFN_vkDestroyBuffer vkDestroyBuffer; +extern PFN_vkDestroyBufferView vkDestroyBufferView; +extern PFN_vkDestroyCommandPool vkDestroyCommandPool; +extern PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool; +extern PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout; +extern PFN_vkDestroyDevice vkDestroyDevice; +extern PFN_vkDestroyEvent vkDestroyEvent; +extern PFN_vkDestroyFence vkDestroyFence; +extern PFN_vkDestroyFramebuffer vkDestroyFramebuffer; +extern PFN_vkDestroyImage vkDestroyImage; +extern PFN_vkDestroyImageView vkDestroyImageView; +extern PFN_vkDestroyInstance vkDestroyInstance; +extern PFN_vkDestroyPipeline vkDestroyPipeline; +extern PFN_vkDestroyPipelineCache vkDestroyPipelineCache; +extern PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout; +extern PFN_vkDestroyQueryPool vkDestroyQueryPool; +extern PFN_vkDestroyRenderPass vkDestroyRenderPass; +extern PFN_vkDestroySampler vkDestroySampler; +extern PFN_vkDestroySemaphore vkDestroySemaphore; +extern PFN_vkDestroyShaderModule vkDestroyShaderModule; +extern PFN_vkDeviceWaitIdle vkDeviceWaitIdle; +extern PFN_vkEndCommandBuffer vkEndCommandBuffer; +extern PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; +extern PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties; +extern PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; +extern PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties; +extern PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices; +extern PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges; +extern PFN_vkFreeCommandBuffers vkFreeCommandBuffers; +extern PFN_vkFreeDescriptorSets vkFreeDescriptorSets; +extern PFN_vkFreeMemory vkFreeMemory; +extern PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements; +extern PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment; +extern PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr; +extern PFN_vkGetDeviceQueue vkGetDeviceQueue; +extern PFN_vkGetEventStatus vkGetEventStatus; +extern PFN_vkGetFenceStatus vkGetFenceStatus; +extern PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements; +extern PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements; +extern PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout; +extern PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr; +extern PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures; +extern PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties; +extern PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties; +extern PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties; +extern PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties; +extern PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties; +extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties; +extern PFN_vkGetPipelineCacheData vkGetPipelineCacheData; +extern PFN_vkGetQueryPoolResults vkGetQueryPoolResults; +extern PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity; +extern PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges; +extern PFN_vkMapMemory vkMapMemory; +extern PFN_vkMergePipelineCaches vkMergePipelineCaches; +extern PFN_vkQueueBindSparse vkQueueBindSparse; +extern PFN_vkQueueSubmit vkQueueSubmit; +extern PFN_vkQueueWaitIdle vkQueueWaitIdle; +extern PFN_vkResetCommandBuffer vkResetCommandBuffer; +extern PFN_vkResetCommandPool vkResetCommandPool; +extern PFN_vkResetDescriptorPool vkResetDescriptorPool; +extern PFN_vkResetEvent vkResetEvent; +extern PFN_vkResetFences vkResetFences; +extern PFN_vkSetEvent vkSetEvent; +extern PFN_vkUnmapMemory vkUnmapMemory; +extern PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets; +extern PFN_vkWaitForFences vkWaitForFences; +#endif /* defined(VK_VERSION_1_0) */ +#if defined(VK_VERSION_1_1) +extern PFN_vkBindBufferMemory2 vkBindBufferMemory2; +extern PFN_vkBindImageMemory2 vkBindImageMemory2; +extern PFN_vkCmdDispatchBase vkCmdDispatchBase; +extern PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask; +extern PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate; +extern PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion; +extern PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate; +extern PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion; +extern PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion; +extern PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups; +extern PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2; +extern PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport; +extern PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures; +extern PFN_vkGetDeviceQueue2 vkGetDeviceQueue2; +extern PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2; +extern PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2; +extern PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties; +extern PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties; +extern PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties; +extern PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2; +extern PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2; +extern PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2; +extern PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2; +extern PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2; +extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2; +extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2; +extern PFN_vkTrimCommandPool vkTrimCommandPool; +extern PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate; +#endif /* defined(VK_VERSION_1_1) */ +#if defined(VK_VERSION_1_2) +extern PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2; +extern PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount; +extern PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount; +extern PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2; +extern PFN_vkCmdNextSubpass2 vkCmdNextSubpass2; +extern PFN_vkCreateRenderPass2 vkCreateRenderPass2; +extern PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress; +extern PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress; +extern PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress; +extern PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue; +extern PFN_vkResetQueryPool vkResetQueryPool; +extern PFN_vkSignalSemaphore vkSignalSemaphore; +extern PFN_vkWaitSemaphores vkWaitSemaphores; +#endif /* defined(VK_VERSION_1_2) */ +#if defined(VK_VERSION_1_3) +extern PFN_vkCmdBeginRendering vkCmdBeginRendering; +extern PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2; +extern PFN_vkCmdBlitImage2 vkCmdBlitImage2; +extern PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2; +extern PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2; +extern PFN_vkCmdCopyImage2 vkCmdCopyImage2; +extern PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2; +extern PFN_vkCmdEndRendering vkCmdEndRendering; +extern PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2; +extern PFN_vkCmdResetEvent2 vkCmdResetEvent2; +extern PFN_vkCmdResolveImage2 vkCmdResolveImage2; +extern PFN_vkCmdSetCullMode vkCmdSetCullMode; +extern PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable; +extern PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable; +extern PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp; +extern PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable; +extern PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable; +extern PFN_vkCmdSetEvent2 vkCmdSetEvent2; +extern PFN_vkCmdSetFrontFace vkCmdSetFrontFace; +extern PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable; +extern PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology; +extern PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable; +extern PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount; +extern PFN_vkCmdSetStencilOp vkCmdSetStencilOp; +extern PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable; +extern PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount; +extern PFN_vkCmdWaitEvents2 vkCmdWaitEvents2; +extern PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2; +extern PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot; +extern PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot; +extern PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements; +extern PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements; +extern PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements; +extern PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties; +extern PFN_vkGetPrivateData vkGetPrivateData; +extern PFN_vkQueueSubmit2 vkQueueSubmit2; +extern PFN_vkSetPrivateData vkSetPrivateData; +#endif /* defined(VK_VERSION_1_3) */ +#if defined(VK_AMDX_shader_enqueue) +extern PFN_vkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDX; +extern PFN_vkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDX; +extern PFN_vkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDX; +extern PFN_vkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDX; +extern PFN_vkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDX; +extern PFN_vkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDX; +extern PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX; +#endif /* defined(VK_AMDX_shader_enqueue) */ +#if defined(VK_AMD_buffer_marker) +extern PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD; +#endif /* defined(VK_AMD_buffer_marker) */ +#if defined(VK_AMD_display_native_hdr) +extern PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD; +#endif /* defined(VK_AMD_display_native_hdr) */ +#if defined(VK_AMD_draw_indirect_count) +extern PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD; +extern PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD; +#endif /* defined(VK_AMD_draw_indirect_count) */ +#if defined(VK_AMD_shader_info) +extern PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD; +#endif /* defined(VK_AMD_shader_info) */ +#if defined(VK_ANDROID_external_memory_android_hardware_buffer) +extern PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID; +extern PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID; +#endif /* defined(VK_ANDROID_external_memory_android_hardware_buffer) */ +#if defined(VK_EXT_acquire_drm_display) +extern PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT; +extern PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT; +#endif /* defined(VK_EXT_acquire_drm_display) */ +#if defined(VK_EXT_acquire_xlib_display) +extern PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT; +extern PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT; +#endif /* defined(VK_EXT_acquire_xlib_display) */ +#if defined(VK_EXT_attachment_feedback_loop_dynamic_state) +extern PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT; +#endif /* defined(VK_EXT_attachment_feedback_loop_dynamic_state) */ +#if defined(VK_EXT_buffer_device_address) +extern PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT; +#endif /* defined(VK_EXT_buffer_device_address) */ +#if defined(VK_EXT_calibrated_timestamps) +extern PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT; +extern PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; +#endif /* defined(VK_EXT_calibrated_timestamps) */ +#if defined(VK_EXT_color_write_enable) +extern PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT; +#endif /* defined(VK_EXT_color_write_enable) */ +#if defined(VK_EXT_conditional_rendering) +extern PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT; +extern PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT; +#endif /* defined(VK_EXT_conditional_rendering) */ +#if defined(VK_EXT_debug_marker) +extern PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT; +extern PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT; +extern PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT; +extern PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT; +extern PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT; +#endif /* defined(VK_EXT_debug_marker) */ +#if defined(VK_EXT_debug_report) +extern PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT; +extern PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT; +extern PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT; +#endif /* defined(VK_EXT_debug_report) */ +#if defined(VK_EXT_debug_utils) +extern PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT; +extern PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT; +extern PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT; +extern PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT; +extern PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT; +extern PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT; +extern PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT; +extern PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT; +extern PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT; +extern PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT; +extern PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT; +#endif /* defined(VK_EXT_debug_utils) */ +#if defined(VK_EXT_depth_bias_control) +extern PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT; +#endif /* defined(VK_EXT_depth_bias_control) */ +#if defined(VK_EXT_descriptor_buffer) +extern PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT vkCmdBindDescriptorBufferEmbeddedSamplersEXT; +extern PFN_vkCmdBindDescriptorBuffersEXT vkCmdBindDescriptorBuffersEXT; +extern PFN_vkCmdSetDescriptorBufferOffsetsEXT vkCmdSetDescriptorBufferOffsetsEXT; +extern PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT vkGetBufferOpaqueCaptureDescriptorDataEXT; +extern PFN_vkGetDescriptorEXT vkGetDescriptorEXT; +extern PFN_vkGetDescriptorSetLayoutBindingOffsetEXT vkGetDescriptorSetLayoutBindingOffsetEXT; +extern PFN_vkGetDescriptorSetLayoutSizeEXT vkGetDescriptorSetLayoutSizeEXT; +extern PFN_vkGetImageOpaqueCaptureDescriptorDataEXT vkGetImageOpaqueCaptureDescriptorDataEXT; +extern PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT vkGetImageViewOpaqueCaptureDescriptorDataEXT; +extern PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT vkGetSamplerOpaqueCaptureDescriptorDataEXT; +#endif /* defined(VK_EXT_descriptor_buffer) */ +#if defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) +extern PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT; +#endif /* defined(VK_EXT_descriptor_buffer) && (defined(VK_KHR_acceleration_structure) || defined(VK_NV_ray_tracing)) */ +#if defined(VK_EXT_device_fault) +extern PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT; +#endif /* defined(VK_EXT_device_fault) */ +#if defined(VK_EXT_direct_mode_display) +extern PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT; +#endif /* defined(VK_EXT_direct_mode_display) */ +#if defined(VK_EXT_directfb_surface) +extern PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT; +extern PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT; +#endif /* defined(VK_EXT_directfb_surface) */ +#if defined(VK_EXT_discard_rectangles) +extern PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT; +#endif /* defined(VK_EXT_discard_rectangles) */ +#if defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 +extern PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT; +extern PFN_vkCmdSetDiscardRectangleModeEXT vkCmdSetDiscardRectangleModeEXT; +#endif /* defined(VK_EXT_discard_rectangles) && VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION >= 2 */ +#if defined(VK_EXT_display_control) +extern PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT; +extern PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT; +extern PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT; +extern PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT; +#endif /* defined(VK_EXT_display_control) */ +#if defined(VK_EXT_display_surface_counter) +extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT; +#endif /* defined(VK_EXT_display_surface_counter) */ +#if defined(VK_EXT_external_memory_host) +extern PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT; +#endif /* defined(VK_EXT_external_memory_host) */ +#if defined(VK_EXT_full_screen_exclusive) +extern PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT; +extern PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT; +extern PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT; +#endif /* defined(VK_EXT_full_screen_exclusive) */ +#if defined(VK_EXT_hdr_metadata) +extern PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT; +#endif /* defined(VK_EXT_hdr_metadata) */ +#if defined(VK_EXT_headless_surface) +extern PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT; +#endif /* defined(VK_EXT_headless_surface) */ +#if defined(VK_EXT_host_image_copy) +extern PFN_vkCopyImageToImageEXT vkCopyImageToImageEXT; +extern PFN_vkCopyImageToMemoryEXT vkCopyImageToMemoryEXT; +extern PFN_vkCopyMemoryToImageEXT vkCopyMemoryToImageEXT; +extern PFN_vkTransitionImageLayoutEXT vkTransitionImageLayoutEXT; +#endif /* defined(VK_EXT_host_image_copy) */ +#if defined(VK_EXT_host_query_reset) +extern PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT; +#endif /* defined(VK_EXT_host_query_reset) */ +#if defined(VK_EXT_image_drm_format_modifier) +extern PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT; +#endif /* defined(VK_EXT_image_drm_format_modifier) */ +#if defined(VK_EXT_line_rasterization) +extern PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT; +#endif /* defined(VK_EXT_line_rasterization) */ +#if defined(VK_EXT_mesh_shader) +extern PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT; +extern PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT; +extern PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT; +#endif /* defined(VK_EXT_mesh_shader) */ +#if defined(VK_EXT_metal_objects) +extern PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT; +#endif /* defined(VK_EXT_metal_objects) */ +#if defined(VK_EXT_metal_surface) +extern PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT; +#endif /* defined(VK_EXT_metal_surface) */ +#if defined(VK_EXT_multi_draw) +extern PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT; +extern PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT; +#endif /* defined(VK_EXT_multi_draw) */ +#if defined(VK_EXT_opacity_micromap) +extern PFN_vkBuildMicromapsEXT vkBuildMicromapsEXT; +extern PFN_vkCmdBuildMicromapsEXT vkCmdBuildMicromapsEXT; +extern PFN_vkCmdCopyMemoryToMicromapEXT vkCmdCopyMemoryToMicromapEXT; +extern PFN_vkCmdCopyMicromapEXT vkCmdCopyMicromapEXT; +extern PFN_vkCmdCopyMicromapToMemoryEXT vkCmdCopyMicromapToMemoryEXT; +extern PFN_vkCmdWriteMicromapsPropertiesEXT vkCmdWriteMicromapsPropertiesEXT; +extern PFN_vkCopyMemoryToMicromapEXT vkCopyMemoryToMicromapEXT; +extern PFN_vkCopyMicromapEXT vkCopyMicromapEXT; +extern PFN_vkCopyMicromapToMemoryEXT vkCopyMicromapToMemoryEXT; +extern PFN_vkCreateMicromapEXT vkCreateMicromapEXT; +extern PFN_vkDestroyMicromapEXT vkDestroyMicromapEXT; +extern PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT; +extern PFN_vkGetMicromapBuildSizesEXT vkGetMicromapBuildSizesEXT; +extern PFN_vkWriteMicromapsPropertiesEXT vkWriteMicromapsPropertiesEXT; +#endif /* defined(VK_EXT_opacity_micromap) */ +#if defined(VK_EXT_pageable_device_local_memory) +extern PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT; +#endif /* defined(VK_EXT_pageable_device_local_memory) */ +#if defined(VK_EXT_pipeline_properties) +extern PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT; +#endif /* defined(VK_EXT_pipeline_properties) */ +#if defined(VK_EXT_private_data) +extern PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT; +extern PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT; +extern PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT; +extern PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT; +#endif /* defined(VK_EXT_private_data) */ +#if defined(VK_EXT_sample_locations) +extern PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT; +extern PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT; +#endif /* defined(VK_EXT_sample_locations) */ +#if defined(VK_EXT_shader_module_identifier) +extern PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT; +extern PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT; +#endif /* defined(VK_EXT_shader_module_identifier) */ +#if defined(VK_EXT_shader_object) +extern PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT; +extern PFN_vkCreateShadersEXT vkCreateShadersEXT; +extern PFN_vkDestroyShaderEXT vkDestroyShaderEXT; +extern PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT; +#endif /* defined(VK_EXT_shader_object) */ +#if defined(VK_EXT_swapchain_maintenance1) +extern PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT; +#endif /* defined(VK_EXT_swapchain_maintenance1) */ +#if defined(VK_EXT_tooling_info) +extern PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT; +#endif /* defined(VK_EXT_tooling_info) */ +#if defined(VK_EXT_transform_feedback) +extern PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT; +extern PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT; +extern PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT; +extern PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT; +extern PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT; +extern PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT; +#endif /* defined(VK_EXT_transform_feedback) */ +#if defined(VK_EXT_validation_cache) +extern PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT; +extern PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT; +extern PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT; +extern PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT; +#endif /* defined(VK_EXT_validation_cache) */ +#if defined(VK_FUCHSIA_buffer_collection) +extern PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA; +extern PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA; +extern PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA; +extern PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA; +extern PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA; +#endif /* defined(VK_FUCHSIA_buffer_collection) */ +#if defined(VK_FUCHSIA_external_memory) +extern PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA; +extern PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA; +#endif /* defined(VK_FUCHSIA_external_memory) */ +#if defined(VK_FUCHSIA_external_semaphore) +extern PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA; +extern PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA; +#endif /* defined(VK_FUCHSIA_external_semaphore) */ +#if defined(VK_FUCHSIA_imagepipe_surface) +extern PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA; +#endif /* defined(VK_FUCHSIA_imagepipe_surface) */ +#if defined(VK_GGP_stream_descriptor_surface) +extern PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP; +#endif /* defined(VK_GGP_stream_descriptor_surface) */ +#if defined(VK_GOOGLE_display_timing) +extern PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE; +extern PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE; +#endif /* defined(VK_GOOGLE_display_timing) */ +#if defined(VK_HUAWEI_cluster_culling_shader) +extern PFN_vkCmdDrawClusterHUAWEI vkCmdDrawClusterHUAWEI; +extern PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI; +#endif /* defined(VK_HUAWEI_cluster_culling_shader) */ +#if defined(VK_HUAWEI_invocation_mask) +extern PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI; +#endif /* defined(VK_HUAWEI_invocation_mask) */ +#if defined(VK_HUAWEI_subpass_shading) +extern PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI; +extern PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI; +#endif /* defined(VK_HUAWEI_subpass_shading) */ +#if defined(VK_INTEL_performance_query) +extern PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL; +extern PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL; +extern PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL; +extern PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL; +extern PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL; +extern PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL; +extern PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL; +extern PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL; +extern PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL; +#endif /* defined(VK_INTEL_performance_query) */ +#if defined(VK_KHR_acceleration_structure) +extern PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR; +extern PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR; +extern PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR; +extern PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR; +extern PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR; +extern PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR; +extern PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR; +extern PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR; +extern PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR; +extern PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR; +extern PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR; +extern PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR; +extern PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR; +extern PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR; +extern PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR; +extern PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR; +#endif /* defined(VK_KHR_acceleration_structure) */ +#if defined(VK_KHR_android_surface) +extern PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR; +#endif /* defined(VK_KHR_android_surface) */ +#if defined(VK_KHR_bind_memory2) +extern PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR; +extern PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR; +#endif /* defined(VK_KHR_bind_memory2) */ +#if defined(VK_KHR_buffer_device_address) +extern PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR; +extern PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR; +extern PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR; +#endif /* defined(VK_KHR_buffer_device_address) */ +#if defined(VK_KHR_cooperative_matrix) +extern PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR; +#endif /* defined(VK_KHR_cooperative_matrix) */ +#if defined(VK_KHR_copy_commands2) +extern PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR; +extern PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR; +extern PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR; +extern PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR; +extern PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR; +extern PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR; +#endif /* defined(VK_KHR_copy_commands2) */ +#if defined(VK_KHR_create_renderpass2) +extern PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR; +extern PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR; +extern PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR; +extern PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR; +#endif /* defined(VK_KHR_create_renderpass2) */ +#if defined(VK_KHR_deferred_host_operations) +extern PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR; +extern PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR; +extern PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR; +extern PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR; +extern PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR; +#endif /* defined(VK_KHR_deferred_host_operations) */ +#if defined(VK_KHR_descriptor_update_template) +extern PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR; +extern PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR; +extern PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR; +#endif /* defined(VK_KHR_descriptor_update_template) */ +#if defined(VK_KHR_device_group) +extern PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR; +extern PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR; +extern PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR; +#endif /* defined(VK_KHR_device_group) */ +#if defined(VK_KHR_device_group_creation) +extern PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR; +#endif /* defined(VK_KHR_device_group_creation) */ +#if defined(VK_KHR_display) +extern PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR; +extern PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR; +extern PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR; +extern PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR; +extern PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR; +extern PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR; +extern PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR; +#endif /* defined(VK_KHR_display) */ +#if defined(VK_KHR_display_swapchain) +extern PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR; +#endif /* defined(VK_KHR_display_swapchain) */ +#if defined(VK_KHR_draw_indirect_count) +extern PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR; +extern PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR; +#endif /* defined(VK_KHR_draw_indirect_count) */ +#if defined(VK_KHR_dynamic_rendering) +extern PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR; +extern PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR; +#endif /* defined(VK_KHR_dynamic_rendering) */ +#if defined(VK_KHR_external_fence_capabilities) +extern PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR; +#endif /* defined(VK_KHR_external_fence_capabilities) */ +#if defined(VK_KHR_external_fence_fd) +extern PFN_vkGetFenceFdKHR vkGetFenceFdKHR; +extern PFN_vkImportFenceFdKHR vkImportFenceFdKHR; +#endif /* defined(VK_KHR_external_fence_fd) */ +#if defined(VK_KHR_external_fence_win32) +extern PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR; +extern PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR; +#endif /* defined(VK_KHR_external_fence_win32) */ +#if defined(VK_KHR_external_memory_capabilities) +extern PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR; +#endif /* defined(VK_KHR_external_memory_capabilities) */ +#if defined(VK_KHR_external_memory_fd) +extern PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR; +extern PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR; +#endif /* defined(VK_KHR_external_memory_fd) */ +#if defined(VK_KHR_external_memory_win32) +extern PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR; +extern PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR; +#endif /* defined(VK_KHR_external_memory_win32) */ +#if defined(VK_KHR_external_semaphore_capabilities) +extern PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; +#endif /* defined(VK_KHR_external_semaphore_capabilities) */ +#if defined(VK_KHR_external_semaphore_fd) +extern PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR; +extern PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR; +#endif /* defined(VK_KHR_external_semaphore_fd) */ +#if defined(VK_KHR_external_semaphore_win32) +extern PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR; +extern PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR; +#endif /* defined(VK_KHR_external_semaphore_win32) */ +#if defined(VK_KHR_fragment_shading_rate) +extern PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR; +extern PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR; +#endif /* defined(VK_KHR_fragment_shading_rate) */ +#if defined(VK_KHR_get_display_properties2) +extern PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR; +extern PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR; +extern PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR; +extern PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR; +#endif /* defined(VK_KHR_get_display_properties2) */ +#if defined(VK_KHR_get_memory_requirements2) +extern PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR; +extern PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR; +extern PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR; +#endif /* defined(VK_KHR_get_memory_requirements2) */ +#if defined(VK_KHR_get_physical_device_properties2) +extern PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR; +extern PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR; +extern PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR; +extern PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR; +extern PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR; +extern PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR; +extern PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR; +#endif /* defined(VK_KHR_get_physical_device_properties2) */ +#if defined(VK_KHR_get_surface_capabilities2) +extern PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR; +extern PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR; +#endif /* defined(VK_KHR_get_surface_capabilities2) */ +#if defined(VK_KHR_maintenance1) +extern PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR; +#endif /* defined(VK_KHR_maintenance1) */ +#if defined(VK_KHR_maintenance3) +extern PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR; +#endif /* defined(VK_KHR_maintenance3) */ +#if defined(VK_KHR_maintenance4) +extern PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR; +extern PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR; +extern PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR; +#endif /* defined(VK_KHR_maintenance4) */ +#if defined(VK_KHR_maintenance5) +extern PFN_vkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHR; +extern PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR; +extern PFN_vkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHR; +extern PFN_vkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHR; +#endif /* defined(VK_KHR_maintenance5) */ +#if defined(VK_KHR_map_memory2) +extern PFN_vkMapMemory2KHR vkMapMemory2KHR; +extern PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR; +#endif /* defined(VK_KHR_map_memory2) */ +#if defined(VK_KHR_performance_query) +extern PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR; +extern PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR; +extern PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR; +extern PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR; +#endif /* defined(VK_KHR_performance_query) */ +#if defined(VK_KHR_pipeline_executable_properties) +extern PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR; +extern PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR; +extern PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR; +#endif /* defined(VK_KHR_pipeline_executable_properties) */ +#if defined(VK_KHR_present_wait) +extern PFN_vkWaitForPresentKHR vkWaitForPresentKHR; +#endif /* defined(VK_KHR_present_wait) */ +#if defined(VK_KHR_push_descriptor) +extern PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR; +#endif /* defined(VK_KHR_push_descriptor) */ +#if defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) +extern PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR; +#endif /* defined(VK_KHR_ray_tracing_maintenance1) && defined(VK_KHR_ray_tracing_pipeline) */ +#if defined(VK_KHR_ray_tracing_pipeline) +extern PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR; +extern PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR; +extern PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR; +extern PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR; +extern PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; +extern PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR; +extern PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR; +#endif /* defined(VK_KHR_ray_tracing_pipeline) */ +#if defined(VK_KHR_sampler_ycbcr_conversion) +extern PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR; +extern PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR; +#endif /* defined(VK_KHR_sampler_ycbcr_conversion) */ +#if defined(VK_KHR_shared_presentable_image) +extern PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR; +#endif /* defined(VK_KHR_shared_presentable_image) */ +#if defined(VK_KHR_surface) +extern PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR; +extern PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR; +extern PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR; +extern PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR; +extern PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR; +#endif /* defined(VK_KHR_surface) */ +#if defined(VK_KHR_swapchain) +extern PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR; +extern PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR; +extern PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR; +extern PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR; +extern PFN_vkQueuePresentKHR vkQueuePresentKHR; +#endif /* defined(VK_KHR_swapchain) */ +#if defined(VK_KHR_synchronization2) +extern PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR; +extern PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR; +extern PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR; +extern PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR; +extern PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR; +extern PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR; +#endif /* defined(VK_KHR_synchronization2) */ +#if defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) +extern PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD; +#endif /* defined(VK_KHR_synchronization2) && defined(VK_AMD_buffer_marker) */ +#if defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) +extern PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV; +#endif /* defined(VK_KHR_synchronization2) && defined(VK_NV_device_diagnostic_checkpoints) */ +#if defined(VK_KHR_timeline_semaphore) +extern PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR; +extern PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR; +extern PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR; +#endif /* defined(VK_KHR_timeline_semaphore) */ +#if defined(VK_KHR_video_decode_queue) +extern PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR; +#endif /* defined(VK_KHR_video_decode_queue) */ +#if defined(VK_KHR_video_encode_queue) +extern PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR; +extern PFN_vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR; +extern PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR; +#endif /* defined(VK_KHR_video_encode_queue) */ +#if defined(VK_KHR_video_queue) +extern PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR; +extern PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR; +extern PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR; +extern PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR; +extern PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR; +extern PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR; +extern PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR; +extern PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR; +extern PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR; +extern PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR; +extern PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR; +extern PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR; +#endif /* defined(VK_KHR_video_queue) */ +#if defined(VK_KHR_wayland_surface) +extern PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR; +extern PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR; +#endif /* defined(VK_KHR_wayland_surface) */ +#if defined(VK_KHR_win32_surface) +extern PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR; +extern PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR; +#endif /* defined(VK_KHR_win32_surface) */ +#if defined(VK_KHR_xcb_surface) +extern PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR; +extern PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR; +#endif /* defined(VK_KHR_xcb_surface) */ +#if defined(VK_KHR_xlib_surface) +extern PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR; +extern PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR; +#endif /* defined(VK_KHR_xlib_surface) */ +#if defined(VK_MVK_ios_surface) +extern PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK; +#endif /* defined(VK_MVK_ios_surface) */ +#if defined(VK_MVK_macos_surface) +extern PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK; +#endif /* defined(VK_MVK_macos_surface) */ +#if defined(VK_NN_vi_surface) +extern PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN; +#endif /* defined(VK_NN_vi_surface) */ +#if defined(VK_NVX_binary_import) +extern PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX; +extern PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX; +extern PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX; +extern PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX; +extern PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX; +#endif /* defined(VK_NVX_binary_import) */ +#if defined(VK_NVX_image_view_handle) +extern PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX; +extern PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX; +#endif /* defined(VK_NVX_image_view_handle) */ +#if defined(VK_NV_acquire_winrt_display) +extern PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV; +extern PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV; +#endif /* defined(VK_NV_acquire_winrt_display) */ +#if defined(VK_NV_clip_space_w_scaling) +extern PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV; +#endif /* defined(VK_NV_clip_space_w_scaling) */ +#if defined(VK_NV_cooperative_matrix) +extern PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV; +#endif /* defined(VK_NV_cooperative_matrix) */ +#if defined(VK_NV_copy_memory_indirect) +extern PFN_vkCmdCopyMemoryIndirectNV vkCmdCopyMemoryIndirectNV; +extern PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV; +#endif /* defined(VK_NV_copy_memory_indirect) */ +#if defined(VK_NV_coverage_reduction_mode) +extern PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV; +#endif /* defined(VK_NV_coverage_reduction_mode) */ +#if defined(VK_NV_cuda_kernel_launch) +extern PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV; +extern PFN_vkCreateCudaFunctionNV vkCreateCudaFunctionNV; +extern PFN_vkCreateCudaModuleNV vkCreateCudaModuleNV; +extern PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV; +extern PFN_vkDestroyCudaModuleNV vkDestroyCudaModuleNV; +extern PFN_vkGetCudaModuleCacheNV vkGetCudaModuleCacheNV; +#endif /* defined(VK_NV_cuda_kernel_launch) */ +#if defined(VK_NV_device_diagnostic_checkpoints) +extern PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV; +extern PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV; +#endif /* defined(VK_NV_device_diagnostic_checkpoints) */ +#if defined(VK_NV_device_generated_commands) +extern PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV; +extern PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV; +extern PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV; +extern PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV; +extern PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV; +extern PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV; +#endif /* defined(VK_NV_device_generated_commands) */ +#if defined(VK_NV_device_generated_commands_compute) +extern PFN_vkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNV; +extern PFN_vkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNV; +extern PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV; +#endif /* defined(VK_NV_device_generated_commands_compute) */ +#if defined(VK_NV_external_memory_capabilities) +extern PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV; +#endif /* defined(VK_NV_external_memory_capabilities) */ +#if defined(VK_NV_external_memory_rdma) +extern PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV; +#endif /* defined(VK_NV_external_memory_rdma) */ +#if defined(VK_NV_external_memory_win32) +extern PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV; +#endif /* defined(VK_NV_external_memory_win32) */ +#if defined(VK_NV_fragment_shading_rate_enums) +extern PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV; +#endif /* defined(VK_NV_fragment_shading_rate_enums) */ +#if defined(VK_NV_low_latency2) +extern PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV; +extern PFN_vkLatencySleepNV vkLatencySleepNV; +extern PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV; +extern PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV; +extern PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV; +#endif /* defined(VK_NV_low_latency2) */ +#if defined(VK_NV_memory_decompression) +extern PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV; +extern PFN_vkCmdDecompressMemoryNV vkCmdDecompressMemoryNV; +#endif /* defined(VK_NV_memory_decompression) */ +#if defined(VK_NV_mesh_shader) +extern PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV; +extern PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV; +extern PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV; +#endif /* defined(VK_NV_mesh_shader) */ +#if defined(VK_NV_optical_flow) +extern PFN_vkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNV; +extern PFN_vkCmdOpticalFlowExecuteNV vkCmdOpticalFlowExecuteNV; +extern PFN_vkCreateOpticalFlowSessionNV vkCreateOpticalFlowSessionNV; +extern PFN_vkDestroyOpticalFlowSessionNV vkDestroyOpticalFlowSessionNV; +extern PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV; +#endif /* defined(VK_NV_optical_flow) */ +#if defined(VK_NV_ray_tracing) +extern PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV; +extern PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV; +extern PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV; +extern PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV; +extern PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV; +extern PFN_vkCompileDeferredNV vkCompileDeferredNV; +extern PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV; +extern PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV; +extern PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV; +extern PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV; +extern PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV; +extern PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV; +#endif /* defined(VK_NV_ray_tracing) */ +#if defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 +extern PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV; +#endif /* defined(VK_NV_scissor_exclusive) && VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION >= 2 */ +#if defined(VK_NV_scissor_exclusive) +extern PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV; +#endif /* defined(VK_NV_scissor_exclusive) */ +#if defined(VK_NV_shading_rate_image) +extern PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV; +extern PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV; +extern PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV; +#endif /* defined(VK_NV_shading_rate_image) */ +#if defined(VK_QCOM_tile_properties) +extern PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM; +extern PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM; +#endif /* defined(VK_QCOM_tile_properties) */ +#if defined(VK_QNX_external_memory_screen_buffer) +extern PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX; +#endif /* defined(VK_QNX_external_memory_screen_buffer) */ +#if defined(VK_QNX_screen_surface) +extern PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX; +extern PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX; +#endif /* defined(VK_QNX_screen_surface) */ +#if defined(VK_VALVE_descriptor_set_host_mapping) +extern PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE; +extern PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE; +#endif /* defined(VK_VALVE_descriptor_set_host_mapping) */ +#if (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) +extern PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT; +extern PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT; +extern PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT; +extern PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT; +extern PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT; +extern PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT; +extern PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT; +extern PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT; +extern PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT; +extern PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT; +extern PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT; +extern PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT; +#endif /* (defined(VK_EXT_extended_dynamic_state)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) +extern PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT; +extern PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT; +extern PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT; +extern PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT; +extern PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT; +#endif /* (defined(VK_EXT_extended_dynamic_state2)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) +extern PFN_vkCmdSetAlphaToCoverageEnableEXT vkCmdSetAlphaToCoverageEnableEXT; +extern PFN_vkCmdSetAlphaToOneEnableEXT vkCmdSetAlphaToOneEnableEXT; +extern PFN_vkCmdSetColorBlendAdvancedEXT vkCmdSetColorBlendAdvancedEXT; +extern PFN_vkCmdSetColorBlendEnableEXT vkCmdSetColorBlendEnableEXT; +extern PFN_vkCmdSetColorBlendEquationEXT vkCmdSetColorBlendEquationEXT; +extern PFN_vkCmdSetColorWriteMaskEXT vkCmdSetColorWriteMaskEXT; +extern PFN_vkCmdSetConservativeRasterizationModeEXT vkCmdSetConservativeRasterizationModeEXT; +extern PFN_vkCmdSetDepthClampEnableEXT vkCmdSetDepthClampEnableEXT; +extern PFN_vkCmdSetDepthClipEnableEXT vkCmdSetDepthClipEnableEXT; +extern PFN_vkCmdSetDepthClipNegativeOneToOneEXT vkCmdSetDepthClipNegativeOneToOneEXT; +extern PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT; +extern PFN_vkCmdSetLineRasterizationModeEXT vkCmdSetLineRasterizationModeEXT; +extern PFN_vkCmdSetLineStippleEnableEXT vkCmdSetLineStippleEnableEXT; +extern PFN_vkCmdSetLogicOpEnableEXT vkCmdSetLogicOpEnableEXT; +extern PFN_vkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXT; +extern PFN_vkCmdSetProvokingVertexModeEXT vkCmdSetProvokingVertexModeEXT; +extern PFN_vkCmdSetRasterizationSamplesEXT vkCmdSetRasterizationSamplesEXT; +extern PFN_vkCmdSetRasterizationStreamEXT vkCmdSetRasterizationStreamEXT; +extern PFN_vkCmdSetSampleLocationsEnableEXT vkCmdSetSampleLocationsEnableEXT; +extern PFN_vkCmdSetSampleMaskEXT vkCmdSetSampleMaskEXT; +extern PFN_vkCmdSetTessellationDomainOriginEXT vkCmdSetTessellationDomainOriginEXT; +#endif /* (defined(VK_EXT_extended_dynamic_state3)) || (defined(VK_EXT_shader_object)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) +extern PFN_vkCmdSetViewportWScalingEnableNV vkCmdSetViewportWScalingEnableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_clip_space_w_scaling)) || (defined(VK_EXT_shader_object) && defined(VK_NV_clip_space_w_scaling)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) +extern PFN_vkCmdSetViewportSwizzleNV vkCmdSetViewportSwizzleNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_viewport_swizzle)) || (defined(VK_EXT_shader_object) && defined(VK_NV_viewport_swizzle)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) +extern PFN_vkCmdSetCoverageToColorEnableNV vkCmdSetCoverageToColorEnableNV; +extern PFN_vkCmdSetCoverageToColorLocationNV vkCmdSetCoverageToColorLocationNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_fragment_coverage_to_color)) || (defined(VK_EXT_shader_object) && defined(VK_NV_fragment_coverage_to_color)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) +extern PFN_vkCmdSetCoverageModulationModeNV vkCmdSetCoverageModulationModeNV; +extern PFN_vkCmdSetCoverageModulationTableEnableNV vkCmdSetCoverageModulationTableEnableNV; +extern PFN_vkCmdSetCoverageModulationTableNV vkCmdSetCoverageModulationTableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_framebuffer_mixed_samples)) || (defined(VK_EXT_shader_object) && defined(VK_NV_framebuffer_mixed_samples)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) +extern PFN_vkCmdSetShadingRateImageEnableNV vkCmdSetShadingRateImageEnableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_shading_rate_image)) || (defined(VK_EXT_shader_object) && defined(VK_NV_shading_rate_image)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) +extern PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_representative_fragment_test)) || (defined(VK_EXT_shader_object) && defined(VK_NV_representative_fragment_test)) */ +#if (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) +extern PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV; +#endif /* (defined(VK_EXT_extended_dynamic_state3) && defined(VK_NV_coverage_reduction_mode)) || (defined(VK_EXT_shader_object) && defined(VK_NV_coverage_reduction_mode)) */ +#if (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) +extern PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT; +#endif /* (defined(VK_EXT_full_screen_exclusive) && defined(VK_KHR_device_group)) || (defined(VK_EXT_full_screen_exclusive) && defined(VK_VERSION_1_1)) */ +#if (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) +extern PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT; +#endif /* (defined(VK_EXT_host_image_copy)) || (defined(VK_EXT_image_compression_control)) */ +#if (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) +extern PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT; +#endif /* (defined(VK_EXT_shader_object)) || (defined(VK_EXT_vertex_input_dynamic_state)) */ +#if (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) +extern PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR; +#endif /* (defined(VK_KHR_descriptor_update_template) && defined(VK_KHR_push_descriptor)) || (defined(VK_KHR_push_descriptor) && defined(VK_VERSION_1_1)) || (defined(VK_KHR_push_descriptor) && defined(VK_KHR_descriptor_update_template)) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) +extern PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR; +extern PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR; +extern PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR; +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_surface)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ +#if (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) +extern PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR; +#endif /* (defined(VK_KHR_device_group) && defined(VK_KHR_swapchain)) || (defined(VK_KHR_swapchain) && defined(VK_VERSION_1_1)) */ +/* VOLK_GENERATE_PROTOTYPES_H */ + +#ifdef __cplusplus +} +#endif + +#endif + +#ifdef VOLK_IMPLEMENTATION +#undef VOLK_IMPLEMENTATION +// Prevent tools like dependency checkers that don't evaluate +// macros from detecting a cyclic dependency. +#define VOLK_SOURCE "volk.c" +#include VOLK_SOURCE +#endif + +/** + * Copyright (c) 2018-2023 Arseny Kapoulkine + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. +*/ +/* clang-format on */ diff --git a/vulkan-headers/include/vk_video/vulkan_video_codec_av1std.h b/vulkan-headers/include/vk_video/vulkan_video_codec_av1std.h new file mode 100644 index 00000000..8ce283e8 --- /dev/null +++ b/vulkan-headers/include/vk_video/vulkan_video_codec_av1std.h @@ -0,0 +1,392 @@ +#ifndef VULKAN_VIDEO_CODEC_AV1STD_H_ +#define VULKAN_VIDEO_CODEC_AV1STD_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_av1std is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_av1std 1 +#include "vulkan_video_codecs_common.h" +#define STD_VIDEO_AV1_NUM_REF_FRAMES 8 +#define STD_VIDEO_AV1_REFS_PER_FRAME 7 +#define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8 +#define STD_VIDEO_AV1_MAX_TILE_COLS 64 +#define STD_VIDEO_AV1_MAX_TILE_ROWS 64 +#define STD_VIDEO_AV1_MAX_SEGMENTS 8 +#define STD_VIDEO_AV1_SEG_LVL_MAX 8 +#define STD_VIDEO_AV1_PRIMARY_REF_NONE 7 +#define STD_VIDEO_AV1_SELECT_INTEGER_MV 2 +#define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2 +#define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2 +#define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4 +#define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2 +#define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8 +#define STD_VIDEO_AV1_MAX_NUM_PLANES 3 +#define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6 +#define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14 +#define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10 +#define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10 +#define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24 +#define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25 + +typedef enum StdVideoAV1Profile { + STD_VIDEO_AV1_PROFILE_MAIN = 0, + STD_VIDEO_AV1_PROFILE_HIGH = 1, + STD_VIDEO_AV1_PROFILE_PROFESSIONAL = 2, + STD_VIDEO_AV1_PROFILE_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_PROFILE_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1Profile; + +typedef enum StdVideoAV1Level { + STD_VIDEO_AV1_LEVEL_2_0 = 0, + STD_VIDEO_AV1_LEVEL_2_1 = 1, + STD_VIDEO_AV1_LEVEL_2_2 = 2, + STD_VIDEO_AV1_LEVEL_2_3 = 3, + STD_VIDEO_AV1_LEVEL_3_0 = 4, + STD_VIDEO_AV1_LEVEL_3_1 = 5, + STD_VIDEO_AV1_LEVEL_3_2 = 6, + STD_VIDEO_AV1_LEVEL_3_3 = 7, + STD_VIDEO_AV1_LEVEL_4_0 = 8, + STD_VIDEO_AV1_LEVEL_4_1 = 9, + STD_VIDEO_AV1_LEVEL_4_2 = 10, + STD_VIDEO_AV1_LEVEL_4_3 = 11, + STD_VIDEO_AV1_LEVEL_5_0 = 12, + STD_VIDEO_AV1_LEVEL_5_1 = 13, + STD_VIDEO_AV1_LEVEL_5_2 = 14, + STD_VIDEO_AV1_LEVEL_5_3 = 15, + STD_VIDEO_AV1_LEVEL_6_0 = 16, + STD_VIDEO_AV1_LEVEL_6_1 = 17, + STD_VIDEO_AV1_LEVEL_6_2 = 18, + STD_VIDEO_AV1_LEVEL_6_3 = 19, + STD_VIDEO_AV1_LEVEL_7_0 = 20, + STD_VIDEO_AV1_LEVEL_7_1 = 21, + STD_VIDEO_AV1_LEVEL_7_2 = 22, + STD_VIDEO_AV1_LEVEL_7_3 = 23, + STD_VIDEO_AV1_LEVEL_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_LEVEL_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1Level; + +typedef enum StdVideoAV1FrameType { + STD_VIDEO_AV1_FRAME_TYPE_KEY = 0, + STD_VIDEO_AV1_FRAME_TYPE_INTER = 1, + STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY = 2, + STD_VIDEO_AV1_FRAME_TYPE_SWITCH = 3, + STD_VIDEO_AV1_FRAME_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1FrameType; + +typedef enum StdVideoAV1ReferenceName { + STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME = 0, + STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME = 1, + STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME = 2, + STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME = 3, + STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME = 4, + STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME = 5, + STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME = 6, + STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME = 7, + STD_VIDEO_AV1_REFERENCE_NAME_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1ReferenceName; + +typedef enum StdVideoAV1InterpolationFilter { + STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP = 0, + STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1, + STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2, + STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR = 3, + STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE = 4, + STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1InterpolationFilter; + +typedef enum StdVideoAV1TxMode { + STD_VIDEO_AV1_TX_MODE_ONLY_4X4 = 0, + STD_VIDEO_AV1_TX_MODE_LARGEST = 1, + STD_VIDEO_AV1_TX_MODE_SELECT = 2, + STD_VIDEO_AV1_TX_MODE_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_TX_MODE_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1TxMode; + +typedef enum StdVideoAV1FrameRestorationType { + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE = 0, + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER = 1, + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ = 2, + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE = 3, + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1FrameRestorationType; + +typedef enum StdVideoAV1ColorPrimaries { + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = 2, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6, + STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240 = 7, + STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM = 8, + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020 = 9, + STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ = 10, + STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431 = 11, + STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12, + STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22, + STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1ColorPrimaries; + +typedef enum StdVideoAV1TransferCharacteristics { + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0 = 0, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709 = 1, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3 = 3, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M = 4, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G = 5, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601 = 6, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240 = 7, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR = 8, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100 = 9, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 = 10, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966 = 11, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361 = 12, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB = 13, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT = 14, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT = 15, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084 = 16, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428 = 17, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG = 18, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1TransferCharacteristics; + +typedef enum StdVideoAV1MatrixCoefficients { + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY = 0, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709 = 1, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED = 2, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3 = 3, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC = 4, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G = 5, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601 = 6, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240 = 7, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO = 8, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL = 9, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL = 10, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085 = 11, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL = 12, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL = 13, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP = 14, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1MatrixCoefficients; + +typedef enum StdVideoAV1ChromaSamplePosition { + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN = 0, + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL = 1, + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED = 2, + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED = 3, + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID = 0x7FFFFFFF, + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_MAX_ENUM = 0x7FFFFFFF +} StdVideoAV1ChromaSamplePosition; +typedef struct StdVideoAV1ColorConfigFlags { + uint32_t mono_chrome : 1; + uint32_t color_range : 1; + uint32_t separate_uv_delta_q : 1; + uint32_t color_description_present_flag : 1; + uint32_t reserved : 28; +} StdVideoAV1ColorConfigFlags; + +typedef struct StdVideoAV1ColorConfig { + StdVideoAV1ColorConfigFlags flags; + uint8_t BitDepth; + uint8_t subsampling_x; + uint8_t subsampling_y; + uint8_t reserved1; + StdVideoAV1ColorPrimaries color_primaries; + StdVideoAV1TransferCharacteristics transfer_characteristics; + StdVideoAV1MatrixCoefficients matrix_coefficients; + StdVideoAV1ChromaSamplePosition chroma_sample_position; +} StdVideoAV1ColorConfig; + +typedef struct StdVideoAV1TimingInfoFlags { + uint32_t equal_picture_interval : 1; + uint32_t reserved : 31; +} StdVideoAV1TimingInfoFlags; + +typedef struct StdVideoAV1TimingInfo { + StdVideoAV1TimingInfoFlags flags; + uint32_t num_units_in_display_tick; + uint32_t time_scale; + uint32_t num_ticks_per_picture_minus_1; +} StdVideoAV1TimingInfo; + +typedef struct StdVideoAV1LoopFilterFlags { + uint32_t loop_filter_delta_enabled : 1; + uint32_t loop_filter_delta_update : 1; + uint32_t reserved : 30; +} StdVideoAV1LoopFilterFlags; + +typedef struct StdVideoAV1LoopFilter { + StdVideoAV1LoopFilterFlags flags; + uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS]; + uint8_t loop_filter_sharpness; + uint8_t update_ref_delta; + int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME]; + uint8_t update_mode_delta; + int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS]; +} StdVideoAV1LoopFilter; + +typedef struct StdVideoAV1QuantizationFlags { + uint32_t using_qmatrix : 1; + uint32_t diff_uv_delta : 1; + uint32_t reserved : 30; +} StdVideoAV1QuantizationFlags; + +typedef struct StdVideoAV1Quantization { + StdVideoAV1QuantizationFlags flags; + uint8_t base_q_idx; + int8_t DeltaQYDc; + int8_t DeltaQUDc; + int8_t DeltaQUAc; + int8_t DeltaQVDc; + int8_t DeltaQVAc; + uint8_t qm_y; + uint8_t qm_u; + uint8_t qm_v; +} StdVideoAV1Quantization; + +typedef struct StdVideoAV1Segmentation { + uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS]; + int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX]; +} StdVideoAV1Segmentation; + +typedef struct StdVideoAV1TileInfoFlags { + uint32_t uniform_tile_spacing_flag : 1; + uint32_t reserved : 31; +} StdVideoAV1TileInfoFlags; + +typedef struct StdVideoAV1TileInfo { + StdVideoAV1TileInfoFlags flags; + uint8_t TileCols; + uint8_t TileRows; + uint16_t context_update_tile_id; + uint8_t tile_size_bytes_minus_1; + uint8_t reserved1[7]; + const uint16_t* pMiColStarts; + const uint16_t* pMiRowStarts; + const uint16_t* pWidthInSbsMinus1; + const uint16_t* pHeightInSbsMinus1; +} StdVideoAV1TileInfo; + +typedef struct StdVideoAV1CDEF { + uint8_t cdef_damping_minus_3; + uint8_t cdef_bits; + uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; + uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; + uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; + uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; +} StdVideoAV1CDEF; + +typedef struct StdVideoAV1LoopRestoration { + StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES]; + uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES]; +} StdVideoAV1LoopRestoration; + +typedef struct StdVideoAV1GlobalMotion { + uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES]; + int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS]; +} StdVideoAV1GlobalMotion; + +typedef struct StdVideoAV1FilmGrainFlags { + uint32_t chroma_scaling_from_luma : 1; + uint32_t overlap_flag : 1; + uint32_t clip_to_restricted_range : 1; + uint32_t update_grain : 1; + uint32_t reserved : 28; +} StdVideoAV1FilmGrainFlags; + +typedef struct StdVideoAV1FilmGrain { + StdVideoAV1FilmGrainFlags flags; + uint8_t grain_scaling_minus_8; + uint8_t ar_coeff_lag; + uint8_t ar_coeff_shift_minus_6; + uint8_t grain_scale_shift; + uint16_t grain_seed; + uint8_t film_grain_params_ref_idx; + uint8_t num_y_points; + uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; + uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; + uint8_t num_cb_points; + uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; + uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; + uint8_t num_cr_points; + uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; + uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; + int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA]; + int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; + int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; + uint8_t cb_mult; + uint8_t cb_luma_mult; + uint16_t cb_offset; + uint8_t cr_mult; + uint8_t cr_luma_mult; + uint16_t cr_offset; +} StdVideoAV1FilmGrain; + +typedef struct StdVideoAV1SequenceHeaderFlags { + uint32_t still_picture : 1; + uint32_t reduced_still_picture_header : 1; + uint32_t use_128x128_superblock : 1; + uint32_t enable_filter_intra : 1; + uint32_t enable_intra_edge_filter : 1; + uint32_t enable_interintra_compound : 1; + uint32_t enable_masked_compound : 1; + uint32_t enable_warped_motion : 1; + uint32_t enable_dual_filter : 1; + uint32_t enable_order_hint : 1; + uint32_t enable_jnt_comp : 1; + uint32_t enable_ref_frame_mvs : 1; + uint32_t frame_id_numbers_present_flag : 1; + uint32_t enable_superres : 1; + uint32_t enable_cdef : 1; + uint32_t enable_restoration : 1; + uint32_t film_grain_params_present : 1; + uint32_t timing_info_present_flag : 1; + uint32_t initial_display_delay_present_flag : 1; + uint32_t reserved : 13; +} StdVideoAV1SequenceHeaderFlags; + +typedef struct StdVideoAV1SequenceHeader { + StdVideoAV1SequenceHeaderFlags flags; + StdVideoAV1Profile seq_profile; + uint8_t frame_width_bits_minus_1; + uint8_t frame_height_bits_minus_1; + uint16_t max_frame_width_minus_1; + uint16_t max_frame_height_minus_1; + uint8_t delta_frame_id_length_minus_2; + uint8_t additional_frame_id_length_minus_1; + uint8_t order_hint_bits_minus_1; + uint8_t seq_force_integer_mv; + uint8_t seq_force_screen_content_tools; + uint8_t reserved1[5]; + const StdVideoAV1ColorConfig* pColorConfig; + const StdVideoAV1TimingInfo* pTimingInfo; +} StdVideoAV1SequenceHeader; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vk_video/vulkan_video_codec_av1std_decode.h b/vulkan-headers/include/vk_video/vulkan_video_codec_av1std_decode.h new file mode 100644 index 00000000..6b8130cd --- /dev/null +++ b/vulkan-headers/include/vk_video/vulkan_video_codec_av1std_decode.h @@ -0,0 +1,109 @@ +#ifndef VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ +#define VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_av1std_decode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_av1std_decode 1 +#include "vulkan_video_codec_av1std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_av1_decode" +typedef struct StdVideoDecodeAV1PictureInfoFlags { + uint32_t error_resilient_mode : 1; + uint32_t disable_cdf_update : 1; + uint32_t use_superres : 1; + uint32_t render_and_frame_size_different : 1; + uint32_t allow_screen_content_tools : 1; + uint32_t is_filter_switchable : 1; + uint32_t force_integer_mv : 1; + uint32_t frame_size_override_flag : 1; + uint32_t buffer_removal_time_present_flag : 1; + uint32_t allow_intrabc : 1; + uint32_t frame_refs_short_signaling : 1; + uint32_t allow_high_precision_mv : 1; + uint32_t is_motion_mode_switchable : 1; + uint32_t use_ref_frame_mvs : 1; + uint32_t disable_frame_end_update_cdf : 1; + uint32_t allow_warped_motion : 1; + uint32_t reduced_tx_set : 1; + uint32_t reference_select : 1; + uint32_t skip_mode_present : 1; + uint32_t delta_q_present : 1; + uint32_t delta_lf_present : 1; + uint32_t delta_lf_multi : 1; + uint32_t segmentation_enabled : 1; + uint32_t segmentation_update_map : 1; + uint32_t segmentation_temporal_update : 1; + uint32_t segmentation_update_data : 1; + uint32_t UsesLr : 1; + uint32_t usesChromaLr : 1; + uint32_t apply_grain : 1; + uint32_t reserved : 3; +} StdVideoDecodeAV1PictureInfoFlags; + +typedef struct StdVideoDecodeAV1PictureInfo { + StdVideoDecodeAV1PictureInfoFlags flags; + StdVideoAV1FrameType frame_type; + uint32_t current_frame_id; + uint8_t OrderHint; + uint8_t primary_ref_frame; + uint8_t refresh_frame_flags; + uint8_t reserved1; + StdVideoAV1InterpolationFilter interpolation_filter; + StdVideoAV1TxMode TxMode; + uint8_t delta_q_res; + uint8_t delta_lf_res; + uint8_t SkipModeFrame[STD_VIDEO_AV1_SKIP_MODE_FRAMES]; + uint8_t coded_denom; + uint8_t reserved2[3]; + uint8_t OrderHints[STD_VIDEO_AV1_NUM_REF_FRAMES]; + uint32_t expectedFrameId[STD_VIDEO_AV1_NUM_REF_FRAMES]; + const StdVideoAV1TileInfo* pTileInfo; + const StdVideoAV1Quantization* pQuantization; + const StdVideoAV1Segmentation* pSegmentation; + const StdVideoAV1LoopFilter* pLoopFilter; + const StdVideoAV1CDEF* pCDEF; + const StdVideoAV1LoopRestoration* pLoopRestoration; + const StdVideoAV1GlobalMotion* pGlobalMotion; + const StdVideoAV1FilmGrain* pFilmGrain; +} StdVideoDecodeAV1PictureInfo; + +typedef struct StdVideoDecodeAV1ReferenceInfoFlags { + uint32_t disable_frame_end_update_cdf : 1; + uint32_t segmentation_enabled : 1; + uint32_t reserved : 30; +} StdVideoDecodeAV1ReferenceInfoFlags; + +typedef struct StdVideoDecodeAV1ReferenceInfo { + StdVideoDecodeAV1ReferenceInfoFlags flags; + uint8_t frame_type; + uint8_t RefFrameSignBias; + uint8_t OrderHint; + uint8_t SavedOrderHints[STD_VIDEO_AV1_NUM_REF_FRAMES]; +} StdVideoDecodeAV1ReferenceInfo; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vk_video/vulkan_video_codec_h264std.h b/vulkan-headers/include/vk_video/vulkan_video_codec_h264std.h new file mode 100644 index 00000000..6d27af37 --- /dev/null +++ b/vulkan-headers/include/vk_video/vulkan_video_codec_h264std.h @@ -0,0 +1,312 @@ +#ifndef VULKAN_VIDEO_CODEC_H264STD_H_ +#define VULKAN_VIDEO_CODEC_H264STD_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h264std is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h264std 1 +#include "vulkan_video_codecs_common.h" +#define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32 +#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6 +#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16 +#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 6 +#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64 +#define STD_VIDEO_H264_MAX_NUM_LIST_REF 32 +#define STD_VIDEO_H264_MAX_CHROMA_PLANES 2 +#define STD_VIDEO_H264_NO_REFERENCE_PICTURE 0xFF + +typedef enum StdVideoH264ChromaFormatIdc { + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0, + STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1, + STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2, + STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3, + STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264ChromaFormatIdc; + +typedef enum StdVideoH264ProfileIdc { + STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66, + STD_VIDEO_H264_PROFILE_IDC_MAIN = 77, + STD_VIDEO_H264_PROFILE_IDC_HIGH = 100, + STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244, + STD_VIDEO_H264_PROFILE_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264ProfileIdc; + +typedef enum StdVideoH264LevelIdc { + STD_VIDEO_H264_LEVEL_IDC_1_0 = 0, + STD_VIDEO_H264_LEVEL_IDC_1_1 = 1, + STD_VIDEO_H264_LEVEL_IDC_1_2 = 2, + STD_VIDEO_H264_LEVEL_IDC_1_3 = 3, + STD_VIDEO_H264_LEVEL_IDC_2_0 = 4, + STD_VIDEO_H264_LEVEL_IDC_2_1 = 5, + STD_VIDEO_H264_LEVEL_IDC_2_2 = 6, + STD_VIDEO_H264_LEVEL_IDC_3_0 = 7, + STD_VIDEO_H264_LEVEL_IDC_3_1 = 8, + STD_VIDEO_H264_LEVEL_IDC_3_2 = 9, + STD_VIDEO_H264_LEVEL_IDC_4_0 = 10, + STD_VIDEO_H264_LEVEL_IDC_4_1 = 11, + STD_VIDEO_H264_LEVEL_IDC_4_2 = 12, + STD_VIDEO_H264_LEVEL_IDC_5_0 = 13, + STD_VIDEO_H264_LEVEL_IDC_5_1 = 14, + STD_VIDEO_H264_LEVEL_IDC_5_2 = 15, + STD_VIDEO_H264_LEVEL_IDC_6_0 = 16, + STD_VIDEO_H264_LEVEL_IDC_6_1 = 17, + STD_VIDEO_H264_LEVEL_IDC_6_2 = 18, + STD_VIDEO_H264_LEVEL_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264LevelIdc; + +typedef enum StdVideoH264PocType { + STD_VIDEO_H264_POC_TYPE_0 = 0, + STD_VIDEO_H264_POC_TYPE_1 = 1, + STD_VIDEO_H264_POC_TYPE_2 = 2, + STD_VIDEO_H264_POC_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_POC_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264PocType; + +typedef enum StdVideoH264AspectRatioIdc { + STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0, + STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1, + STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2, + STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3, + STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4, + STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5, + STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6, + STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7, + STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8, + STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9, + STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10, + STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11, + STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12, + STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13, + STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14, + STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15, + STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16, + STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255, + STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264AspectRatioIdc; + +typedef enum StdVideoH264WeightedBipredIdc { + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0, + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1, + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2, + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264WeightedBipredIdc; + +typedef enum StdVideoH264ModificationOfPicNumsIdc { + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0, + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1, + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2, + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3, + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264ModificationOfPicNumsIdc; + +typedef enum StdVideoH264MemMgmtControlOp { + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264MemMgmtControlOp; + +typedef enum StdVideoH264CabacInitIdc { + STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0, + STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1, + STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2, + STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_CABAC_INIT_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264CabacInitIdc; + +typedef enum StdVideoH264DisableDeblockingFilterIdc { + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0, + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1, + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2, + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264DisableDeblockingFilterIdc; + +typedef enum StdVideoH264SliceType { + STD_VIDEO_H264_SLICE_TYPE_P = 0, + STD_VIDEO_H264_SLICE_TYPE_B = 1, + STD_VIDEO_H264_SLICE_TYPE_I = 2, + STD_VIDEO_H264_SLICE_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264SliceType; + +typedef enum StdVideoH264PictureType { + STD_VIDEO_H264_PICTURE_TYPE_P = 0, + STD_VIDEO_H264_PICTURE_TYPE_B = 1, + STD_VIDEO_H264_PICTURE_TYPE_I = 2, + STD_VIDEO_H264_PICTURE_TYPE_IDR = 5, + STD_VIDEO_H264_PICTURE_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264PictureType; + +typedef enum StdVideoH264NonVclNaluType { + STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H264_NON_VCL_NALU_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH264NonVclNaluType; +typedef struct StdVideoH264SpsVuiFlags { + uint32_t aspect_ratio_info_present_flag : 1; + uint32_t overscan_info_present_flag : 1; + uint32_t overscan_appropriate_flag : 1; + uint32_t video_signal_type_present_flag : 1; + uint32_t video_full_range_flag : 1; + uint32_t color_description_present_flag : 1; + uint32_t chroma_loc_info_present_flag : 1; + uint32_t timing_info_present_flag : 1; + uint32_t fixed_frame_rate_flag : 1; + uint32_t bitstream_restriction_flag : 1; + uint32_t nal_hrd_parameters_present_flag : 1; + uint32_t vcl_hrd_parameters_present_flag : 1; +} StdVideoH264SpsVuiFlags; + +typedef struct StdVideoH264HrdParameters { + uint8_t cpb_cnt_minus1; + uint8_t bit_rate_scale; + uint8_t cpb_size_scale; + uint8_t reserved1; + uint32_t bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; + uint32_t cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; + uint8_t cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; + uint32_t initial_cpb_removal_delay_length_minus1; + uint32_t cpb_removal_delay_length_minus1; + uint32_t dpb_output_delay_length_minus1; + uint32_t time_offset_length; +} StdVideoH264HrdParameters; + +typedef struct StdVideoH264SequenceParameterSetVui { + StdVideoH264SpsVuiFlags flags; + StdVideoH264AspectRatioIdc aspect_ratio_idc; + uint16_t sar_width; + uint16_t sar_height; + uint8_t video_format; + uint8_t colour_primaries; + uint8_t transfer_characteristics; + uint8_t matrix_coefficients; + uint32_t num_units_in_tick; + uint32_t time_scale; + uint8_t max_num_reorder_frames; + uint8_t max_dec_frame_buffering; + uint8_t chroma_sample_loc_type_top_field; + uint8_t chroma_sample_loc_type_bottom_field; + uint32_t reserved1; + const StdVideoH264HrdParameters* pHrdParameters; +} StdVideoH264SequenceParameterSetVui; + +typedef struct StdVideoH264SpsFlags { + uint32_t constraint_set0_flag : 1; + uint32_t constraint_set1_flag : 1; + uint32_t constraint_set2_flag : 1; + uint32_t constraint_set3_flag : 1; + uint32_t constraint_set4_flag : 1; + uint32_t constraint_set5_flag : 1; + uint32_t direct_8x8_inference_flag : 1; + uint32_t mb_adaptive_frame_field_flag : 1; + uint32_t frame_mbs_only_flag : 1; + uint32_t delta_pic_order_always_zero_flag : 1; + uint32_t separate_colour_plane_flag : 1; + uint32_t gaps_in_frame_num_value_allowed_flag : 1; + uint32_t qpprime_y_zero_transform_bypass_flag : 1; + uint32_t frame_cropping_flag : 1; + uint32_t seq_scaling_matrix_present_flag : 1; + uint32_t vui_parameters_present_flag : 1; +} StdVideoH264SpsFlags; + +typedef struct StdVideoH264ScalingLists { + uint16_t scaling_list_present_mask; + uint16_t use_default_scaling_matrix_mask; + uint8_t ScalingList4x4[STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS]; + uint8_t ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS]; +} StdVideoH264ScalingLists; + +typedef struct StdVideoH264SequenceParameterSet { + StdVideoH264SpsFlags flags; + StdVideoH264ProfileIdc profile_idc; + StdVideoH264LevelIdc level_idc; + StdVideoH264ChromaFormatIdc chroma_format_idc; + uint8_t seq_parameter_set_id; + uint8_t bit_depth_luma_minus8; + uint8_t bit_depth_chroma_minus8; + uint8_t log2_max_frame_num_minus4; + StdVideoH264PocType pic_order_cnt_type; + int32_t offset_for_non_ref_pic; + int32_t offset_for_top_to_bottom_field; + uint8_t log2_max_pic_order_cnt_lsb_minus4; + uint8_t num_ref_frames_in_pic_order_cnt_cycle; + uint8_t max_num_ref_frames; + uint8_t reserved1; + uint32_t pic_width_in_mbs_minus1; + uint32_t pic_height_in_map_units_minus1; + uint32_t frame_crop_left_offset; + uint32_t frame_crop_right_offset; + uint32_t frame_crop_top_offset; + uint32_t frame_crop_bottom_offset; + uint32_t reserved2; + const int32_t* pOffsetForRefFrame; + const StdVideoH264ScalingLists* pScalingLists; + const StdVideoH264SequenceParameterSetVui* pSequenceParameterSetVui; +} StdVideoH264SequenceParameterSet; + +typedef struct StdVideoH264PpsFlags { + uint32_t transform_8x8_mode_flag : 1; + uint32_t redundant_pic_cnt_present_flag : 1; + uint32_t constrained_intra_pred_flag : 1; + uint32_t deblocking_filter_control_present_flag : 1; + uint32_t weighted_pred_flag : 1; + uint32_t bottom_field_pic_order_in_frame_present_flag : 1; + uint32_t entropy_coding_mode_flag : 1; + uint32_t pic_scaling_matrix_present_flag : 1; +} StdVideoH264PpsFlags; + +typedef struct StdVideoH264PictureParameterSet { + StdVideoH264PpsFlags flags; + uint8_t seq_parameter_set_id; + uint8_t pic_parameter_set_id; + uint8_t num_ref_idx_l0_default_active_minus1; + uint8_t num_ref_idx_l1_default_active_minus1; + StdVideoH264WeightedBipredIdc weighted_bipred_idc; + int8_t pic_init_qp_minus26; + int8_t pic_init_qs_minus26; + int8_t chroma_qp_index_offset; + int8_t second_chroma_qp_index_offset; + const StdVideoH264ScalingLists* pScalingLists; +} StdVideoH264PictureParameterSet; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vk_video/vulkan_video_codec_h264std_decode.h b/vulkan-headers/include/vk_video/vulkan_video_codec_h264std_decode.h new file mode 100644 index 00000000..439cb885 --- /dev/null +++ b/vulkan-headers/include/vk_video/vulkan_video_codec_h264std_decode.h @@ -0,0 +1,77 @@ +#ifndef VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ +#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h264std_decode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h264std_decode 1 +#include "vulkan_video_codec_h264std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode" +#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2 + +typedef enum StdVideoDecodeH264FieldOrderCount { + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0, + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1, + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 0x7FFFFFFF, + STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 0x7FFFFFFF +} StdVideoDecodeH264FieldOrderCount; +typedef struct StdVideoDecodeH264PictureInfoFlags { + uint32_t field_pic_flag : 1; + uint32_t is_intra : 1; + uint32_t IdrPicFlag : 1; + uint32_t bottom_field_flag : 1; + uint32_t is_reference : 1; + uint32_t complementary_field_pair : 1; +} StdVideoDecodeH264PictureInfoFlags; + +typedef struct StdVideoDecodeH264PictureInfo { + StdVideoDecodeH264PictureInfoFlags flags; + uint8_t seq_parameter_set_id; + uint8_t pic_parameter_set_id; + uint8_t reserved1; + uint8_t reserved2; + uint16_t frame_num; + uint16_t idr_pic_id; + int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; +} StdVideoDecodeH264PictureInfo; + +typedef struct StdVideoDecodeH264ReferenceInfoFlags { + uint32_t top_field_flag : 1; + uint32_t bottom_field_flag : 1; + uint32_t used_for_long_term_reference : 1; + uint32_t is_non_existing : 1; +} StdVideoDecodeH264ReferenceInfoFlags; + +typedef struct StdVideoDecodeH264ReferenceInfo { + StdVideoDecodeH264ReferenceInfoFlags flags; + uint16_t FrameNum; + uint16_t reserved; + int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; +} StdVideoDecodeH264ReferenceInfo; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vk_video/vulkan_video_codec_h264std_encode.h b/vulkan-headers/include/vk_video/vulkan_video_codec_h264std_encode.h new file mode 100644 index 00000000..9e24aa5d --- /dev/null +++ b/vulkan-headers/include/vk_video/vulkan_video_codec_h264std_encode.h @@ -0,0 +1,147 @@ +#ifndef VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ +#define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h264std_encode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h264std_encode 1 +#include "vulkan_video_codec_h264std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_encode" +typedef struct StdVideoEncodeH264WeightTableFlags { + uint32_t luma_weight_l0_flag; + uint32_t chroma_weight_l0_flag; + uint32_t luma_weight_l1_flag; + uint32_t chroma_weight_l1_flag; +} StdVideoEncodeH264WeightTableFlags; + +typedef struct StdVideoEncodeH264WeightTable { + StdVideoEncodeH264WeightTableFlags flags; + uint8_t luma_log2_weight_denom; + uint8_t chroma_log2_weight_denom; + int8_t luma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t luma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t chroma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; + int8_t chroma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; + int8_t luma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t luma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + int8_t chroma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; + int8_t chroma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES]; +} StdVideoEncodeH264WeightTable; + +typedef struct StdVideoEncodeH264SliceHeaderFlags { + uint32_t direct_spatial_mv_pred_flag : 1; + uint32_t num_ref_idx_active_override_flag : 1; + uint32_t reserved : 30; +} StdVideoEncodeH264SliceHeaderFlags; + +typedef struct StdVideoEncodeH264PictureInfoFlags { + uint32_t IdrPicFlag : 1; + uint32_t is_reference : 1; + uint32_t no_output_of_prior_pics_flag : 1; + uint32_t long_term_reference_flag : 1; + uint32_t adaptive_ref_pic_marking_mode_flag : 1; + uint32_t reserved : 27; +} StdVideoEncodeH264PictureInfoFlags; + +typedef struct StdVideoEncodeH264ReferenceInfoFlags { + uint32_t used_for_long_term_reference : 1; + uint32_t reserved : 31; +} StdVideoEncodeH264ReferenceInfoFlags; + +typedef struct StdVideoEncodeH264ReferenceListsInfoFlags { + uint32_t ref_pic_list_modification_flag_l0 : 1; + uint32_t ref_pic_list_modification_flag_l1 : 1; + uint32_t reserved : 30; +} StdVideoEncodeH264ReferenceListsInfoFlags; + +typedef struct StdVideoEncodeH264RefListModEntry { + StdVideoH264ModificationOfPicNumsIdc modification_of_pic_nums_idc; + uint16_t abs_diff_pic_num_minus1; + uint16_t long_term_pic_num; +} StdVideoEncodeH264RefListModEntry; + +typedef struct StdVideoEncodeH264RefPicMarkingEntry { + StdVideoH264MemMgmtControlOp memory_management_control_operation; + uint16_t difference_of_pic_nums_minus1; + uint16_t long_term_pic_num; + uint16_t long_term_frame_idx; + uint16_t max_long_term_frame_idx_plus1; +} StdVideoEncodeH264RefPicMarkingEntry; + +typedef struct StdVideoEncodeH264ReferenceListsInfo { + StdVideoEncodeH264ReferenceListsInfoFlags flags; + uint8_t num_ref_idx_l0_active_minus1; + uint8_t num_ref_idx_l1_active_minus1; + uint8_t RefPicList0[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + uint8_t RefPicList1[STD_VIDEO_H264_MAX_NUM_LIST_REF]; + uint8_t refList0ModOpCount; + uint8_t refList1ModOpCount; + uint8_t refPicMarkingOpCount; + uint8_t reserved1[7]; + const StdVideoEncodeH264RefListModEntry* pRefList0ModOperations; + const StdVideoEncodeH264RefListModEntry* pRefList1ModOperations; + const StdVideoEncodeH264RefPicMarkingEntry* pRefPicMarkingOperations; +} StdVideoEncodeH264ReferenceListsInfo; + +typedef struct StdVideoEncodeH264PictureInfo { + StdVideoEncodeH264PictureInfoFlags flags; + uint8_t seq_parameter_set_id; + uint8_t pic_parameter_set_id; + uint16_t idr_pic_id; + StdVideoH264PictureType primary_pic_type; + uint32_t frame_num; + int32_t PicOrderCnt; + uint8_t temporal_id; + uint8_t reserved1[3]; + const StdVideoEncodeH264ReferenceListsInfo* pRefLists; +} StdVideoEncodeH264PictureInfo; + +typedef struct StdVideoEncodeH264ReferenceInfo { + StdVideoEncodeH264ReferenceInfoFlags flags; + StdVideoH264PictureType primary_pic_type; + uint32_t FrameNum; + int32_t PicOrderCnt; + uint16_t long_term_pic_num; + uint16_t long_term_frame_idx; + uint8_t temporal_id; +} StdVideoEncodeH264ReferenceInfo; + +typedef struct StdVideoEncodeH264SliceHeader { + StdVideoEncodeH264SliceHeaderFlags flags; + uint32_t first_mb_in_slice; + StdVideoH264SliceType slice_type; + int8_t slice_alpha_c0_offset_div2; + int8_t slice_beta_offset_div2; + int8_t slice_qp_delta; + uint8_t reserved1; + StdVideoH264CabacInitIdc cabac_init_idc; + StdVideoH264DisableDeblockingFilterIdc disable_deblocking_filter_idc; + const StdVideoEncodeH264WeightTable* pWeightTable; +} StdVideoEncodeH264SliceHeader; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vk_video/vulkan_video_codec_h265std.h b/vulkan-headers/include/vk_video/vulkan_video_codec_h265std.h new file mode 100644 index 00000000..d0a1bacb --- /dev/null +++ b/vulkan-headers/include/vk_video/vulkan_video_codec_h265std.h @@ -0,0 +1,446 @@ +#ifndef VULKAN_VIDEO_CODEC_H265STD_H_ +#define VULKAN_VIDEO_CODEC_H265STD_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h265std is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h265std 1 +#include "vulkan_video_codecs_common.h" +#define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32 +#define STD_VIDEO_H265_SUBLAYERS_LIST_SIZE 7 +#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6 +#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16 +#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6 +#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS 64 +#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS 6 +#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64 +#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2 +#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64 +#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6 +#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19 +#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21 +#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3 +#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128 +#define STD_VIDEO_H265_MAX_NUM_LIST_REF 15 +#define STD_VIDEO_H265_MAX_CHROMA_PLANES 2 +#define STD_VIDEO_H265_MAX_SHORT_TERM_REF_PIC_SETS 64 +#define STD_VIDEO_H265_MAX_DPB_SIZE 16 +#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32 +#define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16 +#define STD_VIDEO_H265_MAX_DELTA_POC 48 +#define STD_VIDEO_H265_NO_REFERENCE_PICTURE 0xFF + +typedef enum StdVideoH265ChromaFormatIdc { + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0, + STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1, + STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2, + STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3, + STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_CHROMA_FORMAT_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265ChromaFormatIdc; + +typedef enum StdVideoH265ProfileIdc { + STD_VIDEO_H265_PROFILE_IDC_MAIN = 1, + STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2, + STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3, + STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4, + STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9, + STD_VIDEO_H265_PROFILE_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_PROFILE_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265ProfileIdc; + +typedef enum StdVideoH265LevelIdc { + STD_VIDEO_H265_LEVEL_IDC_1_0 = 0, + STD_VIDEO_H265_LEVEL_IDC_2_0 = 1, + STD_VIDEO_H265_LEVEL_IDC_2_1 = 2, + STD_VIDEO_H265_LEVEL_IDC_3_0 = 3, + STD_VIDEO_H265_LEVEL_IDC_3_1 = 4, + STD_VIDEO_H265_LEVEL_IDC_4_0 = 5, + STD_VIDEO_H265_LEVEL_IDC_4_1 = 6, + STD_VIDEO_H265_LEVEL_IDC_5_0 = 7, + STD_VIDEO_H265_LEVEL_IDC_5_1 = 8, + STD_VIDEO_H265_LEVEL_IDC_5_2 = 9, + STD_VIDEO_H265_LEVEL_IDC_6_0 = 10, + STD_VIDEO_H265_LEVEL_IDC_6_1 = 11, + STD_VIDEO_H265_LEVEL_IDC_6_2 = 12, + STD_VIDEO_H265_LEVEL_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_LEVEL_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265LevelIdc; + +typedef enum StdVideoH265SliceType { + STD_VIDEO_H265_SLICE_TYPE_B = 0, + STD_VIDEO_H265_SLICE_TYPE_P = 1, + STD_VIDEO_H265_SLICE_TYPE_I = 2, + STD_VIDEO_H265_SLICE_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_SLICE_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265SliceType; + +typedef enum StdVideoH265PictureType { + STD_VIDEO_H265_PICTURE_TYPE_P = 0, + STD_VIDEO_H265_PICTURE_TYPE_B = 1, + STD_VIDEO_H265_PICTURE_TYPE_I = 2, + STD_VIDEO_H265_PICTURE_TYPE_IDR = 3, + STD_VIDEO_H265_PICTURE_TYPE_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_PICTURE_TYPE_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265PictureType; + +typedef enum StdVideoH265AspectRatioIdc { + STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED = 0, + STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE = 1, + STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11 = 2, + STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11 = 3, + STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11 = 4, + STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33 = 5, + STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11 = 6, + STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11 = 7, + STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11 = 8, + STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33 = 9, + STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11 = 10, + STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11 = 11, + STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33 = 12, + STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99 = 13, + STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3 = 14, + STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2 = 15, + STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1 = 16, + STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR = 255, + STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF, + STD_VIDEO_H265_ASPECT_RATIO_IDC_MAX_ENUM = 0x7FFFFFFF +} StdVideoH265AspectRatioIdc; +typedef struct StdVideoH265DecPicBufMgr { + uint32_t max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; + uint8_t max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; + uint8_t max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; +} StdVideoH265DecPicBufMgr; + +typedef struct StdVideoH265SubLayerHrdParameters { + uint32_t bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE]; + uint32_t cbr_flag; +} StdVideoH265SubLayerHrdParameters; + +typedef struct StdVideoH265HrdFlags { + uint32_t nal_hrd_parameters_present_flag : 1; + uint32_t vcl_hrd_parameters_present_flag : 1; + uint32_t sub_pic_hrd_params_present_flag : 1; + uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag : 1; + uint32_t fixed_pic_rate_general_flag : 8; + uint32_t fixed_pic_rate_within_cvs_flag : 8; + uint32_t low_delay_hrd_flag : 8; +} StdVideoH265HrdFlags; + +typedef struct StdVideoH265HrdParameters { + StdVideoH265HrdFlags flags; + uint8_t tick_divisor_minus2; + uint8_t du_cpb_removal_delay_increment_length_minus1; + uint8_t dpb_output_delay_du_length_minus1; + uint8_t bit_rate_scale; + uint8_t cpb_size_scale; + uint8_t cpb_size_du_scale; + uint8_t initial_cpb_removal_delay_length_minus1; + uint8_t au_cpb_removal_delay_length_minus1; + uint8_t dpb_output_delay_length_minus1; + uint8_t cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; + uint16_t elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE]; + uint16_t reserved[3]; + const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersNal; + const StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersVcl; +} StdVideoH265HrdParameters; + +typedef struct StdVideoH265VpsFlags { + uint32_t vps_temporal_id_nesting_flag : 1; + uint32_t vps_sub_layer_ordering_info_present_flag : 1; + uint32_t vps_timing_info_present_flag : 1; + uint32_t vps_poc_proportional_to_timing_flag : 1; +} StdVideoH265VpsFlags; + +typedef struct StdVideoH265ProfileTierLevelFlags { + uint32_t general_tier_flag : 1; + uint32_t general_progressive_source_flag : 1; + uint32_t general_interlaced_source_flag : 1; + uint32_t general_non_packed_constraint_flag : 1; + uint32_t general_frame_only_constraint_flag : 1; +} StdVideoH265ProfileTierLevelFlags; + +typedef struct StdVideoH265ProfileTierLevel { + StdVideoH265ProfileTierLevelFlags flags; + StdVideoH265ProfileIdc general_profile_idc; + StdVideoH265LevelIdc general_level_idc; +} StdVideoH265ProfileTierLevel; + +typedef struct StdVideoH265VideoParameterSet { + StdVideoH265VpsFlags flags; + uint8_t vps_video_parameter_set_id; + uint8_t vps_max_sub_layers_minus1; + uint8_t reserved1; + uint8_t reserved2; + uint32_t vps_num_units_in_tick; + uint32_t vps_time_scale; + uint32_t vps_num_ticks_poc_diff_one_minus1; + uint32_t reserved3; + const StdVideoH265DecPicBufMgr* pDecPicBufMgr; + const StdVideoH265HrdParameters* pHrdParameters; + const StdVideoH265ProfileTierLevel* pProfileTierLevel; +} StdVideoH265VideoParameterSet; + +typedef struct StdVideoH265ScalingLists { + uint8_t ScalingList4x4[STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS]; + uint8_t ScalingList8x8[STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS]; + uint8_t ScalingList16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS]; + uint8_t ScalingList32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS]; + uint8_t ScalingListDCCoef16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS]; + uint8_t ScalingListDCCoef32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS]; +} StdVideoH265ScalingLists; + +typedef struct StdVideoH265SpsVuiFlags { + uint32_t aspect_ratio_info_present_flag : 1; + uint32_t overscan_info_present_flag : 1; + uint32_t overscan_appropriate_flag : 1; + uint32_t video_signal_type_present_flag : 1; + uint32_t video_full_range_flag : 1; + uint32_t colour_description_present_flag : 1; + uint32_t chroma_loc_info_present_flag : 1; + uint32_t neutral_chroma_indication_flag : 1; + uint32_t field_seq_flag : 1; + uint32_t frame_field_info_present_flag : 1; + uint32_t default_display_window_flag : 1; + uint32_t vui_timing_info_present_flag : 1; + uint32_t vui_poc_proportional_to_timing_flag : 1; + uint32_t vui_hrd_parameters_present_flag : 1; + uint32_t bitstream_restriction_flag : 1; + uint32_t tiles_fixed_structure_flag : 1; + uint32_t motion_vectors_over_pic_boundaries_flag : 1; + uint32_t restricted_ref_pic_lists_flag : 1; +} StdVideoH265SpsVuiFlags; + +typedef struct StdVideoH265SequenceParameterSetVui { + StdVideoH265SpsVuiFlags flags; + StdVideoH265AspectRatioIdc aspect_ratio_idc; + uint16_t sar_width; + uint16_t sar_height; + uint8_t video_format; + uint8_t colour_primaries; + uint8_t transfer_characteristics; + uint8_t matrix_coeffs; + uint8_t chroma_sample_loc_type_top_field; + uint8_t chroma_sample_loc_type_bottom_field; + uint8_t reserved1; + uint8_t reserved2; + uint16_t def_disp_win_left_offset; + uint16_t def_disp_win_right_offset; + uint16_t def_disp_win_top_offset; + uint16_t def_disp_win_bottom_offset; + uint32_t vui_num_units_in_tick; + uint32_t vui_time_scale; + uint32_t vui_num_ticks_poc_diff_one_minus1; + uint16_t min_spatial_segmentation_idc; + uint16_t reserved3; + uint8_t max_bytes_per_pic_denom; + uint8_t max_bits_per_min_cu_denom; + uint8_t log2_max_mv_length_horizontal; + uint8_t log2_max_mv_length_vertical; + const StdVideoH265HrdParameters* pHrdParameters; +} StdVideoH265SequenceParameterSetVui; + +typedef struct StdVideoH265PredictorPaletteEntries { + uint16_t PredictorPaletteEntries[STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE]; +} StdVideoH265PredictorPaletteEntries; + +typedef struct StdVideoH265SpsFlags { + uint32_t sps_temporal_id_nesting_flag : 1; + uint32_t separate_colour_plane_flag : 1; + uint32_t conformance_window_flag : 1; + uint32_t sps_sub_layer_ordering_info_present_flag : 1; + uint32_t scaling_list_enabled_flag : 1; + uint32_t sps_scaling_list_data_present_flag : 1; + uint32_t amp_enabled_flag : 1; + uint32_t sample_adaptive_offset_enabled_flag : 1; + uint32_t pcm_enabled_flag : 1; + uint32_t pcm_loop_filter_disabled_flag : 1; + uint32_t long_term_ref_pics_present_flag : 1; + uint32_t sps_temporal_mvp_enabled_flag : 1; + uint32_t strong_intra_smoothing_enabled_flag : 1; + uint32_t vui_parameters_present_flag : 1; + uint32_t sps_extension_present_flag : 1; + uint32_t sps_range_extension_flag : 1; + uint32_t transform_skip_rotation_enabled_flag : 1; + uint32_t transform_skip_context_enabled_flag : 1; + uint32_t implicit_rdpcm_enabled_flag : 1; + uint32_t explicit_rdpcm_enabled_flag : 1; + uint32_t extended_precision_processing_flag : 1; + uint32_t intra_smoothing_disabled_flag : 1; + uint32_t high_precision_offsets_enabled_flag : 1; + uint32_t persistent_rice_adaptation_enabled_flag : 1; + uint32_t cabac_bypass_alignment_enabled_flag : 1; + uint32_t sps_scc_extension_flag : 1; + uint32_t sps_curr_pic_ref_enabled_flag : 1; + uint32_t palette_mode_enabled_flag : 1; + uint32_t sps_palette_predictor_initializers_present_flag : 1; + uint32_t intra_boundary_filtering_disabled_flag : 1; +} StdVideoH265SpsFlags; + +typedef struct StdVideoH265ShortTermRefPicSetFlags { + uint32_t inter_ref_pic_set_prediction_flag : 1; + uint32_t delta_rps_sign : 1; +} StdVideoH265ShortTermRefPicSetFlags; + +typedef struct StdVideoH265ShortTermRefPicSet { + StdVideoH265ShortTermRefPicSetFlags flags; + uint32_t delta_idx_minus1; + uint16_t use_delta_flag; + uint16_t abs_delta_rps_minus1; + uint16_t used_by_curr_pic_flag; + uint16_t used_by_curr_pic_s0_flag; + uint16_t used_by_curr_pic_s1_flag; + uint16_t reserved1; + uint8_t reserved2; + uint8_t reserved3; + uint8_t num_negative_pics; + uint8_t num_positive_pics; + uint16_t delta_poc_s0_minus1[STD_VIDEO_H265_MAX_DPB_SIZE]; + uint16_t delta_poc_s1_minus1[STD_VIDEO_H265_MAX_DPB_SIZE]; +} StdVideoH265ShortTermRefPicSet; + +typedef struct StdVideoH265LongTermRefPicsSps { + uint32_t used_by_curr_pic_lt_sps_flag; + uint32_t lt_ref_pic_poc_lsb_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS]; +} StdVideoH265LongTermRefPicsSps; + +typedef struct StdVideoH265SequenceParameterSet { + StdVideoH265SpsFlags flags; + StdVideoH265ChromaFormatIdc chroma_format_idc; + uint32_t pic_width_in_luma_samples; + uint32_t pic_height_in_luma_samples; + uint8_t sps_video_parameter_set_id; + uint8_t sps_max_sub_layers_minus1; + uint8_t sps_seq_parameter_set_id; + uint8_t bit_depth_luma_minus8; + uint8_t bit_depth_chroma_minus8; + uint8_t log2_max_pic_order_cnt_lsb_minus4; + uint8_t log2_min_luma_coding_block_size_minus3; + uint8_t log2_diff_max_min_luma_coding_block_size; + uint8_t log2_min_luma_transform_block_size_minus2; + uint8_t log2_diff_max_min_luma_transform_block_size; + uint8_t max_transform_hierarchy_depth_inter; + uint8_t max_transform_hierarchy_depth_intra; + uint8_t num_short_term_ref_pic_sets; + uint8_t num_long_term_ref_pics_sps; + uint8_t pcm_sample_bit_depth_luma_minus1; + uint8_t pcm_sample_bit_depth_chroma_minus1; + uint8_t log2_min_pcm_luma_coding_block_size_minus3; + uint8_t log2_diff_max_min_pcm_luma_coding_block_size; + uint8_t reserved1; + uint8_t reserved2; + uint8_t palette_max_size; + uint8_t delta_palette_max_predictor_size; + uint8_t motion_vector_resolution_control_idc; + uint8_t sps_num_palette_predictor_initializers_minus1; + uint32_t conf_win_left_offset; + uint32_t conf_win_right_offset; + uint32_t conf_win_top_offset; + uint32_t conf_win_bottom_offset; + const StdVideoH265ProfileTierLevel* pProfileTierLevel; + const StdVideoH265DecPicBufMgr* pDecPicBufMgr; + const StdVideoH265ScalingLists* pScalingLists; + const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet; + const StdVideoH265LongTermRefPicsSps* pLongTermRefPicsSps; + const StdVideoH265SequenceParameterSetVui* pSequenceParameterSetVui; + const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries; +} StdVideoH265SequenceParameterSet; + +typedef struct StdVideoH265PpsFlags { + uint32_t dependent_slice_segments_enabled_flag : 1; + uint32_t output_flag_present_flag : 1; + uint32_t sign_data_hiding_enabled_flag : 1; + uint32_t cabac_init_present_flag : 1; + uint32_t constrained_intra_pred_flag : 1; + uint32_t transform_skip_enabled_flag : 1; + uint32_t cu_qp_delta_enabled_flag : 1; + uint32_t pps_slice_chroma_qp_offsets_present_flag : 1; + uint32_t weighted_pred_flag : 1; + uint32_t weighted_bipred_flag : 1; + uint32_t transquant_bypass_enabled_flag : 1; + uint32_t tiles_enabled_flag : 1; + uint32_t entropy_coding_sync_enabled_flag : 1; + uint32_t uniform_spacing_flag : 1; + uint32_t loop_filter_across_tiles_enabled_flag : 1; + uint32_t pps_loop_filter_across_slices_enabled_flag : 1; + uint32_t deblocking_filter_control_present_flag : 1; + uint32_t deblocking_filter_override_enabled_flag : 1; + uint32_t pps_deblocking_filter_disabled_flag : 1; + uint32_t pps_scaling_list_data_present_flag : 1; + uint32_t lists_modification_present_flag : 1; + uint32_t slice_segment_header_extension_present_flag : 1; + uint32_t pps_extension_present_flag : 1; + uint32_t cross_component_prediction_enabled_flag : 1; + uint32_t chroma_qp_offset_list_enabled_flag : 1; + uint32_t pps_curr_pic_ref_enabled_flag : 1; + uint32_t residual_adaptive_colour_transform_enabled_flag : 1; + uint32_t pps_slice_act_qp_offsets_present_flag : 1; + uint32_t pps_palette_predictor_initializers_present_flag : 1; + uint32_t monochrome_palette_flag : 1; + uint32_t pps_range_extension_flag : 1; +} StdVideoH265PpsFlags; + +typedef struct StdVideoH265PictureParameterSet { + StdVideoH265PpsFlags flags; + uint8_t pps_pic_parameter_set_id; + uint8_t pps_seq_parameter_set_id; + uint8_t sps_video_parameter_set_id; + uint8_t num_extra_slice_header_bits; + uint8_t num_ref_idx_l0_default_active_minus1; + uint8_t num_ref_idx_l1_default_active_minus1; + int8_t init_qp_minus26; + uint8_t diff_cu_qp_delta_depth; + int8_t pps_cb_qp_offset; + int8_t pps_cr_qp_offset; + int8_t pps_beta_offset_div2; + int8_t pps_tc_offset_div2; + uint8_t log2_parallel_merge_level_minus2; + uint8_t log2_max_transform_skip_block_size_minus2; + uint8_t diff_cu_chroma_qp_offset_depth; + uint8_t chroma_qp_offset_list_len_minus1; + int8_t cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE]; + int8_t cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE]; + uint8_t log2_sao_offset_scale_luma; + uint8_t log2_sao_offset_scale_chroma; + int8_t pps_act_y_qp_offset_plus5; + int8_t pps_act_cb_qp_offset_plus5; + int8_t pps_act_cr_qp_offset_plus3; + uint8_t pps_num_palette_predictor_initializers; + uint8_t luma_bit_depth_entry_minus8; + uint8_t chroma_bit_depth_entry_minus8; + uint8_t num_tile_columns_minus1; + uint8_t num_tile_rows_minus1; + uint8_t reserved1; + uint8_t reserved2; + uint16_t column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE]; + uint16_t row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE]; + uint32_t reserved3; + const StdVideoH265ScalingLists* pScalingLists; + const StdVideoH265PredictorPaletteEntries* pPredictorPaletteEntries; +} StdVideoH265PictureParameterSet; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vk_video/vulkan_video_codec_h265std_decode.h b/vulkan-headers/include/vk_video/vulkan_video_codec_h265std_decode.h new file mode 100644 index 00000000..0178793e --- /dev/null +++ b/vulkan-headers/include/vk_video/vulkan_video_codec_h265std_decode.h @@ -0,0 +1,67 @@ +#ifndef VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ +#define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h265std_decode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h265std_decode 1 +#include "vulkan_video_codec_h265std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_H265_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_decode" +#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8 +typedef struct StdVideoDecodeH265PictureInfoFlags { + uint32_t IrapPicFlag : 1; + uint32_t IdrPicFlag : 1; + uint32_t IsReference : 1; + uint32_t short_term_ref_pic_set_sps_flag : 1; +} StdVideoDecodeH265PictureInfoFlags; + +typedef struct StdVideoDecodeH265PictureInfo { + StdVideoDecodeH265PictureInfoFlags flags; + uint8_t sps_video_parameter_set_id; + uint8_t pps_seq_parameter_set_id; + uint8_t pps_pic_parameter_set_id; + uint8_t NumDeltaPocsOfRefRpsIdx; + int32_t PicOrderCntVal; + uint16_t NumBitsForSTRefPicSetInSlice; + uint16_t reserved; + uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; + uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; + uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; +} StdVideoDecodeH265PictureInfo; + +typedef struct StdVideoDecodeH265ReferenceInfoFlags { + uint32_t used_for_long_term_reference : 1; + uint32_t unused_for_reference : 1; +} StdVideoDecodeH265ReferenceInfoFlags; + +typedef struct StdVideoDecodeH265ReferenceInfo { + StdVideoDecodeH265ReferenceInfoFlags flags; + int32_t PicOrderCntVal; +} StdVideoDecodeH265ReferenceInfo; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vk_video/vulkan_video_codec_h265std_encode.h b/vulkan-headers/include/vk_video/vulkan_video_codec_h265std_encode.h new file mode 100644 index 00000000..ee34491f --- /dev/null +++ b/vulkan-headers/include/vk_video/vulkan_video_codec_h265std_encode.h @@ -0,0 +1,157 @@ +#ifndef VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ +#define VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codec_h265std_encode is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codec_h265std_encode 1 +#include "vulkan_video_codec_h265std.h" + +#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0) + +#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0 +#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_encode" +typedef struct StdVideoEncodeH265WeightTableFlags { + uint16_t luma_weight_l0_flag; + uint16_t chroma_weight_l0_flag; + uint16_t luma_weight_l1_flag; + uint16_t chroma_weight_l1_flag; +} StdVideoEncodeH265WeightTableFlags; + +typedef struct StdVideoEncodeH265WeightTable { + StdVideoEncodeH265WeightTableFlags flags; + uint8_t luma_log2_weight_denom; + int8_t delta_chroma_log2_weight_denom; + int8_t delta_luma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t luma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t delta_chroma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; + int8_t delta_chroma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; + int8_t delta_luma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t luma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + int8_t delta_chroma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; + int8_t delta_chroma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES]; +} StdVideoEncodeH265WeightTable; + +typedef struct StdVideoEncodeH265SliceSegmentHeaderFlags { + uint32_t first_slice_segment_in_pic_flag : 1; + uint32_t dependent_slice_segment_flag : 1; + uint32_t slice_sao_luma_flag : 1; + uint32_t slice_sao_chroma_flag : 1; + uint32_t num_ref_idx_active_override_flag : 1; + uint32_t mvd_l1_zero_flag : 1; + uint32_t cabac_init_flag : 1; + uint32_t cu_chroma_qp_offset_enabled_flag : 1; + uint32_t deblocking_filter_override_flag : 1; + uint32_t slice_deblocking_filter_disabled_flag : 1; + uint32_t collocated_from_l0_flag : 1; + uint32_t slice_loop_filter_across_slices_enabled_flag : 1; + uint32_t reserved : 20; +} StdVideoEncodeH265SliceSegmentHeaderFlags; + +typedef struct StdVideoEncodeH265SliceSegmentHeader { + StdVideoEncodeH265SliceSegmentHeaderFlags flags; + StdVideoH265SliceType slice_type; + uint32_t slice_segment_address; + uint8_t collocated_ref_idx; + uint8_t MaxNumMergeCand; + int8_t slice_cb_qp_offset; + int8_t slice_cr_qp_offset; + int8_t slice_beta_offset_div2; + int8_t slice_tc_offset_div2; + int8_t slice_act_y_qp_offset; + int8_t slice_act_cb_qp_offset; + int8_t slice_act_cr_qp_offset; + int8_t slice_qp_delta; + uint16_t reserved1; + const StdVideoEncodeH265WeightTable* pWeightTable; +} StdVideoEncodeH265SliceSegmentHeader; + +typedef struct StdVideoEncodeH265ReferenceListsInfoFlags { + uint32_t ref_pic_list_modification_flag_l0 : 1; + uint32_t ref_pic_list_modification_flag_l1 : 1; + uint32_t reserved : 30; +} StdVideoEncodeH265ReferenceListsInfoFlags; + +typedef struct StdVideoEncodeH265ReferenceListsInfo { + StdVideoEncodeH265ReferenceListsInfoFlags flags; + uint8_t num_ref_idx_l0_active_minus1; + uint8_t num_ref_idx_l1_active_minus1; + uint8_t RefPicList0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + uint8_t RefPicList1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + uint8_t list_entry_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF]; + uint8_t list_entry_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF]; +} StdVideoEncodeH265ReferenceListsInfo; + +typedef struct StdVideoEncodeH265PictureInfoFlags { + uint32_t is_reference : 1; + uint32_t IrapPicFlag : 1; + uint32_t used_for_long_term_reference : 1; + uint32_t discardable_flag : 1; + uint32_t cross_layer_bla_flag : 1; + uint32_t pic_output_flag : 1; + uint32_t no_output_of_prior_pics_flag : 1; + uint32_t short_term_ref_pic_set_sps_flag : 1; + uint32_t slice_temporal_mvp_enabled_flag : 1; + uint32_t reserved : 23; +} StdVideoEncodeH265PictureInfoFlags; + +typedef struct StdVideoEncodeH265LongTermRefPics { + uint8_t num_long_term_sps; + uint8_t num_long_term_pics; + uint8_t lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS]; + uint8_t poc_lsb_lt[STD_VIDEO_H265_MAX_LONG_TERM_PICS]; + uint16_t used_by_curr_pic_lt_flag; + uint8_t delta_poc_msb_present_flag[STD_VIDEO_H265_MAX_DELTA_POC]; + uint8_t delta_poc_msb_cycle_lt[STD_VIDEO_H265_MAX_DELTA_POC]; +} StdVideoEncodeH265LongTermRefPics; + +typedef struct StdVideoEncodeH265PictureInfo { + StdVideoEncodeH265PictureInfoFlags flags; + StdVideoH265PictureType pic_type; + uint8_t sps_video_parameter_set_id; + uint8_t pps_seq_parameter_set_id; + uint8_t pps_pic_parameter_set_id; + uint8_t short_term_ref_pic_set_idx; + int32_t PicOrderCntVal; + uint8_t TemporalId; + uint8_t reserved1[7]; + const StdVideoEncodeH265ReferenceListsInfo* pRefLists; + const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet; + const StdVideoEncodeH265LongTermRefPics* pLongTermRefPics; +} StdVideoEncodeH265PictureInfo; + +typedef struct StdVideoEncodeH265ReferenceInfoFlags { + uint32_t used_for_long_term_reference : 1; + uint32_t unused_for_reference : 1; + uint32_t reserved : 30; +} StdVideoEncodeH265ReferenceInfoFlags; + +typedef struct StdVideoEncodeH265ReferenceInfo { + StdVideoEncodeH265ReferenceInfoFlags flags; + StdVideoH265PictureType pic_type; + int32_t PicOrderCntVal; + uint8_t TemporalId; +} StdVideoEncodeH265ReferenceInfo; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vk_video/vulkan_video_codecs_common.h b/vulkan-headers/include/vk_video/vulkan_video_codecs_common.h new file mode 100644 index 00000000..5e6ef1db --- /dev/null +++ b/vulkan-headers/include/vk_video/vulkan_video_codecs_common.h @@ -0,0 +1,36 @@ +#ifndef VULKAN_VIDEO_CODECS_COMMON_H_ +#define VULKAN_VIDEO_CODECS_COMMON_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// vulkan_video_codecs_common is a preprocessor guard. Do not pass it to API calls. +#define vulkan_video_codecs_common 1 +#if !defined(VK_NO_STDINT_H) + #include +#endif + +#define VK_MAKE_VIDEO_STD_VERSION(major, minor, patch) \ + ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vk_icd.h b/vulkan-headers/include/vulkan/vk_icd.h new file mode 100644 index 00000000..59204a34 --- /dev/null +++ b/vulkan-headers/include/vulkan/vk_icd.h @@ -0,0 +1,244 @@ +/* + * Copyright 2015-2023 The Khronos Group Inc. + * Copyright 2015-2023 Valve Corporation + * Copyright 2015-2023 LunarG, Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ +#pragma once + +#include "vulkan.h" +#include + +// Loader-ICD version negotiation API. Versions add the following features: +// Version 0 - Initial. Doesn't support vk_icdGetInstanceProcAddr +// or vk_icdNegotiateLoaderICDInterfaceVersion. +// Version 1 - Add support for vk_icdGetInstanceProcAddr. +// Version 2 - Add Loader/ICD Interface version negotiation +// via vk_icdNegotiateLoaderICDInterfaceVersion. +// Version 3 - Add ICD creation/destruction of KHR_surface objects. +// Version 4 - Add unknown physical device extension querying via +// vk_icdGetPhysicalDeviceProcAddr. +// Version 5 - Tells ICDs that the loader is now paying attention to the +// application version of Vulkan passed into the ApplicationInfo +// structure during vkCreateInstance. This will tell the ICD +// that if the loader is older, it should automatically fail a +// call for any API version > 1.0. Otherwise, the loader will +// manually determine if it can support the expected version. +// Version 6 - Add support for vk_icdEnumerateAdapterPhysicalDevices. +// Version 7 - If an ICD supports any of the following functions, they must be +// queryable with vk_icdGetInstanceProcAddr: +// vk_icdNegotiateLoaderICDInterfaceVersion +// vk_icdGetPhysicalDeviceProcAddr +// vk_icdEnumerateAdapterPhysicalDevices (Windows only) +// In addition, these functions no longer need to be exported directly. +// This version allows drivers provided through the extension +// VK_LUNARG_direct_driver_loading be able to support the entire +// Driver-Loader interface. + +#define CURRENT_LOADER_ICD_INTERFACE_VERSION 7 +#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0 +#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4 + +// Old typedefs that don't follow a proper naming convention but are preserved for compatibility +typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion); +// This is defined in vk_layer.h which will be found by the loader, but if an ICD is building against this +// file directly, it won't be found. +#ifndef PFN_GetPhysicalDeviceProcAddr +typedef PFN_vkVoidFunction(VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName); +#endif + +// Typedefs for loader/ICD interface +typedef VkResult (VKAPI_PTR *PFN_vk_icdNegotiateLoaderICDInterfaceVersion)(uint32_t* pVersion); +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vk_icdGetInstanceProcAddr)(VkInstance instance, const char* pName); +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vk_icdGetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName); +#if defined(VK_USE_PLATFORM_WIN32_KHR) +typedef VkResult (VKAPI_PTR *PFN_vk_icdEnumerateAdapterPhysicalDevices)(VkInstance instance, LUID adapterLUID, + uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); +#endif + +// Prototypes for loader/ICD interface +#if !defined(VK_NO_PROTOTYPES) +#ifdef __cplusplus +extern "C" { +#endif + VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pVersion); + VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName); + VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance instance, const char* pName); +#if defined(VK_USE_PLATFORM_WIN32_KHR) + VKAPI_ATTR VkResult VKAPI_CALL vk_icdEnumerateAdapterPhysicalDevices(VkInstance instance, LUID adapterLUID, + uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); +#endif +#ifdef __cplusplus +} +#endif +#endif + +/* + * The ICD must reserve space for a pointer for the loader's dispatch + * table, at the start of . + * The ICD must initialize this variable using the SET_LOADER_MAGIC_VALUE macro. + */ + +#define ICD_LOADER_MAGIC 0x01CDC0DE + +typedef union { + uintptr_t loaderMagic; + void *loaderData; +} VK_LOADER_DATA; + +static inline void set_loader_magic_value(void *pNewObject) { + VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject; + loader_info->loaderMagic = ICD_LOADER_MAGIC; +} + +static inline bool valid_loader_magic_value(void *pNewObject) { + const VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject; + return (loader_info->loaderMagic & 0xffffffff) == ICD_LOADER_MAGIC; +} + +/* + * Windows and Linux ICDs will treat VkSurfaceKHR as a pointer to a struct that + * contains the platform-specific connection and surface information. + */ +typedef enum { + VK_ICD_WSI_PLATFORM_MIR, + VK_ICD_WSI_PLATFORM_WAYLAND, + VK_ICD_WSI_PLATFORM_WIN32, + VK_ICD_WSI_PLATFORM_XCB, + VK_ICD_WSI_PLATFORM_XLIB, + VK_ICD_WSI_PLATFORM_ANDROID, + VK_ICD_WSI_PLATFORM_MACOS, + VK_ICD_WSI_PLATFORM_IOS, + VK_ICD_WSI_PLATFORM_DISPLAY, + VK_ICD_WSI_PLATFORM_HEADLESS, + VK_ICD_WSI_PLATFORM_METAL, + VK_ICD_WSI_PLATFORM_DIRECTFB, + VK_ICD_WSI_PLATFORM_VI, + VK_ICD_WSI_PLATFORM_GGP, + VK_ICD_WSI_PLATFORM_SCREEN, + VK_ICD_WSI_PLATFORM_FUCHSIA, +} VkIcdWsiPlatform; + +typedef struct { + VkIcdWsiPlatform platform; +} VkIcdSurfaceBase; + +#ifdef VK_USE_PLATFORM_MIR_KHR +typedef struct { + VkIcdSurfaceBase base; + MirConnection *connection; + MirSurface *mirSurface; +} VkIcdSurfaceMir; +#endif // VK_USE_PLATFORM_MIR_KHR + +#ifdef VK_USE_PLATFORM_WAYLAND_KHR +typedef struct { + VkIcdSurfaceBase base; + struct wl_display *display; + struct wl_surface *surface; +} VkIcdSurfaceWayland; +#endif // VK_USE_PLATFORM_WAYLAND_KHR + +#ifdef VK_USE_PLATFORM_WIN32_KHR +typedef struct { + VkIcdSurfaceBase base; + HINSTANCE hinstance; + HWND hwnd; +} VkIcdSurfaceWin32; +#endif // VK_USE_PLATFORM_WIN32_KHR + +#ifdef VK_USE_PLATFORM_XCB_KHR +typedef struct { + VkIcdSurfaceBase base; + xcb_connection_t *connection; + xcb_window_t window; +} VkIcdSurfaceXcb; +#endif // VK_USE_PLATFORM_XCB_KHR + +#ifdef VK_USE_PLATFORM_XLIB_KHR +typedef struct { + VkIcdSurfaceBase base; + Display *dpy; + Window window; +} VkIcdSurfaceXlib; +#endif // VK_USE_PLATFORM_XLIB_KHR + +#ifdef VK_USE_PLATFORM_DIRECTFB_EXT +typedef struct { + VkIcdSurfaceBase base; + IDirectFB *dfb; + IDirectFBSurface *surface; +} VkIcdSurfaceDirectFB; +#endif // VK_USE_PLATFORM_DIRECTFB_EXT + +#ifdef VK_USE_PLATFORM_ANDROID_KHR +typedef struct { + VkIcdSurfaceBase base; + struct ANativeWindow *window; +} VkIcdSurfaceAndroid; +#endif // VK_USE_PLATFORM_ANDROID_KHR + +#ifdef VK_USE_PLATFORM_MACOS_MVK +typedef struct { + VkIcdSurfaceBase base; + const void *pView; +} VkIcdSurfaceMacOS; +#endif // VK_USE_PLATFORM_MACOS_MVK + +#ifdef VK_USE_PLATFORM_IOS_MVK +typedef struct { + VkIcdSurfaceBase base; + const void *pView; +} VkIcdSurfaceIOS; +#endif // VK_USE_PLATFORM_IOS_MVK + +#ifdef VK_USE_PLATFORM_GGP +typedef struct { + VkIcdSurfaceBase base; + GgpStreamDescriptor streamDescriptor; +} VkIcdSurfaceGgp; +#endif // VK_USE_PLATFORM_GGP + +typedef struct { + VkIcdSurfaceBase base; + VkDisplayModeKHR displayMode; + uint32_t planeIndex; + uint32_t planeStackIndex; + VkSurfaceTransformFlagBitsKHR transform; + float globalAlpha; + VkDisplayPlaneAlphaFlagBitsKHR alphaMode; + VkExtent2D imageExtent; +} VkIcdSurfaceDisplay; + +typedef struct { + VkIcdSurfaceBase base; +} VkIcdSurfaceHeadless; + +#ifdef VK_USE_PLATFORM_METAL_EXT +typedef struct { + VkIcdSurfaceBase base; + const CAMetalLayer *pLayer; +} VkIcdSurfaceMetal; +#endif // VK_USE_PLATFORM_METAL_EXT + +#ifdef VK_USE_PLATFORM_VI_NN +typedef struct { + VkIcdSurfaceBase base; + void *window; +} VkIcdSurfaceVi; +#endif // VK_USE_PLATFORM_VI_NN + +#ifdef VK_USE_PLATFORM_SCREEN_QNX +typedef struct { + VkIcdSurfaceBase base; + struct _screen_context *context; + struct _screen_window *window; +} VkIcdSurfaceScreen; +#endif // VK_USE_PLATFORM_SCREEN_QNX + +#ifdef VK_USE_PLATFORM_FUCHSIA +typedef struct { + VkIcdSurfaceBase base; +} VkIcdSurfaceImagePipe; +#endif // VK_USE_PLATFORM_FUCHSIA diff --git a/vulkan-headers/include/vulkan/vk_layer.h b/vulkan-headers/include/vulkan/vk_layer.h new file mode 100644 index 00000000..19d88fce --- /dev/null +++ b/vulkan-headers/include/vulkan/vk_layer.h @@ -0,0 +1,189 @@ +/* + * Copyright 2015-2023 The Khronos Group Inc. + * Copyright 2015-2023 Valve Corporation + * Copyright 2015-2023 LunarG, Inc. + * + * SPDX-License-Identifier: Apache-2.0 + */ +#pragma once + +/* Need to define dispatch table + * Core struct can then have ptr to dispatch table at the top + * Along with object ptrs for current and next OBJ + */ + +#include "vulkan_core.h" + +#define MAX_NUM_UNKNOWN_EXTS 250 + + // Loader-Layer version negotiation API. Versions add the following features: + // Versions 0/1 - Initial. Doesn't support vk_layerGetPhysicalDeviceProcAddr + // or vk_icdNegotiateLoaderLayerInterfaceVersion. + // Version 2 - Add support for vk_layerGetPhysicalDeviceProcAddr and + // vk_icdNegotiateLoaderLayerInterfaceVersion. +#define CURRENT_LOADER_LAYER_INTERFACE_VERSION 2 +#define MIN_SUPPORTED_LOADER_LAYER_INTERFACE_VERSION 1 + +#define VK_CURRENT_CHAIN_VERSION 1 + +// Typedef for use in the interfaces below +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName); + +// Version negotiation values +typedef enum VkNegotiateLayerStructType { + LAYER_NEGOTIATE_UNINTIALIZED = 0, + LAYER_NEGOTIATE_INTERFACE_STRUCT = 1, +} VkNegotiateLayerStructType; + +// Version negotiation structures +typedef struct VkNegotiateLayerInterface { + VkNegotiateLayerStructType sType; + void *pNext; + uint32_t loaderLayerInterfaceVersion; + PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr; + PFN_vkGetDeviceProcAddr pfnGetDeviceProcAddr; + PFN_GetPhysicalDeviceProcAddr pfnGetPhysicalDeviceProcAddr; +} VkNegotiateLayerInterface; + +// Version negotiation functions +typedef VkResult (VKAPI_PTR *PFN_vkNegotiateLoaderLayerInterfaceVersion)(VkNegotiateLayerInterface *pVersionStruct); + +// Function prototype for unknown physical device extension command +typedef VkResult(VKAPI_PTR *PFN_PhysDevExt)(VkPhysicalDevice phys_device); + +// ------------------------------------------------------------------------------------------------ +// CreateInstance and CreateDevice support structures + +/* Sub type of structure for instance and device loader ext of CreateInfo. + * When sType == VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO + * or sType == VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO + * then VkLayerFunction indicates struct type pointed to by pNext + */ +typedef enum VkLayerFunction_ { + VK_LAYER_LINK_INFO = 0, + VK_LOADER_DATA_CALLBACK = 1, + VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK = 2, + VK_LOADER_FEATURES = 3, +} VkLayerFunction; + +typedef struct VkLayerInstanceLink_ { + struct VkLayerInstanceLink_ *pNext; + PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; + PFN_GetPhysicalDeviceProcAddr pfnNextGetPhysicalDeviceProcAddr; +} VkLayerInstanceLink; + +/* + * When creating the device chain the loader needs to pass + * down information about it's device structure needed at + * the end of the chain. Passing the data via the + * VkLayerDeviceInfo avoids issues with finding the + * exact instance being used. + */ +typedef struct VkLayerDeviceInfo_ { + void *device_info; + PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; +} VkLayerDeviceInfo; + +typedef VkResult (VKAPI_PTR *PFN_vkSetInstanceLoaderData)(VkInstance instance, + void *object); +typedef VkResult (VKAPI_PTR *PFN_vkSetDeviceLoaderData)(VkDevice device, + void *object); +typedef VkResult (VKAPI_PTR *PFN_vkLayerCreateDevice)(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo, + const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA); +typedef void (VKAPI_PTR *PFN_vkLayerDestroyDevice)(VkDevice physicalDevice, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction); + +typedef enum VkLoaderFeastureFlagBits { + VK_LOADER_FEATURE_PHYSICAL_DEVICE_SORTING = 0x00000001, +} VkLoaderFlagBits; +typedef VkFlags VkLoaderFeatureFlags; + +typedef struct { + VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO + const void *pNext; + VkLayerFunction function; + union { + VkLayerInstanceLink *pLayerInfo; + PFN_vkSetInstanceLoaderData pfnSetInstanceLoaderData; + struct { + PFN_vkLayerCreateDevice pfnLayerCreateDevice; + PFN_vkLayerDestroyDevice pfnLayerDestroyDevice; + } layerDevice; + VkLoaderFeatureFlags loaderFeatures; + } u; +} VkLayerInstanceCreateInfo; + +typedef struct VkLayerDeviceLink_ { + struct VkLayerDeviceLink_ *pNext; + PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; + PFN_vkGetDeviceProcAddr pfnNextGetDeviceProcAddr; +} VkLayerDeviceLink; + +typedef struct { + VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO + const void *pNext; + VkLayerFunction function; + union { + VkLayerDeviceLink *pLayerInfo; + PFN_vkSetDeviceLoaderData pfnSetDeviceLoaderData; + } u; +} VkLayerDeviceCreateInfo; + +#ifdef __cplusplus +extern "C" { +#endif + +VKAPI_ATTR VkResult VKAPI_CALL vkNegotiateLoaderLayerInterfaceVersion(VkNegotiateLayerInterface *pVersionStruct); + +typedef enum VkChainType { + VK_CHAIN_TYPE_UNKNOWN = 0, + VK_CHAIN_TYPE_ENUMERATE_INSTANCE_EXTENSION_PROPERTIES = 1, + VK_CHAIN_TYPE_ENUMERATE_INSTANCE_LAYER_PROPERTIES = 2, + VK_CHAIN_TYPE_ENUMERATE_INSTANCE_VERSION = 3, +} VkChainType; + +typedef struct VkChainHeader { + VkChainType type; + uint32_t version; + uint32_t size; +} VkChainHeader; + +typedef struct VkEnumerateInstanceExtensionPropertiesChain { + VkChainHeader header; + VkResult(VKAPI_PTR *pfnNextLayer)(const struct VkEnumerateInstanceExtensionPropertiesChain *, const char *, uint32_t *, + VkExtensionProperties *); + const struct VkEnumerateInstanceExtensionPropertiesChain *pNextLink; + +#if defined(__cplusplus) + inline VkResult CallDown(const char *pLayerName, uint32_t *pPropertyCount, VkExtensionProperties *pProperties) const { + return pfnNextLayer(pNextLink, pLayerName, pPropertyCount, pProperties); + } +#endif +} VkEnumerateInstanceExtensionPropertiesChain; + +typedef struct VkEnumerateInstanceLayerPropertiesChain { + VkChainHeader header; + VkResult(VKAPI_PTR *pfnNextLayer)(const struct VkEnumerateInstanceLayerPropertiesChain *, uint32_t *, VkLayerProperties *); + const struct VkEnumerateInstanceLayerPropertiesChain *pNextLink; + +#if defined(__cplusplus) + inline VkResult CallDown(uint32_t *pPropertyCount, VkLayerProperties *pProperties) const { + return pfnNextLayer(pNextLink, pPropertyCount, pProperties); + } +#endif +} VkEnumerateInstanceLayerPropertiesChain; + +typedef struct VkEnumerateInstanceVersionChain { + VkChainHeader header; + VkResult(VKAPI_PTR *pfnNextLayer)(const struct VkEnumerateInstanceVersionChain *, uint32_t *); + const struct VkEnumerateInstanceVersionChain *pNextLink; + +#if defined(__cplusplus) + inline VkResult CallDown(uint32_t *pApiVersion) const { + return pfnNextLayer(pNextLink, pApiVersion); + } +#endif +} VkEnumerateInstanceVersionChain; + +#ifdef __cplusplus +} +#endif diff --git a/vulkan-headers/include/vulkan/vk_platform.h b/vulkan-headers/include/vulkan/vk_platform.h new file mode 100644 index 00000000..0ecd4f64 --- /dev/null +++ b/vulkan-headers/include/vulkan/vk_platform.h @@ -0,0 +1,84 @@ +// +// File: vk_platform.h +// +/* +** Copyright 2014-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + + +#ifndef VK_PLATFORM_H_ +#define VK_PLATFORM_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif // __cplusplus + +/* +*************************************************************************************************** +* Platform-specific directives and type declarations +*************************************************************************************************** +*/ + +/* Platform-specific calling convention macros. + * + * Platforms should define these so that Vulkan clients call Vulkan commands + * with the same calling conventions that the Vulkan implementation expects. + * + * VKAPI_ATTR - Placed before the return type in function declarations. + * Useful for C++11 and GCC/Clang-style function attribute syntax. + * VKAPI_CALL - Placed after the return type in function declarations. + * Useful for MSVC-style calling convention syntax. + * VKAPI_PTR - Placed between the '(' and '*' in function pointer types. + * + * Function declaration: VKAPI_ATTR void VKAPI_CALL vkCommand(void); + * Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void); + */ +#if defined(_WIN32) + // On Windows, Vulkan commands use the stdcall convention + #define VKAPI_ATTR + #define VKAPI_CALL __stdcall + #define VKAPI_PTR VKAPI_CALL +#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7 + #error "Vulkan is not supported for the 'armeabi' NDK ABI" +#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE) + // On Android 32-bit ARM targets, Vulkan functions use the "hardfloat" + // calling convention, i.e. float parameters are passed in registers. This + // is true even if the rest of the application passes floats on the stack, + // as it does by default when compiling for the armeabi-v7a NDK ABI. + #define VKAPI_ATTR __attribute__((pcs("aapcs-vfp"))) + #define VKAPI_CALL + #define VKAPI_PTR VKAPI_ATTR +#else + // On other platforms, use the default calling convention + #define VKAPI_ATTR + #define VKAPI_CALL + #define VKAPI_PTR +#endif + +#if !defined(VK_NO_STDDEF_H) + #include +#endif // !defined(VK_NO_STDDEF_H) + +#if !defined(VK_NO_STDINT_H) + #if defined(_MSC_VER) && (_MSC_VER < 1600) + typedef signed __int8 int8_t; + typedef unsigned __int8 uint8_t; + typedef signed __int16 int16_t; + typedef unsigned __int16 uint16_t; + typedef signed __int32 int32_t; + typedef unsigned __int32 uint32_t; + typedef signed __int64 int64_t; + typedef unsigned __int64 uint64_t; + #else + #include + #endif +#endif // !defined(VK_NO_STDINT_H) + +#ifdef __cplusplus +} // extern "C" +#endif // __cplusplus + +#endif diff --git a/vulkan-headers/include/vulkan/vk_sdk_platform.h b/vulkan-headers/include/vulkan/vk_sdk_platform.h new file mode 100644 index 00000000..f192c1c6 --- /dev/null +++ b/vulkan-headers/include/vulkan/vk_sdk_platform.h @@ -0,0 +1,71 @@ +// +// File: vk_sdk_platform.h +// +/* + * Copyright (c) 2015-2016 The Khronos Group Inc. + * Copyright (c) 2015-2016 Valve Corporation + * Copyright (c) 2015-2016 LunarG, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef VK_SDK_PLATFORM_H +#define VK_SDK_PLATFORM_H + +#if defined(_WIN32) +#ifndef NOMINMAX +#define NOMINMAX +#endif +#ifndef __cplusplus +#undef inline +#define inline __inline +#endif // __cplusplus + +#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) +// C99: +// Microsoft didn't implement C99 in Visual Studio; but started adding it with +// VS2013. However, VS2013 still didn't have snprintf(). The following is a +// work-around (Note: The _CRT_SECURE_NO_WARNINGS macro must be set in the +// "CMakeLists.txt" file). +// NOTE: This is fixed in Visual Studio 2015. +#define snprintf _snprintf +#endif + +#define strdup _strdup + +#endif // _WIN32 + +// Check for noexcept support using clang, with fallback to Windows or GCC version numbers +#ifndef NOEXCEPT +#if defined(__clang__) +#if __has_feature(cxx_noexcept) +#define HAS_NOEXCEPT +#endif +#else +#if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ * 10 + __GNUC_MINOR__ >= 46 +#define HAS_NOEXCEPT +#else +#if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023026 && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS +#define HAS_NOEXCEPT +#endif +#endif +#endif + +#ifdef HAS_NOEXCEPT +#define NOEXCEPT noexcept +#else +#define NOEXCEPT +#endif +#endif + +#endif // VK_SDK_PLATFORM_H diff --git a/vulkan-headers/include/vulkan/vulkan.h b/vulkan-headers/include/vulkan/vulkan.h new file mode 100644 index 00000000..ef94006b --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan.h @@ -0,0 +1,99 @@ +#ifndef VULKAN_H_ +#define VULKAN_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +#include "vk_platform.h" +#include "vulkan_core.h" + +#ifdef VK_USE_PLATFORM_ANDROID_KHR +#include "vulkan_android.h" +#endif + +#ifdef VK_USE_PLATFORM_FUCHSIA +#include +#include "vulkan_fuchsia.h" +#endif + +#ifdef VK_USE_PLATFORM_IOS_MVK +#include "vulkan_ios.h" +#endif + + +#ifdef VK_USE_PLATFORM_MACOS_MVK +#include "vulkan_macos.h" +#endif + +#ifdef VK_USE_PLATFORM_METAL_EXT +#include "vulkan_metal.h" +#endif + +#ifdef VK_USE_PLATFORM_VI_NN +#include "vulkan_vi.h" +#endif + + +#ifdef VK_USE_PLATFORM_WAYLAND_KHR +#include "vulkan_wayland.h" +#endif + + +#ifdef VK_USE_PLATFORM_WIN32_KHR +#include +#include "vulkan_win32.h" +#endif + + +#ifdef VK_USE_PLATFORM_XCB_KHR +#include +#include "vulkan_xcb.h" +#endif + + +#ifdef VK_USE_PLATFORM_XLIB_KHR +#include +#include "vulkan_xlib.h" +#endif + + +#ifdef VK_USE_PLATFORM_DIRECTFB_EXT +#include +#include "vulkan_directfb.h" +#endif + + +#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT +#include +#include +#include "vulkan_xlib_xrandr.h" +#endif + + +#ifdef VK_USE_PLATFORM_GGP +#include +#include "vulkan_ggp.h" +#endif + + +#ifdef VK_USE_PLATFORM_SCREEN_QNX +#include +#include "vulkan_screen.h" +#endif + + +#ifdef VK_USE_PLATFORM_SCI +#include +#include +#include "vulkan_sci.h" +#endif + + +#ifdef VK_ENABLE_BETA_EXTENSIONS +#include "vulkan_beta.h" +#endif + +#endif // VULKAN_H_ diff --git a/vulkan-headers/include/vulkan/vulkan_android.h b/vulkan-headers/include/vulkan/vulkan_android.h new file mode 100644 index 00000000..61ff40ba --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_android.h @@ -0,0 +1,153 @@ +#ifndef VULKAN_ANDROID_H_ +#define VULKAN_ANDROID_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_KHR_android_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_android_surface 1 +struct ANativeWindow; +#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 +#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" +typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; +typedef struct VkAndroidSurfaceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkAndroidSurfaceCreateFlagsKHR flags; + struct ANativeWindow* window; +} VkAndroidSurfaceCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( + VkInstance instance, + const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +// VK_ANDROID_external_memory_android_hardware_buffer is a preprocessor guard. Do not pass it to API calls. +#define VK_ANDROID_external_memory_android_hardware_buffer 1 +struct AHardwareBuffer; +#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5 +#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" +typedef struct VkAndroidHardwareBufferUsageANDROID { + VkStructureType sType; + void* pNext; + uint64_t androidHardwareBufferUsage; +} VkAndroidHardwareBufferUsageANDROID; + +typedef struct VkAndroidHardwareBufferPropertiesANDROID { + VkStructureType sType; + void* pNext; + VkDeviceSize allocationSize; + uint32_t memoryTypeBits; +} VkAndroidHardwareBufferPropertiesANDROID; + +typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID { + VkStructureType sType; + void* pNext; + VkFormat format; + uint64_t externalFormat; + VkFormatFeatureFlags formatFeatures; + VkComponentMapping samplerYcbcrConversionComponents; + VkSamplerYcbcrModelConversion suggestedYcbcrModel; + VkSamplerYcbcrRange suggestedYcbcrRange; + VkChromaLocation suggestedXChromaOffset; + VkChromaLocation suggestedYChromaOffset; +} VkAndroidHardwareBufferFormatPropertiesANDROID; + +typedef struct VkImportAndroidHardwareBufferInfoANDROID { + VkStructureType sType; + const void* pNext; + struct AHardwareBuffer* buffer; +} VkImportAndroidHardwareBufferInfoANDROID; + +typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; +} VkMemoryGetAndroidHardwareBufferInfoANDROID; + +typedef struct VkExternalFormatANDROID { + VkStructureType sType; + void* pNext; + uint64_t externalFormat; +} VkExternalFormatANDROID; + +typedef struct VkAndroidHardwareBufferFormatProperties2ANDROID { + VkStructureType sType; + void* pNext; + VkFormat format; + uint64_t externalFormat; + VkFormatFeatureFlags2 formatFeatures; + VkComponentMapping samplerYcbcrConversionComponents; + VkSamplerYcbcrModelConversion suggestedYcbcrModel; + VkSamplerYcbcrRange suggestedYcbcrRange; + VkChromaLocation suggestedXChromaOffset; + VkChromaLocation suggestedYChromaOffset; +} VkAndroidHardwareBufferFormatProperties2ANDROID; + +typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID( + VkDevice device, + const struct AHardwareBuffer* buffer, + VkAndroidHardwareBufferPropertiesANDROID* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID( + VkDevice device, + const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, + struct AHardwareBuffer** pBuffer); +#endif + + +// VK_ANDROID_external_format_resolve is a preprocessor guard. Do not pass it to API calls. +#define VK_ANDROID_external_format_resolve 1 +#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION 1 +#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME "VK_ANDROID_external_format_resolve" +typedef struct VkPhysicalDeviceExternalFormatResolveFeaturesANDROID { + VkStructureType sType; + void* pNext; + VkBool32 externalFormatResolve; +} VkPhysicalDeviceExternalFormatResolveFeaturesANDROID; + +typedef struct VkPhysicalDeviceExternalFormatResolvePropertiesANDROID { + VkStructureType sType; + void* pNext; + VkBool32 nullColorAttachmentWithExternalFormatResolve; + VkChromaLocation externalFormatResolveChromaOffsetX; + VkChromaLocation externalFormatResolveChromaOffsetY; +} VkPhysicalDeviceExternalFormatResolvePropertiesANDROID; + +typedef struct VkAndroidHardwareBufferFormatResolvePropertiesANDROID { + VkStructureType sType; + void* pNext; + VkFormat colorAttachmentFormat; +} VkAndroidHardwareBufferFormatResolvePropertiesANDROID; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_beta.h b/vulkan-headers/include/vulkan/vulkan_beta.h new file mode 100644 index 00000000..df18b404 --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_beta.h @@ -0,0 +1,216 @@ +#ifndef VULKAN_BETA_H_ +#define VULKAN_BETA_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_KHR_portability_subset is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_portability_subset 1 +#define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1 +#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset" +typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 constantAlphaColorBlendFactors; + VkBool32 events; + VkBool32 imageViewFormatReinterpretation; + VkBool32 imageViewFormatSwizzle; + VkBool32 imageView2DOn3DImage; + VkBool32 multisampleArrayImage; + VkBool32 mutableComparisonSamplers; + VkBool32 pointPolygons; + VkBool32 samplerMipLodBias; + VkBool32 separateStencilMaskRef; + VkBool32 shaderSampleRateInterpolationFunctions; + VkBool32 tessellationIsolines; + VkBool32 tessellationPointMode; + VkBool32 triangleFans; + VkBool32 vertexAttributeAccessBeyondStride; +} VkPhysicalDevicePortabilitySubsetFeaturesKHR; + +typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t minVertexInputBindingStrideAlignment; +} VkPhysicalDevicePortabilitySubsetPropertiesKHR; + + + +// VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls. +#define VK_AMDX_shader_enqueue 1 +#define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 1 +#define VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME "VK_AMDX_shader_enqueue" +#define VK_SHADER_INDEX_UNUSED_AMDX (~0U) +typedef struct VkPhysicalDeviceShaderEnqueueFeaturesAMDX { + VkStructureType sType; + void* pNext; + VkBool32 shaderEnqueue; +} VkPhysicalDeviceShaderEnqueueFeaturesAMDX; + +typedef struct VkPhysicalDeviceShaderEnqueuePropertiesAMDX { + VkStructureType sType; + void* pNext; + uint32_t maxExecutionGraphDepth; + uint32_t maxExecutionGraphShaderOutputNodes; + uint32_t maxExecutionGraphShaderPayloadSize; + uint32_t maxExecutionGraphShaderPayloadCount; + uint32_t executionGraphDispatchAddressAlignment; +} VkPhysicalDeviceShaderEnqueuePropertiesAMDX; + +typedef struct VkExecutionGraphPipelineScratchSizeAMDX { + VkStructureType sType; + void* pNext; + VkDeviceSize size; +} VkExecutionGraphPipelineScratchSizeAMDX; + +typedef struct VkExecutionGraphPipelineCreateInfoAMDX { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + const VkPipelineLibraryCreateInfoKHR* pLibraryInfo; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkExecutionGraphPipelineCreateInfoAMDX; + +typedef union VkDeviceOrHostAddressConstAMDX { + VkDeviceAddress deviceAddress; + const void* hostAddress; +} VkDeviceOrHostAddressConstAMDX; + +typedef struct VkDispatchGraphInfoAMDX { + uint32_t nodeIndex; + uint32_t payloadCount; + VkDeviceOrHostAddressConstAMDX payloads; + uint64_t payloadStride; +} VkDispatchGraphInfoAMDX; + +typedef struct VkDispatchGraphCountInfoAMDX { + uint32_t count; + VkDeviceOrHostAddressConstAMDX infos; + uint64_t stride; +} VkDispatchGraphCountInfoAMDX; + +typedef struct VkPipelineShaderStageNodeCreateInfoAMDX { + VkStructureType sType; + const void* pNext; + const char* pName; + uint32_t index; +} VkPipelineShaderStageNodeCreateInfoAMDX; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateExecutionGraphPipelinesAMDX)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)(VkDevice device, VkPipeline executionGraph, VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)(VkDevice device, VkPipeline executionGraph, const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, uint32_t* pNodeIndex); +typedef void (VKAPI_PTR *PFN_vkCmdInitializeGraphScratchMemoryAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch); +typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, const VkDispatchGraphCountInfoAMDX* pCountInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDispatchGraphIndirectCountAMDX)(VkCommandBuffer commandBuffer, VkDeviceAddress scratch, VkDeviceAddress countInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateExecutionGraphPipelinesAMDX( + VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineScratchSizeAMDX( + VkDevice device, + VkPipeline executionGraph, + VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetExecutionGraphPipelineNodeIndexAMDX( + VkDevice device, + VkPipeline executionGraph, + const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo, + uint32_t* pNodeIndex); + +VKAPI_ATTR void VKAPI_CALL vkCmdInitializeGraphScratchMemoryAMDX( + VkCommandBuffer commandBuffer, + VkDeviceAddress scratch); + +VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphAMDX( + VkCommandBuffer commandBuffer, + VkDeviceAddress scratch, + const VkDispatchGraphCountInfoAMDX* pCountInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectAMDX( + VkCommandBuffer commandBuffer, + VkDeviceAddress scratch, + const VkDispatchGraphCountInfoAMDX* pCountInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdDispatchGraphIndirectCountAMDX( + VkCommandBuffer commandBuffer, + VkDeviceAddress scratch, + VkDeviceAddress countInfo); +#endif + + +// VK_NV_displacement_micromap is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_displacement_micromap 1 +#define VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION 2 +#define VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME "VK_NV_displacement_micromap" + +typedef enum VkDisplacementMicromapFormatNV { + VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV = 1, + VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV = 2, + VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV = 3, + VK_DISPLACEMENT_MICROMAP_FORMAT_MAX_ENUM_NV = 0x7FFFFFFF +} VkDisplacementMicromapFormatNV; +typedef struct VkPhysicalDeviceDisplacementMicromapFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 displacementMicromap; +} VkPhysicalDeviceDisplacementMicromapFeaturesNV; + +typedef struct VkPhysicalDeviceDisplacementMicromapPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t maxDisplacementMicromapSubdivisionLevel; +} VkPhysicalDeviceDisplacementMicromapPropertiesNV; + +typedef struct VkAccelerationStructureTrianglesDisplacementMicromapNV { + VkStructureType sType; + void* pNext; + VkFormat displacementBiasAndScaleFormat; + VkFormat displacementVectorFormat; + VkDeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer; + VkDeviceSize displacementBiasAndScaleStride; + VkDeviceOrHostAddressConstKHR displacementVectorBuffer; + VkDeviceSize displacementVectorStride; + VkDeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags; + VkDeviceSize displacedMicromapPrimitiveFlagsStride; + VkIndexType indexType; + VkDeviceOrHostAddressConstKHR indexBuffer; + VkDeviceSize indexStride; + uint32_t baseTriangle; + uint32_t usageCountsCount; + const VkMicromapUsageEXT* pUsageCounts; + const VkMicromapUsageEXT* const* ppUsageCounts; + VkMicromapEXT micromap; +} VkAccelerationStructureTrianglesDisplacementMicromapNV; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_core.h b/vulkan-headers/include/vulkan/vulkan_core.h new file mode 100644 index 00000000..7e6b0409 --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_core.h @@ -0,0 +1,19638 @@ +#ifndef VULKAN_CORE_H_ +#define VULKAN_CORE_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls. +#define VK_VERSION_1_0 1 +#include "vk_platform.h" + +#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; + + +#ifndef VK_USE_64_BIT_PTR_DEFINES + #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64) + #define VK_USE_64_BIT_PTR_DEFINES 1 + #else + #define VK_USE_64_BIT_PTR_DEFINES 0 + #endif +#endif + + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L)) + #define VK_NULL_HANDLE nullptr + #else + #define VK_NULL_HANDLE ((void*)0) + #endif + #else + #define VK_NULL_HANDLE 0ULL + #endif +#endif +#ifndef VK_NULL_HANDLE + #define VK_NULL_HANDLE 0 +#endif + + +#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE + #if (VK_USE_64_BIT_PTR_DEFINES==1) + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; + #else + #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; + #endif +#endif + +#define VK_MAKE_API_VERSION(variant, major, minor, patch) \ + ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch))) + +// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. +//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0 + +// Vulkan 1.0 version number +#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 + +// Version of this file +#define VK_HEADER_VERSION 278 + +// Complete version of this file +#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) + +// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead. +#define VK_MAKE_VERSION(major, minor, patch) \ + ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch))) + +// DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead. +#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U) + +// DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead. +#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU) + +// DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead. +#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) + +#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U) +#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU) +#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU) +#define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) +typedef uint32_t VkBool32; +typedef uint64_t VkDeviceAddress; +typedef uint64_t VkDeviceSize; +typedef uint32_t VkFlags; +typedef uint32_t VkSampleMask; +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) +VK_DEFINE_HANDLE(VkInstance) +VK_DEFINE_HANDLE(VkPhysicalDevice) +VK_DEFINE_HANDLE(VkDevice) +VK_DEFINE_HANDLE(VkQueue) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) +VK_DEFINE_HANDLE(VkCommandBuffer) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) +#define VK_ATTACHMENT_UNUSED (~0U) +#define VK_FALSE 0U +#define VK_LOD_CLAMP_NONE 1000.0F +#define VK_QUEUE_FAMILY_IGNORED (~0U) +#define VK_REMAINING_ARRAY_LAYERS (~0U) +#define VK_REMAINING_MIP_LEVELS (~0U) +#define VK_SUBPASS_EXTERNAL (~0U) +#define VK_TRUE 1U +#define VK_WHOLE_SIZE (~0ULL) +#define VK_MAX_MEMORY_TYPES 32U +#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U +#define VK_UUID_SIZE 16U +#define VK_MAX_EXTENSION_NAME_SIZE 256U +#define VK_MAX_DESCRIPTION_SIZE 256U +#define VK_MAX_MEMORY_HEAPS 16U + +typedef enum VkResult { + VK_SUCCESS = 0, + VK_NOT_READY = 1, + VK_TIMEOUT = 2, + VK_EVENT_SET = 3, + VK_EVENT_RESET = 4, + VK_INCOMPLETE = 5, + VK_ERROR_OUT_OF_HOST_MEMORY = -1, + VK_ERROR_OUT_OF_DEVICE_MEMORY = -2, + VK_ERROR_INITIALIZATION_FAILED = -3, + VK_ERROR_DEVICE_LOST = -4, + VK_ERROR_MEMORY_MAP_FAILED = -5, + VK_ERROR_LAYER_NOT_PRESENT = -6, + VK_ERROR_EXTENSION_NOT_PRESENT = -7, + VK_ERROR_FEATURE_NOT_PRESENT = -8, + VK_ERROR_INCOMPATIBLE_DRIVER = -9, + VK_ERROR_TOO_MANY_OBJECTS = -10, + VK_ERROR_FORMAT_NOT_SUPPORTED = -11, + VK_ERROR_FRAGMENTED_POOL = -12, + VK_ERROR_UNKNOWN = -13, + VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000, + VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003, + VK_ERROR_FRAGMENTATION = -1000161000, + VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000, + VK_PIPELINE_COMPILE_REQUIRED = 1000297000, + VK_ERROR_SURFACE_LOST_KHR = -1000000000, + VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001, + VK_SUBOPTIMAL_KHR = 1000001003, + VK_ERROR_OUT_OF_DATE_KHR = -1000001004, + VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001, + VK_ERROR_VALIDATION_FAILED_EXT = -1000011001, + VK_ERROR_INVALID_SHADER_NV = -1000012000, + VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000, + VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001, + VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002, + VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003, + VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004, + VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005, + VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, + VK_ERROR_NOT_PERMITTED_KHR = -1000174001, + VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000, + VK_THREAD_IDLE_KHR = 1000268000, + VK_THREAD_DONE_KHR = 1000268001, + VK_OPERATION_DEFERRED_KHR = 1000268002, + VK_OPERATION_NOT_DEFERRED_KHR = 1000268003, + VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000, + VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000, + VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000, + VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY, + VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, + VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION, + VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED_KHR, + VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, + VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, + VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED, + VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED, + VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT, + VK_RESULT_MAX_ENUM = 0x7FFFFFFF +} VkResult; + +typedef enum VkStructureType { + VK_STRUCTURE_TYPE_APPLICATION_INFO = 0, + VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, + VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, + VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, + VK_STRUCTURE_TYPE_SUBMIT_INFO = 4, + VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5, + VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6, + VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7, + VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, + VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, + VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10, + VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11, + VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12, + VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13, + VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14, + VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, + VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16, + VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17, + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, + VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, + VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, + VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, + VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, + VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25, + VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, + VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, + VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, + VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, + VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32, + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35, + VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36, + VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38, + VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, + VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45, + VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46, + VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47, + VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000, + VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000, + VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000, + VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000, + VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, + VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000, + VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003, + VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004, + VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005, + VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006, + VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013, + VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000, + VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001, + VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001, + VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002, + VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003, + VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001, + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002, + VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006, + VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000, + VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001, + VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002, + VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003, + VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000, + VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, + VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003, + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000, + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001, + VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002, + VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004, + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005, + VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000, + VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002, + VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004, + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000, + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001, + VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000, + VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001, + VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000, + VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000, + VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52, + VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000, + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000, + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002, + VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003, + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004, + VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005, + VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000, + VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000, + VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002, + VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000, + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001, + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001, + VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002, + VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003, + VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004, + VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001, + VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002, + VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003, + VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54, + VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000, + VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001, + VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000, + VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000, + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002, + VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003, + VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004, + VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000, + VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000, + VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001, + VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002, + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003, + VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004, + VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005, + VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006, + VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007, + VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008, + VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009, + VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000, + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002, + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000, + VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000, + VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001, + VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001, + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001, + VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002, + VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003, + VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, + VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, + VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, + VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008, + VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009, + VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010, + VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011, + VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012, + VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, + VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001, + VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000, + VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, + VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, + VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, + VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, + VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, + VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, + VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, + VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, + VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, + VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000, + VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001, + VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002, + VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003, + VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004, + VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005, + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006, + VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007, + VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008, + VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009, + VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010, + VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012, + VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014, + VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016, + VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000, + VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001, + VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002, + VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, + VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, + VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, + VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000, + VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001, + VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002, + VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000, + VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006, + VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, + VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006, + VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007, + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008, + VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009, + VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, + VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, + VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001, + VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, + VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, + VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, + VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, + VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, + VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, + VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, + VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000, + VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001, + VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002, + VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000, + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000, + VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001, + VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002, + VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003, + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, + VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, + VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, + VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, + VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, + VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001, + VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002, + VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, + VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000, + VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001, + VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000, + VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, + VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, + VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, + VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, + VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, + VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001, + VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002, + VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003, + VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004, + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005, + VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, + VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, + VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000, + VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001, + VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002, + VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003, + VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004, + VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, + VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, + VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, + VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001, + VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002, + VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003, + VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004, + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000, + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001, + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002, + VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, + VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, + VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004, +#endif + VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, + VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, + VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, + VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, + VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, + VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009, + VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010, + VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011, + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001, + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015, + VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016, + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013, + VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001, + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006, + VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, + VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001, +#endif + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005, + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001, + VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003, + VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004, + VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005, + VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009, + VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000, + VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, + VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, + VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000, + VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004, + VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005, + VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001, + VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, + VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002, + VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000, + VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000, + VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001, + VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002, + VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003, + VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004, + VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, + VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000, + VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001, + VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, + VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, + VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, + VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000, + VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = 1000232000, + VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = 1000232001, + VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = 1000232002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, + VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, + VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, + VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, + VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000, + VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001, + VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002, + VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002, + VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001, + VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000, + VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001, + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002, + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003, + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004, + VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = 1000270000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = 1000270001, + VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = 1000270002, + VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = 1000270003, + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = 1000270004, + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = 1000270005, + VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = 1000270006, + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = 1000270007, + VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = 1000270008, + VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = 1000270009, + VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = 1000271000, + VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = 1000271001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001, + VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000, + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000, + VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001, + VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000, + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001, + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002, + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003, + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004, + VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000, + VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001, + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002, + VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003, + VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004, + VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005, + VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000, + VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000, + VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001, + VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000, + VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001, + VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001, + VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002, + VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001, + VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002, + VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004, + VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009, + VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000, + VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001, + VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000, + VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001, + VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004, + VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000, + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000, + VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001, + VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002, + VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003, + VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004, + VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005, + VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006, + VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007, + VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008, + VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009, + VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010, + VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008, + VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002, + VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003, + VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004, + VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005, + VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006, + VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007, + VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008, + VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010, + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011, + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001, + VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001, + VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001, + VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000, + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001, + VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000, + VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001, + VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000, + VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000, + VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001, + VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000, + VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000, + VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001, + VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002, + VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000, + VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000, + VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003, + VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005, + VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006, + VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007, + VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008, + VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009, + VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000, + VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001, + VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000, + VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000, + VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001, + VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000, + VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000, + VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000, + VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001, + VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000, + VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001, + VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002, + VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003, + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006, + VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007, + VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002, +#endif + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000, + VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = 1000416000, + VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000, + VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001, + VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002, + VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003, + VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001, + VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000, + VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001, + VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001, + VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001, + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000, + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001, + VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002, + VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003, + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000, + VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001, + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002, + VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001, + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002, + VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003, + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004, + VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005, + VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001, + VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = 1000470000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = 1000470001, + VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = 1000470003, + VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = 1000470004, + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = 1000338002, + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = 1000338003, + VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = 1000470005, + VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = 1000470006, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001, + VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000, + VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000, + VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000, + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002, + VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000, + VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000, + VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001, + VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002, + VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003, + VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004, + VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005, + VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006, + VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007, + VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000, + VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000, + VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001, + VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000, + VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001, + VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003, + VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004, + VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000, + VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001, + VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002, + VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001, + VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000, + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = 1000525000, + VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = 1000190001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = 1000190002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = 1000528000, + VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000, + VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001, + VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002, + VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = 1000265000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = 1000259000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = 1000259001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = 1000259002, + VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = 1000544000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = 1000545000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = 1000545001, + VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = 1000545002, + VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = 1000545003, + VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = 1000545004, + VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = 1000545005, + VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = 1000545006, + VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007, + VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, + VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, + VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO, + VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO, + VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO, + VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD, + VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, + VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, + VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2, + VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO, + VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO, + VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO, + VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO, + VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, + VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, + VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, + VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, + VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO, + VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO, + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO, + VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, + VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, + VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, + VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO, + VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO, + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2, + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2, + VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2, + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2, + VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO, + VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, + VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, + VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, + VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, + VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, + VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR, + VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, + VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, + VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK, + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO, + VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, + VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, + VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, + VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, + VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO, + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, + VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, + VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, + VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, + VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO, + VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, + VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, + VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR, + VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR, + VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES, + VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO, + VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO, + VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, + VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO, + VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES, + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT, + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES, + VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO, + VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO, + VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO, + VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES, + VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO, + VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES, + VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2, + VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2, + VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2, + VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO, + VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2, + VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES, + VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2, + VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2, + VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2, + VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2, + VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2, + VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2, + VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2, + VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2, + VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR, + VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT, + VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT, + VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3, + VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES, + VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS, + VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS, + VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO, + VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkStructureType; + +typedef enum VkPipelineCacheHeaderVersion { + VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, + VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCacheHeaderVersion; + +typedef enum VkImageLayout { + VK_IMAGE_LAYOUT_UNDEFINED = 0, + VK_IMAGE_LAYOUT_GENERAL = 1, + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, + VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, + VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, + VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, + VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, + VK_IMAGE_LAYOUT_PREINITIALIZED = 8, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, + VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, + VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, + VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000, + VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001, + VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, + VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000, + VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001, + VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002, + VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, + VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, + VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003, + VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = 1000232000, + VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000, + VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001, + VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002, + VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, + VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL, + VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL, + VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF +} VkImageLayout; + +typedef enum VkObjectType { + VK_OBJECT_TYPE_UNKNOWN = 0, + VK_OBJECT_TYPE_INSTANCE = 1, + VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, + VK_OBJECT_TYPE_DEVICE = 3, + VK_OBJECT_TYPE_QUEUE = 4, + VK_OBJECT_TYPE_SEMAPHORE = 5, + VK_OBJECT_TYPE_COMMAND_BUFFER = 6, + VK_OBJECT_TYPE_FENCE = 7, + VK_OBJECT_TYPE_DEVICE_MEMORY = 8, + VK_OBJECT_TYPE_BUFFER = 9, + VK_OBJECT_TYPE_IMAGE = 10, + VK_OBJECT_TYPE_EVENT = 11, + VK_OBJECT_TYPE_QUERY_POOL = 12, + VK_OBJECT_TYPE_BUFFER_VIEW = 13, + VK_OBJECT_TYPE_IMAGE_VIEW = 14, + VK_OBJECT_TYPE_SHADER_MODULE = 15, + VK_OBJECT_TYPE_PIPELINE_CACHE = 16, + VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, + VK_OBJECT_TYPE_RENDER_PASS = 18, + VK_OBJECT_TYPE_PIPELINE = 19, + VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, + VK_OBJECT_TYPE_SAMPLER = 21, + VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, + VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, + VK_OBJECT_TYPE_FRAMEBUFFER = 24, + VK_OBJECT_TYPE_COMMAND_POOL = 25, + VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, + VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, + VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000, + VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, + VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, + VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, + VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, + VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, + VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000, + VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001, + VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000, + VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001, + VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, + VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, + VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, + VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000, + VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000, + VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000, + VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001, + VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000, + VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000, + VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000, + VK_OBJECT_TYPE_SHADER_EXT = 1000482000, + VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, + VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, + VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT, + VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkObjectType; + +typedef enum VkVendorId { + VK_VENDOR_ID_VIV = 0x10001, + VK_VENDOR_ID_VSI = 0x10002, + VK_VENDOR_ID_KAZAN = 0x10003, + VK_VENDOR_ID_CODEPLAY = 0x10004, + VK_VENDOR_ID_MESA = 0x10005, + VK_VENDOR_ID_POCL = 0x10006, + VK_VENDOR_ID_MOBILEYE = 0x10007, + VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF +} VkVendorId; + +typedef enum VkSystemAllocationScope { + VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, + VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, + VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, + VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, + VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, + VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF +} VkSystemAllocationScope; + +typedef enum VkInternalAllocationType { + VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, + VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkInternalAllocationType; + +typedef enum VkFormat { + VK_FORMAT_UNDEFINED = 0, + VK_FORMAT_R4G4_UNORM_PACK8 = 1, + VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, + VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, + VK_FORMAT_R5G6B5_UNORM_PACK16 = 4, + VK_FORMAT_B5G6R5_UNORM_PACK16 = 5, + VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, + VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, + VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, + VK_FORMAT_R8_UNORM = 9, + VK_FORMAT_R8_SNORM = 10, + VK_FORMAT_R8_USCALED = 11, + VK_FORMAT_R8_SSCALED = 12, + VK_FORMAT_R8_UINT = 13, + VK_FORMAT_R8_SINT = 14, + VK_FORMAT_R8_SRGB = 15, + VK_FORMAT_R8G8_UNORM = 16, + VK_FORMAT_R8G8_SNORM = 17, + VK_FORMAT_R8G8_USCALED = 18, + VK_FORMAT_R8G8_SSCALED = 19, + VK_FORMAT_R8G8_UINT = 20, + VK_FORMAT_R8G8_SINT = 21, + VK_FORMAT_R8G8_SRGB = 22, + VK_FORMAT_R8G8B8_UNORM = 23, + VK_FORMAT_R8G8B8_SNORM = 24, + VK_FORMAT_R8G8B8_USCALED = 25, + VK_FORMAT_R8G8B8_SSCALED = 26, + VK_FORMAT_R8G8B8_UINT = 27, + VK_FORMAT_R8G8B8_SINT = 28, + VK_FORMAT_R8G8B8_SRGB = 29, + VK_FORMAT_B8G8R8_UNORM = 30, + VK_FORMAT_B8G8R8_SNORM = 31, + VK_FORMAT_B8G8R8_USCALED = 32, + VK_FORMAT_B8G8R8_SSCALED = 33, + VK_FORMAT_B8G8R8_UINT = 34, + VK_FORMAT_B8G8R8_SINT = 35, + VK_FORMAT_B8G8R8_SRGB = 36, + VK_FORMAT_R8G8B8A8_UNORM = 37, + VK_FORMAT_R8G8B8A8_SNORM = 38, + VK_FORMAT_R8G8B8A8_USCALED = 39, + VK_FORMAT_R8G8B8A8_SSCALED = 40, + VK_FORMAT_R8G8B8A8_UINT = 41, + VK_FORMAT_R8G8B8A8_SINT = 42, + VK_FORMAT_R8G8B8A8_SRGB = 43, + VK_FORMAT_B8G8R8A8_UNORM = 44, + VK_FORMAT_B8G8R8A8_SNORM = 45, + VK_FORMAT_B8G8R8A8_USCALED = 46, + VK_FORMAT_B8G8R8A8_SSCALED = 47, + VK_FORMAT_B8G8R8A8_UINT = 48, + VK_FORMAT_B8G8R8A8_SINT = 49, + VK_FORMAT_B8G8R8A8_SRGB = 50, + VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, + VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, + VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, + VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, + VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55, + VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56, + VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, + VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, + VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, + VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, + VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, + VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62, + VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63, + VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, + VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, + VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, + VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, + VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68, + VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69, + VK_FORMAT_R16_UNORM = 70, + VK_FORMAT_R16_SNORM = 71, + VK_FORMAT_R16_USCALED = 72, + VK_FORMAT_R16_SSCALED = 73, + VK_FORMAT_R16_UINT = 74, + VK_FORMAT_R16_SINT = 75, + VK_FORMAT_R16_SFLOAT = 76, + VK_FORMAT_R16G16_UNORM = 77, + VK_FORMAT_R16G16_SNORM = 78, + VK_FORMAT_R16G16_USCALED = 79, + VK_FORMAT_R16G16_SSCALED = 80, + VK_FORMAT_R16G16_UINT = 81, + VK_FORMAT_R16G16_SINT = 82, + VK_FORMAT_R16G16_SFLOAT = 83, + VK_FORMAT_R16G16B16_UNORM = 84, + VK_FORMAT_R16G16B16_SNORM = 85, + VK_FORMAT_R16G16B16_USCALED = 86, + VK_FORMAT_R16G16B16_SSCALED = 87, + VK_FORMAT_R16G16B16_UINT = 88, + VK_FORMAT_R16G16B16_SINT = 89, + VK_FORMAT_R16G16B16_SFLOAT = 90, + VK_FORMAT_R16G16B16A16_UNORM = 91, + VK_FORMAT_R16G16B16A16_SNORM = 92, + VK_FORMAT_R16G16B16A16_USCALED = 93, + VK_FORMAT_R16G16B16A16_SSCALED = 94, + VK_FORMAT_R16G16B16A16_UINT = 95, + VK_FORMAT_R16G16B16A16_SINT = 96, + VK_FORMAT_R16G16B16A16_SFLOAT = 97, + VK_FORMAT_R32_UINT = 98, + VK_FORMAT_R32_SINT = 99, + VK_FORMAT_R32_SFLOAT = 100, + VK_FORMAT_R32G32_UINT = 101, + VK_FORMAT_R32G32_SINT = 102, + VK_FORMAT_R32G32_SFLOAT = 103, + VK_FORMAT_R32G32B32_UINT = 104, + VK_FORMAT_R32G32B32_SINT = 105, + VK_FORMAT_R32G32B32_SFLOAT = 106, + VK_FORMAT_R32G32B32A32_UINT = 107, + VK_FORMAT_R32G32B32A32_SINT = 108, + VK_FORMAT_R32G32B32A32_SFLOAT = 109, + VK_FORMAT_R64_UINT = 110, + VK_FORMAT_R64_SINT = 111, + VK_FORMAT_R64_SFLOAT = 112, + VK_FORMAT_R64G64_UINT = 113, + VK_FORMAT_R64G64_SINT = 114, + VK_FORMAT_R64G64_SFLOAT = 115, + VK_FORMAT_R64G64B64_UINT = 116, + VK_FORMAT_R64G64B64_SINT = 117, + VK_FORMAT_R64G64B64_SFLOAT = 118, + VK_FORMAT_R64G64B64A64_UINT = 119, + VK_FORMAT_R64G64B64A64_SINT = 120, + VK_FORMAT_R64G64B64A64_SFLOAT = 121, + VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, + VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, + VK_FORMAT_D16_UNORM = 124, + VK_FORMAT_X8_D24_UNORM_PACK32 = 125, + VK_FORMAT_D32_SFLOAT = 126, + VK_FORMAT_S8_UINT = 127, + VK_FORMAT_D16_UNORM_S8_UINT = 128, + VK_FORMAT_D24_UNORM_S8_UINT = 129, + VK_FORMAT_D32_SFLOAT_S8_UINT = 130, + VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131, + VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132, + VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, + VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, + VK_FORMAT_BC2_UNORM_BLOCK = 135, + VK_FORMAT_BC2_SRGB_BLOCK = 136, + VK_FORMAT_BC3_UNORM_BLOCK = 137, + VK_FORMAT_BC3_SRGB_BLOCK = 138, + VK_FORMAT_BC4_UNORM_BLOCK = 139, + VK_FORMAT_BC4_SNORM_BLOCK = 140, + VK_FORMAT_BC5_UNORM_BLOCK = 141, + VK_FORMAT_BC5_SNORM_BLOCK = 142, + VK_FORMAT_BC6H_UFLOAT_BLOCK = 143, + VK_FORMAT_BC6H_SFLOAT_BLOCK = 144, + VK_FORMAT_BC7_UNORM_BLOCK = 145, + VK_FORMAT_BC7_SRGB_BLOCK = 146, + VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, + VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, + VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, + VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, + VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, + VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, + VK_FORMAT_EAC_R11_UNORM_BLOCK = 153, + VK_FORMAT_EAC_R11_SNORM_BLOCK = 154, + VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, + VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, + VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, + VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, + VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, + VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, + VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, + VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, + VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, + VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, + VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, + VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, + VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, + VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, + VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, + VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, + VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, + VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, + VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, + VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, + VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, + VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, + VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, + VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, + VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, + VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, + VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, + VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, + VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, + VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, + VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000, + VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001, + VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, + VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, + VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, + VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, + VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, + VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007, + VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, + VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, + VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, + VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, + VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017, + VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, + VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, + VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, + VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, + VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027, + VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028, + VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, + VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, + VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, + VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, + VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, + VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002, + VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003, + VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000, + VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001, + VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000, + VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001, + VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002, + VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003, + VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004, + VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005, + VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006, + VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007, + VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008, + VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009, + VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010, + VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011, + VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012, + VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013, + VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, + VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, + VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, + VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, + VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, + VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, + VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, + VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, + VK_FORMAT_R16G16_S10_5_NV = 1000464000, + VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = 1000470000, + VK_FORMAT_A8_UNORM_KHR = 1000470001, + VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK, + VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK, + VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK, + VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK, + VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK, + VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK, + VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK, + VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK, + VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, + VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, + VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, + VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, + VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM, + VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM, + VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM, + VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16, + VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16, + VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, + VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, + VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, + VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, + VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16, + VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16, + VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, + VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, + VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, + VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, + VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM, + VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM, + VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM, + VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM, + VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, + VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, + VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, + VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM, + VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16, + VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16, + VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM, + VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16, + VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16, + VK_FORMAT_MAX_ENUM = 0x7FFFFFFF +} VkFormat; + +typedef enum VkImageTiling { + VK_IMAGE_TILING_OPTIMAL = 0, + VK_IMAGE_TILING_LINEAR = 1, + VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, + VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF +} VkImageTiling; + +typedef enum VkImageType { + VK_IMAGE_TYPE_1D = 0, + VK_IMAGE_TYPE_2D = 1, + VK_IMAGE_TYPE_3D = 2, + VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkImageType; + +typedef enum VkPhysicalDeviceType { + VK_PHYSICAL_DEVICE_TYPE_OTHER = 0, + VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, + VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, + VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, + VK_PHYSICAL_DEVICE_TYPE_CPU = 4, + VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkPhysicalDeviceType; + +typedef enum VkQueryType { + VK_QUERY_TYPE_OCCLUSION = 0, + VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, + VK_QUERY_TYPE_TIMESTAMP = 2, + VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000, + VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, + VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000, + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000, + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001, + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, + VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000, + VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000, + VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000, + VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000, + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000, + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001, + VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000, + VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001, + VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkQueryType; + +typedef enum VkSharingMode { + VK_SHARING_MODE_EXCLUSIVE = 0, + VK_SHARING_MODE_CONCURRENT = 1, + VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF +} VkSharingMode; + +typedef enum VkComponentSwizzle { + VK_COMPONENT_SWIZZLE_IDENTITY = 0, + VK_COMPONENT_SWIZZLE_ZERO = 1, + VK_COMPONENT_SWIZZLE_ONE = 2, + VK_COMPONENT_SWIZZLE_R = 3, + VK_COMPONENT_SWIZZLE_G = 4, + VK_COMPONENT_SWIZZLE_B = 5, + VK_COMPONENT_SWIZZLE_A = 6, + VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF +} VkComponentSwizzle; + +typedef enum VkImageViewType { + VK_IMAGE_VIEW_TYPE_1D = 0, + VK_IMAGE_VIEW_TYPE_2D = 1, + VK_IMAGE_VIEW_TYPE_3D = 2, + VK_IMAGE_VIEW_TYPE_CUBE = 3, + VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4, + VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5, + VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, + VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkImageViewType; + +typedef enum VkBlendFactor { + VK_BLEND_FACTOR_ZERO = 0, + VK_BLEND_FACTOR_ONE = 1, + VK_BLEND_FACTOR_SRC_COLOR = 2, + VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, + VK_BLEND_FACTOR_DST_COLOR = 4, + VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, + VK_BLEND_FACTOR_SRC_ALPHA = 6, + VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, + VK_BLEND_FACTOR_DST_ALPHA = 8, + VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, + VK_BLEND_FACTOR_CONSTANT_COLOR = 10, + VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, + VK_BLEND_FACTOR_CONSTANT_ALPHA = 12, + VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, + VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, + VK_BLEND_FACTOR_SRC1_COLOR = 15, + VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, + VK_BLEND_FACTOR_SRC1_ALPHA = 17, + VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, + VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF +} VkBlendFactor; + +typedef enum VkBlendOp { + VK_BLEND_OP_ADD = 0, + VK_BLEND_OP_SUBTRACT = 1, + VK_BLEND_OP_REVERSE_SUBTRACT = 2, + VK_BLEND_OP_MIN = 3, + VK_BLEND_OP_MAX = 4, + VK_BLEND_OP_ZERO_EXT = 1000148000, + VK_BLEND_OP_SRC_EXT = 1000148001, + VK_BLEND_OP_DST_EXT = 1000148002, + VK_BLEND_OP_SRC_OVER_EXT = 1000148003, + VK_BLEND_OP_DST_OVER_EXT = 1000148004, + VK_BLEND_OP_SRC_IN_EXT = 1000148005, + VK_BLEND_OP_DST_IN_EXT = 1000148006, + VK_BLEND_OP_SRC_OUT_EXT = 1000148007, + VK_BLEND_OP_DST_OUT_EXT = 1000148008, + VK_BLEND_OP_SRC_ATOP_EXT = 1000148009, + VK_BLEND_OP_DST_ATOP_EXT = 1000148010, + VK_BLEND_OP_XOR_EXT = 1000148011, + VK_BLEND_OP_MULTIPLY_EXT = 1000148012, + VK_BLEND_OP_SCREEN_EXT = 1000148013, + VK_BLEND_OP_OVERLAY_EXT = 1000148014, + VK_BLEND_OP_DARKEN_EXT = 1000148015, + VK_BLEND_OP_LIGHTEN_EXT = 1000148016, + VK_BLEND_OP_COLORDODGE_EXT = 1000148017, + VK_BLEND_OP_COLORBURN_EXT = 1000148018, + VK_BLEND_OP_HARDLIGHT_EXT = 1000148019, + VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020, + VK_BLEND_OP_DIFFERENCE_EXT = 1000148021, + VK_BLEND_OP_EXCLUSION_EXT = 1000148022, + VK_BLEND_OP_INVERT_EXT = 1000148023, + VK_BLEND_OP_INVERT_RGB_EXT = 1000148024, + VK_BLEND_OP_LINEARDODGE_EXT = 1000148025, + VK_BLEND_OP_LINEARBURN_EXT = 1000148026, + VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, + VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028, + VK_BLEND_OP_PINLIGHT_EXT = 1000148029, + VK_BLEND_OP_HARDMIX_EXT = 1000148030, + VK_BLEND_OP_HSL_HUE_EXT = 1000148031, + VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032, + VK_BLEND_OP_HSL_COLOR_EXT = 1000148033, + VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, + VK_BLEND_OP_PLUS_EXT = 1000148035, + VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, + VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, + VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038, + VK_BLEND_OP_MINUS_EXT = 1000148039, + VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, + VK_BLEND_OP_CONTRAST_EXT = 1000148041, + VK_BLEND_OP_INVERT_OVG_EXT = 1000148042, + VK_BLEND_OP_RED_EXT = 1000148043, + VK_BLEND_OP_GREEN_EXT = 1000148044, + VK_BLEND_OP_BLUE_EXT = 1000148045, + VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF +} VkBlendOp; + +typedef enum VkCompareOp { + VK_COMPARE_OP_NEVER = 0, + VK_COMPARE_OP_LESS = 1, + VK_COMPARE_OP_EQUAL = 2, + VK_COMPARE_OP_LESS_OR_EQUAL = 3, + VK_COMPARE_OP_GREATER = 4, + VK_COMPARE_OP_NOT_EQUAL = 5, + VK_COMPARE_OP_GREATER_OR_EQUAL = 6, + VK_COMPARE_OP_ALWAYS = 7, + VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF +} VkCompareOp; + +typedef enum VkDynamicState { + VK_DYNAMIC_STATE_VIEWPORT = 0, + VK_DYNAMIC_STATE_SCISSOR = 1, + VK_DYNAMIC_STATE_LINE_WIDTH = 2, + VK_DYNAMIC_STATE_DEPTH_BIAS = 3, + VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4, + VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5, + VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, + VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, + VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8, + VK_DYNAMIC_STATE_CULL_MODE = 1000267000, + VK_DYNAMIC_STATE_FRONT_FACE = 1000267001, + VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004, + VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005, + VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006, + VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007, + VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008, + VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009, + VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010, + VK_DYNAMIC_STATE_STENCIL_OP = 1000267011, + VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001, + VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002, + VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004, + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, + VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, + VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001, + VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002, + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, + VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000, + VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, + VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, + VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000, + VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, + VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000, + VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000, + VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000, + VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003, + VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000, + VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003, + VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004, + VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005, + VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006, + VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007, + VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008, + VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009, + VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010, + VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011, + VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012, + VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002, + VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013, + VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014, + VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015, + VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016, + VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017, + VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018, + VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019, + VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020, + VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021, + VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022, + VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023, + VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024, + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025, + VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026, + VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027, + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028, + VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029, + VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030, + VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031, + VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032, + VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000, + VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = 1000259000, + VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE_KHR, + VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE, + VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE, + VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY, + VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT, + VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT, + VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE, + VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE, + VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE, + VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP, + VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE, + VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE, + VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP, + VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE, + VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE, + VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE, + VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF +} VkDynamicState; + +typedef enum VkFrontFace { + VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, + VK_FRONT_FACE_CLOCKWISE = 1, + VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF +} VkFrontFace; + +typedef enum VkVertexInputRate { + VK_VERTEX_INPUT_RATE_VERTEX = 0, + VK_VERTEX_INPUT_RATE_INSTANCE = 1, + VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF +} VkVertexInputRate; + +typedef enum VkPrimitiveTopology { + VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, + VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, + VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, + VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, + VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, + VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, + VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, + VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF +} VkPrimitiveTopology; + +typedef enum VkPolygonMode { + VK_POLYGON_MODE_FILL = 0, + VK_POLYGON_MODE_LINE = 1, + VK_POLYGON_MODE_POINT = 2, + VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, + VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF +} VkPolygonMode; + +typedef enum VkStencilOp { + VK_STENCIL_OP_KEEP = 0, + VK_STENCIL_OP_ZERO = 1, + VK_STENCIL_OP_REPLACE = 2, + VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, + VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, + VK_STENCIL_OP_INVERT = 5, + VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, + VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, + VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF +} VkStencilOp; + +typedef enum VkLogicOp { + VK_LOGIC_OP_CLEAR = 0, + VK_LOGIC_OP_AND = 1, + VK_LOGIC_OP_AND_REVERSE = 2, + VK_LOGIC_OP_COPY = 3, + VK_LOGIC_OP_AND_INVERTED = 4, + VK_LOGIC_OP_NO_OP = 5, + VK_LOGIC_OP_XOR = 6, + VK_LOGIC_OP_OR = 7, + VK_LOGIC_OP_NOR = 8, + VK_LOGIC_OP_EQUIVALENT = 9, + VK_LOGIC_OP_INVERT = 10, + VK_LOGIC_OP_OR_REVERSE = 11, + VK_LOGIC_OP_COPY_INVERTED = 12, + VK_LOGIC_OP_OR_INVERTED = 13, + VK_LOGIC_OP_NAND = 14, + VK_LOGIC_OP_SET = 15, + VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF +} VkLogicOp; + +typedef enum VkBorderColor { + VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, + VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, + VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, + VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3, + VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, + VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5, + VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003, + VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004, + VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF +} VkBorderColor; + +typedef enum VkFilter { + VK_FILTER_NEAREST = 0, + VK_FILTER_LINEAR = 1, + VK_FILTER_CUBIC_EXT = 1000015000, + VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT, + VK_FILTER_MAX_ENUM = 0x7FFFFFFF +} VkFilter; + +typedef enum VkSamplerAddressMode { + VK_SAMPLER_ADDRESS_MODE_REPEAT = 0, + VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1, + VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, + VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, + VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, + VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, + VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF +} VkSamplerAddressMode; + +typedef enum VkSamplerMipmapMode { + VK_SAMPLER_MIPMAP_MODE_NEAREST = 0, + VK_SAMPLER_MIPMAP_MODE_LINEAR = 1, + VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF +} VkSamplerMipmapMode; + +typedef enum VkDescriptorType { + VK_DESCRIPTOR_TYPE_SAMPLER = 0, + VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1, + VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2, + VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3, + VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4, + VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6, + VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7, + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, + VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, + VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, + VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000, + VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, + VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, + VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000, + VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001, + VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000, + VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK, + VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT, + VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkDescriptorType; + +typedef enum VkAttachmentLoadOp { + VK_ATTACHMENT_LOAD_OP_LOAD = 0, + VK_ATTACHMENT_LOAD_OP_CLEAR = 1, + VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, + VK_ATTACHMENT_LOAD_OP_NONE_KHR = 1000400000, + VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE_KHR, + VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF +} VkAttachmentLoadOp; + +typedef enum VkAttachmentStoreOp { + VK_ATTACHMENT_STORE_OP_STORE = 0, + VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, + VK_ATTACHMENT_STORE_OP_NONE = 1000301000, + VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE, + VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE, + VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE, + VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF +} VkAttachmentStoreOp; + +typedef enum VkPipelineBindPoint { + VK_PIPELINE_BIND_POINT_GRAPHICS = 0, + VK_PIPELINE_BIND_POINT_COMPUTE = 1, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000, +#endif + VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000, + VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003, + VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, + VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF +} VkPipelineBindPoint; + +typedef enum VkCommandBufferLevel { + VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0, + VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1, + VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF +} VkCommandBufferLevel; + +typedef enum VkIndexType { + VK_INDEX_TYPE_UINT16 = 0, + VK_INDEX_TYPE_UINT32 = 1, + VK_INDEX_TYPE_NONE_KHR = 1000165000, + VK_INDEX_TYPE_UINT8_KHR = 1000265000, + VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR, + VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8_KHR, + VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkIndexType; + +typedef enum VkSubpassContents { + VK_SUBPASS_CONTENTS_INLINE = 0, + VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, + VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = 1000451000, + VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF +} VkSubpassContents; + +typedef enum VkAccessFlagBits { + VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, + VK_ACCESS_INDEX_READ_BIT = 0x00000002, + VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, + VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, + VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, + VK_ACCESS_SHADER_READ_BIT = 0x00000020, + VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, + VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, + VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, + VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, + VK_ACCESS_HOST_READ_BIT = 0x00002000, + VK_ACCESS_HOST_WRITE_BIT = 0x00004000, + VK_ACCESS_MEMORY_READ_BIT = 0x00008000, + VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, + VK_ACCESS_NONE = 0, + VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, + VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, + VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, + VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000, + VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000, + VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, + VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000, + VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000, + VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000, + VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, + VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, + VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, + VK_ACCESS_NONE_KHR = VK_ACCESS_NONE, + VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkAccessFlagBits; +typedef VkFlags VkAccessFlags; + +typedef enum VkImageAspectFlagBits { + VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, + VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, + VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, + VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, + VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, + VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, + VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, + VK_IMAGE_ASPECT_NONE = 0, + VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, + VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, + VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, + VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, + VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, + VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, + VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, + VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE, + VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkImageAspectFlagBits; +typedef VkFlags VkImageAspectFlags; + +typedef enum VkFormatFeatureFlagBits { + VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, + VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, + VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, + VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, + VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, + VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, + VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, + VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, + VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, + VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, + VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000, + VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000, + VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, + VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, + VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000, + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000, + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000, + VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000, + VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000, + VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000, + VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000, + VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT, + VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, + VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT, + VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, + VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT, + VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, + VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkFormatFeatureFlagBits; +typedef VkFlags VkFormatFeatureFlags; + +typedef enum VkImageCreateFlagBits { + VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, + VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, + VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, + VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, + VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, + VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400, + VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040, + VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020, + VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080, + VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, + VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, + VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, + VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, + VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, + VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000, + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000, + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000, + VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000, + VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000, + VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, + VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, + VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, + VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT, + VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT, + VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT, + VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkImageCreateFlagBits; +typedef VkFlags VkImageCreateFlags; + +typedef enum VkSampleCountFlagBits { + VK_SAMPLE_COUNT_1_BIT = 0x00000001, + VK_SAMPLE_COUNT_2_BIT = 0x00000002, + VK_SAMPLE_COUNT_4_BIT = 0x00000004, + VK_SAMPLE_COUNT_8_BIT = 0x00000008, + VK_SAMPLE_COUNT_16_BIT = 0x00000010, + VK_SAMPLE_COUNT_32_BIT = 0x00000020, + VK_SAMPLE_COUNT_64_BIT = 0x00000040, + VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSampleCountFlagBits; +typedef VkFlags VkSampleCountFlags; + +typedef enum VkImageUsageFlagBits { + VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, + VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, + VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, + VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, + VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, + VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400, + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800, + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000, + VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, + VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100, + VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = 0x00400000, + VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000, + VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000, + VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000, + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000, + VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000, + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000, + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000, + VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, + VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkImageUsageFlagBits; +typedef VkFlags VkImageUsageFlags; + +typedef enum VkInstanceCreateFlagBits { + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001, + VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkInstanceCreateFlagBits; +typedef VkFlags VkInstanceCreateFlags; + +typedef enum VkMemoryHeapFlagBits { + VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, + VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, + VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, + VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkMemoryHeapFlagBits; +typedef VkFlags VkMemoryHeapFlags; + +typedef enum VkMemoryPropertyFlagBits { + VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, + VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, + VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, + VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, + VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, + VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040, + VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, + VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100, + VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkMemoryPropertyFlagBits; +typedef VkFlags VkMemoryPropertyFlags; + +typedef enum VkQueueFlagBits { + VK_QUEUE_GRAPHICS_BIT = 0x00000001, + VK_QUEUE_COMPUTE_BIT = 0x00000002, + VK_QUEUE_TRANSFER_BIT = 0x00000004, + VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, + VK_QUEUE_PROTECTED_BIT = 0x00000010, + VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020, + VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040, + VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100, + VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkQueueFlagBits; +typedef VkFlags VkQueueFlags; +typedef VkFlags VkDeviceCreateFlags; + +typedef enum VkDeviceQueueCreateFlagBits { + VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, + VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkDeviceQueueCreateFlagBits; +typedef VkFlags VkDeviceQueueCreateFlags; + +typedef enum VkPipelineStageFlagBits { + VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, + VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, + VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, + VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, + VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, + VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, + VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, + VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, + VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, + VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, + VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, + VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, + VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, + VK_PIPELINE_STAGE_NONE = 0, + VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, + VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, + VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000, + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000, + VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, + VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000, + VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000, + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000, + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000, + VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, + VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT, + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT, + VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE, + VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineStageFlagBits; +typedef VkFlags VkPipelineStageFlags; + +typedef enum VkMemoryMapFlagBits { + VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001, + VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkMemoryMapFlagBits; +typedef VkFlags VkMemoryMapFlags; + +typedef enum VkSparseMemoryBindFlagBits { + VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, + VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSparseMemoryBindFlagBits; +typedef VkFlags VkSparseMemoryBindFlags; + +typedef enum VkSparseImageFormatFlagBits { + VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, + VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002, + VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, + VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSparseImageFormatFlagBits; +typedef VkFlags VkSparseImageFormatFlags; + +typedef enum VkFenceCreateFlagBits { + VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, + VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkFenceCreateFlagBits; +typedef VkFlags VkFenceCreateFlags; +typedef VkFlags VkSemaphoreCreateFlags; + +typedef enum VkEventCreateFlagBits { + VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001, + VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT, + VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkEventCreateFlagBits; +typedef VkFlags VkEventCreateFlags; + +typedef enum VkQueryPipelineStatisticFlagBits { + VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, + VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, + VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, + VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, + VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, + VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, + VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, + VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, + VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, + VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, + VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800, + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000, + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000, + VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkQueryPipelineStatisticFlagBits; +typedef VkFlags VkQueryPipelineStatisticFlags; +typedef VkFlags VkQueryPoolCreateFlags; + +typedef enum VkQueryResultFlagBits { + VK_QUERY_RESULT_64_BIT = 0x00000001, + VK_QUERY_RESULT_WAIT_BIT = 0x00000002, + VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, + VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010, + VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkQueryResultFlagBits; +typedef VkFlags VkQueryResultFlags; + +typedef enum VkBufferCreateFlagBits { + VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, + VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, + VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, + VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, + VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010, + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020, + VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040, + VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, + VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, + VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkBufferCreateFlagBits; +typedef VkFlags VkBufferCreateFlags; + +typedef enum VkBufferUsageFlagBits { + VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, + VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, + VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, + VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, + VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, + VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, + VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, + VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, + VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000, + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000, + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000, + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, + VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000, +#endif + VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000, + VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000, + VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400, + VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000, + VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000, + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000, + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000, + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000, + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000, + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000, + VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR, + VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, + VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, + VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkBufferUsageFlagBits; +typedef VkFlags VkBufferUsageFlags; +typedef VkFlags VkBufferViewCreateFlags; + +typedef enum VkImageViewCreateFlagBits { + VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004, + VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002, + VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkImageViewCreateFlagBits; +typedef VkFlags VkImageViewCreateFlags; +typedef VkFlags VkShaderModuleCreateFlags; + +typedef enum VkPipelineCacheCreateFlagBits { + VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001, + VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, + VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCacheCreateFlagBits; +typedef VkFlags VkPipelineCacheCreateFlags; + +typedef enum VkColorComponentFlagBits { + VK_COLOR_COMPONENT_R_BIT = 0x00000001, + VK_COLOR_COMPONENT_G_BIT = 0x00000002, + VK_COLOR_COMPONENT_B_BIT = 0x00000004, + VK_COLOR_COMPONENT_A_BIT = 0x00000008, + VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkColorComponentFlagBits; +typedef VkFlags VkColorComponentFlags; + +typedef enum VkPipelineCreateFlagBits { + VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, + VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, + VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, + VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, + VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010, + VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100, + VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200, + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000, + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000, + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000, + VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000, + VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000, + VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000, + VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, + VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040, + VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, + VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, + VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800, + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000, + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000, + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400, + VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000, + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000, + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000, + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000, +#endif + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000, + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000, + VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, + VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, + VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT, + VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, + VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, + VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT, + VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT, + VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCreateFlagBits; +typedef VkFlags VkPipelineCreateFlags; + +typedef enum VkPipelineShaderStageCreateFlagBits { + VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001, + VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002, + VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT, + VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT, + VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineShaderStageCreateFlagBits; +typedef VkFlags VkPipelineShaderStageCreateFlags; + +typedef enum VkShaderStageFlagBits { + VK_SHADER_STAGE_VERTEX_BIT = 0x00000001, + VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, + VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, + VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, + VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, + VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, + VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, + VK_SHADER_STAGE_ALL = 0x7FFFFFFF, + VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100, + VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200, + VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400, + VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800, + VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000, + VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000, + VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040, + VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080, + VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000, + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000, + VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR, + VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR, + VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, + VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR, + VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR, + VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR, + VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT, + VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT, + VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkShaderStageFlagBits; + +typedef enum VkCullModeFlagBits { + VK_CULL_MODE_NONE = 0, + VK_CULL_MODE_FRONT_BIT = 0x00000001, + VK_CULL_MODE_BACK_BIT = 0x00000002, + VK_CULL_MODE_FRONT_AND_BACK = 0x00000003, + VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkCullModeFlagBits; +typedef VkFlags VkCullModeFlags; +typedef VkFlags VkPipelineVertexInputStateCreateFlags; +typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; +typedef VkFlags VkPipelineTessellationStateCreateFlags; +typedef VkFlags VkPipelineViewportStateCreateFlags; +typedef VkFlags VkPipelineRasterizationStateCreateFlags; +typedef VkFlags VkPipelineMultisampleStateCreateFlags; + +typedef enum VkPipelineDepthStencilStateCreateFlagBits { + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineDepthStencilStateCreateFlagBits; +typedef VkFlags VkPipelineDepthStencilStateCreateFlags; + +typedef enum VkPipelineColorBlendStateCreateFlagBits { + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001, + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT, + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineColorBlendStateCreateFlagBits; +typedef VkFlags VkPipelineColorBlendStateCreateFlags; +typedef VkFlags VkPipelineDynamicStateCreateFlags; + +typedef enum VkPipelineLayoutCreateFlagBits { + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002, + VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineLayoutCreateFlagBits; +typedef VkFlags VkPipelineLayoutCreateFlags; +typedef VkFlags VkShaderStageFlags; + +typedef enum VkSamplerCreateFlagBits { + VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001, + VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002, + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008, + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004, + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010, + VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSamplerCreateFlagBits; +typedef VkFlags VkSamplerCreateFlags; + +typedef enum VkDescriptorPoolCreateFlagBits { + VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, + VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002, + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004, + VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008, + VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010, + VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT, + VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkDescriptorPoolCreateFlagBits; +typedef VkFlags VkDescriptorPoolCreateFlags; +typedef VkFlags VkDescriptorPoolResetFlags; + +typedef enum VkDescriptorSetLayoutCreateFlagBits { + VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT, + VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkDescriptorSetLayoutCreateFlagBits; +typedef VkFlags VkDescriptorSetLayoutCreateFlags; + +typedef enum VkAttachmentDescriptionFlagBits { + VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, + VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkAttachmentDescriptionFlagBits; +typedef VkFlags VkAttachmentDescriptionFlags; + +typedef enum VkDependencyFlagBits { + VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, + VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, + VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008, + VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT, + VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT, + VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkDependencyFlagBits; +typedef VkFlags VkDependencyFlags; + +typedef enum VkFramebufferCreateFlagBits { + VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001, + VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, + VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkFramebufferCreateFlagBits; +typedef VkFlags VkFramebufferCreateFlags; + +typedef enum VkRenderPassCreateFlagBits { + VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002, + VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkRenderPassCreateFlagBits; +typedef VkFlags VkRenderPassCreateFlags; + +typedef enum VkSubpassDescriptionFlagBits { + VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, + VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, + VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004, + VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040, + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT, + VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSubpassDescriptionFlagBits; +typedef VkFlags VkSubpassDescriptionFlags; + +typedef enum VkCommandPoolCreateFlagBits { + VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, + VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, + VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004, + VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkCommandPoolCreateFlagBits; +typedef VkFlags VkCommandPoolCreateFlags; + +typedef enum VkCommandPoolResetFlagBits { + VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, + VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkCommandPoolResetFlagBits; +typedef VkFlags VkCommandPoolResetFlags; + +typedef enum VkCommandBufferUsageFlagBits { + VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, + VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, + VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, + VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkCommandBufferUsageFlagBits; +typedef VkFlags VkCommandBufferUsageFlags; + +typedef enum VkQueryControlFlagBits { + VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001, + VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkQueryControlFlagBits; +typedef VkFlags VkQueryControlFlags; + +typedef enum VkCommandBufferResetFlagBits { + VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, + VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkCommandBufferResetFlagBits; +typedef VkFlags VkCommandBufferResetFlags; + +typedef enum VkStencilFaceFlagBits { + VK_STENCIL_FACE_FRONT_BIT = 0x00000001, + VK_STENCIL_FACE_BACK_BIT = 0x00000002, + VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003, + VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK, + VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkStencilFaceFlagBits; +typedef VkFlags VkStencilFaceFlags; +typedef struct VkExtent2D { + uint32_t width; + uint32_t height; +} VkExtent2D; + +typedef struct VkExtent3D { + uint32_t width; + uint32_t height; + uint32_t depth; +} VkExtent3D; + +typedef struct VkOffset2D { + int32_t x; + int32_t y; +} VkOffset2D; + +typedef struct VkOffset3D { + int32_t x; + int32_t y; + int32_t z; +} VkOffset3D; + +typedef struct VkRect2D { + VkOffset2D offset; + VkExtent2D extent; +} VkRect2D; + +typedef struct VkBaseInStructure { + VkStructureType sType; + const struct VkBaseInStructure* pNext; +} VkBaseInStructure; + +typedef struct VkBaseOutStructure { + VkStructureType sType; + struct VkBaseOutStructure* pNext; +} VkBaseOutStructure; + +typedef struct VkBufferMemoryBarrier { + VkStructureType sType; + const void* pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; +} VkBufferMemoryBarrier; + +typedef struct VkDispatchIndirectCommand { + uint32_t x; + uint32_t y; + uint32_t z; +} VkDispatchIndirectCommand; + +typedef struct VkDrawIndexedIndirectCommand { + uint32_t indexCount; + uint32_t instanceCount; + uint32_t firstIndex; + int32_t vertexOffset; + uint32_t firstInstance; +} VkDrawIndexedIndirectCommand; + +typedef struct VkDrawIndirectCommand { + uint32_t vertexCount; + uint32_t instanceCount; + uint32_t firstVertex; + uint32_t firstInstance; +} VkDrawIndirectCommand; + +typedef struct VkImageSubresourceRange { + VkImageAspectFlags aspectMask; + uint32_t baseMipLevel; + uint32_t levelCount; + uint32_t baseArrayLayer; + uint32_t layerCount; +} VkImageSubresourceRange; + +typedef struct VkImageMemoryBarrier { + VkStructureType sType; + const void* pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkImageLayout oldLayout; + VkImageLayout newLayout; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkImage image; + VkImageSubresourceRange subresourceRange; +} VkImageMemoryBarrier; + +typedef struct VkMemoryBarrier { + VkStructureType sType; + const void* pNext; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; +} VkMemoryBarrier; + +typedef struct VkPipelineCacheHeaderVersionOne { + uint32_t headerSize; + VkPipelineCacheHeaderVersion headerVersion; + uint32_t vendorID; + uint32_t deviceID; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; +} VkPipelineCacheHeaderVersionOne; + +typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( + void* pUserData, + size_t size, + size_t alignment, + VkSystemAllocationScope allocationScope); + +typedef void (VKAPI_PTR *PFN_vkFreeFunction)( + void* pUserData, + void* pMemory); + +typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( + void* pUserData, + size_t size, + VkInternalAllocationType allocationType, + VkSystemAllocationScope allocationScope); + +typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( + void* pUserData, + size_t size, + VkInternalAllocationType allocationType, + VkSystemAllocationScope allocationScope); + +typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( + void* pUserData, + void* pOriginal, + size_t size, + size_t alignment, + VkSystemAllocationScope allocationScope); + +typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); +typedef struct VkAllocationCallbacks { + void* pUserData; + PFN_vkAllocationFunction pfnAllocation; + PFN_vkReallocationFunction pfnReallocation; + PFN_vkFreeFunction pfnFree; + PFN_vkInternalAllocationNotification pfnInternalAllocation; + PFN_vkInternalFreeNotification pfnInternalFree; +} VkAllocationCallbacks; + +typedef struct VkApplicationInfo { + VkStructureType sType; + const void* pNext; + const char* pApplicationName; + uint32_t applicationVersion; + const char* pEngineName; + uint32_t engineVersion; + uint32_t apiVersion; +} VkApplicationInfo; + +typedef struct VkFormatProperties { + VkFormatFeatureFlags linearTilingFeatures; + VkFormatFeatureFlags optimalTilingFeatures; + VkFormatFeatureFlags bufferFeatures; +} VkFormatProperties; + +typedef struct VkImageFormatProperties { + VkExtent3D maxExtent; + uint32_t maxMipLevels; + uint32_t maxArrayLayers; + VkSampleCountFlags sampleCounts; + VkDeviceSize maxResourceSize; +} VkImageFormatProperties; + +typedef struct VkInstanceCreateInfo { + VkStructureType sType; + const void* pNext; + VkInstanceCreateFlags flags; + const VkApplicationInfo* pApplicationInfo; + uint32_t enabledLayerCount; + const char* const* ppEnabledLayerNames; + uint32_t enabledExtensionCount; + const char* const* ppEnabledExtensionNames; +} VkInstanceCreateInfo; + +typedef struct VkMemoryHeap { + VkDeviceSize size; + VkMemoryHeapFlags flags; +} VkMemoryHeap; + +typedef struct VkMemoryType { + VkMemoryPropertyFlags propertyFlags; + uint32_t heapIndex; +} VkMemoryType; + +typedef struct VkPhysicalDeviceFeatures { + VkBool32 robustBufferAccess; + VkBool32 fullDrawIndexUint32; + VkBool32 imageCubeArray; + VkBool32 independentBlend; + VkBool32 geometryShader; + VkBool32 tessellationShader; + VkBool32 sampleRateShading; + VkBool32 dualSrcBlend; + VkBool32 logicOp; + VkBool32 multiDrawIndirect; + VkBool32 drawIndirectFirstInstance; + VkBool32 depthClamp; + VkBool32 depthBiasClamp; + VkBool32 fillModeNonSolid; + VkBool32 depthBounds; + VkBool32 wideLines; + VkBool32 largePoints; + VkBool32 alphaToOne; + VkBool32 multiViewport; + VkBool32 samplerAnisotropy; + VkBool32 textureCompressionETC2; + VkBool32 textureCompressionASTC_LDR; + VkBool32 textureCompressionBC; + VkBool32 occlusionQueryPrecise; + VkBool32 pipelineStatisticsQuery; + VkBool32 vertexPipelineStoresAndAtomics; + VkBool32 fragmentStoresAndAtomics; + VkBool32 shaderTessellationAndGeometryPointSize; + VkBool32 shaderImageGatherExtended; + VkBool32 shaderStorageImageExtendedFormats; + VkBool32 shaderStorageImageMultisample; + VkBool32 shaderStorageImageReadWithoutFormat; + VkBool32 shaderStorageImageWriteWithoutFormat; + VkBool32 shaderUniformBufferArrayDynamicIndexing; + VkBool32 shaderSampledImageArrayDynamicIndexing; + VkBool32 shaderStorageBufferArrayDynamicIndexing; + VkBool32 shaderStorageImageArrayDynamicIndexing; + VkBool32 shaderClipDistance; + VkBool32 shaderCullDistance; + VkBool32 shaderFloat64; + VkBool32 shaderInt64; + VkBool32 shaderInt16; + VkBool32 shaderResourceResidency; + VkBool32 shaderResourceMinLod; + VkBool32 sparseBinding; + VkBool32 sparseResidencyBuffer; + VkBool32 sparseResidencyImage2D; + VkBool32 sparseResidencyImage3D; + VkBool32 sparseResidency2Samples; + VkBool32 sparseResidency4Samples; + VkBool32 sparseResidency8Samples; + VkBool32 sparseResidency16Samples; + VkBool32 sparseResidencyAliased; + VkBool32 variableMultisampleRate; + VkBool32 inheritedQueries; +} VkPhysicalDeviceFeatures; + +typedef struct VkPhysicalDeviceLimits { + uint32_t maxImageDimension1D; + uint32_t maxImageDimension2D; + uint32_t maxImageDimension3D; + uint32_t maxImageDimensionCube; + uint32_t maxImageArrayLayers; + uint32_t maxTexelBufferElements; + uint32_t maxUniformBufferRange; + uint32_t maxStorageBufferRange; + uint32_t maxPushConstantsSize; + uint32_t maxMemoryAllocationCount; + uint32_t maxSamplerAllocationCount; + VkDeviceSize bufferImageGranularity; + VkDeviceSize sparseAddressSpaceSize; + uint32_t maxBoundDescriptorSets; + uint32_t maxPerStageDescriptorSamplers; + uint32_t maxPerStageDescriptorUniformBuffers; + uint32_t maxPerStageDescriptorStorageBuffers; + uint32_t maxPerStageDescriptorSampledImages; + uint32_t maxPerStageDescriptorStorageImages; + uint32_t maxPerStageDescriptorInputAttachments; + uint32_t maxPerStageResources; + uint32_t maxDescriptorSetSamplers; + uint32_t maxDescriptorSetUniformBuffers; + uint32_t maxDescriptorSetUniformBuffersDynamic; + uint32_t maxDescriptorSetStorageBuffers; + uint32_t maxDescriptorSetStorageBuffersDynamic; + uint32_t maxDescriptorSetSampledImages; + uint32_t maxDescriptorSetStorageImages; + uint32_t maxDescriptorSetInputAttachments; + uint32_t maxVertexInputAttributes; + uint32_t maxVertexInputBindings; + uint32_t maxVertexInputAttributeOffset; + uint32_t maxVertexInputBindingStride; + uint32_t maxVertexOutputComponents; + uint32_t maxTessellationGenerationLevel; + uint32_t maxTessellationPatchSize; + uint32_t maxTessellationControlPerVertexInputComponents; + uint32_t maxTessellationControlPerVertexOutputComponents; + uint32_t maxTessellationControlPerPatchOutputComponents; + uint32_t maxTessellationControlTotalOutputComponents; + uint32_t maxTessellationEvaluationInputComponents; + uint32_t maxTessellationEvaluationOutputComponents; + uint32_t maxGeometryShaderInvocations; + uint32_t maxGeometryInputComponents; + uint32_t maxGeometryOutputComponents; + uint32_t maxGeometryOutputVertices; + uint32_t maxGeometryTotalOutputComponents; + uint32_t maxFragmentInputComponents; + uint32_t maxFragmentOutputAttachments; + uint32_t maxFragmentDualSrcAttachments; + uint32_t maxFragmentCombinedOutputResources; + uint32_t maxComputeSharedMemorySize; + uint32_t maxComputeWorkGroupCount[3]; + uint32_t maxComputeWorkGroupInvocations; + uint32_t maxComputeWorkGroupSize[3]; + uint32_t subPixelPrecisionBits; + uint32_t subTexelPrecisionBits; + uint32_t mipmapPrecisionBits; + uint32_t maxDrawIndexedIndexValue; + uint32_t maxDrawIndirectCount; + float maxSamplerLodBias; + float maxSamplerAnisotropy; + uint32_t maxViewports; + uint32_t maxViewportDimensions[2]; + float viewportBoundsRange[2]; + uint32_t viewportSubPixelBits; + size_t minMemoryMapAlignment; + VkDeviceSize minTexelBufferOffsetAlignment; + VkDeviceSize minUniformBufferOffsetAlignment; + VkDeviceSize minStorageBufferOffsetAlignment; + int32_t minTexelOffset; + uint32_t maxTexelOffset; + int32_t minTexelGatherOffset; + uint32_t maxTexelGatherOffset; + float minInterpolationOffset; + float maxInterpolationOffset; + uint32_t subPixelInterpolationOffsetBits; + uint32_t maxFramebufferWidth; + uint32_t maxFramebufferHeight; + uint32_t maxFramebufferLayers; + VkSampleCountFlags framebufferColorSampleCounts; + VkSampleCountFlags framebufferDepthSampleCounts; + VkSampleCountFlags framebufferStencilSampleCounts; + VkSampleCountFlags framebufferNoAttachmentsSampleCounts; + uint32_t maxColorAttachments; + VkSampleCountFlags sampledImageColorSampleCounts; + VkSampleCountFlags sampledImageIntegerSampleCounts; + VkSampleCountFlags sampledImageDepthSampleCounts; + VkSampleCountFlags sampledImageStencilSampleCounts; + VkSampleCountFlags storageImageSampleCounts; + uint32_t maxSampleMaskWords; + VkBool32 timestampComputeAndGraphics; + float timestampPeriod; + uint32_t maxClipDistances; + uint32_t maxCullDistances; + uint32_t maxCombinedClipAndCullDistances; + uint32_t discreteQueuePriorities; + float pointSizeRange[2]; + float lineWidthRange[2]; + float pointSizeGranularity; + float lineWidthGranularity; + VkBool32 strictLines; + VkBool32 standardSampleLocations; + VkDeviceSize optimalBufferCopyOffsetAlignment; + VkDeviceSize optimalBufferCopyRowPitchAlignment; + VkDeviceSize nonCoherentAtomSize; +} VkPhysicalDeviceLimits; + +typedef struct VkPhysicalDeviceMemoryProperties { + uint32_t memoryTypeCount; + VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; + uint32_t memoryHeapCount; + VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; +} VkPhysicalDeviceMemoryProperties; + +typedef struct VkPhysicalDeviceSparseProperties { + VkBool32 residencyStandard2DBlockShape; + VkBool32 residencyStandard2DMultisampleBlockShape; + VkBool32 residencyStandard3DBlockShape; + VkBool32 residencyAlignedMipSize; + VkBool32 residencyNonResidentStrict; +} VkPhysicalDeviceSparseProperties; + +typedef struct VkPhysicalDeviceProperties { + uint32_t apiVersion; + uint32_t driverVersion; + uint32_t vendorID; + uint32_t deviceID; + VkPhysicalDeviceType deviceType; + char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; + VkPhysicalDeviceLimits limits; + VkPhysicalDeviceSparseProperties sparseProperties; +} VkPhysicalDeviceProperties; + +typedef struct VkQueueFamilyProperties { + VkQueueFlags queueFlags; + uint32_t queueCount; + uint32_t timestampValidBits; + VkExtent3D minImageTransferGranularity; +} VkQueueFamilyProperties; + +typedef struct VkDeviceQueueCreateInfo { + VkStructureType sType; + const void* pNext; + VkDeviceQueueCreateFlags flags; + uint32_t queueFamilyIndex; + uint32_t queueCount; + const float* pQueuePriorities; +} VkDeviceQueueCreateInfo; + +typedef struct VkDeviceCreateInfo { + VkStructureType sType; + const void* pNext; + VkDeviceCreateFlags flags; + uint32_t queueCreateInfoCount; + const VkDeviceQueueCreateInfo* pQueueCreateInfos; + uint32_t enabledLayerCount; + const char* const* ppEnabledLayerNames; + uint32_t enabledExtensionCount; + const char* const* ppEnabledExtensionNames; + const VkPhysicalDeviceFeatures* pEnabledFeatures; +} VkDeviceCreateInfo; + +typedef struct VkExtensionProperties { + char extensionName[VK_MAX_EXTENSION_NAME_SIZE]; + uint32_t specVersion; +} VkExtensionProperties; + +typedef struct VkLayerProperties { + char layerName[VK_MAX_EXTENSION_NAME_SIZE]; + uint32_t specVersion; + uint32_t implementationVersion; + char description[VK_MAX_DESCRIPTION_SIZE]; +} VkLayerProperties; + +typedef struct VkSubmitInfo { + VkStructureType sType; + const void* pNext; + uint32_t waitSemaphoreCount; + const VkSemaphore* pWaitSemaphores; + const VkPipelineStageFlags* pWaitDstStageMask; + uint32_t commandBufferCount; + const VkCommandBuffer* pCommandBuffers; + uint32_t signalSemaphoreCount; + const VkSemaphore* pSignalSemaphores; +} VkSubmitInfo; + +typedef struct VkMappedMemoryRange { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkDeviceSize offset; + VkDeviceSize size; +} VkMappedMemoryRange; + +typedef struct VkMemoryAllocateInfo { + VkStructureType sType; + const void* pNext; + VkDeviceSize allocationSize; + uint32_t memoryTypeIndex; +} VkMemoryAllocateInfo; + +typedef struct VkMemoryRequirements { + VkDeviceSize size; + VkDeviceSize alignment; + uint32_t memoryTypeBits; +} VkMemoryRequirements; + +typedef struct VkSparseMemoryBind { + VkDeviceSize resourceOffset; + VkDeviceSize size; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; + VkSparseMemoryBindFlags flags; +} VkSparseMemoryBind; + +typedef struct VkSparseBufferMemoryBindInfo { + VkBuffer buffer; + uint32_t bindCount; + const VkSparseMemoryBind* pBinds; +} VkSparseBufferMemoryBindInfo; + +typedef struct VkSparseImageOpaqueMemoryBindInfo { + VkImage image; + uint32_t bindCount; + const VkSparseMemoryBind* pBinds; +} VkSparseImageOpaqueMemoryBindInfo; + +typedef struct VkImageSubresource { + VkImageAspectFlags aspectMask; + uint32_t mipLevel; + uint32_t arrayLayer; +} VkImageSubresource; + +typedef struct VkSparseImageMemoryBind { + VkImageSubresource subresource; + VkOffset3D offset; + VkExtent3D extent; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; + VkSparseMemoryBindFlags flags; +} VkSparseImageMemoryBind; + +typedef struct VkSparseImageMemoryBindInfo { + VkImage image; + uint32_t bindCount; + const VkSparseImageMemoryBind* pBinds; +} VkSparseImageMemoryBindInfo; + +typedef struct VkBindSparseInfo { + VkStructureType sType; + const void* pNext; + uint32_t waitSemaphoreCount; + const VkSemaphore* pWaitSemaphores; + uint32_t bufferBindCount; + const VkSparseBufferMemoryBindInfo* pBufferBinds; + uint32_t imageOpaqueBindCount; + const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds; + uint32_t imageBindCount; + const VkSparseImageMemoryBindInfo* pImageBinds; + uint32_t signalSemaphoreCount; + const VkSemaphore* pSignalSemaphores; +} VkBindSparseInfo; + +typedef struct VkSparseImageFormatProperties { + VkImageAspectFlags aspectMask; + VkExtent3D imageGranularity; + VkSparseImageFormatFlags flags; +} VkSparseImageFormatProperties; + +typedef struct VkSparseImageMemoryRequirements { + VkSparseImageFormatProperties formatProperties; + uint32_t imageMipTailFirstLod; + VkDeviceSize imageMipTailSize; + VkDeviceSize imageMipTailOffset; + VkDeviceSize imageMipTailStride; +} VkSparseImageMemoryRequirements; + +typedef struct VkFenceCreateInfo { + VkStructureType sType; + const void* pNext; + VkFenceCreateFlags flags; +} VkFenceCreateInfo; + +typedef struct VkSemaphoreCreateInfo { + VkStructureType sType; + const void* pNext; + VkSemaphoreCreateFlags flags; +} VkSemaphoreCreateInfo; + +typedef struct VkEventCreateInfo { + VkStructureType sType; + const void* pNext; + VkEventCreateFlags flags; +} VkEventCreateInfo; + +typedef struct VkQueryPoolCreateInfo { + VkStructureType sType; + const void* pNext; + VkQueryPoolCreateFlags flags; + VkQueryType queryType; + uint32_t queryCount; + VkQueryPipelineStatisticFlags pipelineStatistics; +} VkQueryPoolCreateInfo; + +typedef struct VkBufferCreateInfo { + VkStructureType sType; + const void* pNext; + VkBufferCreateFlags flags; + VkDeviceSize size; + VkBufferUsageFlags usage; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t* pQueueFamilyIndices; +} VkBufferCreateInfo; + +typedef struct VkBufferViewCreateInfo { + VkStructureType sType; + const void* pNext; + VkBufferViewCreateFlags flags; + VkBuffer buffer; + VkFormat format; + VkDeviceSize offset; + VkDeviceSize range; +} VkBufferViewCreateInfo; + +typedef struct VkImageCreateInfo { + VkStructureType sType; + const void* pNext; + VkImageCreateFlags flags; + VkImageType imageType; + VkFormat format; + VkExtent3D extent; + uint32_t mipLevels; + uint32_t arrayLayers; + VkSampleCountFlagBits samples; + VkImageTiling tiling; + VkImageUsageFlags usage; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t* pQueueFamilyIndices; + VkImageLayout initialLayout; +} VkImageCreateInfo; + +typedef struct VkSubresourceLayout { + VkDeviceSize offset; + VkDeviceSize size; + VkDeviceSize rowPitch; + VkDeviceSize arrayPitch; + VkDeviceSize depthPitch; +} VkSubresourceLayout; + +typedef struct VkComponentMapping { + VkComponentSwizzle r; + VkComponentSwizzle g; + VkComponentSwizzle b; + VkComponentSwizzle a; +} VkComponentMapping; + +typedef struct VkImageViewCreateInfo { + VkStructureType sType; + const void* pNext; + VkImageViewCreateFlags flags; + VkImage image; + VkImageViewType viewType; + VkFormat format; + VkComponentMapping components; + VkImageSubresourceRange subresourceRange; +} VkImageViewCreateInfo; + +typedef struct VkShaderModuleCreateInfo { + VkStructureType sType; + const void* pNext; + VkShaderModuleCreateFlags flags; + size_t codeSize; + const uint32_t* pCode; +} VkShaderModuleCreateInfo; + +typedef struct VkPipelineCacheCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineCacheCreateFlags flags; + size_t initialDataSize; + const void* pInitialData; +} VkPipelineCacheCreateInfo; + +typedef struct VkSpecializationMapEntry { + uint32_t constantID; + uint32_t offset; + size_t size; +} VkSpecializationMapEntry; + +typedef struct VkSpecializationInfo { + uint32_t mapEntryCount; + const VkSpecializationMapEntry* pMapEntries; + size_t dataSize; + const void* pData; +} VkSpecializationInfo; + +typedef struct VkPipelineShaderStageCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineShaderStageCreateFlags flags; + VkShaderStageFlagBits stage; + VkShaderModule module; + const char* pName; + const VkSpecializationInfo* pSpecializationInfo; +} VkPipelineShaderStageCreateInfo; + +typedef struct VkComputePipelineCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + VkPipelineShaderStageCreateInfo stage; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkComputePipelineCreateInfo; + +typedef struct VkVertexInputBindingDescription { + uint32_t binding; + uint32_t stride; + VkVertexInputRate inputRate; +} VkVertexInputBindingDescription; + +typedef struct VkVertexInputAttributeDescription { + uint32_t location; + uint32_t binding; + VkFormat format; + uint32_t offset; +} VkVertexInputAttributeDescription; + +typedef struct VkPipelineVertexInputStateCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineVertexInputStateCreateFlags flags; + uint32_t vertexBindingDescriptionCount; + const VkVertexInputBindingDescription* pVertexBindingDescriptions; + uint32_t vertexAttributeDescriptionCount; + const VkVertexInputAttributeDescription* pVertexAttributeDescriptions; +} VkPipelineVertexInputStateCreateInfo; + +typedef struct VkPipelineInputAssemblyStateCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineInputAssemblyStateCreateFlags flags; + VkPrimitiveTopology topology; + VkBool32 primitiveRestartEnable; +} VkPipelineInputAssemblyStateCreateInfo; + +typedef struct VkPipelineTessellationStateCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineTessellationStateCreateFlags flags; + uint32_t patchControlPoints; +} VkPipelineTessellationStateCreateInfo; + +typedef struct VkViewport { + float x; + float y; + float width; + float height; + float minDepth; + float maxDepth; +} VkViewport; + +typedef struct VkPipelineViewportStateCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineViewportStateCreateFlags flags; + uint32_t viewportCount; + const VkViewport* pViewports; + uint32_t scissorCount; + const VkRect2D* pScissors; +} VkPipelineViewportStateCreateInfo; + +typedef struct VkPipelineRasterizationStateCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationStateCreateFlags flags; + VkBool32 depthClampEnable; + VkBool32 rasterizerDiscardEnable; + VkPolygonMode polygonMode; + VkCullModeFlags cullMode; + VkFrontFace frontFace; + VkBool32 depthBiasEnable; + float depthBiasConstantFactor; + float depthBiasClamp; + float depthBiasSlopeFactor; + float lineWidth; +} VkPipelineRasterizationStateCreateInfo; + +typedef struct VkPipelineMultisampleStateCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineMultisampleStateCreateFlags flags; + VkSampleCountFlagBits rasterizationSamples; + VkBool32 sampleShadingEnable; + float minSampleShading; + const VkSampleMask* pSampleMask; + VkBool32 alphaToCoverageEnable; + VkBool32 alphaToOneEnable; +} VkPipelineMultisampleStateCreateInfo; + +typedef struct VkStencilOpState { + VkStencilOp failOp; + VkStencilOp passOp; + VkStencilOp depthFailOp; + VkCompareOp compareOp; + uint32_t compareMask; + uint32_t writeMask; + uint32_t reference; +} VkStencilOpState; + +typedef struct VkPipelineDepthStencilStateCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineDepthStencilStateCreateFlags flags; + VkBool32 depthTestEnable; + VkBool32 depthWriteEnable; + VkCompareOp depthCompareOp; + VkBool32 depthBoundsTestEnable; + VkBool32 stencilTestEnable; + VkStencilOpState front; + VkStencilOpState back; + float minDepthBounds; + float maxDepthBounds; +} VkPipelineDepthStencilStateCreateInfo; + +typedef struct VkPipelineColorBlendAttachmentState { + VkBool32 blendEnable; + VkBlendFactor srcColorBlendFactor; + VkBlendFactor dstColorBlendFactor; + VkBlendOp colorBlendOp; + VkBlendFactor srcAlphaBlendFactor; + VkBlendFactor dstAlphaBlendFactor; + VkBlendOp alphaBlendOp; + VkColorComponentFlags colorWriteMask; +} VkPipelineColorBlendAttachmentState; + +typedef struct VkPipelineColorBlendStateCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineColorBlendStateCreateFlags flags; + VkBool32 logicOpEnable; + VkLogicOp logicOp; + uint32_t attachmentCount; + const VkPipelineColorBlendAttachmentState* pAttachments; + float blendConstants[4]; +} VkPipelineColorBlendStateCreateInfo; + +typedef struct VkPipelineDynamicStateCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineDynamicStateCreateFlags flags; + uint32_t dynamicStateCount; + const VkDynamicState* pDynamicStates; +} VkPipelineDynamicStateCreateInfo; + +typedef struct VkGraphicsPipelineCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + const VkPipelineVertexInputStateCreateInfo* pVertexInputState; + const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState; + const VkPipelineTessellationStateCreateInfo* pTessellationState; + const VkPipelineViewportStateCreateInfo* pViewportState; + const VkPipelineRasterizationStateCreateInfo* pRasterizationState; + const VkPipelineMultisampleStateCreateInfo* pMultisampleState; + const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState; + const VkPipelineColorBlendStateCreateInfo* pColorBlendState; + const VkPipelineDynamicStateCreateInfo* pDynamicState; + VkPipelineLayout layout; + VkRenderPass renderPass; + uint32_t subpass; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkGraphicsPipelineCreateInfo; + +typedef struct VkPushConstantRange { + VkShaderStageFlags stageFlags; + uint32_t offset; + uint32_t size; +} VkPushConstantRange; + +typedef struct VkPipelineLayoutCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineLayoutCreateFlags flags; + uint32_t setLayoutCount; + const VkDescriptorSetLayout* pSetLayouts; + uint32_t pushConstantRangeCount; + const VkPushConstantRange* pPushConstantRanges; +} VkPipelineLayoutCreateInfo; + +typedef struct VkSamplerCreateInfo { + VkStructureType sType; + const void* pNext; + VkSamplerCreateFlags flags; + VkFilter magFilter; + VkFilter minFilter; + VkSamplerMipmapMode mipmapMode; + VkSamplerAddressMode addressModeU; + VkSamplerAddressMode addressModeV; + VkSamplerAddressMode addressModeW; + float mipLodBias; + VkBool32 anisotropyEnable; + float maxAnisotropy; + VkBool32 compareEnable; + VkCompareOp compareOp; + float minLod; + float maxLod; + VkBorderColor borderColor; + VkBool32 unnormalizedCoordinates; +} VkSamplerCreateInfo; + +typedef struct VkCopyDescriptorSet { + VkStructureType sType; + const void* pNext; + VkDescriptorSet srcSet; + uint32_t srcBinding; + uint32_t srcArrayElement; + VkDescriptorSet dstSet; + uint32_t dstBinding; + uint32_t dstArrayElement; + uint32_t descriptorCount; +} VkCopyDescriptorSet; + +typedef struct VkDescriptorBufferInfo { + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize range; +} VkDescriptorBufferInfo; + +typedef struct VkDescriptorImageInfo { + VkSampler sampler; + VkImageView imageView; + VkImageLayout imageLayout; +} VkDescriptorImageInfo; + +typedef struct VkDescriptorPoolSize { + VkDescriptorType type; + uint32_t descriptorCount; +} VkDescriptorPoolSize; + +typedef struct VkDescriptorPoolCreateInfo { + VkStructureType sType; + const void* pNext; + VkDescriptorPoolCreateFlags flags; + uint32_t maxSets; + uint32_t poolSizeCount; + const VkDescriptorPoolSize* pPoolSizes; +} VkDescriptorPoolCreateInfo; + +typedef struct VkDescriptorSetAllocateInfo { + VkStructureType sType; + const void* pNext; + VkDescriptorPool descriptorPool; + uint32_t descriptorSetCount; + const VkDescriptorSetLayout* pSetLayouts; +} VkDescriptorSetAllocateInfo; + +typedef struct VkDescriptorSetLayoutBinding { + uint32_t binding; + VkDescriptorType descriptorType; + uint32_t descriptorCount; + VkShaderStageFlags stageFlags; + const VkSampler* pImmutableSamplers; +} VkDescriptorSetLayoutBinding; + +typedef struct VkDescriptorSetLayoutCreateInfo { + VkStructureType sType; + const void* pNext; + VkDescriptorSetLayoutCreateFlags flags; + uint32_t bindingCount; + const VkDescriptorSetLayoutBinding* pBindings; +} VkDescriptorSetLayoutCreateInfo; + +typedef struct VkWriteDescriptorSet { + VkStructureType sType; + const void* pNext; + VkDescriptorSet dstSet; + uint32_t dstBinding; + uint32_t dstArrayElement; + uint32_t descriptorCount; + VkDescriptorType descriptorType; + const VkDescriptorImageInfo* pImageInfo; + const VkDescriptorBufferInfo* pBufferInfo; + const VkBufferView* pTexelBufferView; +} VkWriteDescriptorSet; + +typedef struct VkAttachmentDescription { + VkAttachmentDescriptionFlags flags; + VkFormat format; + VkSampleCountFlagBits samples; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkAttachmentLoadOp stencilLoadOp; + VkAttachmentStoreOp stencilStoreOp; + VkImageLayout initialLayout; + VkImageLayout finalLayout; +} VkAttachmentDescription; + +typedef struct VkAttachmentReference { + uint32_t attachment; + VkImageLayout layout; +} VkAttachmentReference; + +typedef struct VkFramebufferCreateInfo { + VkStructureType sType; + const void* pNext; + VkFramebufferCreateFlags flags; + VkRenderPass renderPass; + uint32_t attachmentCount; + const VkImageView* pAttachments; + uint32_t width; + uint32_t height; + uint32_t layers; +} VkFramebufferCreateInfo; + +typedef struct VkSubpassDescription { + VkSubpassDescriptionFlags flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t inputAttachmentCount; + const VkAttachmentReference* pInputAttachments; + uint32_t colorAttachmentCount; + const VkAttachmentReference* pColorAttachments; + const VkAttachmentReference* pResolveAttachments; + const VkAttachmentReference* pDepthStencilAttachment; + uint32_t preserveAttachmentCount; + const uint32_t* pPreserveAttachments; +} VkSubpassDescription; + +typedef struct VkSubpassDependency { + uint32_t srcSubpass; + uint32_t dstSubpass; + VkPipelineStageFlags srcStageMask; + VkPipelineStageFlags dstStageMask; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkDependencyFlags dependencyFlags; +} VkSubpassDependency; + +typedef struct VkRenderPassCreateInfo { + VkStructureType sType; + const void* pNext; + VkRenderPassCreateFlags flags; + uint32_t attachmentCount; + const VkAttachmentDescription* pAttachments; + uint32_t subpassCount; + const VkSubpassDescription* pSubpasses; + uint32_t dependencyCount; + const VkSubpassDependency* pDependencies; +} VkRenderPassCreateInfo; + +typedef struct VkCommandPoolCreateInfo { + VkStructureType sType; + const void* pNext; + VkCommandPoolCreateFlags flags; + uint32_t queueFamilyIndex; +} VkCommandPoolCreateInfo; + +typedef struct VkCommandBufferAllocateInfo { + VkStructureType sType; + const void* pNext; + VkCommandPool commandPool; + VkCommandBufferLevel level; + uint32_t commandBufferCount; +} VkCommandBufferAllocateInfo; + +typedef struct VkCommandBufferInheritanceInfo { + VkStructureType sType; + const void* pNext; + VkRenderPass renderPass; + uint32_t subpass; + VkFramebuffer framebuffer; + VkBool32 occlusionQueryEnable; + VkQueryControlFlags queryFlags; + VkQueryPipelineStatisticFlags pipelineStatistics; +} VkCommandBufferInheritanceInfo; + +typedef struct VkCommandBufferBeginInfo { + VkStructureType sType; + const void* pNext; + VkCommandBufferUsageFlags flags; + const VkCommandBufferInheritanceInfo* pInheritanceInfo; +} VkCommandBufferBeginInfo; + +typedef struct VkBufferCopy { + VkDeviceSize srcOffset; + VkDeviceSize dstOffset; + VkDeviceSize size; +} VkBufferCopy; + +typedef struct VkImageSubresourceLayers { + VkImageAspectFlags aspectMask; + uint32_t mipLevel; + uint32_t baseArrayLayer; + uint32_t layerCount; +} VkImageSubresourceLayers; + +typedef struct VkBufferImageCopy { + VkDeviceSize bufferOffset; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkBufferImageCopy; + +typedef union VkClearColorValue { + float float32[4]; + int32_t int32[4]; + uint32_t uint32[4]; +} VkClearColorValue; + +typedef struct VkClearDepthStencilValue { + float depth; + uint32_t stencil; +} VkClearDepthStencilValue; + +typedef union VkClearValue { + VkClearColorValue color; + VkClearDepthStencilValue depthStencil; +} VkClearValue; + +typedef struct VkClearAttachment { + VkImageAspectFlags aspectMask; + uint32_t colorAttachment; + VkClearValue clearValue; +} VkClearAttachment; + +typedef struct VkClearRect { + VkRect2D rect; + uint32_t baseArrayLayer; + uint32_t layerCount; +} VkClearRect; + +typedef struct VkImageBlit { + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit; + +typedef struct VkImageCopy { + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy; + +typedef struct VkImageResolve { + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageResolve; + +typedef struct VkRenderPassBeginInfo { + VkStructureType sType; + const void* pNext; + VkRenderPass renderPass; + VkFramebuffer framebuffer; + VkRect2D renderArea; + uint32_t clearValueCount; + const VkClearValue* pClearValues; +} VkRenderPassBeginInfo; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance); +typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties); +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName); +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName); +typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice); +typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties); +typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence); +typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue); +typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device); +typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory); +typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData); +typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory); +typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); +typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); +typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes); +typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset); +typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset); +typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence); +typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); +typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences); +typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence); +typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout); +typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore); +typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent); +typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event); +typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event); +typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event); +typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool); +typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags); +typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer); +typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView); +typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage); +typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout); +typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView); +typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule); +typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache); +typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches); +typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout); +typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler); +typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout); +typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool); +typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags); +typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets); +typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets); +typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies); +typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer); +typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); +typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity); +typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool); +typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags); +typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers); +typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); +typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo); +typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer); +typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags); +typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports); +typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors); +typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor); +typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference); +typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType); +typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); +typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions); +typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions); +typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData); +typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data); +typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); +typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); +typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects); +typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions); +typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); +typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); +typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers); +typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers); +typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags); +typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query); +typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); +typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query); +typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags); +typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues); +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents); +typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer); +typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance( + const VkInstanceCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkInstance* pInstance); + +VKAPI_ATTR void VKAPI_CALL vkDestroyInstance( + VkInstance instance, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices( + VkInstance instance, + uint32_t* pPhysicalDeviceCount, + VkPhysicalDevice* pPhysicalDevices); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures* pFeatures); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties( + VkPhysicalDevice physicalDevice, + VkFormat format, + VkFormatProperties* pFormatProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties( + VkPhysicalDevice physicalDevice, + VkFormat format, + VkImageType type, + VkImageTiling tiling, + VkImageUsageFlags usage, + VkImageCreateFlags flags, + VkImageFormatProperties* pImageFormatProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceProperties* pProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties( + VkPhysicalDevice physicalDevice, + uint32_t* pQueueFamilyPropertyCount, + VkQueueFamilyProperties* pQueueFamilyProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceMemoryProperties* pMemoryProperties); + +VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr( + VkInstance instance, + const char* pName); + +VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr( + VkDevice device, + const char* pName); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice( + VkPhysicalDevice physicalDevice, + const VkDeviceCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDevice* pDevice); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDevice( + VkDevice device, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties( + const char* pLayerName, + uint32_t* pPropertyCount, + VkExtensionProperties* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties( + VkPhysicalDevice physicalDevice, + const char* pLayerName, + uint32_t* pPropertyCount, + VkExtensionProperties* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties( + uint32_t* pPropertyCount, + VkLayerProperties* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkLayerProperties* pProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue( + VkDevice device, + uint32_t queueFamilyIndex, + uint32_t queueIndex, + VkQueue* pQueue); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit( + VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo* pSubmits, + VkFence fence); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle( + VkQueue queue); + +VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle( + VkDevice device); + +VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory( + VkDevice device, + const VkMemoryAllocateInfo* pAllocateInfo, + const VkAllocationCallbacks* pAllocator, + VkDeviceMemory* pMemory); + +VKAPI_ATTR void VKAPI_CALL vkFreeMemory( + VkDevice device, + VkDeviceMemory memory, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory( + VkDevice device, + VkDeviceMemory memory, + VkDeviceSize offset, + VkDeviceSize size, + VkMemoryMapFlags flags, + void** ppData); + +VKAPI_ATTR void VKAPI_CALL vkUnmapMemory( + VkDevice device, + VkDeviceMemory memory); + +VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges( + VkDevice device, + uint32_t memoryRangeCount, + const VkMappedMemoryRange* pMemoryRanges); + +VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges( + VkDevice device, + uint32_t memoryRangeCount, + const VkMappedMemoryRange* pMemoryRanges); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment( + VkDevice device, + VkDeviceMemory memory, + VkDeviceSize* pCommittedMemoryInBytes); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory( + VkDevice device, + VkBuffer buffer, + VkDeviceMemory memory, + VkDeviceSize memoryOffset); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory( + VkDevice device, + VkImage image, + VkDeviceMemory memory, + VkDeviceSize memoryOffset); + +VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements( + VkDevice device, + VkBuffer buffer, + VkMemoryRequirements* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements( + VkDevice device, + VkImage image, + VkMemoryRequirements* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements( + VkDevice device, + VkImage image, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements* pSparseMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties( + VkPhysicalDevice physicalDevice, + VkFormat format, + VkImageType type, + VkSampleCountFlagBits samples, + VkImageUsageFlags usage, + VkImageTiling tiling, + uint32_t* pPropertyCount, + VkSparseImageFormatProperties* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse( + VkQueue queue, + uint32_t bindInfoCount, + const VkBindSparseInfo* pBindInfo, + VkFence fence); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence( + VkDevice device, + const VkFenceCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkFence* pFence); + +VKAPI_ATTR void VKAPI_CALL vkDestroyFence( + VkDevice device, + VkFence fence, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkResetFences( + VkDevice device, + uint32_t fenceCount, + const VkFence* pFences); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus( + VkDevice device, + VkFence fence); + +VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences( + VkDevice device, + uint32_t fenceCount, + const VkFence* pFences, + VkBool32 waitAll, + uint64_t timeout); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore( + VkDevice device, + const VkSemaphoreCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSemaphore* pSemaphore); + +VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore( + VkDevice device, + VkSemaphore semaphore, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent( + VkDevice device, + const VkEventCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkEvent* pEvent); + +VKAPI_ATTR void VKAPI_CALL vkDestroyEvent( + VkDevice device, + VkEvent event, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus( + VkDevice device, + VkEvent event); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent( + VkDevice device, + VkEvent event); + +VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent( + VkDevice device, + VkEvent event); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool( + VkDevice device, + const VkQueryPoolCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkQueryPool* pQueryPool); + +VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool( + VkDevice device, + VkQueryPool queryPool, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults( + VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + size_t dataSize, + void* pData, + VkDeviceSize stride, + VkQueryResultFlags flags); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer( + VkDevice device, + const VkBufferCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkBuffer* pBuffer); + +VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer( + VkDevice device, + VkBuffer buffer, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView( + VkDevice device, + const VkBufferViewCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkBufferView* pView); + +VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView( + VkDevice device, + VkBufferView bufferView, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage( + VkDevice device, + const VkImageCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkImage* pImage); + +VKAPI_ATTR void VKAPI_CALL vkDestroyImage( + VkDevice device, + VkImage image, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout( + VkDevice device, + VkImage image, + const VkImageSubresource* pSubresource, + VkSubresourceLayout* pLayout); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView( + VkDevice device, + const VkImageViewCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkImageView* pView); + +VKAPI_ATTR void VKAPI_CALL vkDestroyImageView( + VkDevice device, + VkImageView imageView, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule( + VkDevice device, + const VkShaderModuleCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkShaderModule* pShaderModule); + +VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule( + VkDevice device, + VkShaderModule shaderModule, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache( + VkDevice device, + const VkPipelineCacheCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPipelineCache* pPipelineCache); + +VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache( + VkDevice device, + VkPipelineCache pipelineCache, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData( + VkDevice device, + VkPipelineCache pipelineCache, + size_t* pDataSize, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches( + VkDevice device, + VkPipelineCache dstCache, + uint32_t srcCacheCount, + const VkPipelineCache* pSrcCaches); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines( + VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkGraphicsPipelineCreateInfo* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines( + VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkComputePipelineCreateInfo* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); + +VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline( + VkDevice device, + VkPipeline pipeline, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout( + VkDevice device, + const VkPipelineLayoutCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPipelineLayout* pPipelineLayout); + +VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout( + VkDevice device, + VkPipelineLayout pipelineLayout, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler( + VkDevice device, + const VkSamplerCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSampler* pSampler); + +VKAPI_ATTR void VKAPI_CALL vkDestroySampler( + VkDevice device, + VkSampler sampler, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout( + VkDevice device, + const VkDescriptorSetLayoutCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDescriptorSetLayout* pSetLayout); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout( + VkDevice device, + VkDescriptorSetLayout descriptorSetLayout, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool( + VkDevice device, + const VkDescriptorPoolCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDescriptorPool* pDescriptorPool); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool( + VkDevice device, + VkDescriptorPool descriptorPool, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool( + VkDevice device, + VkDescriptorPool descriptorPool, + VkDescriptorPoolResetFlags flags); + +VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets( + VkDevice device, + const VkDescriptorSetAllocateInfo* pAllocateInfo, + VkDescriptorSet* pDescriptorSets); + +VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets( + VkDevice device, + VkDescriptorPool descriptorPool, + uint32_t descriptorSetCount, + const VkDescriptorSet* pDescriptorSets); + +VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets( + VkDevice device, + uint32_t descriptorWriteCount, + const VkWriteDescriptorSet* pDescriptorWrites, + uint32_t descriptorCopyCount, + const VkCopyDescriptorSet* pDescriptorCopies); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer( + VkDevice device, + const VkFramebufferCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkFramebuffer* pFramebuffer); + +VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer( + VkDevice device, + VkFramebuffer framebuffer, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass( + VkDevice device, + const VkRenderPassCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkRenderPass* pRenderPass); + +VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass( + VkDevice device, + VkRenderPass renderPass, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity( + VkDevice device, + VkRenderPass renderPass, + VkExtent2D* pGranularity); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool( + VkDevice device, + const VkCommandPoolCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkCommandPool* pCommandPool); + +VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool( + VkDevice device, + VkCommandPool commandPool, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool( + VkDevice device, + VkCommandPool commandPool, + VkCommandPoolResetFlags flags); + +VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers( + VkDevice device, + const VkCommandBufferAllocateInfo* pAllocateInfo, + VkCommandBuffer* pCommandBuffers); + +VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers( + VkDevice device, + VkCommandPool commandPool, + uint32_t commandBufferCount, + const VkCommandBuffer* pCommandBuffers); + +VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer( + VkCommandBuffer commandBuffer, + const VkCommandBufferBeginInfo* pBeginInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer( + VkCommandBuffer commandBuffer); + +VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer( + VkCommandBuffer commandBuffer, + VkCommandBufferResetFlags flags); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipeline pipeline); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport( + VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkViewport* pViewports); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor( + VkCommandBuffer commandBuffer, + uint32_t firstScissor, + uint32_t scissorCount, + const VkRect2D* pScissors); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth( + VkCommandBuffer commandBuffer, + float lineWidth); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias( + VkCommandBuffer commandBuffer, + float depthBiasConstantFactor, + float depthBiasClamp, + float depthBiasSlopeFactor); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants( + VkCommandBuffer commandBuffer, + const float blendConstants[4]); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds( + VkCommandBuffer commandBuffer, + float minDepthBounds, + float maxDepthBounds); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask( + VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + uint32_t compareMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask( + VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + uint32_t writeMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference( + VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + uint32_t reference); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t firstSet, + uint32_t descriptorSetCount, + const VkDescriptorSet* pDescriptorSets, + uint32_t dynamicOffsetCount, + const uint32_t* pDynamicOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkIndexType indexType); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdDraw( + VkCommandBuffer commandBuffer, + uint32_t vertexCount, + uint32_t instanceCount, + uint32_t firstVertex, + uint32_t firstInstance); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed( + VkCommandBuffer commandBuffer, + uint32_t indexCount, + uint32_t instanceCount, + uint32_t firstIndex, + int32_t vertexOffset, + uint32_t firstInstance); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDispatch( + VkCommandBuffer commandBuffer, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ); + +VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer( + VkCommandBuffer commandBuffer, + VkBuffer srcBuffer, + VkBuffer dstBuffer, + uint32_t regionCount, + const VkBufferCopy* pRegions); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage( + VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkImageCopy* pRegions); + +VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage( + VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkImageBlit* pRegions, + VkFilter filter); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage( + VkCommandBuffer commandBuffer, + VkBuffer srcBuffer, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkBufferImageCopy* pRegions); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer( + VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkBuffer dstBuffer, + uint32_t regionCount, + const VkBufferImageCopy* pRegions); + +VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer( + VkCommandBuffer commandBuffer, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + VkDeviceSize dataSize, + const void* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer( + VkCommandBuffer commandBuffer, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + VkDeviceSize size, + uint32_t data); + +VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage( + VkCommandBuffer commandBuffer, + VkImage image, + VkImageLayout imageLayout, + const VkClearColorValue* pColor, + uint32_t rangeCount, + const VkImageSubresourceRange* pRanges); + +VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage( + VkCommandBuffer commandBuffer, + VkImage image, + VkImageLayout imageLayout, + const VkClearDepthStencilValue* pDepthStencil, + uint32_t rangeCount, + const VkImageSubresourceRange* pRanges); + +VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments( + VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkClearAttachment* pAttachments, + uint32_t rectCount, + const VkClearRect* pRects); + +VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage( + VkCommandBuffer commandBuffer, + VkImage srcImage, + VkImageLayout srcImageLayout, + VkImage dstImage, + VkImageLayout dstImageLayout, + uint32_t regionCount, + const VkImageResolve* pRegions); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent( + VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags stageMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent( + VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags stageMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents( + VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent* pEvents, + VkPipelineStageFlags srcStageMask, + VkPipelineStageFlags dstStageMask, + uint32_t memoryBarrierCount, + const VkMemoryBarrier* pMemoryBarriers, + uint32_t bufferMemoryBarrierCount, + const VkBufferMemoryBarrier* pBufferMemoryBarriers, + uint32_t imageMemoryBarrierCount, + const VkImageMemoryBarrier* pImageMemoryBarriers); + +VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags srcStageMask, + VkPipelineStageFlags dstStageMask, + VkDependencyFlags dependencyFlags, + uint32_t memoryBarrierCount, + const VkMemoryBarrier* pMemoryBarriers, + uint32_t bufferMemoryBarrierCount, + const VkBufferMemoryBarrier* pBufferMemoryBarriers, + uint32_t imageMemoryBarrierCount, + const VkImageMemoryBarrier* pImageMemoryBarriers); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + VkQueryControlFlags flags); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query); + +VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp( + VkCommandBuffer commandBuffer, + VkPipelineStageFlagBits pipelineStage, + VkQueryPool queryPool, + uint32_t query); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + VkDeviceSize stride, + VkQueryResultFlags flags); + +VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants( + VkCommandBuffer commandBuffer, + VkPipelineLayout layout, + VkShaderStageFlags stageFlags, + uint32_t offset, + uint32_t size, + const void* pValues); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass( + VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo* pRenderPassBegin, + VkSubpassContents contents); + +VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass( + VkCommandBuffer commandBuffer, + VkSubpassContents contents); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass( + VkCommandBuffer commandBuffer); + +VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands( + VkCommandBuffer commandBuffer, + uint32_t commandBufferCount, + const VkCommandBuffer* pCommandBuffers); +#endif + + +// VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls. +#define VK_VERSION_1_1 1 +// Vulkan 1.1 version number +#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0 + +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) +#define VK_MAX_DEVICE_GROUP_SIZE 32U +#define VK_LUID_SIZE 8U +#define VK_QUEUE_FAMILY_EXTERNAL (~1U) + +typedef enum VkPointClippingBehavior { + VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, + VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, + VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, + VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, + VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF +} VkPointClippingBehavior; + +typedef enum VkTessellationDomainOrigin { + VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0, + VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1, + VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, + VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, + VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF +} VkTessellationDomainOrigin; + +typedef enum VkSamplerYcbcrModelConversion { + VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, + VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF +} VkSamplerYcbcrModelConversion; + +typedef enum VkSamplerYcbcrRange { + VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0, + VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1, + VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, + VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, + VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF +} VkSamplerYcbcrRange; + +typedef enum VkChromaLocation { + VK_CHROMA_LOCATION_COSITED_EVEN = 0, + VK_CHROMA_LOCATION_MIDPOINT = 1, + VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN, + VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT, + VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF +} VkChromaLocation; + +typedef enum VkDescriptorUpdateTemplateType { + VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0, + VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, + VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, + VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkDescriptorUpdateTemplateType; + +typedef enum VkSubgroupFeatureFlagBits { + VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, + VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, + VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004, + VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008, + VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010, + VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020, + VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040, + VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080, + VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100, + VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = 0x00000200, + VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = 0x00000400, + VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSubgroupFeatureFlagBits; +typedef VkFlags VkSubgroupFeatureFlags; + +typedef enum VkPeerMemoryFeatureFlagBits { + VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001, + VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002, + VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004, + VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008, + VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT, + VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT, + VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT, + VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT, + VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPeerMemoryFeatureFlagBits; +typedef VkFlags VkPeerMemoryFeatureFlags; + +typedef enum VkMemoryAllocateFlagBits { + VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001, + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002, + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004, + VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT, + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, + VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkMemoryAllocateFlagBits; +typedef VkFlags VkMemoryAllocateFlags; +typedef VkFlags VkCommandPoolTrimFlags; +typedef VkFlags VkDescriptorUpdateTemplateCreateFlags; + +typedef enum VkExternalMemoryHandleTypeFlagBits { + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkExternalMemoryHandleTypeFlagBits; +typedef VkFlags VkExternalMemoryHandleTypeFlags; + +typedef enum VkExternalMemoryFeatureFlagBits { + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001, + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002, + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004, + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT, + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT, + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT, + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkExternalMemoryFeatureFlagBits; +typedef VkFlags VkExternalMemoryFeatureFlags; + +typedef enum VkExternalFenceHandleTypeFlagBits { + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, + VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008, + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT, + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, + VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT, + VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkExternalFenceHandleTypeFlagBits; +typedef VkFlags VkExternalFenceHandleTypeFlags; + +typedef enum VkExternalFenceFeatureFlagBits { + VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001, + VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002, + VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT, + VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT, + VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkExternalFenceFeatureFlagBits; +typedef VkFlags VkExternalFenceFeatureFlags; + +typedef enum VkFenceImportFlagBits { + VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001, + VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT, + VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkFenceImportFlagBits; +typedef VkFlags VkFenceImportFlags; + +typedef enum VkSemaphoreImportFlagBits { + VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001, + VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, + VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSemaphoreImportFlagBits; +typedef VkFlags VkSemaphoreImportFlags; + +typedef enum VkExternalSemaphoreHandleTypeFlagBits { + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT, + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkExternalSemaphoreHandleTypeFlagBits; +typedef VkFlags VkExternalSemaphoreHandleTypeFlags; + +typedef enum VkExternalSemaphoreFeatureFlagBits { + VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001, + VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002, + VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT, + VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT, + VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkExternalSemaphoreFeatureFlagBits; +typedef VkFlags VkExternalSemaphoreFeatureFlags; +typedef struct VkPhysicalDeviceSubgroupProperties { + VkStructureType sType; + void* pNext; + uint32_t subgroupSize; + VkShaderStageFlags supportedStages; + VkSubgroupFeatureFlags supportedOperations; + VkBool32 quadOperationsInAllStages; +} VkPhysicalDeviceSubgroupProperties; + +typedef struct VkBindBufferMemoryInfo { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; +} VkBindBufferMemoryInfo; + +typedef struct VkBindImageMemoryInfo { + VkStructureType sType; + const void* pNext; + VkImage image; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; +} VkBindImageMemoryInfo; + +typedef struct VkPhysicalDevice16BitStorageFeatures { + VkStructureType sType; + void* pNext; + VkBool32 storageBuffer16BitAccess; + VkBool32 uniformAndStorageBuffer16BitAccess; + VkBool32 storagePushConstant16; + VkBool32 storageInputOutput16; +} VkPhysicalDevice16BitStorageFeatures; + +typedef struct VkMemoryDedicatedRequirements { + VkStructureType sType; + void* pNext; + VkBool32 prefersDedicatedAllocation; + VkBool32 requiresDedicatedAllocation; +} VkMemoryDedicatedRequirements; + +typedef struct VkMemoryDedicatedAllocateInfo { + VkStructureType sType; + const void* pNext; + VkImage image; + VkBuffer buffer; +} VkMemoryDedicatedAllocateInfo; + +typedef struct VkMemoryAllocateFlagsInfo { + VkStructureType sType; + const void* pNext; + VkMemoryAllocateFlags flags; + uint32_t deviceMask; +} VkMemoryAllocateFlagsInfo; + +typedef struct VkDeviceGroupRenderPassBeginInfo { + VkStructureType sType; + const void* pNext; + uint32_t deviceMask; + uint32_t deviceRenderAreaCount; + const VkRect2D* pDeviceRenderAreas; +} VkDeviceGroupRenderPassBeginInfo; + +typedef struct VkDeviceGroupCommandBufferBeginInfo { + VkStructureType sType; + const void* pNext; + uint32_t deviceMask; +} VkDeviceGroupCommandBufferBeginInfo; + +typedef struct VkDeviceGroupSubmitInfo { + VkStructureType sType; + const void* pNext; + uint32_t waitSemaphoreCount; + const uint32_t* pWaitSemaphoreDeviceIndices; + uint32_t commandBufferCount; + const uint32_t* pCommandBufferDeviceMasks; + uint32_t signalSemaphoreCount; + const uint32_t* pSignalSemaphoreDeviceIndices; +} VkDeviceGroupSubmitInfo; + +typedef struct VkDeviceGroupBindSparseInfo { + VkStructureType sType; + const void* pNext; + uint32_t resourceDeviceIndex; + uint32_t memoryDeviceIndex; +} VkDeviceGroupBindSparseInfo; + +typedef struct VkBindBufferMemoryDeviceGroupInfo { + VkStructureType sType; + const void* pNext; + uint32_t deviceIndexCount; + const uint32_t* pDeviceIndices; +} VkBindBufferMemoryDeviceGroupInfo; + +typedef struct VkBindImageMemoryDeviceGroupInfo { + VkStructureType sType; + const void* pNext; + uint32_t deviceIndexCount; + const uint32_t* pDeviceIndices; + uint32_t splitInstanceBindRegionCount; + const VkRect2D* pSplitInstanceBindRegions; +} VkBindImageMemoryDeviceGroupInfo; + +typedef struct VkPhysicalDeviceGroupProperties { + VkStructureType sType; + void* pNext; + uint32_t physicalDeviceCount; + VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE]; + VkBool32 subsetAllocation; +} VkPhysicalDeviceGroupProperties; + +typedef struct VkDeviceGroupDeviceCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t physicalDeviceCount; + const VkPhysicalDevice* pPhysicalDevices; +} VkDeviceGroupDeviceCreateInfo; + +typedef struct VkBufferMemoryRequirementsInfo2 { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; +} VkBufferMemoryRequirementsInfo2; + +typedef struct VkImageMemoryRequirementsInfo2 { + VkStructureType sType; + const void* pNext; + VkImage image; +} VkImageMemoryRequirementsInfo2; + +typedef struct VkImageSparseMemoryRequirementsInfo2 { + VkStructureType sType; + const void* pNext; + VkImage image; +} VkImageSparseMemoryRequirementsInfo2; + +typedef struct VkMemoryRequirements2 { + VkStructureType sType; + void* pNext; + VkMemoryRequirements memoryRequirements; +} VkMemoryRequirements2; + +typedef struct VkSparseImageMemoryRequirements2 { + VkStructureType sType; + void* pNext; + VkSparseImageMemoryRequirements memoryRequirements; +} VkSparseImageMemoryRequirements2; + +typedef struct VkPhysicalDeviceFeatures2 { + VkStructureType sType; + void* pNext; + VkPhysicalDeviceFeatures features; +} VkPhysicalDeviceFeatures2; + +typedef struct VkPhysicalDeviceProperties2 { + VkStructureType sType; + void* pNext; + VkPhysicalDeviceProperties properties; +} VkPhysicalDeviceProperties2; + +typedef struct VkFormatProperties2 { + VkStructureType sType; + void* pNext; + VkFormatProperties formatProperties; +} VkFormatProperties2; + +typedef struct VkImageFormatProperties2 { + VkStructureType sType; + void* pNext; + VkImageFormatProperties imageFormatProperties; +} VkImageFormatProperties2; + +typedef struct VkPhysicalDeviceImageFormatInfo2 { + VkStructureType sType; + const void* pNext; + VkFormat format; + VkImageType type; + VkImageTiling tiling; + VkImageUsageFlags usage; + VkImageCreateFlags flags; +} VkPhysicalDeviceImageFormatInfo2; + +typedef struct VkQueueFamilyProperties2 { + VkStructureType sType; + void* pNext; + VkQueueFamilyProperties queueFamilyProperties; +} VkQueueFamilyProperties2; + +typedef struct VkPhysicalDeviceMemoryProperties2 { + VkStructureType sType; + void* pNext; + VkPhysicalDeviceMemoryProperties memoryProperties; +} VkPhysicalDeviceMemoryProperties2; + +typedef struct VkSparseImageFormatProperties2 { + VkStructureType sType; + void* pNext; + VkSparseImageFormatProperties properties; +} VkSparseImageFormatProperties2; + +typedef struct VkPhysicalDeviceSparseImageFormatInfo2 { + VkStructureType sType; + const void* pNext; + VkFormat format; + VkImageType type; + VkSampleCountFlagBits samples; + VkImageUsageFlags usage; + VkImageTiling tiling; +} VkPhysicalDeviceSparseImageFormatInfo2; + +typedef struct VkPhysicalDevicePointClippingProperties { + VkStructureType sType; + void* pNext; + VkPointClippingBehavior pointClippingBehavior; +} VkPhysicalDevicePointClippingProperties; + +typedef struct VkInputAttachmentAspectReference { + uint32_t subpass; + uint32_t inputAttachmentIndex; + VkImageAspectFlags aspectMask; +} VkInputAttachmentAspectReference; + +typedef struct VkRenderPassInputAttachmentAspectCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t aspectReferenceCount; + const VkInputAttachmentAspectReference* pAspectReferences; +} VkRenderPassInputAttachmentAspectCreateInfo; + +typedef struct VkImageViewUsageCreateInfo { + VkStructureType sType; + const void* pNext; + VkImageUsageFlags usage; +} VkImageViewUsageCreateInfo; + +typedef struct VkPipelineTessellationDomainOriginStateCreateInfo { + VkStructureType sType; + const void* pNext; + VkTessellationDomainOrigin domainOrigin; +} VkPipelineTessellationDomainOriginStateCreateInfo; + +typedef struct VkRenderPassMultiviewCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t subpassCount; + const uint32_t* pViewMasks; + uint32_t dependencyCount; + const int32_t* pViewOffsets; + uint32_t correlationMaskCount; + const uint32_t* pCorrelationMasks; +} VkRenderPassMultiviewCreateInfo; + +typedef struct VkPhysicalDeviceMultiviewFeatures { + VkStructureType sType; + void* pNext; + VkBool32 multiview; + VkBool32 multiviewGeometryShader; + VkBool32 multiviewTessellationShader; +} VkPhysicalDeviceMultiviewFeatures; + +typedef struct VkPhysicalDeviceMultiviewProperties { + VkStructureType sType; + void* pNext; + uint32_t maxMultiviewViewCount; + uint32_t maxMultiviewInstanceIndex; +} VkPhysicalDeviceMultiviewProperties; + +typedef struct VkPhysicalDeviceVariablePointersFeatures { + VkStructureType sType; + void* pNext; + VkBool32 variablePointersStorageBuffer; + VkBool32 variablePointers; +} VkPhysicalDeviceVariablePointersFeatures; + +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures; + +typedef struct VkPhysicalDeviceProtectedMemoryFeatures { + VkStructureType sType; + void* pNext; + VkBool32 protectedMemory; +} VkPhysicalDeviceProtectedMemoryFeatures; + +typedef struct VkPhysicalDeviceProtectedMemoryProperties { + VkStructureType sType; + void* pNext; + VkBool32 protectedNoFault; +} VkPhysicalDeviceProtectedMemoryProperties; + +typedef struct VkDeviceQueueInfo2 { + VkStructureType sType; + const void* pNext; + VkDeviceQueueCreateFlags flags; + uint32_t queueFamilyIndex; + uint32_t queueIndex; +} VkDeviceQueueInfo2; + +typedef struct VkProtectedSubmitInfo { + VkStructureType sType; + const void* pNext; + VkBool32 protectedSubmit; +} VkProtectedSubmitInfo; + +typedef struct VkSamplerYcbcrConversionCreateInfo { + VkStructureType sType; + const void* pNext; + VkFormat format; + VkSamplerYcbcrModelConversion ycbcrModel; + VkSamplerYcbcrRange ycbcrRange; + VkComponentMapping components; + VkChromaLocation xChromaOffset; + VkChromaLocation yChromaOffset; + VkFilter chromaFilter; + VkBool32 forceExplicitReconstruction; +} VkSamplerYcbcrConversionCreateInfo; + +typedef struct VkSamplerYcbcrConversionInfo { + VkStructureType sType; + const void* pNext; + VkSamplerYcbcrConversion conversion; +} VkSamplerYcbcrConversionInfo; + +typedef struct VkBindImagePlaneMemoryInfo { + VkStructureType sType; + const void* pNext; + VkImageAspectFlagBits planeAspect; +} VkBindImagePlaneMemoryInfo; + +typedef struct VkImagePlaneMemoryRequirementsInfo { + VkStructureType sType; + const void* pNext; + VkImageAspectFlagBits planeAspect; +} VkImagePlaneMemoryRequirementsInfo; + +typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures { + VkStructureType sType; + void* pNext; + VkBool32 samplerYcbcrConversion; +} VkPhysicalDeviceSamplerYcbcrConversionFeatures; + +typedef struct VkSamplerYcbcrConversionImageFormatProperties { + VkStructureType sType; + void* pNext; + uint32_t combinedImageSamplerDescriptorCount; +} VkSamplerYcbcrConversionImageFormatProperties; + +typedef struct VkDescriptorUpdateTemplateEntry { + uint32_t dstBinding; + uint32_t dstArrayElement; + uint32_t descriptorCount; + VkDescriptorType descriptorType; + size_t offset; + size_t stride; +} VkDescriptorUpdateTemplateEntry; + +typedef struct VkDescriptorUpdateTemplateCreateInfo { + VkStructureType sType; + const void* pNext; + VkDescriptorUpdateTemplateCreateFlags flags; + uint32_t descriptorUpdateEntryCount; + const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries; + VkDescriptorUpdateTemplateType templateType; + VkDescriptorSetLayout descriptorSetLayout; + VkPipelineBindPoint pipelineBindPoint; + VkPipelineLayout pipelineLayout; + uint32_t set; +} VkDescriptorUpdateTemplateCreateInfo; + +typedef struct VkExternalMemoryProperties { + VkExternalMemoryFeatureFlags externalMemoryFeatures; + VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes; + VkExternalMemoryHandleTypeFlags compatibleHandleTypes; +} VkExternalMemoryProperties; + +typedef struct VkPhysicalDeviceExternalImageFormatInfo { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkPhysicalDeviceExternalImageFormatInfo; + +typedef struct VkExternalImageFormatProperties { + VkStructureType sType; + void* pNext; + VkExternalMemoryProperties externalMemoryProperties; +} VkExternalImageFormatProperties; + +typedef struct VkPhysicalDeviceExternalBufferInfo { + VkStructureType sType; + const void* pNext; + VkBufferCreateFlags flags; + VkBufferUsageFlags usage; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkPhysicalDeviceExternalBufferInfo; + +typedef struct VkExternalBufferProperties { + VkStructureType sType; + void* pNext; + VkExternalMemoryProperties externalMemoryProperties; +} VkExternalBufferProperties; + +typedef struct VkPhysicalDeviceIDProperties { + VkStructureType sType; + void* pNext; + uint8_t deviceUUID[VK_UUID_SIZE]; + uint8_t driverUUID[VK_UUID_SIZE]; + uint8_t deviceLUID[VK_LUID_SIZE]; + uint32_t deviceNodeMask; + VkBool32 deviceLUIDValid; +} VkPhysicalDeviceIDProperties; + +typedef struct VkExternalMemoryImageCreateInfo { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlags handleTypes; +} VkExternalMemoryImageCreateInfo; + +typedef struct VkExternalMemoryBufferCreateInfo { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlags handleTypes; +} VkExternalMemoryBufferCreateInfo; + +typedef struct VkExportMemoryAllocateInfo { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlags handleTypes; +} VkExportMemoryAllocateInfo; + +typedef struct VkPhysicalDeviceExternalFenceInfo { + VkStructureType sType; + const void* pNext; + VkExternalFenceHandleTypeFlagBits handleType; +} VkPhysicalDeviceExternalFenceInfo; + +typedef struct VkExternalFenceProperties { + VkStructureType sType; + void* pNext; + VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes; + VkExternalFenceHandleTypeFlags compatibleHandleTypes; + VkExternalFenceFeatureFlags externalFenceFeatures; +} VkExternalFenceProperties; + +typedef struct VkExportFenceCreateInfo { + VkStructureType sType; + const void* pNext; + VkExternalFenceHandleTypeFlags handleTypes; +} VkExportFenceCreateInfo; + +typedef struct VkExportSemaphoreCreateInfo { + VkStructureType sType; + const void* pNext; + VkExternalSemaphoreHandleTypeFlags handleTypes; +} VkExportSemaphoreCreateInfo; + +typedef struct VkPhysicalDeviceExternalSemaphoreInfo { + VkStructureType sType; + const void* pNext; + VkExternalSemaphoreHandleTypeFlagBits handleType; +} VkPhysicalDeviceExternalSemaphoreInfo; + +typedef struct VkExternalSemaphoreProperties { + VkStructureType sType; + void* pNext; + VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes; + VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes; + VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures; +} VkExternalSemaphoreProperties; + +typedef struct VkPhysicalDeviceMaintenance3Properties { + VkStructureType sType; + void* pNext; + uint32_t maxPerSetDescriptors; + VkDeviceSize maxMemoryAllocationSize; +} VkPhysicalDeviceMaintenance3Properties; + +typedef struct VkDescriptorSetLayoutSupport { + VkStructureType sType; + void* pNext; + VkBool32 supported; +} VkDescriptorSetLayoutSupport; + +typedef struct VkPhysicalDeviceShaderDrawParametersFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderDrawParameters; +} VkPhysicalDeviceShaderDrawParametersFeatures; + +typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures; + +typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion); +typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); +typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); +typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); +typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask); +typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); +typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); +typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); +typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); +typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue); +typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); +typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); +typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion( + uint32_t* pApiVersion); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2( + VkDevice device, + uint32_t bindInfoCount, + const VkBindBufferMemoryInfo* pBindInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2( + VkDevice device, + uint32_t bindInfoCount, + const VkBindImageMemoryInfo* pBindInfos); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures( + VkDevice device, + uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask( + VkCommandBuffer commandBuffer, + uint32_t deviceMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase( + VkCommandBuffer commandBuffer, + uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ); + +VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups( + VkInstance instance, + uint32_t* pPhysicalDeviceGroupCount, + VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2( + VkDevice device, + const VkImageMemoryRequirementsInfo2* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2( + VkDevice device, + const VkBufferMemoryRequirementsInfo2* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2( + VkDevice device, + const VkImageSparseMemoryRequirementsInfo2* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures2* pFeatures); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceProperties2* pProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2( + VkPhysicalDevice physicalDevice, + VkFormat format, + VkFormatProperties2* pFormatProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, + VkImageFormatProperties2* pImageFormatProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2( + VkPhysicalDevice physicalDevice, + uint32_t* pQueueFamilyPropertyCount, + VkQueueFamilyProperties2* pQueueFamilyProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceMemoryProperties2* pMemoryProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, + uint32_t* pPropertyCount, + VkSparseImageFormatProperties2* pProperties); + +VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool( + VkDevice device, + VkCommandPool commandPool, + VkCommandPoolTrimFlags flags); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2( + VkDevice device, + const VkDeviceQueueInfo2* pQueueInfo, + VkQueue* pQueue); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion( + VkDevice device, + const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSamplerYcbcrConversion* pYcbcrConversion); + +VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion( + VkDevice device, + VkSamplerYcbcrConversion ycbcrConversion, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate( + VkDevice device, + const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate( + VkDevice device, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate( + VkDevice device, + VkDescriptorSet descriptorSet, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const void* pData); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, + VkExternalBufferProperties* pExternalBufferProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, + VkExternalFenceProperties* pExternalFenceProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, + VkExternalSemaphoreProperties* pExternalSemaphoreProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport( + VkDevice device, + const VkDescriptorSetLayoutCreateInfo* pCreateInfo, + VkDescriptorSetLayoutSupport* pSupport); +#endif + + +// VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls. +#define VK_VERSION_1_2 1 +// Vulkan 1.2 version number +#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0 + +#define VK_MAX_DRIVER_NAME_SIZE 256U +#define VK_MAX_DRIVER_INFO_SIZE 256U + +typedef enum VkDriverId { + VK_DRIVER_ID_AMD_PROPRIETARY = 1, + VK_DRIVER_ID_AMD_OPEN_SOURCE = 2, + VK_DRIVER_ID_MESA_RADV = 3, + VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4, + VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5, + VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6, + VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7, + VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8, + VK_DRIVER_ID_ARM_PROPRIETARY = 9, + VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10, + VK_DRIVER_ID_GGP_PROPRIETARY = 11, + VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12, + VK_DRIVER_ID_MESA_LLVMPIPE = 13, + VK_DRIVER_ID_MOLTENVK = 14, + VK_DRIVER_ID_COREAVI_PROPRIETARY = 15, + VK_DRIVER_ID_JUICE_PROPRIETARY = 16, + VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17, + VK_DRIVER_ID_MESA_TURNIP = 18, + VK_DRIVER_ID_MESA_V3DV = 19, + VK_DRIVER_ID_MESA_PANVK = 20, + VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21, + VK_DRIVER_ID_MESA_VENUS = 22, + VK_DRIVER_ID_MESA_DOZEN = 23, + VK_DRIVER_ID_MESA_NVK = 24, + VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25, + VK_DRIVER_ID_MESA_AGXV = 26, + VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY, + VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE, + VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV, + VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY, + VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, + VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA, + VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY, + VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY, + VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY, + VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER, + VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY, + VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY, + VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF +} VkDriverId; + +typedef enum VkShaderFloatControlsIndependence { + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, + VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF +} VkShaderFloatControlsIndependence; + +typedef enum VkSamplerReductionMode { + VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0, + VK_SAMPLER_REDUCTION_MODE_MIN = 1, + VK_SAMPLER_REDUCTION_MODE_MAX = 2, + VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000, + VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, + VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN, + VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX, + VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF +} VkSamplerReductionMode; + +typedef enum VkSemaphoreType { + VK_SEMAPHORE_TYPE_BINARY = 0, + VK_SEMAPHORE_TYPE_TIMELINE = 1, + VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY, + VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE, + VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF +} VkSemaphoreType; + +typedef enum VkResolveModeFlagBits { + VK_RESOLVE_MODE_NONE = 0, + VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001, + VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002, + VK_RESOLVE_MODE_MIN_BIT = 0x00000004, + VK_RESOLVE_MODE_MAX_BIT = 0x00000008, + VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010, + VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE, + VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, + VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT, + VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT, + VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT, + VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkResolveModeFlagBits; +typedef VkFlags VkResolveModeFlags; + +typedef enum VkDescriptorBindingFlagBits { + VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001, + VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002, + VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004, + VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008, + VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, + VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, + VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT, + VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, + VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkDescriptorBindingFlagBits; +typedef VkFlags VkDescriptorBindingFlags; + +typedef enum VkSemaphoreWaitFlagBits { + VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001, + VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT, + VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSemaphoreWaitFlagBits; +typedef VkFlags VkSemaphoreWaitFlags; +typedef struct VkPhysicalDeviceVulkan11Features { + VkStructureType sType; + void* pNext; + VkBool32 storageBuffer16BitAccess; + VkBool32 uniformAndStorageBuffer16BitAccess; + VkBool32 storagePushConstant16; + VkBool32 storageInputOutput16; + VkBool32 multiview; + VkBool32 multiviewGeometryShader; + VkBool32 multiviewTessellationShader; + VkBool32 variablePointersStorageBuffer; + VkBool32 variablePointers; + VkBool32 protectedMemory; + VkBool32 samplerYcbcrConversion; + VkBool32 shaderDrawParameters; +} VkPhysicalDeviceVulkan11Features; + +typedef struct VkPhysicalDeviceVulkan11Properties { + VkStructureType sType; + void* pNext; + uint8_t deviceUUID[VK_UUID_SIZE]; + uint8_t driverUUID[VK_UUID_SIZE]; + uint8_t deviceLUID[VK_LUID_SIZE]; + uint32_t deviceNodeMask; + VkBool32 deviceLUIDValid; + uint32_t subgroupSize; + VkShaderStageFlags subgroupSupportedStages; + VkSubgroupFeatureFlags subgroupSupportedOperations; + VkBool32 subgroupQuadOperationsInAllStages; + VkPointClippingBehavior pointClippingBehavior; + uint32_t maxMultiviewViewCount; + uint32_t maxMultiviewInstanceIndex; + VkBool32 protectedNoFault; + uint32_t maxPerSetDescriptors; + VkDeviceSize maxMemoryAllocationSize; +} VkPhysicalDeviceVulkan11Properties; + +typedef struct VkPhysicalDeviceVulkan12Features { + VkStructureType sType; + void* pNext; + VkBool32 samplerMirrorClampToEdge; + VkBool32 drawIndirectCount; + VkBool32 storageBuffer8BitAccess; + VkBool32 uniformAndStorageBuffer8BitAccess; + VkBool32 storagePushConstant8; + VkBool32 shaderBufferInt64Atomics; + VkBool32 shaderSharedInt64Atomics; + VkBool32 shaderFloat16; + VkBool32 shaderInt8; + VkBool32 descriptorIndexing; + VkBool32 shaderInputAttachmentArrayDynamicIndexing; + VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; + VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; + VkBool32 shaderUniformBufferArrayNonUniformIndexing; + VkBool32 shaderSampledImageArrayNonUniformIndexing; + VkBool32 shaderStorageBufferArrayNonUniformIndexing; + VkBool32 shaderStorageImageArrayNonUniformIndexing; + VkBool32 shaderInputAttachmentArrayNonUniformIndexing; + VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; + VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; + VkBool32 descriptorBindingUniformBufferUpdateAfterBind; + VkBool32 descriptorBindingSampledImageUpdateAfterBind; + VkBool32 descriptorBindingStorageImageUpdateAfterBind; + VkBool32 descriptorBindingStorageBufferUpdateAfterBind; + VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingUpdateUnusedWhilePending; + VkBool32 descriptorBindingPartiallyBound; + VkBool32 descriptorBindingVariableDescriptorCount; + VkBool32 runtimeDescriptorArray; + VkBool32 samplerFilterMinmax; + VkBool32 scalarBlockLayout; + VkBool32 imagelessFramebuffer; + VkBool32 uniformBufferStandardLayout; + VkBool32 shaderSubgroupExtendedTypes; + VkBool32 separateDepthStencilLayouts; + VkBool32 hostQueryReset; + VkBool32 timelineSemaphore; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; + VkBool32 vulkanMemoryModel; + VkBool32 vulkanMemoryModelDeviceScope; + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; + VkBool32 shaderOutputViewportIndex; + VkBool32 shaderOutputLayer; + VkBool32 subgroupBroadcastDynamicId; +} VkPhysicalDeviceVulkan12Features; + +typedef struct VkConformanceVersion { + uint8_t major; + uint8_t minor; + uint8_t subminor; + uint8_t patch; +} VkConformanceVersion; + +typedef struct VkPhysicalDeviceVulkan12Properties { + VkStructureType sType; + void* pNext; + VkDriverId driverID; + char driverName[VK_MAX_DRIVER_NAME_SIZE]; + char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; + VkConformanceVersion conformanceVersion; + VkShaderFloatControlsIndependence denormBehaviorIndependence; + VkShaderFloatControlsIndependence roundingModeIndependence; + VkBool32 shaderSignedZeroInfNanPreserveFloat16; + VkBool32 shaderSignedZeroInfNanPreserveFloat32; + VkBool32 shaderSignedZeroInfNanPreserveFloat64; + VkBool32 shaderDenormPreserveFloat16; + VkBool32 shaderDenormPreserveFloat32; + VkBool32 shaderDenormPreserveFloat64; + VkBool32 shaderDenormFlushToZeroFloat16; + VkBool32 shaderDenormFlushToZeroFloat32; + VkBool32 shaderDenormFlushToZeroFloat64; + VkBool32 shaderRoundingModeRTEFloat16; + VkBool32 shaderRoundingModeRTEFloat32; + VkBool32 shaderRoundingModeRTEFloat64; + VkBool32 shaderRoundingModeRTZFloat16; + VkBool32 shaderRoundingModeRTZFloat32; + VkBool32 shaderRoundingModeRTZFloat64; + uint32_t maxUpdateAfterBindDescriptorsInAllPools; + VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; + VkBool32 shaderSampledImageArrayNonUniformIndexingNative; + VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; + VkBool32 shaderStorageImageArrayNonUniformIndexingNative; + VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; + VkBool32 robustBufferAccessUpdateAfterBind; + VkBool32 quadDivergentImplicitLod; + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; + uint32_t maxPerStageUpdateAfterBindResources; + uint32_t maxDescriptorSetUpdateAfterBindSamplers; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; + uint32_t maxDescriptorSetUpdateAfterBindSampledImages; + uint32_t maxDescriptorSetUpdateAfterBindStorageImages; + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; + VkResolveModeFlags supportedDepthResolveModes; + VkResolveModeFlags supportedStencilResolveModes; + VkBool32 independentResolveNone; + VkBool32 independentResolve; + VkBool32 filterMinmaxSingleComponentFormats; + VkBool32 filterMinmaxImageComponentMapping; + uint64_t maxTimelineSemaphoreValueDifference; + VkSampleCountFlags framebufferIntegerColorSampleCounts; +} VkPhysicalDeviceVulkan12Properties; + +typedef struct VkImageFormatListCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t viewFormatCount; + const VkFormat* pViewFormats; +} VkImageFormatListCreateInfo; + +typedef struct VkAttachmentDescription2 { + VkStructureType sType; + const void* pNext; + VkAttachmentDescriptionFlags flags; + VkFormat format; + VkSampleCountFlagBits samples; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkAttachmentLoadOp stencilLoadOp; + VkAttachmentStoreOp stencilStoreOp; + VkImageLayout initialLayout; + VkImageLayout finalLayout; +} VkAttachmentDescription2; + +typedef struct VkAttachmentReference2 { + VkStructureType sType; + const void* pNext; + uint32_t attachment; + VkImageLayout layout; + VkImageAspectFlags aspectMask; +} VkAttachmentReference2; + +typedef struct VkSubpassDescription2 { + VkStructureType sType; + const void* pNext; + VkSubpassDescriptionFlags flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t viewMask; + uint32_t inputAttachmentCount; + const VkAttachmentReference2* pInputAttachments; + uint32_t colorAttachmentCount; + const VkAttachmentReference2* pColorAttachments; + const VkAttachmentReference2* pResolveAttachments; + const VkAttachmentReference2* pDepthStencilAttachment; + uint32_t preserveAttachmentCount; + const uint32_t* pPreserveAttachments; +} VkSubpassDescription2; + +typedef struct VkSubpassDependency2 { + VkStructureType sType; + const void* pNext; + uint32_t srcSubpass; + uint32_t dstSubpass; + VkPipelineStageFlags srcStageMask; + VkPipelineStageFlags dstStageMask; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkDependencyFlags dependencyFlags; + int32_t viewOffset; +} VkSubpassDependency2; + +typedef struct VkRenderPassCreateInfo2 { + VkStructureType sType; + const void* pNext; + VkRenderPassCreateFlags flags; + uint32_t attachmentCount; + const VkAttachmentDescription2* pAttachments; + uint32_t subpassCount; + const VkSubpassDescription2* pSubpasses; + uint32_t dependencyCount; + const VkSubpassDependency2* pDependencies; + uint32_t correlatedViewMaskCount; + const uint32_t* pCorrelatedViewMasks; +} VkRenderPassCreateInfo2; + +typedef struct VkSubpassBeginInfo { + VkStructureType sType; + const void* pNext; + VkSubpassContents contents; +} VkSubpassBeginInfo; + +typedef struct VkSubpassEndInfo { + VkStructureType sType; + const void* pNext; +} VkSubpassEndInfo; + +typedef struct VkPhysicalDevice8BitStorageFeatures { + VkStructureType sType; + void* pNext; + VkBool32 storageBuffer8BitAccess; + VkBool32 uniformAndStorageBuffer8BitAccess; + VkBool32 storagePushConstant8; +} VkPhysicalDevice8BitStorageFeatures; + +typedef struct VkPhysicalDeviceDriverProperties { + VkStructureType sType; + void* pNext; + VkDriverId driverID; + char driverName[VK_MAX_DRIVER_NAME_SIZE]; + char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; + VkConformanceVersion conformanceVersion; +} VkPhysicalDeviceDriverProperties; + +typedef struct VkPhysicalDeviceShaderAtomicInt64Features { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferInt64Atomics; + VkBool32 shaderSharedInt64Atomics; +} VkPhysicalDeviceShaderAtomicInt64Features; + +typedef struct VkPhysicalDeviceShaderFloat16Int8Features { + VkStructureType sType; + void* pNext; + VkBool32 shaderFloat16; + VkBool32 shaderInt8; +} VkPhysicalDeviceShaderFloat16Int8Features; + +typedef struct VkPhysicalDeviceFloatControlsProperties { + VkStructureType sType; + void* pNext; + VkShaderFloatControlsIndependence denormBehaviorIndependence; + VkShaderFloatControlsIndependence roundingModeIndependence; + VkBool32 shaderSignedZeroInfNanPreserveFloat16; + VkBool32 shaderSignedZeroInfNanPreserveFloat32; + VkBool32 shaderSignedZeroInfNanPreserveFloat64; + VkBool32 shaderDenormPreserveFloat16; + VkBool32 shaderDenormPreserveFloat32; + VkBool32 shaderDenormPreserveFloat64; + VkBool32 shaderDenormFlushToZeroFloat16; + VkBool32 shaderDenormFlushToZeroFloat32; + VkBool32 shaderDenormFlushToZeroFloat64; + VkBool32 shaderRoundingModeRTEFloat16; + VkBool32 shaderRoundingModeRTEFloat32; + VkBool32 shaderRoundingModeRTEFloat64; + VkBool32 shaderRoundingModeRTZFloat16; + VkBool32 shaderRoundingModeRTZFloat32; + VkBool32 shaderRoundingModeRTZFloat64; +} VkPhysicalDeviceFloatControlsProperties; + +typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t bindingCount; + const VkDescriptorBindingFlags* pBindingFlags; +} VkDescriptorSetLayoutBindingFlagsCreateInfo; + +typedef struct VkPhysicalDeviceDescriptorIndexingFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderInputAttachmentArrayDynamicIndexing; + VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; + VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; + VkBool32 shaderUniformBufferArrayNonUniformIndexing; + VkBool32 shaderSampledImageArrayNonUniformIndexing; + VkBool32 shaderStorageBufferArrayNonUniformIndexing; + VkBool32 shaderStorageImageArrayNonUniformIndexing; + VkBool32 shaderInputAttachmentArrayNonUniformIndexing; + VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; + VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; + VkBool32 descriptorBindingUniformBufferUpdateAfterBind; + VkBool32 descriptorBindingSampledImageUpdateAfterBind; + VkBool32 descriptorBindingStorageImageUpdateAfterBind; + VkBool32 descriptorBindingStorageBufferUpdateAfterBind; + VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; + VkBool32 descriptorBindingUpdateUnusedWhilePending; + VkBool32 descriptorBindingPartiallyBound; + VkBool32 descriptorBindingVariableDescriptorCount; + VkBool32 runtimeDescriptorArray; +} VkPhysicalDeviceDescriptorIndexingFeatures; + +typedef struct VkPhysicalDeviceDescriptorIndexingProperties { + VkStructureType sType; + void* pNext; + uint32_t maxUpdateAfterBindDescriptorsInAllPools; + VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; + VkBool32 shaderSampledImageArrayNonUniformIndexingNative; + VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; + VkBool32 shaderStorageImageArrayNonUniformIndexingNative; + VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; + VkBool32 robustBufferAccessUpdateAfterBind; + VkBool32 quadDivergentImplicitLod; + uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; + uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; + uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; + uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; + uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; + uint32_t maxPerStageUpdateAfterBindResources; + uint32_t maxDescriptorSetUpdateAfterBindSamplers; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; + uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; + uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; + uint32_t maxDescriptorSetUpdateAfterBindSampledImages; + uint32_t maxDescriptorSetUpdateAfterBindStorageImages; + uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; +} VkPhysicalDeviceDescriptorIndexingProperties; + +typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo { + VkStructureType sType; + const void* pNext; + uint32_t descriptorSetCount; + const uint32_t* pDescriptorCounts; +} VkDescriptorSetVariableDescriptorCountAllocateInfo; + +typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport { + VkStructureType sType; + void* pNext; + uint32_t maxVariableDescriptorCount; +} VkDescriptorSetVariableDescriptorCountLayoutSupport; + +typedef struct VkSubpassDescriptionDepthStencilResolve { + VkStructureType sType; + const void* pNext; + VkResolveModeFlagBits depthResolveMode; + VkResolveModeFlagBits stencilResolveMode; + const VkAttachmentReference2* pDepthStencilResolveAttachment; +} VkSubpassDescriptionDepthStencilResolve; + +typedef struct VkPhysicalDeviceDepthStencilResolveProperties { + VkStructureType sType; + void* pNext; + VkResolveModeFlags supportedDepthResolveModes; + VkResolveModeFlags supportedStencilResolveModes; + VkBool32 independentResolveNone; + VkBool32 independentResolve; +} VkPhysicalDeviceDepthStencilResolveProperties; + +typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures { + VkStructureType sType; + void* pNext; + VkBool32 scalarBlockLayout; +} VkPhysicalDeviceScalarBlockLayoutFeatures; + +typedef struct VkImageStencilUsageCreateInfo { + VkStructureType sType; + const void* pNext; + VkImageUsageFlags stencilUsage; +} VkImageStencilUsageCreateInfo; + +typedef struct VkSamplerReductionModeCreateInfo { + VkStructureType sType; + const void* pNext; + VkSamplerReductionMode reductionMode; +} VkSamplerReductionModeCreateInfo; + +typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties { + VkStructureType sType; + void* pNext; + VkBool32 filterMinmaxSingleComponentFormats; + VkBool32 filterMinmaxImageComponentMapping; +} VkPhysicalDeviceSamplerFilterMinmaxProperties; + +typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures { + VkStructureType sType; + void* pNext; + VkBool32 vulkanMemoryModel; + VkBool32 vulkanMemoryModelDeviceScope; + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; +} VkPhysicalDeviceVulkanMemoryModelFeatures; + +typedef struct VkPhysicalDeviceImagelessFramebufferFeatures { + VkStructureType sType; + void* pNext; + VkBool32 imagelessFramebuffer; +} VkPhysicalDeviceImagelessFramebufferFeatures; + +typedef struct VkFramebufferAttachmentImageInfo { + VkStructureType sType; + const void* pNext; + VkImageCreateFlags flags; + VkImageUsageFlags usage; + uint32_t width; + uint32_t height; + uint32_t layerCount; + uint32_t viewFormatCount; + const VkFormat* pViewFormats; +} VkFramebufferAttachmentImageInfo; + +typedef struct VkFramebufferAttachmentsCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t attachmentImageInfoCount; + const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos; +} VkFramebufferAttachmentsCreateInfo; + +typedef struct VkRenderPassAttachmentBeginInfo { + VkStructureType sType; + const void* pNext; + uint32_t attachmentCount; + const VkImageView* pAttachments; +} VkRenderPassAttachmentBeginInfo; + +typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures { + VkStructureType sType; + void* pNext; + VkBool32 uniformBufferStandardLayout; +} VkPhysicalDeviceUniformBufferStandardLayoutFeatures; + +typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupExtendedTypes; +} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures; + +typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures { + VkStructureType sType; + void* pNext; + VkBool32 separateDepthStencilLayouts; +} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures; + +typedef struct VkAttachmentReferenceStencilLayout { + VkStructureType sType; + void* pNext; + VkImageLayout stencilLayout; +} VkAttachmentReferenceStencilLayout; + +typedef struct VkAttachmentDescriptionStencilLayout { + VkStructureType sType; + void* pNext; + VkImageLayout stencilInitialLayout; + VkImageLayout stencilFinalLayout; +} VkAttachmentDescriptionStencilLayout; + +typedef struct VkPhysicalDeviceHostQueryResetFeatures { + VkStructureType sType; + void* pNext; + VkBool32 hostQueryReset; +} VkPhysicalDeviceHostQueryResetFeatures; + +typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures { + VkStructureType sType; + void* pNext; + VkBool32 timelineSemaphore; +} VkPhysicalDeviceTimelineSemaphoreFeatures; + +typedef struct VkPhysicalDeviceTimelineSemaphoreProperties { + VkStructureType sType; + void* pNext; + uint64_t maxTimelineSemaphoreValueDifference; +} VkPhysicalDeviceTimelineSemaphoreProperties; + +typedef struct VkSemaphoreTypeCreateInfo { + VkStructureType sType; + const void* pNext; + VkSemaphoreType semaphoreType; + uint64_t initialValue; +} VkSemaphoreTypeCreateInfo; + +typedef struct VkTimelineSemaphoreSubmitInfo { + VkStructureType sType; + const void* pNext; + uint32_t waitSemaphoreValueCount; + const uint64_t* pWaitSemaphoreValues; + uint32_t signalSemaphoreValueCount; + const uint64_t* pSignalSemaphoreValues; +} VkTimelineSemaphoreSubmitInfo; + +typedef struct VkSemaphoreWaitInfo { + VkStructureType sType; + const void* pNext; + VkSemaphoreWaitFlags flags; + uint32_t semaphoreCount; + const VkSemaphore* pSemaphores; + const uint64_t* pValues; +} VkSemaphoreWaitInfo; + +typedef struct VkSemaphoreSignalInfo { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + uint64_t value; +} VkSemaphoreSignalInfo; + +typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures { + VkStructureType sType; + void* pNext; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; +} VkPhysicalDeviceBufferDeviceAddressFeatures; + +typedef struct VkBufferDeviceAddressInfo { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; +} VkBufferDeviceAddressInfo; + +typedef struct VkBufferOpaqueCaptureAddressCreateInfo { + VkStructureType sType; + const void* pNext; + uint64_t opaqueCaptureAddress; +} VkBufferOpaqueCaptureAddressCreateInfo; + +typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo { + VkStructureType sType; + const void* pNext; + uint64_t opaqueCaptureAddress; +} VkMemoryOpaqueCaptureAddressAllocateInfo; + +typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; +} VkDeviceMemoryOpaqueCaptureAddressInfo; + +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo); +typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo); +typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue); +typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout); +typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo); +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); +typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); +typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2( + VkDevice device, + const VkRenderPassCreateInfo2* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkRenderPass* pRenderPass); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2( + VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo* pRenderPassBegin, + const VkSubpassBeginInfo* pSubpassBeginInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2( + VkCommandBuffer commandBuffer, + const VkSubpassBeginInfo* pSubpassBeginInfo, + const VkSubpassEndInfo* pSubpassEndInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2( + VkCommandBuffer commandBuffer, + const VkSubpassEndInfo* pSubpassEndInfo); + +VKAPI_ATTR void VKAPI_CALL vkResetQueryPool( + VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue( + VkDevice device, + VkSemaphore semaphore, + uint64_t* pValue); + +VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores( + VkDevice device, + const VkSemaphoreWaitInfo* pWaitInfo, + uint64_t timeout); + +VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore( + VkDevice device, + const VkSemaphoreSignalInfo* pSignalInfo); + +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); + +VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); + +VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress( + VkDevice device, + const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); +#endif + + +// VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls. +#define VK_VERSION_1_3 1 +// Vulkan 1.3 version number +#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0 + +typedef uint64_t VkFlags64; +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot) + +typedef enum VkPipelineCreationFeedbackFlagBits { + VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001, + VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002, + VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004, + VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT, + VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT, + VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT, + VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkPipelineCreationFeedbackFlagBits; +typedef VkFlags VkPipelineCreationFeedbackFlags; + +typedef enum VkToolPurposeFlagBits { + VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001, + VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002, + VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004, + VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008, + VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010, + VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020, + VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040, + VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT, + VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT, + VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT, + VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT, + VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT, + VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkToolPurposeFlagBits; +typedef VkFlags VkToolPurposeFlags; +typedef VkFlags VkPrivateDataSlotCreateFlags; +typedef VkFlags64 VkPipelineStageFlags2; + +// Flag bits for VkPipelineStageFlagBits2 +typedef VkFlags64 VkPipelineStageFlagBits2; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL; + +typedef VkFlags64 VkAccessFlags2; + +// Flag bits for VkAccessFlagBits2 +typedef VkFlags64 VkAccessFlagBits2; +static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL; +static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL; + + +typedef enum VkSubmitFlagBits { + VK_SUBMIT_PROTECTED_BIT = 0x00000001, + VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT, + VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSubmitFlagBits; +typedef VkFlags VkSubmitFlags; + +typedef enum VkRenderingFlagBits { + VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001, + VK_RENDERING_SUSPENDING_BIT = 0x00000002, + VK_RENDERING_RESUMING_BIT = 0x00000004, + VK_RENDERING_CONTENTS_INLINE_BIT_EXT = 0x00000010, + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008, + VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT, + VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT, + VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT, + VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkRenderingFlagBits; +typedef VkFlags VkRenderingFlags; +typedef VkFlags64 VkFormatFeatureFlags2; + +// Flag bits for VkFormatFeatureFlagBits2 +typedef VkFlags64 VkFormatFeatureFlagBits2; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL; + +typedef struct VkPhysicalDeviceVulkan13Features { + VkStructureType sType; + void* pNext; + VkBool32 robustImageAccess; + VkBool32 inlineUniformBlock; + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; + VkBool32 pipelineCreationCacheControl; + VkBool32 privateData; + VkBool32 shaderDemoteToHelperInvocation; + VkBool32 shaderTerminateInvocation; + VkBool32 subgroupSizeControl; + VkBool32 computeFullSubgroups; + VkBool32 synchronization2; + VkBool32 textureCompressionASTC_HDR; + VkBool32 shaderZeroInitializeWorkgroupMemory; + VkBool32 dynamicRendering; + VkBool32 shaderIntegerDotProduct; + VkBool32 maintenance4; +} VkPhysicalDeviceVulkan13Features; + +typedef struct VkPhysicalDeviceVulkan13Properties { + VkStructureType sType; + void* pNext; + uint32_t minSubgroupSize; + uint32_t maxSubgroupSize; + uint32_t maxComputeWorkgroupSubgroups; + VkShaderStageFlags requiredSubgroupSizeStages; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; + uint32_t maxInlineUniformTotalSize; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; + VkDeviceSize storageTexelBufferOffsetAlignmentBytes; + VkBool32 storageTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize maxBufferSize; +} VkPhysicalDeviceVulkan13Properties; + +typedef struct VkPipelineCreationFeedback { + VkPipelineCreationFeedbackFlags flags; + uint64_t duration; +} VkPipelineCreationFeedback; + +typedef struct VkPipelineCreationFeedbackCreateInfo { + VkStructureType sType; + const void* pNext; + VkPipelineCreationFeedback* pPipelineCreationFeedback; + uint32_t pipelineStageCreationFeedbackCount; + VkPipelineCreationFeedback* pPipelineStageCreationFeedbacks; +} VkPipelineCreationFeedbackCreateInfo; + +typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderTerminateInvocation; +} VkPhysicalDeviceShaderTerminateInvocationFeatures; + +typedef struct VkPhysicalDeviceToolProperties { + VkStructureType sType; + void* pNext; + char name[VK_MAX_EXTENSION_NAME_SIZE]; + char version[VK_MAX_EXTENSION_NAME_SIZE]; + VkToolPurposeFlags purposes; + char description[VK_MAX_DESCRIPTION_SIZE]; + char layer[VK_MAX_EXTENSION_NAME_SIZE]; +} VkPhysicalDeviceToolProperties; + +typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderDemoteToHelperInvocation; +} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures; + +typedef struct VkPhysicalDevicePrivateDataFeatures { + VkStructureType sType; + void* pNext; + VkBool32 privateData; +} VkPhysicalDevicePrivateDataFeatures; + +typedef struct VkDevicePrivateDataCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t privateDataSlotRequestCount; +} VkDevicePrivateDataCreateInfo; + +typedef struct VkPrivateDataSlotCreateInfo { + VkStructureType sType; + const void* pNext; + VkPrivateDataSlotCreateFlags flags; +} VkPrivateDataSlotCreateInfo; + +typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures { + VkStructureType sType; + void* pNext; + VkBool32 pipelineCreationCacheControl; +} VkPhysicalDevicePipelineCreationCacheControlFeatures; + +typedef struct VkMemoryBarrier2 { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; +} VkMemoryBarrier2; + +typedef struct VkBufferMemoryBarrier2 { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; +} VkBufferMemoryBarrier2; + +typedef struct VkImageMemoryBarrier2 { + VkStructureType sType; + const void* pNext; + VkPipelineStageFlags2 srcStageMask; + VkAccessFlags2 srcAccessMask; + VkPipelineStageFlags2 dstStageMask; + VkAccessFlags2 dstAccessMask; + VkImageLayout oldLayout; + VkImageLayout newLayout; + uint32_t srcQueueFamilyIndex; + uint32_t dstQueueFamilyIndex; + VkImage image; + VkImageSubresourceRange subresourceRange; +} VkImageMemoryBarrier2; + +typedef struct VkDependencyInfo { + VkStructureType sType; + const void* pNext; + VkDependencyFlags dependencyFlags; + uint32_t memoryBarrierCount; + const VkMemoryBarrier2* pMemoryBarriers; + uint32_t bufferMemoryBarrierCount; + const VkBufferMemoryBarrier2* pBufferMemoryBarriers; + uint32_t imageMemoryBarrierCount; + const VkImageMemoryBarrier2* pImageMemoryBarriers; +} VkDependencyInfo; + +typedef struct VkSemaphoreSubmitInfo { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + uint64_t value; + VkPipelineStageFlags2 stageMask; + uint32_t deviceIndex; +} VkSemaphoreSubmitInfo; + +typedef struct VkCommandBufferSubmitInfo { + VkStructureType sType; + const void* pNext; + VkCommandBuffer commandBuffer; + uint32_t deviceMask; +} VkCommandBufferSubmitInfo; + +typedef struct VkSubmitInfo2 { + VkStructureType sType; + const void* pNext; + VkSubmitFlags flags; + uint32_t waitSemaphoreInfoCount; + const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos; + uint32_t commandBufferInfoCount; + const VkCommandBufferSubmitInfo* pCommandBufferInfos; + uint32_t signalSemaphoreInfoCount; + const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos; +} VkSubmitInfo2; + +typedef struct VkPhysicalDeviceSynchronization2Features { + VkStructureType sType; + void* pNext; + VkBool32 synchronization2; +} VkPhysicalDeviceSynchronization2Features; + +typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderZeroInitializeWorkgroupMemory; +} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures; + +typedef struct VkPhysicalDeviceImageRobustnessFeatures { + VkStructureType sType; + void* pNext; + VkBool32 robustImageAccess; +} VkPhysicalDeviceImageRobustnessFeatures; + +typedef struct VkBufferCopy2 { + VkStructureType sType; + const void* pNext; + VkDeviceSize srcOffset; + VkDeviceSize dstOffset; + VkDeviceSize size; +} VkBufferCopy2; + +typedef struct VkCopyBufferInfo2 { + VkStructureType sType; + const void* pNext; + VkBuffer srcBuffer; + VkBuffer dstBuffer; + uint32_t regionCount; + const VkBufferCopy2* pRegions; +} VkCopyBufferInfo2; + +typedef struct VkImageCopy2 { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageCopy2; + +typedef struct VkCopyImageInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageCopy2* pRegions; +} VkCopyImageInfo2; + +typedef struct VkBufferImageCopy2 { + VkStructureType sType; + const void* pNext; + VkDeviceSize bufferOffset; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkBufferImageCopy2; + +typedef struct VkCopyBufferToImageInfo2 { + VkStructureType sType; + const void* pNext; + VkBuffer srcBuffer; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkBufferImageCopy2* pRegions; +} VkCopyBufferToImageInfo2; + +typedef struct VkCopyImageToBufferInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkBuffer dstBuffer; + uint32_t regionCount; + const VkBufferImageCopy2* pRegions; +} VkCopyImageToBufferInfo2; + +typedef struct VkImageBlit2 { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffsets[2]; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffsets[2]; +} VkImageBlit2; + +typedef struct VkBlitImageInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageBlit2* pRegions; + VkFilter filter; +} VkBlitImageInfo2; + +typedef struct VkImageResolve2 { + VkStructureType sType; + const void* pNext; + VkImageSubresourceLayers srcSubresource; + VkOffset3D srcOffset; + VkImageSubresourceLayers dstSubresource; + VkOffset3D dstOffset; + VkExtent3D extent; +} VkImageResolve2; + +typedef struct VkResolveImageInfo2 { + VkStructureType sType; + const void* pNext; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageResolve2* pRegions; +} VkResolveImageInfo2; + +typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures { + VkStructureType sType; + void* pNext; + VkBool32 subgroupSizeControl; + VkBool32 computeFullSubgroups; +} VkPhysicalDeviceSubgroupSizeControlFeatures; + +typedef struct VkPhysicalDeviceSubgroupSizeControlProperties { + VkStructureType sType; + void* pNext; + uint32_t minSubgroupSize; + uint32_t maxSubgroupSize; + uint32_t maxComputeWorkgroupSubgroups; + VkShaderStageFlags requiredSubgroupSizeStages; +} VkPhysicalDeviceSubgroupSizeControlProperties; + +typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo { + VkStructureType sType; + void* pNext; + uint32_t requiredSubgroupSize; +} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo; + +typedef struct VkPhysicalDeviceInlineUniformBlockFeatures { + VkStructureType sType; + void* pNext; + VkBool32 inlineUniformBlock; + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; +} VkPhysicalDeviceInlineUniformBlockFeatures; + +typedef struct VkPhysicalDeviceInlineUniformBlockProperties { + VkStructureType sType; + void* pNext; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; +} VkPhysicalDeviceInlineUniformBlockProperties; + +typedef struct VkWriteDescriptorSetInlineUniformBlock { + VkStructureType sType; + const void* pNext; + uint32_t dataSize; + const void* pData; +} VkWriteDescriptorSetInlineUniformBlock; + +typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t maxInlineUniformBlockBindings; +} VkDescriptorPoolInlineUniformBlockCreateInfo; + +typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures { + VkStructureType sType; + void* pNext; + VkBool32 textureCompressionASTC_HDR; +} VkPhysicalDeviceTextureCompressionASTCHDRFeatures; + +typedef struct VkRenderingAttachmentInfo { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; + VkResolveModeFlagBits resolveMode; + VkImageView resolveImageView; + VkImageLayout resolveImageLayout; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkClearValue clearValue; +} VkRenderingAttachmentInfo; + +typedef struct VkRenderingInfo { + VkStructureType sType; + const void* pNext; + VkRenderingFlags flags; + VkRect2D renderArea; + uint32_t layerCount; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkRenderingAttachmentInfo* pColorAttachments; + const VkRenderingAttachmentInfo* pDepthAttachment; + const VkRenderingAttachmentInfo* pStencilAttachment; +} VkRenderingInfo; + +typedef struct VkPipelineRenderingCreateInfo { + VkStructureType sType; + const void* pNext; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat* pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; +} VkPipelineRenderingCreateInfo; + +typedef struct VkPhysicalDeviceDynamicRenderingFeatures { + VkStructureType sType; + void* pNext; + VkBool32 dynamicRendering; +} VkPhysicalDeviceDynamicRenderingFeatures; + +typedef struct VkCommandBufferInheritanceRenderingInfo { + VkStructureType sType; + const void* pNext; + VkRenderingFlags flags; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat* pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; + VkSampleCountFlagBits rasterizationSamples; +} VkCommandBufferInheritanceRenderingInfo; + +typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures { + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerDotProduct; +} VkPhysicalDeviceShaderIntegerDotProductFeatures; + +typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties { + VkStructureType sType; + void* pNext; + VkBool32 integerDotProduct8BitUnsignedAccelerated; + VkBool32 integerDotProduct8BitSignedAccelerated; + VkBool32 integerDotProduct8BitMixedSignednessAccelerated; + VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedSignedAccelerated; + VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProduct16BitUnsignedAccelerated; + VkBool32 integerDotProduct16BitSignedAccelerated; + VkBool32 integerDotProduct16BitMixedSignednessAccelerated; + VkBool32 integerDotProduct32BitUnsignedAccelerated; + VkBool32 integerDotProduct32BitSignedAccelerated; + VkBool32 integerDotProduct32BitMixedSignednessAccelerated; + VkBool32 integerDotProduct64BitUnsignedAccelerated; + VkBool32 integerDotProduct64BitSignedAccelerated; + VkBool32 integerDotProduct64BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated; + VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated; +} VkPhysicalDeviceShaderIntegerDotProductProperties; + +typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties { + VkStructureType sType; + void* pNext; + VkDeviceSize storageTexelBufferOffsetAlignmentBytes; + VkBool32 storageTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; +} VkPhysicalDeviceTexelBufferAlignmentProperties; + +typedef struct VkFormatProperties3 { + VkStructureType sType; + void* pNext; + VkFormatFeatureFlags2 linearTilingFeatures; + VkFormatFeatureFlags2 optimalTilingFeatures; + VkFormatFeatureFlags2 bufferFeatures; +} VkFormatProperties3; + +typedef struct VkPhysicalDeviceMaintenance4Features { + VkStructureType sType; + void* pNext; + VkBool32 maintenance4; +} VkPhysicalDeviceMaintenance4Features; + +typedef struct VkPhysicalDeviceMaintenance4Properties { + VkStructureType sType; + void* pNext; + VkDeviceSize maxBufferSize; +} VkPhysicalDeviceMaintenance4Properties; + +typedef struct VkDeviceBufferMemoryRequirements { + VkStructureType sType; + const void* pNext; + const VkBufferCreateInfo* pCreateInfo; +} VkDeviceBufferMemoryRequirements; + +typedef struct VkDeviceImageMemoryRequirements { + VkStructureType sType; + const void* pNext; + const VkImageCreateInfo* pCreateInfo; + VkImageAspectFlagBits planeAspect; +} VkDeviceImageMemoryRequirements; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties); +typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot); +typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data); +typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData); +typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask); +typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos); +typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer); +typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports); +typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors); +typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable); +typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties( + VkPhysicalDevice physicalDevice, + uint32_t* pToolCount, + VkPhysicalDeviceToolProperties* pToolProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot( + VkDevice device, + const VkPrivateDataSlotCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPrivateDataSlot* pPrivateDataSlot); + +VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot( + VkDevice device, + VkPrivateDataSlot privateDataSlot, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t data); + +VKAPI_ATTR void VKAPI_CALL vkGetPrivateData( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2( + VkCommandBuffer commandBuffer, + VkEvent event, + const VkDependencyInfo* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2( + VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags2 stageMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2( + VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent* pEvents, + const VkDependencyInfo* pDependencyInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2( + VkCommandBuffer commandBuffer, + const VkDependencyInfo* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2 stage, + VkQueryPool queryPool, + uint32_t query); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2( + VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo2* pSubmits, + VkFence fence); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2( + VkCommandBuffer commandBuffer, + const VkCopyBufferInfo2* pCopyBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2( + VkCommandBuffer commandBuffer, + const VkCopyImageInfo2* pCopyImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2( + VkCommandBuffer commandBuffer, + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2( + VkCommandBuffer commandBuffer, + const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2( + VkCommandBuffer commandBuffer, + const VkBlitImageInfo2* pBlitImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2( + VkCommandBuffer commandBuffer, + const VkResolveImageInfo2* pResolveImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering( + VkCommandBuffer commandBuffer, + const VkRenderingInfo* pRenderingInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering( + VkCommandBuffer commandBuffer); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode( + VkCommandBuffer commandBuffer, + VkCullModeFlags cullMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace( + VkCommandBuffer commandBuffer, + VkFrontFace frontFace); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology( + VkCommandBuffer commandBuffer, + VkPrimitiveTopology primitiveTopology); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount( + VkCommandBuffer commandBuffer, + uint32_t viewportCount, + const VkViewport* pViewports); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount( + VkCommandBuffer commandBuffer, + uint32_t scissorCount, + const VkRect2D* pScissors); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes, + const VkDeviceSize* pStrides); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthWriteEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp( + VkCommandBuffer commandBuffer, + VkCompareOp depthCompareOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthBoundsTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable( + VkCommandBuffer commandBuffer, + VkBool32 stencilTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp( + VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + VkStencilOp failOp, + VkStencilOp passOp, + VkStencilOp depthFailOp, + VkCompareOp compareOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable( + VkCommandBuffer commandBuffer, + VkBool32 rasterizerDiscardEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable( + VkCommandBuffer commandBuffer, + VkBool32 depthBiasEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable( + VkCommandBuffer commandBuffer, + VkBool32 primitiveRestartEnable); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements( + VkDevice device, + const VkDeviceBufferMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); +#endif + + +// VK_KHR_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_surface 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) +#define VK_KHR_SURFACE_SPEC_VERSION 25 +#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" + +typedef enum VkPresentModeKHR { + VK_PRESENT_MODE_IMMEDIATE_KHR = 0, + VK_PRESENT_MODE_MAILBOX_KHR = 1, + VK_PRESENT_MODE_FIFO_KHR = 2, + VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, + VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, + VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, + VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPresentModeKHR; + +typedef enum VkColorSpaceKHR { + VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, + VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, + VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, + VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003, + VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, + VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, + VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, + VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, + VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, + VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, + VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, + VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, + VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, + VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, + VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, + VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000, + VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, + VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, + VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkColorSpaceKHR; + +typedef enum VkSurfaceTransformFlagBitsKHR { + VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, + VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, + VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, + VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, + VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, + VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSurfaceTransformFlagBitsKHR; + +typedef enum VkCompositeAlphaFlagBitsKHR { + VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, + VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, + VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, + VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, + VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkCompositeAlphaFlagBitsKHR; +typedef VkFlags VkCompositeAlphaFlagsKHR; +typedef VkFlags VkSurfaceTransformFlagsKHR; +typedef struct VkSurfaceCapabilitiesKHR { + uint32_t minImageCount; + uint32_t maxImageCount; + VkExtent2D currentExtent; + VkExtent2D minImageExtent; + VkExtent2D maxImageExtent; + uint32_t maxImageArrayLayers; + VkSurfaceTransformFlagsKHR supportedTransforms; + VkSurfaceTransformFlagBitsKHR currentTransform; + VkCompositeAlphaFlagsKHR supportedCompositeAlpha; + VkImageUsageFlags supportedUsageFlags; +} VkSurfaceCapabilitiesKHR; + +typedef struct VkSurfaceFormatKHR { + VkFormat format; + VkColorSpaceKHR colorSpace; +} VkSurfaceFormatKHR; + +typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( + VkInstance instance, + VkSurfaceKHR surface, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + VkSurfaceKHR surface, + VkBool32* pSupported); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t* pSurfaceFormatCount, + VkSurfaceFormatKHR* pSurfaceFormats); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t* pPresentModeCount, + VkPresentModeKHR* pPresentModes); +#endif + + +// VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_swapchain 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) +#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 +#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" + +typedef enum VkSwapchainCreateFlagBitsKHR { + VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, + VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, + VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008, + VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkSwapchainCreateFlagBitsKHR; +typedef VkFlags VkSwapchainCreateFlagsKHR; + +typedef enum VkDeviceGroupPresentModeFlagBitsKHR { + VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, + VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, + VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, + VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, + VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkDeviceGroupPresentModeFlagBitsKHR; +typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; +typedef struct VkSwapchainCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkSwapchainCreateFlagsKHR flags; + VkSurfaceKHR surface; + uint32_t minImageCount; + VkFormat imageFormat; + VkColorSpaceKHR imageColorSpace; + VkExtent2D imageExtent; + uint32_t imageArrayLayers; + VkImageUsageFlags imageUsage; + VkSharingMode imageSharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t* pQueueFamilyIndices; + VkSurfaceTransformFlagBitsKHR preTransform; + VkCompositeAlphaFlagBitsKHR compositeAlpha; + VkPresentModeKHR presentMode; + VkBool32 clipped; + VkSwapchainKHR oldSwapchain; +} VkSwapchainCreateInfoKHR; + +typedef struct VkPresentInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t waitSemaphoreCount; + const VkSemaphore* pWaitSemaphores; + uint32_t swapchainCount; + const VkSwapchainKHR* pSwapchains; + const uint32_t* pImageIndices; + VkResult* pResults; +} VkPresentInfoKHR; + +typedef struct VkImageSwapchainCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkSwapchainKHR swapchain; +} VkImageSwapchainCreateInfoKHR; + +typedef struct VkBindImageMemorySwapchainInfoKHR { + VkStructureType sType; + const void* pNext; + VkSwapchainKHR swapchain; + uint32_t imageIndex; +} VkBindImageMemorySwapchainInfoKHR; + +typedef struct VkAcquireNextImageInfoKHR { + VkStructureType sType; + const void* pNext; + VkSwapchainKHR swapchain; + uint64_t timeout; + VkSemaphore semaphore; + VkFence fence; + uint32_t deviceMask; +} VkAcquireNextImageInfoKHR; + +typedef struct VkDeviceGroupPresentCapabilitiesKHR { + VkStructureType sType; + void* pNext; + uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; + VkDeviceGroupPresentModeFlagsKHR modes; +} VkDeviceGroupPresentCapabilitiesKHR; + +typedef struct VkDeviceGroupPresentInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const uint32_t* pDeviceMasks; + VkDeviceGroupPresentModeFlagBitsKHR mode; +} VkDeviceGroupPresentInfoKHR; + +typedef struct VkDeviceGroupSwapchainCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceGroupPresentModeFlagsKHR modes; +} VkDeviceGroupSwapchainCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); +typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex); +typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR( + VkDevice device, + const VkSwapchainCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSwapchainKHR* pSwapchain); + +VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR( + VkDevice device, + VkSwapchainKHR swapchain, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR( + VkDevice device, + VkSwapchainKHR swapchain, + uint32_t* pSwapchainImageCount, + VkImage* pSwapchainImages); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR( + VkDevice device, + VkSwapchainKHR swapchain, + uint64_t timeout, + VkSemaphore semaphore, + VkFence fence, + uint32_t* pImageIndex); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR( + VkQueue queue, + const VkPresentInfoKHR* pPresentInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR( + VkDevice device, + VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR( + VkDevice device, + VkSurfaceKHR surface, + VkDeviceGroupPresentModeFlagsKHR* pModes); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + uint32_t* pRectCount, + VkRect2D* pRects); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( + VkDevice device, + const VkAcquireNextImageInfoKHR* pAcquireInfo, + uint32_t* pImageIndex); +#endif + + +// VK_KHR_display is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_display 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) +#define VK_KHR_DISPLAY_SPEC_VERSION 23 +#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" +typedef VkFlags VkDisplayModeCreateFlagsKHR; + +typedef enum VkDisplayPlaneAlphaFlagBitsKHR { + VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, + VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, + VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, + VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, + VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkDisplayPlaneAlphaFlagBitsKHR; +typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; +typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; +typedef struct VkDisplayModeParametersKHR { + VkExtent2D visibleRegion; + uint32_t refreshRate; +} VkDisplayModeParametersKHR; + +typedef struct VkDisplayModeCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkDisplayModeCreateFlagsKHR flags; + VkDisplayModeParametersKHR parameters; +} VkDisplayModeCreateInfoKHR; + +typedef struct VkDisplayModePropertiesKHR { + VkDisplayModeKHR displayMode; + VkDisplayModeParametersKHR parameters; +} VkDisplayModePropertiesKHR; + +typedef struct VkDisplayPlaneCapabilitiesKHR { + VkDisplayPlaneAlphaFlagsKHR supportedAlpha; + VkOffset2D minSrcPosition; + VkOffset2D maxSrcPosition; + VkExtent2D minSrcExtent; + VkExtent2D maxSrcExtent; + VkOffset2D minDstPosition; + VkOffset2D maxDstPosition; + VkExtent2D minDstExtent; + VkExtent2D maxDstExtent; +} VkDisplayPlaneCapabilitiesKHR; + +typedef struct VkDisplayPlanePropertiesKHR { + VkDisplayKHR currentDisplay; + uint32_t currentStackIndex; +} VkDisplayPlanePropertiesKHR; + +typedef struct VkDisplayPropertiesKHR { + VkDisplayKHR display; + const char* displayName; + VkExtent2D physicalDimensions; + VkExtent2D physicalResolution; + VkSurfaceTransformFlagsKHR supportedTransforms; + VkBool32 planeReorderPossible; + VkBool32 persistentContent; +} VkDisplayPropertiesKHR; + +typedef struct VkDisplaySurfaceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkDisplaySurfaceCreateFlagsKHR flags; + VkDisplayModeKHR displayMode; + uint32_t planeIndex; + uint32_t planeStackIndex; + VkSurfaceTransformFlagBitsKHR transform; + float globalAlpha; + VkDisplayPlaneAlphaFlagBitsKHR alphaMode; + VkExtent2D imageExtent; +} VkDisplaySurfaceCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); +typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode); +typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkDisplayPropertiesKHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkDisplayPlanePropertiesKHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR( + VkPhysicalDevice physicalDevice, + uint32_t planeIndex, + uint32_t* pDisplayCount, + VkDisplayKHR* pDisplays); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + uint32_t* pPropertyCount, + VkDisplayModePropertiesKHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + const VkDisplayModeCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDisplayModeKHR* pMode); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR( + VkPhysicalDevice physicalDevice, + VkDisplayModeKHR mode, + uint32_t planeIndex, + VkDisplayPlaneCapabilitiesKHR* pCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( + VkInstance instance, + const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +// VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_display_swapchain 1 +#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10 +#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" +typedef struct VkDisplayPresentInfoKHR { + VkStructureType sType; + const void* pNext; + VkRect2D srcRect; + VkRect2D dstRect; + VkBool32 persistent; +} VkDisplayPresentInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( + VkDevice device, + uint32_t swapchainCount, + const VkSwapchainCreateInfoKHR* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkSwapchainKHR* pSwapchains); +#endif + + +// VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_sampler_mirror_clamp_to_edge 1 +#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3 +#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" + + +// VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_video_queue 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR) +#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 8 +#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue" + +typedef enum VkQueryResultStatusKHR { + VK_QUERY_RESULT_STATUS_ERROR_KHR = -1, + VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0, + VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1, + VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000, + VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkQueryResultStatusKHR; + +typedef enum VkVideoCodecOperationFlagBitsKHR { + VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0, + VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000, + VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000, + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001, + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002, + VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004, + VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCodecOperationFlagBitsKHR; +typedef VkFlags VkVideoCodecOperationFlagsKHR; + +typedef enum VkVideoChromaSubsamplingFlagBitsKHR { + VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0, + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001, + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002, + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004, + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008, + VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoChromaSubsamplingFlagBitsKHR; +typedef VkFlags VkVideoChromaSubsamplingFlagsKHR; + +typedef enum VkVideoComponentBitDepthFlagBitsKHR { + VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0, + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001, + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004, + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010, + VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoComponentBitDepthFlagBitsKHR; +typedef VkFlags VkVideoComponentBitDepthFlagsKHR; + +typedef enum VkVideoCapabilityFlagBitsKHR { + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001, + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002, + VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCapabilityFlagBitsKHR; +typedef VkFlags VkVideoCapabilityFlagsKHR; + +typedef enum VkVideoSessionCreateFlagBitsKHR { + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001, + VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002, + VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004, + VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoSessionCreateFlagBitsKHR; +typedef VkFlags VkVideoSessionCreateFlagsKHR; +typedef VkFlags VkVideoSessionParametersCreateFlagsKHR; +typedef VkFlags VkVideoBeginCodingFlagsKHR; +typedef VkFlags VkVideoEndCodingFlagsKHR; + +typedef enum VkVideoCodingControlFlagBitsKHR { + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001, + VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002, + VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004, + VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoCodingControlFlagBitsKHR; +typedef VkFlags VkVideoCodingControlFlagsKHR; +typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 queryResultStatusSupport; +} VkQueueFamilyQueryResultStatusPropertiesKHR; + +typedef struct VkQueueFamilyVideoPropertiesKHR { + VkStructureType sType; + void* pNext; + VkVideoCodecOperationFlagsKHR videoCodecOperations; +} VkQueueFamilyVideoPropertiesKHR; + +typedef struct VkVideoProfileInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoCodecOperationFlagBitsKHR videoCodecOperation; + VkVideoChromaSubsamplingFlagsKHR chromaSubsampling; + VkVideoComponentBitDepthFlagsKHR lumaBitDepth; + VkVideoComponentBitDepthFlagsKHR chromaBitDepth; +} VkVideoProfileInfoKHR; + +typedef struct VkVideoProfileListInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t profileCount; + const VkVideoProfileInfoKHR* pProfiles; +} VkVideoProfileListInfoKHR; + +typedef struct VkVideoCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoCapabilityFlagsKHR flags; + VkDeviceSize minBitstreamBufferOffsetAlignment; + VkDeviceSize minBitstreamBufferSizeAlignment; + VkExtent2D pictureAccessGranularity; + VkExtent2D minCodedExtent; + VkExtent2D maxCodedExtent; + uint32_t maxDpbSlots; + uint32_t maxActiveReferencePictures; + VkExtensionProperties stdHeaderVersion; +} VkVideoCapabilitiesKHR; + +typedef struct VkPhysicalDeviceVideoFormatInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageUsageFlags imageUsage; +} VkPhysicalDeviceVideoFormatInfoKHR; + +typedef struct VkVideoFormatPropertiesKHR { + VkStructureType sType; + void* pNext; + VkFormat format; + VkComponentMapping componentMapping; + VkImageCreateFlags imageCreateFlags; + VkImageType imageType; + VkImageTiling imageTiling; + VkImageUsageFlags imageUsageFlags; +} VkVideoFormatPropertiesKHR; + +typedef struct VkVideoPictureResourceInfoKHR { + VkStructureType sType; + const void* pNext; + VkOffset2D codedOffset; + VkExtent2D codedExtent; + uint32_t baseArrayLayer; + VkImageView imageViewBinding; +} VkVideoPictureResourceInfoKHR; + +typedef struct VkVideoReferenceSlotInfoKHR { + VkStructureType sType; + const void* pNext; + int32_t slotIndex; + const VkVideoPictureResourceInfoKHR* pPictureResource; +} VkVideoReferenceSlotInfoKHR; + +typedef struct VkVideoSessionMemoryRequirementsKHR { + VkStructureType sType; + void* pNext; + uint32_t memoryBindIndex; + VkMemoryRequirements memoryRequirements; +} VkVideoSessionMemoryRequirementsKHR; + +typedef struct VkBindVideoSessionMemoryInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t memoryBindIndex; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; + VkDeviceSize memorySize; +} VkBindVideoSessionMemoryInfoKHR; + +typedef struct VkVideoSessionCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t queueFamilyIndex; + VkVideoSessionCreateFlagsKHR flags; + const VkVideoProfileInfoKHR* pVideoProfile; + VkFormat pictureFormat; + VkExtent2D maxCodedExtent; + VkFormat referencePictureFormat; + uint32_t maxDpbSlots; + uint32_t maxActiveReferencePictures; + const VkExtensionProperties* pStdHeaderVersion; +} VkVideoSessionCreateInfoKHR; + +typedef struct VkVideoSessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoSessionParametersCreateFlagsKHR flags; + VkVideoSessionParametersKHR videoSessionParametersTemplate; + VkVideoSessionKHR videoSession; +} VkVideoSessionParametersCreateInfoKHR; + +typedef struct VkVideoSessionParametersUpdateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t updateSequenceCount; +} VkVideoSessionParametersUpdateInfoKHR; + +typedef struct VkVideoBeginCodingInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoBeginCodingFlagsKHR flags; + VkVideoSessionKHR videoSession; + VkVideoSessionParametersKHR videoSessionParameters; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotInfoKHR* pReferenceSlots; +} VkVideoBeginCodingInfoKHR; + +typedef struct VkVideoEndCodingInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEndCodingFlagsKHR flags; +} VkVideoEndCodingInfoKHR; + +typedef struct VkVideoCodingControlInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoCodingControlFlagsKHR flags; +} VkVideoCodingControlInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties); +typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession); +typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements); +typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos); +typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters); +typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo); +typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo); +typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR( + VkPhysicalDevice physicalDevice, + const VkVideoProfileInfoKHR* pVideoProfile, + VkVideoCapabilitiesKHR* pCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, + uint32_t* pVideoFormatPropertyCount, + VkVideoFormatPropertiesKHR* pVideoFormatProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR( + VkDevice device, + const VkVideoSessionCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkVideoSessionKHR* pVideoSession); + +VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t* pMemoryRequirementsCount, + VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR( + VkDevice device, + VkVideoSessionKHR videoSession, + uint32_t bindSessionMemoryInfoCount, + const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR( + VkDevice device, + const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkVideoSessionParametersKHR* pVideoSessionParameters); + +VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR( + VkDevice device, + VkVideoSessionParametersKHR videoSessionParameters, + const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo); + +VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR( + VkDevice device, + VkVideoSessionParametersKHR videoSessionParameters, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR( + VkCommandBuffer commandBuffer, + const VkVideoBeginCodingInfoKHR* pBeginInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR( + VkCommandBuffer commandBuffer, + const VkVideoEndCodingInfoKHR* pEndCodingInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR( + VkCommandBuffer commandBuffer, + const VkVideoCodingControlInfoKHR* pCodingControlInfo); +#endif + + +// VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_video_decode_queue 1 +#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8 +#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue" + +typedef enum VkVideoDecodeCapabilityFlagBitsKHR { + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001, + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002, + VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoDecodeCapabilityFlagBitsKHR; +typedef VkFlags VkVideoDecodeCapabilityFlagsKHR; + +typedef enum VkVideoDecodeUsageFlagBitsKHR { + VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0, + VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001, + VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002, + VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004, + VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoDecodeUsageFlagBitsKHR; +typedef VkFlags VkVideoDecodeUsageFlagsKHR; +typedef VkFlags VkVideoDecodeFlagsKHR; +typedef struct VkVideoDecodeCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoDecodeCapabilityFlagsKHR flags; +} VkVideoDecodeCapabilitiesKHR; + +typedef struct VkVideoDecodeUsageInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoDecodeUsageFlagsKHR videoUsageHints; +} VkVideoDecodeUsageInfoKHR; + +typedef struct VkVideoDecodeInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoDecodeFlagsKHR flags; + VkBuffer srcBuffer; + VkDeviceSize srcBufferOffset; + VkDeviceSize srcBufferRange; + VkVideoPictureResourceInfoKHR dstPictureResource; + const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotInfoKHR* pReferenceSlots; +} VkVideoDecodeInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR( + VkCommandBuffer commandBuffer, + const VkVideoDecodeInfoKHR* pDecodeInfo); +#endif + + +// VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_video_encode_h264 1 +#include "vk_video/vulkan_video_codec_h264std.h" +#include "vk_video/vulkan_video_codec_h264std_encode.h" +#define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14 +#define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264" + +typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR { + VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008, + VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010, + VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020, + VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040, + VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080, + VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100, + VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeH264CapabilityFlagBitsKHR; +typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR; + +typedef enum VkVideoEncodeH264StdFlagBitsKHR { + VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008, + VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010, + VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020, + VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040, + VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080, + VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100, + VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200, + VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400, + VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800, + VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000, + VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000, + VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000, + VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000, + VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000, + VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000, + VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000, + VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000, + VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeH264StdFlagBitsKHR; +typedef VkFlags VkVideoEncodeH264StdFlagsKHR; + +typedef enum VkVideoEncodeH264RateControlFlagBitsKHR { + VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010, + VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeH264RateControlFlagBitsKHR; +typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR; +typedef struct VkVideoEncodeH264CapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoEncodeH264CapabilityFlagsKHR flags; + StdVideoH264LevelIdc maxLevelIdc; + uint32_t maxSliceCount; + uint32_t maxPPictureL0ReferenceCount; + uint32_t maxBPictureL0ReferenceCount; + uint32_t maxL1ReferenceCount; + uint32_t maxTemporalLayerCount; + VkBool32 expectDyadicTemporalLayerPattern; + int32_t minQp; + int32_t maxQp; + VkBool32 prefersGopRemainingFrames; + VkBool32 requiresGopRemainingFrames; + VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags; +} VkVideoEncodeH264CapabilitiesKHR; + +typedef struct VkVideoEncodeH264QpKHR { + int32_t qpI; + int32_t qpP; + int32_t qpB; +} VkVideoEncodeH264QpKHR; + +typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR { + VkStructureType sType; + void* pNext; + VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags; + uint32_t preferredGopFrameCount; + uint32_t preferredIdrPeriod; + uint32_t preferredConsecutiveBFrameCount; + uint32_t preferredTemporalLayerCount; + VkVideoEncodeH264QpKHR preferredConstantQp; + uint32_t preferredMaxL0ReferenceCount; + uint32_t preferredMaxL1ReferenceCount; + VkBool32 preferredStdEntropyCodingModeFlag; +} VkVideoEncodeH264QualityLevelPropertiesKHR; + +typedef struct VkVideoEncodeH264SessionCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkBool32 useMaxLevelIdc; + StdVideoH264LevelIdc maxLevelIdc; +} VkVideoEncodeH264SessionCreateInfoKHR; + +typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t stdSPSCount; + const StdVideoH264SequenceParameterSet* pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH264PictureParameterSet* pStdPPSs; +} VkVideoEncodeH264SessionParametersAddInfoKHR; + +typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; + const VkVideoEncodeH264SessionParametersAddInfoKHR* pParametersAddInfo; +} VkVideoEncodeH264SessionParametersCreateInfoKHR; + +typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR { + VkStructureType sType; + const void* pNext; + VkBool32 writeStdSPS; + VkBool32 writeStdPPS; + uint32_t stdSPSId; + uint32_t stdPPSId; +} VkVideoEncodeH264SessionParametersGetInfoKHR; + +typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR { + VkStructureType sType; + void* pNext; + VkBool32 hasStdSPSOverrides; + VkBool32 hasStdPPSOverrides; +} VkVideoEncodeH264SessionParametersFeedbackInfoKHR; + +typedef struct VkVideoEncodeH264NaluSliceInfoKHR { + VkStructureType sType; + const void* pNext; + int32_t constantQp; + const StdVideoEncodeH264SliceHeader* pStdSliceHeader; +} VkVideoEncodeH264NaluSliceInfoKHR; + +typedef struct VkVideoEncodeH264PictureInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t naluSliceEntryCount; + const VkVideoEncodeH264NaluSliceInfoKHR* pNaluSliceEntries; + const StdVideoEncodeH264PictureInfo* pStdPictureInfo; + VkBool32 generatePrefixNalu; +} VkVideoEncodeH264PictureInfoKHR; + +typedef struct VkVideoEncodeH264DpbSlotInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo; +} VkVideoEncodeH264DpbSlotInfoKHR; + +typedef struct VkVideoEncodeH264ProfileInfoKHR { + VkStructureType sType; + const void* pNext; + StdVideoH264ProfileIdc stdProfileIdc; +} VkVideoEncodeH264ProfileInfoKHR; + +typedef struct VkVideoEncodeH264RateControlInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeH264RateControlFlagsKHR flags; + uint32_t gopFrameCount; + uint32_t idrPeriod; + uint32_t consecutiveBFrameCount; + uint32_t temporalLayerCount; +} VkVideoEncodeH264RateControlInfoKHR; + +typedef struct VkVideoEncodeH264FrameSizeKHR { + uint32_t frameISize; + uint32_t framePSize; + uint32_t frameBSize; +} VkVideoEncodeH264FrameSizeKHR; + +typedef struct VkVideoEncodeH264RateControlLayerInfoKHR { + VkStructureType sType; + const void* pNext; + VkBool32 useMinQp; + VkVideoEncodeH264QpKHR minQp; + VkBool32 useMaxQp; + VkVideoEncodeH264QpKHR maxQp; + VkBool32 useMaxFrameSize; + VkVideoEncodeH264FrameSizeKHR maxFrameSize; +} VkVideoEncodeH264RateControlLayerInfoKHR; + +typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR { + VkStructureType sType; + const void* pNext; + VkBool32 useGopRemainingFrames; + uint32_t gopRemainingI; + uint32_t gopRemainingP; + uint32_t gopRemainingB; +} VkVideoEncodeH264GopRemainingFrameInfoKHR; + + + +// VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_video_encode_h265 1 +#include "vk_video/vulkan_video_codec_h265std.h" +#include "vk_video/vulkan_video_codec_h265std_encode.h" +#define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14 +#define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265" + +typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR { + VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008, + VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010, + VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020, + VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040, + VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080, + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100, + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200, + VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeH265CapabilityFlagBitsKHR; +typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR; + +typedef enum VkVideoEncodeH265StdFlagBitsKHR { + VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008, + VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010, + VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020, + VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040, + VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080, + VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100, + VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200, + VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400, + VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800, + VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000, + VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000, + VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000, + VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000, + VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000, + VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000, + VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000, + VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000, + VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000, + VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeH265StdFlagBitsKHR; +typedef VkFlags VkVideoEncodeH265StdFlagsKHR; + +typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR { + VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeH265CtbSizeFlagBitsKHR; +typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR; + +typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR { + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008, + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeH265TransformBlockSizeFlagBitsKHR; +typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR; + +typedef enum VkVideoEncodeH265RateControlFlagBitsKHR { + VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010, + VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeH265RateControlFlagBitsKHR; +typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR; +typedef struct VkVideoEncodeH265CapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoEncodeH265CapabilityFlagsKHR flags; + StdVideoH265LevelIdc maxLevelIdc; + uint32_t maxSliceSegmentCount; + VkExtent2D maxTiles; + VkVideoEncodeH265CtbSizeFlagsKHR ctbSizes; + VkVideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes; + uint32_t maxPPictureL0ReferenceCount; + uint32_t maxBPictureL0ReferenceCount; + uint32_t maxL1ReferenceCount; + uint32_t maxSubLayerCount; + VkBool32 expectDyadicTemporalSubLayerPattern; + int32_t minQp; + int32_t maxQp; + VkBool32 prefersGopRemainingFrames; + VkBool32 requiresGopRemainingFrames; + VkVideoEncodeH265StdFlagsKHR stdSyntaxFlags; +} VkVideoEncodeH265CapabilitiesKHR; + +typedef struct VkVideoEncodeH265SessionCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkBool32 useMaxLevelIdc; + StdVideoH265LevelIdc maxLevelIdc; +} VkVideoEncodeH265SessionCreateInfoKHR; + +typedef struct VkVideoEncodeH265QpKHR { + int32_t qpI; + int32_t qpP; + int32_t qpB; +} VkVideoEncodeH265QpKHR; + +typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR { + VkStructureType sType; + void* pNext; + VkVideoEncodeH265RateControlFlagsKHR preferredRateControlFlags; + uint32_t preferredGopFrameCount; + uint32_t preferredIdrPeriod; + uint32_t preferredConsecutiveBFrameCount; + uint32_t preferredSubLayerCount; + VkVideoEncodeH265QpKHR preferredConstantQp; + uint32_t preferredMaxL0ReferenceCount; + uint32_t preferredMaxL1ReferenceCount; +} VkVideoEncodeH265QualityLevelPropertiesKHR; + +typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t stdVPSCount; + const StdVideoH265VideoParameterSet* pStdVPSs; + uint32_t stdSPSCount; + const StdVideoH265SequenceParameterSet* pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH265PictureParameterSet* pStdPPSs; +} VkVideoEncodeH265SessionParametersAddInfoKHR; + +typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t maxStdVPSCount; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; + const VkVideoEncodeH265SessionParametersAddInfoKHR* pParametersAddInfo; +} VkVideoEncodeH265SessionParametersCreateInfoKHR; + +typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR { + VkStructureType sType; + const void* pNext; + VkBool32 writeStdVPS; + VkBool32 writeStdSPS; + VkBool32 writeStdPPS; + uint32_t stdVPSId; + uint32_t stdSPSId; + uint32_t stdPPSId; +} VkVideoEncodeH265SessionParametersGetInfoKHR; + +typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR { + VkStructureType sType; + void* pNext; + VkBool32 hasStdVPSOverrides; + VkBool32 hasStdSPSOverrides; + VkBool32 hasStdPPSOverrides; +} VkVideoEncodeH265SessionParametersFeedbackInfoKHR; + +typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR { + VkStructureType sType; + const void* pNext; + int32_t constantQp; + const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader; +} VkVideoEncodeH265NaluSliceSegmentInfoKHR; + +typedef struct VkVideoEncodeH265PictureInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t naluSliceSegmentEntryCount; + const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries; + const StdVideoEncodeH265PictureInfo* pStdPictureInfo; +} VkVideoEncodeH265PictureInfoKHR; + +typedef struct VkVideoEncodeH265DpbSlotInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo; +} VkVideoEncodeH265DpbSlotInfoKHR; + +typedef struct VkVideoEncodeH265ProfileInfoKHR { + VkStructureType sType; + const void* pNext; + StdVideoH265ProfileIdc stdProfileIdc; +} VkVideoEncodeH265ProfileInfoKHR; + +typedef struct VkVideoEncodeH265RateControlInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeH265RateControlFlagsKHR flags; + uint32_t gopFrameCount; + uint32_t idrPeriod; + uint32_t consecutiveBFrameCount; + uint32_t subLayerCount; +} VkVideoEncodeH265RateControlInfoKHR; + +typedef struct VkVideoEncodeH265FrameSizeKHR { + uint32_t frameISize; + uint32_t framePSize; + uint32_t frameBSize; +} VkVideoEncodeH265FrameSizeKHR; + +typedef struct VkVideoEncodeH265RateControlLayerInfoKHR { + VkStructureType sType; + const void* pNext; + VkBool32 useMinQp; + VkVideoEncodeH265QpKHR minQp; + VkBool32 useMaxQp; + VkVideoEncodeH265QpKHR maxQp; + VkBool32 useMaxFrameSize; + VkVideoEncodeH265FrameSizeKHR maxFrameSize; +} VkVideoEncodeH265RateControlLayerInfoKHR; + +typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR { + VkStructureType sType; + const void* pNext; + VkBool32 useGopRemainingFrames; + uint32_t gopRemainingI; + uint32_t gopRemainingP; + uint32_t gopRemainingB; +} VkVideoEncodeH265GopRemainingFrameInfoKHR; + + + +// VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_video_decode_h264 1 +#include "vk_video/vulkan_video_codec_h264std_decode.h" +#define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9 +#define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264" + +typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR { + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0, + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001, + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002, + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoDecodeH264PictureLayoutFlagBitsKHR; +typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR; +typedef struct VkVideoDecodeH264ProfileInfoKHR { + VkStructureType sType; + const void* pNext; + StdVideoH264ProfileIdc stdProfileIdc; + VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout; +} VkVideoDecodeH264ProfileInfoKHR; + +typedef struct VkVideoDecodeH264CapabilitiesKHR { + VkStructureType sType; + void* pNext; + StdVideoH264LevelIdc maxLevelIdc; + VkOffset2D fieldOffsetGranularity; +} VkVideoDecodeH264CapabilitiesKHR; + +typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t stdSPSCount; + const StdVideoH264SequenceParameterSet* pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH264PictureParameterSet* pStdPPSs; +} VkVideoDecodeH264SessionParametersAddInfoKHR; + +typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; + const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo; +} VkVideoDecodeH264SessionParametersCreateInfoKHR; + +typedef struct VkVideoDecodeH264PictureInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH264PictureInfo* pStdPictureInfo; + uint32_t sliceCount; + const uint32_t* pSliceOffsets; +} VkVideoDecodeH264PictureInfoKHR; + +typedef struct VkVideoDecodeH264DpbSlotInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo; +} VkVideoDecodeH264DpbSlotInfoKHR; + + + +// VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_dynamic_rendering 1 +#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1 +#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering" +typedef VkRenderingFlags VkRenderingFlagsKHR; + +typedef VkRenderingFlagBits VkRenderingFlagBitsKHR; + +typedef VkRenderingInfo VkRenderingInfoKHR; + +typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR; + +typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR; + +typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR; + +typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR; + +typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; + VkExtent2D shadingRateAttachmentTexelSize; +} VkRenderingFragmentShadingRateAttachmentInfoKHR; + +typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkImageLayout imageLayout; +} VkRenderingFragmentDensityMapAttachmentInfoEXT; + +typedef struct VkAttachmentSampleCountInfoAMD { + VkStructureType sType; + const void* pNext; + uint32_t colorAttachmentCount; + const VkSampleCountFlagBits* pColorAttachmentSamples; + VkSampleCountFlagBits depthStencilAttachmentSamples; +} VkAttachmentSampleCountInfoAMD; + +typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV; + +typedef struct VkMultiviewPerViewAttributesInfoNVX { + VkStructureType sType; + const void* pNext; + VkBool32 perViewAttributes; + VkBool32 perViewAttributesPositionXOnly; +} VkMultiviewPerViewAttributesInfoNVX; + +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR( + VkCommandBuffer commandBuffer, + const VkRenderingInfo* pRenderingInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR( + VkCommandBuffer commandBuffer); +#endif + + +// VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_multiview 1 +#define VK_KHR_MULTIVIEW_SPEC_VERSION 1 +#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" +typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; + +typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; + +typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR; + + + +// VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_get_physical_device_properties2 1 +#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2 +#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" +typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; + +typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; + +typedef VkFormatProperties2 VkFormatProperties2KHR; + +typedef VkImageFormatProperties2 VkImageFormatProperties2KHR; + +typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; + +typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR; + +typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; + +typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; + +typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceFeatures2* pFeatures); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceProperties2* pProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR( + VkPhysicalDevice physicalDevice, + VkFormat format, + VkFormatProperties2* pFormatProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, + VkImageFormatProperties2* pImageFormatProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR( + VkPhysicalDevice physicalDevice, + uint32_t* pQueueFamilyPropertyCount, + VkQueueFamilyProperties2* pQueueFamilyProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR( + VkPhysicalDevice physicalDevice, + VkPhysicalDeviceMemoryProperties2* pMemoryProperties); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, + uint32_t* pPropertyCount, + VkSparseImageFormatProperties2* pProperties); +#endif + + +// VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_device_group 1 +#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4 +#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" +typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; + +typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR; + +typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR; + +typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR; + +typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; + +typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; + +typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR; + +typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR; + +typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR; + +typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; + +typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); +typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask); +typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR( + VkDevice device, + uint32_t heapIndex, + uint32_t localDeviceIndex, + uint32_t remoteDeviceIndex, + VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR( + VkCommandBuffer commandBuffer, + uint32_t deviceMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( + VkCommandBuffer commandBuffer, + uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ); +#endif + + +// VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_draw_parameters 1 +#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 +#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" + + +// VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_maintenance1 1 +#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2 +#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1" +#define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION +#define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME +typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; + +typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( + VkDevice device, + VkCommandPool commandPool, + VkCommandPoolTrimFlags flags); +#endif + + +// VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_device_group_creation 1 +#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 +#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" +#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE +typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR; + +typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR( + VkInstance instance, + uint32_t* pPhysicalDeviceGroupCount, + VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); +#endif + + +// VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_memory_capabilities 1 +#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" +#define VK_LUID_SIZE_KHR VK_LUID_SIZE +typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR; + +typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR; + +typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR; + +typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR; + +typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; + +typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; + +typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; + +typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR; + +typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; + +typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, + VkExternalBufferProperties* pExternalBufferProperties); +#endif + + +// VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_memory 1 +#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" +#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL +typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR; + +typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR; + +typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; + + + +// VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_memory_fd 1 +#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" +typedef struct VkImportMemoryFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBits handleType; + int fd; +} VkImportMemoryFdInfoKHR; + +typedef struct VkMemoryFdPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; +} VkMemoryFdPropertiesKHR; + +typedef struct VkMemoryGetFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetFdInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR( + VkDevice device, + const VkMemoryGetFdInfoKHR* pGetFdInfo, + int* pFd); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + int fd, + VkMemoryFdPropertiesKHR* pMemoryFdProperties); +#endif + + +// VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_semaphore_capabilities 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" +typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR; + +typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR; + +typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR; + +typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR; + +typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR; + +typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR; + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, + VkExternalSemaphoreProperties* pExternalSemaphoreProperties); +#endif + + +// VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_semaphore 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" +typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR; + +typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR; + +typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; + + + +// VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_semaphore_fd 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" +typedef struct VkImportSemaphoreFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkSemaphoreImportFlags flags; + VkExternalSemaphoreHandleTypeFlagBits handleType; + int fd; +} VkImportSemaphoreFdInfoKHR; + +typedef struct VkSemaphoreGetFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkExternalSemaphoreHandleTypeFlagBits handleType; +} VkSemaphoreGetFdInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR( + VkDevice device, + const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( + VkDevice device, + const VkSemaphoreGetFdInfoKHR* pGetFdInfo, + int* pFd); +#endif + + +// VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_push_descriptor 1 +#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2 +#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" +typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t maxPushDescriptors; +} VkPhysicalDevicePushDescriptorPropertiesKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); +typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t set, + uint32_t descriptorWriteCount, + const VkWriteDescriptorSet* pDescriptorWrites); + +VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( + VkCommandBuffer commandBuffer, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + VkPipelineLayout layout, + uint32_t set, + const void* pData); +#endif + + +// VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_float16_int8 1 +#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1 +#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8" +typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR; + +typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR; + + + +// VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_16bit_storage 1 +#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 +#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" +typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; + + + +// VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_incremental_present 1 +#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2 +#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" +typedef struct VkRectLayerKHR { + VkOffset2D offset; + VkExtent2D extent; + uint32_t layer; +} VkRectLayerKHR; + +typedef struct VkPresentRegionKHR { + uint32_t rectangleCount; + const VkRectLayerKHR* pRectangles; +} VkPresentRegionKHR; + +typedef struct VkPresentRegionsKHR { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const VkPresentRegionKHR* pRegions; +} VkPresentRegionsKHR; + + + +// VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_descriptor_update_template 1 +typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR; + +#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 +#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" +typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR; + +typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR; + +typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; + +typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); +typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR( + VkDevice device, + const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR( + VkDevice device, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( + VkDevice device, + VkDescriptorSet descriptorSet, + VkDescriptorUpdateTemplate descriptorUpdateTemplate, + const void* pData); +#endif + + +// VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_imageless_framebuffer 1 +#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1 +#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer" +typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR; + +typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR; + +typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR; + +typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR; + + + +// VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_create_renderpass2 1 +#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1 +#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2" +typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR; + +typedef VkAttachmentDescription2 VkAttachmentDescription2KHR; + +typedef VkAttachmentReference2 VkAttachmentReference2KHR; + +typedef VkSubpassDescription2 VkSubpassDescription2KHR; + +typedef VkSubpassDependency2 VkSubpassDependency2KHR; + +typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR; + +typedef VkSubpassEndInfo VkSubpassEndInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo); +typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR( + VkDevice device, + const VkRenderPassCreateInfo2* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkRenderPass* pRenderPass); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR( + VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo* pRenderPassBegin, + const VkSubpassBeginInfo* pSubpassBeginInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR( + VkCommandBuffer commandBuffer, + const VkSubpassBeginInfo* pSubpassBeginInfo, + const VkSubpassEndInfo* pSubpassEndInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR( + VkCommandBuffer commandBuffer, + const VkSubpassEndInfo* pSubpassEndInfo); +#endif + + +// VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shared_presentable_image 1 +#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 +#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" +typedef struct VkSharedPresentSurfaceCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkImageUsageFlags sharedPresentSupportedUsageFlags; +} VkSharedPresentSurfaceCapabilitiesKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( + VkDevice device, + VkSwapchainKHR swapchain); +#endif + + +// VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_fence_capabilities 1 +#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" +typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR; + +typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR; + +typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR; + +typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR; + +typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; + +typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; + +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, + VkExternalFenceProperties* pExternalFenceProperties); +#endif + + +// VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_fence 1 +#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" +typedef VkFenceImportFlags VkFenceImportFlagsKHR; + +typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR; + +typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; + + + +// VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_fence_fd 1 +#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" +typedef struct VkImportFenceFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkFence fence; + VkFenceImportFlags flags; + VkExternalFenceHandleTypeFlagBits handleType; + int fd; +} VkImportFenceFdInfoKHR; + +typedef struct VkFenceGetFdInfoKHR { + VkStructureType sType; + const void* pNext; + VkFence fence; + VkExternalFenceHandleTypeFlagBits handleType; +} VkFenceGetFdInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR( + VkDevice device, + const VkImportFenceFdInfoKHR* pImportFenceFdInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( + VkDevice device, + const VkFenceGetFdInfoKHR* pGetFdInfo, + int* pFd); +#endif + + +// VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_performance_query 1 +#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1 +#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query" + +typedef enum VkPerformanceCounterUnitKHR { + VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0, + VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1, + VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2, + VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3, + VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4, + VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5, + VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6, + VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7, + VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8, + VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9, + VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10, + VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterUnitKHR; + +typedef enum VkPerformanceCounterScopeKHR { + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0, + VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1, + VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2, + VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, + VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, + VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR, + VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterScopeKHR; + +typedef enum VkPerformanceCounterStorageKHR { + VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0, + VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1, + VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2, + VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3, + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4, + VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5, + VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterStorageKHR; + +typedef enum VkPerformanceCounterDescriptionFlagBitsKHR { + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001, + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002, + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR, + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR, + VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPerformanceCounterDescriptionFlagBitsKHR; +typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; + +typedef enum VkAcquireProfilingLockFlagBitsKHR { + VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAcquireProfilingLockFlagBitsKHR; +typedef VkFlags VkAcquireProfilingLockFlagsKHR; +typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 performanceCounterQueryPools; + VkBool32 performanceCounterMultipleQueryPools; +} VkPhysicalDevicePerformanceQueryFeaturesKHR; + +typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 allowCommandBufferQueryCopies; +} VkPhysicalDevicePerformanceQueryPropertiesKHR; + +typedef struct VkPerformanceCounterKHR { + VkStructureType sType; + void* pNext; + VkPerformanceCounterUnitKHR unit; + VkPerformanceCounterScopeKHR scope; + VkPerformanceCounterStorageKHR storage; + uint8_t uuid[VK_UUID_SIZE]; +} VkPerformanceCounterKHR; + +typedef struct VkPerformanceCounterDescriptionKHR { + VkStructureType sType; + void* pNext; + VkPerformanceCounterDescriptionFlagsKHR flags; + char name[VK_MAX_DESCRIPTION_SIZE]; + char category[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; +} VkPerformanceCounterDescriptionKHR; + +typedef struct VkQueryPoolPerformanceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t queueFamilyIndex; + uint32_t counterIndexCount; + const uint32_t* pCounterIndices; +} VkQueryPoolPerformanceCreateInfoKHR; + +typedef union VkPerformanceCounterResultKHR { + int32_t int32; + int64_t int64; + uint32_t uint32; + uint64_t uint64; + float float32; + double float64; +} VkPerformanceCounterResultKHR; + +typedef struct VkAcquireProfilingLockInfoKHR { + VkStructureType sType; + const void* pNext; + VkAcquireProfilingLockFlagsKHR flags; + uint64_t timeout; +} VkAcquireProfilingLockInfoKHR; + +typedef struct VkPerformanceQuerySubmitInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t counterPassIndex; +} VkPerformanceQuerySubmitInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + uint32_t* pCounterCount, + VkPerformanceCounterKHR* pCounters, + VkPerformanceCounterDescriptionKHR* pCounterDescriptions); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( + VkPhysicalDevice physicalDevice, + const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, + uint32_t* pNumPasses); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR( + VkDevice device, + const VkAcquireProfilingLockInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR( + VkDevice device); +#endif + + +// VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_maintenance2 1 +#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2" +#define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION +#define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME +typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; + +typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; + +typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; + +typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; + +typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; + +typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; + +typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR; + + + +// VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_get_surface_capabilities2 1 +#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 +#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" +typedef struct VkPhysicalDeviceSurfaceInfo2KHR { + VkStructureType sType; + const void* pNext; + VkSurfaceKHR surface; +} VkPhysicalDeviceSurfaceInfo2KHR; + +typedef struct VkSurfaceCapabilities2KHR { + VkStructureType sType; + void* pNext; + VkSurfaceCapabilitiesKHR surfaceCapabilities; +} VkSurfaceCapabilities2KHR; + +typedef struct VkSurfaceFormat2KHR { + VkStructureType sType; + void* pNext; + VkSurfaceFormatKHR surfaceFormat; +} VkSurfaceFormat2KHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + VkSurfaceCapabilities2KHR* pSurfaceCapabilities); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + uint32_t* pSurfaceFormatCount, + VkSurfaceFormat2KHR* pSurfaceFormats); +#endif + + +// VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_variable_pointers 1 +#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 +#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; + +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR; + + + +// VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_get_display_properties2 1 +#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1 +#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2" +typedef struct VkDisplayProperties2KHR { + VkStructureType sType; + void* pNext; + VkDisplayPropertiesKHR displayProperties; +} VkDisplayProperties2KHR; + +typedef struct VkDisplayPlaneProperties2KHR { + VkStructureType sType; + void* pNext; + VkDisplayPlanePropertiesKHR displayPlaneProperties; +} VkDisplayPlaneProperties2KHR; + +typedef struct VkDisplayModeProperties2KHR { + VkStructureType sType; + void* pNext; + VkDisplayModePropertiesKHR displayModeProperties; +} VkDisplayModeProperties2KHR; + +typedef struct VkDisplayPlaneInfo2KHR { + VkStructureType sType; + const void* pNext; + VkDisplayModeKHR mode; + uint32_t planeIndex; +} VkDisplayPlaneInfo2KHR; + +typedef struct VkDisplayPlaneCapabilities2KHR { + VkStructureType sType; + void* pNext; + VkDisplayPlaneCapabilitiesKHR capabilities; +} VkDisplayPlaneCapabilities2KHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkDisplayProperties2KHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkDisplayPlaneProperties2KHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display, + uint32_t* pPropertyCount, + VkDisplayModeProperties2KHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR( + VkPhysicalDevice physicalDevice, + const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, + VkDisplayPlaneCapabilities2KHR* pCapabilities); +#endif + + +// VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_dedicated_allocation 1 +#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 +#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" +typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; + +typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; + + + +// VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_storage_buffer_storage_class 1 +#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1 +#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class" + + +// VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_relaxed_block_layout 1 +#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1 +#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout" + + +// VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_get_memory_requirements2 1 +#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1 +#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" +typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; + +typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; + +typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; + +typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; + +typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; + +typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR( + VkDevice device, + const VkImageMemoryRequirementsInfo2* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR( + VkDevice device, + const VkBufferMemoryRequirementsInfo2* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( + VkDevice device, + const VkImageSparseMemoryRequirementsInfo2* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); +#endif + + +// VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_image_format_list 1 +#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 +#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" +typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR; + + + +// VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_sampler_ycbcr_conversion 1 +typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR; + +#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14 +#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" +typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR; + +typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR; + +typedef VkChromaLocation VkChromaLocationKHR; + +typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; + +typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; + +typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR; + +typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR; + +typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; + +typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); +typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR( + VkDevice device, + const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSamplerYcbcrConversion* pYcbcrConversion); + +VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( + VkDevice device, + VkSamplerYcbcrConversion ycbcrConversion, + const VkAllocationCallbacks* pAllocator); +#endif + + +// VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_bind_memory2 1 +#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1 +#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2" +typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR; + +typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); +typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR( + VkDevice device, + uint32_t bindInfoCount, + const VkBindBufferMemoryInfo* pBindInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( + VkDevice device, + uint32_t bindInfoCount, + const VkBindImageMemoryInfo* pBindInfos); +#endif + + +// VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_maintenance3 1 +#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3" +#define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION +#define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME +typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; + +typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; + +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR( + VkDevice device, + const VkDescriptorSetLayoutCreateInfo* pCreateInfo, + VkDescriptorSetLayoutSupport* pSupport); +#endif + + +// VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_draw_indirect_count 1 +#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 +#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count" +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif + + +// VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_subgroup_extended_types 1 +#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1 +#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types" +typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR; + + + +// VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_8bit_storage 1 +#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1 +#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage" +typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR; + + + +// VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_atomic_int64 1 +#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1 +#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64" +typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; + + + +// VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_clock 1 +#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1 +#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock" +typedef struct VkPhysicalDeviceShaderClockFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupClock; + VkBool32 shaderDeviceClock; +} VkPhysicalDeviceShaderClockFeaturesKHR; + + + +// VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_video_decode_h265 1 +#include "vk_video/vulkan_video_codec_h265std_decode.h" +#define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8 +#define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265" +typedef struct VkVideoDecodeH265ProfileInfoKHR { + VkStructureType sType; + const void* pNext; + StdVideoH265ProfileIdc stdProfileIdc; +} VkVideoDecodeH265ProfileInfoKHR; + +typedef struct VkVideoDecodeH265CapabilitiesKHR { + VkStructureType sType; + void* pNext; + StdVideoH265LevelIdc maxLevelIdc; +} VkVideoDecodeH265CapabilitiesKHR; + +typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t stdVPSCount; + const StdVideoH265VideoParameterSet* pStdVPSs; + uint32_t stdSPSCount; + const StdVideoH265SequenceParameterSet* pStdSPSs; + uint32_t stdPPSCount; + const StdVideoH265PictureParameterSet* pStdPPSs; +} VkVideoDecodeH265SessionParametersAddInfoKHR; + +typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t maxStdVPSCount; + uint32_t maxStdSPSCount; + uint32_t maxStdPPSCount; + const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo; +} VkVideoDecodeH265SessionParametersCreateInfoKHR; + +typedef struct VkVideoDecodeH265PictureInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH265PictureInfo* pStdPictureInfo; + uint32_t sliceSegmentCount; + const uint32_t* pSliceSegmentOffsets; +} VkVideoDecodeH265PictureInfoKHR; + +typedef struct VkVideoDecodeH265DpbSlotInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo; +} VkVideoDecodeH265DpbSlotInfoKHR; + + + +// VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_global_priority 1 +#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR 16U +#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1 +#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority" + +typedef enum VkQueueGlobalPriorityKHR { + VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128, + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256, + VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512, + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024, + VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR, + VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR, + VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR, + VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR, + VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 0x7FFFFFFF +} VkQueueGlobalPriorityKHR; +typedef struct VkDeviceQueueGlobalPriorityCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkQueueGlobalPriorityKHR globalPriority; +} VkDeviceQueueGlobalPriorityCreateInfoKHR; + +typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 globalPriorityQuery; +} VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR; + +typedef struct VkQueueFamilyGlobalPriorityPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t priorityCount; + VkQueueGlobalPriorityKHR priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR]; +} VkQueueFamilyGlobalPriorityPropertiesKHR; + + + +// VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_driver_properties 1 +#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 +#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" +#define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE +#define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE +typedef VkDriverId VkDriverIdKHR; + +typedef VkConformanceVersion VkConformanceVersionKHR; + +typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR; + + + +// VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_float_controls 1 +#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4 +#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls" +typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR; + +typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR; + + + +// VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_depth_stencil_resolve 1 +#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1 +#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve" +typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR; + +typedef VkResolveModeFlags VkResolveModeFlagsKHR; + +typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR; + +typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR; + + + +// VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_swapchain_mutable_format 1 +#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1 +#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format" + + +// VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_timeline_semaphore 1 +#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2 +#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore" +typedef VkSemaphoreType VkSemaphoreTypeKHR; + +typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR; + +typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR; + +typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR; + +typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR; + +typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR; + +typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR; + +typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR; + +typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue); +typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout); +typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR( + VkDevice device, + VkSemaphore semaphore, + uint64_t* pValue); + +VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR( + VkDevice device, + const VkSemaphoreWaitInfo* pWaitInfo, + uint64_t timeout); + +VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR( + VkDevice device, + const VkSemaphoreSignalInfo* pSignalInfo); +#endif + + +// VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_vulkan_memory_model 1 +#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3 +#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" +typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; + + + +// VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_terminate_invocation 1 +#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1 +#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation" +typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR; + + + +// VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_fragment_shading_rate 1 +#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2 +#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate" + +typedef enum VkFragmentShadingRateCombinerOpKHR { + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0, + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1, + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2, + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3, + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4, + VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF +} VkFragmentShadingRateCombinerOpKHR; +typedef struct VkFragmentShadingRateAttachmentInfoKHR { + VkStructureType sType; + const void* pNext; + const VkAttachmentReference2* pFragmentShadingRateAttachment; + VkExtent2D shadingRateAttachmentTexelSize; +} VkFragmentShadingRateAttachmentInfoKHR; + +typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkExtent2D fragmentSize; + VkFragmentShadingRateCombinerOpKHR combinerOps[2]; +} VkPipelineFragmentShadingRateStateCreateInfoKHR; + +typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 pipelineFragmentShadingRate; + VkBool32 primitiveFragmentShadingRate; + VkBool32 attachmentFragmentShadingRate; +} VkPhysicalDeviceFragmentShadingRateFeaturesKHR; + +typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR { + VkStructureType sType; + void* pNext; + VkExtent2D minFragmentShadingRateAttachmentTexelSize; + VkExtent2D maxFragmentShadingRateAttachmentTexelSize; + uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio; + VkBool32 primitiveFragmentShadingRateWithMultipleViewports; + VkBool32 layeredShadingRateAttachments; + VkBool32 fragmentShadingRateNonTrivialCombinerOps; + VkExtent2D maxFragmentSize; + uint32_t maxFragmentSizeAspectRatio; + uint32_t maxFragmentShadingRateCoverageSamples; + VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples; + VkBool32 fragmentShadingRateWithShaderDepthStencilWrites; + VkBool32 fragmentShadingRateWithSampleMask; + VkBool32 fragmentShadingRateWithShaderSampleMask; + VkBool32 fragmentShadingRateWithConservativeRasterization; + VkBool32 fragmentShadingRateWithFragmentShaderInterlock; + VkBool32 fragmentShadingRateWithCustomSampleLocations; + VkBool32 fragmentShadingRateStrictMultiplyCombiner; +} VkPhysicalDeviceFragmentShadingRatePropertiesKHR; + +typedef struct VkPhysicalDeviceFragmentShadingRateKHR { + VkStructureType sType; + void* pNext; + VkSampleCountFlags sampleCounts; + VkExtent2D fragmentSize; +} VkPhysicalDeviceFragmentShadingRateKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); +typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR( + VkPhysicalDevice physicalDevice, + uint32_t* pFragmentShadingRateCount, + VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR( + VkCommandBuffer commandBuffer, + const VkExtent2D* pFragmentSize, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); +#endif + + +// VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_dynamic_rendering_local_read 1 +#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1 +#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read" +typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 dynamicRenderingLocalRead; +} VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR; + +typedef struct VkRenderingAttachmentLocationInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t colorAttachmentCount; + const uint32_t* pColorAttachmentLocations; +} VkRenderingAttachmentLocationInfoKHR; + +typedef struct VkRenderingInputAttachmentIndexInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t colorAttachmentCount; + const uint32_t* pColorAttachmentInputIndices; + const uint32_t* pDepthInputAttachmentIndex; + const uint32_t* pStencilInputAttachmentIndex; +} VkRenderingInputAttachmentIndexInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfoKHR* pLocationInfo); +typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR( + VkCommandBuffer commandBuffer, + const VkRenderingAttachmentLocationInfoKHR* pLocationInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR( + VkCommandBuffer commandBuffer, + const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo); +#endif + + +// VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_quad_control 1 +#define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1 +#define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control" +typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderQuadControl; +} VkPhysicalDeviceShaderQuadControlFeaturesKHR; + + + +// VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_spirv_1_4 1 +#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1 +#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4" + + +// VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_surface_protected_capabilities 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities" +typedef struct VkSurfaceProtectedCapabilitiesKHR { + VkStructureType sType; + const void* pNext; + VkBool32 supportsProtected; +} VkSurfaceProtectedCapabilitiesKHR; + + + +// VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_separate_depth_stencil_layouts 1 +#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1 +#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts" +typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR; + +typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR; + +typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR; + + + +// VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_present_wait 1 +#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1 +#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait" +typedef struct VkPhysicalDevicePresentWaitFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentWait; +} VkPhysicalDevicePresentWaitFeaturesKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR( + VkDevice device, + VkSwapchainKHR swapchain, + uint64_t presentId, + uint64_t timeout); +#endif + + +// VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_uniform_buffer_standard_layout 1 +#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1 +#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout" +typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR; + + + +// VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_buffer_device_address 1 +#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1 +#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address" +typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR; + +typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR; + +typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR; + +typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR; + +typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR; + +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); +typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); +typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); + +VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); + +VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR( + VkDevice device, + const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); +#endif + + +// VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_deferred_host_operations 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR) +#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4 +#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations" +typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation); +typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator); +typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation); +typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR( + VkDevice device, + const VkAllocationCallbacks* pAllocator, + VkDeferredOperationKHR* pDeferredOperation); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR( + VkDevice device, + VkDeferredOperationKHR operation, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR( + VkDevice device, + VkDeferredOperationKHR operation); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR( + VkDevice device, + VkDeferredOperationKHR operation); + +VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR( + VkDevice device, + VkDeferredOperationKHR operation); +#endif + + +// VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_pipeline_executable_properties 1 +#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1 +#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties" + +typedef enum VkPipelineExecutableStatisticFormatKHR { + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0, + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1, + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2, + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3, + VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF +} VkPipelineExecutableStatisticFormatKHR; +typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 pipelineExecutableInfo; +} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR; + +typedef struct VkPipelineInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipeline pipeline; +} VkPipelineInfoKHR; + +typedef struct VkPipelineExecutablePropertiesKHR { + VkStructureType sType; + void* pNext; + VkShaderStageFlags stages; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + uint32_t subgroupSize; +} VkPipelineExecutablePropertiesKHR; + +typedef struct VkPipelineExecutableInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipeline pipeline; + uint32_t executableIndex; +} VkPipelineExecutableInfoKHR; + +typedef union VkPipelineExecutableStatisticValueKHR { + VkBool32 b32; + int64_t i64; + uint64_t u64; + double f64; +} VkPipelineExecutableStatisticValueKHR; + +typedef struct VkPipelineExecutableStatisticKHR { + VkStructureType sType; + void* pNext; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkPipelineExecutableStatisticFormatKHR format; + VkPipelineExecutableStatisticValueKHR value; +} VkPipelineExecutableStatisticKHR; + +typedef struct VkPipelineExecutableInternalRepresentationKHR { + VkStructureType sType; + void* pNext; + char name[VK_MAX_DESCRIPTION_SIZE]; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkBool32 isText; + size_t dataSize; + void* pData; +} VkPipelineExecutableInternalRepresentationKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics); +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR( + VkDevice device, + const VkPipelineInfoKHR* pPipelineInfo, + uint32_t* pExecutableCount, + VkPipelineExecutablePropertiesKHR* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR( + VkDevice device, + const VkPipelineExecutableInfoKHR* pExecutableInfo, + uint32_t* pStatisticCount, + VkPipelineExecutableStatisticKHR* pStatistics); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR( + VkDevice device, + const VkPipelineExecutableInfoKHR* pExecutableInfo, + uint32_t* pInternalRepresentationCount, + VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); +#endif + + +// VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_map_memory2 1 +#define VK_KHR_MAP_MEMORY_2_SPEC_VERSION 1 +#define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2" + +typedef enum VkMemoryUnmapFlagBitsKHR { + VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001, + VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkMemoryUnmapFlagBitsKHR; +typedef VkFlags VkMemoryUnmapFlagsKHR; +typedef struct VkMemoryMapInfoKHR { + VkStructureType sType; + const void* pNext; + VkMemoryMapFlags flags; + VkDeviceMemory memory; + VkDeviceSize offset; + VkDeviceSize size; +} VkMemoryMapInfoKHR; + +typedef struct VkMemoryUnmapInfoKHR { + VkStructureType sType; + const void* pNext; + VkMemoryUnmapFlagsKHR flags; + VkDeviceMemory memory; +} VkMemoryUnmapInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfoKHR* pMemoryMapInfo, void** ppData); +typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR( + VkDevice device, + const VkMemoryMapInfoKHR* pMemoryMapInfo, + void** ppData); + +VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR( + VkDevice device, + const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo); +#endif + + +// VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_integer_dot_product 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1 +#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product" +typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR; + +typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR; + + + +// VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_pipeline_library 1 +#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1 +#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library" +typedef struct VkPipelineLibraryCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t libraryCount; + const VkPipeline* pLibraries; +} VkPipelineLibraryCreateInfoKHR; + + + +// VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_non_semantic_info 1 +#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1 +#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info" + + +// VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_present_id 1 +#define VK_KHR_PRESENT_ID_SPEC_VERSION 1 +#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id" +typedef struct VkPresentIdKHR { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const uint64_t* pPresentIds; +} VkPresentIdKHR; + +typedef struct VkPhysicalDevicePresentIdFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 presentId; +} VkPhysicalDevicePresentIdFeaturesKHR; + + + +// VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_video_encode_queue 1 +#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12 +#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue" + +typedef enum VkVideoEncodeTuningModeKHR { + VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1, + VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2, + VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3, + VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4, + VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeTuningModeKHR; + +typedef enum VkVideoEncodeFlagBitsKHR { + VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeFlagBitsKHR; +typedef VkFlags VkVideoEncodeFlagsKHR; + +typedef enum VkVideoEncodeCapabilityFlagBitsKHR { + VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeCapabilityFlagBitsKHR; +typedef VkFlags VkVideoEncodeCapabilityFlagsKHR; + +typedef enum VkVideoEncodeRateControlModeFlagBitsKHR { + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeRateControlModeFlagBitsKHR; +typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR; + +typedef enum VkVideoEncodeFeedbackFlagBitsKHR { + VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeFeedbackFlagBitsKHR; +typedef VkFlags VkVideoEncodeFeedbackFlagsKHR; + +typedef enum VkVideoEncodeUsageFlagBitsKHR { + VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008, + VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeUsageFlagBitsKHR; +typedef VkFlags VkVideoEncodeUsageFlagsKHR; + +typedef enum VkVideoEncodeContentFlagBitsKHR { + VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0, + VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001, + VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002, + VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004, + VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkVideoEncodeContentFlagBitsKHR; +typedef VkFlags VkVideoEncodeContentFlagsKHR; +typedef VkFlags VkVideoEncodeRateControlFlagsKHR; +typedef struct VkVideoEncodeInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeFlagsKHR flags; + VkBuffer dstBuffer; + VkDeviceSize dstBufferOffset; + VkDeviceSize dstBufferRange; + VkVideoPictureResourceInfoKHR srcPictureResource; + const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot; + uint32_t referenceSlotCount; + const VkVideoReferenceSlotInfoKHR* pReferenceSlots; + uint32_t precedingExternallyEncodedBytes; +} VkVideoEncodeInfoKHR; + +typedef struct VkVideoEncodeCapabilitiesKHR { + VkStructureType sType; + void* pNext; + VkVideoEncodeCapabilityFlagsKHR flags; + VkVideoEncodeRateControlModeFlagsKHR rateControlModes; + uint32_t maxRateControlLayers; + uint64_t maxBitrate; + uint32_t maxQualityLevels; + VkExtent2D encodeInputPictureGranularity; + VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags; +} VkVideoEncodeCapabilitiesKHR; + +typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags; +} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR; + +typedef struct VkVideoEncodeUsageInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeUsageFlagsKHR videoUsageHints; + VkVideoEncodeContentFlagsKHR videoContentHints; + VkVideoEncodeTuningModeKHR tuningMode; +} VkVideoEncodeUsageInfoKHR; + +typedef struct VkVideoEncodeRateControlLayerInfoKHR { + VkStructureType sType; + const void* pNext; + uint64_t averageBitrate; + uint64_t maxBitrate; + uint32_t frameRateNumerator; + uint32_t frameRateDenominator; +} VkVideoEncodeRateControlLayerInfoKHR; + +typedef struct VkVideoEncodeRateControlInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoEncodeRateControlFlagsKHR flags; + VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode; + uint32_t layerCount; + const VkVideoEncodeRateControlLayerInfoKHR* pLayers; + uint32_t virtualBufferSizeInMs; + uint32_t initialVirtualBufferSizeInMs; +} VkVideoEncodeRateControlInfoKHR; + +typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR { + VkStructureType sType; + const void* pNext; + const VkVideoProfileInfoKHR* pVideoProfile; + uint32_t qualityLevel; +} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR; + +typedef struct VkVideoEncodeQualityLevelPropertiesKHR { + VkStructureType sType; + void* pNext; + VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode; + uint32_t preferredRateControlLayerCount; +} VkVideoEncodeQualityLevelPropertiesKHR; + +typedef struct VkVideoEncodeQualityLevelInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t qualityLevel; +} VkVideoEncodeQualityLevelInfoKHR; + +typedef struct VkVideoEncodeSessionParametersGetInfoKHR { + VkStructureType sType; + const void* pNext; + VkVideoSessionParametersKHR videoSessionParameters; +} VkVideoEncodeSessionParametersGetInfoKHR; + +typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR { + VkStructureType sType; + void* pNext; + VkBool32 hasOverrides; +} VkVideoEncodeSessionParametersFeedbackInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData); +typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, + VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR( + VkDevice device, + const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, + VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, + size_t* pDataSize, + void* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR( + VkCommandBuffer commandBuffer, + const VkVideoEncodeInfoKHR* pEncodeInfo); +#endif + + +// VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_synchronization2 1 +#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1 +#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2" +typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR; + +typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR; + +typedef VkAccessFlags2 VkAccessFlags2KHR; + +typedef VkAccessFlagBits2 VkAccessFlagBits2KHR; + +typedef VkSubmitFlagBits VkSubmitFlagBitsKHR; + +typedef VkSubmitFlags VkSubmitFlagsKHR; + +typedef VkMemoryBarrier2 VkMemoryBarrier2KHR; + +typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR; + +typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR; + +typedef VkDependencyInfo VkDependencyInfoKHR; + +typedef VkSubmitInfo2 VkSubmitInfo2KHR; + +typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR; + +typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR; + +typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR; + +typedef struct VkQueueFamilyCheckpointProperties2NV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2 checkpointExecutionStageMask; +} VkQueueFamilyCheckpointProperties2NV; + +typedef struct VkCheckpointData2NV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags2 stage; + void* pCheckpointMarker; +} VkCheckpointData2NV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask); +typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos); +typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence); +typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); +typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR( + VkCommandBuffer commandBuffer, + VkEvent event, + const VkDependencyInfo* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR( + VkCommandBuffer commandBuffer, + VkEvent event, + VkPipelineStageFlags2 stageMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR( + VkCommandBuffer commandBuffer, + uint32_t eventCount, + const VkEvent* pEvents, + const VkDependencyInfo* pDependencyInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR( + VkCommandBuffer commandBuffer, + const VkDependencyInfo* pDependencyInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2 stage, + VkQueryPool queryPool, + uint32_t query); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR( + VkQueue queue, + uint32_t submitCount, + const VkSubmitInfo2* pSubmits, + VkFence fence); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD( + VkCommandBuffer commandBuffer, + VkPipelineStageFlags2 stage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker); + +VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV( + VkQueue queue, + uint32_t* pCheckpointDataCount, + VkCheckpointData2NV* pCheckpointData); +#endif + + +// VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_fragment_shader_barycentric 1 +#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 +#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric" +typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShaderBarycentric; +} VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR; + +typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 triStripVertexOrderIndependentOfProvokingVertex; +} VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR; + + + +// VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_subgroup_uniform_control_flow 1 +#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1 +#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow" +typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupUniformControlFlow; +} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR; + + + +// VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_zero_initialize_workgroup_memory 1 +#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1 +#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory" +typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR; + + + +// VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_workgroup_memory_explicit_layout 1 +#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1 +#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout" +typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 workgroupMemoryExplicitLayout; + VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout; + VkBool32 workgroupMemoryExplicitLayout8BitAccess; + VkBool32 workgroupMemoryExplicitLayout16BitAccess; +} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR; + + + +// VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_copy_commands2 1 +#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1 +#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2" +typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR; + +typedef VkCopyImageInfo2 VkCopyImageInfo2KHR; + +typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR; + +typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR; + +typedef VkBlitImageInfo2 VkBlitImageInfo2KHR; + +typedef VkResolveImageInfo2 VkResolveImageInfo2KHR; + +typedef VkBufferCopy2 VkBufferCopy2KHR; + +typedef VkImageCopy2 VkImageCopy2KHR; + +typedef VkImageBlit2 VkImageBlit2KHR; + +typedef VkBufferImageCopy2 VkBufferImageCopy2KHR; + +typedef VkImageResolve2 VkImageResolve2KHR; + +typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo); +typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR( + VkCommandBuffer commandBuffer, + const VkCopyBufferInfo2* pCopyBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR( + VkCommandBuffer commandBuffer, + const VkCopyImageInfo2* pCopyImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR( + VkCommandBuffer commandBuffer, + const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR( + VkCommandBuffer commandBuffer, + const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR( + VkCommandBuffer commandBuffer, + const VkBlitImageInfo2* pBlitImageInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR( + VkCommandBuffer commandBuffer, + const VkResolveImageInfo2* pResolveImageInfo); +#endif + + +// VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_format_feature_flags2 1 +#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2 +#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2" +typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR; + +typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR; + +typedef VkFormatProperties3 VkFormatProperties3KHR; + + + +// VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_ray_tracing_maintenance1 1 +#define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1 +#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1" +typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 rayTracingMaintenance1; + VkBool32 rayTracingPipelineTraceRaysIndirect2; +} VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR; + +typedef struct VkTraceRaysIndirectCommand2KHR { + VkDeviceAddress raygenShaderRecordAddress; + VkDeviceSize raygenShaderRecordSize; + VkDeviceAddress missShaderBindingTableAddress; + VkDeviceSize missShaderBindingTableSize; + VkDeviceSize missShaderBindingTableStride; + VkDeviceAddress hitShaderBindingTableAddress; + VkDeviceSize hitShaderBindingTableSize; + VkDeviceSize hitShaderBindingTableStride; + VkDeviceAddress callableShaderBindingTableAddress; + VkDeviceSize callableShaderBindingTableSize; + VkDeviceSize callableShaderBindingTableStride; + uint32_t width; + uint32_t height; + uint32_t depth; +} VkTraceRaysIndirectCommand2KHR; + +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR( + VkCommandBuffer commandBuffer, + VkDeviceAddress indirectDeviceAddress); +#endif + + +// VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_portability_enumeration 1 +#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1 +#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration" + + +// VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_maintenance4 1 +#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2 +#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4" +typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR; + +typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR; + +typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR; + +typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR; + +typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR( + VkDevice device, + const VkDeviceBufferMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR( + VkDevice device, + const VkDeviceImageMemoryRequirements* pInfo, + uint32_t* pSparseMemoryRequirementCount, + VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); +#endif + + +// VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_subgroup_rotate 1 +#define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2 +#define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate" +typedef struct VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderSubgroupRotate; + VkBool32 shaderSubgroupRotateClustered; +} VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR; + + + +// VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_maximal_reconvergence 1 +#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1 +#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence" +typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderMaximalReconvergence; +} VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR; + + + +// VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_maintenance5 1 +#define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5" +typedef VkFlags64 VkPipelineCreateFlags2KHR; + +// Flag bits for VkPipelineCreateFlagBits2KHR +typedef VkFlags64 VkPipelineCreateFlagBits2KHR; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL; +static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL; + +typedef VkFlags64 VkBufferUsageFlags2KHR; + +// Flag bits for VkBufferUsageFlagBits2KHR +typedef VkFlags64 VkBufferUsageFlagBits2KHR; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL; +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL; +#endif +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL; +static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL; + +typedef struct VkPhysicalDeviceMaintenance5FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 maintenance5; +} VkPhysicalDeviceMaintenance5FeaturesKHR; + +typedef struct VkPhysicalDeviceMaintenance5PropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting; + VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting; + VkBool32 depthStencilSwizzleOneSupport; + VkBool32 polygonModePointSize; + VkBool32 nonStrictSinglePixelWideLinesUseParallelogram; + VkBool32 nonStrictWideLinesUseParallelogram; +} VkPhysicalDeviceMaintenance5PropertiesKHR; + +typedef struct VkRenderingAreaInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t viewMask; + uint32_t colorAttachmentCount; + const VkFormat* pColorAttachmentFormats; + VkFormat depthAttachmentFormat; + VkFormat stencilAttachmentFormat; +} VkRenderingAreaInfoKHR; + +typedef struct VkImageSubresource2KHR { + VkStructureType sType; + void* pNext; + VkImageSubresource imageSubresource; +} VkImageSubresource2KHR; + +typedef struct VkDeviceImageSubresourceInfoKHR { + VkStructureType sType; + const void* pNext; + const VkImageCreateInfo* pCreateInfo; + const VkImageSubresource2KHR* pSubresource; +} VkDeviceImageSubresourceInfoKHR; + +typedef struct VkSubresourceLayout2KHR { + VkStructureType sType; + void* pNext; + VkSubresourceLayout subresourceLayout; +} VkSubresourceLayout2KHR; + +typedef struct VkPipelineCreateFlags2CreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags2KHR flags; +} VkPipelineCreateFlags2CreateInfoKHR; + +typedef struct VkBufferUsageFlags2CreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkBufferUsageFlags2KHR usage; +} VkBufferUsageFlags2CreateInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType); +typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfoKHR* pRenderingAreaInfo, VkExtent2D* pGranularity); +typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfoKHR* pInfo, VkSubresourceLayout2KHR* pLayout); +typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkDeviceSize size, + VkIndexType indexType); + +VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR( + VkDevice device, + const VkRenderingAreaInfoKHR* pRenderingAreaInfo, + VkExtent2D* pGranularity); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR( + VkDevice device, + const VkDeviceImageSubresourceInfoKHR* pInfo, + VkSubresourceLayout2KHR* pLayout); + +VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR( + VkDevice device, + VkImage image, + const VkImageSubresource2KHR* pSubresource, + VkSubresourceLayout2KHR* pLayout); +#endif + + +// VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_ray_tracing_position_fetch 1 +#define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1 +#define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch" +typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 rayTracingPositionFetch; +} VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR; + + + +// VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_cooperative_matrix 1 +#define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2 +#define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix" + +typedef enum VkComponentTypeKHR { + VK_COMPONENT_TYPE_FLOAT16_KHR = 0, + VK_COMPONENT_TYPE_FLOAT32_KHR = 1, + VK_COMPONENT_TYPE_FLOAT64_KHR = 2, + VK_COMPONENT_TYPE_SINT8_KHR = 3, + VK_COMPONENT_TYPE_SINT16_KHR = 4, + VK_COMPONENT_TYPE_SINT32_KHR = 5, + VK_COMPONENT_TYPE_SINT64_KHR = 6, + VK_COMPONENT_TYPE_UINT8_KHR = 7, + VK_COMPONENT_TYPE_UINT16_KHR = 8, + VK_COMPONENT_TYPE_UINT32_KHR = 9, + VK_COMPONENT_TYPE_UINT64_KHR = 10, + VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR, + VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR, + VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR, + VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR, + VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR, + VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR, + VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR, + VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR, + VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR, + VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR, + VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR, + VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkComponentTypeKHR; + +typedef enum VkScopeKHR { + VK_SCOPE_DEVICE_KHR = 1, + VK_SCOPE_WORKGROUP_KHR = 2, + VK_SCOPE_SUBGROUP_KHR = 3, + VK_SCOPE_QUEUE_FAMILY_KHR = 5, + VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR, + VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR, + VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR, + VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR, + VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkScopeKHR; +typedef struct VkCooperativeMatrixPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t MSize; + uint32_t NSize; + uint32_t KSize; + VkComponentTypeKHR AType; + VkComponentTypeKHR BType; + VkComponentTypeKHR CType; + VkComponentTypeKHR ResultType; + VkBool32 saturatingAccumulation; + VkScopeKHR scope; +} VkCooperativeMatrixPropertiesKHR; + +typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 cooperativeMatrix; + VkBool32 cooperativeMatrixRobustBufferAccess; +} VkPhysicalDeviceCooperativeMatrixFeaturesKHR; + +typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR { + VkStructureType sType; + void* pNext; + VkShaderStageFlags cooperativeMatrixSupportedStages; +} VkPhysicalDeviceCooperativeMatrixPropertiesKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeMatrixPropertiesKHR* pProperties); +#endif + + +// VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_video_decode_av1 1 +#include "vk_video/vulkan_video_codec_av1std.h" +#include "vk_video/vulkan_video_codec_av1std_decode.h" +#define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U +#define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1 +#define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1" +typedef struct VkVideoDecodeAV1ProfileInfoKHR { + VkStructureType sType; + const void* pNext; + StdVideoAV1Profile stdProfile; + VkBool32 filmGrainSupport; +} VkVideoDecodeAV1ProfileInfoKHR; + +typedef struct VkVideoDecodeAV1CapabilitiesKHR { + VkStructureType sType; + void* pNext; + StdVideoAV1Level maxLevel; +} VkVideoDecodeAV1CapabilitiesKHR; + +typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoAV1SequenceHeader* pStdSequenceHeader; +} VkVideoDecodeAV1SessionParametersCreateInfoKHR; + +typedef struct VkVideoDecodeAV1PictureInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeAV1PictureInfo* pStdPictureInfo; + int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR]; + uint32_t frameHeaderOffset; + uint32_t tileCount; + const uint32_t* pTileOffsets; + const uint32_t* pTileSizes; +} VkVideoDecodeAV1PictureInfoKHR; + +typedef struct VkVideoDecodeAV1DpbSlotInfoKHR { + VkStructureType sType; + const void* pNext; + const StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo; +} VkVideoDecodeAV1DpbSlotInfoKHR; + + + +// VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_video_maintenance1 1 +#define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1 +#define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1" +typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 videoMaintenance1; +} VkPhysicalDeviceVideoMaintenance1FeaturesKHR; + +typedef struct VkVideoInlineQueryInfoKHR { + VkStructureType sType; + const void* pNext; + VkQueryPool queryPool; + uint32_t firstQuery; + uint32_t queryCount; +} VkVideoInlineQueryInfoKHR; + + + +// VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_vertex_attribute_divisor 1 +#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1 +#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor" +typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t maxVertexAttribDivisor; + VkBool32 supportsNonZeroFirstInstance; +} VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR; + +typedef struct VkVertexInputBindingDivisorDescriptionKHR { + uint32_t binding; + uint32_t divisor; +} VkVertexInputBindingDivisorDescriptionKHR; + +typedef struct VkPipelineVertexInputDivisorStateCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t vertexBindingDivisorCount; + const VkVertexInputBindingDivisorDescriptionKHR* pVertexBindingDivisors; +} VkPipelineVertexInputDivisorStateCreateInfoKHR; + +typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 vertexAttributeInstanceRateDivisor; + VkBool32 vertexAttributeInstanceRateZeroDivisor; +} VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR; + + + +// VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_load_store_op_none 1 +#define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1 +#define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none" + + +// VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_float_controls2 1 +#define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1 +#define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2" +typedef struct VkPhysicalDeviceShaderFloatControls2FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderFloatControls2; +} VkPhysicalDeviceShaderFloatControls2FeaturesKHR; + + + +// VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_index_type_uint8 1 +#define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1 +#define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8" +typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 indexTypeUint8; +} VkPhysicalDeviceIndexTypeUint8FeaturesKHR; + + + +// VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_line_rasterization 1 +#define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1 +#define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization" + +typedef enum VkLineRasterizationModeKHR { + VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = 0, + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = 1, + VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = 2, + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = 3, + VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR, + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR, + VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR, + VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR, + VK_LINE_RASTERIZATION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkLineRasterizationModeKHR; +typedef struct VkPhysicalDeviceLineRasterizationFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 rectangularLines; + VkBool32 bresenhamLines; + VkBool32 smoothLines; + VkBool32 stippledRectangularLines; + VkBool32 stippledBresenhamLines; + VkBool32 stippledSmoothLines; +} VkPhysicalDeviceLineRasterizationFeaturesKHR; + +typedef struct VkPhysicalDeviceLineRasterizationPropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t lineSubPixelPrecisionBits; +} VkPhysicalDeviceLineRasterizationPropertiesKHR; + +typedef struct VkPipelineRasterizationLineStateCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkLineRasterizationModeKHR lineRasterizationMode; + VkBool32 stippledLineEnable; + uint32_t lineStippleFactor; + uint16_t lineStipplePattern; +} VkPipelineRasterizationLineStateCreateInfoKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR( + VkCommandBuffer commandBuffer, + uint32_t lineStippleFactor, + uint16_t lineStipplePattern); +#endif + + +// VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_calibrated_timestamps 1 +#define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1 +#define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps" + +typedef enum VkTimeDomainKHR { + VK_TIME_DOMAIN_DEVICE_KHR = 0, + VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1, + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2, + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3, + VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR, + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR, + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR, + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR, + VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF +} VkTimeDomainKHR; +typedef struct VkCalibratedTimestampInfoKHR { + VkStructureType sType; + const void* pNext; + VkTimeDomainKHR timeDomain; +} VkCalibratedTimestampInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains); +typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( + VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR( + VkDevice device, + uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, + uint64_t* pTimestamps, + uint64_t* pMaxDeviation); +#endif + + +// VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_shader_expect_assume 1 +#define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1 +#define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume" +typedef struct VkPhysicalDeviceShaderExpectAssumeFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderExpectAssume; +} VkPhysicalDeviceShaderExpectAssumeFeaturesKHR; + + + +// VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_maintenance6 1 +#define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1 +#define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6" +typedef struct VkPhysicalDeviceMaintenance6FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 maintenance6; +} VkPhysicalDeviceMaintenance6FeaturesKHR; + +typedef struct VkPhysicalDeviceMaintenance6PropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 blockTexelViewCompatibleMultipleLayers; + uint32_t maxCombinedImageSamplerDescriptorCount; + VkBool32 fragmentShadingRateClampCombinerInputs; +} VkPhysicalDeviceMaintenance6PropertiesKHR; + +typedef struct VkBindMemoryStatusKHR { + VkStructureType sType; + const void* pNext; + VkResult* pResult; +} VkBindMemoryStatusKHR; + +typedef struct VkBindDescriptorSetsInfoKHR { + VkStructureType sType; + const void* pNext; + VkShaderStageFlags stageFlags; + VkPipelineLayout layout; + uint32_t firstSet; + uint32_t descriptorSetCount; + const VkDescriptorSet* pDescriptorSets; + uint32_t dynamicOffsetCount; + const uint32_t* pDynamicOffsets; +} VkBindDescriptorSetsInfoKHR; + +typedef struct VkPushConstantsInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipelineLayout layout; + VkShaderStageFlags stageFlags; + uint32_t offset; + uint32_t size; + const void* pValues; +} VkPushConstantsInfoKHR; + +typedef struct VkPushDescriptorSetInfoKHR { + VkStructureType sType; + const void* pNext; + VkShaderStageFlags stageFlags; + VkPipelineLayout layout; + uint32_t set; + uint32_t descriptorWriteCount; + const VkWriteDescriptorSet* pDescriptorWrites; +} VkPushDescriptorSetInfoKHR; + +typedef struct VkPushDescriptorSetWithTemplateInfoKHR { + VkStructureType sType; + const void* pNext; + VkDescriptorUpdateTemplate descriptorUpdateTemplate; + VkPipelineLayout layout; + uint32_t set; + const void* pData; +} VkPushDescriptorSetWithTemplateInfoKHR; + +typedef struct VkSetDescriptorBufferOffsetsInfoEXT { + VkStructureType sType; + const void* pNext; + VkShaderStageFlags stageFlags; + VkPipelineLayout layout; + uint32_t firstSet; + uint32_t setCount; + const uint32_t* pBufferIndices; + const VkDeviceSize* pOffsets; +} VkSetDescriptorBufferOffsetsInfoEXT; + +typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT { + VkStructureType sType; + const void* pNext; + VkShaderStageFlags stageFlags; + VkPipelineLayout layout; + uint32_t set; +} VkBindDescriptorBufferEmbeddedSamplersInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo); +typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfoKHR* pPushConstantsInfo); +typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo); +typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo); +typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR( + VkCommandBuffer commandBuffer, + const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR( + VkCommandBuffer commandBuffer, + const VkPushConstantsInfoKHR* pPushConstantsInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR( + VkCommandBuffer commandBuffer, + const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR( + VkCommandBuffer commandBuffer, + const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT( + VkCommandBuffer commandBuffer, + const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( + VkCommandBuffer commandBuffer, + const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo); +#endif + + +// VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_debug_report 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) +#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10 +#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" + +typedef enum VkDebugReportObjectTypeEXT { + VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0, + VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1, + VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2, + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3, + VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4, + VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5, + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6, + VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7, + VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8, + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9, + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10, + VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11, + VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12, + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13, + VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14, + VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15, + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16, + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17, + VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18, + VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19, + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20, + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21, + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22, + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23, + VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24, + VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25, + VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26, + VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27, + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28, + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29, + VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30, + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33, + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000, + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000, + VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000, + VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001, + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000, + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000, + VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000, + VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001, + VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000, + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDebugReportObjectTypeEXT; + +typedef enum VkDebugReportFlagBitsEXT { + VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, + VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, + VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004, + VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008, + VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010, + VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDebugReportFlagBitsEXT; +typedef VkFlags VkDebugReportFlagsEXT; +typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( + VkDebugReportFlagsEXT flags, + VkDebugReportObjectTypeEXT objectType, + uint64_t object, + size_t location, + int32_t messageCode, + const char* pLayerPrefix, + const char* pMessage, + void* pUserData); + +typedef struct VkDebugReportCallbackCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDebugReportFlagsEXT flags; + PFN_vkDebugReportCallbackEXT pfnCallback; + void* pUserData; +} VkDebugReportCallbackCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); +typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT( + VkInstance instance, + const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDebugReportCallbackEXT* pCallback); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT( + VkInstance instance, + VkDebugReportCallbackEXT callback, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( + VkInstance instance, + VkDebugReportFlagsEXT flags, + VkDebugReportObjectTypeEXT objectType, + uint64_t object, + size_t location, + int32_t messageCode, + const char* pLayerPrefix, + const char* pMessage); +#endif + + +// VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_glsl_shader 1 +#define VK_NV_GLSL_SHADER_SPEC_VERSION 1 +#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader" + + +// VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_depth_range_unrestricted 1 +#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 +#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted" + + +// VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls. +#define VK_IMG_filter_cubic 1 +#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1 +#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic" + + +// VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_rasterization_order 1 +#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 +#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order" + +typedef enum VkRasterizationOrderAMD { + VK_RASTERIZATION_ORDER_STRICT_AMD = 0, + VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, + VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF +} VkRasterizationOrderAMD; +typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { + VkStructureType sType; + const void* pNext; + VkRasterizationOrderAMD rasterizationOrder; +} VkPipelineRasterizationStateRasterizationOrderAMD; + + + +// VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_shader_trinary_minmax 1 +#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1 +#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax" + + +// VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_shader_explicit_vertex_parameter 1 +#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1 +#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter" + + +// VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_debug_marker 1 +#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4 +#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker" +typedef struct VkDebugMarkerObjectNameInfoEXT { + VkStructureType sType; + const void* pNext; + VkDebugReportObjectTypeEXT objectType; + uint64_t object; + const char* pObjectName; +} VkDebugMarkerObjectNameInfoEXT; + +typedef struct VkDebugMarkerObjectTagInfoEXT { + VkStructureType sType; + const void* pNext; + VkDebugReportObjectTypeEXT objectType; + uint64_t object; + uint64_t tagName; + size_t tagSize; + const void* pTag; +} VkDebugMarkerObjectTagInfoEXT; + +typedef struct VkDebugMarkerMarkerInfoEXT { + VkStructureType sType; + const void* pNext; + const char* pMarkerName; + float color[4]; +} VkDebugMarkerMarkerInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); +typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer); +typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT( + VkDevice device, + const VkDebugMarkerObjectTagInfoEXT* pTagInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT( + VkDevice device, + const VkDebugMarkerObjectNameInfoEXT* pNameInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT( + VkCommandBuffer commandBuffer, + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( + VkCommandBuffer commandBuffer); + +VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( + VkCommandBuffer commandBuffer, + const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); +#endif + + +// VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_gcn_shader 1 +#define VK_AMD_GCN_SHADER_SPEC_VERSION 1 +#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader" + + +// VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_dedicated_allocation 1 +#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 +#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" +typedef struct VkDedicatedAllocationImageCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 dedicatedAllocation; +} VkDedicatedAllocationImageCreateInfoNV; + +typedef struct VkDedicatedAllocationBufferCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 dedicatedAllocation; +} VkDedicatedAllocationBufferCreateInfoNV; + +typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { + VkStructureType sType; + const void* pNext; + VkImage image; + VkBuffer buffer; +} VkDedicatedAllocationMemoryAllocateInfoNV; + + + +// VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_transform_feedback 1 +#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 +#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" +typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; +typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 transformFeedback; + VkBool32 geometryStreams; +} VkPhysicalDeviceTransformFeedbackFeaturesEXT; + +typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxTransformFeedbackStreams; + uint32_t maxTransformFeedbackBuffers; + VkDeviceSize maxTransformFeedbackBufferSize; + uint32_t maxTransformFeedbackStreamDataSize; + uint32_t maxTransformFeedbackBufferDataSize; + uint32_t maxTransformFeedbackBufferDataStride; + VkBool32 transformFeedbackQueries; + VkBool32 transformFeedbackStreamsLinesTriangles; + VkBool32 transformFeedbackRasterizationStreamSelect; + VkBool32 transformFeedbackDraw; +} VkPhysicalDeviceTransformFeedbackPropertiesEXT; + +typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationStateStreamCreateFlagsEXT flags; + uint32_t rasterizationStream; +} VkPipelineRasterizationStateStreamCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes); +typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index); +typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + VkQueryControlFlags flags, + uint32_t index); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + uint32_t index); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( + VkCommandBuffer commandBuffer, + uint32_t instanceCount, + uint32_t firstInstance, + VkBuffer counterBuffer, + VkDeviceSize counterBufferOffset, + uint32_t counterOffset, + uint32_t vertexStride); +#endif + + +// VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls. +#define VK_NVX_binary_import 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX) +#define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1 +#define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import" +typedef struct VkCuModuleCreateInfoNVX { + VkStructureType sType; + const void* pNext; + size_t dataSize; + const void* pData; +} VkCuModuleCreateInfoNVX; + +typedef struct VkCuFunctionCreateInfoNVX { + VkStructureType sType; + const void* pNext; + VkCuModuleNVX module; + const char* pName; +} VkCuFunctionCreateInfoNVX; + +typedef struct VkCuLaunchInfoNVX { + VkStructureType sType; + const void* pNext; + VkCuFunctionNVX function; + uint32_t gridDimX; + uint32_t gridDimY; + uint32_t gridDimZ; + uint32_t blockDimX; + uint32_t blockDimY; + uint32_t blockDimZ; + uint32_t sharedMemBytes; + size_t paramCount; + const void* const * pParams; + size_t extraCount; + const void* const * pExtras; +} VkCuLaunchInfoNVX; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule); +typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction); +typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX( + VkDevice device, + const VkCuModuleCreateInfoNVX* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkCuModuleNVX* pModule); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX( + VkDevice device, + const VkCuFunctionCreateInfoNVX* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkCuFunctionNVX* pFunction); + +VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX( + VkDevice device, + VkCuModuleNVX module, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX( + VkDevice device, + VkCuFunctionNVX function, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX( + VkCommandBuffer commandBuffer, + const VkCuLaunchInfoNVX* pLaunchInfo); +#endif + + +// VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls. +#define VK_NVX_image_view_handle 1 +#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2 +#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" +typedef struct VkImageViewHandleInfoNVX { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkDescriptorType descriptorType; + VkSampler sampler; +} VkImageViewHandleInfoNVX; + +typedef struct VkImageViewAddressPropertiesNVX { + VkStructureType sType; + void* pNext; + VkDeviceAddress deviceAddress; + VkDeviceSize size; +} VkImageViewAddressPropertiesNVX; + +typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX( + VkDevice device, + const VkImageViewHandleInfoNVX* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX( + VkDevice device, + VkImageView imageView, + VkImageViewAddressPropertiesNVX* pProperties); +#endif + + +// VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_draw_indirect_count 1 +#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2 +#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif + + +// VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_negative_viewport_height 1 +#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 +#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" + + +// VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_gpu_shader_half_float 1 +#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2 +#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" + + +// VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_shader_ballot 1 +#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1 +#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot" + + +// VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_texture_gather_bias_lod 1 +#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 +#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" +typedef struct VkTextureLODGatherFormatPropertiesAMD { + VkStructureType sType; + void* pNext; + VkBool32 supportsTextureGatherLODBiasAMD; +} VkTextureLODGatherFormatPropertiesAMD; + + + +// VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_shader_info 1 +#define VK_AMD_SHADER_INFO_SPEC_VERSION 1 +#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" + +typedef enum VkShaderInfoTypeAMD { + VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, + VK_SHADER_INFO_TYPE_BINARY_AMD = 1, + VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2, + VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF +} VkShaderInfoTypeAMD; +typedef struct VkShaderResourceUsageAMD { + uint32_t numUsedVgprs; + uint32_t numUsedSgprs; + uint32_t ldsSizePerLocalWorkGroup; + size_t ldsUsageSizeInBytes; + size_t scratchMemUsageInBytes; +} VkShaderResourceUsageAMD; + +typedef struct VkShaderStatisticsInfoAMD { + VkShaderStageFlags shaderStageMask; + VkShaderResourceUsageAMD resourceUsage; + uint32_t numPhysicalVgprs; + uint32_t numPhysicalSgprs; + uint32_t numAvailableVgprs; + uint32_t numAvailableSgprs; + uint32_t computeWorkGroupSize[3]; +} VkShaderStatisticsInfoAMD; + +typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( + VkDevice device, + VkPipeline pipeline, + VkShaderStageFlagBits shaderStage, + VkShaderInfoTypeAMD infoType, + size_t* pInfoSize, + void* pInfo); +#endif + + +// VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_shader_image_load_store_lod 1 +#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 +#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" + + +// VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_corner_sampled_image 1 +#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2 +#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image" +typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 cornerSampledImage; +} VkPhysicalDeviceCornerSampledImageFeaturesNV; + + + +// VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls. +#define VK_IMG_format_pvrtc 1 +#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 +#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" + + +// VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_external_memory_capabilities 1 +#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 +#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" + +typedef enum VkExternalMemoryHandleTypeFlagBitsNV { + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkExternalMemoryHandleTypeFlagBitsNV; +typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; + +typedef enum VkExternalMemoryFeatureFlagBitsNV { + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001, + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002, + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004, + VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkExternalMemoryFeatureFlagBitsNV; +typedef VkFlags VkExternalMemoryFeatureFlagsNV; +typedef struct VkExternalImageFormatPropertiesNV { + VkImageFormatProperties imageFormatProperties; + VkExternalMemoryFeatureFlagsNV externalMemoryFeatures; + VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes; + VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes; +} VkExternalImageFormatPropertiesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV( + VkPhysicalDevice physicalDevice, + VkFormat format, + VkImageType type, + VkImageTiling tiling, + VkImageUsageFlags usage, + VkImageCreateFlags flags, + VkExternalMemoryHandleTypeFlagsNV externalHandleType, + VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); +#endif + + +// VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_external_memory 1 +#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 +#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" +typedef struct VkExternalMemoryImageCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagsNV handleTypes; +} VkExternalMemoryImageCreateInfoNV; + +typedef struct VkExportMemoryAllocateInfoNV { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagsNV handleTypes; +} VkExportMemoryAllocateInfoNV; + + + +// VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_validation_flags 1 +#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3 +#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" + +typedef enum VkValidationCheckEXT { + VK_VALIDATION_CHECK_ALL_EXT = 0, + VK_VALIDATION_CHECK_SHADERS_EXT = 1, + VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationCheckEXT; +typedef struct VkValidationFlagsEXT { + VkStructureType sType; + const void* pNext; + uint32_t disabledValidationCheckCount; + const VkValidationCheckEXT* pDisabledValidationChecks; +} VkValidationFlagsEXT; + + + +// VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_subgroup_ballot 1 +#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1 +#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot" + + +// VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_subgroup_vote 1 +#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1 +#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" + + +// VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_texture_compression_astc_hdr 1 +#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1 +#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr" +typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; + + + +// VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_astc_decode_mode 1 +#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1 +#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode" +typedef struct VkImageViewASTCDecodeModeEXT { + VkStructureType sType; + const void* pNext; + VkFormat decodeMode; +} VkImageViewASTCDecodeModeEXT; + +typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 decodeModeSharedExponent; +} VkPhysicalDeviceASTCDecodeFeaturesEXT; + + + +// VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_pipeline_robustness 1 +#define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness" + +typedef enum VkPipelineRobustnessBufferBehaviorEXT { + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0, + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1, + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2, + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3, + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF +} VkPipelineRobustnessBufferBehaviorEXT; + +typedef enum VkPipelineRobustnessImageBehaviorEXT { + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0, + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1, + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2, + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3, + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF +} VkPipelineRobustnessImageBehaviorEXT; +typedef struct VkPhysicalDevicePipelineRobustnessFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pipelineRobustness; +} VkPhysicalDevicePipelineRobustnessFeaturesEXT; + +typedef struct VkPhysicalDevicePipelineRobustnessPropertiesEXT { + VkStructureType sType; + void* pNext; + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers; + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers; + VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs; + VkPipelineRobustnessImageBehaviorEXT defaultRobustnessImages; +} VkPhysicalDevicePipelineRobustnessPropertiesEXT; + +typedef struct VkPipelineRobustnessCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRobustnessBufferBehaviorEXT storageBuffers; + VkPipelineRobustnessBufferBehaviorEXT uniformBuffers; + VkPipelineRobustnessBufferBehaviorEXT vertexInputs; + VkPipelineRobustnessImageBehaviorEXT images; +} VkPipelineRobustnessCreateInfoEXT; + + + +// VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_conditional_rendering 1 +#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2 +#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" + +typedef enum VkConditionalRenderingFlagBitsEXT { + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkConditionalRenderingFlagBitsEXT; +typedef VkFlags VkConditionalRenderingFlagsEXT; +typedef struct VkConditionalRenderingBeginInfoEXT { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; + VkDeviceSize offset; + VkConditionalRenderingFlagsEXT flags; +} VkConditionalRenderingBeginInfoEXT; + +typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 conditionalRendering; + VkBool32 inheritedConditionalRendering; +} VkPhysicalDeviceConditionalRenderingFeaturesEXT; + +typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 conditionalRenderingEnable; +} VkCommandBufferInheritanceConditionalRenderingInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); +typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT( + VkCommandBuffer commandBuffer, + const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( + VkCommandBuffer commandBuffer); +#endif + + +// VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_clip_space_w_scaling 1 +#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 +#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" +typedef struct VkViewportWScalingNV { + float xcoeff; + float ycoeff; +} VkViewportWScalingNV; + +typedef struct VkPipelineViewportWScalingStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 viewportWScalingEnable; + uint32_t viewportCount; + const VkViewportWScalingNV* pViewportWScalings; +} VkPipelineViewportWScalingStateCreateInfoNV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV( + VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkViewportWScalingNV* pViewportWScalings); +#endif + + +// VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_direct_mode_display 1 +#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 +#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" +typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display); +#endif + + +// VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_display_surface_counter 1 +#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 +#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" + +typedef enum VkSurfaceCounterFlagBitsEXT { + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001, + VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT, + VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkSurfaceCounterFlagBitsEXT; +typedef VkFlags VkSurfaceCounterFlagsEXT; +typedef struct VkSurfaceCapabilities2EXT { + VkStructureType sType; + void* pNext; + uint32_t minImageCount; + uint32_t maxImageCount; + VkExtent2D currentExtent; + VkExtent2D minImageExtent; + VkExtent2D maxImageExtent; + uint32_t maxImageArrayLayers; + VkSurfaceTransformFlagsKHR supportedTransforms; + VkSurfaceTransformFlagBitsKHR currentTransform; + VkCompositeAlphaFlagsKHR supportedCompositeAlpha; + VkImageUsageFlags supportedUsageFlags; + VkSurfaceCounterFlagsEXT supportedSurfaceCounters; +} VkSurfaceCapabilities2EXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( + VkPhysicalDevice physicalDevice, + VkSurfaceKHR surface, + VkSurfaceCapabilities2EXT* pSurfaceCapabilities); +#endif + + +// VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_display_control 1 +#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 +#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control" + +typedef enum VkDisplayPowerStateEXT { + VK_DISPLAY_POWER_STATE_OFF_EXT = 0, + VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, + VK_DISPLAY_POWER_STATE_ON_EXT = 2, + VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDisplayPowerStateEXT; + +typedef enum VkDeviceEventTypeEXT { + VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, + VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceEventTypeEXT; + +typedef enum VkDisplayEventTypeEXT { + VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, + VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDisplayEventTypeEXT; +typedef struct VkDisplayPowerInfoEXT { + VkStructureType sType; + const void* pNext; + VkDisplayPowerStateEXT powerState; +} VkDisplayPowerInfoEXT; + +typedef struct VkDeviceEventInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceEventTypeEXT deviceEvent; +} VkDeviceEventInfoEXT; + +typedef struct VkDisplayEventInfoEXT { + VkStructureType sType; + const void* pNext; + VkDisplayEventTypeEXT displayEvent; +} VkDisplayEventInfoEXT; + +typedef struct VkSwapchainCounterCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkSurfaceCounterFlagsEXT surfaceCounters; +} VkSwapchainCounterCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); +typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); +typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT( + VkDevice device, + VkDisplayKHR display, + const VkDisplayPowerInfoEXT* pDisplayPowerInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT( + VkDevice device, + const VkDeviceEventInfoEXT* pDeviceEventInfo, + const VkAllocationCallbacks* pAllocator, + VkFence* pFence); + +VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT( + VkDevice device, + VkDisplayKHR display, + const VkDisplayEventInfoEXT* pDisplayEventInfo, + const VkAllocationCallbacks* pAllocator, + VkFence* pFence); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( + VkDevice device, + VkSwapchainKHR swapchain, + VkSurfaceCounterFlagBitsEXT counter, + uint64_t* pCounterValue); +#endif + + +// VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls. +#define VK_GOOGLE_display_timing 1 +#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 +#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" +typedef struct VkRefreshCycleDurationGOOGLE { + uint64_t refreshDuration; +} VkRefreshCycleDurationGOOGLE; + +typedef struct VkPastPresentationTimingGOOGLE { + uint32_t presentID; + uint64_t desiredPresentTime; + uint64_t actualPresentTime; + uint64_t earliestPresentTime; + uint64_t presentMargin; +} VkPastPresentationTimingGOOGLE; + +typedef struct VkPresentTimeGOOGLE { + uint32_t presentID; + uint64_t desiredPresentTime; +} VkPresentTimeGOOGLE; + +typedef struct VkPresentTimesInfoGOOGLE { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const VkPresentTimeGOOGLE* pTimes; +} VkPresentTimesInfoGOOGLE; + +typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE( + VkDevice device, + VkSwapchainKHR swapchain, + VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( + VkDevice device, + VkSwapchainKHR swapchain, + uint32_t* pPresentationTimingCount, + VkPastPresentationTimingGOOGLE* pPresentationTimings); +#endif + + +// VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_sample_mask_override_coverage 1 +#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 +#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" + + +// VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_geometry_shader_passthrough 1 +#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1 +#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough" + + +// VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_viewport_array2 1 +#define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1 +#define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2" +#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION +#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME + + +// VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls. +#define VK_NVX_multiview_per_view_attributes 1 +#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 +#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" +typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { + VkStructureType sType; + void* pNext; + VkBool32 perViewPositionAllComponents; +} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; + + + +// VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_viewport_swizzle 1 +#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 +#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" + +typedef enum VkViewportCoordinateSwizzleNV { + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0, + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1, + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2, + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3, + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4, + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5, + VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6, + VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7, + VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF +} VkViewportCoordinateSwizzleNV; +typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; +typedef struct VkViewportSwizzleNV { + VkViewportCoordinateSwizzleNV x; + VkViewportCoordinateSwizzleNV y; + VkViewportCoordinateSwizzleNV z; + VkViewportCoordinateSwizzleNV w; +} VkViewportSwizzleNV; + +typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineViewportSwizzleStateCreateFlagsNV flags; + uint32_t viewportCount; + const VkViewportSwizzleNV* pViewportSwizzles; +} VkPipelineViewportSwizzleStateCreateInfoNV; + + + +// VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_discard_rectangles 1 +#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2 +#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" + +typedef enum VkDiscardRectangleModeEXT { + VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, + VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, + VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDiscardRectangleModeEXT; +typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; +typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxDiscardRectangles; +} VkPhysicalDeviceDiscardRectanglePropertiesEXT; + +typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineDiscardRectangleStateCreateFlagsEXT flags; + VkDiscardRectangleModeEXT discardRectangleMode; + uint32_t discardRectangleCount; + const VkRect2D* pDiscardRectangles; +} VkPipelineDiscardRectangleStateCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); +typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( + VkCommandBuffer commandBuffer, + uint32_t firstDiscardRectangle, + uint32_t discardRectangleCount, + const VkRect2D* pDiscardRectangles); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 discardRectangleEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT( + VkCommandBuffer commandBuffer, + VkDiscardRectangleModeEXT discardRectangleMode); +#endif + + +// VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_conservative_rasterization 1 +#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 +#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" + +typedef enum VkConservativeRasterizationModeEXT { + VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, + VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, + VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2, + VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkConservativeRasterizationModeEXT; +typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; +typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { + VkStructureType sType; + void* pNext; + float primitiveOverestimationSize; + float maxExtraPrimitiveOverestimationSize; + float extraPrimitiveOverestimationSizeGranularity; + VkBool32 primitiveUnderestimation; + VkBool32 conservativePointAndLineRasterization; + VkBool32 degenerateTrianglesRasterized; + VkBool32 degenerateLinesRasterized; + VkBool32 fullyCoveredFragmentShaderInputVariable; + VkBool32 conservativeRasterizationPostDepthCoverage; +} VkPhysicalDeviceConservativeRasterizationPropertiesEXT; + +typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationConservativeStateCreateFlagsEXT flags; + VkConservativeRasterizationModeEXT conservativeRasterizationMode; + float extraPrimitiveOverestimationSize; +} VkPipelineRasterizationConservativeStateCreateInfoEXT; + + + +// VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_depth_clip_enable 1 +#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1 +#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable" +typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT; +typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 depthClipEnable; +} VkPhysicalDeviceDepthClipEnableFeaturesEXT; + +typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags; + VkBool32 depthClipEnable; +} VkPipelineRasterizationDepthClipStateCreateInfoEXT; + + + +// VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_swapchain_colorspace 1 +#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4 +#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" + + +// VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_hdr_metadata 1 +#define VK_EXT_HDR_METADATA_SPEC_VERSION 2 +#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" +typedef struct VkXYColorEXT { + float x; + float y; +} VkXYColorEXT; + +typedef struct VkHdrMetadataEXT { + VkStructureType sType; + const void* pNext; + VkXYColorEXT displayPrimaryRed; + VkXYColorEXT displayPrimaryGreen; + VkXYColorEXT displayPrimaryBlue; + VkXYColorEXT whitePoint; + float maxLuminance; + float minLuminance; + float maxContentLightLevel; + float maxFrameAverageLightLevel; +} VkHdrMetadataEXT; + +typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( + VkDevice device, + uint32_t swapchainCount, + const VkSwapchainKHR* pSwapchains, + const VkHdrMetadataEXT* pMetadata); +#endif + + +// VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls. +#define VK_IMG_relaxed_line_rasterization 1 +#define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1 +#define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization" +typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG { + VkStructureType sType; + void* pNext; + VkBool32 relaxedLineRasterization; +} VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG; + + + +// VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_external_memory_dma_buf 1 +#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 +#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" + + +// VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_queue_family_foreign 1 +#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 +#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" +#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U) + + +// VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_debug_utils 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) +#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2 +#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" +typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; + +typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT { + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDebugUtilsMessageSeverityFlagBitsEXT; + +typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001, + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002, + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004, + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008, + VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDebugUtilsMessageTypeFlagBitsEXT; +typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; +typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; +typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; +typedef struct VkDebugUtilsLabelEXT { + VkStructureType sType; + const void* pNext; + const char* pLabelName; + float color[4]; +} VkDebugUtilsLabelEXT; + +typedef struct VkDebugUtilsObjectNameInfoEXT { + VkStructureType sType; + const void* pNext; + VkObjectType objectType; + uint64_t objectHandle; + const char* pObjectName; +} VkDebugUtilsObjectNameInfoEXT; + +typedef struct VkDebugUtilsMessengerCallbackDataEXT { + VkStructureType sType; + const void* pNext; + VkDebugUtilsMessengerCallbackDataFlagsEXT flags; + const char* pMessageIdName; + int32_t messageIdNumber; + const char* pMessage; + uint32_t queueLabelCount; + const VkDebugUtilsLabelEXT* pQueueLabels; + uint32_t cmdBufLabelCount; + const VkDebugUtilsLabelEXT* pCmdBufLabels; + uint32_t objectCount; + const VkDebugUtilsObjectNameInfoEXT* pObjects; +} VkDebugUtilsMessengerCallbackDataEXT; + +typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, + void* pUserData); + +typedef struct VkDebugUtilsMessengerCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDebugUtilsMessengerCreateFlagsEXT flags; + VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; + VkDebugUtilsMessageTypeFlagsEXT messageType; + PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; + void* pUserData; +} VkDebugUtilsMessengerCreateInfoEXT; + +typedef struct VkDebugUtilsObjectTagInfoEXT { + VkStructureType sType; + const void* pNext; + VkObjectType objectType; + uint64_t objectHandle; + uint64_t tagName; + size_t tagSize; + const void* pTag; +} VkDebugUtilsObjectTagInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo); +typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo); +typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); +typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue); +typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer); +typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger); +typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT( + VkDevice device, + const VkDebugUtilsObjectNameInfoEXT* pNameInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT( + VkDevice device, + const VkDebugUtilsObjectTagInfoEXT* pTagInfo); + +VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT( + VkQueue queue, + const VkDebugUtilsLabelEXT* pLabelInfo); + +VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT( + VkQueue queue); + +VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT( + VkQueue queue, + const VkDebugUtilsLabelEXT* pLabelInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT( + VkCommandBuffer commandBuffer, + const VkDebugUtilsLabelEXT* pLabelInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT( + VkCommandBuffer commandBuffer); + +VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT( + VkCommandBuffer commandBuffer, + const VkDebugUtilsLabelEXT* pLabelInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT( + VkInstance instance, + const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkDebugUtilsMessengerEXT* pMessenger); + +VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT( + VkInstance instance, + VkDebugUtilsMessengerEXT messenger, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( + VkInstance instance, + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); +#endif + + +// VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_sampler_filter_minmax 1 +#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2 +#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" +typedef VkSamplerReductionMode VkSamplerReductionModeEXT; + +typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT; + +typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; + + + +// VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_gpu_shader_int16 1 +#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2 +#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" + + +// VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_mixed_attachment_samples 1 +#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 +#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" + + +// VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_shader_fragment_mask 1 +#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1 +#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" + + +// VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_inline_uniform_block 1 +#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1 +#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block" +typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT; + +typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT; + +typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT; + +typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT; + + + +// VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_stencil_export 1 +#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 +#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" + + +// VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_sample_locations 1 +#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 +#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" +typedef struct VkSampleLocationEXT { + float x; + float y; +} VkSampleLocationEXT; + +typedef struct VkSampleLocationsInfoEXT { + VkStructureType sType; + const void* pNext; + VkSampleCountFlagBits sampleLocationsPerPixel; + VkExtent2D sampleLocationGridSize; + uint32_t sampleLocationsCount; + const VkSampleLocationEXT* pSampleLocations; +} VkSampleLocationsInfoEXT; + +typedef struct VkAttachmentSampleLocationsEXT { + uint32_t attachmentIndex; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkAttachmentSampleLocationsEXT; + +typedef struct VkSubpassSampleLocationsEXT { + uint32_t subpassIndex; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkSubpassSampleLocationsEXT; + +typedef struct VkRenderPassSampleLocationsBeginInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t attachmentInitialSampleLocationsCount; + const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations; + uint32_t postSubpassSampleLocationsCount; + const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations; +} VkRenderPassSampleLocationsBeginInfoEXT; + +typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 sampleLocationsEnable; + VkSampleLocationsInfoEXT sampleLocationsInfo; +} VkPipelineSampleLocationsStateCreateInfoEXT; + +typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { + VkStructureType sType; + void* pNext; + VkSampleCountFlags sampleLocationSampleCounts; + VkExtent2D maxSampleLocationGridSize; + float sampleLocationCoordinateRange[2]; + uint32_t sampleLocationSubPixelBits; + VkBool32 variableSampleLocations; +} VkPhysicalDeviceSampleLocationsPropertiesEXT; + +typedef struct VkMultisamplePropertiesEXT { + VkStructureType sType; + void* pNext; + VkExtent2D maxSampleLocationGridSize; +} VkMultisamplePropertiesEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); +typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( + VkCommandBuffer commandBuffer, + const VkSampleLocationsInfoEXT* pSampleLocationsInfo); + +VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( + VkPhysicalDevice physicalDevice, + VkSampleCountFlagBits samples, + VkMultisamplePropertiesEXT* pMultisampleProperties); +#endif + + +// VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_blend_operation_advanced 1 +#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 +#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" + +typedef enum VkBlendOverlapEXT { + VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, + VK_BLEND_OVERLAP_DISJOINT_EXT = 1, + VK_BLEND_OVERLAP_CONJOINT_EXT = 2, + VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF +} VkBlendOverlapEXT; +typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 advancedBlendCoherentOperations; +} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; + +typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t advancedBlendMaxColorAttachments; + VkBool32 advancedBlendIndependentBlend; + VkBool32 advancedBlendNonPremultipliedSrcColor; + VkBool32 advancedBlendNonPremultipliedDstColor; + VkBool32 advancedBlendCorrelatedOverlap; + VkBool32 advancedBlendAllOperations; +} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; + +typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 srcPremultiplied; + VkBool32 dstPremultiplied; + VkBlendOverlapEXT blendOverlap; +} VkPipelineColorBlendAdvancedStateCreateInfoEXT; + + + +// VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_fragment_coverage_to_color 1 +#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 +#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" +typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; +typedef struct VkPipelineCoverageToColorStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageToColorStateCreateFlagsNV flags; + VkBool32 coverageToColorEnable; + uint32_t coverageToColorLocation; +} VkPipelineCoverageToColorStateCreateInfoNV; + + + +// VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_framebuffer_mixed_samples 1 +#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 +#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" + +typedef enum VkCoverageModulationModeNV { + VK_COVERAGE_MODULATION_MODE_NONE_NV = 0, + VK_COVERAGE_MODULATION_MODE_RGB_NV = 1, + VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2, + VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3, + VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF +} VkCoverageModulationModeNV; +typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; +typedef struct VkPipelineCoverageModulationStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageModulationStateCreateFlagsNV flags; + VkCoverageModulationModeNV coverageModulationMode; + VkBool32 coverageModulationTableEnable; + uint32_t coverageModulationTableCount; + const float* pCoverageModulationTable; +} VkPipelineCoverageModulationStateCreateInfoNV; + + + +// VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_fill_rectangle 1 +#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1 +#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" + + +// VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_shader_sm_builtins 1 +#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1 +#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins" +typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t shaderSMCount; + uint32_t shaderWarpsPerSM; +} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV; + +typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 shaderSMBuiltins; +} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV; + + + +// VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_post_depth_coverage 1 +#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 +#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" + + +// VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_image_drm_format_modifier 1 +#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2 +#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" +typedef struct VkDrmFormatModifierPropertiesEXT { + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + VkFormatFeatureFlags drmFormatModifierTilingFeatures; +} VkDrmFormatModifierPropertiesEXT; + +typedef struct VkDrmFormatModifierPropertiesListEXT { + VkStructureType sType; + void* pNext; + uint32_t drmFormatModifierCount; + VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties; +} VkDrmFormatModifierPropertiesListEXT; + +typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT { + VkStructureType sType; + const void* pNext; + uint64_t drmFormatModifier; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t* pQueueFamilyIndices; +} VkPhysicalDeviceImageDrmFormatModifierInfoEXT; + +typedef struct VkImageDrmFormatModifierListCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t drmFormatModifierCount; + const uint64_t* pDrmFormatModifiers; +} VkImageDrmFormatModifierListCreateInfoEXT; + +typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + const VkSubresourceLayout* pPlaneLayouts; +} VkImageDrmFormatModifierExplicitCreateInfoEXT; + +typedef struct VkImageDrmFormatModifierPropertiesEXT { + VkStructureType sType; + void* pNext; + uint64_t drmFormatModifier; +} VkImageDrmFormatModifierPropertiesEXT; + +typedef struct VkDrmFormatModifierProperties2EXT { + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + VkFormatFeatureFlags2 drmFormatModifierTilingFeatures; +} VkDrmFormatModifierProperties2EXT; + +typedef struct VkDrmFormatModifierPropertiesList2EXT { + VkStructureType sType; + void* pNext; + uint32_t drmFormatModifierCount; + VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties; +} VkDrmFormatModifierPropertiesList2EXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( + VkDevice device, + VkImage image, + VkImageDrmFormatModifierPropertiesEXT* pProperties); +#endif + + +// VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_validation_cache 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) +#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 +#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" + +typedef enum VkValidationCacheHeaderVersionEXT { + VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, + VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationCacheHeaderVersionEXT; +typedef VkFlags VkValidationCacheCreateFlagsEXT; +typedef struct VkValidationCacheCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkValidationCacheCreateFlagsEXT flags; + size_t initialDataSize; + const void* pInitialData; +} VkValidationCacheCreateInfoEXT; + +typedef struct VkShaderModuleValidationCacheCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkValidationCacheEXT validationCache; +} VkShaderModuleValidationCacheCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache); +typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches); +typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT( + VkDevice device, + const VkValidationCacheCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkValidationCacheEXT* pValidationCache); + +VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT( + VkDevice device, + VkValidationCacheEXT validationCache, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT( + VkDevice device, + VkValidationCacheEXT dstCache, + uint32_t srcCacheCount, + const VkValidationCacheEXT* pSrcCaches); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( + VkDevice device, + VkValidationCacheEXT validationCache, + size_t* pDataSize, + void* pData); +#endif + + +// VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_descriptor_indexing 1 +#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2 +#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing" +typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT; + +typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT; + +typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT; + +typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT; + +typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT; + +typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT; + +typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT; + + + +// VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_viewport_index_layer 1 +#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1 +#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" + + +// VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_shading_rate_image 1 +#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3 +#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image" + +typedef enum VkShadingRatePaletteEntryNV { + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0, + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1, + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2, + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3, + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11, + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF +} VkShadingRatePaletteEntryNV; + +typedef enum VkCoarseSampleOrderTypeNV { + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0, + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1, + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2, + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3, + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkCoarseSampleOrderTypeNV; +typedef struct VkShadingRatePaletteNV { + uint32_t shadingRatePaletteEntryCount; + const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries; +} VkShadingRatePaletteNV; + +typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 shadingRateImageEnable; + uint32_t viewportCount; + const VkShadingRatePaletteNV* pShadingRatePalettes; +} VkPipelineViewportShadingRateImageStateCreateInfoNV; + +typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 shadingRateImage; + VkBool32 shadingRateCoarseSampleOrder; +} VkPhysicalDeviceShadingRateImageFeaturesNV; + +typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { + VkStructureType sType; + void* pNext; + VkExtent2D shadingRateTexelSize; + uint32_t shadingRatePaletteSize; + uint32_t shadingRateMaxCoarseSamples; +} VkPhysicalDeviceShadingRateImagePropertiesNV; + +typedef struct VkCoarseSampleLocationNV { + uint32_t pixelX; + uint32_t pixelY; + uint32_t sample; +} VkCoarseSampleLocationNV; + +typedef struct VkCoarseSampleOrderCustomNV { + VkShadingRatePaletteEntryNV shadingRate; + uint32_t sampleCount; + uint32_t sampleLocationCount; + const VkCoarseSampleLocationNV* pSampleLocations; +} VkCoarseSampleOrderCustomNV; + +typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkCoarseSampleOrderTypeNV sampleOrderType; + uint32_t customSampleOrderCount; + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders; +} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; + +typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV( + VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV( + VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkShadingRatePaletteNV* pShadingRatePalettes); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV( + VkCommandBuffer commandBuffer, + VkCoarseSampleOrderTypeNV sampleOrderType, + uint32_t customSampleOrderCount, + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); +#endif + + +// VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_ray_tracing 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) +#define VK_NV_RAY_TRACING_SPEC_VERSION 3 +#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing" +#define VK_SHADER_UNUSED_KHR (~0U) +#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR + +typedef enum VkRayTracingShaderGroupTypeKHR { + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0, + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1, + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2, + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR, + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR, + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkRayTracingShaderGroupTypeKHR; +typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV; + + +typedef enum VkGeometryTypeKHR { + VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0, + VK_GEOMETRY_TYPE_AABBS_KHR = 1, + VK_GEOMETRY_TYPE_INSTANCES_KHR = 2, + VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR, + VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR, + VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkGeometryTypeKHR; +typedef VkGeometryTypeKHR VkGeometryTypeNV; + + +typedef enum VkAccelerationStructureTypeKHR { + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0, + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1, + VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2, + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureTypeKHR; +typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV; + + +typedef enum VkCopyAccelerationStructureModeKHR { + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0, + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1, + VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2, + VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3, + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR, + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkCopyAccelerationStructureModeKHR; +typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV; + + +typedef enum VkAccelerationStructureMemoryRequirementsTypeNV { + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0, + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1, + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2, + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkAccelerationStructureMemoryRequirementsTypeNV; + +typedef enum VkGeometryFlagBitsKHR { + VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001, + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002, + VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR, + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR, + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkGeometryFlagBitsKHR; +typedef VkFlags VkGeometryFlagsKHR; +typedef VkGeometryFlagsKHR VkGeometryFlagsNV; + +typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV; + + +typedef enum VkGeometryInstanceFlagBitsKHR { + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001, + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002, + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004, + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008, + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010, + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020, + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR, + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR, + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkGeometryInstanceFlagBitsKHR; +typedef VkFlags VkGeometryInstanceFlagsKHR; +typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV; + +typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV; + + +typedef enum VkBuildAccelerationStructureFlagBitsKHR { + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008, + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010, + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x00000200, +#endif + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x00000800, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR, + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkBuildAccelerationStructureFlagBitsKHR; +typedef VkFlags VkBuildAccelerationStructureFlagsKHR; +typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV; + +typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV; + +typedef struct VkRayTracingShaderGroupCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkRayTracingShaderGroupTypeKHR type; + uint32_t generalShader; + uint32_t closestHitShader; + uint32_t anyHitShader; + uint32_t intersectionShader; +} VkRayTracingShaderGroupCreateInfoNV; + +typedef struct VkRayTracingPipelineCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + uint32_t groupCount; + const VkRayTracingShaderGroupCreateInfoNV* pGroups; + uint32_t maxRecursionDepth; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkRayTracingPipelineCreateInfoNV; + +typedef struct VkGeometryTrianglesNV { + VkStructureType sType; + const void* pNext; + VkBuffer vertexData; + VkDeviceSize vertexOffset; + uint32_t vertexCount; + VkDeviceSize vertexStride; + VkFormat vertexFormat; + VkBuffer indexData; + VkDeviceSize indexOffset; + uint32_t indexCount; + VkIndexType indexType; + VkBuffer transformData; + VkDeviceSize transformOffset; +} VkGeometryTrianglesNV; + +typedef struct VkGeometryAABBNV { + VkStructureType sType; + const void* pNext; + VkBuffer aabbData; + uint32_t numAABBs; + uint32_t stride; + VkDeviceSize offset; +} VkGeometryAABBNV; + +typedef struct VkGeometryDataNV { + VkGeometryTrianglesNV triangles; + VkGeometryAABBNV aabbs; +} VkGeometryDataNV; + +typedef struct VkGeometryNV { + VkStructureType sType; + const void* pNext; + VkGeometryTypeKHR geometryType; + VkGeometryDataNV geometry; + VkGeometryFlagsKHR flags; +} VkGeometryNV; + +typedef struct VkAccelerationStructureInfoNV { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureTypeNV type; + VkBuildAccelerationStructureFlagsNV flags; + uint32_t instanceCount; + uint32_t geometryCount; + const VkGeometryNV* pGeometries; +} VkAccelerationStructureInfoNV; + +typedef struct VkAccelerationStructureCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceSize compactedSize; + VkAccelerationStructureInfoNV info; +} VkAccelerationStructureCreateInfoNV; + +typedef struct VkBindAccelerationStructureMemoryInfoNV { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureNV accelerationStructure; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; + uint32_t deviceIndexCount; + const uint32_t* pDeviceIndices; +} VkBindAccelerationStructureMemoryInfoNV; + +typedef struct VkWriteDescriptorSetAccelerationStructureNV { + VkStructureType sType; + const void* pNext; + uint32_t accelerationStructureCount; + const VkAccelerationStructureNV* pAccelerationStructures; +} VkWriteDescriptorSetAccelerationStructureNV; + +typedef struct VkAccelerationStructureMemoryRequirementsInfoNV { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureMemoryRequirementsTypeNV type; + VkAccelerationStructureNV accelerationStructure; +} VkAccelerationStructureMemoryRequirementsInfoNV; + +typedef struct VkPhysicalDeviceRayTracingPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t shaderGroupHandleSize; + uint32_t maxRecursionDepth; + uint32_t maxShaderGroupStride; + uint32_t shaderGroupBaseAlignment; + uint64_t maxGeometryCount; + uint64_t maxInstanceCount; + uint64_t maxTriangleCount; + uint32_t maxDescriptorSetAccelerationStructures; +} VkPhysicalDeviceRayTracingPropertiesNV; + +typedef struct VkTransformMatrixKHR { + float matrix[3][4]; +} VkTransformMatrixKHR; + +typedef VkTransformMatrixKHR VkTransformMatrixNV; + +typedef struct VkAabbPositionsKHR { + float minX; + float minY; + float minZ; + float maxX; + float maxY; + float maxZ; +} VkAabbPositionsKHR; + +typedef VkAabbPositionsKHR VkAabbPositionsNV; + +typedef struct VkAccelerationStructureInstanceKHR { + VkTransformMatrixKHR transform; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t accelerationStructureReference; +} VkAccelerationStructureInstanceKHR; + +typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure); +typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); +typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode); +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth); +typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData); +typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); +typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV( + VkDevice device, + const VkAccelerationStructureCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkAccelerationStructureNV* pAccelerationStructure); + +VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV( + VkDevice device, + VkAccelerationStructureNV accelerationStructure, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV( + VkDevice device, + const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, + VkMemoryRequirements2KHR* pMemoryRequirements); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV( + VkDevice device, + uint32_t bindInfoCount, + const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV( + VkCommandBuffer commandBuffer, + const VkAccelerationStructureInfoNV* pInfo, + VkBuffer instanceData, + VkDeviceSize instanceOffset, + VkBool32 update, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkBuffer scratch, + VkDeviceSize scratchOffset); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV( + VkCommandBuffer commandBuffer, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkCopyAccelerationStructureModeKHR mode); + +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV( + VkCommandBuffer commandBuffer, + VkBuffer raygenShaderBindingTableBuffer, + VkDeviceSize raygenShaderBindingOffset, + VkBuffer missShaderBindingTableBuffer, + VkDeviceSize missShaderBindingOffset, + VkDeviceSize missShaderBindingStride, + VkBuffer hitShaderBindingTableBuffer, + VkDeviceSize hitShaderBindingOffset, + VkDeviceSize hitShaderBindingStride, + VkBuffer callableShaderBindingTableBuffer, + VkDeviceSize callableShaderBindingOffset, + VkDeviceSize callableShaderBindingStride, + uint32_t width, + uint32_t height, + uint32_t depth); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV( + VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoNV* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV( + VkDevice device, + VkAccelerationStructureNV accelerationStructure, + size_t dataSize, + void* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV( + VkCommandBuffer commandBuffer, + uint32_t accelerationStructureCount, + const VkAccelerationStructureNV* pAccelerationStructures, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery); + +VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV( + VkDevice device, + VkPipeline pipeline, + uint32_t shader); +#endif + + +// VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_representative_fragment_test 1 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" +typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 representativeFragmentTest; +} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; + +typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 representativeFragmentTestEnable; +} VkPipelineRepresentativeFragmentTestStateCreateInfoNV; + + + +// VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_filter_cubic 1 +#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3 +#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic" +typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT { + VkStructureType sType; + void* pNext; + VkImageViewType imageViewType; +} VkPhysicalDeviceImageViewImageFormatInfoEXT; + +typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 filterCubic; + VkBool32 filterCubicMinmax; +} VkFilterCubicImageViewImageFormatPropertiesEXT; + + + +// VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_render_pass_shader_resolve 1 +#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4 +#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve" + + +// VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_global_priority 1 +#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 +#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" +typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT; + +typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT; + + + +// VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_external_memory_host 1 +#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 +#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" +typedef struct VkImportMemoryHostPointerInfoEXT { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBits handleType; + void* pHostPointer; +} VkImportMemoryHostPointerInfoEXT; + +typedef struct VkMemoryHostPointerPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; +} VkMemoryHostPointerPropertiesEXT; + +typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize minImportedHostPointerAlignment; +} VkPhysicalDeviceExternalMemoryHostPropertiesEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + const void* pHostPointer, + VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); +#endif + + +// VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_buffer_marker 1 +#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1 +#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker" +typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( + VkCommandBuffer commandBuffer, + VkPipelineStageFlagBits pipelineStage, + VkBuffer dstBuffer, + VkDeviceSize dstOffset, + uint32_t marker); +#endif + + +// VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_pipeline_compiler_control 1 +#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1 +#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control" + +typedef enum VkPipelineCompilerControlFlagBitsAMD { + VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF +} VkPipelineCompilerControlFlagBitsAMD; +typedef VkFlags VkPipelineCompilerControlFlagsAMD; +typedef struct VkPipelineCompilerControlCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkPipelineCompilerControlFlagsAMD compilerControlFlags; +} VkPipelineCompilerControlCreateInfoAMD; + + + +// VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_calibrated_timestamps 1 +#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2 +#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" +typedef VkTimeDomainKHR VkTimeDomainEXT; + +typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains); +typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainKHR* pTimeDomains); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( + VkDevice device, + uint32_t timestampCount, + const VkCalibratedTimestampInfoKHR* pTimestampInfos, + uint64_t* pTimestamps, + uint64_t* pMaxDeviation); +#endif + + +// VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_shader_core_properties 1 +#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2 +#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" +typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { + VkStructureType sType; + void* pNext; + uint32_t shaderEngineCount; + uint32_t shaderArraysPerEngineCount; + uint32_t computeUnitsPerShaderArray; + uint32_t simdPerComputeUnit; + uint32_t wavefrontsPerSimd; + uint32_t wavefrontSize; + uint32_t sgprsPerSimd; + uint32_t minSgprAllocation; + uint32_t maxSgprAllocation; + uint32_t sgprAllocationGranularity; + uint32_t vgprsPerSimd; + uint32_t minVgprAllocation; + uint32_t maxVgprAllocation; + uint32_t vgprAllocationGranularity; +} VkPhysicalDeviceShaderCorePropertiesAMD; + + + +// VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_memory_overallocation_behavior 1 +#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1 +#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior" + +typedef enum VkMemoryOverallocationBehaviorAMD { + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0, + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1, + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2, + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF +} VkMemoryOverallocationBehaviorAMD; +typedef struct VkDeviceMemoryOverallocationCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkMemoryOverallocationBehaviorAMD overallocationBehavior; +} VkDeviceMemoryOverallocationCreateInfoAMD; + + + +// VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_vertex_attribute_divisor 1 +#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3 +#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" +typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxVertexAttribDivisor; +} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT; + +typedef VkVertexInputBindingDivisorDescriptionKHR VkVertexInputBindingDivisorDescriptionEXT; + +typedef VkPipelineVertexInputDivisorStateCreateInfoKHR VkPipelineVertexInputDivisorStateCreateInfoEXT; + +typedef VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; + + + +// VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_pipeline_creation_feedback 1 +#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback" +typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT; + +typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT; + +typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT; + +typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT; + + + +// VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_shader_subgroup_partitioned 1 +#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1 +#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" + + +// VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_compute_shader_derivatives 1 +#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1 +#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives" +typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 computeDerivativeGroupQuads; + VkBool32 computeDerivativeGroupLinear; +} VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; + + + +// VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_mesh_shader 1 +#define VK_NV_MESH_SHADER_SPEC_VERSION 1 +#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader" +typedef struct VkPhysicalDeviceMeshShaderFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 taskShader; + VkBool32 meshShader; +} VkPhysicalDeviceMeshShaderFeaturesNV; + +typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t maxDrawMeshTasksCount; + uint32_t maxTaskWorkGroupInvocations; + uint32_t maxTaskWorkGroupSize[3]; + uint32_t maxTaskTotalMemorySize; + uint32_t maxTaskOutputCount; + uint32_t maxMeshWorkGroupInvocations; + uint32_t maxMeshWorkGroupSize[3]; + uint32_t maxMeshTotalMemorySize; + uint32_t maxMeshOutputVertices; + uint32_t maxMeshOutputPrimitives; + uint32_t maxMeshMultiviewViewCount; + uint32_t meshOutputPerVertexGranularity; + uint32_t meshOutputPerPrimitiveGranularity; +} VkPhysicalDeviceMeshShaderPropertiesNV; + +typedef struct VkDrawMeshTasksIndirectCommandNV { + uint32_t taskCount; + uint32_t firstTask; +} VkDrawMeshTasksIndirectCommandNV; + +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV( + VkCommandBuffer commandBuffer, + uint32_t taskCount, + uint32_t firstTask); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif + + +// VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_fragment_shader_barycentric 1 +#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 +#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric" +typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; + + + +// VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_shader_image_footprint 1 +#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2 +#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" +typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 imageFootprint; +} VkPhysicalDeviceShaderImageFootprintFeaturesNV; + + + +// VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_scissor_exclusive 1 +#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2 +#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive" +typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t exclusiveScissorCount; + const VkRect2D* pExclusiveScissors; +} VkPipelineViewportExclusiveScissorStateCreateInfoNV; + +typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 exclusiveScissor; +} VkPhysicalDeviceExclusiveScissorFeaturesNV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables); +typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV( + VkCommandBuffer commandBuffer, + uint32_t firstExclusiveScissor, + uint32_t exclusiveScissorCount, + const VkBool32* pExclusiveScissorEnables); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV( + VkCommandBuffer commandBuffer, + uint32_t firstExclusiveScissor, + uint32_t exclusiveScissorCount, + const VkRect2D* pExclusiveScissors); +#endif + + +// VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_device_diagnostic_checkpoints 1 +#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2 +#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints" +typedef struct VkQueueFamilyCheckpointPropertiesNV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags checkpointExecutionStageMask; +} VkQueueFamilyCheckpointPropertiesNV; + +typedef struct VkCheckpointDataNV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlagBits stage; + void* pCheckpointMarker; +} VkCheckpointDataNV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker); +typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV( + VkCommandBuffer commandBuffer, + const void* pCheckpointMarker); + +VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( + VkQueue queue, + uint32_t* pCheckpointDataCount, + VkCheckpointDataNV* pCheckpointData); +#endif + + +// VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls. +#define VK_INTEL_shader_integer_functions2 1 +#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1 +#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2" +typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerFunctions2; +} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; + + + +// VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls. +#define VK_INTEL_performance_query 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL) +#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2 +#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query" + +typedef enum VkPerformanceConfigurationTypeINTEL { + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0, + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceConfigurationTypeINTEL; + +typedef enum VkQueryPoolSamplingModeINTEL { + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0, + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkQueryPoolSamplingModeINTEL; + +typedef enum VkPerformanceOverrideTypeINTEL { + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0, + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1, + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceOverrideTypeINTEL; + +typedef enum VkPerformanceParameterTypeINTEL { + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0, + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1, + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceParameterTypeINTEL; + +typedef enum VkPerformanceValueTypeINTEL { + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0, + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1, + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2, + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3, + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4, + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceValueTypeINTEL; +typedef union VkPerformanceValueDataINTEL { + uint32_t value32; + uint64_t value64; + float valueFloat; + VkBool32 valueBool; + const char* valueString; +} VkPerformanceValueDataINTEL; + +typedef struct VkPerformanceValueINTEL { + VkPerformanceValueTypeINTEL type; + VkPerformanceValueDataINTEL data; +} VkPerformanceValueINTEL; + +typedef struct VkInitializePerformanceApiInfoINTEL { + VkStructureType sType; + const void* pNext; + void* pUserData; +} VkInitializePerformanceApiInfoINTEL; + +typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL { + VkStructureType sType; + const void* pNext; + VkQueryPoolSamplingModeINTEL performanceCountersSampling; +} VkQueryPoolPerformanceQueryCreateInfoINTEL; + +typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL; + +typedef struct VkPerformanceMarkerInfoINTEL { + VkStructureType sType; + const void* pNext; + uint64_t marker; +} VkPerformanceMarkerInfoINTEL; + +typedef struct VkPerformanceStreamMarkerInfoINTEL { + VkStructureType sType; + const void* pNext; + uint32_t marker; +} VkPerformanceStreamMarkerInfoINTEL; + +typedef struct VkPerformanceOverrideInfoINTEL { + VkStructureType sType; + const void* pNext; + VkPerformanceOverrideTypeINTEL type; + VkBool32 enable; + uint64_t parameter; +} VkPerformanceOverrideInfoINTEL; + +typedef struct VkPerformanceConfigurationAcquireInfoINTEL { + VkStructureType sType; + const void* pNext; + VkPerformanceConfigurationTypeINTEL type; +} VkPerformanceConfigurationAcquireInfoINTEL; + +typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); +typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo); +typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration); +typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration); +typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL( + VkDevice device, + const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); + +VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL( + VkDevice device); + +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceMarkerInfoINTEL* pMarkerInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceOverrideInfoINTEL* pOverrideInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL( + VkDevice device, + const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, + VkPerformanceConfigurationINTEL* pConfiguration); + +VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL( + VkDevice device, + VkPerformanceConfigurationINTEL configuration); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL( + VkQueue queue, + VkPerformanceConfigurationINTEL configuration); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL( + VkDevice device, + VkPerformanceParameterTypeINTEL parameter, + VkPerformanceValueINTEL* pValue); +#endif + + +// VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_pci_bus_info 1 +#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2 +#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" +typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t pciDomain; + uint32_t pciBus; + uint32_t pciDevice; + uint32_t pciFunction; +} VkPhysicalDevicePCIBusInfoPropertiesEXT; + + + +// VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_display_native_hdr 1 +#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1 +#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr" +typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD { + VkStructureType sType; + void* pNext; + VkBool32 localDimmingSupport; +} VkDisplayNativeHdrSurfaceCapabilitiesAMD; + +typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkBool32 localDimmingEnable; +} VkSwapchainDisplayNativeHdrCreateInfoAMD; + +typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD( + VkDevice device, + VkSwapchainKHR swapChain, + VkBool32 localDimmingEnable); +#endif + + +// VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_fragment_density_map 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2 +#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map" +typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 fragmentDensityMap; + VkBool32 fragmentDensityMapDynamic; + VkBool32 fragmentDensityMapNonSubsampledImages; +} VkPhysicalDeviceFragmentDensityMapFeaturesEXT; + +typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT { + VkStructureType sType; + void* pNext; + VkExtent2D minFragmentDensityTexelSize; + VkExtent2D maxFragmentDensityTexelSize; + VkBool32 fragmentDensityInvocations; +} VkPhysicalDeviceFragmentDensityMapPropertiesEXT; + +typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkAttachmentReference fragmentDensityMapAttachment; +} VkRenderPassFragmentDensityMapCreateInfoEXT; + + + +// VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_scalar_block_layout 1 +#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1 +#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout" +typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT; + + + +// VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls. +#define VK_GOOGLE_hlsl_functionality1 1 +#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1 +#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME + + +// VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls. +#define VK_GOOGLE_decorate_string 1 +#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1 +#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" + + +// VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_subgroup_size_control 1 +#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2 +#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control" +typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT; + +typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT; + +typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; + + + +// VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_shader_core_properties2 1 +#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1 +#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2" + +typedef enum VkShaderCorePropertiesFlagBitsAMD { + VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF +} VkShaderCorePropertiesFlagBitsAMD; +typedef VkFlags VkShaderCorePropertiesFlagsAMD; +typedef struct VkPhysicalDeviceShaderCoreProperties2AMD { + VkStructureType sType; + void* pNext; + VkShaderCorePropertiesFlagsAMD shaderCoreFeatures; + uint32_t activeComputeUnitCount; +} VkPhysicalDeviceShaderCoreProperties2AMD; + + + +// VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_device_coherent_memory 1 +#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1 +#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory" +typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD { + VkStructureType sType; + void* pNext; + VkBool32 deviceCoherentMemory; +} VkPhysicalDeviceCoherentMemoryFeaturesAMD; + + + +// VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_image_atomic_int64 1 +#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1 +#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64" +typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderImageInt64Atomics; + VkBool32 sparseImageInt64Atomics; +} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT; + + + +// VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_memory_budget 1 +#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 +#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" +typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS]; + VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS]; +} VkPhysicalDeviceMemoryBudgetPropertiesEXT; + + + +// VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_memory_priority 1 +#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1 +#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority" +typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 memoryPriority; +} VkPhysicalDeviceMemoryPriorityFeaturesEXT; + +typedef struct VkMemoryPriorityAllocateInfoEXT { + VkStructureType sType; + const void* pNext; + float priority; +} VkMemoryPriorityAllocateInfoEXT; + + + +// VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_dedicated_allocation_image_aliasing 1 +#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1 +#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing" +typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 dedicatedAllocationImageAliasing; +} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; + + + +// VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_buffer_device_address 1 +#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2 +#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address" +typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; +} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT; + +typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT; + +typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT; + +typedef struct VkBufferDeviceAddressCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceAddress deviceAddress; +} VkBufferDeviceAddressCreateInfoEXT; + +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT( + VkDevice device, + const VkBufferDeviceAddressInfo* pInfo); +#endif + + +// VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_tooling_info 1 +#define VK_EXT_TOOLING_INFO_SPEC_VERSION 1 +#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info" +typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT; + +typedef VkToolPurposeFlags VkToolPurposeFlagsEXT; + +typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pToolCount, + VkPhysicalDeviceToolProperties* pToolProperties); +#endif + + +// VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_separate_stencil_usage 1 +#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1 +#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage" +typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT; + + + +// VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_validation_features 1 +#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6 +#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features" + +typedef enum VkValidationFeatureEnableEXT { + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0, + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1, + VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2, + VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3, + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4, + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationFeatureEnableEXT; + +typedef enum VkValidationFeatureDisableEXT { + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0, + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1, + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2, + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3, + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4, + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5, + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6, + VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7, + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationFeatureDisableEXT; +typedef struct VkValidationFeaturesEXT { + VkStructureType sType; + const void* pNext; + uint32_t enabledValidationFeatureCount; + const VkValidationFeatureEnableEXT* pEnabledValidationFeatures; + uint32_t disabledValidationFeatureCount; + const VkValidationFeatureDisableEXT* pDisabledValidationFeatures; +} VkValidationFeaturesEXT; + + + +// VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_cooperative_matrix 1 +#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1 +#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix" +typedef VkComponentTypeKHR VkComponentTypeNV; + +typedef VkScopeKHR VkScopeNV; + +typedef struct VkCooperativeMatrixPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t MSize; + uint32_t NSize; + uint32_t KSize; + VkComponentTypeNV AType; + VkComponentTypeNV BType; + VkComponentTypeNV CType; + VkComponentTypeNV DType; + VkScopeNV scope; +} VkCooperativeMatrixPropertiesNV; + +typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 cooperativeMatrix; + VkBool32 cooperativeMatrixRobustBufferAccess; +} VkPhysicalDeviceCooperativeMatrixFeaturesNV; + +typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV { + VkStructureType sType; + void* pNext; + VkShaderStageFlags cooperativeMatrixSupportedStages; +} VkPhysicalDeviceCooperativeMatrixPropertiesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeMatrixPropertiesNV* pProperties); +#endif + + +// VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_coverage_reduction_mode 1 +#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1 +#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode" + +typedef enum VkCoverageReductionModeNV { + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0, + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1, + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF +} VkCoverageReductionModeNV; +typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV; +typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 coverageReductionMode; +} VkPhysicalDeviceCoverageReductionModeFeaturesNV; + +typedef struct VkPipelineCoverageReductionStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageReductionStateCreateFlagsNV flags; + VkCoverageReductionModeNV coverageReductionMode; +} VkPipelineCoverageReductionStateCreateInfoNV; + +typedef struct VkFramebufferMixedSamplesCombinationNV { + VkStructureType sType; + void* pNext; + VkCoverageReductionModeNV coverageReductionMode; + VkSampleCountFlagBits rasterizationSamples; + VkSampleCountFlags depthStencilSamples; + VkSampleCountFlags colorSamples; +} VkFramebufferMixedSamplesCombinationNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + VkPhysicalDevice physicalDevice, + uint32_t* pCombinationCount, + VkFramebufferMixedSamplesCombinationNV* pCombinations); +#endif + + +// VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_fragment_shader_interlock 1 +#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1 +#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock" +typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShaderSampleInterlock; + VkBool32 fragmentShaderPixelInterlock; + VkBool32 fragmentShaderShadingRateInterlock; +} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT; + + + +// VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_ycbcr_image_arrays 1 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays" +typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 ycbcrImageArrays; +} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; + + + +// VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_provoking_vertex 1 +#define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1 +#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex" + +typedef enum VkProvokingVertexModeEXT { + VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0, + VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1, + VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkProvokingVertexModeEXT; +typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 provokingVertexLast; + VkBool32 transformFeedbackPreservesProvokingVertex; +} VkPhysicalDeviceProvokingVertexFeaturesEXT; + +typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 provokingVertexModePerPipeline; + VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex; +} VkPhysicalDeviceProvokingVertexPropertiesEXT; + +typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkProvokingVertexModeEXT provokingVertexMode; +} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT; + + + +// VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_headless_surface 1 +#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1 +#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface" +typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; +typedef struct VkHeadlessSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkHeadlessSurfaceCreateFlagsEXT flags; +} VkHeadlessSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT( + VkInstance instance, + const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +// VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_line_rasterization 1 +#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1 +#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization" +typedef VkLineRasterizationModeKHR VkLineRasterizationModeEXT; + +typedef VkPhysicalDeviceLineRasterizationFeaturesKHR VkPhysicalDeviceLineRasterizationFeaturesEXT; + +typedef VkPhysicalDeviceLineRasterizationPropertiesKHR VkPhysicalDeviceLineRasterizationPropertiesEXT; + +typedef VkPipelineRasterizationLineStateCreateInfoKHR VkPipelineRasterizationLineStateCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT( + VkCommandBuffer commandBuffer, + uint32_t lineStippleFactor, + uint16_t lineStipplePattern); +#endif + + +// VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_atomic_float 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float" +typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferFloat32Atomics; + VkBool32 shaderBufferFloat32AtomicAdd; + VkBool32 shaderBufferFloat64Atomics; + VkBool32 shaderBufferFloat64AtomicAdd; + VkBool32 shaderSharedFloat32Atomics; + VkBool32 shaderSharedFloat32AtomicAdd; + VkBool32 shaderSharedFloat64Atomics; + VkBool32 shaderSharedFloat64AtomicAdd; + VkBool32 shaderImageFloat32Atomics; + VkBool32 shaderImageFloat32AtomicAdd; + VkBool32 sparseImageFloat32Atomics; + VkBool32 sparseImageFloat32AtomicAdd; +} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT; + + + +// VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_host_query_reset 1 +#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1 +#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset" +typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT( + VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount); +#endif + + +// VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_index_type_uint8 1 +#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1 +#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8" +typedef VkPhysicalDeviceIndexTypeUint8FeaturesKHR VkPhysicalDeviceIndexTypeUint8FeaturesEXT; + + + +// VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_extended_dynamic_state 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state" +typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 extendedDynamicState; +} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports); +typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors); +typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT( + VkCommandBuffer commandBuffer, + VkCullModeFlags cullMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT( + VkCommandBuffer commandBuffer, + VkFrontFace frontFace); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT( + VkCommandBuffer commandBuffer, + VkPrimitiveTopology primitiveTopology); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT( + VkCommandBuffer commandBuffer, + uint32_t viewportCount, + const VkViewport* pViewports); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT( + VkCommandBuffer commandBuffer, + uint32_t scissorCount, + const VkRect2D* pScissors); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes, + const VkDeviceSize* pStrides); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthWriteEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT( + VkCommandBuffer commandBuffer, + VkCompareOp depthCompareOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthBoundsTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 stencilTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT( + VkCommandBuffer commandBuffer, + VkStencilFaceFlags faceMask, + VkStencilOp failOp, + VkStencilOp passOp, + VkStencilOp depthFailOp, + VkCompareOp compareOp); +#endif + + +// VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_host_image_copy 1 +#define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1 +#define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy" + +typedef enum VkHostImageCopyFlagBitsEXT { + VK_HOST_IMAGE_COPY_MEMCPY_EXT = 0x00000001, + VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkHostImageCopyFlagBitsEXT; +typedef VkFlags VkHostImageCopyFlagsEXT; +typedef struct VkPhysicalDeviceHostImageCopyFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 hostImageCopy; +} VkPhysicalDeviceHostImageCopyFeaturesEXT; + +typedef struct VkPhysicalDeviceHostImageCopyPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t copySrcLayoutCount; + VkImageLayout* pCopySrcLayouts; + uint32_t copyDstLayoutCount; + VkImageLayout* pCopyDstLayouts; + uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE]; + VkBool32 identicalMemoryTypeRequirements; +} VkPhysicalDeviceHostImageCopyPropertiesEXT; + +typedef struct VkMemoryToImageCopyEXT { + VkStructureType sType; + const void* pNext; + const void* pHostPointer; + uint32_t memoryRowLength; + uint32_t memoryImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkMemoryToImageCopyEXT; + +typedef struct VkImageToMemoryCopyEXT { + VkStructureType sType; + const void* pNext; + void* pHostPointer; + uint32_t memoryRowLength; + uint32_t memoryImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkImageToMemoryCopyEXT; + +typedef struct VkCopyMemoryToImageInfoEXT { + VkStructureType sType; + const void* pNext; + VkHostImageCopyFlagsEXT flags; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkMemoryToImageCopyEXT* pRegions; +} VkCopyMemoryToImageInfoEXT; + +typedef struct VkCopyImageToMemoryInfoEXT { + VkStructureType sType; + const void* pNext; + VkHostImageCopyFlagsEXT flags; + VkImage srcImage; + VkImageLayout srcImageLayout; + uint32_t regionCount; + const VkImageToMemoryCopyEXT* pRegions; +} VkCopyImageToMemoryInfoEXT; + +typedef struct VkCopyImageToImageInfoEXT { + VkStructureType sType; + const void* pNext; + VkHostImageCopyFlagsEXT flags; + VkImage srcImage; + VkImageLayout srcImageLayout; + VkImage dstImage; + VkImageLayout dstImageLayout; + uint32_t regionCount; + const VkImageCopy2* pRegions; +} VkCopyImageToImageInfoEXT; + +typedef struct VkHostImageLayoutTransitionInfoEXT { + VkStructureType sType; + const void* pNext; + VkImage image; + VkImageLayout oldLayout; + VkImageLayout newLayout; + VkImageSubresourceRange subresourceRange; +} VkHostImageLayoutTransitionInfoEXT; + +typedef struct VkSubresourceHostMemcpySizeEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize size; +} VkSubresourceHostMemcpySizeEXT; + +typedef struct VkHostImageCopyDevicePerformanceQueryEXT { + VkStructureType sType; + void* pNext; + VkBool32 optimalDeviceAccess; + VkBool32 identicalMemoryLayout; +} VkHostImageCopyDevicePerformanceQueryEXT; + +typedef VkSubresourceLayout2KHR VkSubresourceLayout2EXT; + +typedef VkImageSubresource2KHR VkImageSubresource2EXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo); +typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions); +typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT( + VkDevice device, + const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT( + VkDevice device, + const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT( + VkDevice device, + const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT( + VkDevice device, + uint32_t transitionCount, + const VkHostImageLayoutTransitionInfoEXT* pTransitions); + +VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT( + VkDevice device, + VkImage image, + const VkImageSubresource2KHR* pSubresource, + VkSubresourceLayout2KHR* pLayout); +#endif + + +// VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_map_memory_placed 1 +#define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1 +#define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed" +typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 memoryMapPlaced; + VkBool32 memoryMapRangePlaced; + VkBool32 memoryUnmapReserve; +} VkPhysicalDeviceMapMemoryPlacedFeaturesEXT; + +typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize minPlacedMemoryMapAlignment; +} VkPhysicalDeviceMapMemoryPlacedPropertiesEXT; + +typedef struct VkMemoryMapPlacedInfoEXT { + VkStructureType sType; + const void* pNext; + void* pPlacedAddress; +} VkMemoryMapPlacedInfoEXT; + + + +// VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_atomic_float2 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1 +#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2" +typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferFloat16Atomics; + VkBool32 shaderBufferFloat16AtomicAdd; + VkBool32 shaderBufferFloat16AtomicMinMax; + VkBool32 shaderBufferFloat32AtomicMinMax; + VkBool32 shaderBufferFloat64AtomicMinMax; + VkBool32 shaderSharedFloat16Atomics; + VkBool32 shaderSharedFloat16AtomicAdd; + VkBool32 shaderSharedFloat16AtomicMinMax; + VkBool32 shaderSharedFloat32AtomicMinMax; + VkBool32 shaderSharedFloat64AtomicMinMax; + VkBool32 shaderImageFloat32AtomicMinMax; + VkBool32 sparseImageFloat32AtomicMinMax; +} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT; + + + +// VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_surface_maintenance1 1 +#define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1 +#define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1" + +typedef enum VkPresentScalingFlagBitsEXT { + VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0x00000001, + VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0x00000002, + VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0x00000004, + VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkPresentScalingFlagBitsEXT; +typedef VkFlags VkPresentScalingFlagsEXT; + +typedef enum VkPresentGravityFlagBitsEXT { + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0x00000001, + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0x00000002, + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0x00000004, + VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkPresentGravityFlagBitsEXT; +typedef VkFlags VkPresentGravityFlagsEXT; +typedef struct VkSurfacePresentModeEXT { + VkStructureType sType; + void* pNext; + VkPresentModeKHR presentMode; +} VkSurfacePresentModeEXT; + +typedef struct VkSurfacePresentScalingCapabilitiesEXT { + VkStructureType sType; + void* pNext; + VkPresentScalingFlagsEXT supportedPresentScaling; + VkPresentGravityFlagsEXT supportedPresentGravityX; + VkPresentGravityFlagsEXT supportedPresentGravityY; + VkExtent2D minScaledImageExtent; + VkExtent2D maxScaledImageExtent; +} VkSurfacePresentScalingCapabilitiesEXT; + +typedef struct VkSurfacePresentModeCompatibilityEXT { + VkStructureType sType; + void* pNext; + uint32_t presentModeCount; + VkPresentModeKHR* pPresentModes; +} VkSurfacePresentModeCompatibilityEXT; + + + +// VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_swapchain_maintenance1 1 +#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1 +#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1" +typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 swapchainMaintenance1; +} VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT; + +typedef struct VkSwapchainPresentFenceInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const VkFence* pFences; +} VkSwapchainPresentFenceInfoEXT; + +typedef struct VkSwapchainPresentModesCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t presentModeCount; + const VkPresentModeKHR* pPresentModes; +} VkSwapchainPresentModesCreateInfoEXT; + +typedef struct VkSwapchainPresentModeInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t swapchainCount; + const VkPresentModeKHR* pPresentModes; +} VkSwapchainPresentModeInfoEXT; + +typedef struct VkSwapchainPresentScalingCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPresentScalingFlagsEXT scalingBehavior; + VkPresentGravityFlagsEXT presentGravityX; + VkPresentGravityFlagsEXT presentGravityY; +} VkSwapchainPresentScalingCreateInfoEXT; + +typedef struct VkReleaseSwapchainImagesInfoEXT { + VkStructureType sType; + const void* pNext; + VkSwapchainKHR swapchain; + uint32_t imageIndexCount; + const uint32_t* pImageIndices; +} VkReleaseSwapchainImagesInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT( + VkDevice device, + const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo); +#endif + + +// VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_demote_to_helper_invocation 1 +#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1 +#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation" +typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; + + + +// VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_device_generated_commands 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV) +#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 +#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands" + +typedef enum VkIndirectCommandsTokenTypeNV { + VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004, + VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkIndirectCommandsTokenTypeNV; + +typedef enum VkIndirectStateFlagBitsNV { + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001, + VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkIndirectStateFlagBitsNV; +typedef VkFlags VkIndirectStateFlagsNV; + +typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV { + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001, + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002, + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004, + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkIndirectCommandsLayoutUsageFlagBitsNV; +typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV; +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t maxGraphicsShaderGroupCount; + uint32_t maxIndirectSequenceCount; + uint32_t maxIndirectCommandsTokenCount; + uint32_t maxIndirectCommandsStreamCount; + uint32_t maxIndirectCommandsTokenOffset; + uint32_t maxIndirectCommandsStreamStride; + uint32_t minSequencesCountBufferOffsetAlignment; + uint32_t minSequencesIndexBufferOffsetAlignment; + uint32_t minIndirectCommandsBufferOffsetAlignment; +} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV; + +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 deviceGeneratedCommands; +} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV; + +typedef struct VkGraphicsShaderGroupCreateInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + const VkPipelineVertexInputStateCreateInfo* pVertexInputState; + const VkPipelineTessellationStateCreateInfo* pTessellationState; +} VkGraphicsShaderGroupCreateInfoNV; + +typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t groupCount; + const VkGraphicsShaderGroupCreateInfoNV* pGroups; + uint32_t pipelineCount; + const VkPipeline* pPipelines; +} VkGraphicsPipelineShaderGroupsCreateInfoNV; + +typedef struct VkBindShaderGroupIndirectCommandNV { + uint32_t groupIndex; +} VkBindShaderGroupIndirectCommandNV; + +typedef struct VkBindIndexBufferIndirectCommandNV { + VkDeviceAddress bufferAddress; + uint32_t size; + VkIndexType indexType; +} VkBindIndexBufferIndirectCommandNV; + +typedef struct VkBindVertexBufferIndirectCommandNV { + VkDeviceAddress bufferAddress; + uint32_t size; + uint32_t stride; +} VkBindVertexBufferIndirectCommandNV; + +typedef struct VkSetStateFlagsIndirectCommandNV { + uint32_t data; +} VkSetStateFlagsIndirectCommandNV; + +typedef struct VkIndirectCommandsStreamNV { + VkBuffer buffer; + VkDeviceSize offset; +} VkIndirectCommandsStreamNV; + +typedef struct VkIndirectCommandsLayoutTokenNV { + VkStructureType sType; + const void* pNext; + VkIndirectCommandsTokenTypeNV tokenType; + uint32_t stream; + uint32_t offset; + uint32_t vertexBindingUnit; + VkBool32 vertexDynamicStride; + VkPipelineLayout pushconstantPipelineLayout; + VkShaderStageFlags pushconstantShaderStageFlags; + uint32_t pushconstantOffset; + uint32_t pushconstantSize; + VkIndirectStateFlagsNV indirectStateFlags; + uint32_t indexTypeCount; + const VkIndexType* pIndexTypes; + const uint32_t* pIndexTypeValues; +} VkIndirectCommandsLayoutTokenNV; + +typedef struct VkIndirectCommandsLayoutCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkIndirectCommandsLayoutUsageFlagsNV flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t tokenCount; + const VkIndirectCommandsLayoutTokenNV* pTokens; + uint32_t streamCount; + const uint32_t* pStreamStrides; +} VkIndirectCommandsLayoutCreateInfoNV; + +typedef struct VkGeneratedCommandsInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline pipeline; + VkIndirectCommandsLayoutNV indirectCommandsLayout; + uint32_t streamCount; + const VkIndirectCommandsStreamNV* pStreams; + uint32_t sequencesCount; + VkBuffer preprocessBuffer; + VkDeviceSize preprocessOffset; + VkDeviceSize preprocessSize; + VkBuffer sequencesCountBuffer; + VkDeviceSize sequencesCountOffset; + VkBuffer sequencesIndexBuffer; + VkDeviceSize sequencesIndexOffset; +} VkGeneratedCommandsInfoNV; + +typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline pipeline; + VkIndirectCommandsLayoutNV indirectCommandsLayout; + uint32_t maxSequencesCount; +} VkGeneratedCommandsMemoryRequirementsInfoNV; + +typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); +typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); +typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex); +typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout); +typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV( + VkDevice device, + const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV( + VkCommandBuffer commandBuffer, + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV( + VkCommandBuffer commandBuffer, + VkBool32 isPreprocessed, + const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipeline pipeline, + uint32_t groupIndex); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV( + VkDevice device, + const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkIndirectCommandsLayoutNV* pIndirectCommandsLayout); + +VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV( + VkDevice device, + VkIndirectCommandsLayoutNV indirectCommandsLayout, + const VkAllocationCallbacks* pAllocator); +#endif + + +// VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_inherited_viewport_scissor 1 +#define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1 +#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor" +typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 inheritedViewportScissor2D; +} VkPhysicalDeviceInheritedViewportScissorFeaturesNV; + +typedef struct VkCommandBufferInheritanceViewportScissorInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 viewportScissor2D; + uint32_t viewportDepthCount; + const VkViewport* pViewportDepths; +} VkCommandBufferInheritanceViewportScissorInfoNV; + + + +// VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_texel_buffer_alignment 1 +#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1 +#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment" +typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 texelBufferAlignment; +} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; + +typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; + + + +// VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_render_pass_transform 1 +#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 4 +#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform" +typedef struct VkRenderPassTransformBeginInfoQCOM { + VkStructureType sType; + void* pNext; + VkSurfaceTransformFlagBitsKHR transform; +} VkRenderPassTransformBeginInfoQCOM; + +typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM { + VkStructureType sType; + void* pNext; + VkSurfaceTransformFlagBitsKHR transform; + VkRect2D renderArea; +} VkCommandBufferInheritanceRenderPassTransformInfoQCOM; + + + +// VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_depth_bias_control 1 +#define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1 +#define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control" + +typedef enum VkDepthBiasRepresentationEXT { + VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0, + VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1, + VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2, + VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDepthBiasRepresentationEXT; +typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 depthBiasControl; + VkBool32 leastRepresentableValueForceUnormRepresentation; + VkBool32 floatRepresentation; + VkBool32 depthBiasExact; +} VkPhysicalDeviceDepthBiasControlFeaturesEXT; + +typedef struct VkDepthBiasInfoEXT { + VkStructureType sType; + const void* pNext; + float depthBiasConstantFactor; + float depthBiasClamp; + float depthBiasSlopeFactor; +} VkDepthBiasInfoEXT; + +typedef struct VkDepthBiasRepresentationInfoEXT { + VkStructureType sType; + const void* pNext; + VkDepthBiasRepresentationEXT depthBiasRepresentation; + VkBool32 depthBiasExact; +} VkDepthBiasRepresentationInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT* pDepthBiasInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT( + VkCommandBuffer commandBuffer, + const VkDepthBiasInfoEXT* pDepthBiasInfo); +#endif + + +// VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_device_memory_report 1 +#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2 +#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report" + +typedef enum VkDeviceMemoryReportEventTypeEXT { + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0, + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1, + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2, + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3, + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4, + VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceMemoryReportEventTypeEXT; +typedef VkFlags VkDeviceMemoryReportFlagsEXT; +typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 deviceMemoryReport; +} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT; + +typedef struct VkDeviceMemoryReportCallbackDataEXT { + VkStructureType sType; + void* pNext; + VkDeviceMemoryReportFlagsEXT flags; + VkDeviceMemoryReportEventTypeEXT type; + uint64_t memoryObjectId; + VkDeviceSize size; + VkObjectType objectType; + uint64_t objectHandle; + uint32_t heapIndex; +} VkDeviceMemoryReportCallbackDataEXT; + +typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)( + const VkDeviceMemoryReportCallbackDataEXT* pCallbackData, + void* pUserData); + +typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceMemoryReportFlagsEXT flags; + PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback; + void* pUserData; +} VkDeviceDeviceMemoryReportCreateInfoEXT; + + + +// VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_acquire_drm_display 1 +#define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1 +#define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display" +typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display); +typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT( + VkPhysicalDevice physicalDevice, + int32_t drmFd, + VkDisplayKHR display); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT( + VkPhysicalDevice physicalDevice, + int32_t drmFd, + uint32_t connectorId, + VkDisplayKHR* display); +#endif + + +// VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_robustness2 1 +#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1 +#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2" +typedef struct VkPhysicalDeviceRobustness2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 robustBufferAccess2; + VkBool32 robustImageAccess2; + VkBool32 nullDescriptor; +} VkPhysicalDeviceRobustness2FeaturesEXT; + +typedef struct VkPhysicalDeviceRobustness2PropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize robustStorageBufferAccessSizeAlignment; + VkDeviceSize robustUniformBufferAccessSizeAlignment; +} VkPhysicalDeviceRobustness2PropertiesEXT; + + + +// VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_custom_border_color 1 +#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12 +#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color" +typedef struct VkSamplerCustomBorderColorCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkClearColorValue customBorderColor; + VkFormat format; +} VkSamplerCustomBorderColorCreateInfoEXT; + +typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxCustomBorderColorSamplers; +} VkPhysicalDeviceCustomBorderColorPropertiesEXT; + +typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 customBorderColors; + VkBool32 customBorderColorWithoutFormat; +} VkPhysicalDeviceCustomBorderColorFeaturesEXT; + + + +// VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls. +#define VK_GOOGLE_user_type 1 +#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1 +#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type" + + +// VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_present_barrier 1 +#define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1 +#define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier" +typedef struct VkPhysicalDevicePresentBarrierFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 presentBarrier; +} VkPhysicalDevicePresentBarrierFeaturesNV; + +typedef struct VkSurfaceCapabilitiesPresentBarrierNV { + VkStructureType sType; + void* pNext; + VkBool32 presentBarrierSupported; +} VkSurfaceCapabilitiesPresentBarrierNV; + +typedef struct VkSwapchainPresentBarrierCreateInfoNV { + VkStructureType sType; + void* pNext; + VkBool32 presentBarrierEnable; +} VkSwapchainPresentBarrierCreateInfoNV; + + + +// VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_private_data 1 +typedef VkPrivateDataSlot VkPrivateDataSlotEXT; + +#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1 +#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data" +typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT; + +typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT; + +typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT; + +typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot); +typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data); +typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT( + VkDevice device, + const VkPrivateDataSlotCreateInfo* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkPrivateDataSlot* pPrivateDataSlot); + +VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT( + VkDevice device, + VkPrivateDataSlot privateDataSlot, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t data); + +VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT( + VkDevice device, + VkObjectType objectType, + uint64_t objectHandle, + VkPrivateDataSlot privateDataSlot, + uint64_t* pData); +#endif + + +// VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_pipeline_creation_cache_control 1 +#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3 +#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control" +typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT; + + + +// VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_device_diagnostics_config 1 +#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2 +#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config" + +typedef enum VkDeviceDiagnosticsConfigFlagBitsNV { + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001, + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002, + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004, + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008, + VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkDeviceDiagnosticsConfigFlagBitsNV; +typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; +typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 diagnosticsConfig; +} VkPhysicalDeviceDiagnosticsConfigFeaturesNV; + +typedef struct VkDeviceDiagnosticsConfigCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceDiagnosticsConfigFlagsNV flags; +} VkDeviceDiagnosticsConfigCreateInfoNV; + + + +// VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_render_pass_store_ops 1 +#define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2 +#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops" + + +// VK_NV_cuda_kernel_launch is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_cuda_kernel_launch 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV) +#define VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION 2 +#define VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME "VK_NV_cuda_kernel_launch" +typedef struct VkCudaModuleCreateInfoNV { + VkStructureType sType; + const void* pNext; + size_t dataSize; + const void* pData; +} VkCudaModuleCreateInfoNV; + +typedef struct VkCudaFunctionCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkCudaModuleNV module; + const char* pName; +} VkCudaFunctionCreateInfoNV; + +typedef struct VkCudaLaunchInfoNV { + VkStructureType sType; + const void* pNext; + VkCudaFunctionNV function; + uint32_t gridDimX; + uint32_t gridDimY; + uint32_t gridDimZ; + uint32_t blockDimX; + uint32_t blockDimY; + uint32_t blockDimZ; + uint32_t sharedMemBytes; + size_t paramCount; + const void* const * pParams; + size_t extraCount; + const void* const * pExtras; +} VkCudaLaunchInfoNV; + +typedef struct VkPhysicalDeviceCudaKernelLaunchFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 cudaKernelLaunchFeatures; +} VkPhysicalDeviceCudaKernelLaunchFeaturesNV; + +typedef struct VkPhysicalDeviceCudaKernelLaunchPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t computeCapabilityMinor; + uint32_t computeCapabilityMajor; +} VkPhysicalDeviceCudaKernelLaunchPropertiesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaModuleNV)(VkDevice device, const VkCudaModuleCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaModuleNV* pModule); +typedef VkResult (VKAPI_PTR *PFN_vkGetCudaModuleCacheNV)(VkDevice device, VkCudaModuleNV module, size_t* pCacheSize, void* pCacheData); +typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaFunctionNV)(VkDevice device, const VkCudaFunctionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaFunctionNV* pFunction); +typedef void (VKAPI_PTR *PFN_vkDestroyCudaModuleNV)(VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkDestroyCudaFunctionNV)(VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdCudaLaunchKernelNV)(VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV* pLaunchInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaModuleNV( + VkDevice device, + const VkCudaModuleCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkCudaModuleNV* pModule); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetCudaModuleCacheNV( + VkDevice device, + VkCudaModuleNV module, + size_t* pCacheSize, + void* pCacheData); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaFunctionNV( + VkDevice device, + const VkCudaFunctionCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkCudaFunctionNV* pFunction); + +VKAPI_ATTR void VKAPI_CALL vkDestroyCudaModuleNV( + VkDevice device, + VkCudaModuleNV module, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkDestroyCudaFunctionNV( + VkDevice device, + VkCudaFunctionNV function, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdCudaLaunchKernelNV( + VkCommandBuffer commandBuffer, + const VkCudaLaunchInfoNV* pLaunchInfo); +#endif + + +// VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_low_latency 1 +#define VK_NV_LOW_LATENCY_SPEC_VERSION 1 +#define VK_NV_LOW_LATENCY_EXTENSION_NAME "VK_NV_low_latency" +typedef struct VkQueryLowLatencySupportNV { + VkStructureType sType; + const void* pNext; + void* pQueriedLowLatencyData; +} VkQueryLowLatencySupportNV; + + + +// VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_descriptor_buffer 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) +#define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1 +#define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer" +typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 combinedImageSamplerDescriptorSingleArray; + VkBool32 bufferlessPushDescriptors; + VkBool32 allowSamplerImageViewPostSubmitCreation; + VkDeviceSize descriptorBufferOffsetAlignment; + uint32_t maxDescriptorBufferBindings; + uint32_t maxResourceDescriptorBufferBindings; + uint32_t maxSamplerDescriptorBufferBindings; + uint32_t maxEmbeddedImmutableSamplerBindings; + uint32_t maxEmbeddedImmutableSamplers; + size_t bufferCaptureReplayDescriptorDataSize; + size_t imageCaptureReplayDescriptorDataSize; + size_t imageViewCaptureReplayDescriptorDataSize; + size_t samplerCaptureReplayDescriptorDataSize; + size_t accelerationStructureCaptureReplayDescriptorDataSize; + size_t samplerDescriptorSize; + size_t combinedImageSamplerDescriptorSize; + size_t sampledImageDescriptorSize; + size_t storageImageDescriptorSize; + size_t uniformTexelBufferDescriptorSize; + size_t robustUniformTexelBufferDescriptorSize; + size_t storageTexelBufferDescriptorSize; + size_t robustStorageTexelBufferDescriptorSize; + size_t uniformBufferDescriptorSize; + size_t robustUniformBufferDescriptorSize; + size_t storageBufferDescriptorSize; + size_t robustStorageBufferDescriptorSize; + size_t inputAttachmentDescriptorSize; + size_t accelerationStructureDescriptorSize; + VkDeviceSize maxSamplerDescriptorBufferRange; + VkDeviceSize maxResourceDescriptorBufferRange; + VkDeviceSize samplerDescriptorBufferAddressSpaceSize; + VkDeviceSize resourceDescriptorBufferAddressSpaceSize; + VkDeviceSize descriptorBufferAddressSpaceSize; +} VkPhysicalDeviceDescriptorBufferPropertiesEXT; + +typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT { + VkStructureType sType; + void* pNext; + size_t combinedImageSamplerDensityMapDescriptorSize; +} VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT; + +typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 descriptorBuffer; + VkBool32 descriptorBufferCaptureReplay; + VkBool32 descriptorBufferImageLayoutIgnored; + VkBool32 descriptorBufferPushDescriptors; +} VkPhysicalDeviceDescriptorBufferFeaturesEXT; + +typedef struct VkDescriptorAddressInfoEXT { + VkStructureType sType; + void* pNext; + VkDeviceAddress address; + VkDeviceSize range; + VkFormat format; +} VkDescriptorAddressInfoEXT; + +typedef struct VkDescriptorBufferBindingInfoEXT { + VkStructureType sType; + void* pNext; + VkDeviceAddress address; + VkBufferUsageFlags usage; +} VkDescriptorBufferBindingInfoEXT; + +typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT { + VkStructureType sType; + void* pNext; + VkBuffer buffer; +} VkDescriptorBufferBindingPushDescriptorBufferHandleEXT; + +typedef union VkDescriptorDataEXT { + const VkSampler* pSampler; + const VkDescriptorImageInfo* pCombinedImageSampler; + const VkDescriptorImageInfo* pInputAttachmentImage; + const VkDescriptorImageInfo* pSampledImage; + const VkDescriptorImageInfo* pStorageImage; + const VkDescriptorAddressInfoEXT* pUniformTexelBuffer; + const VkDescriptorAddressInfoEXT* pStorageTexelBuffer; + const VkDescriptorAddressInfoEXT* pUniformBuffer; + const VkDescriptorAddressInfoEXT* pStorageBuffer; + VkDeviceAddress accelerationStructure; +} VkDescriptorDataEXT; + +typedef struct VkDescriptorGetInfoEXT { + VkStructureType sType; + const void* pNext; + VkDescriptorType type; + VkDescriptorDataEXT data; +} VkDescriptorGetInfoEXT; + +typedef struct VkBufferCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; +} VkBufferCaptureDescriptorDataInfoEXT; + +typedef struct VkImageCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkImage image; +} VkImageCaptureDescriptorDataInfoEXT; + +typedef struct VkImageViewCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkImageView imageView; +} VkImageViewCaptureDescriptorDataInfoEXT; + +typedef struct VkSamplerCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkSampler sampler; +} VkSamplerCaptureDescriptorDataInfoEXT; + +typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT { + VkStructureType sType; + const void* pNext; + const void* opaqueCaptureDescriptorData; +} VkOpaqueCaptureDescriptorDataCreateInfoEXT; + +typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR accelerationStructure; + VkAccelerationStructureNV accelerationStructureNV; +} VkAccelerationStructureCaptureDescriptorDataInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes); +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset); +typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor); +typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos); +typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set); +typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT( + VkDevice device, + VkDescriptorSetLayout layout, + VkDeviceSize* pLayoutSizeInBytes); + +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT( + VkDevice device, + VkDescriptorSetLayout layout, + uint32_t binding, + VkDeviceSize* pOffset); + +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT( + VkDevice device, + const VkDescriptorGetInfoEXT* pDescriptorInfo, + size_t dataSize, + void* pDescriptor); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT( + VkCommandBuffer commandBuffer, + uint32_t bufferCount, + const VkDescriptorBufferBindingInfoEXT* pBindingInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t firstSet, + uint32_t setCount, + const uint32_t* pBufferIndices, + const VkDeviceSize* pOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipelineLayout layout, + uint32_t set); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT( + VkDevice device, + const VkBufferCaptureDescriptorDataInfoEXT* pInfo, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT( + VkDevice device, + const VkImageCaptureDescriptorDataInfoEXT* pInfo, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT( + VkDevice device, + const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT( + VkDevice device, + const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( + VkDevice device, + const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, + void* pData); +#endif + + +// VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_graphics_pipeline_library 1 +#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1 +#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library" + +typedef enum VkGraphicsPipelineLibraryFlagBitsEXT { + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001, + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002, + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004, + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008, + VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkGraphicsPipelineLibraryFlagBitsEXT; +typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT; +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 graphicsPipelineLibrary; +} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT; + +typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 graphicsPipelineLibraryFastLinking; + VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration; +} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT; + +typedef struct VkGraphicsPipelineLibraryCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkGraphicsPipelineLibraryFlagsEXT flags; +} VkGraphicsPipelineLibraryCreateInfoEXT; + + + +// VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls. +#define VK_AMD_shader_early_and_late_fragment_tests 1 +#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1 +#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests" +typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD { + VkStructureType sType; + void* pNext; + VkBool32 shaderEarlyAndLateFragmentTests; +} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD; + + + +// VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_fragment_shading_rate_enums 1 +#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1 +#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums" + +typedef enum VkFragmentShadingRateTypeNV { + VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0, + VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1, + VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkFragmentShadingRateTypeNV; + +typedef enum VkFragmentShadingRateNV { + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9, + VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10, + VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11, + VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12, + VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13, + VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14, + VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15, + VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF +} VkFragmentShadingRateNV; +typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShadingRateEnums; + VkBool32 supersampleFragmentShadingRates; + VkBool32 noInvocationFragmentShadingRates; +} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV; + +typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV { + VkStructureType sType; + void* pNext; + VkSampleCountFlagBits maxFragmentShadingRateInvocationCount; +} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV; + +typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkFragmentShadingRateTypeNV shadingRateType; + VkFragmentShadingRateNV shadingRate; + VkFragmentShadingRateCombinerOpKHR combinerOps[2]; +} VkPipelineFragmentShadingRateEnumStateCreateInfoNV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV( + VkCommandBuffer commandBuffer, + VkFragmentShadingRateNV shadingRate, + const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); +#endif + + +// VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_ray_tracing_motion_blur 1 +#define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1 +#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur" + +typedef enum VkAccelerationStructureMotionInstanceTypeNV { + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0, + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1, + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2, + VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkAccelerationStructureMotionInstanceTypeNV; +typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV; +typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV; +typedef union VkDeviceOrHostAddressConstKHR { + VkDeviceAddress deviceAddress; + const void* hostAddress; +} VkDeviceOrHostAddressConstKHR; + +typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR vertexData; +} VkAccelerationStructureGeometryMotionTrianglesDataNV; + +typedef struct VkAccelerationStructureMotionInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t maxInstances; + VkAccelerationStructureMotionInfoFlagsNV flags; +} VkAccelerationStructureMotionInfoNV; + +typedef struct VkAccelerationStructureMatrixMotionInstanceNV { + VkTransformMatrixKHR transformT0; + VkTransformMatrixKHR transformT1; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t accelerationStructureReference; +} VkAccelerationStructureMatrixMotionInstanceNV; + +typedef struct VkSRTDataNV { + float sx; + float a; + float b; + float pvx; + float sy; + float c; + float pvy; + float sz; + float pvz; + float qx; + float qy; + float qz; + float qw; + float tx; + float ty; + float tz; +} VkSRTDataNV; + +typedef struct VkAccelerationStructureSRTMotionInstanceNV { + VkSRTDataNV transformT0; + VkSRTDataNV transformT1; + uint32_t instanceCustomIndex:24; + uint32_t mask:8; + uint32_t instanceShaderBindingTableRecordOffset:24; + VkGeometryInstanceFlagsKHR flags:8; + uint64_t accelerationStructureReference; +} VkAccelerationStructureSRTMotionInstanceNV; + +typedef union VkAccelerationStructureMotionInstanceDataNV { + VkAccelerationStructureInstanceKHR staticInstance; + VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance; + VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance; +} VkAccelerationStructureMotionInstanceDataNV; + +typedef struct VkAccelerationStructureMotionInstanceNV { + VkAccelerationStructureMotionInstanceTypeNV type; + VkAccelerationStructureMotionInstanceFlagsNV flags; + VkAccelerationStructureMotionInstanceDataNV data; +} VkAccelerationStructureMotionInstanceNV; + +typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 rayTracingMotionBlur; + VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect; +} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV; + + + +// VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_ycbcr_2plane_444_formats 1 +#define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1 +#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats" +typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 ycbcr2plane444Formats; +} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; + + + +// VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_fragment_density_map2 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2" +typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 fragmentDensityMapDeferred; +} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT; + +typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 subsampledLoads; + VkBool32 subsampledCoarseReconstructionEarlyAccess; + uint32_t maxSubsampledArrayLayers; + uint32_t maxDescriptorSetSubsampledSamplers; +} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT; + + + +// VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_rotated_copy_commands 1 +#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2 +#define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands" +typedef struct VkCopyCommandTransformInfoQCOM { + VkStructureType sType; + const void* pNext; + VkSurfaceTransformFlagBitsKHR transform; +} VkCopyCommandTransformInfoQCOM; + + + +// VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_image_robustness 1 +#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1 +#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness" +typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT; + + + +// VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_image_compression_control 1 +#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1 +#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control" + +typedef enum VkImageCompressionFlagBitsEXT { + VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0, + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001, + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002, + VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004, + VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkImageCompressionFlagBitsEXT; +typedef VkFlags VkImageCompressionFlagsEXT; + +typedef enum VkImageCompressionFixedRateFlagBitsEXT { + VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0, + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001, + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002, + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004, + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008, + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010, + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020, + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040, + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080, + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100, + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200, + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400, + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800, + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000, + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000, + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000, + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000, + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000, + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000, + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000, + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000, + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000, + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000, + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000, + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000, + VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkImageCompressionFixedRateFlagBitsEXT; +typedef VkFlags VkImageCompressionFixedRateFlagsEXT; +typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 imageCompressionControl; +} VkPhysicalDeviceImageCompressionControlFeaturesEXT; + +typedef struct VkImageCompressionControlEXT { + VkStructureType sType; + const void* pNext; + VkImageCompressionFlagsEXT flags; + uint32_t compressionControlPlaneCount; + VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags; +} VkImageCompressionControlEXT; + +typedef struct VkImageCompressionPropertiesEXT { + VkStructureType sType; + void* pNext; + VkImageCompressionFlagsEXT imageCompressionFlags; + VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags; +} VkImageCompressionPropertiesEXT; + + + +// VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_attachment_feedback_loop_layout 1 +#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2 +#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout" +typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 attachmentFeedbackLoopLayout; +} VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT; + + + +// VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_4444_formats 1 +#define VK_EXT_4444_FORMATS_SPEC_VERSION 1 +#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats" +typedef struct VkPhysicalDevice4444FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 formatA4R4G4B4; + VkBool32 formatA4B4G4R4; +} VkPhysicalDevice4444FormatsFeaturesEXT; + + + +// VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_device_fault 1 +#define VK_EXT_DEVICE_FAULT_SPEC_VERSION 2 +#define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault" + +typedef enum VkDeviceFaultAddressTypeEXT { + VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0, + VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1, + VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2, + VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3, + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4, + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5, + VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6, + VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceFaultAddressTypeEXT; + +typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT { + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1, + VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceFaultVendorBinaryHeaderVersionEXT; +typedef struct VkPhysicalDeviceFaultFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 deviceFault; + VkBool32 deviceFaultVendorBinary; +} VkPhysicalDeviceFaultFeaturesEXT; + +typedef struct VkDeviceFaultCountsEXT { + VkStructureType sType; + void* pNext; + uint32_t addressInfoCount; + uint32_t vendorInfoCount; + VkDeviceSize vendorBinarySize; +} VkDeviceFaultCountsEXT; + +typedef struct VkDeviceFaultAddressInfoEXT { + VkDeviceFaultAddressTypeEXT addressType; + VkDeviceAddress reportedAddress; + VkDeviceSize addressPrecision; +} VkDeviceFaultAddressInfoEXT; + +typedef struct VkDeviceFaultVendorInfoEXT { + char description[VK_MAX_DESCRIPTION_SIZE]; + uint64_t vendorFaultCode; + uint64_t vendorFaultData; +} VkDeviceFaultVendorInfoEXT; + +typedef struct VkDeviceFaultInfoEXT { + VkStructureType sType; + void* pNext; + char description[VK_MAX_DESCRIPTION_SIZE]; + VkDeviceFaultAddressInfoEXT* pAddressInfos; + VkDeviceFaultVendorInfoEXT* pVendorInfos; + void* pVendorBinaryData; +} VkDeviceFaultInfoEXT; + +typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT { + uint32_t headerSize; + VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion; + uint32_t vendorID; + uint32_t deviceID; + uint32_t driverVersion; + uint8_t pipelineCacheUUID[VK_UUID_SIZE]; + uint32_t applicationNameOffset; + uint32_t applicationVersion; + uint32_t engineNameOffset; + uint32_t engineVersion; + uint32_t apiVersion; +} VkDeviceFaultVendorBinaryHeaderVersionOneEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT( + VkDevice device, + VkDeviceFaultCountsEXT* pFaultCounts, + VkDeviceFaultInfoEXT* pFaultInfo); +#endif + + +// VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls. +#define VK_ARM_rasterization_order_attachment_access 1 +#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1 +#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access" +typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 rasterizationOrderColorAttachmentAccess; + VkBool32 rasterizationOrderDepthAttachmentAccess; + VkBool32 rasterizationOrderStencilAttachmentAccess; +} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT; + +typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM; + + + +// VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_rgba10x6_formats 1 +#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1 +#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats" +typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 formatRgba10x6WithoutYCbCrSampler; +} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT; + + + +// VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls. +#define VK_VALVE_mutable_descriptor_type 1 +#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1 +#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type" +typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 mutableDescriptorType; +} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT; + +typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE; + +typedef struct VkMutableDescriptorTypeListEXT { + uint32_t descriptorTypeCount; + const VkDescriptorType* pDescriptorTypes; +} VkMutableDescriptorTypeListEXT; + +typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE; + +typedef struct VkMutableDescriptorTypeCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t mutableDescriptorTypeListCount; + const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists; +} VkMutableDescriptorTypeCreateInfoEXT; + +typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE; + + + +// VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_vertex_input_dynamic_state 1 +#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2 +#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state" +typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 vertexInputDynamicState; +} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT; + +typedef struct VkVertexInputBindingDescription2EXT { + VkStructureType sType; + void* pNext; + uint32_t binding; + uint32_t stride; + VkVertexInputRate inputRate; + uint32_t divisor; +} VkVertexInputBindingDescription2EXT; + +typedef struct VkVertexInputAttributeDescription2EXT { + VkStructureType sType; + void* pNext; + uint32_t location; + uint32_t binding; + VkFormat format; + uint32_t offset; +} VkVertexInputAttributeDescription2EXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT( + VkCommandBuffer commandBuffer, + uint32_t vertexBindingDescriptionCount, + const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, + uint32_t vertexAttributeDescriptionCount, + const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); +#endif + + +// VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_physical_device_drm 1 +#define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1 +#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm" +typedef struct VkPhysicalDeviceDrmPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 hasPrimary; + VkBool32 hasRender; + int64_t primaryMajor; + int64_t primaryMinor; + int64_t renderMajor; + int64_t renderMinor; +} VkPhysicalDeviceDrmPropertiesEXT; + + + +// VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_device_address_binding_report 1 +#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1 +#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report" + +typedef enum VkDeviceAddressBindingTypeEXT { + VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0, + VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1, + VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceAddressBindingTypeEXT; + +typedef enum VkDeviceAddressBindingFlagBitsEXT { + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001, + VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkDeviceAddressBindingFlagBitsEXT; +typedef VkFlags VkDeviceAddressBindingFlagsEXT; +typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 reportAddressBinding; +} VkPhysicalDeviceAddressBindingReportFeaturesEXT; + +typedef struct VkDeviceAddressBindingCallbackDataEXT { + VkStructureType sType; + void* pNext; + VkDeviceAddressBindingFlagsEXT flags; + VkDeviceAddress baseAddress; + VkDeviceSize size; + VkDeviceAddressBindingTypeEXT bindingType; +} VkDeviceAddressBindingCallbackDataEXT; + + + +// VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_depth_clip_control 1 +#define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1 +#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control" +typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 depthClipControl; +} VkPhysicalDeviceDepthClipControlFeaturesEXT; + +typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 negativeOneToOne; +} VkPipelineViewportDepthClipControlCreateInfoEXT; + + + +// VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_primitive_topology_list_restart 1 +#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1 +#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart" +typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 primitiveTopologyListRestart; + VkBool32 primitiveTopologyPatchListRestart; +} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT; + + + +// VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls. +#define VK_HUAWEI_subpass_shading 1 +#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3 +#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading" +typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI { + VkStructureType sType; + void* pNext; + VkRenderPass renderPass; + uint32_t subpass; +} VkSubpassShadingPipelineCreateInfoHUAWEI; + +typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI { + VkStructureType sType; + void* pNext; + VkBool32 subpassShading; +} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI; + +typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI { + VkStructureType sType; + void* pNext; + uint32_t maxSubpassShadingWorkgroupSizeAspectRatio; +} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI; + +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize); +typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( + VkDevice device, + VkRenderPass renderpass, + VkExtent2D* pMaxWorkgroupSize); + +VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI( + VkCommandBuffer commandBuffer); +#endif + + +// VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls. +#define VK_HUAWEI_invocation_mask 1 +#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1 +#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask" +typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI { + VkStructureType sType; + void* pNext; + VkBool32 invocationMask; +} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI; + +typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI( + VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout); +#endif + + +// VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_external_memory_rdma 1 +typedef void* VkRemoteAddressNV; +#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1 +#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma" +typedef struct VkMemoryGetRemoteAddressInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetRemoteAddressInfoNV; + +typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 externalMemoryRDMA; +} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV( + VkDevice device, + const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, + VkRemoteAddressNV* pAddress); +#endif + + +// VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_pipeline_properties 1 +#define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties" +typedef VkPipelineInfoKHR VkPipelineInfoEXT; + +typedef struct VkPipelinePropertiesIdentifierEXT { + VkStructureType sType; + void* pNext; + uint8_t pipelineIdentifier[VK_UUID_SIZE]; +} VkPipelinePropertiesIdentifierEXT; + +typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pipelinePropertiesIdentifier; +} VkPhysicalDevicePipelinePropertiesFeaturesEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT( + VkDevice device, + const VkPipelineInfoEXT* pPipelineInfo, + VkBaseOutStructure* pPipelineProperties); +#endif + + +// VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_frame_boundary 1 +#define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1 +#define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary" + +typedef enum VkFrameBoundaryFlagBitsEXT { + VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001, + VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkFrameBoundaryFlagBitsEXT; +typedef VkFlags VkFrameBoundaryFlagsEXT; +typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 frameBoundary; +} VkPhysicalDeviceFrameBoundaryFeaturesEXT; + +typedef struct VkFrameBoundaryEXT { + VkStructureType sType; + const void* pNext; + VkFrameBoundaryFlagsEXT flags; + uint64_t frameID; + uint32_t imageCount; + const VkImage* pImages; + uint32_t bufferCount; + const VkBuffer* pBuffers; + uint64_t tagName; + size_t tagSize; + const void* pTag; +} VkFrameBoundaryEXT; + + + +// VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_multisampled_render_to_single_sampled 1 +#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1 +#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled" +typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 multisampledRenderToSingleSampled; +} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT; + +typedef struct VkSubpassResolvePerformanceQueryEXT { + VkStructureType sType; + void* pNext; + VkBool32 optimal; +} VkSubpassResolvePerformanceQueryEXT; + +typedef struct VkMultisampledRenderToSingleSampledInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 multisampledRenderToSingleSampledEnable; + VkSampleCountFlagBits rasterizationSamples; +} VkMultisampledRenderToSingleSampledInfoEXT; + + + +// VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_extended_dynamic_state2 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2" +typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 extendedDynamicState2; + VkBool32 extendedDynamicState2LogicOp; + VkBool32 extendedDynamicState2PatchControlPoints; +} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp); +typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT( + VkCommandBuffer commandBuffer, + uint32_t patchControlPoints); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 rasterizerDiscardEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthBiasEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT( + VkCommandBuffer commandBuffer, + VkLogicOp logicOp); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 primitiveRestartEnable); +#endif + + +// VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_color_write_enable 1 +#define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1 +#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable" +typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 colorWriteEnable; +} VkPhysicalDeviceColorWriteEnableFeaturesEXT; + +typedef struct VkPipelineColorWriteCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t attachmentCount; + const VkBool32* pColorWriteEnables; +} VkPipelineColorWriteCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT( + VkCommandBuffer commandBuffer, + uint32_t attachmentCount, + const VkBool32* pColorWriteEnables); +#endif + + +// VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_primitives_generated_query 1 +#define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1 +#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query" +typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 primitivesGeneratedQuery; + VkBool32 primitivesGeneratedQueryWithRasterizerDiscard; + VkBool32 primitivesGeneratedQueryWithNonZeroStreams; +} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT; + + + +// VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_global_priority_query 1 +#define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1 +#define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query" +#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE_KHR +typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT; + +typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT; + + + +// VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_image_view_min_lod 1 +#define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1 +#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod" +typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 minLod; +} VkPhysicalDeviceImageViewMinLodFeaturesEXT; + +typedef struct VkImageViewMinLodCreateInfoEXT { + VkStructureType sType; + const void* pNext; + float minLod; +} VkImageViewMinLodCreateInfoEXT; + + + +// VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_multi_draw 1 +#define VK_EXT_MULTI_DRAW_SPEC_VERSION 1 +#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw" +typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 multiDraw; +} VkPhysicalDeviceMultiDrawFeaturesEXT; + +typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxMultiDrawCount; +} VkPhysicalDeviceMultiDrawPropertiesEXT; + +typedef struct VkMultiDrawInfoEXT { + uint32_t firstVertex; + uint32_t vertexCount; +} VkMultiDrawInfoEXT; + +typedef struct VkMultiDrawIndexedInfoEXT { + uint32_t firstIndex; + uint32_t indexCount; + int32_t vertexOffset; +} VkMultiDrawIndexedInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiIndexedEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT( + VkCommandBuffer commandBuffer, + uint32_t drawCount, + const VkMultiDrawInfoEXT* pVertexInfo, + uint32_t instanceCount, + uint32_t firstInstance, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT( + VkCommandBuffer commandBuffer, + uint32_t drawCount, + const VkMultiDrawIndexedInfoEXT* pIndexInfo, + uint32_t instanceCount, + uint32_t firstInstance, + uint32_t stride, + const int32_t* pVertexOffset); +#endif + + +// VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_image_2d_view_of_3d 1 +#define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1 +#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d" +typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 image2DViewOf3D; + VkBool32 sampler2DViewOf3D; +} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT; + + + +// VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_tile_image 1 +#define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1 +#define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image" +typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderTileImageColorReadAccess; + VkBool32 shaderTileImageDepthReadAccess; + VkBool32 shaderTileImageStencilReadAccess; +} VkPhysicalDeviceShaderTileImageFeaturesEXT; + +typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderTileImageCoherentReadAccelerated; + VkBool32 shaderTileImageReadSampleFromPixelRateInvocation; + VkBool32 shaderTileImageReadFromHelperInvocation; +} VkPhysicalDeviceShaderTileImagePropertiesEXT; + + + +// VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_opacity_micromap 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT) +#define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2 +#define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap" + +typedef enum VkMicromapTypeEXT { + VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000, +#endif + VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkMicromapTypeEXT; + +typedef enum VkBuildMicromapModeEXT { + VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0, + VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkBuildMicromapModeEXT; + +typedef enum VkCopyMicromapModeEXT { + VK_COPY_MICROMAP_MODE_CLONE_EXT = 0, + VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1, + VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2, + VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3, + VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkCopyMicromapModeEXT; + +typedef enum VkOpacityMicromapFormatEXT { + VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1, + VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2, + VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF +} VkOpacityMicromapFormatEXT; + +typedef enum VkOpacityMicromapSpecialIndexEXT { + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4, + VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF +} VkOpacityMicromapSpecialIndexEXT; + +typedef enum VkAccelerationStructureCompatibilityKHR { + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0, + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1, + VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureCompatibilityKHR; + +typedef enum VkAccelerationStructureBuildTypeKHR { + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0, + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1, + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2, + VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureBuildTypeKHR; + +typedef enum VkBuildMicromapFlagBitsEXT { + VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001, + VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002, + VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004, + VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkBuildMicromapFlagBitsEXT; +typedef VkFlags VkBuildMicromapFlagsEXT; + +typedef enum VkMicromapCreateFlagBitsEXT { + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001, + VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkMicromapCreateFlagBitsEXT; +typedef VkFlags VkMicromapCreateFlagsEXT; +typedef struct VkMicromapUsageEXT { + uint32_t count; + uint32_t subdivisionLevel; + uint32_t format; +} VkMicromapUsageEXT; + +typedef union VkDeviceOrHostAddressKHR { + VkDeviceAddress deviceAddress; + void* hostAddress; +} VkDeviceOrHostAddressKHR; + +typedef struct VkMicromapBuildInfoEXT { + VkStructureType sType; + const void* pNext; + VkMicromapTypeEXT type; + VkBuildMicromapFlagsEXT flags; + VkBuildMicromapModeEXT mode; + VkMicromapEXT dstMicromap; + uint32_t usageCountsCount; + const VkMicromapUsageEXT* pUsageCounts; + const VkMicromapUsageEXT* const* ppUsageCounts; + VkDeviceOrHostAddressConstKHR data; + VkDeviceOrHostAddressKHR scratchData; + VkDeviceOrHostAddressConstKHR triangleArray; + VkDeviceSize triangleArrayStride; +} VkMicromapBuildInfoEXT; + +typedef struct VkMicromapCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkMicromapCreateFlagsEXT createFlags; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; + VkMicromapTypeEXT type; + VkDeviceAddress deviceAddress; +} VkMicromapCreateInfoEXT; + +typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 micromap; + VkBool32 micromapCaptureReplay; + VkBool32 micromapHostCommands; +} VkPhysicalDeviceOpacityMicromapFeaturesEXT; + +typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxOpacity2StateSubdivisionLevel; + uint32_t maxOpacity4StateSubdivisionLevel; +} VkPhysicalDeviceOpacityMicromapPropertiesEXT; + +typedef struct VkMicromapVersionInfoEXT { + VkStructureType sType; + const void* pNext; + const uint8_t* pVersionData; +} VkMicromapVersionInfoEXT; + +typedef struct VkCopyMicromapToMemoryInfoEXT { + VkStructureType sType; + const void* pNext; + VkMicromapEXT src; + VkDeviceOrHostAddressKHR dst; + VkCopyMicromapModeEXT mode; +} VkCopyMicromapToMemoryInfoEXT; + +typedef struct VkCopyMemoryToMicromapInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR src; + VkMicromapEXT dst; + VkCopyMicromapModeEXT mode; +} VkCopyMemoryToMicromapInfoEXT; + +typedef struct VkCopyMicromapInfoEXT { + VkStructureType sType; + const void* pNext; + VkMicromapEXT src; + VkMicromapEXT dst; + VkCopyMicromapModeEXT mode; +} VkCopyMicromapInfoEXT; + +typedef struct VkMicromapBuildSizesInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceSize micromapSize; + VkDeviceSize buildScratchSize; + VkBool32 discardable; +} VkMicromapBuildSizesInfoEXT; + +typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT { + VkStructureType sType; + void* pNext; + VkIndexType indexType; + VkDeviceOrHostAddressConstKHR indexBuffer; + VkDeviceSize indexStride; + uint32_t baseTriangle; + uint32_t usageCountsCount; + const VkMicromapUsageEXT* pUsageCounts; + const VkMicromapUsageEXT* const* ppUsageCounts; + VkMicromapEXT micromap; +} VkAccelerationStructureTrianglesOpacityMicromapEXT; + +typedef struct VkMicromapTriangleEXT { + uint32_t dataOffset; + uint16_t subdivisionLevel; + uint16_t format; +} VkMicromapTriangleEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap); +typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos); +typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); +typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility); +typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT( + VkDevice device, + const VkMicromapCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkMicromapEXT* pMicromap); + +VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT( + VkDevice device, + VkMicromapEXT micromap, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT( + VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkMicromapBuildInfoEXT* pInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VkMicromapBuildInfoEXT* pInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMicromapInfoEXT* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMicromapToMemoryInfoEXT* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMemoryToMicromapInfoEXT* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT( + VkDevice device, + uint32_t micromapCount, + const VkMicromapEXT* pMicromaps, + VkQueryType queryType, + size_t dataSize, + void* pData, + size_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT( + VkCommandBuffer commandBuffer, + const VkCopyMicromapInfoEXT* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT( + VkCommandBuffer commandBuffer, + const VkCopyMicromapToMemoryInfoEXT* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT( + VkCommandBuffer commandBuffer, + const VkCopyMemoryToMicromapInfoEXT* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT( + VkCommandBuffer commandBuffer, + uint32_t micromapCount, + const VkMicromapEXT* pMicromaps, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT( + VkDevice device, + const VkMicromapVersionInfoEXT* pVersionInfo, + VkAccelerationStructureCompatibilityKHR* pCompatibility); + +VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT( + VkDevice device, + VkAccelerationStructureBuildTypeKHR buildType, + const VkMicromapBuildInfoEXT* pBuildInfo, + VkMicromapBuildSizesInfoEXT* pSizeInfo); +#endif + + +// VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_load_store_op_none 1 +#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1 +#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none" + + +// VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls. +#define VK_HUAWEI_cluster_culling_shader 1 +#define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3 +#define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader" +typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI { + VkStructureType sType; + void* pNext; + VkBool32 clustercullingShader; + VkBool32 multiviewClusterCullingShader; +} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI; + +typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI { + VkStructureType sType; + void* pNext; + uint32_t maxWorkGroupCount[3]; + uint32_t maxWorkGroupSize[3]; + uint32_t maxOutputClusterCount; + VkDeviceSize indirectBufferOffsetAlignment; +} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI; + +typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI { + VkStructureType sType; + void* pNext; + VkBool32 clusterShadingRate; +} VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI; + +typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); +typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI( + VkCommandBuffer commandBuffer, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset); +#endif + + +// VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_border_color_swizzle 1 +#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1 +#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle" +typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 borderColorSwizzle; + VkBool32 borderColorSwizzleFromImage; +} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT; + +typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkComponentMapping components; + VkBool32 srgb; +} VkSamplerBorderColorComponentMappingCreateInfoEXT; + + + +// VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_pageable_device_local_memory 1 +#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1 +#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory" +typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pageableDeviceLocalMemory; +} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT( + VkDevice device, + VkDeviceMemory memory, + float priority); +#endif + + +// VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls. +#define VK_ARM_shader_core_properties 1 +#define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1 +#define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties" +typedef struct VkPhysicalDeviceShaderCorePropertiesARM { + VkStructureType sType; + void* pNext; + uint32_t pixelRate; + uint32_t texelRate; + uint32_t fmaRate; +} VkPhysicalDeviceShaderCorePropertiesARM; + + + +// VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls. +#define VK_ARM_scheduling_controls 1 +#define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1 +#define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls" +typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM; + +// Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM +typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM; +static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL; + +typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM { + VkStructureType sType; + void* pNext; + uint32_t shaderCoreCount; +} VkDeviceQueueShaderCoreControlCreateInfoARM; + +typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM { + VkStructureType sType; + void* pNext; + VkBool32 schedulingControls; +} VkPhysicalDeviceSchedulingControlsFeaturesARM; + +typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM { + VkStructureType sType; + void* pNext; + VkPhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags; +} VkPhysicalDeviceSchedulingControlsPropertiesARM; + + + +// VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_image_sliced_view_of_3d 1 +#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1 +#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d" +#define VK_REMAINING_3D_SLICES_EXT (~0U) +typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 imageSlicedViewOf3D; +} VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT; + +typedef struct VkImageViewSlicedCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t sliceOffset; + uint32_t sliceCount; +} VkImageViewSlicedCreateInfoEXT; + + + +// VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls. +#define VK_VALVE_descriptor_set_host_mapping 1 +#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1 +#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping" +typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE { + VkStructureType sType; + void* pNext; + VkBool32 descriptorSetHostMapping; +} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE; + +typedef struct VkDescriptorSetBindingReferenceVALVE { + VkStructureType sType; + const void* pNext; + VkDescriptorSetLayout descriptorSetLayout; + uint32_t binding; +} VkDescriptorSetBindingReferenceVALVE; + +typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE { + VkStructureType sType; + void* pNext; + size_t descriptorOffset; + uint32_t descriptorSize; +} VkDescriptorSetLayoutHostMappingInfoVALVE; + +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); +typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE( + VkDevice device, + const VkDescriptorSetBindingReferenceVALVE* pBindingReference, + VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping); + +VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE( + VkDevice device, + VkDescriptorSet descriptorSet, + void** ppData); +#endif + + +// VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_depth_clamp_zero_one 1 +#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1 +#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one" +typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 depthClampZeroOne; +} VkPhysicalDeviceDepthClampZeroOneFeaturesEXT; + + + +// VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_non_seamless_cube_map 1 +#define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1 +#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map" +typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 nonSeamlessCubeMap; +} VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT; + + + +// VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls. +#define VK_ARM_render_pass_striped 1 +#define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1 +#define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped" +typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM { + VkStructureType sType; + void* pNext; + VkBool32 renderPassStriped; +} VkPhysicalDeviceRenderPassStripedFeaturesARM; + +typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM { + VkStructureType sType; + void* pNext; + VkExtent2D renderPassStripeGranularity; + uint32_t maxRenderPassStripes; +} VkPhysicalDeviceRenderPassStripedPropertiesARM; + +typedef struct VkRenderPassStripeInfoARM { + VkStructureType sType; + const void* pNext; + VkRect2D stripeArea; +} VkRenderPassStripeInfoARM; + +typedef struct VkRenderPassStripeBeginInfoARM { + VkStructureType sType; + const void* pNext; + uint32_t stripeInfoCount; + const VkRenderPassStripeInfoARM* pStripeInfos; +} VkRenderPassStripeBeginInfoARM; + +typedef struct VkRenderPassStripeSubmitInfoARM { + VkStructureType sType; + const void* pNext; + uint32_t stripeSemaphoreInfoCount; + const VkSemaphoreSubmitInfo* pStripeSemaphoreInfos; +} VkRenderPassStripeSubmitInfoARM; + + + +// VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_fragment_density_map_offset 1 +#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1 +#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset" +typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 fragmentDensityMapOffset; +} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM; + +typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM { + VkStructureType sType; + void* pNext; + VkExtent2D fragmentDensityOffsetGranularity; +} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM; + +typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM { + VkStructureType sType; + const void* pNext; + uint32_t fragmentDensityOffsetCount; + const VkOffset2D* pFragmentDensityOffsets; +} VkSubpassFragmentDensityMapOffsetEndInfoQCOM; + + + +// VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_copy_memory_indirect 1 +#define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1 +#define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect" +typedef struct VkCopyMemoryIndirectCommandNV { + VkDeviceAddress srcAddress; + VkDeviceAddress dstAddress; + VkDeviceSize size; +} VkCopyMemoryIndirectCommandNV; + +typedef struct VkCopyMemoryToImageIndirectCommandNV { + VkDeviceAddress srcAddress; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkCopyMemoryToImageIndirectCommandNV; + +typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 indirectCopy; +} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV; + +typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV { + VkStructureType sType; + void* pNext; + VkQueueFlags supportedQueues; +} VkPhysicalDeviceCopyMemoryIndirectPropertiesNV; + +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV( + VkCommandBuffer commandBuffer, + VkDeviceAddress copyBufferAddress, + uint32_t copyCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV( + VkCommandBuffer commandBuffer, + VkDeviceAddress copyBufferAddress, + uint32_t copyCount, + uint32_t stride, + VkImage dstImage, + VkImageLayout dstImageLayout, + const VkImageSubresourceLayers* pImageSubresources); +#endif + + +// VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_memory_decompression 1 +#define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1 +#define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression" + +// Flag bits for VkMemoryDecompressionMethodFlagBitsNV +typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV; +static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL; + +typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV; +typedef struct VkDecompressMemoryRegionNV { + VkDeviceAddress srcAddress; + VkDeviceAddress dstAddress; + VkDeviceSize compressedSize; + VkDeviceSize decompressedSize; + VkMemoryDecompressionMethodFlagsNV decompressionMethod; +} VkDecompressMemoryRegionNV; + +typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 memoryDecompression; +} VkPhysicalDeviceMemoryDecompressionFeaturesNV; + +typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV { + VkStructureType sType; + void* pNext; + VkMemoryDecompressionMethodFlagsNV decompressionMethods; + uint64_t maxDecompressionIndirectCount; +} VkPhysicalDeviceMemoryDecompressionPropertiesNV; + +typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions); +typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV( + VkCommandBuffer commandBuffer, + uint32_t decompressRegionCount, + const VkDecompressMemoryRegionNV* pDecompressMemoryRegions); + +VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV( + VkCommandBuffer commandBuffer, + VkDeviceAddress indirectCommandsAddress, + VkDeviceAddress indirectCommandsCountAddress, + uint32_t stride); +#endif + + +// VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_device_generated_commands_compute 1 +#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2 +#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute" +typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 deviceGeneratedCompute; + VkBool32 deviceGeneratedComputePipelines; + VkBool32 deviceGeneratedComputeCaptureReplay; +} VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV; + +typedef struct VkComputePipelineIndirectBufferInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceAddress deviceAddress; + VkDeviceSize size; + VkDeviceAddress pipelineDeviceAddressCaptureReplay; +} VkComputePipelineIndirectBufferInfoNV; + +typedef struct VkPipelineIndirectDeviceAddressInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineBindPoint pipelineBindPoint; + VkPipeline pipeline; +} VkPipelineIndirectDeviceAddressInfoNV; + +typedef struct VkBindPipelineIndirectCommandNV { + VkDeviceAddress pipelineAddress; +} VkBindPipelineIndirectCommandNV; + +typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements); +typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline); +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV( + VkDevice device, + const VkComputePipelineCreateInfo* pCreateInfo, + VkMemoryRequirements2* pMemoryRequirements); + +VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV( + VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipeline pipeline); + +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV( + VkDevice device, + const VkPipelineIndirectDeviceAddressInfoNV* pInfo); +#endif + + +// VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_linear_color_attachment 1 +#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1 +#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment" +typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 linearColorAttachment; +} VkPhysicalDeviceLinearColorAttachmentFeaturesNV; + + + +// VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls. +#define VK_GOOGLE_surfaceless_query 1 +#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2 +#define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query" + + +// VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_image_compression_control_swapchain 1 +#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1 +#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain" +typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 imageCompressionControlSwapchain; +} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT; + + + +// VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_image_processing 1 +#define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1 +#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing" +typedef struct VkImageViewSampleWeightCreateInfoQCOM { + VkStructureType sType; + const void* pNext; + VkOffset2D filterCenter; + VkExtent2D filterSize; + uint32_t numPhases; +} VkImageViewSampleWeightCreateInfoQCOM; + +typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 textureSampleWeighted; + VkBool32 textureBoxFilter; + VkBool32 textureBlockMatch; +} VkPhysicalDeviceImageProcessingFeaturesQCOM; + +typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM { + VkStructureType sType; + void* pNext; + uint32_t maxWeightFilterPhases; + VkExtent2D maxWeightFilterDimension; + VkExtent2D maxBlockMatchRegion; + VkExtent2D maxBoxFilterBlockSize; +} VkPhysicalDeviceImageProcessingPropertiesQCOM; + + + +// VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_nested_command_buffer 1 +#define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1 +#define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer" +typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 nestedCommandBuffer; + VkBool32 nestedCommandBufferRendering; + VkBool32 nestedCommandBufferSimultaneousUse; +} VkPhysicalDeviceNestedCommandBufferFeaturesEXT; + +typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxCommandBufferNestingLevel; +} VkPhysicalDeviceNestedCommandBufferPropertiesEXT; + + + +// VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_external_memory_acquire_unmodified 1 +#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1 +#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified" +typedef struct VkExternalMemoryAcquireUnmodifiedEXT { + VkStructureType sType; + const void* pNext; + VkBool32 acquireUnmodifiedMemory; +} VkExternalMemoryAcquireUnmodifiedEXT; + + + +// VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_extended_dynamic_state3 1 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2 +#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3" +typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 extendedDynamicState3TessellationDomainOrigin; + VkBool32 extendedDynamicState3DepthClampEnable; + VkBool32 extendedDynamicState3PolygonMode; + VkBool32 extendedDynamicState3RasterizationSamples; + VkBool32 extendedDynamicState3SampleMask; + VkBool32 extendedDynamicState3AlphaToCoverageEnable; + VkBool32 extendedDynamicState3AlphaToOneEnable; + VkBool32 extendedDynamicState3LogicOpEnable; + VkBool32 extendedDynamicState3ColorBlendEnable; + VkBool32 extendedDynamicState3ColorBlendEquation; + VkBool32 extendedDynamicState3ColorWriteMask; + VkBool32 extendedDynamicState3RasterizationStream; + VkBool32 extendedDynamicState3ConservativeRasterizationMode; + VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize; + VkBool32 extendedDynamicState3DepthClipEnable; + VkBool32 extendedDynamicState3SampleLocationsEnable; + VkBool32 extendedDynamicState3ColorBlendAdvanced; + VkBool32 extendedDynamicState3ProvokingVertexMode; + VkBool32 extendedDynamicState3LineRasterizationMode; + VkBool32 extendedDynamicState3LineStippleEnable; + VkBool32 extendedDynamicState3DepthClipNegativeOneToOne; + VkBool32 extendedDynamicState3ViewportWScalingEnable; + VkBool32 extendedDynamicState3ViewportSwizzle; + VkBool32 extendedDynamicState3CoverageToColorEnable; + VkBool32 extendedDynamicState3CoverageToColorLocation; + VkBool32 extendedDynamicState3CoverageModulationMode; + VkBool32 extendedDynamicState3CoverageModulationTableEnable; + VkBool32 extendedDynamicState3CoverageModulationTable; + VkBool32 extendedDynamicState3CoverageReductionMode; + VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable; + VkBool32 extendedDynamicState3ShadingRateImageEnable; +} VkPhysicalDeviceExtendedDynamicState3FeaturesEXT; + +typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 dynamicPrimitiveTopologyUnrestricted; +} VkPhysicalDeviceExtendedDynamicState3PropertiesEXT; + +typedef struct VkColorBlendEquationEXT { + VkBlendFactor srcColorBlendFactor; + VkBlendFactor dstColorBlendFactor; + VkBlendOp colorBlendOp; + VkBlendFactor srcAlphaBlendFactor; + VkBlendFactor dstAlphaBlendFactor; + VkBlendOp alphaBlendOp; +} VkColorBlendEquationEXT; + +typedef struct VkColorBlendAdvancedEXT { + VkBlendOp advancedBlendOp; + VkBool32 srcPremultiplied; + VkBool32 dstPremultiplied; + VkBlendOverlapEXT blendOverlap; + VkBool32 clampResults; +} VkColorBlendAdvancedEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples); +typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask); +typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables); +typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations); +typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks); +typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin); +typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream); +typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced); +typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable); +typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthClampEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT( + VkCommandBuffer commandBuffer, + VkPolygonMode polygonMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT( + VkCommandBuffer commandBuffer, + VkSampleCountFlagBits rasterizationSamples); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT( + VkCommandBuffer commandBuffer, + VkSampleCountFlagBits samples, + const VkSampleMask* pSampleMask); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 alphaToCoverageEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 alphaToOneEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 logicOpEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT( + VkCommandBuffer commandBuffer, + uint32_t firstAttachment, + uint32_t attachmentCount, + const VkBool32* pColorBlendEnables); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT( + VkCommandBuffer commandBuffer, + uint32_t firstAttachment, + uint32_t attachmentCount, + const VkColorBlendEquationEXT* pColorBlendEquations); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT( + VkCommandBuffer commandBuffer, + uint32_t firstAttachment, + uint32_t attachmentCount, + const VkColorComponentFlags* pColorWriteMasks); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT( + VkCommandBuffer commandBuffer, + VkTessellationDomainOrigin domainOrigin); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT( + VkCommandBuffer commandBuffer, + uint32_t rasterizationStream); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT( + VkCommandBuffer commandBuffer, + VkConservativeRasterizationModeEXT conservativeRasterizationMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT( + VkCommandBuffer commandBuffer, + float extraPrimitiveOverestimationSize); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 depthClipEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 sampleLocationsEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT( + VkCommandBuffer commandBuffer, + uint32_t firstAttachment, + uint32_t attachmentCount, + const VkColorBlendAdvancedEXT* pColorBlendAdvanced); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT( + VkCommandBuffer commandBuffer, + VkProvokingVertexModeEXT provokingVertexMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT( + VkCommandBuffer commandBuffer, + VkLineRasterizationModeEXT lineRasterizationMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT( + VkCommandBuffer commandBuffer, + VkBool32 stippledLineEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT( + VkCommandBuffer commandBuffer, + VkBool32 negativeOneToOne); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 viewportWScalingEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV( + VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkViewportSwizzleNV* pViewportSwizzles); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 coverageToColorEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV( + VkCommandBuffer commandBuffer, + uint32_t coverageToColorLocation); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV( + VkCommandBuffer commandBuffer, + VkCoverageModulationModeNV coverageModulationMode); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 coverageModulationTableEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV( + VkCommandBuffer commandBuffer, + uint32_t coverageModulationTableCount, + const float* pCoverageModulationTable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 shadingRateImageEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV( + VkCommandBuffer commandBuffer, + VkBool32 representativeFragmentTestEnable); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV( + VkCommandBuffer commandBuffer, + VkCoverageReductionModeNV coverageReductionMode); +#endif + + +// VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_subpass_merge_feedback 1 +#define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2 +#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback" + +typedef enum VkSubpassMergeStatusEXT { + VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0, + VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12, + VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13, + VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkSubpassMergeStatusEXT; +typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 subpassMergeFeedback; +} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT; + +typedef struct VkRenderPassCreationControlEXT { + VkStructureType sType; + const void* pNext; + VkBool32 disallowMerging; +} VkRenderPassCreationControlEXT; + +typedef struct VkRenderPassCreationFeedbackInfoEXT { + uint32_t postMergeSubpassCount; +} VkRenderPassCreationFeedbackInfoEXT; + +typedef struct VkRenderPassCreationFeedbackCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback; +} VkRenderPassCreationFeedbackCreateInfoEXT; + +typedef struct VkRenderPassSubpassFeedbackInfoEXT { + VkSubpassMergeStatusEXT subpassMergeStatus; + char description[VK_MAX_DESCRIPTION_SIZE]; + uint32_t postMergeIndex; +} VkRenderPassSubpassFeedbackInfoEXT; + +typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback; +} VkRenderPassSubpassFeedbackCreateInfoEXT; + + + +// VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls. +#define VK_LUNARG_direct_driver_loading 1 +#define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1 +#define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading" + +typedef enum VkDirectDriverLoadingModeLUNARG { + VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0, + VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1, + VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF +} VkDirectDriverLoadingModeLUNARG; +typedef VkFlags VkDirectDriverLoadingFlagsLUNARG; +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)( + VkInstance instance, const char* pName); + +typedef struct VkDirectDriverLoadingInfoLUNARG { + VkStructureType sType; + void* pNext; + VkDirectDriverLoadingFlagsLUNARG flags; + PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr; +} VkDirectDriverLoadingInfoLUNARG; + +typedef struct VkDirectDriverLoadingListLUNARG { + VkStructureType sType; + const void* pNext; + VkDirectDriverLoadingModeLUNARG mode; + uint32_t driverCount; + const VkDirectDriverLoadingInfoLUNARG* pDrivers; +} VkDirectDriverLoadingListLUNARG; + + + +// VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_module_identifier 1 +#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U +#define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1 +#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier" +typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderModuleIdentifier; +} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT; + +typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT { + VkStructureType sType; + void* pNext; + uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE]; +} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT; + +typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t identifierSize; + const uint8_t* pIdentifier; +} VkPipelineShaderStageModuleIdentifierCreateInfoEXT; + +typedef struct VkShaderModuleIdentifierEXT { + VkStructureType sType; + void* pNext; + uint32_t identifierSize; + uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT]; +} VkShaderModuleIdentifierEXT; + +typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier); +typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT( + VkDevice device, + VkShaderModule shaderModule, + VkShaderModuleIdentifierEXT* pIdentifier); + +VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT( + VkDevice device, + const VkShaderModuleCreateInfo* pCreateInfo, + VkShaderModuleIdentifierEXT* pIdentifier); +#endif + + +// VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_rasterization_order_attachment_access 1 +#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1 +#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access" + + +// VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_optical_flow 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV) +#define VK_NV_OPTICAL_FLOW_SPEC_VERSION 1 +#define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow" + +typedef enum VkOpticalFlowPerformanceLevelNV { + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0, + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1, + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2, + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3, + VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF +} VkOpticalFlowPerformanceLevelNV; + +typedef enum VkOpticalFlowSessionBindingPointNV { + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0, + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1, + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2, + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3, + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4, + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5, + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6, + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7, + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8, + VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF +} VkOpticalFlowSessionBindingPointNV; + +typedef enum VkOpticalFlowGridSizeFlagBitsNV { + VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0, + VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001, + VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002, + VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004, + VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008, + VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkOpticalFlowGridSizeFlagBitsNV; +typedef VkFlags VkOpticalFlowGridSizeFlagsNV; + +typedef enum VkOpticalFlowUsageFlagBitsNV { + VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0, + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001, + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002, + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004, + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008, + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010, + VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkOpticalFlowUsageFlagBitsNV; +typedef VkFlags VkOpticalFlowUsageFlagsNV; + +typedef enum VkOpticalFlowSessionCreateFlagBitsNV { + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001, + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002, + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004, + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008, + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010, + VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkOpticalFlowSessionCreateFlagBitsNV; +typedef VkFlags VkOpticalFlowSessionCreateFlagsNV; + +typedef enum VkOpticalFlowExecuteFlagBitsNV { + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001, + VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkOpticalFlowExecuteFlagBitsNV; +typedef VkFlags VkOpticalFlowExecuteFlagsNV; +typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 opticalFlow; +} VkPhysicalDeviceOpticalFlowFeaturesNV; + +typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV { + VkStructureType sType; + void* pNext; + VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes; + VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes; + VkBool32 hintSupported; + VkBool32 costSupported; + VkBool32 bidirectionalFlowSupported; + VkBool32 globalFlowSupported; + uint32_t minWidth; + uint32_t minHeight; + uint32_t maxWidth; + uint32_t maxHeight; + uint32_t maxNumRegionsOfInterest; +} VkPhysicalDeviceOpticalFlowPropertiesNV; + +typedef struct VkOpticalFlowImageFormatInfoNV { + VkStructureType sType; + const void* pNext; + VkOpticalFlowUsageFlagsNV usage; +} VkOpticalFlowImageFormatInfoNV; + +typedef struct VkOpticalFlowImageFormatPropertiesNV { + VkStructureType sType; + const void* pNext; + VkFormat format; +} VkOpticalFlowImageFormatPropertiesNV; + +typedef struct VkOpticalFlowSessionCreateInfoNV { + VkStructureType sType; + void* pNext; + uint32_t width; + uint32_t height; + VkFormat imageFormat; + VkFormat flowVectorFormat; + VkFormat costFormat; + VkOpticalFlowGridSizeFlagsNV outputGridSize; + VkOpticalFlowGridSizeFlagsNV hintGridSize; + VkOpticalFlowPerformanceLevelNV performanceLevel; + VkOpticalFlowSessionCreateFlagsNV flags; +} VkOpticalFlowSessionCreateInfoNV; + +typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV { + VkStructureType sType; + void* pNext; + uint32_t id; + uint32_t size; + const void* pPrivateData; +} VkOpticalFlowSessionCreatePrivateDataInfoNV; + +typedef struct VkOpticalFlowExecuteInfoNV { + VkStructureType sType; + void* pNext; + VkOpticalFlowExecuteFlagsNV flags; + uint32_t regionCount; + const VkRect2D* pRegions; +} VkOpticalFlowExecuteInfoNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties); +typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession); +typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout); +typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV( + VkPhysicalDevice physicalDevice, + const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, + uint32_t* pFormatCount, + VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV( + VkDevice device, + const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkOpticalFlowSessionNV* pSession); + +VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV( + VkDevice device, + VkOpticalFlowSessionNV session, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV( + VkDevice device, + VkOpticalFlowSessionNV session, + VkOpticalFlowSessionBindingPointNV bindingPoint, + VkImageView view, + VkImageLayout layout); + +VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV( + VkCommandBuffer commandBuffer, + VkOpticalFlowSessionNV session, + const VkOpticalFlowExecuteInfoNV* pExecuteInfo); +#endif + + +// VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_legacy_dithering 1 +#define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 1 +#define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering" +typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 legacyDithering; +} VkPhysicalDeviceLegacyDitheringFeaturesEXT; + + + +// VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_pipeline_protected_access 1 +#define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access" +typedef struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pipelineProtectedAccess; +} VkPhysicalDevicePipelineProtectedAccessFeaturesEXT; + + + +// VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_shader_object 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT) +#define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1 +#define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object" + +typedef enum VkShaderCodeTypeEXT { + VK_SHADER_CODE_TYPE_BINARY_EXT = 0, + VK_SHADER_CODE_TYPE_SPIRV_EXT = 1, + VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkShaderCodeTypeEXT; + +typedef enum VkShaderCreateFlagBitsEXT { + VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001, + VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002, + VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004, + VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008, + VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010, + VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020, + VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040, + VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkShaderCreateFlagBitsEXT; +typedef VkFlags VkShaderCreateFlagsEXT; +typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderObject; +} VkPhysicalDeviceShaderObjectFeaturesEXT; + +typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT { + VkStructureType sType; + void* pNext; + uint8_t shaderBinaryUUID[VK_UUID_SIZE]; + uint32_t shaderBinaryVersion; +} VkPhysicalDeviceShaderObjectPropertiesEXT; + +typedef struct VkShaderCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkShaderCreateFlagsEXT flags; + VkShaderStageFlagBits stage; + VkShaderStageFlags nextStage; + VkShaderCodeTypeEXT codeType; + size_t codeSize; + const void* pCode; + const char* pName; + uint32_t setLayoutCount; + const VkDescriptorSetLayout* pSetLayouts; + uint32_t pushConstantRangeCount; + const VkPushConstantRange* pPushConstantRanges; + const VkSpecializationInfo* pSpecializationInfo; +} VkShaderCreateInfoEXT; + +typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders); +typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData); +typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT( + VkDevice device, + uint32_t createInfoCount, + const VkShaderCreateInfoEXT* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkShaderEXT* pShaders); + +VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT( + VkDevice device, + VkShaderEXT shader, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT( + VkDevice device, + VkShaderEXT shader, + size_t* pDataSize, + void* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT( + VkCommandBuffer commandBuffer, + uint32_t stageCount, + const VkShaderStageFlagBits* pStages, + const VkShaderEXT* pShaders); +#endif + + +// VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_tile_properties 1 +#define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1 +#define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties" +typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 tileProperties; +} VkPhysicalDeviceTilePropertiesFeaturesQCOM; + +typedef struct VkTilePropertiesQCOM { + VkStructureType sType; + void* pNext; + VkExtent3D tileSize; + VkExtent2D apronSize; + VkOffset2D origin; +} VkTilePropertiesQCOM; + +typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM( + VkDevice device, + VkFramebuffer framebuffer, + uint32_t* pPropertiesCount, + VkTilePropertiesQCOM* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM( + VkDevice device, + const VkRenderingInfo* pRenderingInfo, + VkTilePropertiesQCOM* pProperties); +#endif + + +// VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls. +#define VK_SEC_amigo_profiling 1 +#define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1 +#define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling" +typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC { + VkStructureType sType; + void* pNext; + VkBool32 amigoProfiling; +} VkPhysicalDeviceAmigoProfilingFeaturesSEC; + +typedef struct VkAmigoProfilingSubmitInfoSEC { + VkStructureType sType; + const void* pNext; + uint64_t firstDrawTimestamp; + uint64_t swapBufferTimestamp; +} VkAmigoProfilingSubmitInfoSEC; + + + +// VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_multiview_per_view_viewports 1 +#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1 +#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports" +typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 multiviewPerViewViewports; +} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM; + + + +// VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_ray_tracing_invocation_reorder 1 +#define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1 +#define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder" + +typedef enum VkRayTracingInvocationReorderModeNV { + VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0, + VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1, + VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 0x7FFFFFFF +} VkRayTracingInvocationReorderModeNV; +typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV { + VkStructureType sType; + void* pNext; + VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint; +} VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV; + +typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 rayTracingInvocationReorder; +} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV; + + + +// VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_extended_sparse_address_space 1 +#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1 +#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space" +typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 extendedSparseAddressSpace; +} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV; + +typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV { + VkStructureType sType; + void* pNext; + VkDeviceSize extendedSparseAddressSpaceSize; + VkImageUsageFlags extendedSparseImageUsageFlags; + VkBufferUsageFlags extendedSparseBufferUsageFlags; +} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV; + + + +// VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_mutable_descriptor_type 1 +#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1 +#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type" + + +// VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_layer_settings 1 +#define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2 +#define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings" + +typedef enum VkLayerSettingTypeEXT { + VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0, + VK_LAYER_SETTING_TYPE_INT32_EXT = 1, + VK_LAYER_SETTING_TYPE_INT64_EXT = 2, + VK_LAYER_SETTING_TYPE_UINT32_EXT = 3, + VK_LAYER_SETTING_TYPE_UINT64_EXT = 4, + VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5, + VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6, + VK_LAYER_SETTING_TYPE_STRING_EXT = 7, + VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkLayerSettingTypeEXT; +typedef struct VkLayerSettingEXT { + const char* pLayerName; + const char* pSettingName; + VkLayerSettingTypeEXT type; + uint32_t valueCount; + const void* pValues; +} VkLayerSettingEXT; + +typedef struct VkLayerSettingsCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t settingCount; + const VkLayerSettingEXT* pSettings; +} VkLayerSettingsCreateInfoEXT; + + + +// VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls. +#define VK_ARM_shader_core_builtins 1 +#define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2 +#define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins" +typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM { + VkStructureType sType; + void* pNext; + VkBool32 shaderCoreBuiltins; +} VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM; + +typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM { + VkStructureType sType; + void* pNext; + uint64_t shaderCoreMask; + uint32_t shaderCoreCount; + uint32_t shaderWarpsPerCore; +} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM; + + + +// VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_pipeline_library_group_handles 1 +#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles" +typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 pipelineLibraryGroupHandles; +} VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT; + + + +// VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_dynamic_rendering_unused_attachments 1 +#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1 +#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments" +typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 dynamicRenderingUnusedAttachments; +} VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT; + + + +// VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_low_latency2 1 +#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 2 +#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2" + +typedef enum VkLatencyMarkerNV { + VK_LATENCY_MARKER_SIMULATION_START_NV = 0, + VK_LATENCY_MARKER_SIMULATION_END_NV = 1, + VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2, + VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3, + VK_LATENCY_MARKER_PRESENT_START_NV = 4, + VK_LATENCY_MARKER_PRESENT_END_NV = 5, + VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6, + VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7, + VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8, + VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9, + VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10, + VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11, + VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF +} VkLatencyMarkerNV; + +typedef enum VkOutOfBandQueueTypeNV { + VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0, + VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1, + VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkOutOfBandQueueTypeNV; +typedef struct VkLatencySleepModeInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 lowLatencyMode; + VkBool32 lowLatencyBoost; + uint32_t minimumIntervalUs; +} VkLatencySleepModeInfoNV; + +typedef struct VkLatencySleepInfoNV { + VkStructureType sType; + const void* pNext; + VkSemaphore signalSemaphore; + uint64_t value; +} VkLatencySleepInfoNV; + +typedef struct VkSetLatencyMarkerInfoNV { + VkStructureType sType; + const void* pNext; + uint64_t presentID; + VkLatencyMarkerNV marker; +} VkSetLatencyMarkerInfoNV; + +typedef struct VkLatencyTimingsFrameReportNV { + VkStructureType sType; + const void* pNext; + uint64_t presentID; + uint64_t inputSampleTimeUs; + uint64_t simStartTimeUs; + uint64_t simEndTimeUs; + uint64_t renderSubmitStartTimeUs; + uint64_t renderSubmitEndTimeUs; + uint64_t presentStartTimeUs; + uint64_t presentEndTimeUs; + uint64_t driverStartTimeUs; + uint64_t driverEndTimeUs; + uint64_t osRenderQueueStartTimeUs; + uint64_t osRenderQueueEndTimeUs; + uint64_t gpuRenderStartTimeUs; + uint64_t gpuRenderEndTimeUs; +} VkLatencyTimingsFrameReportNV; + +typedef struct VkGetLatencyMarkerInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t timingCount; + VkLatencyTimingsFrameReportNV* pTimings; +} VkGetLatencyMarkerInfoNV; + +typedef struct VkLatencySubmissionPresentIdNV { + VkStructureType sType; + const void* pNext; + uint64_t presentID; +} VkLatencySubmissionPresentIdNV; + +typedef struct VkSwapchainLatencyCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 latencyModeEnable; +} VkSwapchainLatencyCreateInfoNV; + +typedef struct VkOutOfBandQueueTypeInfoNV { + VkStructureType sType; + const void* pNext; + VkOutOfBandQueueTypeNV queueType; +} VkOutOfBandQueueTypeInfoNV; + +typedef struct VkLatencySurfaceCapabilitiesNV { + VkStructureType sType; + const void* pNext; + uint32_t presentModeCount; + VkPresentModeKHR* pPresentModes; +} VkLatencySurfaceCapabilitiesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo); +typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo); +typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV( + VkDevice device, + VkSwapchainKHR swapchain, + const VkLatencySleepModeInfoNV* pSleepModeInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV( + VkDevice device, + VkSwapchainKHR swapchain, + const VkLatencySleepInfoNV* pSleepInfo); + +VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV( + VkDevice device, + VkSwapchainKHR swapchain, + const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo); + +VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV( + VkDevice device, + VkSwapchainKHR swapchain, + VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); + +VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV( + VkQueue queue, + const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo); +#endif + + +// VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_multiview_per_view_render_areas 1 +#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1 +#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas" +typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 multiviewPerViewRenderAreas; +} VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM; + +typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM { + VkStructureType sType; + const void* pNext; + uint32_t perViewRenderAreaCount; + const VkRect2D* pPerViewRenderAreas; +} VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM; + + + +// VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_per_stage_descriptor_set 1 +#define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1 +#define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set" +typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 perStageDescriptorSet; + VkBool32 dynamicPipelineLayout; +} VkPhysicalDevicePerStageDescriptorSetFeaturesNV; + + + +// VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_image_processing2 1 +#define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1 +#define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2" + +typedef enum VkBlockMatchWindowCompareModeQCOM { + VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0, + VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1, + VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF +} VkBlockMatchWindowCompareModeQCOM; +typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 textureBlockMatch2; +} VkPhysicalDeviceImageProcessing2FeaturesQCOM; + +typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM { + VkStructureType sType; + void* pNext; + VkExtent2D maxBlockMatchWindow; +} VkPhysicalDeviceImageProcessing2PropertiesQCOM; + +typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM { + VkStructureType sType; + const void* pNext; + VkExtent2D windowExtent; + VkBlockMatchWindowCompareModeQCOM windowCompareMode; +} VkSamplerBlockMatchWindowCreateInfoQCOM; + + + +// VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_filter_cubic_weights 1 +#define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1 +#define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights" + +typedef enum VkCubicFilterWeightsQCOM { + VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0, + VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1, + VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2, + VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3, + VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF +} VkCubicFilterWeightsQCOM; +typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 selectableCubicWeights; +} VkPhysicalDeviceCubicWeightsFeaturesQCOM; + +typedef struct VkSamplerCubicWeightsCreateInfoQCOM { + VkStructureType sType; + const void* pNext; + VkCubicFilterWeightsQCOM cubicWeights; +} VkSamplerCubicWeightsCreateInfoQCOM; + +typedef struct VkBlitImageCubicWeightsInfoQCOM { + VkStructureType sType; + const void* pNext; + VkCubicFilterWeightsQCOM cubicWeights; +} VkBlitImageCubicWeightsInfoQCOM; + + + +// VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_ycbcr_degamma 1 +#define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1 +#define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma" +typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 ycbcrDegamma; +} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM; + +typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM { + VkStructureType sType; + void* pNext; + VkBool32 enableYDegamma; + VkBool32 enableCbCrDegamma; +} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM; + + + +// VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls. +#define VK_QCOM_filter_cubic_clamp 1 +#define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1 +#define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp" +typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM { + VkStructureType sType; + void* pNext; + VkBool32 cubicRangeClamp; +} VkPhysicalDeviceCubicClampFeaturesQCOM; + + + +// VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_attachment_feedback_loop_dynamic_state 1 +#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1 +#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state" +typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 attachmentFeedbackLoopDynamicState; +} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT( + VkCommandBuffer commandBuffer, + VkImageAspectFlags aspectMask); +#endif + + +// VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls. +#define VK_MSFT_layered_driver 1 +#define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1 +#define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver" + +typedef enum VkLayeredDriverUnderlyingApiMSFT { + VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0, + VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1, + VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF +} VkLayeredDriverUnderlyingApiMSFT; +typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT { + VkStructureType sType; + void* pNext; + VkLayeredDriverUnderlyingApiMSFT underlyingAPI; +} VkPhysicalDeviceLayeredDriverPropertiesMSFT; + + + +// VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_descriptor_pool_overallocation 1 +#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1 +#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation" +typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 descriptorPoolOverallocation; +} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV; + + + +// VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_shader_atomic_float16_vector 1 +#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1 +#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector" +typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 shaderFloat16VectorAtomics; +} VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV; + + + +// VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_acceleration_structure 1 +#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13 +#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure" + +typedef enum VkBuildAccelerationStructureModeKHR { + VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0, + VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1, + VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF +} VkBuildAccelerationStructureModeKHR; + +typedef enum VkAccelerationStructureCreateFlagBitsKHR { + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001, + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008, + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004, + VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAccelerationStructureCreateFlagBitsKHR; +typedef VkFlags VkAccelerationStructureCreateFlagsKHR; +typedef struct VkAccelerationStructureBuildRangeInfoKHR { + uint32_t primitiveCount; + uint32_t primitiveOffset; + uint32_t firstVertex; + uint32_t transformOffset; +} VkAccelerationStructureBuildRangeInfoKHR; + +typedef struct VkAccelerationStructureGeometryTrianglesDataKHR { + VkStructureType sType; + const void* pNext; + VkFormat vertexFormat; + VkDeviceOrHostAddressConstKHR vertexData; + VkDeviceSize vertexStride; + uint32_t maxVertex; + VkIndexType indexType; + VkDeviceOrHostAddressConstKHR indexData; + VkDeviceOrHostAddressConstKHR transformData; +} VkAccelerationStructureGeometryTrianglesDataKHR; + +typedef struct VkAccelerationStructureGeometryAabbsDataKHR { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR data; + VkDeviceSize stride; +} VkAccelerationStructureGeometryAabbsDataKHR; + +typedef struct VkAccelerationStructureGeometryInstancesDataKHR { + VkStructureType sType; + const void* pNext; + VkBool32 arrayOfPointers; + VkDeviceOrHostAddressConstKHR data; +} VkAccelerationStructureGeometryInstancesDataKHR; + +typedef union VkAccelerationStructureGeometryDataKHR { + VkAccelerationStructureGeometryTrianglesDataKHR triangles; + VkAccelerationStructureGeometryAabbsDataKHR aabbs; + VkAccelerationStructureGeometryInstancesDataKHR instances; +} VkAccelerationStructureGeometryDataKHR; + +typedef struct VkAccelerationStructureGeometryKHR { + VkStructureType sType; + const void* pNext; + VkGeometryTypeKHR geometryType; + VkAccelerationStructureGeometryDataKHR geometry; + VkGeometryFlagsKHR flags; +} VkAccelerationStructureGeometryKHR; + +typedef struct VkAccelerationStructureBuildGeometryInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureTypeKHR type; + VkBuildAccelerationStructureFlagsKHR flags; + VkBuildAccelerationStructureModeKHR mode; + VkAccelerationStructureKHR srcAccelerationStructure; + VkAccelerationStructureKHR dstAccelerationStructure; + uint32_t geometryCount; + const VkAccelerationStructureGeometryKHR* pGeometries; + const VkAccelerationStructureGeometryKHR* const* ppGeometries; + VkDeviceOrHostAddressKHR scratchData; +} VkAccelerationStructureBuildGeometryInfoKHR; + +typedef struct VkAccelerationStructureCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureCreateFlagsKHR createFlags; + VkBuffer buffer; + VkDeviceSize offset; + VkDeviceSize size; + VkAccelerationStructureTypeKHR type; + VkDeviceAddress deviceAddress; +} VkAccelerationStructureCreateInfoKHR; + +typedef struct VkWriteDescriptorSetAccelerationStructureKHR { + VkStructureType sType; + const void* pNext; + uint32_t accelerationStructureCount; + const VkAccelerationStructureKHR* pAccelerationStructures; +} VkWriteDescriptorSetAccelerationStructureKHR; + +typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 accelerationStructure; + VkBool32 accelerationStructureCaptureReplay; + VkBool32 accelerationStructureIndirectBuild; + VkBool32 accelerationStructureHostCommands; + VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind; +} VkPhysicalDeviceAccelerationStructureFeaturesKHR; + +typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR { + VkStructureType sType; + void* pNext; + uint64_t maxGeometryCount; + uint64_t maxInstanceCount; + uint64_t maxPrimitiveCount; + uint32_t maxPerStageDescriptorAccelerationStructures; + uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures; + uint32_t maxDescriptorSetAccelerationStructures; + uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures; + uint32_t minAccelerationStructureScratchOffsetAlignment; +} VkPhysicalDeviceAccelerationStructurePropertiesKHR; + +typedef struct VkAccelerationStructureDeviceAddressInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR accelerationStructure; +} VkAccelerationStructureDeviceAddressInfoKHR; + +typedef struct VkAccelerationStructureVersionInfoKHR { + VkStructureType sType; + const void* pNext; + const uint8_t* pVersionData; +} VkAccelerationStructureVersionInfoKHR; + +typedef struct VkCopyAccelerationStructureToMemoryInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR src; + VkDeviceOrHostAddressKHR dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyAccelerationStructureToMemoryInfoKHR; + +typedef struct VkCopyMemoryToAccelerationStructureInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR src; + VkAccelerationStructureKHR dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyMemoryToAccelerationStructureInfoKHR; + +typedef struct VkCopyAccelerationStructureInfoKHR { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureKHR src; + VkAccelerationStructureKHR dst; + VkCopyAccelerationStructureModeKHR mode; +} VkCopyAccelerationStructureInfoKHR; + +typedef struct VkAccelerationStructureBuildSizesInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceSize accelerationStructureSize; + VkDeviceSize updateScratchSize; + VkDeviceSize buildScratchSize; +} VkAccelerationStructureBuildSizesInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure); +typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts); +typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); +typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); +typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); +typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); +typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility); +typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR( + VkDevice device, + const VkAccelerationStructureCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkAccelerationStructureKHR* pAccelerationStructure); + +VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR( + VkDevice device, + VkAccelerationStructureKHR accelerationStructure, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR( + VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR( + VkCommandBuffer commandBuffer, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkDeviceAddress* pIndirectDeviceAddresses, + const uint32_t* pIndirectStrides, + const uint32_t* const* ppMaxPrimitiveCounts); + +VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + uint32_t infoCount, + const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, + const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyAccelerationStructureInfoKHR* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR( + VkDevice device, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR* pAccelerationStructures, + VkQueryType queryType, + size_t dataSize, + void* pData, + size_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR( + VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR( + VkCommandBuffer commandBuffer, + const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR( + VkCommandBuffer commandBuffer, + const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); + +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR( + VkDevice device, + const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR( + VkCommandBuffer commandBuffer, + uint32_t accelerationStructureCount, + const VkAccelerationStructureKHR* pAccelerationStructures, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery); + +VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR( + VkDevice device, + const VkAccelerationStructureVersionInfoKHR* pVersionInfo, + VkAccelerationStructureCompatibilityKHR* pCompatibility); + +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR( + VkDevice device, + VkAccelerationStructureBuildTypeKHR buildType, + const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, + const uint32_t* pMaxPrimitiveCounts, + VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); +#endif + + +// VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_ray_tracing_pipeline 1 +#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1 +#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline" + +typedef enum VkShaderGroupShaderKHR { + VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0, + VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1, + VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2, + VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3, + VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF +} VkShaderGroupShaderKHR; +typedef struct VkRayTracingShaderGroupCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkRayTracingShaderGroupTypeKHR type; + uint32_t generalShader; + uint32_t closestHitShader; + uint32_t anyHitShader; + uint32_t intersectionShader; + const void* pShaderGroupCaptureReplayHandle; +} VkRayTracingShaderGroupCreateInfoKHR; + +typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t maxPipelineRayPayloadSize; + uint32_t maxPipelineRayHitAttributeSize; +} VkRayTracingPipelineInterfaceCreateInfoKHR; + +typedef struct VkRayTracingPipelineCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + uint32_t groupCount; + const VkRayTracingShaderGroupCreateInfoKHR* pGroups; + uint32_t maxPipelineRayRecursionDepth; + const VkPipelineLibraryCreateInfoKHR* pLibraryInfo; + const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface; + const VkPipelineDynamicStateCreateInfo* pDynamicState; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkRayTracingPipelineCreateInfoKHR; + +typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 rayTracingPipeline; + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay; + VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed; + VkBool32 rayTracingPipelineTraceRaysIndirect; + VkBool32 rayTraversalPrimitiveCulling; +} VkPhysicalDeviceRayTracingPipelineFeaturesKHR; + +typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t shaderGroupHandleSize; + uint32_t maxRayRecursionDepth; + uint32_t maxShaderGroupStride; + uint32_t shaderGroupBaseAlignment; + uint32_t shaderGroupHandleCaptureReplaySize; + uint32_t maxRayDispatchInvocationCount; + uint32_t shaderGroupHandleAlignment; + uint32_t maxRayHitAttributeSize; +} VkPhysicalDeviceRayTracingPipelinePropertiesKHR; + +typedef struct VkStridedDeviceAddressRegionKHR { + VkDeviceAddress deviceAddress; + VkDeviceSize stride; + VkDeviceSize size; +} VkStridedDeviceAddressRegionKHR; + +typedef struct VkTraceRaysIndirectCommandKHR { + uint32_t width; + uint32_t height; + uint32_t depth; +} VkTraceRaysIndirectCommandKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth); +typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress); +typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader); +typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR( + VkCommandBuffer commandBuffer, + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, + uint32_t width, + uint32_t height, + uint32_t depth); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR( + VkDevice device, + VkDeferredOperationKHR deferredOperation, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR( + VkCommandBuffer commandBuffer, + const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, + const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, + VkDeviceAddress indirectDeviceAddress); + +VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR( + VkDevice device, + VkPipeline pipeline, + uint32_t group, + VkShaderGroupShaderKHR groupShader); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR( + VkCommandBuffer commandBuffer, + uint32_t pipelineStackSize); +#endif + + +// VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_ray_query 1 +#define VK_KHR_RAY_QUERY_SPEC_VERSION 1 +#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query" +typedef struct VkPhysicalDeviceRayQueryFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 rayQuery; +} VkPhysicalDeviceRayQueryFeaturesKHR; + + + +// VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_mesh_shader 1 +#define VK_EXT_MESH_SHADER_SPEC_VERSION 1 +#define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader" +typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 taskShader; + VkBool32 meshShader; + VkBool32 multiviewMeshShader; + VkBool32 primitiveFragmentShadingRateMeshShader; + VkBool32 meshShaderQueries; +} VkPhysicalDeviceMeshShaderFeaturesEXT; + +typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxTaskWorkGroupTotalCount; + uint32_t maxTaskWorkGroupCount[3]; + uint32_t maxTaskWorkGroupInvocations; + uint32_t maxTaskWorkGroupSize[3]; + uint32_t maxTaskPayloadSize; + uint32_t maxTaskSharedMemorySize; + uint32_t maxTaskPayloadAndSharedMemorySize; + uint32_t maxMeshWorkGroupTotalCount; + uint32_t maxMeshWorkGroupCount[3]; + uint32_t maxMeshWorkGroupInvocations; + uint32_t maxMeshWorkGroupSize[3]; + uint32_t maxMeshSharedMemorySize; + uint32_t maxMeshPayloadAndSharedMemorySize; + uint32_t maxMeshOutputMemorySize; + uint32_t maxMeshPayloadAndOutputMemorySize; + uint32_t maxMeshOutputComponents; + uint32_t maxMeshOutputVertices; + uint32_t maxMeshOutputPrimitives; + uint32_t maxMeshOutputLayers; + uint32_t maxMeshMultiviewViewCount; + uint32_t meshOutputPerVertexGranularity; + uint32_t meshOutputPerPrimitiveGranularity; + uint32_t maxPreferredTaskWorkGroupInvocations; + uint32_t maxPreferredMeshWorkGroupInvocations; + VkBool32 prefersLocalInvocationVertexOutput; + VkBool32 prefersLocalInvocationPrimitiveOutput; + VkBool32 prefersCompactVertexOutput; + VkBool32 prefersCompactPrimitiveOutput; +} VkPhysicalDeviceMeshShaderPropertiesEXT; + +typedef struct VkDrawMeshTasksIndirectCommandEXT { + uint32_t groupCountX; + uint32_t groupCountY; + uint32_t groupCountZ; +} VkDrawMeshTasksIndirectCommandEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT( + VkCommandBuffer commandBuffer, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_directfb.h b/vulkan-headers/include/vulkan/vulkan_directfb.h new file mode 100644 index 00000000..f06f80b7 --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_directfb.h @@ -0,0 +1,55 @@ +#ifndef VULKAN_DIRECTFB_H_ +#define VULKAN_DIRECTFB_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_EXT_directfb_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_directfb_surface 1 +#define VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION 1 +#define VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME "VK_EXT_directfb_surface" +typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT; +typedef struct VkDirectFBSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDirectFBSurfaceCreateFlagsEXT flags; + IDirectFB* dfb; + IDirectFBSurface* surface; +} VkDirectFBSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateDirectFBSurfaceEXT)(VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateDirectFBSurfaceEXT( + VkInstance instance, + const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); + +VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceDirectFBPresentationSupportEXT( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + IDirectFB* dfb); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_fuchsia.h b/vulkan-headers/include/vulkan/vulkan_fuchsia.h new file mode 100644 index 00000000..f60907d1 --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_fuchsia.h @@ -0,0 +1,262 @@ +#ifndef VULKAN_FUCHSIA_H_ +#define VULKAN_FUCHSIA_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_FUCHSIA_imagepipe_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_FUCHSIA_imagepipe_surface 1 +#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 +#define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" +typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; +typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkImagePipeSurfaceCreateFlagsFUCHSIA flags; + zx_handle_t imagePipeHandle; +} VkImagePipeSurfaceCreateInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA( + VkInstance instance, + const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +// VK_FUCHSIA_external_memory is a preprocessor guard. Do not pass it to API calls. +#define VK_FUCHSIA_external_memory 1 +#define VK_FUCHSIA_EXTERNAL_MEMORY_SPEC_VERSION 1 +#define VK_FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME "VK_FUCHSIA_external_memory" +typedef struct VkImportMemoryZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBits handleType; + zx_handle_t handle; +} VkImportMemoryZirconHandleInfoFUCHSIA; + +typedef struct VkMemoryZirconHandlePropertiesFUCHSIA { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; +} VkMemoryZirconHandlePropertiesFUCHSIA; + +typedef struct VkMemoryGetZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetZirconHandleInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandleFUCHSIA)(VkDevice device, const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle, VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandleFUCHSIA( + VkDevice device, + const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, + zx_handle_t* pZirconHandle); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryZirconHandlePropertiesFUCHSIA( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + zx_handle_t zirconHandle, + VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties); +#endif + + +// VK_FUCHSIA_external_semaphore is a preprocessor guard. Do not pass it to API calls. +#define VK_FUCHSIA_external_semaphore 1 +#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 +#define VK_FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_FUCHSIA_external_semaphore" +typedef struct VkImportSemaphoreZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkSemaphoreImportFlags flags; + VkExternalSemaphoreHandleTypeFlagBits handleType; + zx_handle_t zirconHandle; +} VkImportSemaphoreZirconHandleInfoFUCHSIA; + +typedef struct VkSemaphoreGetZirconHandleInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkExternalSemaphoreHandleTypeFlagBits handleType; +} VkSemaphoreGetZirconHandleInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreZirconHandleFUCHSIA)(VkDevice device, const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, zx_handle_t* pZirconHandle); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreZirconHandleFUCHSIA( + VkDevice device, + const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreZirconHandleFUCHSIA( + VkDevice device, + const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, + zx_handle_t* pZirconHandle); +#endif + + +// VK_FUCHSIA_buffer_collection is a preprocessor guard. Do not pass it to API calls. +#define VK_FUCHSIA_buffer_collection 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferCollectionFUCHSIA) +#define VK_FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION 2 +#define VK_FUCHSIA_BUFFER_COLLECTION_EXTENSION_NAME "VK_FUCHSIA_buffer_collection" +typedef VkFlags VkImageFormatConstraintsFlagsFUCHSIA; + +typedef enum VkImageConstraintsInfoFlagBitsFUCHSIA { + VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0x00000001, + VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0x00000002, + VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0x00000004, + VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0x00000008, + VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0x00000010, + VK_IMAGE_CONSTRAINTS_INFO_FLAG_BITS_MAX_ENUM_FUCHSIA = 0x7FFFFFFF +} VkImageConstraintsInfoFlagBitsFUCHSIA; +typedef VkFlags VkImageConstraintsInfoFlagsFUCHSIA; +typedef struct VkBufferCollectionCreateInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + zx_handle_t collectionToken; +} VkBufferCollectionCreateInfoFUCHSIA; + +typedef struct VkImportMemoryBufferCollectionFUCHSIA { + VkStructureType sType; + const void* pNext; + VkBufferCollectionFUCHSIA collection; + uint32_t index; +} VkImportMemoryBufferCollectionFUCHSIA; + +typedef struct VkBufferCollectionImageCreateInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkBufferCollectionFUCHSIA collection; + uint32_t index; +} VkBufferCollectionImageCreateInfoFUCHSIA; + +typedef struct VkBufferCollectionConstraintsInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + uint32_t minBufferCount; + uint32_t maxBufferCount; + uint32_t minBufferCountForCamping; + uint32_t minBufferCountForDedicatedSlack; + uint32_t minBufferCountForSharedSlack; +} VkBufferCollectionConstraintsInfoFUCHSIA; + +typedef struct VkBufferConstraintsInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkBufferCreateInfo createInfo; + VkFormatFeatureFlags requiredFormatFeatures; + VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints; +} VkBufferConstraintsInfoFUCHSIA; + +typedef struct VkBufferCollectionBufferCreateInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkBufferCollectionFUCHSIA collection; + uint32_t index; +} VkBufferCollectionBufferCreateInfoFUCHSIA; + +typedef struct VkSysmemColorSpaceFUCHSIA { + VkStructureType sType; + const void* pNext; + uint32_t colorSpace; +} VkSysmemColorSpaceFUCHSIA; + +typedef struct VkBufferCollectionPropertiesFUCHSIA { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; + uint32_t bufferCount; + uint32_t createInfoIndex; + uint64_t sysmemPixelFormat; + VkFormatFeatureFlags formatFeatures; + VkSysmemColorSpaceFUCHSIA sysmemColorSpaceIndex; + VkComponentMapping samplerYcbcrConversionComponents; + VkSamplerYcbcrModelConversion suggestedYcbcrModel; + VkSamplerYcbcrRange suggestedYcbcrRange; + VkChromaLocation suggestedXChromaOffset; + VkChromaLocation suggestedYChromaOffset; +} VkBufferCollectionPropertiesFUCHSIA; + +typedef struct VkImageFormatConstraintsInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkImageCreateInfo imageCreateInfo; + VkFormatFeatureFlags requiredFormatFeatures; + VkImageFormatConstraintsFlagsFUCHSIA flags; + uint64_t sysmemPixelFormat; + uint32_t colorSpaceCount; + const VkSysmemColorSpaceFUCHSIA* pColorSpaces; +} VkImageFormatConstraintsInfoFUCHSIA; + +typedef struct VkImageConstraintsInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + uint32_t formatConstraintsCount; + const VkImageFormatConstraintsInfoFUCHSIA* pFormatConstraints; + VkBufferCollectionConstraintsInfoFUCHSIA bufferCollectionConstraints; + VkImageConstraintsInfoFlagsFUCHSIA flags; +} VkImageConstraintsInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferCollectionFUCHSIA)(VkDevice device, const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferCollectionFUCHSIA* pCollection); +typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo); +typedef VkResult (VKAPI_PTR *PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo); +typedef void (VKAPI_PTR *PFN_vkDestroyBufferCollectionFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, const VkAllocationCallbacks* pAllocator); +typedef VkResult (VKAPI_PTR *PFN_vkGetBufferCollectionPropertiesFUCHSIA)(VkDevice device, VkBufferCollectionFUCHSIA collection, VkBufferCollectionPropertiesFUCHSIA* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferCollectionFUCHSIA( + VkDevice device, + const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkBufferCollectionFUCHSIA* pCollection); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionImageConstraintsFUCHSIA( + VkDevice device, + VkBufferCollectionFUCHSIA collection, + const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkSetBufferCollectionBufferConstraintsFUCHSIA( + VkDevice device, + VkBufferCollectionFUCHSIA collection, + const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo); + +VKAPI_ATTR void VKAPI_CALL vkDestroyBufferCollectionFUCHSIA( + VkDevice device, + VkBufferCollectionFUCHSIA collection, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferCollectionPropertiesFUCHSIA( + VkDevice device, + VkBufferCollectionFUCHSIA collection, + VkBufferCollectionPropertiesFUCHSIA* pProperties); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_ggp.h b/vulkan-headers/include/vulkan/vulkan_ggp.h new file mode 100644 index 00000000..0a8863a1 --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_ggp.h @@ -0,0 +1,60 @@ +#ifndef VULKAN_GGP_H_ +#define VULKAN_GGP_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_GGP_stream_descriptor_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_GGP_stream_descriptor_surface 1 +#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1 +#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME "VK_GGP_stream_descriptor_surface" +typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP; +typedef struct VkStreamDescriptorSurfaceCreateInfoGGP { + VkStructureType sType; + const void* pNext; + VkStreamDescriptorSurfaceCreateFlagsGGP flags; + GgpStreamDescriptor streamDescriptor; +} VkStreamDescriptorSurfaceCreateInfoGGP; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateStreamDescriptorSurfaceGGP)(VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateStreamDescriptorSurfaceGGP( + VkInstance instance, + const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +// VK_GGP_frame_token is a preprocessor guard. Do not pass it to API calls. +#define VK_GGP_frame_token 1 +#define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1 +#define VK_GGP_FRAME_TOKEN_EXTENSION_NAME "VK_GGP_frame_token" +typedef struct VkPresentFrameTokenGGP { + VkStructureType sType; + const void* pNext; + GgpFrameToken frameToken; +} VkPresentFrameTokenGGP; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_ios.h b/vulkan-headers/include/vulkan/vulkan_ios.h new file mode 100644 index 00000000..22ed2c03 --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_ios.h @@ -0,0 +1,48 @@ +#ifndef VULKAN_IOS_H_ +#define VULKAN_IOS_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_MVK_ios_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_MVK_ios_surface 1 +#define VK_MVK_IOS_SURFACE_SPEC_VERSION 3 +#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" +typedef VkFlags VkIOSSurfaceCreateFlagsMVK; +typedef struct VkIOSSurfaceCreateInfoMVK { + VkStructureType sType; + const void* pNext; + VkIOSSurfaceCreateFlagsMVK flags; + const void* pView; +} VkIOSSurfaceCreateInfoMVK; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK( + VkInstance instance, + const VkIOSSurfaceCreateInfoMVK* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_macos.h b/vulkan-headers/include/vulkan/vulkan_macos.h new file mode 100644 index 00000000..a7f5613a --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_macos.h @@ -0,0 +1,48 @@ +#ifndef VULKAN_MACOS_H_ +#define VULKAN_MACOS_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_MVK_macos_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_MVK_macos_surface 1 +#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 3 +#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" +typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; +typedef struct VkMacOSSurfaceCreateInfoMVK { + VkStructureType sType; + const void* pNext; + VkMacOSSurfaceCreateFlagsMVK flags; + const void* pView; +} VkMacOSSurfaceCreateInfoMVK; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK( + VkInstance instance, + const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_metal.h b/vulkan-headers/include/vulkan/vulkan_metal.h new file mode 100644 index 00000000..e6f7bf7a --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_metal.h @@ -0,0 +1,195 @@ +#ifndef VULKAN_METAL_H_ +#define VULKAN_METAL_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_EXT_metal_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_metal_surface 1 +#ifdef __OBJC__ +@class CAMetalLayer; +#else +typedef void CAMetalLayer; +#endif + +#define VK_EXT_METAL_SURFACE_SPEC_VERSION 1 +#define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface" +typedef VkFlags VkMetalSurfaceCreateFlagsEXT; +typedef struct VkMetalSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkMetalSurfaceCreateFlagsEXT flags; + const CAMetalLayer* pLayer; +} VkMetalSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateMetalSurfaceEXT)(VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT( + VkInstance instance, + const VkMetalSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +// VK_EXT_metal_objects is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_metal_objects 1 +#ifdef __OBJC__ +@protocol MTLDevice; +typedef id MTLDevice_id; +#else +typedef void* MTLDevice_id; +#endif + +#ifdef __OBJC__ +@protocol MTLCommandQueue; +typedef id MTLCommandQueue_id; +#else +typedef void* MTLCommandQueue_id; +#endif + +#ifdef __OBJC__ +@protocol MTLBuffer; +typedef id MTLBuffer_id; +#else +typedef void* MTLBuffer_id; +#endif + +#ifdef __OBJC__ +@protocol MTLTexture; +typedef id MTLTexture_id; +#else +typedef void* MTLTexture_id; +#endif + +typedef struct __IOSurface* IOSurfaceRef; +#ifdef __OBJC__ +@protocol MTLSharedEvent; +typedef id MTLSharedEvent_id; +#else +typedef void* MTLSharedEvent_id; +#endif + +#define VK_EXT_METAL_OBJECTS_SPEC_VERSION 1 +#define VK_EXT_METAL_OBJECTS_EXTENSION_NAME "VK_EXT_metal_objects" + +typedef enum VkExportMetalObjectTypeFlagBitsEXT { + VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 0x00000001, + VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0x00000002, + VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 0x00000004, + VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 0x00000008, + VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 0x00000010, + VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 0x00000020, + VK_EXPORT_METAL_OBJECT_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkExportMetalObjectTypeFlagBitsEXT; +typedef VkFlags VkExportMetalObjectTypeFlagsEXT; +typedef struct VkExportMetalObjectCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkExportMetalObjectTypeFlagBitsEXT exportObjectType; +} VkExportMetalObjectCreateInfoEXT; + +typedef struct VkExportMetalObjectsInfoEXT { + VkStructureType sType; + const void* pNext; +} VkExportMetalObjectsInfoEXT; + +typedef struct VkExportMetalDeviceInfoEXT { + VkStructureType sType; + const void* pNext; + MTLDevice_id mtlDevice; +} VkExportMetalDeviceInfoEXT; + +typedef struct VkExportMetalCommandQueueInfoEXT { + VkStructureType sType; + const void* pNext; + VkQueue queue; + MTLCommandQueue_id mtlCommandQueue; +} VkExportMetalCommandQueueInfoEXT; + +typedef struct VkExportMetalBufferInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + MTLBuffer_id mtlBuffer; +} VkExportMetalBufferInfoEXT; + +typedef struct VkImportMetalBufferInfoEXT { + VkStructureType sType; + const void* pNext; + MTLBuffer_id mtlBuffer; +} VkImportMetalBufferInfoEXT; + +typedef struct VkExportMetalTextureInfoEXT { + VkStructureType sType; + const void* pNext; + VkImage image; + VkImageView imageView; + VkBufferView bufferView; + VkImageAspectFlagBits plane; + MTLTexture_id mtlTexture; +} VkExportMetalTextureInfoEXT; + +typedef struct VkImportMetalTextureInfoEXT { + VkStructureType sType; + const void* pNext; + VkImageAspectFlagBits plane; + MTLTexture_id mtlTexture; +} VkImportMetalTextureInfoEXT; + +typedef struct VkExportMetalIOSurfaceInfoEXT { + VkStructureType sType; + const void* pNext; + VkImage image; + IOSurfaceRef ioSurface; +} VkExportMetalIOSurfaceInfoEXT; + +typedef struct VkImportMetalIOSurfaceInfoEXT { + VkStructureType sType; + const void* pNext; + IOSurfaceRef ioSurface; +} VkImportMetalIOSurfaceInfoEXT; + +typedef struct VkExportMetalSharedEventInfoEXT { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkEvent event; + MTLSharedEvent_id mtlSharedEvent; +} VkExportMetalSharedEventInfoEXT; + +typedef struct VkImportMetalSharedEventInfoEXT { + VkStructureType sType; + const void* pNext; + MTLSharedEvent_id mtlSharedEvent; +} VkImportMetalSharedEventInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkExportMetalObjectsEXT)(VkDevice device, VkExportMetalObjectsInfoEXT* pMetalObjectsInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkExportMetalObjectsEXT( + VkDevice device, + VkExportMetalObjectsInfoEXT* pMetalObjectsInfo); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_screen.h b/vulkan-headers/include/vulkan/vulkan_screen.h new file mode 100644 index 00000000..7e84d4d9 --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_screen.h @@ -0,0 +1,108 @@ +#ifndef VULKAN_SCREEN_H_ +#define VULKAN_SCREEN_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_QNX_screen_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_QNX_screen_surface 1 +#define VK_QNX_SCREEN_SURFACE_SPEC_VERSION 1 +#define VK_QNX_SCREEN_SURFACE_EXTENSION_NAME "VK_QNX_screen_surface" +typedef VkFlags VkScreenSurfaceCreateFlagsQNX; +typedef struct VkScreenSurfaceCreateInfoQNX { + VkStructureType sType; + const void* pNext; + VkScreenSurfaceCreateFlagsQNX flags; + struct _screen_context* context; + struct _screen_window* window; +} VkScreenSurfaceCreateInfoQNX; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateScreenSurfaceQNX)(VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateScreenSurfaceQNX( + VkInstance instance, + const VkScreenSurfaceCreateInfoQNX* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); + +VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceScreenPresentationSupportQNX( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + struct _screen_window* window); +#endif + + +// VK_QNX_external_memory_screen_buffer is a preprocessor guard. Do not pass it to API calls. +#define VK_QNX_external_memory_screen_buffer 1 +#define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION 1 +#define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME "VK_QNX_external_memory_screen_buffer" +typedef struct VkScreenBufferPropertiesQNX { + VkStructureType sType; + void* pNext; + VkDeviceSize allocationSize; + uint32_t memoryTypeBits; +} VkScreenBufferPropertiesQNX; + +typedef struct VkScreenBufferFormatPropertiesQNX { + VkStructureType sType; + void* pNext; + VkFormat format; + uint64_t externalFormat; + uint64_t screenUsage; + VkFormatFeatureFlags formatFeatures; + VkComponentMapping samplerYcbcrConversionComponents; + VkSamplerYcbcrModelConversion suggestedYcbcrModel; + VkSamplerYcbcrRange suggestedYcbcrRange; + VkChromaLocation suggestedXChromaOffset; + VkChromaLocation suggestedYChromaOffset; +} VkScreenBufferFormatPropertiesQNX; + +typedef struct VkImportScreenBufferInfoQNX { + VkStructureType sType; + const void* pNext; + struct _screen_buffer* buffer; +} VkImportScreenBufferInfoQNX; + +typedef struct VkExternalFormatQNX { + VkStructureType sType; + void* pNext; + uint64_t externalFormat; +} VkExternalFormatQNX; + +typedef struct VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX { + VkStructureType sType; + void* pNext; + VkBool32 screenBufferImport; +} VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX; + +typedef VkResult (VKAPI_PTR *PFN_vkGetScreenBufferPropertiesQNX)(VkDevice device, const struct _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetScreenBufferPropertiesQNX( + VkDevice device, + const struct _screen_buffer* buffer, + VkScreenBufferPropertiesQNX* pProperties); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_vi.h b/vulkan-headers/include/vulkan/vulkan_vi.h new file mode 100644 index 00000000..c145f4a8 --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_vi.h @@ -0,0 +1,48 @@ +#ifndef VULKAN_VI_H_ +#define VULKAN_VI_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_NN_vi_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_NN_vi_surface 1 +#define VK_NN_VI_SURFACE_SPEC_VERSION 1 +#define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface" +typedef VkFlags VkViSurfaceCreateFlagsNN; +typedef struct VkViSurfaceCreateInfoNN { + VkStructureType sType; + const void* pNext; + VkViSurfaceCreateFlagsNN flags; + void* window; +} VkViSurfaceCreateInfoNN; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN( + VkInstance instance, + const VkViSurfaceCreateInfoNN* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_wayland.h b/vulkan-headers/include/vulkan/vulkan_wayland.h new file mode 100644 index 00000000..ec706a11 --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_wayland.h @@ -0,0 +1,55 @@ +#ifndef VULKAN_WAYLAND_H_ +#define VULKAN_WAYLAND_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_KHR_wayland_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_wayland_surface 1 +#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 +#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" +typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; +typedef struct VkWaylandSurfaceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkWaylandSurfaceCreateFlagsKHR flags; + struct wl_display* display; + struct wl_surface* surface; +} VkWaylandSurfaceCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR( + VkInstance instance, + const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); + +VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + struct wl_display* display); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_win32.h b/vulkan-headers/include/vulkan/vulkan_win32.h new file mode 100644 index 00000000..d7a0b2ba --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_win32.h @@ -0,0 +1,342 @@ +#ifndef VULKAN_WIN32_H_ +#define VULKAN_WIN32_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_KHR_win32_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_win32_surface 1 +#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 +#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" +typedef VkFlags VkWin32SurfaceCreateFlagsKHR; +typedef struct VkWin32SurfaceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkWin32SurfaceCreateFlagsKHR flags; + HINSTANCE hinstance; + HWND hwnd; +} VkWin32SurfaceCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR( + VkInstance instance, + const VkWin32SurfaceCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); + +VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex); +#endif + + +// VK_KHR_external_memory_win32 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_memory_win32 1 +#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" +typedef struct VkImportMemoryWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagBits handleType; + HANDLE handle; + LPCWSTR name; +} VkImportMemoryWin32HandleInfoKHR; + +typedef struct VkExportMemoryWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + const SECURITY_ATTRIBUTES* pAttributes; + DWORD dwAccess; + LPCWSTR name; +} VkExportMemoryWin32HandleInfoKHR; + +typedef struct VkMemoryWin32HandlePropertiesKHR { + VkStructureType sType; + void* pNext; + uint32_t memoryTypeBits; +} VkMemoryWin32HandlePropertiesKHR; + +typedef struct VkMemoryGetWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; + VkExternalMemoryHandleTypeFlagBits handleType; +} VkMemoryGetWin32HandleInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR( + VkDevice device, + const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, + HANDLE* pHandle); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( + VkDevice device, + VkExternalMemoryHandleTypeFlagBits handleType, + HANDLE handle, + VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); +#endif + + +// VK_KHR_win32_keyed_mutex is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_win32_keyed_mutex 1 +#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 +#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" +typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t acquireCount; + const VkDeviceMemory* pAcquireSyncs; + const uint64_t* pAcquireKeys; + const uint32_t* pAcquireTimeouts; + uint32_t releaseCount; + const VkDeviceMemory* pReleaseSyncs; + const uint64_t* pReleaseKeys; +} VkWin32KeyedMutexAcquireReleaseInfoKHR; + + + +// VK_KHR_external_semaphore_win32 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_semaphore_win32 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" +typedef struct VkImportSemaphoreWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkSemaphoreImportFlags flags; + VkExternalSemaphoreHandleTypeFlagBits handleType; + HANDLE handle; + LPCWSTR name; +} VkImportSemaphoreWin32HandleInfoKHR; + +typedef struct VkExportSemaphoreWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + const SECURITY_ATTRIBUTES* pAttributes; + DWORD dwAccess; + LPCWSTR name; +} VkExportSemaphoreWin32HandleInfoKHR; + +typedef struct VkD3D12FenceSubmitInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t waitSemaphoreValuesCount; + const uint64_t* pWaitSemaphoreValues; + uint32_t signalSemaphoreValuesCount; + const uint64_t* pSignalSemaphoreValues; +} VkD3D12FenceSubmitInfoKHR; + +typedef struct VkSemaphoreGetWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkSemaphore semaphore; + VkExternalSemaphoreHandleTypeFlagBits handleType; +} VkSemaphoreGetWin32HandleInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR( + VkDevice device, + const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( + VkDevice device, + const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, + HANDLE* pHandle); +#endif + + +// VK_KHR_external_fence_win32 is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_external_fence_win32 1 +#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 +#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" +typedef struct VkImportFenceWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkFence fence; + VkFenceImportFlags flags; + VkExternalFenceHandleTypeFlagBits handleType; + HANDLE handle; + LPCWSTR name; +} VkImportFenceWin32HandleInfoKHR; + +typedef struct VkExportFenceWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + const SECURITY_ATTRIBUTES* pAttributes; + DWORD dwAccess; + LPCWSTR name; +} VkExportFenceWin32HandleInfoKHR; + +typedef struct VkFenceGetWin32HandleInfoKHR { + VkStructureType sType; + const void* pNext; + VkFence fence; + VkExternalFenceHandleTypeFlagBits handleType; +} VkFenceGetWin32HandleInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); +typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR( + VkDevice device, + const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( + VkDevice device, + const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, + HANDLE* pHandle); +#endif + + +// VK_NV_external_memory_win32 is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_external_memory_win32 1 +#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 +#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" +typedef struct VkImportMemoryWin32HandleInfoNV { + VkStructureType sType; + const void* pNext; + VkExternalMemoryHandleTypeFlagsNV handleType; + HANDLE handle; +} VkImportMemoryWin32HandleInfoNV; + +typedef struct VkExportMemoryWin32HandleInfoNV { + VkStructureType sType; + const void* pNext; + const SECURITY_ATTRIBUTES* pAttributes; + DWORD dwAccess; +} VkExportMemoryWin32HandleInfoNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV( + VkDevice device, + VkDeviceMemory memory, + VkExternalMemoryHandleTypeFlagsNV handleType, + HANDLE* pHandle); +#endif + + +// VK_NV_win32_keyed_mutex is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_win32_keyed_mutex 1 +#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2 +#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" +typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t acquireCount; + const VkDeviceMemory* pAcquireSyncs; + const uint64_t* pAcquireKeys; + const uint32_t* pAcquireTimeoutMilliseconds; + uint32_t releaseCount; + const VkDeviceMemory* pReleaseSyncs; + const uint64_t* pReleaseKeys; +} VkWin32KeyedMutexAcquireReleaseInfoNV; + + + +// VK_EXT_full_screen_exclusive is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_full_screen_exclusive 1 +#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4 +#define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive" + +typedef enum VkFullScreenExclusiveEXT { + VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0, + VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1, + VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2, + VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3, + VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkFullScreenExclusiveEXT; +typedef struct VkSurfaceFullScreenExclusiveInfoEXT { + VkStructureType sType; + void* pNext; + VkFullScreenExclusiveEXT fullScreenExclusive; +} VkSurfaceFullScreenExclusiveInfoEXT; + +typedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT { + VkStructureType sType; + void* pNext; + VkBool32 fullScreenExclusiveSupported; +} VkSurfaceCapabilitiesFullScreenExclusiveEXT; + +typedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT { + VkStructureType sType; + const void* pNext; + HMONITOR hmonitor; +} VkSurfaceFullScreenExclusiveWin32InfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); +typedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + uint32_t* pPresentModeCount, + VkPresentModeKHR* pPresentModes); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT( + VkDevice device, + VkSwapchainKHR swapchain); + +VKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT( + VkDevice device, + VkSwapchainKHR swapchain); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT( + VkDevice device, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + VkDeviceGroupPresentModeFlagsKHR* pModes); +#endif + + +// VK_NV_acquire_winrt_display is a preprocessor guard. Do not pass it to API calls. +#define VK_NV_acquire_winrt_display 1 +#define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1 +#define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display" +typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); +typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireWinrtDisplayNV( + VkPhysicalDevice physicalDevice, + VkDisplayKHR display); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetWinrtDisplayNV( + VkPhysicalDevice physicalDevice, + uint32_t deviceRelativeId, + VkDisplayKHR* pDisplay); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_xcb.h b/vulkan-headers/include/vulkan/vulkan_xcb.h new file mode 100644 index 00000000..cdf6b526 --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_xcb.h @@ -0,0 +1,56 @@ +#ifndef VULKAN_XCB_H_ +#define VULKAN_XCB_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_KHR_xcb_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_xcb_surface 1 +#define VK_KHR_XCB_SURFACE_SPEC_VERSION 6 +#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface" +typedef VkFlags VkXcbSurfaceCreateFlagsKHR; +typedef struct VkXcbSurfaceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkXcbSurfaceCreateFlagsKHR flags; + xcb_connection_t* connection; + xcb_window_t window; +} VkXcbSurfaceCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR( + VkInstance instance, + const VkXcbSurfaceCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); + +VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + xcb_connection_t* connection, + xcb_visualid_t visual_id); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_xlib.h b/vulkan-headers/include/vulkan/vulkan_xlib.h new file mode 100644 index 00000000..b3c3e27d --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_xlib.h @@ -0,0 +1,56 @@ +#ifndef VULKAN_XLIB_H_ +#define VULKAN_XLIB_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_KHR_xlib_surface is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_xlib_surface 1 +#define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6 +#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface" +typedef VkFlags VkXlibSurfaceCreateFlagsKHR; +typedef struct VkXlibSurfaceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkXlibSurfaceCreateFlagsKHR flags; + Display* dpy; + Window window; +} VkXlibSurfaceCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); +typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR( + VkInstance instance, + const VkXlibSurfaceCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); + +VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR( + VkPhysicalDevice physicalDevice, + uint32_t queueFamilyIndex, + Display* dpy, + VisualID visualID); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan-headers/include/vulkan/vulkan_xlib_xrandr.h b/vulkan-headers/include/vulkan/vulkan_xlib_xrandr.h new file mode 100644 index 00000000..8e99190b --- /dev/null +++ b/vulkan-headers/include/vulkan/vulkan_xlib_xrandr.h @@ -0,0 +1,46 @@ +#ifndef VULKAN_XLIB_XRANDR_H_ +#define VULKAN_XLIB_XRANDR_H_ 1 + +/* +** Copyright 2015-2024 The Khronos Group Inc. +** +** SPDX-License-Identifier: Apache-2.0 +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + + + +// VK_EXT_acquire_xlib_display is a preprocessor guard. Do not pass it to API calls. +#define VK_EXT_acquire_xlib_display 1 +#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1 +#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display" +typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display); +typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT( + VkPhysicalDevice physicalDevice, + Display* dpy, + VkDisplayKHR display); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT( + VkPhysicalDevice physicalDevice, + Display* dpy, + RROutput rrOutput, + VkDisplayKHR* pDisplay); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/vulkan/buffer.cpp b/vulkan/buffer.cpp new file mode 100644 index 00000000..1eb5e4db --- /dev/null +++ b/vulkan/buffer.cpp @@ -0,0 +1,87 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "buffer.hpp" +#include "device.hpp" + +namespace Vulkan +{ +Buffer::Buffer(Device *device_, VkBuffer buffer_, const DeviceAllocation &alloc_, const BufferCreateInfo &info_, + VkDeviceAddress bda_) + : Cookie(device_) + , device(device_) + , buffer(buffer_) + , alloc(alloc_) + , info(info_) + , bda(bda_) +{ +} + +ExternalHandle Buffer::export_handle() +{ + return alloc.export_handle(*device); +} + +Buffer::~Buffer() +{ + if (internal_sync) + { + device->destroy_buffer_nolock(buffer); + device->free_memory_nolock(alloc); + } + else + { + device->destroy_buffer(buffer); + device->free_memory(alloc); + } +} + +void BufferDeleter::operator()(Buffer *buffer) +{ + buffer->device->handle_pool.buffers.free(buffer); +} + +BufferView::BufferView(Device *device_, VkBufferView view_, const BufferViewCreateInfo &create_info_) + : Cookie(device_) + , device(device_) + , view(view_) + , info(create_info_) +{ +} + +BufferView::~BufferView() +{ + if (view != VK_NULL_HANDLE) + { + if (internal_sync) + device->destroy_buffer_view_nolock(view); + else + device->destroy_buffer_view(view); + } +} + +void BufferViewDeleter::operator()(BufferView *view) +{ + view->device->handle_pool.buffer_views.free(view); +} + +} diff --git a/vulkan/buffer.hpp b/vulkan/buffer.hpp new file mode 100644 index 00000000..f89df525 --- /dev/null +++ b/vulkan/buffer.hpp @@ -0,0 +1,162 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "cookie.hpp" +#include "vulkan_common.hpp" +#include "memory_allocator.hpp" + +namespace Vulkan +{ +class Device; + +enum class BufferDomain +{ + Device, // Device local. Probably not visible from CPU. + LinkedDeviceHost, // On desktop, directly mapped VRAM over PCI. + LinkedDeviceHostPreferDevice, // Prefer device local of host visible. + Host, // Host-only, needs to be synced to GPU. Might be device local as well on iGPUs. + CachedHost, + CachedCoherentHostPreferCoherent, // Aim for both cached and coherent, but prefer COHERENT + CachedCoherentHostPreferCached, // Aim for both cached and coherent, but prefer CACHED +}; + +enum BufferMiscFlagBits +{ + BUFFER_MISC_ZERO_INITIALIZE_BIT = 1 << 0, + BUFFER_MISC_EXTERNAL_MEMORY_BIT = 1 << 1 +}; + +using BufferMiscFlags = uint32_t; + +struct BufferCreateInfo +{ + BufferDomain domain = BufferDomain::Device; + VkDeviceSize size = 0; + VkBufferUsageFlags usage = 0; + BufferMiscFlags misc = 0; + VkMemoryRequirements allocation_requirements = {}; + ExternalHandle external; + void *pnext = nullptr; +}; + +class Buffer; +struct BufferDeleter +{ + void operator()(Buffer *buffer); +}; + +class BufferView; +struct BufferViewDeleter +{ + void operator()(BufferView *view); +}; + +class Buffer : public Util::IntrusivePtrEnabled, + public Cookie, public InternalSyncEnabled +{ +public: + friend struct BufferDeleter; + ~Buffer(); + + VkBuffer get_buffer() const + { + return buffer; + } + + const BufferCreateInfo &get_create_info() const + { + return info; + } + + DeviceAllocation &get_allocation() + { + return alloc; + } + + const DeviceAllocation &get_allocation() const + { + return alloc; + } + + ExternalHandle export_handle(); + + VkDeviceAddress get_device_address() const + { + VK_ASSERT(bda); + return bda; + } + +private: + friend class Util::ObjectPool; + Buffer(Device *device, VkBuffer buffer, const DeviceAllocation &alloc, const BufferCreateInfo &info, + VkDeviceAddress bda); + + Device *device; + VkBuffer buffer; + DeviceAllocation alloc; + BufferCreateInfo info; + VkDeviceAddress bda; +}; +using BufferHandle = Util::IntrusivePtr; + +struct BufferViewCreateInfo +{ + const Buffer *buffer; + VkFormat format; + VkDeviceSize offset; + VkDeviceSize range; +}; + +class BufferView : public Util::IntrusivePtrEnabled, + public Cookie, public InternalSyncEnabled +{ +public: + friend struct BufferViewDeleter; + ~BufferView(); + + VkBufferView get_view() const + { + return view; + } + + const BufferViewCreateInfo &get_create_info() + { + return info; + } + + const Buffer &get_buffer() const + { + return *info.buffer; + } + +private: + friend class Util::ObjectPool; + BufferView(Device *device, VkBufferView view, const BufferViewCreateInfo &info); + + Device *device; + VkBufferView view; + BufferViewCreateInfo info; +}; +using BufferViewHandle = Util::IntrusivePtr; +} diff --git a/vulkan/buffer_pool.cpp b/vulkan/buffer_pool.cpp new file mode 100644 index 00000000..84359697 --- /dev/null +++ b/vulkan/buffer_pool.cpp @@ -0,0 +1,138 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "buffer_pool.hpp" +#include "device.hpp" +#include + +namespace Vulkan +{ +void BufferPool::init(Device *device_, VkDeviceSize block_size_, + VkDeviceSize alignment_, VkBufferUsageFlags usage_) +{ + device = device_; + block_size = block_size_; + alignment = alignment_; + usage = usage_; +} + +void BufferPool::set_spill_region_size(VkDeviceSize spill_size_) +{ + spill_size = spill_size_; +} + +void BufferPool::set_max_retained_blocks(size_t max_blocks) +{ + max_retained_blocks = max_blocks; +} + +BufferBlock::~BufferBlock() +{ +} + +void BufferPool::reset() +{ + blocks.clear(); +} + +BufferBlock BufferPool::allocate_block(VkDeviceSize size) +{ + BufferDomain ideal_domain = ((usage & VK_BUFFER_USAGE_TRANSFER_SRC_BIT) != 0) ? + BufferDomain::Host : BufferDomain::LinkedDeviceHost; + + BufferBlock block; + + BufferCreateInfo info; + info.domain = ideal_domain; + info.size = size; + info.usage = usage; + + block.buffer = device->create_buffer(info, nullptr); + device->set_name(*block.buffer, "chain-allocated-block"); + block.buffer->set_internal_sync_object(); + + // Try to map it, will fail unless the memory is host visible. + block.mapped = static_cast(device->map_host_buffer(*block.buffer, MEMORY_ACCESS_WRITE_BIT)); + + block.offset = 0; + block.alignment = alignment; + block.size = size; + block.spill_size = spill_size; + return block; +} + +BufferBlock BufferPool::request_block(VkDeviceSize minimum_size) +{ + if ((minimum_size > block_size) || blocks.empty()) + { + return allocate_block(std::max(block_size, minimum_size)); + } + else + { + auto back = std::move(blocks.back()); + blocks.pop_back(); + + back.mapped = static_cast(device->map_host_buffer(*back.buffer, MEMORY_ACCESS_WRITE_BIT)); + back.offset = 0; + return back; + } +} + +void BufferPool::recycle_block(BufferBlock &block) +{ + VK_ASSERT(block.size == block_size); + + if (blocks.size() < max_retained_blocks) + blocks.push_back(std::move(block)); + else + block = {}; +} + +BufferPool::~BufferPool() +{ + VK_ASSERT(blocks.empty()); +} + +BufferBlockAllocation BufferBlock::allocate(VkDeviceSize allocate_size) +{ + auto aligned_offset = (offset + alignment - 1) & ~(alignment - 1); + if (aligned_offset + allocate_size <= size) + { + auto *ret = mapped + aligned_offset; + offset = aligned_offset + allocate_size; + + VkDeviceSize padded_size = std::max(allocate_size, spill_size); + padded_size = std::min(padded_size, size - aligned_offset); + + return { ret, buffer, aligned_offset, padded_size }; + } + else + return { nullptr, {}, 0, 0 }; +} + +void BufferBlock::unmap(Device &device) +{ + device.unmap_host_buffer(*buffer, MEMORY_ACCESS_WRITE_BIT); + mapped = nullptr; +} +} diff --git a/vulkan/buffer_pool.hpp b/vulkan/buffer_pool.hpp new file mode 100644 index 00000000..16280fb2 --- /dev/null +++ b/vulkan/buffer_pool.hpp @@ -0,0 +1,96 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include "intrusive.hpp" +#include +#include + +namespace Vulkan +{ +class Device; +class Buffer; + +struct BufferBlockAllocation +{ + uint8_t *host; + Util::IntrusivePtr buffer; + VkDeviceSize offset; + VkDeviceSize padded_size; +}; + +class BufferBlock +{ +public: + ~BufferBlock(); + + BufferBlockAllocation allocate(VkDeviceSize allocate_size); + inline bool is_mapped() const { return mapped != nullptr; } + const Buffer &get_buffer() const { return *buffer; } + void unmap(Device &device); + + inline VkDeviceSize get_offset() const { return offset; } + inline VkDeviceSize get_size() const { return size; } + +private: + friend class BufferPool; + Util::IntrusivePtr buffer; + VkDeviceSize offset = 0; + VkDeviceSize alignment = 0; + VkDeviceSize size = 0; + VkDeviceSize spill_size = 0; + uint8_t *mapped = nullptr; +}; + +class BufferPool +{ +public: + ~BufferPool(); + void init(Device *device, VkDeviceSize block_size, VkDeviceSize alignment, VkBufferUsageFlags usage); + void reset(); + + // Used for allocating UBOs, where we want to specify a fixed size for range, + // and we need to make sure we don't allocate beyond the block. + void set_spill_region_size(VkDeviceSize spill_size); + void set_max_retained_blocks(size_t max_blocks); + + VkDeviceSize get_block_size() const + { + return block_size; + } + + BufferBlock request_block(VkDeviceSize minimum_size); + void recycle_block(BufferBlock &block); + +private: + Device *device = nullptr; + VkDeviceSize block_size = 0; + VkDeviceSize alignment = 0; + VkDeviceSize spill_size = 0; + VkBufferUsageFlags usage = 0; + size_t max_retained_blocks = 0; + std::vector blocks; + BufferBlock allocate_block(VkDeviceSize size); +}; +} \ No newline at end of file diff --git a/vulkan/command_buffer.cpp b/vulkan/command_buffer.cpp new file mode 100644 index 00000000..2535abec --- /dev/null +++ b/vulkan/command_buffer.cpp @@ -0,0 +1,3360 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "command_buffer.hpp" +#include "device.hpp" +#include "format.hpp" +#include "thread_id.hpp" +#include "vulkan_prerotate.hpp" +#include "indirect_layout.hpp" +#include "timer.hpp" +#include + +using namespace Util; + +namespace Vulkan +{ +static inline uint32_t get_combined_spec_constant_mask(const DeferredPipelineCompile &compile) +{ + return compile.potential_static_state.spec_constant_mask | + (compile.potential_static_state.internal_spec_constant_mask << VULKAN_NUM_USER_SPEC_CONSTANTS); +} + +CommandBuffer::CommandBuffer(Device *device_, VkCommandBuffer cmd_, VkPipelineCache cache, Type type_) + : device(device_) + , table(device_->get_device_table()) + , cmd(cmd_) + , type(type_) +{ + pipeline_state.cache = cache; + begin_compute(); + set_opaque_state(); + memset(&pipeline_state.static_state, 0, sizeof(pipeline_state.static_state)); + memset(&bindings, 0, sizeof(bindings)); + + // Set up extra state which PSO creation depends on implicitly. + // This needs to affect hashing to make Fossilize path behave as expected. + auto &features = device->get_device_features(); + pipeline_state.subgroup_size_tag = + (features.vk13_props.minSubgroupSize << 0) | + (features.vk13_props.maxSubgroupSize << 8); + + device->lock.read_only_cache.lock_read(); +} + +CommandBuffer::~CommandBuffer() +{ + VK_ASSERT(!vbo_block.is_mapped()); + VK_ASSERT(!ibo_block.is_mapped()); + VK_ASSERT(!ubo_block.is_mapped()); + VK_ASSERT(!staging_block.is_mapped()); + device->lock.read_only_cache.unlock_read(); +} + +void CommandBuffer::fill_buffer(const Buffer &dst, uint32_t value) +{ + fill_buffer(dst, value, 0, VK_WHOLE_SIZE); +} + +void CommandBuffer::fill_buffer(const Buffer &dst, uint32_t value, VkDeviceSize offset, VkDeviceSize size) +{ + table.vkCmdFillBuffer(cmd, dst.get_buffer(), offset, size, value); +} + +void CommandBuffer::copy_buffer(const Buffer &dst, VkDeviceSize dst_offset, const Buffer &src, VkDeviceSize src_offset, + VkDeviceSize size) +{ + const VkBufferCopy region = { + src_offset, dst_offset, size, + }; + table.vkCmdCopyBuffer(cmd, src.get_buffer(), dst.get_buffer(), 1, ®ion); +} + +void CommandBuffer::copy_buffer(const Buffer &dst, const Buffer &src) +{ + VK_ASSERT(dst.get_create_info().size == src.get_create_info().size); + copy_buffer(dst, 0, src, 0, dst.get_create_info().size); +} + +void CommandBuffer::copy_buffer(const Buffer &dst, const Buffer &src, const VkBufferCopy *copies, size_t count) +{ + table.vkCmdCopyBuffer(cmd, src.get_buffer(), dst.get_buffer(), count, copies); +} + +void CommandBuffer::copy_image(const Vulkan::Image &dst, const Vulkan::Image &src, const VkOffset3D &dst_offset, + const VkOffset3D &src_offset, const VkExtent3D &extent, + const VkImageSubresourceLayers &dst_subresource, + const VkImageSubresourceLayers &src_subresource) +{ + VkImageCopy region = {}; + region.dstOffset = dst_offset; + region.srcOffset = src_offset; + region.extent = extent; + region.srcSubresource = src_subresource; + region.dstSubresource = dst_subresource; + + table.vkCmdCopyImage(cmd, src.get_image(), src.get_layout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL), + dst.get_image(), dst.get_layout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL), + 1, ®ion); +} + +void CommandBuffer::copy_image(const Image &dst, const Image &src) +{ + uint32_t levels = src.get_create_info().levels; + VK_ASSERT(src.get_create_info().levels == dst.get_create_info().levels); + VK_ASSERT(src.get_create_info().width == dst.get_create_info().width); + VK_ASSERT(src.get_create_info().height == dst.get_create_info().height); + VK_ASSERT(src.get_create_info().depth == dst.get_create_info().depth); + VK_ASSERT(src.get_create_info().type == dst.get_create_info().type); + VK_ASSERT(src.get_create_info().layers == dst.get_create_info().layers); + VK_ASSERT(src.get_create_info().levels == dst.get_create_info().levels); + + VkImageCopy regions[32] = {}; + + for (uint32_t i = 0; i < levels; i++) + { + auto ®ion = regions[i]; + region.extent.width = src.get_create_info().width; + region.extent.height = src.get_create_info().height; + region.extent.depth = src.get_create_info().depth; + region.srcSubresource.aspectMask = format_to_aspect_mask(src.get_format()); + region.srcSubresource.layerCount = src.get_create_info().layers; + region.dstSubresource.aspectMask = format_to_aspect_mask(dst.get_format()); + region.dstSubresource.layerCount = dst.get_create_info().layers; + region.srcSubresource.mipLevel = i; + region.dstSubresource.mipLevel = i; + VK_ASSERT(region.srcSubresource.aspectMask == region.dstSubresource.aspectMask); + } + + table.vkCmdCopyImage(cmd, src.get_image(), src.get_layout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL), + dst.get_image(), dst.get_layout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL), + levels, regions); +} + +void CommandBuffer::copy_buffer_to_image(const Image &image, const Buffer &buffer, unsigned num_blits, + const VkBufferImageCopy *blits) +{ + table.vkCmdCopyBufferToImage(cmd, buffer.get_buffer(), + image.get_image(), image.get_layout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL), num_blits, blits); +} + +void CommandBuffer::copy_image_to_buffer(const Buffer &buffer, const Image &image, unsigned num_blits, + const VkBufferImageCopy *blits) +{ + table.vkCmdCopyImageToBuffer(cmd, image.get_image(), image.get_layout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL), + buffer.get_buffer(), num_blits, blits); +} + +void CommandBuffer::copy_buffer_to_image(const Image &image, const Buffer &src, VkDeviceSize buffer_offset, + const VkOffset3D &offset, const VkExtent3D &extent, unsigned row_length, + unsigned slice_height, const VkImageSubresourceLayers &subresource) +{ + const VkBufferImageCopy region = { + buffer_offset, + row_length, slice_height, + subresource, offset, extent, + }; + table.vkCmdCopyBufferToImage(cmd, src.get_buffer(), image.get_image(), image.get_layout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL), + 1, ®ion); +} + +void CommandBuffer::copy_image_to_buffer(const Buffer &buffer, const Image &image, VkDeviceSize buffer_offset, + const VkOffset3D &offset, const VkExtent3D &extent, unsigned row_length, + unsigned slice_height, const VkImageSubresourceLayers &subresource) +{ + const VkBufferImageCopy region = { + buffer_offset, + row_length, slice_height, + subresource, offset, extent, + }; + table.vkCmdCopyImageToBuffer(cmd, image.get_image(), image.get_layout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL), + buffer.get_buffer(), 1, ®ion); +} + +void CommandBuffer::clear_image(const Image &image, const VkClearValue &value) +{ + auto aspect = format_to_aspect_mask(image.get_format()); + clear_image(image, value, aspect); +} + +void CommandBuffer::clear_image(const Image &image, const VkClearValue &value, VkImageAspectFlags aspect) +{ + VK_ASSERT(!framebuffer); + VK_ASSERT(!actual_render_pass); + + VkImageSubresourceRange range = {}; + range.aspectMask = aspect; + range.baseArrayLayer = 0; + range.baseMipLevel = 0; + range.levelCount = image.get_create_info().levels; + range.layerCount = image.get_create_info().layers; + if (aspect & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) + { + table.vkCmdClearDepthStencilImage(cmd, image.get_image(), image.get_layout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL), + &value.depthStencil, 1, &range); + } + else + { + table.vkCmdClearColorImage(cmd, image.get_image(), image.get_layout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL), + &value.color, 1, &range); + } +} + +void CommandBuffer::clear_quad(unsigned attachment, const VkClearRect &rect, const VkClearValue &value, + VkImageAspectFlags aspect) +{ + VK_ASSERT(framebuffer); + VK_ASSERT(actual_render_pass); + VkClearAttachment att = {}; + att.clearValue = value; + att.colorAttachment = attachment; + att.aspectMask = aspect; + + auto tmp_rect = rect; + rect2d_transform_xy(tmp_rect.rect, current_framebuffer_surface_transform, + framebuffer->get_width(), framebuffer->get_height()); + table.vkCmdClearAttachments(cmd, 1, &att, 1, &tmp_rect); +} + +void CommandBuffer::clear_quad(const VkClearRect &rect, const VkClearAttachment *attachments, unsigned num_attachments) +{ + VK_ASSERT(framebuffer); + VK_ASSERT(actual_render_pass); + auto tmp_rect = rect; + rect2d_transform_xy(tmp_rect.rect, current_framebuffer_surface_transform, + framebuffer->get_width(), framebuffer->get_height()); + table.vkCmdClearAttachments(cmd, num_attachments, attachments, 1, &tmp_rect); +} + +void CommandBuffer::full_barrier() +{ + VK_ASSERT(!actual_render_pass); + VK_ASSERT(!framebuffer); + barrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_ACCESS_MEMORY_WRITE_BIT, + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_ACCESS_MEMORY_WRITE_BIT | VK_ACCESS_MEMORY_READ_BIT); +} + +void CommandBuffer::pixel_barrier() +{ + VK_ASSERT(actual_render_pass); + VK_ASSERT(framebuffer); + VkMemoryBarrier barrier = { VK_STRUCTURE_TYPE_MEMORY_BARRIER }; + barrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + barrier.dstAccessMask = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT; + table.vkCmdPipelineBarrier(cmd, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, + VK_DEPENDENCY_BY_REGION_BIT, 1, &barrier, 0, nullptr, 0, nullptr); +} + +void CommandBuffer::barrier(VkPipelineStageFlags2 src_stages, VkAccessFlags2 src_access, + VkPipelineStageFlags2 dst_stages, VkAccessFlags2 dst_access) +{ + VkDependencyInfo dep = { VK_STRUCTURE_TYPE_DEPENDENCY_INFO }; + VkMemoryBarrier2 b = { VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 }; + dep.memoryBarrierCount = 1; + dep.pMemoryBarriers = &b; + b.srcStageMask = src_stages; + b.dstStageMask = dst_stages; + b.srcAccessMask = src_access; + b.dstAccessMask = dst_access; + barrier(dep); +} + +struct Sync1CompatData +{ + Util::SmallVector mem_barriers; + Util::SmallVector buf_barriers; + Util::SmallVector img_barriers; + VkPipelineStageFlags src_stages = 0; + VkPipelineStageFlags dst_stages = 0; +}; + +static void convert_vk_dependency_info(const VkDependencyInfo &dep, Sync1CompatData &sync1) +{ + VkPipelineStageFlags2 src_stages = 0; + VkPipelineStageFlags2 dst_stages = 0; + + for (uint32_t i = 0; i < dep.memoryBarrierCount; i++) + { + auto &mem = dep.pMemoryBarriers[i]; + src_stages |= mem.srcStageMask; + dst_stages |= mem.dstStageMask; + VkMemoryBarrier barrier = { VK_STRUCTURE_TYPE_MEMORY_BARRIER }; + barrier.srcAccessMask = convert_vk_access_flags2(mem.srcAccessMask); + barrier.dstAccessMask = convert_vk_access_flags2(mem.dstAccessMask); + sync1.mem_barriers.push_back(barrier); + } + + for (uint32_t i = 0; i < dep.bufferMemoryBarrierCount; i++) + { + auto &buf = dep.pBufferMemoryBarriers[i]; + src_stages |= buf.srcStageMask; + dst_stages |= buf.dstStageMask; + + VkBufferMemoryBarrier barrier = { VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER }; + barrier.srcAccessMask = convert_vk_access_flags2(buf.srcAccessMask); + barrier.dstAccessMask = convert_vk_access_flags2(buf.dstAccessMask); + barrier.buffer = buf.buffer; + barrier.offset = buf.offset; + barrier.size = buf.size; + barrier.srcQueueFamilyIndex = buf.srcQueueFamilyIndex; + barrier.dstQueueFamilyIndex = buf.dstQueueFamilyIndex; + sync1.buf_barriers.push_back(barrier); + } + + for (uint32_t i = 0; i < dep.imageMemoryBarrierCount; i++) + { + auto &img = dep.pImageMemoryBarriers[i]; + VK_ASSERT(img.newLayout != VK_IMAGE_LAYOUT_UNDEFINED); + src_stages |= img.srcStageMask; + dst_stages |= img.dstStageMask; + + VkImageMemoryBarrier barrier = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER }; + barrier.srcAccessMask = convert_vk_access_flags2(img.srcAccessMask); + barrier.dstAccessMask = convert_vk_access_flags2(img.dstAccessMask); + barrier.image = img.image; + barrier.subresourceRange = img.subresourceRange; + barrier.oldLayout = img.oldLayout; + barrier.newLayout = img.newLayout; + barrier.srcQueueFamilyIndex = img.srcQueueFamilyIndex; + barrier.dstQueueFamilyIndex = img.dstQueueFamilyIndex; + sync1.img_barriers.push_back(barrier); + } + + sync1.src_stages |= convert_vk_src_stage2(src_stages); + sync1.dst_stages |= convert_vk_dst_stage2(dst_stages); +} + +void CommandBuffer::barrier(const VkDependencyInfo &dep) +{ + VK_ASSERT(!actual_render_pass); + VK_ASSERT(!framebuffer); + +#ifdef VULKAN_DEBUG + VkPipelineStageFlags2 stages = 0; + VkAccessFlags2 access = 0; + + for (uint32_t i = 0; i < dep.memoryBarrierCount; i++) + { + auto &b = dep.pMemoryBarriers[i]; + stages |= b.srcStageMask | b.dstStageMask; + access |= b.srcAccessMask | b.dstAccessMask; + } + + for (uint32_t i = 0; i < dep.bufferMemoryBarrierCount; i++) + { + auto &b = dep.pBufferMemoryBarriers[i]; + stages |= b.srcStageMask | b.dstStageMask; + access |= b.srcAccessMask | b.dstAccessMask; + } + + for (uint32_t i = 0; i < dep.imageMemoryBarrierCount; i++) + { + auto &b = dep.pImageMemoryBarriers[i]; + stages |= b.srcStageMask | b.dstStageMask; + access |= b.srcAccessMask | b.dstAccessMask; + } + + if (stages & VK_PIPELINE_STAGE_TRANSFER_BIT) + LOGW("Using deprecated TRANSFER stage.\n"); + if (stages & VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT) + LOGW("Using deprecated BOTTOM_OF_PIPE stage.\n"); + if (stages & VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT) + LOGW("Using deprecated TOP_OF_PIPE stage.\n"); + + if (access & VK_ACCESS_SHADER_READ_BIT) + LOGW("Using deprecated SHADER_READ access.\n"); + if (stages & VK_ACCESS_SHADER_WRITE_BIT) + LOGW("Using deprecated SHADER_WRITE access.\n"); + + // We cannot convert these automatically so easily to sync1 without more context. + for (uint32_t i = 0; i < dep.imageMemoryBarrierCount; i++) + { + VK_ASSERT(dep.pImageMemoryBarriers[i].oldLayout != VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL && + dep.pImageMemoryBarriers[i].newLayout != VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL); + } +#endif + + if (device->get_device_features().vk13_features.synchronization2) + { + Util::SmallVector tmp_buffer; + Util::SmallVector tmp_image; + Util::SmallVector tmp_memory; + const VkDependencyInfo *final_dep = &dep; + VkDependencyInfo tmp_dep; + + if (device->get_workarounds().force_sync1_access) + { + VkAccessFlags2 merged_access = 0; + for (uint32_t i = 0; i < dep.memoryBarrierCount; i++) + merged_access |= dep.pMemoryBarriers[i].srcAccessMask | dep.pMemoryBarriers[i].dstAccessMask; + for (uint32_t i = 0; i < dep.bufferMemoryBarrierCount; i++) + merged_access |= dep.pBufferMemoryBarriers[i].srcAccessMask | dep.pBufferMemoryBarriers[i].dstAccessMask; + for (uint32_t i = 0; i < dep.imageMemoryBarrierCount; i++) + merged_access |= dep.pImageMemoryBarriers[i].srcAccessMask | dep.pImageMemoryBarriers[i].dstAccessMask; + + if ((merged_access & (VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT | + VK_ACCESS_2_SHADER_SAMPLED_READ_BIT | + VK_ACCESS_2_SHADER_STORAGE_READ_BIT | + VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR)) != 0) + { + final_dep = &tmp_dep; + tmp_dep = dep; + + if (dep.memoryBarrierCount != 0) + { + tmp_memory.insert(tmp_memory.end(), dep.pMemoryBarriers, + dep.pMemoryBarriers + dep.memoryBarrierCount); + for (auto &b : tmp_memory) + { + b.srcAccessMask = convert_vk_access_flags2(b.srcAccessMask); + b.dstAccessMask = convert_vk_access_flags2(b.dstAccessMask); + } + tmp_dep.pMemoryBarriers = tmp_memory.data(); + } + + if (dep.bufferMemoryBarrierCount != 0) + { + tmp_buffer.insert(tmp_buffer.end(), dep.pBufferMemoryBarriers, + dep.pBufferMemoryBarriers + dep.bufferMemoryBarrierCount); + for (auto &b : tmp_buffer) + { + b.srcAccessMask = convert_vk_access_flags2(b.srcAccessMask); + b.dstAccessMask = convert_vk_access_flags2(b.dstAccessMask); + } + tmp_dep.pBufferMemoryBarriers = tmp_buffer.data(); + } + + if (dep.imageMemoryBarrierCount != 0) + { + tmp_image.insert(tmp_image.end(), dep.pImageMemoryBarriers, + dep.pImageMemoryBarriers + dep.imageMemoryBarrierCount); + for (auto &b : tmp_image) + { + b.srcAccessMask = convert_vk_access_flags2(b.srcAccessMask); + b.dstAccessMask = convert_vk_access_flags2(b.dstAccessMask); + } + tmp_dep.pImageMemoryBarriers = tmp_image.data(); + } + } + } + + table.vkCmdPipelineBarrier2(cmd, final_dep); + } + else + { + Sync1CompatData sync1; + convert_vk_dependency_info(dep, sync1); + table.vkCmdPipelineBarrier(cmd, sync1.src_stages, sync1.dst_stages, + dep.dependencyFlags, + uint32_t(sync1.mem_barriers.size()), sync1.mem_barriers.data(), + uint32_t(sync1.buf_barriers.size()), sync1.buf_barriers.data(), + uint32_t(sync1.img_barriers.size()), sync1.img_barriers.data()); + } +} + +void CommandBuffer::buffer_barrier(const Buffer &buffer, + VkPipelineStageFlags2 src_stages, VkAccessFlags2 src_access, + VkPipelineStageFlags2 dst_stages, VkAccessFlags2 dst_access) +{ + VkBufferMemoryBarrier2 b = { VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 }; + VkDependencyInfo dep = { VK_STRUCTURE_TYPE_DEPENDENCY_INFO }; + + b.srcAccessMask = src_access; + b.dstAccessMask = dst_access; + b.buffer = buffer.get_buffer(); + b.offset = 0; + b.size = VK_WHOLE_SIZE; + b.srcStageMask = src_stages; + b.dstStageMask = dst_stages; + b.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + + dep.bufferMemoryBarrierCount = 1; + dep.pBufferMemoryBarriers = &b; + + barrier(dep); +} + +// Buffers are always CONCURRENT. +static uint32_t deduce_acquire_release_family_index(Device &device) +{ + uint32_t family = VK_QUEUE_FAMILY_IGNORED; + auto &queue_info = device.get_queue_info(); + for (auto &i : queue_info.family_indices) + { + if (i != VK_QUEUE_FAMILY_IGNORED) + { + if (family == VK_QUEUE_FAMILY_IGNORED) + family = i; + else if (i != family) + return VK_QUEUE_FAMILY_IGNORED; + } + } + + return family; +} + +static uint32_t deduce_acquire_release_family_index(Device &device, const Image &image, uint32_t family_index) +{ + uint32_t family = family_index; + auto &queue_info = device.get_queue_info(); + + if (image.get_create_info().misc & IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT) + if (queue_info.family_indices[QUEUE_INDEX_GRAPHICS] != family) + return VK_QUEUE_FAMILY_IGNORED; + + if (image.get_create_info().misc & IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_COMPUTE_BIT) + { + if (queue_info.family_indices[QUEUE_INDEX_COMPUTE] != family) + return VK_QUEUE_FAMILY_IGNORED; + } + + if (image.get_create_info().misc & IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_TRANSFER_BIT) + if (queue_info.family_indices[QUEUE_INDEX_COMPUTE] != family) + return VK_QUEUE_FAMILY_IGNORED; + + return family; +} + +void CommandBuffer::release_image_barrier( + const Image &image, + VkImageLayout old_layout, VkImageLayout new_layout, + VkPipelineStageFlags2 src_stage, VkAccessFlags2 src_access, + uint32_t dst_queue_family) +{ + VkImageMemoryBarrier2 barrier = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 }; + uint32_t family_index = device->get_queue_info().family_indices[device->get_physical_queue_type(type)]; + + barrier.image = image.get_image(); + barrier.subresourceRange = { + format_to_aspect_mask(image.get_format()), + 0, VK_REMAINING_MIP_LEVELS, + 0, VK_REMAINING_ARRAY_LAYERS + }; + barrier.oldLayout = old_layout; + barrier.newLayout = new_layout; + + barrier.srcQueueFamilyIndex = deduce_acquire_release_family_index(*device, image, family_index); + barrier.dstQueueFamilyIndex = dst_queue_family; + + barrier.srcAccessMask = src_access; + barrier.srcStageMask = src_stage; + + image_barriers(1, &barrier); +} + +void CommandBuffer::acquire_image_barrier( + const Image &image, + VkImageLayout old_layout, VkImageLayout new_layout, + VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst_access, + uint32_t src_queue_family) +{ + VkImageMemoryBarrier2 b = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 }; + uint32_t family_index = device->get_queue_info().family_indices[device->get_physical_queue_type(type)]; + + b.image = image.get_image(); + b.subresourceRange = { + format_to_aspect_mask(image.get_format()), + 0, VK_REMAINING_MIP_LEVELS, + 0, VK_REMAINING_ARRAY_LAYERS + }; + b.oldLayout = old_layout; + b.newLayout = new_layout; + b.srcQueueFamilyIndex = src_queue_family; + b.dstQueueFamilyIndex = deduce_acquire_release_family_index(*device, image, family_index); + + b.dstStageMask = dst_stage; + b.dstAccessMask = dst_access; + + image_barriers(1, &b); +} + +void CommandBuffer::release_buffer_barrier( + const Buffer &buffer, + VkPipelineStageFlags2 src_stage, VkAccessFlags2 src_access, + uint32_t dst_queue_family) +{ + VkBufferMemoryBarrier2 b = { VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 }; + b.buffer = buffer.get_buffer(); + b.size = buffer.get_create_info().size; + b.srcQueueFamilyIndex = deduce_acquire_release_family_index(*device); + b.dstQueueFamilyIndex = dst_queue_family; + b.srcStageMask = src_stage; + b.srcAccessMask = src_access; + buffer_barriers(1, &b); +} + +void CommandBuffer::acquire_buffer_barrier( + const Buffer &buffer, + VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst_access, + uint32_t src_queue_family) +{ + VkBufferMemoryBarrier2 b = { VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 }; + b.buffer = buffer.get_buffer(); + b.size = buffer.get_create_info().size; + b.srcQueueFamilyIndex = src_queue_family; + b.dstQueueFamilyIndex = deduce_acquire_release_family_index(*device); + b.dstStageMask = dst_stage; + b.dstAccessMask = dst_access; + buffer_barriers(1, &b); +} + +void CommandBuffer::image_barrier(const Image &image, + VkImageLayout old_layout, VkImageLayout new_layout, + VkPipelineStageFlags2 src_stages, VkAccessFlags2 src_access, + VkPipelineStageFlags2 dst_stages, VkAccessFlags2 dst_access) +{ + VK_ASSERT(!actual_render_pass); + VK_ASSERT(!framebuffer); + VK_ASSERT(image.get_create_info().domain != ImageDomain::Transient); + + VkImageMemoryBarrier2 b = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 }; + b.srcAccessMask = src_access; + b.dstAccessMask = dst_access; + b.oldLayout = old_layout; + b.newLayout = new_layout; + b.image = image.get_image(); + b.subresourceRange.aspectMask = format_to_aspect_mask(image.get_create_info().format); + b.subresourceRange.levelCount = image.get_create_info().levels; + b.subresourceRange.layerCount = image.get_create_info().layers; + b.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.srcStageMask = src_stages; + b.dstStageMask = dst_stages; + + image_barriers(1, &b); +} + +void CommandBuffer::buffer_barriers(uint32_t buffer_barriers, const VkBufferMemoryBarrier2 *buffers) +{ + VkDependencyInfo dep = { VK_STRUCTURE_TYPE_DEPENDENCY_INFO }; + dep.bufferMemoryBarrierCount = buffer_barriers; + dep.pBufferMemoryBarriers = buffers; + barrier(dep); +} + +void CommandBuffer::image_barriers(uint32_t image_barriers, const VkImageMemoryBarrier2 *images) +{ + VkDependencyInfo dep = { VK_STRUCTURE_TYPE_DEPENDENCY_INFO }; + dep.imageMemoryBarrierCount = image_barriers; + dep.pImageMemoryBarriers = images; + barrier(dep); +} + +void CommandBuffer::barrier_prepare_generate_mipmap(const Image &image, VkImageLayout base_level_layout, + VkPipelineStageFlags2 src_stage, VkAccessFlags2 src_access, + bool need_top_level_barrier) +{ + auto &create_info = image.get_create_info(); + VkImageMemoryBarrier2 barriers[2] = {}; + VK_ASSERT(create_info.levels > 1); + (void)create_info; + + for (unsigned i = 0; i < 2; i++) + { + barriers[i].sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2; + barriers[i].image = image.get_image(); + barriers[i].subresourceRange.aspectMask = format_to_aspect_mask(image.get_format()); + barriers[i].subresourceRange.layerCount = image.get_create_info().layers; + barriers[i].srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + barriers[i].dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + barriers[i].srcStageMask = src_stage; + barriers[i].dstStageMask = VK_PIPELINE_STAGE_2_BLIT_BIT; + + if (i == 0) + { + barriers[i].oldLayout = base_level_layout; + barriers[i].newLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; + barriers[i].srcAccessMask = src_access; + barriers[i].dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT; + barriers[i].subresourceRange.baseMipLevel = 0; + barriers[i].subresourceRange.levelCount = 1; + } + else + { + barriers[i].oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; + barriers[i].newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; + barriers[i].srcAccessMask = 0; + barriers[i].dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; + barriers[i].subresourceRange.baseMipLevel = 1; + barriers[i].subresourceRange.levelCount = image.get_create_info().levels - 1; + } + } + + image_barriers(need_top_level_barrier ? 2 : 1, need_top_level_barrier ? barriers : barriers + 1); +} + +void CommandBuffer::generate_mipmap(const Image &image) +{ + auto &create_info = image.get_create_info(); + VkOffset3D size = { int(create_info.width), int(create_info.height), int(create_info.depth) }; + const VkOffset3D origin = { 0, 0, 0 }; + + VK_ASSERT(image.get_layout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL) == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); + + VkImageMemoryBarrier2 b = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 }; + b.image = image.get_image(); + b.subresourceRange.levelCount = 1; + b.subresourceRange.layerCount = image.get_create_info().layers; + b.subresourceRange.aspectMask = format_to_aspect_mask(image.get_format()); + b.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL; + b.newLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL; + b.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT; + b.dstAccessMask = VK_ACCESS_TRANSFER_READ_BIT; + b.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + b.srcStageMask = VK_PIPELINE_STAGE_2_BLIT_BIT; + b.dstStageMask = VK_PIPELINE_STAGE_2_BLIT_BIT; + + for (unsigned i = 1; i < create_info.levels; i++) + { + VkOffset3D src_size = size; + size.x = std::max(size.x >> 1, 1); + size.y = std::max(size.y >> 1, 1); + size.z = std::max(size.z >> 1, 1); + + blit_image(image, image, + origin, size, origin, src_size, i, i - 1, 0, 0, create_info.layers, VK_FILTER_LINEAR); + + b.subresourceRange.baseMipLevel = i; + image_barriers(1, &b); + } +} + +void CommandBuffer::blit_image(const Image &dst, const Image &src, + const VkOffset3D &dst_offset, + const VkOffset3D &dst_extent, const VkOffset3D &src_offset, const VkOffset3D &src_extent, + unsigned dst_level, unsigned src_level, unsigned dst_base_layer, unsigned src_base_layer, + unsigned num_layers, VkFilter filter) +{ + const auto add_offset = [](const VkOffset3D &a, const VkOffset3D &b) -> VkOffset3D { + return { a.x + b.x, a.y + b.y, a.z + b.z }; + }; + + const VkImageBlit blit = { + { format_to_aspect_mask(src.get_create_info().format), src_level, src_base_layer, num_layers }, + { src_offset, add_offset(src_offset, src_extent) }, + { format_to_aspect_mask(dst.get_create_info().format), dst_level, dst_base_layer, num_layers }, + { dst_offset, add_offset(dst_offset, dst_extent) }, + }; + + table.vkCmdBlitImage(cmd, + src.get_image(), src.get_layout(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL), + dst.get_image(), dst.get_layout(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL), + 1, &blit, filter); +} + +void CommandBuffer::begin_context() +{ + dirty = ~0u; + dirty_sets_realloc = ~0u; + dirty_vbos = ~0u; + current_pipeline = {}; + current_pipeline_layout = VK_NULL_HANDLE; + pipeline_state.layout = nullptr; + pipeline_state.program = nullptr; + pipeline_state.potential_static_state.spec_constant_mask = 0; + pipeline_state.potential_static_state.internal_spec_constant_mask = 0; + memset(bindings.cookies, 0, sizeof(bindings.cookies)); + memset(bindings.secondary_cookies, 0, sizeof(bindings.secondary_cookies)); + memset(&index_state, 0, sizeof(index_state)); + memset(vbo.buffers, 0, sizeof(vbo.buffers)); + + if (debug_channel_buffer) + set_storage_buffer(VULKAN_NUM_DESCRIPTOR_SETS - 1, VULKAN_NUM_BINDINGS - 1, *debug_channel_buffer); +} + +void CommandBuffer::begin_compute() +{ + is_compute = true; + begin_context(); +} + +void CommandBuffer::begin_graphics() +{ + is_compute = false; + begin_context(); + + // Vertex shaders which support prerotate are expected to include inc/prerotate.h and + // call prerotate_fixup_clip_xy(). + if (current_framebuffer_surface_transform != VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR) + set_surface_transform_specialization_constants(); +} + +void CommandBuffer::init_viewport_scissor(const RenderPassInfo &info, const Framebuffer *fb) +{ + VkRect2D rect = info.render_area; + + uint32_t fb_width = fb->get_width(); + uint32_t fb_height = fb->get_height(); + + // Convert fb_width / fb_height to logical width / height if need be. + if (surface_transform_swaps_xy(current_framebuffer_surface_transform)) + std::swap(fb_width, fb_height); + + rect.offset.x = std::min(int32_t(fb_width), rect.offset.x); + rect.offset.y = std::min(int32_t(fb_height), rect.offset.y); + rect.extent.width = std::min(fb_width - rect.offset.x, rect.extent.width); + rect.extent.height = std::min(fb_height - rect.offset.y, rect.extent.height); + + viewport = { + float(rect.offset.x), float(rect.offset.y), + float(rect.extent.width), float(rect.extent.height), + 0.0f, 1.0f + }; + scissor = rect; +} + +CommandBufferHandle CommandBuffer::request_secondary_command_buffer(Device &device, const RenderPassInfo &info, + unsigned thread_index, unsigned subpass) +{ + auto *fb = &device.request_framebuffer(info); + auto cmd = device.request_secondary_command_buffer_for_thread(thread_index, fb, subpass); + cmd->init_surface_transform(info); + cmd->begin_graphics(); + + cmd->framebuffer = fb; + cmd->pipeline_state.compatible_render_pass = &fb->get_compatible_render_pass(); + cmd->actual_render_pass = &device.request_render_pass(info, false); + + unsigned i; + for (i = 0; i < info.num_color_attachments; i++) + cmd->framebuffer_attachments[i] = info.color_attachments[i]; + if (info.depth_stencil) + cmd->framebuffer_attachments[i++] = info.depth_stencil; + + cmd->init_viewport_scissor(info, fb); + cmd->pipeline_state.subpass_index = subpass; + cmd->current_contents = VK_SUBPASS_CONTENTS_INLINE; + + return cmd; +} + +CommandBufferHandle CommandBuffer::request_secondary_command_buffer(unsigned thread_index_, unsigned subpass_) +{ + VK_ASSERT(framebuffer); + VK_ASSERT(!is_secondary); + + auto secondary_cmd = device->request_secondary_command_buffer_for_thread(thread_index_, framebuffer, subpass_); + secondary_cmd->begin_graphics(); + + secondary_cmd->framebuffer = framebuffer; + secondary_cmd->pipeline_state.compatible_render_pass = pipeline_state.compatible_render_pass; + secondary_cmd->actual_render_pass = actual_render_pass; + memcpy(secondary_cmd->framebuffer_attachments, framebuffer_attachments, sizeof(framebuffer_attachments)); + + secondary_cmd->pipeline_state.subpass_index = subpass_; + secondary_cmd->viewport = viewport; + secondary_cmd->scissor = scissor; + secondary_cmd->current_contents = VK_SUBPASS_CONTENTS_INLINE; + + return secondary_cmd; +} + +void CommandBuffer::submit_secondary(CommandBufferHandle secondary) +{ + VK_ASSERT(!is_secondary); + VK_ASSERT(secondary->is_secondary); + VK_ASSERT(pipeline_state.subpass_index == secondary->pipeline_state.subpass_index); + VK_ASSERT(current_contents == VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS); + + device->submit_secondary(*this, *secondary); +} + +void CommandBuffer::next_subpass(VkSubpassContents contents) +{ + VK_ASSERT(framebuffer); + VK_ASSERT(pipeline_state.compatible_render_pass); + VK_ASSERT(actual_render_pass); + pipeline_state.subpass_index++; + VK_ASSERT(pipeline_state.subpass_index < actual_render_pass->get_num_subpasses()); + table.vkCmdNextSubpass(cmd, contents); + current_contents = contents; + begin_graphics(); +} + +void CommandBuffer::set_surface_transform_specialization_constants() +{ + float transform[4]; + pipeline_state.potential_static_state.internal_spec_constant_mask = 0xf; + build_prerotate_matrix_2x2(current_framebuffer_surface_transform, transform); + for (unsigned i = 0; i < 4; i++) + { + memcpy(pipeline_state.potential_static_state.spec_constants + VULKAN_NUM_USER_SPEC_CONSTANTS, + transform, sizeof(transform)); + } +} + +void CommandBuffer::init_surface_transform(const RenderPassInfo &info) +{ + // Validate that all prerotate state matches, unless the attachments are transient, since we don't really care, + // and it gets messy to forward rotation state to them. + VkSurfaceTransformFlagBitsKHR prerorate = VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR; + for (unsigned i = 0; i < info.num_color_attachments; i++) + { + auto usage = info.color_attachments[i]->get_image().get_create_info().usage; + if ((usage & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) == 0) + { + auto image_prerotate = info.color_attachments[i]->get_image().get_surface_transform(); + if (prerorate == VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR) + { + prerorate = image_prerotate; + } + else if (prerorate != image_prerotate) + { + LOGE("Mismatch in prerotate state for color attachment %u! (%u != %u)\n", + i, unsigned(prerorate), unsigned(image_prerotate)); + } + } + } + + if (prerorate != VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR && info.depth_stencil) + { + auto usage = info.depth_stencil->get_image().get_create_info().usage; + if ((usage & VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT) == 0) + { + auto image_prerotate = info.depth_stencil->get_image().get_surface_transform(); + if (prerorate != image_prerotate) + LOGE("Mismatch in prerotate state for depth-stencil! (%u != %u)\n", unsigned(prerorate), unsigned(image_prerotate)); + } + } + + if (prerorate == VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR) + prerorate = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; + current_framebuffer_surface_transform = prerorate; +} + +void CommandBuffer::begin_render_pass(const RenderPassInfo &info, VkSubpassContents contents) +{ + VK_ASSERT(!framebuffer); + VK_ASSERT(!pipeline_state.compatible_render_pass); + VK_ASSERT(!actual_render_pass); + + framebuffer = &device->request_framebuffer(info); + init_surface_transform(info); + pipeline_state.compatible_render_pass = &framebuffer->get_compatible_render_pass(); + actual_render_pass = &device->request_render_pass(info, false); + pipeline_state.subpass_index = 0; + framebuffer_is_multiview = info.num_layers > 1; + + memset(framebuffer_attachments, 0, sizeof(framebuffer_attachments)); + unsigned att; + for (att = 0; att < info.num_color_attachments; att++) + framebuffer_attachments[att] = info.color_attachments[att]; + if (info.depth_stencil) + framebuffer_attachments[att++] = info.depth_stencil; + + init_viewport_scissor(info, framebuffer); + + VkClearValue clear_values[VULKAN_NUM_ATTACHMENTS + 1]; + unsigned num_clear_values = 0; + + for (unsigned i = 0; i < info.num_color_attachments; i++) + { + VK_ASSERT(info.color_attachments[i]); + if (info.clear_attachments & (1u << i)) + { + clear_values[i].color = info.clear_color[i]; + num_clear_values = i + 1; + } + + if (info.color_attachments[i]->get_image().is_swapchain_image()) + swapchain_touch_in_stages(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT); + } + + if (info.depth_stencil && (info.op_flags & RENDER_PASS_OP_CLEAR_DEPTH_STENCIL_BIT) != 0) + { + clear_values[info.num_color_attachments].depthStencil = info.clear_depth_stencil; + num_clear_values = info.num_color_attachments + 1; + } + + VkRenderPassBeginInfo begin_info = { VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO }; + begin_info.renderPass = actual_render_pass->get_render_pass(); + begin_info.framebuffer = framebuffer->get_framebuffer(); + begin_info.renderArea = scissor; + begin_info.clearValueCount = num_clear_values; + begin_info.pClearValues = clear_values; + + // In the render pass interface, we pretend we are rendering with normal + // un-rotated coordinates. + rect2d_transform_xy(begin_info.renderArea, current_framebuffer_surface_transform, + framebuffer->get_width(), framebuffer->get_height()); + + table.vkCmdBeginRenderPass(cmd, &begin_info, contents); + + current_contents = contents; + begin_graphics(); +} + +void CommandBuffer::end_render_pass() +{ + VK_ASSERT(framebuffer); + VK_ASSERT(actual_render_pass); + VK_ASSERT(pipeline_state.compatible_render_pass); + + table.vkCmdEndRenderPass(cmd); + + framebuffer = nullptr; + actual_render_pass = nullptr; + pipeline_state.compatible_render_pass = nullptr; + begin_compute(); +} + +static void log_compile_time(const char *tag, Hash hash, + int64_t time_ns, VkResult result, + CommandBuffer::CompileMode mode) +{ + bool stall = time_ns >= 5 * 1000 * 1000 && mode != CommandBuffer::CompileMode::AsyncThread; +#ifndef VULKAN_DEBUG + // If a compile takes more than 5 ms and it's not happening on an async thread, + // we consider it a stall. + if (stall) +#endif + { + double time_us = 1e-3 * double(time_ns); + const char *mode_str; + + switch (mode) + { + case CommandBuffer::CompileMode::Sync: + mode_str = "sync"; + break; + + case CommandBuffer::CompileMode::FailOnCompileRequired: + mode_str = "fail-on-compile-required"; + break; + + default: + mode_str = "async-thread"; + break; + } + +#ifdef VULKAN_DEBUG + if (!stall) + { + LOGI("Compile (%s, %016llx): thread %u - %.3f us (mode: %s, success: %s).\n", + tag, static_cast(hash), + get_current_thread_index(), + time_us, mode_str, result == VK_SUCCESS ? "yes" : "no"); + } + else +#endif + { + LOGW("Stalled compile (%s, %016llx): thread %u - %.3f us (mode: %s, success: %s).\n", + tag, static_cast(hash), + get_current_thread_index(), + time_us, mode_str, result == VK_SUCCESS ? "yes" : "no"); + } + } +} + +Pipeline CommandBuffer::build_compute_pipeline(Device *device, const DeferredPipelineCompile &compile, + CompileMode mode) +{ + // This can be called from outside a CommandBuffer content, so need to hold lock. + Util::RWSpinLockReadHolder holder{device->lock.read_only_cache}; + + // If we don't have pipeline creation cache control feature, + // we must assume compilation can be synchronous. + if (mode == CompileMode::FailOnCompileRequired && + (device->get_workarounds().broken_pipeline_cache_control || + !device->get_device_features().vk13_features.pipelineCreationCacheControl)) + { + return {}; + } + + auto &shader = *compile.program->get_shader(ShaderStage::Compute); + VkComputePipelineCreateInfo info = { VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO }; + info.layout = compile.layout->get_layout(); + info.stage.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; + info.stage.module = shader.get_module(); + info.stage.pName = "main"; + info.stage.stage = VK_SHADER_STAGE_COMPUTE_BIT; + + VkSpecializationInfo spec_info = {}; + VkSpecializationMapEntry spec_entries[VULKAN_NUM_TOTAL_SPEC_CONSTANTS]; + auto mask = compile.layout->get_resource_layout().combined_spec_constant_mask & + get_combined_spec_constant_mask(compile); + + uint32_t spec_constants[VULKAN_NUM_TOTAL_SPEC_CONSTANTS]; + + if (mask) + { + info.stage.pSpecializationInfo = &spec_info; + spec_info.pData = spec_constants; + spec_info.pMapEntries = spec_entries; + + for_each_bit(mask, [&](uint32_t bit) { + auto &entry = spec_entries[spec_info.mapEntryCount]; + entry.offset = sizeof(uint32_t) * spec_info.mapEntryCount; + entry.size = sizeof(uint32_t); + entry.constantID = bit; + + spec_constants[spec_info.mapEntryCount] = compile.potential_static_state.spec_constants[bit]; + spec_info.mapEntryCount++; + }); + spec_info.dataSize = spec_info.mapEntryCount * sizeof(uint32_t); + } + + VkPipelineShaderStageRequiredSubgroupSizeCreateInfo subgroup_size_info; + + if (compile.static_state.state.subgroup_control_size) + { + if (!setup_subgroup_size_control(*device, info.stage, subgroup_size_info, + VK_SHADER_STAGE_COMPUTE_BIT, + compile.static_state.state.subgroup_full_group, + compile.static_state.state.subgroup_minimum_size_log2, + compile.static_state.state.subgroup_maximum_size_log2)) + { + LOGE("Subgroup size configuration not supported.\n"); + return {}; + } + } + + VkPipeline compute_pipeline = VK_NULL_HANDLE; +#ifdef GRANITE_VULKAN_FOSSILIZE + device->register_compute_pipeline(compile.hash, info); +#endif + + auto &table = device->get_device_table(); + + if (mode == CompileMode::FailOnCompileRequired) + info.flags |= VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT; + + auto start_ts = Util::get_current_time_nsecs(); + VkResult vr = table.vkCreateComputePipelines(device->get_device(), compile.cache, 1, &info, nullptr, &compute_pipeline); + auto end_ts = Util::get_current_time_nsecs(); + log_compile_time("compute", compile.hash, end_ts - start_ts, vr, mode); + + if (vr != VK_SUCCESS || compute_pipeline == VK_NULL_HANDLE) + { + if (vr < 0) + LOGE("Failed to create compute pipeline!\n"); + return {}; + } + + auto returned_pipeline = compile.program->add_pipeline(compile.hash, { compute_pipeline, 0 }); + if (returned_pipeline.pipeline != compute_pipeline) + table.vkDestroyPipeline(device->get_device(), compute_pipeline, nullptr); + return returned_pipeline; +} + +void CommandBuffer::extract_pipeline_state(DeferredPipelineCompile &compile) const +{ + compile = pipeline_state; + + if (!compile.program) + { + LOGE("Attempting to extract pipeline state when no program is bound.\n"); + return; + } + + if (is_compute) + update_hash_compute_pipeline(compile); + else + update_hash_graphics_pipeline(compile, CompileMode::AsyncThread, nullptr); +} + +bool CommandBuffer::setup_subgroup_size_control( + Vulkan::Device &device, VkPipelineShaderStageCreateInfo &stage_info, + VkPipelineShaderStageRequiredSubgroupSizeCreateInfo &required_info, + VkShaderStageFlagBits stage, bool full_group, + unsigned min_size_log2, unsigned max_size_log2) +{ + if (!device.supports_subgroup_size_log2(full_group, min_size_log2, max_size_log2, stage)) + return false; + + auto &features = device.get_device_features(); + + if (full_group) + stage_info.flags |= VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT; + + uint32_t min_subgroups = 1u << min_size_log2; + uint32_t max_subgroups = 1u << max_size_log2; + if (min_subgroups <= features.vk13_props.minSubgroupSize && + max_subgroups >= features.vk13_props.maxSubgroupSize) + { + stage_info.flags |= VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT; + } + else + { + required_info = { VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO }; + + // Pick a fixed subgroup size. Prefer smallest subgroup size. + if (min_subgroups < features.vk13_props.minSubgroupSize) + required_info.requiredSubgroupSize = features.vk13_props.minSubgroupSize; + else + required_info.requiredSubgroupSize = min_subgroups; + + required_info.pNext = const_cast(stage_info.pNext); + stage_info.pNext = &required_info; + } + + return true; +} + +Pipeline CommandBuffer::build_graphics_pipeline(Device *device, const DeferredPipelineCompile &compile, + CompileMode mode) +{ + // This can be called from outside a CommandBuffer content, so need to hold lock. + Util::RWSpinLockReadHolder holder{device->lock.read_only_cache}; + + // If we don't have pipeline creation cache control feature, + // we must assume compilation can be synchronous. + if (mode == CompileMode::FailOnCompileRequired && + (device->get_workarounds().broken_pipeline_cache_control || + !device->get_device_features().vk13_features.pipelineCreationCacheControl)) + { + return {}; + } + + // Unsupported. Gets pretty complicated since if any dependent pipeline fails, we have to abort. + if (mode == CompileMode::FailOnCompileRequired && !compile.program_group.empty()) + return {}; + + // Viewport state + VkPipelineViewportStateCreateInfo vp = { VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO }; + vp.viewportCount = 1; + vp.scissorCount = 1; + + // Dynamic state + VkPipelineDynamicStateCreateInfo dyn = { VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO }; + dyn.dynamicStateCount = 2; + VkDynamicState states[7] = { + VK_DYNAMIC_STATE_SCISSOR, VK_DYNAMIC_STATE_VIEWPORT, + }; + dyn.pDynamicStates = states; + + uint32_t dynamic_mask = COMMAND_BUFFER_DIRTY_VIEWPORT_BIT | COMMAND_BUFFER_DIRTY_SCISSOR_BIT; + + if (compile.static_state.state.depth_bias_enable) + { + states[dyn.dynamicStateCount++] = VK_DYNAMIC_STATE_DEPTH_BIAS; + dynamic_mask |= COMMAND_BUFFER_DIRTY_DEPTH_BIAS_BIT; + } + + if (compile.static_state.state.stencil_test) + { + states[dyn.dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK; + states[dyn.dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_REFERENCE; + states[dyn.dynamicStateCount++] = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK; + dynamic_mask |= COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT; + } + + // Blend state + VkPipelineColorBlendAttachmentState blend_attachments[VULKAN_NUM_ATTACHMENTS]; + VkPipelineColorBlendStateCreateInfo blend = { VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO }; + blend.attachmentCount = compile.compatible_render_pass->get_num_color_attachments(compile.subpass_index); + blend.pAttachments = blend_attachments; + for (unsigned i = 0; i < blend.attachmentCount; i++) + { + auto &att = blend_attachments[i]; + att = {}; + + if (compile.compatible_render_pass->get_color_attachment(compile.subpass_index, i).attachment != VK_ATTACHMENT_UNUSED && + (compile.layout->get_resource_layout().render_target_mask & (1u << i))) + { + att.colorWriteMask = (compile.static_state.state.write_mask >> (4 * i)) & 0xf; + att.blendEnable = compile.static_state.state.blend_enable; + if (att.blendEnable) + { + att.alphaBlendOp = static_cast(compile.static_state.state.alpha_blend_op); + att.colorBlendOp = static_cast(compile.static_state.state.color_blend_op); + att.dstAlphaBlendFactor = static_cast(compile.static_state.state.dst_alpha_blend); + att.srcAlphaBlendFactor = static_cast(compile.static_state.state.src_alpha_blend); + att.dstColorBlendFactor = static_cast(compile.static_state.state.dst_color_blend); + att.srcColorBlendFactor = static_cast(compile.static_state.state.src_color_blend); + } + } + } + memcpy(blend.blendConstants, compile.potential_static_state.blend_constants, sizeof(blend.blendConstants)); + + // Depth state + VkPipelineDepthStencilStateCreateInfo ds = { VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO }; + ds.stencilTestEnable = compile.compatible_render_pass->has_stencil(compile.subpass_index) && compile.static_state.state.stencil_test != 0; + ds.depthTestEnable = compile.compatible_render_pass->has_depth(compile.subpass_index) && compile.static_state.state.depth_test != 0; + ds.depthWriteEnable = compile.compatible_render_pass->has_depth(compile.subpass_index) && compile.static_state.state.depth_write != 0; + + if (ds.depthTestEnable) + ds.depthCompareOp = static_cast(compile.static_state.state.depth_compare); + + if (ds.stencilTestEnable) + { + ds.front.compareOp = static_cast(compile.static_state.state.stencil_front_compare_op); + ds.front.passOp = static_cast(compile.static_state.state.stencil_front_pass); + ds.front.failOp = static_cast(compile.static_state.state.stencil_front_fail); + ds.front.depthFailOp = static_cast(compile.static_state.state.stencil_front_depth_fail); + ds.back.compareOp = static_cast(compile.static_state.state.stencil_back_compare_op); + ds.back.passOp = static_cast(compile.static_state.state.stencil_back_pass); + ds.back.failOp = static_cast(compile.static_state.state.stencil_back_fail); + ds.back.depthFailOp = static_cast(compile.static_state.state.stencil_back_depth_fail); + } + + // Vertex input + VkPipelineVertexInputStateCreateInfo vi = { VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO }; + VkVertexInputAttributeDescription vi_attribs[VULKAN_NUM_VERTEX_ATTRIBS]; + VkVertexInputBindingDescription vi_bindings[VULKAN_NUM_VERTEX_BUFFERS]; + + if (compile.program->get_shader(ShaderStage::Vertex)) + { + vi.pVertexAttributeDescriptions = vi_attribs; + uint32_t attr_mask = compile.layout->get_resource_layout().attribute_mask; + uint32_t binding_mask = 0; + for_each_bit(attr_mask, [&](uint32_t bit) { + auto &attr = vi_attribs[vi.vertexAttributeDescriptionCount++]; + attr.location = bit; + attr.binding = compile.attribs[bit].binding; + attr.format = compile.attribs[bit].format; + attr.offset = compile.attribs[bit].offset; + binding_mask |= 1u << attr.binding; + }); + + vi.pVertexBindingDescriptions = vi_bindings; + for_each_bit(binding_mask, [&](uint32_t bit) { + auto &bind = vi_bindings[vi.vertexBindingDescriptionCount++]; + bind.binding = bit; + bind.inputRate = compile.input_rates[bit]; + bind.stride = compile.strides[bit]; + }); + } + + // Input assembly + VkPipelineInputAssemblyStateCreateInfo ia = { VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO }; + ia.primitiveRestartEnable = compile.static_state.state.primitive_restart; + ia.topology = static_cast(compile.static_state.state.topology); + + // Multisample + VkPipelineMultisampleStateCreateInfo ms = { VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO }; + ms.rasterizationSamples = static_cast(compile.compatible_render_pass->get_sample_count(compile.subpass_index)); + + if (compile.compatible_render_pass->get_sample_count(compile.subpass_index) > 1) + { + ms.alphaToCoverageEnable = compile.static_state.state.alpha_to_coverage; + ms.alphaToOneEnable = compile.static_state.state.alpha_to_one; + ms.sampleShadingEnable = compile.static_state.state.sample_shading; + ms.minSampleShading = 1.0f; + } + + // Raster + VkPipelineRasterizationStateCreateInfo raster = { VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO }; + raster.cullMode = static_cast(compile.static_state.state.cull_mode); + raster.frontFace = static_cast(compile.static_state.state.front_face); + raster.lineWidth = 1.0f; + raster.polygonMode = compile.static_state.state.wireframe ? VK_POLYGON_MODE_LINE : VK_POLYGON_MODE_FILL; + raster.depthBiasEnable = compile.static_state.state.depth_bias_enable != 0; + + VkPipelineRasterizationConservativeStateCreateInfoEXT conservative_raster = { + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT + }; + if (compile.static_state.state.conservative_raster) + { + if (device->get_device_features().supports_conservative_rasterization) + { + raster.pNext = &conservative_raster; + conservative_raster.conservativeRasterizationMode = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT; + } + else + { + LOGE("Conservative rasterization is not supported on this device.\n"); + return {}; + } + } + + // Stages + VkPipelineShaderStageCreateInfo stages[Util::ecast(ShaderStage::Count)]; + unsigned num_stages = 0; + + VkSpecializationInfo spec_info[ecast(ShaderStage::Count)] = {}; + VkSpecializationMapEntry spec_entries[ecast(ShaderStage::Count)][VULKAN_NUM_TOTAL_SPEC_CONSTANTS]; + uint32_t spec_constants[Util::ecast(ShaderStage::Count)][VULKAN_NUM_TOTAL_SPEC_CONSTANTS]; + + VkPipelineShaderStageRequiredSubgroupSizeCreateInfo subgroup_size_info_task; + VkPipelineShaderStageRequiredSubgroupSizeCreateInfo subgroup_size_info_mesh; + + for (int i = 0; i < Util::ecast(ShaderStage::Count); i++) + { + auto mask = compile.layout->get_resource_layout().spec_constant_mask[i] & + get_combined_spec_constant_mask(compile); + + if (mask) + { + spec_info[i].pData = spec_constants[i]; + spec_info[i].pMapEntries = spec_entries[i]; + + for_each_bit(mask, [&](uint32_t bit) + { + auto &entry = spec_entries[i][spec_info[i].mapEntryCount]; + entry.offset = sizeof(uint32_t) * spec_info[i].mapEntryCount; + entry.size = sizeof(uint32_t); + entry.constantID = bit; + spec_constants[i][spec_info[i].mapEntryCount] = compile.potential_static_state.spec_constants[bit]; + spec_info[i].mapEntryCount++; + }); + spec_info[i].dataSize = spec_info[i].mapEntryCount * sizeof(uint32_t); + } + } + + for (int i = 0; i < Util::ecast(ShaderStage::Count); i++) + { + auto stage = static_cast(i); + if (compile.program->get_shader(stage)) + { + auto &s = stages[num_stages++]; + s = { VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO }; + s.module = compile.program->get_shader(stage)->get_module(); + s.pName = "main"; + s.stage = static_cast(1u << i); + if (spec_info[i].mapEntryCount) + s.pSpecializationInfo = &spec_info[i]; + + if (stage == ShaderStage::Mesh || stage == ShaderStage::Task) + { + VkPipelineShaderStageRequiredSubgroupSizeCreateInfo *required_info; + unsigned min_size_log2, max_size_log2; + bool size_enabled, full_group; + + if (stage == ShaderStage::Mesh) + { + size_enabled = compile.static_state.state.subgroup_control_size; + full_group = compile.static_state.state.subgroup_full_group; + min_size_log2 = compile.static_state.state.subgroup_minimum_size_log2; + max_size_log2 = compile.static_state.state.subgroup_maximum_size_log2; + required_info = &subgroup_size_info_mesh; + } + else + { + size_enabled = compile.static_state.state.subgroup_control_size_task; + full_group = compile.static_state.state.subgroup_full_group_task; + min_size_log2 = compile.static_state.state.subgroup_minimum_size_log2_task; + max_size_log2 = compile.static_state.state.subgroup_maximum_size_log2_task; + required_info = &subgroup_size_info_task; + } + + if (size_enabled) + { + if (!setup_subgroup_size_control( + *device, s, *required_info, s.stage, + full_group, min_size_log2, max_size_log2)) + { + LOGE("Subgroup size configuration not supported.\n"); + return {}; + } + } + } + } + } + + VkGraphicsPipelineCreateInfo pipe = { VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO }; + pipe.layout = compile.layout->get_layout(); + pipe.renderPass = compile.compatible_render_pass->get_render_pass(); + pipe.subpass = compile.subpass_index; + + pipe.pViewportState = &vp; + pipe.pDynamicState = &dyn; + pipe.pColorBlendState = &blend; + pipe.pDepthStencilState = &ds; + if (compile.program->get_shader(ShaderStage::Vertex)) + { + pipe.pVertexInputState = &vi; + pipe.pInputAssemblyState = &ia; + } + pipe.pMultisampleState = &ms; + pipe.pRasterizationState = &raster; + pipe.pStages = stages; + pipe.stageCount = num_stages; + + VkGraphicsPipelineShaderGroupsCreateInfoNV groups_info = + { VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV }; + VkGraphicsShaderGroupCreateInfoNV self_group = + { VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV }; + Util::SmallVector pipelines; + + if (mode == CompileMode::IndirectBindable) + pipe.flags |= VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV; + + if (!compile.program_group.empty()) + { + DeferredPipelineCompile tmp_compile = compile; + tmp_compile.program_group.clear(); + pipelines.reserve(compile.program_group.size()); + + for (auto *p : compile.program_group) + { + tmp_compile.program = p; + update_hash_graphics_pipeline(tmp_compile, CompileMode::IndirectBindable, nullptr); + auto group_pipeline = p->get_pipeline(tmp_compile.hash); + if (group_pipeline.pipeline == VK_NULL_HANDLE) + group_pipeline = build_graphics_pipeline(device, tmp_compile, CompileMode::IndirectBindable); + + if (group_pipeline.pipeline == VK_NULL_HANDLE) + { + LOGE("Failed to compile group pipeline.\n"); + return {}; + } + + pipelines.push_back(group_pipeline.pipeline); + } + + self_group.stageCount = pipe.stageCount; + self_group.pStages = pipe.pStages; + self_group.pVertexInputState = pipe.pVertexInputState; + + // Compile each program individually. Then we just link them. + pipe.flags |= VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV; + + groups_info.pNext = pipe.pNext; + pipe.pNext = &groups_info; + // Trying to use pGroups[0] through self pPipeline reference crashes NV driver. + groups_info.pPipelines = pipelines.data() + 1; + groups_info.pipelineCount = uint32_t(pipelines.size() - 1); + groups_info.pGroups = &self_group; + groups_info.groupCount = 1; + } + + VkPipeline pipeline = VK_NULL_HANDLE; +#ifdef GRANITE_VULKAN_FOSSILIZE + device->register_graphics_pipeline(compile.hash, pipe); +#endif + + auto &table = device->get_device_table(); + + if (mode == CompileMode::FailOnCompileRequired) + pipe.flags |= VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT; + + auto start_ts = Util::get_current_time_nsecs(); + VkResult res = table.vkCreateGraphicsPipelines(device->get_device(), compile.cache, 1, &pipe, nullptr, &pipeline); + auto end_ts = Util::get_current_time_nsecs(); + log_compile_time("graphics", compile.hash, end_ts - start_ts, res, mode); + + if (res != VK_SUCCESS || pipeline == VK_NULL_HANDLE) + { + if (res < 0) + LOGE("Failed to create graphics pipeline!\n"); + return {}; + } + + auto returned_pipeline = compile.program->add_pipeline(compile.hash, { pipeline, dynamic_mask }); + if (returned_pipeline.pipeline != pipeline) + table.vkDestroyPipeline(device->get_device(), pipeline, nullptr); + return returned_pipeline; +} + +bool CommandBuffer::flush_compute_pipeline(bool synchronous) +{ + update_hash_compute_pipeline(pipeline_state); + current_pipeline = pipeline_state.program->get_pipeline(pipeline_state.hash); + if (current_pipeline.pipeline == VK_NULL_HANDLE) + { + current_pipeline = build_compute_pipeline( + device, pipeline_state, + synchronous ? CompileMode::Sync : CompileMode::FailOnCompileRequired); + } + return current_pipeline.pipeline != VK_NULL_HANDLE; +} + +void CommandBuffer::update_hash_compute_pipeline(DeferredPipelineCompile &compile) +{ + Hasher h; + h.u64(compile.program->get_hash()); + h.u64(compile.layout->get_hash()); + + // Spec constants. + auto &layout = compile.layout->get_resource_layout(); + uint32_t combined_spec_constant = layout.combined_spec_constant_mask; + combined_spec_constant &= get_combined_spec_constant_mask(compile); + h.u32(combined_spec_constant); + for_each_bit(combined_spec_constant, [&](uint32_t bit) { + h.u32(compile.potential_static_state.spec_constants[bit]); + }); + + if (compile.static_state.state.subgroup_control_size) + { + h.s32(1); + h.u32(compile.static_state.state.subgroup_minimum_size_log2); + h.u32(compile.static_state.state.subgroup_maximum_size_log2); + h.u32(compile.static_state.state.subgroup_full_group); + // Required for Fossilize since we don't know exactly how to lower these requirements to a PSO + // without knowing some device state. + h.u32(compile.subgroup_size_tag); + } + else + h.s32(0); + + compile.hash = h.get(); +} + +void CommandBuffer::update_hash_graphics_pipeline(DeferredPipelineCompile &compile, + CompileMode mode, uint32_t *out_active_vbos) +{ + Hasher h; + uint32_t active_vbos = 0; + auto &layout = compile.layout->get_resource_layout(); + for_each_bit(layout.attribute_mask, [&](uint32_t bit) { + h.u32(bit); + active_vbos |= 1u << compile.attribs[bit].binding; + h.u32(compile.attribs[bit].binding); + h.u32(compile.attribs[bit].format); + h.u32(compile.attribs[bit].offset); + }); + + for_each_bit(active_vbos, [&](uint32_t bit) { + h.u32(compile.input_rates[bit]); + h.u32(compile.strides[bit]); + }); + + if (out_active_vbos) + *out_active_vbos = active_vbos; + + h.u64(compile.compatible_render_pass->get_hash()); + h.u32(compile.subpass_index); + h.u64(compile.program->get_hash()); + for (auto *p : compile.program_group) + h.u64(p->get_hash()); + h.u64(compile.layout->get_hash()); + h.data(compile.static_state.words, sizeof(compile.static_state.words)); + + if (compile.static_state.state.blend_enable) + { + const auto needs_blend_constant = [](VkBlendFactor factor) { + return factor == VK_BLEND_FACTOR_CONSTANT_COLOR || factor == VK_BLEND_FACTOR_CONSTANT_ALPHA; + }; + bool b0 = needs_blend_constant(static_cast(compile.static_state.state.src_color_blend)); + bool b1 = needs_blend_constant(static_cast(compile.static_state.state.src_alpha_blend)); + bool b2 = needs_blend_constant(static_cast(compile.static_state.state.dst_color_blend)); + bool b3 = needs_blend_constant(static_cast(compile.static_state.state.dst_alpha_blend)); + if (b0 || b1 || b2 || b3) + h.data(reinterpret_cast(compile.potential_static_state.blend_constants), + sizeof(compile.potential_static_state.blend_constants)); + } + + // Spec constants. + uint32_t combined_spec_constant = layout.combined_spec_constant_mask; + combined_spec_constant &= get_combined_spec_constant_mask(compile); + h.u32(combined_spec_constant); + for_each_bit(combined_spec_constant, [&](uint32_t bit) { + h.u32(compile.potential_static_state.spec_constants[bit]); + }); + h.s32(mode == CompileMode::IndirectBindable); + + if (compile.program->get_shader(ShaderStage::Task)) + { + if (compile.static_state.state.subgroup_control_size_task) + { + h.s32(1); + h.u32(compile.static_state.state.subgroup_minimum_size_log2_task); + h.u32(compile.static_state.state.subgroup_maximum_size_log2_task); + h.u32(compile.static_state.state.subgroup_full_group_task); + // Required for Fossilize since we don't know exactly how to lower these requirements to a PSO + // without knowing some device state. + h.u32(compile.subgroup_size_tag); + } + else + h.s32(0); + } + + if (compile.program->get_shader(ShaderStage::Mesh)) + { + if (compile.static_state.state.subgroup_control_size) + { + h.s32(1); + h.u32(compile.static_state.state.subgroup_minimum_size_log2); + h.u32(compile.static_state.state.subgroup_maximum_size_log2); + h.u32(compile.static_state.state.subgroup_full_group); + // Required for Fossilize since we don't know exactly how to lower these requirements to a PSO + // without knowing some device state. + h.u32(compile.subgroup_size_tag); + } + else + h.s32(0); + } + + compile.hash = h.get(); +} + +bool CommandBuffer::flush_graphics_pipeline(bool synchronous) +{ + auto mode = synchronous ? CompileMode::Sync : CompileMode::FailOnCompileRequired; + update_hash_graphics_pipeline(pipeline_state, mode, &active_vbos); + current_pipeline = pipeline_state.program->get_pipeline(pipeline_state.hash); + if (current_pipeline.pipeline == VK_NULL_HANDLE) + current_pipeline = build_graphics_pipeline(device, pipeline_state, mode); + return current_pipeline.pipeline != VK_NULL_HANDLE; +} + +void CommandBuffer::bind_pipeline(VkPipelineBindPoint bind_point, VkPipeline pipeline, uint32_t active_dynamic_state) +{ + table.vkCmdBindPipeline(cmd, bind_point, pipeline); + + // If some dynamic state is static in the pipeline it clobbers the dynamic state. + // As a performance optimization don't clobber everything. + uint32_t static_state_clobber = ~active_dynamic_state & COMMAND_BUFFER_DYNAMIC_BITS; + set_dirty(static_state_clobber); +} + +VkPipeline CommandBuffer::flush_compute_state(bool synchronous) +{ + if (!pipeline_state.program) + return VK_NULL_HANDLE; + VK_ASSERT(pipeline_state.layout); + + if (current_pipeline.pipeline == VK_NULL_HANDLE) + set_dirty(COMMAND_BUFFER_DIRTY_PIPELINE_BIT); + + if (get_and_clear(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT | COMMAND_BUFFER_DIRTY_PIPELINE_BIT)) + { + VkPipeline old_pipe = current_pipeline.pipeline; + if (!flush_compute_pipeline(synchronous)) + return VK_NULL_HANDLE; + + if (old_pipe != current_pipeline.pipeline) + bind_pipeline(VK_PIPELINE_BIND_POINT_COMPUTE, current_pipeline.pipeline, current_pipeline.dynamic_mask); + } + + if (current_pipeline.pipeline == VK_NULL_HANDLE) + return VK_NULL_HANDLE; + + flush_descriptor_sets(); + + if (get_and_clear(COMMAND_BUFFER_DIRTY_PUSH_CONSTANTS_BIT)) + { + auto &range = pipeline_state.layout->get_resource_layout().push_constant_range; + if (range.stageFlags != 0) + { + VK_ASSERT(range.offset == 0); + table.vkCmdPushConstants(cmd, current_pipeline_layout, range.stageFlags, + 0, range.size, + bindings.push_constant_data); + } + } + + return current_pipeline.pipeline; +} + +VkPipeline CommandBuffer::flush_render_state(bool synchronous) +{ + if (!pipeline_state.program) + return VK_NULL_HANDLE; + VK_ASSERT(pipeline_state.layout); + + if (current_pipeline.pipeline == VK_NULL_HANDLE) + set_dirty(COMMAND_BUFFER_DIRTY_PIPELINE_BIT); + + // We've invalidated pipeline state, update the VkPipeline. + if (get_and_clear(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT | COMMAND_BUFFER_DIRTY_PIPELINE_BIT | + COMMAND_BUFFER_DIRTY_STATIC_VERTEX_BIT)) + { + VkPipeline old_pipe = current_pipeline.pipeline; + if (!flush_graphics_pipeline(synchronous)) + return VK_NULL_HANDLE; + + if (old_pipe != current_pipeline.pipeline) + bind_pipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, current_pipeline.pipeline, current_pipeline.dynamic_mask); + +#ifdef VULKAN_DEBUG + if (current_framebuffer_surface_transform != VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR) + { + // Make sure that if we're using prerotate, our vertex shaders have prerotate. + auto spec_constant_mask = pipeline_state.layout->get_resource_layout().combined_spec_constant_mask; + constexpr uint32_t expected_mask = 0xfu << VULKAN_NUM_USER_SPEC_CONSTANTS; + VK_ASSERT((spec_constant_mask & expected_mask) == expected_mask); + } +#endif + } + + if (current_pipeline.pipeline == VK_NULL_HANDLE) + return VK_NULL_HANDLE; + + flush_descriptor_sets(); + + if (get_and_clear(COMMAND_BUFFER_DIRTY_PUSH_CONSTANTS_BIT)) + { + auto &range = pipeline_state.layout->get_resource_layout().push_constant_range; + if (range.stageFlags != 0) + { + VK_ASSERT(range.offset == 0); + table.vkCmdPushConstants(cmd, current_pipeline_layout, range.stageFlags, + 0, range.size, + bindings.push_constant_data); + } + } + + if (get_and_clear(COMMAND_BUFFER_DIRTY_VIEWPORT_BIT)) + { + if (current_framebuffer_surface_transform != VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR) + { + auto tmp_viewport = viewport; + viewport_transform_xy(tmp_viewport, current_framebuffer_surface_transform, + framebuffer->get_width(), framebuffer->get_height()); + table.vkCmdSetViewport(cmd, 0, 1, &tmp_viewport); + } + else + table.vkCmdSetViewport(cmd, 0, 1, &viewport); + } + + if (get_and_clear(COMMAND_BUFFER_DIRTY_SCISSOR_BIT)) + { + auto tmp_scissor = scissor; + rect2d_transform_xy(tmp_scissor, current_framebuffer_surface_transform, + framebuffer->get_width(), framebuffer->get_height()); + rect2d_clip(tmp_scissor); + table.vkCmdSetScissor(cmd, 0, 1, &tmp_scissor); + } + + if (pipeline_state.static_state.state.depth_bias_enable && get_and_clear(COMMAND_BUFFER_DIRTY_DEPTH_BIAS_BIT)) + table.vkCmdSetDepthBias(cmd, dynamic_state.depth_bias_constant, 0.0f, dynamic_state.depth_bias_slope); + if (pipeline_state.static_state.state.stencil_test && get_and_clear(COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT)) + { + table.vkCmdSetStencilCompareMask(cmd, VK_STENCIL_FACE_FRONT_BIT, dynamic_state.front_compare_mask); + table.vkCmdSetStencilReference(cmd, VK_STENCIL_FACE_FRONT_BIT, dynamic_state.front_reference); + table.vkCmdSetStencilWriteMask(cmd, VK_STENCIL_FACE_FRONT_BIT, dynamic_state.front_write_mask); + table.vkCmdSetStencilCompareMask(cmd, VK_STENCIL_FACE_BACK_BIT, dynamic_state.back_compare_mask); + table.vkCmdSetStencilReference(cmd, VK_STENCIL_FACE_BACK_BIT, dynamic_state.back_reference); + table.vkCmdSetStencilWriteMask(cmd, VK_STENCIL_FACE_BACK_BIT, dynamic_state.back_write_mask); + } + + uint32_t update_vbo_mask = dirty_vbos & active_vbos; + for_each_bit_range(update_vbo_mask, [&](uint32_t binding, uint32_t binding_count) { +#ifdef VULKAN_DEBUG + for (unsigned i = binding; i < binding + binding_count; i++) + VK_ASSERT(vbo.buffers[i] != VK_NULL_HANDLE); +#endif + table.vkCmdBindVertexBuffers(cmd, binding, binding_count, vbo.buffers + binding, vbo.offsets + binding); + }); + dirty_vbos &= ~update_vbo_mask; + + return current_pipeline.pipeline; +} + +bool CommandBuffer::flush_pipeline_state_without_blocking() +{ + if (is_compute) + return flush_compute_state(false) != VK_NULL_HANDLE; + else + return flush_render_state(false) != VK_NULL_HANDLE; +} + +VkPipeline CommandBuffer::get_current_compute_pipeline() +{ + return flush_compute_state(true); +} + +VkPipeline CommandBuffer::get_current_graphics_pipeline() +{ + return flush_render_state(true); +} + +void CommandBuffer::wait_events(uint32_t count, const PipelineEvent *events, const VkDependencyInfo *deps) +{ + VK_ASSERT(!framebuffer); + VK_ASSERT(!actual_render_pass); + + Util::SmallVector vk_events; + vk_events.reserve(count); + for (uint32_t i = 0; i < count; i++) + vk_events.push_back(events[i]->get_event()); + + if (device->get_workarounds().emulate_event_as_pipeline_barrier) + { + for (uint32_t i = 0; i < count; i++) + barrier(deps[i]); + } + else if (device->get_device_features().vk13_features.synchronization2) + { + table.vkCmdWaitEvents2(cmd, count, vk_events.data(), deps); + } + else + { + Sync1CompatData sync1; + for (uint32_t i = 0; i < count; i++) + convert_vk_dependency_info(deps[i], sync1); + table.vkCmdWaitEvents(cmd, count, vk_events.data(), + sync1.src_stages, sync1.dst_stages, + uint32_t(sync1.mem_barriers.size()), sync1.mem_barriers.data(), + uint32_t(sync1.buf_barriers.size()), sync1.buf_barriers.data(), + uint32_t(sync1.img_barriers.size()), sync1.img_barriers.data()); + } +} + +PipelineEvent CommandBuffer::signal_event(const VkDependencyInfo &dep) +{ + VK_ASSERT(!framebuffer); + VK_ASSERT(!actual_render_pass); + auto event = device->begin_signal_event(); + + if (!device->get_workarounds().emulate_event_as_pipeline_barrier) + { + if (device->get_device_features().vk13_features.synchronization2) + { + table.vkCmdSetEvent2(cmd, event->get_event(), &dep); + } + else + { + Sync1CompatData sync1; + convert_vk_dependency_info(dep, sync1); + table.vkCmdSetEvent(cmd, event->get_event(), sync1.src_stages); + } + } + return event; +} + +void CommandBuffer::set_vertex_attrib(uint32_t attrib, uint32_t binding, VkFormat format, VkDeviceSize offset) +{ + VK_ASSERT(attrib < VULKAN_NUM_VERTEX_ATTRIBS); + VK_ASSERT(framebuffer); + + auto &attr = pipeline_state.attribs[attrib]; + + if (attr.binding != binding || attr.format != format || attr.offset != offset) + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_VERTEX_BIT); + + VK_ASSERT(binding < VULKAN_NUM_VERTEX_BUFFERS); + + attr.binding = binding; + attr.format = format; + attr.offset = offset; +} + +void CommandBuffer::set_index_buffer(const Buffer &buffer, VkDeviceSize offset, VkIndexType index_type) +{ + if (index_state.buffer == buffer.get_buffer() && + index_state.offset == offset && + index_state.index_type == index_type) + { + return; + } + + index_state.buffer = buffer.get_buffer(); + index_state.offset = offset; + index_state.index_type = index_type; + table.vkCmdBindIndexBuffer(cmd, buffer.get_buffer(), offset, index_type); +} + +void CommandBuffer::set_vertex_binding(uint32_t binding, const Buffer &buffer, VkDeviceSize offset, VkDeviceSize stride, + VkVertexInputRate step_rate) +{ + VK_ASSERT(binding < VULKAN_NUM_VERTEX_BUFFERS); + VK_ASSERT(framebuffer); + + VkBuffer vkbuffer = buffer.get_buffer(); + if (vbo.buffers[binding] != vkbuffer || vbo.offsets[binding] != offset) + dirty_vbos |= 1u << binding; + if (pipeline_state.strides[binding] != stride || pipeline_state.input_rates[binding] != step_rate) + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_VERTEX_BIT); + + vbo.buffers[binding] = vkbuffer; + vbo.offsets[binding] = offset; + pipeline_state.strides[binding] = stride; + pipeline_state.input_rates[binding] = step_rate; +} + +void CommandBuffer::set_viewport(const VkViewport &viewport_) +{ + VK_ASSERT(framebuffer); + viewport = viewport_; + set_dirty(COMMAND_BUFFER_DIRTY_VIEWPORT_BIT); +} + +const VkViewport &CommandBuffer::get_viewport() const +{ + return viewport; +} + +void CommandBuffer::set_scissor(const VkRect2D &rect) +{ + VK_ASSERT(framebuffer); + VK_ASSERT(rect.offset.x >= 0); + VK_ASSERT(rect.offset.y >= 0); + scissor = rect; + set_dirty(COMMAND_BUFFER_DIRTY_SCISSOR_BIT); +} + +void CommandBuffer::push_constants(const void *data, VkDeviceSize offset, VkDeviceSize range) +{ + VK_ASSERT(offset + range <= VULKAN_PUSH_CONSTANT_SIZE); + memcpy(bindings.push_constant_data + offset, data, range); + set_dirty(COMMAND_BUFFER_DIRTY_PUSH_CONSTANTS_BIT); +} + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES +void CommandBuffer::set_program(const std::string &compute, const std::vector> &defines) +{ + auto *p = device->get_shader_manager().register_compute(compute); + if (p) + { + auto *variant = p->register_variant(defines); + set_program(variant->get_program()); + } + else + set_program(nullptr); +} + +void CommandBuffer::set_program(const std::string &vertex, const std::string &fragment, + const std::vector> &defines) +{ + auto *p = device->get_shader_manager().register_graphics(vertex, fragment); + if (p) + { + auto *variant = p->register_variant(defines); + set_program(variant->get_program()); + } + else + set_program(nullptr); +} + +void CommandBuffer::set_program(const std::string &task, const std::string &mesh, const std::string &fragment, + const std::vector> &defines) +{ + auto *p = device->get_shader_manager().register_graphics(task, mesh, fragment); + if (p) + { + auto *variant = p->register_variant(defines); + set_program(variant->get_program()); + } + else + set_program(nullptr); +} +#endif + +void CommandBuffer::set_program_group(Program *const *programs, unsigned num_programs, + const PipelineLayout *layout) +{ + pipeline_state.program = num_programs ? programs[0] : nullptr; + pipeline_state.program_group = { programs, programs + num_programs }; + current_pipeline = {}; + set_dirty(COMMAND_BUFFER_DIRTY_PIPELINE_BIT); + + VK_ASSERT(device->get_device_features().device_generated_commands_features.deviceGeneratedCommands); + + if (!num_programs) + return; + + VK_ASSERT(framebuffer && pipeline_state.program->get_shader(ShaderStage::Fragment)); +#ifdef VULKAN_DEBUG + for (unsigned i = 0; i < num_programs; i++) + VK_ASSERT(pipeline_state.program_group[i]->get_shader(ShaderStage::Fragment)); +#endif + + if (!layout && pipeline_state.program) + { + CombinedResourceLayout combined_layout = programs[0]->get_pipeline_layout()->get_resource_layout(); + for (unsigned i = 1; i < num_programs; i++) + device->merge_combined_resource_layout(combined_layout, *programs[i]); + layout = device->request_pipeline_layout(combined_layout, nullptr); + } + + set_program_layout(layout); +} + +void CommandBuffer::set_program(Program *program) +{ + if (pipeline_state.program == program) + return; + + pipeline_state.program = program; + pipeline_state.program_group.clear(); + current_pipeline = {}; + + set_dirty(COMMAND_BUFFER_DIRTY_PIPELINE_BIT); + if (!program) + return; + + VK_ASSERT((framebuffer && pipeline_state.program->get_shader(ShaderStage::Fragment)) || + (!framebuffer && pipeline_state.program->get_shader(ShaderStage::Compute))); + + set_program_layout(program->get_pipeline_layout()); +} + +void CommandBuffer::set_program_layout(const PipelineLayout *layout) +{ + VK_ASSERT(layout); + if (!pipeline_state.layout) + { + dirty_sets_realloc = ~0u; + set_dirty(COMMAND_BUFFER_DIRTY_PUSH_CONSTANTS_BIT); + } + else if (layout->get_hash() != pipeline_state.layout->get_hash()) + { + auto &new_layout = layout->get_resource_layout(); + auto &old_layout = pipeline_state.layout->get_resource_layout(); + + uint32_t first_invalidated_set_index = VULKAN_NUM_DESCRIPTOR_SETS; + uint32_t new_push_set = layout->get_push_set_index(); + uint32_t old_push_set = pipeline_state.layout->get_push_set_index(); + if (new_push_set == old_push_set) + { + new_push_set = UINT32_MAX; + old_push_set = UINT32_MAX; + } + + // If the push constant layout changes, all descriptor sets + // are invalidated. + if (new_layout.push_constant_layout_hash != old_layout.push_constant_layout_hash) + { + first_invalidated_set_index = 0; + set_dirty(COMMAND_BUFFER_DIRTY_PUSH_CONSTANTS_BIT); + } + else + { + // Find the first set whose descriptor set layout differs. + for (unsigned set = 0; set < VULKAN_NUM_DESCRIPTOR_SETS; set++) + { + if (layout->get_allocator(set) != pipeline_state.layout->get_allocator(set) || + set == new_push_set || set == old_push_set) + { + first_invalidated_set_index = set; + break; + } + } + } + + if (first_invalidated_set_index < VULKAN_NUM_DESCRIPTOR_SETS) + { + dirty_sets_rebind |= ~((1u << first_invalidated_set_index) - 1u); + + for (unsigned set = first_invalidated_set_index; set < VULKAN_NUM_DESCRIPTOR_SETS; set++) + { + if (layout->get_allocator(set) != pipeline_state.layout->get_allocator(set) || + set == new_push_set || set == old_push_set) + { + dirty_sets_realloc |= 1u << set; + } + } + } + } + + pipeline_state.layout = layout; + current_pipeline_layout = pipeline_state.layout->get_layout(); +} + +void *CommandBuffer::allocate_constant_data(unsigned set, unsigned binding, VkDeviceSize size) +{ + VK_ASSERT(size <= VULKAN_MAX_UBO_SIZE); + auto data = ubo_block.allocate(size); + if (!data.host) + { + device->request_uniform_block(ubo_block, size); + data = ubo_block.allocate(size); + } + set_uniform_buffer(set, binding, *data.buffer, data.offset, data.padded_size); + return data.host; +} + +void *CommandBuffer::allocate_index_data(VkDeviceSize size, VkIndexType index_type) +{ + auto data = ibo_block.allocate(size); + if (!data.host) + { + device->request_index_block(ibo_block, size); + data = ibo_block.allocate(size); + } + set_index_buffer(*data.buffer, data.offset, index_type); + return data.host; +} + +BufferBlockAllocation CommandBuffer::request_scratch_buffer_memory(VkDeviceSize size) +{ + if (size == 0) + return {}; + + auto data = staging_block.allocate(size); + if (!data.host) + { + device->request_staging_block(staging_block, size); + data = staging_block.allocate(size); + } + + return data; +} + +void *CommandBuffer::update_buffer(const Buffer &buffer, VkDeviceSize offset, VkDeviceSize size) +{ + auto data = request_scratch_buffer_memory(size); + if (data.host) + copy_buffer(buffer, offset, *data.buffer, data.offset, size); + return data.host; +} + +void *CommandBuffer::update_image(const Image &image, const VkOffset3D &offset, const VkExtent3D &extent, + uint32_t row_length, uint32_t image_height, + const VkImageSubresourceLayers &subresource) +{ + auto &create_info = image.get_create_info(); + uint32_t width = image.get_width(subresource.mipLevel); + uint32_t height = image.get_height(subresource.mipLevel); + uint32_t depth = image.get_depth(subresource.mipLevel); + + if ((subresource.aspectMask & (VK_IMAGE_ASPECT_PLANE_0_BIT | + VK_IMAGE_ASPECT_PLANE_1_BIT | + VK_IMAGE_ASPECT_PLANE_2_BIT)) != 0) + { + format_ycbcr_downsample_dimensions(create_info.format, subresource.aspectMask, width, height); + } + + if (!row_length) + row_length = width; + + if (!image_height) + image_height = height; + + uint32_t blocks_x = row_length; + uint32_t blocks_y = image_height; + format_num_blocks(create_info.format, blocks_x, blocks_y); + + VkDeviceSize size = + TextureFormatLayout::format_block_size(create_info.format, subresource.aspectMask) * subresource.layerCount * depth * blocks_x * blocks_y; + + auto data = staging_block.allocate(size); + if (!data.host) + { + device->request_staging_block(staging_block, size); + data = staging_block.allocate(size); + } + + copy_buffer_to_image(image, *data.buffer, data.offset, offset, extent, row_length, image_height, subresource); + return data.host; +} + +void *CommandBuffer::update_image(const Image &image, uint32_t row_length, uint32_t image_height) +{ + const VkImageSubresourceLayers subresource = { + format_to_aspect_mask(image.get_format()), 0, 0, 1, + }; + return update_image(image, { 0, 0, 0 }, { image.get_width(), image.get_height(), image.get_depth() }, row_length, + image_height, subresource); +} + +void *CommandBuffer::allocate_vertex_data(unsigned binding, VkDeviceSize size, VkDeviceSize stride, + VkVertexInputRate step_rate) +{ + auto data = vbo_block.allocate(size); + if (!data.host) + { + device->request_vertex_block(vbo_block, size); + data = vbo_block.allocate(size); + } + + set_vertex_binding(binding, *data.buffer, data.offset, stride, step_rate); + return data.host; +} + +void CommandBuffer::set_uniform_buffer(unsigned set, unsigned binding, const Buffer &buffer, VkDeviceSize offset, + VkDeviceSize range) +{ + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + VK_ASSERT(buffer.get_create_info().usage & VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT); + auto &b = bindings.bindings[set][binding]; + + if (buffer.get_cookie() == bindings.cookies[set][binding] && b.buffer.dynamic.range == range) + { + if (b.buffer.push.offset != offset) + { + dirty_sets_rebind |= 1u << set; + b.buffer.push.offset = offset; + } + } + else + { + b.buffer.dynamic = { buffer.get_buffer(), 0, range }; + b.buffer.push = { buffer.get_buffer(), offset, range }; + bindings.cookies[set][binding] = buffer.get_cookie(); + bindings.secondary_cookies[set][binding] = 0; + dirty_sets_realloc |= 1u << set; + } +} + +void CommandBuffer::set_storage_buffer(unsigned set, unsigned binding, const Buffer &buffer, VkDeviceSize offset, + VkDeviceSize range) +{ + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + VK_ASSERT(buffer.get_create_info().usage & VK_BUFFER_USAGE_STORAGE_BUFFER_BIT); + auto &b = bindings.bindings[set][binding]; + + if (buffer.get_cookie() == bindings.cookies[set][binding] && b.buffer.dynamic.offset == offset && b.buffer.dynamic.range == range) + return; + + b.buffer.dynamic = { buffer.get_buffer(), offset, range }; + b.buffer.push = b.buffer.dynamic; + bindings.cookies[set][binding] = buffer.get_cookie(); + bindings.secondary_cookies[set][binding] = 0; + dirty_sets_realloc |= 1u << set; +} + +void CommandBuffer::set_uniform_buffer(unsigned set, unsigned binding, const Buffer &buffer) +{ + set_uniform_buffer(set, binding, buffer, 0, buffer.get_create_info().size); +} + +void CommandBuffer::set_storage_buffer(unsigned set, unsigned binding, const Buffer &buffer) +{ + set_storage_buffer(set, binding, buffer, 0, buffer.get_create_info().size); +} + +void CommandBuffer::set_sampler(unsigned set, unsigned binding, const Sampler &sampler) +{ + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + if (sampler.get_cookie() == bindings.secondary_cookies[set][binding]) + return; + + auto &b = bindings.bindings[set][binding]; + b.image.fp.sampler = sampler.get_sampler(); + b.image.integer.sampler = sampler.get_sampler(); + dirty_sets_realloc |= 1u << set; + bindings.secondary_cookies[set][binding] = sampler.get_cookie(); +} + +void CommandBuffer::set_buffer_view_common(unsigned set, unsigned binding, const BufferView &view) +{ + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + if (view.get_cookie() == bindings.cookies[set][binding]) + return; + auto &b = bindings.bindings[set][binding]; + b.buffer_view = view.get_view(); + bindings.cookies[set][binding] = view.get_cookie(); + bindings.secondary_cookies[set][binding] = 0; + dirty_sets_realloc |= 1u << set; +} + +void CommandBuffer::set_buffer_view(unsigned set, unsigned binding, const BufferView &view) +{ + VK_ASSERT(view.get_buffer().get_create_info().usage & VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT); + set_buffer_view_common(set, binding, view); +} + +void CommandBuffer::set_storage_buffer_view(unsigned set, unsigned binding, const BufferView &view) +{ + VK_ASSERT(view.get_buffer().get_create_info().usage & VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT); + set_buffer_view_common(set, binding, view); +} + +void CommandBuffer::set_input_attachments(unsigned set, unsigned start_binding) +{ + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(start_binding + actual_render_pass->get_num_input_attachments(pipeline_state.subpass_index) <= VULKAN_NUM_BINDINGS); + unsigned num_input_attachments = actual_render_pass->get_num_input_attachments(pipeline_state.subpass_index); + for (unsigned i = 0; i < num_input_attachments; i++) + { + auto &ref = actual_render_pass->get_input_attachment(pipeline_state.subpass_index, i); + if (ref.attachment == VK_ATTACHMENT_UNUSED) + continue; + + const ImageView *view = framebuffer_attachments[ref.attachment]; + VK_ASSERT(view); + VK_ASSERT(view->get_image().get_create_info().usage & VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT); + + if (view->get_cookie() == bindings.cookies[set][start_binding + i] && + bindings.bindings[set][start_binding + i].image.fp.imageLayout == ref.layout) + { + continue; + } + + auto &b = bindings.bindings[set][start_binding + i]; + b.image.fp.imageLayout = ref.layout; + b.image.integer.imageLayout = ref.layout; + b.image.fp.imageView = view->get_float_view(); + b.image.integer.imageView = view->get_integer_view(); + bindings.cookies[set][start_binding + i] = view->get_cookie(); + dirty_sets_realloc |= 1u << set; + } +} + +void CommandBuffer::set_texture(unsigned set, unsigned binding, + VkImageView float_view, VkImageView integer_view, + VkImageLayout layout, + uint64_t cookie) +{ + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + + if (cookie == bindings.cookies[set][binding] && bindings.bindings[set][binding].image.fp.imageLayout == layout) + return; + + auto &b = bindings.bindings[set][binding]; + b.image.fp.imageLayout = layout; + b.image.fp.imageView = float_view; + b.image.integer.imageLayout = layout; + b.image.integer.imageView = integer_view; + bindings.cookies[set][binding] = cookie; + dirty_sets_realloc |= 1u << set; +} + +void CommandBuffer::set_bindless(unsigned set, VkDescriptorSet desc_set) +{ + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + bindless_sets[set] = desc_set; + dirty_sets_realloc |= 1u << set; +} + +void CommandBuffer::set_texture(unsigned set, unsigned binding, const ImageView &view) +{ + VK_ASSERT(view.get_image().get_create_info().usage & VK_IMAGE_USAGE_SAMPLED_BIT); + set_texture(set, binding, view.get_float_view(), view.get_integer_view(), + view.get_image().get_layout(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), view.get_cookie()); +} + +enum CookieBits +{ + COOKIE_BIT_UNORM = 1 << 0, + COOKIE_BIT_SRGB = 1 << 1 +}; + +void CommandBuffer::set_unorm_texture(unsigned set, unsigned binding, const ImageView &view) +{ + VK_ASSERT(view.get_image().get_create_info().usage & VK_IMAGE_USAGE_SAMPLED_BIT); + auto unorm_view = view.get_unorm_view(); + VK_ASSERT(unorm_view != VK_NULL_HANDLE); + set_texture(set, binding, unorm_view, unorm_view, + view.get_image().get_layout(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), view.get_cookie() | COOKIE_BIT_UNORM); +} + +void CommandBuffer::set_srgb_texture(unsigned set, unsigned binding, const ImageView &view) +{ + VK_ASSERT(view.get_image().get_create_info().usage & VK_IMAGE_USAGE_SAMPLED_BIT); + auto srgb_view = view.get_srgb_view(); + VK_ASSERT(srgb_view != VK_NULL_HANDLE); + set_texture(set, binding, srgb_view, srgb_view, + view.get_image().get_layout(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL), view.get_cookie() | COOKIE_BIT_SRGB); +} + +void CommandBuffer::set_texture(unsigned set, unsigned binding, const ImageView &view, const Sampler &sampler) +{ + set_sampler(set, binding, sampler); + set_texture(set, binding, view); +} + +void CommandBuffer::set_texture(unsigned set, unsigned binding, const ImageView &view, StockSampler stock) +{ + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + VK_ASSERT(view.get_image().get_create_info().usage & VK_IMAGE_USAGE_SAMPLED_BIT); + const auto &sampler = device->get_stock_sampler(stock); + set_texture(set, binding, view, sampler); +} + +void CommandBuffer::set_sampler(unsigned set, unsigned binding, StockSampler stock) +{ + const auto &sampler = device->get_stock_sampler(stock); + set_sampler(set, binding, sampler); +} + +void CommandBuffer::set_storage_texture(unsigned set, unsigned binding, const ImageView &view) +{ + VK_ASSERT(view.get_image().get_create_info().usage & VK_IMAGE_USAGE_STORAGE_BIT); + set_texture(set, binding, view.get_float_view(), view.get_integer_view(), + view.get_image().get_layout(VK_IMAGE_LAYOUT_GENERAL), view.get_cookie()); +} + +void CommandBuffer::set_unorm_storage_texture(unsigned set, unsigned binding, const ImageView &view) +{ + VK_ASSERT(view.get_image().get_create_info().usage & VK_IMAGE_USAGE_STORAGE_BIT); + auto unorm_view = view.get_unorm_view(); + VK_ASSERT(unorm_view != VK_NULL_HANDLE); + set_texture(set, binding, unorm_view, unorm_view, + view.get_image().get_layout(VK_IMAGE_LAYOUT_GENERAL), view.get_cookie() | COOKIE_BIT_UNORM); +} + +void CommandBuffer::flush_descriptor_binds(const VkDescriptorSet *sets, + uint32_t &first_set, uint32_t &set_count, + uint32_t *dynamic_offsets, uint32_t &num_dynamic_offsets) +{ + if (!set_count) + return; + + table.vkCmdBindDescriptorSets( + cmd, actual_render_pass ? VK_PIPELINE_BIND_POINT_GRAPHICS : VK_PIPELINE_BIND_POINT_COMPUTE, + current_pipeline_layout, first_set, set_count, sets, num_dynamic_offsets, dynamic_offsets); + + set_count = 0; + num_dynamic_offsets = 0; +} + +void CommandBuffer::rebind_descriptor_set(uint32_t set, VkDescriptorSet *sets, uint32_t &first_set, uint32_t &set_count, + uint32_t *dynamic_offsets, uint32_t &num_dynamic_offsets) +{ + if (set_count == 0) + first_set = set; + else if (first_set + set_count != set) + { + flush_descriptor_binds(sets, first_set, set_count, dynamic_offsets, num_dynamic_offsets); + first_set = set; + } + + auto &layout = pipeline_state.layout->get_resource_layout(); + if (layout.bindless_descriptor_set_mask & (1u << set)) + { + VK_ASSERT(bindless_sets[set]); + sets[set_count++] = bindless_sets[set]; + return; + } + + auto &set_layout = layout.sets[set]; + + // UBOs + for_each_bit(set_layout.uniform_buffer_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + for (unsigned i = 0; i < array_size; i++) + { + VK_ASSERT(num_dynamic_offsets < VULKAN_NUM_DYNAMIC_UBOS); + dynamic_offsets[num_dynamic_offsets++] = bindings.bindings[set][binding + i].buffer.push.offset; + } + }); + + sets[set_count++] = allocated_sets[set]; +} + +void CommandBuffer::validate_descriptor_binds(uint32_t set) +{ +#ifdef VULKAN_DEBUG + auto &layout = pipeline_state.layout->get_resource_layout(); + auto &set_layout = layout.sets[set]; + + for_each_bit(set_layout.uniform_buffer_mask, + [&](uint32_t binding) + { + unsigned array_size = set_layout.array_size[binding]; + for (unsigned i = 0; i < array_size; i++) + VK_ASSERT(bindings.bindings[set][binding + i].buffer.dynamic.buffer != VK_NULL_HANDLE); + }); + + // SSBOs + for_each_bit(set_layout.storage_buffer_mask, + [&](uint32_t binding) + { + unsigned array_size = set_layout.array_size[binding]; + for (unsigned i = 0; i < array_size; i++) + VK_ASSERT(bindings.bindings[set][binding + i].buffer.dynamic.buffer != VK_NULL_HANDLE); + }); + + // Texel buffers + for_each_bit(set_layout.sampled_texel_buffer_mask | set_layout.storage_texel_buffer_mask, + [&](uint32_t binding) + { + unsigned array_size = set_layout.array_size[binding]; + for (unsigned i = 0; i < array_size; i++) + VK_ASSERT(bindings.bindings[set][binding + i].buffer_view != VK_NULL_HANDLE); + }); + + // Sampled images + for_each_bit(set_layout.sampled_image_mask, + [&](uint32_t binding) + { + unsigned array_size = set_layout.array_size[binding]; + for (unsigned i = 0; i < array_size; i++) + { + if ((set_layout.immutable_sampler_mask & (1u << (binding + i))) == 0) + VK_ASSERT(bindings.bindings[set][binding + i].image.fp.sampler != VK_NULL_HANDLE); + VK_ASSERT(bindings.bindings[set][binding + i].image.fp.imageView != VK_NULL_HANDLE); + } + }); + + // Separate images + for_each_bit(set_layout.separate_image_mask, + [&](uint32_t binding) + { + unsigned array_size = set_layout.array_size[binding]; + for (unsigned i = 0; i < array_size; i++) + VK_ASSERT(bindings.bindings[set][binding + i].image.fp.imageView != VK_NULL_HANDLE); + }); + + // Separate samplers + for_each_bit(set_layout.sampler_mask & ~set_layout.immutable_sampler_mask, + [&](uint32_t binding) + { + unsigned array_size = set_layout.array_size[binding]; + for (unsigned i = 0; i < array_size; i++) + VK_ASSERT(bindings.bindings[set][binding + i].image.fp.sampler != VK_NULL_HANDLE); + }); + + // Storage images + for_each_bit(set_layout.storage_image_mask, + [&](uint32_t binding) + { + unsigned array_size = set_layout.array_size[binding]; + for (unsigned i = 0; i < array_size; i++) + VK_ASSERT(bindings.bindings[set][binding + i].image.fp.imageView != VK_NULL_HANDLE); + }); + + // Input attachments + for_each_bit(set_layout.input_attachment_mask, + [&](uint32_t binding) + { + unsigned array_size = set_layout.array_size[binding]; + for (unsigned i = 0; i < array_size; i++) + VK_ASSERT(bindings.bindings[set][binding + i].image.fp.imageView != VK_NULL_HANDLE); + }); +#else + (void)set; +#endif +} + +void CommandBuffer::push_descriptor_set(uint32_t set) +{ +#ifdef VULKAN_DEBUG + validate_descriptor_binds(set); +#endif + + VkDescriptorUpdateTemplate update_template = pipeline_state.layout->get_update_template(set); + VK_ASSERT(update_template); + table.vkCmdPushDescriptorSetWithTemplateKHR( + cmd, update_template, + pipeline_state.layout->get_layout(), set, bindings.bindings[set]); +} + +void CommandBuffer::flush_descriptor_set(uint32_t set, VkDescriptorSet *sets, + uint32_t &first_set, uint32_t &set_count, + uint32_t *dynamic_offsets, uint32_t &num_dynamic_offsets) +{ + if (set_count == 0) + first_set = set; + else if (first_set + set_count != set) + { + flush_descriptor_binds(sets, first_set, set_count, dynamic_offsets, num_dynamic_offsets); + first_set = set; + } + + auto &layout = pipeline_state.layout->get_resource_layout(); + if (layout.bindless_descriptor_set_mask & (1u << set)) + { + VK_ASSERT(bindless_sets[set]); + sets[set_count++] = bindless_sets[set]; + return; + } + + auto &set_layout = layout.sets[set]; + +#ifdef VULKAN_DEBUG + validate_descriptor_binds(set); +#endif + + // UBOs + for_each_bit(set_layout.uniform_buffer_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + for (unsigned i = 0; i < array_size; i++) + dynamic_offsets[num_dynamic_offsets++] = bindings.bindings[set][binding + i].buffer.push.offset; + }); + + auto vk_set = pipeline_state.layout->get_allocator(set)->request_descriptor_set(thread_index, device->frame_context_index); + + VkDescriptorUpdateTemplate update_template = pipeline_state.layout->get_update_template(set); + VK_ASSERT(update_template); + table.vkUpdateDescriptorSetWithTemplate(device->get_device(), vk_set, update_template, bindings.bindings[set]); + sets[set_count++] = vk_set; + allocated_sets[set] = vk_set; +} + +void CommandBuffer::flush_descriptor_sets() +{ + auto &layout = pipeline_state.layout->get_resource_layout(); + + uint32_t first_set = 0; + uint32_t set_count = 0; + VkDescriptorSet sets[VULKAN_NUM_DESCRIPTOR_SETS]; + uint32_t dynamic_offsets[VULKAN_NUM_DYNAMIC_UBOS]; + uint32_t num_dynamic_offsets = 0; + + dirty_sets_rebind |= dirty_sets_realloc; + uint32_t set_update_mask = layout.descriptor_set_mask & dirty_sets_rebind; + + uint32_t push_set_index = pipeline_state.layout->get_push_set_index(); + if (push_set_index != UINT32_MAX && (dirty_sets_rebind & (1u << push_set_index)) != 0) + { + push_descriptor_set(push_set_index); + set_update_mask &= ~(1u << push_set_index); + } + + for_each_bit(set_update_mask, [&](uint32_t set) { + if ((dirty_sets_realloc & (1u << set)) != 0) + flush_descriptor_set(set, sets, first_set, set_count, dynamic_offsets, num_dynamic_offsets); + else + rebind_descriptor_set(set, sets, first_set, set_count, dynamic_offsets, num_dynamic_offsets); + }); + + dirty_sets_realloc = 0; + dirty_sets_rebind = 0; + flush_descriptor_binds(sets, first_set, set_count, dynamic_offsets, num_dynamic_offsets); +} + +void CommandBuffer::draw(uint32_t vertex_count, uint32_t instance_count, uint32_t first_vertex, uint32_t first_instance) +{ + VK_ASSERT(!is_compute); + if (flush_render_state(true) != VK_NULL_HANDLE) + { + VK_ASSERT(pipeline_state.program->get_shader(ShaderStage::Vertex) != nullptr); + table.vkCmdDraw(cmd, vertex_count, instance_count, first_vertex, first_instance); + } + else + LOGE("Failed to flush render state, draw call will be dropped.\n"); +} + +void CommandBuffer::draw_indexed(uint32_t index_count, uint32_t instance_count, uint32_t first_index, + int32_t vertex_offset, uint32_t first_instance) +{ + VK_ASSERT(!is_compute); + VK_ASSERT(index_state.buffer != VK_NULL_HANDLE); + if (flush_render_state(true) != VK_NULL_HANDLE) + { + VK_ASSERT(pipeline_state.program->get_shader(ShaderStage::Vertex) != nullptr); + table.vkCmdDrawIndexed(cmd, index_count, instance_count, first_index, vertex_offset, first_instance); + } + else + LOGE("Failed to flush render state, draw call will be dropped.\n"); +} + +void CommandBuffer::draw_mesh_tasks(uint32_t tasks_x, uint32_t tasks_y, uint32_t tasks_z) +{ + VK_ASSERT(!is_compute); + + if (framebuffer_is_multiview && !get_device().get_device_features().mesh_shader_features.multiviewMeshShader) + { + LOGE("meshShader not supported in multiview, dropping draw call.\n"); + return; + } + + if (flush_render_state(true) != VK_NULL_HANDLE) + { + VK_ASSERT(pipeline_state.program->get_shader(ShaderStage::Mesh) != nullptr); + table.vkCmdDrawMeshTasksEXT(cmd, tasks_x, tasks_y, tasks_z); + } + else + LOGE("Failed to flush render state, draw call will be dropped.\n"); +} + +void CommandBuffer::draw_mesh_tasks_indirect(const Buffer &buffer, VkDeviceSize offset, + uint32_t draw_count, uint32_t stride) +{ + VK_ASSERT(!is_compute); + + if (framebuffer_is_multiview && !get_device().get_device_features().mesh_shader_features.multiviewMeshShader) + { + LOGE("meshShader not supported in multiview, dropping draw call.\n"); + return; + } + + if (flush_render_state(true) != VK_NULL_HANDLE) + { + VK_ASSERT(pipeline_state.program->get_shader(ShaderStage::Mesh) != nullptr); + table.vkCmdDrawMeshTasksIndirectEXT(cmd, buffer.get_buffer(), offset, draw_count, stride); + } + else + LOGE("Failed to flush render state, draw call will be dropped.\n"); +} + +void CommandBuffer::draw_mesh_tasks_multi_indirect(const Buffer &buffer, VkDeviceSize offset, + uint32_t draw_count, uint32_t stride, + const Buffer &count, VkDeviceSize count_offset) +{ + VK_ASSERT(!is_compute); + + if (framebuffer_is_multiview && !get_device().get_device_features().mesh_shader_features.multiviewMeshShader) + { + LOGE("meshShader not supported in multiview, dropping draw call.\n"); + return; + } + + if (flush_render_state(true) != VK_NULL_HANDLE) + { + VK_ASSERT(pipeline_state.program->get_shader(ShaderStage::Mesh) != nullptr); + table.vkCmdDrawMeshTasksIndirectCountEXT(cmd, buffer.get_buffer(), offset, + count.get_buffer(), count_offset, + draw_count, stride); + } + else + LOGE("Failed to flush render state, draw call will be dropped.\n"); +} + +void CommandBuffer::draw_indirect(const Vulkan::Buffer &buffer, + VkDeviceSize offset, uint32_t draw_count, uint32_t stride) +{ + VK_ASSERT(!is_compute); + if (flush_render_state(true) != VK_NULL_HANDLE) + { + VK_ASSERT(pipeline_state.program->get_shader(ShaderStage::Vertex) != nullptr); + table.vkCmdDrawIndirect(cmd, buffer.get_buffer(), offset, draw_count, stride); + } + else + LOGE("Failed to flush render state, draw call will be dropped.\n"); +} + +void CommandBuffer::draw_multi_indirect(const Buffer &buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride, + const Buffer &count, VkDeviceSize count_offset) +{ + VK_ASSERT(!is_compute); + if (!get_device().get_device_features().vk12_features.drawIndirectCount) + { + LOGE("VK_KHR_draw_indirect_count not supported, dropping draw call.\n"); + return; + } + + if (flush_render_state(true) != VK_NULL_HANDLE) + { + VK_ASSERT(pipeline_state.program->get_shader(ShaderStage::Vertex) != nullptr); + table.vkCmdDrawIndirectCount(cmd, buffer.get_buffer(), offset, + count.get_buffer(), count_offset, + draw_count, stride); + } + else + LOGE("Failed to flush render state, draw call will be dropped.\n"); +} + +void CommandBuffer::draw_indexed_multi_indirect(const Buffer &buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride, + const Buffer &count, VkDeviceSize count_offset) +{ + VK_ASSERT(!is_compute); + if (!get_device().get_device_features().vk12_features.drawIndirectCount) + { + LOGE("VK_KHR_draw_indirect_count not supported, dropping draw call.\n"); + return; + } + + if (flush_render_state(true) != VK_NULL_HANDLE) + { + VK_ASSERT(pipeline_state.program->get_shader(ShaderStage::Vertex) != nullptr); + table.vkCmdDrawIndexedIndirectCount(cmd, buffer.get_buffer(), offset, + count.get_buffer(), count_offset, + draw_count, stride); + } + else + LOGE("Failed to flush render state, draw call will be dropped.\n"); +} + +void CommandBuffer::draw_indexed_indirect(const Vulkan::Buffer &buffer, + VkDeviceSize offset, uint32_t draw_count, uint32_t stride) +{ + VK_ASSERT(!is_compute); + if (flush_render_state(true) != VK_NULL_HANDLE) + { + VK_ASSERT(pipeline_state.program->get_shader(ShaderStage::Vertex) != nullptr); + table.vkCmdDrawIndexedIndirect(cmd, buffer.get_buffer(), offset, draw_count, stride); + } + else + LOGE("Failed to flush render state, draw call will be dropped.\n"); +} + +void CommandBuffer::dispatch_indirect(const Buffer &buffer, VkDeviceSize offset) +{ + VK_ASSERT(is_compute); + if (flush_compute_state(true) != VK_NULL_HANDLE) + { + table.vkCmdDispatchIndirect(cmd, buffer.get_buffer(), offset); + } + else + LOGE("Failed to flush render state, dispatch will be dropped.\n"); +} + +void CommandBuffer::execute_indirect_commands( + const IndirectLayout *indirect_layout, uint32_t sequences, + const Vulkan::Buffer &indirect, VkDeviceSize offset, + const Vulkan::Buffer *count, size_t count_offset) +{ + VK_ASSERT((is_compute && indirect_layout->get_bind_point() == VK_PIPELINE_BIND_POINT_COMPUTE) || + (!is_compute && indirect_layout->get_bind_point() == VK_PIPELINE_BIND_POINT_GRAPHICS)); + VK_ASSERT(device->get_device_features().device_generated_commands_features.deviceGeneratedCommands); + VK_ASSERT(!is_compute || device->get_device_features().device_generated_commands_compute_features.deviceGeneratedCompute); + + if (is_compute) + { + if (flush_compute_state(true) == VK_NULL_HANDLE) + { + LOGE("Failed to flush compute state, dispatch will be dropped.\n"); + return; + } + } + else + { + if (flush_render_state(true) == VK_NULL_HANDLE) + { + LOGE("Failed to flush render state, draw call will be dropped.\n"); + return; + } + } + + // TODO: Linearly allocate these, but big indirect commands like these + // should only be done once per render pass anyways. + VkGeneratedCommandsMemoryRequirementsInfoNV generated = + { VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV }; + VkMemoryRequirements2 reqs = { VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 }; + + generated.pipeline = current_pipeline.pipeline; + generated.pipelineBindPoint = indirect_layout->get_bind_point(); + generated.indirectCommandsLayout = indirect_layout->get_layout(); + generated.maxSequencesCount = sequences; + + table.vkGetGeneratedCommandsMemoryRequirementsNV(device->get_device(), &generated, &reqs); + + BufferCreateInfo bufinfo = {}; + bufinfo.size = reqs.memoryRequirements.size; + bufinfo.domain = BufferDomain::Device; + bufinfo.usage = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT; + bufinfo.allocation_requirements = reqs.memoryRequirements; + auto preprocess_buffer = device->create_buffer(bufinfo); + + VkIndirectCommandsStreamNV stream = {}; + stream.buffer = indirect.get_buffer(); + stream.offset = offset; + + VkGeneratedCommandsInfoNV exec_info = { VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV }; + exec_info.indirectCommandsLayout = indirect_layout->get_layout(); + exec_info.pipelineBindPoint = indirect_layout->get_bind_point(); + exec_info.streamCount = 1; + exec_info.pStreams = &stream; + exec_info.preprocessSize = reqs.memoryRequirements.size; + exec_info.preprocessBuffer = preprocess_buffer->get_buffer(); + exec_info.sequencesCount = sequences; + exec_info.pipeline = current_pipeline.pipeline; + if (count) + { + exec_info.sequencesCountBuffer = count->get_buffer(); + exec_info.sequencesCountOffset = count_offset; + } + table.vkCmdExecuteGeneratedCommandsNV(cmd, VK_FALSE, &exec_info); + + // Everything is nuked after execute generated commands. + set_dirty(COMMAND_BUFFER_DYNAMIC_BITS | + COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT | + COMMAND_BUFFER_DIRTY_PIPELINE_BIT); +} + +void CommandBuffer::dispatch(uint32_t groups_x, uint32_t groups_y, uint32_t groups_z) +{ + VK_ASSERT(is_compute); + if (flush_compute_state(true) != VK_NULL_HANDLE) + table.vkCmdDispatch(cmd, groups_x, groups_y, groups_z); + else + LOGE("Failed to flush render state, dispatch will be dropped.\n"); +} + +void CommandBuffer::clear_render_state() +{ + // Preserve spec constant mask. + auto &state = pipeline_state.static_state.state; + memset(&state, 0, sizeof(state)); +} + +void CommandBuffer::set_opaque_state() +{ + clear_render_state(); + auto &state = pipeline_state.static_state.state; + state.front_face = VK_FRONT_FACE_COUNTER_CLOCKWISE; + state.cull_mode = VK_CULL_MODE_BACK_BIT; + state.blend_enable = false; + state.depth_test = true; + state.depth_compare = VK_COMPARE_OP_LESS_OR_EQUAL; + state.depth_write = true; + state.depth_bias_enable = false; + state.primitive_restart = false; + state.stencil_test = false; + state.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST; + state.write_mask = ~0u; + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT); +} + +void CommandBuffer::set_quad_state() +{ + clear_render_state(); + auto &state = pipeline_state.static_state.state; + state.front_face = VK_FRONT_FACE_COUNTER_CLOCKWISE; + state.cull_mode = VK_CULL_MODE_NONE; + state.blend_enable = false; + state.depth_test = false; + state.depth_write = false; + state.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP; + state.write_mask = ~0u; + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT); +} + +void CommandBuffer::set_opaque_sprite_state() +{ + clear_render_state(); + auto &state = pipeline_state.static_state.state; + state.front_face = VK_FRONT_FACE_COUNTER_CLOCKWISE; + state.cull_mode = VK_CULL_MODE_NONE; + state.blend_enable = false; + state.depth_compare = VK_COMPARE_OP_LESS; + state.depth_test = true; + state.depth_write = true; + state.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP; + state.write_mask = ~0u; + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT); +} + +void CommandBuffer::set_transparent_sprite_state() +{ + clear_render_state(); + auto &state = pipeline_state.static_state.state; + state.front_face = VK_FRONT_FACE_COUNTER_CLOCKWISE; + state.cull_mode = VK_CULL_MODE_NONE; + state.blend_enable = true; + state.depth_test = true; + state.depth_compare = VK_COMPARE_OP_LESS; + state.depth_write = false; + state.topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP; + state.write_mask = ~0u; + + // The alpha layer should start at 1 (fully transparent). + // As layers are blended in, the transparency is multiplied with other transparencies (1 - alpha). + set_blend_factors(VK_BLEND_FACTOR_SRC_ALPHA, VK_BLEND_FACTOR_ZERO, + VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA); + set_blend_op(VK_BLEND_OP_ADD); + + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT); +} + +void CommandBuffer::restore_state(const CommandBufferSavedState &state) +{ + auto &static_state = pipeline_state.static_state; + auto &potential_static_state = pipeline_state.potential_static_state; + + for (unsigned i = 0; i < VULKAN_NUM_DESCRIPTOR_SETS; i++) + { + if (state.flags & (COMMAND_BUFFER_SAVED_BINDINGS_0_BIT << i)) + { + if (memcmp(state.bindings.bindings[i], bindings.bindings[i], sizeof(bindings.bindings[i]))) + { + memcpy(bindings.bindings[i], state.bindings.bindings[i], sizeof(bindings.bindings[i])); + memcpy(bindings.cookies[i], state.bindings.cookies[i], sizeof(bindings.cookies[i])); + memcpy(bindings.secondary_cookies[i], state.bindings.secondary_cookies[i], sizeof(bindings.secondary_cookies[i])); + dirty_sets_realloc |= 1u << i; + } + } + } + + if (state.flags & COMMAND_BUFFER_SAVED_PUSH_CONSTANT_BIT) + { + if (memcmp(state.bindings.push_constant_data, bindings.push_constant_data, sizeof(bindings.push_constant_data)) != 0) + { + memcpy(bindings.push_constant_data, state.bindings.push_constant_data, sizeof(bindings.push_constant_data)); + set_dirty(COMMAND_BUFFER_DIRTY_PUSH_CONSTANTS_BIT); + } + } + + if ((state.flags & COMMAND_BUFFER_SAVED_VIEWPORT_BIT) && memcmp(&state.viewport, &viewport, sizeof(viewport)) != 0) + { + viewport = state.viewport; + set_dirty(COMMAND_BUFFER_DIRTY_VIEWPORT_BIT); + } + + if ((state.flags & COMMAND_BUFFER_SAVED_SCISSOR_BIT) && memcmp(&state.scissor, &scissor, sizeof(scissor)) != 0) + { + scissor = state.scissor; + set_dirty(COMMAND_BUFFER_DIRTY_SCISSOR_BIT); + } + + if (state.flags & COMMAND_BUFFER_SAVED_RENDER_STATE_BIT) + { + if (memcmp(&state.static_state, &static_state, sizeof(static_state)) != 0) + { + memcpy(&static_state, &state.static_state, sizeof(static_state)); + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT); + } + + if (memcmp(&state.potential_static_state, &potential_static_state, sizeof(potential_static_state)) != 0) + { + memcpy(&potential_static_state, &state.potential_static_state, sizeof(potential_static_state)); + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT); + } + + if (memcmp(&state.dynamic_state, &dynamic_state, sizeof(dynamic_state)) != 0) + { + memcpy(&dynamic_state, &state.dynamic_state, sizeof(dynamic_state)); + set_dirty(COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT | COMMAND_BUFFER_DIRTY_DEPTH_BIAS_BIT); + } + } +} + +void CommandBuffer::save_state(CommandBufferSaveStateFlags flags, CommandBufferSavedState &state) +{ + for (unsigned i = 0; i < VULKAN_NUM_DESCRIPTOR_SETS; i++) + { + if (flags & (COMMAND_BUFFER_SAVED_BINDINGS_0_BIT << i)) + { + memcpy(state.bindings.bindings[i], bindings.bindings[i], sizeof(bindings.bindings[i])); + memcpy(state.bindings.cookies[i], bindings.cookies[i], sizeof(bindings.cookies[i])); + memcpy(state.bindings.secondary_cookies[i], bindings.secondary_cookies[i], + sizeof(bindings.secondary_cookies[i])); + } + } + + if (flags & COMMAND_BUFFER_SAVED_VIEWPORT_BIT) + state.viewport = viewport; + if (flags & COMMAND_BUFFER_SAVED_SCISSOR_BIT) + state.scissor = scissor; + if (flags & COMMAND_BUFFER_SAVED_RENDER_STATE_BIT) + { + memcpy(&state.static_state, &pipeline_state.static_state, sizeof(pipeline_state.static_state)); + state.potential_static_state = pipeline_state.potential_static_state; + state.dynamic_state = dynamic_state; + } + + if (flags & COMMAND_BUFFER_SAVED_PUSH_CONSTANT_BIT) + memcpy(state.bindings.push_constant_data, bindings.push_constant_data, sizeof(bindings.push_constant_data)); + + state.flags = flags; +} + +QueryPoolHandle CommandBuffer::write_timestamp(VkPipelineStageFlags2 stage) +{ + return device->write_timestamp(cmd, stage); +} + +void CommandBuffer::end_threaded_recording() +{ + VK_ASSERT(!debug_channel_buffer); + + if (is_ended) + return; + + is_ended = true; + + // We must end a command buffer on the same thread index we started it on. + VK_ASSERT(get_current_thread_index() == thread_index); + + if (has_profiling()) + { + auto &query_pool = device->get_performance_query_pool(device->get_physical_queue_type(type)); + query_pool.end_command_buffer(cmd); + } + + if (table.vkEndCommandBuffer(cmd) != VK_SUCCESS) + LOGE("Failed to end command buffer.\n"); +} + +void CommandBuffer::end() +{ + end_threaded_recording(); + + if (vbo_block.is_mapped()) + device->request_vertex_block_nolock(vbo_block, 0); + if (ibo_block.is_mapped()) + device->request_index_block_nolock(ibo_block, 0); + if (ubo_block.is_mapped()) + device->request_uniform_block_nolock(ubo_block, 0); + if (staging_block.is_mapped()) + device->request_staging_block_nolock(staging_block, 0); +} + +void CommandBuffer::insert_label(const char *name, const float *color) +{ + if (!device->ext.supports_debug_utils || !vkCmdInsertDebugUtilsLabelEXT) + return; + + VkDebugUtilsLabelEXT info = { VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT }; + if (color) + { + for (unsigned i = 0; i < 4; i++) + info.color[i] = color[i]; + } + else + { + for (unsigned i = 0; i < 4; i++) + info.color[i] = 1.0f; + } + + info.pLabelName = name; + vkCmdInsertDebugUtilsLabelEXT(cmd, &info); +} + +void CommandBuffer::begin_region(const char *name, const float *color) +{ + if (!device->ext.supports_debug_utils || !vkCmdBeginDebugUtilsLabelEXT) + return; + + VkDebugUtilsLabelEXT info = { VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT }; + if (color) + { + for (unsigned i = 0; i < 4; i++) + info.color[i] = color[i]; + } + else + { + for (unsigned i = 0; i < 4; i++) + info.color[i] = 1.0f; + } + + info.pLabelName = name; + vkCmdBeginDebugUtilsLabelEXT(cmd, &info); +} + +void CommandBuffer::end_region() +{ + if (device->ext.supports_debug_utils && vkCmdEndDebugUtilsLabelEXT) + vkCmdEndDebugUtilsLabelEXT(cmd); +} + +void CommandBuffer::enable_profiling() +{ + profiling = true; +} + +bool CommandBuffer::has_profiling() const +{ + return profiling; +} + +void CommandBuffer::begin_debug_channel(DebugChannelInterface *iface, const char *tag, VkDeviceSize size) +{ + if (debug_channel_buffer) + end_debug_channel(); + + debug_channel_tag = tag; + debug_channel_interface = iface; + + BufferCreateInfo info = {}; + info.size = size; + info.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; + info.domain = BufferDomain::Device; + debug_channel_buffer = device->create_buffer(info); + + fill_buffer(*debug_channel_buffer, 0); + buffer_barrier(*debug_channel_buffer, + VK_PIPELINE_STAGE_2_CLEAR_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, + VK_ACCESS_MEMORY_WRITE_BIT | VK_ACCESS_MEMORY_READ_BIT); + + set_storage_buffer(VULKAN_NUM_DESCRIPTOR_SETS - 1, VULKAN_NUM_BINDINGS - 1, *debug_channel_buffer); +} + +void CommandBuffer::end_debug_channel() +{ + if (!debug_channel_buffer) + return; + + BufferCreateInfo info = {}; + info.size = debug_channel_buffer->get_create_info().size; + info.usage = VK_BUFFER_USAGE_TRANSFER_DST_BIT; + info.domain = BufferDomain::CachedHost; + auto debug_channel_readback = device->create_buffer(info); + barrier(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_ACCESS_SHADER_WRITE_BIT, + VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_READ_BIT); + copy_buffer(*debug_channel_readback, *debug_channel_buffer); + barrier(VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_HOST_BIT, VK_ACCESS_HOST_READ_BIT); + + debug_channel_buffer.reset(); + device->add_debug_channel_buffer(debug_channel_interface, std::move(debug_channel_tag), std::move(debug_channel_readback)); + debug_channel_readback = {}; + debug_channel_tag = {}; + debug_channel_interface = nullptr; +} + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES +void CommandBufferUtil::set_quad_vertex_state(CommandBuffer &cmd) +{ +#ifdef __APPLE__ + // For *some* reason, Metal does not support tightly packed R8G8 ... + // Have to use RGBA8 <_<. + auto *data = static_cast(cmd.allocate_vertex_data(0, 16, 4)); + *data++ = -127; + *data++ = +127; + *data++ = 0; + *data++ = +127; + *data++ = +127; + *data++ = +127; + *data++ = 0; + *data++ = +127; + *data++ = -127; + *data++ = -127; + *data++ = 0; + *data++ = +127; + *data++ = +127; + *data++ = -127; + *data++ = 0; + *data++ = +127; + + cmd.set_vertex_attrib(0, 0, VK_FORMAT_R8G8B8A8_SNORM, 0); +#else + auto *data = static_cast(cmd.allocate_vertex_data(0, 8, 2)); + *data++ = -127; + *data++ = +127; + *data++ = +127; + *data++ = +127; + *data++ = -127; + *data++ = -127; + *data++ = +127; + *data++ = -127; + + cmd.set_vertex_attrib(0, 0, VK_FORMAT_R8G8_SNORM, 0); +#endif +} + +void CommandBufferUtil::set_fullscreen_quad_vertex_state(CommandBuffer &cmd) +{ + auto *data = static_cast(cmd.allocate_vertex_data(0, 6 * sizeof(float), 2 * sizeof(float))); + *data++ = -1.0f; + *data++ = -3.0f; + *data++ = -1.0f; + *data++ = +1.0f; + *data++ = +3.0f; + *data++ = +1.0f; + + cmd.set_vertex_attrib(0, 0, VK_FORMAT_R32G32_SFLOAT, 0); +} + +void CommandBufferUtil::draw_fullscreen_quad(CommandBuffer &cmd, unsigned instances) +{ + cmd.set_primitive_topology(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST); + cmd.draw(3, instances); +} + +void CommandBufferUtil::draw_quad(CommandBuffer &cmd, unsigned instances) +{ + cmd.set_primitive_topology(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP); + cmd.draw(4, instances); +} + +void CommandBufferUtil::draw_fullscreen_quad(CommandBuffer &cmd, const std::string &vertex, const std::string &fragment, + const std::vector> &defines) +{ + draw_fullscreen_quad_depth(cmd, vertex, fragment, false, false, VK_COMPARE_OP_ALWAYS, defines); +} + +void CommandBufferUtil::draw_fullscreen_quad_depth(CommandBuffer &cmd, const std::string &vertex, + const std::string &fragment, + bool depth_test, bool depth_write, VkCompareOp depth_compare, + const std::vector> &defines) +{ + setup_fullscreen_quad(cmd, vertex, fragment, defines, depth_test, depth_write, depth_compare); + draw_fullscreen_quad(cmd); +} + +void CommandBufferUtil::setup_fullscreen_quad(Vulkan::CommandBuffer &cmd, const std::string &vertex, + const std::string &fragment, + const std::vector> &defines, bool depth_test, + bool depth_write, VkCompareOp depth_compare) +{ + cmd.set_program(vertex, fragment, defines); + cmd.set_quad_state(); + set_fullscreen_quad_vertex_state(cmd); + cmd.set_depth_test(depth_test, depth_write); + cmd.set_depth_compare(depth_compare); + cmd.set_primitive_topology(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST); +} +#endif + +void CommandBufferDeleter::operator()(Vulkan::CommandBuffer *cmd) +{ + cmd->device->handle_pool.command_buffers.free(cmd); +} +} diff --git a/vulkan/command_buffer.hpp b/vulkan/command_buffer.hpp new file mode 100644 index 00000000..cf84f358 --- /dev/null +++ b/vulkan/command_buffer.hpp @@ -0,0 +1,958 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "buffer.hpp" +#include "buffer_pool.hpp" +#include "vulkan_headers.hpp" +#include "image.hpp" +#include "pipeline_event.hpp" +#include "query_pool.hpp" +#include "render_pass.hpp" +#include "sampler.hpp" +#include "shader.hpp" +#include "vulkan_common.hpp" +#include + +namespace Vulkan +{ +class DebugChannelInterface; +class IndirectLayout; + +static inline VkPipelineStageFlags convert_vk_stage2(VkPipelineStageFlags2 stages) +{ + constexpr VkPipelineStageFlags2 transfer_mask = + VK_PIPELINE_STAGE_2_COPY_BIT | + VK_PIPELINE_STAGE_2_BLIT_BIT | + VK_PIPELINE_STAGE_2_RESOLVE_BIT | + VK_PIPELINE_STAGE_2_CLEAR_BIT | + VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR; + + constexpr VkPipelineStageFlags2 preraster_mask = + VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT; + + if ((stages & transfer_mask) != 0) + { + stages |= VK_PIPELINE_STAGE_TRANSFER_BIT; + stages &= ~transfer_mask; + } + + if ((stages & preraster_mask) != 0) + { + // TODO: Augment if we add mesh shader support eventually. + stages |= VK_PIPELINE_STAGE_VERTEX_SHADER_BIT; + stages &= ~preraster_mask; + } + + return VkPipelineStageFlags(stages); +} + +static inline VkPipelineStageFlags convert_vk_src_stage2(VkPipelineStageFlags2 stages) +{ + stages = convert_vk_stage2(stages); + if (stages == VK_PIPELINE_STAGE_NONE) + stages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; + return VkPipelineStageFlags(stages); +} + +static inline VkPipelineStageFlags convert_vk_dst_stage2(VkPipelineStageFlags2 stages) +{ + stages = convert_vk_stage2(stages); + if (stages == VK_PIPELINE_STAGE_NONE) + stages = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; + return VkPipelineStageFlags(stages); +} + +static inline VkAccessFlags convert_vk_access_flags2(VkAccessFlags2 access) +{ + constexpr VkAccessFlags2 sampled_mask = + VK_ACCESS_2_SHADER_SAMPLED_READ_BIT | + VK_ACCESS_2_SHADER_STORAGE_READ_BIT | + VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR; + + constexpr VkAccessFlags2 storage_mask = + VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT; + + if ((access & sampled_mask) != 0) + { + access |= VK_ACCESS_SHADER_READ_BIT; + access &= ~sampled_mask; + } + + if ((access & storage_mask) != 0) + { + access |= VK_ACCESS_SHADER_WRITE_BIT; + access &= ~storage_mask; + } + + return VkAccessFlags(access); +} + +enum CommandBufferDirtyBits +{ + COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT = 1 << 0, + COMMAND_BUFFER_DIRTY_PIPELINE_BIT = 1 << 1, + + COMMAND_BUFFER_DIRTY_VIEWPORT_BIT = 1 << 2, + COMMAND_BUFFER_DIRTY_SCISSOR_BIT = 1 << 3, + COMMAND_BUFFER_DIRTY_DEPTH_BIAS_BIT = 1 << 4, + COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT = 1 << 5, + + COMMAND_BUFFER_DIRTY_STATIC_VERTEX_BIT = 1 << 6, + + COMMAND_BUFFER_DIRTY_PUSH_CONSTANTS_BIT = 1 << 7, + + COMMAND_BUFFER_DYNAMIC_BITS = COMMAND_BUFFER_DIRTY_VIEWPORT_BIT | COMMAND_BUFFER_DIRTY_SCISSOR_BIT | + COMMAND_BUFFER_DIRTY_DEPTH_BIAS_BIT | + COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT +}; +using CommandBufferDirtyFlags = uint32_t; + +#define COMPARE_OP_BITS 3 +#define STENCIL_OP_BITS 3 +#define BLEND_FACTOR_BITS 5 +#define BLEND_OP_BITS 3 +#define CULL_MODE_BITS 2 +#define FRONT_FACE_BITS 1 +#define TOPOLOGY_BITS 4 +union PipelineState { + struct + { + // Word 0, tightly packed. + uint32_t depth_write : 1; + uint32_t depth_test : 1; + uint32_t blend_enable : 1; + uint32_t cull_mode : CULL_MODE_BITS; + uint32_t front_face : FRONT_FACE_BITS; + uint32_t depth_compare : COMPARE_OP_BITS; + uint32_t depth_bias_enable : 1; + uint32_t stencil_test : 1; + uint32_t stencil_front_fail : STENCIL_OP_BITS; + uint32_t stencil_front_pass : STENCIL_OP_BITS; + uint32_t stencil_front_depth_fail : STENCIL_OP_BITS; + uint32_t stencil_front_compare_op : COMPARE_OP_BITS; + uint32_t stencil_back_fail : STENCIL_OP_BITS; + uint32_t stencil_back_pass : STENCIL_OP_BITS; + uint32_t stencil_back_depth_fail : STENCIL_OP_BITS; + + // Word 1, tightly packed. + uint32_t stencil_back_compare_op : COMPARE_OP_BITS; + uint32_t alpha_to_coverage : 1; + uint32_t alpha_to_one : 1; + uint32_t sample_shading : 1; + uint32_t src_color_blend : BLEND_FACTOR_BITS; + uint32_t dst_color_blend : BLEND_FACTOR_BITS; + uint32_t color_blend_op : BLEND_OP_BITS; + uint32_t src_alpha_blend : BLEND_FACTOR_BITS; + uint32_t dst_alpha_blend : BLEND_FACTOR_BITS; + uint32_t alpha_blend_op : BLEND_OP_BITS; + + // Word 2, tightly packed. + uint32_t primitive_restart : 1; + uint32_t topology : TOPOLOGY_BITS; + uint32_t wireframe : 1; + uint32_t subgroup_control_size : 1; + uint32_t subgroup_full_group : 1; + uint32_t subgroup_minimum_size_log2 : 3; + uint32_t subgroup_maximum_size_log2 : 3; + uint32_t subgroup_control_size_task : 1; + uint32_t subgroup_full_group_task : 1; + uint32_t subgroup_minimum_size_log2_task : 3; + uint32_t subgroup_maximum_size_log2_task : 3; + uint32_t conservative_raster : 1; + uint32_t padding : 9; + + // Word 3 + uint32_t write_mask; + } state; + uint32_t words[4]; +}; + +struct PotentialState +{ + float blend_constants[4]; + uint32_t spec_constants[VULKAN_NUM_TOTAL_SPEC_CONSTANTS]; + uint8_t spec_constant_mask; + uint8_t internal_spec_constant_mask; +}; + +struct DynamicState +{ + float depth_bias_constant = 0.0f; + float depth_bias_slope = 0.0f; + uint8_t front_compare_mask = 0; + uint8_t front_write_mask = 0; + uint8_t front_reference = 0; + uint8_t back_compare_mask = 0; + uint8_t back_write_mask = 0; + uint8_t back_reference = 0; +}; + +struct VertexAttribState +{ + uint32_t binding; + VkFormat format; + uint32_t offset; +}; + +struct IndexState +{ + VkBuffer buffer; + VkDeviceSize offset; + VkIndexType index_type; +}; + +struct VertexBindingState +{ + VkBuffer buffers[VULKAN_NUM_VERTEX_BUFFERS]; + VkDeviceSize offsets[VULKAN_NUM_VERTEX_BUFFERS]; +}; + +enum CommandBufferSavedStateBits +{ + COMMAND_BUFFER_SAVED_BINDINGS_0_BIT = 1u << 0, + COMMAND_BUFFER_SAVED_BINDINGS_1_BIT = 1u << 1, + COMMAND_BUFFER_SAVED_BINDINGS_2_BIT = 1u << 2, + COMMAND_BUFFER_SAVED_BINDINGS_3_BIT = 1u << 3, + COMMAND_BUFFER_SAVED_VIEWPORT_BIT = 1u << 4, + COMMAND_BUFFER_SAVED_SCISSOR_BIT = 1u << 5, + COMMAND_BUFFER_SAVED_RENDER_STATE_BIT = 1u << 6, + COMMAND_BUFFER_SAVED_PUSH_CONSTANT_BIT = 1u << 7 +}; +static_assert(VULKAN_NUM_DESCRIPTOR_SETS == 4, "Number of descriptor sets != 4."); +using CommandBufferSaveStateFlags = uint32_t; + +struct CommandBufferSavedState +{ + CommandBufferSaveStateFlags flags; + ResourceBindings bindings; + VkViewport viewport; + VkRect2D scissor; + + PipelineState static_state; + PotentialState potential_static_state; + DynamicState dynamic_state; +}; + +struct DeferredPipelineCompile +{ + Program *program; + const PipelineLayout *layout; + std::vector program_group; + + const RenderPass *compatible_render_pass; + PipelineState static_state; + PotentialState potential_static_state; + VertexAttribState attribs[VULKAN_NUM_VERTEX_ATTRIBS]; + VkDeviceSize strides[VULKAN_NUM_VERTEX_BUFFERS]; + VkVertexInputRate input_rates[VULKAN_NUM_VERTEX_BUFFERS]; + + unsigned subpass_index; + Util::Hash hash; + VkPipelineCache cache; + uint32_t subgroup_size_tag; +}; + +class CommandBuffer; +struct CommandBufferDeleter +{ + void operator()(CommandBuffer *cmd); +}; + +class Device; +class CommandBuffer : public Util::IntrusivePtrEnabled +{ +public: + friend struct CommandBufferDeleter; + enum class Type + { + Generic = QUEUE_INDEX_GRAPHICS, + AsyncCompute = QUEUE_INDEX_COMPUTE, + AsyncTransfer = QUEUE_INDEX_TRANSFER, + VideoDecode = QUEUE_INDEX_VIDEO_DECODE, + VideoEncode = QUEUE_INDEX_VIDEO_ENCODE, + Count + }; + + ~CommandBuffer(); + VkCommandBuffer get_command_buffer() const + { + return cmd; + } + + void begin_region(const char *name, const float *color = nullptr); + void insert_label(const char *name, const float *color = nullptr); + void end_region(); + + Device &get_device() + { + return *device; + } + + VkPipelineStageFlags2 swapchain_touched_in_stages() const + { + return uses_swapchain_in_stages; + } + + // Only used when using swapchain in non-obvious ways, like compute or transfer. + void swapchain_touch_in_stages(VkPipelineStageFlags2 stages) + { + uses_swapchain_in_stages |= stages; + } + + void set_thread_index(unsigned index_) + { + thread_index = index_; + } + + unsigned get_thread_index() const + { + return thread_index; + } + + void set_is_secondary() + { + is_secondary = true; + } + + bool get_is_secondary() const + { + return is_secondary; + } + + void clear_image(const Image &image, const VkClearValue &value); + void clear_image(const Image &image, const VkClearValue &value, VkImageAspectFlags aspect); + void clear_quad(unsigned attachment, const VkClearRect &rect, const VkClearValue &value, + VkImageAspectFlags = VK_IMAGE_ASPECT_COLOR_BIT); + void clear_quad(const VkClearRect &rect, const VkClearAttachment *attachments, unsigned num_attachments); + + void fill_buffer(const Buffer &dst, uint32_t value); + void fill_buffer(const Buffer &dst, uint32_t value, VkDeviceSize offset, VkDeviceSize size); + void copy_buffer(const Buffer &dst, VkDeviceSize dst_offset, const Buffer &src, VkDeviceSize src_offset, + VkDeviceSize size); + void copy_buffer(const Buffer &dst, const Buffer &src); + void copy_buffer(const Buffer &dst, const Buffer &src, const VkBufferCopy *copies, size_t count); + void copy_image(const Image &dst, const Image &src); + void copy_image(const Image &dst, const Image &src, + const VkOffset3D &dst_offset, const VkOffset3D &src_offset, + const VkExtent3D &extent, + const VkImageSubresourceLayers &dst_subresource, + const VkImageSubresourceLayers &src_subresource); + + void copy_buffer_to_image(const Image &image, const Buffer &buffer, VkDeviceSize buffer_offset, + const VkOffset3D &offset, const VkExtent3D &extent, unsigned row_length, + unsigned slice_height, const VkImageSubresourceLayers &subresrouce); + void copy_buffer_to_image(const Image &image, const Buffer &buffer, unsigned num_blits, const VkBufferImageCopy *blits); + + void copy_image_to_buffer(const Buffer &buffer, const Image &image, unsigned num_blits, const VkBufferImageCopy *blits); + void copy_image_to_buffer(const Buffer &dst, const Image &src, VkDeviceSize buffer_offset, const VkOffset3D &offset, + const VkExtent3D &extent, unsigned row_length, unsigned slice_height, + const VkImageSubresourceLayers &subresrouce); + + void full_barrier(); + void pixel_barrier(); + + // Simplified global memory barrier. + void barrier(VkPipelineStageFlags2 src_stage, VkAccessFlags2 src_access, + VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst_access); + + PipelineEvent signal_event(const VkDependencyInfo &dep); + void wait_events(uint32_t num_events, const PipelineEvent *events, const VkDependencyInfo *deps); + + // Full expressive barrier. + void barrier(const VkDependencyInfo &dep); + + void buffer_barrier(const Buffer &buffer, + VkPipelineStageFlags2 src_stage, VkAccessFlags2 src_access, + VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst_access); + + void image_barrier(const Image &image, + VkImageLayout old_layout, VkImageLayout new_layout, + VkPipelineStageFlags2 src_stage, VkAccessFlags2 src_access, + VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst_access); + + void buffer_barriers(uint32_t buffer_barriers, const VkBufferMemoryBarrier2 *buffers); + void image_barriers(uint32_t image_barriers, const VkImageMemoryBarrier2 *images); + + void release_buffer_barrier(const Buffer &buffer, VkPipelineStageFlags2 src_stage, VkAccessFlags2 src_access, + uint32_t dst_queue_family = VK_QUEUE_FAMILY_EXTERNAL); + void acquire_buffer_barrier(const Buffer &buffer, VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst_access, + uint32_t src_queue_family = VK_QUEUE_FAMILY_EXTERNAL); + void release_image_barrier(const Image &image, + VkImageLayout old_layout, VkImageLayout new_layout, + VkPipelineStageFlags2 src_stage, VkAccessFlags2 src_access, + uint32_t dst_queue_family = VK_QUEUE_FAMILY_EXTERNAL); + void acquire_image_barrier(const Image &image, VkImageLayout old_layout, VkImageLayout new_layout, + VkPipelineStageFlags2 dst_stage, VkAccessFlags2 dst_access, + uint32_t src_queue_family = VK_QUEUE_FAMILY_EXTERNAL); + + void blit_image(const Image &dst, + const Image &src, + const VkOffset3D &dst_offset0, const VkOffset3D &dst_extent, + const VkOffset3D &src_offset0, const VkOffset3D &src_extent, unsigned dst_level, unsigned src_level, + unsigned dst_base_layer = 0, uint32_t src_base_layer = 0, unsigned num_layers = 1, + VkFilter filter = VK_FILTER_LINEAR); + + // Prepares an image to have its mipmap generated. + // Puts the top-level into TRANSFER_SRC_OPTIMAL, and all other levels are invalidated with an UNDEFINED -> TRANSFER_DST_OPTIMAL. + void barrier_prepare_generate_mipmap(const Image &image, VkImageLayout base_level_layout, + VkPipelineStageFlags2 src_stage, VkAccessFlags2 src_access, + bool need_top_level_barrier = true); + + // The image must have been transitioned with barrier_prepare_generate_mipmap before calling this function. + // After calling this function, the image will be entirely in TRANSFER_SRC_OPTIMAL layout. + // Wait for TRANSFER stage to drain before transitioning away from TRANSFER_SRC_OPTIMAL. + void generate_mipmap(const Image &image); + + void begin_render_pass(const RenderPassInfo &info, VkSubpassContents contents = VK_SUBPASS_CONTENTS_INLINE); + void next_subpass(VkSubpassContents contents = VK_SUBPASS_CONTENTS_INLINE); + void end_render_pass(); + void submit_secondary(Util::IntrusivePtr secondary); + inline unsigned get_current_subpass() const + { + return pipeline_state.subpass_index; + } + Util::IntrusivePtr request_secondary_command_buffer(unsigned thread_index, unsigned subpass); + static Util::IntrusivePtr request_secondary_command_buffer(Device &device, + const RenderPassInfo &rp, unsigned thread_index, unsigned subpass); + + void set_program(Program *program); + void set_program_group(Program * const *programs, unsigned num_programs, const PipelineLayout *layout); + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES + // Convenience functions for one-off shader binds. + void set_program(const std::string &task, const std::string &mesh, const std::string &fragment, + const std::vector> &defines = {}); + void set_program(const std::string &vertex, const std::string &fragment, + const std::vector> &defines = {}); + void set_program(const std::string &compute, + const std::vector> &defines = {}); +#endif + + void set_buffer_view(unsigned set, unsigned binding, const BufferView &view); + void set_storage_buffer_view(unsigned set, unsigned binding, const BufferView &view); + void set_input_attachments(unsigned set, unsigned start_binding); + void set_texture(unsigned set, unsigned binding, const ImageView &view); + void set_unorm_texture(unsigned set, unsigned binding, const ImageView &view); + void set_srgb_texture(unsigned set, unsigned binding, const ImageView &view); + void set_texture(unsigned set, unsigned binding, const ImageView &view, const Sampler &sampler); + void set_texture(unsigned set, unsigned binding, const ImageView &view, StockSampler sampler); + void set_storage_texture(unsigned set, unsigned binding, const ImageView &view); + void set_unorm_storage_texture(unsigned set, unsigned binding, const ImageView &view); + void set_sampler(unsigned set, unsigned binding, const Sampler &sampler); + void set_sampler(unsigned set, unsigned binding, StockSampler sampler); + void set_uniform_buffer(unsigned set, unsigned binding, const Buffer &buffer); + void set_uniform_buffer(unsigned set, unsigned binding, const Buffer &buffer, VkDeviceSize offset, + VkDeviceSize range); + void set_storage_buffer(unsigned set, unsigned binding, const Buffer &buffer); + void set_storage_buffer(unsigned set, unsigned binding, const Buffer &buffer, VkDeviceSize offset, + VkDeviceSize range); + + void set_bindless(unsigned set, VkDescriptorSet desc_set); + + void push_constants(const void *data, VkDeviceSize offset, VkDeviceSize range); + + void *allocate_constant_data(unsigned set, unsigned binding, VkDeviceSize size); + + template + T *allocate_typed_constant_data(unsigned set, unsigned binding, unsigned count) + { + return static_cast(allocate_constant_data(set, binding, count * sizeof(T))); + } + + void *allocate_vertex_data(unsigned binding, VkDeviceSize size, VkDeviceSize stride, + VkVertexInputRate step_rate = VK_VERTEX_INPUT_RATE_VERTEX); + void *allocate_index_data(VkDeviceSize size, VkIndexType index_type); + + void *update_buffer(const Buffer &buffer, VkDeviceSize offset, VkDeviceSize size); + void *update_image(const Image &image, const VkOffset3D &offset, const VkExtent3D &extent, uint32_t row_length, + uint32_t image_height, const VkImageSubresourceLayers &subresource); + void *update_image(const Image &image, uint32_t row_length = 0, uint32_t image_height = 0); + BufferBlockAllocation request_scratch_buffer_memory(VkDeviceSize size); + + void set_viewport(const VkViewport &viewport); + const VkViewport &get_viewport() const; + void set_scissor(const VkRect2D &rect); + + void set_vertex_attrib(uint32_t attrib, uint32_t binding, VkFormat format, VkDeviceSize offset); + void set_vertex_binding(uint32_t binding, const Buffer &buffer, VkDeviceSize offset, VkDeviceSize stride, + VkVertexInputRate step_rate = VK_VERTEX_INPUT_RATE_VERTEX); + void set_index_buffer(const Buffer &buffer, VkDeviceSize offset, VkIndexType index_type); + + void draw(uint32_t vertex_count, uint32_t instance_count = 1, uint32_t first_vertex = 0, + uint32_t first_instance = 0); + void draw_indexed(uint32_t index_count, uint32_t instance_count = 1, uint32_t first_index = 0, + int32_t vertex_offset = 0, uint32_t first_instance = 0); + void draw_mesh_tasks(uint32_t tasks_x, uint32_t tasks_y, uint32_t tasks_z); + + void dispatch(uint32_t groups_x, uint32_t groups_y, uint32_t groups_z); + + void draw_indirect(const Buffer &buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride); + void draw_indexed_indirect(const Buffer &buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride); + void draw_multi_indirect(const Buffer &buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride, + const Buffer &count, VkDeviceSize count_offset); + void draw_indexed_multi_indirect(const Buffer &buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride, + const Buffer &count, VkDeviceSize count_offset); + void dispatch_indirect(const Buffer &buffer, VkDeviceSize offset); + void draw_mesh_tasks_indirect(const Buffer &buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride); + void draw_mesh_tasks_multi_indirect(const Buffer &buffer, VkDeviceSize offset, uint32_t draw_count, uint32_t stride, + const Buffer &count, VkDeviceSize count_offset); + void execute_indirect_commands(const IndirectLayout *indirect_layout, + uint32_t sequences, + const Buffer &indirect, VkDeviceSize offset, + const Buffer *count, size_t count_offset); + + void set_opaque_state(); + void set_quad_state(); + void set_opaque_sprite_state(); + void set_transparent_sprite_state(); + + void save_state(CommandBufferSaveStateFlags flags, CommandBufferSavedState &state); + void restore_state(const CommandBufferSavedState &state); + +#define SET_STATIC_STATE(value) \ + do \ + { \ + if (pipeline_state.static_state.state.value != value) \ + { \ + pipeline_state.static_state.state.value = value; \ + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT); \ + } \ + } while (0) + +#define SET_POTENTIALLY_STATIC_STATE(value) \ + do \ + { \ + if (pipeline_state.potential_static_state.value != value) \ + { \ + pipeline_state.potential_static_state.value = value; \ + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT); \ + } \ + } while (0) + + inline void set_depth_test(bool depth_test, bool depth_write) + { + SET_STATIC_STATE(depth_test); + SET_STATIC_STATE(depth_write); + } + + inline void set_wireframe(bool wireframe) + { + SET_STATIC_STATE(wireframe); + } + + inline void set_depth_compare(VkCompareOp depth_compare) + { + SET_STATIC_STATE(depth_compare); + } + + inline void set_blend_enable(bool blend_enable) + { + SET_STATIC_STATE(blend_enable); + } + + inline void set_blend_factors(VkBlendFactor src_color_blend, VkBlendFactor src_alpha_blend, + VkBlendFactor dst_color_blend, VkBlendFactor dst_alpha_blend) + { + SET_STATIC_STATE(src_color_blend); + SET_STATIC_STATE(dst_color_blend); + SET_STATIC_STATE(src_alpha_blend); + SET_STATIC_STATE(dst_alpha_blend); + } + + inline void set_blend_factors(VkBlendFactor src_blend, VkBlendFactor dst_blend) + { + set_blend_factors(src_blend, src_blend, dst_blend, dst_blend); + } + + inline void set_blend_op(VkBlendOp color_blend_op, VkBlendOp alpha_blend_op) + { + SET_STATIC_STATE(color_blend_op); + SET_STATIC_STATE(alpha_blend_op); + } + + inline void set_blend_op(VkBlendOp blend_op) + { + set_blend_op(blend_op, blend_op); + } + + inline void set_depth_bias(bool depth_bias_enable) + { + SET_STATIC_STATE(depth_bias_enable); + } + + inline void set_color_write_mask(uint32_t write_mask) + { + SET_STATIC_STATE(write_mask); + } + + inline void set_stencil_test(bool stencil_test) + { + SET_STATIC_STATE(stencil_test); + } + + inline void set_stencil_front_ops(VkCompareOp stencil_front_compare_op, VkStencilOp stencil_front_pass, + VkStencilOp stencil_front_fail, VkStencilOp stencil_front_depth_fail) + { + SET_STATIC_STATE(stencil_front_compare_op); + SET_STATIC_STATE(stencil_front_pass); + SET_STATIC_STATE(stencil_front_fail); + SET_STATIC_STATE(stencil_front_depth_fail); + } + + inline void set_stencil_back_ops(VkCompareOp stencil_back_compare_op, VkStencilOp stencil_back_pass, + VkStencilOp stencil_back_fail, VkStencilOp stencil_back_depth_fail) + { + SET_STATIC_STATE(stencil_back_compare_op); + SET_STATIC_STATE(stencil_back_pass); + SET_STATIC_STATE(stencil_back_fail); + SET_STATIC_STATE(stencil_back_depth_fail); + } + + inline void set_stencil_ops(VkCompareOp stencil_compare_op, VkStencilOp stencil_pass, VkStencilOp stencil_fail, + VkStencilOp stencil_depth_fail) + { + set_stencil_front_ops(stencil_compare_op, stencil_pass, stencil_fail, stencil_depth_fail); + set_stencil_back_ops(stencil_compare_op, stencil_pass, stencil_fail, stencil_depth_fail); + } + + inline void set_primitive_topology(VkPrimitiveTopology topology) + { + SET_STATIC_STATE(topology); + } + + inline void set_primitive_restart(bool primitive_restart) + { + SET_STATIC_STATE(primitive_restart); + } + + inline void set_multisample_state(bool alpha_to_coverage, bool alpha_to_one = false, bool sample_shading = false) + { + SET_STATIC_STATE(alpha_to_coverage); + SET_STATIC_STATE(alpha_to_one); + SET_STATIC_STATE(sample_shading); + } + + inline void set_front_face(VkFrontFace front_face) + { + SET_STATIC_STATE(front_face); + } + + inline void set_cull_mode(VkCullModeFlags cull_mode) + { + SET_STATIC_STATE(cull_mode); + } + + inline void set_blend_constants(const float blend_constants[4]) + { + SET_POTENTIALLY_STATIC_STATE(blend_constants[0]); + SET_POTENTIALLY_STATIC_STATE(blend_constants[1]); + SET_POTENTIALLY_STATIC_STATE(blend_constants[2]); + SET_POTENTIALLY_STATIC_STATE(blend_constants[3]); + } + + inline void set_specialization_constant_mask(uint32_t spec_constant_mask) + { + VK_ASSERT((spec_constant_mask & ~((1u << VULKAN_NUM_USER_SPEC_CONSTANTS) - 1u)) == 0u); + SET_POTENTIALLY_STATIC_STATE(spec_constant_mask); + } + + template + inline void set_specialization_constant(unsigned index, const T &value) + { + VK_ASSERT(index < VULKAN_NUM_USER_SPEC_CONSTANTS); + static_assert(sizeof(value) == sizeof(uint32_t), "Spec constant data must be 32-bit."); + if (memcmp(&pipeline_state.potential_static_state.spec_constants[index], &value, sizeof(value))) + { + memcpy(&pipeline_state.potential_static_state.spec_constants[index], &value, sizeof(value)); + if (pipeline_state.potential_static_state.spec_constant_mask & (1u << index)) + set_dirty(COMMAND_BUFFER_DIRTY_STATIC_STATE_BIT); + } + } + + inline void set_specialization_constant(unsigned index, bool value) + { + set_specialization_constant(index, uint32_t(value)); + } + + inline void enable_subgroup_size_control(bool subgroup_control_size, + VkShaderStageFlagBits stage = VK_SHADER_STAGE_COMPUTE_BIT) + { + VK_ASSERT(stage == VK_SHADER_STAGE_TASK_BIT_EXT || + stage == VK_SHADER_STAGE_MESH_BIT_EXT || + stage == VK_SHADER_STAGE_COMPUTE_BIT); + + if (stage != VK_SHADER_STAGE_TASK_BIT_EXT) + { + SET_STATIC_STATE(subgroup_control_size); + } + else + { + auto subgroup_control_size_task = subgroup_control_size; + SET_STATIC_STATE(subgroup_control_size_task); + } + } + + inline void set_subgroup_size_log2(bool subgroup_full_group, + uint8_t subgroup_minimum_size_log2, + uint8_t subgroup_maximum_size_log2, + VkShaderStageFlagBits stage = VK_SHADER_STAGE_COMPUTE_BIT) + { + VK_ASSERT(stage == VK_SHADER_STAGE_TASK_BIT_EXT || + stage == VK_SHADER_STAGE_MESH_BIT_EXT || + stage == VK_SHADER_STAGE_COMPUTE_BIT); + + VK_ASSERT(subgroup_minimum_size_log2 < 8); + VK_ASSERT(subgroup_maximum_size_log2 < 8); + + if (stage != VK_SHADER_STAGE_TASK_BIT_EXT) + { + SET_STATIC_STATE(subgroup_full_group); + SET_STATIC_STATE(subgroup_minimum_size_log2); + SET_STATIC_STATE(subgroup_maximum_size_log2); + } + else + { + auto subgroup_full_group_task = subgroup_full_group; + auto subgroup_minimum_size_log2_task = subgroup_minimum_size_log2; + auto subgroup_maximum_size_log2_task = subgroup_maximum_size_log2; + SET_STATIC_STATE(subgroup_full_group_task); + SET_STATIC_STATE(subgroup_minimum_size_log2_task); + SET_STATIC_STATE(subgroup_maximum_size_log2_task); + } + } + + inline void set_conservative_rasterization(bool conservative_raster) + { + SET_STATIC_STATE(conservative_raster); + } + +#define SET_DYNAMIC_STATE(state, flags) \ + do \ + { \ + if (dynamic_state.state != state) \ + { \ + dynamic_state.state = state; \ + set_dirty(flags); \ + } \ + } while (0) + + inline void set_depth_bias(float depth_bias_constant, float depth_bias_slope) + { + SET_DYNAMIC_STATE(depth_bias_constant, COMMAND_BUFFER_DIRTY_DEPTH_BIAS_BIT); + SET_DYNAMIC_STATE(depth_bias_slope, COMMAND_BUFFER_DIRTY_DEPTH_BIAS_BIT); + } + + inline void set_stencil_front_reference(uint8_t front_compare_mask, uint8_t front_write_mask, + uint8_t front_reference) + { + SET_DYNAMIC_STATE(front_compare_mask, COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT); + SET_DYNAMIC_STATE(front_write_mask, COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT); + SET_DYNAMIC_STATE(front_reference, COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT); + } + + inline void set_stencil_back_reference(uint8_t back_compare_mask, uint8_t back_write_mask, uint8_t back_reference) + { + SET_DYNAMIC_STATE(back_compare_mask, COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT); + SET_DYNAMIC_STATE(back_write_mask, COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT); + SET_DYNAMIC_STATE(back_reference, COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT); + } + + inline void set_stencil_reference(uint8_t compare_mask, uint8_t write_mask, uint8_t reference) + { + set_stencil_front_reference(compare_mask, write_mask, reference); + set_stencil_back_reference(compare_mask, write_mask, reference); + } + + inline Type get_command_buffer_type() const + { + return type; + } + + QueryPoolHandle write_timestamp(VkPipelineStageFlags2 stage); + + // Used when recording command buffers in a thread, and submitting them in a different thread. + // Need to make sure that no further commands on the VkCommandBuffer happen. + void end_threaded_recording(); + // End is called automatically by Device in submission. Should not be called by application. + void end(); + void enable_profiling(); + bool has_profiling() const; + + void begin_debug_channel(DebugChannelInterface *iface, const char *tag, VkDeviceSize size); + void end_debug_channel(); + + void extract_pipeline_state(DeferredPipelineCompile &compile) const; + + enum class CompileMode + { + Sync, + FailOnCompileRequired, + AsyncThread, + IndirectBindable + }; + static Pipeline build_graphics_pipeline(Device *device, const DeferredPipelineCompile &compile, CompileMode mode); + static Pipeline build_compute_pipeline(Device *device, const DeferredPipelineCompile &compile, CompileMode mode); + bool flush_pipeline_state_without_blocking(); + + VkPipeline get_current_compute_pipeline(); + VkPipeline get_current_graphics_pipeline(); + +private: + friend class Util::ObjectPool; + CommandBuffer(Device *device, VkCommandBuffer cmd, VkPipelineCache cache, Type type); + + Device *device; + const VolkDeviceTable &table; + VkCommandBuffer cmd; + Type type; + + const Framebuffer *framebuffer = nullptr; + const RenderPass *actual_render_pass = nullptr; + const Vulkan::ImageView *framebuffer_attachments[VULKAN_NUM_ATTACHMENTS + 1] = {}; + + IndexState index_state = {}; + VertexBindingState vbo = {}; + ResourceBindings bindings; + VkDescriptorSet bindless_sets[VULKAN_NUM_DESCRIPTOR_SETS] = {}; + VkDescriptorSet allocated_sets[VULKAN_NUM_DESCRIPTOR_SETS] = {}; + + Pipeline current_pipeline = {}; + VkPipelineLayout current_pipeline_layout = VK_NULL_HANDLE; + VkSubpassContents current_contents = VK_SUBPASS_CONTENTS_INLINE; + unsigned thread_index = 0; + + VkViewport viewport = {}; + VkRect2D scissor = {}; + + CommandBufferDirtyFlags dirty = ~0u; + uint32_t dirty_sets_realloc = 0; + uint32_t dirty_sets_rebind = 0; + uint32_t dirty_vbos = 0; + uint32_t active_vbos = 0; + VkPipelineStageFlags2 uses_swapchain_in_stages = 0; + bool is_compute = true; + bool is_secondary = false; + bool is_ended = false; + bool framebuffer_is_multiview = false; + + void set_dirty(CommandBufferDirtyFlags flags) + { + dirty |= flags; + } + + CommandBufferDirtyFlags get_and_clear(CommandBufferDirtyFlags flags) + { + auto mask = dirty & flags; + dirty &= ~flags; + return mask; + } + + DeferredPipelineCompile pipeline_state = {}; + DynamicState dynamic_state = {}; +#ifndef _MSC_VER + static_assert(sizeof(pipeline_state.static_state.words) >= sizeof(pipeline_state.static_state.state), + "Hashable pipeline state is not large enough!"); +#endif + + VkPipeline flush_render_state(bool synchronous); + VkPipeline flush_compute_state(bool synchronous); + void clear_render_state(); + + bool flush_graphics_pipeline(bool synchronous); + bool flush_compute_pipeline(bool synchronous); + void flush_descriptor_sets(); + void begin_graphics(); + void flush_descriptor_set( + uint32_t set, VkDescriptorSet *sets, + uint32_t &first_set, uint32_t &set_count, + uint32_t *dynamic_offsets, uint32_t &num_dynamic_offsets); + void push_descriptor_set(uint32_t set); + void rebind_descriptor_set( + uint32_t set, VkDescriptorSet *sets, + uint32_t &first_set, uint32_t &set_count, + uint32_t *dynamic_offsets, uint32_t &num_dynamic_offsets); + void flush_descriptor_binds(const VkDescriptorSet *sets, + uint32_t &first_set, uint32_t &set_count, + uint32_t *dynamic_offsets, uint32_t &num_dynamic_offsets); + void validate_descriptor_binds(uint32_t set); + + void begin_compute(); + void begin_context(); + + BufferBlock vbo_block; + BufferBlock ibo_block; + BufferBlock ubo_block; + BufferBlock staging_block; + + void set_texture(unsigned set, unsigned binding, VkImageView float_view, VkImageView integer_view, + VkImageLayout layout, + uint64_t cookie); + void set_buffer_view_common(unsigned set, unsigned binding, const BufferView &view); + + void init_viewport_scissor(const RenderPassInfo &info, const Framebuffer *framebuffer); + void init_surface_transform(const RenderPassInfo &info); + VkSurfaceTransformFlagBitsKHR current_framebuffer_surface_transform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; + + bool profiling = false; + std::string debug_channel_tag; + Vulkan::BufferHandle debug_channel_buffer; + DebugChannelInterface *debug_channel_interface = nullptr; + + void bind_pipeline(VkPipelineBindPoint bind_point, VkPipeline pipeline, uint32_t active_dynamic_state); + + static void update_hash_graphics_pipeline(DeferredPipelineCompile &compile, CompileMode mode, uint32_t *active_vbos); + static void update_hash_compute_pipeline(DeferredPipelineCompile &compile); + void set_surface_transform_specialization_constants(); + + void set_program_layout(const PipelineLayout *layout); + + static bool setup_subgroup_size_control(Device &device, VkPipelineShaderStageCreateInfo &stage_info, + VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &required_info, + VkShaderStageFlagBits stage, + bool full_group, unsigned min_size_log2, unsigned max_size_log2); +}; + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES +struct CommandBufferUtil +{ + static void draw_fullscreen_quad(CommandBuffer &cmd, const std::string &vertex, const std::string &fragment, + const std::vector> &defines = {}); + static void draw_fullscreen_quad_depth(CommandBuffer &cmd, const std::string &vertex, const std::string &fragment, + bool depth_test, bool depth_write, VkCompareOp depth_compare, + const std::vector> &defines = {}); + static void set_fullscreen_quad_vertex_state(CommandBuffer &cmd); + static void set_quad_vertex_state(CommandBuffer &cmd); + + static void setup_fullscreen_quad(CommandBuffer &cmd, const std::string &vertex, const std::string &fragment, + const std::vector> &defines = {}, + bool depth_test = false, bool depth_write = false, + VkCompareOp depth_compare = VK_COMPARE_OP_ALWAYS); + + static void draw_fullscreen_quad(CommandBuffer &cmd, unsigned instances = 1); + static void draw_quad(CommandBuffer &cmd, unsigned instances = 1); +}; +#endif + +using CommandBufferHandle = Util::IntrusivePtr; +} diff --git a/vulkan/command_pool.cpp b/vulkan/command_pool.cpp new file mode 100644 index 00000000..fc9e07b2 --- /dev/null +++ b/vulkan/command_pool.cpp @@ -0,0 +1,180 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "command_pool.hpp" +#include "device.hpp" + +namespace Vulkan +{ +CommandPool::CommandPool(Device *device_, uint32_t queue_family_index) + : device(device_), table(&device_->get_device_table()) +{ + VkCommandPoolCreateInfo info = { VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO }; + info.flags = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT; + info.queueFamilyIndex = queue_family_index; + if (queue_family_index != VK_QUEUE_FAMILY_IGNORED) + table->vkCreateCommandPool(device->get_device(), &info, nullptr, &pool); +} + +CommandPool::CommandPool(CommandPool &&other) noexcept +{ + *this = std::move(other); +} + +CommandPool &CommandPool::operator=(CommandPool &&other) noexcept +{ + if (this != &other) + { + device = other.device; + table = other.table; + if (!buffers.empty()) + table->vkFreeCommandBuffers(device->get_device(), pool, buffers.size(), buffers.data()); + if (pool != VK_NULL_HANDLE) + table->vkDestroyCommandPool(device->get_device(), pool, nullptr); + + pool = VK_NULL_HANDLE; + buffers.clear(); + std::swap(pool, other.pool); + std::swap(buffers, other.buffers); + index = other.index; + other.index = 0; +#ifdef VULKAN_DEBUG + in_flight.clear(); + std::swap(in_flight, other.in_flight); +#endif + } + return *this; +} + +CommandPool::~CommandPool() +{ + if (!buffers.empty()) + table->vkFreeCommandBuffers(device->get_device(), pool, buffers.size(), buffers.data()); + if (!secondary_buffers.empty()) + table->vkFreeCommandBuffers(device->get_device(), pool, secondary_buffers.size(), secondary_buffers.data()); + if (pool != VK_NULL_HANDLE) + table->vkDestroyCommandPool(device->get_device(), pool, nullptr); +} + +void CommandPool::signal_submitted(VkCommandBuffer cmd) +{ +#ifdef VULKAN_DEBUG + VK_ASSERT(in_flight.find(cmd) != end(in_flight)); + in_flight.erase(cmd); +#else + (void)cmd; +#endif +} + +VkCommandBuffer CommandPool::request_secondary_command_buffer() +{ + VK_ASSERT(pool != VK_NULL_HANDLE); + + if (secondary_index < secondary_buffers.size()) + { + auto ret = secondary_buffers[secondary_index++]; +#ifdef VULKAN_DEBUG + VK_ASSERT(in_flight.find(ret) == end(in_flight)); + in_flight.insert(ret); +#endif + return ret; + } + else + { + VkCommandBuffer cmd; + VkCommandBufferAllocateInfo info = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO }; + info.commandPool = pool; + info.level = VK_COMMAND_BUFFER_LEVEL_SECONDARY; + info.commandBufferCount = 1; + + table->vkAllocateCommandBuffers(device->get_device(), &info, &cmd); +#ifdef VULKAN_DEBUG + VK_ASSERT(in_flight.find(cmd) == end(in_flight)); + in_flight.insert(cmd); +#endif + secondary_buffers.push_back(cmd); + secondary_index++; + return cmd; + } +} + +VkCommandBuffer CommandPool::request_command_buffer() +{ + VK_ASSERT(pool != VK_NULL_HANDLE); + + if (index < buffers.size()) + { + auto ret = buffers[index++]; +#ifdef VULKAN_DEBUG + VK_ASSERT(in_flight.find(ret) == end(in_flight)); + in_flight.insert(ret); +#endif + return ret; + } + else + { + VkCommandBuffer cmd; + VkCommandBufferAllocateInfo info = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO }; + info.commandPool = pool; + info.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY; + info.commandBufferCount = 1; + + table->vkAllocateCommandBuffers(device->get_device(), &info, &cmd); +#ifdef VULKAN_DEBUG + VK_ASSERT(in_flight.find(cmd) == end(in_flight)); + in_flight.insert(cmd); +#endif + buffers.push_back(cmd); + index++; + return cmd; + } +} + +void CommandPool::begin() +{ + if (pool == VK_NULL_HANDLE) + return; + +#ifdef VULKAN_DEBUG + VK_ASSERT(in_flight.empty()); +#endif + if (index > 0 || secondary_index > 0) + table->vkResetCommandPool(device->get_device(), pool, 0); + index = 0; + secondary_index = 0; +} + +void CommandPool::trim() +{ + if (pool == VK_NULL_HANDLE) + return; + + table->vkResetCommandPool(device->get_device(), pool, VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT); + if (!buffers.empty()) + table->vkFreeCommandBuffers(device->get_device(), pool, buffers.size(), buffers.data()); + if (!secondary_buffers.empty()) + table->vkFreeCommandBuffers(device->get_device(), pool, secondary_buffers.size(), secondary_buffers.data()); + buffers.clear(); + secondary_buffers.clear(); + table->vkTrimCommandPool(device->get_device(), pool, 0); +} +} diff --git a/vulkan/command_pool.hpp b/vulkan/command_pool.hpp new file mode 100644 index 00000000..e6f19aaf --- /dev/null +++ b/vulkan/command_pool.hpp @@ -0,0 +1,61 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include +#include + +namespace Vulkan +{ +class Device; +class CommandPool +{ +public: + CommandPool(Device *device, uint32_t queue_family_index); + ~CommandPool(); + + CommandPool(CommandPool &&) noexcept; + CommandPool &operator=(CommandPool &&) noexcept; + CommandPool(const CommandPool &) = delete; + void operator=(const CommandPool &) = delete; + + void begin(); + void trim(); + VkCommandBuffer request_command_buffer(); + VkCommandBuffer request_secondary_command_buffer(); + void signal_submitted(VkCommandBuffer cmd); + +private: + Device *device; + const VolkDeviceTable *table; + VkCommandPool pool = VK_NULL_HANDLE; + std::vector buffers; + std::vector secondary_buffers; +#ifdef VULKAN_DEBUG + std::unordered_set in_flight; +#endif + unsigned index = 0; + unsigned secondary_index = 0; +}; +} diff --git a/vulkan/context.cpp b/vulkan/context.cpp new file mode 100644 index 00000000..a9a07a25 --- /dev/null +++ b/vulkan/context.cpp @@ -0,0 +1,1779 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "context.hpp" +#include "limits.hpp" +#include "small_vector.hpp" +#include "environment.hpp" +#include +#include +#include +#include + +#ifndef _WIN32 +#include +#elif defined(_WIN32) +#define WIN32_LEAN_AND_MEAN +#include +#endif + +#if defined(ANDROID) && defined(HAVE_SWAPPY) +#include "swappy/swappyVk.h" +#endif + +//#undef VULKAN_DEBUG + +#ifdef GRANITE_VULKAN_PROFILES +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wshadow" +#endif + +// We need to make sure profiles implementation sees volk symbols, not loader. +#include "vulkan/vulkan_profiles.cpp" +// Ideally there would be a vpQueryProfile which returns a const pointer to static VpProfileProperties, +// so we wouldn't have to do this. +struct ProfileHolder +{ + explicit ProfileHolder(const std::string &name) + { + if (name.empty()) + return; + + uint32_t count; + vpGetProfiles(&count, nullptr); + props.resize(count); + vpGetProfiles(&count, props.data()); + + for (auto &prop : props) + if (name == prop.profileName) + profile = ∝ + } + Util::SmallVector props; + const VpProfileProperties *profile = nullptr; +}; + +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic pop +#endif +#endif + +#define NV_DRIVER_VERSION_MAJOR(v) (uint32_t(v) >> 22) + +namespace Vulkan +{ +static constexpr ContextCreationFlags video_context_flags = + CONTEXT_CREATION_ENABLE_VIDEO_DECODE_BIT | + CONTEXT_CREATION_ENABLE_VIDEO_ENCODE_BIT; + +void Context::set_instance_factory(InstanceFactory *factory) +{ + instance_factory = factory; +} + +void Context::set_device_factory(DeviceFactory *factory) +{ + device_factory = factory; +} + +void Context::set_application_info(const VkApplicationInfo *app_info) +{ + user_application_info.copy_assign(app_info); + VK_ASSERT(!app_info || app_info->apiVersion >= VK_API_VERSION_1_1); +} + +CopiedApplicationInfo::CopiedApplicationInfo() +{ + set_default_app(); +} + +void CopiedApplicationInfo::set_default_app() +{ + engine.clear(); + application.clear(); + app = { + VK_STRUCTURE_TYPE_APPLICATION_INFO, nullptr, + "Granite", 0, "Granite", 0, + VK_API_VERSION_1_1, + }; +} + +void CopiedApplicationInfo::copy_assign(const VkApplicationInfo *info) +{ + if (info) + { + app = *info; + + if (info->pApplicationName) + { + application = info->pApplicationName; + app.pApplicationName = application.c_str(); + } + else + application.clear(); + + if (info->pEngineName) + { + engine = info->pEngineName; + app.pEngineName = engine.c_str(); + } + else + engine.clear(); + } + else + { + set_default_app(); + } +} + +const VkApplicationInfo &CopiedApplicationInfo::get_application_info() const +{ + return app; +} + +bool Context::init_instance(const char * const *instance_ext, uint32_t instance_ext_count, ContextCreationFlags flags) +{ + destroy_device(); + destroy_instance(); + + owned_instance = true; + if (!create_instance(instance_ext, instance_ext_count, flags)) + { + destroy_instance(); + LOGE("Failed to create Vulkan instance.\n"); + return false; + } + + return true; +} + +bool Context::init_device(VkPhysicalDevice gpu_, VkSurfaceKHR surface_compat, const char *const *device_ext, + uint32_t device_ext_count, ContextCreationFlags flags) +{ + owned_device = true; + VkPhysicalDeviceFeatures features = {}; + if (!create_device(gpu_, surface_compat, device_ext, device_ext_count, &features, flags)) + { + destroy_device(); + LOGE("Failed to create Vulkan device.\n"); + return false; + } + + return true; +} + +bool Context::init_instance_and_device(const char * const *instance_ext, uint32_t instance_ext_count, + const char * const *device_ext, uint32_t device_ext_count, + ContextCreationFlags flags) +{ + if (!init_instance(instance_ext, instance_ext_count, flags)) + return false; + if (!init_device(VK_NULL_HANDLE, VK_NULL_HANDLE, device_ext, device_ext_count, flags)) + return false; + return true; +} + +static std::mutex loader_init_lock; +static bool loader_init_once; +static PFN_vkGetInstanceProcAddr instance_proc_addr; + +PFN_vkGetInstanceProcAddr Context::get_instance_proc_addr() +{ + return instance_proc_addr; +} + +bool Context::init_loader(PFN_vkGetInstanceProcAddr addr, bool force_reload) +{ + std::lock_guard holder(loader_init_lock); + if (loader_init_once && !force_reload && !addr) + return true; + + if (!addr) + { +#ifndef _WIN32 + static void *module; + if (!module) + { + auto vulkan_path = Util::get_environment_string("GRANITE_VULKAN_LIBRARY", ""); + if (!vulkan_path.empty()) + module = dlopen(vulkan_path.c_str(), RTLD_LOCAL | RTLD_LAZY); +#ifdef __APPLE__ + if (!module) + module = dlopen("libvulkan.1.dylib", RTLD_LOCAL | RTLD_LAZY); + if (!module) + module = dlopen("libMoltenVK.dylib", RTLD_LOCAL | RTLD_LAZY); +#else + if (!module) + module = dlopen("libvulkan.so.1", RTLD_LOCAL | RTLD_LAZY); + if (!module) + module = dlopen("libvulkan.so", RTLD_LOCAL | RTLD_LAZY); +#endif + if (!module) + return false; + } + + addr = reinterpret_cast(dlsym(module, "vkGetInstanceProcAddr")); + if (!addr) + return false; +#else + static HMODULE module; + if (!module) + { + module = LoadLibraryA("vulkan-1.dll"); + if (!module) + return false; + } + + // Ugly pointer warning workaround. + auto ptr = GetProcAddress(module, "vkGetInstanceProcAddr"); + static_assert(sizeof(ptr) == sizeof(addr), "Mismatch pointer type."); + memcpy(&addr, &ptr, sizeof(ptr)); + + if (!addr) + return false; +#endif + } + + instance_proc_addr = addr; + volkInitializeCustom(addr); + loader_init_once = true; + return true; +} + +bool Context::init_device_from_instance(VkInstance instance_, VkPhysicalDevice gpu_, VkSurfaceKHR surface, + const char **required_device_extensions, unsigned num_required_device_extensions, + const VkPhysicalDeviceFeatures *required_features, + ContextCreationFlags flags) +{ + destroy_device(); + destroy_instance(); + + instance = instance_; + owned_instance = false; + owned_device = true; + + if (!create_instance(nullptr, 0, flags)) + return false; + + if (!create_device(gpu_, surface, required_device_extensions, num_required_device_extensions, required_features, flags)) + { + destroy_device(); + LOGE("Failed to create Vulkan device.\n"); + return false; + } + + return true; +} + +void Context::destroy_device() +{ + if (device != VK_NULL_HANDLE) + device_table.vkDeviceWaitIdle(device); + +#if defined(ANDROID) && defined(HAVE_SWAPPY) + if (device != VK_NULL_HANDLE) + SwappyVk_destroyDevice(device); +#endif + + if (owned_device && device != VK_NULL_HANDLE) + { + device_table.vkDestroyDevice(device, nullptr); + device = VK_NULL_HANDLE; + owned_device = false; + } +} + +void Context::destroy_instance() +{ +#ifdef VULKAN_DEBUG + if (debug_messenger) + vkDestroyDebugUtilsMessengerEXT(instance, debug_messenger, nullptr); + debug_messenger = VK_NULL_HANDLE; +#endif + + if (owned_instance && instance != VK_NULL_HANDLE) + { + vkDestroyInstance(instance, nullptr); + instance = VK_NULL_HANDLE; + owned_instance = false; + } +} + +Context::Context() +{ +} + +Context::~Context() +{ + destroy_device(); + destroy_instance(); +} + +const VkApplicationInfo &Context::get_application_info() const +{ + return user_application_info.get_application_info(); +} + +void Context::notify_validation_error(const char *msg) +{ + if (message_callback) + message_callback(msg); +} + +void Context::set_notification_callback(std::function func) +{ + message_callback = std::move(func); +} + +#ifdef VULKAN_DEBUG +static VKAPI_ATTR VkBool32 VKAPI_CALL vulkan_messenger_cb( + VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, + VkDebugUtilsMessageTypeFlagsEXT messageType, + const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, + void *pUserData) +{ + auto *context = static_cast(pUserData); + + switch (messageSeverity) + { + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: + if (messageType == VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT) + { + LOGE("[Vulkan]: Validation Error: %s\n", pCallbackData->pMessage); + context->notify_validation_error(pCallbackData->pMessage); + } + else + LOGE("[Vulkan]: Other Error: %s\n", pCallbackData->pMessage); + break; + + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: + if (messageType == VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT) + LOGW("[Vulkan]: Validation Warning: %s\n", pCallbackData->pMessage); + else + LOGW("[Vulkan]: Other Warning: %s\n", pCallbackData->pMessage); + break; + +#if 0 + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: + case VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: + if (messageType == VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT) + LOGI("[Vulkan]: Validation Info: %s\n", pCallbackData->pMessage); + else + LOGI("[Vulkan]: Other Info: %s\n", pCallbackData->pMessage); + break; +#endif + + default: + return VK_FALSE; + } + + bool log_object_names = false; + for (uint32_t i = 0; i < pCallbackData->objectCount; i++) + { + auto *name = pCallbackData->pObjects[i].pObjectName; + if (name) + { + log_object_names = true; + break; + } + } + + if (log_object_names) + { + for (uint32_t i = 0; i < pCallbackData->objectCount; i++) + { + auto *name = pCallbackData->pObjects[i].pObjectName; + LOGI(" Object #%u: %s\n", i, name ? name : "N/A"); + } + } + + return VK_FALSE; +} +#endif + +void Context::set_required_profile(const char *profile, bool strict) +{ + if (profile) + required_profile = profile; + else + required_profile.clear(); + required_profile_strict = strict; +} + +bool Context::init_profile() +{ +#ifdef GRANITE_VULKAN_PROFILES + if (required_profile.empty()) + { + if (Util::get_environment("GRANITE_VULKAN_PROFILE", required_profile)) + LOGI("Overriding profile: %s\n", required_profile.c_str()); + + required_profile_strict = Util::get_environment_bool("GRANITE_VULKAN_PROFILE_STRICT", false); + if (required_profile_strict) + LOGI("Using profile strictness.\n"); + } + + if (required_profile.empty()) + return true; + + ProfileHolder profile{required_profile}; + + if (!profile.profile) + { + LOGW("No profile matches %s.\n", required_profile.c_str()); + return false; + } + + VkBool32 supported = VK_FALSE; + if (vpGetInstanceProfileSupport(nullptr, profile.profile, &supported) != VK_SUCCESS || !supported) + { + LOGE("Profile %s is not supported.\n", required_profile.c_str()); + return false; + } +#endif + + return true; +} + +VkResult Context::create_instance_from_profile(const VkInstanceCreateInfo &info, VkInstance *pInstance) +{ +#ifdef GRANITE_VULKAN_PROFILES + ProfileHolder holder{required_profile}; + if (!holder.profile) + return VK_ERROR_INITIALIZATION_FAILED; + + if (instance_factory) + { + // Can override vkGetInstanceProcAddr (macro define) and override vkCreateInstance + // to a TLS magic trampoline if we really have to. + LOGE("Instance factory currently not supported with profiles.\n"); + return VK_ERROR_INITIALIZATION_FAILED; + } + + VpInstanceCreateInfo vp_info = {}; + vp_info.pCreateInfo = &info; + vp_info.pProfile = holder.profile; + // Any extra extensions we add for instances are essential, like WSI stuff. + vp_info.flags = VP_INSTANCE_CREATE_MERGE_EXTENSIONS_BIT; + + VkResult result; + if ((result = vpCreateInstance(&vp_info, nullptr, pInstance)) != VK_SUCCESS) + LOGE("Failed to create instance from profile.\n"); + + return result; +#else + (void)info; + (void)pInstance; + return VK_ERROR_INITIALIZATION_FAILED; +#endif +} + +VkResult Context::create_device_from_profile(const VkDeviceCreateInfo &info, VkDevice *pDevice) +{ +#ifdef GRANITE_VULKAN_PROFILES + ProfileHolder holder{required_profile}; + if (!holder.profile) + return VK_ERROR_INITIALIZATION_FAILED; + + if (device_factory) + { + // Need TLS hackery like instance. + LOGE("Device factory currently not supported with profiles.\n"); + return VK_ERROR_INITIALIZATION_FAILED; + } + + auto tmp_info = info; + + VpDeviceCreateInfo vp_info = {}; + vp_info.pProfile = holder.profile; + vp_info.pCreateInfo = &tmp_info; + vp_info.flags |= VP_DEVICE_CREATE_DISABLE_ROBUST_ACCESS; + + if (required_profile_strict) + { + tmp_info.enabledExtensionCount = 0; + tmp_info.ppEnabledExtensionNames = nullptr; + tmp_info.pNext = nullptr; + tmp_info.pEnabledFeatures = nullptr; + } + else + { + vp_info.flags = VP_DEVICE_CREATE_MERGE_EXTENSIONS_BIT | VP_DEVICE_CREATE_OVERRIDE_FEATURES_BIT; + } + + VkResult result; + if ((result = vpCreateDevice(gpu, &vp_info, nullptr, pDevice)) != VK_SUCCESS) + LOGE("Failed to create device from profile.\n"); + return result; +#else + (void)info; + (void)pDevice; + return VK_ERROR_INITIALIZATION_FAILED; +#endif +} + +VkApplicationInfo Context::get_promoted_application_info() const +{ + auto app_info = get_application_info(); + + // Granite min-req is 1.1. + app_info.apiVersion = std::max(VK_API_VERSION_1_1, app_info.apiVersion); + + // Target Vulkan 1.3 if available. + app_info.apiVersion = std::max(app_info.apiVersion, std::min(VK_API_VERSION_1_3, volkGetInstanceVersion())); + + return app_info; +} + +bool Context::create_instance(const char * const *instance_ext, uint32_t instance_ext_count, ContextCreationFlags flags) +{ + VkInstanceCreateInfo info = { VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO }; + auto app_info = get_promoted_application_info(); + + if (volkGetInstanceVersion() < app_info.apiVersion) + { + LOGE("Vulkan loader does not support required Vulkan version.\n"); + return false; + } + + info.pApplicationInfo = &app_info; + + std::vector instance_exts; + std::vector instance_layers; + for (uint32_t i = 0; i < instance_ext_count; i++) + instance_exts.push_back(instance_ext[i]); + + uint32_t ext_count = 0; + vkEnumerateInstanceExtensionProperties(nullptr, &ext_count, nullptr); + std::vector queried_extensions(ext_count); + if (ext_count) + vkEnumerateInstanceExtensionProperties(nullptr, &ext_count, queried_extensions.data()); + + uint32_t layer_count = 0; + vkEnumerateInstanceLayerProperties(&layer_count, nullptr); + std::vector queried_layers(layer_count); + if (layer_count) + vkEnumerateInstanceLayerProperties(&layer_count, queried_layers.data()); + + LOGI("Layer count: %u\n", layer_count); + for (auto &layer : queried_layers) + LOGI("Found layer: %s.\n", layer.layerName); + + const auto has_extension = [&](const char *name) -> bool { + auto itr = find_if(begin(queried_extensions), end(queried_extensions), [name](const VkExtensionProperties &e) -> bool { + return strcmp(e.extensionName, name) == 0; + }); + return itr != end(queried_extensions); + }; + + for (uint32_t i = 0; i < instance_ext_count; i++) + if (!has_extension(instance_ext[i])) + return false; + + if (has_extension(VK_EXT_DEBUG_UTILS_EXTENSION_NAME)) + { + instance_exts.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME); + ext.supports_debug_utils = true; + } + + auto itr = std::find_if(instance_ext, instance_ext + instance_ext_count, [](const char *name) { + return strcmp(name, VK_KHR_SURFACE_EXTENSION_NAME) == 0; + }); + bool has_surface_extension = itr != (instance_ext + instance_ext_count); + + if (has_surface_extension && has_extension(VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME)) + { + instance_exts.push_back(VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME); + ext.supports_surface_capabilities2 = true; + } + + if ((flags & CONTEXT_CREATION_ENABLE_ADVANCED_WSI_BIT) != 0 && + has_surface_extension && + has_extension(VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME)) + { + instance_exts.push_back(VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME); + ext.supports_swapchain_colorspace = true; + } + +#ifdef VULKAN_DEBUG + const auto has_layer = [&](const char *name) -> bool { + auto layer_itr = find_if(begin(queried_layers), end(queried_layers), [name](const VkLayerProperties &e) -> bool { + return strcmp(e.layerName, name) == 0; + }); + return layer_itr != end(queried_layers); + }; + + force_no_validation = Util::get_environment_bool("GRANITE_VULKAN_NO_VALIDATION", false); + + if (!force_no_validation && has_layer("VK_LAYER_KHRONOS_validation")) + { + instance_layers.push_back("VK_LAYER_KHRONOS_validation"); + LOGI("Enabling VK_LAYER_KHRONOS_validation.\n"); + + uint32_t layer_ext_count = 0; + vkEnumerateInstanceExtensionProperties("VK_LAYER_KHRONOS_validation", &layer_ext_count, nullptr); + std::vector layer_exts(layer_ext_count); + vkEnumerateInstanceExtensionProperties("VK_LAYER_KHRONOS_validation", &layer_ext_count, layer_exts.data()); + +#if 0 + VkValidationFeaturesEXT validation_features = { VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT }; + + // Tons of false positives around timeline semaphores atm, so don't bother. + if (find_if(begin(layer_exts), end(layer_exts), [](const VkExtensionProperties &e) { + return strcmp(e.extensionName, VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME) == 0; + }) != end(layer_exts)) + { + instance_exts.push_back(VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME); + static const VkValidationFeatureEnableEXT validation_sync_features[1] = { + VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT, + }; + LOGI("Enabling VK_EXT_validation_features for synchronization validation.\n"); + validation_features.enabledValidationFeatureCount = 1; + validation_features.pEnabledValidationFeatures = validation_sync_features; + info.pNext = &validation_features; + } +#endif + + if (!ext.supports_debug_utils && + find_if(begin(layer_exts), end(layer_exts), [](const VkExtensionProperties &e) { + return strcmp(e.extensionName, VK_EXT_DEBUG_UTILS_EXTENSION_NAME) == 0; + }) != end(layer_exts)) + { + instance_exts.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME); + ext.supports_debug_utils = true; + } + } +#endif + + if (ext.supports_surface_capabilities2 && has_extension(VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME)) + { +#ifdef VULKAN_DEBUG + // It seems like there are some bugs with EXT_swapchain_maint1 in VVL atm. + const bool support_maint1 = force_no_validation; +#else + constexpr bool support_maint1 = true; +#endif + + if (support_maint1) + { + instance_exts.push_back(VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME); + ext.supports_surface_maintenance1 = true; + } + } + + info.enabledExtensionCount = instance_exts.size(); + info.ppEnabledExtensionNames = instance_exts.empty() ? nullptr : instance_exts.data(); + info.enabledLayerCount = instance_layers.size(); + info.ppEnabledLayerNames = instance_layers.empty() ? nullptr : instance_layers.data(); + + for (auto *ext_name : instance_exts) + LOGI("Enabling instance extension: %s.\n", ext_name); + +#ifdef GRANITE_VULKAN_PROFILES + if (!init_profile()) + { + LOGE("Profile is not supported.\n"); + return false; + } + + if (instance == VK_NULL_HANDLE && !required_profile.empty()) + if (create_instance_from_profile(info, &instance) != VK_SUCCESS) + return false; +#endif + + // instance != VK_NULL_HANDLE here is deprecated and somewhat broken. + // For libretro Vulkan context negotiation v1. + if (instance == VK_NULL_HANDLE) + { + if (instance_factory) + { + instance = instance_factory->create_instance(&info); + if (instance == VK_NULL_HANDLE) + return false; + } + else if (vkCreateInstance(&info, nullptr, &instance) != VK_SUCCESS) + return false; + + // If we have a pre-existing instance, we can only assume Vulkan 1.1 in legacy interface. + ext.instance_api_core_version = app_info.apiVersion; + } + + enabled_instance_extensions = std::move(instance_exts); + ext.instance_extensions = enabled_instance_extensions.data(); + ext.num_instance_extensions = uint32_t(enabled_instance_extensions.size()); + + volkLoadInstance(instance); + +#if defined(VULKAN_DEBUG) + if (ext.supports_debug_utils) + { + VkDebugUtilsMessengerCreateInfoEXT debug_info = { VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT }; + debug_info.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT; + debug_info.pfnUserCallback = vulkan_messenger_cb; + debug_info.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT | + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT; + debug_info.pUserData = this; + + // For some reason, this segfaults Android, sigh ... We get relevant output in logcat anyways. + if (vkCreateDebugUtilsMessengerEXT) + vkCreateDebugUtilsMessengerEXT(instance, &debug_info, nullptr, &debug_messenger); + } +#endif + + return true; +} + +static unsigned device_score(VkPhysicalDevice &gpu) +{ + VkPhysicalDeviceProperties props = {}; + vkGetPhysicalDeviceProperties(gpu, &props); + + if (props.apiVersion < VK_API_VERSION_1_1) + return 0; + + switch (props.deviceType) + { + case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU: + return 3; + case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU: + return 2; + case VK_PHYSICAL_DEVICE_TYPE_CPU: + return 1; + default: + return 0; + } +} + +QueueInfo::QueueInfo() +{ + for (auto &index : family_indices) + index = VK_QUEUE_FAMILY_IGNORED; +} + +bool Context::physical_device_supports_surface_and_profile(VkPhysicalDevice candidate_gpu, VkSurfaceKHR surface) const +{ +#ifdef GRANITE_VULKAN_PROFILES + if (!required_profile.empty()) + { + ProfileHolder holder{required_profile}; + if (!holder.profile) + return false; + + VkBool32 supported = VK_FALSE; + if (vpGetPhysicalDeviceProfileSupport(instance, candidate_gpu, holder.profile, &supported) != VK_SUCCESS || + !supported) + { + return false; + } + } +#endif + + if (surface == VK_NULL_HANDLE) + return true; + + VkPhysicalDeviceProperties dev_props; + vkGetPhysicalDeviceProperties(candidate_gpu, &dev_props); + if (dev_props.limits.maxUniformBufferRange < VULKAN_MAX_UBO_SIZE) + { + LOGW("Device does not support 64 KiB UBOs. Must be *ancient* mobile driver.\n"); + return false; + } + + if (dev_props.apiVersion < VK_API_VERSION_1_1) + { + LOGW("Device does not support Vulkan 1.1. Skipping.\n"); + return false; + } + + uint32_t family_count = 0; + vkGetPhysicalDeviceQueueFamilyProperties(candidate_gpu, &family_count, nullptr); + Util::SmallVector props(family_count); + vkGetPhysicalDeviceQueueFamilyProperties(candidate_gpu, &family_count, props.data()); + + for (uint32_t i = 0; i < family_count; i++) + { + // A graphics queue candidate must support present for us to select it. + if ((props[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) != 0) + { + VkBool32 supported = VK_FALSE; + if (vkGetPhysicalDeviceSurfaceSupportKHR(candidate_gpu, i, surface, &supported) == VK_SUCCESS && supported) + return true; + } + } + + return false; +} + +bool Context::create_device(VkPhysicalDevice gpu_, VkSurfaceKHR surface, + const char * const *required_device_extensions, uint32_t num_required_device_extensions, + const VkPhysicalDeviceFeatures *required_features, + ContextCreationFlags flags) +{ + gpu = gpu_; + if (gpu == VK_NULL_HANDLE) + { + uint32_t gpu_count = 0; + if (vkEnumeratePhysicalDevices(instance, &gpu_count, nullptr) != VK_SUCCESS) + return false; + + if (gpu_count == 0) + return false; + + std::vector gpus(gpu_count); + if (vkEnumeratePhysicalDevices(instance, &gpu_count, gpus.data()) != VK_SUCCESS) + return false; + + for (auto &g : gpus) + { + VkPhysicalDeviceProperties props; + vkGetPhysicalDeviceProperties(g, &props); + LOGI("Found Vulkan GPU: %s\n", props.deviceName); + LOGI(" API: %u.%u.%u\n", + VK_VERSION_MAJOR(props.apiVersion), + VK_VERSION_MINOR(props.apiVersion), + VK_VERSION_PATCH(props.apiVersion)); + LOGI(" Driver: %u.%u.%u\n", + VK_VERSION_MAJOR(props.driverVersion), + VK_VERSION_MINOR(props.driverVersion), + VK_VERSION_PATCH(props.driverVersion)); + } + + int gpu_index = Util::get_environment_int("GRANITE_VULKAN_DEVICE_INDEX", -1); + if (gpu_index >= 0 && gpu_index < int(gpu_count)) + gpu = gpus[gpu_index]; + + if (gpu != VK_NULL_HANDLE) + { + if (!physical_device_supports_surface_and_profile(gpu, surface)) + { + LOGE("Selected physical device which does not support surface.\n"); + gpu = VK_NULL_HANDLE; + } + } + + if (gpu == VK_NULL_HANDLE) + { + unsigned max_score = 0; + // Prefer earlier entries in list. + for (size_t i = gpus.size(); i; i--) + { + unsigned score = device_score(gpus[i - 1]); + if (score >= max_score && physical_device_supports_surface_and_profile(gpus[i - 1], surface)) + { + max_score = score; + gpu = gpus[i - 1]; + } + } + } + + if (gpu == VK_NULL_HANDLE) + { + LOGE("Found not GPU which supports surface.\n"); + return false; + } + } + else if (!physical_device_supports_surface_and_profile(gpu, surface)) + { + LOGE("Selected physical device does not support surface.\n"); + return false; + } + + std::vector queried_extensions; + +#ifdef GRANITE_VULKAN_PROFILES + // Only allow extensions that profile declares. + ProfileHolder profile{required_profile}; + if (profile.profile && required_profile_strict) + { + uint32_t ext_count = 0; + vpGetProfileDeviceExtensionProperties(profile.profile, &ext_count, nullptr); + queried_extensions.resize(ext_count); + if (ext_count) + vpGetProfileDeviceExtensionProperties(profile.profile, &ext_count, queried_extensions.data()); + } + else +#endif + { + uint32_t ext_count = 0; + vkEnumerateDeviceExtensionProperties(gpu, nullptr, &ext_count, nullptr); + queried_extensions.resize(ext_count); + if (ext_count) + vkEnumerateDeviceExtensionProperties(gpu, nullptr, &ext_count, queried_extensions.data()); + } + + const auto has_extension = [&](const char *name) -> bool { + auto itr = find_if(begin(queried_extensions), end(queried_extensions), [name](const VkExtensionProperties &e) -> bool { + return strcmp(e.extensionName, name) == 0; + }); + return itr != end(queried_extensions); + }; + + for (uint32_t i = 0; i < num_required_device_extensions; i++) + if (!has_extension(required_device_extensions[i])) + return false; + + vkGetPhysicalDeviceProperties(gpu, &gpu_props); + // We can use core device functionality if enabled VkInstance apiVersion and physical device supports it. + ext.device_api_core_version = std::min(ext.instance_api_core_version, gpu_props.apiVersion); + + LOGI("Using Vulkan GPU: %s\n", gpu_props.deviceName); + + // FFmpeg integration requires Vulkan 1.3 core for physical device. + uint32_t minimum_api_version = (flags & video_context_flags) ? VK_API_VERSION_1_3 : VK_API_VERSION_1_1; + if (ext.device_api_core_version < minimum_api_version && (flags & video_context_flags) != 0) + { + LOGW("Requested FFmpeg-enabled context, but Vulkan 1.3 was not supported. Falling back to 1.1 without support.\n"); + minimum_api_version = VK_API_VERSION_1_1; + flags &= ~video_context_flags; + } + + if (ext.device_api_core_version < minimum_api_version) + { + LOGE("Found no Vulkan GPU which supports Vulkan 1.%u.\n", + VK_API_VERSION_MINOR(minimum_api_version)); + return false; + } + + vkGetPhysicalDeviceMemoryProperties(gpu, &mem_props); + + uint32_t queue_family_count = 0; + vkGetPhysicalDeviceQueueFamilyProperties2(gpu, &queue_family_count, nullptr); + Util::SmallVector queue_props(queue_family_count); + Util::SmallVector video_queue_props2(queue_family_count); + + if ((flags & video_context_flags) != 0 && has_extension(VK_KHR_VIDEO_QUEUE_EXTENSION_NAME)) + ext.supports_video_queue = true; + + for (uint32_t i = 0; i < queue_family_count; i++) + { + queue_props[i].sType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2; + if (ext.supports_video_queue) + { + queue_props[i].pNext = &video_queue_props2[i]; + video_queue_props2[i].sType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR; + } + } + + Util::SmallVector queue_offsets(queue_family_count); + Util::SmallVector> queue_priorities(queue_family_count); + vkGetPhysicalDeviceQueueFamilyProperties2(gpu, &queue_family_count, queue_props.data()); + + queue_info = {}; + uint32_t queue_indices[QUEUE_INDEX_COUNT] = {}; + + const auto find_vacant_queue = [&](uint32_t &family, uint32_t &index, + VkQueueFlags required, VkQueueFlags ignore_flags, + float priority) -> bool { + for (unsigned family_index = 0; family_index < queue_family_count; family_index++) + { + if ((queue_props[family_index].queueFamilyProperties.queueFlags & ignore_flags) != 0) + continue; + + // A graphics queue candidate must support present for us to select it. + if ((required & VK_QUEUE_GRAPHICS_BIT) != 0 && surface != VK_NULL_HANDLE) + { + VkBool32 supported = VK_FALSE; + if (vkGetPhysicalDeviceSurfaceSupportKHR(gpu, family_index, surface, &supported) != VK_SUCCESS || !supported) + continue; + } + + if (queue_props[family_index].queueFamilyProperties.queueCount && + (queue_props[family_index].queueFamilyProperties.queueFlags & required) == required) + { + family = family_index; + queue_props[family_index].queueFamilyProperties.queueCount--; + index = queue_offsets[family_index]++; + queue_priorities[family_index].push_back(priority); + return true; + } + } + + return false; + }; + + if (!find_vacant_queue(queue_info.family_indices[QUEUE_INDEX_GRAPHICS], + queue_indices[QUEUE_INDEX_GRAPHICS], + VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, 0, 0.5f)) + { + LOGE("Could not find suitable graphics queue.\n"); + return false; + } + + // XXX: This assumes timestamp valid bits is the same for all queue types. + queue_info.timestamp_valid_bits = + queue_props[queue_info.family_indices[QUEUE_INDEX_GRAPHICS]].queueFamilyProperties.timestampValidBits; + + // Prefer standalone compute queue. If not, fall back to another graphics queue. + if (!find_vacant_queue(queue_info.family_indices[QUEUE_INDEX_COMPUTE], queue_indices[QUEUE_INDEX_COMPUTE], + VK_QUEUE_COMPUTE_BIT, VK_QUEUE_GRAPHICS_BIT, 0.5f) && + !find_vacant_queue(queue_info.family_indices[QUEUE_INDEX_COMPUTE], queue_indices[QUEUE_INDEX_COMPUTE], + VK_QUEUE_COMPUTE_BIT, 0, 0.5f)) + { + // Fallback to the graphics queue if we must. + queue_info.family_indices[QUEUE_INDEX_COMPUTE] = queue_info.family_indices[QUEUE_INDEX_GRAPHICS]; + queue_indices[QUEUE_INDEX_COMPUTE] = queue_indices[QUEUE_INDEX_GRAPHICS]; + } + + // For transfer, try to find a queue which only supports transfer, e.g. DMA queue. + // If not, fallback to a dedicated compute queue. + // Finally, fallback to same queue as compute. + if (!find_vacant_queue(queue_info.family_indices[QUEUE_INDEX_TRANSFER], queue_indices[QUEUE_INDEX_TRANSFER], + VK_QUEUE_TRANSFER_BIT, VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT, 0.5f) && + !find_vacant_queue(queue_info.family_indices[QUEUE_INDEX_TRANSFER], queue_indices[QUEUE_INDEX_TRANSFER], + VK_QUEUE_COMPUTE_BIT, VK_QUEUE_GRAPHICS_BIT, 0.5f)) + { + queue_info.family_indices[QUEUE_INDEX_TRANSFER] = queue_info.family_indices[QUEUE_INDEX_COMPUTE]; + queue_indices[QUEUE_INDEX_TRANSFER] = queue_indices[QUEUE_INDEX_COMPUTE]; + } + + if (ext.supports_video_queue) + { + if ((flags & CONTEXT_CREATION_ENABLE_VIDEO_DECODE_BIT) != 0) + { + if (!find_vacant_queue(queue_info.family_indices[QUEUE_INDEX_VIDEO_DECODE], + queue_indices[QUEUE_INDEX_VIDEO_DECODE], + VK_QUEUE_VIDEO_DECODE_BIT_KHR, 0, 0.5f)) + { + queue_info.family_indices[QUEUE_INDEX_VIDEO_DECODE] = VK_QUEUE_FAMILY_IGNORED; + queue_indices[QUEUE_INDEX_VIDEO_DECODE] = UINT32_MAX; + } + } + + if ((flags & CONTEXT_CREATION_ENABLE_VIDEO_ENCODE_BIT) != 0) + { + if (!find_vacant_queue(queue_info.family_indices[QUEUE_INDEX_VIDEO_ENCODE], + queue_indices[QUEUE_INDEX_VIDEO_ENCODE], + VK_QUEUE_VIDEO_ENCODE_BIT_KHR, 0, 0.5f)) + { + queue_info.family_indices[QUEUE_INDEX_VIDEO_ENCODE] = VK_QUEUE_FAMILY_IGNORED; + queue_indices[QUEUE_INDEX_VIDEO_ENCODE] = UINT32_MAX; + } + } + } + + VkDeviceCreateInfo device_info = { VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO }; + + Util::SmallVector queue_infos; + for (uint32_t family_index = 0; family_index < queue_family_count; family_index++) + { + if (queue_offsets[family_index] == 0) + continue; + + VkDeviceQueueCreateInfo info = { VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO }; + info.queueFamilyIndex = family_index; + info.queueCount = queue_offsets[family_index]; + info.pQueuePriorities = queue_priorities[family_index].data(); + queue_infos.push_back(info); + } + device_info.pQueueCreateInfos = queue_infos.data(); + device_info.queueCreateInfoCount = uint32_t(queue_infos.size()); + + std::vector enabled_extensions; + + bool requires_swapchain = false; + for (uint32_t i = 0; i < num_required_device_extensions; i++) + { + enabled_extensions.push_back(required_device_extensions[i]); + if (strcmp(required_device_extensions[i], VK_KHR_SWAPCHAIN_EXTENSION_NAME) == 0) + requires_swapchain = true; + else if (strcmp(required_device_extensions[i], VK_KHR_PRESENT_ID_EXTENSION_NAME) == 0 || + strcmp(required_device_extensions[i], VK_KHR_PRESENT_WAIT_EXTENSION_NAME) == 0 || + strcmp(required_device_extensions[i], VK_EXT_HDR_METADATA_EXTENSION_NAME) == 0 || + strcmp(required_device_extensions[i], VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME) == 0) + { + flags |= CONTEXT_CREATION_ENABLE_ADVANCED_WSI_BIT; + } + } + +#if defined(ANDROID) && defined(HAVE_SWAPPY) + // Enable additional extensions required by SwappyVk. + std::unique_ptr swappy_str_buffer; + if (requires_swapchain) + { + uint32_t required_swappy_extension_count = 0; + + // I'm really not sure why the API just didn't return static const char * strings here, + // but oh well. + SwappyVk_determineDeviceExtensions(gpu, uint32_t(queried_extensions.size()), + queried_extensions.data(), + &required_swappy_extension_count, + nullptr); + swappy_str_buffer.reset(new char[required_swappy_extension_count * (VK_MAX_EXTENSION_NAME_SIZE + 1)]); + + std::vector extension_buffer; + extension_buffer.reserve(required_swappy_extension_count); + for (uint32_t i = 0; i < required_swappy_extension_count; i++) + extension_buffer.push_back(swappy_str_buffer.get() + i * (VK_MAX_EXTENSION_NAME_SIZE + 1)); + SwappyVk_determineDeviceExtensions(gpu, uint32_t(queried_extensions.size()), + queried_extensions.data(), + &required_swappy_extension_count, + extension_buffer.data()); + + for (auto *required_ext : extension_buffer) + enabled_extensions.push_back(required_ext); + } +#endif + +#ifdef _WIN32 + if (ext.supports_surface_capabilities2 && has_extension(VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME)) + { + ext.supports_full_screen_exclusive = true; + enabled_extensions.push_back(VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME); + } +#endif + + if ( +#ifdef _WIN32 + has_extension(VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME) && + has_extension(VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME) +#else + has_extension(VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME) && + has_extension(VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME) +#endif + ) + { + ext.supports_external = true; +#ifdef _WIN32 + enabled_extensions.push_back(VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME); + enabled_extensions.push_back(VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME); +#else + enabled_extensions.push_back(VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME); + enabled_extensions.push_back(VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME); +#endif + } + else + ext.supports_external = false; + + if (has_extension(VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME)) + { + ext.supports_calibrated_timestamps = true; + enabled_extensions.push_back(VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME); + } + + if (has_extension(VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME); + ext.supports_conservative_rasterization = true; + } + + if (ext.device_api_core_version < VK_API_VERSION_1_2) + { + if (!has_extension(VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME)) + { + LOGE("VK_KHR_create_renderpass2 is not supported.\n"); + return false; + } + + enabled_extensions.push_back(VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME); + + if (has_extension(VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME)) + { + ext.supports_image_format_list = true; + enabled_extensions.push_back(VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME); + } + } + else + ext.supports_image_format_list = true; + + // Physical device functionality. + ext.supports_format_feature_flags2 = ext.device_api_core_version >= VK_API_VERSION_1_3 || + has_extension(VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME); + + if (has_extension(VK_EXT_TOOLING_INFO_EXTENSION_NAME)) + ext.supports_tooling_info = true; + + if (ext.supports_video_queue) + { + enabled_extensions.push_back(VK_KHR_VIDEO_QUEUE_EXTENSION_NAME); + + if ((flags & CONTEXT_CREATION_ENABLE_VIDEO_DECODE_BIT) != 0 && + has_extension(VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME); + ext.supports_video_decode_queue = true; + + if ((flags & CONTEXT_CREATION_ENABLE_VIDEO_H264_BIT) != 0 && + has_extension(VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME); + + if (queue_info.family_indices[QUEUE_INDEX_VIDEO_DECODE] != VK_QUEUE_FAMILY_IGNORED) + { + ext.supports_video_decode_h264 = + (video_queue_props2[queue_info.family_indices[QUEUE_INDEX_VIDEO_DECODE]].videoCodecOperations & + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR) != 0; + } + } + + if ((flags & CONTEXT_CREATION_ENABLE_VIDEO_H265_BIT) != 0 && + has_extension(VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME); + + if (queue_info.family_indices[QUEUE_INDEX_VIDEO_DECODE] != VK_QUEUE_FAMILY_IGNORED) + { + ext.supports_video_decode_h265 = + (video_queue_props2[queue_info.family_indices[QUEUE_INDEX_VIDEO_DECODE]].videoCodecOperations & + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR) != 0; + } + } + } + + if ((flags & CONTEXT_CREATION_ENABLE_VIDEO_ENCODE_BIT) != 0 && + has_extension(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME); + ext.supports_video_encode_queue = true; + + if ((flags & CONTEXT_CREATION_ENABLE_VIDEO_H264_BIT) != 0 && + has_extension(VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME); + + if (queue_info.family_indices[QUEUE_INDEX_VIDEO_ENCODE] != VK_QUEUE_FAMILY_IGNORED) + { + ext.supports_video_encode_h264 = + (video_queue_props2[queue_info.family_indices[QUEUE_INDEX_VIDEO_ENCODE]].videoCodecOperations & + VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR) != 0; + } + } + + if ((flags & CONTEXT_CREATION_ENABLE_VIDEO_H265_BIT) != 0 && + has_extension(VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME); + + if (queue_info.family_indices[QUEUE_INDEX_VIDEO_ENCODE] != VK_QUEUE_FAMILY_IGNORED) + { + ext.supports_video_encode_h265 = + (video_queue_props2[queue_info.family_indices[QUEUE_INDEX_VIDEO_ENCODE]].videoCodecOperations & + VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR) != 0; + } + } + } + } + + pdf2 = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 }; + void **ppNext = &pdf2.pNext; + +#define ADD_CHAIN(s, type) do { \ + s.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ ## type; \ + s.pNext = nullptr; \ + *ppNext = &(s); \ + ppNext = &((s).pNext); \ +} while(0) + + if (ext.device_api_core_version >= VK_API_VERSION_1_2) + { + ADD_CHAIN(ext.vk11_features, VULKAN_1_1_FEATURES); + ADD_CHAIN(ext.vk12_features, VULKAN_1_2_FEATURES); + } + else + { + if (has_extension(VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME)) + ADD_CHAIN(ext.host_query_reset_features, HOST_QUERY_RESET_FEATURES); + + if (has_extension(VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME)) + { + ADD_CHAIN(ext.float16_int8_features, FLOAT16_INT8_FEATURES_KHR); + enabled_extensions.push_back(VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME); + } + + if (has_extension(VK_KHR_16BIT_STORAGE_EXTENSION_NAME)) + { + ADD_CHAIN(ext.storage_16bit_features, 16BIT_STORAGE_FEATURES_KHR); + enabled_extensions.push_back(VK_KHR_16BIT_STORAGE_EXTENSION_NAME); + } + + if (has_extension(VK_KHR_8BIT_STORAGE_EXTENSION_NAME)) + { + ADD_CHAIN(ext.storage_8bit_features, 8BIT_STORAGE_FEATURES_KHR); + enabled_extensions.push_back(VK_KHR_8BIT_STORAGE_EXTENSION_NAME); + } + } + + if (ext.device_api_core_version >= VK_API_VERSION_1_3) + { + ADD_CHAIN(ext.vk13_features, VULKAN_1_3_FEATURES); + } + else + { + if (has_extension(VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME)) + { + ADD_CHAIN(ext.subgroup_size_control_features, SUBGROUP_SIZE_CONTROL_FEATURES_EXT); + enabled_extensions.push_back(VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME); + } + } + + if (has_extension(VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME); + ADD_CHAIN(ext.compute_shader_derivative_features, COMPUTE_SHADER_DERIVATIVES_FEATURES_NV); + } + + if (has_extension(VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME); + ADD_CHAIN(ext.performance_query_features, PERFORMANCE_QUERY_FEATURES_KHR); + } + + if (has_extension(VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME); + ADD_CHAIN(ext.memory_priority_features, MEMORY_PRIORITY_FEATURES_EXT); + } + + if (has_extension(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME); + ext.supports_memory_budget = true; + } + + if (has_extension(VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME)) + { + ext.supports_astc_decode_mode = true; + enabled_extensions.push_back(VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME); + ADD_CHAIN(ext.astc_decode_features, ASTC_DECODE_FEATURES_EXT); + } + + if (has_extension(VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME); + ADD_CHAIN(ext.pageable_device_local_memory_features, PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT); + } + + if (has_extension(VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME); + ADD_CHAIN(ext.device_generated_commands_features, DEVICE_GENERATED_COMMANDS_FEATURES_NV); + } + + if (has_extension(VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME); + ADD_CHAIN(ext.device_generated_commands_compute_features, DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV); + } + + if (has_extension(VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME); + ADD_CHAIN(ext.descriptor_pool_overallocation_features, DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV); + } + + if (has_extension(VK_EXT_MESH_SHADER_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_MESH_SHADER_EXTENSION_NAME); + ADD_CHAIN(ext.mesh_shader_features, MESH_SHADER_FEATURES_EXT); + } + + if (has_extension(VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME); + ADD_CHAIN(ext.index_type_uint8_features, INDEX_TYPE_UINT8_FEATURES_EXT); + } + + if (has_extension(VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME); + ADD_CHAIN(ext.rgba10x6_formats_features, RGBA10X6_FORMATS_FEATURES_EXT); + } + + if (has_extension(VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME)) + { + ext.supports_external_memory_host = true; + enabled_extensions.push_back(VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME); + } + + if (has_extension(VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME); + ADD_CHAIN(ext.barycentric_features, FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR); + } + + if (ext.supports_video_queue && has_extension(VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME); + ADD_CHAIN(ext.video_maintenance1_features, VIDEO_MAINTENANCE_1_FEATURES_KHR); + } + + if (has_extension(VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME); + ext.supports_push_descriptor = true; + } + + if (has_extension(VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME); + ADD_CHAIN(ext.image_compression_control_features, IMAGE_COMPRESSION_CONTROL_FEATURES_EXT); + } + + if (has_extension(VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME); + ADD_CHAIN(ext.image_compression_control_swapchain_features, IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT); + } + + if (ext.device_api_core_version >= VK_API_VERSION_1_3) + { + ext.supports_store_op_none = true; + } + else if (has_extension(VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME)) + { + ext.supports_store_op_none = true; + enabled_extensions.push_back(VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME); + } + else if (has_extension(VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME)) + { + ext.supports_store_op_none = true; + enabled_extensions.push_back(VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME); + } + + if ((flags & CONTEXT_CREATION_ENABLE_ADVANCED_WSI_BIT) != 0 && requires_swapchain) + { + if (has_extension(VK_KHR_PRESENT_ID_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_PRESENT_ID_EXTENSION_NAME); + ADD_CHAIN(ext.present_id_features, PRESENT_ID_FEATURES_KHR); + } + + if (has_extension(VK_KHR_PRESENT_WAIT_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_KHR_PRESENT_WAIT_EXTENSION_NAME); + ADD_CHAIN(ext.present_wait_features, PRESENT_WAIT_FEATURES_KHR); + } + + if (ext.supports_surface_maintenance1 && has_extension(VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME)) + { + enabled_extensions.push_back(VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME); + ADD_CHAIN(ext.swapchain_maintenance1_features, SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT); + } + + if (ext.supports_swapchain_colorspace && has_extension(VK_EXT_HDR_METADATA_EXTENSION_NAME)) + { + ext.supports_hdr_metadata = true; + enabled_extensions.push_back(VK_EXT_HDR_METADATA_EXTENSION_NAME); + } + } + +#ifdef GRANITE_VULKAN_PROFILES + // Override any features in the profile in strict mode. + if (profile.profile && required_profile_strict) + { + vpGetProfileFeatures(profile.profile, &pdf2); + } + else +#endif + { + vkGetPhysicalDeviceFeatures2(gpu, &pdf2); + } + + // Promote fallback features to core structs. + if (ext.host_query_reset_features.hostQueryReset) + ext.vk12_features.hostQueryReset = VK_TRUE; + + if (ext.storage_16bit_features.storageBuffer16BitAccess) + ext.vk11_features.storageBuffer16BitAccess = VK_TRUE; + if (ext.storage_16bit_features.storageInputOutput16) + ext.vk11_features.storageInputOutput16 = VK_TRUE; + if (ext.storage_16bit_features.storagePushConstant16) + ext.vk11_features.storagePushConstant16 = VK_TRUE; + if (ext.storage_16bit_features.uniformAndStorageBuffer16BitAccess) + ext.vk11_features.uniformAndStorageBuffer16BitAccess = VK_TRUE; + + if (ext.storage_8bit_features.storageBuffer8BitAccess) + ext.vk12_features.storageBuffer8BitAccess = VK_TRUE; + if (ext.storage_8bit_features.storagePushConstant8) + ext.vk12_features.storagePushConstant8 = VK_TRUE; + if (ext.storage_8bit_features.uniformAndStorageBuffer8BitAccess) + ext.vk12_features.uniformAndStorageBuffer8BitAccess = VK_TRUE; + + if (ext.float16_int8_features.shaderFloat16) + ext.vk12_features.shaderFloat16 = VK_TRUE; + if (ext.float16_int8_features.shaderInt8) + ext.vk12_features.shaderInt8 = VK_TRUE; + + if (ext.subgroup_size_control_features.computeFullSubgroups) + ext.vk13_features.computeFullSubgroups = VK_TRUE; + if (ext.subgroup_size_control_features.subgroupSizeControl) + ext.vk13_features.subgroupSizeControl = VK_TRUE; + /// + + ext.vk11_features.multiviewGeometryShader = VK_FALSE; + ext.vk11_features.multiviewTessellationShader = VK_FALSE; + ext.vk11_features.protectedMemory = VK_FALSE; + ext.vk11_features.variablePointers = VK_FALSE; + ext.vk11_features.variablePointersStorageBuffer = VK_FALSE; + + ext.vk12_features.bufferDeviceAddressCaptureReplay = VK_FALSE; + ext.vk12_features.bufferDeviceAddressMultiDevice = VK_FALSE; + ext.vk12_features.imagelessFramebuffer = VK_FALSE; + + ext.vk13_features.descriptorBindingInlineUniformBlockUpdateAfterBind = VK_FALSE; + ext.vk13_features.inlineUniformBlock = VK_FALSE; + ext.vk13_features.privateData = VK_FALSE; + + ext.mesh_shader_features.primitiveFragmentShadingRateMeshShader = VK_FALSE; + ext.mesh_shader_features.meshShaderQueries = VK_FALSE; + ext.mesh_shader_features.multiviewMeshShader = VK_FALSE; + + ext.device_generated_commands_compute_features.deviceGeneratedComputeCaptureReplay = VK_FALSE; + // TODO + ext.device_generated_commands_compute_features.deviceGeneratedComputePipelines = VK_FALSE; + + // Enable device features we might care about. + { + VkPhysicalDeviceFeatures enabled_features = *required_features; + if (pdf2.features.textureCompressionETC2) + enabled_features.textureCompressionETC2 = VK_TRUE; + if (pdf2.features.textureCompressionBC) + enabled_features.textureCompressionBC = VK_TRUE; + if (pdf2.features.textureCompressionASTC_LDR) + enabled_features.textureCompressionASTC_LDR = VK_TRUE; + if (pdf2.features.fullDrawIndexUint32) + enabled_features.fullDrawIndexUint32 = VK_TRUE; + if (pdf2.features.imageCubeArray) + enabled_features.imageCubeArray = VK_TRUE; + if (pdf2.features.fillModeNonSolid) + enabled_features.fillModeNonSolid = VK_TRUE; + if (pdf2.features.independentBlend) + enabled_features.independentBlend = VK_TRUE; + if (pdf2.features.sampleRateShading) + enabled_features.sampleRateShading = VK_TRUE; + if (pdf2.features.fragmentStoresAndAtomics) + enabled_features.fragmentStoresAndAtomics = VK_TRUE; + if (pdf2.features.shaderStorageImageExtendedFormats) + enabled_features.shaderStorageImageExtendedFormats = VK_TRUE; + if (pdf2.features.shaderStorageImageMultisample) + enabled_features.shaderStorageImageMultisample = VK_TRUE; + if (pdf2.features.largePoints) + enabled_features.largePoints = VK_TRUE; + if (pdf2.features.shaderInt16) + enabled_features.shaderInt16 = VK_TRUE; + if (pdf2.features.shaderInt64) + enabled_features.shaderInt64 = VK_TRUE; + if (pdf2.features.shaderStorageImageWriteWithoutFormat) + enabled_features.shaderStorageImageWriteWithoutFormat = VK_TRUE; + if (pdf2.features.shaderStorageImageReadWithoutFormat) + enabled_features.shaderStorageImageReadWithoutFormat = VK_TRUE; + if (pdf2.features.multiDrawIndirect) + enabled_features.multiDrawIndirect = VK_TRUE; + + if (pdf2.features.shaderSampledImageArrayDynamicIndexing) + enabled_features.shaderSampledImageArrayDynamicIndexing = VK_TRUE; + if (pdf2.features.shaderUniformBufferArrayDynamicIndexing) + enabled_features.shaderUniformBufferArrayDynamicIndexing = VK_TRUE; + if (pdf2.features.shaderStorageBufferArrayDynamicIndexing) + enabled_features.shaderStorageBufferArrayDynamicIndexing = VK_TRUE; + if (pdf2.features.shaderStorageImageArrayDynamicIndexing) + enabled_features.shaderStorageImageArrayDynamicIndexing = VK_TRUE; + if (pdf2.features.shaderImageGatherExtended) + enabled_features.shaderImageGatherExtended = VK_TRUE; + + if (pdf2.features.samplerAnisotropy) + enabled_features.samplerAnisotropy = VK_TRUE; + + pdf2.features = enabled_features; + ext.enabled_features = enabled_features; + } + + device_info.pNext = &pdf2; + + // Only need GetPhysicalDeviceProperties2 for Vulkan 1.1-only code, so don't bother getting KHR variant. + VkPhysicalDeviceProperties2 props = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 }; + // Fallback, query some important Vulkan 1.1 structs if we cannot use core 1.2 method. + VkPhysicalDeviceDriverProperties driver_properties = {}; + VkPhysicalDeviceIDProperties id_properties = {}; + VkPhysicalDeviceSubgroupProperties subgroup_properties = {}; + VkPhysicalDeviceSubgroupSizeControlProperties size_control_props = {}; + ppNext = &props.pNext; + + if (ext.device_api_core_version >= VK_API_VERSION_1_2) + { + ADD_CHAIN(ext.vk11_props, VULKAN_1_1_PROPERTIES); + ADD_CHAIN(ext.vk12_props, VULKAN_1_2_PROPERTIES); + } + else + { + if (has_extension(VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME)) + ADD_CHAIN(driver_properties, DRIVER_PROPERTIES); + ADD_CHAIN(id_properties, ID_PROPERTIES); + ADD_CHAIN(subgroup_properties, SUBGROUP_PROPERTIES); + } + + if (ext.device_api_core_version >= VK_API_VERSION_1_3) + ADD_CHAIN(ext.vk13_props, VULKAN_1_3_PROPERTIES); + else if (has_extension(VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME)) + ADD_CHAIN(size_control_props, SUBGROUP_SIZE_CONTROL_PROPERTIES); + + if (ext.supports_external_memory_host) + ADD_CHAIN(ext.host_memory_properties, EXTERNAL_MEMORY_HOST_PROPERTIES_EXT); + + if (has_extension(VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME)) + ADD_CHAIN(ext.device_generated_commands_properties, DEVICE_GENERATED_COMMANDS_PROPERTIES_NV); + + if (ext.supports_conservative_rasterization) + ADD_CHAIN(ext.conservative_rasterization_properties, CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT); + + if (has_extension(VK_EXT_MESH_SHADER_EXTENSION_NAME)) + ADD_CHAIN(ext.mesh_shader_properties, MESH_SHADER_PROPERTIES_EXT); + + vkGetPhysicalDeviceProperties2(gpu, &props); + + if (ext.device_api_core_version < VK_API_VERSION_1_2) + { + ext.driver_id = driver_properties.driverID; + ext.supports_driver_properties = has_extension(VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME); + ext.vk12_props.driverID = ext.driver_id; + memcpy(ext.vk11_props.deviceUUID, id_properties.deviceUUID, sizeof(id_properties.deviceUUID)); + memcpy(ext.vk11_props.driverUUID, id_properties.driverUUID, sizeof(id_properties.driverUUID)); + memcpy(ext.vk11_props.deviceLUID, id_properties.deviceLUID, sizeof(id_properties.deviceLUID)); + ext.vk11_props.deviceNodeMask = id_properties.deviceNodeMask; + ext.vk11_props.deviceLUIDValid = id_properties.deviceLUIDValid; + ext.vk11_props.subgroupQuadOperationsInAllStages = subgroup_properties.quadOperationsInAllStages; + ext.vk11_props.subgroupSupportedOperations = subgroup_properties.supportedOperations; + ext.vk11_props.subgroupSupportedStages = subgroup_properties.supportedStages; + ext.vk11_props.subgroupSize = subgroup_properties.subgroupSize; + } + else + { + ext.driver_id = ext.vk12_props.driverID; + ext.supports_driver_properties = true; + } + + if (ext.device_api_core_version < VK_API_VERSION_1_3) + { + ext.vk13_props.minSubgroupSize = size_control_props.minSubgroupSize; + ext.vk13_props.maxSubgroupSize = size_control_props.maxSubgroupSize; + ext.vk13_props.requiredSubgroupSizeStages = size_control_props.requiredSubgroupSizeStages; + ext.vk13_props.maxComputeWorkgroupSubgroups = size_control_props.maxComputeWorkgroupSubgroups; + } + +#ifdef GRANITE_VULKAN_PROFILES + // Override any properties in the profile in strict mode. + if (profile.profile && required_profile_strict) + vpGetProfileProperties(profile.profile, &props); +#endif + + device_info.enabledExtensionCount = enabled_extensions.size(); + device_info.ppEnabledExtensionNames = enabled_extensions.empty() ? nullptr : enabled_extensions.data(); + + for (auto *enabled_extension : enabled_extensions) + LOGI("Enabling device extension: %s.\n", enabled_extension); + +#ifdef GRANITE_VULKAN_PROFILES + if (!required_profile.empty()) + { + if (create_device_from_profile(device_info, &device) != VK_SUCCESS) + return false; + } + else +#endif + { + if (device_factory) + { + device = device_factory->create_device(gpu, &device_info); + if (device == VK_NULL_HANDLE) + return false; + } + else if (vkCreateDevice(gpu, &device_info, nullptr, &device) != VK_SUCCESS) + return false; + } + + enabled_device_extensions = std::move(enabled_extensions); + ext.device_extensions = enabled_device_extensions.data(); + ext.num_device_extensions = uint32_t(enabled_device_extensions.size()); + ext.pdf2 = &pdf2; + +#ifdef GRANITE_VULKAN_FOSSILIZE + feature_filter.init(ext.device_api_core_version, + enabled_device_extensions.data(), + device_info.enabledExtensionCount, + &pdf2, &props); + feature_filter.set_device_query_interface(this); +#endif + + volkLoadDeviceTable(&device_table, device); + + if (!device_table.vkCreateRenderPass2) + device_table.vkCreateRenderPass2 = device_table.vkCreateRenderPass2KHR; + if (!device_table.vkResetQueryPool) + device_table.vkResetQueryPool = device_table.vkResetQueryPoolEXT; + + for (int i = 0; i < QUEUE_INDEX_COUNT; i++) + { + if (queue_info.family_indices[i] != VK_QUEUE_FAMILY_IGNORED) + { + device_table.vkGetDeviceQueue(device, queue_info.family_indices[i], queue_indices[i], + &queue_info.queues[i]); + + queue_info.counts[i] = queue_offsets[queue_info.family_indices[i]]; + +#if defined(ANDROID) && defined(HAVE_SWAPPY) + SwappyVk_setQueueFamilyIndex(device, queue_info.queues[i], queue_info.family_indices[i]); +#endif + } + else + { + queue_info.queues[i] = VK_NULL_HANDLE; + } + } + +#ifdef VULKAN_DEBUG + static const char *family_names[QUEUE_INDEX_COUNT] = { "Graphics", "Compute", "Transfer", "Video decode", "Video encode" }; + for (int i = 0; i < QUEUE_INDEX_COUNT; i++) + if (queue_info.family_indices[i] != VK_QUEUE_FAMILY_IGNORED) + LOGI("%s queue: family %u, index %u.\n", family_names[i], queue_info.family_indices[i], queue_indices[i]); +#endif + + return true; +} + +#ifdef GRANITE_VULKAN_FOSSILIZE +bool Context::format_is_supported(VkFormat format, VkFormatFeatureFlags features) +{ + if (gpu == VK_NULL_HANDLE) + return false; + + VkFormatProperties props; + vkGetPhysicalDeviceFormatProperties(gpu, format, &props); + auto supported = props.bufferFeatures | props.linearTilingFeatures | props.optimalTilingFeatures; + return (supported & features) == features; +} + +bool Context::descriptor_set_layout_is_supported(const VkDescriptorSetLayoutCreateInfo *set_layout) +{ + if (device == VK_NULL_HANDLE) + return false; + + VkDescriptorSetLayoutSupport support = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT }; + vkGetDescriptorSetLayoutSupport(device, set_layout, &support); + return support.supported == VK_TRUE; +} +#endif +} diff --git a/vulkan/context.hpp b/vulkan/context.hpp new file mode 100644 index 00000000..830f4b73 --- /dev/null +++ b/vulkan/context.hpp @@ -0,0 +1,402 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include "logging.hpp" +#include "vulkan_common.hpp" +#include +#include + +#ifdef GRANITE_VULKAN_FOSSILIZE +#include "cli/fossilize_feature_filter.hpp" +#endif + +namespace Util +{ +class TimelineTraceFile; +} + +namespace Granite +{ +class Filesystem; +class ThreadGroup; +class AssetManager; +} + +namespace Vulkan +{ +struct DeviceFeatures +{ + bool supports_debug_utils = false; + bool supports_external_memory_host = false; + bool supports_surface_capabilities2 = false; + bool supports_full_screen_exclusive = false; + bool supports_conservative_rasterization = false; + bool supports_calibrated_timestamps = false; + bool supports_memory_budget = false; + bool supports_video_queue = false; + bool supports_driver_properties = false; + bool supports_video_decode_queue = false; + bool supports_video_decode_h264 = false; + bool supports_video_decode_h265 = false; + bool supports_astc_decode_mode = false; + bool supports_image_format_list = false; + bool supports_format_feature_flags2 = false; + bool supports_video_encode_queue = false; + bool supports_video_encode_h264 = false; + bool supports_video_encode_h265 = false; + bool supports_external = false; + bool supports_tooling_info = false; + bool supports_hdr_metadata = false; + bool supports_swapchain_colorspace = false; + bool supports_surface_maintenance1 = false; + bool supports_store_op_none = false; + bool supports_push_descriptor = false; + + VkPhysicalDeviceFeatures enabled_features = {}; + + VkPhysicalDeviceVulkan11Features vk11_features = {}; + VkPhysicalDeviceVulkan12Features vk12_features = {}; + VkPhysicalDeviceVulkan13Features vk13_features = {}; + VkPhysicalDeviceVulkan11Properties vk11_props = {}; + VkPhysicalDeviceVulkan12Properties vk12_props = {}; + VkPhysicalDeviceVulkan13Properties vk13_props = {}; + + // KHR + VkPhysicalDevicePerformanceQueryFeaturesKHR performance_query_features = {}; + VkPhysicalDevicePresentIdFeaturesKHR present_id_features = {}; + VkPhysicalDevicePresentWaitFeaturesKHR present_wait_features = {}; + VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR barycentric_features = {}; + VkPhysicalDeviceVideoMaintenance1FeaturesKHR video_maintenance1_features = {}; + + // EXT + VkPhysicalDeviceExternalMemoryHostPropertiesEXT host_memory_properties = {}; + VkPhysicalDeviceConservativeRasterizationPropertiesEXT conservative_rasterization_properties = {}; + VkPhysicalDeviceMemoryPriorityFeaturesEXT memory_priority_features = {}; + VkPhysicalDeviceASTCDecodeFeaturesEXT astc_decode_features = {}; + VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT swapchain_maintenance1_features = {}; + VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT pageable_device_local_memory_features = {}; + VkPhysicalDeviceMeshShaderFeaturesEXT mesh_shader_features = {}; + VkPhysicalDeviceMeshShaderPropertiesEXT mesh_shader_properties = {}; + VkPhysicalDeviceIndexTypeUint8FeaturesEXT index_type_uint8_features = {}; + VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT rgba10x6_formats_features = {}; + VkPhysicalDeviceImageCompressionControlFeaturesEXT image_compression_control_features = {}; + VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT image_compression_control_swapchain_features = {}; + + // Vendor + VkPhysicalDeviceComputeShaderDerivativesFeaturesNV compute_shader_derivative_features = {}; + VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV device_generated_commands_features = {}; + VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV device_generated_commands_compute_features = {}; + VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV device_generated_commands_properties = {}; + VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV descriptor_pool_overallocation_features = {}; + + // Fallback feature structs (Vulkan 1.1) + VkPhysicalDeviceHostQueryResetFeatures host_query_reset_features = {}; + VkPhysicalDevice16BitStorageFeaturesKHR storage_16bit_features = {}; + // Fallback feature structs (Vulkan 1.2) + VkPhysicalDeviceFloat16Int8FeaturesKHR float16_int8_features = {}; + VkPhysicalDevice8BitStorageFeaturesKHR storage_8bit_features = {}; + // Fallback feature structs (Vulkan 1.3) + VkPhysicalDeviceSubgroupSizeControlFeatures subgroup_size_control_features = {}; + + VkDriverId driver_id = {}; + + // References Vulkan::Context. + const VkPhysicalDeviceFeatures2 *pdf2 = nullptr; + const char * const * instance_extensions = nullptr; + uint32_t num_instance_extensions = 0; + const char * const * device_extensions = nullptr; + uint32_t num_device_extensions = 0; + + uint32_t instance_api_core_version = VK_API_VERSION_1_1; + uint32_t device_api_core_version = VK_API_VERSION_1_1; +}; + +enum VendorID +{ + VENDOR_ID_AMD = 0x1002, + VENDOR_ID_NVIDIA = 0x10de, + VENDOR_ID_INTEL = 0x8086, + VENDOR_ID_ARM = 0x13b5, + VENDOR_ID_QCOM = 0x5143 +}; + +enum ContextCreationFlagBits +{ + CONTEXT_CREATION_ENABLE_ADVANCED_WSI_BIT = 1 << 0, + CONTEXT_CREATION_ENABLE_VIDEO_DECODE_BIT = 1 << 1, + CONTEXT_CREATION_ENABLE_VIDEO_ENCODE_BIT = 1 << 2, + CONTEXT_CREATION_ENABLE_VIDEO_H264_BIT = 1 << 3, + CONTEXT_CREATION_ENABLE_VIDEO_H265_BIT = 1 << 4 +}; +using ContextCreationFlags = uint32_t; + +struct QueueInfo +{ + QueueInfo(); + VkQueue queues[QUEUE_INDEX_COUNT] = {}; + uint32_t family_indices[QUEUE_INDEX_COUNT]; + uint32_t counts[QUEUE_INDEX_COUNT] = {}; + uint32_t timestamp_valid_bits = 0; +}; + +struct InstanceFactory +{ + virtual ~InstanceFactory() = default; + virtual VkInstance create_instance(const VkInstanceCreateInfo *info) = 0; +}; + +struct DeviceFactory +{ + virtual ~DeviceFactory() = default; + virtual VkDevice create_device(VkPhysicalDevice gpu, const VkDeviceCreateInfo *info) = 0; +}; + +class CopiedApplicationInfo +{ +public: + CopiedApplicationInfo(); + const VkApplicationInfo &get_application_info() const; + void copy_assign(const VkApplicationInfo *info); + +private: + std::string application; + std::string engine; + VkApplicationInfo app = { + VK_STRUCTURE_TYPE_APPLICATION_INFO, nullptr, "Granite", 0, "Granite", 0, VK_API_VERSION_1_1, + }; + + void set_default_app(); +}; + +class Context + : public Util::IntrusivePtrEnabled, HandleCounter> +#ifdef GRANITE_VULKAN_FOSSILIZE + , public Fossilize::DeviceQueryInterface +#endif +{ +public: + // If these interface are set, factory->create() calls are used instead of global vkCreateInstance and vkCreateDevice. + // For deeper API interop scenarios. + void set_instance_factory(InstanceFactory *factory); + void set_device_factory(DeviceFactory *factory); + + // Only takes effect if profiles are enabled in build. (GRANITE_VULKAN_PROFILES) + // If profile is non-null, forces a specific profile. + // If not supported, initialization fails. + // If not set, ignore profiles. + // If strict is false, the profile should be seen as a baseline and Granite will augment features on top. + // If true, the profile is a strict limit for device functionality. For validation purposes. + void set_required_profile(const char *profile, bool strict); + + // Call before initializing instances. app_info may be freed after returning. + // API_VERSION must be at least 1.1. + // By default, a Vulkan 1.1 instance is created. + void set_application_info(const VkApplicationInfo *app_info); + + // Recommended interface. + // InstanceFactory can be used to override enabled instance layers and extensions. + // For simple WSI use, it is enough to just enable VK_KHR_surface and the platform. + bool init_instance(const char * const *instance_ext, uint32_t instance_ext_count, + ContextCreationFlags flags = 0); + // DeviceFactory can be used to override enabled device extensions. + // For simple WSI use, it is enough to just enable VK_KHR_swapchain. + bool init_device(VkPhysicalDevice gpu, VkSurfaceKHR surface_compat, + const char * const *device_ext, uint32_t device_ext_count, + ContextCreationFlags flags = 0); + + // Simplified initialization which calls init_instance and init_device in succession with NULL GPU and surface. + // Provided for compat with older code. + bool init_instance_and_device(const char * const *instance_ext, uint32_t instance_ext_count, + const char * const *device_ext, uint32_t device_ext_count, + ContextCreationFlags flags = 0); + + // Deprecated. For libretro Vulkan context negotiation v1. + // Use InstanceFactory and DeviceFactory for more advanced scenarios in v2. + bool init_device_from_instance(VkInstance instance, VkPhysicalDevice gpu, VkSurfaceKHR surface, + const char **required_device_extensions, + unsigned num_required_device_extensions, + const VkPhysicalDeviceFeatures *required_features, + ContextCreationFlags flags = 0); + + Context(); + Context(const Context &) = delete; + void operator=(const Context &) = delete; + static bool init_loader(PFN_vkGetInstanceProcAddr addr, bool force_reload = false); + static PFN_vkGetInstanceProcAddr get_instance_proc_addr(); + + ~Context(); + + VkInstance get_instance() const + { + return instance; + } + + VkPhysicalDevice get_gpu() const + { + return gpu; + } + + VkDevice get_device() const + { + return device; + } + + const QueueInfo &get_queue_info() const + { + return queue_info; + } + + const VkPhysicalDeviceProperties &get_gpu_props() const + { + return gpu_props; + } + + const VkPhysicalDeviceMemoryProperties &get_mem_props() const + { + return mem_props; + } + + void release_instance() + { + owned_instance = false; + } + + void release_device() + { + owned_device = false; + } + + const DeviceFeatures &get_enabled_device_features() const + { + return ext; + } + + const VkApplicationInfo &get_application_info() const; + + void notify_validation_error(const char *msg); + void set_notification_callback(std::function func); + + void set_num_thread_indices(unsigned indices) + { + num_thread_indices = indices; + } + + unsigned get_num_thread_indices() const + { + return num_thread_indices; + } + + const VolkDeviceTable &get_device_table() const + { + return device_table; + } + + struct SystemHandles + { + Util::TimelineTraceFile *timeline_trace_file = nullptr; + Granite::Filesystem *filesystem = nullptr; + Granite::ThreadGroup *thread_group = nullptr; + Granite::AssetManager *asset_manager = nullptr; + }; + + void set_system_handles(const SystemHandles &handles_) + { + handles = handles_; + } + + const SystemHandles &get_system_handles() const + { + return handles; + } + +#ifdef GRANITE_VULKAN_FOSSILIZE + const Fossilize::FeatureFilter &get_feature_filter() const + { + return feature_filter; + } +#endif + + const VkPhysicalDeviceFeatures2 &get_physical_device_features() const + { + return pdf2; + } + +private: + InstanceFactory *instance_factory = nullptr; + DeviceFactory *device_factory = nullptr; + VkDevice device = VK_NULL_HANDLE; + VkInstance instance = VK_NULL_HANDLE; + VkPhysicalDevice gpu = VK_NULL_HANDLE; + VolkDeviceTable device_table = {}; + SystemHandles handles; + VkPhysicalDeviceProperties gpu_props = {}; + VkPhysicalDeviceMemoryProperties mem_props = {}; + + CopiedApplicationInfo user_application_info; + + QueueInfo queue_info; + unsigned num_thread_indices = 1; + + bool create_instance(const char * const *instance_ext, uint32_t instance_ext_count, ContextCreationFlags flags); + bool create_device(VkPhysicalDevice gpu, VkSurfaceKHR surface, + const char * const *required_device_extensions, uint32_t num_required_device_extensions, + const VkPhysicalDeviceFeatures *required_features, ContextCreationFlags flags); + + bool owned_instance = false; + bool owned_device = false; + DeviceFeatures ext; + VkPhysicalDeviceFeatures2 pdf2; + std::vector enabled_device_extensions; + std::vector enabled_instance_extensions; + + std::string required_profile; + bool required_profile_strict = false; + +#ifdef VULKAN_DEBUG + VkDebugUtilsMessengerEXT debug_messenger = VK_NULL_HANDLE; + bool force_no_validation = false; +#endif + std::function message_callback; + + void destroy_instance(); + void destroy_device(); + + bool physical_device_supports_surface_and_profile(VkPhysicalDevice candidate_gpu, VkSurfaceKHR surface) const; + +#ifdef GRANITE_VULKAN_FOSSILIZE + Fossilize::FeatureFilter feature_filter; + bool format_is_supported(VkFormat format, VkFormatFeatureFlags features) override; + bool descriptor_set_layout_is_supported(const VkDescriptorSetLayoutCreateInfo *set_layout) override; +#endif + + bool init_profile(); + VkResult create_instance_from_profile(const VkInstanceCreateInfo &info, VkInstance *pInstance); + VkResult create_device_from_profile(const VkDeviceCreateInfo &info, VkDevice *pDevice); + + VkApplicationInfo get_promoted_application_info() const; +}; + +using ContextHandle = Util::IntrusivePtr; +} diff --git a/vulkan/cookie.cpp b/vulkan/cookie.cpp new file mode 100644 index 00000000..19c9bebd --- /dev/null +++ b/vulkan/cookie.cpp @@ -0,0 +1,32 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "cookie.hpp" +#include "device.hpp" + +namespace Vulkan +{ +Cookie::Cookie(Device *device) + : cookie(device->allocate_cookie()) +{ +} +} diff --git a/vulkan/cookie.hpp b/vulkan/cookie.hpp new file mode 100644 index 00000000..109a4375 --- /dev/null +++ b/vulkan/cookie.hpp @@ -0,0 +1,61 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include +#include "hash.hpp" +#include "intrusive_hash_map.hpp" + +namespace Vulkan +{ +class Device; + +class Cookie +{ +public: + Cookie(Device *device); + + uint64_t get_cookie() const + { + return cookie; + } + +private: + uint64_t cookie; +}; + +template +using HashedObject = Util::IntrusiveHashMapEnabled; + +class InternalSyncEnabled +{ +public: + void set_internal_sync_object() + { + internal_sync = true; + } + +protected: + bool internal_sync = false; +}; +} diff --git a/vulkan/descriptor_set.cpp b/vulkan/descriptor_set.cpp new file mode 100644 index 00000000..cca2ff74 --- /dev/null +++ b/vulkan/descriptor_set.cpp @@ -0,0 +1,521 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "descriptor_set.hpp" +#include "device.hpp" +#include + +using namespace Util; + +namespace Vulkan +{ +DescriptorSetAllocator::DescriptorSetAllocator(Hash hash, Device *device_, const DescriptorSetLayout &layout, + const uint32_t *stages_for_binds, + const ImmutableSampler * const *immutable_samplers) + : IntrusiveHashMapEnabled(hash) + , device(device_) + , table(device_->get_device_table()) +{ + bindless = layout.array_size[0] == DescriptorSetLayout::UNSIZED_ARRAY; + + if (!bindless) + { + unsigned count = device_->num_thread_indices * device_->per_frame.size(); + per_thread_and_frame.resize(count); + } + + if (bindless && !device->get_device_features().vk12_features.descriptorIndexing) + { + LOGE("Cannot support descriptor indexing on this device.\n"); + return; + } + + VkDescriptorSetLayoutCreateInfo info = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO }; + VkDescriptorSetLayoutBindingFlagsCreateInfoEXT flags = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT }; + VkSampler vk_immutable_samplers[VULKAN_NUM_BINDINGS] = {}; + std::vector bindings; + VkDescriptorBindingFlagsEXT binding_flags = 0; + + if (bindless) + { + info.flags |= VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT; + info.pNext = &flags; + + flags.bindingCount = 1; + flags.pBindingFlags = &binding_flags; + binding_flags = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT | + VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT | + VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT; + } + + for (unsigned i = 0; i < VULKAN_NUM_BINDINGS; i++) + { + auto stages = stages_for_binds[i]; + if (stages == 0) + continue; + + unsigned array_size = layout.array_size[i]; + unsigned pool_array_size; + if (array_size == DescriptorSetLayout::UNSIZED_ARRAY) + { + array_size = VULKAN_NUM_BINDINGS_BINDLESS_VARYING; + pool_array_size = array_size; + } + else + pool_array_size = array_size * VULKAN_NUM_SETS_PER_POOL; + + unsigned types = 0; + if (layout.sampled_image_mask & (1u << i)) + { + if ((layout.immutable_sampler_mask & (1u << i)) && immutable_samplers && immutable_samplers[i]) + vk_immutable_samplers[i] = immutable_samplers[i]->get_sampler().get_sampler(); + + bindings.push_back({ i, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, array_size, stages, + vk_immutable_samplers[i] != VK_NULL_HANDLE ? &vk_immutable_samplers[i] : nullptr }); + pool_size.push_back({ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, pool_array_size }); + types++; + } + + if (layout.sampled_texel_buffer_mask & (1u << i)) + { + bindings.push_back({ i, VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, array_size, stages, nullptr }); + pool_size.push_back({ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, pool_array_size }); + types++; + } + + if (layout.storage_texel_buffer_mask & (1u << i)) + { + bindings.push_back({ i, VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, array_size, stages, nullptr }); + pool_size.push_back({ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, pool_array_size }); + types++; + } + + if (layout.storage_image_mask & (1u << i)) + { + bindings.push_back({ i, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, array_size, stages, nullptr }); + pool_size.push_back({ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, pool_array_size }); + types++; + } + + if (layout.uniform_buffer_mask & (1u << i)) + { + bindings.push_back({ i, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, array_size, stages, nullptr }); + pool_size.push_back({ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, pool_array_size }); + types++; + } + + if (layout.storage_buffer_mask & (1u << i)) + { + bindings.push_back({ i, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, array_size, stages, nullptr }); + pool_size.push_back({ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, pool_array_size }); + types++; + } + + if (layout.input_attachment_mask & (1u << i)) + { + bindings.push_back({ i, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, array_size, stages, nullptr }); + pool_size.push_back({ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pool_array_size }); + types++; + } + + if (layout.separate_image_mask & (1u << i)) + { + bindings.push_back({ i, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, array_size, stages, nullptr }); + pool_size.push_back({ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, pool_array_size }); + types++; + } + + if (layout.sampler_mask & (1u << i)) + { + if ((layout.immutable_sampler_mask & (1u << i)) && immutable_samplers && immutable_samplers[i]) + vk_immutable_samplers[i] = immutable_samplers[i]->get_sampler().get_sampler(); + + bindings.push_back({ i, VK_DESCRIPTOR_TYPE_SAMPLER, array_size, stages, + vk_immutable_samplers[i] != VK_NULL_HANDLE ? &vk_immutable_samplers[i] : nullptr }); + pool_size.push_back({ VK_DESCRIPTOR_TYPE_SAMPLER, pool_array_size }); + types++; + } + + (void)types; + VK_ASSERT(types <= 1 && "Descriptor set aliasing!"); + } + + if (!bindings.empty()) + { + info.bindingCount = bindings.size(); + info.pBindings = bindings.data(); + + if (bindless && bindings.size() != 1) + { + LOGE("Using bindless but have bindingCount != 1.\n"); + return; + } + } + +#ifdef VULKAN_DEBUG + LOGI("Creating descriptor set layout.\n"); +#endif + if (table.vkCreateDescriptorSetLayout(device->get_device(), &info, nullptr, &set_layout_pool) != VK_SUCCESS) + LOGE("Failed to create descriptor set layout."); + +#ifdef GRANITE_VULKAN_FOSSILIZE + if (set_layout_pool) + device->register_descriptor_set_layout(set_layout_pool, get_hash(), info); +#endif + + if (!bindless && device->get_device_features().supports_push_descriptor && !device->workarounds.broken_push_descriptors) + { + info.flags |= VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR; + for (auto &b : bindings) + if (b.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC) + b.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER; + if (table.vkCreateDescriptorSetLayout(device->get_device(), &info, nullptr, &set_layout_push) != VK_SUCCESS) + LOGE("Failed to create descriptor set layout."); +#ifdef GRANITE_VULKAN_FOSSILIZE + if (set_layout_push) + device->register_descriptor_set_layout(set_layout_push, get_hash(), info); +#endif + } +} + +void DescriptorSetAllocator::reset_bindless_pool(VkDescriptorPool pool) +{ + table.vkResetDescriptorPool(device->get_device(), pool, 0); +} + +VkDescriptorSet DescriptorSetAllocator::allocate_bindless_set(VkDescriptorPool pool, unsigned num_descriptors) +{ + if (!pool || !bindless) + return VK_NULL_HANDLE; + + VkDescriptorSetAllocateInfo info = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO }; + info.descriptorPool = pool; + info.descriptorSetCount = 1; + info.pSetLayouts = &set_layout_pool; + + VkDescriptorSetVariableDescriptorCountAllocateInfoEXT count_info = + { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT }; + + uint32_t num_desc = num_descriptors; + count_info.descriptorSetCount = 1; + count_info.pDescriptorCounts = &num_desc; + info.pNext = &count_info; + + VkDescriptorSet desc_set = VK_NULL_HANDLE; + if (table.vkAllocateDescriptorSets(device->get_device(), &info, &desc_set) != VK_SUCCESS) + return VK_NULL_HANDLE; + + return desc_set; +} + +VkDescriptorPool DescriptorSetAllocator::allocate_bindless_pool(unsigned num_sets, unsigned num_descriptors) +{ + if (!bindless) + return VK_NULL_HANDLE; + + VkDescriptorPool pool = VK_NULL_HANDLE; + VkDescriptorPoolCreateInfo info = { VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO }; + info.flags = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT; + info.maxSets = num_sets; + info.poolSizeCount = 1; + + VkDescriptorPoolSize size = pool_size[0]; + size.descriptorCount = num_descriptors; + info.pPoolSizes = &size; + + if (table.vkCreateDescriptorPool(device->get_device(), &info, nullptr, &pool) != VK_SUCCESS) + { + LOGE("Failed to create descriptor pool.\n"); + return VK_NULL_HANDLE; + } + + return pool; +} + +void DescriptorSetAllocator::begin_frame() +{ + if (!bindless) + { + // This can only be called in a situation where no command buffers are alive, + // so we don't need to consider any locks here. + if (device->per_frame.size() * device->num_thread_indices != per_thread_and_frame.size()) + per_thread_and_frame.resize(device->per_frame.size() * device->num_thread_indices); + + // It would be safe to set all offsets to 0 here, but that's a little wasteful. + for (uint32_t i = 0; i < device->num_thread_indices; i++) + per_thread_and_frame[i * device->per_frame.size() + device->frame_context_index].offset = 0; + } +} + +VkDescriptorSet DescriptorSetAllocator::request_descriptor_set(unsigned thread_index, unsigned frame_index) +{ + VK_ASSERT(!bindless); + + size_t flattened_index = thread_index * device->per_frame.size() + frame_index; + + auto &state = per_thread_and_frame[flattened_index]; + + unsigned pool_index = state.offset / VULKAN_NUM_SETS_PER_POOL; + unsigned pool_offset = state.offset % VULKAN_NUM_SETS_PER_POOL; + + if (pool_index >= state.pools.size()) + { + Pool *pool = state.object_pool.allocate(); + + VkDescriptorPoolCreateInfo info = { VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO }; + info.maxSets = VULKAN_NUM_SETS_PER_POOL; + if (!pool_size.empty()) + { + info.poolSizeCount = pool_size.size(); + info.pPoolSizes = pool_size.data(); + } + + bool overallocation = + device->get_device_features().descriptor_pool_overallocation_features.descriptorPoolOverallocation == + VK_TRUE; + + if (overallocation) + { + // No point in allocating new pools if we can keep using the existing one. + info.flags |= VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV | + VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV; + } + + bool need_alloc = !overallocation || state.pools.empty(); + + pool->pool = VK_NULL_HANDLE; + if (need_alloc && table.vkCreateDescriptorPool(device->get_device(), &info, nullptr, &pool->pool) != VK_SUCCESS) + { + LOGE("Failed to create descriptor pool.\n"); + state.object_pool.free(pool); + return VK_NULL_HANDLE; + } + + VkDescriptorSetLayout layouts[VULKAN_NUM_SETS_PER_POOL]; + std::fill(std::begin(layouts), std::end(layouts), set_layout_pool); + + VkDescriptorSetAllocateInfo alloc = { VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO }; + alloc.descriptorPool = pool->pool != VK_NULL_HANDLE ? pool->pool : state.pools.front()->pool; + alloc.descriptorSetCount = VULKAN_NUM_SETS_PER_POOL; + alloc.pSetLayouts = layouts; + + if (table.vkAllocateDescriptorSets(device->get_device(), &alloc, pool->sets) != VK_SUCCESS) + LOGE("Failed to allocate descriptor sets.\n"); + state.pools.push_back(pool); + } + + VkDescriptorSet vk_set = state.pools[pool_index]->sets[pool_offset]; + state.offset++; + return vk_set; +} + +void DescriptorSetAllocator::clear() +{ + for (auto &state : per_thread_and_frame) + { + for (auto *obj : state.pools) + { + table.vkDestroyDescriptorPool(device->get_device(), obj->pool, nullptr); + state.object_pool.free(obj); + } + state.pools.clear(); + state.offset = 0; + state.object_pool = {}; + } +} + +DescriptorSetAllocator::~DescriptorSetAllocator() +{ + table.vkDestroyDescriptorSetLayout(device->get_device(), set_layout_pool, nullptr); + table.vkDestroyDescriptorSetLayout(device->get_device(), set_layout_push, nullptr); + clear(); +} + +BindlessDescriptorPool::BindlessDescriptorPool(Device *device_, DescriptorSetAllocator *allocator_, + VkDescriptorPool pool, uint32_t num_sets, uint32_t num_desc) + : device(device_), allocator(allocator_), desc_pool(pool), total_sets(num_sets), total_descriptors(num_desc) +{ +} + +BindlessDescriptorPool::~BindlessDescriptorPool() +{ + if (desc_pool) + { + if (internal_sync) + device->destroy_descriptor_pool_nolock(desc_pool); + else + device->destroy_descriptor_pool(desc_pool); + } +} + +VkDescriptorSet BindlessDescriptorPool::get_descriptor_set() const +{ + return desc_set; +} + +void BindlessDescriptorPool::reset() +{ + if (desc_pool != VK_NULL_HANDLE) + allocator->reset_bindless_pool(desc_pool); + desc_set = VK_NULL_HANDLE; + allocated_descriptor_count = 0; + allocated_sets = 0; +} + +bool BindlessDescriptorPool::allocate_descriptors(unsigned count) +{ + // Not all drivers will exhaust the pool for us, so make sure we don't allocate more than expected. + if (allocated_sets == total_sets) + return false; + if (allocated_descriptor_count + count > total_descriptors) + return false; + + allocated_descriptor_count += count; + allocated_sets++; + + desc_set = allocator->allocate_bindless_set(desc_pool, count); + + infos.reserve(count); + write_count = 0; + + return desc_set != VK_NULL_HANDLE; +} + +void BindlessDescriptorPool::push_texture(const ImageView &view) +{ + // TODO: Deal with integer view for depth-stencil images? + push_texture(view.get_float_view(), view.get_image().get_layout(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)); +} + +void BindlessDescriptorPool::push_texture_unorm(const ImageView &view) +{ + push_texture(view.get_unorm_view(), view.get_image().get_layout(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)); +} + +void BindlessDescriptorPool::push_texture_srgb(const ImageView &view) +{ + push_texture(view.get_srgb_view(), view.get_image().get_layout(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)); +} + +void BindlessDescriptorPool::push_texture(VkImageView view, VkImageLayout layout) +{ + VK_ASSERT(write_count < infos.get_capacity()); + auto &image_info = infos[write_count]; + image_info = { VK_NULL_HANDLE, view, layout }; + write_count++; +} + +void BindlessDescriptorPool::update() +{ + VkWriteDescriptorSet desc = { VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET }; + desc.descriptorCount = write_count; + desc.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE; + desc.dstSet = desc_set; + + desc.pImageInfo = infos.data(); + desc.pBufferInfo = nullptr; + desc.pTexelBufferView = nullptr; + + if (write_count) + { + auto &table = device->get_device_table(); + table.vkUpdateDescriptorSets(device->get_device(), 1, &desc, 0, nullptr); + } +} + +void BindlessDescriptorPoolDeleter::operator()(BindlessDescriptorPool *pool) +{ + pool->device->handle_pool.bindless_descriptor_pool.free(pool); +} + +unsigned BindlessAllocator::push(const ImageView &view) +{ + auto ret = unsigned(views.size()); + views.push_back(&view); + if (views.size() > VULKAN_NUM_BINDINGS_BINDLESS_VARYING) + { + LOGE("Exceeding maximum number of bindless resources per set (%u >= %u).\n", + unsigned(views.size()), VULKAN_NUM_BINDINGS_BINDLESS_VARYING); + } + return ret; +} + +void BindlessAllocator::begin() +{ + views.clear(); +} + +void BindlessAllocator::reset() +{ + descriptor_pool.reset(); +} + +unsigned BindlessAllocator::get_next_offset() const +{ + return unsigned(views.size()); +} + +void BindlessAllocator::reserve_max_resources_per_pool(unsigned set_count, unsigned descriptor_count) +{ + max_sets_per_pool = std::max(max_sets_per_pool, set_count); + max_descriptors_per_pool = std::max(max_descriptors_per_pool, descriptor_count); + views.reserve(max_descriptors_per_pool); +} + +void BindlessAllocator::set_bindless_resource_type(BindlessResourceType type) +{ + resource_type = type; +} + +VkDescriptorSet BindlessAllocator::commit(Device &device) +{ + max_sets_per_pool = std::max(1u, max_sets_per_pool); + max_descriptors_per_pool = std::max(views.size(), max_descriptors_per_pool); + max_descriptors_per_pool = std::max(1u, max_descriptors_per_pool); + max_descriptors_per_pool = std::min(max_descriptors_per_pool, VULKAN_NUM_BINDINGS_BINDLESS_VARYING); + unsigned to_allocate = std::max(views.size(), 1u); + + if (!descriptor_pool) + { + descriptor_pool = device.create_bindless_descriptor_pool( + resource_type, max_sets_per_pool, max_descriptors_per_pool); + } + + if (!descriptor_pool->allocate_descriptors(to_allocate)) + { + descriptor_pool = device.create_bindless_descriptor_pool( + resource_type, max_sets_per_pool, max_descriptors_per_pool); + + if (!descriptor_pool->allocate_descriptors(to_allocate)) + { + LOGE("Failed to allocate descriptors on a fresh descriptor pool!\n"); + return VK_NULL_HANDLE; + } + } + + for (size_t i = 0, n = views.size(); i < n; i++) + descriptor_pool->push_texture(*views[i]); + descriptor_pool->update(); + return descriptor_pool->get_descriptor_set(); +} +} diff --git a/vulkan/descriptor_set.hpp b/vulkan/descriptor_set.hpp new file mode 100644 index 00000000..9af8e1bd --- /dev/null +++ b/vulkan/descriptor_set.hpp @@ -0,0 +1,192 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "hash.hpp" +#include "object_pool.hpp" +#include "temporary_hashmap.hpp" +#include "vulkan_headers.hpp" +#include "sampler.hpp" +#include "limits.hpp" +#include "dynamic_array.hpp" +#include +#include +#include "cookie.hpp" + +namespace Vulkan +{ +class Device; +struct DescriptorSetLayout +{ + uint32_t sampled_image_mask = 0; + uint32_t storage_image_mask = 0; + uint32_t uniform_buffer_mask = 0; + uint32_t storage_buffer_mask = 0; + uint32_t sampled_texel_buffer_mask = 0; + uint32_t storage_texel_buffer_mask = 0; + uint32_t input_attachment_mask = 0; + uint32_t sampler_mask = 0; + uint32_t separate_image_mask = 0; + uint32_t fp_mask = 0; + uint32_t immutable_sampler_mask = 0; + uint8_t array_size[VULKAN_NUM_BINDINGS] = {}; + uint32_t padding = 0; + enum { UNSIZED_ARRAY = 0xff }; +}; + +// Avoid -Wclass-memaccess warnings since we hash DescriptorSetLayout. + +static const unsigned VULKAN_NUM_SETS_PER_POOL = 64; +static const unsigned VULKAN_DESCRIPTOR_RING_SIZE = 16; + +class DescriptorSetAllocator; +class BindlessDescriptorPool; +class ImageView; + +struct BindlessDescriptorPoolDeleter +{ + void operator()(BindlessDescriptorPool *pool); +}; + +class BindlessDescriptorPool : public Util::IntrusivePtrEnabled, + public InternalSyncEnabled +{ +public: + friend struct BindlessDescriptorPoolDeleter; + explicit BindlessDescriptorPool(Device *device, DescriptorSetAllocator *allocator, VkDescriptorPool pool, + uint32_t total_sets, uint32_t total_descriptors); + ~BindlessDescriptorPool(); + void operator=(const BindlessDescriptorPool &) = delete; + BindlessDescriptorPool(const BindlessDescriptorPool &) = delete; + + void reset(); + bool allocate_descriptors(unsigned count); + VkDescriptorSet get_descriptor_set() const; + + void push_texture(const ImageView &view); + void push_texture_unorm(const ImageView &view); + void push_texture_srgb(const ImageView &view); + void update(); + +private: + Device *device; + DescriptorSetAllocator *allocator; + VkDescriptorPool desc_pool; + VkDescriptorSet desc_set = VK_NULL_HANDLE; + + uint32_t allocated_sets = 0; + uint32_t total_sets = 0; + uint32_t allocated_descriptor_count = 0; + uint32_t total_descriptors = 0; + + void push_texture(VkImageView view, VkImageLayout layout); + Util::DynamicArray infos; + uint32_t write_count = 0; +}; +using BindlessDescriptorPoolHandle = Util::IntrusivePtr; + +enum class BindlessResourceType +{ + Image +}; + +class DescriptorSetAllocator : public HashedObject +{ +public: + DescriptorSetAllocator(Util::Hash hash, Device *device, const DescriptorSetLayout &layout, + const uint32_t *stages_for_bindings, + const ImmutableSampler * const *immutable_samplers); + ~DescriptorSetAllocator(); + void operator=(const DescriptorSetAllocator &) = delete; + DescriptorSetAllocator(const DescriptorSetAllocator &) = delete; + + void begin_frame(); + VkDescriptorSet request_descriptor_set(unsigned thread_index, unsigned frame_context); + + VkDescriptorSetLayout get_layout_for_pool() const + { + return set_layout_pool; + } + + VkDescriptorSetLayout get_layout_for_push() const + { + return set_layout_push; + } + + void clear(); + + bool is_bindless() const + { + return bindless; + } + + VkDescriptorPool allocate_bindless_pool(unsigned num_sets, unsigned num_descriptors); + VkDescriptorSet allocate_bindless_set(VkDescriptorPool pool, unsigned num_descriptors); + void reset_bindless_pool(VkDescriptorPool pool); + +private: + Device *device; + const VolkDeviceTable &table; + VkDescriptorSetLayout set_layout_pool = VK_NULL_HANDLE; + VkDescriptorSetLayout set_layout_push = VK_NULL_HANDLE; + + struct Pool + { + VkDescriptorPool pool; + VkDescriptorSet sets[VULKAN_NUM_SETS_PER_POOL]; + }; + + struct PerThreadAndFrame + { + std::vector pools; + Util::ObjectPool object_pool; + uint32_t offset = 0; + }; + + std::vector per_thread_and_frame; + std::vector pool_size; + bool bindless = false; +}; + +class BindlessAllocator +{ +public: + void reserve_max_resources_per_pool(unsigned set_count, unsigned descriptor_count); + void set_bindless_resource_type(BindlessResourceType type); + + void begin(); + unsigned push(const ImageView &view); + VkDescriptorSet commit(Device &device); + + unsigned get_next_offset() const; + + void reset(); + +private: + BindlessDescriptorPoolHandle descriptor_pool; + unsigned max_sets_per_pool = 0; + unsigned max_descriptors_per_pool = 0; + BindlessResourceType resource_type = BindlessResourceType::Image; + std::vector views; +}; +} diff --git a/vulkan/device.cpp b/vulkan/device.cpp new file mode 100644 index 00000000..9199b273 --- /dev/null +++ b/vulkan/device.cpp @@ -0,0 +1,5241 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "device.hpp" +#ifdef GRANITE_VULKAN_FOSSILIZE +#include "device_fossilize.hpp" +#endif +#include "format.hpp" +#include "timeline_trace_file.hpp" +#include "type_to_string.hpp" +#include "quirks.hpp" +#include "timer.hpp" +#include +#include +#include + +#ifdef _WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#endif + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES +#include "string_helpers.hpp" +#endif + +#include "thread_id.hpp" +static unsigned get_thread_index() +{ + return Util::get_current_thread_index(); +} +#define LOCK() std::lock_guard _holder_##__COUNTER__{lock.lock} +#define LOCK_MEMORY() std::lock_guard _holder_##__COUNTER__{lock.memory_lock} +#define LOCK_CACHE() ::Util::RWSpinLockReadHolder _holder_##__COUNTER__{lock.read_only_cache} +#define DRAIN_FRAME_LOCK() \ + std::unique_lock _holder{lock.lock}; \ + lock.cond.wait(_holder, [&]() { \ + return lock.counter == 0; \ + }) + +using namespace Util; + +namespace Vulkan +{ +static constexpr VkImageUsageFlags image_usage_video_flags = + VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR | + VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR | + VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR | + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR | + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR | + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR; + +static const QueueIndices queue_flush_order[] = { + QUEUE_INDEX_TRANSFER, + QUEUE_INDEX_VIDEO_DECODE, + QUEUE_INDEX_VIDEO_ENCODE, + QUEUE_INDEX_GRAPHICS, + QUEUE_INDEX_COMPUTE, +}; + +Device::Device() + : framebuffer_allocator(this) + , transient_allocator(this) +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES + , shader_manager(this) + , resource_manager(this) +#endif +{ + cookie.store(0); +} + +Semaphore Device::request_semaphore(VkSemaphoreType type, VkSemaphore vk_semaphore, bool transfer_ownership) +{ + if (type == VK_SEMAPHORE_TYPE_TIMELINE && !ext.vk12_features.timelineSemaphore) + { + LOGE("Timeline semaphores not supported.\n"); + return Semaphore{}; + } + + if (vk_semaphore == VK_NULL_HANDLE) + { + if (type == VK_SEMAPHORE_TYPE_BINARY) + { + LOCK(); + vk_semaphore = managers.semaphore.request_cleared_semaphore(); + } + else + { + VkSemaphoreTypeCreateInfo type_info = { VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO }; + VkSemaphoreCreateInfo info = { VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO }; + info.pNext = &type_info; + type_info.semaphoreType = VK_SEMAPHORE_TYPE_TIMELINE; + type_info.initialValue = 0; + if (table->vkCreateSemaphore(device, &info, nullptr, &vk_semaphore) != VK_SUCCESS) + { + LOGE("Failed to create semaphore.\n"); + return Semaphore{}; + } + } + transfer_ownership = true; + } + + if (type == VK_SEMAPHORE_TYPE_BINARY) + { + Semaphore ptr(handle_pool.semaphores.allocate(this, vk_semaphore, false, transfer_ownership)); + return ptr; + } + else + { + Semaphore ptr(handle_pool.semaphores.allocate(this, 0, vk_semaphore, transfer_ownership)); + ptr->set_proxy_timeline(); + return ptr; + } +} + +Semaphore Device::request_timeline_semaphore_as_binary(const SemaphoreHolder &holder, uint64_t value) +{ + VK_ASSERT(holder.get_semaphore_type() == VK_SEMAPHORE_TYPE_TIMELINE); + VK_ASSERT(holder.is_proxy_timeline()); + Semaphore ptr(handle_pool.semaphores.allocate(this, value, holder.get_semaphore(), false)); + return ptr; +} + +Semaphore Device::request_semaphore_external(VkSemaphoreType type, + VkExternalSemaphoreHandleTypeFlagBits handle_type) +{ + if (type == VK_SEMAPHORE_TYPE_TIMELINE && !ext.vk12_features.timelineSemaphore) + { + LOGE("Timeline semaphores not supported.\n"); + return Semaphore{}; + } + + if (!ext.supports_external) + { + LOGE("External semaphores not supported.\n"); + return Semaphore{}; + } + + VkSemaphoreTypeCreateInfo type_info = { VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO }; + type_info.semaphoreType = type; + VkExternalSemaphoreFeatureFlags features; + + { + VkExternalSemaphoreProperties props = { VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES }; + VkPhysicalDeviceExternalSemaphoreInfo info = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO }; + info.handleType = handle_type; + + // Workaround AMD Windows bug where it reports TIMELINE as not supported. + // D3D12_FENCE used to be BINARY type before timelines were introduced to Vulkan. + if (type != VK_SEMAPHORE_TYPE_BINARY && handle_type != VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT) + info.pNext = &type_info; + vkGetPhysicalDeviceExternalSemaphoreProperties(gpu, &info, &props); + + features = props.externalSemaphoreFeatures; + + if (!features) + { + LOGE("External semaphore handle type #%x is not supported.\n", handle_type); + return Semaphore{}; + } + } + + VkSemaphoreCreateInfo info = { VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO }; + VkExportSemaphoreCreateInfo export_info = { VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO }; + + if ((features & VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT) != 0) + { + export_info.handleTypes = handle_type; + export_info.pNext = info.pNext; + info.pNext = &export_info; + } + + if (type != VK_SEMAPHORE_TYPE_BINARY) + { + type_info.pNext = info.pNext; + info.pNext = &type_info; + } + + VkSemaphore semaphore; + if (table->vkCreateSemaphore(device, &info, nullptr, &semaphore) != VK_SUCCESS) + { + LOGE("Failed to create external semaphore.\n"); + return Semaphore{}; + } + + if (type == VK_SEMAPHORE_TYPE_TIMELINE) + { + Semaphore ptr(handle_pool.semaphores.allocate(this, 0, semaphore, true)); + ptr->set_external_object_compatible(handle_type, features); + ptr->set_proxy_timeline(); + return ptr; + } + else + { + Semaphore ptr(handle_pool.semaphores.allocate(this, semaphore, false, true)); + ptr->set_external_object_compatible(handle_type, features); + return ptr; + } +} + +Semaphore Device::request_proxy_semaphore() +{ + Semaphore ptr(handle_pool.semaphores.allocate(this)); + return ptr; +} + +void Device::add_wait_semaphore(CommandBuffer::Type type, Semaphore semaphore, VkPipelineStageFlags2 stages, bool flush) +{ + VK_ASSERT(!semaphore->is_proxy_timeline()); + + LOCK(); + add_wait_semaphore_nolock(get_physical_queue_type(type), std::move(semaphore), stages, flush); +} + +void Device::add_wait_semaphore_nolock(QueueIndices physical_type, Semaphore semaphore, + VkPipelineStageFlags2 stages, bool flush) +{ + if (flush) + flush_frame(physical_type); + auto &data = queue_data[physical_type]; + +#ifdef VULKAN_DEBUG + for (auto &sem : data.wait_semaphores) + VK_ASSERT(sem.get() != semaphore.get()); +#endif + + semaphore->set_pending_wait(); + data.wait_semaphores.push_back(semaphore); + data.wait_stages.push_back(stages); + data.need_fence = true; + + // Sanity check. + VK_ASSERT(data.wait_semaphores.size() < 16 * 1024); +} + +LinearHostImageHandle Device::create_linear_host_image(const LinearHostImageCreateInfo &info) +{ + if ((info.usage & ~VK_IMAGE_USAGE_SAMPLED_BIT) != 0) + return LinearHostImageHandle(nullptr); + + ImageCreateInfo create_info; + create_info.width = info.width; + create_info.height = info.height; + create_info.domain = + (info.flags & LINEAR_HOST_IMAGE_HOST_CACHED_BIT) != 0 ? + ImageDomain::LinearHostCached : + ImageDomain::LinearHost; + create_info.levels = 1; + create_info.layers = 1; + create_info.initial_layout = VK_IMAGE_LAYOUT_GENERAL; + create_info.format = info.format; + create_info.samples = VK_SAMPLE_COUNT_1_BIT; + create_info.usage = info.usage; + create_info.type = VK_IMAGE_TYPE_2D; + + if ((info.flags & LINEAR_HOST_IMAGE_REQUIRE_LINEAR_FILTER_BIT) != 0) + create_info.misc |= IMAGE_MISC_VERIFY_FORMAT_FEATURE_SAMPLED_LINEAR_FILTER_BIT; + if ((info.flags & LINEAR_HOST_IMAGE_IGNORE_DEVICE_LOCAL_BIT) != 0) + create_info.misc |= IMAGE_MISC_LINEAR_IMAGE_IGNORE_DEVICE_LOCAL_BIT; + + BufferHandle cpu_image; + auto gpu_image = create_image(create_info); + if (!gpu_image) + { + // Fall-back to staging buffer. + create_info.domain = ImageDomain::Physical; + create_info.initial_layout = VK_IMAGE_LAYOUT_UNDEFINED; + create_info.misc = IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT | IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_TRANSFER_BIT; + create_info.usage |= VK_IMAGE_USAGE_TRANSFER_DST_BIT; + gpu_image = create_image(create_info); + if (!gpu_image) + return LinearHostImageHandle(nullptr); + + BufferCreateInfo buffer; + buffer.domain = + (info.flags & LINEAR_HOST_IMAGE_HOST_CACHED_BIT) != 0 ? + BufferDomain::CachedHost : + BufferDomain::Host; + buffer.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; + buffer.size = info.width * info.height * TextureFormatLayout::format_block_size(info.format, format_to_aspect_mask(info.format)); + cpu_image = create_buffer(buffer); + if (!cpu_image) + return LinearHostImageHandle(nullptr); + } + else + gpu_image->set_layout(Layout::General); + + return LinearHostImageHandle(handle_pool.linear_images.allocate(this, std::move(gpu_image), std::move(cpu_image), info.stages)); +} + +void *Device::map_linear_host_image(const LinearHostImage &image, MemoryAccessFlags access) +{ + void *host = managers.memory.map_memory(image.get_host_visible_allocation(), access, + 0, image.get_host_visible_allocation().get_size()); + return host; +} + +void Device::unmap_linear_host_image_and_sync(const LinearHostImage &image, MemoryAccessFlags access) +{ + managers.memory.unmap_memory(image.get_host_visible_allocation(), access, + 0, image.get_host_visible_allocation().get_size()); + if (image.need_staging_copy()) + { + // Kinda icky fallback, shouldn't really be used on discrete cards. + auto cmd = request_command_buffer(CommandBuffer::Type::AsyncTransfer); + cmd->image_barrier(image.get_image(), VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, + VK_PIPELINE_STAGE_NONE, 0, + VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_WRITE_BIT); + cmd->copy_buffer_to_image(image.get_image(), image.get_host_visible_buffer(), + 0, {}, + { image.get_image().get_width(), image.get_image().get_height(), 1 }, + 0, 0, { VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1 }); + + // Don't care about dstAccessMask, semaphore takes care of everything. + cmd->image_barrier(image.get_image(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_NONE, 0); + + Semaphore sem; + submit(cmd, nullptr, 1, &sem); + + // The queue type is an assumption. Should add some parameter for that. + add_wait_semaphore(CommandBuffer::Type::Generic, sem, image.get_used_pipeline_stages(), true); + } +} + +void *Device::map_host_buffer(const Buffer &buffer, MemoryAccessFlags access) +{ + void *host = managers.memory.map_memory(buffer.get_allocation(), access, 0, buffer.get_create_info().size); + return host; +} + +void Device::unmap_host_buffer(const Buffer &buffer, MemoryAccessFlags access) +{ + managers.memory.unmap_memory(buffer.get_allocation(), access, 0, buffer.get_create_info().size); +} + +void *Device::map_host_buffer(const Buffer &buffer, MemoryAccessFlags access, VkDeviceSize offset, VkDeviceSize length) +{ + VK_ASSERT(offset + length <= buffer.get_create_info().size); + void *host = managers.memory.map_memory(buffer.get_allocation(), access, offset, length); + return host; +} + +void Device::unmap_host_buffer(const Buffer &buffer, MemoryAccessFlags access, VkDeviceSize offset, VkDeviceSize length) +{ + VK_ASSERT(offset + length <= buffer.get_create_info().size); + managers.memory.unmap_memory(buffer.get_allocation(), access, offset, length); +} + +Shader *Device::request_shader(const uint32_t *data, size_t size, const ResourceLayout *layout) +{ + auto hash = Shader::hash(data, size); + LOCK_CACHE(); + auto *ret = shaders.find(hash); + if (!ret) + ret = shaders.emplace_yield(hash, hash, this, data, size, layout); + return ret; +} + +Shader *Device::request_shader_by_hash(Hash hash) +{ + LOCK_CACHE(); + return shaders.find(hash); +} + +Program *Device::request_program(Vulkan::Shader *compute_shader, const ImmutableSamplerBank *sampler_bank) +{ + if (!compute_shader) + return nullptr; + + Util::Hasher hasher; + hasher.u64(compute_shader->get_hash()); + ImmutableSamplerBank::hash(hasher, sampler_bank); + + LOCK_CACHE(); + auto hash = hasher.get(); + auto *ret = programs.find(hash); + if (!ret) + ret = programs.emplace_yield(hash, this, compute_shader, sampler_bank); + return ret; +} + +Program *Device::request_program(const uint32_t *compute_data, size_t compute_size, const ResourceLayout *layout) +{ + if (!compute_size) + return nullptr; + + auto *compute_shader = request_shader(compute_data, compute_size, layout); + return request_program(compute_shader); +} + +Program *Device::request_program(Shader *vertex, Shader *fragment, const ImmutableSamplerBank *sampler_bank) +{ + if (!vertex || !fragment) + return nullptr; + + Util::Hasher hasher; + hasher.u64(vertex->get_hash()); + hasher.u64(fragment->get_hash()); + ImmutableSamplerBank::hash(hasher, sampler_bank); + + auto hash = hasher.get(); + LOCK_CACHE(); + auto *ret = programs.find(hash); + + if (!ret) + ret = programs.emplace_yield(hash, this, vertex, fragment, sampler_bank); + return ret; +} + +Program *Device::request_program(Shader *task, Shader *mesh, Shader *fragment, const ImmutableSamplerBank *sampler_bank) +{ + if (!mesh || !fragment) + return nullptr; + + if (!get_device_features().mesh_shader_features.meshShader) + { + LOGE("meshShader not supported.\n"); + return nullptr; + } + + if (task && !get_device_features().mesh_shader_features.taskShader) + { + LOGE("taskShader not supported.\n"); + return nullptr; + } + + Util::Hasher hasher; + hasher.u64(task ? task->get_hash() : 0); + hasher.u64(mesh->get_hash()); + hasher.u64(fragment->get_hash()); + ImmutableSamplerBank::hash(hasher, sampler_bank); + + auto hash = hasher.get(); + LOCK_CACHE(); + auto *ret = programs.find(hash); + + if (!ret) + ret = programs.emplace_yield(hash, this, task, mesh, fragment, sampler_bank); + return ret; +} + +Program *Device::request_program(const uint32_t *vertex_data, size_t vertex_size, + const uint32_t *fragment_data, size_t fragment_size, + const ResourceLayout *vertex_layout, + const ResourceLayout *fragment_layout) +{ + if (!vertex_size || !fragment_size) + return nullptr; + + auto *vertex = request_shader(vertex_data, vertex_size, vertex_layout); + auto *fragment = request_shader(fragment_data, fragment_size, fragment_layout); + return request_program(vertex, fragment); +} + +Program *Device::request_program(const uint32_t *task_data, size_t task_size, + const uint32_t *mesh_data, size_t mesh_size, + const uint32_t *fragment_data, size_t fragment_size, + const ResourceLayout *task_layout, + const ResourceLayout *mesh_layout, + const ResourceLayout *fragment_layout) +{ + if (!mesh_size || !fragment_size) + return nullptr; + + Shader *task = nullptr; + if (task_size) + task = request_shader(task_data, task_size, task_layout); + auto *mesh = request_shader(mesh_data, mesh_size, mesh_layout); + auto *fragment = request_shader(fragment_data, fragment_size, fragment_layout); + return request_program(task, mesh, fragment); +} + +const PipelineLayout *Device::request_pipeline_layout(const CombinedResourceLayout &layout, + const ImmutableSamplerBank *sampler_bank) +{ + Hasher h; + h.data(reinterpret_cast(layout.sets), sizeof(layout.sets)); + h.data(&layout.stages_for_bindings[0][0], sizeof(layout.stages_for_bindings)); + h.u32(layout.push_constant_range.stageFlags); + h.u32(layout.push_constant_range.size); + h.data(layout.spec_constant_mask, sizeof(layout.spec_constant_mask)); + h.u32(layout.attribute_mask); + h.u32(layout.render_target_mask); + // Drivers with and without push descriptor support need to observe different hashes for Fossilize. + h.s32(int(ext.supports_push_descriptor && !workarounds.broken_push_descriptors)); + for (unsigned set = 0; set < VULKAN_NUM_DESCRIPTOR_SETS; set++) + { + Util::for_each_bit(layout.sets[set].immutable_sampler_mask, [&](unsigned bit) { + VK_ASSERT(sampler_bank && sampler_bank->samplers[set][bit]); + h.u64(sampler_bank->samplers[set][bit]->get_hash()); + }); + } + + auto hash = h.get(); + auto *ret = pipeline_layouts.find(hash); + if (!ret) + ret = pipeline_layouts.emplace_yield(hash, hash, this, layout, sampler_bank); + return ret; +} + +DescriptorSetAllocator *Device::request_descriptor_set_allocator(const DescriptorSetLayout &layout, const uint32_t *stages_for_bindings, + const ImmutableSampler * const *immutable_samplers_) +{ + Hasher h; + h.data(reinterpret_cast(&layout), sizeof(layout)); + h.data(stages_for_bindings, sizeof(uint32_t) * VULKAN_NUM_BINDINGS); + Util::for_each_bit(layout.immutable_sampler_mask, [&](unsigned bit) { + VK_ASSERT(immutable_samplers_ && immutable_samplers_[bit]); + h.u64(immutable_samplers_[bit]->get_hash()); + }); + auto hash = h.get(); + + LOCK_CACHE(); + auto *ret = descriptor_set_allocators.find(hash); + if (!ret) + ret = descriptor_set_allocators.emplace_yield(hash, hash, this, layout, stages_for_bindings, immutable_samplers_); + return ret; +} + +const IndirectLayout *Device::request_indirect_layout( + const Vulkan::IndirectLayoutToken *tokens, uint32_t num_tokens, uint32_t stride) +{ + Hasher h; + for (uint32_t i = 0; i < num_tokens; i++) + h.u32(Util::ecast(tokens[i].type)); + + for (uint32_t i = 0; i < num_tokens; i++) + { + h.u32(tokens[i].offset); + if (tokens[i].type == IndirectLayoutToken::Type::PushConstant) + { + h.u64(tokens[i].data.push.layout->get_hash()); + h.u32(tokens[i].data.push.offset); + h.u32(tokens[i].data.push.range); + } + else if (tokens[i].type == IndirectLayoutToken::Type::VBO) + { + h.u32(tokens[i].data.vbo.binding); + } + } + + h.u32(stride); + auto hash = h.get(); + + LOCK_CACHE(); + auto *ret = indirect_layouts.find(hash); + if (!ret) + ret = indirect_layouts.emplace_yield(hash, this, tokens, num_tokens, stride); + return ret; +} + +void Device::merge_combined_resource_layout(CombinedResourceLayout &layout, const Program &program) +{ + if (program.get_shader(ShaderStage::Vertex)) + layout.attribute_mask |= program.get_shader(ShaderStage::Vertex)->get_layout().input_mask; + if (program.get_shader(ShaderStage::Fragment)) + layout.render_target_mask |= program.get_shader(ShaderStage::Fragment)->get_layout().output_mask; + + for (unsigned i = 0; i < static_cast(ShaderStage::Count); i++) + { + auto *shader = program.get_shader(static_cast(i)); + if (!shader) + continue; + + uint32_t stage_mask = 1u << i; + + auto &shader_layout = shader->get_layout(); + + for (unsigned set = 0; set < VULKAN_NUM_DESCRIPTOR_SETS; set++) + { + layout.sets[set].sampled_image_mask |= shader_layout.sets[set].sampled_image_mask; + layout.sets[set].storage_image_mask |= shader_layout.sets[set].storage_image_mask; + layout.sets[set].uniform_buffer_mask |= shader_layout.sets[set].uniform_buffer_mask; + layout.sets[set].storage_buffer_mask |= shader_layout.sets[set].storage_buffer_mask; + layout.sets[set].sampled_texel_buffer_mask |= shader_layout.sets[set].sampled_texel_buffer_mask; + layout.sets[set].storage_texel_buffer_mask |= shader_layout.sets[set].storage_texel_buffer_mask; + layout.sets[set].input_attachment_mask |= shader_layout.sets[set].input_attachment_mask; + layout.sets[set].sampler_mask |= shader_layout.sets[set].sampler_mask; + layout.sets[set].separate_image_mask |= shader_layout.sets[set].separate_image_mask; + layout.sets[set].fp_mask |= shader_layout.sets[set].fp_mask; + + uint32_t active_binds = + shader_layout.sets[set].sampled_image_mask | + shader_layout.sets[set].storage_image_mask | + shader_layout.sets[set].uniform_buffer_mask| + shader_layout.sets[set].storage_buffer_mask | + shader_layout.sets[set].sampled_texel_buffer_mask | + shader_layout.sets[set].storage_texel_buffer_mask | + shader_layout.sets[set].input_attachment_mask | + shader_layout.sets[set].sampler_mask | + shader_layout.sets[set].separate_image_mask; + + if (active_binds) + layout.stages_for_sets[set] |= stage_mask; + + for_each_bit(active_binds, [&](uint32_t bit) { + layout.stages_for_bindings[set][bit] |= stage_mask; + + auto &combined_size = layout.sets[set].array_size[bit]; + auto &shader_size = shader_layout.sets[set].array_size[bit]; + if (combined_size && combined_size != shader_size) + LOGE("Mismatch between array sizes in different shaders.\n"); + else + combined_size = shader_size; + }); + } + + // Merge push constant ranges into one range. + // Do not try to split into multiple ranges as it just complicates things for no obvious gain. + if (shader_layout.push_constant_size != 0) + { + layout.push_constant_range.stageFlags |= 1u << i; + layout.push_constant_range.size = + std::max(layout.push_constant_range.size, shader_layout.push_constant_size); + } + + layout.spec_constant_mask[i] = shader_layout.spec_constant_mask; + layout.combined_spec_constant_mask |= shader_layout.spec_constant_mask; + layout.bindless_descriptor_set_mask |= shader_layout.bindless_set_mask; + } + + for (unsigned set = 0; set < VULKAN_NUM_DESCRIPTOR_SETS; set++) + { + if (layout.stages_for_sets[set] == 0) + continue; + + layout.descriptor_set_mask |= 1u << set; + + for (unsigned binding = 0; binding < VULKAN_NUM_BINDINGS; binding++) + { + auto &array_size = layout.sets[set].array_size[binding]; + if (array_size == DescriptorSetLayout::UNSIZED_ARRAY) + { + for (unsigned i = 1; i < VULKAN_NUM_BINDINGS; i++) + { + if (layout.stages_for_bindings[set][i] != 0) + LOGE("Using bindless for set = %u, but binding = %u has a descriptor attached to it.\n", set, i); + } + + // Allows us to have one unified descriptor set layout for bindless. + layout.stages_for_bindings[set][binding] = VK_SHADER_STAGE_ALL; + } + else if (array_size == 0) + { + array_size = 1; + } + else + { + for (unsigned i = 1; i < array_size; i++) + { + if (layout.stages_for_bindings[set][binding + i] != 0) + { + LOGE("Detected binding aliasing for (%u, %u). Binding array with %u elements starting at (%u, %u) overlaps.\n", + set, binding + i, array_size, set, binding); + } + } + } + } + } + + Hasher h; + h.u32(layout.push_constant_range.stageFlags); + h.u32(layout.push_constant_range.size); + layout.push_constant_layout_hash = h.get(); +} + +void Device::bake_program(Program &program, const ImmutableSamplerBank *sampler_bank) +{ + CombinedResourceLayout layout; + ImmutableSamplerBank ext_immutable_samplers = {}; + + merge_combined_resource_layout(layout, program); + + if (sampler_bank) + { + for (unsigned set = 0; set < VULKAN_NUM_DESCRIPTOR_SETS; set++) + { + for_each_bit(layout.sets[set].sampler_mask | layout.sets[set].sampled_image_mask, [&](uint32_t binding) + { + if (sampler_bank->samplers[set][binding]) + { + ext_immutable_samplers.samplers[set][binding] = sampler_bank->samplers[set][binding]; + layout.sets[set].immutable_sampler_mask |= 1u << binding; + } + }); + } + } + + program.set_pipeline_layout(request_pipeline_layout(layout, &ext_immutable_samplers)); +} + +bool Device::init_pipeline_cache(const uint8_t *data, size_t size) +{ + static const auto uuid_size = sizeof(gpu_props.pipelineCacheUUID); + static const auto hash_size = sizeof(Util::Hash); + + VkPipelineCacheCreateInfo info = { VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO }; + if (!data || size < uuid_size + hash_size) + { + LOGI("Creating a fresh pipeline cache.\n"); + } + else if (memcmp(data, gpu_props.pipelineCacheUUID, uuid_size) != 0) + { + LOGI("Pipeline cache UUID changed.\n"); + } + else + { + Util::Hash reference_hash; + memcpy(&reference_hash, data + uuid_size, sizeof(reference_hash)); + + info.initialDataSize = size - uuid_size - hash_size; + data += uuid_size + hash_size; + info.pInitialData = data; + + Util::Hasher h; + h.data(data, info.initialDataSize); + + if (h.get() == reference_hash) + LOGI("Initializing pipeline cache.\n"); + else + { + LOGW("Pipeline cache is corrupt, creating a fresh cache.\n"); + info.pInitialData = nullptr; + info.initialDataSize = 0; + } + } + + if (pipeline_cache != VK_NULL_HANDLE) + table->vkDestroyPipelineCache(device, pipeline_cache, nullptr); + pipeline_cache = VK_NULL_HANDLE; + return table->vkCreatePipelineCache(device, &info, nullptr, &pipeline_cache) == VK_SUCCESS; +} + +void Device::init_pipeline_cache() +{ +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES + if (!system_handles.filesystem) + return; + auto file = system_handles.filesystem->open_readonly_mapping("cache://pipeline_cache.bin"); + if (file) + { + auto size = file->get_size(); + auto *mapped = file->data(); + if (mapped && !init_pipeline_cache(mapped, size)) + LOGE("Failed to initialize pipeline cache.\n"); + } + else if (!init_pipeline_cache(nullptr, 0)) + LOGE("Failed to initialize pipeline cache.\n"); +#endif +} + +size_t Device::get_pipeline_cache_size() +{ + if (pipeline_cache == VK_NULL_HANDLE) + return 0; + + static const auto uuid_size = sizeof(gpu_props.pipelineCacheUUID); + static const auto hash_size = sizeof(Util::Hash); + size_t size = 0; + if (table->vkGetPipelineCacheData(device, pipeline_cache, &size, nullptr) != VK_SUCCESS) + { + LOGE("Failed to get pipeline cache data.\n"); + return 0; + } + + return size + uuid_size + hash_size; +} + +bool Device::get_pipeline_cache_data(uint8_t *data, size_t size) +{ + if (pipeline_cache == VK_NULL_HANDLE) + return false; + + static const auto uuid_size = sizeof(gpu_props.pipelineCacheUUID); + static const auto hash_size = sizeof(Util::Hash); + if (size < uuid_size + hash_size) + return false; + + auto *hash_data = data + uuid_size; + + size -= uuid_size + hash_size; + memcpy(data, gpu_props.pipelineCacheUUID, uuid_size); + data = hash_data + hash_size; + + if (table->vkGetPipelineCacheData(device, pipeline_cache, &size, data) != VK_SUCCESS) + { + LOGE("Failed to get pipeline cache data.\n"); + return false; + } + + Util::Hasher h; + h.data(data, size); + auto blob_hash = h.get(); + memcpy(hash_data, &blob_hash, sizeof(blob_hash)); + + return true; +} + +void Device::flush_pipeline_cache() +{ +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES + if (!system_handles.filesystem) + return; + + size_t size = get_pipeline_cache_size(); + if (!size) + { + LOGE("Failed to get pipeline cache size.\n"); + return; + } + + auto file = system_handles.filesystem->open_transactional_mapping( + "cache://pipeline_cache.bin", size); + + if (!file) + { + LOGE("Failed to get pipeline cache data.\n"); + return; + } + + if (!get_pipeline_cache_data(file->mutable_data(), size)) + { + LOGE("Failed to get pipeline cache data.\n"); + return; + } +#endif +} + +void Device::init_workarounds() +{ + workarounds = {}; + +#ifdef __APPLE__ + // Events are not supported in MoltenVK. + // TODO: Use VK_KHR_portability_subset to determine this. + workarounds.emulate_event_as_pipeline_barrier = true; + // MoltenVK is broken with push descriptor templates. + // KhronosGroup/MoltenVK issue 2323. + workarounds.broken_push_descriptors = true; + LOGW("Emulating events as pipeline barriers on Metal emulation.\n"); + LOGW("Disabling push descriptors on Metal emulation.\n"); +#else + bool sync2_workarounds = false; + const bool mesa_driver = ext.driver_id == VK_DRIVER_ID_MESA_RADV || + ext.driver_id == VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA || + ext.driver_id == VK_DRIVER_ID_MESA_TURNIP; + const bool amd_driver = ext.driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE || + ext.driver_id == VK_DRIVER_ID_AMD_PROPRIETARY; + + // AMD_PROPRIETARY was likely fixed before this, but fix was observed in this version (23.10.2). + if (mesa_driver && gpu_props.driverVersion < VK_MAKE_VERSION(23, 1, 0)) + sync2_workarounds = true; + else if (amd_driver && gpu_props.driverVersion < VK_MAKE_VERSION(2, 0, 283)) + sync2_workarounds = true; + + if (gpu_props.vendorID == VENDOR_ID_ARM) + { + LOGW("Workaround applied: Emulating events as pipeline barriers.\n"); + workarounds.emulate_event_as_pipeline_barrier = true; + } + + // For whatever ridiculous reason, pipeline cache control causes GPU hangs on Pascal cards in parallel-rdp. + // Use mesh shaders as the sentinel to check for that. + if (ext.driver_id == VK_DRIVER_ID_NVIDIA_PROPRIETARY && + (gpu_props.driverVersion < VK_VERSION_MAJOR(535) || + !ext.mesh_shader_features.meshShader)) + { + LOGW("Disabling pipeline cache control.\n"); + workarounds.broken_pipeline_cache_control = true; + } + + if (sync2_workarounds) + { + LOGW("Enabling workaround for sync2 access mask bugs.\n"); + // https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21271 + // Found bug around 23.0. Should be fixed by 23.1. + // Also observed on AMD windows. Probably fails on open source too given it shares PAL ... + workarounds.force_sync1_access = true; + // Avoids having to add workaround path to events as well, just fallback to plain barriers. + workarounds.emulate_event_as_pipeline_barrier = true; + } + + // I cannot reproduce this myself, but there are several users experiencing GPU hangs with push descriptors + // on AMD drivers (not RADV), so :shrug:. + // https://github.com/simple64/simple64/issues/449 + if (ext.driver_id == VK_DRIVER_ID_AMD_OPEN_SOURCE || ext.driver_id == VK_DRIVER_ID_AMD_PROPRIETARY) + workarounds.broken_push_descriptors = true; +#endif + + if (ext.supports_tooling_info && vkGetPhysicalDeviceToolPropertiesEXT) + { + uint32_t count = 0; + vkGetPhysicalDeviceToolPropertiesEXT(gpu, &count, nullptr); + Util::SmallVector tool_props(count); + for (auto &t : tool_props) + t = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT }; + vkGetPhysicalDeviceToolPropertiesEXT(gpu, &count, tool_props.data()); + for (auto &t : tool_props) + { + LOGI(" Detected attached tool:\n"); + LOGI(" Name: %s\n", t.name); + LOGI(" Description: %s\n", t.description); + LOGI(" Version: %s\n", t.version); + if ((t.purposes & VK_TOOL_PURPOSE_TRACING_BIT_EXT) != 0 && + (t.purposes & VK_TOOL_PURPOSE_PROFILING_BIT) == 0) + { + LOGI("Detected non-profiling tracing tool, forcing host cached memory types for performance.\n"); + workarounds.force_host_cached = true; + } + + if (!debug_marker_sensitive && (t.purposes & VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT) != 0) + { + LOGI("Detected tool which cares about debug markers.\n"); + debug_marker_sensitive = true; + } + } + } +} + +void Device::set_context(const Context &context) +{ + ctx = &context; + table = &context.get_device_table(); + + register_thread_index(0); + instance = context.get_instance(); + gpu = context.get_gpu(); + device = context.get_device(); + num_thread_indices = context.get_num_thread_indices(); + + queue_info = context.get_queue_info(); + + mem_props = context.get_mem_props(); + gpu_props = context.get_gpu_props(); + ext = context.get_enabled_device_features(); + system_handles = context.get_system_handles(); + + init_workarounds(); + + init_stock_samplers(); + init_pipeline_cache(); + + init_timeline_semaphores(); + + init_frame_contexts(2); // By default, regular double buffer between CPU and GPU. + + managers.memory.init(this); + managers.semaphore.init(this); + managers.fence.init(this); + managers.event.init(this); + managers.vbo.init(this, 4 * 1024, 16, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT); + managers.ibo.init(this, 4 * 1024, 16, VK_BUFFER_USAGE_INDEX_BUFFER_BIT); + managers.ubo.init(this, 256 * 1024, std::max(16u, gpu_props.limits.minUniformBufferOffsetAlignment), + VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT); + managers.ubo.set_spill_region_size(VULKAN_MAX_UBO_SIZE); + managers.staging.init(this, 64 * 1024, + std::max(gpu_props.limits.minStorageBufferOffsetAlignment, + std::max(16u, gpu_props.limits.optimalBufferCopyOffsetAlignment)), + VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT); + + managers.vbo.set_max_retained_blocks(256); + managers.ibo.set_max_retained_blocks(256); + managers.ubo.set_max_retained_blocks(64); + managers.staging.set_max_retained_blocks(32); + + for (int i = 0; i < QUEUE_INDEX_COUNT; i++) + { + if (queue_info.family_indices[i] == VK_QUEUE_FAMILY_IGNORED) + continue; + + bool alias_pool = false; + for (int j = 0; j < i; j++) + { + if (queue_info.family_indices[i] == queue_info.family_indices[j]) + { + alias_pool = true; + break; + } + } + + if (!alias_pool) + queue_data[i].performance_query_pool.init_device(this, queue_info.family_indices[i]); + } + + if (system_handles.timeline_trace_file) + init_calibrated_timestamps(); + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES + resource_manager.init(); +#endif +} + +void Device::begin_shader_caches() +{ + if (!ctx) + { + LOGE("No context. Forgot Device::set_context()?\n"); + return; + } + +#ifdef GRANITE_VULKAN_FOSSILIZE + init_pipeline_state(ctx->get_feature_filter(), ctx->get_physical_device_features(), + ctx->get_application_info()); +#elif defined(GRANITE_VULKAN_SYSTEM_HANDLES) + // Fossilize init will deal with init_shader_manager_cache() + init_shader_manager_cache(); +#endif +} + +#ifndef GRANITE_VULKAN_FOSSILIZE +unsigned Device::query_initialization_progress(InitializationStage) const +{ + // If we don't have Fossilize, everything is considered done up front. + return 100; +} + +void Device::wait_shader_caches() +{ +} +#endif + +void Device::init_timeline_semaphores() +{ + if (!ext.vk12_features.timelineSemaphore) + return; + + VkSemaphoreTypeCreateInfo type_info = { VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO }; + VkSemaphoreCreateInfo info = { VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO }; + info.pNext = &type_info; + type_info.semaphoreType = VK_SEMAPHORE_TYPE_TIMELINE; + type_info.initialValue = 0; + + for (int i = 0; i < QUEUE_INDEX_COUNT; i++) + if (table->vkCreateSemaphore(device, &info, nullptr, &queue_data[i].timeline_semaphore) != VK_SUCCESS) + LOGE("Failed to create timeline semaphore.\n"); +} + +void Device::configure_default_geometry_samplers(float max_aniso, float lod_bias) +{ + init_stock_sampler(StockSampler::DefaultGeometryFilterClamp, max_aniso, lod_bias); + init_stock_sampler(StockSampler::DefaultGeometryFilterWrap, max_aniso, lod_bias); +} + +void Device::init_stock_sampler(StockSampler mode, float max_aniso, float lod_bias) +{ + SamplerCreateInfo info = {}; + info.max_lod = VK_LOD_CLAMP_NONE; + info.max_anisotropy = 1.0f; + + switch (mode) + { + case StockSampler::NearestShadow: + case StockSampler::LinearShadow: + info.compare_enable = true; + info.compare_op = VK_COMPARE_OP_LESS_OR_EQUAL; + break; + + default: + info.compare_enable = false; + break; + } + + switch (mode) + { + case StockSampler::TrilinearClamp: + case StockSampler::TrilinearWrap: + case StockSampler::DefaultGeometryFilterWrap: + case StockSampler::DefaultGeometryFilterClamp: + info.mipmap_mode = VK_SAMPLER_MIPMAP_MODE_LINEAR; + break; + + default: + info.mipmap_mode = VK_SAMPLER_MIPMAP_MODE_NEAREST; + break; + } + + switch (mode) + { + case StockSampler::DefaultGeometryFilterClamp: + case StockSampler::DefaultGeometryFilterWrap: + case StockSampler::LinearClamp: + case StockSampler::LinearWrap: + case StockSampler::TrilinearClamp: + case StockSampler::TrilinearWrap: + case StockSampler::LinearShadow: + info.mag_filter = VK_FILTER_LINEAR; + info.min_filter = VK_FILTER_LINEAR; + break; + + default: + info.mag_filter = VK_FILTER_NEAREST; + info.min_filter = VK_FILTER_NEAREST; + break; + } + + switch (mode) + { + default: + case StockSampler::DefaultGeometryFilterWrap: + case StockSampler::LinearWrap: + case StockSampler::NearestWrap: + case StockSampler::TrilinearWrap: + info.address_mode_u = VK_SAMPLER_ADDRESS_MODE_REPEAT; + info.address_mode_v = VK_SAMPLER_ADDRESS_MODE_REPEAT; + info.address_mode_w = VK_SAMPLER_ADDRESS_MODE_REPEAT; + break; + + case StockSampler::DefaultGeometryFilterClamp: + case StockSampler::LinearClamp: + case StockSampler::NearestClamp: + case StockSampler::TrilinearClamp: + case StockSampler::NearestShadow: + case StockSampler::LinearShadow: + info.address_mode_u = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + info.address_mode_v = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + info.address_mode_w = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; + break; + } + + switch (mode) + { + case StockSampler::DefaultGeometryFilterWrap: + case StockSampler::DefaultGeometryFilterClamp: + if (get_device_features().enabled_features.samplerAnisotropy) + { + info.anisotropy_enable = true; + info.max_anisotropy = std::min(max_aniso, get_gpu_properties().limits.maxSamplerAnisotropy); + } + info.mip_lod_bias = lod_bias; + break; + + default: + break; + } + + samplers[unsigned(mode)] = request_immutable_sampler(info, nullptr); +} + +void Device::init_stock_samplers() +{ + for (unsigned i = 0; i < static_cast(StockSampler::Count); i++) + { + auto mode = static_cast(i); + init_stock_sampler(mode, 8.0f, 0.0f); + } +} + +static void request_block(Device &device, BufferBlock &block, VkDeviceSize size, + BufferPool &pool, std::vector &recycle) +{ + if (block.is_mapped()) + block.unmap(device); + + if (block.get_offset() == 0) + { + if (block.get_size() == pool.get_block_size()) + pool.recycle_block(block); + } + else + { + if (block.get_size() == pool.get_block_size()) + recycle.push_back(block); + } + + if (size) + block = pool.request_block(size); + else + block = {}; +} + +void Device::request_vertex_block(BufferBlock &block, VkDeviceSize size) +{ + LOCK(); + request_vertex_block_nolock(block, size); +} + +void Device::request_vertex_block_nolock(BufferBlock &block, VkDeviceSize size) +{ + request_block(*this, block, size, managers.vbo, frame().vbo_blocks); +} + +void Device::request_index_block(BufferBlock &block, VkDeviceSize size) +{ + LOCK(); + request_index_block_nolock(block, size); +} + +void Device::request_index_block_nolock(BufferBlock &block, VkDeviceSize size) +{ + request_block(*this, block, size, managers.ibo, frame().ibo_blocks); +} + +void Device::request_uniform_block(BufferBlock &block, VkDeviceSize size) +{ + LOCK(); + request_uniform_block_nolock(block, size); +} + +void Device::request_uniform_block_nolock(BufferBlock &block, VkDeviceSize size) +{ + request_block(*this, block, size, managers.ubo, frame().ubo_blocks); +} + +void Device::request_staging_block(BufferBlock &block, VkDeviceSize size) +{ + LOCK(); + request_staging_block_nolock(block, size); +} + +void Device::request_staging_block_nolock(BufferBlock &block, VkDeviceSize size) +{ + request_block(*this, block, size, managers.staging, frame().staging_blocks); +} + +void Device::submit(CommandBufferHandle &cmd, Fence *fence, unsigned semaphore_count, Semaphore *semaphores) +{ + cmd->end_debug_channel(); + + LOCK(); + submit_nolock(std::move(cmd), fence, semaphore_count, semaphores); +} + +void Device::submit_discard_nolock(CommandBufferHandle &cmd) +{ +#ifdef VULKAN_DEBUG + auto type = cmd->get_command_buffer_type(); + auto &pool = frame().cmd_pools[get_physical_queue_type(type)][cmd->get_thread_index()]; + pool.signal_submitted(cmd->get_command_buffer()); +#endif + + cmd->end(); + cmd.reset(); + decrement_frame_counter_nolock(); +} + +void Device::submit_discard(CommandBufferHandle &cmd) +{ + LOCK(); + submit_discard_nolock(cmd); +} + +QueueIndices Device::get_physical_queue_type(CommandBuffer::Type queue_type) const +{ + // Enums match. + return QueueIndices(queue_type); +} + +void Device::submit_nolock(CommandBufferHandle cmd, Fence *fence, unsigned semaphore_count, Semaphore *semaphores) +{ + auto type = cmd->get_command_buffer_type(); + auto physical_type = get_physical_queue_type(type); + auto &submissions = frame().submissions[physical_type]; +#ifdef VULKAN_DEBUG + auto &pool = frame().cmd_pools[physical_type][cmd->get_thread_index()]; + pool.signal_submitted(cmd->get_command_buffer()); +#endif + + bool profiled_submit = cmd->has_profiling(); + + if (profiled_submit) + { + LOGI("Submitting profiled command buffer, draining GPU.\n"); + Fence drain_fence; + submit_empty_nolock(physical_type, &drain_fence, nullptr, -1); + drain_fence->wait(); + drain_fence->set_internal_sync_object(); + } + + cmd->end(); + submissions.push_back(std::move(cmd)); + + InternalFence signalled_fence; + + if (fence || semaphore_count) + { + submit_queue(physical_type, fence ? &signalled_fence : nullptr, + nullptr, + semaphore_count, semaphores, + profiled_submit ? 0 : -1); + } + + if (fence) + { + VK_ASSERT(!*fence); + if (signalled_fence.value) + *fence = Fence(handle_pool.fences.allocate(this, signalled_fence.value, signalled_fence.timeline)); + else + *fence = Fence(handle_pool.fences.allocate(this, signalled_fence.fence)); + } + + if (profiled_submit) + { + // Drain queue again and report results. + LOGI("Submitted profiled command buffer, draining GPU and report ...\n"); + auto &query_pool = get_performance_query_pool(physical_type); + Fence drain_fence; + submit_empty_nolock(physical_type, &drain_fence, nullptr, fence || semaphore_count ? -1 : 0); + drain_fence->wait(); + drain_fence->set_internal_sync_object(); + query_pool.report(); + } + + decrement_frame_counter_nolock(); +} + +void Device::submit_external(CommandBuffer::Type type) +{ + LOCK(); + auto &data = queue_data[get_physical_queue_type(type)]; + data.need_fence = true; +} + +void Device::submit_empty(CommandBuffer::Type type, Fence *fence, SemaphoreHolder *semaphore) +{ + VK_ASSERT(!semaphore || !semaphore->is_proxy_timeline()); + LOCK(); + submit_empty_nolock(get_physical_queue_type(type), fence, semaphore, -1); +} + +void Device::submit_empty_nolock(QueueIndices physical_type, Fence *fence, + SemaphoreHolder *semaphore, int profiling_iteration) +{ + InternalFence signalled_fence = {}; + + submit_queue(physical_type, fence ? &signalled_fence : nullptr, semaphore, + 0, nullptr, profiling_iteration); + + if (fence) + { + if (signalled_fence.value) + *fence = Fence(handle_pool.fences.allocate(this, signalled_fence.value, signalled_fence.timeline)); + else + *fence = Fence(handle_pool.fences.allocate(this, signalled_fence.fence)); + } +} + +void Device::submit_empty_inner(QueueIndices physical_type, InternalFence *fence, + SemaphoreHolder *external_semaphore, + unsigned semaphore_count, Semaphore *semaphores) +{ + auto &data = queue_data[physical_type]; + VkSemaphore timeline_semaphore = data.timeline_semaphore; + uint64_t timeline_value = ++data.current_timeline; + VkQueue queue = queue_info.queues[physical_type]; + frame().timeline_fences[physical_type] = data.current_timeline; + + // Add external wait semaphores. + Helper::WaitSemaphores wait_semaphores; + Helper::BatchComposer composer; + collect_wait_semaphores(data, wait_semaphores); + composer.add_wait_submissions(wait_semaphores); + + for (auto consume : frame().consumed_semaphores) + { + composer.add_wait_semaphore(consume, VK_PIPELINE_STAGE_NONE); + frame().recycled_semaphores.push_back(consume); + } + frame().consumed_semaphores.clear(); + + emit_queue_signals(composer, external_semaphore, + timeline_semaphore, timeline_value, + fence, semaphore_count, semaphores); + + VkFence cleared_fence = fence && !ext.vk12_features.timelineSemaphore ? + managers.fence.request_cleared_fence() : + VK_NULL_HANDLE; + if (fence) + fence->fence = cleared_fence; + + auto start_ts = write_calibrated_timestamp_nolock(); + auto result = submit_batches(composer, queue, cleared_fence); + auto end_ts = write_calibrated_timestamp_nolock(); + register_time_interval_nolock("CPU", std::move(start_ts), std::move(end_ts), "submit"); + + if (result != VK_SUCCESS) + LOGE("vkQueueSubmit2 failed (code: %d).\n", int(result)); + + if (!ext.vk12_features.timelineSemaphore) + data.need_fence = true; +} + +Fence Device::request_legacy_fence() +{ + VkFence fence = managers.fence.request_cleared_fence(); + return Fence(handle_pool.fences.allocate(this, fence)); +} + +void Device::submit_staging(CommandBufferHandle &cmd, bool flush) +{ + Semaphore semaphores[2]; + submit_nolock(cmd, nullptr, 2, semaphores); + semaphores[0]->set_internal_sync_object(); + semaphores[1]->set_internal_sync_object(); + add_wait_semaphore_nolock(QUEUE_INDEX_GRAPHICS, semaphores[0], VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, flush); + add_wait_semaphore_nolock(QUEUE_INDEX_COMPUTE, semaphores[1], VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, flush); +} + +void Device::collect_wait_semaphores(QueueData &data, Helper::WaitSemaphores &sem) +{ + VkSemaphoreSubmitInfo info = { VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO }; + + for (size_t i = 0, n = data.wait_semaphores.size(); i < n; i++) + { + auto &semaphore = data.wait_semaphores[i]; + auto vk_semaphore = semaphore->consume(); + if (semaphore->get_semaphore_type() == VK_SEMAPHORE_TYPE_TIMELINE) + { + info.semaphore = vk_semaphore; + info.stageMask = data.wait_stages[i]; + info.value = semaphore->get_timeline_value(); + sem.timeline_waits.push_back(info); + } + else + { + if (semaphore->is_external_object_compatible()) + frame().destroyed_semaphores.push_back(vk_semaphore); + else + frame().recycled_semaphores.push_back(vk_semaphore); + + info.semaphore = vk_semaphore; + info.stageMask = data.wait_stages[i]; + info.value = 0; + sem.binary_waits.push_back(info); + } + } + + data.wait_stages.clear(); + data.wait_semaphores.clear(); +} + +Helper::BatchComposer::BatchComposer() +{ + submits.emplace_back(); +} + +void Helper::BatchComposer::begin_batch() +{ + if (!waits[submit_index].empty() || !cmds[submit_index].empty() || !signals[submit_index].empty()) + { + submit_index = submits.size(); + submits.emplace_back(); + VK_ASSERT(submits.size() <= MaxSubmissions); + } +} + +void Helper::BatchComposer::add_wait_submissions(WaitSemaphores &sem) +{ + auto &w = waits[submit_index]; + + if (!sem.binary_waits.empty()) + w.insert(w.end(), sem.binary_waits.begin(), sem.binary_waits.end()); + + if (!sem.timeline_waits.empty()) + w.insert(w.end(), sem.timeline_waits.begin(), sem.timeline_waits.end()); +} + +SmallVector & +Helper::BatchComposer::bake(int profiling_iteration) +{ + for (size_t i = 0, n = submits.size(); i < n; i++) + { + auto &submit = submits[i]; + + submit = { VK_STRUCTURE_TYPE_SUBMIT_INFO_2 }; + submit.commandBufferInfoCount = uint32_t(cmds[i].size()); + submit.pCommandBufferInfos = cmds[i].data(); + submit.signalSemaphoreInfoCount = uint32_t(signals[i].size()); + submit.pSignalSemaphoreInfos = signals[i].data(); + submit.waitSemaphoreInfoCount = uint32_t(waits[i].size()); + submit.pWaitSemaphoreInfos = waits[i].data(); + + if (profiling_iteration >= 0) + { + profiling_infos[i] = { VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR }; + profiling_infos[i].counterPassIndex = uint32_t(profiling_iteration); + profiling_infos[i].pNext = submit.pNext; + submit.pNext = &profiling_infos[i]; + } + } + + // Compact the submission array to avoid empty submissions. + size_t submit_count = 0; + for (size_t i = 0, n = submits.size(); i < n; i++) + { + if (submits[i].waitSemaphoreInfoCount || submits[i].signalSemaphoreInfoCount || submits[i].commandBufferInfoCount) + { + if (i != submit_count) + submits[submit_count] = submits[i]; + submit_count++; + } + } + + submits.resize(submit_count); + return submits; +} + +void Helper::BatchComposer::add_command_buffer(VkCommandBuffer cmd) +{ + if (!signals[submit_index].empty()) + begin_batch(); + + VkCommandBufferSubmitInfo info = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO }; + info.commandBuffer = cmd; + cmds[submit_index].push_back(info); +} + +void Helper::BatchComposer::add_signal_semaphore(VkSemaphore sem, VkPipelineStageFlags2 stages, uint64_t timeline) +{ + VkSemaphoreSubmitInfo info = { VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO }; + info.semaphore = sem; + info.stageMask = stages; + info.value = timeline; + signals[submit_index].push_back(info); +} + +void Helper::BatchComposer::add_wait_semaphore(SemaphoreHolder &sem, VkPipelineStageFlags2 stage) +{ + if (!cmds[submit_index].empty() || !signals[submit_index].empty()) + begin_batch(); + + bool is_timeline = sem.get_semaphore_type() == VK_SEMAPHORE_TYPE_TIMELINE; + + VkSemaphoreSubmitInfo info = { VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO }; + info.semaphore = sem.get_semaphore(); + info.stageMask = stage; + info.value = is_timeline ? sem.get_timeline_value() : 0; + waits[submit_index].push_back(info); +} + +void Helper::BatchComposer::add_wait_semaphore(VkSemaphore sem, VkPipelineStageFlags2 stage) +{ + if (!cmds[submit_index].empty() || !signals[submit_index].empty()) + begin_batch(); + + VkSemaphoreSubmitInfo info = { VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO }; + info.semaphore = sem; + info.stageMask = stage; + info.value = 0; + waits[submit_index].push_back(info); +} + +void Device::emit_queue_signals(Helper::BatchComposer &composer, + SemaphoreHolder *external_semaphore, + VkSemaphore sem, uint64_t timeline, InternalFence *fence, + unsigned semaphore_count, Semaphore *semaphores) +{ + if (external_semaphore) + { + VK_ASSERT(!external_semaphore->is_signalled()); + VK_ASSERT(!external_semaphore->is_proxy_timeline()); + VK_ASSERT(external_semaphore->get_semaphore()); + external_semaphore->signal_external(); + composer.add_signal_semaphore(external_semaphore->get_semaphore(), + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, + external_semaphore->get_semaphore_type() == VK_SEMAPHORE_TYPE_TIMELINE ? + external_semaphore->get_timeline_value() : 0); + + // Make sure we observe that the external semaphore is signalled before fences are signalled. + composer.begin_batch(); + } + + // Add external signal semaphores. + if (ext.vk12_features.timelineSemaphore) + { + // Signal once and distribute the timeline value to all. + composer.add_signal_semaphore(sem, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, timeline); + + if (fence) + { + fence->timeline = sem; + fence->value = timeline; + fence->fence = VK_NULL_HANDLE; + } + + for (unsigned i = 0; i < semaphore_count; i++) + { + VK_ASSERT(!semaphores[i]); + semaphores[i] = Semaphore(handle_pool.semaphores.allocate(this, timeline, sem, false)); + semaphores[i]->signal_external(); + } + } + else + { + if (fence) + { + fence->timeline = VK_NULL_HANDLE; + fence->value = 0; + } + + for (unsigned i = 0; i < semaphore_count; i++) + { + VkSemaphore cleared_semaphore = managers.semaphore.request_cleared_semaphore(); + composer.add_signal_semaphore(cleared_semaphore, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0); + VK_ASSERT(!semaphores[i]); + semaphores[i] = Semaphore(handle_pool.semaphores.allocate(this, cleared_semaphore, true, true)); + } + } +} + +VkResult Device::queue_submit(VkQueue queue, uint32_t count, const VkSubmitInfo2 *submits, VkFence fence) +{ + if (ext.vk13_features.synchronization2) + { + return table->vkQueueSubmit2(queue, count, submits, fence); + } + else + { + for (uint32_t submit_index = 0; submit_index < count; submit_index++) + { + VkTimelineSemaphoreSubmitInfo timeline = { VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO }; + const auto &submit = submits[submit_index]; + VkSubmitInfo sub = { VK_STRUCTURE_TYPE_SUBMIT_INFO }; + bool need_timeline = false; + + Util::SmallVector wait_stages; + Util::SmallVector signal_values; + Util::SmallVector wait_values; + Util::SmallVector signals; + Util::SmallVector cmd; + Util::SmallVector waits; + + for (uint32_t i = 0; i < submit.commandBufferInfoCount; i++) + cmd.push_back(submit.pCommandBufferInfos[i].commandBuffer); + + for (uint32_t i = 0; i < submit.waitSemaphoreInfoCount; i++) + { + waits.push_back(submit.pWaitSemaphoreInfos[i].semaphore); + wait_stages.push_back(convert_vk_dst_stage2(submit.pWaitSemaphoreInfos[i].stageMask)); + wait_values.push_back(submit.pWaitSemaphoreInfos[i].value); + if (wait_values.back() != 0) + need_timeline = true; + } + + for (uint32_t i = 0; i < submit.signalSemaphoreInfoCount; i++) + { + signals.push_back(submit.pSignalSemaphoreInfos[i].semaphore); + signal_values.push_back(submit.pSignalSemaphoreInfos[i].value); + if (signal_values.back() != 0) + need_timeline = true; + } + + sub.commandBufferCount = uint32_t(cmd.size()); + sub.pCommandBuffers = cmd.data(); + sub.signalSemaphoreCount = uint32_t(signals.size()); + sub.pSignalSemaphores = signals.data(); + sub.waitSemaphoreCount = uint32_t(waits.size()); + sub.pWaitSemaphores = waits.data(); + sub.pWaitDstStageMask = wait_stages.data(); + + sub.pNext = submit.pNext; + if (need_timeline) + { + timeline.pNext = sub.pNext; + sub.pNext = &timeline; + + timeline.signalSemaphoreValueCount = uint32_t(signal_values.size()); + timeline.pSignalSemaphoreValues = signal_values.data(); + timeline.waitSemaphoreValueCount = uint32_t(wait_values.size()); + timeline.pWaitSemaphoreValues = wait_values.data(); + } + + auto result = table->vkQueueSubmit(queue, 1, &sub, submit_index + 1 == count ? fence : VK_NULL_HANDLE); + if (result != VK_SUCCESS) + return result; + } + + if (count == 0 && fence) + { + auto result = table->vkQueueSubmit(queue, 0, nullptr, fence); + if (result != VK_SUCCESS) + return result; + } + + return VK_SUCCESS; + } +} + +VkResult Device::submit_batches(Helper::BatchComposer &composer, VkQueue queue, VkFence fence, int profiling_iteration) +{ + auto &submits = composer.bake(profiling_iteration); + if (queue_lock_callback) + queue_lock_callback(); + + VkResult result = queue_submit(queue, uint32_t(submits.size()), submits.data(), fence); + + if (ImplementationQuirks::get().queue_wait_on_submission) + table->vkQueueWaitIdle(queue); + if (queue_unlock_callback) + queue_unlock_callback(); + + return result; +} + +void Device::submit_queue(QueueIndices physical_type, InternalFence *fence, + SemaphoreHolder *external_semaphore, + unsigned semaphore_count, Semaphore *semaphores, int profiling_iteration) +{ + auto &data = queue_data[physical_type]; + auto &submissions = frame().submissions[physical_type]; + + if (submissions.empty()) + { + if (fence || semaphore_count || external_semaphore) + submit_empty_inner(physical_type, fence, external_semaphore, semaphore_count, semaphores); + return; + } + + VkSemaphore timeline_semaphore = data.timeline_semaphore; + uint64_t timeline_value = ++data.current_timeline; + + VkQueue queue = queue_info.queues[physical_type]; + frame().timeline_fences[physical_type] = data.current_timeline; + + Helper::BatchComposer composer; + Helper::WaitSemaphores wait_semaphores; + collect_wait_semaphores(data, wait_semaphores); + + composer.add_wait_submissions(wait_semaphores); + + // Find first command buffer which uses WSI, we'll need to emit WSI acquire wait before the first command buffer + // that uses WSI image. + + for (size_t i = 0, submissions_size = submissions.size(); i < submissions_size; i++) + { + auto &cmd = submissions[i]; + VkPipelineStageFlags2 wsi_stages = cmd->swapchain_touched_in_stages(); + + if (wsi_stages != 0 && !wsi.consumed) + { + if (!can_touch_swapchain_in_command_buffer(physical_type)) + LOGE("Touched swapchain in unsupported command buffer type %u.\n", unsigned(physical_type)); + + if (wsi.acquire && wsi.acquire->get_semaphore() != VK_NULL_HANDLE) + { + VK_ASSERT(wsi.acquire->is_signalled()); + composer.add_wait_semaphore(*wsi.acquire, wsi_stages); + if (wsi.acquire->get_semaphore_type() == VK_SEMAPHORE_TYPE_BINARY) + { + if (wsi.acquire->is_external_object_compatible()) + frame().destroyed_semaphores.push_back(wsi.acquire->get_semaphore()); + else + frame().recycled_semaphores.push_back(wsi.acquire->get_semaphore()); + } + wsi.acquire->consume(); + wsi.acquire.reset(); + } + + composer.add_command_buffer(cmd->get_command_buffer()); + + VkSemaphore release = managers.semaphore.request_cleared_semaphore(); + wsi.release = Semaphore(handle_pool.semaphores.allocate(this, release, true, true)); + wsi.release->set_internal_sync_object(); + composer.add_signal_semaphore(release, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0); + wsi.present_queue = queue; + wsi.present_queue_type = cmd->get_command_buffer_type(); + wsi.consumed = true; + } + else + { + // After we have consumed WSI, we cannot keep using it, since we + // already signalled the semaphore. + VK_ASSERT(wsi_stages == 0); + composer.add_command_buffer(cmd->get_command_buffer()); + } + } + + VkFence cleared_fence = fence && !ext.vk12_features.timelineSemaphore ? + managers.fence.request_cleared_fence() : + VK_NULL_HANDLE; + + if (fence) + fence->fence = cleared_fence; + + for (auto consume : frame().consumed_semaphores) + { + composer.add_wait_semaphore(consume, VK_PIPELINE_STAGE_NONE); + frame().recycled_semaphores.push_back(consume); + } + frame().consumed_semaphores.clear(); + + emit_queue_signals(composer, external_semaphore, timeline_semaphore, timeline_value, + fence, semaphore_count, semaphores); + + auto start_ts = write_calibrated_timestamp_nolock(); + auto result = submit_batches(composer, queue, cleared_fence, profiling_iteration); + auto end_ts = write_calibrated_timestamp_nolock(); + register_time_interval_nolock("CPU", std::move(start_ts), std::move(end_ts), "submit"); + + if (result != VK_SUCCESS) + LOGE("vkQueueSubmit2 failed (code: %d).\n", int(result)); + submissions.clear(); + + if (!ext.vk12_features.timelineSemaphore) + data.need_fence = true; +} + +void Device::flush_frame(QueueIndices physical_type) +{ + if (queue_info.queues[physical_type] != VK_NULL_HANDLE) + submit_queue(physical_type, nullptr); +} + +void Device::end_frame_context() +{ + DRAIN_FRAME_LOCK(); + end_frame_nolock(); +} + +void Device::end_frame_nolock() +{ + // Make sure we have a fence which covers all submissions in the frame. + for (auto &i : queue_flush_order) + { + if (queue_data[i].need_fence || + !frame().submissions[i].empty() || + !frame().consumed_semaphores.empty()) + { + InternalFence fence = {}; + submit_queue(i, &fence); + if (fence.fence != VK_NULL_HANDLE) + frame().wait_and_recycle_fences.push_back(fence.fence); + queue_data[i].need_fence = false; + } + } +} + +void Device::flush_frame() +{ + LOCK(); + flush_frame_nolock(); +} + +void Device::flush_frame_nolock() +{ + for (auto &i : queue_flush_order) + flush_frame(i); +} + +PerformanceQueryPool &Device::get_performance_query_pool(QueueIndices physical_index) +{ + for (int i = 0; i < physical_index; i++) + if (queue_info.family_indices[i] == queue_info.family_indices[physical_index]) + return queue_data[i].performance_query_pool; + return queue_data[physical_index].performance_query_pool; +} + +CommandBufferHandle Device::request_command_buffer(CommandBuffer::Type type) +{ + return request_command_buffer_for_thread(get_thread_index(), type); +} + +CommandBufferHandle Device::request_command_buffer_for_thread(unsigned thread_index, CommandBuffer::Type type) +{ + LOCK(); + return request_command_buffer_nolock(thread_index, type, false); +} + +CommandBufferHandle Device::request_profiled_command_buffer(CommandBuffer::Type type) +{ + return request_profiled_command_buffer_for_thread(get_thread_index(), type); +} + +CommandBufferHandle Device::request_profiled_command_buffer_for_thread(unsigned thread_index, + CommandBuffer::Type type) +{ + LOCK(); + return request_command_buffer_nolock(thread_index, type, true); +} + +CommandBufferHandle Device::request_command_buffer_nolock(unsigned thread_index, CommandBuffer::Type type, bool profiled) +{ + auto physical_type = get_physical_queue_type(type); + auto &pool = frame().cmd_pools[physical_type][thread_index]; + auto cmd = pool.request_command_buffer(); + + if (profiled && !ext.performance_query_features.performanceCounterQueryPools) + { + LOGW("Profiling is not supported on this device.\n"); + profiled = false; + } + + VkCommandBufferBeginInfo info = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO }; + info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; + table->vkBeginCommandBuffer(cmd, &info); + add_frame_counter_nolock(); + CommandBufferHandle handle(handle_pool.command_buffers.allocate(this, cmd, pipeline_cache, type)); + handle->set_thread_index(thread_index); + + if (profiled) + { + auto &query_pool = get_performance_query_pool(physical_type); + handle->enable_profiling(); + query_pool.begin_command_buffer(handle->get_command_buffer()); + } + + return handle; +} + +void Device::submit_secondary(CommandBuffer &primary, CommandBuffer &secondary) +{ + { + LOCK(); + secondary.end(); + decrement_frame_counter_nolock(); + +#ifdef VULKAN_DEBUG + auto &pool = frame().cmd_pools[get_physical_queue_type(secondary.get_command_buffer_type())][secondary.get_thread_index()]; + pool.signal_submitted(secondary.get_command_buffer()); +#endif + } + + VkCommandBuffer secondary_cmd = secondary.get_command_buffer(); + table->vkCmdExecuteCommands(primary.get_command_buffer(), 1, &secondary_cmd); +} + +CommandBufferHandle Device::request_secondary_command_buffer_for_thread(unsigned thread_index, + const Framebuffer *framebuffer, + unsigned subpass, + CommandBuffer::Type type) +{ + LOCK(); + + auto &pool = frame().cmd_pools[get_physical_queue_type(type)][thread_index]; + auto cmd = pool.request_secondary_command_buffer(); + VkCommandBufferBeginInfo info = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO }; + VkCommandBufferInheritanceInfo inherit = { VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO }; + + inherit.framebuffer = VK_NULL_HANDLE; + inherit.renderPass = framebuffer->get_compatible_render_pass().get_render_pass(); + inherit.subpass = subpass; + info.pInheritanceInfo = &inherit; + info.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT | VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT; + + table->vkBeginCommandBuffer(cmd, &info); + add_frame_counter_nolock(); + CommandBufferHandle handle(handle_pool.command_buffers.allocate(this, cmd, pipeline_cache, type)); + handle->set_thread_index(thread_index); + handle->set_is_secondary(); + return handle; +} + +void Device::set_acquire_semaphore(unsigned index, Semaphore acquire) +{ + wsi.acquire = std::move(acquire); + wsi.index = index; + wsi.consumed = false; + + if (wsi.acquire) + { + wsi.acquire->set_internal_sync_object(); + VK_ASSERT(wsi.acquire->is_signalled()); + } +} + +Semaphore Device::consume_release_semaphore() +{ + auto ret = std::move(wsi.release); + wsi.release.reset(); + return ret; +} + +VkQueue Device::get_current_present_queue() const +{ + VK_ASSERT(wsi.present_queue); + return wsi.present_queue; +} + +CommandBuffer::Type Device::get_current_present_queue_type() const +{ + VK_ASSERT(wsi.present_queue); + return wsi.present_queue_type; +} + +const Sampler &Device::get_stock_sampler(StockSampler sampler) const +{ + return samplers[static_cast(sampler)]->get_sampler(); +} + +bool Device::swapchain_touched() const +{ + return wsi.consumed; +} + +Device::~Device() +{ + wsi.acquire.reset(); + wsi.release.reset(); + wsi.swapchain.clear(); + + wait_idle(); + + managers.timestamps.log_simple(); + + if (pipeline_cache != VK_NULL_HANDLE) + { + flush_pipeline_cache(); + table->vkDestroyPipelineCache(device, pipeline_cache, nullptr); + } + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES + flush_shader_manager_cache(); +#endif + +#ifdef GRANITE_VULKAN_FOSSILIZE + flush_pipeline_state(); +#endif + + framebuffer_allocator.clear(); + transient_allocator.clear(); + + deinit_timeline_semaphores(); +} + +void Device::deinit_timeline_semaphores() +{ + for (auto &data : queue_data) + { + if (data.timeline_semaphore != VK_NULL_HANDLE) + table->vkDestroySemaphore(device, data.timeline_semaphore, nullptr); + data.timeline_semaphore = VK_NULL_HANDLE; + } + + // Make sure we don't accidentally try to wait for these after we destroy the semaphores. + for (auto &frame : per_frame) + { + for (auto &fence : frame->timeline_fences) + fence = 0; + for (auto &timeline : frame->timeline_semaphores) + timeline = VK_NULL_HANDLE; + } +} + +void Device::init_frame_contexts(unsigned count) +{ + DRAIN_FRAME_LOCK(); + wait_idle_nolock(); + + // Clear out caches which might contain stale data from now on. + framebuffer_allocator.clear(); + transient_allocator.clear(); + per_frame.clear(); + + for (unsigned i = 0; i < count; i++) + { + auto frame = std::unique_ptr(new PerFrame(this, i)); + per_frame.emplace_back(std::move(frame)); + } +} + +void Device::init_external_swapchain(const std::vector &swapchain_images) +{ + DRAIN_FRAME_LOCK(); + wsi.swapchain.clear(); + wait_idle_nolock(); + + wsi.index = 0; + wsi.consumed = false; + for (auto &image : swapchain_images) + { + wsi.swapchain.push_back(image); + if (image) + { + wsi.swapchain.back()->set_internal_sync_object(); + wsi.swapchain.back()->get_view().set_internal_sync_object(); + } + } +} + +bool Device::can_touch_swapchain_in_command_buffer(QueueIndices physical_type) const +{ + // If 0, we have virtual swap chain, so anything goes. + if (!wsi.queue_family_support_mask) + return true; + + return (wsi.queue_family_support_mask & (1u << queue_info.family_indices[physical_type])) != 0; +} + +bool Device::can_touch_swapchain_in_command_buffer(CommandBuffer::Type type) const +{ + return can_touch_swapchain_in_command_buffer(get_physical_queue_type(type)); +} + +void Device::set_swapchain_queue_family_support(uint32_t queue_family_support) +{ + wsi.queue_family_support_mask = queue_family_support; +} + +ImageHandle Device::wrap_image(const ImageCreateInfo &info, VkImage image) +{ + auto img = ImageHandle(handle_pool.images.allocate( + this, image, VK_NULL_HANDLE, + DeviceAllocation{}, info, VK_IMAGE_VIEW_TYPE_MAX_ENUM)); + img->disown_image(); + return img; +} + +void Device::init_swapchain(const std::vector &swapchain_images, unsigned width, unsigned height, VkFormat format, + VkSurfaceTransformFlagBitsKHR transform, VkImageUsageFlags usage) +{ + DRAIN_FRAME_LOCK(); + wsi.swapchain.clear(); + + auto info = ImageCreateInfo::render_target(width, height, format); + info.usage = usage; + + wsi.index = 0; + wsi.consumed = false; + for (auto &image : swapchain_images) + { + VkImageViewCreateInfo view_info = { VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO }; + view_info.image = image; + view_info.format = format; + view_info.components.r = VK_COMPONENT_SWIZZLE_IDENTITY; + view_info.components.g = VK_COMPONENT_SWIZZLE_IDENTITY; + view_info.components.b = VK_COMPONENT_SWIZZLE_IDENTITY; + view_info.components.a = VK_COMPONENT_SWIZZLE_IDENTITY; + view_info.subresourceRange.aspectMask = format_to_aspect_mask(format); + view_info.subresourceRange.baseMipLevel = 0; + view_info.subresourceRange.baseArrayLayer = 0; + view_info.subresourceRange.levelCount = 1; + view_info.subresourceRange.layerCount = 1; + view_info.viewType = VK_IMAGE_VIEW_TYPE_2D; + + VkImageView image_view; + if (table->vkCreateImageView(device, &view_info, nullptr, &image_view) != VK_SUCCESS) + LOGE("Failed to create view for backbuffer."); + + auto backbuffer = ImageHandle(handle_pool.images.allocate(this, image, image_view, DeviceAllocation{}, info, VK_IMAGE_VIEW_TYPE_2D)); + backbuffer->set_internal_sync_object(); + backbuffer->disown_image(); + backbuffer->get_view().set_internal_sync_object(); + backbuffer->set_surface_transform(transform); + wsi.swapchain.push_back(backbuffer); + set_name(*backbuffer, "backbuffer"); + backbuffer->set_swapchain_layout(VK_IMAGE_LAYOUT_PRESENT_SRC_KHR); + } +} + +Device::PerFrame::PerFrame(Device *device_, unsigned frame_index_) + : device(*device_) + , frame_index(frame_index_) + , table(device_->get_device_table()) + , managers(device_->managers) + , query_pool(device_) +{ + unsigned count = device_->num_thread_indices; + for (int i = 0; i < QUEUE_INDEX_COUNT; i++) + { + timeline_semaphores[i] = device.queue_data[i].timeline_semaphore; + cmd_pools[i].reserve(count); + for (unsigned j = 0; j < count; j++) + cmd_pools[i].emplace_back(device_, device_->queue_info.family_indices[i]); + } +} + +void Device::free_memory_nolock(const DeviceAllocation &alloc) +{ + frame().allocations.push_back(alloc); +} + +#ifdef VULKAN_DEBUG + +template +static inline bool exists(const T &container, const U &value) +{ + return find(begin(container), end(container), value) != end(container); +} + +#endif + +void Device::reset_fence(VkFence fence, bool observed_wait) +{ + LOCK(); + reset_fence_nolock(fence, observed_wait); +} + +void Device::destroy_buffer(VkBuffer buffer) +{ + LOCK(); + destroy_buffer_nolock(buffer); +} + +void Device::destroy_descriptor_pool(VkDescriptorPool desc_pool) +{ + LOCK(); + destroy_descriptor_pool_nolock(desc_pool); +} + +void Device::destroy_buffer_view(VkBufferView view) +{ + LOCK(); + destroy_buffer_view_nolock(view); +} + +void Device::destroy_event(VkEvent event) +{ + LOCK(); + destroy_event_nolock(event); +} + +void Device::destroy_framebuffer(VkFramebuffer framebuffer) +{ + LOCK(); + destroy_framebuffer_nolock(framebuffer); +} + +void Device::destroy_image(VkImage image) +{ + LOCK(); + destroy_image_nolock(image); +} + +void Device::destroy_semaphore(VkSemaphore semaphore) +{ + LOCK(); + destroy_semaphore_nolock(semaphore); +} + +void Device::consume_semaphore(VkSemaphore semaphore) +{ + LOCK(); + consume_semaphore_nolock(semaphore); +} + +void Device::recycle_semaphore(VkSemaphore semaphore) +{ + LOCK(); + recycle_semaphore_nolock(semaphore); +} + +void Device::free_memory(const DeviceAllocation &alloc) +{ + LOCK(); + free_memory_nolock(alloc); +} + +void Device::destroy_sampler(VkSampler sampler) +{ + LOCK(); + destroy_sampler_nolock(sampler); +} + +void Device::destroy_image_view(VkImageView view) +{ + LOCK(); + destroy_image_view_nolock(view); +} + +void Device::destroy_image_view_nolock(VkImageView view) +{ + VK_ASSERT(!exists(frame().destroyed_image_views, view)); + frame().destroyed_image_views.push_back(view); +} + +void Device::destroy_buffer_view_nolock(VkBufferView view) +{ + VK_ASSERT(!exists(frame().destroyed_buffer_views, view)); + frame().destroyed_buffer_views.push_back(view); +} + +void Device::destroy_semaphore_nolock(VkSemaphore semaphore) +{ + VK_ASSERT(!exists(frame().destroyed_semaphores, semaphore)); + frame().destroyed_semaphores.push_back(semaphore); +} + +void Device::consume_semaphore_nolock(VkSemaphore semaphore) +{ + VK_ASSERT(!exists(frame().consumed_semaphores, semaphore)); + frame().consumed_semaphores.push_back(semaphore); +} + +void Device::recycle_semaphore_nolock(VkSemaphore semaphore) +{ + VK_ASSERT(!exists(frame().recycled_semaphores, semaphore)); + frame().recycled_semaphores.push_back(semaphore); +} + +void Device::destroy_event_nolock(VkEvent event) +{ + VK_ASSERT(!exists(frame().recycled_events, event)); + frame().recycled_events.push_back(event); +} + +void Device::reset_fence_nolock(VkFence fence, bool observed_wait) +{ + if (observed_wait) + { + table->vkResetFences(device, 1, &fence); + managers.fence.recycle_fence(fence); + } + else + frame().wait_and_recycle_fences.push_back(fence); +} + +PipelineEvent Device::request_pipeline_event() +{ + return PipelineEvent(handle_pool.events.allocate(this, managers.event.request_cleared_event())); +} + +void Device::destroy_image_nolock(VkImage image) +{ + VK_ASSERT(!exists(frame().destroyed_images, image)); + frame().destroyed_images.push_back(image); +} + +void Device::destroy_buffer_nolock(VkBuffer buffer) +{ + VK_ASSERT(!exists(frame().destroyed_buffers, buffer)); + frame().destroyed_buffers.push_back(buffer); +} + +void Device::destroy_descriptor_pool_nolock(VkDescriptorPool desc_pool) +{ + VK_ASSERT(!exists(frame().destroyed_descriptor_pools, desc_pool)); + frame().destroyed_descriptor_pools.push_back(desc_pool); +} + +void Device::destroy_sampler_nolock(VkSampler sampler) +{ + VK_ASSERT(!exists(frame().destroyed_samplers, sampler)); + frame().destroyed_samplers.push_back(sampler); +} + +void Device::destroy_framebuffer_nolock(VkFramebuffer framebuffer) +{ + VK_ASSERT(!exists(frame().destroyed_framebuffers, framebuffer)); + frame().destroyed_framebuffers.push_back(framebuffer); +} + +void Device::clear_wait_semaphores() +{ + for (auto &data : queue_data) + { + for (auto &sem : data.wait_semaphores) + table->vkDestroySemaphore(device, sem->consume(), nullptr); + data.wait_semaphores.clear(); + data.wait_stages.clear(); + } +} + +void Device::wait_idle() +{ + DRAIN_FRAME_LOCK(); + wait_idle_nolock(); +} + +void Device::wait_idle_nolock() +{ + if (!per_frame.empty()) + end_frame_nolock(); + + if (device != VK_NULL_HANDLE) + { + if (queue_lock_callback) + queue_lock_callback(); + auto result = table->vkDeviceWaitIdle(device); + if (result != VK_SUCCESS) + LOGE("vkDeviceWaitIdle failed with code: %d\n", result); + if (queue_unlock_callback) + queue_unlock_callback(); + } + + clear_wait_semaphores(); + + // Free memory for buffer pools. + managers.vbo.reset(); + managers.ubo.reset(); + managers.ibo.reset(); + managers.staging.reset(); + for (auto &frame : per_frame) + { + frame->vbo_blocks.clear(); + frame->ibo_blocks.clear(); + frame->ubo_blocks.clear(); + frame->staging_blocks.clear(); + } + + framebuffer_allocator.clear(); + transient_allocator.clear(); + + for (auto &allocator : descriptor_set_allocators.get_read_only()) + allocator.clear(); + for (auto &allocator : descriptor_set_allocators.get_read_write()) + allocator.clear(); + + for (auto &frame : per_frame) + { + frame->begin(); + frame->trim_command_pools(); + } + + { + LOCK_MEMORY(); + managers.memory.garbage_collect(); + } +} + +void Device::promote_read_write_caches_to_read_only() +{ + // Components which could potentially call into these must hold global reader locks. + // - A CommandBuffer holds a read lock for its lifetime. + // - Fossilize replay in the background also holds lock. + if (lock.read_only_cache.try_lock_write()) + { + pipeline_layouts.move_to_read_only(); + descriptor_set_allocators.move_to_read_only(); + shaders.move_to_read_only(); + programs.move_to_read_only(); + for (auto &program : programs.get_read_only()) + program.promote_read_write_to_read_only(); + render_passes.move_to_read_only(); + immutable_samplers.move_to_read_only(); + immutable_ycbcr_conversions.move_to_read_only(); +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES + shader_manager.promote_read_write_caches_to_read_only(); +#endif + lock.read_only_cache.unlock_write(); + } +} + +void Device::set_enable_async_thread_frame_context(bool enable) +{ + LOCK(); + lock.async_frame_context = enable; +} + +void Device::next_frame_context_in_async_thread() +{ + bool do_next_frame_context; + { + LOCK(); + do_next_frame_context = lock.async_frame_context; + } + + if (do_next_frame_context) + next_frame_context(); +} + +void Device::next_frame_context() +{ + DRAIN_FRAME_LOCK(); + + if (frame_context_begin_ts) + { + auto frame_context_end_ts = write_calibrated_timestamp_nolock(); + register_time_interval_nolock("CPU", std::move(frame_context_begin_ts), std::move(frame_context_end_ts), "command submissions"); + frame_context_begin_ts = {}; + } + + // Flush the frame here as we might have pending staging command buffers from init stage. + end_frame_nolock(); + + framebuffer_allocator.begin_frame(); + transient_allocator.begin_frame(); + + for (auto &allocator : descriptor_set_allocators.get_read_only()) + allocator.begin_frame(); + for (auto &allocator : descriptor_set_allocators.get_read_write()) + allocator.begin_frame(); + + VK_ASSERT(!per_frame.empty()); + frame_context_index++; + if (frame_context_index >= per_frame.size()) + frame_context_index = 0; + + promote_read_write_caches_to_read_only(); + + frame().begin(); + recalibrate_timestamps(); + frame_context_begin_ts = write_calibrated_timestamp_nolock(); +} + +QueryPoolHandle Device::write_timestamp(VkCommandBuffer cmd, VkPipelineStageFlags2 stage) +{ + LOCK(); + return write_timestamp_nolock(cmd, stage); +} + +QueryPoolHandle Device::write_timestamp_nolock(VkCommandBuffer cmd, VkPipelineStageFlags2 stage) +{ + return frame().query_pool.write_timestamp(cmd, stage); +} + +QueryPoolHandle Device::write_calibrated_timestamp() +{ + LOCK(); + return write_calibrated_timestamp_nolock(); +} + +QueryPoolHandle Device::write_calibrated_timestamp_nolock() +{ + if (!system_handles.timeline_trace_file) + return {}; + + auto handle = QueryPoolHandle(handle_pool.query.allocate(this, false)); + handle->signal_timestamp_ticks(get_current_time_nsecs()); + return handle; +} + +void Device::recalibrate_timestamps_fallback() +{ + wait_idle_nolock(); + auto cmd = request_command_buffer_nolock(0, CommandBuffer::Type::Generic, false); + auto ts = write_timestamp_nolock(cmd->get_command_buffer(), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT); + if (!ts) + { + submit_discard_nolock(cmd); + return; + } + auto start_ts = Util::get_current_time_nsecs(); + submit_nolock(cmd, nullptr, 0, nullptr); + wait_idle_nolock(); + auto end_ts = Util::get_current_time_nsecs(); + auto host_ts = (start_ts + end_ts) / 2; + + LOGI("Calibrated timestamps with a fallback method. Uncertainty: %.3f us.\n", 1e-3 * (end_ts - start_ts)); + + calibrated_timestamp_host = host_ts; + VK_ASSERT(ts->is_signalled()); + calibrated_timestamp_device = ts->get_timestamp_ticks(); + calibrated_timestamp_device_accum = calibrated_timestamp_device; +} + +void Device::init_calibrated_timestamps() +{ + if (!get_device_features().supports_calibrated_timestamps) + { + recalibrate_timestamps_fallback(); + return; + } + + uint32_t count; + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(gpu, &count, nullptr); + std::vector domains(count); + if (vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(gpu, &count, domains.data()) != VK_SUCCESS) + return; + + bool supports_device_domain = false; + for (auto &domain : domains) + { + if (domain == VK_TIME_DOMAIN_DEVICE_EXT) + { + supports_device_domain = true; + break; + } + } + + if (!supports_device_domain) + return; + + for (auto &domain : domains) + { +#ifdef _WIN32 + const auto supported_domain = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT; +#elif defined(ANDROID) + const auto supported_domain = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT; +#else + const auto supported_domain = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT; +#endif + if (domain == supported_domain) + { + calibrated_time_domain = domain; + break; + } + } + + if (calibrated_time_domain == VK_TIME_DOMAIN_DEVICE_EXT) + { + LOGE("Could not find a suitable time domain for calibrated timestamps.\n"); + return; + } + + if (!resample_calibrated_timestamps()) + { + LOGE("Failed to get calibrated timestamps.\n"); + calibrated_time_domain = VK_TIME_DOMAIN_DEVICE_EXT; + return; + } +} + +bool Device::resample_calibrated_timestamps() +{ + VkCalibratedTimestampInfoEXT infos[2] = {}; + infos[0].sType = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT; + infos[1].sType = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT; + infos[0].timeDomain = calibrated_time_domain; + infos[1].timeDomain = VK_TIME_DOMAIN_DEVICE_EXT; + uint64_t timestamps[2] = {}; + uint64_t max_deviation; + + if (table->vkGetCalibratedTimestampsEXT(device, 2, infos, timestamps, &max_deviation) != VK_SUCCESS) + { + LOGE("Failed to get calibrated timestamps.\n"); + calibrated_time_domain = VK_TIME_DOMAIN_DEVICE_EXT; + return false; + } + + calibrated_timestamp_host = timestamps[0]; + calibrated_timestamp_device = timestamps[1]; + calibrated_timestamp_device_accum = calibrated_timestamp_device; + +#ifdef _WIN32 + LARGE_INTEGER freq; + QueryPerformanceFrequency(&freq); + calibrated_timestamp_host = int64_t(1e9 * calibrated_timestamp_host / double(freq.QuadPart)); +#endif + return true; +} + +void Device::recalibrate_timestamps() +{ + // Don't bother recalibrating timestamps if we're not tracing. + if (!system_handles.timeline_trace_file) + return; + + // Recalibrate every once in a while ... + timestamp_calibration_counter++; + if (timestamp_calibration_counter < 1000) + return; + timestamp_calibration_counter = 0; + + if (calibrated_time_domain == VK_TIME_DOMAIN_DEVICE_EXT) + recalibrate_timestamps_fallback(); + else + resample_calibrated_timestamps(); +} + +void Device::register_time_interval(std::string tid, QueryPoolHandle start_ts, QueryPoolHandle end_ts, + const std::string &tag) +{ + LOCK(); + register_time_interval_nolock(std::move(tid), std::move(start_ts), std::move(end_ts), tag); +} + +void Device::register_time_interval_nolock(std::string tid, QueryPoolHandle start_ts, QueryPoolHandle end_ts, + const std::string &tag) +{ + if (start_ts && end_ts) + { + TimestampInterval *timestamp_tag = managers.timestamps.get_timestamp_tag(tag.c_str()); +#ifdef VULKAN_DEBUG + if (start_ts->is_signalled() && end_ts->is_signalled()) + VK_ASSERT(end_ts->get_timestamp_ticks() >= start_ts->get_timestamp_ticks()); +#endif + frame().timestamp_intervals.push_back({ std::move(tid), std::move(start_ts), std::move(end_ts), timestamp_tag }); + } +} + +void Device::add_frame_counter_nolock() +{ + lock.counter++; +} + +void Device::decrement_frame_counter_nolock() +{ + VK_ASSERT(lock.counter > 0); + lock.counter--; + lock.cond.notify_all(); +} + +void Device::PerFrame::trim_command_pools() +{ + for (auto &cmd_pool : cmd_pools) + for (auto &pool : cmd_pool) + pool.trim(); +} + +void Device::PerFrame::begin() +{ + VkDevice vkdevice = device.get_device(); + + Vulkan::QueryPoolHandle wait_fence_ts; + if (!in_destructor) + wait_fence_ts = device.write_calibrated_timestamp_nolock(); + + bool has_timeline = true; + for (auto &sem : timeline_semaphores) + { + if (sem == VK_NULL_HANDLE) + { + has_timeline = false; + break; + } + } + + if (device.get_device_features().vk12_features.timelineSemaphore && has_timeline) + { + VkSemaphoreWaitInfo info = { VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO }; + VkSemaphore sems[QUEUE_INDEX_COUNT]; + uint64_t values[QUEUE_INDEX_COUNT]; + for (int i = 0; i < QUEUE_INDEX_COUNT; i++) + { + if (timeline_fences[i]) + { + sems[info.semaphoreCount] = timeline_semaphores[i]; + values[info.semaphoreCount] = timeline_fences[i]; + info.semaphoreCount++; + } + } + + if (info.semaphoreCount) + { + info.pSemaphores = sems; + info.pValues = values; + table.vkWaitSemaphores(vkdevice, &info, UINT64_MAX); + } + } + + // If we're using timeline semaphores, these paths should never be hit (or only for swapchain maintenance1). + if (!wait_and_recycle_fences.empty()) + { + table.vkWaitForFences(vkdevice, wait_and_recycle_fences.size(), wait_and_recycle_fences.data(), VK_TRUE, UINT64_MAX); + table.vkResetFences(vkdevice, wait_and_recycle_fences.size(), wait_and_recycle_fences.data()); + for (auto &fence : wait_and_recycle_fences) + managers.fence.recycle_fence(fence); + wait_and_recycle_fences.clear(); + } + + for (auto &cmd_pool : cmd_pools) + for (auto &pool : cmd_pool) + pool.begin(); + + query_pool.begin(); + + for (auto &channel : debug_channels) + device.parse_debug_channel(channel); + + // Free the debug channel buffers here, and they will immediately be recycled by the destroyed_buffers right below. + debug_channels.clear(); + + for (auto &block : vbo_blocks) + managers.vbo.recycle_block(block); + for (auto &block : ibo_blocks) + managers.ibo.recycle_block(block); + for (auto &block : ubo_blocks) + managers.ubo.recycle_block(block); + for (auto &block : staging_blocks) + managers.staging.recycle_block(block); + vbo_blocks.clear(); + ibo_blocks.clear(); + ubo_blocks.clear(); + staging_blocks.clear(); + + for (auto &framebuffer : destroyed_framebuffers) + table.vkDestroyFramebuffer(vkdevice, framebuffer, nullptr); + for (auto &sampler : destroyed_samplers) + table.vkDestroySampler(vkdevice, sampler, nullptr); + for (auto &view : destroyed_image_views) + table.vkDestroyImageView(vkdevice, view, nullptr); + for (auto &view : destroyed_buffer_views) + table.vkDestroyBufferView(vkdevice, view, nullptr); + for (auto &image : destroyed_images) + table.vkDestroyImage(vkdevice, image, nullptr); + for (auto &buffer : destroyed_buffers) + table.vkDestroyBuffer(vkdevice, buffer, nullptr); + for (auto &semaphore : destroyed_semaphores) + table.vkDestroySemaphore(vkdevice, semaphore, nullptr); + for (auto &pool : destroyed_descriptor_pools) + table.vkDestroyDescriptorPool(vkdevice, pool, nullptr); + for (auto &semaphore : recycled_semaphores) + managers.semaphore.recycle(semaphore); + for (auto &event : recycled_events) + managers.event.recycle(event); + VK_ASSERT(consumed_semaphores.empty()); + + if (!allocations.empty()) + { + std::lock_guard holder{device.lock.memory_lock}; + for (auto &alloc : allocations) + alloc.free_immediate(managers.memory); + } + + destroyed_framebuffers.clear(); + destroyed_samplers.clear(); + destroyed_image_views.clear(); + destroyed_buffer_views.clear(); + destroyed_images.clear(); + destroyed_buffers.clear(); + destroyed_semaphores.clear(); + destroyed_descriptor_pools.clear(); + recycled_semaphores.clear(); + recycled_events.clear(); + allocations.clear(); + + if (!in_destructor) + device.register_time_interval_nolock("CPU", std::move(wait_fence_ts), device.write_calibrated_timestamp_nolock(), "fence + recycle"); + + int64_t min_timestamp_us = std::numeric_limits::max(); + int64_t max_timestamp_us = 0; + + for (auto &ts : timestamp_intervals) + { + if (ts.end_ts->is_signalled() && ts.start_ts->is_signalled()) + { + VK_ASSERT(ts.start_ts->is_device_timebase() == ts.end_ts->is_device_timebase()); + + int64_t start_ts = ts.start_ts->get_timestamp_ticks(); + int64_t end_ts = ts.end_ts->get_timestamp_ticks(); + if (ts.start_ts->is_device_timebase()) + ts.timestamp_tag->accumulate_time(device.convert_device_timestamp_delta(start_ts, end_ts)); + else + ts.timestamp_tag->accumulate_time(1e-9 * double(end_ts - start_ts)); + + if (device.system_handles.timeline_trace_file) + { + start_ts = device.convert_timestamp_to_absolute_nsec(*ts.start_ts); + end_ts = device.convert_timestamp_to_absolute_nsec(*ts.end_ts); + min_timestamp_us = (std::min)(min_timestamp_us, start_ts); + max_timestamp_us = (std::max)(max_timestamp_us, end_ts); + + auto *e = device.system_handles.timeline_trace_file->allocate_event(); + e->set_desc(ts.timestamp_tag->get_tag().c_str()); + e->set_tid(ts.tid.c_str()); + e->pid = frame_index + 1; + e->start_ns = start_ts; + e->end_ns = end_ts; + device.system_handles.timeline_trace_file->submit_event(e); + } + } + } + + if (device.system_handles.timeline_trace_file && min_timestamp_us <= max_timestamp_us) + { + auto *e = device.system_handles.timeline_trace_file->allocate_event(); + e->set_desc("CPU + GPU full frame"); + e->set_tid("Frame context"); + e->pid = frame_index + 1; + e->start_ns = min_timestamp_us; + e->end_ns = max_timestamp_us; + device.system_handles.timeline_trace_file->submit_event(e); + } + + managers.timestamps.mark_end_of_frame_context(); + timestamp_intervals.clear(); +} + +Device::PerFrame::~PerFrame() +{ + in_destructor = true; + begin(); +} + +uint32_t Device::find_memory_type(uint32_t required, uint32_t mask) const +{ + for (uint32_t i = 0; i < mem_props.memoryTypeCount; i++) + { + if ((1u << i) & mask) + { + uint32_t flags = mem_props.memoryTypes[i].propertyFlags; + if ((flags & required) == required) + return i; + } + } + + return UINT32_MAX; +} + +uint32_t Device::find_memory_type(BufferDomain domain, uint32_t mask) const +{ + uint32_t prio[3] = {}; + + // Optimize for tracing apps by not allocating host memory that is uncached. + if (workarounds.force_host_cached) + { + switch (domain) + { + case BufferDomain::LinkedDeviceHostPreferDevice: + domain = BufferDomain::Device; + break; + + case BufferDomain::LinkedDeviceHost: + case BufferDomain::Host: + case BufferDomain::CachedCoherentHostPreferCoherent: + domain = BufferDomain::CachedCoherentHostPreferCached; + break; + + default: + break; + } + } + + switch (domain) + { + case BufferDomain::Device: + prio[0] = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + break; + + case BufferDomain::LinkedDeviceHost: + prio[0] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + prio[1] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + prio[2] = prio[1]; + break; + + case BufferDomain::LinkedDeviceHostPreferDevice: + prio[0] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + prio[1] = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + prio[2] = prio[1]; + break; + + case BufferDomain::Host: + prio[0] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + prio[1] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + prio[2] = prio[1]; + break; + + case BufferDomain::CachedHost: + prio[0] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT; + prio[1] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + prio[2] = prio[1]; + break; + + case BufferDomain::CachedCoherentHostPreferCached: + prio[0] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + prio[1] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT; + prio[2] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + break; + + case BufferDomain::CachedCoherentHostPreferCoherent: + prio[0] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + prio[1] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; + prio[2] = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + break; + } + + for (auto &p : prio) + { + uint32_t index = find_memory_type(p, mask); + if (index != UINT32_MAX) + return index; + } + + return UINT32_MAX; +} + +uint32_t Device::find_memory_type(ImageDomain domain, uint32_t mask) const +{ + uint32_t desired = 0, fallback = 0; + switch (domain) + { + case ImageDomain::Physical: + desired = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + fallback = 0; + break; + + case ImageDomain::Transient: + desired = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT; + fallback = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; + break; + + case ImageDomain::LinearHostCached: + desired = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT; + fallback = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + break; + + case ImageDomain::LinearHost: + desired = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + fallback = 0; + break; + } + + uint32_t index = find_memory_type(desired, mask); + if (index != UINT32_MAX) + return index; + + index = find_memory_type(fallback, mask); + if (index != UINT32_MAX) + return index; + + return UINT32_MAX; +} + +static inline VkImageViewType get_image_view_type(const ImageCreateInfo &create_info, const ImageViewCreateInfo *view) +{ + unsigned layers = view ? view->layers : create_info.layers; + unsigned base_layer = view ? view->base_layer : 0; + + if (layers == VK_REMAINING_ARRAY_LAYERS) + layers = create_info.layers - base_layer; + + bool force_array = + view ? (view->misc & IMAGE_VIEW_MISC_FORCE_ARRAY_BIT) : (create_info.misc & IMAGE_MISC_FORCE_ARRAY_BIT); + + switch (create_info.type) + { + case VK_IMAGE_TYPE_1D: + VK_ASSERT(create_info.width >= 1); + VK_ASSERT(create_info.height == 1); + VK_ASSERT(create_info.depth == 1); + VK_ASSERT(create_info.samples == VK_SAMPLE_COUNT_1_BIT); + + if (layers > 1 || force_array) + return VK_IMAGE_VIEW_TYPE_1D_ARRAY; + else + return VK_IMAGE_VIEW_TYPE_1D; + + case VK_IMAGE_TYPE_2D: + VK_ASSERT(create_info.width >= 1); + VK_ASSERT(create_info.height >= 1); + VK_ASSERT(create_info.depth == 1); + + if ((create_info.flags & VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT) && (layers % 6) == 0) + { + VK_ASSERT(create_info.width == create_info.height); + + if (layers > 6 || force_array) + return VK_IMAGE_VIEW_TYPE_CUBE_ARRAY; + else + return VK_IMAGE_VIEW_TYPE_CUBE; + } + else + { + if (layers > 1 || force_array) + return VK_IMAGE_VIEW_TYPE_2D_ARRAY; + else + return VK_IMAGE_VIEW_TYPE_2D; + } + + case VK_IMAGE_TYPE_3D: + VK_ASSERT(create_info.width >= 1); + VK_ASSERT(create_info.height >= 1); + VK_ASSERT(create_info.depth >= 1); + return VK_IMAGE_VIEW_TYPE_3D; + + default: + VK_ASSERT(0 && "bogus"); + return VK_IMAGE_VIEW_TYPE_MAX_ENUM; + } +} + +BufferViewHandle Device::create_buffer_view(const BufferViewCreateInfo &view_info) +{ + VkBufferViewCreateInfo info = { VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO }; + info.buffer = view_info.buffer->get_buffer(); + info.format = view_info.format; + info.offset = view_info.offset; + info.range = view_info.range; + + VkBufferView view; + auto res = table->vkCreateBufferView(device, &info, nullptr, &view); + if (res != VK_SUCCESS) + return BufferViewHandle(nullptr); + + return BufferViewHandle(handle_pool.buffer_views.allocate(this, view, view_info)); +} + +class ImageResourceHolder +{ +public: + explicit ImageResourceHolder(Device *device_) + : device(device_) + , table(device_->get_device_table()) + { + } + + ~ImageResourceHolder() + { + if (owned) + cleanup(); + } + + Device *device; + const VolkDeviceTable &table; + + VkImage image = VK_NULL_HANDLE; + VkDeviceMemory memory = VK_NULL_HANDLE; + VkImageView image_view = VK_NULL_HANDLE; + VkImageView depth_view = VK_NULL_HANDLE; + VkImageView stencil_view = VK_NULL_HANDLE; + VkImageView unorm_view = VK_NULL_HANDLE; + VkImageView srgb_view = VK_NULL_HANDLE; + VkImageViewType default_view_type = VK_IMAGE_VIEW_TYPE_MAX_ENUM; + std::vector rt_views; + DeviceAllocation allocation; + DeviceAllocator *allocator = nullptr; + bool owned = true; + + VkImageViewType get_default_view_type() const + { + return default_view_type; + } + + bool setup_conversion_info(VkImageViewCreateInfo &create_info, + VkSamplerYcbcrConversionInfo &conversion, + const ImmutableYcbcrConversion *ycbcr_conversion) const + { + if (ycbcr_conversion) + { + if (!device->get_device_features().vk11_features.samplerYcbcrConversion) + return false; + conversion = { VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO }; + conversion.conversion = ycbcr_conversion->get_conversion(); + conversion.pNext = create_info.pNext; + create_info.pNext = &conversion; + } + + return true; + } + + bool setup_view_usage_info(VkImageViewCreateInfo &create_info, VkImageUsageFlags usage, + VkImageViewUsageCreateInfo &usage_info) const + { + usage_info.usage = usage; + usage_info.usage &= VK_IMAGE_USAGE_SAMPLED_BIT | + VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT | + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | + VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT | + image_usage_video_flags; + + if (format_is_srgb(create_info.format)) + usage_info.usage &= ~VK_IMAGE_USAGE_STORAGE_BIT; + + usage_info.pNext = create_info.pNext; + create_info.pNext = &usage_info; + + return true; + } + + bool setup_astc_decode_mode_info(VkImageViewCreateInfo &create_info, VkImageViewASTCDecodeModeEXT &astc_info) const + { + if (!device->get_device_features().supports_astc_decode_mode) + return true; + + auto type = format_compression_type(create_info.format); + if (type != FormatCompressionType::ASTC) + return true; + + if (format_is_srgb(create_info.format)) + return true; + + if (format_is_compressed_hdr(create_info.format)) + { + if (device->get_device_features().astc_decode_features.decodeModeSharedExponent) + astc_info.decodeMode = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32; + else + astc_info.decodeMode = VK_FORMAT_R16G16B16A16_SFLOAT; + } + else + { + astc_info.decodeMode = VK_FORMAT_R8G8B8A8_UNORM; + } + + astc_info.pNext = create_info.pNext; + create_info.pNext = &astc_info; + return true; + } + + bool create_default_views(const ImageCreateInfo &create_info, const VkImageViewCreateInfo *view_info, + const ImmutableYcbcrConversion *ycbcr_conversion, + bool create_unorm_srgb_views = false, const VkFormat *view_formats = nullptr) + { + VkDevice vkdevice = device->get_device(); + + if ((create_info.usage & (VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT | + image_usage_video_flags)) == 0) + { + LOGE("Cannot create image view unless certain usage flags are present.\n"); + return false; + } + + VkImageViewCreateInfo default_view_info = { VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO }; + VkSamplerYcbcrConversionInfo conversion_info = { VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO }; + VkImageViewUsageCreateInfo view_usage_info = { VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO }; + VkImageViewASTCDecodeModeEXT astc_decode_mode_info = { VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT }; + + if (!view_info) + { + default_view_info.image = image; + default_view_info.format = create_info.format; + default_view_info.components = create_info.swizzle; + default_view_info.subresourceRange.aspectMask = format_to_aspect_mask(default_view_info.format); + default_view_info.viewType = get_image_view_type(create_info, nullptr); + default_view_info.subresourceRange.baseMipLevel = 0; + default_view_info.subresourceRange.baseArrayLayer = 0; + default_view_info.subresourceRange.levelCount = create_info.levels; + default_view_info.subresourceRange.layerCount = create_info.layers; + + default_view_type = default_view_info.viewType; + } + else + default_view_info = *view_info; + + view_info = &default_view_info; + if (!setup_conversion_info(default_view_info, conversion_info, ycbcr_conversion)) + return false; + + if (!setup_view_usage_info(default_view_info, create_info.usage, view_usage_info)) + return false; + + if (!setup_astc_decode_mode_info(default_view_info, astc_decode_mode_info)) + return false; + + if (!create_alt_views(create_info, *view_info)) + return false; + + if (!create_render_target_views(create_info, *view_info)) + return false; + + if (!create_default_view(*view_info)) + return false; + + if (create_unorm_srgb_views) + { + auto info = *view_info; + + if (create_info.usage & VK_IMAGE_USAGE_STORAGE_BIT) + view_usage_info.usage |= VK_IMAGE_USAGE_STORAGE_BIT; + + info.format = view_formats[0]; + if (table.vkCreateImageView(vkdevice, &info, nullptr, &unorm_view) != VK_SUCCESS) + return false; + + view_usage_info.usage &= ~VK_IMAGE_USAGE_STORAGE_BIT; + + info.format = view_formats[1]; + if (table.vkCreateImageView(vkdevice, &info, nullptr, &srgb_view) != VK_SUCCESS) + return false; + } + + return true; + } + +private: + bool create_render_target_views(const ImageCreateInfo &image_create_info, const VkImageViewCreateInfo &info) + { + if (info.viewType == VK_IMAGE_VIEW_TYPE_3D) + return true; + + rt_views.reserve(info.subresourceRange.layerCount); + + // If we have a render target, and non-trivial case (layers = 1, levels = 1), + // create an array of render targets which correspond to each layer (mip 0). + if ((image_create_info.usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT)) != 0 && + ((info.subresourceRange.levelCount > 1) || (info.subresourceRange.layerCount > 1))) + { + auto view_info = info; + view_info.viewType = VK_IMAGE_VIEW_TYPE_2D; + view_info.subresourceRange.baseMipLevel = info.subresourceRange.baseMipLevel; + for (uint32_t layer = 0; layer < info.subresourceRange.layerCount; layer++) + { + view_info.subresourceRange.levelCount = 1; + view_info.subresourceRange.layerCount = 1; + view_info.subresourceRange.baseArrayLayer = layer + info.subresourceRange.baseArrayLayer; + + VkImageView rt_view; + if (table.vkCreateImageView(device->get_device(), &view_info, nullptr, &rt_view) != VK_SUCCESS) + return false; + + rt_views.push_back(rt_view); + } + } + + return true; + } + + bool create_alt_views(const ImageCreateInfo &image_create_info, const VkImageViewCreateInfo &info) + { + if (info.viewType == VK_IMAGE_VIEW_TYPE_CUBE || + info.viewType == VK_IMAGE_VIEW_TYPE_CUBE_ARRAY || + info.viewType == VK_IMAGE_VIEW_TYPE_3D) + { + return true; + } + + VkDevice vkdevice = device->get_device(); + + if (info.subresourceRange.aspectMask == (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) + { + if ((image_create_info.usage & ~VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) != 0) + { + auto view_info = info; + + // We need this to be able to sample the texture, or otherwise use it as a non-pure DS attachment. + view_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT; + if (table.vkCreateImageView(vkdevice, &view_info, nullptr, &depth_view) != VK_SUCCESS) + return false; + + view_info.subresourceRange.aspectMask = VK_IMAGE_ASPECT_STENCIL_BIT; + if (table.vkCreateImageView(vkdevice, &view_info, nullptr, &stencil_view) != VK_SUCCESS) + return false; + } + } + + return true; + } + + bool create_default_view(const VkImageViewCreateInfo &info) + { + VkDevice vkdevice = device->get_device(); + + // Create the normal image view. This one contains every subresource. + if (table.vkCreateImageView(vkdevice, &info, nullptr, &image_view) != VK_SUCCESS) + return false; + + return true; + } + + void cleanup() + { + VkDevice vkdevice = device->get_device(); + + if (image_view) + table.vkDestroyImageView(vkdevice, image_view, nullptr); + if (depth_view) + table.vkDestroyImageView(vkdevice, depth_view, nullptr); + if (stencil_view) + table.vkDestroyImageView(vkdevice, stencil_view, nullptr); + if (unorm_view) + table.vkDestroyImageView(vkdevice, unorm_view, nullptr); + if (srgb_view) + table.vkDestroyImageView(vkdevice, srgb_view, nullptr); + for (auto &view : rt_views) + table.vkDestroyImageView(vkdevice, view, nullptr); + + if (image) + table.vkDestroyImage(vkdevice, image, nullptr); + if (memory) + table.vkFreeMemory(vkdevice, memory, nullptr); + if (allocator) + allocation.free_immediate(*allocator); + } +}; + +ImageViewHandle Device::create_image_view(const ImageViewCreateInfo &create_info) +{ + ImageResourceHolder holder(this); + auto &image_create_info = create_info.image->get_create_info(); + + VkFormat format = create_info.format != VK_FORMAT_UNDEFINED ? create_info.format : image_create_info.format; + + VkImageViewCreateInfo view_info = { VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO }; + view_info.image = create_info.image->get_image(); + view_info.format = format; + view_info.components = create_info.swizzle; + view_info.subresourceRange.aspectMask = + create_info.aspect ? create_info.aspect : format_to_aspect_mask(format); + view_info.subresourceRange.baseMipLevel = create_info.base_level; + view_info.subresourceRange.baseArrayLayer = create_info.base_layer; + view_info.subresourceRange.levelCount = create_info.levels; + view_info.subresourceRange.layerCount = create_info.layers; + + if (create_info.view_type == VK_IMAGE_VIEW_TYPE_MAX_ENUM) + view_info.viewType = get_image_view_type(image_create_info, &create_info); + else + view_info.viewType = create_info.view_type; + + unsigned num_levels; + if (view_info.subresourceRange.levelCount == VK_REMAINING_MIP_LEVELS) + num_levels = create_info.image->get_create_info().levels - view_info.subresourceRange.baseMipLevel; + else + num_levels = view_info.subresourceRange.levelCount; + + unsigned num_layers; + if (view_info.subresourceRange.layerCount == VK_REMAINING_ARRAY_LAYERS) + num_layers = create_info.image->get_create_info().layers - view_info.subresourceRange.baseArrayLayer; + else + num_layers = view_info.subresourceRange.layerCount; + + view_info.subresourceRange.levelCount = num_levels; + view_info.subresourceRange.layerCount = num_layers; + + if (!holder.create_default_views(image_create_info, &view_info, + create_info.ycbcr_conversion)) + { + return ImageViewHandle(nullptr); + } + + ImageViewCreateInfo tmp = create_info; + tmp.format = format; + ImageViewHandle ret(handle_pool.image_views.allocate(this, holder.image_view, tmp)); + if (ret) + { + holder.owned = false; + ret->set_alt_views(holder.depth_view, holder.stencil_view); + ret->set_render_target_views(std::move(holder.rt_views)); + return ret; + } + else + return ImageViewHandle(nullptr); +} + +InitialImageBuffer Device::create_image_staging_buffer(const TextureFormatLayout &layout) +{ + InitialImageBuffer result; + + BufferCreateInfo buffer_info = {}; + buffer_info.domain = BufferDomain::Host; + buffer_info.size = layout.get_required_size(); + buffer_info.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; + { + GRANITE_SCOPED_TIMELINE_EVENT_FILE(system_handles.timeline_trace_file, "allocate-image-staging-buffer"); + result.buffer = create_buffer(buffer_info, nullptr); + } + set_name(*result.buffer, "image-upload-staging-buffer"); + + auto *mapped = static_cast(map_host_buffer(*result.buffer, MEMORY_ACCESS_WRITE_BIT)); + { + GRANITE_SCOPED_TIMELINE_EVENT_FILE(system_handles.timeline_trace_file, "copy-image-staging-buffer"); + memcpy(mapped, layout.data(), layout.get_required_size()); + } + unmap_host_buffer(*result.buffer, MEMORY_ACCESS_WRITE_BIT); + + layout.build_buffer_image_copies(result.blits); + return result; +} + +InitialImageBuffer Device::create_image_staging_buffer(const ImageCreateInfo &info, const ImageInitialData *initial) +{ + InitialImageBuffer result; + + bool generate_mips = (info.misc & IMAGE_MISC_GENERATE_MIPS_BIT) != 0; + TextureFormatLayout layout; + + unsigned copy_levels; + if (generate_mips) + copy_levels = 1; + else if (info.levels == 0) + copy_levels = TextureFormatLayout::num_miplevels(info.width, info.height, info.depth); + else + copy_levels = info.levels; + + switch (info.type) + { + case VK_IMAGE_TYPE_1D: + layout.set_1d(info.format, info.width, info.layers, copy_levels); + break; + case VK_IMAGE_TYPE_2D: + layout.set_2d(info.format, info.width, info.height, info.layers, copy_levels); + break; + case VK_IMAGE_TYPE_3D: + layout.set_3d(info.format, info.width, info.height, info.depth, copy_levels); + break; + default: + return {}; + } + + BufferCreateInfo buffer_info = {}; + buffer_info.domain = BufferDomain::Host; + buffer_info.size = layout.get_required_size(); + buffer_info.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT; + { + GRANITE_SCOPED_TIMELINE_EVENT_FILE(system_handles.timeline_trace_file, "allocate-image-staging-buffer"); + result.buffer = create_buffer(buffer_info, nullptr); + } + set_name(*result.buffer, "image-upload-staging-buffer"); + + // And now, do the actual copy. + auto *mapped = static_cast(map_host_buffer(*result.buffer, MEMORY_ACCESS_WRITE_BIT)); + unsigned index = 0; + + layout.set_buffer(mapped, layout.get_required_size()); + + GRANITE_SCOPED_TIMELINE_EVENT_FILE(system_handles.timeline_trace_file, "copy-image-staging-buffer"); + for (unsigned level = 0; level < copy_levels; level++) + { + const auto &mip_info = layout.get_mip_info(level); + uint32_t dst_height_stride = layout.get_layer_size(level); + size_t row_size = layout.get_row_size(level); + + for (unsigned layer = 0; layer < info.layers; layer++, index++) + { + uint32_t src_row_length = + initial[index].row_length ? initial[index].row_length : mip_info.row_length; + uint32_t src_array_height = + initial[index].image_height ? initial[index].image_height : mip_info.image_height; + + uint32_t src_row_stride = layout.row_byte_stride(src_row_length); + uint32_t src_height_stride = layout.layer_byte_stride(src_array_height, src_row_stride); + + uint8_t *dst = static_cast(layout.data(layer, level)); + const uint8_t *src = static_cast(initial[index].data); + + for (uint32_t z = 0; z < mip_info.depth; z++) + for (uint32_t y = 0; y < mip_info.block_image_height; y++) + memcpy(dst + z * dst_height_stride + y * row_size, src + z * src_height_stride + y * src_row_stride, row_size); + } + } + + unmap_host_buffer(*result.buffer, MEMORY_ACCESS_WRITE_BIT); + layout.build_buffer_image_copies(result.blits); + return result; +} + +DeviceAllocationOwnerHandle Device::take_device_allocation_ownership(Image &image) +{ + if ((image.get_create_info().misc & IMAGE_MISC_FORCE_NO_DEDICATED_BIT) == 0) + { + LOGE("Must use FORCE_NO_DEDICATED_BIT to take ownership of memory.\n"); + return DeviceAllocationOwnerHandle{}; + } + + if (!image.get_allocation().alloc || !image.get_allocation().base) + return DeviceAllocationOwnerHandle{}; + + return DeviceAllocationOwnerHandle(handle_pool.allocations.allocate(this, image.take_allocation_ownership())); +} + +DeviceAllocationOwnerHandle Device::allocate_memory(const MemoryAllocateInfo &info) +{ + uint32_t index = find_memory_type(info.required_properties, info.requirements.memoryTypeBits); + if (index == UINT32_MAX) + return {}; + + DeviceAllocation alloc = {}; + { + LOCK_MEMORY(); + if (!managers.memory.allocate_generic_memory(info.requirements.size, info.requirements.alignment, info.mode, + index, &alloc)) + { + return {}; + } + } + return DeviceAllocationOwnerHandle(handle_pool.allocations.allocate(this, alloc)); +} + +void Device::get_memory_budget(HeapBudget *budget) +{ + LOCK_MEMORY(); + managers.memory.get_memory_budget(budget); +} + +ImageHandle Device::create_image(const ImageCreateInfo &create_info, const ImageInitialData *initial) +{ + if (initial) + { + auto staging_buffer = create_image_staging_buffer(create_info, initial); + return create_image_from_staging_buffer(create_info, &staging_buffer); + } + else + return create_image_from_staging_buffer(create_info, nullptr); +} + +bool Device::allocate_image_memory(DeviceAllocation *allocation, const ImageCreateInfo &info, + VkImage image, VkImageTiling tiling) +{ + if ((info.flags & VK_IMAGE_CREATE_DISJOINT_BIT) != 0 && info.num_memory_aliases == 0) + { + LOGE("Must use memory aliases when creating a DISJOINT planar image.\n"); + return false; + } + + bool use_external = (info.misc & IMAGE_MISC_EXTERNAL_MEMORY_BIT) != 0; + if (use_external && info.num_memory_aliases != 0) + { + LOGE("Cannot use external and memory aliases at the same time.\n"); + return false; + } + + if (use_external && tiling == VK_IMAGE_TILING_LINEAR) + { + LOGE("Cannot use linear tiling with external memory.\n"); + return false; + } + + if (info.num_memory_aliases != 0) + { + *allocation = {}; + + unsigned num_planes = format_ycbcr_num_planes(info.format); + if (info.num_memory_aliases < num_planes) + return false; + + if (num_planes == 1) + { + VkMemoryRequirements reqs; + table->vkGetImageMemoryRequirements(device, image, &reqs); + auto &alias = *info.memory_aliases[0]; + + // Verify we can actually use this aliased allocation. + if ((reqs.memoryTypeBits & (1u << alias.memory_type)) == 0) + return false; + if (reqs.size > alias.size) + return false; + if (((alias.offset + reqs.alignment - 1) & ~(reqs.alignment - 1)) != alias.offset) + return false; + + if (table->vkBindImageMemory(device, image, alias.get_memory(), alias.get_offset()) != VK_SUCCESS) + return false; + } + else + { + VkBindImageMemoryInfo bind_infos[3]; + VkBindImagePlaneMemoryInfo bind_plane_infos[3]; + VK_ASSERT(num_planes <= 3); + + for (unsigned plane = 0; plane < num_planes; plane++) + { + VkMemoryRequirements2 memory_req = {VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 }; + VkImageMemoryRequirementsInfo2 image_info = {VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 }; + image_info.image = image; + + VkImagePlaneMemoryRequirementsInfo plane_info = { VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO }; + plane_info.planeAspect = static_cast(VK_IMAGE_ASPECT_PLANE_0_BIT << plane); + image_info.pNext = &plane_info; + + table->vkGetImageMemoryRequirements2(device, &image_info, &memory_req); + auto &reqs = memory_req.memoryRequirements; + auto &alias = *info.memory_aliases[plane]; + + // Verify we can actually use this aliased allocation. + if ((reqs.memoryTypeBits & (1u << alias.memory_type)) == 0) + return false; + if (reqs.size > alias.size) + return false; + if (((alias.offset + reqs.alignment - 1) & ~(reqs.alignment - 1)) != alias.offset) + return false; + + bind_infos[plane] = { VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO }; + bind_infos[plane].image = image; + bind_infos[plane].memory = alias.base; + bind_infos[plane].memoryOffset = alias.offset; + bind_infos[plane].pNext = &bind_plane_infos[plane]; + + bind_plane_infos[plane] = { VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO }; + bind_plane_infos[plane].planeAspect = static_cast(VK_IMAGE_ASPECT_PLANE_0_BIT << plane); + } + + if (table->vkBindImageMemory2(device, num_planes, bind_infos) != VK_SUCCESS) + return false; + } + } + else + { + VkMemoryRequirements reqs; + table->vkGetImageMemoryRequirements(device, image, &reqs); + + // If we intend to alias with other images bump the alignment to something very high. + // This is kind of crude, but should be high enough to allow YCbCr disjoint aliasing on any implementation. + if (info.flags & VK_IMAGE_CREATE_ALIAS_BIT) + if (reqs.alignment < 64 * 1024) + reqs.alignment = 64 * 1024; + + uint32_t memory_type = find_memory_type(info.domain, reqs.memoryTypeBits); + if (memory_type == UINT32_MAX) + { + LOGE("Failed to find memory type.\n"); + return false; + } + + if (tiling == VK_IMAGE_TILING_LINEAR && + (info.misc & IMAGE_MISC_LINEAR_IMAGE_IGNORE_DEVICE_LOCAL_BIT) == 0) + { + // Is it also device local? + if ((mem_props.memoryTypes[memory_type].propertyFlags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) == 0) + return false; + } + + ExternalHandle external = info.external; + + AllocationMode mode; + if (use_external) + mode = AllocationMode::External; + else if (tiling == VK_IMAGE_TILING_OPTIMAL && + (info.usage & (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_STORAGE_BIT)) != 0) + mode = AllocationMode::OptimalRenderTarget; + else + mode = tiling == VK_IMAGE_TILING_OPTIMAL ? AllocationMode::OptimalResource : AllocationMode::LinearHostMappable; + + { + LOCK_MEMORY(); + if (!managers.memory.allocate_image_memory(reqs.size, reqs.alignment, mode, memory_type, image, + (info.misc & IMAGE_MISC_FORCE_NO_DEDICATED_BIT) != 0, allocation, + use_external ? &external : nullptr)) + { + LOGE("Failed to allocate image memory (type %u, size: %u).\n", + unsigned(memory_type), unsigned(reqs.size)); + return false; + } + } + + if (table->vkBindImageMemory(device, image, allocation->get_memory(), + allocation->get_offset()) != VK_SUCCESS) + { + LOGE("Failed to bind image memory.\n"); + return false; + } + } + + return true; +} + +static void add_unique_family(uint32_t *sharing_indices, uint32_t &count, uint32_t family) +{ + if (family == VK_QUEUE_FAMILY_IGNORED) + return; + + for (uint32_t i = 0; i < count; i++) + if (sharing_indices[i] == family) + return; + sharing_indices[count++] = family; +} + +ImageHandle Device::create_image_from_staging_buffer(const ImageCreateInfo &create_info, + const InitialImageBuffer *staging_buffer) +{ + ImageResourceHolder holder(this); + + VkImageCreateInfo info = { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO }; + info.format = create_info.format; + info.extent.width = create_info.width; + info.extent.height = create_info.height; + info.extent.depth = create_info.depth; + info.imageType = create_info.type; + info.mipLevels = create_info.levels; + info.arrayLayers = create_info.layers; + info.samples = create_info.samples; + info.pNext = create_info.pnext; + + if (create_info.domain == ImageDomain::LinearHostCached || create_info.domain == ImageDomain::LinearHost) + { + info.tiling = VK_IMAGE_TILING_LINEAR; + info.initialLayout = VK_IMAGE_LAYOUT_PREINITIALIZED; + } + else + { + info.tiling = VK_IMAGE_TILING_OPTIMAL; + info.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + } + + info.usage = create_info.usage; + info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; + if (create_info.domain == ImageDomain::Transient) + info.usage |= VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT; + if (staging_buffer) + info.usage |= VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT; + + info.flags = create_info.flags; + + if (info.mipLevels == 0) + info.mipLevels = image_num_miplevels(info.extent); + + VkImageFormatListCreateInfo format_info = { VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO }; + VkFormat view_formats[2]; + format_info.pViewFormats = view_formats; + format_info.viewFormatCount = 2; + bool create_unorm_srgb_views = false; + + if (create_info.misc & IMAGE_MISC_MUTABLE_SRGB_BIT) + { + format_info.viewFormatCount = ImageCreateInfo::compute_view_formats(create_info, view_formats); + if (format_info.viewFormatCount != 0) + { + create_unorm_srgb_views = true; + + const auto *input_format_list = static_cast(info.pNext); + while (input_format_list && input_format_list->sType != VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO) + input_format_list = static_cast(input_format_list->pNext); + + if (ext.supports_image_format_list && !input_format_list) + { + format_info.pNext = info.pNext; + info.pNext = &format_info; + } + } + } + + if ((create_info.misc & IMAGE_MISC_MUTABLE_SRGB_BIT) != 0) + info.flags |= VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT; + + uint32_t sharing_indices[QUEUE_INDEX_COUNT]; + + uint32_t queue_flags = create_info.misc & (IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT | + IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_COMPUTE_BIT | + IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_TRANSFER_BIT | + IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_DUPLEX); + bool concurrent_queue = queue_flags != 0 || + staging_buffer != nullptr || + create_info.initial_layout != VK_IMAGE_LAYOUT_UNDEFINED; + + if (concurrent_queue) + { + info.sharingMode = VK_SHARING_MODE_CONCURRENT; + + // If we didn't specify queue usage, + // just enable every queue since we need to use transfer queue for initial upload. + if (staging_buffer && queue_flags == 0) + { + // We never imply video here. + constexpr ImageMiscFlags implicit_queues_all = + IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT | + IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_COMPUTE_BIT | + IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_TRANSFER_BIT; + + queue_flags |= implicit_queues_all; + } + else if (staging_buffer) + { + // Make sure that these queues are included. + queue_flags |= IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_TRANSFER_BIT; + if (create_info.misc & IMAGE_MISC_GENERATE_MIPS_BIT) + queue_flags |= IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT; + } + + struct + { + uint32_t flags; + QueueIndices index; + } static const mappings[] = { + { IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT, QUEUE_INDEX_GRAPHICS }, + { IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_COMPUTE_BIT, QUEUE_INDEX_COMPUTE }, + { IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_TRANSFER_BIT, QUEUE_INDEX_TRANSFER }, + { IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_DECODE_BIT, QUEUE_INDEX_VIDEO_DECODE }, + { IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_ENCODE_BIT, QUEUE_INDEX_VIDEO_ENCODE }, + }; + + for (auto &m : mappings) + if ((queue_flags & m.flags) != 0) + add_unique_family(sharing_indices, info.queueFamilyIndexCount, queue_info.family_indices[m.index]); + + if (info.queueFamilyIndexCount > 1) + info.pQueueFamilyIndices = sharing_indices; + else + { + info.pQueueFamilyIndices = nullptr; + info.queueFamilyIndexCount = 0; + info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; + } + } + + if (queue_flags == 0) + queue_flags |= IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT; + + VkFormatFeatureFlags check_extra_features = 0; + if ((create_info.misc & IMAGE_MISC_VERIFY_FORMAT_FEATURE_SAMPLED_LINEAR_FILTER_BIT) != 0) + check_extra_features |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT; + + if (info.tiling == VK_IMAGE_TILING_LINEAR) + { + if (staging_buffer) + return ImageHandle(nullptr); + + // Do some more stringent checks. + if (info.mipLevels > 1) + return ImageHandle(nullptr); + if (info.arrayLayers > 1) + return ImageHandle(nullptr); + if (info.imageType != VK_IMAGE_TYPE_2D) + return ImageHandle(nullptr); + if (info.samples != VK_SAMPLE_COUNT_1_BIT) + return ImageHandle(nullptr); + + VkImageFormatProperties2 props = { VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 }; + if (!get_image_format_properties(info.format, info.imageType, info.tiling, info.usage, info.flags, nullptr, &props)) + return ImageHandle(nullptr); + + if (!props.imageFormatProperties.maxArrayLayers || + !props.imageFormatProperties.maxMipLevels || + (info.extent.width > props.imageFormatProperties.maxExtent.width) || + (info.extent.height > props.imageFormatProperties.maxExtent.height) || + (info.extent.depth > props.imageFormatProperties.maxExtent.depth)) + { + return ImageHandle(nullptr); + } + } + + if ((create_info.flags & VK_IMAGE_CREATE_EXTENDED_USAGE_BIT) == 0 && + (!image_format_is_supported(create_info.format, image_usage_to_features(info.usage) | check_extra_features, info.tiling))) + { + LOGE("Format %u is not supported for usage flags!\n", unsigned(create_info.format)); + return ImageHandle(nullptr); + } + + bool use_external = (create_info.misc & IMAGE_MISC_EXTERNAL_MEMORY_BIT) != 0; + if (use_external && create_info.domain != ImageDomain::Physical) + { + LOGE("Must use physical image domain for external memory images.\n"); + return ImageHandle(nullptr); + } + + if (use_external && !ext.supports_external) + { + LOGE("External memory not supported.\n"); + return ImageHandle(nullptr); + } + + VkExternalMemoryImageCreateInfo external_info = { VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO }; + if (ext.supports_external && use_external) + { + // Ensure that the handle type is supported. + VkImageFormatProperties2 props2 = { VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 }; + VkExternalImageFormatProperties external_props = + { VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES }; + VkPhysicalDeviceExternalImageFormatInfo external_format_info = + { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO }; + external_format_info.handleType = create_info.external.memory_handle_type; + + props2.pNext = &external_props; + if (!get_image_format_properties(info.format, info.imageType, info.tiling, + info.usage, info.flags, + &external_format_info, &props2)) + { + LOGE("Image format is not supported for external memory type #%x.\n", + external_format_info.handleType); + return ImageHandle(nullptr); + } + + bool supports_import = (external_props.externalMemoryProperties.externalMemoryFeatures & + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT) != 0; + bool supports_export = (external_props.externalMemoryProperties.externalMemoryFeatures & + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT) != 0; + + if (!supports_import && create_info.external) + { + LOGE("Attempting to import with handle type #%x, but it is not supported.\n", + create_info.external.memory_handle_type); + return ImageHandle(nullptr); + } + else if (!supports_export && !create_info.external) + { + LOGE("Attempting to export with handle type #%x, but it is not supported.\n", + create_info.external.memory_handle_type); + return ImageHandle(nullptr); + } + + external_info.handleTypes = create_info.external.memory_handle_type; + external_info.pNext = info.pNext; + info.pNext = &external_info; + } + + if (table->vkCreateImage(device, &info, nullptr, &holder.image) != VK_SUCCESS) + { + LOGE("Failed to create image in vkCreateImage.\n"); + return ImageHandle(nullptr); + } + + if (!allocate_image_memory(&holder.allocation, create_info, holder.image, info.tiling)) + { + LOGE("Failed to allocate memory for image.\n"); + return ImageHandle(nullptr); + } + + auto tmpinfo = create_info; + tmpinfo.usage = info.usage; + tmpinfo.flags = info.flags; + tmpinfo.levels = info.mipLevels; + + bool has_view = (info.usage & (VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT | + image_usage_video_flags)) != 0 && + (create_info.misc & IMAGE_MISC_NO_DEFAULT_VIEWS_BIT) == 0; + + VkImageViewType view_type = VK_IMAGE_VIEW_TYPE_MAX_ENUM; + if (has_view) + { + if (!holder.create_default_views(tmpinfo, nullptr, create_info.ycbcr_conversion, + create_unorm_srgb_views, view_formats)) + { + return ImageHandle(nullptr); + } + view_type = holder.get_default_view_type(); + } + + ImageHandle handle(handle_pool.images.allocate(this, holder.image, holder.image_view, holder.allocation, tmpinfo, view_type)); + if (handle) + { + holder.owned = false; + if (has_view) + { + handle->get_view().set_alt_views(holder.depth_view, holder.stencil_view); + handle->get_view().set_render_target_views(std::move(holder.rt_views)); + handle->get_view().set_unorm_view(holder.unorm_view); + handle->get_view().set_srgb_view(holder.srgb_view); + } + } + + CommandBufferHandle transition_cmd; + + // Copy initial data to texture. + if (staging_buffer) + { + VK_ASSERT(create_info.domain != ImageDomain::Transient); + VK_ASSERT(create_info.initial_layout != VK_IMAGE_LAYOUT_UNDEFINED); + bool generate_mips = (create_info.misc & IMAGE_MISC_GENERATE_MIPS_BIT) != 0; + + // Now we've used the TRANSFER queue to copy data over to the GPU. + // For mipmapping, we're now moving over to graphics, + // the transfer queue is designed for CPU <-> GPU and that's it. + // For concurrent queue mode, we just need to inject a semaphore. + + auto transfer_cmd = request_command_buffer(CommandBuffer::Type::AsyncTransfer); + + transfer_cmd->image_barrier(*handle, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, + VK_PIPELINE_STAGE_NONE, 0, VK_PIPELINE_STAGE_2_COPY_BIT, + VK_ACCESS_TRANSFER_WRITE_BIT); + + transfer_cmd->begin_region("copy-image-to-gpu"); + transfer_cmd->copy_buffer_to_image(*handle, *staging_buffer->buffer, + staging_buffer->blits.size(), staging_buffer->blits.data()); + transfer_cmd->end_region(); + + if (generate_mips) + { + auto graphics_cmd = request_command_buffer(CommandBuffer::Type::Generic); + Semaphore sem; + + submit(transfer_cmd, nullptr, 1, &sem); + add_wait_semaphore(CommandBuffer::Type::Generic, sem, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, true); + + graphics_cmd->begin_region("mipgen"); + graphics_cmd->barrier_prepare_generate_mipmap(*handle, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, + VK_PIPELINE_STAGE_NONE, + 0, true); + graphics_cmd->generate_mipmap(*handle); + graphics_cmd->end_region(); + + graphics_cmd->image_barrier( + *handle, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, + create_info.initial_layout, + VK_PIPELINE_STAGE_2_BLIT_BIT, 0, + VK_PIPELINE_STAGE_NONE, 0); + + transition_cmd = std::move(graphics_cmd); + } + else + { + transfer_cmd->image_barrier( + *handle, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, + create_info.initial_layout, + VK_PIPELINE_STAGE_2_COPY_BIT, VK_ACCESS_TRANSFER_WRITE_BIT, + VK_PIPELINE_STAGE_NONE, 0); + + transition_cmd = std::move(transfer_cmd); + } + } + else if (create_info.initial_layout != VK_IMAGE_LAYOUT_UNDEFINED) + { + VK_ASSERT(create_info.domain != ImageDomain::Transient); + + // Need to perform the barrier in some command buffer, pick an appropriate one based on supported queues. + // Pick the most lenient queue first in case we need to transition to a weird layout. + CommandBuffer::Type type = CommandBuffer::Type::Count; + if (queue_flags & IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT) + type = CommandBuffer::Type::Generic; + else if (queue_flags & IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_COMPUTE_BIT) + type = CommandBuffer::Type::AsyncCompute; + else if (queue_flags & IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_TRANSFER_BIT) + type = CommandBuffer::Type::AsyncTransfer; + else if (queue_flags & IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_DECODE_BIT) + type = CommandBuffer::Type::VideoDecode; + else if (queue_flags & IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_ENCODE_BIT) + type = CommandBuffer::Type::VideoEncode; + VK_ASSERT(type != CommandBuffer::Type::Count); + + auto cmd = request_command_buffer(type); + cmd->image_barrier(*handle, info.initialLayout, create_info.initial_layout, + VK_PIPELINE_STAGE_NONE, 0, + VK_PIPELINE_STAGE_NONE, 0); + transition_cmd = std::move(cmd); + } + + // For concurrent queue, make sure that compute, transfer or video decode can see the final image as well. + if (transition_cmd) + { + constexpr auto max_queues = Util::ecast(CommandBuffer::Type::Count); + VkPipelineStageFlags2 stages[max_queues]; + CommandBuffer::Type types[max_queues]; + Semaphore sem[max_queues]; + uint32_t sem_count = 0; + + if (queue_flags & IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT) + { + types[sem_count] = CommandBuffer::Type::Generic; + stages[sem_count] = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + sem_count++; + } + + if (queue_flags & IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_COMPUTE_BIT) + { + types[sem_count] = CommandBuffer::Type::AsyncCompute; + stages[sem_count] = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + if (stages[sem_count] != 0) + sem_count++; + } + + // Do not synchronize transfer/video queues here unless we explicitly asked for it. + if (create_info.misc & IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_TRANSFER_BIT) + { + types[sem_count] = CommandBuffer::Type::AsyncTransfer; + stages[sem_count] = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + if (stages[sem_count] != 0) + sem_count++; + } + + if (create_info.misc & IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_DECODE_BIT) + { + types[sem_count] = CommandBuffer::Type::VideoDecode; + stages[sem_count] = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + if (stages[sem_count] != 0) + sem_count++; + } + + if (create_info.misc & IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_ENCODE_BIT) + { + types[sem_count] = CommandBuffer::Type::VideoEncode; + stages[sem_count] = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + if (stages[sem_count] != 0) + sem_count++; + } + + VK_ASSERT(sem_count); + + submit(transition_cmd, nullptr, sem_count, sem); + for (uint32_t i = 0; i < sem_count; i++) + add_wait_semaphore(types[i], sem[i], stages[i], true); + } + + return handle; +} + +const ImmutableSampler *Device::request_immutable_sampler(const SamplerCreateInfo &sampler_info, + const ImmutableYcbcrConversion *ycbcr) +{ + auto info = Sampler::fill_vk_sampler_info(sampler_info); + Util::Hasher h; + + h.u32(info.flags); + h.u32(info.addressModeU); + h.u32(info.addressModeV); + h.u32(info.addressModeW); + h.u32(info.minFilter); + h.u32(info.magFilter); + h.u32(info.mipmapMode); + h.f32(info.minLod); + h.f32(info.maxLod); + h.f32(info.mipLodBias); + h.u32(info.compareEnable); + h.u32(info.compareOp); + h.u32(info.anisotropyEnable); + h.f32(info.maxAnisotropy); + h.u32(info.borderColor); + h.u32(info.unnormalizedCoordinates); + if (ycbcr) + h.u64(ycbcr->get_hash()); + else + h.u32(0); + + LOCK_CACHE(); + auto *sampler = immutable_samplers.find(h.get()); + if (!sampler) + sampler = immutable_samplers.emplace_yield(h.get(), h.get(), this, sampler_info, ycbcr); + + return sampler; +} + +const ImmutableYcbcrConversion *Device::request_immutable_ycbcr_conversion( + const VkSamplerYcbcrConversionCreateInfo &info) +{ + Util::Hasher h; + h.u32(info.forceExplicitReconstruction); + h.u32(info.format); + h.u32(info.chromaFilter); + h.u32(info.components.r); + h.u32(info.components.g); + h.u32(info.components.b); + h.u32(info.components.a); + h.u32(info.xChromaOffset); + h.u32(info.yChromaOffset); + h.u32(info.ycbcrModel); + h.u32(info.ycbcrRange); + + LOCK_CACHE(); + auto *sampler = immutable_ycbcr_conversions.find(h.get()); + if (!sampler) + sampler = immutable_ycbcr_conversions.emplace_yield(h.get(), h.get(), this, info); + return sampler; +} + +SamplerHandle Device::create_sampler(const SamplerCreateInfo &sampler_info) +{ + auto info = Sampler::fill_vk_sampler_info(sampler_info); + VkSampler sampler; + if (table->vkCreateSampler(device, &info, nullptr, &sampler) != VK_SUCCESS) + return SamplerHandle(nullptr); + return SamplerHandle(handle_pool.samplers.allocate(this, sampler, sampler_info, false)); +} + +BindlessDescriptorPoolHandle Device::create_bindless_descriptor_pool(BindlessResourceType type, + unsigned num_sets, unsigned num_descriptors) +{ + if (!ext.vk12_features.descriptorIndexing) + return BindlessDescriptorPoolHandle{nullptr}; + + DescriptorSetLayout layout; + const uint32_t stages_for_sets[VULKAN_NUM_BINDINGS] = { VK_SHADER_STAGE_ALL }; + layout.array_size[0] = DescriptorSetLayout::UNSIZED_ARRAY; + for (unsigned i = 1; i < VULKAN_NUM_BINDINGS; i++) + layout.array_size[i] = 1; + + switch (type) + { + case BindlessResourceType::Image: + layout.separate_image_mask = 1; + break; + + default: + return BindlessDescriptorPoolHandle{nullptr}; + } + + auto *allocator = request_descriptor_set_allocator(layout, stages_for_sets, nullptr); + + VkDescriptorPool pool = VK_NULL_HANDLE; + if (allocator) + pool = allocator->allocate_bindless_pool(num_sets, num_descriptors); + + if (!pool) + { + LOGE("Failed to allocate bindless pool.\n"); + return BindlessDescriptorPoolHandle{nullptr}; + } + + auto *handle = handle_pool.bindless_descriptor_pool.allocate(this, allocator, pool, + num_sets, num_descriptors); + return BindlessDescriptorPoolHandle{handle}; +} + +void Device::fill_buffer_sharing_indices(VkBufferCreateInfo &info, uint32_t *sharing_indices) +{ + for (auto &i : queue_info.family_indices) + add_unique_family(sharing_indices, info.queueFamilyIndexCount, i); + + if (info.queueFamilyIndexCount > 1) + { + info.sharingMode = VK_SHARING_MODE_CONCURRENT; + info.pQueueFamilyIndices = sharing_indices; + } + else + { + info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; + info.queueFamilyIndexCount = 0; + info.pQueueFamilyIndices = nullptr; + } +} + +BufferHandle Device::create_imported_host_buffer(const BufferCreateInfo &create_info, VkExternalMemoryHandleTypeFlagBits type, void *host_buffer) +{ + if (create_info.domain != BufferDomain::Host && + create_info.domain != BufferDomain::CachedHost && + create_info.domain != BufferDomain::CachedCoherentHostPreferCached && + create_info.domain != BufferDomain::CachedCoherentHostPreferCoherent) + { + return BufferHandle{}; + } + + if (!ext.supports_external_memory_host) + return BufferHandle{}; + + if ((reinterpret_cast(host_buffer) & (ext.host_memory_properties.minImportedHostPointerAlignment - 1)) != 0) + { + LOGE("Host buffer is not aligned appropriately.\n"); + return BufferHandle{}; + } + + VkExternalMemoryBufferCreateInfo external_info = { VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO }; + external_info.handleTypes = type; + + VkMemoryHostPointerPropertiesEXT host_pointer_props = { VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT }; + if (table->vkGetMemoryHostPointerPropertiesEXT(device, type, host_buffer, &host_pointer_props) != VK_SUCCESS) + { + LOGE("Host pointer is not importable.\n"); + return BufferHandle{}; + } + + VkBufferCreateInfo info = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; + info.size = create_info.size; + info.usage = create_info.usage; + if (get_device_features().vk12_features.bufferDeviceAddress) + info.usage |= VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT; + info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; + info.pNext = &external_info; + + external_info.pNext = create_info.pnext; + + uint32_t sharing_indices[QUEUE_INDEX_COUNT]; + fill_buffer_sharing_indices(info, sharing_indices); + + VkBuffer buffer; + VkMemoryRequirements reqs; + if (table->vkCreateBuffer(device, &info, nullptr, &buffer) != VK_SUCCESS) + return BufferHandle{}; + + table->vkGetBufferMemoryRequirements(device, buffer, &reqs); + + // Weird workaround for latest AMD Windows drivers which sets memoryTypeBits to 0 when using the external handle type. + if (!reqs.memoryTypeBits) + reqs.memoryTypeBits = ~0u; + + auto plain_reqs = reqs; + reqs.memoryTypeBits &= host_pointer_props.memoryTypeBits; + + if (reqs.memoryTypeBits == 0) + { + LOGE("No compatible host pointer types are available.\n"); + table->vkDestroyBuffer(device, buffer, nullptr); + return BufferHandle{}; + } + + uint32_t memory_type = find_memory_type(create_info.domain, reqs.memoryTypeBits); + + if (memory_type == UINT32_MAX) + { + // Weird workaround for Intel Windows where the only memory type is DEVICE_LOCAL + // with no HOST_VISIBLE (!?!?!). + // However, it appears to work just fine to allocate with other memory types as well ... + // Oh well. + + // Ignore host_pointer_props. + reqs = plain_reqs; + memory_type = find_memory_type(create_info.domain, reqs.memoryTypeBits); + } + + if (memory_type == UINT32_MAX) + { + LOGE("Failed to find memory type.\n"); + table->vkDestroyBuffer(device, buffer, nullptr); + return BufferHandle{}; + } + + VkMemoryAllocateInfo alloc_info = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO }; + alloc_info.allocationSize = (create_info.size + ext.host_memory_properties.minImportedHostPointerAlignment - 1) & + ~(ext.host_memory_properties.minImportedHostPointerAlignment - 1); + alloc_info.memoryTypeIndex = memory_type; + + VkMemoryAllocateFlagsInfo flags_info = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO }; + if (get_device_features().vk12_features.bufferDeviceAddress) + { + alloc_info.pNext = &flags_info; + flags_info.flags = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT; + } + + VkImportMemoryHostPointerInfoEXT import = { VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT }; + import.handleType = type; + import.pHostPointer = host_buffer; + import.pNext = alloc_info.pNext; + alloc_info.pNext = &import; + + VkDeviceMemory memory; + if (table->vkAllocateMemory(device, &alloc_info, nullptr, &memory) != VK_SUCCESS) + { + table->vkDestroyBuffer(device, buffer, nullptr); + return BufferHandle{}; + } + + auto allocation = DeviceAllocation::make_imported_allocation(memory, info.size, memory_type); + if (table->vkMapMemory(device, memory, 0, VK_WHOLE_SIZE, 0, reinterpret_cast(&allocation.host_base)) != VK_SUCCESS) + { + { + LOCK_MEMORY(); + allocation.free_immediate(managers.memory); + } + table->vkDestroyBuffer(device, buffer, nullptr); + return BufferHandle{}; + } + + if (table->vkBindBufferMemory(device, buffer, memory, 0) != VK_SUCCESS) + { + { + LOCK_MEMORY(); + allocation.free_immediate(managers.memory); + } + table->vkDestroyBuffer(device, buffer, nullptr); + return BufferHandle{}; + } + + VkDeviceAddress bda = 0; + if (get_device_features().vk12_features.bufferDeviceAddress) + { + VkBufferDeviceAddressInfo bda_info = { VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO }; + bda_info.buffer = buffer; + bda = table->vkGetBufferDeviceAddress(device, &bda_info); + } + + BufferHandle handle(handle_pool.buffers.allocate(this, buffer, allocation, create_info, bda)); + return handle; +} + +BufferHandle Device::create_buffer(const BufferCreateInfo &create_info, const void *initial) +{ + DeviceAllocation allocation; + VkBuffer buffer; + + bool zero_initialize = (create_info.misc & BUFFER_MISC_ZERO_INITIALIZE_BIT) != 0; + bool use_external = (create_info.misc & BUFFER_MISC_EXTERNAL_MEMORY_BIT) != 0; + if (initial && zero_initialize) + { + LOGE("Cannot initialize buffer with data and clear.\n"); + return BufferHandle{}; + } + + if (use_external && create_info.domain != BufferDomain::Device) + { + LOGE("When using external memory, must be Device domain.\n"); + return BufferHandle{}; + } + + VkBufferCreateInfo info = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; + info.size = create_info.size; + info.usage = create_info.usage | VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; + if (get_device_features().vk12_features.bufferDeviceAddress) + info.usage |= VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT; + info.sharingMode = VK_SHARING_MODE_EXCLUSIVE; + info.pNext = create_info.pnext; + + uint32_t sharing_indices[QUEUE_INDEX_COUNT]; + fill_buffer_sharing_indices(info, sharing_indices); + + if (use_external && !ext.supports_external) + { + LOGE("External memory not supported.\n"); + return BufferHandle{}; + } + + VkExternalMemoryBufferCreateInfo external_info = { VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO }; + if (ext.supports_external && use_external) + { + // Ensure that the handle type is supported. + VkPhysicalDeviceExternalBufferInfo external_buffer_props_info = + { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO }; + VkExternalBufferProperties external_buffer_props = { VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES }; + external_buffer_props_info.handleType = create_info.external.memory_handle_type; + external_buffer_props_info.usage = info.usage; + external_buffer_props_info.flags = info.flags; + vkGetPhysicalDeviceExternalBufferProperties(gpu, &external_buffer_props_info, &external_buffer_props); + + bool supports_import = (external_buffer_props.externalMemoryProperties.externalMemoryFeatures & + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT) != 0; + bool supports_export = (external_buffer_props.externalMemoryProperties.externalMemoryFeatures & + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT) != 0; + + if (!supports_import && !create_info.external) + { + LOGE("Attempting to import with handle type #%x, but it is not supported.\n", + create_info.external.memory_handle_type); + return BufferHandle{}; + } + else if (!supports_export && create_info.external) + { + LOGE("Attempting to export with handle type #%x, but it is not supported.\n", + create_info.external.memory_handle_type); + return BufferHandle{}; + } + + external_info.handleTypes = create_info.external.memory_handle_type; + external_info.pNext = info.pNext; + info.pNext = &external_info; + } + + if (table->vkCreateBuffer(device, &info, nullptr, &buffer) != VK_SUCCESS) + return BufferHandle(nullptr); + + VkMemoryRequirements2 reqs = { VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 }; + VkBufferMemoryRequirementsInfo2 req_info = { VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 }; + req_info.buffer = buffer; + table->vkGetBufferMemoryRequirements2(device, &req_info, &reqs); + + if (create_info.allocation_requirements.size) + { + reqs.memoryRequirements.memoryTypeBits &= + create_info.allocation_requirements.memoryTypeBits; + reqs.memoryRequirements.size = + std::max(reqs.memoryRequirements.size, create_info.allocation_requirements.size); + reqs.memoryRequirements.alignment = + std::max(reqs.memoryRequirements.alignment, create_info.allocation_requirements.alignment); + } + + uint32_t memory_type = find_memory_type(create_info.domain, reqs.memoryRequirements.memoryTypeBits); + if (memory_type == UINT32_MAX) + { + LOGE("Failed to find memory type.\n"); + table->vkDestroyBuffer(device, buffer, nullptr); + return BufferHandle(nullptr); + } + + AllocationMode mode; + if ((create_info.misc & BUFFER_MISC_EXTERNAL_MEMORY_BIT) != 0) + mode = AllocationMode::External; + else if (create_info.domain == BufferDomain::Device && + (create_info.usage & (VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT)) != 0) + mode = AllocationMode::LinearDeviceHighPriority; + else if (create_info.domain == BufferDomain::Device || + create_info.domain == BufferDomain::LinkedDeviceHostPreferDevice) + mode = AllocationMode::LinearDevice; + else + mode = AllocationMode::LinearHostMappable; + + auto external = create_info.external; + + { + LOCK_MEMORY(); + if (!managers.memory.allocate_buffer_memory(reqs.memoryRequirements.size, reqs.memoryRequirements.alignment, + mode, memory_type, buffer, &allocation, + use_external ? &external : nullptr)) + { + if (use_external) + { + LOGE("Failed to export / import buffer memory.\n"); + table->vkDestroyBuffer(device, buffer, nullptr); + return BufferHandle(nullptr); + } + + auto fallback_domain = create_info.domain; + + // This memory type is rather scarce, so fallback to Host type if we've exhausted this memory. + if (create_info.domain == BufferDomain::LinkedDeviceHost) + { + LOGW("Exhausted LinkedDeviceHost memory, falling back to host.\n"); + fallback_domain = BufferDomain::Host; + } + else if (create_info.domain == BufferDomain::LinkedDeviceHostPreferDevice) + { + LOGW("Exhausted LinkedDeviceHostPreferDevice memory, falling back to device.\n"); + fallback_domain = BufferDomain::Device; + } + + memory_type = find_memory_type(fallback_domain, reqs.memoryRequirements.memoryTypeBits); + + if (memory_type == UINT32_MAX || fallback_domain == create_info.domain || + !managers.memory.allocate_buffer_memory(reqs.memoryRequirements.size, reqs.memoryRequirements.alignment, + mode, memory_type, buffer, &allocation, nullptr)) + { + LOGE("Failed to allocate fallback memory.\n"); + table->vkDestroyBuffer(device, buffer, nullptr); + return BufferHandle(nullptr); + } + } + } + + if (table->vkBindBufferMemory(device, buffer, allocation.get_memory(), allocation.get_offset()) != VK_SUCCESS) + { + { + LOCK_MEMORY(); + allocation.free_immediate(managers.memory); + } + + table->vkDestroyBuffer(device, buffer, nullptr); + return BufferHandle(nullptr); + } + + auto tmpinfo = create_info; + tmpinfo.usage |= VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; + + VkDeviceAddress bda = 0; + if (get_device_features().vk12_features.bufferDeviceAddress) + { + VkBufferDeviceAddressInfo bda_info = { VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO }; + bda_info.buffer = buffer; + bda = table->vkGetBufferDeviceAddress(device, &bda_info); + } + + BufferHandle handle(handle_pool.buffers.allocate(this, buffer, allocation, tmpinfo, bda)); + + bool need_init = initial || zero_initialize; + void *ptr = nullptr; + if (need_init && memory_type_is_host_visible(memory_type)) + ptr = managers.memory.map_memory(allocation, MEMORY_ACCESS_WRITE_BIT, 0, allocation.get_size()); + + if (need_init && !ptr) + { + auto cmd = request_command_buffer(CommandBuffer::Type::AsyncTransfer); + if (initial) + { + auto staging_info = create_info; + staging_info.domain = BufferDomain::Host; + auto staging_buffer = create_buffer(staging_info, initial); + set_name(*staging_buffer, "buffer-upload-staging-buffer"); + + cmd->begin_region("copy-buffer-staging"); + cmd->copy_buffer(*handle, *staging_buffer); + cmd->end_region(); + } + else + { + cmd->begin_region("fill-buffer-staging"); + cmd->fill_buffer(*handle, 0); + cmd->end_region(); + } + + LOCK(); + submit_staging(cmd, true); + } + else if (need_init) + { + if (initial) + memcpy(ptr, initial, create_info.size); + else + memset(ptr, 0, create_info.size); + managers.memory.unmap_memory(allocation, MEMORY_ACCESS_WRITE_BIT, 0, allocation.get_size()); + } + return handle; +} + +bool Device::memory_type_is_device_optimal(uint32_t type) const +{ + return (mem_props.memoryTypes[type].propertyFlags & VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) != 0; +} + +bool Device::memory_type_is_host_visible(uint32_t type) const +{ + return (mem_props.memoryTypes[type].propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) != 0; +} + +static VkFormatFeatureFlags2 promote_storage_usage(const DeviceFeatures &features, VkFormat format, + VkFormatFeatureFlags2 supported) +{ + if ((supported & VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT) != 0 && + format_supports_storage_image_read_write_without_format(format)) + { + if (features.enabled_features.shaderStorageImageReadWithoutFormat) + supported |= VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT; + if (features.enabled_features.shaderStorageImageWriteWithoutFormat) + supported |= VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT; + } + + return supported; +} + +void Device::get_format_properties(VkFormat format, VkFormatProperties3 *properties3) const +{ + VkFormatProperties2 properties2 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 }; + VK_ASSERT(properties3->sType == VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3); + + if (ext.supports_format_feature_flags2) + { + properties2.pNext = properties3; + vkGetPhysicalDeviceFormatProperties2(gpu, format, &properties2); + } + else + { + // Skip properties3 and synthesize the results instead. + properties2.pNext = properties3->pNext; + vkGetPhysicalDeviceFormatProperties2(gpu, format, &properties2); + + properties3->optimalTilingFeatures = properties2.formatProperties.optimalTilingFeatures; + properties3->linearTilingFeatures = properties2.formatProperties.linearTilingFeatures; + properties3->bufferFeatures = properties2.formatProperties.bufferFeatures; + + // Automatically promote for supported formats. + properties3->optimalTilingFeatures = + promote_storage_usage(ext, format, properties3->optimalTilingFeatures); + properties3->linearTilingFeatures = + promote_storage_usage(ext, format, properties3->linearTilingFeatures); + } +} + +bool Device::get_image_format_properties(VkFormat format, VkImageType type, VkImageTiling tiling, + VkImageUsageFlags usage, VkImageCreateFlags flags, + const void *pNext, + VkImageFormatProperties2 *properties2) const +{ + VK_ASSERT(properties2->sType == VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2); + VkPhysicalDeviceImageFormatInfo2 info = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 }; + info.pNext = pNext; + info.format = format; + info.type = type; + info.tiling = tiling; + info.usage = usage; + info.flags = flags; + + VkResult res = vkGetPhysicalDeviceImageFormatProperties2(gpu, &info, properties2); + return res == VK_SUCCESS; +} + +bool Device::image_format_is_supported(VkFormat format, VkFormatFeatureFlags2 required, VkImageTiling tiling) const +{ + VkFormatProperties3 props3 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 }; + get_format_properties(format, &props3); + auto flags = tiling == VK_IMAGE_TILING_OPTIMAL ? props3.optimalTilingFeatures : props3.linearTilingFeatures; + return (flags & required) == required; +} + +VkFormat Device::get_default_depth_stencil_format() const +{ + if (image_format_is_supported(VK_FORMAT_D24_UNORM_S8_UINT, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_TILING_OPTIMAL)) + return VK_FORMAT_D24_UNORM_S8_UINT; + if (image_format_is_supported(VK_FORMAT_D32_SFLOAT_S8_UINT, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_TILING_OPTIMAL)) + return VK_FORMAT_D32_SFLOAT_S8_UINT; + + return VK_FORMAT_UNDEFINED; +} + +VkFormat Device::get_default_depth_format() const +{ + if (image_format_is_supported(VK_FORMAT_D32_SFLOAT, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_TILING_OPTIMAL)) + return VK_FORMAT_D32_SFLOAT; + if (image_format_is_supported(VK_FORMAT_X8_D24_UNORM_PACK32, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_TILING_OPTIMAL)) + return VK_FORMAT_X8_D24_UNORM_PACK32; + if (image_format_is_supported(VK_FORMAT_D16_UNORM, VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_TILING_OPTIMAL)) + return VK_FORMAT_D16_UNORM; + + return VK_FORMAT_UNDEFINED; +} + +uint64_t Device::allocate_cookie() +{ + // Reserve lower bits for "special purposes". + return cookie.fetch_add(16, std::memory_order_relaxed) + 16; +} + +const RenderPass &Device::request_render_pass(const RenderPassInfo &info, bool compatible) +{ + Hasher h; + VkFormat formats[VULKAN_NUM_ATTACHMENTS]; + VkFormat depth_stencil; + uint32_t lazy = 0; + uint32_t optimal = 0; + + for (unsigned i = 0; i < info.num_color_attachments; i++) + { + VK_ASSERT(info.color_attachments[i]); + formats[i] = info.color_attachments[i]->get_format(); + if (info.color_attachments[i]->get_image().get_create_info().domain == ImageDomain::Transient) + lazy |= 1u << i; + if (info.color_attachments[i]->get_image().get_layout_type() == Layout::Optimal) + optimal |= 1u << i; + + // This can change external subpass dependencies, so it must always be hashed. + h.u32(info.color_attachments[i]->get_image().get_swapchain_layout()); + } + + if (info.depth_stencil) + { + if (info.depth_stencil->get_image().get_create_info().domain == ImageDomain::Transient) + lazy |= 1u << info.num_color_attachments; + if (info.depth_stencil->get_image().get_layout_type() == Layout::Optimal) + optimal |= 1u << info.num_color_attachments; + } + + // For multiview, base layer is encoded into the view mask. + if (info.num_layers > 1) + { + h.u32(info.base_layer); + h.u32(info.num_layers); + } + else + { + h.u32(0); + h.u32(info.num_layers); + } + + h.u32(info.num_subpasses); + for (unsigned i = 0; i < info.num_subpasses; i++) + { + h.u32(info.subpasses[i].num_color_attachments); + h.u32(info.subpasses[i].num_input_attachments); + h.u32(info.subpasses[i].num_resolve_attachments); + h.u32(static_cast(info.subpasses[i].depth_stencil_mode)); + for (unsigned j = 0; j < info.subpasses[i].num_color_attachments; j++) + h.u32(info.subpasses[i].color_attachments[j]); + for (unsigned j = 0; j < info.subpasses[i].num_input_attachments; j++) + h.u32(info.subpasses[i].input_attachments[j]); + for (unsigned j = 0; j < info.subpasses[i].num_resolve_attachments; j++) + h.u32(info.subpasses[i].resolve_attachments[j]); + } + + depth_stencil = info.depth_stencil ? info.depth_stencil->get_format() : VK_FORMAT_UNDEFINED; + h.data(formats, info.num_color_attachments * sizeof(VkFormat)); + h.u32(info.num_color_attachments); + h.u32(depth_stencil); + + // Compatible render passes do not care about load/store, or image layouts. + if (!compatible) + { + h.u32(info.op_flags); + h.u32(info.clear_attachments); + h.u32(info.load_attachments); + h.u32(info.store_attachments); + h.u32(optimal); + } + + // Lazy flag can change external subpass dependencies, which is not compatible. + h.u32(lazy); + + // Marked for v2 render passes. + h.u32(2); + + auto hash = h.get(); + + auto *ret = render_passes.find(hash); + if (!ret) + ret = render_passes.emplace_yield(hash, hash, this, info); + return *ret; +} + +const Framebuffer &Device::request_framebuffer(const RenderPassInfo &info) +{ + return framebuffer_allocator.request_framebuffer(info); +} + +ImageHandle Device::get_transient_attachment(unsigned width, unsigned height, VkFormat format, + unsigned index, unsigned samples, unsigned layers) +{ + return transient_allocator.request_attachment(width, height, format, index, samples, layers); +} + +ImageView &Device::get_swapchain_view() +{ + VK_ASSERT(wsi.index < wsi.swapchain.size()); + return wsi.swapchain[wsi.index]->get_view(); +} + +ImageView &Device::get_swapchain_view(unsigned index) +{ + VK_ASSERT(index < wsi.swapchain.size()); + return wsi.swapchain[index]->get_view(); +} + +unsigned Device::get_num_frame_contexts() const +{ + return unsigned(per_frame.size()); +} + +unsigned Device::get_num_swapchain_images() const +{ + return unsigned(wsi.swapchain.size()); +} + +unsigned Device::get_swapchain_index() const +{ + return wsi.index; +} + +unsigned Device::get_current_frame_context() const +{ + return frame_context_index; +} + +RenderPassInfo Device::get_swapchain_render_pass(SwapchainRenderPass style) +{ + RenderPassInfo info; + info.num_color_attachments = 1; + info.color_attachments[0] = &get_swapchain_view(); + info.clear_attachments = ~0u; + info.store_attachments = 1u << 0; + + switch (style) + { + case SwapchainRenderPass::Depth: + { + info.op_flags |= RENDER_PASS_OP_CLEAR_DEPTH_STENCIL_BIT; + auto att = get_transient_attachment(wsi.swapchain[wsi.index]->get_create_info().width, + wsi.swapchain[wsi.index]->get_create_info().height, + get_default_depth_format()); + info.depth_stencil = &att->get_view(); + break; + } + + case SwapchainRenderPass::DepthStencil: + { + info.op_flags |= RENDER_PASS_OP_CLEAR_DEPTH_STENCIL_BIT; + auto att = get_transient_attachment(wsi.swapchain[wsi.index]->get_create_info().width, + wsi.swapchain[wsi.index]->get_create_info().height, + get_default_depth_stencil_format()); + info.depth_stencil = &att->get_view(); + break; + } + + default: + break; + } + return info; +} + +void Device::external_queue_lock() +{ + lock.lock.lock(); + if (queue_lock_callback) + queue_lock_callback(); +} + +void Device::external_queue_unlock() +{ + lock.lock.unlock(); + if (queue_unlock_callback) + queue_unlock_callback(); +} + +void Device::set_queue_lock(std::function lock_callback, std::function unlock_callback) +{ + queue_lock_callback = std::move(lock_callback); + queue_unlock_callback = std::move(unlock_callback); +} + +void Device::set_name(uint64_t object, VkObjectType type, const char *name) +{ + if (ext.supports_debug_utils) + { + VkDebugUtilsObjectNameInfoEXT info = { VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT }; + info.objectType = type; + info.objectHandle = object; + info.pObjectName = name; + // Be defensive against broken loaders (Android have been weird here in the past). + if (vkSetDebugUtilsObjectNameEXT) + vkSetDebugUtilsObjectNameEXT(device, &info); + } +} + +void Device::set_name(const Buffer &buffer, const char *name) +{ + set_name((uint64_t)buffer.get_buffer(), VK_OBJECT_TYPE_BUFFER, name); +} + +void Device::set_name(const Image &image, const char *name) +{ + set_name((uint64_t)image.get_image(), VK_OBJECT_TYPE_IMAGE, name); +} + +void Device::set_name(const CommandBuffer &cmd, const char *name) +{ + set_name((uint64_t)cmd.get_command_buffer(), VK_OBJECT_TYPE_COMMAND_BUFFER, name); +} + +void Device::query_available_performance_counters(CommandBuffer::Type type, uint32_t *count, + const VkPerformanceCounterKHR **counters, + const VkPerformanceCounterDescriptionKHR **desc) +{ + auto &query_pool = get_performance_query_pool(get_physical_queue_type(type)); + *count = query_pool.get_num_counters(); + *counters = query_pool.get_available_counters(); + *desc = query_pool.get_available_counter_descs(); +} + +bool Device::init_performance_counters(CommandBuffer::Type type, const std::vector &names) +{ + return queue_data[get_physical_queue_type(type)].performance_query_pool.init_counters(names); +} + +void Device::release_profiling() +{ + table->vkReleaseProfilingLockKHR(device); +} + +bool Device::acquire_profiling() +{ + if (!ext.performance_query_features.performanceCounterQueryPools) + return false; + + VkAcquireProfilingLockInfoKHR info = { VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR }; + info.timeout = UINT64_MAX; + if (table->vkAcquireProfilingLockKHR(device, &info) != VK_SUCCESS) + { + LOGE("Failed to acquire profiling lock.\n"); + return false; + } + + return true; +} + +void Device::add_debug_channel_buffer(DebugChannelInterface *iface, std::string tag, Vulkan::BufferHandle buffer) +{ + buffer->set_internal_sync_object(); + LOCK(); + frame().debug_channels.push_back({ iface, std::move(tag), std::move(buffer) }); +} + +void Device::parse_debug_channel(const PerFrame::DebugChannel &channel) +{ + if (!channel.iface) + return; + + auto *words = static_cast(map_host_buffer(*channel.buffer, MEMORY_ACCESS_READ_BIT)); + + size_t size = channel.buffer->get_create_info().size; + if (size <= sizeof(uint32_t)) + { + LOGE("Debug channel buffer is too small.\n"); + return; + } + + // Format for the debug channel. + // Word 0: Atomic counter used by shader. + // Word 1-*: [total message length, code, x, y, z, args] + + size -= sizeof(uint32_t); + size /= sizeof(uint32_t); + + if (words[0].u32 > size) + { + LOGW("Debug channel overflowed and messaged were dropped. Consider increasing debug channel size to at least %u bytes.\n", + unsigned((words[0].u32 + 1) * sizeof(uint32_t))); + } + + words++; + + while (size != 0 && words[0].u32 >= 5 && words[0].u32 <= size) + { + channel.iface->message(channel.tag, words[1].u32, + words[2].u32, words[3].u32, words[4].u32, + words[0].u32 - 5, &words[5]); + size -= words[0].u32; + words += words[0].u32; + } + + unmap_host_buffer(*channel.buffer, MEMORY_ACCESS_READ_BIT); +} + +static int64_t convert_to_signed_delta(uint64_t start_ticks, uint64_t end_ticks, unsigned valid_bits) +{ + unsigned shamt = 64 - valid_bits; + start_ticks <<= shamt; + end_ticks <<= shamt; + auto ticks_delta = int64_t(end_ticks - start_ticks); + ticks_delta >>= shamt; + return ticks_delta; +} + +double Device::convert_device_timestamp_delta(uint64_t start_ticks, uint64_t end_ticks) const +{ + int64_t ticks_delta = convert_to_signed_delta(start_ticks, end_ticks, queue_info.timestamp_valid_bits); + return double(int64_t(ticks_delta)) * gpu_props.limits.timestampPeriod * 1e-9; +} + +uint64_t Device::update_wrapped_device_timestamp(uint64_t ts) +{ + calibrated_timestamp_device_accum += + convert_to_signed_delta(calibrated_timestamp_device_accum, + ts, + queue_info.timestamp_valid_bits); + return calibrated_timestamp_device_accum; +} + +int64_t Device::convert_timestamp_to_absolute_nsec(const QueryPoolResult &handle) +{ + auto ts = int64_t(handle.get_timestamp_ticks()); + if (handle.is_device_timebase()) + { + // Ensure that we deal with timestamp wraparound correctly. + // On some hardware, we have < 64 valid bits and the timestamp counters will wrap around at some interval. + // As long as timestamps come in at a reasonably steady pace, we can deal with wraparound cleanly. + ts = update_wrapped_device_timestamp(ts); + ts = calibrated_timestamp_host + int64_t(double(ts - calibrated_timestamp_device) * gpu_props.limits.timestampPeriod); + } + return ts; +} + +PipelineEvent Device::begin_signal_event() +{ + return request_pipeline_event(); +} + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES +ResourceManager &Device::get_resource_manager() +{ + return resource_manager; +} + +ShaderManager &Device::get_shader_manager() +{ +#ifdef GRANITE_VULKAN_FOSSILIZE + if (query_initialization_progress(InitializationStage::ShaderModules) < 100) + { + LOGW("Querying shader manager before completion of module initialization.\n" + "Application should not hit this case.\n" + "Blocking until completion ... Try using DeviceShaderModuleReadyEvent or PipelineReadyEvent instead.\n"); + block_until_shader_module_ready(); + } +#endif + return shader_manager; +} +#endif + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES +void Device::init_shader_manager_cache() +{ + if (!shader_manager.load_shader_cache("assets://shader_cache.json")) + shader_manager.load_shader_cache("cache://shader_cache.json"); +} + +void Device::flush_shader_manager_cache() +{ + shader_manager.save_shader_cache("cache://shader_cache.json"); +} +#endif + +const VolkDeviceTable &Device::get_device_table() const +{ + return *table; +} + +#ifndef GRANITE_RENDERDOC_CAPTURE +bool Device::init_renderdoc_capture() +{ + LOGE("RenderDoc API capture is not enabled in this build.\n"); + return false; +} + +void Device::begin_renderdoc_capture() +{ +} + +void Device::end_renderdoc_capture() +{ +} +#endif + +bool Device::supports_subgroup_size_log2(bool subgroup_full_group, uint8_t subgroup_minimum_size_log2, + uint8_t subgroup_maximum_size_log2, VkShaderStageFlagBits stage) const +{ + if (ImplementationQuirks::get().force_no_subgroup_size_control) + return false; + + if (stage != VK_SHADER_STAGE_COMPUTE_BIT && + stage != VK_SHADER_STAGE_MESH_BIT_EXT && + stage != VK_SHADER_STAGE_TASK_BIT_EXT) + { + return false; + } + + if (!ext.vk13_features.subgroupSizeControl) + return false; + if (subgroup_full_group && !ext.vk13_features.computeFullSubgroups) + return false; + + uint32_t min_subgroups = 1u << subgroup_minimum_size_log2; + uint32_t max_subgroups = 1u << subgroup_maximum_size_log2; + + bool full_range = min_subgroups <= ext.vk13_props.minSubgroupSize && + max_subgroups >= ext.vk13_props.maxSubgroupSize; + + // We can use VARYING size. + if (full_range) + return true; + + if (min_subgroups > ext.vk13_props.maxSubgroupSize || + max_subgroups < ext.vk13_props.minSubgroupSize) + { + // No overlap in requested subgroup size and available subgroup size. + return false; + } + + // We need requiredSubgroupSizeStages support here. + return (ext.vk13_props.requiredSubgroupSizeStages & stage) != 0; +} + +const QueueInfo &Device::get_queue_info() const +{ + return queue_info; +} + +void Device::timestamp_log_reset() +{ + managers.timestamps.reset(); +} + +void Device::timestamp_log(const TimestampIntervalReportCallback &cb) const +{ + managers.timestamps.log_simple(cb); +} + +CommandBufferHandle request_command_buffer_with_ownership_transfer( + Device &device, + const Vulkan::Image &image, + const OwnershipTransferInfo &info, + const Vulkan::Semaphore &semaphore) +{ + auto &queue_info = device.get_queue_info(); + unsigned old_family = queue_info.family_indices[device.get_physical_queue_type(info.old_queue)]; + unsigned new_family = queue_info.family_indices[device.get_physical_queue_type(info.new_queue)]; + bool image_is_concurrent = (image.get_create_info().misc & + (Vulkan::IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_TRANSFER_BIT | + Vulkan::IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT | + Vulkan::IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_COMPUTE_BIT | + Vulkan::IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_DUPLEX)) != 0; + bool need_ownership_transfer = old_family != new_family && !image_is_concurrent; + + VkImageMemoryBarrier2 ownership = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 }; + ownership.image = image.get_image(); + ownership.subresourceRange.aspectMask = format_to_aspect_mask(image.get_format()); + ownership.subresourceRange.levelCount = VK_REMAINING_MIP_LEVELS; + ownership.subresourceRange.layerCount = VK_REMAINING_ARRAY_LAYERS; + ownership.oldLayout = info.old_image_layout; + ownership.newLayout = info.new_image_layout; + ownership.srcStageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + + if (need_ownership_transfer) + { + ownership.srcQueueFamilyIndex = old_family; + ownership.dstQueueFamilyIndex = new_family; + + if (semaphore) + device.add_wait_semaphore(info.old_queue, semaphore, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, true); + auto release_cmd = device.request_command_buffer(info.old_queue); + + release_cmd->image_barriers(1, &ownership); + + Semaphore sem; + device.submit(release_cmd, nullptr, 1, &sem); + device.add_wait_semaphore(info.new_queue, sem, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, true); + } + else + { + ownership.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + ownership.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; + if (semaphore) + device.add_wait_semaphore(info.new_queue, semaphore, info.dst_pipeline_stage, true); + } + + // Ownership transfers may perform writes, so make those operations visible. + // If we require neither layout transition nor ownership transfer, + // visibility is ensured by semaphores. + bool need_dst_barrier = need_ownership_transfer || info.old_image_layout != info.new_image_layout; + + auto acquire_cmd = device.request_command_buffer(info.new_queue); + if (need_dst_barrier) + { + if (!need_ownership_transfer) + ownership.srcStageMask = info.dst_pipeline_stage; + ownership.dstAccessMask = info.dst_access; + ownership.dstStageMask = info.dst_pipeline_stage; + acquire_cmd->image_barriers(1, &ownership); + } + + return acquire_cmd; +} + +static ImplementationQuirks implementation_quirks; +ImplementationQuirks &ImplementationQuirks::get() +{ + return implementation_quirks; +} +} diff --git a/vulkan/device.hpp b/vulkan/device.hpp new file mode 100644 index 00000000..bc3ad2cd --- /dev/null +++ b/vulkan/device.hpp @@ -0,0 +1,911 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "buffer.hpp" +#include "command_buffer.hpp" +#include "command_pool.hpp" +#include "fence.hpp" +#include "fence_manager.hpp" +#include "image.hpp" +#include "memory_allocator.hpp" +#include "render_pass.hpp" +#include "sampler.hpp" +#include "semaphore.hpp" +#include "semaphore_manager.hpp" +#include "event_manager.hpp" +#include "shader.hpp" +#include "context.hpp" +#include "query_pool.hpp" +#include "buffer_pool.hpp" +#include "indirect_layout.hpp" +#include +#include +#include +#include +#include + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES +#include "shader_manager.hpp" +#include "resource_manager.hpp" +#endif + +#include +#include +#include + +#ifdef GRANITE_VULKAN_FOSSILIZE +#include "fossilize.hpp" +#endif + +#include "quirks.hpp" +#include "small_vector.hpp" + +namespace Util +{ +class TimelineTraceFile; +} + +namespace Granite +{ +struct TaskGroup; +} + +namespace Vulkan +{ +enum class SwapchainRenderPass +{ + ColorOnly, + Depth, + DepthStencil +}; + +struct InitialImageBuffer +{ + BufferHandle buffer; + Util::SmallVector blits; +}; + +struct HandlePool +{ + VulkanObjectPool buffers; + VulkanObjectPool images; + VulkanObjectPool linear_images; + VulkanObjectPool image_views; + VulkanObjectPool buffer_views; + VulkanObjectPool samplers; + VulkanObjectPool fences; + VulkanObjectPool semaphores; + VulkanObjectPool events; + VulkanObjectPool query; + VulkanObjectPool command_buffers; + VulkanObjectPool bindless_descriptor_pool; + VulkanObjectPool allocations; +}; + +class DebugChannelInterface +{ +public: + union Word + { + uint32_t u32; + int32_t s32; + float f32; + }; + virtual void message(const std::string &tag, uint32_t code, uint32_t x, uint32_t y, uint32_t z, + uint32_t word_count, const Word *words) = 0; +}; + +namespace Helper +{ +struct WaitSemaphores +{ + Util::SmallVector binary_waits; + Util::SmallVector timeline_waits; +}; + +class BatchComposer +{ +public: + enum { MaxSubmissions = 8 }; + + BatchComposer(); + void add_wait_submissions(WaitSemaphores &sem); + void add_wait_semaphore(SemaphoreHolder &sem, VkPipelineStageFlags2 stage); + void add_wait_semaphore(VkSemaphore sem, VkPipelineStageFlags2 stage); + void add_signal_semaphore(VkSemaphore sem, VkPipelineStageFlags2 stage, uint64_t count); + void add_command_buffer(VkCommandBuffer cmd); + + void begin_batch(); + Util::SmallVector &bake(int profiling_iteration = -1); + +private: + Util::SmallVector submits; + VkPerformanceQuerySubmitInfoKHR profiling_infos[Helper::BatchComposer::MaxSubmissions]; + + Util::SmallVector waits[MaxSubmissions]; + Util::SmallVector signals[MaxSubmissions]; + Util::SmallVector cmds[MaxSubmissions]; + + unsigned submit_index = 0; +}; +} + +class Device + : public Util::IntrusivePtrEnabled, HandleCounter> +#ifdef GRANITE_VULKAN_FOSSILIZE + , public Fossilize::StateCreatorInterface +#endif +{ +public: + // Device-based objects which need to poke at internal data structures when their lifetimes end. + // Don't want to expose a lot of internal guts to make this work. + friend class QueryPool; + friend struct QueryPoolResultDeleter; + friend class EventHolder; + friend struct EventHolderDeleter; + friend class SemaphoreHolder; + friend struct SemaphoreHolderDeleter; + friend class FenceHolder; + friend struct FenceHolderDeleter; + friend class Sampler; + friend struct SamplerDeleter; + friend class ImmutableSampler; + friend class ImmutableYcbcrConversion; + friend class Buffer; + friend struct BufferDeleter; + friend class BufferView; + friend struct BufferViewDeleter; + friend class ImageView; + friend struct ImageViewDeleter; + friend class Image; + friend struct ImageDeleter; + friend struct LinearHostImageDeleter; + friend class CommandBuffer; + friend struct CommandBufferDeleter; + friend class BindlessDescriptorPool; + friend struct BindlessDescriptorPoolDeleter; + friend class Program; + friend class WSI; + friend class Cookie; + friend class Framebuffer; + friend class PipelineLayout; + friend class FramebufferAllocator; + friend class RenderPass; + friend class Texture; + friend class DescriptorSetAllocator; + friend class Shader; + friend class ImageResourceHolder; + friend class DeviceAllocationOwner; + friend struct DeviceAllocationDeleter; + + Device(); + ~Device(); + + // No move-copy. + void operator=(Device &&) = delete; + Device(Device &&) = delete; + + // Only called by main thread, during setup phase. + void set_context(const Context &context); + + // This is asynchronous in nature. See query_initialization_progress(). + // Kicks off Fossilize and shader manager caching. + void begin_shader_caches(); + // For debug or trivial applications, blocks until all shader cache work is done. + void wait_shader_caches(); + + void init_swapchain(const std::vector &swapchain_images, unsigned width, unsigned height, VkFormat format, + VkSurfaceTransformFlagBitsKHR transform, VkImageUsageFlags usage); + void set_swapchain_queue_family_support(uint32_t queue_family_support); + bool can_touch_swapchain_in_command_buffer(CommandBuffer::Type type) const; + void init_external_swapchain(const std::vector &swapchain_images); + void init_frame_contexts(unsigned count); + const VolkDeviceTable &get_device_table() const; + + // Profiling + bool init_performance_counters(CommandBuffer::Type type, const std::vector &names); + bool acquire_profiling(); + void release_profiling(); + void query_available_performance_counters(CommandBuffer::Type type, + uint32_t *count, + const VkPerformanceCounterKHR **counters, + const VkPerformanceCounterDescriptionKHR **desc); + + ImageView &get_swapchain_view(); + ImageView &get_swapchain_view(unsigned index); + unsigned get_num_swapchain_images() const; + unsigned get_num_frame_contexts() const; + unsigned get_swapchain_index() const; + unsigned get_current_frame_context() const; + + size_t get_pipeline_cache_size(); + bool get_pipeline_cache_data(uint8_t *data, size_t size); + bool init_pipeline_cache(const uint8_t *data, size_t size); + + // Frame-pushing interface. + void next_frame_context(); + + // Normally, the main thread ensures forward progress of the frame context + // so that async tasks don't have to care about it, + // but in the case where async threads are continuously pumping Vulkan work + // in the background, they need to reclaim memory if WSI goes to sleep for a long period of time. + void next_frame_context_in_async_thread(); + void set_enable_async_thread_frame_context(bool enable); + + void wait_idle(); + void end_frame_context(); + + // RenderDoc integration API for app-guided captures. + static bool init_renderdoc_capture(); + // Calls next_frame_context() and begins a renderdoc capture. + void begin_renderdoc_capture(); + // Calls next_frame_context() and ends the renderdoc capture. + void end_renderdoc_capture(); + + // Set names for objects for debuggers and profilers. + void set_name(const Buffer &buffer, const char *name); + void set_name(const Image &image, const char *name); + void set_name(const CommandBuffer &cmd, const char *name); + // Generic version. + void set_name(uint64_t object, VkObjectType type, const char *name); + + // Submission interface, may be called from any thread at any time. + void flush_frame(); + CommandBufferHandle request_command_buffer(CommandBuffer::Type type = CommandBuffer::Type::Generic); + CommandBufferHandle request_command_buffer_for_thread(unsigned thread_index, CommandBuffer::Type type = CommandBuffer::Type::Generic); + + CommandBufferHandle request_profiled_command_buffer(CommandBuffer::Type type = CommandBuffer::Type::Generic); + CommandBufferHandle request_profiled_command_buffer_for_thread(unsigned thread_index, CommandBuffer::Type type = CommandBuffer::Type::Generic); + + void submit(CommandBufferHandle &cmd, Fence *fence = nullptr, + unsigned semaphore_count = 0, Semaphore *semaphore = nullptr); + + void submit_empty(CommandBuffer::Type type, + Fence *fence = nullptr, + SemaphoreHolder *semaphore = nullptr); + // Mark that there have been work submitted in this frame context outside our control + // that accesses resources Vulkan::Device owns. + void submit_external(CommandBuffer::Type type); + void submit_discard(CommandBufferHandle &cmd); + QueueIndices get_physical_queue_type(CommandBuffer::Type queue_type) const; + void register_time_interval(std::string tid, QueryPoolHandle start_ts, QueryPoolHandle end_ts, + const std::string &tag); + + // Request shaders and programs. These objects are owned by the Device. + Shader *request_shader(const uint32_t *code, size_t size, const ResourceLayout *layout = nullptr); + Shader *request_shader_by_hash(Util::Hash hash); + Program *request_program(const uint32_t *task_data, size_t task_size, + const uint32_t *mesh_data, size_t mesh_size, + const uint32_t *fragment_data, size_t fragment_size, + const ResourceLayout *task_layout = nullptr, + const ResourceLayout *mesh_layout = nullptr, + const ResourceLayout *fragment_layout = nullptr); + Program *request_program(const uint32_t *vertex_data, size_t vertex_size, + const uint32_t *fragment_data, size_t fragment_size, + const ResourceLayout *vertex_layout = nullptr, + const ResourceLayout *fragment_layout = nullptr); + Program *request_program(const uint32_t *compute_data, size_t compute_size, + const ResourceLayout *layout = nullptr); + Program *request_program(Shader *task, Shader *mesh, Shader *fragment, const ImmutableSamplerBank *sampler_bank = nullptr); + Program *request_program(Shader *vertex, Shader *fragment, const ImmutableSamplerBank *sampler_bank = nullptr); + Program *request_program(Shader *compute, const ImmutableSamplerBank *sampler_bank = nullptr); + const IndirectLayout *request_indirect_layout(const IndirectLayoutToken *tokens, + uint32_t num_tokens, uint32_t stride); + + const ImmutableYcbcrConversion *request_immutable_ycbcr_conversion(const VkSamplerYcbcrConversionCreateInfo &info); + const ImmutableSampler *request_immutable_sampler(const SamplerCreateInfo &info, const ImmutableYcbcrConversion *ycbcr); + + // Map and unmap buffer objects. + void *map_host_buffer(const Buffer &buffer, MemoryAccessFlags access); + void unmap_host_buffer(const Buffer &buffer, MemoryAccessFlags access); + void *map_host_buffer(const Buffer &buffer, MemoryAccessFlags access, VkDeviceSize offset, VkDeviceSize length); + void unmap_host_buffer(const Buffer &buffer, MemoryAccessFlags access, VkDeviceSize offset, VkDeviceSize length); + + void *map_linear_host_image(const LinearHostImage &image, MemoryAccessFlags access); + void unmap_linear_host_image_and_sync(const LinearHostImage &image, MemoryAccessFlags access); + + // Create buffers and images. + BufferHandle create_buffer(const BufferCreateInfo &info, const void *initial = nullptr); + BufferHandle create_imported_host_buffer(const BufferCreateInfo &info, VkExternalMemoryHandleTypeFlagBits type, void *host_buffer); + ImageHandle create_image(const ImageCreateInfo &info, const ImageInitialData *initial = nullptr); + ImageHandle create_image_from_staging_buffer(const ImageCreateInfo &info, const InitialImageBuffer *buffer); + LinearHostImageHandle create_linear_host_image(const LinearHostImageCreateInfo &info); + // Does not create any default image views. Only wraps the VkImage + // as a non-owned handle for purposes of API interop. + ImageHandle wrap_image(const ImageCreateInfo &info, VkImage img); + DeviceAllocationOwnerHandle take_device_allocation_ownership(Image &image); + DeviceAllocationOwnerHandle allocate_memory(const MemoryAllocateInfo &info); + + // Create staging buffers for images. + InitialImageBuffer create_image_staging_buffer(const ImageCreateInfo &info, const ImageInitialData *initial); + InitialImageBuffer create_image_staging_buffer(const TextureFormatLayout &layout); + + // Create image view, buffer views and samplers. + ImageViewHandle create_image_view(const ImageViewCreateInfo &view_info); + BufferViewHandle create_buffer_view(const BufferViewCreateInfo &view_info); + SamplerHandle create_sampler(const SamplerCreateInfo &info); + + BindlessDescriptorPoolHandle create_bindless_descriptor_pool(BindlessResourceType type, + unsigned num_sets, unsigned num_descriptors); + + // Render pass helpers. + bool image_format_is_supported(VkFormat format, VkFormatFeatureFlags2KHR required, VkImageTiling tiling = VK_IMAGE_TILING_OPTIMAL) const; + void get_format_properties(VkFormat format, VkFormatProperties3KHR *properties) const; + bool get_image_format_properties(VkFormat format, VkImageType type, VkImageTiling tiling, + VkImageUsageFlags usage, VkImageCreateFlags flags, + const void *pNext, + VkImageFormatProperties2 *properties2) const; + + VkFormat get_default_depth_stencil_format() const; + VkFormat get_default_depth_format() const; + ImageHandle get_transient_attachment(unsigned width, unsigned height, VkFormat format, + unsigned index = 0, unsigned samples = 1, unsigned layers = 1); + RenderPassInfo get_swapchain_render_pass(SwapchainRenderPass style); + + // Semaphore API: + // Semaphores in Granite are abstracted to support both binary and timeline semaphores + // internally. + // In practice this means that semaphores behave like single-use binary semaphores, + // with one signal and one wait. + // A single semaphore handle is not reused for multiple submissions, and they must be recycled through + // the device. The intended use is device.submit(&sem), device.add_wait_semaphore(sem); dispose(sem); + // For timeline semaphores, the semaphore is just a proxy object which + // holds the internally owned VkSemaphore + timeline value and is otherwise lightweight. + // + // However, there are various use cases where we explicitly need semaphore objects: + // - Interoperate with other code that only accepts VkSemaphore. + // - Interoperate with external objects. We need to know whether to use binary or timeline. + // For timelines, we need to know which handle type to use (OPAQUE or ID3D12Fence). + // Binary external semaphore is always opaque with TEMPORARY semantics. + + void add_wait_semaphore(CommandBuffer::Type type, Semaphore semaphore, VkPipelineStageFlags2 stages, bool flush); + + // If transfer_ownership is set, Semaphore owns the VkSemaphore. Otherwise, application must + // free the semaphore when GPU usage of it is complete. + Semaphore request_semaphore(VkSemaphoreTypeKHR type, VkSemaphore handle = VK_NULL_HANDLE, bool transfer_ownership = false); + + // Requests a binary or timeline semaphore that can be used to import/export. + // These semaphores cannot be used directly by add_wait_semaphore() and submit_empty(). + // See request_timeline_semaphore_as_binary() for how to use timelines. + Semaphore request_semaphore_external(VkSemaphoreTypeKHR type, + VkExternalSemaphoreHandleTypeFlagBits handle_type); + + // The created semaphore does not hold ownership of the VkSemaphore object. + // This is used when we want to wait on or signal an external timeline semaphore at a specific timeline value. + // We must collapse the timeline to a "binary" semaphore before we can call submit_empty or add_wait_semaphore(). + Semaphore request_timeline_semaphore_as_binary(const SemaphoreHolder &holder, uint64_t value); + + // A proxy semaphore which lets us grab a semaphore handle before we signal it. + // Move assignment can be used to move a payload. + // Mostly useful to deal better with render graph implementation. + // For time being however, we'll support moving the payload over to the proxy object. + Semaphore request_proxy_semaphore(); + + // For compat with existing code that uses this entry point. + inline Semaphore request_legacy_semaphore() { return request_semaphore(VK_SEMAPHORE_TYPE_BINARY_KHR); } + + inline VkDevice get_device() const + { + return device; + } + + inline VkPhysicalDevice get_physical_device() const + { + return gpu; + } + + inline VkInstance get_instance() const + { + return instance; + } + + inline const VkPhysicalDeviceMemoryProperties &get_memory_properties() const + { + return mem_props; + } + + inline const VkPhysicalDeviceProperties &get_gpu_properties() const + { + return gpu_props; + } + + void get_memory_budget(HeapBudget *budget); + + const Sampler &get_stock_sampler(StockSampler sampler) const; + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES + // To obtain ShaderManager, ShaderModules must be observed to be complete + // in query_initialization_progress(). + ShaderManager &get_shader_manager(); + ResourceManager &get_resource_manager(); +#endif + + // Useful for loading screens or otherwise figuring out + // when we can start rendering in a stable state. + enum class InitializationStage + { + CacheMaintenance, + // When this is done, shader modules and the shader manager have been populated. + // At this stage it is safe to use shaders in a configuration where we + // don't have SPIRV-Cross and/or shaderc to do on the fly compilation. + // For shipping configurations. We can still compile pipelines, but it may stutter. + ShaderModules, + // When this is done, pipelines should never stutter if Fossilize knows about the pipeline. + Pipelines + }; + + // 0 -> not started + // [1, 99] rough percentage of completion + // >= 100 done + unsigned query_initialization_progress(InitializationStage status) const; + + // For some platforms, the device and queue might be shared, possibly across threads, so need some mechanism to + // lock the global device and queue. + void set_queue_lock(std::function lock_callback, + std::function unlock_callback); + + // Alternative form, when we have to provide lock callbacks to external APIs. + void external_queue_lock(); + void external_queue_unlock(); + + const ImplementationWorkarounds &get_workarounds() const + { + return workarounds; + } + + const DeviceFeatures &get_device_features() const + { + return ext; + } + + bool consumes_debug_markers() const + { + return debug_marker_sensitive; + } + + bool swapchain_touched() const; + + double convert_device_timestamp_delta(uint64_t start_ticks, uint64_t end_ticks) const; + // Writes a timestamp on host side, which is calibrated to the GPU timebase. + QueryPoolHandle write_calibrated_timestamp(); + + // A split version of VkEvent handling which lets us record a wait command before signal is recorded. + PipelineEvent begin_signal_event(); + + const Context::SystemHandles &get_system_handles() const + { + return system_handles; + } + + void configure_default_geometry_samplers(float max_aniso, float lod_bias); + + bool supports_subgroup_size_log2(bool subgroup_full_group, + uint8_t subgroup_minimum_size_log2, + uint8_t subgroup_maximum_size_log2, + VkShaderStageFlagBits stage = VK_SHADER_STAGE_COMPUTE_BIT) const; + + const QueueInfo &get_queue_info() const; + const RenderPass &request_render_pass(const RenderPassInfo &info, bool compatible); + + void timestamp_log_reset(); + void timestamp_log(const TimestampIntervalReportCallback &cb) const; + +private: + VkInstance instance = VK_NULL_HANDLE; + VkPhysicalDevice gpu = VK_NULL_HANDLE; + VkDevice device = VK_NULL_HANDLE; + const VolkDeviceTable *table = nullptr; + const Context *ctx = nullptr; + QueueInfo queue_info; + unsigned num_thread_indices = 1; + + std::atomic_uint64_t cookie; + + uint64_t allocate_cookie(); + void bake_program(Program &program, const ImmutableSamplerBank *sampler_bank); + void merge_combined_resource_layout(CombinedResourceLayout &layout, const Program &program); + + void request_vertex_block(BufferBlock &block, VkDeviceSize size); + void request_index_block(BufferBlock &block, VkDeviceSize size); + void request_uniform_block(BufferBlock &block, VkDeviceSize size); + void request_staging_block(BufferBlock &block, VkDeviceSize size); + + QueryPoolHandle write_timestamp(VkCommandBuffer cmd, VkPipelineStageFlags2 stage); + + void set_acquire_semaphore(unsigned index, Semaphore acquire); + Semaphore consume_release_semaphore(); + VkQueue get_current_present_queue() const; + CommandBuffer::Type get_current_present_queue_type() const; + + const PipelineLayout *request_pipeline_layout(const CombinedResourceLayout &layout, + const ImmutableSamplerBank *immutable_samplers); + DescriptorSetAllocator *request_descriptor_set_allocator(const DescriptorSetLayout &layout, + const uint32_t *stages_for_sets, + const ImmutableSampler * const *immutable_samplers); + const Framebuffer &request_framebuffer(const RenderPassInfo &info); + + VkPhysicalDeviceMemoryProperties mem_props; + VkPhysicalDeviceProperties gpu_props; + + DeviceFeatures ext; + bool debug_marker_sensitive = false; + void init_stock_samplers(); + void init_stock_sampler(StockSampler sampler, float max_aniso, float lod_bias); + void init_timeline_semaphores(); + void deinit_timeline_semaphores(); + + uint64_t update_wrapped_device_timestamp(uint64_t ts); + int64_t convert_timestamp_to_absolute_nsec(const QueryPoolResult &handle); + Context::SystemHandles system_handles; + + QueryPoolHandle write_timestamp_nolock(VkCommandBuffer cmd, VkPipelineStageFlags2 stage); + QueryPoolHandle write_calibrated_timestamp_nolock(); + void register_time_interval_nolock(std::string tid, QueryPoolHandle start_ts, QueryPoolHandle end_ts, + const std::string &tag); + + // Make sure this is deleted last. + HandlePool handle_pool; + + // Calibrated timestamps. + void init_calibrated_timestamps(); + void recalibrate_timestamps_fallback(); + void recalibrate_timestamps(); + bool resample_calibrated_timestamps(); + VkTimeDomainEXT calibrated_time_domain = VK_TIME_DOMAIN_DEVICE_EXT; + int64_t calibrated_timestamp_device = 0; + int64_t calibrated_timestamp_host = 0; + int64_t calibrated_timestamp_device_accum = 0; + unsigned timestamp_calibration_counter = 0; + Vulkan::QueryPoolHandle frame_context_begin_ts; + + struct Managers + { + DeviceAllocator memory; + FenceManager fence; + SemaphoreManager semaphore; + EventManager event; + BufferPool vbo, ibo, ubo, staging; + TimestampIntervalManager timestamps; + }; + Managers managers; + + struct + { + std::mutex memory_lock; + std::mutex lock; + std::condition_variable cond; + Util::RWSpinLock read_only_cache; + unsigned counter = 0; + bool async_frame_context = false; + } lock; + + struct PerFrame + { + PerFrame(Device *device, unsigned index); + ~PerFrame(); + void operator=(const PerFrame &) = delete; + PerFrame(const PerFrame &) = delete; + + void begin(); + void trim_command_pools(); + + Device &device; + unsigned frame_index; + const VolkDeviceTable &table; + Managers &managers; + + std::vector cmd_pools[QUEUE_INDEX_COUNT]; + VkSemaphore timeline_semaphores[QUEUE_INDEX_COUNT] = {}; + uint64_t timeline_fences[QUEUE_INDEX_COUNT] = {}; + + QueryPool query_pool; + + std::vector vbo_blocks; + std::vector ibo_blocks; + std::vector ubo_blocks; + std::vector staging_blocks; + + std::vector wait_and_recycle_fences; + + std::vector allocations; + std::vector destroyed_framebuffers; + std::vector destroyed_samplers; + std::vector destroyed_image_views; + std::vector destroyed_buffer_views; + std::vector destroyed_images; + std::vector destroyed_buffers; + std::vector destroyed_descriptor_pools; + Util::SmallVector submissions[QUEUE_INDEX_COUNT]; + std::vector recycled_semaphores; + std::vector recycled_events; + std::vector destroyed_semaphores; + std::vector consumed_semaphores; + + struct DebugChannel + { + DebugChannelInterface *iface; + std::string tag; + BufferHandle buffer; + }; + std::vector debug_channels; + + struct TimestampIntervalHandles + { + std::string tid; + QueryPoolHandle start_ts; + QueryPoolHandle end_ts; + TimestampInterval *timestamp_tag; + }; + std::vector timestamp_intervals; + + bool in_destructor = false; + }; + // The per frame structure must be destroyed after + // the hashmap data structures below, so it must be declared before. + std::vector> per_frame; + + struct + { + Semaphore acquire; + Semaphore release; + std::vector swapchain; + VkQueue present_queue = VK_NULL_HANDLE; + Vulkan::CommandBuffer::Type present_queue_type = {}; + uint32_t queue_family_support_mask = 0; + unsigned index = 0; + bool consumed = false; + } wsi; + bool can_touch_swapchain_in_command_buffer(QueueIndices physical_type) const; + + struct QueueData + { + Util::SmallVector wait_semaphores; + Util::SmallVector wait_stages; + bool need_fence = false; + + VkSemaphore timeline_semaphore = VK_NULL_HANDLE; + uint64_t current_timeline = 0; + PerformanceQueryPool performance_query_pool; + } queue_data[QUEUE_INDEX_COUNT]; + + struct InternalFence + { + VkFence fence; + VkSemaphore timeline; + uint64_t value; + }; + + void submit_queue(QueueIndices physical_type, InternalFence *fence, + SemaphoreHolder *external_semaphore = nullptr, + unsigned semaphore_count = 0, + Semaphore *semaphore = nullptr, + int profiled_iteration = -1); + + PerFrame &frame() + { + VK_ASSERT(frame_context_index < per_frame.size()); + VK_ASSERT(per_frame[frame_context_index]); + return *per_frame[frame_context_index]; + } + + const PerFrame &frame() const + { + VK_ASSERT(frame_context_index < per_frame.size()); + VK_ASSERT(per_frame[frame_context_index]); + return *per_frame[frame_context_index]; + } + + unsigned frame_context_index = 0; + + uint32_t find_memory_type(BufferDomain domain, uint32_t mask) const; + uint32_t find_memory_type(ImageDomain domain, uint32_t mask) const; + uint32_t find_memory_type(uint32_t required, uint32_t mask) const; + bool memory_type_is_device_optimal(uint32_t type) const; + bool memory_type_is_host_visible(uint32_t type) const; + + const ImmutableSampler *samplers[static_cast(StockSampler::Count)] = {}; + + VulkanCache pipeline_layouts; + VulkanCache descriptor_set_allocators; + VulkanCache render_passes; + VulkanCache shaders; + VulkanCache programs; + VulkanCache immutable_samplers; + VulkanCache immutable_ycbcr_conversions; + VulkanCache indirect_layouts; + + FramebufferAllocator framebuffer_allocator; + TransientAttachmentAllocator transient_allocator; + VkPipelineCache pipeline_cache = VK_NULL_HANDLE; + + void init_pipeline_cache(); + void flush_pipeline_cache(); + + PerformanceQueryPool &get_performance_query_pool(QueueIndices physical_type); + void clear_wait_semaphores(); + void submit_staging(CommandBufferHandle &cmd, bool flush); + PipelineEvent request_pipeline_event(); + + std::function queue_lock_callback; + std::function queue_unlock_callback; + void flush_frame(QueueIndices physical_type); + void submit_empty_inner(QueueIndices type, InternalFence *fence, + SemaphoreHolder *external_semaphore, + unsigned semaphore_count, + Semaphore *semaphore); + + void collect_wait_semaphores(QueueData &data, Helper::WaitSemaphores &semaphores); + void emit_queue_signals(Helper::BatchComposer &composer, + SemaphoreHolder *external_semaphore, + VkSemaphore sem, uint64_t timeline, InternalFence *fence, + unsigned semaphore_count, Semaphore *semaphores); + VkResult submit_batches(Helper::BatchComposer &composer, VkQueue queue, VkFence fence, + int profiling_iteration = -1); + VkResult queue_submit(VkQueue queue, uint32_t count, const VkSubmitInfo2 *submits, VkFence fence); + + void destroy_buffer(VkBuffer buffer); + void destroy_image(VkImage image); + void destroy_image_view(VkImageView view); + void destroy_buffer_view(VkBufferView view); + void destroy_sampler(VkSampler sampler); + void destroy_framebuffer(VkFramebuffer framebuffer); + void destroy_semaphore(VkSemaphore semaphore); + void consume_semaphore(VkSemaphore semaphore); + void recycle_semaphore(VkSemaphore semaphore); + void destroy_event(VkEvent event); + void free_memory(const DeviceAllocation &alloc); + void reset_fence(VkFence fence, bool observed_wait); + void destroy_descriptor_pool(VkDescriptorPool desc_pool); + + void destroy_buffer_nolock(VkBuffer buffer); + void destroy_image_nolock(VkImage image); + void destroy_image_view_nolock(VkImageView view); + void destroy_buffer_view_nolock(VkBufferView view); + void destroy_sampler_nolock(VkSampler sampler); + void destroy_framebuffer_nolock(VkFramebuffer framebuffer); + void destroy_semaphore_nolock(VkSemaphore semaphore); + void consume_semaphore_nolock(VkSemaphore semaphore); + void recycle_semaphore_nolock(VkSemaphore semaphore); + void destroy_event_nolock(VkEvent event); + void free_memory_nolock(const DeviceAllocation &alloc); + void destroy_descriptor_pool_nolock(VkDescriptorPool desc_pool); + void reset_fence_nolock(VkFence fence, bool observed_wait); + + void flush_frame_nolock(); + CommandBufferHandle request_command_buffer_nolock(unsigned thread_index, CommandBuffer::Type type, bool profiled); + void submit_discard_nolock(CommandBufferHandle &cmd); + void submit_nolock(CommandBufferHandle cmd, Fence *fence, + unsigned semaphore_count, Semaphore *semaphore); + void submit_empty_nolock(QueueIndices physical_type, Fence *fence, + SemaphoreHolder *semaphore, int profiling_iteration); + void add_wait_semaphore_nolock(QueueIndices type, Semaphore semaphore, + VkPipelineStageFlags2 stages, bool flush); + + void request_vertex_block_nolock(BufferBlock &block, VkDeviceSize size); + void request_index_block_nolock(BufferBlock &block, VkDeviceSize size); + void request_uniform_block_nolock(BufferBlock &block, VkDeviceSize size); + void request_staging_block_nolock(BufferBlock &block, VkDeviceSize size); + + CommandBufferHandle request_secondary_command_buffer_for_thread(unsigned thread_index, + const Framebuffer *framebuffer, + unsigned subpass, + CommandBuffer::Type type = CommandBuffer::Type::Generic); + void add_frame_counter_nolock(); + void decrement_frame_counter_nolock(); + void submit_secondary(CommandBuffer &primary, CommandBuffer &secondary); + void wait_idle_nolock(); + void end_frame_nolock(); + + void add_debug_channel_buffer(DebugChannelInterface *iface, std::string tag, BufferHandle buffer); + void parse_debug_channel(const PerFrame::DebugChannel &channel); + + Fence request_legacy_fence(); + +#ifdef GRANITE_VULKAN_SYSTEM_HANDLES + ShaderManager shader_manager; + ResourceManager resource_manager; + void init_shader_manager_cache(); + void flush_shader_manager_cache(); +#endif + +#ifdef GRANITE_VULKAN_FOSSILIZE + bool enqueue_create_sampler(Fossilize::Hash hash, const VkSamplerCreateInfo *create_info, VkSampler *sampler) override; + bool enqueue_create_descriptor_set_layout(Fossilize::Hash hash, const VkDescriptorSetLayoutCreateInfo *create_info, VkDescriptorSetLayout *layout) override; + bool enqueue_create_pipeline_layout(Fossilize::Hash hash, const VkPipelineLayoutCreateInfo *create_info, VkPipelineLayout *layout) override; + bool enqueue_create_shader_module(Fossilize::Hash hash, const VkShaderModuleCreateInfo *create_info, VkShaderModule *module) override; + bool enqueue_create_render_pass(Fossilize::Hash hash, const VkRenderPassCreateInfo *create_info, VkRenderPass *render_pass) override; + bool enqueue_create_render_pass2(Fossilize::Hash hash, const VkRenderPassCreateInfo2 *create_info, VkRenderPass *render_pass) override; + bool enqueue_create_compute_pipeline(Fossilize::Hash hash, const VkComputePipelineCreateInfo *create_info, VkPipeline *pipeline) override; + bool enqueue_create_graphics_pipeline(Fossilize::Hash hash, const VkGraphicsPipelineCreateInfo *create_info, VkPipeline *pipeline) override; + bool enqueue_create_raytracing_pipeline(Fossilize::Hash hash, const VkRayTracingPipelineCreateInfoKHR *create_info, VkPipeline *pipeline) override; + bool fossilize_replay_graphics_pipeline(Fossilize::Hash hash, VkGraphicsPipelineCreateInfo &info); + bool fossilize_replay_compute_pipeline(Fossilize::Hash hash, VkComputePipelineCreateInfo &info); + + void replay_tag_simple(Fossilize::ResourceTag tag); + + void register_graphics_pipeline(Fossilize::Hash hash, const VkGraphicsPipelineCreateInfo &info); + void register_compute_pipeline(Fossilize::Hash hash, const VkComputePipelineCreateInfo &info); + void register_render_pass(VkRenderPass render_pass, Fossilize::Hash hash, const VkRenderPassCreateInfo2KHR &info); + void register_descriptor_set_layout(VkDescriptorSetLayout layout, Fossilize::Hash hash, const VkDescriptorSetLayoutCreateInfo &info); + void register_pipeline_layout(VkPipelineLayout layout, Fossilize::Hash hash, const VkPipelineLayoutCreateInfo &info); + void register_shader_module(VkShaderModule module, Fossilize::Hash hash, const VkShaderModuleCreateInfo &info); + void register_sampler(VkSampler sampler, Fossilize::Hash hash, const VkSamplerCreateInfo &info); + void register_sampler_ycbcr_conversion(VkSamplerYcbcrConversion ycbcr, const VkSamplerYcbcrConversionCreateInfo &info); + + struct RecorderState; + std::unique_ptr recorder_state; + + struct ReplayerState; + std::unique_ptr replayer_state; + + void promote_write_cache_to_readonly() const; + void promote_readonly_db_from_assets() const; + + void init_pipeline_state(const Fossilize::FeatureFilter &filter, + const VkPhysicalDeviceFeatures2 &pdf2, + const VkApplicationInfo &application_info); + void flush_pipeline_state(); + void block_until_shader_module_ready(); + void block_until_pipeline_ready(); +#endif + + ImplementationWorkarounds workarounds; + void init_workarounds(); + + void fill_buffer_sharing_indices(VkBufferCreateInfo &create_info, uint32_t *sharing_indices); + + bool allocate_image_memory(DeviceAllocation *allocation, const ImageCreateInfo &info, + VkImage image, VkImageTiling tiling); + + void promote_read_write_caches_to_read_only(); +}; + +// A fairly complex helper used for async queue readbacks. +// Typically used for things like headless backend which emulates WSI through readbacks + encode. +struct OwnershipTransferInfo +{ + CommandBuffer::Type old_queue; + CommandBuffer::Type new_queue; + VkImageLayout old_image_layout; + VkImageLayout new_image_layout; + VkPipelineStageFlags2 dst_pipeline_stage; + VkAccessFlags2 dst_access; +}; + +// For an image which was last accessed in old_queue, requests a command buffer +// for new_queue. Commands will be enqueued as necessary in new_queue to ensure that a complete ownership +// transfer has taken place. +// If queue family for old_queue differs from new_queue, a release barrier is enqueued in old_queue. +// In new_queue we perform either an acquire barrier or a simple pipeline barrier to change layout if required. +// If semaphore is a valid handle, it will be waited on in either old_queue to perform release barrier +// or new_queue depending on what is required. +// If the image uses CONCURRENT sharing mode, acquire/release barriers are skipped. +CommandBufferHandle request_command_buffer_with_ownership_transfer( + Device &device, + const Vulkan::Image &image, + const OwnershipTransferInfo &info, + const Vulkan::Semaphore &semaphore); + +using DeviceHandle = Util::IntrusivePtr; +} diff --git a/vulkan/device_fossilize.cpp b/vulkan/device_fossilize.cpp new file mode 100644 index 00000000..1b74edf8 --- /dev/null +++ b/vulkan/device_fossilize.cpp @@ -0,0 +1,1036 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "device_fossilize.hpp" +#include "timer.hpp" +#include "thread_group.hpp" +#include "fossilize_db.hpp" +#include "dynamic_array.hpp" + +namespace Vulkan +{ +Device::RecorderState::RecorderState() +{ + recorder_ready.store(false, std::memory_order_relaxed); +} + +Device::RecorderState::~RecorderState() +{ +} + +Device::ReplayerState::ReplayerState() +{ + progress.prepare.store(0, std::memory_order_relaxed); + progress.modules.store(0, std::memory_order_relaxed); + progress.pipelines.store(0, std::memory_order_relaxed); +} + +Device::ReplayerState::~ReplayerState() +{ +} + +void Device::register_sampler(VkSampler sampler, Fossilize::Hash hash, const VkSamplerCreateInfo &info) +{ + if (!recorder_state) + return; + + if (!recorder_state->recorder_ready.load(std::memory_order_acquire)) + { + LOGW("Attempting to register sampler before recorder is ready.\n"); + return; + } + + if (!recorder_state->recorder.record_sampler(sampler, info, hash)) + LOGW("Failed to register sampler.\n"); +} + +void Device::register_sampler_ycbcr_conversion( + VkSamplerYcbcrConversion ycbcr, const VkSamplerYcbcrConversionCreateInfo &info) +{ + if (!recorder_state) + return; + + if (!recorder_state->recorder_ready.load(std::memory_order_acquire)) + { + LOGW("Attempting to register sampler YCbCr conversion before recorder is ready.\n"); + return; + } + + if (!recorder_state->recorder.record_ycbcr_conversion(ycbcr, info)) + LOGW("Failed to register YCbCr conversion.\n"); +} + +void Device::register_descriptor_set_layout(VkDescriptorSetLayout layout, Fossilize::Hash hash, const VkDescriptorSetLayoutCreateInfo &info) +{ + if (!recorder_state) + return; + + if (!recorder_state->recorder_ready.load(std::memory_order_acquire)) + { + LOGW("Attempting to register descriptor set layout before recorder is ready.\n"); + return; + } + + if (!recorder_state->recorder.record_descriptor_set_layout(layout, info, hash)) + LOGW("Failed to register descriptor set layout.\n"); +} + +void Device::register_pipeline_layout(VkPipelineLayout layout, Fossilize::Hash hash, const VkPipelineLayoutCreateInfo &info) +{ + if (!recorder_state) + return; + + if (!recorder_state->recorder_ready.load(std::memory_order_acquire)) + { + LOGW("Attempting to register pipeline layout before recorder is ready.\n"); + return; + } + + if (!recorder_state->recorder.record_pipeline_layout(layout, info, hash)) + LOGW("Failed to register pipeline layout.\n"); +} + +void Device::register_shader_module(VkShaderModule module, Fossilize::Hash hash, const VkShaderModuleCreateInfo &info) +{ + if (!recorder_state) + return; + + if (!recorder_state->recorder_ready.load(std::memory_order_acquire)) + { + LOGW("Attempting to register shader module before recorder is ready.\n"); + return; + } + + replayer_state->feature_filter->register_shader_module_info(module, &info); + + if (!recorder_state->recorder.record_shader_module(module, info, hash)) + LOGW("Failed to register shader module.\n"); +} + +void Device::register_compute_pipeline(Fossilize::Hash hash, const VkComputePipelineCreateInfo &info) +{ + if (!recorder_state) + return; + + if (!recorder_state->recorder_ready.load(std::memory_order_acquire)) + { + LOGW("Attempting to register compute pipeline before recorder is ready.\n"); + return; + } + + if (!recorder_state->recorder.record_compute_pipeline(VK_NULL_HANDLE, info, nullptr, 0, hash)) + LOGW("Failed to register compute pipeline.\n"); +} + +void Device::register_graphics_pipeline(Fossilize::Hash hash, const VkGraphicsPipelineCreateInfo &info) +{ + if (!recorder_state) + return; + + if (!recorder_state->recorder_ready.load(std::memory_order_acquire)) + { + LOGW("Attempting to register graphics pipeline before recorder is ready.\n"); + return; + } + + if (!recorder_state->recorder.record_graphics_pipeline(VK_NULL_HANDLE, info, nullptr, 0, hash)) + LOGW("Failed to register graphics pipeline.\n"); +} + +void Device::register_render_pass(VkRenderPass render_pass, Fossilize::Hash hash, const VkRenderPassCreateInfo2KHR &info) +{ + if (!recorder_state) + return; + + if (!recorder_state->recorder_ready.load(std::memory_order_acquire)) + { + LOGW("Attempting to register render pass before recorder is ready.\n"); + return; + } + + if (!recorder_state->recorder.record_render_pass2(render_pass, info, hash)) + LOGW("Failed to register render pass.\n"); +} + +bool Device::enqueue_create_shader_module(Fossilize::Hash hash, const VkShaderModuleCreateInfo *create_info, VkShaderModule *module) +{ + if (!replayer_state->feature_filter->shader_module_is_supported(create_info)) + { + *module = VK_NULL_HANDLE; + replayer_state->progress.modules.fetch_add(1, std::memory_order_release); + return true; + } + + ResourceLayout layout; + + // If we know the resource layout already, just reuse that. Avoids spinning up SPIRV-Cross reflection + // and allows us to not even build it for release builds. + if (shader_manager.get_resource_layout_by_shader_hash(hash, layout)) + shaders.emplace_yield(hash, hash, this, create_info->pCode, create_info->codeSize, &layout); + else + shaders.emplace_yield(hash, hash, this, create_info->pCode, create_info->codeSize); + + // Resolve the handles later. + *module = (VkShaderModule)hash; + replayer_state->progress.modules.fetch_add(1, std::memory_order_release); + return true; +} + +bool Device::fossilize_replay_graphics_pipeline(Fossilize::Hash hash, VkGraphicsPipelineCreateInfo &info) +{ + int vert_index = -1; + int task_index = -1; + int mesh_index = -1; + int frag_index = -1; + + for (uint32_t i = 0; i < info.stageCount; i++) + { + switch (info.pStages[i].stage) + { + case VK_SHADER_STAGE_VERTEX_BIT: + vert_index = int(i); + break; + + case VK_SHADER_STAGE_TASK_BIT_EXT: + task_index = int(i); + break; + + case VK_SHADER_STAGE_MESH_BIT_EXT: + mesh_index = int(i); + break; + + case VK_SHADER_STAGE_FRAGMENT_BIT: + frag_index = int(i); + break; + + default: + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return false; + } + } + + if (frag_index < 0 || (mesh_index < 0 && vert_index < 0) || + (mesh_index >= 0 && vert_index >= 0)) + { + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return false; + } + + auto *vert_shader = vert_index >= 0 ? shaders.find((Fossilize::Hash)info.pStages[vert_index].module) : nullptr; + auto *task_shader = task_index >= 0 ? shaders.find((Fossilize::Hash)info.pStages[task_index].module) : nullptr; + auto *mesh_shader = mesh_index >= 0 ? shaders.find((Fossilize::Hash)info.pStages[mesh_index].module) : nullptr; + auto *frag_shader = shaders.find((Fossilize::Hash)info.pStages[frag_index].module); + + if ((!vert_shader && !mesh_shader) || !frag_shader) + { + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return false; + } + + Program *ret; + if (mesh_shader) + { + ret = request_program(task_shader, mesh_shader, frag_shader, + reinterpret_cast(info.layout)); + } + else + { + ret = request_program(vert_shader, frag_shader, + reinterpret_cast(info.layout)); + } + + if (ret) + { + // The layout is dummy, resolve it here. + info.layout = ret->get_pipeline_layout()->get_layout(); + + // Resolve shader modules. + if (vert_index >= 0) + const_cast(info.pStages)[vert_index].module = vert_shader->get_module(); + if (task_index >= 0) + const_cast(info.pStages)[task_index].module = task_shader->get_module(); + if (mesh_index >= 0) + const_cast(info.pStages)[mesh_index].module = mesh_shader->get_module(); + const_cast(info.pStages)[frag_index].module = frag_shader->get_module(); + } + + if (!ret || !replayer_state->feature_filter->graphics_pipeline_is_supported(&info)) + { + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return true; + } + +#ifdef VULKAN_DEBUG + LOGI("Replaying graphics pipeline.\n"); +#endif + + uint32_t dynamic_state = 0; + if (info.pDynamicState) + { + for (uint32_t i = 0; i < info.pDynamicState->dynamicStateCount; i++) + { + switch (info.pDynamicState->pDynamicStates[i]) + { + case VK_DYNAMIC_STATE_VIEWPORT: + dynamic_state |= COMMAND_BUFFER_DIRTY_VIEWPORT_BIT; + break; + + case VK_DYNAMIC_STATE_SCISSOR: + dynamic_state |= COMMAND_BUFFER_DIRTY_SCISSOR_BIT; + break; + + case VK_DYNAMIC_STATE_DEPTH_BIAS: + dynamic_state |= COMMAND_BUFFER_DIRTY_DEPTH_BIAS_BIT; + break; + + case VK_DYNAMIC_STATE_STENCIL_REFERENCE: + case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK: + case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK: + dynamic_state |= COMMAND_BUFFER_DIRTY_STENCIL_REFERENCE_BIT; + break; + + default: + break; + } + } + } + + VkPipeline pipeline = VK_NULL_HANDLE; + VkResult res = table->vkCreateGraphicsPipelines(device, pipeline_cache, 1, &info, nullptr, &pipeline); + if (res != VK_SUCCESS) + { + LOGE("Failed to create graphics pipeline!\n"); + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return false; + } + + auto actual_pipe = ret->add_pipeline(hash, { pipeline, dynamic_state }).pipeline; + if (actual_pipe != pipeline) + table->vkDestroyPipeline(device, pipeline, nullptr); + + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return actual_pipe != VK_NULL_HANDLE; +} + +bool Device::fossilize_replay_compute_pipeline(Fossilize::Hash hash, VkComputePipelineCreateInfo &info) +{ + // Find the Shader* associated with this VkShaderModule and just use that. + auto *shader = shaders.find((Fossilize::Hash)info.stage.module); + if (!shader) + { + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return false; + } + + auto *ret = request_program(shader, reinterpret_cast(info.layout)); + + if (ret) + { + // The layout is dummy, resolve it here. + info.layout = ret->get_pipeline_layout()->get_layout(); + + // Resolve shader module. + info.stage.module = shader->get_module(); + } + + if (!ret || !replayer_state->feature_filter->compute_pipeline_is_supported(&info)) + { + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return true; + } + +#ifdef VULKAN_DEBUG + LOGI("Replaying compute pipeline.\n"); +#endif + VkPipeline pipeline = VK_NULL_HANDLE; + VkResult res = table->vkCreateComputePipelines(device, pipeline_cache, 1, &info, nullptr, &pipeline); + if (res != VK_SUCCESS) + { + LOGE("Failed to create compute pipeline!\n"); + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return false; + } + + auto actual_pipe = ret->add_pipeline(hash, { pipeline, 0 }).pipeline; + if (actual_pipe != pipeline) + table->vkDestroyPipeline(device, pipeline, nullptr); + + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return actual_pipe != VK_NULL_HANDLE; +} + +bool Device::enqueue_create_graphics_pipeline(Fossilize::Hash hash, + const VkGraphicsPipelineCreateInfo *create_info, + VkPipeline *pipeline) +{ + for (uint32_t i = 0; i < create_info->stageCount; i++) + { + if (create_info->pStages[i].module == VK_NULL_HANDLE) + { + *pipeline = VK_NULL_HANDLE; + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return true; + } + } + + if (create_info->renderPass == VK_NULL_HANDLE || create_info->layout == VK_NULL_HANDLE) + { + *pipeline = VK_NULL_HANDLE; + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return true; + } + + // The lifetime of create_info is tied to the replayer itself. + replayer_state->graphics_pipelines.emplace_back(hash, const_cast(create_info)); + return true; +} + +bool Device::enqueue_create_compute_pipeline(Fossilize::Hash hash, + const VkComputePipelineCreateInfo *create_info, + VkPipeline *pipeline) +{ + if (create_info->stage.module == VK_NULL_HANDLE || create_info->layout == VK_NULL_HANDLE) + { + *pipeline = VK_NULL_HANDLE; + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + return true; + } + + // The lifetime of create_info is tied to the replayer itself. + replayer_state->compute_pipelines.emplace_back(hash, const_cast(create_info)); + return true; +} + +bool Device::enqueue_create_render_pass(Fossilize::Hash, + const VkRenderPassCreateInfo *, + VkRenderPass *) +{ + return false; +} + +bool Device::enqueue_create_render_pass2(Fossilize::Hash hash, const VkRenderPassCreateInfo2 *create_info, VkRenderPass *render_pass) +{ + if (!replayer_state->feature_filter->render_pass2_is_supported(create_info)) + { + render_pass = VK_NULL_HANDLE; + return true; + } + + auto *pass = render_passes.emplace_yield(hash, hash, this, *create_info); + *render_pass = pass->get_render_pass(); + return true; +} + +bool Device::enqueue_create_raytracing_pipeline( + Fossilize::Hash, const VkRayTracingPipelineCreateInfoKHR *, VkPipeline *) +{ + return false; +} + +bool Device::enqueue_create_sampler(Fossilize::Hash hash, const VkSamplerCreateInfo *info, VkSampler *vk_sampler) +{ + if (!replayer_state->feature_filter->sampler_is_supported(info)) + { + *vk_sampler = VK_NULL_HANDLE; + return false; + } + + const ImmutableYcbcrConversion *ycbcr = nullptr; + + if (info->pNext) + { + // YCbCr conversion create infos are replayed inline in Fossilize. + const auto *ycbcr_info = static_cast(info->pNext); + if (ycbcr_info && ycbcr_info->sType == VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO) + ycbcr = request_immutable_ycbcr_conversion(*ycbcr_info); + } + + auto sampler_info = Sampler::fill_sampler_info(*info); + auto *samp = immutable_samplers.emplace_yield(hash, hash, this, sampler_info, ycbcr); + *vk_sampler = reinterpret_cast(samp); + return true; +} + +bool Device::enqueue_create_descriptor_set_layout(Fossilize::Hash, const VkDescriptorSetLayoutCreateInfo *info, VkDescriptorSetLayout *layout) +{ + if (!replayer_state->feature_filter->descriptor_set_layout_is_supported(info)) + { + *layout = VK_NULL_HANDLE; + return true; + } + + auto &alloc = replayer_state->base_replayer.get_allocator(); + auto *sampler_bank = alloc.allocate_n_cleared(VULKAN_NUM_BINDINGS); + for (uint32_t i = 0; i < info->bindingCount; i++) + if (info->pBindings[i].pImmutableSamplers && info->pBindings[i].pImmutableSamplers[0] != VK_NULL_HANDLE) + sampler_bank[i] = reinterpret_cast(info->pBindings[i].pImmutableSamplers[0]); + + *layout = reinterpret_cast(sampler_bank); + return true; +} + +bool Device::enqueue_create_pipeline_layout(Fossilize::Hash, const VkPipelineLayoutCreateInfo *info, VkPipelineLayout *layout) +{ + if (!replayer_state->feature_filter->pipeline_layout_is_supported(info)) + { + *layout = VK_NULL_HANDLE; + return true; + } + + auto &alloc = replayer_state->base_replayer.get_allocator(); + auto *sampler_bank = alloc.allocate_cleared(); + for (uint32_t i = 0; i < info->setLayoutCount; i++) + { + memcpy(sampler_bank->samplers[i], + reinterpret_cast(info->pSetLayouts[i]), + sizeof(sampler_bank->samplers[i])); + } + + *layout = reinterpret_cast(sampler_bank); + return true; +} + +void Device::promote_readonly_db_from_assets() const +{ + auto *fs = get_system_handles().filesystem; + + // We might want to be able to ship a Fossilize database so that we can prime all PSOs up front. + Granite::FileStat s_cache = {}; + Granite::FileStat s_assets = {}; + bool cache_exists = fs->stat("cache://fossilize/db.foz", s_cache) && s_cache.type == Granite::PathType::File; + bool assets_exists = fs->stat("assets://fossilize/db.foz", s_assets) && s_assets.type == Granite::PathType::File; + + bool overwrite = false; + if (assets_exists) + { + if (!cache_exists) + { + overwrite = true; + } + else + { + // If an application updates the assets Foz DB for shipping updates, throw the old one away. + std::string cache_iter, asset_iter; + if (!fs->read_file_to_string("cache://fossilize/iteration", cache_iter) || + !fs->read_file_to_string("assets://fossilize/iteration", asset_iter) || + cache_iter != asset_iter) + { + overwrite = true; + } + } + } + + if (overwrite) + { + // The Fossilize DB needs to work with a proper file system. The assets folder is highly virtual by nature. + auto ro = fs->open_readonly_mapping("assets://fossilize/db.foz"); + if (!ro) + { + LOGE("Failed to open readonly Fossilize archive.\n"); + return; + } + + if (!fs->write_buffer_to_file("cache://fossilize/db.foz", ro->data(), ro->get_size())) + { + LOGE("Failed to write to cache://fossilize/db.foz"); + return; + } + + std::string asset_iter; + if (fs->read_file_to_string("assets://fossilize/iteration", asset_iter)) + fs->write_string_to_file("cache://fossilize/iteration", asset_iter); + } +} + +void Device::replay_tag_simple(Fossilize::ResourceTag tag) +{ + size_t count = 0; + replayer_state->db->get_hash_list_for_resource_tag(tag, &count, nullptr); + std::vector hashes(count); + replayer_state->db->get_hash_list_for_resource_tag(tag, &count, hashes.data()); + + Util::DynamicArray buffer; + auto &db = *replayer_state->db; + size_t size = 0; + + for (auto hash : hashes) + { + if (!db.read_entry(tag, hash, &size, nullptr, 0)) + continue; + buffer.reserve(size); + if (!db.read_entry(tag, hash, &size, buffer.data(), 0)) + continue; + if (!replayer_state->base_replayer.parse(*this, &db, buffer.data(), size)) + LOGW("Failed to replay object.\n"); + } +} + +void Device::promote_write_cache_to_readonly() const +{ + auto *fs = get_system_handles().filesystem; + auto list = fs->list("cache://fossilize"); + std::vector merge_paths_str; + std::vector del_paths_str; + std::vector merge_paths; + merge_paths_str.reserve(list.size()); + merge_paths.reserve(list.size()); + bool have_read_only = false; + + for (auto &l : list) + { + if (l.type != Granite::PathType::File || l.path == "fossilize/iteration" || l.path == "fossilize/TOUCH") + continue; + else if (l.path == "fossilize/db.foz") + { + have_read_only = true; + LOGI("Fossilize: Found read-only cache.\n"); + continue; + } + else if (l.path == "fossilize/merge.foz") + { + del_paths_str.emplace_back("cache://fossilize/merge.foz"); + continue; + } + + auto p = "cache://" + l.path; + merge_paths_str.push_back(p); + del_paths_str.push_back(p); + LOGI("Fossilize: Found write cache: %s.\n", merge_paths_str.back().c_str()); + } + + if (!have_read_only && merge_paths_str.size() == 1) + { + LOGI("Fossilize: No read-cache and one write cache. Replacing directly.\n"); + if (fs->move_replace("cache://fossilize/db.foz", merge_paths_str.front())) + LOGI("Fossilize: Promoted write-only cache.\n"); + else + LOGW("Fossilize: Failed to promote write-only cache.\n"); + } + else if (!merge_paths_str.empty()) + { + auto append_path = fs->get_filesystem_path("cache://fossilize/merge.foz"); + bool should_merge; + + // Ensure that we have taken exclusive write access to this file. + // Only one process will be able to pass this test until the file is removed. + if (have_read_only) + { + LOGI("Fossilize: Attempting to merge caches.\n"); + should_merge = fs->move_yield("cache://fossilize/merge.foz", "cache://fossilize/db.foz"); + } + else + { + auto db = std::unique_ptr( + Fossilize::create_stream_archive_database(append_path.c_str(), Fossilize::DatabaseMode::ExclusiveOverWrite)); + should_merge = db && db->prepare(); + } + + if (should_merge) + { + for (auto &str : merge_paths_str) + { + str = fs->get_filesystem_path(str); + merge_paths.push_back(str.c_str()); + } + + if (Fossilize::merge_concurrent_databases(append_path.c_str(), merge_paths.data(), merge_paths.size())) + { + if (fs->move_replace("cache://fossilize/db.foz", "cache://fossilize/merge.foz")) + LOGI("Fossilize: Successfully merged caches.\n"); + else + LOGW("Fossilize: Failed to replace existing read-only database.\n"); + } + else + LOGW("Fossilize: Failed to merge databases.\n"); + } + else + LOGW("Fossilize: Skipping merge due to unexpected error.\n"); + } + else + LOGI("Fossilize: No write only files, nothing to do.\n"); + + // Cleanup any stale write-only files. + // This can easily race against concurrent processes, so the cache will likely be destroyed by accident, + // but that's ok. Running multiple Granite processes concurrently like this is questionable at best. + for (auto &str : del_paths_str) + fs->remove(str); +} + +void Device::init_pipeline_state(const Fossilize::FeatureFilter &filter, + const VkPhysicalDeviceFeatures2 &pdf2, + const VkApplicationInfo &application_info) +{ + if (!get_system_handles().filesystem) + { + LOGW("Filesystem system handle must be provided to use Fossilize.\n"); + return; + } + + if (!get_system_handles().thread_group) + { + LOGW("Thread group system handle must be provided to use Fossilize.\n"); + return; + } + + replayer_state.reset(new ReplayerState); + recorder_state.reset(new RecorderState); + + if (!recorder_state->recorder.record_application_info(application_info)) + LOGW("Failed to record application info.\n"); + if (!recorder_state->recorder.record_physical_device_features(&pdf2)) + LOGW("Failed to record PDF2.\n"); + + lock.read_only_cache.lock_read(); + + // Only non-const usage is to register modules, and that is atomic within the implementation. + replayer_state->feature_filter = const_cast(&filter); + + auto *group = get_system_handles().thread_group; + + auto shader_manager_task = group->create_task([this]() { + init_shader_manager_cache(); + }); + shader_manager_task->set_desc("shader-manager-init"); + + auto cache_maintenance_task = group->create_task([this]() { + // Ensure we create the Fossilize cache folder. + // Also creates a timestamp. + get_system_handles().filesystem->open("cache://fossilize/TOUCH", Granite::FileMode::WriteOnly); + replayer_state->progress.prepare.fetch_add(20, std::memory_order_release); + promote_write_cache_to_readonly(); + replayer_state->progress.prepare.fetch_add(50, std::memory_order_release); + promote_readonly_db_from_assets(); + replayer_state->progress.prepare.fetch_add(20, std::memory_order_release); + }); + cache_maintenance_task->set_desc("foz-cache-maintenance"); + + auto recorder_kick_task = group->create_task([this]() { + // Kick off recorder thread. + auto write_real_path = get_system_handles().filesystem->get_filesystem_path("cache://fossilize/db"); + if (!write_real_path.empty()) + { + recorder_state->db.reset(Fossilize::create_concurrent_database( + write_real_path.c_str(), Fossilize::DatabaseMode::Append, nullptr, 0)); + recorder_state->recorder.set_database_enable_application_feature_links(false); + recorder_state->recorder.init_recording_thread(recorder_state->db.get()); + } + recorder_state->recorder_ready.store(true, std::memory_order_release); + replayer_state->progress.prepare.fetch_add(10, std::memory_order_release); + }); + recorder_kick_task->set_desc("foz-recorder-kick"); + + group->add_dependency(*recorder_kick_task, *cache_maintenance_task); + + auto prepare_task = group->create_task([this]() { + auto *fs = get_system_handles().filesystem; + auto read_real_path = fs->get_filesystem_path("cache://fossilize/db.foz"); + if (read_real_path.empty()) + { + replayer_state->progress.modules.store(~0u, std::memory_order_release); + replayer_state->progress.pipelines.store(~0u, std::memory_order_release); + return; + } + + replayer_state->db.reset( + Fossilize::create_stream_archive_database(read_real_path.c_str(), Fossilize::DatabaseMode::ReadOnly)); + + if (replayer_state->db && !replayer_state->db->prepare()) + { + LOGW("Failed to prepare read-only cache.\n"); + replayer_state->db.reset(); + } + + if (replayer_state->db) + { + replay_tag_simple(Fossilize::RESOURCE_SAMPLER); + replay_tag_simple(Fossilize::RESOURCE_DESCRIPTOR_SET_LAYOUT); + replay_tag_simple(Fossilize::RESOURCE_PIPELINE_LAYOUT); + replay_tag_simple(Fossilize::RESOURCE_RENDER_PASS); + + size_t count = 0; + + replayer_state->db->get_hash_list_for_resource_tag(Fossilize::RESOURCE_SHADER_MODULE, &count, nullptr); + replayer_state->module_hashes.resize(count); + replayer_state->db->get_hash_list_for_resource_tag(Fossilize::RESOURCE_SHADER_MODULE, &count, + replayer_state->module_hashes.data()); + + replayer_state->db->get_hash_list_for_resource_tag(Fossilize::RESOURCE_GRAPHICS_PIPELINE, &count, nullptr); + replayer_state->graphics_hashes.resize(count); + replayer_state->db->get_hash_list_for_resource_tag(Fossilize::RESOURCE_GRAPHICS_PIPELINE, &count, + replayer_state->graphics_hashes.data()); + + replayer_state->db->get_hash_list_for_resource_tag(Fossilize::RESOURCE_COMPUTE_PIPELINE, &count, nullptr); + replayer_state->compute_hashes.resize(count); + replayer_state->db->get_hash_list_for_resource_tag(Fossilize::RESOURCE_COMPUTE_PIPELINE, &count, + replayer_state->compute_hashes.data()); + + replayer_state->progress.num_modules = replayer_state->module_hashes.size(); + replayer_state->progress.num_pipelines = + replayer_state->graphics_hashes.size() + replayer_state->compute_hashes.size(); + } + + if (replayer_state->progress.num_modules == 0) + replayer_state->progress.modules.store(~0u, std::memory_order_release); + if (replayer_state->progress.num_pipelines == 0) + replayer_state->progress.pipelines.store(~0u, std::memory_order_release); + }); + prepare_task->set_desc("foz-prepare"); + + group->add_dependency(*prepare_task, *recorder_kick_task); + + auto parse_modules_task = group->create_task(); + parse_modules_task->set_desc("foz-parse-modules"); + group->add_dependency(*parse_modules_task, *prepare_task); + group->add_dependency(*parse_modules_task, *shader_manager_task); + + for (unsigned i = 0; i < NumTasks; i++) + { + parse_modules_task->enqueue_task([this, i]() { + if (!replayer_state->db) + return; + + Fossilize::StateReplayer module_replayer; + Util::DynamicArray buffer; + auto &db = *replayer_state->db; + + size_t start = (i * replayer_state->module_hashes.size()) / NumTasks; + size_t end = ((i + 1) * replayer_state->module_hashes.size()) / NumTasks; + size_t size = 0; + + for (; start < end; start++) + { + auto hash = replayer_state->module_hashes[start]; + if (!db.read_entry(Fossilize::RESOURCE_SHADER_MODULE, hash, &size, nullptr, Fossilize::PAYLOAD_READ_CONCURRENT_BIT)) + continue; + buffer.reserve(size); + if (!db.read_entry(Fossilize::RESOURCE_SHADER_MODULE, hash, &size, buffer.data(), Fossilize::PAYLOAD_READ_CONCURRENT_BIT)) + continue; + + if (!module_replayer.parse(*this, &db, buffer.data(), size)) + { + replayer_state->progress.modules.fetch_add(1, std::memory_order_release); + LOGW("Failed to parse module.\n"); + } + } + }); + } + + auto parse_graphics_task = group->create_task([this]() { + if (!replayer_state->db) + return; + + auto &replayer = replayer_state->graphics_replayer; + replayer.copy_handle_references(replayer_state->base_replayer); + replayer.set_resolve_shader_module_handles(false); + + size_t size = 0; + auto &db = *replayer_state->db; + Util::DynamicArray buffer; + + for (auto hash : replayer_state->graphics_hashes) + { + if (!db.read_entry(Fossilize::RESOURCE_GRAPHICS_PIPELINE, hash, &size, nullptr, Fossilize::PAYLOAD_READ_CONCURRENT_BIT)) + continue; + buffer.reserve(size); + if (!db.read_entry(Fossilize::RESOURCE_GRAPHICS_PIPELINE, hash, &size, buffer.data(), Fossilize::PAYLOAD_READ_CONCURRENT_BIT)) + continue; + + if (!replayer.parse(*this, &db, buffer.data(), size)) + { + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + LOGW("Failed to parse graphics pipeline.\n"); + } + } + }); + parse_graphics_task->set_desc("foz-parse-graphics"); + group->add_dependency(*parse_graphics_task, *prepare_task); + + auto parse_compute_task = group->create_task([this]() { + if (!replayer_state->db) + return; + + auto &replayer = replayer_state->compute_replayer; + replayer.copy_handle_references(replayer_state->base_replayer); + replayer.set_resolve_shader_module_handles(false); + + size_t size = 0; + auto &db = *replayer_state->db; + Util::DynamicArray buffer; + for (auto hash : replayer_state->compute_hashes) + { + if (!db.read_entry(Fossilize::RESOURCE_COMPUTE_PIPELINE, hash, &size, nullptr, Fossilize::PAYLOAD_READ_CONCURRENT_BIT)) + continue; + buffer.reserve(size); + if (!db.read_entry(Fossilize::RESOURCE_COMPUTE_PIPELINE, hash, &size, buffer.data(), Fossilize::PAYLOAD_READ_CONCURRENT_BIT)) + continue; + + if (!replayer.parse(*this, &db, buffer.data(), size)) + { + replayer_state->progress.pipelines.fetch_add(1, std::memory_order_release); + LOGW("Failed to parse compute pipeline.\n"); + } + } + }); + parse_compute_task->set_desc("foz-parse-compute"); + group->add_dependency(*parse_compute_task, *prepare_task); + + auto compile_graphics_task = group->create_task(); + auto compile_compute_task = group->create_task(); + compile_graphics_task->set_desc("foz-compile-graphics"); + compile_compute_task->set_desc("foz-compile-compute"); + group->add_dependency(*compile_graphics_task, *parse_modules_task); + group->add_dependency(*compile_graphics_task, *parse_graphics_task); + group->add_dependency(*compile_compute_task, *parse_modules_task); + group->add_dependency(*compile_compute_task, *parse_compute_task); + for (unsigned i = 0; i < NumTasks; i++) + { + compile_graphics_task->enqueue_task([this, i]() { + size_t start = (i * replayer_state->graphics_pipelines.size()) / NumTasks; + size_t end = ((i + 1) * replayer_state->graphics_pipelines.size()) / NumTasks; + for (; start < end; start++) + { + auto &pipe = replayer_state->graphics_pipelines[start]; + fossilize_replay_graphics_pipeline(pipe.first, *pipe.second); + } + }); + + compile_compute_task->enqueue_task([this, i]() { + size_t start = (i * replayer_state->compute_pipelines.size()) / NumTasks; + size_t end = ((i + 1) * replayer_state->compute_pipelines.size()) / NumTasks; + for (; start < end; start++) + { + auto &pipe = replayer_state->compute_pipelines[start]; + fossilize_replay_compute_pipeline(pipe.first, *pipe.second); + } + }); + } + + replayer_state->complete = get_system_handles().thread_group->create_task([this]() { + LOGI("Fossilize replay completed!\n Modules: %zu\n Graphics: %zu\n Compute: %zu\n", + replayer_state->module_hashes.size(), + replayer_state->graphics_hashes.size(), + replayer_state->compute_hashes.size()); + lock.read_only_cache.unlock_read(); + const auto cleanup = [](Fossilize::StateReplayer &r) { + r.forget_handle_references(); + r.forget_pipeline_handle_references(); + r.get_allocator().reset(); + }; + cleanup(replayer_state->base_replayer); + cleanup(replayer_state->graphics_replayer); + cleanup(replayer_state->compute_replayer); + replayer_state->graphics_pipelines.clear(); + replayer_state->compute_pipelines.clear(); + replayer_state->module_hashes.clear(); + replayer_state->graphics_hashes.clear(); + replayer_state->compute_hashes.clear(); + replayer_state->db.reset(); + }); + replayer_state->complete->set_desc("foz-replay-complete"); + group->add_dependency(*replayer_state->complete, *compile_graphics_task); + group->add_dependency(*replayer_state->complete, *compile_compute_task); + replayer_state->complete->flush(); + + replayer_state->module_ready = std::move(parse_modules_task); + replayer_state->module_ready->flush(); + + auto compile_task = group->create_task(); + group->add_dependency(*compile_task, *compile_graphics_task); + group->add_dependency(*compile_task, *compile_compute_task); + replayer_state->pipeline_ready = std::move(compile_task); + replayer_state->pipeline_ready->flush(); +} + +void Device::flush_pipeline_state() +{ + if (replayer_state) + { + if (replayer_state->complete) + replayer_state->complete->wait(); + replayer_state.reset(); + } + + if (recorder_state) + { + recorder_state->recorder.tear_down_recording_thread(); + recorder_state.reset(); + } +} + +unsigned Device::query_initialization_progress(InitializationStage status) const +{ + if (!replayer_state) + return 100; + + switch (status) + { + case InitializationStage::CacheMaintenance: + return replayer_state->progress.prepare.load(std::memory_order_acquire); + + case InitializationStage::ShaderModules: + { + unsigned done = replayer_state->progress.modules.load(std::memory_order_acquire); + // Avoid 0/0. + if (!done) + return 0; + else if (done == ~0u) + return 100; + return (100u * done) / replayer_state->progress.num_modules; + } + + case InitializationStage::Pipelines: + { + unsigned done = replayer_state->progress.pipelines.load(std::memory_order_acquire); + // Avoid 0/0. + if (!done) + return 0; + else if (done == ~0u) + return 100; + return (100u * done) / replayer_state->progress.num_pipelines; + } + + default: + break; + } + + return 0; +} + +void Device::block_until_shader_module_ready() +{ + if (!replayer_state || !replayer_state->module_ready) + return; + replayer_state->module_ready->wait(); +} + +void Device::block_until_pipeline_ready() +{ + if (!replayer_state || !replayer_state->pipeline_ready) + return; + replayer_state->pipeline_ready->wait(); +} + +void Device::wait_shader_caches() +{ + block_until_pipeline_ready(); +} +} diff --git a/vulkan/device_fossilize.hpp b/vulkan/device_fossilize.hpp new file mode 100644 index 00000000..79d87528 --- /dev/null +++ b/vulkan/device_fossilize.hpp @@ -0,0 +1,70 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "device.hpp" +#include "thread_group.hpp" + +namespace Vulkan +{ +struct Device::RecorderState +{ + RecorderState(); + ~RecorderState(); + + std::unique_ptr db; + Fossilize::StateRecorder recorder; + std::atomic_bool recorder_ready; +}; + +static constexpr unsigned NumTasks = 4; +struct Device::ReplayerState +{ + ReplayerState(); + ~ReplayerState(); + + std::vector module_hashes; + std::vector graphics_hashes; + std::vector compute_hashes; + + Fossilize::StateReplayer base_replayer; + Fossilize::StateReplayer graphics_replayer; + Fossilize::StateReplayer compute_replayer; + Fossilize::FeatureFilter *feature_filter = nullptr; + std::unique_ptr db; + Granite::TaskGroupHandle complete; + Granite::TaskGroupHandle module_ready; + Granite::TaskGroupHandle pipeline_ready; + std::vector> graphics_pipelines; + std::vector> compute_pipelines; + + struct + { + std::atomic_uint32_t pipelines; + std::atomic_uint32_t modules; + std::atomic_uint32_t prepare; + uint32_t num_pipelines = 0; + uint32_t num_modules = 0; + } progress; +}; +} diff --git a/vulkan/event_manager.cpp b/vulkan/event_manager.cpp new file mode 100644 index 00000000..8247c924 --- /dev/null +++ b/vulkan/event_manager.cpp @@ -0,0 +1,72 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "event_manager.hpp" +#include "device.hpp" + +namespace Vulkan +{ +EventManager::~EventManager() +{ + if (!workaround) + for (auto &event : events) + table->vkDestroyEvent(device->get_device(), event, nullptr); +} + +void EventManager::recycle(VkEvent event) +{ + if (!workaround && event != VK_NULL_HANDLE) + { + table->vkResetEvent(device->get_device(), event); + events.push_back(event); + } +} + +VkEvent EventManager::request_cleared_event() +{ + if (workaround) + { + // Can't use reinterpret_cast because of MSVC. + return (VkEvent) ++workaround_counter; + } + else if (events.empty()) + { + VkEvent event; + VkEventCreateInfo info = { VK_STRUCTURE_TYPE_EVENT_CREATE_INFO }; + table->vkCreateEvent(device->get_device(), &info, nullptr, &event); + return event; + } + else + { + auto event = events.back(); + events.pop_back(); + return event; + } +} + +void EventManager::init(Device *device_) +{ + device = device_; + table = &device->get_device_table(); + workaround = device_->get_workarounds().emulate_event_as_pipeline_barrier; +} +} \ No newline at end of file diff --git a/vulkan/event_manager.hpp b/vulkan/event_manager.hpp new file mode 100644 index 00000000..42bfd348 --- /dev/null +++ b/vulkan/event_manager.hpp @@ -0,0 +1,47 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include + +namespace Vulkan +{ +class Device; +class EventManager +{ +public: + void init(Device *device); + ~EventManager(); + + VkEvent request_cleared_event(); + void recycle(VkEvent event); + +private: + Device *device = nullptr; + const VolkDeviceTable *table = nullptr; + std::vector events; + uint64_t workaround_counter = 0; + bool workaround = false; +}; +} \ No newline at end of file diff --git a/vulkan/fence.cpp b/vulkan/fence.cpp new file mode 100644 index 00000000..fcf2d91f --- /dev/null +++ b/vulkan/fence.cpp @@ -0,0 +1,124 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "fence.hpp" +#include "device.hpp" + +namespace Vulkan +{ +FenceHolder::~FenceHolder() +{ + if (fence != VK_NULL_HANDLE) + { + if (internal_sync) + device->reset_fence_nolock(fence, observed_wait); + else + device->reset_fence(fence, observed_wait); + } +} + +const VkFence &FenceHolder::get_fence() const +{ + return fence; +} + +void FenceHolder::wait() +{ + auto &table = device->get_device_table(); + + // Waiting for the same VkFence in parallel is not allowed, and there seems to be some shenanigans on Intel + // when waiting for a timeline semaphore in parallel with same value as well. + std::lock_guard holder{lock}; + + if (observed_wait) + return; + + if (timeline_value != 0) + { + VK_ASSERT(timeline_semaphore); + VkSemaphoreWaitInfo info = { VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO }; + info.semaphoreCount = 1; + info.pSemaphores = &timeline_semaphore; + info.pValues = &timeline_value; + if (table.vkWaitSemaphores(device->get_device(), &info, UINT64_MAX) != VK_SUCCESS) + LOGE("Failed to wait for timeline semaphore!\n"); + else + observed_wait = true; + } + else + { + if (table.vkWaitForFences(device->get_device(), 1, &fence, VK_TRUE, UINT64_MAX) != VK_SUCCESS) + LOGE("Failed to wait for fence!\n"); + else + observed_wait = true; + } +} + +bool FenceHolder::wait_timeout(uint64_t timeout) +{ + bool ret; + auto &table = device->get_device_table(); + + // Waiting for the same VkFence in parallel is not allowed, and there seems to be some shenanigans on Intel + // when waiting for a timeline semaphore in parallel with same value as well. + std::lock_guard holder{lock}; + + if (observed_wait) + return true; + + if (timeline_value != 0) + { + VK_ASSERT(timeline_semaphore); + + if (timeout == 0) + { + uint64_t current_value = 0; + ret = table.vkGetSemaphoreCounterValue(device->get_device(), timeline_semaphore, ¤t_value) == VK_SUCCESS && + current_value >= timeline_value; + } + else + { + VkSemaphoreWaitInfo info = {VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO}; + info.semaphoreCount = 1; + info.pSemaphores = &timeline_semaphore; + info.pValues = &timeline_value; + ret = table.vkWaitSemaphores(device->get_device(), &info, timeout) == VK_SUCCESS; + } + } + else + { + if (timeout == 0) + ret = table.vkGetFenceStatus(device->get_device(), fence) == VK_SUCCESS; + else + ret = table.vkWaitForFences(device->get_device(), 1, &fence, VK_TRUE, timeout) == VK_SUCCESS; + } + + if (ret) + observed_wait = true; + return ret; +} + +void FenceHolderDeleter::operator()(Vulkan::FenceHolder *fence) +{ + fence->device->handle_pool.fences.free(fence); +} +} diff --git a/vulkan/fence.hpp b/vulkan/fence.hpp new file mode 100644 index 00000000..ef06142e --- /dev/null +++ b/vulkan/fence.hpp @@ -0,0 +1,81 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_common.hpp" +#include "vulkan_headers.hpp" +#include "object_pool.hpp" +#include "cookie.hpp" +#include + +namespace Vulkan +{ +class Device; + +class FenceHolder; +struct FenceHolderDeleter +{ + void operator()(FenceHolder *fence); +}; + +class FenceHolder : public Util::IntrusivePtrEnabled, public InternalSyncEnabled +{ +public: + friend struct FenceHolderDeleter; + friend class WSI; + + ~FenceHolder(); + void wait(); + bool wait_timeout(uint64_t nsec); + +private: + friend class Util::ObjectPool; + FenceHolder(Device *device_, VkFence fence_) + : device(device_), + fence(fence_), + timeline_semaphore(VK_NULL_HANDLE), + timeline_value(0) + { + } + + FenceHolder(Device *device_, uint64_t value, VkSemaphore timeline_semaphore_) + : device(device_), + fence(VK_NULL_HANDLE), + timeline_semaphore(timeline_semaphore_), + timeline_value(value) + { + VK_ASSERT(value > 0); + } + + const VkFence &get_fence() const; + + Device *device; + VkFence fence; + VkSemaphore timeline_semaphore; + uint64_t timeline_value; + bool observed_wait = false; + std::mutex lock; +}; + +using Fence = Util::IntrusivePtr; +} diff --git a/vulkan/fence_manager.cpp b/vulkan/fence_manager.cpp new file mode 100644 index 00000000..8610f5b4 --- /dev/null +++ b/vulkan/fence_manager.cpp @@ -0,0 +1,61 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "fence_manager.hpp" +#include "device.hpp" + +namespace Vulkan +{ +void FenceManager::init(Device *device_) +{ + device = device_; + table = &device->get_device_table(); +} + +VkFence FenceManager::request_cleared_fence() +{ + if (!fences.empty()) + { + auto ret = fences.back(); + fences.pop_back(); + return ret; + } + else + { + VkFence fence; + VkFenceCreateInfo info = { VK_STRUCTURE_TYPE_FENCE_CREATE_INFO }; + table->vkCreateFence(device->get_device(), &info, nullptr, &fence); + return fence; + } +} + +void FenceManager::recycle_fence(VkFence fence) +{ + fences.push_back(fence); +} + +FenceManager::~FenceManager() +{ + for (auto &fence : fences) + table->vkDestroyFence(device->get_device(), fence, nullptr); +} +} diff --git a/vulkan/fence_manager.hpp b/vulkan/fence_manager.hpp new file mode 100644 index 00000000..f9b32cbf --- /dev/null +++ b/vulkan/fence_manager.hpp @@ -0,0 +1,45 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include + +namespace Vulkan +{ +class Device; +class FenceManager +{ +public: + void init(Device *device); + ~FenceManager(); + + VkFence request_cleared_fence(); + void recycle_fence(VkFence fence); + +private: + Device *device = nullptr; + const VolkDeviceTable *table = nullptr; + std::vector fences; +}; +} diff --git a/vulkan/format.hpp b/vulkan/format.hpp new file mode 100644 index 00000000..d159a6a9 --- /dev/null +++ b/vulkan/format.hpp @@ -0,0 +1,386 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include "texture/texture_format.hpp" + +namespace Vulkan +{ +enum class FormatCompressionType +{ + Uncompressed, + BC, + ETC, + ASTC +}; + +static inline FormatCompressionType format_compression_type(VkFormat format) +{ + switch (format) + { + case VK_FORMAT_BC1_RGBA_SRGB_BLOCK: + case VK_FORMAT_BC1_RGBA_UNORM_BLOCK: + case VK_FORMAT_BC1_RGB_SRGB_BLOCK: + case VK_FORMAT_BC1_RGB_UNORM_BLOCK: + case VK_FORMAT_BC2_SRGB_BLOCK: + case VK_FORMAT_BC2_UNORM_BLOCK: + case VK_FORMAT_BC3_SRGB_BLOCK: + case VK_FORMAT_BC3_UNORM_BLOCK: + case VK_FORMAT_BC4_UNORM_BLOCK: + case VK_FORMAT_BC4_SNORM_BLOCK: + case VK_FORMAT_BC5_UNORM_BLOCK: + case VK_FORMAT_BC5_SNORM_BLOCK: + case VK_FORMAT_BC6H_SFLOAT_BLOCK: + case VK_FORMAT_BC6H_UFLOAT_BLOCK: + case VK_FORMAT_BC7_SRGB_BLOCK: + case VK_FORMAT_BC7_UNORM_BLOCK: + return FormatCompressionType::BC; + + case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: + case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK: + case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: + case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK: + case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK: + case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: + case VK_FORMAT_EAC_R11G11_SNORM_BLOCK: + case VK_FORMAT_EAC_R11G11_UNORM_BLOCK: + case VK_FORMAT_EAC_R11_SNORM_BLOCK: + case VK_FORMAT_EAC_R11_UNORM_BLOCK: + return FormatCompressionType::ETC; + +#define astc_fmt(w, h) \ + case VK_FORMAT_ASTC_##w##x##h##_UNORM_BLOCK: \ + case VK_FORMAT_ASTC_##w##x##h##_SRGB_BLOCK: \ + case VK_FORMAT_ASTC_##w##x##h##_SFLOAT_BLOCK_EXT + astc_fmt(4, 4): + astc_fmt(5, 4): + astc_fmt(5, 5): + astc_fmt(6, 5): + astc_fmt(6, 6): + astc_fmt(8, 5): + astc_fmt(8, 6): + astc_fmt(8, 8): + astc_fmt(10, 5): + astc_fmt(10, 6): + astc_fmt(10, 8): + astc_fmt(10, 10): + astc_fmt(12, 10): + astc_fmt(12, 12): + return FormatCompressionType::ASTC; +#undef astc_fmt + + default: + return FormatCompressionType::Uncompressed; + } +} + +static inline bool format_is_compressed_hdr(VkFormat format) +{ + switch (format) + { +#define astc_fmt(w, h) case VK_FORMAT_ASTC_##w##x##h##_SFLOAT_BLOCK_EXT + astc_fmt(4, 4): + astc_fmt(5, 4): + astc_fmt(5, 5): + astc_fmt(6, 5): + astc_fmt(6, 6): + astc_fmt(8, 5): + astc_fmt(8, 6): + astc_fmt(8, 8): + astc_fmt(10, 5): + astc_fmt(10, 6): + astc_fmt(10, 8): + astc_fmt(10, 10): + astc_fmt(12, 10): + astc_fmt(12, 12): +#undef astc_fmt + return true; + + case VK_FORMAT_BC6H_SFLOAT_BLOCK: + case VK_FORMAT_BC6H_UFLOAT_BLOCK: + return true; + + default: + return false; + } +} + +static inline bool format_is_srgb(VkFormat format) +{ + switch (format) + { + case VK_FORMAT_A8B8G8R8_SRGB_PACK32: + case VK_FORMAT_R8G8B8A8_SRGB: + case VK_FORMAT_B8G8R8A8_SRGB: + case VK_FORMAT_R8_SRGB: + case VK_FORMAT_R8G8_SRGB: + case VK_FORMAT_R8G8B8_SRGB: + case VK_FORMAT_B8G8R8_SRGB: + case VK_FORMAT_BC1_RGB_SRGB_BLOCK: + case VK_FORMAT_BC1_RGBA_SRGB_BLOCK: + case VK_FORMAT_BC2_SRGB_BLOCK: + case VK_FORMAT_BC3_SRGB_BLOCK: + case VK_FORMAT_BC7_SRGB_BLOCK: + case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK: + case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: + case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: + case VK_FORMAT_ASTC_4x4_SRGB_BLOCK: + case VK_FORMAT_ASTC_5x4_SRGB_BLOCK: + case VK_FORMAT_ASTC_5x5_SRGB_BLOCK: + case VK_FORMAT_ASTC_6x5_SRGB_BLOCK: + case VK_FORMAT_ASTC_6x6_SRGB_BLOCK: + case VK_FORMAT_ASTC_8x5_SRGB_BLOCK: + case VK_FORMAT_ASTC_8x6_SRGB_BLOCK: + case VK_FORMAT_ASTC_8x8_SRGB_BLOCK: + case VK_FORMAT_ASTC_10x5_SRGB_BLOCK: + case VK_FORMAT_ASTC_10x6_SRGB_BLOCK: + case VK_FORMAT_ASTC_10x8_SRGB_BLOCK: + case VK_FORMAT_ASTC_10x10_SRGB_BLOCK: + case VK_FORMAT_ASTC_12x10_SRGB_BLOCK: + case VK_FORMAT_ASTC_12x12_SRGB_BLOCK: + return true; + + default: + return false; + } +} + +static inline bool format_has_depth_aspect(VkFormat format) +{ + switch (format) + { + case VK_FORMAT_D16_UNORM: + case VK_FORMAT_D16_UNORM_S8_UINT: + case VK_FORMAT_D24_UNORM_S8_UINT: + case VK_FORMAT_D32_SFLOAT: + case VK_FORMAT_X8_D24_UNORM_PACK32: + case VK_FORMAT_D32_SFLOAT_S8_UINT: + return true; + + default: + return false; + } +} + +static inline bool format_has_stencil_aspect(VkFormat format) +{ + switch (format) + { + case VK_FORMAT_D16_UNORM_S8_UINT: + case VK_FORMAT_D24_UNORM_S8_UINT: + case VK_FORMAT_D32_SFLOAT_S8_UINT: + case VK_FORMAT_S8_UINT: + return true; + + default: + return false; + } +} + +static inline bool format_has_depth_or_stencil_aspect(VkFormat format) +{ + return format_has_depth_aspect(format) || format_has_stencil_aspect(format); +} + +static inline VkImageAspectFlags format_to_aspect_mask(VkFormat format) +{ + switch (format) + { + case VK_FORMAT_UNDEFINED: + return 0; + + case VK_FORMAT_S8_UINT: + return VK_IMAGE_ASPECT_STENCIL_BIT; + + case VK_FORMAT_D16_UNORM_S8_UINT: + case VK_FORMAT_D24_UNORM_S8_UINT: + case VK_FORMAT_D32_SFLOAT_S8_UINT: + return VK_IMAGE_ASPECT_STENCIL_BIT | VK_IMAGE_ASPECT_DEPTH_BIT; + + case VK_FORMAT_D16_UNORM: + case VK_FORMAT_D32_SFLOAT: + case VK_FORMAT_X8_D24_UNORM_PACK32: + return VK_IMAGE_ASPECT_DEPTH_BIT; + + default: + return VK_IMAGE_ASPECT_COLOR_BIT; + } +} + +static inline void format_align_dim(VkFormat format, uint32_t &width, uint32_t &height) +{ + uint32_t align_width, align_height; + TextureFormatLayout::format_block_dim(format, align_width, align_height); + width = ((width + align_width - 1) / align_width) * align_width; + height = ((height + align_height - 1) / align_height) * align_height; +} + +static inline void format_num_blocks(VkFormat format, uint32_t &width, uint32_t &height) +{ + uint32_t align_width, align_height; + TextureFormatLayout::format_block_dim(format, align_width, align_height); + width = (width + align_width - 1) / align_width; + height = (height + align_height - 1) / align_height; +} + +static inline VkDeviceSize format_get_layer_size(VkFormat format, VkImageAspectFlags aspect, unsigned width, unsigned height, unsigned depth) +{ + uint32_t blocks_x = width; + uint32_t blocks_y = height; + format_num_blocks(format, blocks_x, blocks_y); + format_align_dim(format, width, height); + + VkDeviceSize size = VkDeviceSize(TextureFormatLayout::format_block_size(format, aspect)) * depth * blocks_x * blocks_y; + return size; +} + +static inline unsigned format_ycbcr_num_planes(VkFormat format) +{ + switch (format) + { + case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM: + case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM: + case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM: + case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM: + case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM: + case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM: + case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16: + case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16: + case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16: + case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16: + case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16: + case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16: + return 3; + + case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: + case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM: + case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM: + case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM: + case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16: + case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16: + case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16: + case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16: + return 2; + + default: + return 1; + } +} + +static inline void format_ycbcr_downsample_dimensions(VkFormat format, VkImageAspectFlags aspect, uint32_t &width, uint32_t &height) +{ + if (aspect == VK_IMAGE_ASPECT_PLANE_0_BIT) + return; + + switch (format) + { +#define fmt(x, sub0, sub1) \ + case VK_FORMAT_##x: \ + width >>= sub0; \ + height >>= sub1; \ + break + + fmt(G8_B8_R8_3PLANE_420_UNORM, 1, 1); + fmt(G8_B8R8_2PLANE_420_UNORM, 1, 1); + fmt(G8_B8_R8_3PLANE_422_UNORM, 1, 0); + fmt(G8_B8R8_2PLANE_422_UNORM, 1, 0); + fmt(G8_B8_R8_3PLANE_444_UNORM, 0, 0); + + fmt(G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, 1, 1); + fmt(G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, 1, 0); + fmt(G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, 0, 0); + fmt(G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, 1, 1); + fmt(G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, 1, 0); + + fmt(G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, 1, 1); + fmt(G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, 1, 0); + fmt(G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, 0, 0); + fmt(G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, 1, 1); + fmt(G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, 1, 0); + + fmt(G16_B16_R16_3PLANE_420_UNORM, 1, 1); + fmt(G16_B16_R16_3PLANE_422_UNORM, 1, 0); + fmt(G16_B16_R16_3PLANE_444_UNORM, 0, 0); + fmt(G16_B16R16_2PLANE_420_UNORM, 1, 1); + fmt(G16_B16R16_2PLANE_422_UNORM, 1, 0); + + default: + break; + } +#undef fmt +} + +static inline bool format_supports_storage_image_read_write_without_format(VkFormat format) +{ + /* from https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-without-shader-storage-format */ + static const VkFormat supported_formats[] = + { + VK_FORMAT_R8G8B8A8_UNORM, + VK_FORMAT_R8G8B8A8_SNORM, + VK_FORMAT_R8G8B8A8_UINT, + VK_FORMAT_R8G8B8A8_SINT, + VK_FORMAT_R32_UINT, + VK_FORMAT_R32_SINT, + VK_FORMAT_R32_SFLOAT, + VK_FORMAT_R32G32_UINT, + VK_FORMAT_R32G32_SINT, + VK_FORMAT_R32G32_SFLOAT, + VK_FORMAT_R32G32B32A32_UINT, + VK_FORMAT_R32G32B32A32_SINT, + VK_FORMAT_R32G32B32A32_SFLOAT, + VK_FORMAT_R16G16B16A16_UINT, + VK_FORMAT_R16G16B16A16_SINT, + VK_FORMAT_R16G16B16A16_SFLOAT, + VK_FORMAT_R16G16_SFLOAT, + VK_FORMAT_B10G11R11_UFLOAT_PACK32, + VK_FORMAT_R16_SFLOAT, + VK_FORMAT_R16G16B16A16_UNORM, + VK_FORMAT_A2B10G10R10_UNORM_PACK32, + VK_FORMAT_R16G16_UNORM, + VK_FORMAT_R8G8_UNORM, + VK_FORMAT_R16_UNORM, + VK_FORMAT_R8_UNORM, + VK_FORMAT_R16G16B16A16_SNORM, + VK_FORMAT_R16G16_SNORM, + VK_FORMAT_R8G8_SNORM, + VK_FORMAT_R16_SNORM, + VK_FORMAT_R8_SNORM, + VK_FORMAT_R16G16_SINT, + VK_FORMAT_R8G8_SINT, + VK_FORMAT_R16_SINT, + VK_FORMAT_R8_SINT, + VK_FORMAT_A2B10G10R10_UINT_PACK32, + VK_FORMAT_R16G16_UINT, + VK_FORMAT_R8G8_UINT, + VK_FORMAT_R16_UINT, + VK_FORMAT_R8_UINT, + }; + + for (auto fmt : supported_formats) + if (fmt == format) + return true; + + return false; +} +} diff --git a/vulkan/image.cpp b/vulkan/image.cpp new file mode 100644 index 00000000..52fa6541 --- /dev/null +++ b/vulkan/image.cpp @@ -0,0 +1,244 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "image.hpp" +#include "device.hpp" +#include "buffer.hpp" + +namespace Vulkan +{ +ImageView::ImageView(Device *device_, VkImageView view_, const ImageViewCreateInfo &info_) + : Cookie(device_) + , device(device_) + , view(view_) + , info(info_) +{ +} + +VkImageView ImageView::get_render_target_view(unsigned layer) const +{ + // Transient images just have one layer. + if (info.image->get_create_info().domain == ImageDomain::Transient) + return view; + + VK_ASSERT(layer < get_create_info().layers); + + if (render_target_views.empty()) + return view; + else + { + VK_ASSERT(layer < render_target_views.size()); + return render_target_views[layer]; + } +} + +ImageView::~ImageView() +{ + if (internal_sync) + { + device->destroy_image_view_nolock(view); + if (depth_view != VK_NULL_HANDLE) + device->destroy_image_view_nolock(depth_view); + if (stencil_view != VK_NULL_HANDLE) + device->destroy_image_view_nolock(stencil_view); + if (unorm_view != VK_NULL_HANDLE) + device->destroy_image_view_nolock(unorm_view); + if (srgb_view != VK_NULL_HANDLE) + device->destroy_image_view_nolock(srgb_view); + + for (auto &v : render_target_views) + device->destroy_image_view_nolock(v); + } + else + { + device->destroy_image_view(view); + if (depth_view != VK_NULL_HANDLE) + device->destroy_image_view(depth_view); + if (stencil_view != VK_NULL_HANDLE) + device->destroy_image_view(stencil_view); + if (unorm_view != VK_NULL_HANDLE) + device->destroy_image_view(unorm_view); + if (srgb_view != VK_NULL_HANDLE) + device->destroy_image_view(srgb_view); + + for (auto &v : render_target_views) + device->destroy_image_view(v); + } +} + +unsigned ImageView::get_view_width() const +{ + return info.image->get_width(info.base_level); +} + +unsigned ImageView::get_view_height() const +{ + return info.image->get_height(info.base_level); +} + +unsigned ImageView::get_view_depth() const +{ + return info.image->get_depth(info.base_level); +} + +Image::Image(Device *device_, VkImage image_, VkImageView default_view, const DeviceAllocation &alloc_, + const ImageCreateInfo &create_info_, VkImageViewType view_type) + : Cookie(device_) + , device(device_) + , image(image_) + , alloc(alloc_) + , create_info(create_info_) +{ + if (default_view != VK_NULL_HANDLE) + { + ImageViewCreateInfo info; + info.image = this; + info.view_type = view_type; + info.format = create_info.format; + info.base_level = 0; + info.levels = create_info.levels; + info.base_layer = 0; + info.layers = create_info.layers; + view = ImageViewHandle(device->handle_pool.image_views.allocate(device, default_view, info)); + } +} + +DeviceAllocation Image::take_allocation_ownership() +{ + DeviceAllocation ret = {}; + std::swap(ret, alloc); + return ret; +} + +ExternalHandle Image::export_handle() +{ + return alloc.export_handle(*device); +} + +void Image::disown_image() +{ + owns_image = false; +} + +void Image::disown_memory_allocation() +{ + owns_memory_allocation = false; +} + +Image::~Image() +{ + if (owns_image) + { + if (internal_sync) + device->destroy_image_nolock(image); + else + device->destroy_image(image); + } + + if (alloc.get_memory() && owns_memory_allocation) + { + if (internal_sync) + device->free_memory_nolock(alloc); + else + device->free_memory(alloc); + } +} + +const Buffer &LinearHostImage::get_host_visible_buffer() const +{ + return *cpu_image; +} + +bool LinearHostImage::need_staging_copy() const +{ + return gpu_image->get_create_info().domain != ImageDomain::LinearHostCached && + gpu_image->get_create_info().domain != ImageDomain::LinearHost; +} + +const DeviceAllocation &LinearHostImage::get_host_visible_allocation() const +{ + return need_staging_copy() ? cpu_image->get_allocation() : gpu_image->get_allocation(); +} + +const ImageView &LinearHostImage::get_view() const +{ + return gpu_image->get_view(); +} + +const Image &LinearHostImage::get_image() const +{ + return *gpu_image; +} + +size_t LinearHostImage::get_offset() const +{ + return row_offset; +} + +size_t LinearHostImage::get_row_pitch_bytes() const +{ + return row_pitch; +} + +VkPipelineStageFlags2 LinearHostImage::get_used_pipeline_stages() const +{ + return stages; +} + +LinearHostImage::LinearHostImage(Device *device_, ImageHandle gpu_image_, BufferHandle cpu_image_, VkPipelineStageFlags2 stages_) + : device(device_), gpu_image(std::move(gpu_image_)), cpu_image(std::move(cpu_image_)), stages(stages_) +{ + if (gpu_image->get_create_info().domain == ImageDomain::LinearHostCached || + gpu_image->get_create_info().domain == ImageDomain::LinearHost) + { + VkImageSubresource sub = {}; + sub.aspectMask = format_to_aspect_mask(gpu_image->get_format()); + VkSubresourceLayout layout; + + auto &table = device_->get_device_table(); + table.vkGetImageSubresourceLayout(device->get_device(), gpu_image->get_image(), &sub, &layout); + row_pitch = layout.rowPitch; + row_offset = layout.offset; + } + else + { + row_pitch = gpu_image->get_width() * TextureFormatLayout::format_block_size(gpu_image->get_format(), + format_to_aspect_mask(gpu_image->get_format())); + row_offset = 0; + } +} + +void ImageViewDeleter::operator()(ImageView *view) +{ + view->device->handle_pool.image_views.free(view); +} + +void ImageDeleter::operator()(Image *image) +{ + image->device->handle_pool.images.free(image); +} + +void LinearHostImageDeleter::operator()(LinearHostImage *image) +{ + image->device->handle_pool.linear_images.free(image); +} +} diff --git a/vulkan/image.hpp b/vulkan/image.hpp new file mode 100644 index 00000000..4fa3fc8d --- /dev/null +++ b/vulkan/image.hpp @@ -0,0 +1,581 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "cookie.hpp" +#include "format.hpp" +#include "vulkan_common.hpp" +#include "memory_allocator.hpp" +#include "vulkan_headers.hpp" +#include + +namespace Vulkan +{ +class Device; + +static inline uint32_t image_num_miplevels(const VkExtent3D &extent) +{ + uint32_t size = std::max(std::max(extent.width, extent.height), extent.depth); + return Util::floor_log2(size) + 1; +} + +static inline VkFormatFeatureFlags image_usage_to_features(VkImageUsageFlags usage) +{ + VkFormatFeatureFlags flags = 0; + if (usage & VK_IMAGE_USAGE_SAMPLED_BIT) + flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT; + if (usage & VK_IMAGE_USAGE_STORAGE_BIT) + flags |= VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT; + if (usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) + flags |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT; + if (usage & VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) + flags |= VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT; + + return flags; +} + +struct ImageInitialData +{ + const void *data; + unsigned row_length; + unsigned image_height; +}; + +enum ImageMiscFlagBits +{ + IMAGE_MISC_GENERATE_MIPS_BIT = 1 << 0, + IMAGE_MISC_FORCE_ARRAY_BIT = 1 << 1, + IMAGE_MISC_MUTABLE_SRGB_BIT = 1 << 2, + IMAGE_MISC_CONCURRENT_QUEUE_GRAPHICS_BIT = 1 << 3, + IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_COMPUTE_BIT = 1 << 4, + IMAGE_MISC_CONCURRENT_QUEUE_ASYNC_TRANSFER_BIT = 1 << 6, + IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_DECODE_BIT = 1 << 7, + IMAGE_MISC_VERIFY_FORMAT_FEATURE_SAMPLED_LINEAR_FILTER_BIT = 1 << 8, + IMAGE_MISC_LINEAR_IMAGE_IGNORE_DEVICE_LOCAL_BIT = 1 << 9, + IMAGE_MISC_FORCE_NO_DEDICATED_BIT = 1 << 10, + IMAGE_MISC_NO_DEFAULT_VIEWS_BIT = 1 << 11, + IMAGE_MISC_EXTERNAL_MEMORY_BIT = 1 << 12, + IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_ENCODE_BIT = 1 << 13, + IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_DUPLEX = + IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_DECODE_BIT | + IMAGE_MISC_CONCURRENT_QUEUE_VIDEO_ENCODE_BIT, +}; +using ImageMiscFlags = uint32_t; + +enum ImageViewMiscFlagBits +{ + IMAGE_VIEW_MISC_FORCE_ARRAY_BIT = 1 << 0 +}; +using ImageViewMiscFlags = uint32_t; + +class Image; +class ImmutableYcbcrConversion; + +struct ImageViewCreateInfo +{ + const Image *image = nullptr; + VkFormat format = VK_FORMAT_UNDEFINED; + unsigned base_level = 0; + unsigned levels = VK_REMAINING_MIP_LEVELS; + unsigned base_layer = 0; + unsigned layers = VK_REMAINING_ARRAY_LAYERS; + VkImageViewType view_type = VK_IMAGE_VIEW_TYPE_MAX_ENUM; + ImageViewMiscFlags misc = 0; + VkComponentMapping swizzle = { + VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, + }; + VkImageAspectFlags aspect = 0; + const ImmutableYcbcrConversion *ycbcr_conversion = nullptr; +}; + +class ImageView; + +struct ImageViewDeleter +{ + void operator()(ImageView *view); +}; + +class ImageView : public Util::IntrusivePtrEnabled, + public Cookie, public InternalSyncEnabled +{ +public: + friend struct ImageViewDeleter; + + ImageView(Device *device, VkImageView view, const ImageViewCreateInfo &info); + + ~ImageView(); + + void set_alt_views(VkImageView depth, VkImageView stencil) + { + VK_ASSERT(depth_view == VK_NULL_HANDLE); + VK_ASSERT(stencil_view == VK_NULL_HANDLE); + depth_view = depth; + stencil_view = stencil; + } + + void set_render_target_views(std::vector views) + { + VK_ASSERT(render_target_views.empty()); + render_target_views = std::move(views); + } + + void set_unorm_view(VkImageView view_) + { + VK_ASSERT(unorm_view == VK_NULL_HANDLE); + unorm_view = view_; + } + + void set_srgb_view(VkImageView view_) + { + VK_ASSERT(srgb_view == VK_NULL_HANDLE); + srgb_view = view_; + } + + // By default, gets a combined view which includes all aspects in the image. + // This would be used mostly for render targets. + VkImageView get_view() const + { + return view; + } + + VkImageView get_render_target_view(unsigned layer) const; + + // Gets an image view which only includes floating point domains. + // Takes effect when we want to sample from an image which is Depth/Stencil, + // but we only want to sample depth. + VkImageView get_float_view() const + { + return depth_view != VK_NULL_HANDLE ? depth_view : view; + } + + // Gets an image view which only includes integer domains. + // Takes effect when we want to sample from an image which is Depth/Stencil, + // but we only want to sample stencil. + VkImageView get_integer_view() const + { + return stencil_view != VK_NULL_HANDLE ? stencil_view : view; + } + + VkImageView get_unorm_view() const + { + return unorm_view; + } + + VkImageView get_srgb_view() const + { + return srgb_view; + } + + VkFormat get_format() const + { + return info.format; + } + + const Image &get_image() const + { + return *info.image; + } + + const ImageViewCreateInfo &get_create_info() const + { + return info; + } + + unsigned get_view_width() const; + unsigned get_view_height() const; + unsigned get_view_depth() const; + +private: + Device *device; + VkImageView view; + std::vector render_target_views; + VkImageView depth_view = VK_NULL_HANDLE; + VkImageView stencil_view = VK_NULL_HANDLE; + VkImageView unorm_view = VK_NULL_HANDLE; + VkImageView srgb_view = VK_NULL_HANDLE; + ImageViewCreateInfo info; +}; + +using ImageViewHandle = Util::IntrusivePtr; + +enum class ImageDomain +{ + Physical, + Transient, + LinearHostCached, + LinearHost +}; + +struct ImageCreateInfo +{ + ImageDomain domain = ImageDomain::Physical; + unsigned width = 0; + unsigned height = 0; + unsigned depth = 1; + unsigned levels = 1; + VkFormat format = VK_FORMAT_UNDEFINED; + VkImageType type = VK_IMAGE_TYPE_2D; + unsigned layers = 1; + VkImageUsageFlags usage = 0; + VkSampleCountFlagBits samples = VK_SAMPLE_COUNT_1_BIT; + VkImageCreateFlags flags = 0; + ImageMiscFlags misc = 0; + VkImageLayout initial_layout = VK_IMAGE_LAYOUT_GENERAL; + VkComponentMapping swizzle = { + VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, + }; + const DeviceAllocation **memory_aliases = nullptr; + unsigned num_memory_aliases = 0; + const ImmutableYcbcrConversion *ycbcr_conversion = nullptr; + void *pnext = nullptr; + ExternalHandle external; + + static ImageCreateInfo immutable_image(const TextureFormatLayout &layout) + { + Vulkan::ImageCreateInfo info; + info.width = layout.get_width(); + info.height = layout.get_height(); + info.type = layout.get_image_type(); + info.depth = layout.get_depth(); + info.format = layout.get_format(); + info.layers = layout.get_layers(); + info.levels = layout.get_levels(); + info.usage = VK_IMAGE_USAGE_SAMPLED_BIT; + info.initial_layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + info.samples = VK_SAMPLE_COUNT_1_BIT; + info.domain = ImageDomain::Physical; + return info; + } + + static ImageCreateInfo immutable_2d_image(unsigned width, unsigned height, VkFormat format, bool mipmapped = false) + { + ImageCreateInfo info; + info.width = width; + info.height = height; + info.depth = 1; + info.levels = mipmapped ? 0u : 1u; + info.format = format; + info.type = VK_IMAGE_TYPE_2D; + info.layers = 1; + info.usage = VK_IMAGE_USAGE_SAMPLED_BIT; + info.samples = VK_SAMPLE_COUNT_1_BIT; + info.flags = 0; + info.misc = mipmapped ? unsigned(IMAGE_MISC_GENERATE_MIPS_BIT) : 0u; + info.initial_layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + return info; + } + + static ImageCreateInfo + immutable_3d_image(unsigned width, unsigned height, unsigned depth, VkFormat format, bool mipmapped = false) + { + ImageCreateInfo info = immutable_2d_image(width, height, format, mipmapped); + info.depth = depth; + info.type = VK_IMAGE_TYPE_3D; + return info; + } + + static ImageCreateInfo render_target(unsigned width, unsigned height, VkFormat format) + { + ImageCreateInfo info; + info.width = width; + info.height = height; + info.depth = 1; + info.levels = 1; + info.format = format; + info.type = VK_IMAGE_TYPE_2D; + info.layers = 1; + info.usage = (format_has_depth_or_stencil_aspect(format) ? VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT : + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) | + VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT; + + info.samples = VK_SAMPLE_COUNT_1_BIT; + info.flags = 0; + info.misc = 0; + info.initial_layout = format_has_depth_or_stencil_aspect(format) ? + VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL : + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + return info; + } + + static ImageCreateInfo transient_render_target(unsigned width, unsigned height, VkFormat format) + { + ImageCreateInfo info; + info.domain = ImageDomain::Transient; + info.width = width; + info.height = height; + info.depth = 1; + info.levels = 1; + info.format = format; + info.type = VK_IMAGE_TYPE_2D; + info.layers = 1; + info.usage = (format_has_depth_or_stencil_aspect(format) ? VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT : + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT) | + VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + info.samples = VK_SAMPLE_COUNT_1_BIT; + info.flags = 0; + info.misc = 0; + info.initial_layout = VK_IMAGE_LAYOUT_UNDEFINED; + return info; + } + + static uint32_t compute_view_formats(const ImageCreateInfo &info, VkFormat *formats) + { + if ((info.misc & IMAGE_MISC_MUTABLE_SRGB_BIT) == 0) + return 0; + + switch (info.format) + { + case VK_FORMAT_R8G8B8A8_UNORM: + case VK_FORMAT_R8G8B8A8_SRGB: + formats[0] = VK_FORMAT_R8G8B8A8_UNORM; + formats[1] = VK_FORMAT_R8G8B8A8_SRGB; + return 2; + + case VK_FORMAT_B8G8R8A8_UNORM: + case VK_FORMAT_B8G8R8A8_SRGB: + formats[0] = VK_FORMAT_B8G8R8A8_UNORM; + formats[1] = VK_FORMAT_B8G8R8A8_SRGB; + return 2; + + case VK_FORMAT_A8B8G8R8_UNORM_PACK32: + case VK_FORMAT_A8B8G8R8_SRGB_PACK32: + formats[0] = VK_FORMAT_A8B8G8R8_UNORM_PACK32; + formats[1] = VK_FORMAT_A8B8G8R8_SRGB_PACK32; + return 2; + + default: + return 0; + } + } +}; + +class Image; + +struct ImageDeleter +{ + void operator()(Image *image); +}; + +enum class Layout +{ + Optimal, + General +}; + +class Image : public Util::IntrusivePtrEnabled, + public Cookie, public InternalSyncEnabled +{ +public: + friend struct ImageDeleter; + + ~Image(); + + Image(Image &&) = delete; + + Image &operator=(Image &&) = delete; + + const ImageView &get_view() const + { + VK_ASSERT(view); + return *view; + } + + ImageView &get_view() + { + VK_ASSERT(view); + return *view; + } + + VkImage get_image() const + { + return image; + } + + VkFormat get_format() const + { + return create_info.format; + } + + uint32_t get_width(uint32_t lod = 0) const + { + return std::max(1u, create_info.width >> lod); + } + + uint32_t get_height(uint32_t lod = 0) const + { + return std::max(1u, create_info.height >> lod); + } + + uint32_t get_depth(uint32_t lod = 0) const + { + return std::max(1u, create_info.depth >> lod); + } + + const ImageCreateInfo &get_create_info() const + { + return create_info; + } + + VkImageLayout get_layout(VkImageLayout optimal) const + { + return layout_type == Layout::Optimal ? optimal : VK_IMAGE_LAYOUT_GENERAL; + } + + Layout get_layout_type() const + { + return layout_type; + } + + void set_layout(Layout layout) + { + layout_type = layout; + } + + bool is_swapchain_image() const + { + return swapchain_layout != VK_IMAGE_LAYOUT_UNDEFINED; + } + + VkImageLayout get_swapchain_layout() const + { + return swapchain_layout; + } + + void set_swapchain_layout(VkImageLayout layout) + { + swapchain_layout = layout; + } + + const DeviceAllocation &get_allocation() const + { + return alloc; + } + + void disown_image(); + void disown_memory_allocation(); + DeviceAllocation take_allocation_ownership(); + + void set_surface_transform(VkSurfaceTransformFlagBitsKHR transform) + { + surface_transform = transform; + if (transform != VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR) + { + const VkImageUsageFlags safe_usage_flags = + VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT | + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | + VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + + if ((create_info.usage & ~safe_usage_flags) != 0) + { + LOGW("Using surface transform for non-pure render target image (usage: %u). This can lead to weird results.\n", + create_info.usage); + } + } + } + + VkSurfaceTransformFlagBitsKHR get_surface_transform() const + { + return surface_transform; + } + + ExternalHandle export_handle(); + +private: + friend class Util::ObjectPool; + + Image(Device *device, VkImage image, VkImageView default_view, const DeviceAllocation &alloc, + const ImageCreateInfo &info, VkImageViewType view_type); + + Device *device; + VkImage image; + ImageViewHandle view; + DeviceAllocation alloc; + ImageCreateInfo create_info; + + Layout layout_type = Layout::Optimal; + VkImageLayout swapchain_layout = VK_IMAGE_LAYOUT_UNDEFINED; + VkSurfaceTransformFlagBitsKHR surface_transform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; + bool owns_image = true; + bool owns_memory_allocation = true; +}; + +using ImageHandle = Util::IntrusivePtr; + +class LinearHostImage; +struct LinearHostImageDeleter +{ + void operator()(LinearHostImage *image); +}; + +class Buffer; + +enum LinearHostImageCreateInfoFlagBits +{ + LINEAR_HOST_IMAGE_HOST_CACHED_BIT = 1 << 0, + LINEAR_HOST_IMAGE_REQUIRE_LINEAR_FILTER_BIT = 1 << 1, + LINEAR_HOST_IMAGE_IGNORE_DEVICE_LOCAL_BIT = 1 << 2 +}; +using LinearHostImageCreateInfoFlags = uint32_t; + +struct LinearHostImageCreateInfo +{ + unsigned width = 0; + unsigned height = 0; + VkFormat format = VK_FORMAT_UNDEFINED; + VkImageUsageFlags usage = 0; + VkPipelineStageFlags2 stages = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; + LinearHostImageCreateInfoFlags flags = 0; +}; + +// Special image type which supports direct CPU mapping. +// Useful optimization for UMA implementations of Vulkan where we don't necessarily need +// to perform staging copies. It gracefully falls back to staging buffer as needed. +// Only usage flag SAMPLED_BIT is currently supported. +class LinearHostImage : public Util::IntrusivePtrEnabled +{ +public: + friend struct LinearHostImageDeleter; + + size_t get_row_pitch_bytes() const; + size_t get_offset() const; + const ImageView &get_view() const; + const Image &get_image() const; + const DeviceAllocation &get_host_visible_allocation() const; + const Buffer &get_host_visible_buffer() const; + bool need_staging_copy() const; + VkPipelineStageFlags2 get_used_pipeline_stages() const; + +private: + friend class Util::ObjectPool; + LinearHostImage(Device *device, ImageHandle gpu_image, Util::IntrusivePtr cpu_image, + VkPipelineStageFlags2 stages); + Device *device; + ImageHandle gpu_image; + Util::IntrusivePtr cpu_image; + VkPipelineStageFlags2 stages; + size_t row_pitch; + size_t row_offset; +}; +using LinearHostImageHandle = Util::IntrusivePtr; +} diff --git a/vulkan/indirect_layout.cpp b/vulkan/indirect_layout.cpp new file mode 100644 index 00000000..46005352 --- /dev/null +++ b/vulkan/indirect_layout.cpp @@ -0,0 +1,108 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "indirect_layout.hpp" +#include "device.hpp" +#include "small_vector.hpp" + +namespace Vulkan +{ +IndirectLayout::IndirectLayout(Device *device_, const IndirectLayoutToken *tokens, uint32_t num_tokens, uint32_t stride) + : device(device_) +{ + VkIndirectCommandsLayoutCreateInfoNV info = { VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV }; + info.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; + info.pStreamStrides = &stride; + info.streamCount = 1; + + Util::SmallVector nv_tokens; + nv_tokens.reserve(num_tokens); + + for (uint32_t i = 0; i < num_tokens; i++) + { + VkIndirectCommandsLayoutTokenNV token = { VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV }; + switch (tokens[i].type) + { + case IndirectLayoutToken::Type::VBO: + token.tokenType = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV; + token.vertexBindingUnit = tokens[i].data.vbo.binding; + break; + + case IndirectLayoutToken::Type::IBO: + token.tokenType = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV; + break; + + case IndirectLayoutToken::Type::PushConstant: + token.tokenType = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV; + token.pushconstantSize = tokens[i].data.push.range; + token.pushconstantOffset = tokens[i].data.push.offset; + token.pushconstantPipelineLayout = tokens[i].data.push.layout->get_layout(); + token.pushconstantShaderStageFlags = tokens[i].data.push.layout->get_resource_layout().push_constant_range.stageFlags; + break; + + case IndirectLayoutToken::Type::Draw: + token.tokenType = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV; + break; + + case IndirectLayoutToken::Type::DrawIndexed: + token.tokenType = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV; + break; + + case IndirectLayoutToken::Type::Shader: + token.tokenType = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV; + break; + + case IndirectLayoutToken::Type::MeshTasks: + token.tokenType = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV; + break; + + case IndirectLayoutToken::Type::Dispatch: + token.tokenType = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV; + info.pipelineBindPoint = VK_PIPELINE_BIND_POINT_COMPUTE; + break; + + default: + LOGE("Invalid token type.\n"); + break; + } + + token.offset = tokens[i].offset; + + nv_tokens.push_back(token); + } + + info.pTokens = nv_tokens.data(); + info.tokenCount = num_tokens; + bind_point = info.pipelineBindPoint; + + auto &table = device->get_device_table(); + if (table.vkCreateIndirectCommandsLayoutNV(device->get_device(), &info, nullptr, &layout) != VK_SUCCESS) + { + LOGE("Failed to create indirect layout.\n"); + } +} + +IndirectLayout::~IndirectLayout() +{ + device->get_device_table().vkDestroyIndirectCommandsLayoutNV(device->get_device(), layout, nullptr); +} +} diff --git a/vulkan/indirect_layout.hpp b/vulkan/indirect_layout.hpp new file mode 100644 index 00000000..a9b3ef2e --- /dev/null +++ b/vulkan/indirect_layout.hpp @@ -0,0 +1,91 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include "vulkan_common.hpp" +#include "cookie.hpp" + +namespace Vulkan +{ +class Device; +class PipelineLayout; + +struct IndirectLayoutToken +{ + enum class Type + { + Invalid = 0, + Shader, + PushConstant, + VBO, + IBO, + Draw, + DrawIndexed, + MeshTasks, + Dispatch + }; + + Type type = Type::Invalid; + uint32_t offset = 0; + + union + { + struct + { + uint32_t offset; + uint32_t range; + const PipelineLayout *layout; + } push; + + struct + { + uint32_t binding; + } vbo; + } data = {}; +}; + +class IndirectLayout : public HashedObject +{ +public: + IndirectLayout(Device *device, const IndirectLayoutToken *token, uint32_t num_tokens, uint32_t stride); + ~IndirectLayout(); + + VkIndirectCommandsLayoutNV get_layout() const + { + return layout; + } + + VkPipelineBindPoint get_bind_point() const + { + return bind_point; + } + +private: + friend class Device; + + Device *device; + VkIndirectCommandsLayoutNV layout; + VkPipelineBindPoint bind_point; +}; +} diff --git a/vulkan/limits.hpp b/vulkan/limits.hpp new file mode 100644 index 00000000..88bd0fad --- /dev/null +++ b/vulkan/limits.hpp @@ -0,0 +1,40 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +namespace Vulkan +{ +constexpr unsigned VULKAN_NUM_DESCRIPTOR_SETS = 4; +constexpr unsigned VULKAN_NUM_DYNAMIC_UBOS = 8; // Vulkan min-spec +constexpr unsigned VULKAN_NUM_BINDINGS = 32; +constexpr unsigned VULKAN_NUM_BINDINGS_BINDLESS_VARYING = 16 * 1024; +constexpr unsigned VULKAN_NUM_ATTACHMENTS = 8; +constexpr unsigned VULKAN_NUM_VERTEX_ATTRIBS = 16; +constexpr unsigned VULKAN_NUM_VERTEX_BUFFERS = 4; +constexpr unsigned VULKAN_PUSH_CONSTANT_SIZE = 128; +constexpr unsigned VULKAN_MAX_UBO_SIZE = 64 * 1024; +constexpr unsigned VULKAN_NUM_USER_SPEC_CONSTANTS = 8; +constexpr unsigned VULKAN_NUM_INTERNAL_SPEC_CONSTANTS = 4; +constexpr unsigned VULKAN_NUM_TOTAL_SPEC_CONSTANTS = + VULKAN_NUM_USER_SPEC_CONSTANTS + VULKAN_NUM_INTERNAL_SPEC_CONSTANTS; +} diff --git a/vulkan/memory_allocator.cpp b/vulkan/memory_allocator.cpp new file mode 100644 index 00000000..c4fba5ef --- /dev/null +++ b/vulkan/memory_allocator.cpp @@ -0,0 +1,825 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "memory_allocator.hpp" +#include "timeline_trace_file.hpp" +#include "device.hpp" +#include + +#ifndef _WIN32 +#include +#else +#define WIN32_LEAN_AND_MEAN +#include +#endif + +namespace Vulkan +{ +static bool allocation_mode_supports_bda(AllocationMode mode) +{ + switch (mode) + { + case AllocationMode::LinearDevice: + case AllocationMode::LinearHostMappable: + case AllocationMode::LinearDeviceHighPriority: + return true; + + default: + break; + } + + return false; +} + +void DeviceAllocation::free_immediate() +{ + if (!alloc) + return; + + alloc->free(heap, mask); + alloc = nullptr; + base = VK_NULL_HANDLE; + mask = 0; + offset = 0; +} + +ExternalHandle DeviceAllocation::export_handle(Device &device) +{ + ExternalHandle h; + + if (exportable_types == 0) + { + LOGE("Cannot export from this allocation.\n"); + return h; + } + + auto &table = device.get_device_table(); + +#ifdef _WIN32 + VkMemoryGetWin32HandleInfoKHR handle_info = { VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR }; + handle_info.handleType = static_cast(exportable_types); + handle_info.memory = base; + h.memory_handle_type = handle_info.handleType; + + if (table.vkGetMemoryWin32HandleKHR(device.get_device(), &handle_info, &h.handle) != VK_SUCCESS) + { + LOGE("Failed to export memory handle.\n"); + h.handle = nullptr; + } +#else + VkMemoryGetFdInfoKHR fd_info = { VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR }; + fd_info.handleType = static_cast(exportable_types); + fd_info.memory = base; + h.memory_handle_type = fd_info.handleType; + + if (table.vkGetMemoryFdKHR(device.get_device(), &fd_info, &h.handle) != VK_SUCCESS) + { + LOGE("Failed to export memory handle.\n"); + h.handle = -1; + } +#endif + + return h; +} + +void DeviceAllocation::free_immediate(DeviceAllocator &allocator) +{ + if (alloc) + free_immediate(); + else if (base) + { + allocator.internal_free_no_recycle(size, memory_type, base); + base = VK_NULL_HANDLE; + } +} + +void DeviceAllocation::free_global(DeviceAllocator &allocator, uint32_t size_, uint32_t memory_type_) +{ + if (base) + { + allocator.internal_free(size_, memory_type_, mode, base, host_base != nullptr); + base = VK_NULL_HANDLE; + mask = 0; + offset = 0; + } +} + +void ClassAllocator::prepare_allocation(DeviceAllocation *alloc, Util::IntrusiveList::Iterator heap_itr, + const Util::SuballocationResult &suballoc) +{ + auto &heap = *heap_itr; + alloc->heap = heap_itr; + alloc->base = heap.allocation.base; + alloc->offset = suballoc.offset + heap.allocation.offset; + alloc->mask = suballoc.mask; + alloc->size = suballoc.size; + + if (heap.allocation.host_base) + alloc->host_base = heap.allocation.host_base + suballoc.offset; + + VK_ASSERT(heap.allocation.mode == global_allocator_mode); + VK_ASSERT(heap.allocation.memory_type == memory_type); + + alloc->mode = global_allocator_mode; + alloc->memory_type = memory_type; + alloc->alloc = this; +} + +static inline bool mode_request_host_mapping(AllocationMode mode) +{ + // LinearHostMapping will always work. LinearDevice ones will speculatively work on UMA. + return mode == AllocationMode::LinearHostMappable || + mode == AllocationMode::LinearDevice || + mode == AllocationMode::LinearDeviceHighPriority; +} + +bool ClassAllocator::allocate_backing_heap(DeviceAllocation *alloc) +{ + uint32_t alloc_size = sub_block_size * Util::LegionAllocator::NumSubBlocks; + + if (parent) + { + return parent->allocate(alloc_size, alloc); + } + else + { + alloc->offset = 0; + alloc->host_base = nullptr; + alloc->mode = global_allocator_mode; + alloc->memory_type = memory_type; + + return global_allocator->internal_allocate( + alloc_size, memory_type, global_allocator_mode, &alloc->base, + mode_request_host_mapping(global_allocator_mode) ? &alloc->host_base : nullptr, + VK_OBJECT_TYPE_DEVICE, 0, nullptr); + } +} + +void ClassAllocator::free_backing_heap(DeviceAllocation *allocation) +{ + assert(allocation->mode == global_allocator_mode); + assert(allocation->memory_type == memory_type); + + // Our mini-heap is completely freed, free to higher level allocator. + if (parent) + allocation->free_immediate(); + else + allocation->free_global(*global_allocator, sub_block_size * Util::LegionAllocator::NumSubBlocks, memory_type); +} + +bool Allocator::allocate_global(uint32_t size, AllocationMode mode, DeviceAllocation *alloc) +{ + // Fall back to global allocation, do not recycle. + alloc->host_base = nullptr; + if (!global_allocator->internal_allocate( + size, memory_type, mode, &alloc->base, + mode_request_host_mapping(mode) ? &alloc->host_base : nullptr, + VK_OBJECT_TYPE_DEVICE, 0, nullptr)) + { + return false; + } + + alloc->mode = mode; + alloc->alloc = nullptr; + alloc->memory_type = memory_type; + alloc->size = size; + return true; +} + +bool Allocator::allocate_dedicated(uint32_t size, AllocationMode mode, DeviceAllocation *alloc, + VkObjectType type, uint64_t object, ExternalHandle *external) +{ + // Fall back to global allocation, do not recycle. + alloc->host_base = nullptr; + if (!global_allocator->internal_allocate( + size, memory_type, mode, &alloc->base, + mode_request_host_mapping(mode) ? &alloc->host_base : nullptr, + type, object, external)) + { + return false; + } + + alloc->mode = mode; + alloc->alloc = nullptr; + alloc->memory_type = memory_type; + alloc->size = size; + + // If we imported memory instead, do not allow handle export. + if (external && !(*external)) + alloc->exportable_types = external->memory_handle_type; + + return true; +} + +DeviceAllocation DeviceAllocation::make_imported_allocation(VkDeviceMemory memory, VkDeviceSize size, + uint32_t memory_type) +{ + DeviceAllocation alloc = {}; + alloc.base = memory; + alloc.offset = 0; + alloc.size = size; + alloc.memory_type = memory_type; + return alloc; +} + +bool Allocator::allocate(uint32_t size, uint32_t alignment, AllocationMode mode, DeviceAllocation *alloc) +{ + for (auto &c : classes) + { + auto &suballocator = c[unsigned(mode)]; + + // Find a suitable class to allocate from. + if (size <= suballocator.get_max_allocation_size()) + { + if (alignment > suballocator.get_block_alignment()) + { + size_t padded_size = size + (alignment - suballocator.get_block_alignment()); + if (padded_size <= suballocator.get_max_allocation_size()) + size = padded_size; + else + continue; + } + + bool ret = suballocator.allocate(size, alloc); + if (ret) + { + uint32_t aligned_offset = (alloc->offset + alignment - 1) & ~(alignment - 1); + if (alloc->host_base) + alloc->host_base += aligned_offset - alloc->offset; + alloc->offset = aligned_offset; + VK_ASSERT(alloc->mode == mode); + VK_ASSERT(alloc->memory_type == memory_type); + } + + return ret; + } + } + + if (!allocate_global(size, mode, alloc)) + return false; + + VK_ASSERT(alloc->mode == mode); + VK_ASSERT(alloc->memory_type == memory_type); + return true; +} + +Allocator::Allocator(Util::ObjectPool &object_pool) +{ + for (int i = 0; i < Util::ecast(MemoryClass::Count) - 1; i++) + for (int j = 0; j < Util::ecast(AllocationMode::Count); j++) + classes[i][j].set_parent(&classes[i + 1][j]); + + for (auto &c : classes) + for (auto &m : c) + m.set_object_pool(&object_pool); + + for (int j = 0; j < Util::ecast(AllocationMode::Count); j++) + { + auto mode = static_cast(j); + + // 128 chunk + get_class_allocator(MemoryClass::Small, mode).set_sub_block_size(128); + // 4k chunk + get_class_allocator(MemoryClass::Medium, mode).set_sub_block_size( + 128 * Util::LegionAllocator::NumSubBlocks); // 4K + // 128k chunk + get_class_allocator(MemoryClass::Large, mode).set_sub_block_size( + 128 * Util::LegionAllocator::NumSubBlocks * + Util::LegionAllocator::NumSubBlocks); + // 2M chunk + get_class_allocator(MemoryClass::Huge, mode).set_sub_block_size( + 64 * Util::LegionAllocator::NumSubBlocks * Util::LegionAllocator::NumSubBlocks * + Util::LegionAllocator::NumSubBlocks); + } +} + +void DeviceAllocator::init(Device *device_) +{ + device = device_; + table = &device->get_device_table(); + mem_props = device->get_memory_properties(); + const auto &props = device->get_gpu_properties(); + atom_alignment = props.limits.nonCoherentAtomSize; + + heaps.clear(); + allocators.clear(); + + heaps.resize(mem_props.memoryHeapCount); + allocators.reserve(mem_props.memoryTypeCount); + for (unsigned i = 0; i < mem_props.memoryTypeCount; i++) + { + allocators.emplace_back(new Allocator(object_pool)); + allocators.back()->set_global_allocator(this, i); + } + + HeapBudget budgets[VK_MAX_MEMORY_HEAPS]; + get_memory_budget(budgets); + + // Figure out if we have a PCI-e BAR heap. + // We need to be very careful with our budget (usually 128 MiB out of 256 MiB) on these heaps + // since they can lead to instability if overused. + VkMemoryPropertyFlags combined_allowed_flags[VK_MAX_MEMORY_HEAPS] = {}; + for (uint32_t i = 0; i < mem_props.memoryTypeCount; i++) + { + uint32_t heap_index = mem_props.memoryTypes[i].heapIndex; + combined_allowed_flags[heap_index] |= mem_props.memoryTypes[i].propertyFlags; + } + + bool has_host_only_heap = false; + bool has_device_only_heap = false; + VkDeviceSize host_heap_size = 0; + VkDeviceSize device_heap_size = 0; + const VkMemoryPropertyFlags pinned_flags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT; + for (uint32_t i = 0; i < mem_props.memoryHeapCount; i++) + { + if ((combined_allowed_flags[i] & pinned_flags) == VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) + { + has_host_only_heap = true; + host_heap_size = (std::max)(host_heap_size, mem_props.memoryHeaps[i].size); + } + else if ((combined_allowed_flags[i] & pinned_flags) == VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) + { + has_device_only_heap = true; + device_heap_size = (std::max)(device_heap_size, mem_props.memoryHeaps[i].size); + } + } + + // If we have ReBAR enabled, we generally won't find DEVICE only and HOST only heaps. + // Budget criticalness should only be considered if we have the default small BAR heap (256 MiB). + if (has_host_only_heap && has_device_only_heap) + { + for (uint32_t i = 0; i < mem_props.memoryHeapCount; i++) + { + if ((combined_allowed_flags[i] & pinned_flags) == pinned_flags && + mem_props.memoryHeaps[i].size < host_heap_size && + mem_props.memoryHeaps[i].size < device_heap_size) + { + memory_heap_is_budget_critical[i] = true; + } + } + } +} + +bool DeviceAllocator::allocate_generic_memory(uint32_t size, uint32_t alignment, AllocationMode mode, + uint32_t memory_type, DeviceAllocation *alloc) +{ + return allocators[memory_type]->allocate(size, alignment, mode, alloc); +} + +bool DeviceAllocator::allocate_buffer_memory(uint32_t size, uint32_t alignment, AllocationMode mode, + uint32_t memory_type, VkBuffer buffer, + DeviceAllocation *alloc, ExternalHandle *external) +{ + if (mode == AllocationMode::External) + { + return allocators[memory_type]->allocate_dedicated( + size, mode, alloc, + VK_OBJECT_TYPE_BUFFER, (uint64_t)buffer, external); + } + else + { + return allocate_generic_memory(size, alignment, mode, memory_type, alloc); + } +} + +bool DeviceAllocator::allocate_image_memory(uint32_t size, uint32_t alignment, AllocationMode mode, uint32_t memory_type, + VkImage image, bool force_no_dedicated, DeviceAllocation *alloc, + ExternalHandle *external) +{ + if (force_no_dedicated) + { + VK_ASSERT(mode != AllocationMode::External && !external); + return allocate_generic_memory(size, alignment, mode, memory_type, alloc); + } + + VkImageMemoryRequirementsInfo2 info = { VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 }; + info.image = image; + + VkMemoryDedicatedRequirements dedicated_req = { VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS }; + VkMemoryRequirements2 mem_req = { VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 }; + mem_req.pNext = &dedicated_req; + table->vkGetImageMemoryRequirements2(device->get_device(), &info, &mem_req); + + if (dedicated_req.prefersDedicatedAllocation || + dedicated_req.requiresDedicatedAllocation || + mode == AllocationMode::External) + { + return allocators[memory_type]->allocate_dedicated( + size, mode, alloc, VK_OBJECT_TYPE_IMAGE, (uint64_t)image, external); + } + else + { + return allocate_generic_memory(size, alignment, mode, memory_type, alloc); + } +} + +void DeviceAllocator::Heap::garbage_collect(Device *device_) +{ + auto &table_ = device_->get_device_table(); + for (auto &block : blocks) + { + table_.vkFreeMemory(device_->get_device(), block.memory, nullptr); + size -= block.size; + } + blocks.clear(); +} + +DeviceAllocator::~DeviceAllocator() +{ + for (auto &heap : heaps) + heap.garbage_collect(device); +} + +void DeviceAllocator::internal_free(uint32_t size, uint32_t memory_type, AllocationMode mode, VkDeviceMemory memory, bool is_mapped) +{ + if (is_mapped) + table->vkUnmapMemory(device->get_device(), memory); + + auto &heap = heaps[mem_props.memoryTypes[memory_type].heapIndex]; + + VK_ASSERT(mode != AllocationMode::Count); + + heap.blocks.push_back({ memory, size, memory_type, mode }); + if (memory_heap_is_budget_critical[mem_props.memoryTypes[memory_type].heapIndex]) + heap.garbage_collect(device); +} + +void DeviceAllocator::internal_free_no_recycle(uint32_t size, uint32_t memory_type, VkDeviceMemory memory) +{ + auto &heap = heaps[mem_props.memoryTypes[memory_type].heapIndex]; + table->vkFreeMemory(device->get_device(), memory, nullptr); + heap.size -= size; +} + +void DeviceAllocator::garbage_collect() +{ + for (auto &heap : heaps) + heap.garbage_collect(device); +} + +void *DeviceAllocator::map_memory(const DeviceAllocation &alloc, MemoryAccessFlags flags, + VkDeviceSize offset, VkDeviceSize length) +{ + VkDeviceSize base_offset = offset; + + // This will only happen if the memory type is device local only, which we cannot possibly map. + if (!alloc.host_base) + return nullptr; + + if ((flags & MEMORY_ACCESS_READ_BIT) && + !(mem_props.memoryTypes[alloc.memory_type].propertyFlags & VK_MEMORY_PROPERTY_HOST_COHERENT_BIT)) + { + offset += alloc.offset; + VkDeviceSize end_offset = offset + length; + offset &= ~(atom_alignment - 1); + length = end_offset - offset; + VkDeviceSize size = (length + atom_alignment - 1) & ~(atom_alignment - 1); + + // Have to invalidate cache here. + const VkMappedMemoryRange range = { + VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE, nullptr, alloc.base, offset, size, + }; + table->vkInvalidateMappedMemoryRanges(device->get_device(), 1, &range); + } + + return alloc.host_base + base_offset; +} + +void DeviceAllocator::unmap_memory(const DeviceAllocation &alloc, MemoryAccessFlags flags, + VkDeviceSize offset, VkDeviceSize length) +{ + // This will only happen if the memory type is device local only, which we cannot possibly map. + if (!alloc.host_base) + return; + + if ((flags & MEMORY_ACCESS_WRITE_BIT) && + !(mem_props.memoryTypes[alloc.memory_type].propertyFlags & VK_MEMORY_PROPERTY_HOST_COHERENT_BIT)) + { + offset += alloc.offset; + VkDeviceSize end_offset = offset + length; + offset &= ~(atom_alignment - 1); + length = end_offset - offset; + VkDeviceSize size = (length + atom_alignment - 1) & ~(atom_alignment - 1); + + // Have to flush caches here. + const VkMappedMemoryRange range = { + VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE, nullptr, alloc.base, offset, size, + }; + table->vkFlushMappedMemoryRanges(device->get_device(), 1, &range); + } +} + +void DeviceAllocator::get_memory_budget_nolock(HeapBudget *heap_budgets) +{ + uint32_t num_heaps = mem_props.memoryHeapCount; + + if (device->get_device_features().supports_memory_budget) + { + VkPhysicalDeviceMemoryProperties2 props = + { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 }; + VkPhysicalDeviceMemoryBudgetPropertiesEXT budget_props = + { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT }; + + if (device->get_device_features().supports_memory_budget) + props.pNext = &budget_props; + + vkGetPhysicalDeviceMemoryProperties2(device->get_physical_device(), &props); + + for (uint32_t i = 0; i < num_heaps; i++) + { + auto &heap = heap_budgets[i]; + heap.max_size = mem_props.memoryHeaps[i].size; + heap.budget_size = budget_props.heapBudget[i]; + heap.device_usage = budget_props.heapUsage[i]; + heap.tracked_usage = heaps[i].size; + } + } + else + { + for (uint32_t i = 0; i < num_heaps; i++) + { + auto &heap = heap_budgets[i]; + heap.max_size = mem_props.memoryHeaps[i].size; + // Allow 75%. + heap.budget_size = heap.max_size - (heap.max_size / 4); + heap.tracked_usage = heaps[i].size; + heap.device_usage = heaps[i].size; + } + } +} + +void DeviceAllocator::get_memory_budget(HeapBudget *heap_budgets) +{ + get_memory_budget_nolock(heap_budgets); +} + +bool DeviceAllocator::internal_allocate( + uint32_t size, uint32_t memory_type, AllocationMode mode, + VkDeviceMemory *memory, uint8_t **host_memory, + VkObjectType object_type, uint64_t dedicated_object, ExternalHandle *external) +{ + uint32_t heap_index = mem_props.memoryTypes[memory_type].heapIndex; + auto &heap = heaps[heap_index]; + + // Naive searching is fine here as vkAllocate blocks are *huge* and we won't have many of them. + auto itr = end(heap.blocks); + if (dedicated_object == 0 && !external) + { + itr = find_if(begin(heap.blocks), end(heap.blocks), + [=](const Allocation &alloc) { return size == alloc.size && memory_type == alloc.type && mode == alloc.mode; }); + } + + bool host_visible = (mem_props.memoryTypes[memory_type].propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) != 0 && + host_memory != nullptr; + + // Found previously used block. + if (itr != end(heap.blocks)) + { + *memory = itr->memory; + if (host_visible) + { + if (table->vkMapMemory(device->get_device(), itr->memory, 0, VK_WHOLE_SIZE, + 0, reinterpret_cast(host_memory)) != VK_SUCCESS) + return false; + } + heap.blocks.erase(itr); + return true; + } + + // Don't bother checking against budgets on external memory. + // It's not very meaningful. + if (!external) + { + HeapBudget budgets[VK_MAX_MEMORY_HEAPS]; + get_memory_budget_nolock(budgets); + +#ifdef VULKAN_DEBUG + LOGI("Allocating %.1f MiB on heap #%u (mode #%u), before allocating budget: (%.1f MiB / %.1f MiB) [%.1f / %.1f].\n", + double(size) / double(1024 * 1024), heap_index, unsigned(mode), + double(budgets[heap_index].device_usage) / double(1024 * 1024), + double(budgets[heap_index].budget_size) / double(1024 * 1024), + double(budgets[heap_index].tracked_usage) / double(1024 * 1024), + double(budgets[heap_index].max_size) / double(1024 * 1024)); +#endif + + const auto log_heap_index = [&]() + { + LOGW(" Size: %u MiB.\n", unsigned(size / (1024 * 1024))); + LOGW(" Device usage: %u MiB.\n", unsigned(budgets[heap_index].device_usage / (1024 * 1024))); + LOGW(" Tracked usage: %u MiB.\n", unsigned(budgets[heap_index].tracked_usage / (1024 * 1024))); + LOGW(" Budget size: %u MiB.\n", unsigned(budgets[heap_index].budget_size / (1024 * 1024))); + LOGW(" Max size: %u MiB.\n", unsigned(budgets[heap_index].max_size / (1024 * 1024))); + }; + + // If we're going to blow out the budget, we should recycle a bit. + if (budgets[heap_index].device_usage + size >= budgets[heap_index].budget_size) + { + LOGW("Will exceed memory budget, cleaning up ...\n"); + log_heap_index(); + heap.garbage_collect(device); + } + + get_memory_budget_nolock(budgets); + if (budgets[heap_index].device_usage + size >= budgets[heap_index].budget_size) + { + LOGW("Even after garbage collection, we will exceed budget ...\n"); + if (memory_heap_is_budget_critical[heap_index]) + return false; + log_heap_index(); + } + } + + VkMemoryAllocateInfo info = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, nullptr, size, memory_type }; + VkMemoryDedicatedAllocateInfo dedicated = { VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO }; + VkExportMemoryAllocateInfo export_info = { VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO }; + VkMemoryPriorityAllocateInfoEXT priority_info = { VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT }; + VkMemoryAllocateFlagsInfo flags_info = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO }; +#ifdef _WIN32 + VkImportMemoryWin32HandleInfoKHR import_info = { VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR }; +#else + VkImportMemoryFdInfoKHR import_info = { VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR }; +#endif + + if (dedicated_object != 0) + { + if (object_type == VK_OBJECT_TYPE_IMAGE) + dedicated.image = (VkImage)dedicated_object; + else if (object_type == VK_OBJECT_TYPE_BUFFER) + dedicated.buffer = (VkBuffer)dedicated_object; + info.pNext = &dedicated; + } + + if (external) + { + VK_ASSERT(dedicated_object); + + if (bool(*external)) + { + import_info.handleType = external->memory_handle_type; + import_info.pNext = info.pNext; + info.pNext = &import_info; + +#ifdef _WIN32 + import_info.handle = external->handle; +#else + import_info.fd = external->handle; +#endif + } + else + { + export_info.handleTypes = external->memory_handle_type; + export_info.pNext = info.pNext; + info.pNext = &export_info; + } + } + + // Don't bother with memory priority on external objects. + if (device->get_device_features().memory_priority_features.memoryPriority && !external) + { + switch (mode) + { + case AllocationMode::LinearDeviceHighPriority: + case AllocationMode::OptimalRenderTarget: + priority_info.priority = 1.0f; + break; + + case AllocationMode::LinearDevice: + case AllocationMode::OptimalResource: + priority_info.priority = 0.5f; + break; + + default: + priority_info.priority = 0.0f; + break; + } + + priority_info.pNext = info.pNext; + info.pNext = &priority_info; + } + + if (device->get_device_features().vk12_features.bufferDeviceAddress && + allocation_mode_supports_bda(mode)) + { + flags_info.flags = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT; + flags_info.pNext = info.pNext; + info.pNext = &flags_info; + } + + VkDeviceMemory device_memory; + VkResult res; + { + GRANITE_SCOPED_TIMELINE_EVENT_FILE(device->get_system_handles().timeline_trace_file, "vkAllocateMemory"); + res = table->vkAllocateMemory(device->get_device(), &info, nullptr, &device_memory); + } + + // If we're importing, make sure we consume the native handle. + if (external && bool(*external) && + ExternalHandle::memory_handle_type_imports_by_reference(external->memory_handle_type)) + { +#ifdef _WIN32 + ::CloseHandle(external->handle); +#else + ::close(external->handle); +#endif + } + + if (res == VK_SUCCESS) + { + heap.size += size; + *memory = device_memory; + + if (host_visible) + { + if (table->vkMapMemory(device->get_device(), device_memory, 0, VK_WHOLE_SIZE, + 0, reinterpret_cast(host_memory)) != VK_SUCCESS) + { + table->vkFreeMemory(device->get_device(), device_memory, nullptr); + heap.size -= size; + return false; + } + } + + return true; + } + else + { + // Look through our heap and see if there are blocks of other types we can free. + auto block_itr = begin(heap.blocks); + while (res != VK_SUCCESS && itr != end(heap.blocks)) + { + table->vkFreeMemory(device->get_device(), block_itr->memory, nullptr); + heap.size -= block_itr->size; + { + GRANITE_SCOPED_TIMELINE_EVENT_FILE(device->get_system_handles().timeline_trace_file, + "vkAllocateMemory"); + res = table->vkAllocateMemory(device->get_device(), &info, nullptr, &device_memory); + } + ++block_itr; + } + + heap.blocks.erase(begin(heap.blocks), block_itr); + + if (res == VK_SUCCESS) + { + heap.size += size; + *memory = device_memory; + + if (host_visible) + { + if (table->vkMapMemory(device->get_device(), device_memory, 0, size, 0, reinterpret_cast(host_memory)) != + VK_SUCCESS) + { + table->vkFreeMemory(device->get_device(), device_memory, nullptr); + heap.size -= size; + return false; + } + } + + return true; + } + else + return false; + } +} + +DeviceAllocationOwner::DeviceAllocationOwner(Device *device_, const DeviceAllocation &alloc_) + : device(device_), alloc(alloc_) +{ +} + +DeviceAllocationOwner::~DeviceAllocationOwner() +{ + if (alloc.get_memory()) + device->free_memory(alloc); +} + +const DeviceAllocation &DeviceAllocationOwner::get_allocation() const +{ + return alloc; +} + +void DeviceAllocationDeleter::operator()(DeviceAllocationOwner *owner) +{ + owner->device->handle_pool.allocations.free(owner); +} +} diff --git a/vulkan/memory_allocator.hpp b/vulkan/memory_allocator.hpp new file mode 100644 index 00000000..38b1f094 --- /dev/null +++ b/vulkan/memory_allocator.hpp @@ -0,0 +1,300 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "intrusive.hpp" +#include "object_pool.hpp" +#include "intrusive_list.hpp" +#include "vulkan_headers.hpp" +#include "logging.hpp" +#include "bitops.hpp" +#include "enum_cast.hpp" +#include "vulkan_common.hpp" +#include "arena_allocator.hpp" +#include +#include +#include +#include +#include + +namespace Vulkan +{ +class Device; + +enum class MemoryClass : uint8_t +{ + Small = 0, + Medium, + Large, + Huge, + Count +}; + +enum class AllocationMode : uint8_t +{ + LinearHostMappable = 0, + LinearDevice, + LinearDeviceHighPriority, + OptimalResource, + OptimalRenderTarget, + External, + Count +}; + +enum MemoryAccessFlag : uint32_t +{ + MEMORY_ACCESS_WRITE_BIT = 1, + MEMORY_ACCESS_READ_BIT = 2, + MEMORY_ACCESS_READ_WRITE_BIT = MEMORY_ACCESS_WRITE_BIT | MEMORY_ACCESS_READ_BIT +}; +using MemoryAccessFlags = uint32_t; + +struct DeviceAllocation; +class DeviceAllocator; + +class ClassAllocator; +class DeviceAllocator; +class Allocator; +class Device; + +using MiniHeap = Util::LegionHeap; + +struct DeviceAllocation +{ + friend class Util::ArenaAllocator; + friend class ClassAllocator; + friend class Allocator; + friend class DeviceAllocator; + friend class Device; + friend class ImageResourceHolder; + +public: + inline VkDeviceMemory get_memory() const + { + return base; + } + + inline bool allocation_is_global() const + { + return !alloc && base; + } + + inline uint32_t get_offset() const + { + return offset; + } + + inline uint32_t get_size() const + { + return size; + } + + inline uint32_t get_mask() const + { + return mask; + } + + inline bool is_host_allocation() const + { + return host_base != nullptr; + } + + static DeviceAllocation make_imported_allocation(VkDeviceMemory memory, VkDeviceSize size, uint32_t memory_type); + + ExternalHandle export_handle(Device &device); + +private: + VkDeviceMemory base = VK_NULL_HANDLE; + uint8_t *host_base = nullptr; + ClassAllocator *alloc = nullptr; + Util::IntrusiveList::Iterator heap = {}; + uint32_t offset = 0; + uint32_t mask = 0; + uint32_t size = 0; + VkExternalMemoryHandleTypeFlags exportable_types = 0; + + AllocationMode mode = AllocationMode::Count; + uint8_t memory_type = 0; + + void free_global(DeviceAllocator &allocator, uint32_t size, uint32_t memory_type); + void free_immediate(); + void free_immediate(DeviceAllocator &allocator); +}; + +class DeviceAllocationOwner; +struct DeviceAllocationDeleter +{ + void operator()(DeviceAllocationOwner *owner); +}; + +class DeviceAllocationOwner : public Util::IntrusivePtrEnabled +{ +public: + friend class Util::ObjectPool; + friend struct DeviceAllocationDeleter; + + ~DeviceAllocationOwner(); + const DeviceAllocation &get_allocation() const; + +private: + DeviceAllocationOwner(Device *device, const DeviceAllocation &alloc); + Device *device; + DeviceAllocation alloc; +}; +using DeviceAllocationOwnerHandle = Util::IntrusivePtr; + +struct MemoryAllocateInfo +{ + VkMemoryRequirements requirements = {}; + VkMemoryPropertyFlags required_properties = 0; + AllocationMode mode = {}; +}; + +class ClassAllocator : public Util::ArenaAllocator +{ +public: + friend class Util::ArenaAllocator; + + inline void set_global_allocator(DeviceAllocator *allocator, AllocationMode mode, uint32_t memory_type_) + { + global_allocator = allocator; + global_allocator_mode = mode; + memory_type = memory_type_; + } + + inline void set_parent(ClassAllocator *allocator) + { + parent = allocator; + } + +private: + ClassAllocator *parent = nullptr; + uint32_t memory_type = 0; + DeviceAllocator *global_allocator = nullptr; + AllocationMode global_allocator_mode = AllocationMode::Count; + + // Implements curious recurring template pattern calls. + bool allocate_backing_heap(DeviceAllocation *allocation); + void free_backing_heap(DeviceAllocation *allocation); + void prepare_allocation(DeviceAllocation *allocation, Util::IntrusiveList::Iterator heap_itr, + const Util::SuballocationResult &suballoc); +}; + +class Allocator +{ +public: + explicit Allocator(Util::ObjectPool &object_pool); + void operator=(const Allocator &) = delete; + Allocator(const Allocator &) = delete; + + bool allocate(uint32_t size, uint32_t alignment, AllocationMode mode, DeviceAllocation *alloc); + bool allocate_global(uint32_t size, AllocationMode mode, DeviceAllocation *alloc); + bool allocate_dedicated(uint32_t size, AllocationMode mode, DeviceAllocation *alloc, + VkObjectType object_type, uint64_t object, ExternalHandle *external); + + inline ClassAllocator &get_class_allocator(MemoryClass clazz, AllocationMode mode) + { + return classes[unsigned(clazz)][unsigned(mode)]; + } + + static void free(DeviceAllocation *alloc) + { + alloc->free_immediate(); + } + + void set_global_allocator(DeviceAllocator *allocator, uint32_t memory_type_) + { + memory_type = memory_type_; + for (auto &sub : classes) + for (int i = 0; i < Util::ecast(AllocationMode::Count); i++) + sub[i].set_global_allocator(allocator, AllocationMode(i), memory_type); + global_allocator = allocator; + } + +private: + ClassAllocator classes[Util::ecast(MemoryClass::Count)][Util::ecast(AllocationMode::Count)]; + DeviceAllocator *global_allocator = nullptr; + uint32_t memory_type = 0; +}; + +struct HeapBudget +{ + VkDeviceSize max_size; + VkDeviceSize budget_size; + VkDeviceSize tracked_usage; + VkDeviceSize device_usage; +}; + +class DeviceAllocator +{ +public: + void init(Device *device); + + ~DeviceAllocator(); + + bool allocate_generic_memory(uint32_t size, uint32_t alignment, AllocationMode mode, uint32_t memory_type, + DeviceAllocation *alloc); + bool allocate_buffer_memory(uint32_t size, uint32_t alignment, AllocationMode mode, uint32_t memory_type, + VkBuffer buffer, DeviceAllocation *alloc, ExternalHandle *external); + bool allocate_image_memory(uint32_t size, uint32_t alignment, AllocationMode mode, uint32_t memory_type, + VkImage image, bool force_no_dedicated, DeviceAllocation *alloc, ExternalHandle *external); + + void garbage_collect(); + void *map_memory(const DeviceAllocation &alloc, MemoryAccessFlags flags, VkDeviceSize offset, VkDeviceSize length); + void unmap_memory(const DeviceAllocation &alloc, MemoryAccessFlags flags, VkDeviceSize offset, VkDeviceSize length); + + void get_memory_budget(HeapBudget *heaps); + + bool internal_allocate(uint32_t size, uint32_t memory_type, AllocationMode mode, + VkDeviceMemory *memory, uint8_t **host_memory, + VkObjectType object_type, uint64_t dedicated_object, ExternalHandle *external); + void internal_free(uint32_t size, uint32_t memory_type, AllocationMode mode, VkDeviceMemory memory, bool is_mapped); + void internal_free_no_recycle(uint32_t size, uint32_t memory_type, VkDeviceMemory memory); + +private: + Util::ObjectPool object_pool; + std::vector> allocators; + Device *device = nullptr; + const VolkDeviceTable *table = nullptr; + VkPhysicalDeviceMemoryProperties mem_props; + VkDeviceSize atom_alignment = 1; + struct Allocation + { + VkDeviceMemory memory; + uint32_t size; + uint32_t type; + AllocationMode mode; + }; + + struct Heap + { + uint64_t size = 0; + std::vector blocks; + void garbage_collect(Device *device); + }; + + std::vector heaps; + bool memory_heap_is_budget_critical[VK_MAX_MEMORY_HEAPS] = {}; + void get_memory_budget_nolock(HeapBudget *heaps); +}; +} diff --git a/vulkan/pipeline_event.cpp b/vulkan/pipeline_event.cpp new file mode 100644 index 00000000..cfcfc4c8 --- /dev/null +++ b/vulkan/pipeline_event.cpp @@ -0,0 +1,43 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "pipeline_event.hpp" +#include "device.hpp" + +namespace Vulkan +{ +EventHolder::~EventHolder() +{ + if (event) + { + if (internal_sync) + device->destroy_event_nolock(event); + else + device->destroy_event(event); + } +} + +void EventHolderDeleter::operator()(Vulkan::EventHolder *event) +{ + event->device->handle_pool.events.free(event); +} +} \ No newline at end of file diff --git a/vulkan/pipeline_event.hpp b/vulkan/pipeline_event.hpp new file mode 100644 index 00000000..35ee68d8 --- /dev/null +++ b/vulkan/pipeline_event.hpp @@ -0,0 +1,67 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include "vulkan_common.hpp" +#include "cookie.hpp" +#include "object_pool.hpp" + +namespace Vulkan +{ +class Device; +class EventHolder; + +struct EventHolderDeleter +{ + void operator()(EventHolder *event); +}; + +class EventHolder : public Util::IntrusivePtrEnabled, + public InternalSyncEnabled +{ +public: + friend struct EventHolderDeleter; + + ~EventHolder(); + + const VkEvent &get_event() const + { + return event; + } + +private: + friend class Util::ObjectPool; + EventHolder(Device *device_, VkEvent event_) + : device(device_) + , event(event_) + { + } + + Device *device; + VkEvent event; +}; + +using PipelineEvent = Util::IntrusivePtr; + +} diff --git a/vulkan/query_pool.cpp b/vulkan/query_pool.cpp new file mode 100644 index 00000000..c6cc8b5f --- /dev/null +++ b/vulkan/query_pool.cpp @@ -0,0 +1,528 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "query_pool.hpp" +#include "device.hpp" +#include + +namespace Vulkan +{ +static const char *storage_to_str(VkPerformanceCounterStorageKHR storage) +{ + switch (storage) + { + case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR: + return "float32"; + case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR: + return "float64"; + case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR: + return "int32"; + case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR: + return "int64"; + case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR: + return "uint32"; + case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR: + return "uint64"; + default: + return "???"; + } +} + +static const char *scope_to_str(VkPerformanceCounterScopeKHR scope) +{ + switch (scope) + { + case VK_QUERY_SCOPE_COMMAND_BUFFER_KHR: + return "command buffer"; + case VK_QUERY_SCOPE_RENDER_PASS_KHR: + return "render pass"; + case VK_QUERY_SCOPE_COMMAND_KHR: + return "command"; + default: + return "???"; + } +} + +static const char *unit_to_str(VkPerformanceCounterUnitKHR unit) +{ + switch (unit) + { + case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR: + return "A"; + case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR: + return "bytes"; + case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR: + return "bytes / second"; + case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR: + return "cycles"; + case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR: + return "units"; + case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR: + return "Hz"; + case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR: + return "K"; + case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR: + return "ns"; + case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR: + return "%"; + case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR: + return "V"; + case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR: + return "W"; + default: + return "???"; + } +} + +void PerformanceQueryPool::log_available_counters(const VkPerformanceCounterKHR *counters, + const VkPerformanceCounterDescriptionKHR *descs, + uint32_t count) +{ + for (uint32_t i = 0; i < count; i++) + { + LOGI(" %s: %s\n", descs[i].name, descs[i].description); + LOGI(" Storage: %s\n", storage_to_str(counters[i].storage)); + LOGI(" Scope: %s\n", scope_to_str(counters[i].scope)); + LOGI(" Unit: %s\n", unit_to_str(counters[i].unit)); + } +} + +void PerformanceQueryPool::init_device(Device *device_, uint32_t queue_family_index_) +{ + device = device_; + queue_family_index = queue_family_index_; + + if (!device->get_device_features().performance_query_features.performanceCounterQueryPools) + return; + + uint32_t num_counters = 0; + if (vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + device->get_physical_device(), + queue_family_index, + &num_counters, + nullptr, nullptr) != VK_SUCCESS) + { + LOGE("Failed to enumerate performance counters.\n"); + return; + } + + counters.resize(num_counters, { VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR }); + counter_descriptions.resize(num_counters, { VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR }); + + if (vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( + device->get_physical_device(), + queue_family_index, + &num_counters, + counters.data(), counter_descriptions.data()) != VK_SUCCESS) + { + LOGE("Failed to enumerate performance counters.\n"); + return; + } +} + +PerformanceQueryPool::~PerformanceQueryPool() +{ + if (pool) + device->get_device_table().vkDestroyQueryPool(device->get_device(), pool, nullptr); +} + +void PerformanceQueryPool::begin_command_buffer(VkCommandBuffer cmd) +{ + if (!pool) + return; + + auto &table = device->get_device_table(); + table.vkResetQueryPoolEXT(device->get_device(), pool, 0, 1); + table.vkCmdBeginQuery(cmd, pool, 0, 0); + + VkMemoryBarrier barrier = { VK_STRUCTURE_TYPE_MEMORY_BARRIER }; + barrier.srcAccessMask = VK_ACCESS_MEMORY_WRITE_BIT; + barrier.dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT | VK_ACCESS_MEMORY_READ_BIT; + table.vkCmdPipelineBarrier(cmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, + 0, 1, &barrier, 0, nullptr, 0, nullptr); +} + +void PerformanceQueryPool::end_command_buffer(VkCommandBuffer cmd) +{ + if (!pool) + return; + + auto &table = device->get_device_table(); + + VkMemoryBarrier barrier = { VK_STRUCTURE_TYPE_MEMORY_BARRIER }; + barrier.srcAccessMask = VK_ACCESS_MEMORY_WRITE_BIT; + barrier.dstAccessMask = VK_ACCESS_MEMORY_WRITE_BIT | VK_ACCESS_MEMORY_READ_BIT; + table.vkCmdPipelineBarrier(cmd, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, + 0, 1, &barrier, 0, nullptr, 0, nullptr); + table.vkCmdEndQuery(cmd, pool, 0); +} + +void PerformanceQueryPool::report() +{ + if (pool == VK_NULL_HANDLE) + { + LOGE("No query pool is set up.\n"); + return; + } + + auto &table = device->get_device_table(); + if (table.vkGetQueryPoolResults(device->get_device(), pool, + 0, 1, + results.size() * sizeof(VkPerformanceCounterResultKHR), + results.data(), + sizeof(VkPerformanceCounterResultKHR), + VK_QUERY_RESULT_WAIT_BIT) != VK_SUCCESS) + { + LOGE("Getting performance counters did not succeed.\n"); + } + + size_t num_counters = results.size(); + + LOGI("\n=== Profiling result ===\n"); + for (size_t i = 0; i < num_counters; i++) + { + auto &counter = counters[active_indices[i]]; + auto &desc = counter_descriptions[active_indices[i]]; + + switch (counter.storage) + { + case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR: + LOGI(" %s (%s): %d %s\n", desc.name, desc.description, results[i].int32, unit_to_str(counter.unit)); + break; + case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR: + LOGI(" %s (%s): %lld %s\n", desc.name, desc.description, static_cast(results[i].int64), unit_to_str(counter.unit)); + break; + case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR: + LOGI(" %s (%s): %u %s\n", desc.name, desc.description, results[i].uint32, unit_to_str(counter.unit)); + break; + case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR: + LOGI(" %s (%s): %llu %s\n", desc.name, desc.description, static_cast(results[i].uint64), unit_to_str(counter.unit)); + break; + case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR: + LOGI(" %s (%s): %g %s\n", desc.name, desc.description, results[i].float32, unit_to_str(counter.unit)); + break; + case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR: + LOGI(" %s (%s): %g %s\n", desc.name, desc.description, results[i].float64, unit_to_str(counter.unit)); + break; + default: + break; + } + } + LOGI("================================\n\n"); +} + +uint32_t PerformanceQueryPool::get_num_counters() const +{ + return uint32_t(counters.size()); +} + +const VkPerformanceCounterKHR *PerformanceQueryPool::get_available_counters() const +{ + return counters.data(); +} + +const VkPerformanceCounterDescriptionKHR *PerformanceQueryPool::get_available_counter_descs() const +{ + return counter_descriptions.data(); +} + +bool PerformanceQueryPool::init_counters(const std::vector &counter_names) +{ + if (!device->get_device_features().performance_query_features.performanceCounterQueryPools) + { + LOGE("Device does not support VK_KHR_performance_query.\n"); + return false; + } + + if (!device->get_device_features().vk12_features.hostQueryReset) + { + LOGE("Device does not support host query reset.\n"); + return false; + } + + auto &table = device->get_device_table(); + if (pool) + table.vkDestroyQueryPool(device->get_device(), pool, nullptr); + pool = VK_NULL_HANDLE; + + VkQueryPoolPerformanceCreateInfoKHR performance_info = { VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR }; + VkQueryPoolCreateInfo info = { VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO }; + info.pNext = &performance_info; + + info.queryType = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR; + info.queryCount = 1; + + active_indices.clear(); + + for (auto &name : counter_names) + { + auto itr = find_if(begin(counter_descriptions), end(counter_descriptions), [&](const VkPerformanceCounterDescriptionKHR &desc) { + return name == desc.name; + }); + + if (itr != end(counter_descriptions)) + { + LOGI("Found counter %s: %s\n", itr->name, itr->description); + active_indices.push_back(itr - begin(counter_descriptions)); + } + } + + if (active_indices.empty()) + { + LOGW("No performance counters were enabled.\n"); + return false; + } + + performance_info.queueFamilyIndex = queue_family_index; + performance_info.counterIndexCount = active_indices.size(); + performance_info.pCounterIndices = active_indices.data(); + results.resize(active_indices.size()); + + uint32_t num_passes = 0; + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(device->get_physical_device(), + &performance_info, &num_passes); + + if (num_passes != 1) + { + LOGE("Implementation requires %u passes to query performance counters. Cannot create query pool.\n", + num_passes); + return false; + } + + if (table.vkCreateQueryPool(device->get_device(), &info, nullptr, &pool) != VK_SUCCESS) + { + LOGE("Failed to create performance query pool.\n"); + return false; + } + + return true; +} + +QueryPool::QueryPool(Device *device_) + : device(device_) + , table(device_->get_device_table()) +{ + supports_timestamp = device->get_gpu_properties().limits.timestampComputeAndGraphics && + device->get_device_features().vk12_features.hostQueryReset; + + // Ignore timestampValidBits and friends for now. + if (supports_timestamp) + add_pool(); +} + +QueryPool::~QueryPool() +{ + for (auto &pool : pools) + table.vkDestroyQueryPool(device->get_device(), pool.pool, nullptr); +} + +void QueryPool::begin() +{ + for (unsigned i = 0; i <= pool_index; i++) + { + if (i >= pools.size()) + continue; + + auto &pool = pools[i]; + if (pool.index == 0) + continue; + + table.vkGetQueryPoolResults(device->get_device(), pool.pool, + 0, pool.index, + pool.index * sizeof(uint64_t), + pool.query_results.data(), + sizeof(uint64_t), + VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT); + + for (unsigned j = 0; j < pool.index; j++) + pool.cookies[j]->signal_timestamp_ticks(pool.query_results[j]); + + table.vkResetQueryPool(device->get_device(), pool.pool, 0, pool.index); + } + + pool_index = 0; + for (auto &pool : pools) + pool.index = 0; +} + +void QueryPool::add_pool() +{ + VkQueryPoolCreateInfo pool_info = { VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO }; + pool_info.queryType = VK_QUERY_TYPE_TIMESTAMP; + pool_info.queryCount = 64; + + Pool pool; + table.vkCreateQueryPool(device->get_device(), &pool_info, nullptr, &pool.pool); + pool.size = pool_info.queryCount; + pool.index = 0; + pool.query_results.resize(pool.size); + pool.cookies.resize(pool.size); + + table.vkResetQueryPool(device->get_device(), pool.pool, 0, pool.size); + + pools.push_back(std::move(pool)); +} + +QueryPoolHandle QueryPool::write_timestamp(VkCommandBuffer cmd, VkPipelineStageFlags2 stage) +{ + if (!supports_timestamp) + { + LOGI("Timestamps are not supported on this implementation.\n"); + return {}; + } + + VK_ASSERT((stage & (stage - 1)) == 0); + + if (pools[pool_index].index >= pools[pool_index].size) + pool_index++; + + if (pool_index >= pools.size()) + add_pool(); + + auto &pool = pools[pool_index]; + + auto cookie = QueryPoolHandle(device->handle_pool.query.allocate(device, true)); + pool.cookies[pool.index] = cookie; + + if (device->get_device_features().vk13_features.synchronization2) + table.vkCmdWriteTimestamp2(cmd, stage, pool.pool, pool.index); + else + { + table.vkCmdWriteTimestamp(cmd, static_cast(convert_vk_src_stage2(stage)), + pool.pool, pool.index); + } + + pool.index++; + return cookie; +} + +void QueryPoolResultDeleter::operator()(QueryPoolResult *query) +{ + query->device->handle_pool.query.free(query); +} + +void TimestampInterval::mark_end_of_frame_context() +{ + if (total_time > 0.0) + total_frame_iterations++; +} + +uint64_t TimestampInterval::get_total_accumulations() const +{ + return total_accumulations; +} + +uint64_t TimestampInterval::get_total_frame_iterations() const +{ + return total_frame_iterations; +} + +double TimestampInterval::get_total_time() const +{ + return total_time; +} + +void TimestampInterval::accumulate_time(double t) +{ + total_time += t; + total_accumulations++; +} + +double TimestampInterval::get_time_per_iteration() const +{ + if (total_frame_iterations) + return total_time / double(total_frame_iterations); + else + return 0.0; +} + +double TimestampInterval::get_time_per_accumulation() const +{ + if (total_accumulations) + return total_time / double(total_accumulations); + else + return 0.0; +} + +const std::string &TimestampInterval::get_tag() const +{ + return tag; +} + +void TimestampInterval::reset() +{ + total_time = 0.0; + total_accumulations = 0; + total_frame_iterations = 0; +} + +TimestampInterval::TimestampInterval(std::string tag_) + : tag(std::move(tag_)) +{ +} + +TimestampInterval *TimestampIntervalManager::get_timestamp_tag(const char *tag) +{ + Util::Hasher h; + h.string(tag); + return timestamps.emplace_yield(h.get(), tag); +} + +void TimestampIntervalManager::mark_end_of_frame_context() +{ + for (auto ×tamp : timestamps) + timestamp.mark_end_of_frame_context(); +} + +void TimestampIntervalManager::reset() +{ + for (auto ×tamp : timestamps) + timestamp.reset(); +} + +void TimestampIntervalManager::log_simple(const TimestampIntervalReportCallback &func) const +{ + for (auto ×tamp : timestamps) + { + if (timestamp.get_total_frame_iterations()) + { + TimestampIntervalReport report = {}; + report.time_per_accumulation = timestamp.get_time_per_accumulation(); + report.time_per_frame_context = timestamp.get_time_per_iteration(); + report.accumulations_per_frame_context = + double(timestamp.get_total_accumulations()) / double(timestamp.get_total_frame_iterations()); + + if (func) + { + func(timestamp.get_tag(), report); + } + else + { + LOGI("Timestamp tag report: %s\n", timestamp.get_tag().c_str()); + LOGI(" %.3f ms / iteration\n", 1000.0 * report.time_per_accumulation); + LOGI(" %.3f ms / frame context\n", 1000.0 * report.time_per_frame_context); + LOGI(" %.3f iterations / frame context\n", report.accumulations_per_frame_context); + } + } + } +} +} \ No newline at end of file diff --git a/vulkan/query_pool.hpp b/vulkan/query_pool.hpp new file mode 100644 index 00000000..314a605d --- /dev/null +++ b/vulkan/query_pool.hpp @@ -0,0 +1,186 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include "vulkan_common.hpp" +#include "object_pool.hpp" +#include + +namespace Vulkan +{ +class Device; + +class PerformanceQueryPool +{ +public: + void init_device(Device *device, uint32_t queue_family_index); + ~PerformanceQueryPool(); + bool init_counters(const std::vector &enable_counter_names); + + void begin_command_buffer(VkCommandBuffer cmd); + void end_command_buffer(VkCommandBuffer cmd); + + void report(); + + uint32_t get_num_counters() const; + const VkPerformanceCounterKHR *get_available_counters() const; + const VkPerformanceCounterDescriptionKHR *get_available_counter_descs() const; + + static void log_available_counters(const VkPerformanceCounterKHR *counters, + const VkPerformanceCounterDescriptionKHR *descs, + uint32_t count); + +private: + Device *device = nullptr; + uint32_t queue_family_index = 0; + VkQueryPool pool = VK_NULL_HANDLE; + std::vector results; + std::vector counters; + std::vector counter_descriptions; + std::vector active_indices; +}; + +class QueryPoolResult; + +struct QueryPoolResultDeleter +{ + void operator()(QueryPoolResult *query); +}; + +class QueryPoolResult : public Util::IntrusivePtrEnabled +{ +public: + friend struct QueryPoolResultDeleter; + + void signal_timestamp_ticks(uint64_t ticks) + { + timestamp_ticks = ticks; + has_timestamp = true; + } + + uint64_t get_timestamp_ticks() const + { + return timestamp_ticks; + } + + bool is_signalled() const + { + return has_timestamp; + } + + bool is_device_timebase() const + { + return device_timebase; + } + +private: + friend class Util::ObjectPool; + + explicit QueryPoolResult(Device *device_, bool device_timebase_) + : device(device_), device_timebase(device_timebase_) + {} + + Device *device; + uint64_t timestamp_ticks = 0; + bool has_timestamp = false; + bool device_timebase = false; +}; + +using QueryPoolHandle = Util::IntrusivePtr; + +class QueryPool +{ +public: + explicit QueryPool(Device *device); + + ~QueryPool(); + + void begin(); + + QueryPoolHandle write_timestamp(VkCommandBuffer cmd, VkPipelineStageFlags2 stage); + +private: + Device *device; + const VolkDeviceTable &table; + + struct Pool + { + VkQueryPool pool = VK_NULL_HANDLE; + std::vector query_results; + std::vector cookies; + unsigned index = 0; + unsigned size = 0; + }; + std::vector pools; + unsigned pool_index = 0; + + void add_pool(); + + bool supports_timestamp = false; +}; + +class TimestampInterval : public Util::IntrusiveHashMapEnabled +{ +public: + explicit TimestampInterval(std::string tag); + + void accumulate_time(double t); + double get_time_per_iteration() const; + double get_time_per_accumulation() const; + const std::string &get_tag() const; + void mark_end_of_frame_context(); + + double get_total_time() const; + uint64_t get_total_frame_iterations() const; + uint64_t get_total_accumulations() const; + void reset(); + +private: + std::string tag; + double total_time = 0.0; + uint64_t total_frame_iterations = 0; + uint64_t total_accumulations = 0; +}; + +struct TimestampIntervalReport +{ + double time_per_accumulation; + double time_per_frame_context; + double accumulations_per_frame_context; +}; + +using TimestampIntervalReportCallback = std::function; + +class TimestampIntervalManager +{ +public: + TimestampInterval *get_timestamp_tag(const char *tag); + void mark_end_of_frame_context(); + void reset(); + void log_simple(const TimestampIntervalReportCallback &func = {}) const; + +private: + Util::IntrusiveHashMap timestamps; +}; +} diff --git a/vulkan/quirks.hpp b/vulkan/quirks.hpp new file mode 100644 index 00000000..fb099827 --- /dev/null +++ b/vulkan/quirks.hpp @@ -0,0 +1,51 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +namespace Vulkan +{ +struct ImplementationQuirks +{ + bool instance_deferred_lights = true; + bool merge_subpasses = true; + bool use_transient_color = true; + bool use_transient_depth_stencil = true; + bool queue_wait_on_submission = false; + bool use_async_compute_post = true; + bool render_graph_force_single_queue = false; + bool force_no_subgroups = false; + bool force_no_subgroup_shuffle = false; + bool force_no_subgroup_size_control = false; + + static ImplementationQuirks &get(); +}; + +struct ImplementationWorkarounds +{ + bool emulate_event_as_pipeline_barrier = false; + bool broken_pipeline_cache_control = false; + bool force_host_cached = false; + bool force_sync1_access = false; + bool broken_push_descriptors = false; +}; +} diff --git a/vulkan/render_pass.cpp b/vulkan/render_pass.cpp new file mode 100644 index 00000000..eff19aec --- /dev/null +++ b/vulkan/render_pass.cpp @@ -0,0 +1,1031 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "render_pass.hpp" +#include "stack_allocator.hpp" +#include "device.hpp" +#include "quirks.hpp" +#include +#include + +using namespace Util; + +#define LOCK() std::lock_guard holder__{lock} + +namespace Vulkan +{ +void RenderPass::setup_subpasses(const VkRenderPassCreateInfo2 &create_info) +{ + auto *attachments = create_info.pAttachments; + + // Store the important subpass information for later. + for (uint32_t i = 0; i < create_info.subpassCount; i++) + { + auto &subpass = create_info.pSubpasses[i]; + + SubpassInfo subpass_info = {}; + subpass_info.num_color_attachments = subpass.colorAttachmentCount; + subpass_info.num_input_attachments = subpass.inputAttachmentCount; + subpass_info.depth_stencil_attachment = *subpass.pDepthStencilAttachment; + memcpy(subpass_info.color_attachments, subpass.pColorAttachments, + subpass.colorAttachmentCount * sizeof(*subpass.pColorAttachments)); + memcpy(subpass_info.input_attachments, subpass.pInputAttachments, + subpass.inputAttachmentCount * sizeof(*subpass.pInputAttachments)); + + unsigned samples = 0; + for (unsigned att = 0; att < subpass_info.num_color_attachments; att++) + { + if (subpass_info.color_attachments[att].attachment == VK_ATTACHMENT_UNUSED) + continue; + + unsigned samp = attachments[subpass_info.color_attachments[att].attachment].samples; + if (samples && (samp != samples)) + VK_ASSERT(samp == samples); + samples = samp; + } + + if (subpass_info.depth_stencil_attachment.attachment != VK_ATTACHMENT_UNUSED) + { + unsigned samp = attachments[subpass_info.depth_stencil_attachment.attachment].samples; + if (samples && (samp != samples)) + VK_ASSERT(samp == samples); + samples = samp; + } + + VK_ASSERT(samples > 0); + subpass_info.samples = samples; + subpasses_info.push_back(subpass_info); + } +} + +RenderPass::RenderPass(Hash hash, Device *device_, const VkRenderPassCreateInfo2 &create_info) + : IntrusiveHashMapEnabled(hash) + , device(device_) +{ + auto &table = device->get_device_table(); + unsigned num_color_attachments = 0; + if (create_info.attachmentCount > 0) + { + auto &att = create_info.pAttachments[create_info.attachmentCount - 1]; + if (format_has_depth_or_stencil_aspect(att.format)) + { + depth_stencil = att.format; + num_color_attachments = create_info.attachmentCount - 1; + } + else + num_color_attachments = create_info.attachmentCount; + } + + for (unsigned i = 0; i < num_color_attachments; i++) + color_attachments[i] = create_info.pAttachments[i].format; + + // Store the important subpass information for later. + setup_subpasses(create_info); + +#ifdef VULKAN_DEBUG + LOGI("Creating render pass.\n"); +#endif + if (table.vkCreateRenderPass2(device->get_device(), &create_info, nullptr, &render_pass) != VK_SUCCESS) + LOGE("Failed to create render pass."); + +#ifdef GRANITE_VULKAN_FOSSILIZE + device->register_render_pass(render_pass, get_hash(), create_info); +#endif +} + +RenderPass::RenderPass(Hash hash, Device *device_, const RenderPassInfo &info) + : IntrusiveHashMapEnabled(hash) + , device(device_) +{ + std::fill(std::begin(color_attachments), std::end(color_attachments), VK_FORMAT_UNDEFINED); + + VK_ASSERT(info.num_color_attachments || info.depth_stencil); + + // Want to make load/store to transient a very explicit thing to do, since it will kill performance. + bool enable_transient_store = (info.op_flags & RENDER_PASS_OP_ENABLE_TRANSIENT_STORE_BIT) != 0; + bool enable_transient_load = (info.op_flags & RENDER_PASS_OP_ENABLE_TRANSIENT_LOAD_BIT) != 0; + bool multiview = info.num_layers > 1; + + // Set up default subpass info structure if we don't have it. + auto *subpass_infos = info.subpasses; + unsigned num_subpasses = info.num_subpasses; + RenderPassInfo::Subpass default_subpass_info; + if (!info.subpasses) + { + default_subpass_info.num_color_attachments = info.num_color_attachments; + if (info.op_flags & RENDER_PASS_OP_DEPTH_STENCIL_READ_ONLY_BIT) + default_subpass_info.depth_stencil_mode = RenderPassInfo::DepthStencil::ReadOnly; + else + default_subpass_info.depth_stencil_mode = RenderPassInfo::DepthStencil::ReadWrite; + + for (unsigned i = 0; i < info.num_color_attachments; i++) + default_subpass_info.color_attachments[i] = i; + num_subpasses = 1; + subpass_infos = &default_subpass_info; + } + + // First, set up attachment descriptions. + const unsigned num_attachments = info.num_color_attachments + (info.depth_stencil ? 1 : 0); + VkAttachmentDescription2 attachments[VULKAN_NUM_ATTACHMENTS + 1]; + uint32_t implicit_transitions = 0; + uint32_t implicit_bottom_of_pipe = 0; + + VkAttachmentLoadOp ds_load_op = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + VkAttachmentStoreOp ds_store_op = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + VK_ASSERT(!(info.clear_attachments & info.load_attachments)); + + const auto color_load_op = [&info](unsigned index) -> VkAttachmentLoadOp { + if ((info.clear_attachments & (1u << index)) != 0) + return VK_ATTACHMENT_LOAD_OP_CLEAR; + else if ((info.load_attachments & (1u << index)) != 0) + return VK_ATTACHMENT_LOAD_OP_LOAD; + else + return VK_ATTACHMENT_LOAD_OP_DONT_CARE; + }; + + const auto color_store_op = [&info](unsigned index) -> VkAttachmentStoreOp { + if ((info.store_attachments & (1u << index)) != 0) + return VK_ATTACHMENT_STORE_OP_STORE; + else + return VK_ATTACHMENT_STORE_OP_DONT_CARE; + }; + + if (info.op_flags & RENDER_PASS_OP_CLEAR_DEPTH_STENCIL_BIT) + ds_load_op = VK_ATTACHMENT_LOAD_OP_CLEAR; + else if (info.op_flags & RENDER_PASS_OP_LOAD_DEPTH_STENCIL_BIT) + ds_load_op = VK_ATTACHMENT_LOAD_OP_LOAD; + + if (info.op_flags & RENDER_PASS_OP_STORE_DEPTH_STENCIL_BIT) + { + ds_store_op = VK_ATTACHMENT_STORE_OP_STORE; + } + else if (info.op_flags & RENDER_PASS_OP_PRESERVE_DEPTH_STENCIL_BIT) + { + ds_store_op = device->get_device_features().supports_store_op_none ? + VK_ATTACHMENT_STORE_OP_NONE : VK_ATTACHMENT_STORE_OP_STORE; + + if (ds_load_op != VK_ATTACHMENT_LOAD_OP_LOAD) + ds_store_op = VK_ATTACHMENT_STORE_OP_STORE; + } + + bool ds_read_only = (info.op_flags & RENDER_PASS_OP_DEPTH_STENCIL_READ_ONLY_BIT) != 0; + VkImageLayout depth_stencil_layout = VK_IMAGE_LAYOUT_UNDEFINED; + if (info.depth_stencil) + { + depth_stencil_layout = info.depth_stencil->get_image().get_layout( + ds_read_only ? + VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL : + VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); + } + + for (unsigned i = 0; i < info.num_color_attachments; i++) + { + VK_ASSERT(info.color_attachments[i]); + color_attachments[i] = info.color_attachments[i]->get_format(); + auto &image = info.color_attachments[i]->get_image(); + auto &att = attachments[i]; + att = { VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 }; + att.format = color_attachments[i]; + att.samples = image.get_create_info().samples; + att.loadOp = color_load_op(i); + att.storeOp = color_store_op(i); + att.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + att.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + // Undefined final layout here for now means that we will just use the layout of the last + // subpass which uses this attachment to avoid any dummy transition at the end. + att.finalLayout = VK_IMAGE_LAYOUT_UNDEFINED; + + if (image.get_create_info().domain == ImageDomain::Transient) + { + if (enable_transient_load) + { + // The transient will behave like a normal image. + att.initialLayout = info.color_attachments[i]->get_image().get_layout(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); + } + else + { + // Force a clean discard. + VK_ASSERT(att.loadOp != VK_ATTACHMENT_LOAD_OP_LOAD); + att.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + } + + if (!enable_transient_store) + att.storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + + implicit_transitions |= 1u << i; + } + else if (image.is_swapchain_image()) + { + if (att.loadOp == VK_ATTACHMENT_LOAD_OP_LOAD) + att.initialLayout = image.get_swapchain_layout(); + else + att.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + + att.finalLayout = image.get_swapchain_layout(); + + // If we transition from PRESENT_SRC_KHR, this came from an implicit external subpass dependency + // which happens in BOTTOM_OF_PIPE. To properly transition away from it, we must wait for BOTTOM_OF_PIPE, + // without any memory barriers, since memory has been made available in the implicit barrier. + if (att.loadOp == VK_ATTACHMENT_LOAD_OP_LOAD) + implicit_bottom_of_pipe |= 1u << i; + implicit_transitions |= 1u << i; + } + else + att.initialLayout = info.color_attachments[i]->get_image().get_layout(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); + } + + depth_stencil = info.depth_stencil ? info.depth_stencil->get_format() : VK_FORMAT_UNDEFINED; + if (info.depth_stencil) + { + auto &image = info.depth_stencil->get_image(); + auto &att = attachments[info.num_color_attachments]; + att = { VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 }; + att.format = depth_stencil; + att.samples = image.get_create_info().samples; + att.loadOp = ds_load_op; + att.storeOp = ds_store_op; + // Undefined final layout here for now means that we will just use the layout of the last + // subpass which uses this attachment to avoid any dummy transition at the end. + att.finalLayout = VK_IMAGE_LAYOUT_UNDEFINED; + + if (format_to_aspect_mask(depth_stencil) & VK_IMAGE_ASPECT_STENCIL_BIT) + { + att.stencilLoadOp = ds_load_op; + att.stencilStoreOp = ds_store_op; + } + else + { + att.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + att.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + } + + if (image.get_create_info().domain == ImageDomain::Transient) + { + if (enable_transient_load) + { + // The transient will behave like a normal image. + att.initialLayout = depth_stencil_layout; + } + else + { + if (att.loadOp == VK_ATTACHMENT_LOAD_OP_LOAD) + att.loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + if (att.stencilLoadOp == VK_ATTACHMENT_LOAD_OP_LOAD) + att.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; + + // For transient attachments we force the layouts. + att.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + } + + if (!enable_transient_store) + { + att.storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + att.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; + } + + implicit_transitions |= 1u << info.num_color_attachments; + } + else + att.initialLayout = depth_stencil_layout; + } + + Util::StackAllocator reference_allocator; + Util::StackAllocator preserve_allocator; + std::vector subpasses(num_subpasses); + std::vector external_dependencies; + + for (unsigned i = 0; i < num_subpasses; i++) + { + auto *colors = reference_allocator.allocate_cleared(subpass_infos[i].num_color_attachments); + auto *inputs = reference_allocator.allocate_cleared(subpass_infos[i].num_input_attachments); + auto *resolves = reference_allocator.allocate_cleared(subpass_infos[i].num_color_attachments); + auto *depth = reference_allocator.allocate_cleared(1); + + auto &subpass = subpasses[i]; + subpass = { VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 }; + subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; + subpass.colorAttachmentCount = subpass_infos[i].num_color_attachments; + subpass.pColorAttachments = colors; + subpass.inputAttachmentCount = subpass_infos[i].num_input_attachments; + subpass.pInputAttachments = inputs; + subpass.pDepthStencilAttachment = depth; + + if (multiview && device->get_device_features().vk11_features.multiview) + subpass.viewMask = ((1u << info.num_layers) - 1u) << info.base_layer; + else if (multiview) + LOGE("Multiview not supported. Pretending render pass is not multiview."); + + if (subpass_infos[i].num_resolve_attachments) + { + VK_ASSERT(subpass_infos[i].num_color_attachments == subpass_infos[i].num_resolve_attachments); + subpass.pResolveAttachments = resolves; + } + + for (unsigned j = 0; j < subpass.colorAttachmentCount; j++) + { + auto att = subpass_infos[i].color_attachments[j]; + VK_ASSERT(att == VK_ATTACHMENT_UNUSED || (att < num_attachments)); + colors[j].sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2; + colors[j].attachment = att; + // Fill in later. + colors[j].layout = VK_IMAGE_LAYOUT_UNDEFINED; + } + + for (unsigned j = 0; j < subpass.inputAttachmentCount; j++) + { + auto att = subpass_infos[i].input_attachments[j]; + VK_ASSERT(att == VK_ATTACHMENT_UNUSED || (att < num_attachments)); + inputs[j].sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2; + inputs[j].attachment = att; + if (att != VK_ATTACHMENT_UNUSED) + { + if (att < info.num_color_attachments) + inputs[j].aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + else + inputs[j].aspectMask = format_to_aspect_mask(info.depth_stencil->get_format()); + } + // Fill in later. + inputs[j].layout = VK_IMAGE_LAYOUT_UNDEFINED; + } + + if (subpass.pResolveAttachments) + { + for (unsigned j = 0; j < subpass.colorAttachmentCount; j++) + { + auto att = subpass_infos[i].resolve_attachments[j]; + VK_ASSERT(att == VK_ATTACHMENT_UNUSED || (att < num_attachments)); + resolves[j].sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2; + resolves[j].attachment = att; + // Fill in later. + resolves[j].layout = VK_IMAGE_LAYOUT_UNDEFINED; + } + } + + depth->sType = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2; + + if (info.depth_stencil && subpass_infos[i].depth_stencil_mode != RenderPassInfo::DepthStencil::None) + { + depth->attachment = info.num_color_attachments; + // Fill in later. + depth->layout = VK_IMAGE_LAYOUT_UNDEFINED; + } + else + { + depth->attachment = VK_ATTACHMENT_UNUSED; + depth->layout = VK_IMAGE_LAYOUT_UNDEFINED; + } + } + + const auto find_color = [&](unsigned subpass, unsigned attachment) -> VkAttachmentReference2 * { + auto *colors = subpasses[subpass].pColorAttachments; + for (unsigned i = 0; i < subpasses[subpass].colorAttachmentCount; i++) + if (colors[i].attachment == attachment) + return const_cast(&colors[i]); + return nullptr; + }; + + const auto find_resolve = [&](unsigned subpass, unsigned attachment) -> VkAttachmentReference2 * { + if (!subpasses[subpass].pResolveAttachments) + return nullptr; + + auto *resolves = subpasses[subpass].pResolveAttachments; + for (unsigned i = 0; i < subpasses[subpass].colorAttachmentCount; i++) + if (resolves[i].attachment == attachment) + return const_cast(&resolves[i]); + return nullptr; + }; + + const auto find_input = [&](unsigned subpass, unsigned attachment) -> VkAttachmentReference2 * { + auto *inputs = subpasses[subpass].pInputAttachments; + for (unsigned i = 0; i < subpasses[subpass].inputAttachmentCount; i++) + if (inputs[i].attachment == attachment) + return const_cast(&inputs[i]); + return nullptr; + }; + + const auto find_depth_stencil = [&](unsigned subpass, unsigned attachment) -> VkAttachmentReference2 * { + if (subpasses[subpass].pDepthStencilAttachment->attachment == attachment) + return const_cast(subpasses[subpass].pDepthStencilAttachment); + else + return nullptr; + }; + + // Now, figure out how each attachment is used throughout the subpasses. + // Either we don't care (inherit previous pass), or we need something specific. + // Start with initial layouts. + uint32_t preserve_masks[VULKAN_NUM_ATTACHMENTS + 1] = {}; + + // Last subpass which makes use of an attachment. + unsigned last_subpass_for_attachment[VULKAN_NUM_ATTACHMENTS + 1] = {}; + + VK_ASSERT(num_subpasses <= 32); + + // 1 << subpass bit set if there are color attachment self-dependencies in the subpass. + uint32_t color_self_dependencies = 0; + // 1 << subpass bit set if there are depth-stencil attachment self-dependencies in the subpass. + uint32_t depth_self_dependencies = 0; + + // 1 << subpass bit set if any input attachment is read in the subpass. + uint32_t input_attachment_read = 0; + uint32_t color_attachment_read_write = 0; + uint32_t depth_stencil_attachment_write = 0; + uint32_t depth_stencil_attachment_read = 0; + + uint32_t external_color_dependencies = 0; + uint32_t external_depth_dependencies = 0; + uint32_t external_input_dependencies = 0; + uint32_t external_bottom_of_pipe_dependencies = 0; + + for (unsigned attachment = 0; attachment < num_attachments; attachment++) + { + bool used = false; + auto current_layout = attachments[attachment].initialLayout; + for (unsigned subpass = 0; subpass < num_subpasses; subpass++) + { + auto *color = find_color(subpass, attachment); + auto *resolve = find_resolve(subpass, attachment); + auto *input = find_input(subpass, attachment); + auto *depth = find_depth_stencil(subpass, attachment); + + // Sanity check. + if (color || resolve) + VK_ASSERT(!depth); + if (depth) + VK_ASSERT(!color && !resolve); + if (resolve) + VK_ASSERT(!color && !depth); + + if (!color && !input && !depth && !resolve) + { + if (used) + preserve_masks[attachment] |= 1u << subpass; + continue; + } + + if (!used && (implicit_transitions & (1u << attachment))) + { + // This is the first subpass we need implicit transitions. + if (color) + external_color_dependencies |= 1u << subpass; + if (depth) + external_depth_dependencies |= 1u << subpass; + if (input) + external_input_dependencies |= 1u << subpass; + } + + if (!used && (implicit_bottom_of_pipe & (1u << attachment))) + external_bottom_of_pipe_dependencies |= 1u << subpass; + + if (resolve && input) // If used as both resolve attachment and input attachment in same subpass, need GENERAL. + { + current_layout = VK_IMAGE_LAYOUT_GENERAL; + resolve->layout = current_layout; + input->layout = current_layout; + + // If the attachment is first used as a feedback attachment, the initial layout should actually be GENERAL. + if (!used && attachments[attachment].initialLayout != VK_IMAGE_LAYOUT_UNDEFINED) + attachments[attachment].initialLayout = current_layout; + + // If first subpass changes the layout, we'll need to inject an external subpass dependency. + if (!used && attachments[attachment].initialLayout != current_layout) + { + external_color_dependencies |= 1u << subpass; + external_input_dependencies |= 1u << subpass; + } + + used = true; + last_subpass_for_attachment[attachment] = subpass; + + color_attachment_read_write |= 1u << subpass; + input_attachment_read |= 1u << subpass; + } + else if (resolve) + { + if (current_layout != VK_IMAGE_LAYOUT_GENERAL) + current_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + + // If first subpass changes the layout, we'll need to inject an external subpass dependency. + if (!used && attachments[attachment].initialLayout != current_layout) + external_color_dependencies |= 1u << subpass; + + resolve->layout = current_layout; + used = true; + last_subpass_for_attachment[attachment] = subpass; + color_attachment_read_write |= 1u << subpass; + } + else if (color && input) // If used as both input attachment and color attachment in same subpass, need GENERAL. + { + current_layout = VK_IMAGE_LAYOUT_GENERAL; + color->layout = current_layout; + input->layout = current_layout; + + // If the attachment is first used as a feedback attachment, the initial layout should actually be GENERAL. + if (!used && attachments[attachment].initialLayout != VK_IMAGE_LAYOUT_UNDEFINED) + attachments[attachment].initialLayout = current_layout; + + // If first subpass changes the layout, we'll need to inject an external subpass dependency. + if (!used && attachments[attachment].initialLayout != current_layout) + { + external_color_dependencies |= 1u << subpass; + external_input_dependencies |= 1u << subpass; + } + + used = true; + last_subpass_for_attachment[attachment] = subpass; + color_self_dependencies |= 1u << subpass; + + color_attachment_read_write |= 1u << subpass; + input_attachment_read |= 1u << subpass; + } + else if (color) // No particular preference + { + if (current_layout != VK_IMAGE_LAYOUT_GENERAL) + current_layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; + color->layout = current_layout; + + // If first subpass changes the layout, we'll need to inject an external subpass dependency. + if (!used && attachments[attachment].initialLayout != current_layout) + external_color_dependencies |= 1u << subpass; + + used = true; + last_subpass_for_attachment[attachment] = subpass; + color_attachment_read_write |= 1u << subpass; + } + else if (depth && input) // Depends on the depth mode + { + VK_ASSERT(subpass_infos[subpass].depth_stencil_mode != RenderPassInfo::DepthStencil::None); + if (subpass_infos[subpass].depth_stencil_mode == RenderPassInfo::DepthStencil::ReadWrite) + { + depth_self_dependencies |= 1u << subpass; + current_layout = VK_IMAGE_LAYOUT_GENERAL; + depth_stencil_attachment_write |= 1u << subpass; + + // If the attachment is first used as a feedback attachment, the initial layout should actually be GENERAL. + if (!used && attachments[attachment].initialLayout != VK_IMAGE_LAYOUT_UNDEFINED) + attachments[attachment].initialLayout = current_layout; + } + else + { + if (current_layout != VK_IMAGE_LAYOUT_GENERAL) + current_layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL; + } + + // If first subpass changes the layout, we'll need to inject an external subpass dependency. + if (!used && attachments[attachment].initialLayout != current_layout) + { + external_input_dependencies |= 1u << subpass; + external_depth_dependencies |= 1u << subpass; + } + + depth_stencil_attachment_read |= 1u << subpass; + input_attachment_read |= 1u << subpass; + depth->layout = current_layout; + input->layout = current_layout; + used = true; + last_subpass_for_attachment[attachment] = subpass; + } + else if (depth) + { + if (subpass_infos[subpass].depth_stencil_mode == RenderPassInfo::DepthStencil::ReadWrite) + { + depth_stencil_attachment_write |= 1u << subpass; + if (current_layout != VK_IMAGE_LAYOUT_GENERAL) + current_layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; + } + else + { + if (current_layout != VK_IMAGE_LAYOUT_GENERAL) + current_layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL; + } + + // If first subpass changes the layout, we'll need to inject an external subpass dependency. + if (!used && attachments[attachment].initialLayout != current_layout) + external_depth_dependencies |= 1u << subpass; + + depth_stencil_attachment_read |= 1u << subpass; + depth->layout = current_layout; + used = true; + last_subpass_for_attachment[attachment] = subpass; + } + else if (input) + { + if (current_layout != VK_IMAGE_LAYOUT_GENERAL) + current_layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; + + // If the attachment is first used as an input attachment, the initial layout should actually be + // SHADER_READ_ONLY_OPTIMAL. + if (!used && attachments[attachment].initialLayout == VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL) + attachments[attachment].initialLayout = current_layout; + + // If first subpass changes the layout, we'll need to inject an external subpass dependency. + if (!used && attachments[attachment].initialLayout != current_layout) + external_input_dependencies |= 1u << subpass; + + input->layout = current_layout; + used = true; + last_subpass_for_attachment[attachment] = subpass; + input_attachment_read |= 1u << subpass; + } + else + { + VK_ASSERT(0 && "Unhandled attachment usage."); + } + } + + // If we don't have a specific layout we need to end up in, just + // use the last one. + // Assert that we actually use all the attachments we have ... + VK_ASSERT(used); + if (attachments[attachment].finalLayout == VK_IMAGE_LAYOUT_UNDEFINED) + { + VK_ASSERT(current_layout != VK_IMAGE_LAYOUT_UNDEFINED); + attachments[attachment].finalLayout = current_layout; + } + } + + // Only consider preserve masks before last subpass which uses an attachment. + for (unsigned attachment = 0; attachment < num_attachments; attachment++) + preserve_masks[attachment] &= (1u << last_subpass_for_attachment[attachment]) - 1; + + // Add preserve attachments as needed. + for (unsigned subpass = 0; subpass < num_subpasses; subpass++) + { + auto &pass = subpasses[subpass]; + unsigned preserve_count = 0; + for (unsigned attachment = 0; attachment < num_attachments; attachment++) + if (preserve_masks[attachment] & (1u << subpass)) + preserve_count++; + + auto *preserve = preserve_allocator.allocate_cleared(preserve_count); + pass.pPreserveAttachments = preserve; + pass.preserveAttachmentCount = preserve_count; + for (unsigned attachment = 0; attachment < num_attachments; attachment++) + if (preserve_masks[attachment] & (1u << subpass)) + *preserve++ = attachment; + } + + VK_ASSERT(num_subpasses > 0); + VkRenderPassCreateInfo2 rp_info = { VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 }; + rp_info.subpassCount = num_subpasses; + rp_info.pSubpasses = subpasses.data(); + rp_info.pAttachments = attachments; + rp_info.attachmentCount = num_attachments; + + // Add external subpass dependencies. + for_each_bit(external_color_dependencies | external_depth_dependencies | external_input_dependencies, + [&](unsigned subpass) { + external_dependencies.emplace_back(); + auto &dep = external_dependencies.back(); + dep = { VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 }; + dep.srcSubpass = VK_SUBPASS_EXTERNAL; + dep.dstSubpass = subpass; + + // Could use sync2 NONE here, but we'd like to avoid letting render passes be keyed off sync2 support. + if (external_bottom_of_pipe_dependencies & (1u << subpass)) + dep.srcStageMask |= VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; + + if (external_color_dependencies & (1u << subpass)) + { + dep.srcStageMask |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dep.dstStageMask |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dep.srcAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + dep.dstAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + } + + if (external_depth_dependencies & (1u << subpass)) + { + dep.srcStageMask |= VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + dep.dstStageMask |= VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + dep.srcAccessMask |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; + dep.dstAccessMask |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT; + } + + if (external_input_dependencies & (1u << subpass)) + { + dep.srcStageMask |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | + VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + dep.dstStageMask |= VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; + dep.srcAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; + dep.dstAccessMask |= VK_ACCESS_INPUT_ATTACHMENT_READ_BIT; + } + }); + + // Queue up self-dependencies (COLOR | DEPTH) -> INPUT. + for_each_bit(color_self_dependencies | depth_self_dependencies, [&](unsigned subpass) { + external_dependencies.emplace_back(); + auto &dep = external_dependencies.back(); + dep = { VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 }; + dep.srcSubpass = subpass; + dep.dstSubpass = subpass; + dep.dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT; + if (multiview) + dep.dependencyFlags |= VK_DEPENDENCY_VIEW_LOCAL_BIT; + + if (color_self_dependencies & (1u << subpass)) + { + dep.srcStageMask |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dep.srcAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + } + + if (depth_self_dependencies & (1u << subpass)) + { + dep.srcStageMask |= VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + dep.srcAccessMask |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; + } + + dep.dstStageMask = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; + dep.dstAccessMask = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT; + }); + + // Flush and invalidate caches between each subpass. + for (unsigned subpass = 1; subpass < num_subpasses; subpass++) + { + external_dependencies.emplace_back(); + auto &dep = external_dependencies.back(); + dep = { VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 }; + dep.srcSubpass = subpass - 1; + dep.dstSubpass = subpass; + dep.dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT; + if (multiview) + dep.dependencyFlags |= VK_DEPENDENCY_VIEW_LOCAL_BIT; + + if (color_attachment_read_write & (1u << (subpass - 1))) + { + dep.srcStageMask |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dep.srcAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + } + + if (depth_stencil_attachment_write & (1u << (subpass - 1))) + { + dep.srcStageMask |= VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + dep.srcAccessMask |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; + } + + if (color_attachment_read_write & (1u << subpass)) + { + dep.dstStageMask |= VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; + dep.dstAccessMask |= VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT; + } + + if (depth_stencil_attachment_read & (1u << subpass)) + { + dep.dstStageMask |= VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + dep.dstAccessMask |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT; + + // The store op that comes later will need to write and storeOp accesses in WRITE_BIT. + // It's unclear if we need this barrier, but VVL complains if we don't ... + if (ds_store_op != VK_ATTACHMENT_STORE_OP_NONE && + (depth_stencil_attachment_write & (1u << (subpass - 1)))) + { + dep.dstAccessMask |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; + } + } + + if (depth_stencil_attachment_write & (1u << subpass)) + { + dep.dstStageMask |= VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT; + dep.dstAccessMask |= VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT; + } + + if (input_attachment_read & (1u << subpass)) + { + dep.dstStageMask |= VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT; + dep.dstAccessMask |= VK_ACCESS_INPUT_ATTACHMENT_READ_BIT; + } + } + + if (!external_dependencies.empty()) + { + rp_info.dependencyCount = external_dependencies.size(); + rp_info.pDependencies = external_dependencies.data(); + } + + // Store the important subpass information for later. + setup_subpasses(rp_info); + +#ifdef VULKAN_DEBUG + LOGI("Creating render pass.\n"); +#endif + auto &table = device->get_device_table(); + if (table.vkCreateRenderPass2(device->get_device(), &rp_info, nullptr, &render_pass) != VK_SUCCESS) + LOGE("Failed to create render pass."); + +#ifdef GRANITE_VULKAN_FOSSILIZE + device->register_render_pass(render_pass, get_hash(), rp_info); +#endif +} + +RenderPass::~RenderPass() +{ + auto &table = device->get_device_table(); + if (render_pass != VK_NULL_HANDLE) + table.vkDestroyRenderPass(device->get_device(), render_pass, nullptr); +} + +unsigned Framebuffer::setup_raw_views(VkImageView *views, const RenderPassInfo &info) +{ + unsigned num_views = 0; + for (unsigned i = 0; i < info.num_color_attachments; i++) + { + VK_ASSERT(info.color_attachments[i]); + + // For multiview, we use view indices to pick right layers. + if (info.num_layers > 1) + views[num_views++] = info.color_attachments[i]->get_view(); + else + views[num_views++] = info.color_attachments[i]->get_render_target_view(info.base_layer); + } + + if (info.depth_stencil) + { + // For multiview, we use view indices to pick right layers. + if (info.num_layers > 1) + views[num_views++] = info.depth_stencil->get_view(); + else + views[num_views++] = info.depth_stencil->get_render_target_view(info.base_layer); + } + + return num_views; +} + +static const ImageView *get_image_view(const RenderPassInfo &info, unsigned index) +{ + if (index < info.num_color_attachments) + return info.color_attachments[index]; + else + return info.depth_stencil; +} + +void Framebuffer::compute_attachment_dimensions(const RenderPassInfo &info, unsigned index, + uint32_t &width, uint32_t &height) +{ + auto *view = get_image_view(info, index); + VK_ASSERT(view); + unsigned lod = view->get_create_info().base_level; + width = view->get_image().get_width(lod); + height = view->get_image().get_height(lod); +} + +void Framebuffer::compute_dimensions(const RenderPassInfo &info, uint32_t &width, uint32_t &height) +{ + width = UINT32_MAX; + height = UINT32_MAX; + VK_ASSERT(info.num_color_attachments || info.depth_stencil); + + for (unsigned i = 0; i < info.num_color_attachments; i++) + { + VK_ASSERT(info.color_attachments[i]); + width = std::min(width, info.color_attachments[i]->get_view_width()); + height = std::min(height, info.color_attachments[i]->get_view_height()); + } + + if (info.depth_stencil) + { + width = std::min(width, info.depth_stencil->get_view_width()); + height = std::min(height, info.depth_stencil->get_view_height()); + } +} + +Framebuffer::Framebuffer(Device *device_, const RenderPass &rp, const RenderPassInfo &info_) + : Cookie(device_) + , device(device_) + , render_pass(rp) + , info(info_) +{ + compute_dimensions(info_, width, height); + VkImageView views[VULKAN_NUM_ATTACHMENTS + 1]; + unsigned num_views = 0; + + num_views = setup_raw_views(views, info_); + + VkFramebufferCreateInfo fb_info = { VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO }; + fb_info.renderPass = rp.get_render_pass(); + fb_info.attachmentCount = num_views; + fb_info.pAttachments = views; + fb_info.width = width; + fb_info.height = height; + fb_info.layers = 1; // For multiview, layers must be 1. The render pass encodes a mask. + + auto &table = device->get_device_table(); + if (table.vkCreateFramebuffer(device->get_device(), &fb_info, nullptr, &framebuffer) != VK_SUCCESS) + LOGE("Failed to create framebuffer."); +} + +Framebuffer::~Framebuffer() +{ + if (framebuffer != VK_NULL_HANDLE) + { + if (internal_sync) + device->destroy_framebuffer_nolock(framebuffer); + else + device->destroy_framebuffer(framebuffer); + } +} + +FramebufferAllocator::FramebufferAllocator(Device *device_) + : device(device_) +{ +} + +void FramebufferAllocator::clear() +{ + framebuffers.clear(); +} + +void FramebufferAllocator::begin_frame() +{ + framebuffers.begin_frame(); +} + +Framebuffer &FramebufferAllocator::request_framebuffer(const RenderPassInfo &info) +{ + auto &rp = device->request_render_pass(info, true); + Hasher h; + h.u64(rp.get_hash()); + + for (unsigned i = 0; i < info.num_color_attachments; i++) + { + VK_ASSERT(info.color_attachments[i]); + h.u64(info.color_attachments[i]->get_cookie()); + } + + if (info.depth_stencil) + h.u64(info.depth_stencil->get_cookie()); + + // For multiview we bind the whole attachment, and base layer is encoded in the render pass. + if (info.num_layers > 1) + h.u32(0); + else + h.u32(info.base_layer); + + auto hash = h.get(); + + LOCK(); + auto *node = framebuffers.request(hash); + if (node) + return *node; + + return *framebuffers.emplace(hash, device, rp, info); +} + +void TransientAttachmentAllocator::clear() +{ + attachments.clear(); +} + +void TransientAttachmentAllocator::begin_frame() +{ + attachments.begin_frame(); +} + +ImageHandle TransientAttachmentAllocator::request_attachment(unsigned width, unsigned height, VkFormat format, + unsigned index, unsigned samples, unsigned layers) +{ + Hasher h; + h.u32(width); + h.u32(height); + h.u32(format); + h.u32(index); + h.u32(samples); + h.u32(layers); + + auto hash = h.get(); + + LOCK(); + auto *node = attachments.request(hash); + if (node) + return node->handle; + + auto image_info = ImageCreateInfo::transient_render_target(width, height, format); + + image_info.samples = static_cast(samples); + image_info.layers = layers; + node = attachments.emplace(hash, device->create_image(image_info, nullptr)); + node->handle->set_internal_sync_object(); + node->handle->get_view().set_internal_sync_object(); + device->set_name(*node->handle, "AttachmentAllocator"); + return node->handle; +} +} diff --git a/vulkan/render_pass.hpp b/vulkan/render_pass.hpp new file mode 100644 index 00000000..9ceb1618 --- /dev/null +++ b/vulkan/render_pass.hpp @@ -0,0 +1,270 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "cookie.hpp" +#include "hash.hpp" +#include "image.hpp" +#include "intrusive.hpp" +#include "limits.hpp" +#include "object_pool.hpp" +#include "temporary_hashmap.hpp" +#include "vulkan_headers.hpp" + +namespace Vulkan +{ +enum RenderPassOp +{ + RENDER_PASS_OP_CLEAR_DEPTH_STENCIL_BIT = 1 << 0, + RENDER_PASS_OP_LOAD_DEPTH_STENCIL_BIT = 1 << 1, + RENDER_PASS_OP_STORE_DEPTH_STENCIL_BIT = 1 << 2, + RENDER_PASS_OP_DEPTH_STENCIL_READ_ONLY_BIT = 1 << 3, + RENDER_PASS_OP_ENABLE_TRANSIENT_STORE_BIT = 1 << 4, + RENDER_PASS_OP_ENABLE_TRANSIENT_LOAD_BIT = 1 << 5, + RENDER_PASS_OP_PRESERVE_DEPTH_STENCIL_BIT = 1 << 6 +}; +using RenderPassOpFlags = uint32_t; + +class ImageView; +struct RenderPassInfo +{ + const ImageView *color_attachments[VULKAN_NUM_ATTACHMENTS]; + const ImageView *depth_stencil = nullptr; + unsigned num_color_attachments = 0; + RenderPassOpFlags op_flags = 0; + uint32_t clear_attachments = 0; + uint32_t load_attachments = 0; + uint32_t store_attachments = 0; + uint32_t base_layer = 0; + uint32_t num_layers = 1; + + // Render area will be clipped to the actual framebuffer. + VkRect2D render_area = { { 0, 0 }, { UINT32_MAX, UINT32_MAX } }; + + VkClearColorValue clear_color[VULKAN_NUM_ATTACHMENTS] = {}; + VkClearDepthStencilValue clear_depth_stencil = { 1.0f, 0 }; + + enum class DepthStencil + { + None, + ReadOnly, + ReadWrite + }; + + struct Subpass + { + uint32_t color_attachments[VULKAN_NUM_ATTACHMENTS]; + uint32_t input_attachments[VULKAN_NUM_ATTACHMENTS]; + uint32_t resolve_attachments[VULKAN_NUM_ATTACHMENTS]; + unsigned num_color_attachments = 0; + unsigned num_input_attachments = 0; + unsigned num_resolve_attachments = 0; + DepthStencil depth_stencil_mode = DepthStencil::ReadWrite; + }; + // If 0/nullptr, assume a default subpass. + const Subpass *subpasses = nullptr; + unsigned num_subpasses = 0; +}; + +class RenderPass : public HashedObject, public NoCopyNoMove +{ +public: + struct SubpassInfo + { + VkAttachmentReference2 color_attachments[VULKAN_NUM_ATTACHMENTS]; + unsigned num_color_attachments; + VkAttachmentReference2 input_attachments[VULKAN_NUM_ATTACHMENTS]; + unsigned num_input_attachments; + VkAttachmentReference2 depth_stencil_attachment; + + unsigned samples; + }; + + RenderPass(Util::Hash hash, Device *device, const RenderPassInfo &info); + RenderPass(Util::Hash hash, Device *device, const VkRenderPassCreateInfo2 &create_info); + ~RenderPass(); + + unsigned get_num_subpasses() const + { + return unsigned(subpasses_info.size()); + } + + VkRenderPass get_render_pass() const + { + return render_pass; + } + + uint32_t get_sample_count(unsigned subpass) const + { + VK_ASSERT(subpass < subpasses_info.size()); + return subpasses_info[subpass].samples; + } + + unsigned get_num_color_attachments(unsigned subpass) const + { + VK_ASSERT(subpass < subpasses_info.size()); + return subpasses_info[subpass].num_color_attachments; + } + + unsigned get_num_input_attachments(unsigned subpass) const + { + VK_ASSERT(subpass < subpasses_info.size()); + return subpasses_info[subpass].num_input_attachments; + } + + const VkAttachmentReference2 &get_color_attachment(unsigned subpass, unsigned index) const + { + VK_ASSERT(subpass < subpasses_info.size()); + VK_ASSERT(index < subpasses_info[subpass].num_color_attachments); + return subpasses_info[subpass].color_attachments[index]; + } + + const VkAttachmentReference2 &get_input_attachment(unsigned subpass, unsigned index) const + { + VK_ASSERT(subpass < subpasses_info.size()); + VK_ASSERT(index < subpasses_info[subpass].num_input_attachments); + return subpasses_info[subpass].input_attachments[index]; + } + + bool has_depth(unsigned subpass) const + { + VK_ASSERT(subpass < subpasses_info.size()); + return subpasses_info[subpass].depth_stencil_attachment.attachment != VK_ATTACHMENT_UNUSED && + format_has_depth_aspect(depth_stencil); + } + + bool has_stencil(unsigned subpass) const + { + VK_ASSERT(subpass < subpasses_info.size()); + return subpasses_info[subpass].depth_stencil_attachment.attachment != VK_ATTACHMENT_UNUSED && + format_has_stencil_aspect(depth_stencil); + } + +private: + Device *device; + VkRenderPass render_pass = VK_NULL_HANDLE; + + VkFormat color_attachments[VULKAN_NUM_ATTACHMENTS] = {}; + VkFormat depth_stencil = VK_FORMAT_UNDEFINED; + std::vector subpasses_info; + + void setup_subpasses(const VkRenderPassCreateInfo2 &create_info); +}; + +class Framebuffer : public Cookie, public NoCopyNoMove, public InternalSyncEnabled +{ +public: + Framebuffer(Device *device, const RenderPass &rp, const RenderPassInfo &info); + ~Framebuffer(); + + VkFramebuffer get_framebuffer() const + { + return framebuffer; + } + + static unsigned setup_raw_views(VkImageView *views, const RenderPassInfo &info); + static void compute_dimensions(const RenderPassInfo &info, uint32_t &width, uint32_t &height); + static void compute_attachment_dimensions(const RenderPassInfo &info, unsigned index, uint32_t &width, uint32_t &height); + + uint32_t get_width() const + { + return width; + } + + uint32_t get_height() const + { + return height; + } + + const RenderPass &get_compatible_render_pass() const + { + return render_pass; + } + +private: + Device *device; + VkFramebuffer framebuffer = VK_NULL_HANDLE; + const RenderPass &render_pass; + RenderPassInfo info; + uint32_t width = 0; + uint32_t height = 0; +}; + +static const unsigned VULKAN_FRAMEBUFFER_RING_SIZE = 16; +class FramebufferAllocator +{ +public: + explicit FramebufferAllocator(Device *device); + Framebuffer &request_framebuffer(const RenderPassInfo &info); + + void begin_frame(); + void clear(); + +private: + struct FramebufferNode : Util::TemporaryHashmapEnabled, + Util::IntrusiveListEnabled, + Framebuffer + { + FramebufferNode(Device *device_, const RenderPass &rp, const RenderPassInfo &info_) + : Framebuffer(device_, rp, info_) + { + set_internal_sync_object(); + } + }; + + Device *device; + Util::TemporaryHashmap framebuffers; + std::mutex lock; +}; + +class TransientAttachmentAllocator +{ +public: + TransientAttachmentAllocator(Device *device_) + : device(device_) + { + } + + ImageHandle request_attachment(unsigned width, unsigned height, VkFormat format, + unsigned index = 0, unsigned samples = 1, unsigned layers = 1); + + void begin_frame(); + void clear(); + +private: + struct TransientNode : Util::TemporaryHashmapEnabled, Util::IntrusiveListEnabled + { + explicit TransientNode(ImageHandle handle_) + : handle(std::move(handle_)) + { + } + + ImageHandle handle; + }; + + Device *device; + Util::TemporaryHashmap attachments; + std::mutex lock; +}; +} + diff --git a/vulkan/renderdoc_capture.cpp b/vulkan/renderdoc_capture.cpp new file mode 100644 index 00000000..69e3d58f --- /dev/null +++ b/vulkan/renderdoc_capture.cpp @@ -0,0 +1,127 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "device.hpp" +#include "renderdoc_app.h" +#include + +#ifdef _WIN32 +#define WIN32_LEAN_AND_MEAN +#include +#else +#include +#endif + +namespace Vulkan +{ +static std::mutex module_lock; +#ifdef _WIN32 +static HMODULE renderdoc_module; +#else +static void *renderdoc_module; +#endif + +static RENDERDOC_API_1_0_0 *renderdoc_api; + +bool Device::init_renderdoc_capture() +{ + std::lock_guard holder{module_lock}; + if (renderdoc_module) + return true; + +#ifdef _WIN32 + renderdoc_module = GetModuleHandleA("renderdoc.dll"); +#elif defined(ANDROID) + renderdoc_module = dlopen("libVkLayer_GLES_RenderDoc.so", RTLD_NOW | RTLD_NOLOAD); +#else + renderdoc_module = dlopen("librenderdoc.so", RTLD_NOW | RTLD_NOLOAD); +#endif + + if (!renderdoc_module) + { + LOGE("Failed to load RenderDoc, make sure RenderDoc started the application in capture mode.\n"); + return false; + } + +#ifdef _WIN32 + // Workaround GCC warning about FARPROC mismatch. + auto *gpa = GetProcAddress(renderdoc_module, "RENDERDOC_GetAPI"); + pRENDERDOC_GetAPI func; + memcpy(&func, &gpa, sizeof(func)); + + if (!func) + { + LOGE("Failed to load RENDERDOC_GetAPI function.\n"); + return false; + } +#else + auto *func = reinterpret_cast(dlsym(renderdoc_module, "RENDERDOC_GetAPI")); + if (!func) + { + LOGE("Failed to load RENDERDOC_GetAPI function.\n"); + return false; + } +#endif + + if (!func(eRENDERDOC_API_Version_1_0_0, reinterpret_cast(&renderdoc_api))) + { + LOGE("Failed to obtain RenderDoc 1.0.0 API.\n"); + return false; + } + else + { + int major, minor, patch; + renderdoc_api->GetAPIVersion(&major, &minor, &patch); + LOGI("Initialized RenderDoc API %d.%d.%d.\n", major, minor, patch); + } + + return true; +} + +void Device::begin_renderdoc_capture() +{ + std::lock_guard holder{module_lock}; + if (!renderdoc_api) + { + LOGE("RenderDoc API is not loaded, cannot trigger capture.\n"); + return; + } + next_frame_context(); + + LOGI("Starting RenderDoc frame capture.\n"); + renderdoc_api->StartFrameCapture(nullptr, nullptr); +} + +void Device::end_renderdoc_capture() +{ + std::lock_guard holder{module_lock}; + if (!renderdoc_api) + { + LOGE("RenderDoc API is not loaded, cannot trigger capture.\n"); + return; + } + next_frame_context(); + renderdoc_api->EndFrameCapture(nullptr, nullptr); + LOGI("Ended RenderDoc frame capture.\n"); +} + +} diff --git a/vulkan/sampler.cpp b/vulkan/sampler.cpp new file mode 100644 index 00000000..2042e5c1 --- /dev/null +++ b/vulkan/sampler.cpp @@ -0,0 +1,154 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "sampler.hpp" +#include "device.hpp" + +namespace Vulkan +{ +Sampler::Sampler(Device *device_, VkSampler sampler_, const SamplerCreateInfo &info, bool immutable_) + : Cookie(device_) + , device(device_) + , sampler(sampler_) + , create_info(info) + , immutable(immutable_) +{ +} + +Sampler::~Sampler() +{ + if (sampler) + { + if (immutable) + device->get_device_table().vkDestroySampler(device->get_device(), sampler, nullptr); + else if (internal_sync) + device->destroy_sampler_nolock(sampler); + else + device->destroy_sampler(sampler); + } +} + +void SamplerDeleter::operator()(Sampler *sampler) +{ + sampler->device->handle_pool.samplers.free(sampler); +} + +SamplerCreateInfo Sampler::fill_sampler_info(const VkSamplerCreateInfo &info) +{ + SamplerCreateInfo sampler_info = {}; + + sampler_info.mag_filter = info.magFilter; + sampler_info.min_filter = info.minFilter; + sampler_info.mipmap_mode = info.mipmapMode; + sampler_info.address_mode_u = info.addressModeU; + sampler_info.address_mode_v = info.addressModeV; + sampler_info.address_mode_w = info.addressModeW; + sampler_info.mip_lod_bias = info.mipLodBias; + sampler_info.anisotropy_enable = info.anisotropyEnable; + sampler_info.max_anisotropy = info.maxAnisotropy; + sampler_info.compare_enable = info.compareEnable; + sampler_info.compare_op = info.compareOp; + sampler_info.min_lod = info.minLod; + sampler_info.max_lod = info.maxLod; + sampler_info.border_color = info.borderColor; + sampler_info.unnormalized_coordinates = info.unnormalizedCoordinates; + return sampler_info; +} + +VkSamplerCreateInfo Sampler::fill_vk_sampler_info(const SamplerCreateInfo &sampler_info) +{ + VkSamplerCreateInfo info = { VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO }; + + info.magFilter = sampler_info.mag_filter; + info.minFilter = sampler_info.min_filter; + info.mipmapMode = sampler_info.mipmap_mode; + info.addressModeU = sampler_info.address_mode_u; + info.addressModeV = sampler_info.address_mode_v; + info.addressModeW = sampler_info.address_mode_w; + info.mipLodBias = sampler_info.mip_lod_bias; + info.anisotropyEnable = sampler_info.anisotropy_enable; + info.maxAnisotropy = sampler_info.max_anisotropy; + info.compareEnable = sampler_info.compare_enable; + info.compareOp = sampler_info.compare_op; + info.minLod = sampler_info.min_lod; + info.maxLod = sampler_info.max_lod; + info.borderColor = sampler_info.border_color; + info.unnormalizedCoordinates = sampler_info.unnormalized_coordinates; + return info; +} + +ImmutableSampler::ImmutableSampler(Util::Hash hash, Device *device_, const SamplerCreateInfo &sampler_info, + const ImmutableYcbcrConversion *ycbcr_) + : HashedObject(hash), device(device_), ycbcr(ycbcr_) +{ + VkSamplerYcbcrConversionInfo conv_info = { VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO }; + auto info = Sampler::fill_vk_sampler_info(sampler_info); + + if (ycbcr) + { + conv_info.conversion = ycbcr->get_conversion(); + info.pNext = &conv_info; + } + +#ifdef VULKAN_DEBUG + LOGI("Creating immutable sampler.\n"); +#endif + + VkSampler vk_sampler = VK_NULL_HANDLE; + if (device->get_device_table().vkCreateSampler(device->get_device(), &info, nullptr, &vk_sampler) != VK_SUCCESS) + LOGE("Failed to create sampler.\n"); + +#ifdef GRANITE_VULKAN_FOSSILIZE + device->register_sampler(vk_sampler, hash, info); +#endif + + sampler = SamplerHandle(device->handle_pool.samplers.allocate(device, vk_sampler, sampler_info, true)); +} + +ImmutableYcbcrConversion::ImmutableYcbcrConversion(Util::Hash hash, Device *device_, + const VkSamplerYcbcrConversionCreateInfo &info) + : HashedObject(hash), device(device_) +{ + if (device->get_device_features().vk11_features.samplerYcbcrConversion) + { + if (device->get_device_table().vkCreateSamplerYcbcrConversion(device->get_device(), &info, nullptr, + &conversion) != VK_SUCCESS) + { + LOGE("Failed to create YCbCr conversion.\n"); + } + else + { +#ifdef GRANITE_VULKAN_FOSSILIZE + device->register_sampler_ycbcr_conversion(conversion, info); +#endif + } + } + else + LOGE("Ycbcr conversion is not supported on this device.\n"); +} + +ImmutableYcbcrConversion::~ImmutableYcbcrConversion() +{ + if (conversion) + device->get_device_table().vkDestroySamplerYcbcrConversion(device->get_device(), conversion, nullptr); +} +} diff --git a/vulkan/sampler.hpp b/vulkan/sampler.hpp new file mode 100644 index 00000000..c1d8f894 --- /dev/null +++ b/vulkan/sampler.hpp @@ -0,0 +1,146 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "cookie.hpp" +#include "vulkan_common.hpp" +#include "vulkan_headers.hpp" +#include "object_pool.hpp" + +namespace Vulkan +{ +enum class StockSampler +{ + NearestClamp, + LinearClamp, + TrilinearClamp, + NearestWrap, + LinearWrap, + TrilinearWrap, + NearestShadow, + LinearShadow, + DefaultGeometryFilterClamp, + DefaultGeometryFilterWrap, + Count +}; + +struct SamplerCreateInfo +{ + VkFilter mag_filter; + VkFilter min_filter; + VkSamplerMipmapMode mipmap_mode; + VkSamplerAddressMode address_mode_u; + VkSamplerAddressMode address_mode_v; + VkSamplerAddressMode address_mode_w; + float mip_lod_bias; + VkBool32 anisotropy_enable; + float max_anisotropy; + VkBool32 compare_enable; + VkCompareOp compare_op; + float min_lod; + float max_lod; + VkBorderColor border_color; + VkBool32 unnormalized_coordinates; +}; + +class Sampler; +struct SamplerDeleter +{ + void operator()(Sampler *sampler); +}; + +class Sampler : public Util::IntrusivePtrEnabled, + public Cookie, public InternalSyncEnabled +{ +public: + friend struct SamplerDeleter; + ~Sampler(); + + VkSampler get_sampler() const + { + return sampler; + } + + const SamplerCreateInfo &get_create_info() const + { + return create_info; + } + + static VkSamplerCreateInfo fill_vk_sampler_info(const SamplerCreateInfo &sampler_info); + static SamplerCreateInfo fill_sampler_info(const VkSamplerCreateInfo &sampler_info); + +private: + friend class Util::ObjectPool; + Sampler(Device *device, VkSampler sampler, const SamplerCreateInfo &info, bool immutable); + + Device *device; + VkSampler sampler; + SamplerCreateInfo create_info; + bool immutable; +}; +using SamplerHandle = Util::IntrusivePtr; + +class ImmutableYcbcrConversion : public HashedObject +{ +public: + ImmutableYcbcrConversion(Util::Hash hash, Device *device, + const VkSamplerYcbcrConversionCreateInfo &info); + ~ImmutableYcbcrConversion(); + void operator=(const ImmutableYcbcrConversion &) = delete; + ImmutableYcbcrConversion(const ImmutableYcbcrConversion &) = delete; + + VkSamplerYcbcrConversion get_conversion() const + { + return conversion; + } + +private: + Device *device; + VkSamplerYcbcrConversion conversion = VK_NULL_HANDLE; +}; + +class ImmutableSampler : public HashedObject +{ +public: + ImmutableSampler(Util::Hash hash, Device *device, + const SamplerCreateInfo &info, + const ImmutableYcbcrConversion *ycbcr); + void operator=(const ImmutableSampler &) = delete; + ImmutableSampler(const ImmutableSampler &) = delete; + + const Sampler &get_sampler() const + { + return *sampler; + } + + VkSamplerYcbcrConversion get_ycbcr_conversion() const + { + return ycbcr ? ycbcr->get_conversion() : VK_NULL_HANDLE; + } + +private: + Device *device; + const ImmutableYcbcrConversion *ycbcr; + SamplerHandle sampler; +}; +} diff --git a/vulkan/semaphore.cpp b/vulkan/semaphore.cpp new file mode 100644 index 00000000..6cecbcd6 --- /dev/null +++ b/vulkan/semaphore.cpp @@ -0,0 +1,244 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "semaphore.hpp" +#include "device.hpp" + +#ifndef _WIN32 +#include +#else +#define WIN32_LEAN_AND_MEAN +#include +#endif + +namespace Vulkan +{ +SemaphoreHolder::~SemaphoreHolder() +{ + recycle_semaphore(); +} + +void SemaphoreHolder::recycle_semaphore() +{ + if (!owned) + return; + + VK_ASSERT(semaphore); + + if (internal_sync) + { + if (semaphore_type == VK_SEMAPHORE_TYPE_TIMELINE || external_compatible_features) + { + device->destroy_semaphore_nolock(semaphore); + } + else if (is_signalled()) + { + // We can't just destroy a semaphore if we don't know who signals it (e.g. WSI). + // Have to consume it by waiting then recycle. + if (signal_is_foreign_queue) + device->consume_semaphore_nolock(semaphore); + else + device->destroy_semaphore_nolock(semaphore); + } + else + device->recycle_semaphore_nolock(semaphore); + } + else + { + if (semaphore_type == VK_SEMAPHORE_TYPE_TIMELINE || external_compatible_features) + { + device->destroy_semaphore(semaphore); + } + else if (is_signalled()) + { + // We can't just destroy a semaphore if we don't know who signals it (e.g. WSI). + // Have to consume it by waiting then recycle. + if (signal_is_foreign_queue) + device->consume_semaphore(semaphore); + else + device->destroy_semaphore(semaphore); + } + else + device->recycle_semaphore(semaphore); + } +} + +bool SemaphoreHolder::wait_timeline_timeout(uint64_t value, uint64_t timeout) +{ + VK_ASSERT(semaphore_type == VK_SEMAPHORE_TYPE_TIMELINE); + VK_ASSERT(is_proxy_timeline()); + + VkSemaphoreWaitInfo wait_info = { VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO }; + wait_info.pSemaphores = &semaphore; + wait_info.semaphoreCount = 1; + wait_info.pValues = &value; + return device->get_device_table().vkWaitSemaphores(device->get_device(), &wait_info, timeout) == VK_SUCCESS; +} + +void SemaphoreHolder::wait_timeline(uint64_t value) +{ + wait_timeline_timeout(value, UINT64_MAX); +} + +SemaphoreHolder &SemaphoreHolder::operator=(SemaphoreHolder &&other) noexcept +{ + if (this == &other) + return *this; + + assert(device == other.device); + recycle_semaphore(); + + semaphore = other.semaphore; + timeline = other.timeline; + signalled = other.signalled; + pending_wait = other.pending_wait; + semaphore_type = other.semaphore_type; + owned = other.owned; + + other.semaphore = VK_NULL_HANDLE; + other.timeline = 0; + other.signalled = false; + other.pending_wait = false; + other.owned = false; + + return *this; +} + +ExternalHandle SemaphoreHolder::export_to_handle() +{ + ExternalHandle h; + + if ((external_compatible_features & VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT) == 0) + { + LOGE("Semaphore is not export compatible.\n"); + return h; + } + + if (!semaphore) + { + LOGE("Semaphore has already been consumed.\n"); + return h; + } + + // Technically we can export early with reference transference, but it's a bit dubious. + // We want to remain compatible with copy transference for later, e.g. SYNC_FD. + if (!signalled && semaphore_type == VK_SEMAPHORE_TYPE_BINARY) + { + LOGE("Cannot export payload from a semaphore that is not queued up for signal.\n"); + return h; + } + +#ifdef _WIN32 + VkSemaphoreGetWin32HandleInfoKHR handle_info = { VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR }; + handle_info.semaphore = semaphore; + handle_info.handleType = external_compatible_handle_type; + + if (device->get_device_table().vkGetSemaphoreWin32HandleKHR(device->get_device(), &handle_info, &h.handle) != VK_SUCCESS) + { + LOGE("Failed to export to opaque handle.\n"); + h.handle = nullptr; + } +#else + VkSemaphoreGetFdInfoKHR fd_info = { VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR }; + fd_info.semaphore = semaphore; + fd_info.handleType = external_compatible_handle_type; + + if (device->get_device_table().vkGetSemaphoreFdKHR(device->get_device(), &fd_info, &h.handle) != VK_SUCCESS) + { + LOGE("Failed to export to opaque FD.\n"); + h.handle = -1; + } +#endif + + h.semaphore_handle_type = external_compatible_handle_type; + return h; +} + +bool SemaphoreHolder::import_from_handle(ExternalHandle handle) +{ + if ((external_compatible_features & VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT) == 0) + { + LOGE("Semaphore is not import compatible.\n"); + return false; + } + + if (!semaphore) + { + LOGE("Semaphore has already been consumed.\n"); + return false; + } + + if (signalled) + { + LOGE("Cannot import payload to semaphore that is already signalled.\n"); + return false; + } + + if (handle.semaphore_handle_type != external_compatible_handle_type) + { + LOGE("Mismatch in semaphore handle type.\n"); + return false; + } + +#ifdef _WIN32 + VkImportSemaphoreWin32HandleInfoKHR import = { VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR }; + import.handle = handle.handle; + import.semaphore = semaphore; + import.handleType = handle.semaphore_handle_type; + import.flags = semaphore_type == VK_SEMAPHORE_TYPE_BINARY_KHR ? VK_SEMAPHORE_IMPORT_TEMPORARY_BIT : 0; + if (device->get_device_table().vkImportSemaphoreWin32HandleKHR(device->get_device(), &import) != VK_SUCCESS) + { + LOGE("Failed to import semaphore handle %p!\n", handle.handle); + return false; + } +#else + VkImportSemaphoreFdInfoKHR import = { VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR }; + import.fd = handle.handle; + import.semaphore = semaphore; + import.handleType = handle.semaphore_handle_type; + import.flags = semaphore_type == VK_SEMAPHORE_TYPE_BINARY_KHR ? VK_SEMAPHORE_IMPORT_TEMPORARY_BIT : 0; + if (device->get_device_table().vkImportSemaphoreFdKHR(device->get_device(), &import) != VK_SUCCESS) + { + LOGE("Failed to import semaphore FD %d!\n", handle.handle); + return false; + } +#endif + + if (ExternalHandle::semaphore_handle_type_imports_by_reference(import.handleType)) + { +#ifdef _WIN32 + // Consume the handle, since the VkSemaphore holds a reference on Win32. + ::CloseHandle(handle.handle); +#else + ::close(handle.handle); +#endif + } + + signal_external(); + return true; +} + +void SemaphoreHolderDeleter::operator()(Vulkan::SemaphoreHolder *semaphore) +{ + semaphore->device->handle_pool.semaphores.free(semaphore); +} +} diff --git a/vulkan/semaphore.hpp b/vulkan/semaphore.hpp new file mode 100644 index 00000000..c8b83d81 --- /dev/null +++ b/vulkan/semaphore.hpp @@ -0,0 +1,206 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_common.hpp" +#include "vulkan_headers.hpp" +#include "cookie.hpp" +#include "object_pool.hpp" + +namespace Vulkan +{ +class Device; + +class SemaphoreHolder; +struct SemaphoreHolderDeleter +{ + void operator()(SemaphoreHolder *semaphore); +}; + +class SemaphoreHolder : public Util::IntrusivePtrEnabled, + public InternalSyncEnabled +{ +public: + friend struct SemaphoreHolderDeleter; + + ~SemaphoreHolder(); + + const VkSemaphore &get_semaphore() const + { + return semaphore; + } + + bool is_signalled() const + { + return signalled; + } + + uint64_t get_timeline_value() const + { + VK_ASSERT(!owned && semaphore_type == VK_SEMAPHORE_TYPE_TIMELINE_KHR); + return timeline; + } + + VkSemaphore consume() + { + auto ret = semaphore; + VK_ASSERT(semaphore); + VK_ASSERT(signalled); + semaphore = VK_NULL_HANDLE; + signalled = false; + owned = false; + return ret; + } + + VkSemaphore release_semaphore() + { + auto ret = semaphore; + semaphore = VK_NULL_HANDLE; + signalled = false; + owned = false; + return ret; + } + + void wait_external() + { + VK_ASSERT(semaphore); + VK_ASSERT(signalled); + signalled = false; + } + + void signal_external() + { + VK_ASSERT(!signalled); + VK_ASSERT(semaphore); + signalled = true; + } + + void set_signal_is_foreign_queue() + { + VK_ASSERT(signalled); + signal_is_foreign_queue = true; + } + + void set_pending_wait() + { + pending_wait = true; + } + + bool is_pending_wait() const + { + return pending_wait; + } + + void set_external_object_compatible(VkExternalSemaphoreHandleTypeFlagBits handle_type, + VkExternalSemaphoreFeatureFlags features) + { + external_compatible_handle_type = handle_type; + external_compatible_features = features; + } + + bool is_external_object_compatible() const + { + return external_compatible_features != 0; + } + + VkSemaphoreTypeKHR get_semaphore_type() const + { + return semaphore_type; + } + + bool is_proxy_timeline() const + { + return proxy_timeline; + } + + void set_proxy_timeline() + { + proxy_timeline = true; + signalled = false; + } + + // If successful, importing takes ownership of the handle/fd. + // Application can use dup() / DuplicateHandle() to keep a reference. + // Imported semaphores are assumed to be signalled, or pending to be signalled. + // All imports are performed with TEMPORARY permanence. + ExternalHandle export_to_handle(); + bool import_from_handle(ExternalHandle handle); + + VkExternalSemaphoreFeatureFlags get_external_features() const + { + return external_compatible_features; + } + + VkExternalSemaphoreHandleTypeFlagBits get_external_handle_type() const + { + return external_compatible_handle_type; + } + + SemaphoreHolder &operator=(SemaphoreHolder &&other) noexcept; + + void wait_timeline(uint64_t value); + bool wait_timeline_timeout(uint64_t value, uint64_t timeout); + +private: + friend class Util::ObjectPool; + SemaphoreHolder(Device *device_, VkSemaphore semaphore_, bool signalled_, bool owned_) + : device(device_) + , semaphore(semaphore_) + , timeline(0) + , semaphore_type(VK_SEMAPHORE_TYPE_BINARY_KHR) + , signalled(signalled_) + , owned(owned_) + { + } + + SemaphoreHolder(Device *device_, uint64_t timeline_, VkSemaphore semaphore_, bool owned_) + : device(device_) + , semaphore(semaphore_) + , timeline(timeline_) + , semaphore_type(VK_SEMAPHORE_TYPE_TIMELINE_KHR) + , owned(owned_) + { + } + + explicit SemaphoreHolder(Device *device_) + : device(device_) + { + } + + void recycle_semaphore(); + + Device *device; + VkSemaphore semaphore = VK_NULL_HANDLE; + uint64_t timeline = 0; + VkSemaphoreTypeKHR semaphore_type = VK_SEMAPHORE_TYPE_BINARY_KHR; + bool signalled = false; + bool pending_wait = false; + bool owned = false; + bool proxy_timeline = false; + bool signal_is_foreign_queue = false; + VkExternalSemaphoreHandleTypeFlagBits external_compatible_handle_type = {}; + VkExternalSemaphoreFeatureFlags external_compatible_features = 0; +}; + +using Semaphore = Util::IntrusivePtr; +} diff --git a/vulkan/semaphore_manager.cpp b/vulkan/semaphore_manager.cpp new file mode 100644 index 00000000..854771d1 --- /dev/null +++ b/vulkan/semaphore_manager.cpp @@ -0,0 +1,68 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include "semaphore_manager.hpp" +#include "device.hpp" + +namespace Vulkan +{ +void SemaphoreManager::init(Device *device_) +{ + device = device_; + table = &device->get_device_table(); +} + +SemaphoreManager::~SemaphoreManager() +{ + for (auto &sem : semaphores) + table->vkDestroySemaphore(device->get_device(), sem, nullptr); +} + +void SemaphoreManager::recycle(VkSemaphore sem) +{ + if (sem != VK_NULL_HANDLE) + semaphores.push_back(sem); +} + +VkSemaphore SemaphoreManager::request_cleared_semaphore() +{ + if (semaphores.empty()) + { + VkSemaphoreCreateInfo info = { VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO }; + VkSemaphore semaphore; + + if (table->vkCreateSemaphore(device->get_device(), &info, nullptr, &semaphore) != VK_SUCCESS) + { + LOGE("Failed to create semaphore.\n"); + semaphore = VK_NULL_HANDLE; + } + + return semaphore; + } + else + { + auto sem = semaphores.back(); + semaphores.pop_back(); + return sem; + } +} +} diff --git a/vulkan/semaphore_manager.hpp b/vulkan/semaphore_manager.hpp new file mode 100644 index 00000000..964ed258 --- /dev/null +++ b/vulkan/semaphore_manager.hpp @@ -0,0 +1,45 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include + +namespace Vulkan +{ +class Device; +class SemaphoreManager +{ +public: + void init(Device *device); + ~SemaphoreManager(); + + VkSemaphore request_cleared_semaphore(); + void recycle(VkSemaphore semaphore); + +private: + Device *device = nullptr; + const VolkDeviceTable *table = nullptr; + std::vector semaphores; +}; +} diff --git a/vulkan/shader.cpp b/vulkan/shader.cpp new file mode 100644 index 00000000..15d2e3a4 --- /dev/null +++ b/vulkan/shader.cpp @@ -0,0 +1,687 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "shader.hpp" +#include "device.hpp" +#ifdef GRANITE_VULKAN_SPIRV_CROSS +#include "spirv_cross.hpp" +using namespace spirv_cross; +#endif + +using namespace Util; + +namespace Vulkan +{ +void ImmutableSamplerBank::hash(Util::Hasher &h, const ImmutableSamplerBank *sampler_bank) +{ + h.u32(0); + if (sampler_bank) + { + unsigned index = 0; + for (auto &set : sampler_bank->samplers) + { + for (auto *binding : set) + { + if (binding) + { + h.u32(index); + h.u64(binding->get_hash()); + } + index++; + } + } + } +} + +PipelineLayout::PipelineLayout(Hash hash, Device *device_, const CombinedResourceLayout &layout_, + const ImmutableSamplerBank *immutable_samplers) + : IntrusiveHashMapEnabled(hash) + , device(device_) + , layout(layout_) +{ + VkDescriptorSetLayout layouts[VULKAN_NUM_DESCRIPTOR_SETS] = {}; + unsigned num_sets = 0; + for (unsigned i = 0; i < VULKAN_NUM_DESCRIPTOR_SETS; i++) + { + set_allocators[i] = device->request_descriptor_set_allocator(layout.sets[i], layout.stages_for_bindings[i], + immutable_samplers ? immutable_samplers->samplers[i] : nullptr); + layouts[i] = set_allocators[i]->get_layout_for_pool(); + if (layout.descriptor_set_mask & (1u << i)) + { + num_sets = i + 1; + + // Assume the last set index in layout is the highest frequency update one, make that push descriptor if possible. + // Only one descriptor set can be push descriptor. + bool has_push_layout = set_allocators[i]->get_layout_for_push() != VK_NULL_HANDLE; + if (has_push_layout) + push_set_index = i; + } + } + + if (push_set_index != UINT32_MAX) + layouts[push_set_index] = set_allocators[push_set_index]->get_layout_for_push(); + + if (num_sets > VULKAN_NUM_DESCRIPTOR_SETS) + LOGE("Number of sets %u exceeds limit of %u.\n", num_sets, VULKAN_NUM_DESCRIPTOR_SETS); + + VkPipelineLayoutCreateInfo info = { VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO }; + if (num_sets) + { + info.setLayoutCount = num_sets; + info.pSetLayouts = layouts; + } + + if (layout.push_constant_range.stageFlags != 0) + { + info.pushConstantRangeCount = 1; + info.pPushConstantRanges = &layout.push_constant_range; + } + +#ifdef VULKAN_DEBUG + LOGI("Creating pipeline layout.\n"); +#endif + auto &table = device->get_device_table(); + if (table.vkCreatePipelineLayout(device->get_device(), &info, nullptr, &pipe_layout) != VK_SUCCESS) + LOGE("Failed to create pipeline layout.\n"); +#ifdef GRANITE_VULKAN_FOSSILIZE + device->register_pipeline_layout(pipe_layout, get_hash(), info); +#endif + + create_update_templates(); +} + +void PipelineLayout::create_update_templates() +{ + auto &table = device->get_device_table(); + for (unsigned desc_set = 0; desc_set < VULKAN_NUM_DESCRIPTOR_SETS; desc_set++) + { + if ((layout.descriptor_set_mask & (1u << desc_set)) == 0) + continue; + if ((layout.bindless_descriptor_set_mask & (1u << desc_set)) != 0) + continue; + + VkDescriptorUpdateTemplateEntry update_entries[VULKAN_NUM_BINDINGS]; + uint32_t update_count = 0; + + auto &set_layout = layout.sets[desc_set]; + + for_each_bit(set_layout.uniform_buffer_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + VK_ASSERT(update_count < VULKAN_NUM_BINDINGS); + // Work around a RenderDoc capture bug where descriptorCount > 1 is not handled correctly. + for (unsigned i = 0; i < array_size; i++) + { + auto &entry = update_entries[update_count++]; + entry.descriptorType = desc_set == push_set_index ? + VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER : VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC; + entry.dstBinding = binding; + entry.dstArrayElement = i; + entry.descriptorCount = 1; + if (desc_set == push_set_index) + entry.offset = offsetof(ResourceBinding, buffer.push) + sizeof(ResourceBinding) * (binding + i); + else + entry.offset = offsetof(ResourceBinding, buffer.dynamic) + sizeof(ResourceBinding) * (binding + i); + entry.stride = sizeof(ResourceBinding); + } + }); + + for_each_bit(set_layout.storage_buffer_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + VK_ASSERT(update_count < VULKAN_NUM_BINDINGS); + for (unsigned i = 0; i < array_size; i++) + { + auto &entry = update_entries[update_count++]; + entry.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; + entry.dstBinding = binding; + entry.dstArrayElement = i; + entry.descriptorCount = 1; + entry.offset = offsetof(ResourceBinding, buffer.dynamic) + sizeof(ResourceBinding) * (binding + i); + entry.stride = sizeof(ResourceBinding); + } + }); + + for_each_bit(set_layout.sampled_texel_buffer_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + VK_ASSERT(update_count < VULKAN_NUM_BINDINGS); + for (unsigned i = 0; i < array_size; i++) + { + auto &entry = update_entries[update_count++]; + entry.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER; + entry.dstBinding = binding; + entry.dstArrayElement = i; + entry.descriptorCount = 1; + entry.offset = offsetof(ResourceBinding, buffer_view) + sizeof(ResourceBinding) * (binding + i); + entry.stride = sizeof(ResourceBinding); + } + }); + + for_each_bit(set_layout.storage_texel_buffer_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + VK_ASSERT(update_count < VULKAN_NUM_BINDINGS); + for (unsigned i = 0; i < array_size; i++) + { + auto &entry = update_entries[update_count++]; + entry.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER; + entry.dstBinding = binding; + entry.dstArrayElement = i; + entry.descriptorCount = 1; + entry.offset = offsetof(ResourceBinding, buffer_view) + sizeof(ResourceBinding) * (binding + i); + entry.stride = sizeof(ResourceBinding); + } + }); + + for_each_bit(set_layout.sampled_image_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + VK_ASSERT(update_count < VULKAN_NUM_BINDINGS); + for (unsigned i = 0; i < array_size; i++) + { + auto &entry = update_entries[update_count++]; + entry.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + entry.dstBinding = binding; + entry.dstArrayElement = i; + entry.descriptorCount = 1; + if (set_layout.fp_mask & (1u << binding)) + entry.offset = offsetof(ResourceBinding, image.fp) + sizeof(ResourceBinding) * (binding + i); + else + entry.offset = offsetof(ResourceBinding, image.integer) + sizeof(ResourceBinding) * (binding + i); + entry.stride = sizeof(ResourceBinding); + } + }); + + for_each_bit(set_layout.separate_image_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + VK_ASSERT(update_count < VULKAN_NUM_BINDINGS); + for (unsigned i = 0; i < array_size; i++) + { + auto &entry = update_entries[update_count++]; + entry.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE; + entry.dstBinding = binding; + entry.dstArrayElement = i; + entry.descriptorCount = 1; + if (set_layout.fp_mask & (1u << binding)) + entry.offset = offsetof(ResourceBinding, image.fp) + sizeof(ResourceBinding) * (binding + i); + else + entry.offset = offsetof(ResourceBinding, image.integer) + sizeof(ResourceBinding) * (binding + i); + entry.stride = sizeof(ResourceBinding); + } + }); + + for_each_bit(set_layout.sampler_mask & ~set_layout.immutable_sampler_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + VK_ASSERT(update_count < VULKAN_NUM_BINDINGS); + for (unsigned i = 0; i < array_size; i++) + { + auto &entry = update_entries[update_count++]; + entry.descriptorType = VK_DESCRIPTOR_TYPE_SAMPLER; + entry.dstBinding = binding; + entry.dstArrayElement = i; + entry.descriptorCount = 1; + entry.offset = offsetof(ResourceBinding, image.fp) + sizeof(ResourceBinding) * (binding + i); + entry.stride = sizeof(ResourceBinding); + } + }); + + for_each_bit(set_layout.storage_image_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + VK_ASSERT(update_count < VULKAN_NUM_BINDINGS); + for (unsigned i = 0; i < array_size; i++) + { + auto &entry = update_entries[update_count++]; + entry.descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE; + entry.dstBinding = binding; + entry.dstArrayElement = i; + entry.descriptorCount = 1; + if (set_layout.fp_mask & (1u << binding)) + entry.offset = offsetof(ResourceBinding, image.fp) + sizeof(ResourceBinding) * (binding + i); + else + entry.offset = offsetof(ResourceBinding, image.integer) + sizeof(ResourceBinding) * (binding + i); + entry.stride = sizeof(ResourceBinding); + } + }); + + for_each_bit(set_layout.input_attachment_mask, [&](uint32_t binding) { + unsigned array_size = set_layout.array_size[binding]; + VK_ASSERT(update_count < VULKAN_NUM_BINDINGS); + for (unsigned i = 0; i < array_size; i++) + { + auto &entry = update_entries[update_count++]; + entry.descriptorType = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT; + entry.dstBinding = binding; + entry.dstArrayElement = i; + entry.descriptorCount = 1; + if (set_layout.fp_mask & (1u << binding)) + entry.offset = offsetof(ResourceBinding, image.fp) + sizeof(ResourceBinding) * (binding + i); + else + entry.offset = offsetof(ResourceBinding, image.integer) + sizeof(ResourceBinding) * (binding + i); + entry.stride = sizeof(ResourceBinding); + } + }); + + VkDescriptorUpdateTemplateCreateInfo info = { VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO }; + info.pipelineLayout = pipe_layout; + + if (desc_set == push_set_index) + { + info.descriptorSetLayout = set_allocators[desc_set]->get_layout_for_push(); + info.templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR; + } + else + { + info.descriptorSetLayout = set_allocators[desc_set]->get_layout_for_pool(); + info.templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET; + } + + info.set = desc_set; + info.descriptorUpdateEntryCount = update_count; + info.pDescriptorUpdateEntries = update_entries; + info.pipelineBindPoint = (layout.stages_for_sets[desc_set] & VK_SHADER_STAGE_COMPUTE_BIT) ? + VK_PIPELINE_BIND_POINT_COMPUTE : VK_PIPELINE_BIND_POINT_GRAPHICS; + + if (table.vkCreateDescriptorUpdateTemplate(device->get_device(), &info, nullptr, + &update_template[desc_set]) != VK_SUCCESS) + { + LOGE("Failed to create descriptor update template.\n"); + } + } +} + +PipelineLayout::~PipelineLayout() +{ + auto &table = device->get_device_table(); + if (pipe_layout != VK_NULL_HANDLE) + table.vkDestroyPipelineLayout(device->get_device(), pipe_layout, nullptr); + + for (auto &update : update_template) + if (update != VK_NULL_HANDLE) + table.vkDestroyDescriptorUpdateTemplate(device->get_device(), update, nullptr); +} + +const char *Shader::stage_to_name(ShaderStage stage) +{ + switch (stage) + { + case ShaderStage::Compute: + return "compute"; + case ShaderStage::Vertex: + return "vertex"; + case ShaderStage::Fragment: + return "fragment"; + case ShaderStage::Geometry: + return "geometry"; + case ShaderStage::TessControl: + return "tess_control"; + case ShaderStage::TessEvaluation: + return "tess_evaluation"; + default: + return "unknown"; + } +} + +// Implicitly also checks for endian issues. +static const uint16_t reflection_magic[] = { 'G', 'R', 'A', ResourceLayout::Version }; + +size_t ResourceLayout::serialization_size() +{ + return sizeof(ResourceLayout) + sizeof(reflection_magic); +} + +bool ResourceLayout::serialize(uint8_t *data, size_t size) const +{ + if (size != serialization_size()) + return false; + + // Cannot serialize externally defined immutable samplers. + for (auto &set : sets) + if (set.immutable_sampler_mask != 0) + return false; + + memcpy(data, reflection_magic, sizeof(reflection_magic)); + memcpy(data + sizeof(reflection_magic), this, sizeof(*this)); + return true; +} + +bool ResourceLayout::unserialize(const uint8_t *data, size_t size) +{ + if (size != sizeof(*this) + sizeof(reflection_magic)) + { + LOGE("Reflection size mismatch.\n"); + return false; + } + + if (memcmp(data, reflection_magic, sizeof(reflection_magic)) != 0) + { + LOGE("Magic mismatch.\n"); + return false; + } + + memcpy(this, data + sizeof(reflection_magic), sizeof(*this)); + return true; +} + +Util::Hash Shader::hash(const uint32_t *data, size_t size) +{ + Util::Hasher hasher; + hasher.data(data, size); + return hasher.get(); +} + +#ifdef GRANITE_VULKAN_SPIRV_CROSS +static void update_array_info(ResourceLayout &layout, const SPIRType &type, unsigned set, unsigned binding) +{ + auto &size = layout.sets[set].array_size[binding]; + if (!type.array.empty()) + { + if (type.array.size() != 1) + LOGE("Array dimension must be 1.\n"); + else if (!type.array_size_literal.front()) + LOGE("Array dimension must be a literal.\n"); + else + { + if (type.array.front() == 0) + { + if (binding != 0) + LOGE("Bindless textures can only be used with binding = 0 in a set.\n"); + + if (type.basetype != SPIRType::Image || type.image.dim == spv::DimBuffer) + { + LOGE("Can only use bindless for sampled images.\n"); + } + else + { + layout.bindless_set_mask |= 1u << set; + // Ignore fp_mask for bindless since we can mix and match. + layout.sets[set].fp_mask = 0; + } + + size = DescriptorSetLayout::UNSIZED_ARRAY; + } + else if (size && size != type.array.front()) + LOGE("Array dimension for (%u, %u) is inconsistent.\n", set, binding); + else if (type.array.front() + binding > VULKAN_NUM_BINDINGS) + LOGE("Binding array will go out of bounds.\n"); + else + size = uint8_t(type.array.front()); + } + } + else + { + if (size && size != 1) + LOGE("Array dimension for (%u, %u) is inconsistent.\n", set, binding); + size = 1; + } +} + +bool Shader::reflect_resource_layout(ResourceLayout &layout, const uint32_t *data, size_t size) +{ + Compiler compiler(data, size / sizeof(uint32_t)); + +#ifdef VULKAN_DEBUG + LOGI("Reflecting shader layout.\n"); +#endif + + auto resources = compiler.get_shader_resources(); + for (auto &image : resources.sampled_images) + { + auto set = compiler.get_decoration(image.id, spv::DecorationDescriptorSet); + auto binding = compiler.get_decoration(image.id, spv::DecorationBinding); + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + + auto &type = compiler.get_type(image.type_id); + if (type.image.dim == spv::DimBuffer) + layout.sets[set].sampled_texel_buffer_mask |= 1u << binding; + else + layout.sets[set].sampled_image_mask |= 1u << binding; + + if (compiler.get_type(type.image.type).basetype == SPIRType::BaseType::Float) + layout.sets[set].fp_mask |= 1u << binding; + + update_array_info(layout, type, set, binding); + } + + for (auto &image : resources.subpass_inputs) + { + auto set = compiler.get_decoration(image.id, spv::DecorationDescriptorSet); + auto binding = compiler.get_decoration(image.id, spv::DecorationBinding); + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + + layout.sets[set].input_attachment_mask |= 1u << binding; + + auto &type = compiler.get_type(image.type_id); + if (compiler.get_type(type.image.type).basetype == SPIRType::BaseType::Float) + layout.sets[set].fp_mask |= 1u << binding; + update_array_info(layout, type, set, binding); + } + + for (auto &image : resources.separate_images) + { + auto set = compiler.get_decoration(image.id, spv::DecorationDescriptorSet); + auto binding = compiler.get_decoration(image.id, spv::DecorationBinding); + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + + auto &type = compiler.get_type(image.type_id); + if (compiler.get_type(type.image.type).basetype == SPIRType::BaseType::Float) + layout.sets[set].fp_mask |= 1u << binding; + + if (type.image.dim == spv::DimBuffer) + layout.sets[set].sampled_texel_buffer_mask |= 1u << binding; + else + layout.sets[set].separate_image_mask |= 1u << binding; + + update_array_info(layout, type, set, binding); + } + + for (auto &image : resources.separate_samplers) + { + auto set = compiler.get_decoration(image.id, spv::DecorationDescriptorSet); + auto binding = compiler.get_decoration(image.id, spv::DecorationBinding); + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + + layout.sets[set].sampler_mask |= 1u << binding; + update_array_info(layout, compiler.get_type(image.type_id), set, binding); + } + + for (auto &image : resources.storage_images) + { + auto set = compiler.get_decoration(image.id, spv::DecorationDescriptorSet); + auto binding = compiler.get_decoration(image.id, spv::DecorationBinding); + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + + auto &type = compiler.get_type(image.type_id); + if (type.image.dim == spv::DimBuffer) + layout.sets[set].storage_texel_buffer_mask |= 1u << binding; + else + layout.sets[set].storage_image_mask |= 1u << binding; + + if (compiler.get_type(type.image.type).basetype == SPIRType::BaseType::Float) + layout.sets[set].fp_mask |= 1u << binding; + + update_array_info(layout, type, set, binding); + } + + for (auto &buffer : resources.uniform_buffers) + { + auto set = compiler.get_decoration(buffer.id, spv::DecorationDescriptorSet); + auto binding = compiler.get_decoration(buffer.id, spv::DecorationBinding); + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + + layout.sets[set].uniform_buffer_mask |= 1u << binding; + update_array_info(layout, compiler.get_type(buffer.type_id), set, binding); + } + + for (auto &buffer : resources.storage_buffers) + { + auto set = compiler.get_decoration(buffer.id, spv::DecorationDescriptorSet); + auto binding = compiler.get_decoration(buffer.id, spv::DecorationBinding); + VK_ASSERT(set < VULKAN_NUM_DESCRIPTOR_SETS); + VK_ASSERT(binding < VULKAN_NUM_BINDINGS); + + layout.sets[set].storage_buffer_mask |= 1u << binding; + update_array_info(layout, compiler.get_type(buffer.type_id), set, binding); + } + + for (auto &attrib : resources.stage_inputs) + { + auto location = compiler.get_decoration(attrib.id, spv::DecorationLocation); + layout.input_mask |= 1u << location; + } + + for (auto &attrib : resources.stage_outputs) + { + auto location = compiler.get_decoration(attrib.id, spv::DecorationLocation); + layout.output_mask |= 1u << location; + } + + if (!resources.push_constant_buffers.empty()) + { + // Don't bother trying to extract which part of a push constant block we're using. + // Just assume we're accessing everything. At least on older validation layers, + // it did not do a static analysis to determine similar information, so we got a lot + // of false positives. + layout.push_constant_size = + compiler.get_declared_struct_size(compiler.get_type(resources.push_constant_buffers.front().base_type_id)); + } + + auto spec_constants = compiler.get_specialization_constants(); + for (auto &c : spec_constants) + { + if (c.constant_id >= VULKAN_NUM_TOTAL_SPEC_CONSTANTS) + { + LOGE("Spec constant ID: %u is out of range, will be ignored.\n", c.constant_id); + continue; + } + + layout.spec_constant_mask |= 1u << c.constant_id; + } + + return true; +} +#else +bool Shader::reflect_resource_layout(ResourceLayout &, const uint32_t *, size_t) +{ + return false; +} +#endif + +Shader::Shader(Hash hash, Device *device_, const uint32_t *data, size_t size, + const ResourceLayout *resource_layout) + : IntrusiveHashMapEnabled(hash) + , device(device_) +{ + VkShaderModuleCreateInfo info = { VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO }; + info.codeSize = size; + info.pCode = data; + +#ifdef VULKAN_DEBUG + LOGI("Creating shader module.\n"); +#endif + auto &table = device->get_device_table(); + if (table.vkCreateShaderModule(device->get_device(), &info, nullptr, &module) != VK_SUCCESS) + LOGE("Failed to create shader module.\n"); + +#ifdef GRANITE_VULKAN_FOSSILIZE + device->register_shader_module(module, get_hash(), info); +#endif + + if (resource_layout) + layout = *resource_layout; +#ifdef GRANITE_VULKAN_SPIRV_CROSS + else if (!reflect_resource_layout(layout, data, size)) + LOGE("Failed to reflect resource layout.\n"); +#endif + + if (layout.bindless_set_mask != 0 && !device->get_device_features().vk12_features.descriptorIndexing) + LOGE("Sufficient features for descriptor indexing is not supported on this device.\n"); +} + +Shader::~Shader() +{ + auto &table = device->get_device_table(); + if (module) + table.vkDestroyShaderModule(device->get_device(), module, nullptr); +} + +void Program::set_shader(ShaderStage stage, Shader *handle) +{ + shaders[Util::ecast(stage)] = handle; +} + +Program::Program(Device *device_, Shader *vertex, Shader *fragment, const ImmutableSamplerBank *sampler_bank) + : device(device_) +{ + set_shader(ShaderStage::Vertex, vertex); + set_shader(ShaderStage::Fragment, fragment); + device->bake_program(*this, sampler_bank); +} + +Program::Program(Device *device_, Shader *task, Shader *mesh, Shader *fragment, const ImmutableSamplerBank *sampler_bank) + : device(device_) +{ + if (task) + set_shader(ShaderStage::Task, task); + set_shader(ShaderStage::Mesh, mesh); + set_shader(ShaderStage::Fragment, fragment); + device->bake_program(*this, sampler_bank); +} + +Program::Program(Device *device_, Shader *compute_shader, const ImmutableSamplerBank *sampler_bank) + : device(device_) +{ + set_shader(ShaderStage::Compute, compute_shader); + device->bake_program(*this, sampler_bank); +} + +Pipeline Program::get_pipeline(Hash hash) const +{ + auto *ret = pipelines.find(hash); + return ret ? ret->get() : Pipeline{}; +} + +Pipeline Program::add_pipeline(Hash hash, const Pipeline &pipeline) +{ + return pipelines.emplace_yield(hash, pipeline)->get(); +} + +void Program::destroy_pipeline(const Pipeline &pipeline) +{ + device->get_device_table().vkDestroyPipeline(device->get_device(), pipeline.pipeline, nullptr); +} + +void Program::promote_read_write_to_read_only() +{ + pipelines.move_to_read_only(); +} + +Program::~Program() +{ + for (auto &pipe : pipelines.get_read_only()) + destroy_pipeline(pipe.get()); + for (auto &pipe : pipelines.get_read_write()) + destroy_pipeline(pipe.get()); +} +} diff --git a/vulkan/shader.hpp b/vulkan/shader.hpp new file mode 100644 index 00000000..527e6d7f --- /dev/null +++ b/vulkan/shader.hpp @@ -0,0 +1,228 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "cookie.hpp" +#include "descriptor_set.hpp" +#include "hash.hpp" +#include "intrusive.hpp" +#include "limits.hpp" +#include "vulkan_headers.hpp" +#include "enum_cast.hpp" + +namespace spirv_cross +{ +struct SPIRType; +} + +namespace Vulkan +{ +class Device; + +enum class ShaderStage +{ + Vertex = 0, + TessControl = 1, + TessEvaluation = 2, + Geometry = 3, + Fragment = 4, + Compute = 5, + Task = 6, + Mesh = 7, + Count +}; + +struct ResourceLayout +{ + DescriptorSetLayout sets[VULKAN_NUM_DESCRIPTOR_SETS]; + uint32_t input_mask = 0; + uint32_t output_mask = 0; + uint32_t push_constant_size = 0; + uint32_t spec_constant_mask = 0; + uint32_t bindless_set_mask = 0; + enum { Version = 4 }; + + bool unserialize(const uint8_t *data, size_t size); + bool serialize(uint8_t *data, size_t size) const; + static size_t serialization_size(); +}; +static_assert(sizeof(DescriptorSetLayout) % 8 == 0, "Size of DescriptorSetLayout does not align to 64 bits."); + +struct CombinedResourceLayout +{ + uint32_t attribute_mask = 0; + uint32_t render_target_mask = 0; + DescriptorSetLayout sets[VULKAN_NUM_DESCRIPTOR_SETS] = {}; + uint32_t stages_for_bindings[VULKAN_NUM_DESCRIPTOR_SETS][VULKAN_NUM_BINDINGS] = {}; + uint32_t stages_for_sets[VULKAN_NUM_DESCRIPTOR_SETS] = {}; + VkPushConstantRange push_constant_range = {}; + uint32_t descriptor_set_mask = 0; + uint32_t bindless_descriptor_set_mask = 0; + uint32_t spec_constant_mask[Util::ecast(ShaderStage::Count)] = {}; + uint32_t combined_spec_constant_mask = 0; + Util::Hash push_constant_layout_hash = 0; +}; + +union ResourceBinding +{ + struct + { + VkDescriptorBufferInfo dynamic; + VkDescriptorBufferInfo push; + } buffer; + + struct + { + VkDescriptorImageInfo fp; + VkDescriptorImageInfo integer; + } image; + + VkBufferView buffer_view; +}; + +struct ResourceBindings +{ + ResourceBinding bindings[VULKAN_NUM_DESCRIPTOR_SETS][VULKAN_NUM_BINDINGS]; + uint64_t cookies[VULKAN_NUM_DESCRIPTOR_SETS][VULKAN_NUM_BINDINGS]; + uint64_t secondary_cookies[VULKAN_NUM_DESCRIPTOR_SETS][VULKAN_NUM_BINDINGS]; + uint8_t push_constant_data[VULKAN_PUSH_CONSTANT_SIZE]; +}; + +struct ImmutableSamplerBank +{ + const ImmutableSampler *samplers[VULKAN_NUM_DESCRIPTOR_SETS][VULKAN_NUM_BINDINGS]; + static void hash(Util::Hasher &h, const ImmutableSamplerBank *bank); +}; + +class PipelineLayout : public HashedObject +{ +public: + PipelineLayout(Util::Hash hash, Device *device, const CombinedResourceLayout &layout, + const ImmutableSamplerBank *sampler_bank); + ~PipelineLayout(); + + const CombinedResourceLayout &get_resource_layout() const + { + return layout; + } + + VkPipelineLayout get_layout() const + { + return pipe_layout; + } + + DescriptorSetAllocator *get_allocator(unsigned set) const + { + return set_allocators[set]; + } + + VkDescriptorUpdateTemplate get_update_template(unsigned set) const + { + return update_template[set]; + } + + uint32_t get_push_set_index() const + { + return push_set_index; + } + +private: + Device *device; + VkPipelineLayout pipe_layout = VK_NULL_HANDLE; + CombinedResourceLayout layout; + DescriptorSetAllocator *set_allocators[VULKAN_NUM_DESCRIPTOR_SETS] = {}; + VkDescriptorUpdateTemplate update_template[VULKAN_NUM_DESCRIPTOR_SETS] = {}; + uint32_t push_set_index = UINT32_MAX; + void create_update_templates(); +}; + +class Shader : public HashedObject +{ +public: + Shader(Util::Hash binding, Device *device, const uint32_t *data, size_t size, + const ResourceLayout *layout = nullptr); + ~Shader(); + + const ResourceLayout &get_layout() const + { + return layout; + } + + VkShaderModule get_module() const + { + return module; + } + + static bool reflect_resource_layout(ResourceLayout &layout, const uint32_t *spirv_data, size_t spirv_size); + static const char *stage_to_name(ShaderStage stage); + static Util::Hash hash(const uint32_t *data, size_t size); + +private: + Device *device; + VkShaderModule module = VK_NULL_HANDLE; + ResourceLayout layout; +}; + +struct Pipeline +{ + VkPipeline pipeline; + uint32_t dynamic_mask; +}; + +class Program : public HashedObject +{ +public: + Program(Device *device, Shader *vertex, Shader *fragment, const ImmutableSamplerBank *sampler_bank); + Program(Device *device, Shader *task, Shader *mesh, Shader *fragment, const ImmutableSamplerBank *sampler_bank); + Program(Device *device, Shader *compute, const ImmutableSamplerBank *sampler_bank); + ~Program(); + + inline const Shader *get_shader(ShaderStage stage) const + { + return shaders[Util::ecast(stage)]; + } + + void set_pipeline_layout(const PipelineLayout *new_layout) + { + layout = new_layout; + } + + const PipelineLayout *get_pipeline_layout() const + { + return layout; + } + + Pipeline get_pipeline(Util::Hash hash) const; + Pipeline add_pipeline(Util::Hash hash, const Pipeline &pipeline); + + void promote_read_write_to_read_only(); + +private: + void set_shader(ShaderStage stage, Shader *handle); + Device *device; + Shader *shaders[Util::ecast(ShaderStage::Count)] = {}; + const PipelineLayout *layout = nullptr; + VulkanCache> pipelines; + void destroy_pipeline(const Pipeline &pipeline); +}; +} diff --git a/vulkan/texture/texture_format.cpp b/vulkan/texture/texture_format.cpp new file mode 100644 index 00000000..fc9e95e8 --- /dev/null +++ b/vulkan/texture/texture_format.cpp @@ -0,0 +1,518 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "texture_format.hpp" +#include "format.hpp" +#include + +namespace Vulkan +{ +uint32_t TextureFormatLayout::num_miplevels(uint32_t width, uint32_t height, uint32_t depth) +{ + uint32_t size = unsigned(std::max(std::max(width, height), depth)); + uint32_t levels = 0; + while (size) + { + levels++; + size >>= 1; + } + return levels; +} + +void TextureFormatLayout::format_block_dim(VkFormat format, uint32_t &width, uint32_t &height) +{ +#define fmt(x, w, h) \ + case VK_FORMAT_##x: \ + width = w; \ + height = h; \ + break + + switch (format) + { + fmt(ETC2_R8G8B8A8_UNORM_BLOCK, 4, 4); + fmt(ETC2_R8G8B8A8_SRGB_BLOCK, 4, 4); + fmt(ETC2_R8G8B8A1_UNORM_BLOCK, 4, 4); + fmt(ETC2_R8G8B8A1_SRGB_BLOCK, 4, 4); + fmt(ETC2_R8G8B8_UNORM_BLOCK, 4, 4); + fmt(ETC2_R8G8B8_SRGB_BLOCK, 4, 4); + fmt(EAC_R11_UNORM_BLOCK, 4, 4); + fmt(EAC_R11_SNORM_BLOCK, 4, 4); + fmt(EAC_R11G11_UNORM_BLOCK, 4, 4); + fmt(EAC_R11G11_SNORM_BLOCK, 4, 4); + + fmt(BC1_RGB_UNORM_BLOCK, 4, 4); + fmt(BC1_RGB_SRGB_BLOCK, 4, 4); + fmt(BC1_RGBA_UNORM_BLOCK, 4, 4); + fmt(BC1_RGBA_SRGB_BLOCK, 4, 4); + fmt(BC2_UNORM_BLOCK, 4, 4); + fmt(BC2_SRGB_BLOCK, 4, 4); + fmt(BC3_UNORM_BLOCK, 4, 4); + fmt(BC3_SRGB_BLOCK, 4, 4); + fmt(BC4_UNORM_BLOCK, 4, 4); + fmt(BC4_SNORM_BLOCK, 4, 4); + fmt(BC5_UNORM_BLOCK, 4, 4); + fmt(BC5_SNORM_BLOCK, 4, 4); + fmt(BC6H_UFLOAT_BLOCK, 4, 4); + fmt(BC6H_SFLOAT_BLOCK, 4, 4); + fmt(BC7_SRGB_BLOCK, 4, 4); + fmt(BC7_UNORM_BLOCK, 4, 4); + +#define astc_fmt(w, h) \ + fmt(ASTC_##w##x##h##_UNORM_BLOCK, w, h); \ + fmt(ASTC_##w##x##h##_SRGB_BLOCK, w, h); \ + fmt(ASTC_##w##x##h##_SFLOAT_BLOCK_EXT, w, h) + + astc_fmt(4, 4); + astc_fmt(5, 4); + astc_fmt(5, 5); + astc_fmt(6, 5); + astc_fmt(6, 6); + astc_fmt(8, 5); + astc_fmt(8, 6); + astc_fmt(8, 8); + astc_fmt(10, 5); + astc_fmt(10, 6); + astc_fmt(10, 8); + astc_fmt(10, 10); + astc_fmt(12, 10); + astc_fmt(12, 12); + + default: + width = 1; + height = 1; + break; + } + +#undef fmt +#undef astc_fmt +} + +uint32_t TextureFormatLayout::format_block_size(VkFormat format, VkImageAspectFlags aspect) +{ +#define fmt(x, bpp) \ + case VK_FORMAT_##x: \ + return bpp + +#define fmt2(x, bpp0, bpp1) \ + case VK_FORMAT_##x: \ + return aspect == VK_IMAGE_ASPECT_PLANE_0_BIT ? bpp0 : bpp1 + + switch (format) + { + fmt(R4G4_UNORM_PACK8, 1); + fmt(R4G4B4A4_UNORM_PACK16, 2); + fmt(B4G4R4A4_UNORM_PACK16, 2); + fmt(R5G6B5_UNORM_PACK16, 2); + fmt(B5G6R5_UNORM_PACK16, 2); + fmt(R5G5B5A1_UNORM_PACK16, 2); + fmt(B5G5R5A1_UNORM_PACK16, 2); + fmt(A1R5G5B5_UNORM_PACK16, 2); + fmt(R8_UNORM, 1); + fmt(R8_SNORM, 1); + fmt(R8_USCALED, 1); + fmt(R8_SSCALED, 1); + fmt(R8_UINT, 1); + fmt(R8_SINT, 1); + fmt(R8_SRGB, 1); + fmt(R8G8_UNORM, 2); + fmt(R8G8_SNORM, 2); + fmt(R8G8_USCALED, 2); + fmt(R8G8_SSCALED, 2); + fmt(R8G8_UINT, 2); + fmt(R8G8_SINT, 2); + fmt(R8G8_SRGB, 2); + fmt(R8G8B8_UNORM, 3); + fmt(R8G8B8_SNORM, 3); + fmt(R8G8B8_USCALED, 3); + fmt(R8G8B8_SSCALED, 3); + fmt(R8G8B8_UINT, 3); + fmt(R8G8B8_SINT, 3); + fmt(R8G8B8_SRGB, 3); + fmt(R8G8B8A8_UNORM, 4); + fmt(R8G8B8A8_SNORM, 4); + fmt(R8G8B8A8_USCALED, 4); + fmt(R8G8B8A8_SSCALED, 4); + fmt(R8G8B8A8_UINT, 4); + fmt(R8G8B8A8_SINT, 4); + fmt(R8G8B8A8_SRGB, 4); + fmt(B8G8R8A8_UNORM, 4); + fmt(B8G8R8A8_SNORM, 4); + fmt(B8G8R8A8_USCALED, 4); + fmt(B8G8R8A8_SSCALED, 4); + fmt(B8G8R8A8_UINT, 4); + fmt(B8G8R8A8_SINT, 4); + fmt(B8G8R8A8_SRGB, 4); + fmt(A8B8G8R8_UNORM_PACK32, 4); + fmt(A8B8G8R8_SNORM_PACK32, 4); + fmt(A8B8G8R8_USCALED_PACK32, 4); + fmt(A8B8G8R8_SSCALED_PACK32, 4); + fmt(A8B8G8R8_UINT_PACK32, 4); + fmt(A8B8G8R8_SINT_PACK32, 4); + fmt(A8B8G8R8_SRGB_PACK32, 4); + fmt(A2B10G10R10_UNORM_PACK32, 4); + fmt(A2B10G10R10_SNORM_PACK32, 4); + fmt(A2B10G10R10_USCALED_PACK32, 4); + fmt(A2B10G10R10_SSCALED_PACK32, 4); + fmt(A2B10G10R10_UINT_PACK32, 4); + fmt(A2B10G10R10_SINT_PACK32, 4); + fmt(A2R10G10B10_UNORM_PACK32, 4); + fmt(A2R10G10B10_SNORM_PACK32, 4); + fmt(A2R10G10B10_USCALED_PACK32, 4); + fmt(A2R10G10B10_SSCALED_PACK32, 4); + fmt(A2R10G10B10_UINT_PACK32, 4); + fmt(A2R10G10B10_SINT_PACK32, 4); + fmt(R16_UNORM, 2); + fmt(R16_SNORM, 2); + fmt(R16_USCALED, 2); + fmt(R16_SSCALED, 2); + fmt(R16_UINT, 2); + fmt(R16_SINT, 2); + fmt(R16_SFLOAT, 2); + fmt(R16G16_UNORM, 4); + fmt(R16G16_SNORM, 4); + fmt(R16G16_USCALED, 4); + fmt(R16G16_SSCALED, 4); + fmt(R16G16_UINT, 4); + fmt(R16G16_SINT, 4); + fmt(R16G16_SFLOAT, 4); + fmt(R16G16B16_UNORM, 6); + fmt(R16G16B16_SNORM, 6); + fmt(R16G16B16_USCALED, 6); + fmt(R16G16B16_SSCALED, 6); + fmt(R16G16B16_UINT, 6); + fmt(R16G16B16_SINT, 6); + fmt(R16G16B16_SFLOAT, 6); + fmt(R16G16B16A16_UNORM, 8); + fmt(R16G16B16A16_SNORM, 8); + fmt(R16G16B16A16_USCALED, 8); + fmt(R16G16B16A16_SSCALED, 8); + fmt(R16G16B16A16_UINT, 8); + fmt(R16G16B16A16_SINT, 8); + fmt(R16G16B16A16_SFLOAT, 8); + fmt(R32_UINT, 4); + fmt(R32_SINT, 4); + fmt(R32_SFLOAT, 4); + fmt(R32G32_UINT, 8); + fmt(R32G32_SINT, 8); + fmt(R32G32_SFLOAT, 8); + fmt(R32G32B32_UINT, 12); + fmt(R32G32B32_SINT, 12); + fmt(R32G32B32_SFLOAT, 12); + fmt(R32G32B32A32_UINT, 16); + fmt(R32G32B32A32_SINT, 16); + fmt(R32G32B32A32_SFLOAT, 16); + fmt(R64_UINT, 8); + fmt(R64_SINT, 8); + fmt(R64_SFLOAT, 8); + fmt(R64G64_UINT, 16); + fmt(R64G64_SINT, 16); + fmt(R64G64_SFLOAT, 16); + fmt(R64G64B64_UINT, 24); + fmt(R64G64B64_SINT, 24); + fmt(R64G64B64_SFLOAT, 24); + fmt(R64G64B64A64_UINT, 32); + fmt(R64G64B64A64_SINT, 32); + fmt(R64G64B64A64_SFLOAT, 32); + fmt(B10G11R11_UFLOAT_PACK32, 4); + fmt(E5B9G9R9_UFLOAT_PACK32, 4); + + fmt(D16_UNORM, 2); + fmt(X8_D24_UNORM_PACK32, 4); + fmt(D32_SFLOAT, 4); + fmt(S8_UINT, 1); + + case VK_FORMAT_D16_UNORM_S8_UINT: + return aspect == VK_IMAGE_ASPECT_DEPTH_BIT ? 2 : 1; + case VK_FORMAT_D24_UNORM_S8_UINT: + case VK_FORMAT_D32_SFLOAT_S8_UINT: + return aspect == VK_IMAGE_ASPECT_DEPTH_BIT ? 4 : 1; + + // ETC2 + fmt(ETC2_R8G8B8A8_UNORM_BLOCK, 16); + fmt(ETC2_R8G8B8A8_SRGB_BLOCK, 16); + fmt(ETC2_R8G8B8A1_UNORM_BLOCK, 8); + fmt(ETC2_R8G8B8A1_SRGB_BLOCK, 8); + fmt(ETC2_R8G8B8_UNORM_BLOCK, 8); + fmt(ETC2_R8G8B8_SRGB_BLOCK, 8); + fmt(EAC_R11_UNORM_BLOCK, 8); + fmt(EAC_R11_SNORM_BLOCK, 8); + fmt(EAC_R11G11_UNORM_BLOCK, 16); + fmt(EAC_R11G11_SNORM_BLOCK, 16); + + // BC + fmt(BC1_RGB_UNORM_BLOCK, 8); + fmt(BC1_RGB_SRGB_BLOCK, 8); + fmt(BC1_RGBA_UNORM_BLOCK, 8); + fmt(BC1_RGBA_SRGB_BLOCK, 8); + fmt(BC2_UNORM_BLOCK, 16); + fmt(BC2_SRGB_BLOCK, 16); + fmt(BC3_UNORM_BLOCK, 16); + fmt(BC3_SRGB_BLOCK, 16); + fmt(BC4_UNORM_BLOCK, 8); + fmt(BC4_SNORM_BLOCK, 8); + fmt(BC5_UNORM_BLOCK, 16); + fmt(BC5_SNORM_BLOCK, 16); + fmt(BC6H_UFLOAT_BLOCK, 16); + fmt(BC6H_SFLOAT_BLOCK, 16); + fmt(BC7_SRGB_BLOCK, 16); + fmt(BC7_UNORM_BLOCK, 16); + + // ASTC +#define astc_fmt(w, h) \ + fmt(ASTC_##w##x##h##_UNORM_BLOCK, 16); \ + fmt(ASTC_##w##x##h##_SRGB_BLOCK, 16); \ + fmt(ASTC_##w##x##h##_SFLOAT_BLOCK_EXT, 16) + + astc_fmt(4, 4); + astc_fmt(5, 4); + astc_fmt(5, 5); + astc_fmt(6, 5); + astc_fmt(6, 6); + astc_fmt(8, 5); + astc_fmt(8, 6); + astc_fmt(8, 8); + astc_fmt(10, 5); + astc_fmt(10, 6); + astc_fmt(10, 8); + astc_fmt(10, 10); + astc_fmt(12, 10); + astc_fmt(12, 12); + + fmt(G8B8G8R8_422_UNORM, 4); + fmt(B8G8R8G8_422_UNORM, 4); + + fmt(G8_B8_R8_3PLANE_420_UNORM, 1); + fmt2(G8_B8R8_2PLANE_420_UNORM, 1, 2); + fmt(G8_B8_R8_3PLANE_422_UNORM, 1); + fmt2(G8_B8R8_2PLANE_422_UNORM, 1, 2); + fmt(G8_B8_R8_3PLANE_444_UNORM, 1); + + fmt(R10X6_UNORM_PACK16, 2); + fmt(R10X6G10X6_UNORM_2PACK16, 4); + fmt(R10X6G10X6B10X6A10X6_UNORM_4PACK16, 8); + fmt(G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, 8); + fmt(B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, 8); + fmt(G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, 2); + fmt(G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, 2); + fmt(G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, 2); + fmt2(G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, 2, 4); + fmt2(G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, 2, 4); + + fmt(R12X4_UNORM_PACK16, 2); + fmt(R12X4G12X4_UNORM_2PACK16, 4); + fmt(R12X4G12X4B12X4A12X4_UNORM_4PACK16, 8); + fmt(G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, 8); + fmt(B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, 8); + fmt(G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, 2); + fmt(G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, 2); + fmt(G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, 2); + fmt2(G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, 2, 4); + fmt2(G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, 2, 4); + + fmt(G16B16G16R16_422_UNORM, 8); + fmt(B16G16R16G16_422_UNORM, 8); + fmt(G16_B16_R16_3PLANE_420_UNORM, 2); + fmt(G16_B16_R16_3PLANE_422_UNORM, 2); + fmt(G16_B16_R16_3PLANE_444_UNORM, 2); + fmt2(G16_B16R16_2PLANE_420_UNORM, 2, 4); + fmt2(G16_B16R16_2PLANE_422_UNORM, 2, 4); + + default: + assert(0 && "Unknown format."); + return 0; + } +#undef fmt +#undef fmt2 +#undef astc_fmt +} + +void TextureFormatLayout::fill_mipinfo(uint32_t width, uint32_t height, uint32_t depth) +{ + block_stride = format_block_size(format, 0); + format_block_dim(format, block_dim_x, block_dim_y); + + if (mip_levels == 0) + mip_levels = num_miplevels(width, height, depth); + + size_t offset = 0; + + for (uint32_t mip = 0; mip < mip_levels; mip++) + { + offset = (offset + 15) & ~15; + + uint32_t blocks_x = (width + block_dim_x - 1) / block_dim_x; + uint32_t blocks_y = (height + block_dim_y - 1) / block_dim_y; + size_t mip_size = blocks_x * blocks_y * array_layers * depth * block_stride; + + mips[mip].offset = offset; + + mips[mip].block_row_length = blocks_x; + mips[mip].block_image_height = blocks_y; + + mips[mip].row_length = blocks_x * block_dim_x; + mips[mip].image_height = blocks_y * block_dim_y; + + mips[mip].width = width; + mips[mip].height = height; + mips[mip].depth = depth; + + offset += mip_size; + + width = std::max((width >> 1u), 1u); + height = std::max((height >> 1u), 1u); + depth = std::max((depth >> 1u), 1u); + } + + required_size = offset; +} + +void TextureFormatLayout::set_1d(VkFormat format_, uint32_t width, uint32_t array_layers_, uint32_t mip_levels_) +{ + image_type = VK_IMAGE_TYPE_1D; + format = format_; + array_layers = array_layers_; + mip_levels = mip_levels_; + + fill_mipinfo(width, 1, 1); +} + +void TextureFormatLayout::set_2d(VkFormat format_, uint32_t width, uint32_t height, + uint32_t array_layers_, uint32_t mip_levels_) +{ + image_type = VK_IMAGE_TYPE_2D; + format = format_; + array_layers = array_layers_; + mip_levels = mip_levels_; + + fill_mipinfo(width, height, 1); +} + +void TextureFormatLayout::set_3d(VkFormat format_, uint32_t width, uint32_t height, uint32_t depth, uint32_t mip_levels_) +{ + image_type = VK_IMAGE_TYPE_3D; + format = format_; + array_layers = 1; + mip_levels = mip_levels_; + + fill_mipinfo(width, height, depth); +} + +void TextureFormatLayout::set_buffer(void *buffer_, size_t size) +{ + buffer = static_cast(buffer_); + buffer_size = size; +} + +uint32_t TextureFormatLayout::get_width(uint32_t mip) const +{ + return mips[mip].width; +} + +uint32_t TextureFormatLayout::get_height(uint32_t mip) const +{ + return mips[mip].height; +} + +uint32_t TextureFormatLayout::get_depth(uint32_t mip) const +{ + return mips[mip].depth; +} + +uint32_t TextureFormatLayout::get_layers() const +{ + return array_layers; +} + +VkImageType TextureFormatLayout::get_image_type() const +{ + return image_type; +} + +VkFormat TextureFormatLayout::get_format() const +{ + return format; +} + +uint32_t TextureFormatLayout::get_block_stride() const +{ + return block_stride; +} + +uint32_t TextureFormatLayout::get_levels() const +{ + return mip_levels; +} + +size_t TextureFormatLayout::get_required_size() const +{ + return required_size; +} + +const TextureFormatLayout::MipInfo &TextureFormatLayout::get_mip_info(uint32_t mip) const +{ + return mips[mip]; +} + +uint32_t TextureFormatLayout::get_block_dim_x() const +{ + return block_dim_x; +} + +uint32_t TextureFormatLayout::get_block_dim_y() const +{ + return block_dim_y; +} + +size_t TextureFormatLayout::row_byte_stride(uint32_t row_length) const +{ + return ((row_length + block_dim_x - 1) / block_dim_x) * block_stride; +} + +size_t TextureFormatLayout::layer_byte_stride(uint32_t image_height, size_t row_byte_stride) const +{ + return ((image_height + block_dim_y - 1) / block_dim_y) * row_byte_stride; +} + +void TextureFormatLayout::build_buffer_image_copies(Util::SmallVector &copies) const +{ + copies.resize(mip_levels); + for (unsigned level = 0; level < mip_levels; level++) + { + const auto &mip_info = mips[level]; + + auto &blit = copies[level]; + blit = {}; + blit.bufferOffset = mip_info.offset; + blit.bufferRowLength = mip_info.row_length; + blit.bufferImageHeight = mip_info.image_height; + blit.imageSubresource.aspectMask = format_to_aspect_mask(format); + blit.imageSubresource.mipLevel = level; + blit.imageSubresource.baseArrayLayer = 0; + blit.imageSubresource.layerCount = array_layers; + blit.imageExtent.width = mip_info.width; + blit.imageExtent.height = mip_info.height; + blit.imageExtent.depth = mip_info.depth; + } +} + +} \ No newline at end of file diff --git a/vulkan/texture/texture_format.hpp b/vulkan/texture/texture_format.hpp new file mode 100644 index 00000000..087c741d --- /dev/null +++ b/vulkan/texture/texture_format.hpp @@ -0,0 +1,178 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" +#include "small_vector.hpp" +#include +#include +#include + +namespace Vulkan +{ +class TextureFormatLayout +{ +public: + void set_1d(VkFormat format, uint32_t width, uint32_t array_layers = 1, uint32_t mip_levels = 1); + void set_2d(VkFormat format, uint32_t width, uint32_t height, uint32_t array_layers = 1, uint32_t mip_levels = 1); + void set_3d(VkFormat format, uint32_t width, uint32_t height, uint32_t depth, uint32_t mip_levels = 1); + + static uint32_t format_block_size(VkFormat format, VkImageAspectFlags aspect); + static void format_block_dim(VkFormat format, uint32_t &width, uint32_t &height); + static uint32_t num_miplevels(uint32_t width, uint32_t height = 1, uint32_t depth = 1); + + void set_buffer(void *buffer, size_t size); + inline void *get_buffer() + { + return buffer; + } + + uint32_t get_width(uint32_t mip = 0) const; + uint32_t get_height(uint32_t mip = 0) const; + uint32_t get_depth(uint32_t mip = 0) const; + uint32_t get_levels() const; + uint32_t get_layers() const; + uint32_t get_block_stride() const; + uint32_t get_block_dim_x() const; + uint32_t get_block_dim_y() const; + VkImageType get_image_type() const; + VkFormat get_format() const; + + size_t get_required_size() const; + + size_t row_byte_stride(uint32_t row_length) const; + size_t layer_byte_stride(uint32_t row_length, size_t row_byte_stride) const; + + inline size_t get_row_size(uint32_t mip) const + { + return size_t(mips[mip].block_row_length) * block_stride; + } + + inline size_t get_layer_size(uint32_t mip) const + { + return size_t(mips[mip].block_image_height) * get_row_size(mip); + } + + struct MipInfo + { + size_t offset = 0; + uint32_t width = 1; + uint32_t height = 1; + uint32_t depth = 1; + + uint32_t block_image_height = 0; + uint32_t block_row_length = 0; + uint32_t image_height = 0; + uint32_t row_length = 0; + }; + + const MipInfo &get_mip_info(uint32_t mip) const; + + inline void *data(uint32_t layer = 0, uint32_t mip = 0) const + { + assert(buffer); + assert(buffer_size == required_size); + auto &mip_info = mips[mip]; + uint8_t *slice = buffer + mip_info.offset; + slice += block_stride * layer * mip_info.block_row_length * mip_info.block_image_height; + return slice; + } + + template + inline T *data_generic(uint32_t x, uint32_t y, uint32_t slice_index, uint32_t mip = 0) const + { + auto &mip_info = mips[mip]; + T *slice = reinterpret_cast(buffer + mip_info.offset); + slice += slice_index * mip_info.block_row_length * mip_info.block_image_height; + slice += y * mip_info.block_row_length; + slice += x; + return slice; + } + + inline void *data_opaque(uint32_t x, uint32_t y, uint32_t slice_index, uint32_t mip = 0) const + { + auto &mip_info = mips[mip]; + uint8_t *slice = buffer + mip_info.offset; + size_t off = slice_index * mip_info.block_row_length * mip_info.block_image_height; + off += y * mip_info.block_row_length; + off += x; + return slice + off * block_stride; + } + + template + inline T *data_generic() const + { + return data_generic(0, 0, 0, 0); + } + + template + inline T *data_1d(uint32_t x, uint32_t layer = 0, uint32_t mip = 0) const + { + assert(sizeof(T) == block_stride); + assert(buffer); + assert(image_type == VK_IMAGE_TYPE_1D); + assert(buffer_size == required_size); + return data_generic(x, 0, layer, mip); + } + + template + inline T *data_2d(uint32_t x, uint32_t y, uint32_t layer = 0, uint32_t mip = 0) const + { + assert(sizeof(T) == block_stride); + assert(buffer); + assert(image_type == VK_IMAGE_TYPE_2D); + assert(buffer_size == required_size); + return data_generic(x, y, layer, mip); + } + + template + inline T *data_3d(uint32_t x, uint32_t y, uint32_t z, uint32_t mip = 0) const + { + assert(sizeof(T) == block_stride); + assert(buffer); + assert(image_type == VK_IMAGE_TYPE_3D); + assert(buffer_size == required_size); + return data_generic(x, y, z, mip); + } + + void build_buffer_image_copies(Util::SmallVector &copies) const; + +private: + uint8_t *buffer = nullptr; + size_t buffer_size = 0; + + VkImageType image_type = VK_IMAGE_TYPE_MAX_ENUM; + VkFormat format = VK_FORMAT_UNDEFINED; + size_t required_size = 0; + + uint32_t block_stride = 1; + uint32_t mip_levels = 1; + uint32_t array_layers = 1; + uint32_t block_dim_x = 1; + uint32_t block_dim_y = 1; + + MipInfo mips[16]; + + void fill_mipinfo(uint32_t width, uint32_t height, uint32_t depth); +}; +} diff --git a/vulkan/type_to_string.hpp b/vulkan/type_to_string.hpp new file mode 100644 index 00000000..2c286778 --- /dev/null +++ b/vulkan/type_to_string.hpp @@ -0,0 +1,113 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include + +namespace Vulkan +{ +static inline const char *layout_to_string(VkImageLayout layout) +{ + switch (layout) + { + case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: + return "SHADER_READ_ONLY"; + case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL: + return "DS_READ_ONLY"; + case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL: + return "DS"; + case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: + return "COLOR"; + case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: + return "TRANSFER_DST"; + case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: + return "TRANSFER_SRC"; + case VK_IMAGE_LAYOUT_GENERAL: + return "GENERAL"; + case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR: + return "PRESENT"; + default: + return "UNDEFINED"; + } +} + +static inline std::string access_flags_to_string(VkAccessFlags2 flags) +{ + std::string result; + + if (flags & VK_ACCESS_SHADER_READ_BIT) + result += "SHADER_READ "; + if (flags & VK_ACCESS_SHADER_WRITE_BIT) + result += "SHADER_WRITE "; + if (flags & VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT) + result += "DS_WRITE "; + if (flags & VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT) + result += "DS_READ "; + if (flags & VK_ACCESS_COLOR_ATTACHMENT_READ_BIT) + result += "COLOR_READ "; + if (flags & VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT) + result += "COLOR_WRITE "; + if (flags & VK_ACCESS_INPUT_ATTACHMENT_READ_BIT) + result += "INPUT_READ "; + if (flags & VK_ACCESS_TRANSFER_WRITE_BIT) + result += "TRANSFER_WRITE "; + if (flags & VK_ACCESS_TRANSFER_READ_BIT) + result += "TRANSFER_READ "; + if (flags & VK_ACCESS_UNIFORM_READ_BIT) + result += "UNIFORM_READ "; + + if (!result.empty()) + result.pop_back(); + else + result = "NONE"; + + return result; +} + +static inline std::string stage_flags_to_string(VkPipelineStageFlags2 flags) +{ + std::string result; + + if (flags & VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT) + result += "GRAPHICS "; + if (flags & (VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT)) + result += "DEPTH "; + if (flags & VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT) + result += "COLOR "; + if (flags & VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT) + result += "FRAGMENT "; + if (flags & VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT) + result += "COMPUTE "; + if (flags & VK_PIPELINE_STAGE_TRANSFER_BIT) + result += "TRANSFER "; + if (flags & (VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT)) + result += "VERTEX "; + + if (!result.empty()) + result.pop_back(); + else + result = "NONE"; + + return result; +} +} \ No newline at end of file diff --git a/vulkan/vulkan_common.hpp b/vulkan/vulkan_common.hpp new file mode 100644 index 00000000..a0219e76 --- /dev/null +++ b/vulkan/vulkan_common.hpp @@ -0,0 +1,111 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "intrusive.hpp" +#include "object_pool.hpp" +#include "intrusive_hash_map.hpp" +#include "vulkan_headers.hpp" + +namespace Vulkan +{ +using HandleCounter = Util::MultiThreadCounter; + +template +using VulkanObjectPool = Util::ThreadSafeObjectPool; +template +using VulkanCache = Util::ThreadSafeIntrusiveHashMapReadCached; +template +using VulkanCacheReadWrite = Util::ThreadSafeIntrusiveHashMap; + +enum QueueIndices +{ + QUEUE_INDEX_GRAPHICS, + QUEUE_INDEX_COMPUTE, + QUEUE_INDEX_TRANSFER, + QUEUE_INDEX_VIDEO_DECODE, + QUEUE_INDEX_VIDEO_ENCODE, + QUEUE_INDEX_COUNT +}; + +struct ExternalHandle +{ +#ifdef _WIN32 + using NativeHandle = void *; + NativeHandle handle = nullptr; +#else + using NativeHandle = int; + NativeHandle handle = -1; +#endif + + VkExternalMemoryHandleTypeFlagBits memory_handle_type = get_opaque_memory_handle_type(); + VkExternalSemaphoreHandleTypeFlagBits semaphore_handle_type = get_opaque_semaphore_handle_type(); + + constexpr static VkExternalMemoryHandleTypeFlagBits get_opaque_memory_handle_type() + { +#ifdef _WIN32 + return VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT; +#else + return VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; +#endif + } + + constexpr static VkExternalSemaphoreHandleTypeFlagBits get_opaque_semaphore_handle_type() + { +#ifdef _WIN32 + return VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT; +#else + return VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT; +#endif + } + + inline explicit operator bool() const + { +#ifdef _WIN32 + return handle != nullptr; +#else + return handle >= 0; +#endif + } + + static bool memory_handle_type_imports_by_reference(VkExternalMemoryHandleTypeFlagBits type) + { + VK_ASSERT(type == VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT || + type == VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT || + type == VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT || + type == VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT || + type == VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT); + return type != VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT; + } + + static bool semaphore_handle_type_imports_by_reference(VkExternalSemaphoreHandleTypeFlagBits type) + { + VK_ASSERT(type == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT || + type == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT || + type == VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT); + + // D3D11 fence aliases D3D12 fence. It's basically the same thing, just D3D11.3. + return type != VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT; + } +}; +} diff --git a/vulkan/vulkan_headers.hpp b/vulkan/vulkan_headers.hpp new file mode 100644 index 00000000..0d7e4cc0 --- /dev/null +++ b/vulkan/vulkan_headers.hpp @@ -0,0 +1,71 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#if defined(_WIN32) && !defined(VK_USE_PLATFORM_WIN32_KHR) +#define VK_USE_PLATFORM_WIN32_KHR +#endif + +#if defined(VULKAN_H_) || defined(VULKAN_CORE_H_) +#error "Must include vulkan_headers.hpp before Vulkan headers" +#endif + +#include "volk.h" +#include +#include "logging.hpp" +#include + +// Workaround silly Xlib headers that define macros for these globally :( +#ifdef None +#undef None +#endif +#ifdef Bool +#undef Bool +#endif +#ifdef Status +#undef Status +#endif + +#ifdef VULKAN_DEBUG +#define VK_ASSERT(x) \ + do \ + { \ + if (!bool(x)) \ + { \ + LOGE("Vulkan error at %s:%d.\n", __FILE__, __LINE__); \ + abort(); \ + } \ + } while (0) +#else +#define VK_ASSERT(x) ((void)0) +#endif + +namespace Vulkan +{ +struct NoCopyNoMove +{ + NoCopyNoMove() = default; + NoCopyNoMove(const NoCopyNoMove &) = delete; + void operator=(const NoCopyNoMove &) = delete; +}; +} diff --git a/vulkan/vulkan_prerotate.hpp b/vulkan/vulkan_prerotate.hpp new file mode 100644 index 00000000..8b796bbc --- /dev/null +++ b/vulkan/vulkan_prerotate.hpp @@ -0,0 +1,169 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "vulkan_headers.hpp" + +namespace Vulkan +{ +// FIXME: Also consider that we might have to flip X or Y w.r.t. dimensions, +// but that only matters for partial rendering ... +static inline bool surface_transform_swaps_xy(VkSurfaceTransformFlagBitsKHR transform) +{ + return (transform & ( + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR | + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR | + VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR | + VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR)) != 0; +} + +static inline void viewport_transform_xy(VkViewport &vp, VkSurfaceTransformFlagBitsKHR transform, + uint32_t fb_width, uint32_t fb_height) +{ + switch (transform) + { + case VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR: + { + float new_y = vp.x; + float new_x = float(fb_width) - (vp.y + vp.height); + vp.x = new_x; + vp.y = new_y; + std::swap(vp.width, vp.height); + break; + } + + case VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR: + { + // Untested. Cannot make Android trigger this mode. + float new_left = float(fb_width) - (vp.x + vp.width); + float new_top = float(fb_height) - (vp.y + vp.height); + vp.x = new_left; + vp.y = new_top; + break; + } + + case VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR: + { + float new_x = vp.y; + float new_y = float(fb_height) - (vp.x + vp.width); + vp.x = new_x; + vp.y = new_y; + std::swap(vp.width, vp.height); + break; + } + + default: + break; + } +} + +static inline void rect2d_clip(VkRect2D &rect) +{ + if (rect.offset.x < 0) + { + rect.extent.width += rect.offset.x; + rect.offset.x = 0; + } + + if (rect.offset.y < 0) + { + rect.extent.height += rect.offset.y; + rect.offset.y = 0; + } + + rect.extent.width = std::min(rect.extent.width, 0x7fffffffu - rect.offset.x); + rect.extent.height = std::min(rect.extent.height, 0x7fffffffu - rect.offset.y); +} + +static inline void rect2d_transform_xy(VkRect2D &rect, VkSurfaceTransformFlagBitsKHR transform, + uint32_t fb_width, uint32_t fb_height) +{ + switch (transform) + { + case VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR: + { + int new_y = rect.offset.x; + int new_x = int(fb_width) - int(rect.offset.y + rect.extent.height); + rect.offset = { new_x, new_y }; + std::swap(rect.extent.width, rect.extent.height); + break; + } + + case VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR: + { + // Untested. Cannot make Android trigger this mode. + int new_left = int(fb_width) - int(rect.offset.x + rect.extent.width); + int new_top = int(fb_height) - int(rect.offset.y + rect.extent.height); + rect.offset = { new_left, new_top }; + break; + } + + case VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR: + { + int new_x = rect.offset.y; + int new_y = int(fb_height) - int(rect.offset.x + rect.extent.width); + rect.offset = { new_x, new_y }; + std::swap(rect.extent.width, rect.extent.height); + break; + } + + default: + break; + } +} + +static inline void build_prerotate_matrix_2x2(VkSurfaceTransformFlagBitsKHR pre_rotate, float mat[4]) +{ + // TODO: HORIZONTAL_MIRROR. + switch (pre_rotate) + { + default: + mat[0] = 1.0f; + mat[1] = 0.0f; + mat[2] = 0.0f; + mat[3] = 1.0f; + break; + + case VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR: + mat[0] = 0.0f; + mat[1] = 1.0f; + mat[2] = -1.0f; + mat[3] = 0.0f; + break; + + case VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR: + mat[0] = 0.0f; + mat[1] = -1.0f; + mat[2] = 1.0f; + mat[3] = 0.0f; + break; + + case VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR: + mat[0] = -1.0f; + mat[1] = 0.0f; + mat[2] = 0.0f; + mat[3] = -1.0f; + break; + } +} +} diff --git a/vulkan/wsi.cpp b/vulkan/wsi.cpp new file mode 100644 index 00000000..ad00a8b3 --- /dev/null +++ b/vulkan/wsi.cpp @@ -0,0 +1,1766 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#define NOMINMAX +#include "wsi.hpp" +#include "environment.hpp" +#include + +#if defined(ANDROID) && defined(HAVE_SWAPPY) +#include "swappy/swappyVk.h" +#endif + +namespace Vulkan +{ +WSI::WSI() +{ + // With frame latency of 1, we get the ideal latency where + // we present, and then wait for the previous present to complete. + // Once this unblocks, it means that the present we just queued up is scheduled to complete next vblank, + // and the next frame to be recorded will have to be ready in 2 frames. + // This is ideal, since worst case for full performance, we will have a pipeline of CPU -> GPU, + // where CPU can spend 1 frame's worth of time, and GPU can spend one frame's worth of time. + // For mobile, opt for 2 frames of latency, since TBDR likes deeper pipelines and we can absorb more + // surfaceflinger jank. +#ifdef ANDROID + present_frame_latency = 2; +#else + present_frame_latency = 1; +#endif + + present_frame_latency = Util::get_environment_uint("GRANITE_VULKAN_PRESENT_WAIT_LATENCY", present_frame_latency); + LOGI("Targeting VK_KHR_present_wait latency to %u frames.\n", present_frame_latency); + + // Primaries are ST.2020 with D65 whitepoint as specified. + hdr_metadata.displayPrimaryRed = { 0.708f, 0.292f }; + hdr_metadata.displayPrimaryGreen = { 0.170f, 0.797f }; + hdr_metadata.displayPrimaryBlue = { 0.131f, 0.046f }; + hdr_metadata.whitePoint = { 0.3127f, 0.3290f }; + + // HDR10 range? Just arbitrary values, user can override later. + hdr_metadata.minLuminance = 0.01f; + hdr_metadata.maxLuminance = 1000.0f; + hdr_metadata.maxContentLightLevel = 1000.0f; + hdr_metadata.maxFrameAverageLightLevel = 200.0f; +} + +void WSI::set_hdr_metadata(const VkHdrMetadataEXT &hdr) +{ + hdr_metadata = hdr; + if (swapchain && swapchain_surface_format.colorSpace == VK_COLOR_SPACE_HDR10_ST2084_EXT && + device->get_device_features().supports_hdr_metadata) + { + table->vkSetHdrMetadataEXT(device->get_device(), 1, &swapchain, &hdr_metadata); + } +} + +void WSIPlatform::set_window_title(const std::string &) +{ +} + +void WSIPlatform::destroy_surface(VkInstance instance, VkSurfaceKHR surface) +{ + vkDestroySurfaceKHR(instance, surface, nullptr); +} + +uintptr_t WSIPlatform::get_fullscreen_monitor() +{ + return 0; +} + +uintptr_t WSIPlatform::get_native_window() +{ + return 0; +} + +const VkApplicationInfo *WSIPlatform::get_application_info() +{ + return nullptr; +} + +void WSI::set_window_title(const std::string &title) +{ + if (platform) + platform->set_window_title(title); +} + +double WSI::get_smooth_elapsed_time() const +{ + return smooth_elapsed_time; +} + +double WSI::get_smooth_frame_time() const +{ + return smooth_frame_time; +} + +bool WSI::init_from_existing_context(ContextHandle existing_context) +{ + VK_ASSERT(platform); + if (platform && device) + platform->event_device_destroyed(); + device.reset(); + context = std::move(existing_context); + table = &context->get_device_table(); + return true; +} + +bool WSI::init_external_swapchain(std::vector swapchain_images_) +{ + VK_ASSERT(context); + VK_ASSERT(device); + swapchain_width = platform->get_surface_width(); + swapchain_height = platform->get_surface_height(); + swapchain_aspect_ratio = platform->get_aspect_ratio(); + + external_swapchain_images = std::move(swapchain_images_); + + swapchain_width = external_swapchain_images.front()->get_width(); + swapchain_height = external_swapchain_images.front()->get_height(); + swapchain_surface_format = { external_swapchain_images.front()->get_format(), VK_COLOR_SPACE_SRGB_NONLINEAR_KHR }; + + LOGI("Created swapchain %u x %u (fmt: %u).\n", + swapchain_width, swapchain_height, static_cast(swapchain_surface_format.format)); + + platform->event_swapchain_destroyed(); + platform->event_swapchain_created(device.get(), VK_NULL_HANDLE, swapchain_width, swapchain_height, + swapchain_aspect_ratio, + external_swapchain_images.size(), + swapchain_surface_format.format, swapchain_surface_format.colorSpace, + swapchain_current_prerotate); + + device->init_external_swapchain(this->external_swapchain_images); + platform->get_frame_timer().reset(); + external_acquire.reset(); + external_release.reset(); + return true; +} + +void WSI::set_platform(WSIPlatform *platform_) +{ + platform = platform_; +} + +bool WSI::init_device() +{ + VK_ASSERT(context); + VK_ASSERT(!device); + device = Util::make_handle(); + device->set_context(*context); + platform->event_device_created(device.get()); + +#ifdef HAVE_WSI_DXGI_INTEROP + dxgi.reset(new DXGIInteropSwapchain); + if (!dxgi->init_interop_device(*device)) + dxgi.reset(); + else + platform->get_frame_timer().reset(); +#endif + return true; +} + +bool WSI::init_device(DeviceHandle device_handle) +{ + VK_ASSERT(context); + device = std::move(device_handle); + platform->event_device_created(device.get()); + +#ifdef HAVE_WSI_DXGI_INTEROP + dxgi.reset(new DXGIInteropSwapchain); + if (!dxgi->init_interop_device(*device)) + dxgi.reset(); + else + platform->get_frame_timer().reset(); +#endif + return true; +} + +#ifdef HAVE_WSI_DXGI_INTEROP +bool WSI::init_surface_swapchain_dxgi(unsigned width, unsigned height) +{ + if (!dxgi) + return false; + + // Anything fancy like compute present cannot use DXGI. + if (current_extra_usage) + return false; + + HWND hwnd = reinterpret_cast(platform->get_native_window()); + if (!hwnd) + return false; + + VkSurfaceFormatKHR format = {}; + switch (current_backbuffer_format) + { + case BackbufferFormat::UNORM: + format = { VK_FORMAT_A2B10G10R10_UNORM_PACK32, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR }; + break; + + case BackbufferFormat::sRGB: + format = { VK_FORMAT_B8G8R8A8_SRGB, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR }; + break; + + case BackbufferFormat::HDR10: + format = { VK_FORMAT_A2B10G10R10_UNORM_PACK32, VK_COLOR_SPACE_HDR10_ST2084_EXT }; + break; + + default: + return false; + } + + constexpr unsigned num_images = 3; + + if (!dxgi->init_swapchain(hwnd, format, width, height, num_images)) + return false; + + LOGI("Initialized DXGI interop swapchain!\n"); + + swapchain_width = width; + swapchain_height = height; + swapchain_aspect_ratio = platform->get_aspect_ratio(); + swapchain_current_prerotate = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; + swapchain_surface_format = dxgi->get_current_surface_format(); + has_acquired_swapchain_index = false; + + const uint32_t queue_present_support = 1u << context->get_queue_info().family_indices[QUEUE_INDEX_GRAPHICS]; + device->set_swapchain_queue_family_support(queue_present_support); + + swapchain_images.clear(); + for (unsigned i = 0; i < num_images; i++) + swapchain_images.push_back(dxgi->get_vulkan_image(i)); + + device->init_swapchain(swapchain_images, swapchain_width, swapchain_height, + swapchain_surface_format.format, + swapchain_current_prerotate, + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT); + + platform->event_swapchain_destroyed(); + platform->event_swapchain_created(device.get(), swapchain, swapchain_width, swapchain_height, + swapchain_aspect_ratio, num_images, + swapchain_surface_format.format, + swapchain_surface_format.colorSpace, + swapchain_current_prerotate); + + return true; +} +#endif + +bool WSI::init_surface_swapchain() +{ + VK_ASSERT(surface == VK_NULL_HANDLE); + VK_ASSERT(context); + VK_ASSERT(device); + + unsigned width = platform->get_surface_width(); + unsigned height = platform->get_surface_height(); + +#ifdef HAVE_WSI_DXGI_INTEROP + if (init_surface_swapchain_dxgi(width, height)) + return true; + else + dxgi.reset(); +#endif + + surface = platform->create_surface(context->get_instance(), context->get_gpu()); + if (surface == VK_NULL_HANDLE) + { + LOGE("Failed to create VkSurfaceKHR.\n"); + return false; + } + + swapchain_aspect_ratio = platform->get_aspect_ratio(); + + VkBool32 supported = VK_FALSE; + uint32_t queue_present_support = 0; + + // TODO: Ideally we need to create surface earlier and negotiate physical device based on that support. + for (auto &index : context->get_queue_info().family_indices) + { + if (index != VK_QUEUE_FAMILY_IGNORED) + { + if (vkGetPhysicalDeviceSurfaceSupportKHR(context->get_gpu(), index, surface, &supported) == + VK_SUCCESS && supported) + { + queue_present_support |= 1u << index; + } + } + } + + if ((queue_present_support & (1u << context->get_queue_info().family_indices[QUEUE_INDEX_GRAPHICS])) == 0) + { + LOGE("No presentation queue found for GPU. Is it connected to a display?\n"); + return false; + } + + device->set_swapchain_queue_family_support(queue_present_support); + + if (!blocking_init_swapchain(width, height)) + { + LOGE("Failed to create swapchain.\n"); + return false; + } + + device->init_swapchain(swapchain_images, swapchain_width, swapchain_height, swapchain_surface_format.format, + swapchain_current_prerotate, + current_extra_usage | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT); + platform->get_frame_timer().reset(); + return true; +} + +bool WSI::init_simple(InstanceFactory* instanceFactory, unsigned num_thread_indices, const Context::SystemHandles &system_handles) +{ + if (!init_context_from_platform(instanceFactory, num_thread_indices, system_handles)) + return false; + if (!init_device()) + return false; + if (!init_surface_swapchain()) + return false; + return true; +} + +bool WSI::init_context_from_platform(InstanceFactory* instanceFactory, unsigned num_thread_indices, const Context::SystemHandles &system_handles) +{ + VK_ASSERT(platform); + auto instance_ext = platform->get_instance_extensions(); + auto device_ext = platform->get_device_extensions(); + auto new_context = Util::make_handle(); + +#ifdef HAVE_FFMPEG_VULKAN + constexpr ContextCreationFlags video_context_flags = + CONTEXT_CREATION_ENABLE_VIDEO_DECODE_BIT | + CONTEXT_CREATION_ENABLE_VIDEO_ENCODE_BIT | + CONTEXT_CREATION_ENABLE_VIDEO_H264_BIT | + CONTEXT_CREATION_ENABLE_VIDEO_H265_BIT; +#else + constexpr ContextCreationFlags video_context_flags = 0; +#endif + + new_context->set_application_info(platform->get_application_info()); + new_context->set_num_thread_indices(num_thread_indices); + new_context->set_system_handles(system_handles); + new_context->set_instance_factory(instanceFactory); + + if (!new_context->init_instance( + instance_ext.data(), instance_ext.size(), + CONTEXT_CREATION_ENABLE_ADVANCED_WSI_BIT | video_context_flags)) + { + LOGE("Failed to create Vulkan instance.\n"); + return false; + } + + VkSurfaceKHR tmp_surface = platform->create_surface(new_context->get_instance(), VK_NULL_HANDLE); + + bool ret = new_context->init_device( + VK_NULL_HANDLE, tmp_surface, + device_ext.data(), device_ext.size(), + CONTEXT_CREATION_ENABLE_ADVANCED_WSI_BIT | video_context_flags); + + if (tmp_surface) + platform->destroy_surface(new_context->get_instance(), tmp_surface); + + if (!ret) + { + LOGE("Failed to create Vulkan device.\n"); + return false; + } + + return init_from_existing_context(std::move(new_context)); +} + +void WSI::reinit_surface_and_swapchain(VkSurfaceKHR new_surface) +{ + LOGI("init_surface_and_swapchain()\n"); + if (new_surface != VK_NULL_HANDLE) + { + VK_ASSERT(surface == VK_NULL_HANDLE); + surface = new_surface; + } + + swapchain_width = platform->get_surface_width(); + swapchain_height = platform->get_surface_height(); + update_framebuffer(swapchain_width, swapchain_height); +} + +void WSI::nonblock_delete_swapchains() +{ + if (swapchain != VK_NULL_HANDLE && device->get_device_features().present_wait_features.presentWait) + { + // If we can help it, don't try to destroy swapchains until we know the new swapchain has presented at least one frame on screen. + if (table->vkWaitForPresentKHR(context->get_device(), swapchain, 1, 0) != VK_SUCCESS) + return; + } + + Util::SmallVector keep; + size_t pending = deferred_swapchains.size(); + for (auto &swap : deferred_swapchains) + { + if (!swap.fence || swap.fence->wait_timeout(0)) + { + platform->destroy_swapchain_resources(swap.swapchain); + table->vkDestroySwapchainKHR(device->get_device(), swap.swapchain, nullptr); + } + else if (pending >= 2) + { + swap.fence->wait(); + platform->destroy_swapchain_resources(swap.swapchain); + table->vkDestroySwapchainKHR(device->get_device(), swap.swapchain, nullptr); + } + else + keep.push_back(std::move(swap)); + + pending--; + } + + deferred_swapchains = std::move(keep); +} + +void WSI::drain_swapchain(bool in_tear_down) +{ + release_semaphores.clear(); + device->set_acquire_semaphore(0, Semaphore{}); + device->consume_release_semaphore(); + + if (device->get_device_features().swapchain_maintenance1_features.swapchainMaintenance1) + { + // If we're just resizing, there's no need to block, defer deletions for later. + if (in_tear_down) + { + if (last_present_fence) + { + last_present_fence->wait(); + last_present_fence.reset(); + } + + for (auto &old_swap : deferred_swapchains) + { + if (old_swap.fence) + old_swap.fence->wait(); + platform->destroy_swapchain_resources(old_swap.swapchain); + table->vkDestroySwapchainKHR(context->get_device(), old_swap.swapchain, nullptr); + } + + deferred_swapchains.clear(); + } + } + else if (swapchain != VK_NULL_HANDLE && device->get_device_features().present_wait_features.presentWait && present_last_id) + { + table->vkWaitForPresentKHR(context->get_device(), swapchain, present_last_id, UINT64_MAX); + // If the last present was not successful, + // it's not clear that the present ID will be signalled, so wait idle as a fallback. + if (present_id != present_last_id) + device->wait_idle(); + } + else + device->wait_idle(); +} + +void WSI::tear_down_swapchain() +{ +#ifdef HAVE_WSI_DXGI_INTEROP + // We only do explicit teardown on exit. + dxgi.reset(); +#endif + + drain_swapchain(true); + platform->event_swapchain_destroyed(); + platform->destroy_swapchain_resources(swapchain); + table->vkDestroySwapchainKHR(context->get_device(), swapchain, nullptr); + swapchain = VK_NULL_HANDLE; + has_acquired_swapchain_index = false; + present_id = 0; + present_last_id = 0; +} + +void WSI::deinit_surface_and_swapchain() +{ + LOGI("deinit_surface_and_swapchain()\n"); + + tear_down_swapchain(); + + if (surface != VK_NULL_HANDLE) + { + platform->destroy_surface(context->get_instance(), surface); + surface = VK_NULL_HANDLE; + } +} + +void WSI::set_external_frame(unsigned index, Semaphore acquire_semaphore, double frame_time) +{ + external_frame_index = index; + external_acquire = std::move(acquire_semaphore); + frame_is_external = true; + external_frame_time = frame_time; +} + +bool WSI::begin_frame_external() +{ + device->next_frame_context(); + + // Need to handle this stuff from outside. + if (has_acquired_swapchain_index) + return false; + + auto frame_time = platform->get_frame_timer().frame(external_frame_time); + auto elapsed_time = platform->get_frame_timer().get_elapsed(); + + // Assume we have been given a smooth frame pacing. + smooth_frame_time = frame_time; + smooth_elapsed_time = elapsed_time; + + // Poll after acquire as well for optimal latency. + platform->poll_input(); + + swapchain_index = external_frame_index; + platform->event_frame_tick(frame_time, elapsed_time); + + platform->event_swapchain_index(device.get(), swapchain_index); + device->set_acquire_semaphore(swapchain_index, external_acquire); + external_acquire.reset(); + return true; +} + +Semaphore WSI::consume_external_release_semaphore() +{ + Semaphore sem; + std::swap(external_release, sem); + return sem; +} + +//#define VULKAN_WSI_TIMING_DEBUG + +void WSI::wait_swapchain_latency() +{ + unsigned effective_latency = low_latency_mode_enable ? 0 : present_frame_latency; + + if (device->get_device_features().present_wait_features.presentWait && + present_last_id > effective_latency && + current_present_mode == PresentMode::SyncToVBlank) + { + // The effective latency is more like present_frame_latency + 1. + // If 0, we wait for vblank, and we must do CPU work and GPU work in one frame + // to hit next vblank. + uint64_t target = present_last_id - effective_latency; + +#ifdef VULKAN_WSI_TIMING_DEBUG + auto begin_wait = Util::get_current_time_nsecs(); +#endif + auto wait_ts = device->write_calibrated_timestamp(); + VkResult wait_result = table->vkWaitForPresentKHR(context->get_device(), swapchain, target, UINT64_MAX); + device->register_time_interval("WSI", std::move(wait_ts), + device->write_calibrated_timestamp(), "wait_frame_latency"); + if (wait_result != VK_SUCCESS) + LOGE("vkWaitForPresentKHR failed, vr %d.\n", wait_result); +#ifdef VULKAN_WSI_TIMING_DEBUG + auto end_wait = Util::get_current_time_nsecs(); + LOGI("WaitForPresentKHR took %.3f ms.\n", 1e-6 * double(end_wait - begin_wait)); +#endif + } +} + +void WSI::set_low_latency_mode(bool enable) +{ + low_latency_mode_enable = enable; +} + +#ifdef HAVE_WSI_DXGI_INTEROP +bool WSI::begin_frame_dxgi() +{ + Semaphore acquire; + + while (!acquire) + { + if (!dxgi->acquire(acquire, swapchain_index)) + return false; + + acquire->signal_external(); + has_acquired_swapchain_index = true; + + // Poll after acquire as well for optimal latency. + platform->poll_input(); + + // Polling input may trigger a resize event. Trying to present in that situation without ResizeBuffers + // cause wonky issues on DXGI. + if (platform->should_resize()) + update_framebuffer(platform->get_surface_width(), platform->get_surface_height()); + + // If update_framebuffer caused a resize, we won't have an acquire index anymore, reacquire. + if (!has_acquired_swapchain_index) + acquire.reset(); + } + + auto wait_ts = device->write_calibrated_timestamp(); + if (!dxgi->wait_latency(present_frame_latency)) + { + LOGE("Failed to wait on latency handle.\n"); + return false; + } + device->register_time_interval("WSI", std::move(wait_ts), device->write_calibrated_timestamp(), + "DXGI wait latency"); + + auto frame_time = platform->get_frame_timer().frame(); + auto elapsed_time = platform->get_frame_timer().get_elapsed(); + + smooth_frame_time = frame_time; + smooth_elapsed_time = elapsed_time; + + platform->event_frame_tick(frame_time, elapsed_time); + platform->event_swapchain_index(device.get(), swapchain_index); + device->set_acquire_semaphore(swapchain_index, std::move(acquire)); + + return true; +} +#endif + +bool WSI::begin_frame() +{ + if (frame_is_external) + return begin_frame_external(); + +#ifdef VULKAN_WSI_TIMING_DEBUG + auto next_frame_start = Util::get_current_time_nsecs(); +#endif + + device->next_frame_context(); + external_release.reset(); + +#ifdef VULKAN_WSI_TIMING_DEBUG + auto next_frame_end = Util::get_current_time_nsecs(); + LOGI("Waited for vacant frame context for %.3f ms.\n", (next_frame_end - next_frame_start) * 1e-6); +#endif + +#ifdef HAVE_WSI_DXGI_INTEROP + if (dxgi) + { + if (platform->should_resize()) + update_framebuffer(platform->get_surface_width(), platform->get_surface_height()); + + if (has_acquired_swapchain_index) + return true; + return begin_frame_dxgi(); + } + else +#endif + { + if (swapchain == VK_NULL_HANDLE || platform->should_resize() || swapchain_is_suboptimal) + update_framebuffer(platform->get_surface_width(), platform->get_surface_height()); + if (has_acquired_swapchain_index) + return true; + } + + if (swapchain == VK_NULL_HANDLE) + { + LOGE("Completely lost swapchain. Cannot continue.\n"); + return false; + } + + VkResult result; + do + { + auto acquire = device->request_semaphore(VK_SEMAPHORE_TYPE_BINARY); + +#ifdef VULKAN_WSI_TIMING_DEBUG + auto acquire_start = Util::get_current_time_nsecs(); +#endif + + Fence fence; + + // TODO: Improve this with fancier approaches as needed. + if (low_latency_mode_enable && + !device->get_device_features().present_wait_features.presentWait && + current_present_mode == PresentMode::SyncToVBlank) + { + fence = device->request_legacy_fence(); + } + + auto acquire_ts = device->write_calibrated_timestamp(); + result = table->vkAcquireNextImageKHR(context->get_device(), swapchain, UINT64_MAX, acquire->get_semaphore(), + fence ? fence->get_fence() : VK_NULL_HANDLE, &swapchain_index); + device->register_time_interval("WSI", std::move(acquire_ts), device->write_calibrated_timestamp(), "acquire"); + + if (fence) + fence->wait(); + +#if defined(ANDROID) + // Android 10 can return suboptimal here, only because of pre-transform. + // We don't care about that, and treat this as success. + if (result == VK_SUBOPTIMAL_KHR && !support_prerotate) + result = VK_SUCCESS; +#endif + + if (result == VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT) + { + LOGE("Lost exclusive full-screen ...\n"); + } + +#ifdef VULKAN_WSI_TIMING_DEBUG + auto acquire_end = Util::get_current_time_nsecs(); + LOGI("vkAcquireNextImageKHR took %.3f ms.\n", (acquire_end - acquire_start) * 1e-6); +#endif + + if (result == VK_SUBOPTIMAL_KHR) + { +#ifdef VULKAN_DEBUG + LOGI("AcquireNextImageKHR is suboptimal, will recreate.\n"); +#endif + swapchain_is_suboptimal = true; + LOGW("Swapchain suboptimal.\n"); + } + + if (result >= 0) + { + has_acquired_swapchain_index = true; + acquire->signal_external(); + + // WSI signals this, which exists outside the domain of our Vulkan queues. + acquire->set_signal_is_foreign_queue(); + + wait_swapchain_latency(); + + auto frame_time = platform->get_frame_timer().frame(); + auto elapsed_time = platform->get_frame_timer().get_elapsed(); + + smooth_frame_time = frame_time; + smooth_elapsed_time = elapsed_time; + + // Poll after acquire as well for optimal latency. + platform->poll_input(); + platform->event_frame_tick(frame_time, elapsed_time); + + platform->event_swapchain_index(device.get(), swapchain_index); + + device->set_acquire_semaphore(swapchain_index, acquire); + } + else if (result == VK_ERROR_OUT_OF_DATE_KHR || result == VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT) + { + LOGW("Swapchain out of date.\n"); + VK_ASSERT(swapchain_width != 0); + VK_ASSERT(swapchain_height != 0); + + tear_down_swapchain(); + + if (!blocking_init_swapchain(swapchain_width, swapchain_height)) + return false; + device->init_swapchain(swapchain_images, swapchain_width, swapchain_height, + swapchain_surface_format.format, swapchain_current_prerotate, + current_extra_usage | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT); + } + else + { + return false; + } + } while (result < 0); + return true; +} + +#ifdef HAVE_WSI_DXGI_INTEROP +bool WSI::end_frame_dxgi() +{ + auto release = device->consume_release_semaphore(); + VK_ASSERT(release); + VK_ASSERT(release->is_signalled()); + VK_ASSERT(!release->is_pending_wait()); + return dxgi->present(std::move(release), current_present_mode == PresentMode::SyncToVBlank); +} +#endif + +bool WSI::end_frame() +{ + device->end_frame_context(); + + // Take ownership of the release semaphore so that the external user can use it. + if (frame_is_external) + { + // If we didn't render into the swapchain this frame, we will return a blank semaphore. + external_release = device->consume_release_semaphore(); + VK_ASSERT(!external_release || external_release->is_signalled()); + frame_is_external = false; + } + else + { + if (!device->swapchain_touched()) + return true; + + has_acquired_swapchain_index = false; + +#ifdef HAVE_WSI_DXGI_INTEROP + if (dxgi) + return end_frame_dxgi(); +#endif + + auto release = device->consume_release_semaphore(); + VK_ASSERT(release); + VK_ASSERT(release->is_signalled()); + VK_ASSERT(!release->is_pending_wait()); + + auto release_semaphore = release->get_semaphore(); + VK_ASSERT(release_semaphore != VK_NULL_HANDLE); + + VkResult result = VK_SUCCESS; + VkPresentInfoKHR info = { VK_STRUCTURE_TYPE_PRESENT_INFO_KHR }; + info.waitSemaphoreCount = 1; + info.pWaitSemaphores = &release_semaphore; + info.swapchainCount = 1; + info.pSwapchains = &swapchain; + info.pImageIndices = &swapchain_index; + info.pResults = &result; + + VkSwapchainPresentFenceInfoEXT present_fence = { VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT }; + VkSwapchainPresentModeInfoEXT present_mode_info = { VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT }; + VkPresentIdKHR present_id_info = { VK_STRUCTURE_TYPE_PRESENT_ID_KHR }; + + if (device->get_device_features().present_id_features.presentId) + { + present_id_info.swapchainCount = 1; + present_id_info.pPresentIds = &present_id; + present_id++; + present_id_info.pNext = info.pNext; + info.pNext = &present_id_info; + } + + // If we can, just promote the new presentation mode right away. + update_active_presentation_mode(present_mode); + + if (device->get_device_features().swapchain_maintenance1_features.swapchainMaintenance1) + { + last_present_fence = device->request_legacy_fence(); + present_fence.swapchainCount = 1; + present_fence.pFences = &last_present_fence->get_fence(); + present_fence.pNext = const_cast(info.pNext); + info.pNext = &present_fence; + + present_mode_info.swapchainCount = 1; + present_mode_info.pPresentModes = &active_present_mode; + present_mode_info.pNext = const_cast(info.pNext); + info.pNext = &present_mode_info; + } + +#ifdef VULKAN_WSI_TIMING_DEBUG + auto present_start = Util::get_current_time_nsecs(); +#endif + + auto present_ts = device->write_calibrated_timestamp(); + + device->external_queue_lock(); +#if defined(ANDROID) && defined(HAVE_SWAPPY) + VkResult overall = SwappyVk_queuePresent(device->get_current_present_queue(), &info); +#else + VkResult overall = table->vkQueuePresentKHR(device->get_current_present_queue(), &info); +#endif + device->external_queue_unlock(); + + device->register_time_interval("WSI", std::move(present_ts), device->write_calibrated_timestamp(), "present"); + +#if defined(ANDROID) + // Android 10 can return suboptimal here, only because of pre-transform. + // We don't care about that, and treat this as success. + if (overall == VK_SUBOPTIMAL_KHR && !support_prerotate) + overall = VK_SUCCESS; + if (result == VK_SUBOPTIMAL_KHR && !support_prerotate) + result = VK_SUCCESS; +#endif + + if (overall == VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT || + result == VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT) + { + LOGE("Lost exclusive full-screen ...\n"); + } + +#ifdef VULKAN_WSI_TIMING_DEBUG + auto present_end = Util::get_current_time_nsecs(); + LOGI("vkQueuePresentKHR took %.3f ms.\n", (present_end - present_start) * 1e-6); +#endif + + // The presentID only seems to get updated if QueuePresent returns success. + // This makes sense I guess. Record the latest present ID which was successfully presented + // so we don't risk deadlock. + if ((result == VK_SUCCESS || result == VK_SUBOPTIMAL_KHR) && + device->get_device_features().present_id_features.presentId) + { + present_last_id = present_id; + } + + if (overall == VK_SUBOPTIMAL_KHR || result == VK_SUBOPTIMAL_KHR) + { +#ifdef VULKAN_DEBUG + LOGI("QueuePresent is suboptimal, will recreate.\n"); +#endif + swapchain_is_suboptimal = true; + } + + // The present semaphore is consumed even on OUT_OF_DATE, etc. + release->wait_external(); + + if (overall < 0 || result < 0) + { + LOGE("vkQueuePresentKHR failed.\n"); + release.reset(); + tear_down_swapchain(); + return false; + } + else + { + // Cannot release the WSI wait semaphore until we observe that the image has been + // waited on again. + // Could make this a bit tighter with swapchain_maintenance1, but not that important here. + release_semaphores[swapchain_index] = std::move(release); + } + + // Re-init swapchain. + if (present_mode != current_present_mode || backbuffer_format != current_backbuffer_format || + extra_usage != current_extra_usage) + { + current_present_mode = present_mode; + current_backbuffer_format = backbuffer_format; + current_extra_usage = extra_usage; + update_framebuffer(swapchain_width, swapchain_height); + } + } + + nonblock_delete_swapchains(); + return true; +} + +void WSI::update_framebuffer(unsigned width, unsigned height) +{ + if (context && device) + { +#ifdef HAVE_WSI_DXGI_INTEROP + if (dxgi) + { + if (!init_surface_swapchain_dxgi(width, height)) + LOGE("Failed to resize DXGI swapchain.\n"); + } + else +#endif + { + drain_swapchain(false); + if (blocking_init_swapchain(width, height)) + { + device->init_swapchain(swapchain_images, swapchain_width, swapchain_height, + swapchain_surface_format.format, swapchain_current_prerotate, + current_extra_usage | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT); + } + } + } + + if (platform) + platform->notify_current_swapchain_dimensions(swapchain_width, swapchain_height); +} + +bool WSI::update_active_presentation_mode(PresentMode mode) +{ + if (current_present_mode == mode) + return true; + +#ifdef HAVE_WSI_DXGI_INTEROP + // We set this on Present time. + if (dxgi) + { + current_present_mode = mode; + return true; + } +#endif + + for (auto m : present_mode_compat_group) + { + bool match = false; + switch (m) + { + case VK_PRESENT_MODE_FIFO_KHR: + match = mode == PresentMode::SyncToVBlank; + break; + + case VK_PRESENT_MODE_IMMEDIATE_KHR: + match = mode == PresentMode::UnlockedMaybeTear || + mode == PresentMode::UnlockedForceTearing; + break; + + case VK_PRESENT_MODE_MAILBOX_KHR: + match = mode == PresentMode::UnlockedNoTearing || + mode == PresentMode::UnlockedMaybeTear; + break; + + default: + break; + } + + if (match) + { + active_present_mode = m; + current_present_mode = mode; + return true; + } + } + + return false; +} + +void WSI::set_present_mode(PresentMode mode) +{ + present_mode = mode; + if (!has_acquired_swapchain_index && present_mode != current_present_mode) + { + if (!update_active_presentation_mode(present_mode)) + { + current_present_mode = present_mode; + update_framebuffer(swapchain_width, swapchain_height); + } + } +} + +void WSI::set_extra_usage_flags(VkImageUsageFlags usage) +{ + extra_usage = usage; + if (!has_acquired_swapchain_index && extra_usage != current_extra_usage) + { + current_extra_usage = extra_usage; + update_framebuffer(swapchain_width, swapchain_height); + } +} + +void WSI::set_backbuffer_format(BackbufferFormat format) +{ + backbuffer_format = format; + if (!has_acquired_swapchain_index && backbuffer_format != current_backbuffer_format) + { + current_backbuffer_format = backbuffer_format; + update_framebuffer(swapchain_width, swapchain_height); + } +} + +void WSI::set_backbuffer_srgb(bool enable) +{ + set_backbuffer_format(enable ? BackbufferFormat::sRGB : BackbufferFormat::UNORM); +} + +void WSI::teardown() +{ + if (platform) + platform->release_resources(); + + if (context) + tear_down_swapchain(); + + if (surface != VK_NULL_HANDLE) + { + platform->destroy_surface(context->get_instance(), surface); + surface = VK_NULL_HANDLE; + } + + if (platform) + platform->event_device_destroyed(); + external_release.reset(); + external_acquire.reset(); + external_swapchain_images.clear(); + device.reset(); + context.reset(); +} + +bool WSI::blocking_init_swapchain(unsigned width, unsigned height) +{ + SwapchainError err; + unsigned retry_counter = 0; + do + { + swapchain_aspect_ratio = platform->get_aspect_ratio(); + err = init_swapchain(width, height); + + if (err != SwapchainError::None) + platform->notify_current_swapchain_dimensions(0, 0); + + if (err == SwapchainError::Error) + { + if (++retry_counter > 3) + return false; + + // Try to not reuse the swapchain. + tear_down_swapchain(); + } + else if (err == SwapchainError::NoSurface) + { + LOGW("WSI cannot make forward progress due to minimization, blocking ...\n"); + device->set_enable_async_thread_frame_context(true); + platform->block_until_wsi_forward_progress(*this); + device->set_enable_async_thread_frame_context(false); + LOGW("Woke up!\n"); + } + } while (err != SwapchainError::None); + + return swapchain != VK_NULL_HANDLE; +} + +VkSurfaceFormatKHR WSI::find_suitable_present_format(const std::vector &formats, BackbufferFormat desired_format) const +{ + size_t format_count = formats.size(); + VkSurfaceFormatKHR format = { VK_FORMAT_UNDEFINED }; + + VkFormatFeatureFlags features = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT | + VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT; + if ((current_extra_usage & VK_IMAGE_USAGE_STORAGE_BIT) != 0) + features |= VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT; + + if (format_count == 0) + { + LOGE("Surface has no formats?\n"); + return format; + } + + for (size_t i = 0; i < format_count; i++) + { + if (!device->image_format_is_supported(formats[i].format, features)) + continue; + + if (desired_format == BackbufferFormat::DisplayP3) + { + if (formats[i].colorSpace == VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT && + (formats[i].format == VK_FORMAT_A2B10G10R10_UNORM_PACK32 || + formats[i].format == VK_FORMAT_A2R10G10B10_UNORM_PACK32)) + { + format = formats[i]; + break; + } + } + else if (desired_format == BackbufferFormat::UNORMPassthrough) + { + if (formats[i].colorSpace == VK_COLOR_SPACE_PASS_THROUGH_EXT && + (formats[i].format == VK_FORMAT_R8G8B8A8_UNORM || + formats[i].format == VK_FORMAT_B8G8R8A8_UNORM || + formats[i].format == VK_FORMAT_A2B10G10R10_UNORM_PACK32 || + formats[i].format == VK_FORMAT_A2R10G10B10_UNORM_PACK32)) + { + format = formats[i]; + break; + } + } + else if (desired_format == BackbufferFormat::HDR10) + { + if (formats[i].colorSpace == VK_COLOR_SPACE_HDR10_ST2084_EXT && + (formats[i].format == VK_FORMAT_A2B10G10R10_UNORM_PACK32 || + formats[i].format == VK_FORMAT_A2R10G10B10_UNORM_PACK32)) + { + format = formats[i]; + break; + } + } + else if (desired_format == BackbufferFormat::sRGB) + { + if (formats[i].colorSpace == VK_COLOR_SPACE_SRGB_NONLINEAR_KHR && + (formats[i].format == VK_FORMAT_R8G8B8A8_SRGB || + formats[i].format == VK_FORMAT_B8G8R8A8_SRGB || + formats[i].format == VK_FORMAT_A8B8G8R8_SRGB_PACK32)) + { + format = formats[i]; + break; + } + } + else + { + if (formats[i].colorSpace == VK_COLOR_SPACE_SRGB_NONLINEAR_KHR && + (formats[i].format == VK_FORMAT_R8G8B8A8_UNORM || + formats[i].format == VK_FORMAT_B8G8R8A8_UNORM || + formats[i].format == VK_FORMAT_A2B10G10R10_UNORM_PACK32 || + formats[i].format == VK_FORMAT_A2R10G10B10_UNORM_PACK32 || + formats[i].format == VK_FORMAT_A8B8G8R8_UNORM_PACK32)) + { + format = formats[i]; + break; + } + } + } + + return format; +} + +struct SurfaceInfo +{ + VkPhysicalDeviceSurfaceInfo2KHR surface_info; + VkSurfacePresentModeEXT present_mode; + VkSurfaceCapabilitiesKHR surface_capabilities; + std::vector formats; + VkSwapchainPresentModesCreateInfoEXT present_modes_info; + std::vector present_mode_compat_group; + const void *swapchain_pnext; +#ifdef _WIN32 + VkSurfaceFullScreenExclusiveInfoEXT exclusive_info; + VkSurfaceFullScreenExclusiveWin32InfoEXT exclusive_info_win32; +#endif +}; + +static bool init_surface_info(Device &device, WSIPlatform &platform, + VkSurfaceKHR surface, BackbufferFormat format, + PresentMode present_mode, SurfaceInfo &info, bool low_latency_mode_enable) +{ + if (surface == VK_NULL_HANDLE) + { + LOGE("Cannot create swapchain with surface == VK_NULL_HANDLE.\n"); + return false; + } + + info.surface_info = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR }; + info.surface_info.surface = surface; + info.swapchain_pnext = nullptr; + + auto &ext = device.get_device_features(); + +#ifdef _WIN32 + if (ext.supports_full_screen_exclusive) + { + info.exclusive_info = { VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT }; + auto monitor = reinterpret_cast(platform.get_fullscreen_monitor()); + info.swapchain_pnext = &info.exclusive_info; + info.surface_info.pNext = &info.exclusive_info; + + if (monitor != nullptr) + { + info.exclusive_info_win32 = { VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT }; + info.exclusive_info.pNext = &info.exclusive_info_win32; + info.exclusive_info_win32.hmonitor = monitor; + LOGI("Win32: Got a full-screen monitor.\n"); + } + else + LOGI("Win32: Not running full-screen.\n"); + + bool prefer_exclusive = Util::get_environment_bool("GRANITE_EXCLUSIVE_FULL_SCREEN", false) || low_latency_mode_enable; + if (ext.driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS) + prefer_exclusive = false; // Broken on Intel Windows + + if (ext.driver_id == VK_DRIVER_ID_AMD_PROPRIETARY && format == BackbufferFormat::HDR10) + { + LOGI("Win32: HDR requested on AMD Windows. Forcing exclusive fullscreen, or HDR will not work properly.\n"); + prefer_exclusive = true; + } + + if (prefer_exclusive && monitor != nullptr) + { + LOGI("Win32: Opting in to exclusive full-screen!\n"); + info.exclusive_info.fullScreenExclusive = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT; + + // Try to promote this to application controlled exclusive. + VkSurfaceCapabilities2KHR surface_capabilities2 = { VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR }; + VkSurfaceCapabilitiesFullScreenExclusiveEXT capability_full_screen_exclusive = { + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT + }; + surface_capabilities2.pNext = &capability_full_screen_exclusive; + + if (vkGetPhysicalDeviceSurfaceCapabilities2KHR(device.get_physical_device(), &info.surface_info, + &surface_capabilities2) != VK_SUCCESS) + return false; + + if (capability_full_screen_exclusive.fullScreenExclusiveSupported) + { + LOGI("Win32: Opting for exclusive fullscreen access.\n"); + info.exclusive_info.fullScreenExclusive = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT; + } + } + else + { + LOGI("Win32: Opting out of exclusive full-screen!\n"); + info.exclusive_info.fullScreenExclusive = + prefer_exclusive ? VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT : VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT; + } + } +#else + (void)platform; + (void)format; +#endif + + std::vector present_modes; + uint32_t num_present_modes = 0; + auto gpu = device.get_physical_device(); + +#ifdef _WIN32 + if (ext.supports_surface_capabilities2 && ext.supports_full_screen_exclusive) + { + if (vkGetPhysicalDeviceSurfacePresentModes2EXT(gpu, &info.surface_info, &num_present_modes, nullptr) != + VK_SUCCESS) + { + return false; + } + present_modes.resize(num_present_modes); + if (vkGetPhysicalDeviceSurfacePresentModes2EXT(gpu, &info.surface_info, &num_present_modes, + present_modes.data()) != VK_SUCCESS) + { + return false; + } + } + else +#endif + { + if (vkGetPhysicalDeviceSurfacePresentModesKHR(gpu, surface, &num_present_modes, nullptr) != VK_SUCCESS) + return false; + present_modes.resize(num_present_modes); + if (vkGetPhysicalDeviceSurfacePresentModesKHR(gpu, surface, &num_present_modes, present_modes.data()) != VK_SUCCESS) + return false; + } + + auto swapchain_present_mode = VK_PRESENT_MODE_FIFO_KHR; + bool use_vsync = present_mode == PresentMode::SyncToVBlank; + if (!use_vsync) + { + bool allow_mailbox = present_mode != PresentMode::UnlockedForceTearing; + bool allow_immediate = present_mode != PresentMode::UnlockedNoTearing; + +#ifdef _WIN32 + // If we're trying to go exclusive full-screen, + // we need to ban certain types of present modes which apparently do not work as we expect. + if (info.exclusive_info.fullScreenExclusive == VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT) + allow_mailbox = false; +#endif + + for (auto &mode : present_modes) + { + if ((allow_immediate && mode == VK_PRESENT_MODE_IMMEDIATE_KHR) || + (allow_mailbox && mode == VK_PRESENT_MODE_MAILBOX_KHR)) + { + swapchain_present_mode = mode; + break; + } + } + } + + if (swapchain_present_mode == VK_PRESENT_MODE_FIFO_KHR && low_latency_mode_enable) + for (auto mode : present_modes) + if (mode == VK_PRESENT_MODE_FIFO_RELAXED_KHR) + swapchain_present_mode = mode; + + LOGI("Using present mode: %u.\n", swapchain_present_mode); + + // First, query minImageCount without any present mode. + // Avoid opting for present mode compat that is pathological in nature, + // e.g. Xorg MAILBOX where minImageCount shoots up to 5 for stupid reasons. + if (ext.supports_surface_capabilities2) + { + VkSurfaceCapabilities2KHR surface_capabilities2 = { VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR }; + if (vkGetPhysicalDeviceSurfaceCapabilities2KHR(gpu, &info.surface_info, &surface_capabilities2) != VK_SUCCESS) + return false; + info.surface_capabilities = surface_capabilities2.surfaceCapabilities; + } + else + { + if (vkGetPhysicalDeviceSurfaceCapabilitiesKHR(gpu, surface, &info.surface_capabilities) != VK_SUCCESS) + return false; + } + + // Make sure we query surface caps tied to the present mode for correct results. + if (ext.swapchain_maintenance1_features.swapchainMaintenance1 && + ext.supports_surface_capabilities2) + { + VkSurfaceCapabilities2KHR surface_capabilities2 = { VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR }; + VkSurfacePresentModeCompatibilityEXT present_mode_caps = + { VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT }; + std::vector present_mode_compat_group; + + present_mode_compat_group.resize(32); + present_mode_caps.presentModeCount = present_mode_compat_group.size(); + present_mode_caps.pPresentModes = present_mode_compat_group.data(); + + info.present_mode.pNext = const_cast(info.surface_info.pNext); + info.surface_info.pNext = &info.present_mode; + info.present_mode = { VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT }; + info.present_mode.presentMode = swapchain_present_mode; + + surface_capabilities2.pNext = &present_mode_caps; + if (vkGetPhysicalDeviceSurfaceCapabilities2KHR(gpu, &info.surface_info, &surface_capabilities2) != VK_SUCCESS) + return false; + surface_capabilities2.pNext = present_mode_caps.pNext; + + info.surface_capabilities.minImageCount = surface_capabilities2.surfaceCapabilities.minImageCount; + present_mode_compat_group.resize(present_mode_caps.presentModeCount); + info.present_mode_compat_group.reserve(present_mode_caps.presentModeCount); + info.present_mode_compat_group.push_back(swapchain_present_mode); + + for (auto mode : present_mode_compat_group) + { + if (mode == swapchain_present_mode) + continue; + + // Only allow sensible present modes that we know of. + if (mode != VK_PRESENT_MODE_FIFO_KHR && + mode != VK_PRESENT_MODE_FIFO_RELAXED_KHR && + mode != VK_PRESENT_MODE_IMMEDIATE_KHR && + mode != VK_PRESENT_MODE_MAILBOX_KHR) + { + continue; + } + + info.present_mode.presentMode = mode; + if (vkGetPhysicalDeviceSurfaceCapabilities2KHR(gpu, &info.surface_info, &surface_capabilities2) != VK_SUCCESS) + return false; + + // Accept the present mode if it does not modify minImageCount. + // If image count changes, we should probably recreate the swapchain. + if (surface_capabilities2.surfaceCapabilities.minImageCount == info.surface_capabilities.minImageCount) + info.present_mode_compat_group.push_back(mode); + } + } + + uint32_t format_count = 0; + if (ext.supports_surface_capabilities2) + { + if (vkGetPhysicalDeviceSurfaceFormats2KHR(device.get_physical_device(), + &info.surface_info, &format_count, + nullptr) != VK_SUCCESS) + { + return false; + } + + std::vector formats2(format_count); + + for (auto &f : formats2) + { + f = {}; + f.sType = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR; + } + + if (vkGetPhysicalDeviceSurfaceFormats2KHR(gpu, &info.surface_info, &format_count, formats2.data()) != VK_SUCCESS) + return false; + + info.formats.reserve(format_count); + for (auto &f : formats2) + info.formats.push_back(f.surfaceFormat); + } + else + { + if (vkGetPhysicalDeviceSurfaceFormatsKHR(gpu, surface, &format_count, nullptr) != VK_SUCCESS) + return false; + info.formats.resize(format_count); + if (vkGetPhysicalDeviceSurfaceFormatsKHR(gpu, surface, &format_count, info.formats.data()) != VK_SUCCESS) + return false; + } + + // Ensure that 10-bit formats come before other formats. + std::sort(info.formats.begin(), info.formats.end(), [](const VkSurfaceFormatKHR &a, const VkSurfaceFormatKHR &b) { + const auto qual = [](VkFormat fmt) { + // Prefer a consistent ordering so Fossilize caches are more effective. + if (fmt == VK_FORMAT_A2B10G10R10_UNORM_PACK32) + return 3; + else if (fmt == VK_FORMAT_A2R10G10B10_UNORM_PACK32) + return 2; + else if (fmt == VK_FORMAT_B8G8R8A8_UNORM) + return 1; + else + return 0; + }; + return qual(a.format) > qual(b.format); + }); + + // Allow for seamless toggle between presentation modes. + if (ext.swapchain_maintenance1_features.swapchainMaintenance1) + { + info.present_modes_info = { VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT }; + info.present_modes_info.pNext = const_cast(info.swapchain_pnext); + info.present_modes_info.presentModeCount = info.present_mode_compat_group.size(); + info.present_modes_info.pPresentModes = info.present_mode_compat_group.data(); + info.swapchain_pnext = &info.present_modes_info; + } + + info.present_mode.presentMode = swapchain_present_mode; + + return true; +} + +WSI::SwapchainError WSI::init_swapchain(unsigned width, unsigned height) +{ + SurfaceInfo surface_info = {}; + if (!init_surface_info(*device, *platform, surface, current_backbuffer_format, current_present_mode, surface_info, low_latency_mode_enable)) + return SwapchainError::Error; + const auto &caps = surface_info.surface_capabilities; + + // Happens on Windows when you minimize a window. + if (caps.maxImageExtent.width == 0 && caps.maxImageExtent.height == 0) + return SwapchainError::NoSurface; + + if (current_extra_usage && support_prerotate) + { + LOGW("Disabling prerotate support due to extra usage flags in swapchain.\n"); + support_prerotate = false; + } + + if (current_extra_usage & ~caps.supportedUsageFlags) + { + LOGW("Attempting to use unsupported usage flags 0x%x for swapchain.\n", current_extra_usage); + current_extra_usage &= caps.supportedUsageFlags; + extra_usage = current_extra_usage; + } + + auto attempt_backbuffer_format = current_backbuffer_format; + auto surface_format = find_suitable_present_format(surface_info.formats, attempt_backbuffer_format); + + if (surface_format.format == VK_FORMAT_UNDEFINED && + (attempt_backbuffer_format == BackbufferFormat::HDR10 || + attempt_backbuffer_format == BackbufferFormat::DisplayP3 || + attempt_backbuffer_format == BackbufferFormat::UNORMPassthrough)) + { + LOGW("Could not find suitable present format for HDR. Attempting fallback to UNORM.\n"); + attempt_backbuffer_format = BackbufferFormat::UNORM; + surface_format = find_suitable_present_format(surface_info.formats, attempt_backbuffer_format); + } + + if (surface_format.format == VK_FORMAT_UNDEFINED) + { + LOGW("Could not find supported format for swapchain usage flags 0x%x.\n", current_extra_usage); + current_extra_usage = 0; + extra_usage = 0; + surface_format = find_suitable_present_format(surface_info.formats, attempt_backbuffer_format); + } + + if (surface_format.format == VK_FORMAT_UNDEFINED) + { + LOGE("Failed to find any suitable format for swapchain.\n"); + return SwapchainError::Error; + } + + static const char *transform_names[] = { + "IDENTITY_BIT_KHR", + "ROTATE_90_BIT_KHR", + "ROTATE_180_BIT_KHR", + "ROTATE_270_BIT_KHR", + "HORIZONTAL_MIRROR_BIT_KHR", + "HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR", + "HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR", + "HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR", + "INHERIT_BIT_KHR", + }; + + LOGI("Current transform is enum 0x%x.\n", unsigned(caps.currentTransform)); + + for (unsigned i = 0; i <= 8; i++) + { + if (caps.supportedTransforms & (1u << i)) + LOGI("Supported transform 0x%x: %s.\n", 1u << i, transform_names[i]); + } + + VkSurfaceTransformFlagBitsKHR pre_transform; + if (!support_prerotate && (caps.supportedTransforms & VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR) != 0) + pre_transform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; + else + { + // Only attempt to use prerotate if we can deal with it purely using a XY clip fixup. + // For horizontal flip we need to start flipping front-face as well ... + if ((caps.currentTransform & ( + VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR | + VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR | + VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR)) != 0) + pre_transform = caps.currentTransform; + else + pre_transform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; + } + + if (pre_transform != caps.currentTransform) + { + LOGW("surfaceTransform (0x%x) != currentTransform (0x%u). Might get performance penalty.\n", + unsigned(pre_transform), unsigned(caps.currentTransform)); + } + + swapchain_current_prerotate = pre_transform; + + VkExtent2D swapchain_size; + LOGI("Swapchain current extent: %d x %d\n", + int(caps.currentExtent.width), + int(caps.currentExtent.height)); + + if (width == 0) + { + if (caps.currentExtent.width != ~0u) + width = caps.currentExtent.width; + else + width = 1280; + LOGI("Auto selected width = %u.\n", width); + } + + if (height == 0) + { + if (caps.currentExtent.height != ~0u) + height = caps.currentExtent.height; + else + height = 720; + LOGI("Auto selected height = %u.\n", height); + } + + // Try to match the swapchain size up with what we expect w.r.t. aspect ratio. + float target_aspect_ratio = float(width) / float(height); + if ((swapchain_aspect_ratio > 1.0f && target_aspect_ratio < 1.0f) || + (swapchain_aspect_ratio < 1.0f && target_aspect_ratio > 1.0f)) + { + std::swap(width, height); + } + + // If we are using pre-rotate of 90 or 270 degrees, we need to flip width and height again. + if (swapchain_current_prerotate & + (VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR | VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR | + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR | + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR)) + { + std::swap(width, height); + } + + // Clamp the target width, height to boundaries. + swapchain_size.width = + std::max(std::min(width, caps.maxImageExtent.width), caps.minImageExtent.width); + swapchain_size.height = + std::max(std::min(height, caps.maxImageExtent.height), caps.minImageExtent.height); + + uint32_t desired_swapchain_images = + low_latency_mode_enable && current_present_mode == PresentMode::SyncToVBlank ? 2 : 3; + + desired_swapchain_images = Util::get_environment_uint("GRANITE_VULKAN_SWAPCHAIN_IMAGES", desired_swapchain_images); + LOGI("Targeting %u swapchain images.\n", desired_swapchain_images); + + if (desired_swapchain_images < caps.minImageCount) + desired_swapchain_images = caps.minImageCount; + + if ((caps.maxImageCount > 0) && (desired_swapchain_images > caps.maxImageCount)) + desired_swapchain_images = caps.maxImageCount; + + VkCompositeAlphaFlagBitsKHR composite_mode = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; + if (caps.supportedCompositeAlpha & VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) + composite_mode = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; + else if (caps.supportedCompositeAlpha & VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR) + composite_mode = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR; + else if (caps.supportedCompositeAlpha & VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR) + composite_mode = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR; + else if (caps.supportedCompositeAlpha & VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR) + composite_mode = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR; + else + LOGW("No sensible composite mode supported?\n"); + + VkSwapchainKHR old_swapchain = swapchain; + + VkSwapchainCreateInfoKHR info = { VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR }; + info.surface = surface; + info.pNext = surface_info.swapchain_pnext; + info.minImageCount = desired_swapchain_images; + info.imageFormat = surface_format.format; + info.imageColorSpace = surface_format.colorSpace; + info.imageExtent.width = swapchain_size.width; + info.imageExtent.height = swapchain_size.height; + info.imageArrayLayers = 1; + info.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | current_extra_usage; + info.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE; + info.preTransform = pre_transform; + info.compositeAlpha = composite_mode; + info.presentMode = surface_info.present_mode.presentMode; + info.clipped = VK_TRUE; + info.oldSwapchain = old_swapchain; + + // Defer the deletion instead. + if (device->get_device_features().swapchain_maintenance1_features.swapchainMaintenance1 && + old_swapchain != VK_NULL_HANDLE) + { + deferred_swapchains.push_back({ old_swapchain, last_present_fence }); + old_swapchain = VK_NULL_HANDLE; + } + + platform->event_swapchain_destroyed(); + auto res = table->vkCreateSwapchainKHR(context->get_device(), &info, nullptr, &swapchain); + platform->destroy_swapchain_resources(old_swapchain); + table->vkDestroySwapchainKHR(context->get_device(), old_swapchain, nullptr); + has_acquired_swapchain_index = false; + present_id = 0; + present_last_id = 0; + + active_present_mode = info.presentMode; + present_mode_compat_group = std::move(surface_info.present_mode_compat_group); + +#ifdef _WIN32 + if (surface_info.exclusive_info.fullScreenExclusive == VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT) + { + bool success = vkAcquireFullScreenExclusiveModeEXT(context->get_device(), swapchain) == VK_SUCCESS; + if (success) + LOGI("Successfully acquired exclusive full-screen.\n"); + else + LOGI("Failed to acquire exclusive full-screen. Using borderless windowed.\n"); + } +#endif + + if (res != VK_SUCCESS) + { + LOGE("Failed to create swapchain (code: %d)\n", int(res)); + swapchain = VK_NULL_HANDLE; + return SwapchainError::Error; + } + + swapchain_width = swapchain_size.width; + swapchain_height = swapchain_size.height; + swapchain_surface_format = surface_format; + swapchain_is_suboptimal = false; + + LOGI("Created swapchain %u x %u (fmt: %u, transform: %u).\n", swapchain_width, swapchain_height, + unsigned(swapchain_surface_format.format), unsigned(swapchain_current_prerotate)); + + uint32_t image_count; + if (table->vkGetSwapchainImagesKHR(context->get_device(), swapchain, &image_count, nullptr) != VK_SUCCESS) + return SwapchainError::Error; + swapchain_images.resize(image_count); + release_semaphores.resize(image_count); + if (table->vkGetSwapchainImagesKHR(context->get_device(), swapchain, &image_count, swapchain_images.data()) != VK_SUCCESS) + return SwapchainError::Error; + + LOGI("Got %u swapchain images.\n", image_count); + + platform->event_swapchain_created(device.get(), swapchain, swapchain_width, swapchain_height, + swapchain_aspect_ratio, image_count, + swapchain_surface_format.format, + swapchain_surface_format.colorSpace, + swapchain_current_prerotate); + + if (swapchain_surface_format.colorSpace == VK_COLOR_SPACE_HDR10_ST2084_EXT && + device->get_device_features().supports_hdr_metadata) + { + table->vkSetHdrMetadataEXT(device->get_device(), 1, &swapchain, &hdr_metadata); + } + + return SwapchainError::None; +} + +void WSI::set_support_prerotate(bool enable) +{ + support_prerotate = enable; +} + +VkSurfaceTransformFlagBitsKHR WSI::get_current_prerotate() const +{ + return swapchain_current_prerotate; +} + +CommandBuffer::Type WSI::get_current_present_queue_type() const +{ + return device->get_current_present_queue_type(); +} + +WSI::~WSI() +{ + teardown(); +} + +void WSIPlatform::event_device_created(Device *) {} +void WSIPlatform::event_device_destroyed() {} +void WSIPlatform::event_swapchain_created(Device *, VkSwapchainKHR, unsigned, unsigned, float, size_t, + VkFormat, VkColorSpaceKHR, + VkSurfaceTransformFlagBitsKHR) {} +void WSIPlatform::event_swapchain_destroyed() {} +void WSIPlatform::destroy_swapchain_resources(VkSwapchainKHR) {} +void WSIPlatform::event_frame_tick(double, double) {} +void WSIPlatform::event_swapchain_index(Device *, unsigned) {} +void WSIPlatform::begin_drop_event() {} +void WSIPlatform::show_message_box(const std::string &, Vulkan::WSIPlatform::MessageType) {} +} diff --git a/vulkan/wsi.hpp b/vulkan/wsi.hpp new file mode 100644 index 00000000..09c536ae --- /dev/null +++ b/vulkan/wsi.hpp @@ -0,0 +1,379 @@ +/* Copyright (c) 2017-2023 Hans-Kristian Arntzen + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#pragma once + +#include "device.hpp" +#include "semaphore_manager.hpp" +#include "vulkan_headers.hpp" +#include "timer.hpp" +#include +#include +#include +#include + +#ifdef HAVE_WSI_DXGI_INTEROP +#include "wsi_dxgi.hpp" +#endif + +namespace Granite +{ +class InputTrackerHandler; +} + +namespace Vulkan +{ +class WSI; + +class WSIPlatform +{ +public: + virtual ~WSIPlatform() = default; + + virtual VkSurfaceKHR create_surface(VkInstance instance, VkPhysicalDevice gpu) = 0; + // This is virtual so that application can hold ownership over the surface handle, for e.g. Qt interop. + virtual void destroy_surface(VkInstance instance, VkSurfaceKHR surface); + virtual std::vector get_instance_extensions() = 0; + virtual std::vector get_device_extensions() + { + return { "VK_KHR_swapchain" }; + } + + virtual VkFormat get_preferred_format() + { + return VK_FORMAT_B8G8R8A8_SRGB; + } + + bool should_resize() + { + return resize; + } + + virtual void notify_current_swapchain_dimensions(unsigned width, unsigned height) + { + resize = false; + current_swapchain_width = width; + current_swapchain_height = height; + } + + virtual uint32_t get_surface_width() = 0; + virtual uint32_t get_surface_height() = 0; + + virtual float get_aspect_ratio() + { + return float(get_surface_width()) / float(get_surface_height()); + } + + virtual bool alive(WSI &wsi) = 0; + virtual void poll_input() = 0; + virtual void poll_input_async(Granite::InputTrackerHandler *handler) = 0; + virtual bool has_external_swapchain() + { + return false; + } + + virtual void block_until_wsi_forward_progress(WSI &wsi) + { + get_frame_timer().enter_idle(); + while (!resize && alive(wsi)) + { + poll_input(); + std::this_thread::sleep_for(std::chrono::milliseconds(10)); + } + get_frame_timer().leave_idle(); + } + + Util::FrameTimer &get_frame_timer() + { + return timer; + } + + virtual void release_resources() + { + } + + virtual void event_device_created(Device *device); + virtual void event_device_destroyed(); + virtual void event_swapchain_created(Device *device, VkSwapchainKHR swapchain, + unsigned width, unsigned height, + float aspect_ratio, size_t num_swapchain_images, + VkFormat format, VkColorSpaceKHR color_space, + VkSurfaceTransformFlagBitsKHR pre_rotate); + virtual void destroy_swapchain_resources(VkSwapchainKHR swapchain); + virtual void event_swapchain_destroyed(); + virtual void event_frame_tick(double frame, double elapsed); + virtual void event_swapchain_index(Device *device, unsigned index); + + virtual void set_window_title(const std::string &title); + + virtual uintptr_t get_fullscreen_monitor(); + virtual uintptr_t get_native_window(); + + virtual const VkApplicationInfo *get_application_info(); + + virtual void begin_drop_event(); + + enum class MessageType { Error, Warning, Info }; + virtual void show_message_box(const std::string &str, MessageType type); + +protected: + unsigned current_swapchain_width = 0; + unsigned current_swapchain_height = 0; + bool resize = false; + +private: + Util::FrameTimer timer; +}; + +enum class PresentMode +{ + SyncToVBlank, // Force FIFO + UnlockedMaybeTear, // MAILBOX or IMMEDIATE + UnlockedForceTearing, // Force IMMEDIATE + UnlockedNoTearing // Force MAILBOX +}; + +enum class BackbufferFormat +{ + UNORM, + sRGB, + HDR10, + DisplayP3, + UNORMPassthrough +}; + +class WSI +{ +public: + WSI(); + void set_platform(WSIPlatform *platform); + void set_present_mode(PresentMode mode); + void set_backbuffer_format(BackbufferFormat format); + + // Latency is normally pretty low, but this aims to target + // really low latency. Only suitable for cases where rendering loads are extremely simple. + void set_low_latency_mode(bool enable); + + inline BackbufferFormat get_backbuffer_format() const + { + return backbuffer_format; + } + + inline VkColorSpaceKHR get_backbuffer_color_space() const + { + return swapchain_surface_format.colorSpace; + } + + void set_support_prerotate(bool enable); + void set_extra_usage_flags(VkImageUsageFlags usage); + VkSurfaceTransformFlagBitsKHR get_current_prerotate() const; + + inline PresentMode get_present_mode() const + { + return present_mode; + } + + // Deprecated, use set_backbuffer_format(). + void set_backbuffer_srgb(bool enable); + inline bool get_backbuffer_srgb() const + { + return backbuffer_format == BackbufferFormat::sRGB; + } + + void set_hdr_metadata(const VkHdrMetadataEXT &metadata); + inline const VkHdrMetadataEXT &get_hdr_metadata() const + { + return hdr_metadata; + } + + // First, we need a Util::IntrinsivePtr. + // This holds the instance and device. + + // The simple approach. WSI internally creates the context with instance + device. + // Required information about extensions etc, is pulled from the platform. + bool init_context_from_platform(InstanceFactory*, unsigned num_thread_indices, const Context::SystemHandles &system_handles); + + // If you have your own VkInstance and/or VkDevice, you must create your own Vulkan::Context with + // the appropriate init() call. Based on the platform you use, you must make sure to enable the + // required extensions. + bool init_from_existing_context(ContextHandle context); + + // Then we initialize the Vulkan::Device. Either lets WSI create its own device or reuse an existing handle. + // A device provided here must have been bound to the context. + bool init_device(); + bool init_device(DeviceHandle device); + + // Called after we have a device and context. + // Either we can use a swapchain based on VkSurfaceKHR, or we can supply our own images + // to create a virtual swapchain. + // init_surface_swapchain() is called once. + // Here we create the surface and perform creation of the first swapchain. + bool init_surface_swapchain(); + bool init_external_swapchain(std::vector external_images); + + // Calls init_context_from_platform -> init_device -> init_surface_swapchain in succession. + bool init_simple(InstanceFactory*, unsigned num_thread_indices, const Context::SystemHandles &system_handles); + + ~WSI(); + + inline Context &get_context() + { + return *context; + } + + inline Device &get_device() + { + return *device; + } + + // Acquires a frame from swapchain, also calls poll_input() after acquire + // since acquire tends to block. + bool begin_frame(); + // Presents and iterates frame context. + // Present is skipped if swapchain resource was not touched. + // The normal app loop is something like begin_frame() -> submit work -> end_frame(). + bool end_frame(); + + // For external swapchains we don't have a normal acquire -> present cycle. + // - set_external_frame() + // - index replaces the acquire next image index. + // - acquire_semaphore replaces semaphore from acquire next image. + // - frame_time controls the frame time passed down. + // - begin_frame() + // - submit work + // - end_frame() + // - consume_external_release_semaphore() + // - Returns the release semaphore that can passed to the equivalent of QueuePresentKHR. + void set_external_frame(unsigned index, Semaphore acquire_semaphore, double frame_time); + Semaphore consume_external_release_semaphore(); + + CommandBuffer::Type get_current_present_queue_type() const; + + // Equivalent to calling destructor. + void teardown(); + + WSIPlatform &get_platform() + { + VK_ASSERT(platform); + return *platform; + } + + // For Android. Used in response to APP_CMD_{INIT,TERM}_WINDOW once + // we have a proper swapchain going. + // We have to completely drain swapchain before the window is terminated on Android. + void deinit_surface_and_swapchain(); + void reinit_surface_and_swapchain(VkSurfaceKHR new_surface); + + void set_window_title(const std::string &title); + + double get_smooth_frame_time() const; + double get_smooth_elapsed_time() const; + +private: + void update_framebuffer(unsigned width, unsigned height); + + ContextHandle context; + VkSurfaceKHR surface = VK_NULL_HANDLE; + VkSwapchainKHR swapchain = VK_NULL_HANDLE; + std::vector swapchain_images; + std::vector release_semaphores; + DeviceHandle device; + const VolkDeviceTable *table = nullptr; + + unsigned swapchain_width = 0; + unsigned swapchain_height = 0; + float swapchain_aspect_ratio = 1.0f; + VkSurfaceFormatKHR swapchain_surface_format = { VK_FORMAT_UNDEFINED, VK_COLOR_SPACE_SRGB_NONLINEAR_KHR }; + PresentMode current_present_mode = PresentMode::SyncToVBlank; + PresentMode present_mode = PresentMode::SyncToVBlank; + bool low_latency_mode_enable = false; + + VkPresentModeKHR active_present_mode = VK_PRESENT_MODE_FIFO_KHR; + std::vector present_mode_compat_group; + bool update_active_presentation_mode(PresentMode mode); + + VkImageUsageFlags current_extra_usage = 0; + VkImageUsageFlags extra_usage = 0; + bool swapchain_is_suboptimal = false; + + enum class SwapchainError + { + None, + NoSurface, + Error + }; + SwapchainError init_swapchain(unsigned width, unsigned height); + bool blocking_init_swapchain(unsigned width, unsigned height); + + uint32_t swapchain_index = 0; + bool has_acquired_swapchain_index = false; + + WSIPlatform *platform = nullptr; + + std::vector external_swapchain_images; + + unsigned external_frame_index = 0; + Semaphore external_acquire; + Semaphore external_release; + bool frame_is_external = false; + + BackbufferFormat backbuffer_format = BackbufferFormat::sRGB; + BackbufferFormat current_backbuffer_format = BackbufferFormat::sRGB; + + bool support_prerotate = false; + VkSurfaceTransformFlagBitsKHR swapchain_current_prerotate = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; + + bool begin_frame_external(); + double external_frame_time = 0.0; + + double smooth_frame_time = 0.0; + double smooth_elapsed_time = 0.0; + + uint64_t present_id = 0; + uint64_t present_last_id = 0; + unsigned present_frame_latency = 0; + + void tear_down_swapchain(); + void drain_swapchain(bool in_tear_down); + void wait_swapchain_latency(); + + VkHdrMetadataEXT hdr_metadata = { VK_STRUCTURE_TYPE_HDR_METADATA_EXT }; + + struct DeferredDeletion + { + VkSwapchainKHR swapchain; + Fence fence; + }; + Util::SmallVector deferred_swapchains; + Vulkan::Fence last_present_fence; + void nonblock_delete_swapchains(); + + VkSurfaceFormatKHR find_suitable_present_format(const std::vector &formats, BackbufferFormat desired_format) const; + +#ifdef HAVE_WSI_DXGI_INTEROP + std::unique_ptr dxgi; + bool init_surface_swapchain_dxgi(unsigned width, unsigned height); + bool begin_frame_dxgi(); + bool end_frame_dxgi(); +#endif +}; +}